declare function byte(v: number): number;
declare function byte(v: string): number;
declare function short(v: number): number;
declare function short(v: string): number;
declare function long(v: number): number;
declare function long(v: string): number;
declare function float(v: number): number;
declare function float(v: string): number;
declare function double(v: number): number;
declare function double(v: string): number;
declare function __native<T>(instance: T): T;
declare module java {
	export module security {
		/**
		 * Legacy security code; do not use.
		 */
		export class Policy extends java.lang.Object {
			constructor();
			static UNSUPPORTED_EMPTY_COLLECTION: java.security.PermissionCollection;
			static class: java.lang.Class<java.security.Policy>;
			public static getInstance(type: string, params: java.security.Policy.IParameters): java.security.Policy;
			public static getInstance(type: string, params: java.security.Policy.IParameters, provider: string): java.security.Policy;
			public static getInstance(type: string, params: java.security.Policy.IParameters, provider: java.security.Provider): java.security.Policy;
			public getParameters(): java.security.Policy.IParameters;
			public getProvider(): java.security.Provider;
			public getType(): string;
			public getPermissions(cs: java.security.CodeSource): java.security.PermissionCollection;
			public refresh(): void;
			public getPermissions(domain: java.security.ProtectionDomain): java.security.PermissionCollection;
			public implies(domain: java.security.ProtectionDomain, permission: java.security.Permission): boolean;
			public static getPolicy(): java.security.Policy;
			public static setPolicy(policy: java.security.Policy): void;
		}
		export module Policy {
			/**
			 * Legacy security code; do not use.
			 */
			interface IParameters {
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class Parameters implements java.security.Policy.IParameters {
				constructor(implementation: java.security.Policy.IParameters);
			}
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class ProtectionDomain extends java.lang.Object {
			constructor(cs: java.security.CodeSource, permissions: java.security.PermissionCollection);
			constructor(cs: java.security.CodeSource, permissions: java.security.PermissionCollection, cl: java.lang.ClassLoader, principals: native.Array<java.security.IPrincipal>);
			static class: java.lang.Class<java.security.ProtectionDomain>;
			public getClassLoader(): java.lang.ClassLoader;
			public getCodeSource(): java.security.CodeSource;
			public getPermissions(): java.security.PermissionCollection;
			public getPrincipals(): native.Array<java.security.IPrincipal>;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * PrivateKey is the common interface for private keys.
		 */
		export class PrivateKey implements java.security.IKey, java.security.IPrivateKey {
			constructor(implementation: java.security.IPrivateKey);
			/**
			 * The serialVersionUID to be compatible with JDK1.1.
			 */
			static serialVersionUID: number;
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			getEncoded(): native.Array<number>;
		}
		/**
		 * Represents the Service Provider Interface (SPI) for java.security.Policy class.
		 */
		export class PolicySpi extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.security.PolicySpi>;
			/**
			 * Answers if the policy has granted a Permission to a ProtectionDomain.
			 * @param domain -
			 * @param permission -
			 */
			protected engineImplies(domain: java.security.ProtectionDomain, permission: java.security.Permission): boolean;
			/**
			 * Refreshes/reloads the policy configuration. The behavior of this method depends on the implementation. For example, calling refresh on a file-based policy will cause the file to be re-read.
			 */
			protected engineRefresh(): void;
			/**
			 * Answers a PermissionCollection object containing the set of permissions granted to the specified CodeSource.
			 * @param codesource -
			 */
			protected engineGetPermissions(codesource: java.security.CodeSource): java.security.PermissionCollection;
			/**
			 * Answers a PermissionCollection object containing the set of permissions granted to the specified ProtectionDomain.
			 * @param domain -
			 */
			protected engineGetPermissions(domain: java.security.ProtectionDomain): java.security.PermissionCollection;
		}
		/**
		 * Principals are objects which have identities. These can be individuals, groups, corporations, unique program executions, etc.
		 */
		interface IPrincipal {
			/**
			 * Compares the specified object with this Principal for equality and returns true if the specified object is equal, false otherwise.
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the name of this Principal.
			 */
			getName(): string;
			/**
			 * Returns the hash code value for this Principal. Returns the same hash code for Principals that are equal to each other as required by the general contract of Object#hashCode.
			 */
			hashCode(): number;
			/**
			 * Returns a string containing a concise, human-readable description of this Principal.
			 */
			toString(): string;
		}
		/**
		 * ProviderException is a general exception, thrown by security Providers.
		 */
		export class ProviderException extends java.lang.RuntimeException {
			/**
			 * Constructs a new instance of ProviderException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of ProviderException.
			 */
			constructor();
			/**
			 * Constructs a new instance of ProviderException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of ProviderException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.ProviderException>;
		}
		/**
		 * KeyFactorySpi is the Service Provider Interface (SPI) definition for KeyFactory.
		 */
		export class KeyFactorySpi extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.security.KeyFactorySpi>;
			/**
			 * Generates a instance of PublicKey from the given key specification.
			 * @param keySpec 
			 */
			protected engineGeneratePublic(keySpec: java.security.spec.IKeySpec): java.security.IPublicKey;
			/**
			 * Generates a instance of PrivateKey from the given key specification.
			 * @param keySpec 
			 */
			protected engineGeneratePrivate(keySpec: java.security.spec.IKeySpec): java.security.IPrivateKey;
			/**
			 * Returns the key specification for the specified key.
			 * @param key 
			 * @param keySpec 
			 */
			protected engineGetKeySpec<T extends java.security.spec.IKeySpec>(key: java.security.IKey, keySpec: java.lang.Class<T>): T;
			/**
			 * Translates the given key into a key from this key factory.
			 * @param key 
			 */
			protected engineTranslateKey(key: java.security.IKey): java.security.IKey;
		}
		/**
		 * AlgorithmParametersSpi is the Service Provider Interface (SPI) definition for AlgorithmParameters.
		 */
		export class AlgorithmParametersSpi extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.security.AlgorithmParametersSpi>;
			/**
			 * Initializes this AlgorithmParametersSpi with the specified AlgorithmParameterSpec.
			 * @param paramSpec 
			 */
			protected engineInit(paramSpec: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Initializes this AlgorithmParametersSpi with the specified byte[] using the default decoding format for parameters. The default encoding format is ASN.1.
			 * @param params 
			 */
			protected engineInit(params: native.Array<number>): void;
			/**
			 * Initializes this AlgorithmParametersSpi with the specified byte[] using the specified decoding format.
			 * @param params 
			 * @param format 
			 */
			protected engineInit(params: native.Array<number>, format: string): void;
			/**
			 * Returns the AlgorithmParameterSpec for this AlgorithmParametersSpi.
			 * @param paramSpec 
			 */
			protected engineGetParameterSpec<T extends java.security.spec.IAlgorithmParameterSpec>(paramSpec: java.lang.Class<T>): T;
			/**
			 * Returns the parameters in their default encoding format. The default encoding format is ASN.1.
			 */
			protected engineGetEncoded(): native.Array<number>;
			/**
			 * Returns the parameters in the specified encoding format.
			 * @param format 
			 */
			protected engineGetEncoded(format: string): native.Array<number>;
			/**
			 * Returns a string containing a concise, human-readable description of this AlgorithmParametersSpi.
			 */
			protected engineToString(): string;
		}
		/**
		 * GuardedObject controls access to an object, by checking all requests for the object with a Guard.
		 */
		export class GuardedObject extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new instance of GuardedObject which protects access to the specified Object using the specified Guard.
			 * @param object 
			 * @param guard 
			 */
			constructor(object: any, guard: java.security.IGuard);
			static class: java.lang.Class<java.security.GuardedObject>;
			/**
			 * Returns the guarded Object if the associated Guard permits access. If access is not granted, then a SecurityException is thrown.
			 */
			public getObject(): any;
		}
		export module cert {
			/**
			 * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) for the CertificateFactory class. This SPI must be implemented for each certificate type a security provider wishes to support.
			 */
			export class CertificateFactorySpi extends java.lang.Object {
				/**
				 * Constructs a new instance of this class.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertificateFactorySpi>;
				/**
				 * Generates and initializes a Certificate from the provided input stream.
				 * @param inStream 
				 */
				public engineGenerateCertificate(inStream: java.io.InputStream): java.security.cert.Certificate;
				/**
				 * Generates and initializes a collection of certificates from the provided input stream.
				 * @param inStream 
				 */
				public engineGenerateCertificates(inStream: java.io.InputStream): java.util.ICollection<any>;
				/**
				 * Generates and initializes a <i>Certificate Revocation List</i> (CRL) from the provided input stream.
				 * @param inStream 
				 */
				public engineGenerateCRL(inStream: java.io.InputStream): java.security.cert.CRL;
				/**
				 * Generates and initializes a collection of <i>Certificate Revocation List</i> (CRL) from the provided input stream.
				 * @param inStream 
				 */
				public engineGenerateCRLs(inStream: java.io.InputStream): java.util.ICollection<any>;
				/**
				 * Generates a CertPath from the provided InputStream. The default encoding scheme is applied.
				 * @param inStream 
				 */
				public engineGenerateCertPath(inStream: java.io.InputStream): java.security.cert.CertPath;
				/**
				 * Generates a CertPath from the provided InputStream in the specified encoding.
				 * @param inStream 
				 * @param encoding 
				 */
				public engineGenerateCertPath(inStream: java.io.InputStream, encoding: string): java.security.cert.CertPath;
				/**
				 * Generates a CertPath from the provided list of certificates. The encoding is the default encoding.
				 * @param certificates 
				 */
				public engineGenerateCertPath(certificates: java.util.IList<any>): java.security.cert.CertPath;
				/**
				 * Returns an Iterator over the supported CertPath encodings (as Strings). The first element is the default encoding.
				 */
				public engineGetCertPathEncodings(): java.util.IIterator<string>;
			}
			/**
			 * Abstract base class for X.509 certificate revocation lists (CRL).
			 */
			export class X509CRL extends java.security.cert.CRL implements java.security.cert.IX509Extension {
				static class: java.lang.Class<java.security.cert.X509CRL>;
				/**
				 * Returns whether the specified object equals to this instance.
				 * @param other 
				 */
				public equals(other: any): boolean;
				/**
				 * Returns the hashcode of this CRL instance.
				 */
				public hashCode(): number;
				/**
				 * Returns this CRL in ASN.1 DER encoded form.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Verifies this CRL by verifying that this CRL was signed with the corresponding private key to the specified public key.
				 * @param key 
				 */
				public verify(key: java.security.IPublicKey): void;
				/**
				 * Verifies this CRL by verifying that this CRL was signed with the corresponding private key to the specified public key. The signature verification engine of the specified provider will be used.
				 * @param key 
				 * @param sigProvider 
				 */
				public verify(key: java.security.IPublicKey, sigProvider: string): void;
				/**
				 * Returns the version number of this CRL.
				 */
				public getVersion(): number;
				/**
				 * <b>Do not use</b>, use #getIssuerX500Principal() instead. Returns the issuer as an implementation specific Principal object.
				 */
				public getIssuerDN(): java.security.IPrincipal;
				/**
				 * Returns the issuer distinguished name of this CRL.
				 */
				public getIssuerX500Principal(): javax.security.auth.x500.X500Principal;
				/**
				 * Returns the thisUpdate value of this CRL.
				 */
				public getThisUpdate(): java.util.Date;
				/**
				 * Returns the nextUpdate value of this CRL.
				 */
				public getNextUpdate(): java.util.Date;
				/**
				 * Returns the CRL entry with the specified certificate serial number.
				 * @param serialNumber 
				 */
				public getRevokedCertificate(serialNumber: java.math.BigInteger): java.security.cert.X509CRLEntry;
				/**
				 * Returns the CRL entry for the specified certificate.
				 * @param certificate 
				 */
				public getRevokedCertificate(certificate: java.security.cert.X509Certificate): java.security.cert.X509CRLEntry;
				/**
				 * Returns the set of revoked certificates.
				 */
				public getRevokedCertificates(): java.util.ISet<any>;
				/**
				 * Returns the tbsCertList information of this CRL in DER encoded form.
				 */
				public getTBSCertList(): native.Array<number>;
				/**
				 * Returns the signature bytes of this CRL.
				 */
				public getSignature(): native.Array<number>;
				/**
				 * Returns the name of the signature algorithm.
				 */
				public getSigAlgName(): string;
				/**
				 * Returns the OID of the signature algorithm.
				 */
				public getSigAlgOID(): string;
				/**
				 * Returns the parameters of the signature algorithm in DER encoded form.
				 */
				public getSigAlgParams(): native.Array<number>;
				/**
				 * Returns the set of OIDs of the extension(s) marked as CRITICAL, that this implementation manages.
				 */
				getCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns the extension value as DER-encoded OCTET string for the specified OID.
				 * @param oid 
				 */
				getExtensionValue(oid: string): native.Array<number>;
				/**
				 * Returns the set of OIDs of the extension(s) marked as NON-CRITICAL, that this implementation manages.
				 */
				getNonCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns whether this instance has an extension marked as CRITICAL that it cannot support.
				 */
				hasUnsupportedCriticalExtension(): boolean;
			}
			/**
			 * The exception that is thrown when a Certificate can not be parsed.
			 */
			export class CertificateParsingException extends java.security.cert.CertificateException {
				/**
				 * Creates a new CertificateParsingException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateParsingException.
				 */
				constructor();
				/**
				 * Creates a new CertificateParsingException with the specified message and cause.
				 * @param message 
				 * @param cause 
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Creates a new CertificateParsingException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.security.cert.CertificateParsingException>;
			}
			/**
			 * The base class for all Certificate related exceptions.
			 */
			export class CertificateException extends java.security.GeneralSecurityException {
				/**
				 * Creates a new CertificateException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateException.
				 */
				constructor();
				/**
				 * Creates a new CertificateException with the specified message and cause.
				 * @param message 
				 * @param cause 
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Creates a new CertificateException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.security.cert.CertificateException>;
			}
			/**
			 * The interface for results generated by CertPathBuilder#build(CertPathParameters).
			 */
			interface ICertPathBuilderResult extends java.lang.ICloneable {
				/**
				 * Clones this CertPathBuilderResult instance.
				 */
				clone(): any;
				/**
				 * Returns the built CertPath instance. Never returns null.
				 */
				getCertPath(): java.security.cert.CertPath;
			}
			/**
			 * The interface specification to determine whether a Certificate meets some criteria.
			 */
			export class CertSelector implements java.lang.ICloneable, java.security.cert.ICertSelector {
				constructor(implementation: java.security.cert.ICertSelector);
				/**
				 * Clones this CertSelector instance.
				 */
				public clone(): any;
				/**
				 * Checks whether the defined criteria of this instance match the specified certificate.
				 * @param cert 
				 */
				public match(cert: java.security.cert.Certificate): boolean;
			}
			/**
			 * The interface specification for certification path validation results.
			 */
			interface ICertPathValidatorResult extends java.lang.ICloneable {
				/**
				 * Clones this CertPathValidatorResult instance.
				 */
				clone(): any;
			}
			/**
			 * Abstract base class for entries in a certificate revocation list (CRL).
			 */
			export class X509CRLEntry extends java.lang.Object implements java.security.cert.IX509Extension {
				/**
				 * Creates a new X509CRLEntry instance.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.X509CRLEntry>;
				/**
				 * Returns whether the specified object equals to this instance.
				 * @param other 
				 */
				public equals(other: any): boolean;
				/**
				 * Returns the hashcode of this instance.
				 */
				public hashCode(): number;
				/**
				 * Returns this entry in ASN.1 DER encoded form.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Returns the serial number of the revoked certificate.
				 */
				public getSerialNumber(): java.math.BigInteger;
				/**
				 * Returns the issuer of the revoked certificate.
				 */
				public getCertificateIssuer(): javax.security.auth.x500.X500Principal;
				/**
				 * Returns the date when the certificate is revoked.
				 */
				public getRevocationDate(): java.util.Date;
				/**
				 * Returns whether this CRL entry has extensions.
				 */
				public hasExtensions(): boolean;
				/**
				 * Returns a string representation of this instance.
				 */
				public toString(): string;
				/**
				 * Returns the set of OIDs of the extension(s) marked as CRITICAL, that this implementation manages.
				 */
				getCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns the extension value as DER-encoded OCTET string for the specified OID.
				 * @param oid 
				 */
				getExtensionValue(oid: string): native.Array<number>;
				/**
				 * Returns the set of OIDs of the extension(s) marked as NON-CRITICAL, that this implementation manages.
				 */
				getNonCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns whether this instance has an extension marked as CRITICAL that it cannot support.
				 */
				hasUnsupportedCriticalExtension(): boolean;
			}
			/**
			 * The marker interface specifying the parameters used to initialize a CertStore instance.
			 */
			export class CertStoreParameters implements java.lang.ICloneable, java.security.cert.ICertStoreParameters {
				constructor(implementation: java.security.cert.ICertStoreParameters);
				/**
				 * Clones this CertStoreParameters instance.
				 */
				public clone(): any;
			}
			/**
			 * The result of the PKIX certification path builder, returned by CertPathBuilder#build(CertPathParameters).
			 */
			export class PKIXCertPathBuilderResult extends java.security.cert.PKIXCertPathValidatorResult implements java.security.cert.ICertPathBuilderResult {
				/**
				 * Creates a new PKIXCertPathBuilderResult instance with the specified validated certification path, the trust anchor of the certification path, the policy tree and the public key of the subject.
				 * @param certPath 
				 * @param trustAnchor 
				 * @param policyTree 
				 * @param subjectPublicKey 
				 */
				constructor(certPath: java.security.cert.CertPath, trustAnchor: java.security.cert.TrustAnchor, policyTree: java.security.cert.IPolicyNode, subjectPublicKey: java.security.IPublicKey);
				static class: java.lang.Class<java.security.cert.PKIXCertPathBuilderResult>;
				/**
				 * Returns the validated certification path.
				 */
				public getCertPath(): java.security.cert.CertPath;
				/**
				 * Returns a string representation of this PKIXCertPathBuilderResult instance.
				 */
				public toString(): string;
				/**
				 * Clones this CertPathBuilderResult instance.
				 */
				clone(): any;
			}
			/**
			 * The interface specification for certification path validation results.
			 */
			export class CertPathValidatorResult implements java.lang.ICloneable, java.security.cert.ICertPathValidatorResult {
				constructor(implementation: java.security.cert.ICertPathValidatorResult);
				/**
				 * Clones this CertPathValidatorResult instance.
				 */
				public clone(): any;
			}
			/**
			 * The interface specification to determine whether a Certificate meets some criteria.
			 */
			interface ICertSelector extends java.lang.ICloneable {
				/**
				 * Clones this CertSelector instance.
				 */
				clone(): any;
				/**
				 * Checks whether the defined criteria of this instance match the specified certificate.
				 * @param cert 
				 */
				match(cert: java.security.cert.Certificate): boolean;
			}
			/**
			 * The marker interface specifying the parameters used to initialize a CertStore instance.
			 */
			interface ICertStoreParameters extends java.lang.ICloneable {
				/**
				 * Clones this CertStoreParameters instance.
				 */
				clone(): any;
			}
			/**
			 * The exception that is thrown when an access to a CertStore fails.
			 */
			export class CertStoreException extends java.security.GeneralSecurityException {
				/**
				 * Creates a new CertStoreException with the specified message and cause.
				 * @param msg 
				 * @param cause 
				 */
				constructor(msg: string, cause: java.lang.Throwable);
				/**
				 * Creates a new CertStoreException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				/**
				 * Creates a new CertStoreException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertStoreException.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertStoreException>;
			}
			/**
			 * The parameter specification for a PKIX CertPathBuilder algorithm used to CertPathBuilder#build(CertPathParameters) build certificate chains validated with the PKIX certification path validation.
			 */
			export class PKIXBuilderParameters extends java.security.cert.PKIXParameters {
				/**
				 * Creates a new PKIXBuilderParameters instance with the specified set of TrustAnchor and certificate constraints.
				 * @param trustAnchors 
				 * @param targetConstraints 
				 */
				constructor(trustAnchors: java.util.ISet<java.security.cert.TrustAnchor>, targetConstraints: java.security.cert.ICertSelector);
				/**
				 * Creates a new PKIXBuilderParameters instance with the trusted X509Certificate entries from the specified KeyStore.
				 * @param keyStore 
				 * @param targetConstraints 
				 */
				constructor(keyStore: java.security.KeyStore, targetConstraints: java.security.cert.ICertSelector);
				static class: java.lang.Class<java.security.cert.PKIXBuilderParameters>;
				/**
				 * Returns the maximum length of a certification path.
				 */
				public getMaxPathLength(): number;
				/**
				 * Set the maximum length of a certification path.
				 * @param maxPathLength 
				 */
				public setMaxPathLength(maxPathLength: number): void;
				/**
				 * Returns a string representation of this PKIXBuilderParameters instance.
				 */
				public toString(): string;
			}
			/**
			 * This class implements a policy qualifier as defined by the ASN.1 PolicyQualifierInfo structure.
			 */
			export class PolicyQualifierInfo extends java.lang.Object {
				/**
				 * Creates a new PolicyQualifierInfo from the specified encoded form.
				 * @param encoded 
				 */
				constructor(encoded: native.Array<number>);
				static class: java.lang.Class<java.security.cert.PolicyQualifierInfo>;
				/**
				 * Returns a ASN.1 DER encoded copy of policy qualifier info.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Returns the identifier (an OID) of this policy qualifier info.
				 */
				public getPolicyQualifierId(): string;
				/**
				 * Returns a ASN.1 DER encoded copy of the qualifier of this policy qualifier info.
				 */
				public getPolicyQualifier(): native.Array<number>;
				/**
				 * Returns a string representation of this PolicyQualifierInfo instance.
				 */
				public toString(): string;
			}
			/**
			 * The interface specifying an X.509 Certificate or CRL extension.
			 */
			interface IX509Extension {
				/**
				 * Returns the set of OIDs of the extension(s) marked as CRITICAL, that this implementation manages.
				 */
				getCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns the extension value as DER-encoded OCTET string for the specified OID.
				 * @param oid 
				 */
				getExtensionValue(oid: string): native.Array<number>;
				/**
				 * Returns the set of OIDs of the extension(s) marked as NON-CRITICAL, that this implementation manages.
				 */
				getNonCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns whether this instance has an extension marked as CRITICAL that it cannot support.
				 */
				hasUnsupportedCriticalExtension(): boolean;
			}
			/**
			 * This class represents a trust anchor for validation of X.509 certification path.
			 */
			export class TrustAnchor extends java.lang.Object {
				/**
				 * Creates a new TrustAnchor with the specified certificate and name constraints.
				 * @param trustedCert 
				 * @param nameConstraints 
				 */
				constructor(trustedCert: java.security.cert.X509Certificate, nameConstraints: native.Array<number>);
				/**
				 * Creates a new TrustAnchor with the specified certificate authority name, its public key and the specified name constraints.
				 * @param caName 
				 * @param caPublicKey 
				 * @param nameConstraints 
				 */
				constructor(caName: string, caPublicKey: java.security.IPublicKey, nameConstraints: native.Array<number>);
				/**
				 * Creates a new TrustAnchor with the specified certificate authority name as principal, its public key and the specified name constraints.
				 * @param caPrincipal 
				 * @param caPublicKey 
				 * @param nameConstraints 
				 */
				constructor(caPrincipal: javax.security.auth.x500.X500Principal, caPublicKey: java.security.IPublicKey, nameConstraints: native.Array<number>);
				static class: java.lang.Class<java.security.cert.TrustAnchor>;
				/**
				 * Returns a copy of the name constraints in ASN.1 DER encoded form.
				 */
				public getNameConstraints(): native.Array<number>;
				/**
				 * Returns the certificate of this <i>trusted</i> certificate authority.
				 */
				public getTrustedCert(): java.security.cert.X509Certificate;
				/**
				 * Returns the name of the certificate authority as X500Principal.
				 */
				public getCA(): javax.security.auth.x500.X500Principal;
				/**
				 * Returns the name of the certificate authority as String in RFC 2253 format.
				 */
				public getCAName(): string;
				/**
				 * Returns the public key of the certificate authority.
				 */
				public getCAPublicKey(): java.security.IPublicKey;
				/**
				 * Returns a string representation of this TrustAnchor instance.
				 */
				public toString(): string;
			}
			/**
			 * The interface specification for determining whether a CRL meets some criteria to select CRL objects among a set of CRLs.
			 */
			export class CRLSelector implements java.lang.ICloneable, java.security.cert.ICRLSelector {
				constructor(implementation: java.security.cert.ICRLSelector);
				/**
				 * Clones this CRLSelector instance.
				 */
				public clone(): any;
				/**
				 * Checks whether the defined criteria of this instance match the specified CRL.
				 * @param crl 
				 */
				public match(crl: java.security.cert.CRL): boolean;
			}
			/**
			 * Abstract base class for X.509 certificates.
			 */
			export class X509Certificate extends java.security.cert.Certificate implements java.security.cert.IX509Extension {
				static class: java.lang.Class<java.security.cert.X509Certificate>;
				/**
				 * Checks whether the certificate is currently valid.
				 */
				public checkValidity(): void;
				/**
				 * Checks whether the certificate is valid at the specified date.
				 * @param date 
				 */
				public checkValidity(date: java.util.Date): void;
				/**
				 * Returns the certificates version (version number).
				 */
				public getVersion(): number;
				/**
				 * Returns the serialNumber of the certificate.
				 */
				public getSerialNumber(): java.math.BigInteger;
				/**
				 * Returns the issuer (issuer distinguished name) as an implementation specific Principal object.
				 */
				public getIssuerDN(): java.security.IPrincipal;
				/**
				 * Returns the issuer (issuer distinguished name) as an X500Principal.
				 */
				public getIssuerX500Principal(): javax.security.auth.x500.X500Principal;
				/**
				 * Returns the subject (subject distinguished name) as an implementation specific Principal object.
				 */
				public getSubjectDN(): java.security.IPrincipal;
				/**
				 * Returns the subject (subject distinguished name) as an X500Principal.
				 */
				public getSubjectX500Principal(): javax.security.auth.x500.X500Principal;
				/**
				 * Returns the notBefore date from the validity period of the certificate.
				 */
				public getNotBefore(): java.util.Date;
				/**
				 * Returns the notAfter date of the validity period of the certificate.
				 */
				public getNotAfter(): java.util.Date;
				/**
				 * Returns the tbsCertificate information from this certificate in DER-encoded format.
				 */
				public getTBSCertificate(): native.Array<number>;
				/**
				 * Returns the raw signature bits from the certificate.
				 */
				public getSignature(): native.Array<number>;
				/**
				 * Returns the name of the algorithm for the certificate signature.
				 */
				public getSigAlgName(): string;
				/**
				 * Returns the OID of the signature algorithm from the certificate.
				 */
				public getSigAlgOID(): string;
				/**
				 * Returns the parameters of the signature algorithm in DER-encoded format.
				 */
				public getSigAlgParams(): native.Array<number>;
				/**
				 * Returns the issuerUniqueID from the certificate.
				 */
				public getIssuerUniqueID(): native.Array<boolean>;
				/**
				 * Returns the subjectUniqueID from the certificate.
				 */
				public getSubjectUniqueID(): native.Array<boolean>;
				/**
				 * Returns the KeyUsage extension as a boolean array.
				 */
				public getKeyUsage(): native.Array<boolean>;
				/**
				 * Returns a read-only list of OID strings representing the ExtKeyUsageSyntax field of the extended key usage extension.
				 */
				public getExtendedKeyUsage(): java.util.IList<string>;
				/**
				 * Returns the path length of the certificate constraints from the BasicContraints extension.
				 */
				public getBasicConstraints(): number;
				/**
				 * Returns a read-only list of the subject alternative names from the SubjectAltName extension.
				 */
				public getSubjectAlternativeNames(): java.util.ICollection<java.util.IList<any>>;
				/**
				 * Returns a read-only list of the issuer alternative names from the IssuerAltName extension.
				 */
				public getIssuerAlternativeNames(): java.util.ICollection<java.util.IList<any>>;
				/**
				 * Returns the set of OIDs of the extension(s) marked as CRITICAL, that this implementation manages.
				 */
				getCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns the extension value as DER-encoded OCTET string for the specified OID.
				 * @param oid 
				 */
				getExtensionValue(oid: string): native.Array<number>;
				/**
				 * Returns the set of OIDs of the extension(s) marked as NON-CRITICAL, that this implementation manages.
				 */
				getNonCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns whether this instance has an extension marked as CRITICAL that it cannot support.
				 */
				hasUnsupportedCriticalExtension(): boolean;
			}
			/**
			 * The exception that is thrown when a certification path (or certificate chain) cannot be validated.
			 */
			export class CertPathValidatorException extends java.security.GeneralSecurityException {
				/**
				 * Creates a new CertPathValidatorException with the specified message , cause, certification path and certificate index in the certification path.
				 * @param msg 
				 * @param cause 
				 * @param certPath 
				 * @param index 
				 */
				constructor(msg: string, cause: java.lang.Throwable, certPath: java.security.cert.CertPath, index: number);
				/**
				 * Creates a new CertPathValidatorException with the specified message and cause.
				 * @param msg 
				 * @param cause 
				 */
				constructor(msg: string, cause: java.lang.Throwable);
				/**
				 * Creates a new CertPathValidatorException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				/**
				 * Creates a new CertPathValidatorException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertPathValidatorException.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertPathValidatorException>;
				/**
				 * Returns the certification path that failed validation.
				 */
				public getCertPath(): java.security.cert.CertPath;
				/**
				 * Returns the index of the failed certificate in the certification path.
				 */
				public getIndex(): number;
			}
			/**
			 * The implementation of the result of the PKIX certification path validation.
			 */
			export class PKIXCertPathValidatorResult extends java.lang.Object implements java.security.cert.ICertPathValidatorResult {
				/**
				 * Creates a new PKIXCertPathValidatorResult with the specified trust anchor, the valid policy tree and the subject public key.
				 * @param trustAnchor 
				 * @param policyTree 
				 * @param subjectPublicKey 
				 */
				constructor(trustAnchor: java.security.cert.TrustAnchor, policyTree: java.security.cert.IPolicyNode, subjectPublicKey: java.security.IPublicKey);
				static class: java.lang.Class<java.security.cert.PKIXCertPathValidatorResult>;
				/**
				 * Returns the valid policy tree from the validation.
				 */
				public getPolicyTree(): java.security.cert.IPolicyNode;
				/**
				 * Returns the subject public key from the validation.
				 */
				public getPublicKey(): java.security.IPublicKey;
				/**
				 * Returns the trust anchor describing the certification authority (CA) that served as trust anchor for this certification path.
				 */
				public getTrustAnchor(): java.security.cert.TrustAnchor;
				/**
				 * Clones this PKIXCertPathValidatorResult instance.
				 */
				public clone(): any;
				/**
				 * Returns a string representation for this PKIXCertPathValidatorResult instance.
				 */
				public toString(): string;
			}
			/**
			 * This class represents Certificate Revocation Lists (CRLs) maintained by a certificate authority. They are used to indicate that a given Certificate has expired and consequently has become invalid.
			 */
			export class CRL extends java.lang.Object {
				static class: java.lang.Class<java.security.cert.CRL>;
				/**
				 * Returns the type of this CRL.
				 */
				public getType(): string;
				/**
				 * Returns whether the specified certificate is revoked by this CRL.
				 * @param cert 
				 */
				public isRevoked(cert: java.security.cert.Certificate): boolean;
				/**
				 * Returns the string representation of this instance.
				 */
				public toString(): string;
			}
			/**
			 * The parameters to initialize a LDAP CertStore instance.
			 */
			export class LDAPCertStoreParameters extends java.lang.Object implements java.security.cert.ICertStoreParameters {
				/**
				 * Creates a new LDAPCertStoreParameters instance with the specified server name and port.
				 * @param serverName 
				 * @param port 
				 */
				constructor(serverName: string, port: number);
				/**
				 * Creates a new LDAPCertStoreParameters instance with default parameters.
				 */
				constructor();
				/**
				 * Creates a new LDAPCertStoreParameters instance with the specified server name and default port 389.
				 * @param serverName 
				 */
				constructor(serverName: string);
				static class: java.lang.Class<java.security.cert.LDAPCertStoreParameters>;
				/**
				 * Clones this LDAPCertStoreParameters instance.
				 */
				public clone(): any;
				/**
				 * Returns the LDAP server port.
				 */
				public getPort(): number;
				/**
				 * Returns the LDAP server name.
				 */
				public getServerName(): string;
				/**
				 * Returns the string representation of this LDAPCertStoreParameters instance.
				 */
				public toString(): string;
			}
			/**
			 * The interface to a valid policy tree node for the PKIX certification path validation algorithm.
			 */
			export class PolicyNode implements java.security.cert.IPolicyNode {
				constructor(implementation: java.security.cert.IPolicyNode);
				/**
				 * Returns the list of children of this node as an Iterator.
				 */
				public getChildren(): java.util.IIterator<any>;
				/**
				 * Returns the depth of this node in the policy tree.
				 */
				public getDepth(): number;
				/**
				 * Returns the expected policies for the next certificate to be valid.
				 */
				public getExpectedPolicies(): java.util.ISet<string>;
				/**
				 * Returns the parent policy node.
				 */
				public getParent(): java.security.cert.IPolicyNode;
				/**
				 * Returns the policy qualifiers associated with the policy of this node.
				 */
				public getPolicyQualifiers(): java.util.ISet<any>;
				/**
				 * Returns the valid policy of this node.
				 */
				public getValidPolicy(): string;
				/**
				 * Returns whether the certificate policy extension of the most recently processed certificate is marked as critical.
				 */
				public isCritical(): boolean;
			}
			/**
			 * Abstract class to represent identity certificates. It represents a way to verify the binding of a Principal and its public key. Examples are X.509, PGP, and SDSI.
			 */
			export class Certificate extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.security.cert.Certificate>;
				/**
				 * Returns the certificate type.
				 */
				public getType(): string;
				/**
				 * Compares the argument to the certificate, and returns true if they represent the <em>same</em> object using a class specific comparison. The implementation in Object returns true only if the argument is the exact same object as the callee (==).
				 * @param other 
				 */
				public equals(other: any): boolean;
				/**
				 * Returns an integer hash code for the certificate. Any two objects which return true when passed to equals must return the same value for this method.
				 */
				public hashCode(): number;
				/**
				 * Returns the encoded representation for this certificate.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Verifies that this certificate was signed with the given public key.
				 * @param key 
				 */
				public verify(key: java.security.IPublicKey): void;
				/**
				 * Verifies that this certificate was signed with the given public key. It Uses the signature algorithm given by the provider.
				 * @param key 
				 * @param sigProvider 
				 */
				public verify(key: java.security.IPublicKey, sigProvider: string): void;
				/**
				 * Returns a string containing a concise, human-readable description of the certificate.
				 */
				public toString(): string;
				/**
				 * Returns the public key corresponding to this certificate.
				 */
				public getPublicKey(): java.security.IPublicKey;
				/**
				 * Returns an alternate object to be serialized.
				 */
				protected writeReplace(): any;
			}
			export module Certificate {
				/**
				 * The alternate Serializable class to be used for serialization and deserialization of Certificate objects.
				 */
				export class CertificateRep extends java.lang.Object implements java.io.ISerializable {
					static class: java.lang.Class<java.security.cert.Certificate.CertificateRep>;
					/**
					 * Deserializes a Certificate from a serialized CertificateRep object.
					 */
					protected readResolve(): any;
				}
			}
			/**
			 * The exception that is thrown when a Certificate is not yet valid or will not yet be valid on a specified date.
			 */
			export class CertificateNotYetValidException extends java.security.cert.CertificateException {
				/**
				 * Creates a new CertificateNotYetValidException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateNotYetValidException.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertificateNotYetValidException>;
			}
			/**
			 * The exception that is thrown when a Certificate has expired.
			 */
			export class CertificateExpiredException extends java.security.cert.CertificateException {
				/**
				 * Creates a new CertificateExpiredException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateExpiredException.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertificateExpiredException>;
			}
			/**
			 * The interface specifying an X.509 Certificate or CRL extension.
			 */
			export class X509Extension implements java.security.cert.IX509Extension {
				constructor(implementation: java.security.cert.IX509Extension);
				/**
				 * Returns the set of OIDs of the extension(s) marked as CRITICAL, that this implementation manages.
				 */
				public getCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns the extension value as DER-encoded OCTET string for the specified OID.
				 * @param oid 
				 */
				public getExtensionValue(oid: string): native.Array<number>;
				/**
				 * Returns the set of OIDs of the extension(s) marked as NON-CRITICAL, that this implementation manages.
				 */
				public getNonCriticalExtensionOIDs(): java.util.ISet<string>;
				/**
				 * Returns whether this instance has an extension marked as CRITICAL that it cannot support.
				 */
				public hasUnsupportedCriticalExtension(): boolean;
			}
			/**
			 * The interface for results generated by CertPathBuilder#build(CertPathParameters).
			 */
			export class CertPathBuilderResult implements java.lang.ICloneable, java.security.cert.ICertPathBuilderResult {
				constructor(implementation: java.security.cert.ICertPathBuilderResult);
				/**
				 * Clones this CertPathBuilderResult instance.
				 */
				public clone(): any;
				/**
				 * Returns the built CertPath instance. Never returns null.
				 */
				public getCertPath(): java.security.cert.CertPath;
			}
			/**
			 * A certificate selector (CertSelector for selecting X509Certificates that match the specified criteria.
			 */
			export class X509CertSelector extends java.lang.Object implements java.security.cert.ICertSelector {
				/**
				 * Creates a new X509CertSelector.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.X509CertSelector>;
				/**
				 * Sets the certificate that a matching certificate must be equal to.
				 * @param certificate 
				 */
				public setCertificate(certificate: java.security.cert.X509Certificate): void;
				/**
				 * Returns the certificate that a matching certificate must be equal to.
				 */
				public getCertificate(): java.security.cert.X509Certificate;
				/**
				 * Sets the serial number that a certificate must match.
				 * @param serialNumber 
				 */
				public setSerialNumber(serialNumber: java.math.BigInteger): void;
				/**
				 * Returns the serial number that a certificate must match.
				 */
				public getSerialNumber(): java.math.BigInteger;
				/**
				 * Sets the issuer that a certificate must match.
				 * @param issuer 
				 */
				public setIssuer(issuer: javax.security.auth.x500.X500Principal): void;
				/**
				 * Returns the issuer that a certificate must match.
				 */
				public getIssuer(): javax.security.auth.x500.X500Principal;
				/**
				 * <b>Do not use</b>, use #getIssuer() or #getIssuerAsBytes() instead. Sets the issuer that a certificate must match.
				 * @param issuerName 
				 */
				public setIssuer(issuerName: string): void;
				/**
				 * <b>Do not use</b>, use #getIssuer() or #getIssuerAsBytes() instead. Returns the issuer that a certificate must match in a RFC 2253 format string.
				 */
				public getIssuerAsString(): string;
				/**
				 * Sets the issuer that a certificate must match.
				 * @param issuerDN 
				 */
				public setIssuer(issuerDN: native.Array<number>): void;
				/**
				 * Returns the issuer that a certificate must match.
				 */
				public getIssuerAsBytes(): native.Array<number>;
				/**
				 * Set the subject that a certificate must match.
				 * @param subject 
				 */
				public setSubject(subject: javax.security.auth.x500.X500Principal): void;
				/**
				 * Returns the subject that a certificate must match.
				 */
				public getSubject(): javax.security.auth.x500.X500Principal;
				/**
				 * <b>Do not use</b>, use #setSubject(byte[]) or #setSubject(X500Principal) instead. Returns the subject that a certificate must match.
				 * @param subjectDN 
				 */
				public setSubject(subjectDN: string): void;
				/**
				 * <b>Do not use</b>, use #getSubject() or #getSubjectAsBytes() instead. Returns the subject that a certificate must match.
				 */
				public getSubjectAsString(): string;
				/**
				 * Sets the subject that a certificate must match.
				 * @param subjectDN 
				 */
				public setSubject(subjectDN: native.Array<number>): void;
				/**
				 * Returns the subject that a certificate must match.
				 */
				public getSubjectAsBytes(): native.Array<number>;
				/**
				 * Sets the criterion for the SubjectKeyIdentifier extension.
				 * @param subjectKeyIdentifier 
				 */
				public setSubjectKeyIdentifier(subjectKeyIdentifier: native.Array<number>): void;
				/**
				 * Returns the criterion for the SubjectKeyIdentifier extension.
				 */
				public getSubjectKeyIdentifier(): native.Array<number>;
				/**
				 * Sets the criterion for the AuthorityKeyIdentifier extension.
				 * @param authorityKeyIdentifier 
				 */
				public setAuthorityKeyIdentifier(authorityKeyIdentifier: native.Array<number>): void;
				/**
				 * Returns the criterion for the AuthorityKeyIdentifier extension.
				 */
				public getAuthorityKeyIdentifier(): native.Array<number>;
				/**
				 * Sets the criterion for the validity date of the certificate.
				 * @param certificateValid 
				 */
				public setCertificateValid(certificateValid: java.util.Date): void;
				/**
				 * Returns the criterion for the validity date of the certificate.
				 */
				public getCertificateValid(): java.util.Date;
				/**
				 * Sets the criterion for the validity date of the private key.
				 * @param privateKeyValid 
				 */
				public setPrivateKeyValid(privateKeyValid: java.util.Date): void;
				/**
				 * Returns the criterion for the validity date of the private key.
				 */
				public getPrivateKeyValid(): java.util.Date;
				/**
				 * Sets the criterion for the subject public key signature algorithm.
				 * @param oid 
				 */
				public setSubjectPublicKeyAlgID(oid: string): void;
				/**
				 * Returns the criterion for the subject public key signature algorithm.
				 */
				public getSubjectPublicKeyAlgID(): string;
				/**
				 * Sets the criterion for the subject public key.
				 * @param key 
				 */
				public setSubjectPublicKey(key: java.security.IPublicKey): void;
				/**
				 * Sets the criterion for the subject public key.
				 * @param key 
				 */
				public setSubjectPublicKey(key: native.Array<number>): void;
				/**
				 * Returns the criterion for the subject public key.
				 */
				public getSubjectPublicKey(): java.security.IPublicKey;
				/**
				 * Sets the criterion for the KeyUsage extension.
				 * @param keyUsage 
				 */
				public setKeyUsage(keyUsage: native.Array<boolean>): void;
				/**
				 * Returns the criterion for the KeyUsage extension.
				 */
				public getKeyUsage(): native.Array<boolean>;
				/**
				 * Sets the criterion for the ExtendedKeyUsage extension.
				 * @param keyUsage 
				 */
				public setExtendedKeyUsage(keyUsage: java.util.ISet<string>): void;
				/**
				 * Returns the criterion for the ExtendedKeyUsage extension.
				 */
				public getExtendedKeyUsage(): java.util.ISet<string>;
				/**
				 * Sets the flag for the matching behavior for subject alternative names.
				 * @param matchAllNames 
				 */
				public setMatchAllSubjectAltNames(matchAllNames: boolean): void;
				/**
				 * Returns the flag for the matching behavior for subject alternative names.
				 */
				public getMatchAllSubjectAltNames(): boolean;
				/**
				 * Sets the criterion for subject alternative names.
				 * @param names 
				 */
				public setSubjectAlternativeNames(names: java.util.ICollection<java.util.IList<any>>): void;
				/**
				 * Adds a subject alternative name to the respective criterion.
				 * @param tag 
				 * @param name 
				 */
				public addSubjectAlternativeName(tag: number, name: string): void;
				/**
				 * Adds a subject alternative name to the respective criterion.
				 * @param tag 
				 * @param name 
				 */
				public addSubjectAlternativeName(tag: number, name: native.Array<number>): void;
				/**
				 * Returns the criterion for subject alternative names.
				 */
				public getSubjectAlternativeNames(): java.util.ICollection<java.util.IList<any>>;
				/**
				 * Sets the criterion for the name constraints.
				 * @param bytes 
				 */
				public setNameConstraints(bytes: native.Array<number>): void;
				/**
				 * Returns the criterion for the name constraints.
				 */
				public getNameConstraints(): native.Array<number>;
				/**
				 * Sets the criterion for the basic constraints extension.
				 * @param pathLen 
				 */
				public setBasicConstraints(pathLen: number): void;
				/**
				 * Returns the criterion for the basic constraints extension.
				 */
				public getBasicConstraints(): number;
				/**
				 * Sets the criterion for the policy constraint.
				 * @param policies 
				 */
				public setPolicy(policies: java.util.ISet<string>): void;
				/**
				 * Returns the criterion for the policy constraint.
				 */
				public getPolicy(): java.util.ISet<string>;
				/**
				 * Adds a "pathToName" to the respective criterion.
				 * @param type 
				 * @param name 
				 */
				public addPathToName(type: number, name: string): void;
				/**
				 * Sets the criterion for the pathToNames constraint.
				 * @param names 
				 */
				public setPathToNames(names: java.util.ICollection<java.util.IList<any>>): void;
				/**
				 * Adds a "pathToName" to the respective criterion.
				 * @param type 
				 * @param name 
				 */
				public addPathToName(type: number, name: native.Array<number>): void;
				/**
				 * Returns the criterion for the pathToNames constraint.
				 */
				public getPathToNames(): java.util.ICollection<java.util.IList<any>>;
				/**
				 * Returns a string representation of this X509CertSelector instance.
				 */
				public toString(): string;
				/**
				 * Returns whether the specified certificate matches all the criteria collected in this instance.
				 * @param certificate 
				 */
				public match(certificate: java.security.cert.Certificate): boolean;
				/**
				 * Clones this X509CertSelector instance.
				 */
				public clone(): any;
			}
			/**
			 * The interface specification for certification path algorithm parameters.
			 */
			export class CertPathParameters implements java.lang.ICloneable, java.security.cert.ICertPathParameters {
				constructor(implementation: java.security.cert.ICertPathParameters);
				/**
				 * Clones this CertPathParameters instance.
				 */
				public clone(): any;
			}
			/**
			 * The <i>Service Provider Interface</i> (<b>SPI</b>) definition for the CertStore class to be implemented by security providers.
			 */
			export class CertStoreSpi extends java.lang.Object {
				/**
				 * Creates a new CertStoreSpi.
				 * @param params 
				 */
				constructor(params: java.security.cert.ICertStoreParameters);
				static class: java.lang.Class<java.security.cert.CertStoreSpi>;
				/**
				 * Returns the list of Certificates for the specified CertSelector from this instance.
				 * @param selector 
				 */
				public engineGetCertificates(selector: java.security.cert.ICertSelector): java.util.ICollection<any>;
				/**
				 * Returns the list of CRLs for the specified CRLSelector from this instance.
				 * @param selector 
				 */
				public engineGetCRLs(selector: java.security.cert.ICRLSelector): java.util.ICollection<any>;
			}
			/**
			 * This class implements the functionality of a certificate factory algorithm, relying on parsing a stream of bytes.
			 */
			export class CertificateFactory extends java.lang.Object {
				static class: java.lang.Class<java.security.cert.CertificateFactory>;
				/**
				 * Creates a new CertificateFactory instance that provides the requested certificate type.
				 * @param type 
				 */
				public static getInstance(type: string): java.security.cert.CertificateFactory;
				/**
				 * Creates a new CertificateFactory instance from the specified provider that provides the requested certificate type.
				 * @param type 
				 * @param provider 
				 */
				public static getInstance(type: string, provider: string): java.security.cert.CertificateFactory;
				/**
				 * Creates a new CertificateFactory instance from the specified provider that provides the requested certificate type.
				 * @param type 
				 * @param provider 
				 */
				public static getInstance(type: string, provider: java.security.Provider): java.security.cert.CertificateFactory;
				/**
				 * Returns the Provider of the certificate factory represented by the certificate.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Returns the Certificate type.
				 */
				public getType(): string;
				/**
				 * Generates and initializes a Certificate from the provided input stream.
				 * @param inStream 
				 */
				public generateCertificate(inStream: java.io.InputStream): java.security.cert.Certificate;
				/**
				 * Returns an Iterator over the supported CertPath encodings (as Strings). The first element is the default encoding scheme to apply.
				 */
				public getCertPathEncodings(): java.util.IIterator<string>;
				/**
				 * Generates a CertPath (a certificate chain) from the provided InputStream. The default encoding scheme is applied.
				 * @param inStream 
				 */
				public generateCertPath(inStream: java.io.InputStream): java.security.cert.CertPath;
				/**
				 * Generates a CertPath (a certificate chain) from the provided InputStream and the specified encoding scheme.
				 * @param inStream 
				 * @param encoding 
				 */
				public generateCertPath(inStream: java.io.InputStream, encoding: string): java.security.cert.CertPath;
				/**
				 * Generates a CertPath from the provided list of certificates. The encoding is the default encoding.
				 * @param certificates 
				 */
				public generateCertPath(certificates: java.util.IList<any>): java.security.cert.CertPath;
				/**
				 * Generates and initializes a collection of (unrelated) certificates from the provided input stream.
				 * @param inStream 
				 */
				public generateCertificates(inStream: java.io.InputStream): java.util.ICollection<any>;
				/**
				 * Generates and initializes a <i>Certificate Revocation List</i> (CRL) from the provided input stream.
				 * @param inStream 
				 */
				public generateCRL(inStream: java.io.InputStream): java.security.cert.CRL;
				/**
				 * Generates and initializes a collection of <i>Certificate Revocation List</i> (CRL) from the provided input stream.
				 * @param inStream 
				 */
				public generateCRLs(inStream: java.io.InputStream): java.util.ICollection<any>;
			}
			/**
			 * The parameters to initialize a <i>Collection</i> type CertStore instance.
			 */
			export class CollectionCertStoreParameters extends java.lang.Object implements java.security.cert.ICertStoreParameters {
				/**
				 * Creates a new CollectionCertStoreParameters without a collection.
				 */
				constructor();
				/**
				 * Creates a new CollectionCertStoreParameters with the specified collection.
				 * @param collection 
				 */
				constructor(collection: java.util.ICollection<any>);
				static class: java.lang.Class<java.security.cert.CollectionCertStoreParameters>;
				/**
				 * Clones this CollectionCertStoreParameters instance, but not the underlying collection.
				 */
				public clone(): any;
				/**
				 * Returns the collection where the Certificates and CRLs are retrieved from.
				 */
				public getCollection(): java.util.ICollection<any>;
				/**
				 * Returns the string representation of this instance.
				 */
				public toString(): string;
			}
			/**
			 * This class implements the parameters for the PKIX CertPathValidator.
			 */
			export class PKIXParameters extends java.lang.Object implements java.security.cert.ICertPathParameters {
				/**
				 * Creates a new PKIXParameters instance with the specified set of <i>trusted</i> certificate authorities.
				 * @param trustAnchors 
				 */
				constructor(trustAnchors: java.util.ISet<java.security.cert.TrustAnchor>);
				/**
				 * Creates a new PKIXParameters instance with the trusted X509Certificate entries from the specified KeyStore.
				 * @param keyStore 
				 */
				constructor(keyStore: java.security.KeyStore);
				static class: java.lang.Class<java.security.cert.PKIXParameters>;
				/**
				 * Returns a unmodifiable set of the <i>trusted</i> certificate authorities.
				 */
				public getTrustAnchors(): java.util.ISet<java.security.cert.TrustAnchor>;
				/**
				 * Sets the set of <i>trusted</i> certificate authorities.
				 * @param trustAnchors 
				 */
				public setTrustAnchors(trustAnchors: java.util.ISet<java.security.cert.TrustAnchor>): void;
				/**
				 * Returns whether the <i>any policy OID</i> will be inhibited if it's included in a certificate.
				 */
				public isAnyPolicyInhibited(): boolean;
				/**
				 * Sets whether the <i>any policy OID</i> should be inhibited if it's included in a certificate.
				 * @param anyPolicyInhibited 
				 */
				public setAnyPolicyInhibited(anyPolicyInhibited: boolean): void;
				/**
				 * Returns the list of checkers for the certification path.
				 */
				public getCertPathCheckers(): java.util.IList<java.security.cert.PKIXCertPathChecker>;
				/**
				 * Sets the list of checkers for the certification path.
				 * @param certPathCheckers 
				 */
				public setCertPathCheckers(certPathCheckers: java.util.IList<java.security.cert.PKIXCertPathChecker>): void;
				/**
				 * Adds the specified PKIXCertPathChecker to the list of certification path checkers.
				 * @param checker 
				 */
				public addCertPathChecker(checker: java.security.cert.PKIXCertPathChecker): void;
				/**
				 * Returns the list of certificate stores that are used to find certificates and CRLs.
				 */
				public getCertStores(): java.util.IList<java.security.cert.CertStore>;
				/**
				 * Set the list of certificate stores that are used to find certificates and CRLs.
				 * @param certStores the list of certificate stores.
				 */
				public setCertStores(certStores: java.util.IList<java.security.cert.CertStore>): void;
				/**
				 * Adds a certificate store to the list of certificate stores that are used to find certificates and CRLs.
				 * @param store 
				 */
				public addCertStore(store: java.security.cert.CertStore): void;
				/**
				 * Returns the time for which the validation of the certification path should be evaluated.
				 */
				public getDate(): java.util.Date;
				/**
				 * Sets the time for which the validation of the certification path should be evaluated.
				 * @param date 
				 */
				public setDate(date: java.util.Date): void;
				/**
				 * Returns whether an acceptable policy needs to be explicit identified in every certificate.
				 */
				public isExplicitPolicyRequired(): boolean;
				/**
				 * Sets whether an an acceptable policy needs to be explicit identified in every certificate.
				 * @param explicitPolicyRequired 
				 */
				public setExplicitPolicyRequired(explicitPolicyRequired: boolean): void;
				/**
				 * Returns the list of policies (as OID strings) that would be acceptable for the purpose of certification path processing.
				 */
				public getInitialPolicies(): java.util.ISet<string>;
				/**
				 * Sets the list of policies (as OID strings) that would be acceptable for the purpose of certification path processing.
				 * @param initialPolicies 
				 */
				public setInitialPolicies(initialPolicies: java.util.ISet<string>): void;
				/**
				 * Returns whether policy mapping is inhibited.
				 */
				public isPolicyMappingInhibited(): boolean;
				/**
				 * Sets whether policy mapping is to be inhibited.
				 * @param policyMappingInhibited 
				 */
				public setPolicyMappingInhibited(policyMappingInhibited: boolean): void;
				/**
				 * Returns whether certificates are rejected that include policy qualifiers in a certificate policy extension that is marked as critical.
				 */
				public getPolicyQualifiersRejected(): boolean;
				/**
				 * Sets whether certificates should be rejected that include policy qualifiers in a certificate policy extension that is marked as critical.
				 * @param policyQualifiersRejected 
				 */
				public setPolicyQualifiersRejected(policyQualifiersRejected: boolean): void;
				/**
				 * Returns whether the default revocation checking mechanism of the underlying service provider is used.
				 */
				public isRevocationEnabled(): boolean;
				/**
				 * Sets whether the default revocation checking mechanism of the underlying service provider should be used.
				 * @param revocationEnabled 
				 */
				public setRevocationEnabled(revocationEnabled: boolean): void;
				/**
				 * Returns the name of the signature provider.
				 */
				public getSigProvider(): string;
				/**
				 * Sets the name of the preferred signature provider.
				 * @param sigProvider 
				 */
				public setSigProvider(sigProvider: string): void;
				/**
				 * Returns the constraints that are required for the target certificate.
				 */
				public getTargetCertConstraints(): java.security.cert.ICertSelector;
				/**
				 * Sets the constraints that are required for the target certificate.
				 * @param targetCertConstraints 
				 */
				public setTargetCertConstraints(targetCertConstraints: java.security.cert.ICertSelector): void;
				/**
				 * Clones this PKIXParameters instance.
				 */
				public clone(): any;
				/**
				 * Returns a string representation of this PKIXParameters instance.
				 */
				public toString(): string;
			}
			/**
			 * The exception that is thrown when a CertPathBuilder method fails.
			 */
			export class CertPathBuilderException extends java.security.GeneralSecurityException {
				/**
				 * Creates a new CertPathBuilderException with the specified message and cause.
				 * @param msg 
				 * @param cause 
				 */
				constructor(msg: string, cause: java.lang.Throwable);
				/**
				 * Creates a new CertPathBuilderException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				/**
				 * Creates a new CertPathBuilderException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertPathBuilderException.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertPathBuilderException>;
			}
			/**
			 * The class specifying the interface to extend the certification path validation algorithm by checks to perform on an X509Certificate.
			 */
			export class PKIXCertPathChecker extends java.lang.Object implements java.lang.ICloneable {
				static class: java.lang.Class<java.security.cert.PKIXCertPathChecker>;
				/**
				 * Clones this PKIXCertPathChecker instance.
				 */
				public clone(): any;
				/**
				 * Initializes this PKIXCertPathChecker instance for specified <i>checking direction</i>.
				 * @param forward 
				 */
				public init(forward: boolean): void;
				/**
				 * Returns whether this PKIXCertPathChecker instance supports <i>forward checking</i>.
				 */
				public isForwardCheckingSupported(): boolean;
				/**
				 * Returns the list of extensions of X.509 certificates that this PKIXCertPathChecker is able to process.
				 */
				public getSupportedExtensions(): java.util.ISet<string>;
				/**
				 * Checks the specified certificate and removes the processed critical extensions from the specified list of X.509 extension <i>OID</i>s.
				 * @param cert 
				 * @param unresolvedCritExts 
				 */
				public check(cert: java.security.cert.Certificate, unresolvedCritExts: java.util.ICollection<string>): void;
			}
			/**
			 * This class implements the functionality of a builder for an unverified <i>Certification Path</i>s from a specified certificate to a trust anchor.
			 */
			export class CertPathBuilder extends java.lang.Object {
				static class: java.lang.Class<java.security.cert.CertPathBuilder>;
				/**
				 * Returns the algorithm name of this instance.
				 */
				public getAlgorithm(): string;
				/**
				 * Returns the provider of this instance.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Creates a new CertPathBuilder instance with the specified algorithm.
				 * @param algorithm 
				 */
				public static getInstance(algorithm: string): java.security.cert.CertPathBuilder;
				/**
				 * Creates a new CertPathBuilder instance from the specified provider providing the specified algorithm.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: string): java.security.cert.CertPathBuilder;
				/**
				 * Creates a new CertPathBuilder instance from the specified provider providing the specified algorithm.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: java.security.Provider): java.security.cert.CertPathBuilder;
				/**
				 * Builds a certification path with the specified algorithm parameters.
				 * @param params 
				 */
				public build(params: java.security.cert.ICertPathParameters): java.security.cert.ICertPathBuilderResult;
				/**
				 * Returns the default CertPathBuilder type from the <i>Security Properties</i>.
				 */
				public static getDefaultType(): string;
			}
			/**
			 * An immutable certificate path that can be validated. All certificates in the path are of the same type (i.e., X509).
			 */
			export class CertPath extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.security.cert.CertPath>;
				/**
				 * Returns the type of Certificate in this instance.
				 */
				public getType(): string;
				/**
				 * Returns true if Certificates in the list are the same type and the lists are equal (and by implication the certificates contained within are the same).
				 * @param other 
				 */
				public equals(other: any): boolean;
				/**
				 * Overrides Object.hashCode(). The function is defined as follows: <pre> hashCode = 31 * path.getType().hashCode() + path.getCertificates().hashCode(); </pre>
				 */
				public hashCode(): number;
				/**
				 * Returns a String representation of this CertPath instance. It is the result of calling toString on all Certificates in the List.
				 */
				public toString(): string;
				/**
				 * Returns an immutable List of the Certificates contained in the CertPath.
				 */
				public getCertificates(): java.util.IList<any>;
				/**
				 * Returns an encoding of the CertPath using the default encoding.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Returns an encoding of the CertPath using the specified encoding.
				 * @param encoding 
				 */
				public getEncoded(encoding: string): native.Array<number>;
				/**
				 * Returns an Iterator over the supported encodings for a representation of the certificate path.
				 */
				public getEncodings(): java.util.IIterator<string>;
				/**
				 * Returns an alternate object to be serialized.
				 */
				protected writeReplace(): any;
			}
			export module CertPath {
				/**
				 * The alternate Serializable class to be used for serialization and deserialization on CertPath objects.
				 */
				export class CertPathRep extends java.lang.Object implements java.io.ISerializable {
					static class: java.lang.Class<java.security.cert.CertPath.CertPathRep>;
					/**
					 * Deserializes a CertPath from a serialized CertPathRep object.
					 */
					protected readResolve(): any;
				}
			}
			/**
			 * The exception that is thrown if errors occur during handling of CRLs.
			 */
			export class CRLException extends java.security.GeneralSecurityException {
				/**
				 * Creates a new CRLException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CRLException.
				 */
				constructor();
				/**
				 * Creates a new CRLException with the specified message and cause.
				 * @param message 
				 * @param cause 
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Creates a new CRLException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.security.cert.CRLException>;
			}
			/**
			 * A CRL selector (CRLSelector for selecting X509CRLs that match the specified criteria.
			 */
			export class X509CRLSelector extends java.lang.Object implements java.security.cert.ICRLSelector {
				/**
				 * Creates a new X509CertSelector.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.X509CRLSelector>;
				/**
				 * Sets the criterion for the issuer distinguished names.
				 * @param issuers 
				 */
				public setIssuers(issuers: java.util.ICollection<javax.security.auth.x500.X500Principal>): void;
				/**
				 * <b>Do not use:</b> use #setIssuers(Collection) or one of #addIssuerName instead. Sets the criterion for the issuer distinguished names.
				 * @param names 
				 */
				public setIssuerNames(names: java.util.ICollection<any>): void;
				/**
				 * Adds an issuer to the criterion for the issuer distinguished names.
				 * @param issuer 
				 */
				public addIssuer(issuer: javax.security.auth.x500.X500Principal): void;
				/**
				 * <b>Do not use:</b>, use #addIssuer(X500Principal) or #addIssuerName(byte[]) instead. It can fail to match some CRLs because of a loss of encoding information in a RFC 2253 string.
				 * @param iss_name 
				 */
				public addIssuerName(iss_name: string): void;
				/**
				 * Adds an issuer to the criterion for the issuer distinguished names.
				 * @param iss_name 
				 */
				public addIssuerName(iss_name: native.Array<number>): void;
				/**
				 * Sets the criterion for the minimum CRL number.
				 * @param minCRL 
				 */
				public setMinCRLNumber(minCRL: java.math.BigInteger): void;
				/**
				 * Sets the criterion for the maximum CRL number.
				 * @param maxCRL 
				 */
				public setMaxCRLNumber(maxCRL: java.math.BigInteger): void;
				/**
				 * Sets the criterion for the CRL update period.
				 * @param dateAndTime 
				 */
				public setDateAndTime(dateAndTime: java.util.Date): void;
				/**
				 * Sets a certificate hint to find CRLs. It's not a criterion but may help finding relevant CRLs.
				 * @param cert 
				 */
				public setCertificateChecking(cert: java.security.cert.X509Certificate): void;
				/**
				 * Returns the criterion for the issuer distinguished names.
				 */
				public getIssuers(): java.util.ICollection<javax.security.auth.x500.X500Principal>;
				/**
				 * Returns the criterion for the issuer distinguished names.
				 */
				public getIssuerNames(): java.util.ICollection<any>;
				/**
				 * Returns the criterion for the minimum CRL number.
				 */
				public getMinCRL(): java.math.BigInteger;
				/**
				 * Returns the criterion for the maximum CRL number.
				 */
				public getMaxCRL(): java.math.BigInteger;
				/**
				 * Returns the criterion for the CRL update period.
				 */
				public getDateAndTime(): java.util.Date;
				/**
				 * Returns the certificate hint to find CRLs. It's not a criterion but may help finding relevant CRLs.
				 */
				public getCertificateChecking(): java.security.cert.X509Certificate;
				/**
				 * Returns a string representation of this X509CRLSelector instance.
				 */
				public toString(): string;
				/**
				 * Returns whether the specified CRL matches all the criteria collected in this instance.
				 * @param crl 
				 */
				public match(crl: java.security.cert.CRL): boolean;
				/**
				 * Clones this X509CRL instance.
				 */
				public clone(): any;
			}
			/**
			 * The interface specification for determining whether a CRL meets some criteria to select CRL objects among a set of CRLs.
			 */
			interface ICRLSelector extends java.lang.ICloneable {
				/**
				 * Clones this CRLSelector instance.
				 */
				clone(): any;
				/**
				 * Checks whether the defined criteria of this instance match the specified CRL.
				 * @param crl 
				 */
				match(crl: java.security.cert.CRL): boolean;
			}
			/**
			 * The exception that is thrown when an error occurs while a Certificate is being encoded.
			 */
			export class CertificateEncodingException extends java.security.cert.CertificateException {
				/**
				 * Creates a new CertificateEncodingException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateEncodingException.
				 */
				constructor();
				/**
				 * Creates a new CertificateEncodingException with the specified message and cause.
				 * @param message 
				 * @param cause 
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Creates a new CertificateEncodingException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.security.cert.CertificateEncodingException>;
			}
			/**
			 * The <i>Service Provider Interface</i> (<b>SPI</b>) for the CertPathValidator class to be implemented by security providers.
			 */
			export class CertPathValidatorSpi extends java.lang.Object {
				/**
				 * Creates a new CertPathValidatorSpi instance.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertPathValidatorSpi>;
				/**
				 * Validates the CertPath with the algorithm of this CertPathValidator using the specified algorithm parameters.
				 * @param certPath 
				 * @param params 
				 */
				public engineValidate(certPath: java.security.cert.CertPath, params: java.security.cert.ICertPathParameters): java.security.cert.ICertPathValidatorResult;
			}
			/**
			 * The <i>Service Provider Interface</i> (<b>SPI</b>) for the CertPathBuilder class to be implemented by security providers.
			 */
			export class CertPathBuilderSpi extends java.lang.Object {
				/**
				 * Creates a new CertPathBuilderSpi instance.
				 */
				constructor();
				static class: java.lang.Class<java.security.cert.CertPathBuilderSpi>;
				/**
				 * Builds a certification path with the specified algorithm parameters.
				 * @param params 
				 */
				public engineBuild(params: java.security.cert.ICertPathParameters): java.security.cert.ICertPathBuilderResult;
			}
			/**
			 * This class provides the functionality for validating certification paths (certificate chains) establishing a trust chain from a certificate to a trust anchor.
			 */
			export class CertPathValidator extends java.lang.Object {
				static class: java.lang.Class<java.security.cert.CertPathValidator>;
				/**
				 * Returns the certification path algorithm name.
				 */
				public getAlgorithm(): string;
				/**
				 * Returns the security provider.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Returns a new certification path validator for the specified algorithm.
				 * @param algorithm 
				 */
				public static getInstance(algorithm: string): java.security.cert.CertPathValidator;
				/**
				 * Returns a new certification path validator for the specified algorithm from the specified provider.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: string): java.security.cert.CertPathValidator;
				/**
				 * Returns a new certification path validator for the specified algorithm from the specified provider.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: java.security.Provider): java.security.cert.CertPathValidator;
				/**
				 * Validates the CertPath with the algorithm of this CertPathValidator using the specified algorithm parameters.
				 * @param certPath 
				 * @param params 
				 */
				public validate(certPath: java.security.cert.CertPath, params: java.security.cert.ICertPathParameters): java.security.cert.ICertPathValidatorResult;
				/**
				 * Returns the default CertPathValidator type from the <i>Security Properties</i>.
				 */
				public static getDefaultType(): string;
			}
			/**
			 * The interface specification for certification path algorithm parameters.
			 */
			interface ICertPathParameters extends java.lang.ICloneable {
				/**
				 * Clones this CertPathParameters instance.
				 */
				clone(): any;
			}
			/**
			 * The interface to a valid policy tree node for the PKIX certification path validation algorithm.
			 */
			interface IPolicyNode {
				/**
				 * Returns the list of children of this node as an Iterator.
				 */
				getChildren(): java.util.IIterator<any>;
				/**
				 * Returns the depth of this node in the policy tree.
				 */
				getDepth(): number;
				/**
				 * Returns the expected policies for the next certificate to be valid.
				 */
				getExpectedPolicies(): java.util.ISet<string>;
				/**
				 * Returns the parent policy node.
				 */
				getParent(): java.security.cert.IPolicyNode;
				/**
				 * Returns the policy qualifiers associated with the policy of this node.
				 */
				getPolicyQualifiers(): java.util.ISet<any>;
				/**
				 * Returns the valid policy of this node.
				 */
				getValidPolicy(): string;
				/**
				 * Returns whether the certificate policy extension of the most recently processed certificate is marked as critical.
				 */
				isCritical(): boolean;
			}
			/**
			 * This class provides the functionality to retrieve Certificates and CRLs from a read-only repository. This repository may be very large and may store trusted as well as untrusted certificates.
			 */
			export class CertStore extends java.lang.Object {
				static class: java.lang.Class<java.security.cert.CertStore>;
				/**
				 * Creates a new CertStore instance with the specified type and initialized with the specified parameters.
				 * @param type 
				 * @param params 
				 */
				public static getInstance(type: string, params: java.security.cert.ICertStoreParameters): java.security.cert.CertStore;
				/**
				 * Creates a new CertStore instance from the specified provider with the specified type and initialized with the specified parameters.
				 * @param type 
				 * @param params 
				 * @param provider 
				 */
				public static getInstance(type: string, params: java.security.cert.ICertStoreParameters, provider: string): java.security.cert.CertStore;
				/**
				 * Creates a new CertStore instance from the specified provider with the specified type and initialized with the specified parameters.
				 * @param type 
				 * @param params 
				 * @param provider 
				 */
				public static getInstance(type: string, params: java.security.cert.ICertStoreParameters, provider: java.security.Provider): java.security.cert.CertStore;
				/**
				 * Returns the certificate store type.
				 */
				public getType(): string;
				/**
				 * Returns the security provider.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Returns a copy of the certificate store parameters that were used to initialize this instance.
				 */
				public getCertStoreParameters(): java.security.cert.ICertStoreParameters;
				/**
				 * Returns the list of Certificates for the specified CertSelector from this certificate store.
				 * @param selector 
				 */
				public getCertificates(selector: java.security.cert.ICertSelector): java.util.ICollection<any>;
				/**
				 * Returns the list of CRLs for the specified CRLSelector from this certificate store.
				 * @param selector 
				 */
				public getCRLs(selector: java.security.cert.ICRLSelector): java.util.ICollection<any>;
				/**
				 * Returns the default CertStore type from the <i>Security Properties</i>.
				 */
				public static getDefaultType(): string;
			}
		}
		/**
		 * SignatureException is a general Signature exception.
		 */
		export class SignatureException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of SignatureException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of SignatureException.
			 */
			constructor();
			/**
			 * Constructs a new instance of SignatureException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of SignatureException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.SignatureException>;
		}
		export module acl {
			/**
			 * A Principal that represents a group of principals.
			 */
			export class Group implements java.security.IPrincipal, java.security.acl.IGroup {
				constructor(implementation: java.security.acl.IGroup);
				/**
				 * Adds a member to this group.
				 * @param user 
				 */
				public addMember(user: java.security.IPrincipal): boolean;
				/**
				 * Removes a member from this group.
				 * @param user 
				 */
				public removeMember(user: java.security.IPrincipal): boolean;
				/**
				 * Returns whether the specified principal is a member of this group.
				 * @param member 
				 */
				public isMember(member: java.security.IPrincipal): boolean;
				/**
				 * Returns the members of this group.
				 */
				public members(): java.util.IEnumeration<any>;
				/**
				 * Compares the specified object with this Principal for equality and returns true if the specified object is equal, false otherwise.
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the name of this Principal.
				 */
				getName(): string;
				/**
				 * Returns the hash code value for this Principal. Returns the same hash code for Principals that are equal to each other as required by the general contract of Object#hashCode.
				 */
				hashCode(): number;
				/**
				 * Returns a string containing a concise, human-readable description of this Principal.
				 */
				toString(): string;
			}
			/**
			 * The interface to manage owners of objects that require ownership.
			 */
			export class Owner implements java.security.acl.IOwner {
				constructor(implementation: java.security.acl.IOwner);
				/**
				 * Adds a principal to the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				public addOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Removes a principal from the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				public deleteOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Checks whether the specified principal is an owner of this object.
				 * @param owner 
				 */
				public isOwner(owner: java.security.IPrincipal): boolean;
			}
			/**
			 * The exception that is thrown when an action that requires ownership is attempted by a principal that is not an owner of the object for which ownership is required.
			 */
			export class NotOwnerException extends java.lang.Exception {
				/**
				 * Creates a new NotOwnerException.
				 */
				constructor();
				static class: java.lang.Class<java.security.acl.NotOwnerException>;
			}
			/**
			 * The <i>Access Control List</i> (<b>ACL</b>) interface definition.
			 */
			interface IAcl extends java.security.acl.IOwner {
				/**
				 * Sets the name of this <i>ACL</i> instance.
				 * @param caller 
				 * @param name 
				 */
				setName(caller: java.security.IPrincipal, name: string): void;
				/**
				 * Returns the name of this <i>ACL</i> instance.
				 */
				getName(): string;
				/**
				 * Adds an AclEntry to this <i>ACL</i> instance.
				 * @param caller 
				 * @param entry 
				 */
				addEntry(caller: java.security.IPrincipal, entry: java.security.acl.IAclEntry): boolean;
				/**
				 * Removes an AclEntry from this <i>ACL</i> instance.
				 * @param caller 
				 * @param entry 
				 */
				removeEntry(caller: java.security.IPrincipal, entry: java.security.acl.IAclEntry): boolean;
				/**
				 * Returns the set of allowed permissions for the specified Principal.
				 * @param user 
				 */
				getPermissions(user: java.security.IPrincipal): java.util.IEnumeration<java.security.acl.IPermission>;
				/**
				 * Returns an Enumeration of the AclEntry of this <i>ACL</i>.
				 */
				entries(): java.util.IEnumeration<java.security.acl.IAclEntry>;
				/**
				 * Checks whether the specified principal is granted the specified permission.
				 * @param principal 
				 * @param permission 
				 */
				checkPermission(principal: java.security.IPrincipal, permission: java.security.acl.IPermission): boolean;
				/**
				 * Returns the string representation of this ACL.
				 */
				toString(): string;
				/**
				 * Adds a principal to the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				addOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Removes a principal from the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				deleteOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Checks whether the specified principal is an owner of this object.
				 * @param owner 
				 */
				isOwner(owner: java.security.IPrincipal): boolean;
			}
			/**
			 * The exception, that is thrown when a reference to a non-existent <i>Access Control List</i> (ACL) is made.
			 */
			export class AclNotFoundException extends java.lang.Exception {
				/**
				 * Creates a new AclNotFoundException.
				 */
				constructor();
				static class: java.lang.Class<java.security.acl.AclNotFoundException>;
			}
			/**
			 * The interface to manage owners of objects that require ownership.
			 */
			interface IOwner {
				/**
				 * Adds a principal to the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				addOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Removes a principal from the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				deleteOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Checks whether the specified principal is an owner of this object.
				 * @param owner 
				 */
				isOwner(owner: java.security.IPrincipal): boolean;
			}
			/**
			 * The <i>Access Control List Entry</i> interface definition.
			 */
			export class AclEntry implements java.lang.ICloneable, java.security.acl.IAclEntry {
				constructor(implementation: java.security.acl.IAclEntry);
				/**
				 * Set the principal for this ACL entry.
				 * @param user 
				 */
				public setPrincipal(user: java.security.IPrincipal): boolean;
				/**
				 * Returns the principal of this ACL entry.
				 */
				public getPrincipal(): java.security.IPrincipal;
				/**
				 * Sets this ACL entry to be <i>negative</i>.
				 */
				public setNegativePermissions(): void;
				/**
				 * Returns whether this ACL entry is <i>negative</i>.
				 */
				public isNegative(): boolean;
				/**
				 * Adds the specified permission to this ACL entry.
				 * @param permission 
				 */
				public addPermission(permission: java.security.acl.IPermission): boolean;
				/**
				 * Removes the specified permission from this ACL entry.
				 * @param permission 
				 */
				public removePermission(permission: java.security.acl.IPermission): boolean;
				/**
				 * Checks whether the specified permission is in this ACL entry.
				 * @param permission 
				 */
				public checkPermission(permission: java.security.acl.IPermission): boolean;
				/**
				 * Returns the list of permissions of this ACL entry.
				 */
				public permissions(): java.util.IEnumeration<java.security.acl.IPermission>;
				/**
				 * Returns the string representation of this ACL entry.
				 */
				public toString(): string;
				/**
				 * Clones this ACL entry instance.
				 */
				public clone(): any;
			}
			/**
			 * The <i>Access Control List</i> (<b>ACL</b>) interface definition.
			 */
			export class Acl implements java.security.acl.IOwner, java.security.acl.IAcl {
				constructor(implementation: java.security.acl.IAcl);
				/**
				 * Sets the name of this <i>ACL</i> instance.
				 * @param caller 
				 * @param name 
				 */
				public setName(caller: java.security.IPrincipal, name: string): void;
				/**
				 * Returns the name of this <i>ACL</i> instance.
				 */
				public getName(): string;
				/**
				 * Adds an AclEntry to this <i>ACL</i> instance.
				 * @param caller 
				 * @param entry 
				 */
				public addEntry(caller: java.security.IPrincipal, entry: java.security.acl.IAclEntry): boolean;
				/**
				 * Removes an AclEntry from this <i>ACL</i> instance.
				 * @param caller 
				 * @param entry 
				 */
				public removeEntry(caller: java.security.IPrincipal, entry: java.security.acl.IAclEntry): boolean;
				/**
				 * Returns the set of allowed permissions for the specified Principal.
				 * @param user 
				 */
				public getPermissions(user: java.security.IPrincipal): java.util.IEnumeration<java.security.acl.IPermission>;
				/**
				 * Returns an Enumeration of the AclEntry of this <i>ACL</i>.
				 */
				public entries(): java.util.IEnumeration<java.security.acl.IAclEntry>;
				/**
				 * Checks whether the specified principal is granted the specified permission.
				 * @param principal 
				 * @param permission 
				 */
				public checkPermission(principal: java.security.IPrincipal, permission: java.security.acl.IPermission): boolean;
				/**
				 * Returns the string representation of this ACL.
				 */
				public toString(): string;
				/**
				 * Adds a principal to the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				addOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Removes a principal from the list of owners.
				 * @param caller 
				 * @param owner 
				 */
				deleteOwner(caller: java.security.IPrincipal, owner: java.security.IPrincipal): boolean;
				/**
				 * Checks whether the specified principal is an owner of this object.
				 * @param owner 
				 */
				isOwner(owner: java.security.IPrincipal): boolean;
			}
			/**
			 * The exception that is thrown when an attempt is made to remove the the last Owner from an Owner.
			 */
			export class LastOwnerException extends java.lang.Exception {
				/**
				 * Creates a new LastOwnerException.
				 */
				constructor();
				static class: java.lang.Class<java.security.acl.LastOwnerException>;
			}
			/**
			 * The <i>Access Control List Entry</i> interface definition.
			 */
			interface IAclEntry extends java.lang.ICloneable {
				/**
				 * Set the principal for this ACL entry.
				 * @param user 
				 */
				setPrincipal(user: java.security.IPrincipal): boolean;
				/**
				 * Returns the principal of this ACL entry.
				 */
				getPrincipal(): java.security.IPrincipal;
				/**
				 * Sets this ACL entry to be <i>negative</i>.
				 */
				setNegativePermissions(): void;
				/**
				 * Returns whether this ACL entry is <i>negative</i>.
				 */
				isNegative(): boolean;
				/**
				 * Adds the specified permission to this ACL entry.
				 * @param permission 
				 */
				addPermission(permission: java.security.acl.IPermission): boolean;
				/**
				 * Removes the specified permission from this ACL entry.
				 * @param permission 
				 */
				removePermission(permission: java.security.acl.IPermission): boolean;
				/**
				 * Checks whether the specified permission is in this ACL entry.
				 * @param permission 
				 */
				checkPermission(permission: java.security.acl.IPermission): boolean;
				/**
				 * Returns the list of permissions of this ACL entry.
				 */
				permissions(): java.util.IEnumeration<java.security.acl.IPermission>;
				/**
				 * Returns the string representation of this ACL entry.
				 */
				toString(): string;
				/**
				 * Clones this ACL entry instance.
				 */
				clone(): any;
			}
			/**
			 * Legacy security code; do not use.
			 */
			interface IPermission {
				equals(another: any): boolean;
				toString(): string;
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class Permission implements java.security.acl.IPermission {
				constructor(implementation: java.security.acl.IPermission);
				public equals(another: any): boolean;
				public toString(): string;
			}
			/**
			 * A Principal that represents a group of principals.
			 */
			interface IGroup extends java.security.IPrincipal {
				/**
				 * Adds a member to this group.
				 * @param user 
				 */
				addMember(user: java.security.IPrincipal): boolean;
				/**
				 * Removes a member from this group.
				 * @param user 
				 */
				removeMember(user: java.security.IPrincipal): boolean;
				/**
				 * Returns whether the specified principal is a member of this group.
				 * @param member 
				 */
				isMember(member: java.security.IPrincipal): boolean;
				/**
				 * Returns the members of this group.
				 */
				members(): java.util.IEnumeration<any>;
				/**
				 * Compares the specified object with this Principal for equality and returns true if the specified object is equal, false otherwise.
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the name of this Principal.
				 */
				getName(): string;
				/**
				 * Returns the hash code value for this Principal. Returns the same hash code for Principals that are equal to each other as required by the general contract of Object#hashCode.
				 */
				hashCode(): number;
				/**
				 * Returns a string containing a concise, human-readable description of this Principal.
				 */
				toString(): string;
			}
		}
		/**
		 * NoSuchAlgorithmException indicates that a requested algorithm could not be found.
		 */
		export class NoSuchAlgorithmException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of NoSuchAlgorithmException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of NoSuchAlgorithmException.
			 */
			constructor();
			/**
			 * Constructs a new instance of NoSuchAlgorithmException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of NoSuchAlgorithmException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.NoSuchAlgorithmException>;
		}
		/**
		 * SecureClassLoader represents a ClassLoader which associates the classes it loads with a code source and provide mechanisms to allow the relevant permissions to be retrieved.
		 */
		export class SecureClassLoader extends java.lang.ClassLoader {
			static class: java.lang.Class<java.security.SecureClassLoader>;
			/**
			 * Returns the PermissionCollection for the specified CodeSource.
			 * @param codesource 
			 */
			protected getPermissions(codesource: java.security.CodeSource): java.security.PermissionCollection;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format with an optional CodeSource.
			 * @param name 
			 * @param b 
			 * @param off 
			 * @param len 
			 * @param cs 
			 */
			protected defineClass(name: string, b: native.Array<number>, off: number, len: number, cs: java.security.CodeSource): java.lang.Class<any>;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format with an optional CodeSource.
			 * @param name 
			 * @param b 
			 * @param cs 
			 */
			protected defineClass(name: string, b: java.nio.ByteBuffer, cs: java.security.CodeSource): java.lang.Class<any>;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format.
			 * @param classRep 
			 * @param offset 
			 * @param length 
			 */
			protected defineClass(classRep: native.Array<number>, offset: number, length: number): java.lang.Class<any>;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format.
			 * @param className 
			 * @param classRep 
			 * @param offset 
			 * @param length 
			 */
			protected defineClass(className: string, classRep: native.Array<number>, offset: number, length: number): java.lang.Class<any>;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format and assigns the specified protection domain to the new class. If the provided protection domain is null then a default protection domain is assigned to the class.
			 * @param className 
			 * @param classRep 
			 * @param offset 
			 * @param length 
			 * @param protectionDomain 
			 */
			protected defineClass(className: string, classRep: native.Array<number>, offset: number, length: number, protectionDomain: java.security.ProtectionDomain): java.lang.Class<any>;
			/**
			 * Defines a new class with the specified name, byte code from the byte buffer and the optional protection domain. If the provided protection domain is null then a default protection domain is assigned to the class.
			 * @param name 
			 * @param b 
			 * @param protectionDomain 
			 */
			protected defineClass(name: string, b: java.nio.ByteBuffer, protectionDomain: java.security.ProtectionDomain): java.lang.Class<any>;
		}
		/**
		 * Security is the central class in the Java Security API. It manages the list of security Provider that have been installed into this runtime environment.
		 */
		export class Security extends java.lang.Object {
			static class: java.lang.Class<java.security.Security>;
			/**
			 * Returns value for the specified algorithm with the specified name.
			 * @param algName 
			 * @param propName 
			 */
			public static getAlgorithmProperty(algName: string, propName: string): string;
			/**
			 * Insert the given Provider at the specified position. The positions define the preference order in which providers are searched for requested algorithms.
			 * @param provider 
			 * @param position 
			 */
			public static insertProviderAt(provider: java.security.Provider, position: number): number;
			/**
			 * Adds the given provider to the collection of providers at the next available position.
			 * @param provider 
			 */
			public static addProvider(provider: java.security.Provider): number;
			/**
			 * Removes the Provider with the specified name form the collection of providers. If the the Provider with the specified name is removed, all provider at a greater position are shifted down one position.
			 * @param name 
			 */
			public static removeProvider(name: string): void;
			/**
			 * Returns an array containing all installed providers. The providers are ordered according their preference order.
			 */
			public static getProviders(): native.Array<java.security.Provider>;
			/**
			 * Returns the Provider with the specified name. Returns null if name is null or no provider with the specified name is installed.
			 * @param name 
			 */
			public static getProvider(name: string): java.security.Provider;
			/**
			 * Returns the array of providers which meet the user supplied string filter. The specified filter must be supplied in one of two formats: <nl> <li> CRYPTO_SERVICE_NAME.ALGORITHM_OR_TYPE
			 * @param filter 
			 */
			public static getProviders(filter: string): native.Array<java.security.Provider>;
			/**
			 * Returns the array of providers which meet the user supplied set of filters. The filter must be supplied in one of two formats: <nl> <li> CRYPTO_SERVICE_NAME.ALGORITHM_OR_TYPE
			 * @param filter 
			 */
			public static getProviders(filter: java.util.IMap<string, string>): native.Array<java.security.Provider>;
			/**
			 * Returns the value of the security property named by the argument.
			 * @param key 
			 */
			public static getProperty(key: string): string;
			/**
			 * Sets the value of the specified security property.
			 */
			public static setProperty(key: string, value: string): void;
			/**
			 * Returns a Set of all registered algorithms for the specified cryptographic service. "Signature", "Cipher" and "KeyStore" are examples for such kind of services.
			 * @param serviceName 
			 */
			public static getAlgorithms(serviceName: string): java.util.ISet<string>;
		}
		export module Security {
			export class SecurityDoor extends java.lang.Object implements org.apache.harmony.security.fortress.ISecurityAccess {
				static class: java.lang.Class<java.security.Security.SecurityDoor>;
				public renumProviders(): void;
				public getAliases(s: java.security.Provider.Service): java.util.IList<string>;
				public getService(p: java.security.Provider, type: string): java.security.Provider.Service;
			}
		}
		export module spec {
			/**
			 * The additional prime information specified as triplet of primes, a prime exponent, and a Chinese Remainder Theorem (CRT) coefficient.
			 */
			export class RSAOtherPrimeInfo extends java.lang.Object {
				/**
				 * Creates a new RSAOtherPrimeInfo with the specified prime, exponent, and CRT coefficient.
				 * @param prime 
				 * @param primeExponent 
				 * @param crtCoefficient 
				 */
				constructor(prime: java.math.BigInteger, primeExponent: java.math.BigInteger, crtCoefficient: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.RSAOtherPrimeInfo>;
				/**
				 * Returns the CRT coefficient.
				 */
				public getCrtCoefficient(): java.math.BigInteger;
				/**
				 * Returns the prime factor.
				 */
				public getPrime(): java.math.BigInteger;
				/**
				 * Returns the exponent.
				 */
				public getExponent(): java.math.BigInteger;
			}
			/**
			 * The parameters specifying an Elliptic Curve (EC) private key.
			 */
			export class ECPrivateKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new ECPrivateKeySpec with the specified private value S and parameter specification.
				 * @param s 
				 * @param params 
				 */
				constructor(s: java.math.BigInteger, params: java.security.spec.ECParameterSpec);
				static class: java.lang.Class<java.security.spec.ECPrivateKeySpec>;
				/**
				 * Returns the domain parameter specification.
				 */
				public getParams(): java.security.spec.ECParameterSpec;
				/**
				 * Returns the private value S.
				 */
				public getS(): java.math.BigInteger;
			}
			/**
			 * The marker interface for key specifications. The purpose is to group key specifications for cryptographic keys.
			 */
			export class KeySpec implements java.security.spec.IKeySpec {
				constructor(implementation: java.security.spec.IKeySpec);
			}
			/**
			 * The parameter specification used to generate elliptic curve domain parameters.
			 */
			export class ECGenParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new ECGenParameterSpec with the specified standard or predefined name of the to-be-generated domain parameter.
				 * @param name 
				 */
				constructor(name: string);
				static class: java.lang.Class<java.security.spec.ECGenParameterSpec>;
				/**
				 * Returns the name (standard or predefined) of the to-be-generated elliptic curve domain parameter.
				 */
				public getName(): string;
			}
			/**
			 * The parameter specification for generating an RSA key pair.
			 */
			export class RSAKeyGenParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new RSAKeyGenParameterSpec with the specified key size and public exponent.
				 * @param keysize 
				 * @param publicExponent 
				 */
				constructor(keysize: number, publicExponent: java.math.BigInteger);
				/**
				 * The value of the public exponent F0 = 3.
				 */
				static F0: java.math.BigInteger;
				/**
				 * The value of the public exponent F4 = 65537.
				 */
				static F4: java.math.BigInteger;
				static class: java.lang.Class<java.security.spec.RSAKeyGenParameterSpec>;
				/**
				 * Returns the size of the modulus (number of bits).
				 */
				public getKeysize(): number;
				/**
				 * Returns the value of the public exponent.
				 */
				public getPublicExponent(): java.math.BigInteger;
			}
			/**
			 * The key specification of a RSA public key.
			 */
			export class RSAPublicKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new RSAPublicKeySpec with the specified modulus and public exponent.
				 * @param modulus 
				 * @param publicExponent 
				 */
				constructor(modulus: java.math.BigInteger, publicExponent: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.RSAPublicKeySpec>;
				/**
				 * Returns the modulus n.
				 */
				public getModulus(): java.math.BigInteger;
				/**
				 * Returns the public exponent d.
				 */
				public getPublicExponent(): java.math.BigInteger;
			}
			/**
			 * The parameters specifying an Elliptic Curve (EC) public key.
			 */
			export class ECPublicKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new ECPublicKey with the specified public elliptic curve point and parameter specification.
				 * @param w 
				 * @param params 
				 */
				constructor(w: java.security.spec.ECPoint, params: java.security.spec.ECParameterSpec);
				static class: java.lang.Class<java.security.spec.ECPublicKeySpec>;
				/**
				 * Returns the domain parameter specification.
				 */
				public getParams(): java.security.spec.ECParameterSpec;
				/**
				 * Returns the public elliptic curve point W.
				 */
				public getW(): java.security.spec.ECPoint;
			}
			/**
			 * The base interface for a Finite Field of an Elliptic Curve.
			 */
			export class ECField implements java.security.spec.IECField {
				constructor(implementation: java.security.spec.IECField);
				/**
				 * Returns the size of the field (in bits).
				 */
				public getFieldSize(): number;
			}
			/**
			 * The marker interface for algorithm parameter specifications. The purpose is to group parameter specifications for algorithms.
			 */
			interface IAlgorithmParameterSpec {
			}
			/**
			 * The key specification of a RSA private key.
			 */
			export class RSAPrivateKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new RSAPrivateKeySpec with the specified modulus and private exponent.
				 * @param modulus 
				 * @param privateExponent 
				 */
				constructor(modulus: java.math.BigInteger, privateExponent: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.RSAPrivateKeySpec>;
				/**
				 * Returns the modulus n.
				 */
				public getModulus(): java.math.BigInteger;
				/**
				 * Returns the private exponent e.
				 */
				public getPrivateExponent(): java.math.BigInteger;
			}
			/**
			 * The key specification of a RSA multi-prime private key with the Chinese Remainder Theorem (CRT) information values used.
			 */
			export class RSAMultiPrimePrivateCrtKeySpec extends java.security.spec.RSAPrivateKeySpec {
				/**
				 * Creates a new RSAMultiPrimePrivateCrtKeySpec with the specified modulus, public exponent, private exponent, prime factors, prime exponents, crt coefficient, and additional primes.
				 * @param modulus 
				 * @param publicExponent 
				 * @param privateExponent 
				 * @param primeP 
				 * @param primeQ 
				 * @param primeExponentP 
				 * @param primeExponentQ 
				 * @param crtCoefficient 
				 * @param otherPrimeInfo 
				 */
				constructor(modulus: java.math.BigInteger, publicExponent: java.math.BigInteger, privateExponent: java.math.BigInteger, primeP: java.math.BigInteger, primeQ: java.math.BigInteger, primeExponentP: java.math.BigInteger, primeExponentQ: java.math.BigInteger, crtCoefficient: java.math.BigInteger, otherPrimeInfo: native.Array<java.security.spec.RSAOtherPrimeInfo>);
				static class: java.lang.Class<java.security.spec.RSAMultiPrimePrivateCrtKeySpec>;
				/**
				 * Returns the CRT coefficient, q^-1 mod p.
				 */
				public getCrtCoefficient(): java.math.BigInteger;
				/**
				 * Returns the information for the additional primes.
				 */
				public getOtherPrimeInfo(): native.Array<java.security.spec.RSAOtherPrimeInfo>;
				/**
				 * Returns the exponent of the prime p.
				 */
				public getPrimeExponentP(): java.math.BigInteger;
				/**
				 * Returns the exponent of the prime q.
				 */
				public getPrimeExponentQ(): java.math.BigInteger;
				/**
				 * Returns the prime factor p.
				 */
				public getPrimeP(): java.math.BigInteger;
				/**
				 * Returns the prime factor q.
				 */
				public getPrimeQ(): java.math.BigInteger;
				/**
				 * Returns the public exponent e.
				 */
				public getPublicExponent(): java.math.BigInteger;
			}
			/**
			 * The parameter specification for the RSA-PSS Signature scheme.
			 */
			export class PSSParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new PSSParameterSpec with the specified salt length and the default values.
				 * @param saltLen 
				 */
				constructor(saltLen: number);
				/**
				 * Creates a new PSSParameterSpec with the specified message digest name, mask generation function name, mask generation function parameters, salt length, and trailer field value.
				 * @param mdName 
				 * @param mgfName 
				 * @param mgfSpec 
				 * @param saltLen 
				 * @param trailerField 
				 */
				constructor(mdName: string, mgfName: string, mgfSpec: java.security.spec.IAlgorithmParameterSpec, saltLen: number, trailerField: number);
				/**
				 * The default parameter specification. It specifies the following parameters: <ul> <li>message digest: "SHA-1"</li> <li>mask generation function (<i>mgf</i>): "MGF1"</li> <li>parameters for the <i>mgf</i>: MGF1ParameterSpec#SHA1</li> <li>salt length: 20</li> <li>trailer field: -1</li> </ul>
				 */
				static DEFAULT: java.security.spec.PSSParameterSpec;
				static class: java.lang.Class<java.security.spec.PSSParameterSpec>;
				/**
				 * Returns the length of the salt (in bits).
				 */
				public getSaltLength(): number;
				/**
				 * Returns the name of the message digest algorithm.
				 */
				public getDigestAlgorithm(): string;
				/**
				 * Returns the name of the mask generation function algorithm.
				 */
				public getMGFAlgorithm(): string;
				/**
				 * Returns the parameter for the mask generation function algorithm.
				 */
				public getMGFParameters(): java.security.spec.IAlgorithmParameterSpec;
				/**
				 * Returns the trailer field value.
				 */
				public getTrailerField(): number;
			}
			/**
			 * The exception that is thrown when an invalid parameter specification is encountered.
			 */
			export class InvalidParameterSpecException extends java.security.GeneralSecurityException {
				/**
				 * Creates a new InvalidParameterSpecException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new InvalidParameterSpecException.
				 */
				constructor();
				static class: java.lang.Class<java.security.spec.InvalidParameterSpecException>;
			}
			/**
			 * The exception that is thrown when an invalid key specification is encountered.
			 */
			export class InvalidKeySpecException extends java.security.GeneralSecurityException {
				/**
				 * Creates a new InvalidKeySpecException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new InvalidKeySpecException.
				 */
				constructor();
				/**
				 * Creates a new InvalidKeySpecException with the specified message and cause.
				 * @param message 
				 * @param cause 
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Creates a new InvalidKeySpecException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.security.spec.InvalidKeySpecException>;
			}
			/**
			 * The abstract key specification for a public or a private key in encoded format.
			 */
			export class EncodedKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new EncodedKeySpec with the specified encoded key bytes.
				 * @param encodedKey 
				 */
				constructor(encodedKey: native.Array<number>);
				static class: java.lang.Class<java.security.spec.EncodedKeySpec>;
				/**
				 * Returns the encoded key bytes.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Returns the name of the encoding format of this encoded key specification.
				 */
				public getFormat(): string;
			}
			/**
			 * The key specification of a RSA private key using Chinese Remainder Theorem (CRT) values.
			 */
			export class RSAPrivateCrtKeySpec extends java.security.spec.RSAPrivateKeySpec {
				/**
				 * Creates a new RSAMultiPrimePrivateCrtKeySpec with the specified modulus, public exponent, private exponent, prime factors, prime exponents, crt coefficient, and additional primes.
				 * @param modulus 
				 * @param publicExponent 
				 * @param privateExponent 
				 * @param primeP 
				 * @param primeQ 
				 * @param primeExponentP 
				 * @param primeExponentQ 
				 * @param crtCoefficient 
				 */
				constructor(modulus: java.math.BigInteger, publicExponent: java.math.BigInteger, privateExponent: java.math.BigInteger, primeP: java.math.BigInteger, primeQ: java.math.BigInteger, primeExponentP: java.math.BigInteger, primeExponentQ: java.math.BigInteger, crtCoefficient: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.RSAPrivateCrtKeySpec>;
				/**
				 * Returns the CRT coefficient, q^-1 mod p.
				 */
				public getCrtCoefficient(): java.math.BigInteger;
				/**
				 * Returns the exponent of the prime p.
				 */
				public getPrimeExponentP(): java.math.BigInteger;
				/**
				 * Returns the exponent of the prime q.
				 */
				public getPrimeExponentQ(): java.math.BigInteger;
				/**
				 * Returns the prime factor p.
				 */
				public getPrimeP(): java.math.BigInteger;
				/**
				 * Returns the prime factor q.
				 */
				public getPrimeQ(): java.math.BigInteger;
				/**
				 * Returns the public exponent e.
				 */
				public getPublicExponent(): java.math.BigInteger;
			}
			/**
			 * The parameter specification used with the Digital Signature Algorithm (DSA).
			 */
			export class DSAParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec, java.security.interfaces.IDSAParams {
				/**
				 * Creates a new DSAParameterSpec with the specified prime p, sub-prime q and the base g.
				 * @param p 
				 * @param q 
				 * @param g 
				 */
				constructor(p: java.math.BigInteger, q: java.math.BigInteger, g: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.DSAParameterSpec>;
				/**
				 * Returns the base g.
				 */
				public getG(): java.math.BigInteger;
				/**
				 * Returns the prime p.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns the sub-prime q.
				 */
				public getQ(): java.math.BigInteger;
			}
			/**
			 * The marker interface for key specifications. The purpose is to group key specifications for cryptographic keys.
			 */
			interface IKeySpec {
			}
			/**
			 * The parameters specifying a <i>prime finite field</i> of an elliptic curve.
			 */
			export class ECFieldFp extends java.lang.Object implements java.security.spec.IECField {
				/**
				 * Creates a new prime finite field of an elliptic curve with the specified prime p.
				 * @param p 
				 */
				constructor(p: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.ECFieldFp>;
				/**
				 * Returns the size of the finite field (in bits).
				 */
				public getFieldSize(): number;
				/**
				 * Returns the prime value p for this finite field.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns whether the specified object is equal to this finite field.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns the hashcode value for this finite field.
				 */
				public hashCode(): number;
			}
			/**
			 * The key specification of an X.509 encoded key in ASN.1 format.
			 */
			export class X509EncodedKeySpec extends java.security.spec.EncodedKeySpec {
				/**
				 * Creates a new X509EncodedKeySpec with the specified encoded key bytes.
				 * @param encodedKey 
				 */
				constructor(encodedKey: native.Array<number>);
				static class: java.lang.Class<java.security.spec.X509EncodedKeySpec>;
				/**
				 * Returns the encoded key bytes.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Returns the name of the encoding format of this encoded key specification.
				 */
				public getFormat(): string;
			}
			/**
			 * The parameters specifying a <i>characteristic 2 finite field</i> of an elliptic curve.
			 */
			export class ECFieldF2m extends java.lang.Object implements java.security.spec.IECField {
				/**
				 * Creates a new ECFieldF2m with 2^m elements with a normal basis.
				 * @param m 
				 */
				constructor(m: number);
				/**
				 * Creates a new ECFieldF2m with 2^m elements with a polynomial basis and the reduction polynomial based on rp.
				 * @param m 
				 * @param rp 
				 */
				constructor(m: number, rp: java.math.BigInteger);
				/**
				 * Creates a new ECFieldF2m with 2^m elements with a polynomial basis and the reduction polynomial based on ks.
				 * @param m 
				 * @param ks 
				 */
				constructor(m: number, ks: native.Array<number>);
				static class: java.lang.Class<java.security.spec.ECFieldF2m>;
				/**
				 * Returns whether the specified object equals to this finite field.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns the size of this finite field (in bits).
				 */
				public getFieldSize(): number;
				/**
				 * Returns the exponent m for this finite field, with 2^m as the number of elements.
				 */
				public getM(): number;
				/**
				 * Returns a copy of the integer array containing the order of the middle term(s) of the reduction polynomial for a polynomial basis.
				 */
				public getMidTermsOfReductionPolynomial(): native.Array<number>;
				/**
				 * Returns the base of the reduction polynomial with the n-th bit corresponding to the n-th coefficient of the reduction polynomial for a polynomial basis.
				 */
				public getReductionPolynomial(): java.math.BigInteger;
				/**
				 * Returns the hashcode value for this finite field.
				 */
				public hashCode(): number;
			}
			/**
			 * A Point on an Elliptic Curve in barycentric (or affine) coordinates.
			 */
			export class ECPoint extends java.lang.Object {
				/**
				 * Creates a new point at the specified coordinates.
				 * @param affineX 
				 * @param affineY 
				 */
				constructor(affineX: java.math.BigInteger, affineY: java.math.BigInteger);
				/**
				 * The point on an Elliptic Curve at infinity.
				 */
				static POINT_INFINITY: java.security.spec.ECPoint;
				static class: java.lang.Class<java.security.spec.ECPoint>;
				/**
				 * Returns the x-coordinate.
				 */
				public getAffineX(): java.math.BigInteger;
				/**
				 * Returns the y-coordinate.
				 */
				public getAffineY(): java.math.BigInteger;
				/**
				 * Returns whether the specified object and this elliptic curve point are equal.
				 * @param other 
				 */
				public equals(other: any): boolean;
				/**
				 * Returns the hashcode of this elliptic curve point.
				 */
				public hashCode(): number;
			}
			/**
			 * The parameters specifying a DSA private key.
			 */
			export class DSAPrivateKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new DSAPrivateKeySpec with the specified private key, prime, sub-prime and base.
				 * @param x 
				 * @param p 
				 * @param q 
				 * @param g 
				 */
				constructor(x: java.math.BigInteger, p: java.math.BigInteger, q: java.math.BigInteger, g: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.DSAPrivateKeySpec>;
				/**
				 * Returns the base g.
				 */
				public getG(): java.math.BigInteger;
				/**
				 * Returns the prime p.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns the sub-prime q.
				 */
				public getQ(): java.math.BigInteger;
				/**
				 * Returns the private key x.
				 */
				public getX(): java.math.BigInteger;
			}
			/**
			 * An Elliptic Curve with its necessary values.
			 */
			export class EllipticCurve extends java.lang.Object {
				/**
				 * Creates a new EllipticCurve with the specified field, coefficients and seed.
				 * @param field 
				 * @param a 
				 * @param b 
				 * @param seed 
				 */
				constructor(field: java.security.spec.IECField, a: java.math.BigInteger, b: java.math.BigInteger, seed: native.Array<number>);
				/**
				 * Creates a new EllipticCurve with the specified field and coefficients.
				 * @param field 
				 * @param a 
				 * @param b 
				 */
				constructor(field: java.security.spec.IECField, a: java.math.BigInteger, b: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.EllipticCurve>;
				/**
				 * Returns the coefficient a of this elliptic curve.
				 */
				public getA(): java.math.BigInteger;
				/**
				 * Returns the coefficient b of this elliptic curve.
				 */
				public getB(): java.math.BigInteger;
				/**
				 * Returns the finite field of this elliptic curve.
				 */
				public getField(): java.security.spec.IECField;
				/**
				 * Returns a copy of the seed that was used to generate this elliptic curve.
				 */
				public getSeed(): native.Array<number>;
				/**
				 * Returns whether the specified object equals to this elliptic curve.
				 * @param other 
				 */
				public equals(other: any): boolean;
				/**
				 * Returns the hashcode of this elliptic curve.
				 */
				public hashCode(): number;
			}
			/**
			 * The parameter specification used with Elliptic Curve Cryptography (ECC).
			 */
			export class ECParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new ECParameterSpec with the specified elliptic curve, the base point, the order of the generator (or base point) and the co-factor.
				 * @param curve 
				 * @param generator 
				 * @param order 
				 * @param cofactor 
				 */
				constructor(curve: java.security.spec.EllipticCurve, generator: java.security.spec.ECPoint, order: java.math.BigInteger, cofactor: number);
				static class: java.lang.Class<java.security.spec.ECParameterSpec>;
				/**
				 * Returns the cofactor.
				 */
				public getCofactor(): number;
				/**
				 * Returns the elliptic curve.
				 */
				public getCurve(): java.security.spec.EllipticCurve;
				/**
				 * Returns the generator (or base point).
				 */
				public getGenerator(): java.security.spec.ECPoint;
				/**
				 * Returns the order of the generator.
				 */
				public getOrder(): java.math.BigInteger;
			}
			/**
			 * The base interface for a Finite Field of an Elliptic Curve.
			 */
			interface IECField {
				/**
				 * Returns the size of the field (in bits).
				 */
				getFieldSize(): number;
			}
			/**
			 * The key specification for an encoded private key in ASN.1 format as defined in the PKCS#8 standard.
			 */
			export class PKCS8EncodedKeySpec extends java.security.spec.EncodedKeySpec {
				/**
				 * Creates a new PKCS8EncodedKeySpec with the specified encoded key bytes.
				 * @param encodedKey 
				 */
				constructor(encodedKey: native.Array<number>);
				static class: java.lang.Class<java.security.spec.PKCS8EncodedKeySpec>;
				/**
				 * Returns a copy of the encoded key bytes.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Returns the name of the encoding format of this encoded key specification.
				 */
				public getFormat(): string;
			}
			/**
			 * The marker interface for algorithm parameter specifications. The purpose is to group parameter specifications for algorithms.
			 */
			export class AlgorithmParameterSpec implements java.security.spec.IAlgorithmParameterSpec {
				constructor(implementation: java.security.spec.IAlgorithmParameterSpec);
			}
			/**
			 * The parameter specification for the Mask Generation Function (MGF1) in the RSA-PSS Signature and OAEP Padding scheme.
			 */
			export class MGF1ParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new MGF1ParameterSpec with the specified message digest algorithm name.
				 * @param mdName 
				 */
				constructor(mdName: string);
				/**
				 * The predefined MGF1 parameter specification with an "SHA-1" message digest.
				 */
				static SHA1: java.security.spec.MGF1ParameterSpec;
				/**
				 * The predefined MGF1 parameter specification with an "SHA-256" message digest.
				 */
				static SHA256: java.security.spec.MGF1ParameterSpec;
				/**
				 * The predefined MGF1 parameter specification with an "SHA-384" message digest.
				 */
				static SHA384: java.security.spec.MGF1ParameterSpec;
				/**
				 * The predefined MGF1 parameter specification with an "SHA-512" message digest.
				 */
				static SHA512: java.security.spec.MGF1ParameterSpec;
				static class: java.lang.Class<java.security.spec.MGF1ParameterSpec>;
				/**
				 * Returns the name of the message digest algorithm.
				 */
				public getDigestAlgorithm(): string;
			}
			/**
			 * The parameters specifying a DSA public key.
			 */
			export class DSAPublicKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new DSAPublicKeySpec with the specified public key, prime, sub-prime and base.
				 * @param y 
				 * @param p 
				 * @param q 
				 * @param g 
				 */
				constructor(y: java.math.BigInteger, p: java.math.BigInteger, q: java.math.BigInteger, g: java.math.BigInteger);
				static class: java.lang.Class<java.security.spec.DSAPublicKeySpec>;
				/**
				 * Returns the base g.
				 */
				public getG(): java.math.BigInteger;
				/**
				 * Returns the prime p.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns the sub-prime q.
				 */
				public getQ(): java.math.BigInteger;
				/**
				 * Returns the public key value y.
				 */
				public getY(): java.math.BigInteger;
			}
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class UnresolvedPermission extends java.security.Permission implements java.io.ISerializable {
			constructor(type: string, name: string, actions: string, certs: native.Array<java.security.cert.Certificate>);
			static class: java.lang.Class<java.security.UnresolvedPermission>;
			public getUnresolvedName(): string;
			public getUnresolvedActions(): string;
			public getUnresolvedType(): string;
			public getUnresolvedCerts(): native.Array<java.security.cert.Certificate>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * InvalidParameterException indicates exceptional conditions, caused by invalid parameters.
		 */
		export class InvalidParameterException extends java.lang.IllegalArgumentException {
			/**
			 * Constructs a new instance of InvalidParameterException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of InvalidParameterException.
			 */
			constructor();
			static class: java.lang.Class<java.security.InvalidParameterException>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class AccessControlContext extends java.lang.Object {
			constructor(acc: java.security.AccessControlContext, combiner: java.security.IDomainCombiner);
			constructor(context: native.Array<java.security.ProtectionDomain>);
			static class: java.lang.Class<java.security.AccessControlContext>;
			public checkPermission(perm: java.security.Permission): void;
			public getDomainCombiner(): java.security.IDomainCombiner;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class Permissions extends java.security.PermissionCollection implements java.io.ISerializable {
			constructor();
			static class: java.lang.Class<java.security.Permissions>;
			public add(permission: java.security.Permission): void;
			public elements(): java.util.IEnumeration<java.security.Permission>;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class Permission extends java.lang.Object implements java.security.IGuard, java.io.ISerializable {
			constructor(name: string);
			static class: java.lang.Class<java.security.Permission>;
			public getName(): string;
			public checkGuard(obj: any): void;
			public newPermissionCollection(): java.security.PermissionCollection;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * DigestException is a general message digest exception.
		 */
		export class DigestException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of DigestException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of DigestException.
			 */
			constructor();
			/**
			 * Constructs a new instance of DigestException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of DigestException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.DigestException>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class AllPermission extends java.security.Permission {
			constructor(name: string, actions: string);
			constructor();
			static class: java.lang.Class<java.security.AllPermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Guard implementors protect access to other objects.
		 */
		export class Guard implements java.security.IGuard {
			constructor(implementation: java.security.IGuard);
			/**
			 * Checks whether access to the specified Object should be granted. This method returns silently if access is granted, otherwise a SecurityException is thrown.
			 * @param object 
			 */
			public checkGuard(object: any): void;
		}
		/**
		 * Identity represents an identity like a person or a company.
		 */
		export class Identity extends java.lang.Object implements java.security.IPrincipal, java.io.ISerializable {
			/**
			 * Creates a new instance of Identity with the specified name.
			 * @param name 
			 */
			constructor(name: string);
			/**
			 * Creates a new instance of Identity with the specified name and the scope of this Identity.
			 * @param name 
			 * @param scope 
			 */
			constructor(name: string, scope: java.security.IdentityScope);
			static class: java.lang.Class<java.security.Identity>;
			/**
			 * Adds a Certificate to this Identity.
			 * @param certificate 
			 */
			public addCertificate(certificate: java.security.ICertificate): void;
			/**
			 * Removes the specified Certificate from this Identity.
			 * @param certificate 
			 */
			public removeCertificate(certificate: java.security.ICertificate): void;
			/**
			 * Returns the certificates for this Identity. External modifications of the returned array has no impact on this Identity.
			 */
			public certificates(): native.Array<java.security.ICertificate>;
			/**
			 * Compares the specified Identity with this Identity for equality and returns true if the specified object is equal, false otherwise.
			 * @param identity 
			 */
			protected identityEquals(identity: java.security.Identity): boolean;
			/**
			 * Returns a string containing a concise, human-readable description of the this Identity.
			 * @param detailed 
			 */
			public toString(detailed: boolean): string;
			/**
			 * Returns the IdentityScope of this Identity.
			 */
			public getScope(): java.security.IdentityScope;
			/**
			 * Sets the specified PublicKey to this Identity.
			 * @param key 
			 */
			public setPublicKey(key: java.security.IPublicKey): void;
			/**
			 * Returns the PublicKey associated with this Identity.
			 */
			public getPublicKey(): java.security.IPublicKey;
			/**
			 * Sets an information string for this Identity.
			 * @param info 
			 */
			public setInfo(info: string): void;
			/**
			 * Returns the information string of this Identity.
			 */
			public getInfo(): string;
			/**
			 * Compares the specified object with this Identity for equality and returns true if the specified object is equal, false otherwise. Identity objects are considered equal, if they have the same name and are in the same scope.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns the name of this Identity.
			 */
			public getName(): string;
			/**
			 * Returns the hash code value for this Identity. Returns the same hash code for Identitys that are equal to each other as required by the general contract of Object#hashCode.
			 */
			public hashCode(): number;
			/**
			 * Returns a string containing a concise, human-readable description of the this Identity including its name and its scope.
			 */
			public toString(): string;
		}
		/**
		 * Uses a one-way hash function to turn an arbitrary number of bytes into a fixed-length byte sequence. The original arbitrary-length sequence is the <i>message</i>, and the fixed-length byte sequence is the <i>digest</i> or <i>message digest</i>.
		 */
		export class MessageDigest extends java.security.MessageDigestSpi {
			static class: java.lang.Class<java.security.MessageDigest>;
			/**
			 * Returns a new instance of MessageDigest that utilizes the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): java.security.MessageDigest;
			/**
			 * Returns a new instance of MessageDigest that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): java.security.MessageDigest;
			/**
			 * Returns a new instance of MessageDigest that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): java.security.MessageDigest;
			/**
			 * Puts this MessageDigest back in an initial state, such that it is ready to compute a one way hash value.
			 */
			public reset(): void;
			/**
			 * Updates this MessageDigest using the given byte.
			 * @param arg0 
			 */
			public update(arg0: number): void;
			/**
			 * Updates this MessageDigest using the given byte[].
			 * @param input 
			 * @param offset 
			 * @param len 
			 */
			public update(input: native.Array<number>, offset: number, len: number): void;
			/**
			 * Updates this MessageDigest using the given byte[].
			 * @param input 
			 */
			public update(input: native.Array<number>): void;
			/**
			 * Computes and returns the final hash value for this MessageDigest. After the digest is computed the receiver is reset.
			 */
			public digest(): native.Array<number>;
			/**
			 * Computes and stores the final hash value for this MessageDigest. After the digest is computed the receiver is reset.
			 * @param buf 
			 * @param offset 
			 * @param len 
			 */
			public digest(buf: native.Array<number>, offset: number, len: number): number;
			/**
			 * Performs the final update and then computes and returns the final hash value for this MessageDigest. After the digest is computed the receiver is reset.
			 * @param input 
			 */
			public digest(input: native.Array<number>): native.Array<number>;
			/**
			 * Returns a string containing a concise, human-readable description of this MessageDigest including the name of its algorithm.
			 */
			public toString(): string;
			/**
			 * Indicates whether to digest are equal by performing a simply byte-per-byte compare of the two digests.
			 * @param digesta 
			 * @param digestb 
			 */
			public static isEqual(digesta: native.Array<number>, digestb: native.Array<number>): boolean;
			/**
			 * Returns the name of the algorithm of this MessageDigest.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns the provider associated with this MessageDigest.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns the engine digest length in bytes. If the implementation does not implement this function or is not an instance of Cloneable, 0 is returned.
			 */
			public getDigestLength(): number;
			public clone(): any;
			/**
			 * Updates this MessageDigest using the given input.
			 * @param input 
			 */
			public update(input: java.nio.ByteBuffer): void;
		}
		export module MessageDigest {
			export class MessageDigestImpl extends java.security.MessageDigest {
				static class: java.lang.Class<java.security.MessageDigest.MessageDigestImpl>;
				protected engineReset(): void;
				protected engineDigest(): native.Array<number>;
				protected engineGetDigestLength(): number;
				protected engineUpdate(arg0: number): void;
				protected engineUpdate(arg0: native.Array<number>, arg1: number, arg2: number): void;
				public clone(): any;
				/**
				 * Updates this MessageDigestSpi using the given input.
				 * @param input 
				 */
				protected engineUpdate(input: java.nio.ByteBuffer): void;
				/**
				 * Computes and stores the final hash value for this MessageDigestSpi. After the digest is computed the receiver is reset.
				 * @param buf 
				 * @param offset 
				 * @param len 
				 */
				protected engineDigest(buf: native.Array<number>, offset: number, len: number): number;
			}
		}
		/**
		 * KeyRep is a standardized representation for serialized Key objects.
		 */
		export class KeyRep extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new instance of KeyRep with the specified arguments. The arguments should be obtained from the Key object that has to be serialized.
			 * @param type 
			 * @param algorithm 
			 * @param format 
			 * @param encoded 
			 */
			constructor(type: java.security.KeyRep.Type, algorithm: string, format: string, encoded: native.Array<number>);
			static class: java.lang.Class<java.security.KeyRep>;
			/**
			 * Resolves and returns the Key object. Three Type|format combinations are supported: <ul> <li> Type.PRIVATE | "PKCS#8" : returns a PrivateKey instance, generated from a key factory (suitable for the algorithm) that is initialized with a PKCS8EncodedKeySpec using the encoded key bytes. <li> Type.SECRET | "RAW" : returns a SecretKeySpec instance, created with the encoded key bytes and the algorithm. <li> Type.PUBLIC | "X.509": returns a PublicKey instance, generated from a key factory (suitable for the algorithm) that is initialized with a X509EncodedKeySpec using the encoded key bytes. </ul>
			 */
			protected readResolve(): any;
		}
		export module KeyRep {
			/**
			 * Type enumerates the supported key types.
			 */
			export enum Type {
				SECRET,
				PUBLIC,
				PRIVATE
			}
		}
		/**
		 * A SignedObject instance acts as a container for another object. The SignedObject contains the target in serialized form along with a digital signature of the serialized data.
		 */
		export class SignedObject extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new instance of SignedObject with the target object, the private key and the engine to compute the signature. The given object is signed with the specified key and engine.
			 * @param object 
			 * @param signingKey 
			 * @param signingEngine 
			 */
			constructor(object: java.io.ISerializable, signingKey: java.security.IPrivateKey, signingEngine: java.security.Signature);
			static class: java.lang.Class<java.security.SignedObject>;
			/**
			 * Returns the encapsulated object. Each time this method is invoked, the encapsulated object is deserialized before it is returned.
			 */
			public getObject(): any;
			/**
			 * Returns the signature data of the encapsulated serialized object.
			 */
			public getSignature(): native.Array<number>;
			/**
			 * Returns the name of the algorithm of this SignedObject.
			 */
			public getAlgorithm(): string;
			/**
			 * Indicates whether the contained signature for the encapsulated object is valid.
			 * @param verificationKey 
			 * @param verificationEngine 
			 */
			public verify(verificationKey: java.security.IPublicKey, verificationEngine: java.security.Signature): boolean;
		}
		/**
		 * Legacy security code; do not use.
		 */
		interface IPrivilegedAction<T> {
			__java_security_IPrivilegedAction?: any;
			run(): T;
		}
		/**
		 * KeyPair is a container for a public key and a private key. Since the private key can be accessed, instances must be treated like a private key.
		 */
		export class KeyPair extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new instance of KeyPair with a public key and the corresponding private key.
			 * @param publicKey 
			 * @param privateKey 
			 */
			constructor(publicKey: java.security.IPublicKey, privateKey: java.security.IPrivateKey);
			static class: java.lang.Class<java.security.KeyPair>;
			/**
			 * Returns the private key.
			 */
			public getPrivate(): java.security.IPrivateKey;
			/**
			 * Returns the public key.
			 */
			public getPublic(): java.security.IPublicKey;
		}
		/**
		 * InvalidAlgorithmParameterException indicates the occurrence of invalid algorithm parameters.
		 */
		export class InvalidAlgorithmParameterException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of InvalidAlgorithmParameterException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of InvalidAlgorithmParameterException.
			 */
			constructor();
			/**
			 * Constructs a new instance of InvalidAlgorithmParameterException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of InvalidAlgorithmParameterException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.InvalidAlgorithmParameterException>;
		}
		/**
		 * DigestInputStream is a FilterInputStream which maintains an associated message digest.
		 */
		export class DigestInputStream extends java.io.FilterInputStream {
			/**
			 * Constructs a new instance of this DigestInputStream, using the given stream and the digest.
			 * @param stream 
			 * @param digest 
			 */
			constructor(stream: java.io.InputStream, digest: java.security.MessageDigest);
			static class: java.lang.Class<java.security.DigestInputStream>;
			/**
			 * Returns the message digest for this stream.
			 */
			public getMessageDigest(): java.security.MessageDigest;
			/**
			 * Sets the message digest which this stream will use.
			 * @param digest 
			 */
			public setMessageDigest(digest: java.security.MessageDigest): void;
			/**
			 * Reads the next byte and returns it as an int. Updates the digest for the byte if this function is #on(boolean).
			 */
			public read(): number;
			/**
			 * Reads len bytes into the specified byte[], starting from the specified offset. Updates the digest if this function is #on(boolean).
			 * @param b 
			 * @param off 
			 * @param len 
			 */
			public read(b: native.Array<number>, off: number, len: number): number;
			/**
			 * Enables or disables the digest function (default is on).
			 * @param on 
			 */
			public on(on: boolean): void;
			/**
			 * Returns a string containing a concise, human-readable description of this DigestInputStream including the digest.
			 */
			public toString(): string;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class PrivilegedActionException extends java.lang.Exception {
			constructor(ex: java.lang.Exception);
			static class: java.lang.Class<java.security.PrivilegedActionException>;
			public getException(): java.lang.Exception;
		}
		/**
		 * PublicKey is the common interface for public keys.
		 */
		export class PublicKey implements java.security.IKey, java.security.IPublicKey {
			constructor(implementation: java.security.IPublicKey);
			/**
			 * The serialVersionUID to be compatible with JDK1.1.
			 */
			static serialVersionUID: number;
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			getEncoded(): native.Array<number>;
		}
		/**
		 * GeneralSecurityException is a general security exception and the superclass for all security specific exceptions.
		 */
		export class GeneralSecurityException extends java.lang.Exception {
			/**
			 * Constructs a new instance of GeneralSecurityException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of GeneralSecurityException.
			 */
			constructor();
			/**
			 * Constructs a new instance of GeneralSecurityException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of GeneralSecurityException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.GeneralSecurityException>;
		}
		/**
		 * AccessControlException is thrown if the access control infrastructure denies protected access due to missing permissions.
		 */
		export class AccessControlException extends java.lang.SecurityException {
			/**
			 * Constructs a new instance of AccessControlException with the given message.
			 * @param message 
			 */
			constructor(message: string);
			/**
			 * Constructs a new instance of AccessControlException with the given message and the requested Permission which was not granted.
			 * @param message 
			 * @param perm 
			 */
			constructor(message: string, perm: java.security.Permission);
			static class: java.lang.Class<java.security.AccessControlException>;
			/**
			 * Returns the requested permission that caused this Exception or null if there is no corresponding Permission.
			 */
			public getPermission(): java.security.Permission;
		}
		/**
		 * This class generates cryptographically secure pseudo-random numbers.
		 */
		export class SecureRandom extends java.util.Random {
			/**
			 * Constructs a new SecureRandom that uses the default algorithm.
			 */
			constructor();
			/**
			 * Constructs a new seeded SecureRandom that uses the default algorithm. <a href="#insecure_seed">Seeding SecureRandom may be insecure</a>.
			 */
			constructor(seed: native.Array<number>);
			static class: java.lang.Class<java.security.SecureRandom>;
			/**
			 * Returns a new instance of SecureRandom that utilizes the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): java.security.SecureRandom;
			/**
			 * Returns a new instance of SecureRandom that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): java.security.SecureRandom;
			/**
			 * Returns a new instance of SecureRandom that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): java.security.SecureRandom;
			/**
			 * Returns the provider associated with this SecureRandom.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns the name of the algorithm of this SecureRandom.
			 */
			public getAlgorithm(): string;
			/**
			 * Seeds this SecureRandom instance with the specified seed. <a href="#insecure_seed">Seeding SecureRandom may be insecure</a>.
			 */
			public setSeed(seed: native.Array<number>): void;
			/**
			 * Seeds this SecureRandom instance with the specified eight-byte seed. <a href="#insecure_seed">Seeding SecureRandom may be insecure</a>.
			 */
			public setSeed(seed: number): void;
			/**
			 * Generates and stores random bytes in the given byte[] for each array element.
			 * @param bytes 
			 */
			public nextBytes(bytes: native.Array<number>): void;
			/**
			 * Generates and returns an int containing the specified number of random bits (right justified, with leading zeros).
			 * @param numBits 
			 */
			protected next(numBits: number): number;
			/**
			 * Generates and returns the specified number of seed bytes, computed using the seed generation algorithm used by this SecureRandom.
			 * @param numBytes 
			 */
			public static getSeed(numBytes: number): native.Array<number>;
			/**
			 * Generates and returns the specified number of seed bytes, computed using the seed generation algorithm used by this SecureRandom.
			 * @param numBytes 
			 */
			public generateSeed(numBytes: number): native.Array<number>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class CodeSource extends java.lang.Object implements java.io.ISerializable {
			constructor(location: java.net.URL, certs: native.Array<java.security.cert.Certificate>);
			static class: java.lang.Class<java.security.CodeSource>;
			public getCertificates(): native.Array<java.security.cert.Certificate>;
			public getCodeSigners(): native.Array<java.security.CodeSigner>;
			public getLocation(): java.net.URL;
			public implies(cs: java.security.CodeSource): boolean;
		}
		/**
		 * KeyPairGeneratorSpi is the Service Provider Interface (SPI) definition for KeyPairGenerator.
		 */
		export class KeyPairGeneratorSpi extends java.lang.Object {
			/**
			 * Constructs a new instance of KeyPairGeneratorSpi.
			 */
			constructor();
			static class: java.lang.Class<java.security.KeyPairGeneratorSpi>;
			/**
			 * Computes and returns a new unique KeyPair each time this method is called.
			 */
			public generateKeyPair(): java.security.KeyPair;
			/**
			 * Initializes this KeyPairGeneratorSpi with the given key size and the given SecureRandom. The default parameter set will be used.
			 * @param keysize 
			 * @param random 
			 */
			public initialize(keysize: number, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyPairGeneratorSpi with the given AlgorithmParameterSpec and the given SecureRandom.
			 * @param params 
			 * @param random 
			 */
			public initialize(params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
		}
		/**
		 * PrivateKey is the common interface for private keys.
		 */
		interface IPrivateKey extends java.security.IKey {
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			getEncoded(): native.Array<number>;
		}
		export module IPrivateKey {
			/**
			 * The serialVersionUID to be compatible with JDK1.1.
			 */
			var serialVersionUID: number;
		}
		/**
		 * Key is the common interface for all keys.
		 */
		export class Key implements java.io.ISerializable, java.security.IKey {
			constructor(implementation: java.security.IKey);
			/**
			 * The serialVersionUID to be compatible with JDK1.1.
			 */
			static serialVersionUID: number;
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			public getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			public getEncoded(): native.Array<number>;
		}
		/**
		 * Certificate represents an identity certificate, such as X.509 or PGP. Note: A Certificate instances does not make any statement about the validity of itself. It's in the responsibility of the application to verify the validity of its certificates.
		 */
		export class Certificate implements java.security.ICertificate {
			constructor(implementation: java.security.ICertificate);
			/**
			 * Decodes a certificate from the given InputStream. The format of the data to encode must be that identified by #getFormat() and encoded by #encode(OutputStream).
			 * @param stream 
			 */
			public decode(stream: java.io.InputStream): void;
			/**
			 * Encodes this certificate to an output stream. The #decode(InputStream) method must be able to decode the format written by this method.
			 * @param stream 
			 */
			public encode(stream: java.io.OutputStream): void;
			/**
			 * Returns a string identifying the format of this certificate.
			 */
			public getFormat(): string;
			/**
			 * Returns the guarantor of this certificate. That guarantor guarantees, that the public key of this certificate is from the principal returned by #getPrincipal().
			 */
			public getGuarantor(): java.security.IPrincipal;
			/**
			 * Returns the principal of this certificate. The principal is guaranteed by the guarantor returned by #getGuarantor().
			 */
			public getPrincipal(): java.security.IPrincipal;
			/**
			 * Returns the public key of this certificate. The public key is guaranteed by the guarantor to belong to the principal.
			 */
			public getPublicKey(): java.security.IPublicKey;
			/**
			 * Returns a string containing a concise, human-readable description of the this Certificate.
			 * @param detailed 
			 */
			public toString(detailed: boolean): string;
		}
		/**
		 * AlgorithmParameters is an engine class which provides algorithm parameters.
		 */
		export class AlgorithmParameters extends java.lang.Object {
			static class: java.lang.Class<java.security.AlgorithmParameters>;
			/**
			 * Returns a new instance of AlgorithmParameters for the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): java.security.AlgorithmParameters;
			/**
			 * Returns a new instance of AlgorithmParameters from the specified provider for the specified algorithm.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): java.security.AlgorithmParameters;
			/**
			 * Returns a new instance of AlgorithmParameters from the specified provider for the specified algorithm.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): java.security.AlgorithmParameters;
			/**
			 * Returns the provider associated with this AlgorithmParameters.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns the name of the algorithm.
			 */
			public getAlgorithm(): string;
			/**
			 * Initializes this AlgorithmParameters with the specified AlgorithmParameterSpec.
			 * @param paramSpec 
			 */
			public init(paramSpec: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Initializes this AlgorithmParameters with the specified byte[] using the default decoding format for parameters. The default encoding format is ASN.1.
			 * @param params 
			 */
			public init(params: native.Array<number>): void;
			/**
			 * Initializes this AlgorithmParameters with the specified byte[] using the specified decoding format.
			 * @param params 
			 * @param format 
			 */
			public init(params: native.Array<number>, format: string): void;
			/**
			 * Returns the AlgorithmParameterSpec for this AlgorithmParameters.
			 * @param paramSpec 
			 */
			public getParameterSpec<T extends java.security.spec.IAlgorithmParameterSpec>(paramSpec: java.lang.Class<T>): T;
			/**
			 * Returns this AlgorithmParameters in their default encoding format. The default encoding format is ASN.1.
			 */
			public getEncoded(): native.Array<number>;
			/**
			 * Returns this AlgorithmParameters in the specified encoding format.
			 * @param format 
			 */
			public getEncoded(format: string): native.Array<number>;
			/**
			 * Returns a string containing a concise, human-readable description of this AlgorithmParameters.
			 */
			public toString(): string;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class BasicPermission extends java.security.Permission implements java.io.ISerializable {
			constructor(name: string);
			constructor(name: string, action: string);
			static class: java.lang.Class<java.security.BasicPermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class PermissionCollection extends java.lang.Object implements java.io.ISerializable {
			constructor();
			static class: java.lang.Class<java.security.PermissionCollection>;
			public add(permission: java.security.Permission): void;
			public elements(): java.util.IEnumeration<java.security.Permission>;
			public implies(permission: java.security.Permission): boolean;
			public isReadOnly(): boolean;
			public setReadOnly(): void;
		}
		/**
		 * AlgorithmParameterGenerator is an engine class which is capable of generating parameters for the algorithm it was initialized with.
		 */
		export class AlgorithmParameterGenerator extends java.lang.Object {
			static class: java.lang.Class<java.security.AlgorithmParameterGenerator>;
			/**
			 * Returns the name of the algorithm.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns a new instance of AlgorithmParameterGenerator for the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): java.security.AlgorithmParameterGenerator;
			/**
			 * Returns a new instance of AlgorithmParameterGenerator from the specified provider for the specified algorithm.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): java.security.AlgorithmParameterGenerator;
			/**
			 * Returns a new instance of AlgorithmParameterGenerator from the specified provider for the specified algorithm.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): java.security.AlgorithmParameterGenerator;
			/**
			 * Returns the provider associated with this AlgorithmParameterGenerator.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Initializes this AlgorithmParameterGenerator with the given size. The default parameter set and a default SecureRandom instance will be used.
			 * @param size 
			 */
			public init(size: number): void;
			/**
			 * Initializes this AlgorithmParameterGenerator with the given size and the given SecureRandom. The default parameter set will be used.
			 * @param size 
			 * @param random 
			 */
			public init(size: number, random: java.security.SecureRandom): void;
			/**
			 * Initializes this AlgorithmParameterGenerator with the given AlgorithmParameterSpec. A default SecureRandom instance will be used.
			 * @param genParamSpec 
			 */
			public init(genParamSpec: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Initializes this AlgorithmParameterGenerator with the given AlgorithmParameterSpec and the given SecureRandom.
			 * @param genParamSpec 
			 * @param random 
			 */
			public init(genParamSpec: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
			/**
			 * Computes and returns AlgorithmParameters for this generator's algorithm.
			 */
			public generateParameters(): java.security.AlgorithmParameters;
		}
		/**
		 * PublicKey is the common interface for public keys.
		 */
		interface IPublicKey extends java.security.IKey {
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			getEncoded(): native.Array<number>;
		}
		export module IPublicKey {
			/**
			 * The serialVersionUID to be compatible with JDK1.1.
			 */
			var serialVersionUID: number;
		}
		/**
		 * Timestamp represents a signed time stamp. Timestamp is immutable.
		 */
		export class Timestamp extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new instance of Timestamp with the specified timestamp and the given certificate path.
			 * @param timestamp 
			 * @param signerCertPath 
			 */
			constructor(timestamp: java.util.Date, signerCertPath: java.security.cert.CertPath);
			static class: java.lang.Class<java.security.Timestamp>;
			/**
			 * Compares the specified object with this Timestamp for equality and returns true if the specified object is equal, false otherwise. The given object is equal to this Timestamp, if it is an instance of Timestamp, the two timestamps have an equal date and time and their certificate paths are equal.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns the certificate path of this Timestamp.
			 */
			public getSignerCertPath(): java.security.cert.CertPath;
			/**
			 * Returns the date and time of this Timestamp.
			 */
			public getTimestamp(): java.util.Date;
			/**
			 * Returns the hash code value for this Timestamp. Returns the same hash code for Timestamps that are equal to each other as required by the general contract of Object#hashCode.
			 */
			public hashCode(): number;
			/**
			 * Returns a string containing a concise, human-readable description of this Timestamp.
			 */
			public toString(): string;
		}
		/**
		 * KeyManagementException is a general exception, thrown to indicate an exception during processing an operation concerning key management.
		 */
		export class KeyManagementException extends java.security.KeyException {
			/**
			 * Constructs a new instance of KeyManagementException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of KeyManagementException.
			 */
			constructor();
			/**
			 * Constructs a new instance of KeyManagementException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of KeyManagementException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.KeyManagementException>;
		}
		/**
		 * Signer represents an identity (individual or corporation) that owns a private key and the corresponding public key.
		 */
		export class Signer extends java.security.Identity {
			/**
			 * Constructs a new instance of Signer with the given name.
			 * @param name 
			 */
			constructor(name: string);
			/**
			 * Constructs a new instance of Signer with the given name in the given scope.
			 * @param name 
			 * @param scope 
			 */
			constructor(name: string, scope: java.security.IdentityScope);
			static class: java.lang.Class<java.security.Signer>;
			/**
			 * Returns the private key of this Signer.
			 */
			public getPrivateKey(): java.security.IPrivateKey;
			/**
			 * Associates the specified key pair with this Signer.
			 * @param pair 
			 */
			public setKeyPair(pair: java.security.KeyPair): void;
			/**
			 * Returns a string containing a concise, human-readable description of this Signer including its name and its scope if present.
			 */
			public toString(): string;
			/**
			 * Returns a string containing a concise, human-readable description of the this Identity.
			 * @param detailed 
			 */
			toString(detailed: boolean): string;
		}
		/**
		 * UnrecoverableKeyException indicates, that a key cannot be recovered from a KeyStore.
		 */
		export class UnrecoverableKeyException extends java.security.UnrecoverableEntryException {
			/**
			 * Constructs a new instance of UnrecoverableKeyException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of UnrecoverableKeyException.
			 */
			constructor();
			static class: java.lang.Class<java.security.UnrecoverableKeyException>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class PrivilegedAction<T> implements java.security.IPrivilegedAction<T> {
			constructor(implementation: java.security.IPrivilegedAction<T>);
			public run(): T;
		}
		/**
		 * Legacy security code; do not use.
		 */
		interface IDomainCombiner {
			/**
			 * Returns a combination of the two provided ProtectionDomain arrays. Implementers can simply merge the two arrays into one, remove duplicates and perform other optimizations.
			 * @param current 
			 * @param assigned 
			 */
			combine(current: native.Array<java.security.ProtectionDomain>, assigned: native.Array<java.security.ProtectionDomain>): native.Array<java.security.ProtectionDomain>;
		}
		/**
		 * DigestOutputStream is a FilterOutputStream which maintains an associated message digest.
		 */
		export class DigestOutputStream extends java.io.FilterOutputStream {
			/**
			 * Constructs a new instance of this DigestOutputStream, using the given stream and the digest.
			 * @param stream 
			 * @param digest 
			 */
			constructor(stream: java.io.OutputStream, digest: java.security.MessageDigest);
			static class: java.lang.Class<java.security.DigestOutputStream>;
			/**
			 * Returns the message digest for this stream.
			 */
			public getMessageDigest(): java.security.MessageDigest;
			/**
			 * Sets the message digest which this stream will use.
			 * @param digest 
			 */
			public setMessageDigest(digest: java.security.MessageDigest): void;
			/**
			 * Writes the specified int to the stream. Updates the digest if this function is #on(boolean).
			 * @param b 
			 */
			public write(b: number): void;
			/**
			 * Writes len bytes into the stream, starting from the specified offset. Updates the digest if this function is #on(boolean).
			 * @param b 
			 * @param off 
			 * @param len 
			 */
			public write(b: native.Array<number>, off: number, len: number): void;
			/**
			 * Enables or disables the digest function (default is on).
			 * @param on 
			 */
			public on(on: boolean): void;
			/**
			 * Returns a string containing a concise, human-readable description of this DigestOutputStream including the digest.
			 */
			public toString(): string;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class AllPermissionCollection extends java.security.PermissionCollection {
			static class: java.lang.Class<java.security.AllPermissionCollection>;
			public add(permission: java.security.Permission): void;
			public elements(): java.util.IEnumeration<java.security.Permission>;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * UnrecoverableEntryException indicates, that a KeyStore.Entry cannot be recovered from a KeyStore.
		 */
		export class UnrecoverableEntryException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of UnrecoverableEntryException.
			 */
			constructor();
			/**
			 * Constructs a new instance of UnrecoverableEntryException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			static class: java.lang.Class<java.security.UnrecoverableEntryException>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		interface IPrivilegedExceptionAction<T> {
			__java_security_IPrivilegedExceptionAction?: any;
			run(): T;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class SecurityPermission extends java.security.BasicPermission {
			constructor(name: string);
			constructor(name: string, action: string);
			static class: java.lang.Class<java.security.SecurityPermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * KeyFactory is an engine class that can be used to translate between public and private key objects and convert keys between their external representation, that can be easily transported and their internal representation.
		 */
		export class KeyFactory extends java.lang.Object {
			static class: java.lang.Class<java.security.KeyFactory>;
			/**
			 * Returns a new instance of KeyFactory that utilizes the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): java.security.KeyFactory;
			/**
			 * Returns a new instance of KeyFactory that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): java.security.KeyFactory;
			/**
			 * Returns a new instance of KeyFactory that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): java.security.KeyFactory;
			/**
			 * Returns the provider associated with this KeyFactory.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns the name of the algorithm associated with this KeyFactory.
			 */
			public getAlgorithm(): string;
			/**
			 * Generates a instance of PublicKey from the given key specification.
			 * @param keySpec 
			 */
			public generatePublic(keySpec: java.security.spec.IKeySpec): java.security.IPublicKey;
			/**
			 * Generates a instance of PrivateKey from the given key specification.
			 * @param keySpec 
			 */
			public generatePrivate(keySpec: java.security.spec.IKeySpec): java.security.IPrivateKey;
			/**
			 * Returns the key specification for the specified key.
			 * @param key 
			 * @param keySpec 
			 */
			public getKeySpec<T extends java.security.spec.IKeySpec>(key: java.security.IKey, keySpec: java.lang.Class<T>): T;
			/**
			 * Translates the given key into a key from this key factory.
			 * @param key 
			 */
			public translateKey(key: java.security.IKey): java.security.IKey;
		}
		/**
		 * CodeSigner represents a signer of code. Instances are immutable.
		 */
		export class CodeSigner extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new instance of CodeSigner.
			 * @param signerCertPath 
			 * @param timestamp 
			 */
			constructor(signerCertPath: java.security.cert.CertPath, timestamp: java.security.Timestamp);
			static class: java.lang.Class<java.security.CodeSigner>;
			/**
			 * Compares the specified object with this CodeSigner for equality. Returns true if the specified object is also an instance of CodeSigner, the two CodeSigner encapsulate the same certificate path and the same time stamp, if present in both.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns the certificate path associated with this CodeSigner.
			 */
			public getSignerCertPath(): java.security.cert.CertPath;
			/**
			 * Returns the time stamp associated with this CodeSigner.
			 */
			public getTimestamp(): java.security.Timestamp;
			/**
			 * Returns the hash code value for this CodeSigner. Returns the same hash code for CodeSigners that are equal to each other as required by the general contract of Object#hashCode.
			 */
			public hashCode(): number;
			/**
			 * Returns a string containing a concise, human-readable description of the this CodeSigner including its first certificate and its time stamp, if present.
			 */
			public toString(): string;
		}
		export module interfaces {
			/**
			 * The interface for a PKCS#1 RSA public key.
			 */
			interface IRSAPublicKey extends java.security.IPublicKey, java.security.interfaces.IRSAKey {
				/**
				 * Returns the public exponent e.
				 */
				getPublicExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			export module IRSAPublicKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The base interface for PKCS#1 RSA public and private keys.
			 */
			export class RSAKey implements java.security.interfaces.IRSAKey {
				constructor(implementation: java.security.interfaces.IRSAKey);
				/**
				 * Returns the modulus.
				 */
				public getModulus(): java.math.BigInteger;
			}
			/**
			 * The interface for key generators that can generate DSA key pairs.
			 */
			interface IDSAKeyPairGenerator {
				/**
				 * Initializes this generator with the prime (p), subprime (q), and base (g) values from the specified parameters.
				 * @param params 
				 * @param random 
				 */
				initialize(params: java.security.interfaces.IDSAParams, random: java.security.SecureRandom): void;
				/**
				 * Initializes this generator for the specified modulus length. Valid values for the modulus length are the multiples of 8 between 512 and 1024.
				 * @param modlen 
				 * @param genParams 
				 * @param random 
				 */
				initialize(modlen: number, genParams: boolean, random: java.security.SecureRandom): void;
			}
			/**
			 * The base interface for Elliptic Curve (EC) public or private keys.
			 */
			interface IECKey {
				/**
				 * Returns the EC key parameters.
				 */
				getParams(): java.security.spec.ECParameterSpec;
			}
			/**
			 * The interface for a Digital Signature Algorithm (DSA) public key.
			 */
			interface IDSAPublicKey extends java.security.interfaces.IDSAKey, java.security.IPublicKey {
				/**
				 * Returns the public key value y.
				 */
				getY(): java.math.BigInteger;
				/**
				 * Returns the DSA key parameters.
				 */
				getParams(): java.security.interfaces.IDSAParams;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			export module IDSAPublicKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface for a PKCS#1 RSA private key using CRT information values.
			 */
			interface IRSAPrivateCrtKey extends java.security.interfaces.IRSAPrivateKey {
				/**
				 * Returns the CRT coefficient, q^-1 mod p.
				 */
				getCrtCoefficient(): java.math.BigInteger;
				/**
				 * Returns the prime factor p of n.
				 */
				getPrimeP(): java.math.BigInteger;
				/**
				 * Returns the prime factor q of n.
				 */
				getPrimeQ(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the primet p.
				 */
				getPrimeExponentP(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the prime q.
				 */
				getPrimeExponentQ(): java.math.BigInteger;
				/**
				 * Returns the public exponent e.
				 */
				getPublicExponent(): java.math.BigInteger;
				/**
				 * Returns the private exponent d.
				 */
				getPrivateExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			export module IRSAPrivateCrtKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The base interface for Elliptic Curve (EC) public or private keys.
			 */
			export class ECKey implements java.security.interfaces.IECKey {
				constructor(implementation: java.security.interfaces.IECKey);
				/**
				 * Returns the EC key parameters.
				 */
				public getParams(): java.security.spec.ECParameterSpec;
			}
			/**
			 * The interface for Digital Signature Algorithm (DSA) specific parameters.
			 */
			export class DSAParams implements java.security.interfaces.IDSAParams {
				constructor(implementation: java.security.interfaces.IDSAParams);
				/**
				 * Returns the base (g) value.
				 */
				public getG(): java.math.BigInteger;
				/**
				 * Returns the prime (p) value.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns the subprime (q value.
				 */
				public getQ(): java.math.BigInteger;
			}
			/**
			 * The interface for key generators that can generate DSA key pairs.
			 */
			export class DSAKeyPairGenerator implements java.security.interfaces.IDSAKeyPairGenerator {
				constructor(implementation: java.security.interfaces.IDSAKeyPairGenerator);
				/**
				 * Initializes this generator with the prime (p), subprime (q), and base (g) values from the specified parameters.
				 * @param params 
				 * @param random 
				 */
				public initialize(params: java.security.interfaces.IDSAParams, random: java.security.SecureRandom): void;
				/**
				 * Initializes this generator for the specified modulus length. Valid values for the modulus length are the multiples of 8 between 512 and 1024.
				 * @param modlen 
				 * @param genParams 
				 * @param random 
				 */
				public initialize(modlen: number, genParams: boolean, random: java.security.SecureRandom): void;
			}
			/**
			 * The interface for a Digital Signature Algorithm (DSA) private key.
			 */
			interface IDSAPrivateKey extends java.security.interfaces.IDSAKey, java.security.IPrivateKey {
				/**
				 * Returns the private key value x.
				 */
				getX(): java.math.BigInteger;
				/**
				 * Returns the DSA key parameters.
				 */
				getParams(): java.security.interfaces.IDSAParams;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			export module IDSAPrivateKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The base interface for Digital Signature Algorithm (DSA) public or private keys.
			 */
			export class DSAKey implements java.security.interfaces.IDSAKey {
				constructor(implementation: java.security.interfaces.IDSAKey);
				/**
				 * Returns the DSA key parameters.
				 */
				public getParams(): java.security.interfaces.IDSAParams;
			}
			/**
			 * The interface for a PKCS#1 RSA public key.
			 */
			export class RSAPublicKey implements java.security.IPublicKey, java.security.interfaces.IRSAKey, java.security.interfaces.IRSAPublicKey {
				constructor(implementation: java.security.interfaces.IRSAPublicKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the public exponent e.
				 */
				public getPublicExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			/**
			 * The base interface for Digital Signature Algorithm (DSA) public or private keys.
			 */
			interface IDSAKey {
				/**
				 * Returns the DSA key parameters.
				 */
				getParams(): java.security.interfaces.IDSAParams;
			}
			/**
			 * The interface for a Multi-Prime RSA private key. Specified by <a href="http://www.rsa.com/rsalabs/node.asp?id=2125">PKCS #1 v2.0 Amendment 1: Multi-Prime RSA</a>.
			 */
			interface IRSAMultiPrimePrivateCrtKey extends java.security.interfaces.IRSAPrivateKey {
				/**
				 * Returns the CRT coefficient, q^-1 mod p.
				 */
				getCrtCoefficient(): java.math.BigInteger;
				/**
				 * Returns the information for the additional primes.
				 */
				getOtherPrimeInfo(): native.Array<java.security.spec.RSAOtherPrimeInfo>;
				/**
				 * Returns the prime factor p of n.
				 */
				getPrimeP(): java.math.BigInteger;
				/**
				 * Returns the prime factor q of n.
				 */
				getPrimeQ(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the prime p.
				 */
				getPrimeExponentP(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the prime q.
				 */
				getPrimeExponentQ(): java.math.BigInteger;
				/**
				 * Returns the public exponent e.
				 */
				getPublicExponent(): java.math.BigInteger;
				/**
				 * Returns the private exponent d.
				 */
				getPrivateExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			export module IRSAMultiPrimePrivateCrtKey {
				/**
				 * the serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface for an Elliptic Curve (EC) private key.
			 */
			export class ECPrivateKey implements java.security.IPrivateKey, java.security.interfaces.IECKey, java.security.interfaces.IECPrivateKey {
				constructor(implementation: java.security.interfaces.IECPrivateKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the private value S.
				 */
				public getS(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the EC key parameters.
				 */
				getParams(): java.security.spec.ECParameterSpec;
			}
			/**
			 * The interface for a PKCS#1 RSA private key using CRT information values.
			 */
			export class RSAPrivateCrtKey implements java.security.interfaces.IRSAPrivateKey, java.security.interfaces.IRSAPrivateCrtKey {
				constructor(implementation: java.security.interfaces.IRSAPrivateCrtKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the CRT coefficient, q^-1 mod p.
				 */
				public getCrtCoefficient(): java.math.BigInteger;
				/**
				 * Returns the prime factor p of n.
				 */
				public getPrimeP(): java.math.BigInteger;
				/**
				 * Returns the prime factor q of n.
				 */
				public getPrimeQ(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the primet p.
				 */
				public getPrimeExponentP(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the prime q.
				 */
				public getPrimeExponentQ(): java.math.BigInteger;
				/**
				 * Returns the public exponent e.
				 */
				public getPublicExponent(): java.math.BigInteger;
				/**
				 * Returns the private exponent d.
				 */
				getPrivateExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			/**
			 * The interface for Digital Signature Algorithm (DSA) specific parameters.
			 */
			interface IDSAParams {
				/**
				 * Returns the base (g) value.
				 */
				getG(): java.math.BigInteger;
				/**
				 * Returns the prime (p) value.
				 */
				getP(): java.math.BigInteger;
				/**
				 * Returns the subprime (q value.
				 */
				getQ(): java.math.BigInteger;
			}
			/**
			 * The base interface for PKCS#1 RSA public and private keys.
			 */
			interface IRSAKey {
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			/**
			 * The interface for an PKCS#1 RSA private key.
			 */
			interface IRSAPrivateKey extends java.security.IPrivateKey, java.security.interfaces.IRSAKey {
				/**
				 * Returns the private exponent d.
				 */
				getPrivateExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			export module IRSAPrivateKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface for a Digital Signature Algorithm (DSA) public key.
			 */
			export class DSAPublicKey implements java.security.interfaces.IDSAKey, java.security.IPublicKey, java.security.interfaces.IDSAPublicKey {
				constructor(implementation: java.security.interfaces.IDSAPublicKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the public key value y.
				 */
				public getY(): java.math.BigInteger;
				/**
				 * Returns the DSA key parameters.
				 */
				getParams(): java.security.interfaces.IDSAParams;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			/**
			 * The interface for an Elliptic Curve (EC) public key.
			 */
			export class ECPublicKey implements java.security.IPublicKey, java.security.interfaces.IECKey, java.security.interfaces.IECPublicKey {
				constructor(implementation: java.security.interfaces.IECPublicKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the public point W on an elliptic curve (EC).
				 */
				public getW(): java.security.spec.ECPoint;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the EC key parameters.
				 */
				getParams(): java.security.spec.ECParameterSpec;
			}
			/**
			 * The interface for a Multi-Prime RSA private key. Specified by <a href="http://www.rsa.com/rsalabs/node.asp?id=2125">PKCS #1 v2.0 Amendment 1: Multi-Prime RSA</a>.
			 */
			export class RSAMultiPrimePrivateCrtKey implements java.security.interfaces.IRSAPrivateKey, java.security.interfaces.IRSAMultiPrimePrivateCrtKey {
				constructor(implementation: java.security.interfaces.IRSAMultiPrimePrivateCrtKey);
				/**
				 * the serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the CRT coefficient, q^-1 mod p.
				 */
				public getCrtCoefficient(): java.math.BigInteger;
				/**
				 * Returns the information for the additional primes.
				 */
				public getOtherPrimeInfo(): native.Array<java.security.spec.RSAOtherPrimeInfo>;
				/**
				 * Returns the prime factor p of n.
				 */
				public getPrimeP(): java.math.BigInteger;
				/**
				 * Returns the prime factor q of n.
				 */
				public getPrimeQ(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the prime p.
				 */
				public getPrimeExponentP(): java.math.BigInteger;
				/**
				 * Returns the CRT exponent of the prime q.
				 */
				public getPrimeExponentQ(): java.math.BigInteger;
				/**
				 * Returns the public exponent e.
				 */
				public getPublicExponent(): java.math.BigInteger;
				/**
				 * Returns the private exponent d.
				 */
				getPrivateExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
			/**
			 * The interface for a Digital Signature Algorithm (DSA) private key.
			 */
			export class DSAPrivateKey implements java.security.interfaces.IDSAKey, java.security.IPrivateKey, java.security.interfaces.IDSAPrivateKey {
				constructor(implementation: java.security.interfaces.IDSAPrivateKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the private key value x.
				 */
				public getX(): java.math.BigInteger;
				/**
				 * Returns the DSA key parameters.
				 */
				getParams(): java.security.interfaces.IDSAParams;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			/**
			 * The interface for an Elliptic Curve (EC) public key.
			 */
			interface IECPublicKey extends java.security.IPublicKey, java.security.interfaces.IECKey {
				/**
				 * Returns the public point W on an elliptic curve (EC).
				 */
				getW(): java.security.spec.ECPoint;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the EC key parameters.
				 */
				getParams(): java.security.spec.ECParameterSpec;
			}
			export module IECPublicKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface for an Elliptic Curve (EC) private key.
			 */
			interface IECPrivateKey extends java.security.IPrivateKey, java.security.interfaces.IECKey {
				/**
				 * Returns the private value S.
				 */
				getS(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the EC key parameters.
				 */
				getParams(): java.security.spec.ECParameterSpec;
			}
			export module IECPrivateKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface for an PKCS#1 RSA private key.
			 */
			export class RSAPrivateKey implements java.security.IPrivateKey, java.security.interfaces.IRSAKey, java.security.interfaces.IRSAPrivateKey {
				constructor(implementation: java.security.interfaces.IRSAPrivateKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the private exponent d.
				 */
				public getPrivateExponent(): java.math.BigInteger;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
				/**
				 * Returns the modulus.
				 */
				getModulus(): java.math.BigInteger;
			}
		}
		/**
		 * IdentityScope represents a scope for Identity objects.
		 */
		export class IdentityScope extends java.security.Identity {
			/**
			 * Constructs a new instance of IdentityScope with the specified name.
			 * @param name 
			 */
			constructor(name: string);
			/**
			 * Constructs a new instance of IdentityScope with the specified name and the specified scope.
			 * @param name 
			 * @param scope 
			 */
			constructor(name: string, scope: java.security.IdentityScope);
			static class: java.lang.Class<java.security.IdentityScope>;
			/**
			 * Returns the system's scope.
			 */
			public static getSystemScope(): java.security.IdentityScope;
			/**
			 * Sets the system's scope.
			 * @param scope 
			 */
			protected static setSystemScope(scope: java.security.IdentityScope): void;
			/**
			 * Returns the number of Identity objects in this scope.
			 */
			public size(): number;
			/**
			 * Returns the Identity with the specified name or null if no Identity with the specified name is present in this scope.
			 * @param name 
			 */
			public getIdentity(name: string): java.security.Identity;
			/**
			 * Returns the Identity with the name of the specified principal or null if no Identity with the name of the specified principal is present in this scope.
			 * @param principal 
			 */
			public getIdentity(principal: java.security.IPrincipal): java.security.Identity;
			/**
			 * Returns the Identity which is associated with the specified key or null if no Identity associated with the specified key is present in this scope.
			 * @param key 
			 */
			public getIdentity(key: java.security.IPublicKey): java.security.Identity;
			/**
			 * Adds an Identity to this IdentityScope.
			 * @param identity 
			 */
			public addIdentity(identity: java.security.Identity): void;
			/**
			 * Removes an Identity from this IdentityScope.
			 * @param identity 
			 */
			public removeIdentity(identity: java.security.Identity): void;
			/**
			 * Returns an Enumeration over the Identity objects in this IdentityScope.
			 */
			public identities(): java.util.IEnumeration<java.security.Identity>;
			/**
			 * Returns a string containing a concise, human-readable description of this IdentityScope.
			 */
			public toString(): string;
			/**
			 * Returns a string containing a concise, human-readable description of the this Identity.
			 * @param detailed 
			 */
			toString(detailed: boolean): string;
		}
		/**
		 * A default PermissionCollection implementation that uses a hashtable. Each hashtable entry stores a Permission object as both the key and the value.
		 */
		export class PermissionsHash extends java.security.PermissionCollection {
			static class: java.lang.Class<java.security.PermissionsHash>;
			/**
			 * Adds the argument to the collection.
			 * @param permission 
			 */
			public add(permission: java.security.Permission): void;
			/**
			 * Returns an enumeration of the permissions in the receiver.
			 */
			public elements(): java.util.IEnumeration<any>;
			/**
			 * Indicates whether the argument permission is implied by the permissions contained in the receiver.
			 * @param permission 
			 */
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class AuthProvider extends java.security.Provider {
			static class: java.lang.Class<java.security.AuthProvider>;
			public login(subject: javax.security.auth.Subject, handler: javax.security.auth.callback.ICallbackHandler): void;
			public logout(): void;
			public setCallbackHandler(handler: javax.security.auth.callback.ICallbackHandler): void;
		}
		/**
		 * MessageDigestSpi is the Service Provider Interface (SPI) definition for MessageDigest. Examples of digest algorithms are MD5 and SHA. A digest is a secure one way hash function for a stream of bytes. It acts like a fingerprint for a stream of bytes.
		 */
		export class MessageDigestSpi extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.security.MessageDigestSpi>;
			/**
			 * Returns the engine digest length in bytes. If the implementation does not implement this function 0 is returned.
			 */
			protected engineGetDigestLength(): number;
			/**
			 * Updates this MessageDigestSpi using the given byte.
			 * @param input 
			 */
			protected engineUpdate(input: number): void;
			/**
			 * Updates this MessageDigestSpi using the given byte[].
			 * @param input 
			 * @param offset 
			 * @param len 
			 */
			protected engineUpdate(input: native.Array<number>, offset: number, len: number): void;
			/**
			 * Updates this MessageDigestSpi using the given input.
			 * @param input 
			 */
			protected engineUpdate(input: java.nio.ByteBuffer): void;
			/**
			 * Computes and returns the final hash value for this MessageDigestSpi. After the digest is computed the receiver is reset.
			 */
			protected engineDigest(): native.Array<number>;
			/**
			 * Computes and stores the final hash value for this MessageDigestSpi. After the digest is computed the receiver is reset.
			 * @param buf 
			 * @param offset 
			 * @param len 
			 */
			protected engineDigest(buf: native.Array<number>, offset: number, len: number): number;
			/**
			 * Puts this MessageDigestSpi back in an initial state, such that it is ready to compute a one way hash value.
			 */
			protected engineReset(): void;
			public clone(): any;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class PrivilegedExceptionAction<T> implements java.security.IPrivilegedExceptionAction<T> {
			constructor(implementation: java.security.IPrivilegedExceptionAction<T>);
			public run(): T;
		}
		/**
		 * KeyPairGenerator is an engine class which is capable of generating a private key and its related public key utilizing the algorithm it was initialized with.
		 */
		export class KeyPairGenerator extends java.security.KeyPairGeneratorSpi {
			static class: java.lang.Class<java.security.KeyPairGenerator>;
			/**
			 * Returns the name of the algorithm of this KeyPairGenerator.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns a new instance of KeyPairGenerator that utilizes the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): java.security.KeyPairGenerator;
			/**
			 * Returns a new instance of KeyPairGenerator that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): java.security.KeyPairGenerator;
			/**
			 * Returns a new instance of KeyPairGenerator that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): java.security.KeyPairGenerator;
			/**
			 * Returns the provider associated with this KeyPairGenerator.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Initializes this KeyPairGenerator with the given key size. The default parameter set and a default SecureRandom instance will be used.
			 * @param keysize 
			 */
			public initialize(keysize: number): void;
			/**
			 * Initializes this KeyPairGenerator with the given AlgorithmParameterSpec. A default SecureRandom instance will be used.
			 * @param param 
			 */
			public initialize(param: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Computes and returns a new unique KeyPair each time this method is called.
			 */
			public genKeyPair(): java.security.KeyPair;
			/**
			 * Computes and returns a new unique KeyPair each time this method is called.
			 */
			public generateKeyPair(): java.security.KeyPair;
			/**
			 * Initializes this KeyPairGenerator with the given key size and the given SecureRandom. The default parameter set will be used.
			 * @param keysize 
			 * @param random 
			 */
			public initialize(keysize: number, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyPairGenerator with the given AlgorithmParameterSpec and the given SecureRandom.
			 * @param param 
			 * @param random 
			 */
			public initialize(param: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
		}
		export module KeyPairGenerator {
			export class KeyPairGeneratorImpl extends java.security.KeyPairGenerator {
				static class: java.lang.Class<java.security.KeyPairGenerator.KeyPairGeneratorImpl>;
				public initialize(keysize: number, random: java.security.SecureRandom): void;
				public generateKeyPair(): java.security.KeyPair;
				public initialize(param: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
				/**
				 * Initializes this KeyPairGenerator with the given key size. The default parameter set and a default SecureRandom instance will be used.
				 * @param keysize 
				 */
				initialize(keysize: number): void;
				/**
				 * Initializes this KeyPairGenerator with the given AlgorithmParameterSpec. A default SecureRandom instance will be used.
				 * @param param 
				 */
				initialize(param: java.security.spec.IAlgorithmParameterSpec): void;
			}
		}
		/**
		 * KeyStoreException is a general KeyStore exception.
		 */
		export class KeyStoreException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of KeyStoreException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of KeyStoreException.
			 */
			constructor();
			/**
			 * Constructs a new instance of KeyStoreException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of KeyStoreException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.KeyStoreException>;
		}
		/**
		 * Guard implementors protect access to other objects.
		 */
		interface IGuard {
			/**
			 * Checks whether access to the specified Object should be granted. This method returns silently if access is granted, otherwise a SecurityException is thrown.
			 * @param object 
			 */
			checkGuard(object: any): void;
		}
		/**
		 * KeyStoreSpi is the Service Provider Interface (SPI) definition for KeyStore.
		 */
		export class KeyStoreSpi extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.security.KeyStoreSpi>;
			/**
			 * Returns the key with the given alias, using the password to recover the key from the store.
			 * @param alias 
			 * @param password 
			 */
			public engineGetKey(alias: string, password: native.Array<string>): java.security.IKey;
			/**
			 * Returns the certificate chain for the entry with the given alias.
			 * @param alias 
			 */
			public engineGetCertificateChain(alias: string): native.Array<java.security.cert.Certificate>;
			/**
			 * Returns the trusted certificate for the entry with the given alias.
			 * @param alias 
			 */
			public engineGetCertificate(alias: string): java.security.cert.Certificate;
			/**
			 * Returns the creation date of the entry with the given alias.
			 * @param alias 
			 */
			public engineGetCreationDate(alias: string): java.util.Date;
			/**
			 * Associates the given alias with the key, password and certificate chain.
			 * @param alias 
			 * @param key 
			 * @param password 
			 * @param chain 
			 */
			public engineSetKeyEntry(alias: string, key: java.security.IKey, password: native.Array<string>, chain: native.Array<java.security.cert.Certificate>): void;
			/**
			 * Associates the given alias with a key and a certificate chain.
			 * @param alias 
			 * @param key 
			 * @param chain 
			 */
			public engineSetKeyEntry(alias: string, key: native.Array<number>, chain: native.Array<java.security.cert.Certificate>): void;
			/**
			 * Associates the given alias with a certificate.
			 * @param alias 
			 * @param cert 
			 */
			public engineSetCertificateEntry(alias: string, cert: java.security.cert.Certificate): void;
			/**
			 * Deletes the entry identified with the given alias from this KeyStoreSpi.
			 * @param alias 
			 */
			public engineDeleteEntry(alias: string): void;
			/**
			 * Returns an Enumeration over all alias names stored in this KeyStoreSpi.
			 */
			public engineAliases(): java.util.IEnumeration<string>;
			/**
			 * Indicates whether the given alias is present in this KeyStoreSpi.
			 * @param alias 
			 */
			public engineContainsAlias(alias: string): boolean;
			/**
			 * Returns the number of entries stored in this KeyStoreSpi.
			 */
			public engineSize(): number;
			/**
			 * Indicates whether the specified alias is associated with either a KeyStore.PrivateKeyEntry or a KeyStore.SecretKeyEntry.
			 * @param alias 
			 */
			public engineIsKeyEntry(alias: string): boolean;
			/**
			 * Indicates whether the specified alias is associated with a KeyStore.TrustedCertificateEntry.
			 * @param alias 
			 */
			public engineIsCertificateEntry(alias: string): boolean;
			/**
			 * Returns the alias associated with the first entry whose certificate matches the specified certificate.
			 * @param cert 
			 */
			public engineGetCertificateAlias(cert: java.security.cert.Certificate): string;
			/**
			 * Writes this KeyStoreSpi to the specified OutputStream. The data written to the OutputStream is protected by the specified password.
			 * @param stream 
			 * @param password 
			 */
			public engineStore(stream: java.io.OutputStream, password: native.Array<string>): void;
			/**
			 * Stores this KeyStoreSpi using the specified LoadStoreParameter.
			 * @param param 
			 */
			public engineStore(param: java.security.KeyStore.ILoadStoreParameter): void;
			/**
			 * Loads this KeyStoreSpi from the given InputStream. Utilizes the given password to verify the stored data.
			 * @param stream 
			 * @param password 
			 */
			public engineLoad(stream: java.io.InputStream, password: native.Array<string>): void;
			/**
			 * Loads this KeyStoreSpi using the specified LoadStoreParameter.
			 * @param param 
			 */
			public engineLoad(param: java.security.KeyStore.ILoadStoreParameter): void;
			/**
			 * Returns the Entry with the given alias, using the specified ProtectionParameter.
			 * @param alias 
			 * @param protParam 
			 */
			public engineGetEntry(alias: string, protParam: java.security.KeyStore.IProtectionParameter): java.security.KeyStore.IEntry;
			/**
			 * Stores the given Entry in this KeyStoreSpi and associates the entry with the given alias. The entry is protected by the specified ProtectionParameter.
			 * @param alias 
			 * @param entry 
			 * @param protParam 
			 */
			public engineSetEntry(alias: string, entry: java.security.KeyStore.IEntry, protParam: java.security.KeyStore.IProtectionParameter): void;
			/**
			 * Indicates whether the entry for the given alias is assignable to the provided Class.
			 * @param alias 
			 * @param entryClass 
			 */
			public engineEntryInstanceOf(alias: string, entryClass: java.lang.Class<any>): boolean;
			static getPasswordFromCallBack(protParam: java.security.KeyStore.IProtectionParameter): native.Array<string>;
		}
		/**
		 * InvalidKeyException indicates exceptional conditions, caused by an invalid key.
		 */
		export class InvalidKeyException extends java.security.KeyException {
			/**
			 * Constructs a new instance of InvalidKeyException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of InvalidKeyException.
			 */
			constructor();
			/**
			 * Constructs a new instance of InvalidKeyException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of InvalidKeyException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.InvalidKeyException>;
		}
		/**
		 * KeyStore is responsible for maintaining cryptographic keys and their owners.
		 */
		export class KeyStore extends java.lang.Object {
			static class: java.lang.Class<java.security.KeyStore>;
			/**
			 * Returns a new instance of KeyStore with the specified type.
			 * @param type 
			 */
			public static getInstance(type: string): java.security.KeyStore;
			/**
			 * Returns a new instance of KeyStore from the specified provider with the given type.
			 * @param type 
			 * @param provider 
			 */
			public static getInstance(type: string, provider: string): java.security.KeyStore;
			/**
			 * Returns a new instance of KeyStore from the specified provider with the given type.
			 * @param type 
			 * @param provider 
			 */
			public static getInstance(type: string, provider: java.security.Provider): java.security.KeyStore;
			/**
			 * Returns the default type for KeyStore instances.
			 */
			public static getDefaultType(): string;
			/**
			 * Returns the provider associated with this KeyStore.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns the type of this KeyStore.
			 */
			public getType(): string;
			/**
			 * Returns the key with the given alias, using the password to recover the key from the store.
			 * @param alias 
			 * @param password 
			 */
			public getKey(alias: string, password: native.Array<string>): java.security.IKey;
			/**
			 * Returns the certificate chain for the entry with the given alias.
			 * @param alias 
			 */
			public getCertificateChain(alias: string): native.Array<java.security.cert.Certificate>;
			/**
			 * Returns the trusted certificate for the entry with the given alias.
			 * @param alias 
			 */
			public getCertificate(alias: string): java.security.cert.Certificate;
			/**
			 * Returns the creation date of the entry with the given alias.
			 * @param alias 
			 */
			public getCreationDate(alias: string): java.util.Date;
			/**
			 * Associates the given alias with the key, password and certificate chain.
			 * @param alias 
			 * @param key 
			 * @param password 
			 * @param chain 
			 */
			public setKeyEntry(alias: string, key: java.security.IKey, password: native.Array<string>, chain: native.Array<java.security.cert.Certificate>): void;
			/**
			 * Associates the given alias with a key and a certificate chain.
			 * @param alias 
			 * @param key 
			 * @param chain 
			 */
			public setKeyEntry(alias: string, key: native.Array<number>, chain: native.Array<java.security.cert.Certificate>): void;
			/**
			 * Associates the given alias with a certificate.
			 * @param alias 
			 * @param cert 
			 */
			public setCertificateEntry(alias: string, cert: java.security.cert.Certificate): void;
			/**
			 * Deletes the entry identified with the given alias from this KeyStore.
			 * @param alias 
			 */
			public deleteEntry(alias: string): void;
			/**
			 * Returns an Enumeration over all alias names stored in this KeyStore.
			 */
			public aliases(): java.util.IEnumeration<string>;
			/**
			 * Indicates whether the given alias is present in this KeyStore.
			 * @param alias 
			 */
			public containsAlias(alias: string): boolean;
			/**
			 * Returns the number of entries stored in this KeyStore.
			 */
			public size(): number;
			/**
			 * Indicates whether the specified alias is associated with either a PrivateKeyEntry or a SecretKeyEntry.
			 * @param alias 
			 */
			public isKeyEntry(alias: string): boolean;
			/**
			 * Indicates whether the specified alias is associated with a TrustedCertificateEntry.
			 * @param alias 
			 */
			public isCertificateEntry(alias: string): boolean;
			/**
			 * Returns the alias associated with the first entry whose certificate matches the specified certificate.
			 * @param cert 
			 */
			public getCertificateAlias(cert: java.security.cert.Certificate): string;
			/**
			 * Writes this KeyStore to the specified OutputStream. The data written to the OutputStream is protected by the specified password.
			 * @param stream 
			 * @param password 
			 */
			public store(stream: java.io.OutputStream, password: native.Array<string>): void;
			/**
			 * Stores this KeyStore using the specified LoadStoreParameter.
			 * @param param 
			 */
			public store(param: java.security.KeyStore.ILoadStoreParameter): void;
			/**
			 * Initializes this KeyStore from the provided InputStream. Pass null as the stream argument to initialize an empty KeyStore or to initialize a KeyStore which does not rely on an InputStream. This KeyStore utilizes the given password to verify the stored data.
			 * @param stream 
			 * @param password 
			 */
			public load(stream: java.io.InputStream, password: native.Array<string>): void;
			/**
			 * Loads this KeyStore using the specified LoadStoreParameter.
			 * @param param 
			 */
			public load(param: java.security.KeyStore.ILoadStoreParameter): void;
			/**
			 * Returns the Entry with the given alias, using the specified ProtectionParameter.
			 * @param alias 
			 * @param param 
			 */
			public getEntry(alias: string, param: java.security.KeyStore.IProtectionParameter): java.security.KeyStore.IEntry;
			/**
			 * Stores the given Entry in this KeyStore and associates the entry with the given alias. The entry is protected by the specified ProtectionParameter.
			 * @param alias 
			 * @param entry 
			 * @param param 
			 */
			public setEntry(alias: string, entry: java.security.KeyStore.IEntry, param: java.security.KeyStore.IProtectionParameter): void;
			/**
			 * Indicates whether the entry for the given alias is assignable to the provided Class.
			 * @param alias 
			 * @param entryClass 
			 */
			public entryInstanceOf(alias: string, entryClass: java.lang.Class<any>): boolean;
		}
		export module KeyStore {
			/**
			 * CallbackHandlerProtection is a ProtectionParameter that encapsulates a CallbackHandler.
			 */
			export class CallbackHandlerProtection extends java.lang.Object implements java.security.KeyStore.IProtectionParameter {
				/**
				 * Constructs a new instance of CallbackHandlerProtection with the CallbackHandler.
				 * @param handler 
				 */
				constructor(handler: javax.security.auth.callback.ICallbackHandler);
				static class: java.lang.Class<java.security.KeyStore.CallbackHandlerProtection>;
				/**
				 * Returns the CallbackHandler.
				 */
				public getCallbackHandler(): javax.security.auth.callback.ICallbackHandler;
			}
			/**
			 * LoadStoreParameter represents a parameter that specifies how a KeyStore can be loaded and stored.
			 */
			interface ILoadStoreParameter {
				/**
				 * Returns the ProtectionParameter which is used to protect data in the KeyStore.
				 */
				getProtectionParameter(): java.security.KeyStore.IProtectionParameter;
			}
			/**
			 * Entry is the common marker interface for a KeyStore entry.
			 */
			export class Entry implements java.security.KeyStore.IEntry {
				constructor(implementation: java.security.KeyStore.IEntry);
			}
			/**
			 * ProtectionParameter is a marker interface for protection parameters. A protection parameter is used to protect the content of a KeyStore.
			 */
			interface IProtectionParameter {
			}
			/**
			 * Builder is used to construct new instances of KeyStore.
			 */
			export class Builder extends java.lang.Object {
				static class: java.lang.Class<java.security.KeyStore.Builder>;
				/**
				 * Returns the KeyStore created by this Builder.
				 */
				public getKeyStore(): java.security.KeyStore;
				/**
				 * Returns the ProtectionParameter to be used when a Entry with the specified alias is requested. Before this method is invoked, #getKeyStore() must be called.
				 * @param alias 
				 */
				public getProtectionParameter(alias: string): java.security.KeyStore.IProtectionParameter;
				/**
				 * Returns a new Builder that holds the given KeyStore and the given ProtectionParameter.
				 * @param keyStore 
				 * @param protectionParameter 
				 */
				public static newInstance(keyStore: java.security.KeyStore, protectionParameter: java.security.KeyStore.IProtectionParameter): java.security.KeyStore.Builder;
				/**
				 * Returns a new Builder that creates a new KeyStore based on the provided arguments.
				 * @param type 
				 * @param provider 
				 * @param file 
				 * @param protectionParameter 
				 */
				public static newInstance(type: string, provider: java.security.Provider, file: java.io.File, protectionParameter: java.security.KeyStore.IProtectionParameter): java.security.KeyStore.Builder;
				/**
				 * Returns a new Builder that creates a new KeyStore based on the provided arguments.
				 * @param type 
				 * @param provider 
				 * @param protectionParameter 
				 */
				public static newInstance(type: string, provider: java.security.Provider, protectionParameter: java.security.KeyStore.IProtectionParameter): java.security.KeyStore.Builder;
			}
			export module Builder {
				export class BuilderImpl extends java.security.KeyStore.Builder {
					static class: java.lang.Class<java.security.KeyStore.Builder.BuilderImpl>;
					/**
					 * Implementation of abstract getKeyStore() method If KeyStoreBuilder encapsulates KeyStore object then this object is returned
					 */
					public getKeyStore(): java.security.KeyStore;
					/**
					 * This is implementation of abstract method getProtectionParameter(String alias)
					 */
					public getProtectionParameter(alias: string): java.security.KeyStore.IProtectionParameter;
				}
				export class TmpLSParameter extends java.lang.Object implements java.security.KeyStore.ILoadStoreParameter {
					/**
					 * Creates TmpLoadStoreParameter object
					 * @param protPar protection parameter
					 */
					constructor(protPar: java.security.KeyStore.IProtectionParameter);
					static class: java.lang.Class<java.security.KeyStore.Builder.TmpLSParameter>;
					/**
					 * This method returns protection parameter
					 */
					public getProtectionParameter(): java.security.KeyStore.IProtectionParameter;
				}
			}
			/**
			 * Entry is the common marker interface for a KeyStore entry.
			 */
			interface IEntry {
			}
			/**
			 * SecretKeyEntry represents a KeyStore entry that holds a secret key.
			 */
			export class SecretKeyEntry extends java.lang.Object implements java.security.KeyStore.IEntry {
				/**
				 * Constructs a new instance of SecretKeyEntry with the given SecretKey.
				 * @param secretKey 
				 */
				constructor(secretKey: javax.crypto.ISecretKey);
				static class: java.lang.Class<java.security.KeyStore.SecretKeyEntry>;
				/**
				 * Returns the secret key.
				 */
				public getSecretKey(): javax.crypto.ISecretKey;
				/**
				 * Returns a string containing a concise, human-readable description of this SecretKeyEntry.
				 */
				public toString(): string;
			}
			/**
			 * PrivateKeyEntry represents a KeyStore entry that holds a private key.
			 */
			export class PrivateKeyEntry extends java.lang.Object implements java.security.KeyStore.IEntry {
				/**
				 * Constructs a new instance of PrivateKeyEntry with the given PrivateKey and the provided certificate chain.
				 * @param privateKey 
				 * @param chain 
				 */
				constructor(privateKey: java.security.IPrivateKey, chain: native.Array<java.security.cert.Certificate>);
				static class: java.lang.Class<java.security.KeyStore.PrivateKeyEntry>;
				/**
				 * Returns the private key.
				 */
				public getPrivateKey(): java.security.IPrivateKey;
				/**
				 * Returns the certificate chain.
				 */
				public getCertificateChain(): native.Array<java.security.cert.Certificate>;
				/**
				 * Returns the certificate corresponding to the private key.
				 */
				public getCertificate(): java.security.cert.Certificate;
				/**
				 * Returns a string containing a concise, human-readable description of this PrivateKeyEntry.
				 */
				public toString(): string;
			}
			/**
			 * PasswordProtection is a ProtectionParameter that protects a KeyStore using a password.
			 */
			export class PasswordProtection extends java.lang.Object implements java.security.KeyStore.IProtectionParameter, javax.security.auth.IDestroyable {
				/**
				 * Constructs a new instance of PasswordProtection with a password. A copy of the password is stored in the new PasswordProtection object.
				 * @param password 
				 */
				constructor(password: native.Array<string>);
				static class: java.lang.Class<java.security.KeyStore.PasswordProtection>;
				/**
				 * Returns the password.
				 */
				public getPassword(): native.Array<string>;
				/**
				 * Destroys / invalidates the password.
				 */
				public destroy(): void;
				/**
				 * Indicates whether the password is invalidated.
				 */
				public isDestroyed(): boolean;
			}
			/**
			 * LoadStoreParameter represents a parameter that specifies how a KeyStore can be loaded and stored.
			 */
			export class LoadStoreParameter implements java.security.KeyStore.ILoadStoreParameter {
				constructor(implementation: java.security.KeyStore.ILoadStoreParameter);
				/**
				 * Returns the ProtectionParameter which is used to protect data in the KeyStore.
				 */
				public getProtectionParameter(): java.security.KeyStore.IProtectionParameter;
			}
			/**
			 * ProtectionParameter is a marker interface for protection parameters. A protection parameter is used to protect the content of a KeyStore.
			 */
			export class ProtectionParameter implements java.security.KeyStore.IProtectionParameter {
				constructor(implementation: java.security.KeyStore.IProtectionParameter);
			}
			/**
			 * TrustedCertificateEntry represents a KeyStore entry that holds a trusted certificate.
			 */
			export class TrustedCertificateEntry extends java.lang.Object implements java.security.KeyStore.IEntry {
				/**
				 * Constructs a new instance of TrustedCertificateEntry with the given Certificate.
				 * @param trustCertificate 
				 */
				constructor(trustCertificate: java.security.cert.Certificate);
				static class: java.lang.Class<java.security.KeyStore.TrustedCertificateEntry>;
				/**
				 * Returns the trusted certificate.
				 */
				public getTrustedCertificate(): java.security.cert.Certificate;
				/**
				 * Returns a string containing a concise, human-readable description of this TrustedCertificateEntry.
				 */
				public toString(): string;
			}
		}
		/**
		 * KeyException is the common superclass of all key related exceptions.
		 */
		export class KeyException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of KeyException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of KeyException.
			 */
			constructor();
			/**
			 * Constructs a new instance of KeyException with the given message and the cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of KeyException with the cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.security.KeyException>;
		}
		/**
		 * SignatureSpi is the <i>Service Provider Interface</i> (<b>SPI</b>) definition for Signature.
		 */
		export class SignatureSpi extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.security.SignatureSpi>;
			/**
			 * Initializes this SignatureSpi instance for signature verification, using the public key of the identity whose signature is going to be verified.
			 * @param publicKey 
			 */
			protected engineInitVerify(publicKey: java.security.IPublicKey): void;
			/**
			 * Initializes this SignatureSpi instance for signing, using the private key of the identity whose signature is going to be generated.
			 * @param privateKey 
			 */
			protected engineInitSign(privateKey: java.security.IPrivateKey): void;
			/**
			 * Initializes this SignatureSpi instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.
			 * @param privateKey 
			 * @param random 
			 */
			protected engineInitSign(privateKey: java.security.IPrivateKey, random: java.security.SecureRandom): void;
			/**
			 * Updates the data to be verified or to be signed, using the specified byte.
			 * @param b 
			 */
			protected engineUpdate(b: number): void;
			/**
			 * Updates the data to be verified or to be signed, using the given byte[], starting form the specified index for the specified length.
			 * @param b 
			 * @param off 
			 * @param len 
			 */
			protected engineUpdate(b: native.Array<number>, off: number, len: number): void;
			/**
			 * Updates the data to be verified or to be signed, using the specified ByteBuffer.
			 * @param input 
			 */
			protected engineUpdate(input: java.nio.ByteBuffer): void;
			/**
			 * Generates and returns the signature of all updated data.
			 */
			protected engineSign(): native.Array<number>;
			/**
			 * Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.
			 * @param outbuf 
			 * @param offset 
			 * @param len 
			 */
			protected engineSign(outbuf: native.Array<number>, offset: number, len: number): number;
			/**
			 * Indicates whether the given sigBytes can be verified using the public key or a certificate of the signer.
			 * @param sigBytes 
			 */
			protected engineVerify(sigBytes: native.Array<number>): boolean;
			/**
			 * Indicates whether the given sigBytes starting at index offset with length bytes can be verified using the public key or a certificate of the signer.
			 * @param sigBytes 
			 * @param offset 
			 * @param length 
			 */
			protected engineVerify(sigBytes: native.Array<number>, offset: number, length: number): boolean;
			/**
			 * Sets the specified parameter to the given value.
			 * @param param 
			 * @param value 
			 */
			protected engineSetParameter(param: string, value: any): void;
			/**
			 * Sets the specified AlgorithmParameterSpec.
			 * @param params 
			 */
			protected engineSetParameter(params: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Returns the AlgorithmParameters of this SignatureSpi instance.
			 */
			protected engineGetParameters(): java.security.AlgorithmParameters;
			/**
			 * Returns the value of the parameter with the specified name.
			 * @param param 
			 */
			protected engineGetParameter(param: string): any;
			public clone(): any;
		}
		/**
		 * Provider is the abstract superclass for all security providers in the Java security infrastructure.
		 */
		export class Provider extends java.util.Properties {
			static class: java.lang.Class<java.security.Provider>;
			/**
			 * Returns the name of this provider.
			 */
			public getName(): string;
			/**
			 * Returns the version number for the services being provided.
			 */
			public getVersion(): any;
			/**
			 * Returns a description of the services being provided.
			 */
			public getInfo(): string;
			/**
			 * Returns a string containing a concise, human-readable description of this Provider including its name and its version.
			 */
			public toString(): string;
			/**
			 * Clears all properties used to look up services implemented by this Provider.
			 */
			public clear(): void;
			public load(inStream: java.io.InputStream): void;
			/**
			 * Copies all from the provided map to this Provider.
			 * @param t 
			 */
			public putAll(t: java.util.IMap<any, any>): void;
			public entrySet(): java.util.ISet<java.util.Map.IEntry<any, any>>;
			public keySet(): java.util.ISet<any>;
			public values(): java.util.ICollection<any>;
			/**
			 * Maps the specified key property name to the specified value.
			 * @param key 
			 * @param value 
			 */
			public put(key: any, value: any): any;
			/**
			 * Removes the specified key and its associated value from this Provider.
			 * @param key 
			 */
			public remove(key: any): any;
			/**
			 * Returns true if this provider implements the given algorithm. Caller must specify the cryptographic service and specify constraints via the attribute name and value.
			 * @param serv 
			 * @param alg 
			 * @param attribute 
			 * @param val 
			 */
			implementsAlg(serv: string, alg: string, attribute: string, val: string): boolean;
			/**
			 * @param n 
			 */
			setProviderNumber(n: number): void;
			getProviderNumber(): number;
			/**
			 * Get the service of the specified type
			 */
			getService(type: string): java.security.Provider.Service;
			/**
			 * Returns the service with the specified type implementing the specified algorithm, or null if no such implementation exists.
			 * @param type 
			 * @param algorithm 
			 */
			public getService(type: string, algorithm: string): java.security.Provider.Service;
			/**
			 * Returns an unmodifiable Set of all services registered by this provider.
			 */
			public getServices(): java.util.ISet<java.security.Provider.Service>;
			/**
			 * Adds a Service to this Provider. If a service with the same name was registered via this method, it is replace.
			 * @param s 
			 */
			protected putService(s: java.security.Provider.Service): void;
			/**
			 * Removes a previously registered Service from this Provider.
			 * @param s 
			 */
			protected removeService(s: java.security.Provider.Service): void;
			/**
			 * Loads properties from the specified Reader. The properties file is interpreted according to the following rules: <ul> <li>Empty lines are ignored.</li> <li>Lines starting with either a "#" or a "!" are comment lines and are ignored.</li> <li>A backslash at the end of the line escapes the following newline character ("\r", "\n", "\r\n"). If there's whitespace after the backslash it will just escape that whitespace instead of concatenating the lines. This does not apply to comment lines.</li> <li>A property line consists of the key, the space between the key and the value, and the value. The key goes up to the first whitespace, "=" or ":" that is not escaped. The space between the key and the value contains either one whitespace, one "=" or one ":" and any amount of additional whitespace before and after that character. The value starts with the first character after the space between the key and the value.</li> <li>Following escape sequences are recognized: "\ ", "\\", "\r", "\n", "\!", "\#", "\t", "\b", "\f", and "&#92;uXXXX" (unicode character).</li> </ul>
			 * @param input in the {@code Reader}
			 */
			load(input: java.io.Reader): void;
		}
		export module Provider {
			/**
			 * Service represents a service in the Java Security infrastructure. Each service describes its type, the algorithm it implements, to which provider it belongs and other properties.
			 */
			export class Service extends java.lang.Object {
				/**
				 * Constructs a new instance of Service with the given attributes.
				 * @param provider 
				 * @param type 
				 * @param algorithm 
				 * @param className 
				 * @param aliases 
				 * @param attributes 
				 */
				constructor(provider: java.security.Provider, type: string, algorithm: string, className: string, aliases: java.util.IList<string>, attributes: java.util.IMap<string, string>);
				static class: java.lang.Class<java.security.Provider.Service>;
				/**
				 * Adds an alias.
				 * @param alias the alias to add
				 */
				addAlias(alias: string): void;
				/**
				 * Puts a new attribute mapping.
				 * @param name the attribute name.
				 * @param value the attribute value.
				 */
				putAttribute(name: string, value: string): void;
				/**
				 * Returns the type of this Service. For example KeyPairGenerator.
				 */
				public getType(): string;
				/**
				 * Returns the name of the algorithm implemented by this Service.
				 */
				public getAlgorithm(): string;
				/**
				 * Returns the Provider this Service belongs to.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Returns the name of the class implementing this Service.
				 */
				public getClassName(): string;
				/**
				 * Returns the value of the attribute with the specified name.
				 * @param name 
				 */
				public getAttribute(name: string): string;
				getAliases(): java.util.IList<string>;
				/**
				 * Creates and returns a new instance of the implementation described by this Service.
				 * @param constructorParameter 
				 */
				public newInstance(constructorParameter: any): any;
				/**
				 * Indicates whether this Service supports the specified constructor parameter.
				 * @param parameter 
				 */
				public supportsParameter(parameter: any): boolean;
				/**
				 * Returns a string containing a concise, human-readable description of this Service.
				 */
				public toString(): string;
			}
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class DomainCombiner implements java.security.IDomainCombiner {
			constructor(implementation: java.security.IDomainCombiner);
			/**
			 * Returns a combination of the two provided ProtectionDomain arrays. Implementers can simply merge the two arrays into one, remove duplicates and perform other optimizations.
			 * @param current 
			 * @param assigned 
			 */
			public combine(current: native.Array<java.security.ProtectionDomain>, assigned: native.Array<java.security.ProtectionDomain>): native.Array<java.security.ProtectionDomain>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class AccessController extends java.lang.Object {
			static class: java.lang.Class<java.security.AccessController>;
			/**
			 * Calls action.run().
			 */
			public static doPrivileged<T>(action: java.security.IPrivilegedAction<T>): T;
			/**
			 * Calls action.run().
			 */
			public static doPrivileged<T>(action: java.security.IPrivilegedAction<T>, context: java.security.AccessControlContext): T;
			/**
			 * Calls action.run().
			 */
			public static doPrivileged<T>(action: java.security.IPrivilegedExceptionAction<T>): T;
			/**
			 * Calls action.run().
			 */
			public static doPrivileged<T>(action: java.security.IPrivilegedExceptionAction<T>, context: java.security.AccessControlContext): T;
			/**
			 * Calls action.run().
			 */
			public static doPrivilegedWithCombiner<T>(action: java.security.IPrivilegedAction<T>): T;
			/**
			 * Calls action.run().
			 */
			public static doPrivilegedWithCombiner<T>(action: java.security.IPrivilegedExceptionAction<T>): T;
			public static checkPermission(permission: java.security.Permission): void;
			public static getContext(): java.security.AccessControlContext;
		}
		/**
		 * Key is the common interface for all keys.
		 */
		interface IKey extends java.io.ISerializable {
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			getEncoded(): native.Array<number>;
		}
		export module IKey {
			/**
			 * The serialVersionUID to be compatible with JDK1.1.
			 */
			var serialVersionUID: number;
		}
		/**
		 * Signature is an engine class which is capable of creating and verifying digital signatures, using different algorithms that have been registered with the Security class.
		 */
		export class Signature extends java.security.SignatureSpi {
			static class: java.lang.Class<java.security.Signature>;
			/**
			 * Returns a new instance of Signature that utilizes the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): java.security.Signature;
			/**
			 * Returns a new instance of Signature that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): java.security.Signature;
			/**
			 * Returns a new instance of Signature that utilizes the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): java.security.Signature;
			/**
			 * Returns the provider associated with this Signature.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns the name of the algorithm of this Signature.
			 */
			public getAlgorithm(): string;
			/**
			 * Initializes this Signature instance for signature verification, using the public key of the identity whose signature is going to be verified.
			 * @param publicKey 
			 */
			public initVerify(publicKey: java.security.IPublicKey): void;
			/**
			 * Initializes this Signature instance for signature verification, using the certificate of the identity whose signature is going to be verified.
			 * @param certificate 
			 */
			public initVerify(certificate: java.security.cert.Certificate): void;
			/**
			 * Initializes this Signature instance for signing, using the private key of the identity whose signature is going to be generated.
			 * @param privateKey 
			 */
			public initSign(privateKey: java.security.IPrivateKey): void;
			/**
			 * Initializes this Signature instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.
			 * @param privateKey 
			 * @param random 
			 */
			public initSign(privateKey: java.security.IPrivateKey, random: java.security.SecureRandom): void;
			/**
			 * Generates and returns the signature of all updated data.
			 */
			public sign(): native.Array<number>;
			/**
			 * Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.
			 * @param outbuf 
			 * @param offset 
			 * @param len 
			 */
			public sign(outbuf: native.Array<number>, offset: number, len: number): number;
			/**
			 * Indicates whether the given signature can be verified using the public key or a certificate of the signer.
			 * @param signature 
			 */
			public verify(signature: native.Array<number>): boolean;
			/**
			 * Indicates whether the given signature starting at index offset with length bytes can be verified using the public key or a certificate of the signer.
			 * @param signature 
			 * @param offset 
			 * @param length 
			 */
			public verify(signature: native.Array<number>, offset: number, length: number): boolean;
			/**
			 * Updates the data to be verified or to be signed, using the specified byte.
			 * @param b 
			 */
			public update(b: number): void;
			/**
			 * Updates the data to be verified or to be signed, using the specified byte[].
			 * @param data 
			 */
			public update(data: native.Array<number>): void;
			/**
			 * Updates the data to be verified or to be signed, using the given byte[], starting form the specified index for the specified length.
			 * @param data 
			 * @param off 
			 * @param len 
			 */
			public update(data: native.Array<number>, off: number, len: number): void;
			/**
			 * Updates the data to be verified or to be signed, using the specified ByteBuffer.
			 * @param data 
			 */
			public update(data: java.nio.ByteBuffer): void;
			/**
			 * Returns a string containing a concise, human-readable description of this Signature including its algorithm and its state.
			 */
			public toString(): string;
			/**
			 * Sets the specified parameter to the given value.
			 * @param param 
			 * @param value 
			 */
			public setParameter(param: string, value: any): void;
			/**
			 * Sets the specified AlgorithmParameterSpec.
			 * @param params 
			 */
			public setParameter(params: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Returns the AlgorithmParameters of this Signature instance.
			 */
			public getParameters(): java.security.AlgorithmParameters;
			/**
			 * Returns the value of the parameter with the specified name.
			 * @param param 
			 */
			public getParameter(param: string): any;
			public clone(): any;
		}
		export module Signature {
			export class SignatureImpl extends java.security.Signature {
				constructor(signatureSpi: java.security.SignatureSpi, provider: java.security.Provider, algorithm: string);
				static class: java.lang.Class<java.security.Signature.SignatureImpl>;
				protected engineSign(): native.Array<number>;
				protected engineUpdate(arg0: number): void;
				protected engineVerify(arg0: native.Array<number>): boolean;
				protected engineUpdate(arg0: native.Array<number>, arg1: number, arg2: number): void;
				protected engineInitSign(arg0: java.security.IPrivateKey): void;
				protected engineInitVerify(arg0: java.security.IPublicKey): void;
				protected engineGetParameter(arg0: string): any;
				protected engineSetParameter(arg0: string, arg1: any): void;
				public clone(): any;
				/**
				 * Initializes this SignatureSpi instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.
				 * @param privateKey 
				 * @param random 
				 */
				protected engineInitSign(privateKey: java.security.IPrivateKey, random: java.security.SecureRandom): void;
				/**
				 * Updates the data to be verified or to be signed, using the specified ByteBuffer.
				 * @param input 
				 */
				protected engineUpdate(input: java.nio.ByteBuffer): void;
				/**
				 * Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.
				 * @param outbuf 
				 * @param offset 
				 * @param len 
				 */
				protected engineSign(outbuf: native.Array<number>, offset: number, len: number): number;
				/**
				 * Indicates whether the given sigBytes starting at index offset with length bytes can be verified using the public key or a certificate of the signer.
				 * @param sigBytes 
				 * @param offset 
				 * @param length 
				 */
				protected engineVerify(sigBytes: native.Array<number>, offset: number, length: number): boolean;
				/**
				 * Sets the specified AlgorithmParameterSpec.
				 * @param params 
				 */
				protected engineSetParameter(params: java.security.spec.IAlgorithmParameterSpec): void;
			}
		}
		/**
		 * NoSuchProviderException indicates that a requested security provider could not be found.
		 */
		export class NoSuchProviderException extends java.security.GeneralSecurityException {
			/**
			 * Constructs a new instance of NoSuchProviderException with the given message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Constructs a new instance of NoSuchProviderException.
			 */
			constructor();
			static class: java.lang.Class<java.security.NoSuchProviderException>;
		}
		/**
		 * SecureRandomSpi is the <i>Service Provider Interface</i> (<b>SPI</b>) definition for SecureRandom.
		 */
		export class SecureRandomSpi extends java.lang.Object implements java.io.ISerializable {
			constructor();
			static class: java.lang.Class<java.security.SecureRandomSpi>;
			/**
			 * Reseeds this SecureRandomSpi instance with the specified seed. The seed of this SecureRandomSpi instance is supplemented, not replaced.
			 * @param seed 
			 */
			protected engineSetSeed(seed: native.Array<number>): void;
			/**
			 * Generates and stores random bytes in the given byte[] for each array element.
			 * @param bytes 
			 */
			protected engineNextBytes(bytes: native.Array<number>): void;
			/**
			 * Generates and returns the specified number of seed bytes, computed using the seed generation algorithm used by this SecureRandomSpi.
			 * @param numBytes 
			 */
			protected engineGenerateSeed(numBytes: number): native.Array<number>;
		}
		/**
		 * Principals are objects which have identities. These can be individuals, groups, corporations, unique program executions, etc.
		 */
		export class Principal implements java.security.IPrincipal {
			constructor(implementation: java.security.IPrincipal);
			/**
			 * Compares the specified object with this Principal for equality and returns true if the specified object is equal, false otherwise.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns the name of this Principal.
			 */
			public getName(): string;
			/**
			 * Returns the hash code value for this Principal. Returns the same hash code for Principals that are equal to each other as required by the general contract of Object#hashCode.
			 */
			public hashCode(): number;
			/**
			 * Returns a string containing a concise, human-readable description of this Principal.
			 */
			public toString(): string;
		}
		/**
		 * Certificate represents an identity certificate, such as X.509 or PGP. Note: A Certificate instances does not make any statement about the validity of itself. It's in the responsibility of the application to verify the validity of its certificates.
		 */
		interface ICertificate {
			/**
			 * Decodes a certificate from the given InputStream. The format of the data to encode must be that identified by #getFormat() and encoded by #encode(OutputStream).
			 * @param stream 
			 */
			decode(stream: java.io.InputStream): void;
			/**
			 * Encodes this certificate to an output stream. The #decode(InputStream) method must be able to decode the format written by this method.
			 * @param stream 
			 */
			encode(stream: java.io.OutputStream): void;
			/**
			 * Returns a string identifying the format of this certificate.
			 */
			getFormat(): string;
			/**
			 * Returns the guarantor of this certificate. That guarantor guarantees, that the public key of this certificate is from the principal returned by #getPrincipal().
			 */
			getGuarantor(): java.security.IPrincipal;
			/**
			 * Returns the principal of this certificate. The principal is guaranteed by the guarantor returned by #getGuarantor().
			 */
			getPrincipal(): java.security.IPrincipal;
			/**
			 * Returns the public key of this certificate. The public key is guaranteed by the guarantor to belong to the principal.
			 */
			getPublicKey(): java.security.IPublicKey;
			/**
			 * Returns a string containing a concise, human-readable description of the this Certificate.
			 * @param detailed 
			 */
			toString(detailed: boolean): string;
		}
		/**
		 * AlgorithmParameterGeneratorSpi is the Service Provider Interface (SPI) definition for AlgorithmParameterGenerator.
		 */
		export class AlgorithmParameterGeneratorSpi extends java.lang.Object {
			/**
			 * Constructs a new instance of AlgorithmParameterGeneratorSpi .
			 */
			constructor();
			static class: java.lang.Class<java.security.AlgorithmParameterGeneratorSpi>;
			/**
			 * Initializes this AlgorithmParameterGeneratorSpi with the given size and the given SecureRandom. The default parameter set will be used.
			 * @param size 
			 * @param random 
			 */
			protected engineInit(size: number, random: java.security.SecureRandom): void;
			/**
			 * Initializes this AlgorithmParameterGeneratorSpi with the given AlgorithmParameterSpec and the given SecureRandom.
			 * @param genParamSpec 
			 * @param random 
			 */
			protected engineInit(genParamSpec: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
			/**
			 * Computes and returns AlgorithmParameters for this generator's algorithm.
			 */
			protected engineGenerateParameters(): java.security.AlgorithmParameters;
		}
	}
	export module util {
		/**
		 * An UnknownFormatFlagsException will be thrown if there is an unknown flag.
		 */
		export class UnknownFormatFlagsException extends java.util.IllegalFormatException {
			/**
			 * Constructs a new UnknownFormatFlagsException with the specified flags.
			 * @param f 
			 */
			constructor(f: string);
			static class: java.lang.Class<java.util.UnknownFormatFlagsException>;
			/**
			 * Returns the flags associated with the exception.
			 */
			public getFlags(): string;
			public getMessage(): string;
		}
		/**
		 * An ConcurrentModificationException is thrown when a Collection is modified and an existing iterator on the Collection is used to modify the Collection as well.
		 */
		export class ConcurrentModificationException extends java.lang.RuntimeException {
			/**
			 * Constructs a new ConcurrentModificationException with the current stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new ConcurrentModificationException with the current stack trace and message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.util.ConcurrentModificationException>;
		}
		/**
		 * This class implements the Dual-Pivot Quicksort algorithm by Vladimir Yaroslavskiy, Jon Bentley, and Joshua Bloch. The algorithm offers O(n log(n)) performance on many data sets that cause other quicksorts to degrade to quadratic performance, and is typically faster than traditional (one-pivot) Quicksort implementations.
		 */
		export class DualPivotQuicksort extends java.lang.Object {
			static class: java.lang.Class<java.util.DualPivotQuicksort>;
			/**
			 * Sorts the specified array into ascending numerical order.
			 * @param a the array to be sorted
			 */
			public static sort(a: native.Array<number>): void;
			/**
			 * Sorts the specified range of the array into ascending order. The range to be sorted extends from the index fromIndex, inclusive, to the index toIndex, exclusive. If fromIndex == toIndex, the range to be sorted is empty (and the call is a no-op).
			 * @param a the array to be sorted
			 * @param fromIndex the index of the first element, inclusive, to be sorted
			 * @param toIndex the index of the last element, exclusive, to be sorted
			 */
			public static sort(a: native.Array<number>, fromIndex: number, toIndex: number): void;
		}
		/**
		 * ArrayList is an implementation of List, backed by an array. All optional operations including adding, removing, and replacing elements are supported.
		 */
		export class ArrayList<E> extends java.util.AbstractList<E> implements java.lang.ICloneable, java.io.ISerializable, java.util.IRandomAccess {
			/**
			 * Constructs a new instance of ArrayList with the specified initial capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new ArrayList instance with zero initial capacity.
			 */
			constructor();
			/**
			 * Constructs a new instance of ArrayList containing the elements of the specified collection.
			 * @param collection 
			 */
			constructor(collection: java.util.ICollection<any>);
			static class: java.lang.Class<java.util.ArrayList<any>>;
			/**
			 * Adds the specified object at the end of this ArrayList.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Inserts the specified object into this ArrayList at the specified location. The object is inserted before any previous element at the specified location. If the location is equal to the size of this ArrayList, the object is added at the end.
			 * @param index 
			 * @param object 
			 */
			public add(index: number, object: E): void;
			/**
			 * Adds the objects in the specified collection to this ArrayList.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Inserts the objects in the specified collection at the specified location in this List. The objects are added in the order they are returned from the collection's iterator.
			 * @param index 
			 * @param collection 
			 */
			public addAll(index: number, collection: java.util.ICollection<any>): boolean;
			/**
			 * This method was extracted to encourage VM to inline callers. TODO: when we have a VM that can actually inline, move the test in here too!
			 */
			static throwIndexOutOfBoundsException(index: number, size: number): java.lang.IndexOutOfBoundsException;
			/**
			 * Removes all elements from this ArrayList, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns a new ArrayList with the same elements, the same size and the same capacity as this ArrayList.
			 */
			public clone(): any;
			/**
			 * Ensures that after this operation the ArrayList can hold the specified number of elements without further growing.
			 * @param minimumCapacity 
			 */
			public ensureCapacity(minimumCapacity: number): void;
			public get(index: number): E;
			/**
			 * Returns the number of elements in this ArrayList.
			 */
			public size(): number;
			public isEmpty(): boolean;
			/**
			 * Searches this ArrayList for the specified object.
			 * @param object 
			 */
			public contains(object: any): boolean;
			public indexOf(object: any): number;
			public lastIndexOf(object: any): number;
			/**
			 * Removes the object at the specified location from this list.
			 * @param index 
			 */
			public remove(index: number): E;
			public remove(object: any): boolean;
			protected removeRange(fromIndex: number, toIndex: number): void;
			/**
			 * Replaces the element at the specified location in this ArrayList with the specified object.
			 * @param index 
			 * @param object 
			 */
			public set(index: number, object: E): E;
			/**
			 * Returns a new array containing all elements contained in this ArrayList.
			 */
			public toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this ArrayList. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this ArrayList, the array element following the collection elements is set to null.
			 * @param contents 
			 */
			public toArray<T>(contents: native.Array<T>): native.Array<T>;
			/**
			 * Sets the capacity of this ArrayList to be the same as the current size.
			 */
			public trimToSize(): void;
			public iterator(): java.util.IIterator<E>;
			public hashCode(): number;
			public equals(o: any): boolean;
		}
		export module ArrayList {
			export class ArrayListIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.ArrayList.ArrayListIterator>;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
		}
		/**
		 * An IllegalFormatConversionException will be thrown when the parameter is incompatible with the corresponding format specifier.
		 */
		export class IllegalFormatConversionException extends java.util.IllegalFormatException implements java.io.ISerializable {
			/**
			 * Constructs a new IllegalFormatConversionException with the class of the mismatched conversion and corresponding parameter.
			 * @param c 
			 * @param arg 
			 */
			constructor(c: string, arg: java.lang.Class<any>);
			static class: java.lang.Class<java.util.IllegalFormatConversionException>;
			/**
			 * Returns the class of the mismatched parameter.
			 */
			public getArgumentClass(): java.lang.Class<any>;
			/**
			 * Returns the incompatible conversion.
			 */
			public getConversion(): string;
			public getMessage(): string;
		}
		/**
		 * An iterator over a sequence of objects, such as a collection.
		 */
		interface IIterator<E> {
			/**
			 * Returns true if there is at least one more element, false otherwise. #next
			 */
			hasNext(): boolean;
			/**
			 * Returns the next object and advances the iterator.
			 */
			next(): E;
			/**
			 * Removes the last object returned by next from the collection. This method can only be called once between each call to next.
			 */
			remove(): void;
		}
		/**
		 * PropertyResourceBundle loads resources from an InputStream. All resources are Strings. The resources must be of the form key=value, one resource per line (see Properties).
		 */
		export class PropertyResourceBundle extends java.util.ResourceBundle {
			/**
			 * Constructs a new instance of PropertyResourceBundle and loads the properties file from the specified InputStream.
			 * @param stream 
			 */
			constructor(stream: java.io.InputStream);
			/**
			 * Constructs a new resource bundle with properties read from reader.
			 * @param reader the {@code Reader}
			 */
			constructor(reader: java.io.Reader);
			static class: java.lang.Class<java.util.PropertyResourceBundle>;
			protected handleKeySet(): java.util.ISet<string>;
			public getKeys(): java.util.IEnumeration<string>;
			public handleGetObject(key: string): any;
		}
		/**
		 * Classes that handle custom formatting for the 's' specifier of Formatter should implement the Formattable interface. It gives basic control over formatting objects.
		 */
		interface IFormattable {
			/**
			 * Formats the object using the specified Formatter.
			 * @param formatter 
			 * @param flags 
			 * @param width 
			 * @param precision 
			 */
			formatTo(formatter: java.util.Formatter, flags: number, width: number, precision: number): void;
		}
		/**
		 * A base class for Map implementations.
		 */
		export class AbstractMap<K, V> extends java.lang.Object {
			static class: java.lang.Class<java.util.AbstractMap<any, any>>;
			/**
			 * 
			 */
			public clear(): void;
			/**
			 * 
			 */
			public containsKey(key: any): boolean;
			/**
			 * 
			 */
			public containsValue(value: any): boolean;
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			/**
			 * 
			 */
			public equals(object: any): boolean;
			/**
			 * 
			 */
			public get(key: any): V;
			/**
			 * 
			 */
			public hashCode(): number;
			/**
			 * 
			 */
			public isEmpty(): boolean;
			/**
			 * 
			 */
			public keySet(): java.util.ISet<K>;
			/**
			 * 
			 */
			public put(key: K, value: V): V;
			/**
			 * 
			 */
			public putAll(map: java.util.IMap<any, any>): void;
			/**
			 * 
			 */
			public remove(key: any): V;
			/**
			 * 
			 */
			public size(): number;
			/**
			 * 
			 */
			public toString(): string;
			/**
			 * 
			 */
			public values(): java.util.ICollection<V>;
			protected clone(): any;
		}
		export module AbstractMap {
			/**
			 * An immutable key-value mapping. Despite the name, this class is non-final and its subclasses may be mutable.
			 */
			export class SimpleImmutableEntry<K, V> extends java.lang.Object implements java.io.ISerializable {
				constructor(theKey: K, theValue: V);
				/**
				 * Constructs an instance with the key and value of copyFrom.
				 */
				constructor(copyFrom: java.util.Map.IEntry<any, any>);
				static class: java.lang.Class<java.util.AbstractMap.SimpleImmutableEntry<any, any>>;
				public getKey(): K;
				public getValue(): V;
				/**
				 * This base implementation throws UnsupportedOperationException always.
				 */
				public setValue(object: V): V;
				public equals(object: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
			/**
			 * A key-value mapping with mutable values.
			 */
			export class SimpleEntry<K, V> extends java.lang.Object implements java.io.ISerializable {
				constructor(theKey: K, theValue: V);
				/**
				 * Constructs an instance with the key and value of copyFrom.
				 */
				constructor(copyFrom: java.util.Map.IEntry<any, any>);
				static class: java.lang.Class<java.util.AbstractMap.SimpleEntry<any, any>>;
				public getKey(): K;
				public getValue(): V;
				public setValue(object: V): V;
				public equals(object: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
		}
		/**
		 * TreeSet is an implementation of SortedSet. All optional operations (adding and removing) are supported. The elements can be any objects which are comparable to each other either using their natural order or a specified Comparator.
		 */
		export class TreeSet<E> extends java.util.AbstractSet<E> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new empty instance of TreeSet which uses natural ordering.
			 */
			constructor();
			/**
			 * Constructs a new instance of TreeSet which uses natural ordering and containing the unique elements in the specified collection.
			 * @param collection 
			 */
			constructor(collection: java.util.ICollection<any>);
			/**
			 * Constructs a new empty instance of TreeSet which uses the specified comparator.
			 * @param comparator 
			 */
			constructor(comparator: java.util.IComparator<any>);
			/**
			 * Constructs a new instance of TreeSet containing the elements of the specified SortedSet and using the same Comparator.
			 * @param set 
			 */
			constructor(set: java.util.ISortedSet<E>);
			static class: java.lang.Class<java.util.TreeSet<any>>;
			/**
			 * Adds the specified object to this TreeSet.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Adds the objects in the specified collection to this TreeSet.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this TreeSet, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns a new TreeSet with the same elements, size and comparator as this TreeSet.
			 */
			public clone(): any;
			/**
			 * Returns the comparator used to compare elements in this TreeSet.
			 */
			public comparator(): java.util.IComparator<any>;
			/**
			 * Searches this TreeSet for the specified object.
			 * @param object 
			 */
			public contains(object: any): boolean;
			/**
			 * Returns true if this TreeSet has no element, otherwise false.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an Iterator on the elements of this TreeSet.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * 
			 */
			public descendingIterator(): java.util.IIterator<E>;
			/**
			 * Removes an occurrence of the specified object from this TreeSet.
			 * @param object 
			 */
			public remove(object: any): boolean;
			/**
			 * Returns the number of elements in this TreeSet.
			 */
			public size(): number;
			/**
			 * Returns the first element in this set. NoSuchElementException when this TreeSet is empty
			 */
			public first(): E;
			/**
			 * Returns the last element in this set. NoSuchElementException when this TreeSet is empty
			 */
			public last(): E;
			/**
			 * 
			 */
			public pollFirst(): E;
			/**
			 * 
			 */
			public pollLast(): E;
			/**
			 * 
			 */
			public higher(e: E): E;
			/**
			 * 
			 */
			public lower(e: E): E;
			/**
			 * 
			 */
			public ceiling(e: E): E;
			/**
			 * 
			 */
			public floor(e: E): E;
			/**
			 * 
			 */
			public descendingSet(): java.util.INavigableSet<E>;
			/**
			 * 
			 */
			public subSet(start: E, startInclusive: boolean, end: E, endInclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * 
			 */
			public headSet(end: E, endInclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * 
			 */
			public tailSet(start: E, startInclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * Returns a SortedSet of the specified portion of this TreeSet which contains elements greater or equal to the start element but less than the end element. The returned SortedSet is backed by this TreeSet so changes to one are reflected by the other.
			 * @param start 
			 * @param end 
			 */
			public subSet(start: E, end: E): java.util.ISortedSet<E>;
			/**
			 * Returns a SortedSet of the specified portion of this TreeSet which contains elements less than the end element. The returned SortedSet is backed by this TreeSet so changes to one are reflected by the other.
			 * @param end 
			 */
			public headSet(end: E): java.util.ISortedSet<E>;
			/**
			 * Returns a SortedSet of the specified portion of this TreeSet which contains elements greater or equal to the start element. The returned SortedSet is backed by this TreeSet so changes to one are reflected by the other.
			 * @param start 
			 */
			public tailSet(start: E): java.util.ISortedSet<E>;
		}
		/**
		 * A currency corresponding to an <a href="http://en.wikipedia.org/wiki/ISO_4217">ISO 4217</a> currency code such as "EUR" or "USD".
		 */
		export class Currency extends java.lang.Object implements java.io.ISerializable {
			static class: java.lang.Class<java.util.Currency>;
			/**
			 * Returns the Currency instance for the given ISO 4217 currency code. IllegalArgumentException if the currency code is not a supported ISO 4217 currency code.
			 */
			public static getInstance(currencyCode: string): java.util.Currency;
			/**
			 * Returns the Currency instance for this Locale's country. IllegalArgumentException if the locale's country is not a supported ISO 3166 country.
			 */
			public static getInstance(locale: java.util.Locale): java.util.Currency;
			/**
			 * Returns this currency's ISO 4217 currency code.
			 */
			public getCurrencyCode(): string;
			/**
			 * Equivalent to getSymbol(Locale.getDefault()). See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public getSymbol(): string;
			/**
			 * Returns the localized currency symbol for this currency in locale. That is, given "USD" and Locale.US, you'd get "$", but given "USD" and a non-US locale, you'd get "US$".
			 */
			public getSymbol(locale: java.util.Locale): string;
			/**
			 * Returns the default number of fraction digits for this currency. For instance, the default number of fraction digits for the US dollar is 2 because there are 100 US cents in a US dollar. For the Japanese Yen, the number is 0 because coins smaller than 1 Yen became invalid in 1953. In the case of pseudo-currencies, such as IMF Special Drawing Rights, -1 is returned.
			 */
			public getDefaultFractionDigits(): number;
			/**
			 * Returns this currency's ISO 4217 currency code.
			 */
			public toString(): string;
		}
		/**
		 * A MissingFormatArgumentException will be thrown if there is no corresponding argument with the specified conversion or an argument index that refers to a missing argument.
		 */
		export class MissingFormatArgumentException extends java.util.IllegalFormatException {
			/**
			 * Constructs a new MissingFormatArgumentException with the specified conversion that lacks the argument.
			 * @param s 
			 */
			constructor(s: string);
			static class: java.lang.Class<java.util.MissingFormatArgumentException>;
			/**
			 * Returns the conversion associated with the exception.
			 */
			public getFormatSpecifier(): string;
			public getMessage(): string;
		}
		export module jar {
			/**
			 * Non-public class used by JarFile and JarInputStream to manage the verification of signed JARs. JarFile and JarInputStream objects are expected to have a JarVerifier instance member which can be used to carry out the tasks associated with verifying a signed JAR. These tasks would typically include: <ul> <li>verification of all signed signature files <li>confirmation that all signed data was signed only by the party or parties specified in the signature block data <li>verification that the contents of all signature files (i.e. .SF files) agree with the JAR entries information found in the JAR manifest. </ul>
			 */
			export class JarVerifier extends java.lang.Object {
				static class: java.lang.Class<java.util.jar.JarVerifier>;
				/**
				 * Invoked for each new JAR entry read operation from the input stream. This method constructs and returns a new VerifierEntry which contains the certificates used to sign the entry and its hash value as specified in the JAR MANIFEST format.
				 * @param name 
				 */
				initEntry(name: string): java.util.jar.JarVerifier.VerifierEntry;
				/**
				 * Add a new meta entry to the internal collection of data held on each JAR entry in the META-INF directory including the manifest file itself. Files associated with the signing of a JAR would also be added to this collection.
				 * @param name 
				 * @param buf 
				 */
				addMetaEntry(name: string, buf: native.Array<number>): void;
				/**
				 * If the associated JAR file is signed, check on the validity of all of the known signatures.
				 */
				readCertificates(): boolean;
				/**
				 * Associate this verifier with the specified Manifest object.
				 * @param mf 
				 */
				setManifest(mf: java.util.jar.Manifest): void;
				/**
				 * Returns a <code>boolean</code> indication of whether or not the associated jar file is signed.
				 */
				isSignedJar(): boolean;
				/**
				 * Returns all of the java.security.cert.Certificate instances that were used to verify the signature on the JAR entry called name.
				 * @param name 
				 */
				getCertificates(name: string): native.Array<java.security.cert.Certificate>;
				/**
				 * Remove all entries from the internal collection of data held about each JAR entry in the META-INF directory.
				 */
				removeMetaEntries(): void;
				/**
				 * Returns a Vector of all of the java.security.cert.Certificates that are associated with the signing of the named signature file.
				 * @param signatureFileName 
				 * @param certificates 
				 */
				public static getSignerCertificates(signatureFileName: string, certificates: java.util.IMap<string, native.Array<java.security.cert.Certificate>>): java.util.Vector<java.security.cert.Certificate>;
			}
			export module JarVerifier {
				/**
				 * Stores and a hash and a message digest and verifies that massage digest matches the hash.
				 */
				export class VerifierEntry extends java.io.OutputStream {
					static class: java.lang.Class<java.util.jar.JarVerifier.VerifierEntry>;
					/**
					 * Updates a digest with one byte.
					 */
					public write(value: number): void;
					/**
					 * Updates a digest with byte array.
					 */
					public write(buf: native.Array<number>, off: number, nbytes: number): void;
					/**
					 * Verifies that the digests stored in the manifest match the decrypted digests from the .SF file. This indicates the validity of the signing, not the integrity of the file, as it's digest must be calculated and verified when its contents are read.
					 */
					verify(): void;
					/**
					 * Equivalent to write(buffer, 0, buffer.length).
					 */
					write(buffer: native.Array<number>): void;
				}
			}
			/**
			 * This runtime exception is thrown when a problem occurs while reading a JAR file.
			 */
			export class JarException extends java.util.zip.ZipException {
				/**
				 * Constructs a new JarException instance.
				 */
				constructor();
				/**
				 * Constructs a new JarException instance with the specified message.
				 * @param detailMessage 
				 */
				constructor(detailMessage: string);
				static class: java.lang.Class<java.util.jar.JarException>;
			}
			/**
			 * Class factory for Pack200.Packer and Pack200.Unpacker.
			 */
			export class Pack200 extends java.lang.Object {
				static class: java.lang.Class<java.util.jar.Pack200>;
				/**
				 * Returns a new instance of a packer engine.
				 */
				public static newPacker(): java.util.jar.Pack200.IPacker;
				/**
				 * Returns a new instance of a unpacker engine.
				 */
				public static newUnpacker(): java.util.jar.Pack200.IUnpacker;
			}
			export module Pack200 {
				/**
				 * The interface defining the API for converting a packed stream in the Pack200 format to a JAR file.
				 */
				interface IUnpacker {
					/**
					 * Returns a sorted map of the properties of this unpacker.
					 */
					properties(): java.util.ISortedMap<string, string>;
					/**
					 * Unpack the specified stream to the specified JAR output stream.
					 * @param input in
					 * @param out 
					 */
					unpack(input: java.io.InputStream, out: java.util.jar.JarOutputStream): void;
					/**
					 * Unpack the contents of the specified File to the specified JAR output stream.
					 * @param input in
					 * @param out 
					 */
					unpack(input: java.io.File, out: java.util.jar.JarOutputStream): void;
					/**
					 * add a listener for PropertyChange events.
					 * @param listener 
					 */
					addPropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
					/**
					 * remove a listener.
					 * @param listener 
					 */
					removePropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
				}
				export module IUnpacker {
					/**
					 * The String indicating if the unpacker should ignore all transmitted values,can be replaced by either true or false.
					 */
					var DEFLATE_HINT: string;
					/**
					 * a String representation of false.
					 */
					var FALSE: string;
					/**
					 * a String representation of keep.
					 */
					var KEEP: string;
					/**
					 * the progress as a percentage.
					 */
					var PROGRESS: string;
					/**
					 * a String representation of true.
					 */
					var TRUE: string;
				}
				/**
				 * The interface defining the API for converting a packed stream in the Pack200 format to a JAR file.
				 */
				export class Unpacker implements java.util.jar.Pack200.IUnpacker {
					constructor(implementation: java.util.jar.Pack200.IUnpacker);
					/**
					 * The String indicating if the unpacker should ignore all transmitted values,can be replaced by either true or false.
					 */
					static DEFLATE_HINT: string;
					/**
					 * a String representation of false.
					 */
					static FALSE: string;
					/**
					 * a String representation of keep.
					 */
					static KEEP: string;
					/**
					 * the progress as a percentage.
					 */
					static PROGRESS: string;
					/**
					 * a String representation of true.
					 */
					static TRUE: string;
					/**
					 * Returns a sorted map of the properties of this unpacker.
					 */
					public properties(): java.util.ISortedMap<string, string>;
					/**
					 * Unpack the specified stream to the specified JAR output stream.
					 * @param input in
					 * @param out 
					 */
					public unpack(input: java.io.InputStream, out: java.util.jar.JarOutputStream): void;
					/**
					 * Unpack the contents of the specified File to the specified JAR output stream.
					 * @param input in
					 * @param out 
					 */
					public unpack(input: java.io.File, out: java.util.jar.JarOutputStream): void;
					/**
					 * add a listener for PropertyChange events.
					 * @param listener 
					 */
					public addPropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
					/**
					 * remove a listener.
					 * @param listener 
					 */
					public removePropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
				}
				/**
				 * The interface defining the API for converting a JAR file to an output stream in the Pack200 format.
				 */
				interface IPacker {
					/**
					 * Returns a sorted map of the properties of this packer.
					 */
					properties(): java.util.ISortedMap<string, string>;
					/**
					 * Pack the specified JAR file to the specified output stream.
					 * @param input in
					 * @param out 
					 */
					pack(input: java.util.jar.JarFile, out: java.io.OutputStream): void;
					/**
					 * Pack the data from the specified jar input stream to the specified output stream.
					 * @param input in
					 * @param out 
					 */
					pack(input: java.util.jar.JarInputStream, out: java.io.OutputStream): void;
					/**
					 * add a listener for PropertyChange events
					 * @param listener 
					 */
					addPropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
					/**
					 * remove a listener
					 * @param listener 
					 */
					removePropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
				}
				export module IPacker {
					/**
					 * the format of a class attribute name.
					 */
					var CLASS_ATTRIBUTE_PFX: string;
					/**
					 * the format of a code attribute name.
					 */
					var CODE_ATTRIBUTE_PFX: string;
					/**
					 * the deflation hint to set in the output archive.
					 */
					var DEFLATE_HINT: string;
					/**
					 * the indicated amount of effort to use in compressing the archive.
					 */
					var EFFORT: string;
					/**
					 * a String representation for error.
					 */
					var ERROR: string;
					/**
					 * a String representation of false.
					 */
					var FALSE: string;
					/**
					 * the format of a field attribute name.
					 */
					var FIELD_ATTRIBUTE_PFX: string;
					/**
					 * a String representation for keep.
					 */
					var KEEP: string;
					/**
					 * decide if all elements shall transmit in their original order.
					 */
					var KEEP_FILE_ORDER: string;
					/**
					 * a String representation for latest.
					 */
					var LATEST: string;
					/**
					 * the format of a method attribute name.
					 */
					var METHOD_ATTRIBUTE_PFX: string;
					/**
					 * if it shall attempt to determine the latest modification time if this is set to LATEST.
					 */
					var MODIFICATION_TIME: string;
					/**
					 * a String representation of pass.
					 */
					var PASS: string;
					/**
					 * the file that will not be compressed.
					 */
					var PASS_FILE_PFX: string;
					/**
					 * packer progress as a percentage.
					 */
					var PROGRESS: string;
					/**
					 * The number of bytes of each archive segment.
					 */
					var SEGMENT_LIMIT: string;
					/**
					 * a String representation of strip.
					 */
					var STRIP: string;
					/**
					 * a String representation of true.
					 */
					var TRUE: string;
					/**
					 * the action to take if an unknown attribute is encountered.
					 */
					var UNKNOWN_ATTRIBUTE: string;
				}
				/**
				 * The interface defining the API for converting a JAR file to an output stream in the Pack200 format.
				 */
				export class Packer implements java.util.jar.Pack200.IPacker {
					constructor(implementation: java.util.jar.Pack200.IPacker);
					/**
					 * the format of a class attribute name.
					 */
					static CLASS_ATTRIBUTE_PFX: string;
					/**
					 * the format of a code attribute name.
					 */
					static CODE_ATTRIBUTE_PFX: string;
					/**
					 * the deflation hint to set in the output archive.
					 */
					static DEFLATE_HINT: string;
					/**
					 * the indicated amount of effort to use in compressing the archive.
					 */
					static EFFORT: string;
					/**
					 * a String representation for error.
					 */
					static ERROR: string;
					/**
					 * a String representation of false.
					 */
					static FALSE: string;
					/**
					 * the format of a field attribute name.
					 */
					static FIELD_ATTRIBUTE_PFX: string;
					/**
					 * a String representation for keep.
					 */
					static KEEP: string;
					/**
					 * decide if all elements shall transmit in their original order.
					 */
					static KEEP_FILE_ORDER: string;
					/**
					 * a String representation for latest.
					 */
					static LATEST: string;
					/**
					 * the format of a method attribute name.
					 */
					static METHOD_ATTRIBUTE_PFX: string;
					/**
					 * if it shall attempt to determine the latest modification time if this is set to LATEST.
					 */
					static MODIFICATION_TIME: string;
					/**
					 * a String representation of pass.
					 */
					static PASS: string;
					/**
					 * the file that will not be compressed.
					 */
					static PASS_FILE_PFX: string;
					/**
					 * packer progress as a percentage.
					 */
					static PROGRESS: string;
					/**
					 * The number of bytes of each archive segment.
					 */
					static SEGMENT_LIMIT: string;
					/**
					 * a String representation of strip.
					 */
					static STRIP: string;
					/**
					 * a String representation of true.
					 */
					static TRUE: string;
					/**
					 * the action to take if an unknown attribute is encountered.
					 */
					static UNKNOWN_ATTRIBUTE: string;
					/**
					 * Returns a sorted map of the properties of this packer.
					 */
					public properties(): java.util.ISortedMap<string, string>;
					/**
					 * Pack the specified JAR file to the specified output stream.
					 * @param input in
					 * @param out 
					 */
					public pack(input: java.util.jar.JarFile, out: java.io.OutputStream): void;
					/**
					 * Pack the data from the specified jar input stream to the specified output stream.
					 * @param input in
					 * @param out 
					 */
					public pack(input: java.util.jar.JarInputStream, out: java.io.OutputStream): void;
					/**
					 * add a listener for PropertyChange events
					 * @param listener 
					 */
					public addPropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
					/**
					 * remove a listener
					 * @param listener 
					 */
					public removePropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
				}
			}
			/**
			 * The input stream from which the JAR file to be read may be fetched. It is used like the ZipInputStream.
			 */
			export class JarInputStream extends java.util.zip.ZipInputStream {
				/**
				 * Constructs a new JarInputStream from an input stream.
				 * @param stream 
				 * @param verify 
				 */
				constructor(stream: java.io.InputStream, verify: boolean);
				/**
				 * Constructs a new JarInputStream from an input stream.
				 * @param stream 
				 */
				constructor(stream: java.io.InputStream);
				static class: java.lang.Class<java.util.jar.JarInputStream>;
				/**
				 * Returns the Manifest object associated with this JarInputStream or null if no manifest entry exists.
				 */
				public getManifest(): java.util.jar.Manifest;
				/**
				 * Returns the next JarEntry contained in this stream or null if no more entries are present.
				 */
				public getNextJarEntry(): java.util.jar.JarEntry;
				/**
				 * Reads up to length of decompressed data and stores it in buffer starting at offset.
				 * @param buffer 
				 * @param offset 
				 * @param length 
				 */
				public read(buffer: native.Array<number>, offset: number, length: number): number;
				/**
				 * Returns the next ZipEntry contained in this stream or null if no more entries are present.
				 */
				public getNextEntry(): java.util.zip.ZipEntry;
				protected createZipEntry(name: string): java.util.zip.ZipEntry;
				/**
				 * Reads a single byte of decompressed data.
				 */
				read(): number;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			/**
			 * The Attributes class is used to store values for manifest entries. Attribute keys are generally instances of Attributes.Name. Values associated with attribute keys are of type String.
			 */
			export class Attributes extends java.lang.Object implements java.lang.ICloneable {
				/**
				 * Constructs an Attributes instance.
				 */
				constructor();
				/**
				 * Constructs an Attributes instance obtaining keys and values from the parameter attrib.
				 * @param attrib 
				 */
				constructor(attrib: java.util.jar.Attributes);
				/**
				 * Constructs an Attributes instance with initial capacity of size size.
				 * @param size 
				 */
				constructor(size: number);
				static class: java.lang.Class<java.util.jar.Attributes>;
				/**
				 * Removes all key/value pairs from this Attributes.
				 */
				public clear(): void;
				/**
				 * Determines whether this Attributes contains the specified key.
				 * @param key 
				 */
				public containsKey(key: any): boolean;
				/**
				 * Determines whether this Attributes contains the specified value.
				 * @param value 
				 */
				public containsValue(value: any): boolean;
				/**
				 * Returns a set containing map entries for each of the key/value pair contained in this Attributes.
				 */
				public entrySet(): java.util.ISet<java.util.Map.IEntry<any, any>>;
				/**
				 * Returns the value associated with the parameter key.
				 * @param key 
				 */
				public get(key: any): any;
				/**
				 * Determines whether this Attributes contains any keys.
				 */
				public isEmpty(): boolean;
				/**
				 * Returns a Set containing all the keys found in this Attributes.
				 */
				public keySet(): java.util.ISet<any>;
				/**
				 * Stores key/value pairs in this Attributes.
				 * @param key 
				 * @param value 
				 */
				public put(key: any, value: any): any;
				/**
				 * Stores all the key/value pairs in the argument in this Attributes.
				 * @param attrib 
				 */
				public putAll(attrib: java.util.IMap<any, any>): void;
				/**
				 * Deletes the key/value pair with key key from this Attributes.
				 * @param key 
				 */
				public remove(key: any): any;
				/**
				 * Returns the number of key/value pairs associated with this Attributes.
				 */
				public size(): number;
				/**
				 * Returns a collection of all the values present in this Attributes.
				 */
				public values(): java.util.ICollection<any>;
				public clone(): any;
				/**
				 * Returns the hash code of this Attributes.
				 */
				public hashCode(): number;
				/**
				 * Determines if this Attributes and the parameter Attributes are equal. Two Attributes instances are equal if they contain the same keys and values.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns the value associated with the parameter Attributes.Name key.
				 * @param name 
				 */
				public getValue(name: java.util.jar.Attributes.Name): string;
				/**
				 * Returns the string associated with the parameter name.
				 * @param name 
				 */
				public getValue(name: string): string;
				/**
				 * Stores the value val associated with the key name in this Attributes.
				 * @param name 
				 * @param val 
				 */
				public putValue(name: string, val: string): string;
			}
			export module Attributes {
				/**
				 * The name part of the name/value pairs constituting an attribute as defined by the specification of the JAR manifest. May be composed of the following ASCII signs as defined in the EBNF below:
				 */
				export class Name extends java.lang.Object {
					constructor(name: string);
					/**
					 * The class path (a main attribute).
					 */
					static CLASS_PATH: java.util.jar.Attributes.Name;
					/**
					 * The version of the manifest file (a main attribute).
					 */
					static MANIFEST_VERSION: java.util.jar.Attributes.Name;
					/**
					 * The main class's name (for stand-alone applications).
					 */
					static MAIN_CLASS: java.util.jar.Attributes.Name;
					/**
					 * Defines the signature version of the JAR file.
					 */
					static SIGNATURE_VERSION: java.util.jar.Attributes.Name;
					/**
					 * The Content-Type manifest attribute.
					 */
					static CONTENT_TYPE: java.util.jar.Attributes.Name;
					/**
					 * The Sealed manifest attribute which may have the value true for sealed archives.
					 */
					static SEALED: java.util.jar.Attributes.Name;
					/**
					 * The Implementation-Title attribute whose value is a string that defines the title of the extension implementation.
					 */
					static IMPLEMENTATION_TITLE: java.util.jar.Attributes.Name;
					/**
					 * The Implementation-Version attribute defining the version of the extension implementation.
					 */
					static IMPLEMENTATION_VERSION: java.util.jar.Attributes.Name;
					/**
					 * The Implementation-Vendor attribute defining the organization that maintains the extension implementation.
					 */
					static IMPLEMENTATION_VENDOR: java.util.jar.Attributes.Name;
					/**
					 * The Specification-Title attribute defining the title of the extension specification.
					 */
					static SPECIFICATION_TITLE: java.util.jar.Attributes.Name;
					/**
					 * The Specification-Version attribute defining the version of the extension specification.
					 */
					static SPECIFICATION_VERSION: java.util.jar.Attributes.Name;
					/**
					 * The Specification-Vendor attribute defining the organization that maintains the extension specification.
					 */
					static SPECIFICATION_VENDOR: java.util.jar.Attributes.Name;
					/**
					 * The Extension-List attribute defining the extensions that are needed by the applet.
					 */
					static EXTENSION_LIST: java.util.jar.Attributes.Name;
					/**
					 * The Extension-Name attribute which defines the unique name of the extension.
					 */
					static EXTENSION_NAME: java.util.jar.Attributes.Name;
					/**
					 * The Extension-Installation attribute.
					 */
					static EXTENSION_INSTALLATION: java.util.jar.Attributes.Name;
					/**
					 * The Implementation-Vendor-Id attribute specifies the vendor of an extension implementation if the applet requires an implementation from a specific vendor.
					 */
					static IMPLEMENTATION_VENDOR_ID: java.util.jar.Attributes.Name;
					/**
					 * The Implementation-URL attribute specifying a URL that can be used to obtain the most recent version of the extension if the required version is not already installed.
					 */
					static IMPLEMENTATION_URL: java.util.jar.Attributes.Name;
					static class: java.lang.Class<java.util.jar.Attributes.Name>;
					getName(): string;
					public equals(object: any): boolean;
					public hashCode(): number;
					public toString(): string;
				}
			}
			/**
			 * The JarOutputStream is used to write data in the JarFile format to an arbitrary output stream
			 */
			export class JarOutputStream extends java.util.zip.ZipOutputStream {
				/**
				 * Constructs a new JarOutputStream using an output stream. The content of the Manifest must match the JAR entry information written subsequently to the stream.
				 * @param os 
				 * @param manifest 
				 */
				constructor(os: java.io.OutputStream, manifest: java.util.jar.Manifest);
				/**
				 * Constructs a new JarOutputStream using an arbitrary output stream.
				 * @param os 
				 */
				constructor(os: java.io.OutputStream);
				static class: java.lang.Class<java.util.jar.JarOutputStream>;
				/**
				 * Writes the specified ZIP entry to the underlying stream. The previous entry is closed if it is still open.
				 * @param ze 
				 */
				public putNextEntry(ze: java.util.zip.ZipEntry): void;
			}
			/**
			 * Represents a single file in a JAR archive together with the manifest attributes and digital signatures associated with it.
			 */
			export class JarEntry extends java.util.zip.ZipEntry {
				/**
				 * Creates a new JarEntry named name.
				 * @param name 
				 */
				constructor(name: string);
				/**
				 * Creates a new JarEntry using the values obtained from entry.
				 * @param entry 
				 */
				constructor(entry: java.util.zip.ZipEntry);
				/**
				 * Create a new JarEntry using the values obtained from the argument.
				 * @param je 
				 */
				constructor(je: java.util.jar.JarEntry);
				static class: java.lang.Class<java.util.jar.JarEntry>;
				/**
				 * Returns the Attributes object associated with this entry or null if none exists.
				 */
				public getAttributes(): java.util.jar.Attributes;
				/**
				 * Returns an array of Certificate Objects associated with this entry or null if none exists. Make sure that the everything is read from the input stream before calling this method, or else the method returns null.
				 */
				public getCertificates(): native.Array<java.security.cert.Certificate>;
				setAttributes(attrib: java.util.jar.Attributes): void;
				/**
				 * Returns the code signers for the digital signatures associated with the JAR file. If there is no such code signer, it returns null. Make sure that the everything is read from the input stream before calling this method, or else the method returns null.
				 */
				public getCodeSigners(): native.Array<java.security.CodeSigner>;
			}
			/**
			 * The Manifest class is used to obtain attribute information for a JarFile and its entries.
			 */
			export class Manifest extends java.lang.Object implements java.lang.ICloneable {
				/**
				 * Creates a new Manifest instance.
				 */
				constructor();
				/**
				 * Creates a new Manifest instance using the attributes obtained from the input stream.
				 * @param is 
				 */
				constructor(is: java.io.InputStream);
				/**
				 * Creates a new Manifest instance. The new instance will have the same attributes as those found in the parameter Manifest.
				 * @param man 
				 */
				constructor(man: java.util.jar.Manifest);
				static class: java.lang.Class<java.util.jar.Manifest>;
				/**
				 * Resets the both the main attributes as well as the entry attributes associated with this Manifest.
				 */
				public clear(): void;
				/**
				 * Returns the Attributes associated with the parameter entry name.
				 * @param name 
				 */
				public getAttributes(name: string): java.util.jar.Attributes;
				/**
				 * Returns a map containing the Attributes for each entry in the Manifest.
				 */
				public getEntries(): java.util.IMap<string, java.util.jar.Attributes>;
				/**
				 * Returns the main Attributes of the JarFile.
				 */
				public getMainAttributes(): java.util.jar.Attributes;
				/**
				 * Creates a copy of this Manifest. The returned Manifest will equal the Manifest from which it was cloned.
				 */
				public clone(): any;
				/**
				 * Writes out the attribute information of the receiver to the specified OutputStream.
				 * @param os 
				 */
				public write(os: java.io.OutputStream): void;
				/**
				 * Merges name/attribute pairs read from the input stream is into this manifest.
				 * @param is 
				 */
				public read(is: java.io.InputStream): void;
				/**
				 * Returns the hash code for this instance.
				 */
				public hashCode(): number;
				/**
				 * Determines if the receiver is equal to the parameter object. Two Manifests are equal if they have identical main attributes as well as identical entry attributes.
				 * @param o 
				 */
				public equals(o: any): boolean;
				getChunk(name: string): java.util.jar.Manifest.Chunk;
				removeChunks(): void;
				getMainAttributesEnd(): number;
				/**
				 * Writes out the attribute information of the specified manifest to the specified OutputStream
				 * @param manifest 
				 * @param out 
				 */
				static write(manifest: java.util.jar.Manifest, out: java.io.OutputStream): void;
			}
			export module Manifest {
				export class Chunk extends java.lang.Object {
					static class: java.lang.Class<java.util.jar.Manifest.Chunk>;
				}
			}
			/**
			 * JarFile is used to read jar entries and their associated data from jar files.
			 */
			export class JarFile extends java.util.zip.ZipFile {
				/**
				 * Create a new JarFile using the contents of the specified file.
				 * @param file 
				 */
				constructor(file: java.io.File);
				/**
				 * Create a new JarFile using the contents of the specified file.
				 * @param file 
				 * @param verify 
				 */
				constructor(file: java.io.File, verify: boolean);
				/**
				 * Create a new JarFile using the contents of file.
				 * @param file 
				 * @param verify 
				 * @param mode 
				 */
				constructor(file: java.io.File, verify: boolean, mode: number);
				/**
				 * Create a new JarFile from the contents of the file specified by filename.
				 * @param filename 
				 */
				constructor(filename: string);
				/**
				 * Create a new JarFile from the contents of the file specified by filename.
				 * @param filename 
				 * @param verify 
				 */
				constructor(filename: string, verify: boolean);
				/**
				 * The MANIFEST file name.
				 */
				static MANIFEST_NAME: string;
				static class: java.lang.Class<java.util.jar.JarFile>;
				/**
				 * Return an enumeration containing the JarEntrys contained in this JarFile.
				 */
				public entries(): java.util.IEnumeration<java.util.jar.JarEntry>;
				/**
				 * Return the JarEntry specified by its name or null if no such entry exists.
				 * @param name 
				 */
				public getJarEntry(name: string): java.util.jar.JarEntry;
				/**
				 * Returns the Manifest object associated with this JarFile or null if no MANIFEST entry exists.
				 */
				public getManifest(): java.util.jar.Manifest;
				/**
				 * Return an InputStream for reading the decompressed contents of ZIP entry.
				 * @param ze 
				 */
				public getInputStream(ze: java.util.zip.ZipEntry): java.io.InputStream;
				/**
				 * Return the JarEntry specified by name or null if no such entry exists.
				 * @param name 
				 */
				public getEntry(name: string): java.util.zip.ZipEntry;
				/**
				 * Closes this JarFile.
				 */
				public close(): void;
			}
			export module JarFile {
				export class JarFileInputStream extends java.io.FilterInputStream {
					static class: java.lang.Class<java.util.jar.JarFile.JarFileInputStream>;
					public read(): number;
					public read(buf: native.Array<number>, off: number, nbytes: number): number;
					public available(): number;
					public skip(byteCount: number): any;
					/**
					 * Equivalent to read(buffer, 0, buffer.length).
					 */
					read(buffer: native.Array<number>): number;
				}
			}
			/**
			 * Reads a JAR file manifest. The specification is here: http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html
			 */
			export class InitManifest extends java.lang.Object {
				static class: java.lang.Class<java.util.jar.InitManifest>;
				initEntries(entries: java.util.IMap<string, java.util.jar.Attributes>, chunks: java.util.IMap<string, java.util.jar.Manifest.Chunk>): void;
				getPos(): number;
			}
		}
		/**
		 * Observer is the interface to be implemented by objects that receive notification of updates on an Observable object.
		 */
		interface IObserver {
			/**
			 * This method is called if the specified Observable object's notifyObservers method is called (because the Observable object has been updated.
			 * @param observable 
			 * @param data 
			 */
			update(observable: java.util.Observable, data: any): void;
		}
		/**
		 * An Map specialized for use with Enum types as keys.
		 */
		export class EnumMap<K, V> extends java.util.AbstractMap<K, V> implements java.io.ISerializable, java.lang.ICloneable {
			/**
			 * Constructs an empty EnumMap using the given key type.
			 * @param keyType 
			 */
			constructor(keyType: java.lang.Class<K>);
			/**
			 * Constructs an EnumMap using the same key type as the given EnumMap and initially containing the same mappings.
			 * @param map 
			 */
			constructor(map: java.util.EnumMap<K, any>);
			/**
			 * Constructs an EnumMap initialized from the given map. If the given map is an EnumMap instance, this constructor behaves in the exactly the same way as EnumMap#EnumMap(EnumMap)}. Otherwise, the given map should contain at least one mapping.
			 * @param map 
			 */
			constructor(map: java.util.IMap<K, any>);
			static class: java.lang.Class<java.util.EnumMap<any, any>>;
			/**
			 * Removes all elements from this EnumMap, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns a shallow copy of this EnumMap.
			 */
			public clone(): java.util.EnumMap<K, V>;
			/**
			 * Returns whether this EnumMap contains the specified key.
			 * @param key 
			 */
			public containsKey(key: any): boolean;
			/**
			 * Returns whether this EnumMap contains the specified value.
			 * @param value 
			 */
			public containsValue(value: any): boolean;
			/**
			 * Returns a Set containing all of the mappings in this EnumMap. Each mapping is an instance of Map.Entry. As the Set is backed by this EnumMap, changes in one will be reflected in the other.
			 */
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			/**
			 * Compares the argument to the receiver, and returns true if the specified Object is an EnumMap and both EnumMaps contain the same mappings.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the value of the mapping with the specified key.
			 * @param key 
			 */
			public get(key: any): V;
			/**
			 * Returns a set of the keys contained in this EnumMap. The Set is backed by this EnumMap so changes to one are reflected in the other. The Set does not support adding.
			 */
			public keySet(): java.util.ISet<K>;
			/**
			 * Maps the specified key to the specified value.
			 * @param key 
			 * @param value 
			 */
			public put(key: K, value: V): V;
			/**
			 * Copies every mapping in the specified Map to this EnumMap.
			 * @param map 
			 */
			public putAll(map: java.util.IMap<any, any>): void;
			/**
			 * Removes a mapping with the specified key from this EnumMap.
			 * @param key 
			 */
			public remove(key: any): V;
			/**
			 * Returns the number of elements in this EnumMap.
			 */
			public size(): number;
			/**
			 * Returns a Collection of the values contained in this EnumMap. The returned Collection complies with the general rule specified in Map#values(). The Collection's Iterator will return the values in the their corresponding keys' natural order (the Enum constants are declared in this order).
			 */
			public values(): java.util.ICollection<V>;
		}
		export module EnumMap {
			export class Entry<KT, VT> extends java.util.MapEntry<KT, VT> {
				static class: java.lang.Class<java.util.EnumMap.Entry<any, any>>;
				public equals(object: any): boolean;
				public hashCode(): number;
				public getKey(): KT;
				public getValue(): VT;
				public setValue(value: VT): VT;
				public toString(): string;
			}
			export class EnumMapIterator<E, KT, VT> extends java.lang.Object {
				static class: java.lang.Class<java.util.EnumMap.EnumMapIterator<any, any, any>>;
				public hasNext(): boolean;
				public next(): E;
				public remove(): void;
				public toString(): string;
			}
			export class EnumMapEntrySet<KT, VT> extends java.util.AbstractSet<java.util.Map.IEntry<KT, VT>> {
				static class: java.lang.Class<java.util.EnumMap.EnumMapEntrySet<any, any>>;
				public clear(): void;
				public contains(object: any): boolean;
				public iterator(): java.util.IIterator<java.util.Map.IEntry<KT, VT>>;
				public remove(object: any): boolean;
				public size(): number;
				public toArray(): native.Array<any>;
				public toArray(array: native.Array<any>): native.Array<any>;
			}
			export class EnumMapKeySet<KT, VT> extends java.util.AbstractSet<KT> {
				static class: java.lang.Class<java.util.EnumMap.EnumMapKeySet<any, any>>;
				public clear(): void;
				public contains(object: any): boolean;
				public iterator(): java.util.IIterator<any>;
				public remove(object: any): boolean;
				public size(): number;
			}
			export class EnumMapValueCollection<KT, VT> extends java.util.AbstractCollection<VT> {
				static class: java.lang.Class<java.util.EnumMap.EnumMapValueCollection<any, any>>;
				public clear(): void;
				public contains(object: any): boolean;
				public iterator(): java.util.IIterator<any>;
				public remove(object: any): boolean;
				public size(): number;
			}
			export class EnumMapEntryIterator<E, KT, VT> extends java.util.EnumMap.EnumMapIterator<E, KT, VT> {
				static class: java.lang.Class<java.util.EnumMap.EnumMapEntryIterator<any, any, any>>;
				public next(): E;
			}
		}
		/**
		 * Vector is an implementation of List, backed by an array and synchronized. All optional operations including adding, removing, and replacing elements are supported.
		 */
		export class Vector<E> extends java.util.AbstractList<E> implements java.util.IRandomAccess, java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new vector using the default capacity.
			 */
			constructor();
			/**
			 * Constructs a new vector using the specified capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new vector using the specified capacity and capacity increment.
			 * @param capacity 
			 * @param capacityIncrement 
			 */
			constructor(capacity: number, capacityIncrement: number);
			/**
			 * Constructs a new instance of Vector containing the elements in collection. The order of the elements in the new Vector is dependent on the iteration order of the seed collection.
			 * @param collection 
			 */
			constructor(collection: java.util.ICollection<any>);
			static class: java.lang.Class<java.util.Vector<any>>;
			/**
			 * Adds the specified object into this vector at the specified location. The object is inserted before any element with the same or a higher index increasing their index by 1. If the location is equal to the size of this vector, the object is added at the end.
			 * @param location 
			 * @param object 
			 */
			public add(location: number, object: E): void;
			/**
			 * Adds the specified object at the end of this vector.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Inserts the objects in the specified collection at the specified location in this vector. The objects are inserted in the order in which they are returned from the Collection iterator. The elements with an index equal or higher than location have their index increased by the size of the added collection.
			 * @param location 
			 * @param collection 
			 */
			public addAll(location: number, collection: java.util.ICollection<any>): boolean;
			/**
			 * Adds the objects in the specified collection to the end of this vector.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Adds the specified object at the end of this vector.
			 * @param object 
			 */
			public addElement(object: E): void;
			/**
			 * Returns the number of elements this vector can hold without growing.
			 */
			public capacity(): number;
			/**
			 * Removes all elements from this vector, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns a new vector with the same elements, size, capacity and capacity increment as this vector.
			 */
			public clone(): any;
			/**
			 * Searches this vector for the specified object.
			 * @param object 
			 */
			public contains(object: any): boolean;
			/**
			 * Searches this vector for all objects in the specified collection.
			 * @param collection 
			 */
			public containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Attempts to copy elements contained by this Vector into the corresponding elements of the supplied Object array.
			 * @param elements 
			 */
			public copyInto(elements: native.Array<any>): void;
			/**
			 * Returns the element at the specified location in this vector.
			 * @param location 
			 */
			public elementAt(location: number): E;
			/**
			 * Returns an enumeration on the elements of this vector. The results of the enumeration may be affected if the contents of this vector is modified.
			 */
			public elements(): java.util.IEnumeration<E>;
			/**
			 * Ensures that this vector can hold the specified number of elements without growing.
			 * @param minimumCapacity 
			 */
			public ensureCapacity(minimumCapacity: number): void;
			/**
			 * Compares the specified object to this vector and returns if they are equal. The object must be a List which contains the same objects in the same order.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the first element in this vector.
			 */
			public firstElement(): E;
			/**
			 * Returns the element at the specified location in this vector.
			 * @param location 
			 */
			public get(location: number): E;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			public hashCode(): number;
			/**
			 * Searches in this vector for the index of the specified object. The search for the object starts at the beginning and moves towards the end of this vector.
			 * @param object 
			 */
			public indexOf(object: any): number;
			/**
			 * Searches in this vector for the index of the specified object. The search for the object starts at the specified location and moves towards the end of this vector.
			 * @param object 
			 * @param location 
			 */
			public indexOf(object: any, location: number): number;
			/**
			 * Inserts the specified object into this vector at the specified location. This object is inserted before any previous element at the specified location. All elements with an index equal or greater than location have their index increased by 1. If the location is equal to the size of this vector, the object is added at the end.
			 * @param object 
			 * @param location 
			 */
			public insertElementAt(object: E, location: number): void;
			/**
			 * Returns if this vector has no elements, a size of zero.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns the last element in this vector.
			 */
			public lastElement(): E;
			/**
			 * Searches in this vector for the index of the specified object. The search for the object starts at the end and moves towards the start of this vector.
			 * @param object 
			 */
			public lastIndexOf(object: any): number;
			/**
			 * Searches in this vector for the index of the specified object. The search for the object starts at the specified location and moves towards the start of this vector.
			 * @param object 
			 * @param location 
			 */
			public lastIndexOf(object: any, location: number): number;
			/**
			 * Removes the object at the specified location from this vector. All elements with an index bigger than location have their index decreased by 1.
			 * @param location 
			 */
			public remove(location: number): E;
			/**
			 * Removes the first occurrence, starting at the beginning and moving towards the end, of the specified object from this vector. All elements with an index bigger than the element that gets removed have their index decreased by 1.
			 * @param object 
			 */
			public remove(object: any): boolean;
			/**
			 * Removes all occurrences in this vector of each object in the specified Collection.
			 * @param collection 
			 */
			public removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this vector, leaving the size zero and the capacity unchanged.
			 */
			public removeAllElements(): void;
			/**
			 * Removes the first occurrence, starting at the beginning and moving towards the end, of the specified object from this vector. All elements with an index bigger than the element that gets removed have their index decreased by 1.
			 * @param object 
			 */
			public removeElement(object: any): boolean;
			/**
			 * Removes the element found at index position location from this Vector. All elements with an index bigger than location have their index decreased by 1.
			 * @param location 
			 */
			public removeElementAt(location: number): void;
			/**
			 * Removes the objects in the specified range from the start to the, but not including, end index. All elements with an index bigger than or equal to end have their index decreased by end - start.
			 * @param start 
			 * @param end 
			 */
			protected removeRange(start: number, end: number): void;
			/**
			 * Removes all objects from this vector that are not contained in the specified collection.
			 * @param collection 
			 */
			public retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Replaces the element at the specified location in this vector with the specified object.
			 * @param location 
			 * @param object 
			 */
			public set(location: number, object: E): E;
			/**
			 * Replaces the element at the specified location in this vector with the specified object.
			 * @param object 
			 * @param location 
			 */
			public setElementAt(object: E, location: number): void;
			/**
			 * Sets the size of this vector to the specified size. If there are more than length elements in this vector, the elements at end are lost. If there are less than length elements in the vector, the additional elements contain null.
			 * @param length 
			 */
			public setSize(length: number): void;
			/**
			 * Returns the number of elements in this vector.
			 */
			public size(): number;
			/**
			 * Returns a List of the specified portion of this vector from the start index to one less than the end index. The returned List is backed by this vector so changes to one are reflected by the other.
			 * @param start 
			 * @param end 
			 */
			public subList(start: number, end: number): java.util.IList<E>;
			/**
			 * Returns a new array containing all elements contained in this vector.
			 */
			public toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this vector. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this vector, the array element following the collection elements is set to null.
			 * @param contents 
			 */
			public toArray<T>(contents: native.Array<T>): native.Array<T>;
			/**
			 * Returns the string representation of this vector.
			 */
			public toString(): string;
			/**
			 * Sets the capacity of this vector to be the same as the size.
			 */
			public trimToSize(): void;
		}
		export module zip {
			/**
			 * The CRC32 class is used to compute a CRC32 checksum from data provided as input value. See also Adler32 which is almost as good, but cheaper.
			 */
			export class CRC32 extends java.lang.Object implements java.util.zip.IChecksum {
				constructor();
				static class: java.lang.Class<java.util.zip.CRC32>;
				/**
				 * Returns the CRC32 checksum for all input received.
				 */
				public getValue(): any;
				/**
				 * Resets the CRC32 checksum to it initial state.
				 */
				public reset(): void;
				/**
				 * Updates this checksum with the byte value provided as integer.
				 * @param val 
				 */
				public update(val: number): void;
				/**
				 * Updates this checksum with the bytes contained in buffer buf.
				 * @param buf 
				 */
				public update(buf: native.Array<number>): void;
				/**
				 * Update this CRC32 checksum with the contents of buf, starting from offset and reading byteCount bytes of data.
				 */
				public update(buf: native.Array<number>, offset: number, byteCount: number): void;
			}
			/**
			 * This class provides an implementation of FilterInputStream that decompresses data that was compressed using the <i>DEFLATE</i> algorithm (see <a href="http://www.gzip.org/algorithm.txt">specification</a>). Basically it wraps the Inflater class and takes care of the buffering.
			 */
			export class InflaterInputStream extends java.io.FilterInputStream {
				/**
				 * This is the most basic constructor. You only need to pass the InputStream from which the compressed data is to be read from. Default settings for the Inflater and internal buffer are be used. In particular the Inflater expects a ZLIB header from the input stream.
				 * @param is 
				 */
				constructor(is: java.io.InputStream);
				/**
				 * This constructor lets you pass a specifically initialized Inflater, for example one that expects no ZLIB header.
				 * @param is 
				 * @param inflater 
				 */
				constructor(is: java.io.InputStream, inflater: java.util.zip.Inflater);
				/**
				 * This constructor lets you specify both the Inflater as well as the internal buffer size to be used.
				 * @param is 
				 * @param inflater 
				 * @param bsize 
				 */
				constructor(is: java.io.InputStream, inflater: java.util.zip.Inflater, bsize: number);
				static class: java.lang.Class<java.util.zip.InflaterInputStream>;
				/**
				 * Reads a single byte of decompressed data.
				 */
				public read(): number;
				/**
				 * Reads up to byteCount bytes of decompressed data and stores it in buffer starting at offset.
				 */
				public read(buffer: native.Array<number>, offset: number, byteCount: number): number;
				/**
				 * Fills the input buffer with data to be decompressed.
				 */
				protected fill(): void;
				/**
				 * Skips up to byteCount bytes of uncompressed data.
				 * @param byteCount the number of bytes to skip.
				 */
				public skip(byteCount: number): any;
				/**
				 * Returns 0 when when this stream has exhausted its input; and 1 otherwise. A result of 1 does not guarantee that further bytes can be returned, with or without blocking.
				 */
				public available(): number;
				/**
				 * Closes the input stream.
				 */
				public close(): void;
				/**
				 * Marks the current position in the stream. This implementation overrides the super type implementation to do nothing at all.
				 * @param readlimit 
				 */
				public mark(readlimit: number): void;
				/**
				 * Reset the position of the stream to the last marked position. This implementation overrides the supertype implementation and always throws an IOException IOException when called.
				 */
				public reset(): void;
				/**
				 * Returns whether the receiver implements mark semantics. This type does not support mark(), so always responds false.
				 */
				public markSupported(): boolean;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			/**
			 * Do not add constants to this interface! It's implemented by the classes in this package whose names start "Zip", and the constants are thereby public API.
			 */
			export class ZipConstants implements java.util.zip.IZipConstants {
				constructor(implementation: java.util.zip.IZipConstants);
				static LOCSIG: number;
				static EXTSIG: number;
				static CENSIG: number;
				static ENDSIG: number;
				static LOCHDR: number;
				static EXTHDR: number;
				static CENHDR: number;
				static ENDHDR: number;
				static LOCVER: number;
				static LOCFLG: number;
				static LOCHOW: number;
				static LOCTIM: number;
				static LOCCRC: number;
				static LOCSIZ: number;
				static LOCLEN: number;
				static LOCNAM: number;
				static LOCEXT: number;
				static EXTCRC: number;
				static EXTSIZ: number;
				static EXTLEN: number;
				static CENVEM: number;
				static CENVER: number;
				static CENFLG: number;
				static CENHOW: number;
				static CENTIM: number;
				static CENCRC: number;
				static CENSIZ: number;
				static CENLEN: number;
				static CENNAM: number;
				static CENEXT: number;
				static CENCOM: number;
				static CENDSK: number;
				static CENATT: number;
				static CENATX: number;
				static CENOFF: number;
				static ENDSUB: number;
				static ENDTOT: number;
				static ENDSIZ: number;
				static ENDOFF: number;
				static ENDCOM: number;
			}
			/**
			 * An InputStream filter to compress data. Callers read compressed data in the "deflate" format from the uncompressed underlying stream. 1.6
			 */
			export class DeflaterInputStream extends java.io.FilterInputStream {
				/**
				 * Constructs a DeflaterInputStream with a new Deflater and an implementation-defined default internal buffer size. in is a source of uncompressed data, and this stream will be a source of compressed data.
				 * @param input in the source {@code InputStream}
				 */
				constructor(input: java.io.InputStream);
				/**
				 * Constructs a DeflaterInputStream with the given Deflater and an implementation-defined default internal buffer size. in is a source of uncompressed data, and this stream will be a source of compressed data.
				 * @param input in the source {@code InputStream}
				 * @param deflater the {@code Deflater} to be used for compression
				 */
				constructor(input: java.io.InputStream, deflater: java.util.zip.Deflater);
				/**
				 * Constructs a DeflaterInputStream with the given Deflater and given internal buffer size. in is a source of uncompressed data, and this stream will be a source of compressed data.
				 * @param input in the source {@code InputStream}
				 * @param deflater the {@code Deflater} to be used for compression
				 * @param bufferSize the length in bytes of the internal buffer
				 */
				constructor(input: java.io.InputStream, deflater: java.util.zip.Deflater, bufferSize: number);
				static class: java.lang.Class<java.util.zip.DeflaterInputStream>;
				/**
				 * Closes the underlying input stream and discards any remaining uncompressed data.
				 */
				public close(): void;
				/**
				 * Reads a byte from the compressed input stream. The result will be a byte of compressed data corresponding to an uncompressed byte or bytes read from the underlying stream.
				 */
				public read(): number;
				/**
				 * Reads compressed data into a byte buffer. The result will be bytes of compressed data corresponding to an uncompressed byte or bytes read from the underlying stream.
				 */
				public read(buffer: native.Array<number>, offset: number, byteCount: number): number;
				/**
				 * 
				 */
				public skip(byteCount: number): any;
				/**
				 * Returns 0 when when this stream has exhausted its input; and 1 otherwise. A result of 1 does not guarantee that further bytes can be returned, with or without blocking.
				 */
				public available(): number;
				/**
				 * Returns false because DeflaterInputStream does not support mark/reset.
				 */
				public markSupported(): boolean;
				/**
				 * This operation is not supported and does nothing.
				 */
				public mark(limit: number): void;
				/**
				 * This operation is not supported and throws IOException.
				 */
				public reset(): void;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			/**
			 * An instance of ZipEntry represents an entry within a <i>ZIP-archive</i>. An entry has attributes such as name (= path) or the size of its data. While an entry identifies data stored in an archive, it does not hold the data itself. For example when reading a <i>ZIP-file</i> you will first retrieve all its entries in a collection and then read the data for a specific entry through an input stream.
			 */
			export class ZipEntry extends java.lang.Object implements java.util.zip.IZipConstants, java.lang.ICloneable {
				/**
				 * Constructs a new ZipEntry with the specified name.
				 * @param name 
				 */
				constructor(name: string);
				/**
				 * Constructs a new ZipEntry using the values obtained from ze.
				 * @param ze 
				 */
				constructor(ze: java.util.zip.ZipEntry);
				/**
				 * Zip entry state: Deflated.
				 */
				static DEFLATED: number;
				/**
				 * Zip entry state: Stored.
				 */
				static STORED: number;
				static class: java.lang.Class<java.util.zip.ZipEntry>;
				/**
				 * Gets the comment for this ZipEntry.
				 */
				public getComment(): string;
				/**
				 * Gets the compressed size of this ZipEntry.
				 */
				public getCompressedSize(): any;
				/**
				 * Gets the checksum for this ZipEntry.
				 */
				public getCrc(): any;
				/**
				 * Gets the extra information for this ZipEntry.
				 */
				public getExtra(): native.Array<number>;
				/**
				 * Gets the compression method for this ZipEntry.
				 */
				public getMethod(): number;
				/**
				 * Gets the name of this ZipEntry.
				 */
				public getName(): string;
				/**
				 * Gets the uncompressed size of this ZipEntry.
				 */
				public getSize(): any;
				/**
				 * Gets the last modification time of this ZipEntry.
				 */
				public getTime(): any;
				/**
				 * Determine whether or not this ZipEntry is a directory.
				 */
				public isDirectory(): boolean;
				/**
				 * Sets the comment for this ZipEntry.
				 * @param comment 
				 */
				public setComment(comment: string): void;
				/**
				 * Sets the compressed size for this ZipEntry.
				 * @param value 
				 */
				public setCompressedSize(value: number): void;
				/**
				 * Sets the checksum for this ZipEntry.
				 * @param value 
				 */
				public setCrc(value: number): void;
				/**
				 * Sets the extra information for this ZipEntry.
				 * @param data 
				 */
				public setExtra(data: native.Array<number>): void;
				/**
				 * Sets the compression method for this ZipEntry.
				 * @param value 
				 */
				public setMethod(value: number): void;
				/**
				 * Sets the uncompressed size of this ZipEntry.
				 * @param value 
				 */
				public setSize(value: number): void;
				/**
				 * Sets the modification time of this ZipEntry.
				 * @param value 
				 */
				public setTime(value: number): void;
				/**
				 * Returns the string representation of this ZipEntry.
				 */
				public toString(): string;
				/**
				 * Returns a deep copy of this zip entry.
				 */
				public clone(): any;
				/**
				 * Returns the hash code for this ZipEntry.
				 */
				public hashCode(): number;
			}
			/**
			 * This runtime exception is thrown by ZipFile and ZipInputStream when the file or stream is not a valid ZIP file.
			 */
			export class ZipException extends java.io.IOException {
				/**
				 * Constructs a new ZipException instance.
				 */
				constructor();
				/**
				 * Constructs a new ZipException instance with the specified message.
				 * @param detailMessage 
				 */
				constructor(detailMessage: string);
				static class: java.lang.Class<java.util.zip.ZipException>;
			}
			/**
			 * The Adler-32 class is used to compute the Adler32 checksum from a set of data. Compared to CRC32 it trades reliability for speed. Refer to RFC 1950 for the specification.
			 */
			export class Adler32 extends java.lang.Object implements java.util.zip.IChecksum {
				constructor();
				static class: java.lang.Class<java.util.zip.Adler32>;
				/**
				 * Returns the Adler32 checksum for all input received.
				 */
				public getValue(): any;
				/**
				 * Reset this instance to its initial checksum.
				 */
				public reset(): void;
				/**
				 * Update this Adler32 checksum with the single byte provided as argument.
				 * @param i 
				 */
				public update(i: number): void;
				/**
				 * Update this Adler32 checksum using the contents of buf.
				 * @param buf 
				 */
				public update(buf: native.Array<number>): void;
				/**
				 * Update this Adler32 checksum with the contents of buf, starting from offset and reading byteCount bytes of data.
				 */
				public update(buf: native.Array<number>, offset: number, byteCount: number): void;
			}
			/**
			 * The CheckedInputStream class is used to maintain a checksum at the same time as the data, on which the checksum is computed, is read from a stream. The purpose of this checksum is to establish data integrity, comparing the computed checksum against a published checksum value.
			 */
			export class CheckedInputStream extends java.io.FilterInputStream {
				/**
				 * Constructs a new CheckedInputStream on InputStream is. The checksum will be calculated using the algorithm implemented by csum.
				 * @param is 
				 * @param csum 
				 */
				constructor(is: java.io.InputStream, csum: java.util.zip.IChecksum);
				static class: java.lang.Class<java.util.zip.CheckedInputStream>;
				/**
				 * Reads one byte of data from the underlying input stream and updates the checksum with the byte data.
				 */
				public read(): number;
				/**
				 * Reads up to n bytes of data from the underlying input stream, storing it into buf, starting at offset off. The checksum is updated with the bytes read.
				 * @param buf 
				 * @param off 
				 * @param nbytes 
				 */
				public read(buf: native.Array<number>, off: number, nbytes: number): number;
				/**
				 * Returns the checksum calculated on the stream read so far.
				 */
				public getChecksum(): java.util.zip.IChecksum;
				/**
				 * Skip up to byteCount bytes of data on the underlying input stream. Any skipped bytes are added to the running checksum value.
				 * @param byteCount the number of bytes to skip.
				 */
				public skip(byteCount: number): any;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			/**
			 * The GZIPInputStream class is used to read data stored in the GZIP format, reading and decompressing GZIP data from the underlying stream into its buffer.
			 */
			export class GZIPInputStream extends java.util.zip.InflaterInputStream {
				/**
				 * Construct a GZIPInputStream to read from GZIP data from the underlying stream.
				 * @param is 
				 */
				constructor(is: java.io.InputStream);
				/**
				 * Construct a GZIPInputStream to read from GZIP data from the underlying stream. Set the internal buffer size to size.
				 * @param is 
				 * @param size 
				 */
				constructor(is: java.io.InputStream, size: number);
				/**
				 * The magic header for the GZIP format.
				 */
				static GZIP_MAGIC: number;
				static class: java.lang.Class<java.util.zip.GZIPInputStream>;
				/**
				 * Closes this stream and any underlying streams.
				 */
				public close(): void;
				/**
				 * Reads and decompresses GZIP data from the underlying stream into the given buffer.
				 */
				public read(buffer: native.Array<number>, offset: number, byteCount: number): number;
				/**
				 * Reads a single byte of decompressed data.
				 */
				read(): number;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			/**
			 * Do not add constants to this interface! It's implemented by the classes in this package whose names start "Zip", and the constants are thereby public API.
			 */
			interface IZipConstants {
			}
			export module IZipConstants {
				var LOCSIG: number;
				var EXTSIG: number;
				var CENSIG: number;
				var ENDSIG: number;
				var LOCHDR: number;
				var EXTHDR: number;
				var CENHDR: number;
				var ENDHDR: number;
				var LOCVER: number;
				var LOCFLG: number;
				var LOCHOW: number;
				var LOCTIM: number;
				var LOCCRC: number;
				var LOCSIZ: number;
				var LOCLEN: number;
				var LOCNAM: number;
				var LOCEXT: number;
				var EXTCRC: number;
				var EXTSIZ: number;
				var EXTLEN: number;
				var CENVEM: number;
				var CENVER: number;
				var CENFLG: number;
				var CENHOW: number;
				var CENTIM: number;
				var CENCRC: number;
				var CENSIZ: number;
				var CENLEN: number;
				var CENNAM: number;
				var CENEXT: number;
				var CENCOM: number;
				var CENDSK: number;
				var CENATT: number;
				var CENATX: number;
				var CENOFF: number;
				var ENDSUB: number;
				var ENDTOT: number;
				var ENDSIZ: number;
				var ENDOFF: number;
				var ENDCOM: number;
			}
			/**
			 * This class provides an implementation of FilterInputStream that decompresses data from an InputStream containing a ZIP archive.
			 */
			export class ZipInputStream extends java.util.zip.InflaterInputStream implements java.util.zip.IZipConstants {
				/**
				 * Constructs a new ZipInputStream from the specified input stream.
				 * @param stream 
				 */
				constructor(stream: java.io.InputStream);
				static class: java.lang.Class<java.util.zip.ZipInputStream>;
				/**
				 * Closes this ZipInputStream.
				 */
				public close(): void;
				/**
				 * Closes the current ZIP entry and positions to read the next entry.
				 */
				public closeEntry(): void;
				/**
				 * Reads the next entry from this ZipInputStream or null if no more entries are present.
				 */
				public getNextEntry(): java.util.zip.ZipEntry;
				/**
				 * Reads up to the specified number of uncompressed bytes into the buffer starting at the offset.
				 */
				public read(buffer: native.Array<number>, offset: number, byteCount: number): number;
				public available(): number;
				/**
				 * creates a ZipEntry with the given name.
				 * @param name 
				 */
				protected createZipEntry(name: string): java.util.zip.ZipEntry;
				/**
				 * Reads a single byte of decompressed data.
				 */
				read(): number;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			/**
			 * DataFormatException is used to indicate an error in the format of a particular data stream which is to be uncompressed.
			 */
			export class DataFormatException extends java.lang.Exception {
				/**
				 * Constructs a new DataFormatException instance.
				 */
				constructor();
				/**
				 * Constructs a new DataFormatException instance with the specified message.
				 * @param detailMessage 
				 */
				constructor(detailMessage: string);
				static class: java.lang.Class<java.util.zip.DataFormatException>;
			}
			/**
			 * This class provides random read access to a <i>ZIP-archive</i> file.
			 */
			export class ZipFile extends java.lang.Object implements java.util.zip.IZipConstants {
				/**
				 * Constructs a new ZipFile with the specified file.
				 * @param file 
				 */
				constructor(file: java.io.File);
				/**
				 * Opens a file as <i>ZIP-archive</i>. "mode" must be OPEN_READ or OPEN_DELETE . The latter sets the "delete on exit" flag through a file.
				 * @param file 
				 * @param mode 
				 */
				constructor(file: java.io.File, mode: number);
				/**
				 * Opens a ZIP archived file.
				 * @param name 
				 */
				constructor(name: string);
				/**
				 * Open ZIP file for read.
				 */
				static OPEN_READ: number;
				/**
				 * Delete ZIP file when closed.
				 */
				static OPEN_DELETE: number;
				static class: java.lang.Class<java.util.zip.ZipFile>;
				protected finalize(): void;
				/**
				 * Closes this ZIP file. This method is idempotent.
				 */
				public close(): void;
				/**
				 * Returns an enumeration of the entries. The entries are listed in the order in which they appear in the ZIP archive.
				 */
				public entries(): java.util.IEnumeration<any>;
				/**
				 * Gets the ZIP entry with the specified name from this ZipFile.
				 * @param entryName 
				 */
				public getEntry(entryName: string): java.util.zip.ZipEntry;
				/**
				 * Returns an input stream on the data of the specified ZipEntry.
				 * @param entry 
				 */
				public getInputStream(entry: java.util.zip.ZipEntry): java.io.InputStream;
				/**
				 * Gets the file name of this ZipFile.
				 */
				public getName(): string;
				/**
				 * Returns the number of ZipEntries in this ZipFile.
				 */
				public size(): number;
			}
			export module ZipFile {
				/**
				 * Wrap a stream around a RandomAccessFile. The RandomAccessFile is shared among all streams returned by getInputStream(), so we have to synchronize access to it. (We can optimize this by adding buffering here to reduce collisions.)
				 */
				export class RAFStream extends java.io.InputStream {
					constructor(raf: java.io.RandomAccessFile, pos: number);
					static class: java.lang.Class<java.util.zip.ZipFile.RAFStream>;
					public available(): number;
					public read(): number;
					public read(b: native.Array<number>, off: number, len: number): number;
					public skip(byteCount: number): any;
					/**
					 * Equivalent to read(buffer, 0, buffer.length).
					 */
					read(buffer: native.Array<number>): number;
				}
				export class ZipInflaterInputStream extends java.util.zip.InflaterInputStream {
					constructor(is: java.io.InputStream, inf: java.util.zip.Inflater, bsize: number, entry: java.util.zip.ZipEntry);
					static class: java.lang.Class<java.util.zip.ZipFile.ZipInflaterInputStream>;
					public read(buffer: native.Array<number>, off: number, nbytes: number): number;
					public available(): number;
					/**
					 * Reads a single byte of decompressed data.
					 */
					read(): number;
					/**
					 * Equivalent to read(buffer, 0, buffer.length).
					 */
					read(buffer: native.Array<number>): number;
				}
			}
			/**
			 * This class compresses data using the <i>DEFLATE</i> algorithm (see <a href="http://www.gzip.org/algorithm.txt">specification</a>).
			 */
			export class Deflater extends java.lang.Object {
				/**
				 * Constructs a new Deflater instance using the default compression level. The strategy can be specified with #setStrategy. A header is added to the output by default; use #Deflater(int, boolean) if you need to omit the header.
				 */
				constructor();
				/**
				 * Constructs a new Deflater instance using compression level level. The strategy can be specified with #setStrategy. A header is added to the output by default; use #Deflater(int, boolean) if you need to omit the header.
				 * @param level 
				 */
				constructor(level: number);
				/**
				 * Constructs a new Deflater instance with a specific compression level. If noHeader is true, no ZLIB header is added to the output. In a ZIP archive every entry (compressed file) comes with such a header. The strategy can be specified using #setStrategy.
				 * @param level 
				 * @param noHeader 
				 */
				constructor(level: number, noHeader: boolean);
				/**
				 * Upper bound for the compression level range.
				 */
				static BEST_COMPRESSION: number;
				/**
				 * Lower bound for compression level range.
				 */
				static BEST_SPEED: number;
				/**
				 * The default compression level.
				 */
				static DEFAULT_COMPRESSION: number;
				/**
				 * The default compression strategy.
				 */
				static DEFAULT_STRATEGY: number;
				/**
				 * The default compression method.
				 */
				static DEFLATED: number;
				/**
				 * A compression strategy.
				 */
				static FILTERED: number;
				/**
				 * A compression strategy.
				 */
				static HUFFMAN_ONLY: number;
				/**
				 * A compression level.
				 */
				static NO_COMPRESSION: number;
				static class: java.lang.Class<java.util.zip.Deflater>;
				/**
				 * Deflates the data (previously passed to #setInput setInput) into the supplied buffer.
				 */
				public deflate(buf: native.Array<number>): number;
				/**
				 * Deflates data (previously passed to #setInput setInput) into a specific region within the supplied buffer.
				 */
				public deflate(buf: native.Array<number>, offset: number, byteCount: number): number;
				/**
				 * Frees all resources held onto by this deflating algorithm. Any unused input or output is discarded. This method should be called explicitly in order to free native resources as soon as possible. After end() is called, other methods will typically throw IllegalStateException.
				 */
				public end(): void;
				protected finalize(): void;
				/**
				 * Indicates to the Deflater that all uncompressed input has been provided to it.
				 */
				public finish(): void;
				/**
				 * Returns true if #finish finish has been called and all data provided by #setInput setInput has been successfully compressed and consumed by #deflate deflate.
				 */
				public finished(): boolean;
				/**
				 * Returns the Adler32 checksum of the uncompressed data read so far.
				 */
				public getAdler(): number;
				/**
				 * Returns the total number of bytes of input read by this Deflater. This method is limited to 32 bits; use #getBytesRead instead.
				 */
				public getTotalIn(): number;
				/**
				 * Returns the total number of bytes written to the output buffer by this Deflater. The method is limited to 32 bits; use #getBytesWritten instead.
				 */
				public getTotalOut(): number;
				/**
				 * Returns true if #setInput setInput must be called before deflation can continue. If all uncompressed data has been provided to the Deflater, #finish must be called to ensure the compressed data is output.
				 */
				public needsInput(): boolean;
				/**
				 * Resets the Deflater to accept new input without affecting any previously made settings for the compression strategy or level. This operation <i>must</i> be called after #finished returns true if the Deflater is to be reused.
				 */
				public reset(): void;
				/**
				 * Sets the dictionary to be used for compression by this Deflater. This method can only be called if this Deflater supports the writing of ZLIB headers. This is the default, but can be overridden using #Deflater(int, boolean).
				 */
				public setDictionary(dictionary: native.Array<number>): void;
				/**
				 * Sets the dictionary to be used for compression by this Deflater. This method can only be called if this Deflater supports the writing of ZLIB headers. This is the default, but can be overridden using #Deflater(int, boolean).
				 */
				public setDictionary(buf: native.Array<number>, offset: number, byteCount: number): void;
				/**
				 * Sets the input buffer the Deflater will use to extract uncompressed bytes for later compression.
				 */
				public setInput(buf: native.Array<number>): void;
				/**
				 * Sets the input buffer the Deflater will use to extract uncompressed bytes for later compression.
				 */
				public setInput(buf: native.Array<number>, offset: number, byteCount: number): void;
				/**
				 * Sets the compression level to be used when compressing data. The compression level must be a value between 0 and 9. This value must be set prior to calling #setInput setInput. IllegalArgumentException If the compression level is invalid.
				 */
				public setLevel(level: number): void;
				/**
				 * Sets the compression strategy to be used. The strategy must be one of FILTERED, HUFFMAN_ONLY or DEFAULT_STRATEGY. This value must be set prior to calling #setInput setInput.
				 */
				public setStrategy(strategy: number): void;
				/**
				 * Returns the total number of bytes read by the Deflater. This method is the same as #getTotalIn except that it returns a long value instead of an integer.
				 */
				public getBytesRead(): any;
				/**
				 * Returns a the total number of bytes written by this Deflater. This method is the same as getTotalOut except it returns a long value instead of an integer.
				 */
				public getBytesWritten(): any;
			}
			/**
			 * The GZIPOutputStream class is used to write data to a stream in the GZIP storage format.
			 */
			export class GZIPOutputStream extends java.util.zip.DeflaterOutputStream {
				/**
				 * Construct a new GZIPOutputStream to write data in GZIP format to the underlying stream.
				 * @param os 
				 */
				constructor(os: java.io.OutputStream);
				/**
				 * Construct a new GZIPOutputStream to write data in GZIP format to the underlying stream. Set the internal compression buffer to size size.
				 * @param os 
				 * @param size 
				 */
				constructor(os: java.io.OutputStream, size: number);
				static class: java.lang.Class<java.util.zip.GZIPOutputStream>;
				/**
				 * Indicates to the stream that all data has been written out, and any GZIP terminal data can now be written.
				 */
				public finish(): void;
				/**
				 * Write up to nbytes of data from the given buffer, starting at offset off, to the underlying stream in GZIP format.
				 */
				public write(buffer: native.Array<number>, off: number, nbytes: number): void;
				write(i: number): void;
				/**
				 * Equivalent to write(buffer, 0, buffer.length).
				 */
				write(buffer: native.Array<number>): void;
			}
			/**
			 * The interface common to checksum classes such as Adler32 and CRC32.
			 */
			interface IChecksum {
				/**
				 * Returns the current calculated checksum value.
				 */
				getValue(): any;
				/**
				 * Resets the checksum value applied before beginning calculations on a new stream of data.
				 */
				reset(): void;
				/**
				 * Updates the checksum with the given bytes.
				 * @param buf 
				 * @param off 
				 * @param nbytes 
				 */
				update(buf: native.Array<number>, off: number, nbytes: number): void;
				/**
				 * Updates the checksum value with the given byte.
				 * @param val 
				 */
				update(val: number): void;
			}
			/**
			 * The interface common to checksum classes such as Adler32 and CRC32.
			 */
			export class Checksum implements java.util.zip.IChecksum {
				constructor(implementation: java.util.zip.IChecksum);
				/**
				 * Returns the current calculated checksum value.
				 */
				public getValue(): any;
				/**
				 * Resets the checksum value applied before beginning calculations on a new stream of data.
				 */
				public reset(): void;
				/**
				 * Updates the checksum with the given bytes.
				 * @param buf 
				 * @param off 
				 * @param nbytes 
				 */
				public update(buf: native.Array<number>, off: number, nbytes: number): void;
				/**
				 * Updates the checksum value with the given byte.
				 * @param val 
				 */
				public update(val: number): void;
			}
			/**
			 * This class provides an implementation of FilterOutputStream that compresses data entries into a <i>ZIP-archive</i> output stream.
			 */
			export class ZipOutputStream extends java.util.zip.DeflaterOutputStream implements java.util.zip.IZipConstants {
				/**
				 * Constructs a new ZipOutputStream with the specified output stream.
				 * @param p1 
				 */
				constructor(p1: java.io.OutputStream);
				/**
				 * Indicates deflated entries.
				 */
				static DEFLATED: number;
				/**
				 * Indicates uncompressed entries.
				 */
				static STORED: number;
				static class: java.lang.Class<java.util.zip.ZipOutputStream>;
				/**
				 * Closes the current ZipEntry, if any, and the underlying output stream. If the stream is already closed this method does nothing.
				 */
				public close(): void;
				/**
				 * Closes the current ZipEntry. Any entry terminal data is written to the underlying stream.
				 */
				public closeEntry(): void;
				/**
				 * Indicates that all entries have been written to the stream. Any terminal information is written to the underlying stream.
				 */
				public finish(): void;
				/**
				 * Writes entry information to the underlying stream. Data associated with the entry can then be written using write(). After data is written closeEntry() must be called to complete the writing of the entry to the underlying stream.
				 * @param ze 
				 */
				public putNextEntry(ze: java.util.zip.ZipEntry): void;
				/**
				 * Sets the ZipFile comment associated with the file being written.
				 * @param comment 
				 */
				public setComment(comment: string): void;
				/**
				 * Sets the compression level to be used for writing entry data. This level may be set on a per entry basis. The level must have a value between -1 and 8 according to the Deflater compression level bounds.
				 * @param level 
				 */
				public setLevel(level: number): void;
				/**
				 * Sets the compression method to be used when compressing entry data. method must be one of STORED (for no compression) or DEFLATED.
				 * @param method 
				 */
				public setMethod(method: number): void;
				/**
				 * Writes data for the current entry to the underlying stream.
				 */
				public write(buffer: native.Array<number>, offset: number, byteCount: number): void;
				write(i: number): void;
				/**
				 * Equivalent to write(buffer, 0, buffer.length).
				 */
				write(buffer: native.Array<number>): void;
			}
			/**
			 * This class provides an implementation of FilterOutputStream that compresses data using the <i>DEFLATE</i> algorithm. Basically it wraps the Deflater class and takes care of the buffering.
			 */
			export class DeflaterOutputStream extends java.io.FilterOutputStream {
				/**
				 * This constructor lets you pass the Deflater specifying the compression algorithm.
				 * @param os 
				 * @param def 
				 */
				constructor(os: java.io.OutputStream, def: java.util.zip.Deflater);
				/**
				 * This is the most basic constructor. You only need to pass the OutputStream to which the compressed data shall be written to. The default settings for the Deflater and internal buffer are used. In particular the Deflater produces a ZLIB header in the output stream.
				 * @param os 
				 */
				constructor(os: java.io.OutputStream);
				/**
				 * This constructor lets you specify both the compression algorithm as well as the internal buffer size to be used.
				 * @param os 
				 * @param def 
				 * @param bsize 
				 */
				constructor(os: java.io.OutputStream, def: java.util.zip.Deflater, bsize: number);
				static class: java.lang.Class<java.util.zip.DeflaterOutputStream>;
				/**
				 * Compress the data in the input buffer and write it to the underlying stream.
				 */
				protected deflate(): void;
				/**
				 * Writes any unwritten compressed data to the underlying stream, the closes all underlying streams. This stream can no longer be used after close() has been called.
				 */
				public close(): void;
				/**
				 * Writes any unwritten data to the underlying stream. Does not close the stream.
				 */
				public finish(): void;
				public write(i: number): void;
				/**
				 * Compresses byteCount bytes of data from buf starting at offset and writes it to the underlying stream. IOException If an error occurs during writing.
				 */
				public write(buffer: native.Array<number>, offset: number, byteCount: number): void;
				/**
				 * Flushes the underlying stream. This flushes only the bytes that can be compressed at the highest level.
				 */
				public flush(): void;
				/**
				 * Equivalent to write(buffer, 0, buffer.length).
				 */
				write(buffer: native.Array<number>): void;
			}
			/**
			 * An OutputStream filter to decompress data. Callers write compressed data in the "deflate" format, and uncompressed data is written to the underlying stream. 1.6
			 */
			export class InflaterOutputStream extends java.io.FilterOutputStream {
				/**
				 * Constructs an InflaterOutputStream with a new Inflater and an implementation-defined default internal buffer size. out is a destination for uncompressed data, and compressed data will be written to this stream.
				 * @param out the destination {@code OutputStream}
				 */
				constructor(out: java.io.OutputStream);
				/**
				 * Constructs an InflaterOutputStream with the given Inflater and an implementation-defined default internal buffer size. out is a destination for uncompressed data, and compressed data will be written to this stream.
				 * @param out the destination {@code OutputStream}
				 * @param inf the {@code Inflater} to be used for decompression
				 */
				constructor(out: java.io.OutputStream, inf: java.util.zip.Inflater);
				/**
				 * Constructs an InflaterOutputStream with the given Inflater and given internal buffer size. out is a destination for uncompressed data, and compressed data will be written to this stream.
				 * @param out the destination {@code OutputStream}
				 * @param inf the {@code Inflater} to be used for decompression
				 * @param bufferSize the length in bytes of the internal buffer
				 */
				constructor(out: java.io.OutputStream, inf: java.util.zip.Inflater, bufferSize: number);
				static class: java.lang.Class<java.util.zip.InflaterOutputStream>;
				/**
				 * Writes remaining data into the output stream and closes the underlying output stream.
				 */
				public close(): void;
				public flush(): void;
				/**
				 * Finishes writing current uncompressed data into the InflaterOutputStream without closing it.
				 */
				public finish(): void;
				/**
				 * Writes a byte to the decompressing output stream. b should be a byte of compressed input. The corresponding uncompressed data will be written to the underlying stream.
				 * @param b the byte
				 */
				public write(b: number): void;
				/**
				 * Writes to the decompressing output stream. The bytes array should contain compressed input. The corresponding uncompressed data will be written to the underlying stream.
				 */
				public write(bytes: native.Array<number>, offset: number, byteCount: number): void;
				/**
				 * Equivalent to write(buffer, 0, buffer.length).
				 */
				write(buffer: native.Array<number>): void;
			}
			/**
			 * This class decompresses data that was compressed using the <i>DEFLATE</i> algorithm (see <a href="http://www.gzip.org/algorithm.txt">specification</a>).
			 */
			export class Inflater extends java.lang.Object {
				/**
				 * This constructor creates an inflater that expects a header from the input stream. Use #Inflater(boolean) if the input comes without a ZLIB header.
				 */
				constructor();
				/**
				 * This constructor allows to create an inflater that expects no header from the input stream.
				 * @param noHeader 
				 */
				constructor(noHeader: boolean);
				static class: java.lang.Class<java.util.zip.Inflater>;
				/**
				 * Releases resources associated with this Inflater. Any unused input or output is discarded. This method should be called explicitly in order to free native resources as soon as possible. After end() is called, other methods will typically throw IllegalStateException.
				 */
				public end(): void;
				protected finalize(): void;
				/**
				 * Indicates if the Inflater has inflated the entire deflated stream. If deflated bytes remain and #needsInput returns true this method will return false. This method should be called after all deflated input is supplied to the Inflater.
				 */
				public finished(): boolean;
				/**
				 * Returns the Adler32 checksum of the bytes inflated so far, or the checksum of the preset dictionary if #needsDictionary returns true.
				 */
				public getAdler(): number;
				/**
				 * Returns the total number of bytes read by the Inflater. This method is the same as #getTotalIn except that it returns a long value instead of an integer.
				 */
				public getBytesRead(): any;
				/**
				 * Returns a the total number of bytes written by this Inflater. This method is the same as getTotalOut except it returns a long value instead of an integer.
				 */
				public getBytesWritten(): any;
				/**
				 * Returns the number of bytes of current input remaining to be read by this inflater.
				 */
				public getRemaining(): number;
				/**
				 * Returns the total number of bytes of input read by this Inflater. This method is limited to 32 bits; use #getBytesRead instead.
				 */
				public getTotalIn(): number;
				/**
				 * Returns the total number of bytes written to the output buffer by this Inflater. The method is limited to 32 bits; use #getBytesWritten instead.
				 */
				public getTotalOut(): number;
				/**
				 * Inflates bytes from the current input and stores them in buf.
				 * @param buf 
				 */
				public inflate(buf: native.Array<number>): number;
				/**
				 * Inflates up to byteCount bytes from the current input and stores them in buf starting at offset.
				 */
				public inflate(buf: native.Array<number>, offset: number, byteCount: number): number;
				/**
				 * Returns true if the input bytes were compressed with a preset dictionary. This method should be called if the first call to #inflate returns 0, to determine whether a dictionary is required. If so, #setDictionary should be called with the appropriate dictionary before calling inflate again. Use #getAdler to determine which dictionary is required.
				 */
				public needsDictionary(): boolean;
				/**
				 * Returns true if #setInput must be called before inflation can continue.
				 */
				public needsInput(): boolean;
				/**
				 * Resets this Inflater. Should be called prior to inflating a new set of data.
				 */
				public reset(): void;
				/**
				 * Sets the preset dictionary to be used for inflation to dictionary. See #needsDictionary for details.
				 */
				public setDictionary(dictionary: native.Array<number>): void;
				/**
				 * Sets the preset dictionary to be used for inflation to a subsequence of dictionary starting at offset and continuing for byteCount bytes. See #needsDictionary for details.
				 */
				public setDictionary(dictionary: native.Array<number>, offset: number, byteCount: number): void;
				/**
				 * Sets the current input to to be decompressed. This method should only be called if #needsInput returns true.
				 */
				public setInput(buf: native.Array<number>): void;
				/**
				 * Sets the current input to to be decompressed. This method should only be called if #needsInput returns true.
				 */
				public setInput(buf: native.Array<number>, offset: number, byteCount: number): void;
				setFileInput(fd: java.io.FileDescriptor, offset: number, byteCount: number): number;
			}
			/**
			 * The CheckedOutputStream class is used to maintain a running checksum of all data written to a stream. The purpose of this checksum is to establish data integrity, by publishing the checksum to other parties wanting to read the non corrupted data.
			 */
			export class CheckedOutputStream extends java.io.FilterOutputStream {
				/**
				 * Constructs a new CheckedOutputStream on OutputStream os. The checksum is calculated using the algorithm implemented by csum.
				 * @param os 
				 * @param cs 
				 */
				constructor(os: java.io.OutputStream, cs: java.util.zip.IChecksum);
				static class: java.lang.Class<java.util.zip.CheckedOutputStream>;
				/**
				 * Returns the checksum calculated on the stream read so far.
				 */
				public getChecksum(): java.util.zip.IChecksum;
				/**
				 * Writes the specified byte to the underlying stream. The checksum is updated with val.
				 * @param val 
				 */
				public write(val: number): void;
				/**
				 * Writes n bytes of data from buf starting at offset off to the underlying stream. The checksum is updated with the bytes written.
				 * @param buf 
				 * @param off 
				 * @param nbytes 
				 */
				public write(buf: native.Array<number>, off: number, nbytes: number): void;
				/**
				 * Equivalent to write(buffer, 0, buffer.length).
				 */
				write(buffer: native.Array<number>): void;
			}
			/**
			 * Thrown when an unrecoverable ZIP error has occurred. 1.6
			 */
			export class ZipError extends java.lang.InternalError {
				/**
				 * Constructs a ZipError with the given detail message.
				 */
				constructor(s: string);
				static class: java.lang.Class<java.util.zip.ZipError>;
			}
		}
		/**
		 * GregorianCalendar is a concrete subclass of Calendar and provides the standard calendar used by most of the world.
		 */
		export class GregorianCalendar extends java.util.Calendar {
			/**
			 * Constructs a new GregorianCalendar initialized to the current date and time with the default Locale and TimeZone.
			 */
			constructor();
			/**
			 * Constructs a new GregorianCalendar initialized to midnight in the default TimeZone and Locale on the specified date.
			 * @param year 
			 * @param month 
			 * @param day 
			 */
			constructor(year: number, month: number, day: number);
			/**
			 * Constructs a new GregorianCalendar initialized to the specified date and time in the default TimeZone and Locale.
			 * @param year 
			 * @param month 
			 * @param day 
			 * @param hour 
			 * @param minute 
			 */
			constructor(year: number, month: number, day: number, hour: number, minute: number);
			/**
			 * Constructs a new GregorianCalendar initialized to the specified date and time in the default TimeZone and Locale.
			 * @param year 
			 * @param month 
			 * @param day 
			 * @param hour 
			 * @param minute 
			 * @param second 
			 */
			constructor(year: number, month: number, day: number, hour: number, minute: number, second: number);
			/**
			 * Constructs a new GregorianCalendar initialized to the current date and time and using the specified Locale and the default TimeZone.
			 * @param locale 
			 */
			constructor(locale: java.util.Locale);
			/**
			 * Constructs a new GregorianCalendar initialized to the current date and time and using the specified TimeZone and the default Locale.
			 * @param timezone 
			 */
			constructor(timezone: java.util.TimeZone);
			/**
			 * Constructs a new GregorianCalendar initialized to the current date and time and using the specified TimeZone and Locale.
			 * @param timezone 
			 * @param locale 
			 */
			constructor(timezone: java.util.TimeZone, locale: java.util.Locale);
			/**
			 * Value for the BC era.
			 */
			static BC: number;
			/**
			 * Value for the AD era.
			 */
			static AD: number;
			static class: java.lang.Class<java.util.GregorianCalendar>;
			/**
			 * Adds the specified amount to a Calendar field.
			 * @param field 
			 * @param value 
			 */
			public add(field: number, value: number): void;
			protected computeFields(): void;
			protected computeTime(): void;
			/**
			 * Returns true if object is a GregorianCalendar with the same properties.
			 */
			public equals(object: any): boolean;
			public getActualMaximum(field: number): number;
			/**
			 * Gets the minimum value of the specified field for the current date. For the gregorian calendar, this value is the same as getMinimum().
			 * @param field 
			 */
			public getActualMinimum(field: number): number;
			/**
			 * Gets the greatest minimum value of the specified field. For the gregorian calendar, this value is the same as getMinimum().
			 * @param field 
			 */
			public getGreatestMinimum(field: number): number;
			/**
			 * Returns the gregorian change date of this calendar. This is the date on which the gregorian calendar came into effect.
			 */
			public getGregorianChange(): java.util.Date;
			/**
			 * Gets the smallest maximum value of the specified field. For example, 28 for the day of month field.
			 * @param field 
			 */
			public getLeastMaximum(field: number): number;
			/**
			 * Gets the greatest maximum value of the specified field. For example, 31 for the day of month field.
			 * @param field 
			 */
			public getMaximum(field: number): number;
			/**
			 * Gets the smallest minimum value of the specified field.
			 * @param field 
			 */
			public getMinimum(field: number): number;
			public hashCode(): number;
			/**
			 * Returns true if year is a leap year.
			 */
			public isLeapYear(year: number): boolean;
			/**
			 * Adds the specified amount the specified field and wraps the value of the field when it goes beyond the maximum or minimum value for the current date. Other fields will be adjusted as required to maintain a consistent date.
			 * @param field 
			 * @param value 
			 */
			public roll(field: number, value: number): void;
			/**
			 * Increments or decrements the specified field and wraps the value of the field when it goes beyond the maximum or minimum value for the current date. Other fields will be adjusted as required to maintain a consistent date. For example, March 31 will roll to April 30 when rolling the month field.
			 * @param field 
			 * @param increment 
			 */
			public roll(field: number, increment: boolean): void;
			/**
			 * Sets the gregorian change date of this calendar.
			 */
			public setGregorianChange(date: java.util.Date): void;
		}
		/**
		 * An ListIterator is used to sequence over a List of objects. ListIterator can move backwards or forwards through the list.
		 */
		interface IListIterator<E> {
			/**
			 * Inserts the specified object into the list between next and previous. The object inserted will be the previous object.
			 * @param object 
			 */
			add(object: E): void;
			/**
			 * Returns whether there are more elements to iterate.
			 */
			hasNext(): boolean;
			/**
			 * Returns whether there are previous elements to iterate.
			 */
			hasPrevious(): boolean;
			/**
			 * Returns the next object in the iteration.
			 */
			next(): E;
			/**
			 * Returns the index of the next object in the iteration.
			 */
			nextIndex(): number;
			/**
			 * Returns the previous object in the iteration.
			 */
			previous(): E;
			/**
			 * Returns the index of the previous object in the iteration.
			 */
			previousIndex(): number;
			/**
			 * Removes the last object returned by next or previous from the list.
			 */
			remove(): void;
			/**
			 * Replaces the last object returned by next or previous with the specified object.
			 * @param object 
			 */
			set(object: E): void;
		}
		/**
		 * RandomAccess is implemented by List implementations that support fast (usually constant time) random access.
		 */
		export class RandomAccess implements java.util.IRandomAccess {
			constructor(implementation: java.util.IRandomAccess);
		}
		/**
		 * An InputMismatchException is thrown by a scanner to indicate that the next token does not match or is out of range for the type specified in the pattern.
		 */
		export class InputMismatchException extends java.util.NoSuchElementException implements java.io.ISerializable {
			/**
			 * Constructs a new InputMismatchException with the current stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new InputMismatchException with the stack trace filled in and msg as its error message.
			 * @param msg 
			 */
			constructor(msg: string);
			static class: java.lang.Class<java.util.InputMismatchException>;
		}
		/**
		 * An IllegalFormatCodePointException will be thrown if an invalid Unicode code point (defined by Character#isValidCodePoint(int)) is passed as a parameter to a Formatter.
		 */
		export class IllegalFormatCodePointException extends java.util.IllegalFormatException implements java.io.ISerializable {
			/**
			 * Constructs a new IllegalFormatCodePointException which is specified by the invalid Unicode code point.
			 * @param c 
			 */
			constructor(c: number);
			static class: java.lang.Class<java.util.IllegalFormatCodePointException>;
			/**
			 * Returns the invalid Unicode code point.
			 */
			public getCodePoint(): number;
			public getMessage(): string;
		}
		/**
		 * A service-provider loader.
		 */
		export class ServiceLoader<S> extends java.lang.Object {
			static class: java.lang.Class<java.util.ServiceLoader<any>>;
			ServiceIterator: {
	new (sl: java.util.ServiceLoader<any>): java.util.ServiceLoader.ServiceIterator;
};
			/**
			 * Invalidates the cache of known service provider class names.
			 */
			public reload(): void;
			/**
			 * Returns an iterator over all the service providers offered by this service loader. Note that hasNext and next may throw if the configuration is invalid.
			 */
			public iterator(): java.util.IIterator<S>;
			/**
			 * Constructs a service loader. If classLoader is null, the system class loader is used.
			 * @param service the service class or interface
			 * @param classLoader the class loader
			 */
			public static load<S>(service: java.lang.Class<S>, classLoader: java.lang.ClassLoader): java.util.ServiceLoader<S>;
			/**
			 * Constructs a service loader, using the current thread's context class loader.
			 * @param service the service class or interface
			 */
			public static load<S>(service: java.lang.Class<S>): java.util.ServiceLoader<S>;
			/**
			 * Constructs a service loader, using the extension class loader.
			 * @param service the service class or interface
			 */
			public static loadInstalled<S>(service: java.lang.Class<S>): java.util.ServiceLoader<S>;
			public toString(): string;
		}
		export module ServiceLoader {
			export class ServiceIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.ServiceLoader.ServiceIterator>;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
		}
		export module regex {
			/**
			 * Patterns are compiled regular expressions. In many cases, convenience methods such as String#matches String.matches, String#replaceAll String.replaceAll and String#split String.split will be preferable, but if you need to do a lot of work with the same regular expression, it may be more efficient to compile it once and reuse it. The Pattern class and its companion, Matcher, also offer more functionality than the small amount exposed by String.
			 */
			export class Pattern extends java.lang.Object implements java.io.ISerializable {
				/**
				 * This constant specifies that a pattern matches Unix line endings ('\n') only against the '.', '^', and '$' meta characters. Corresponds to (?d).
				 */
				static UNIX_LINES: number;
				/**
				 * This constant specifies that a Pattern is matched case-insensitively. That is, the patterns "a+" and "A+" would both match the string "aAaAaA". See #UNICODE_CASE. Corresponds to (?i).
				 */
				static CASE_INSENSITIVE: number;
				/**
				 * This constant specifies that a Pattern may contain whitespace or comments. Otherwise comments and whitespace are taken as literal characters. Corresponds to (?x).
				 */
				static COMMENTS: number;
				/**
				 * This constant specifies that the meta characters '^' and '$' match only the beginning and end of an input line, respectively. Normally, they match the beginning and the end of the complete input. Corresponds to (?m).
				 */
				static MULTILINE: number;
				/**
				 * This constant specifies that the whole Pattern is to be taken literally, that is, all meta characters lose their meanings.
				 */
				static LITERAL: number;
				/**
				 * This constant specifies that the '.' meta character matches arbitrary characters, including line endings, which is normally not the case. Corresponds to (?s).
				 */
				static DOTALL: number;
				/**
				 * This constant specifies that a Pattern that uses case-insensitive matching will use Unicode case folding. On Android, UNICODE_CASE is always on: case-insensitive matching will always be Unicode-aware. If your code is intended to be portable and uses case-insensitive matching on non-ASCII characters, you should use this flag. Corresponds to (?u).
				 */
				static UNICODE_CASE: number;
				/**
				 * This constant specifies that a character in a Pattern and a character in the input string only match if they are canonically equivalent. It is (currently) not supported in Android.
				 */
				static CANON_EQ: number;
				static class: java.lang.Class<java.util.regex.Pattern>;
				/**
				 * Returns a Matcher for this pattern applied to the given input. The Matcher can be used to match the Pattern against the whole input, find occurrences of the Pattern in the input, or replace parts of the input.
				 */
				public matcher(input: string): java.util.regex.Matcher;
				/**
				 * Splits the given input at occurrences of this pattern.
				 * @param input limit
				 * @param limit 
				 */
				public split(input: string, limit: number): native.Array<string>;
				/**
				 * Equivalent to split(input, 0).
				 */
				public split(input: string): native.Array<string>;
				/**
				 * Returns the regular expression supplied to compile.
				 */
				public pattern(): string;
				public toString(): string;
				/**
				 * Returns the flags supplied to compile.
				 */
				public flags(): number;
				/**
				 * Returns a compiled form of the given regularExpression, as modified by the given flags. See the <a href="#flags">flags overview</a> for more on flags.
				 */
				public static compile(regularExpression: string, flags: number): java.util.regex.Pattern;
				/**
				 * Equivalent to Pattern.compile(pattern, 0).
				 */
				public static compile(pattern: string): java.util.regex.Pattern;
				/**
				 * Tests whether the given regularExpression matches the given input. Equivalent to Pattern.compile(regularExpression).matcher(input).matches(). If the same regular expression is to be used for multiple operations, it may be more efficient to reuse a compiled Pattern.
				 */
				public static matches(regularExpression: string, input: string): boolean;
				/**
				 * Quotes the given string using "\Q" and "\E", so that all meta-characters lose their special meaning. This method correctly escapes embedded instances of "\Q" or "\E". If the entire result is to be passed verbatim to #compile, it's usually clearer to use the #LITERAL flag instead.
				 */
				public static quote(string: string): string;
				protected finalize(): void;
			}
			/**
			 * The result of applying a Pattern to a given input. See Pattern for example uses.
			 */
			export class Matcher extends java.lang.Object implements java.util.regex.IMatchResult {
				static class: java.lang.Class<java.util.regex.Matcher>;
				/**
				 * Appends a literal part of the input plus a replacement for the current match to a given StringBuffer. The literal part is exactly the part of the input between the previous match and the current match. The method can be used in conjunction with #find() and #appendTail(StringBuffer) to walk through the input and replace all occurrences of the Pattern with something else.
				 * @param buffer 
				 * @param replacement 
				 */
				public appendReplacement(buffer: java.lang.StringBuffer, replacement: string): java.util.regex.Matcher;
				/**
				 * Resets the Matcher. This results in the region being set to the whole input. Results of a previous find get lost. The next attempt to find an occurrence of the Pattern in the string will start at the beginning of the input.
				 */
				public reset(): java.util.regex.Matcher;
				/**
				 * Provides a new input and resets the Matcher. This results in the region being set to the whole input. Results of a previous find get lost. The next attempt to find an occurrence of the Pattern in the string will start at the beginning of the input.
				 * @param input 
				 */
				public reset(input: string): java.util.regex.Matcher;
				/**
				 * Sets a new pattern for the Matcher. Results of a previous find get lost. The next attempt to find an occurrence of the Pattern in the string will start at the beginning of the input.
				 * @param pattern 
				 */
				public usePattern(pattern: java.util.regex.Pattern): java.util.regex.Matcher;
				/**
				 * Resets this matcher and sets a region. Only characters inside the region are considered for a match.
				 * @param start 
				 * @param end 
				 */
				public region(start: number, end: number): java.util.regex.Matcher;
				/**
				 * Appends the (unmatched) remainder of the input to the given StringBuffer. The method can be used in conjunction with #find() and #appendReplacement(StringBuffer, String) to walk through the input and replace all matches of the Pattern with something else.
				 * @param buffer 
				 */
				public appendTail(buffer: java.lang.StringBuffer): java.lang.StringBuffer;
				/**
				 * Replaces the first occurrence of this matcher's pattern in the input with a given string.
				 * @param replacement 
				 */
				public replaceFirst(replacement: string): string;
				/**
				 * Replaces all occurrences of this matcher's pattern in the input with a given string.
				 * @param replacement 
				 */
				public replaceAll(replacement: string): string;
				/**
				 * Returns the Pattern instance used inside this matcher.
				 */
				public pattern(): java.util.regex.Pattern;
				/**
				 * Returns the text that matched a given group of the regular expression. Explicit capturing groups in the pattern are numbered left to right in order of their <i>opening</i> parenthesis, starting at 1. The special group 0 represents the entire match (as if the entire pattern is surrounded by an implicit capturing group). For example, "a((b)c)" matching "abc" would give the following groups: <pre> 0 "abc" 1 "bc" 2 "b" </pre>
				 */
				public group(group: number): string;
				/**
				 * Returns the text that matched the whole regular expression.
				 */
				public group(): string;
				/**
				 * Returns true if there is another match in the input, starting from the given position. The region is ignored.
				 */
				public find(start: number): boolean;
				/**
				 * Returns the next occurrence of the Pattern in the input. If a previous match was successful, the method continues the search from the first character following that match in the input. Otherwise it searches either from the region start (if one has been set), or from position 0.
				 */
				public find(): boolean;
				/**
				 * Tries to match the Pattern, starting from the beginning of the region (or the beginning of the input, if no region has been set). Doesn't require the Pattern to match against the whole region.
				 */
				public lookingAt(): boolean;
				/**
				 * Tries to match the Pattern against the entire region (or the entire input, if no region has been set).
				 */
				public matches(): boolean;
				/**
				 * Returns the index of the first character of the text that matched a given group.
				 * @param group 
				 */
				public start(group: number): number;
				/**
				 * Returns the index of the first character following the text that matched a given group.
				 * @param group 
				 */
				public end(group: number): number;
				/**
				 * Returns a replacement string for the given one that has all backslashes and dollar signs escaped.
				 * @param s 
				 */
				public static quoteReplacement(s: string): string;
				/**
				 * Returns the index of the first character of the text that matched the whole regular expression.
				 */
				public start(): number;
				/**
				 * Returns the number of groups in the results, which is always equal to the number of groups in the original regular expression.
				 */
				public groupCount(): number;
				/**
				 * Returns the index of the first character following the text that matched the whole regular expression.
				 */
				public end(): number;
				/**
				 * Converts the current match into a separate MatchResult instance that is independent from this matcher. The new object is unaffected when the state of this matcher changes.
				 */
				public toMatchResult(): java.util.regex.IMatchResult;
				/**
				 * Determines whether this matcher has anchoring bounds enabled or not. When anchoring bounds are enabled, the start and end of the input match the '^' and '$' meta-characters, otherwise not. Anchoring bounds are enabled by default.
				 * @param value 
				 */
				public useAnchoringBounds(value: boolean): java.util.regex.Matcher;
				/**
				 * Indicates whether this matcher has anchoring bounds enabled. When anchoring bounds are enabled, the start and end of the input match the '^' and '$' meta-characters, otherwise not. Anchoring bounds are enabled by default.
				 */
				public hasAnchoringBounds(): boolean;
				/**
				 * Determines whether this matcher has transparent bounds enabled or not. When transparent bounds are enabled, the parts of the input outside the region are subject to lookahead and lookbehind, otherwise they are not. Transparent bounds are disabled by default.
				 * @param value 
				 */
				public useTransparentBounds(value: boolean): java.util.regex.Matcher;
				/**
				 * Indicates whether this matcher has transparent bounds enabled. When transparent bounds are enabled, the parts of the input outside the region are subject to lookahead and lookbehind, otherwise they are not. Transparent bounds are disabled by default.
				 */
				public hasTransparentBounds(): boolean;
				/**
				 * Returns this matcher's region start, that is, the first character that is considered for a match.
				 */
				public regionStart(): number;
				/**
				 * Returns this matcher's region end, that is, the first character that is not considered for a match.
				 */
				public regionEnd(): number;
				/**
				 * Indicates whether more input might change a successful match into an unsuccessful one.
				 */
				public requireEnd(): boolean;
				/**
				 * Indicates whether the last match hit the end of the input.
				 */
				public hitEnd(): boolean;
				protected finalize(): void;
			}
			/**
			 * Holds the results of a successful match of a regular expression against a given string. Only used internally, thus sparsely documented (though the defining public interface has full documentation).
			 */
			export class MatchResultImpl extends java.lang.Object implements java.util.regex.IMatchResult {
				static class: java.lang.Class<java.util.regex.MatchResultImpl>;
				public end(): number;
				public end(group: number): number;
				public group(): string;
				public group(group: number): string;
				public groupCount(): number;
				public start(): number;
				public start(group: number): number;
			}
			/**
			 * Holds the results of a successful match of a Pattern against a given string. The result is divided into groups, with one group for each pair of parentheses in the regular expression and an additional group for the whole regular expression. The start, end, and contents of each group can be queried.
			 */
			export class MatchResult implements java.util.regex.IMatchResult {
				constructor(implementation: java.util.regex.IMatchResult);
				/**
				 * Returns the index of the first character following the text that matched the whole regular expression.
				 */
				public end(): number;
				/**
				 * Returns the index of the first character following the text that matched a given group.
				 * @param group 
				 */
				public end(group: number): number;
				/**
				 * Returns the text that matched the whole regular expression.
				 */
				public group(): string;
				/**
				 * Returns the text that matched a given group of the regular expression.
				 * @param group 
				 */
				public group(group: number): string;
				/**
				 * Returns the number of groups in the result, which is always equal to the number of groups in the original regular expression.
				 */
				public groupCount(): number;
				/**
				 * Returns the index of the first character of the text that matched the whole regular expression.
				 */
				public start(): number;
				/**
				 * Returns the index of the first character of the text that matched a given group.
				 * @param group 
				 */
				public start(group: number): number;
			}
			/**
			 * Holds the results of a successful match of a Pattern against a given string. The result is divided into groups, with one group for each pair of parentheses in the regular expression and an additional group for the whole regular expression. The start, end, and contents of each group can be queried.
			 */
			interface IMatchResult {
				/**
				 * Returns the index of the first character following the text that matched the whole regular expression.
				 */
				end(): number;
				/**
				 * Returns the index of the first character following the text that matched a given group.
				 * @param group 
				 */
				end(group: number): number;
				/**
				 * Returns the text that matched the whole regular expression.
				 */
				group(): string;
				/**
				 * Returns the text that matched a given group of the regular expression.
				 * @param group 
				 */
				group(group: number): string;
				/**
				 * Returns the number of groups in the result, which is always equal to the number of groups in the original regular expression.
				 */
				groupCount(): number;
				/**
				 * Returns the index of the first character of the text that matched the whole regular expression.
				 */
				start(): number;
				/**
				 * Returns the index of the first character of the text that matched a given group.
				 * @param group 
				 */
				start(group: number): number;
			}
			/**
			 * Encapsulates a syntax error that occurred during the compilation of a Pattern. Might include a detailed description, the original regular expression, and the index at which the error occurred.
			 */
			export class PatternSyntaxException extends java.lang.IllegalArgumentException {
				/**
				 * Creates a new PatternSyntaxException for a given message, pattern, and error index.
				 * @param description 
				 * @param pattern 
				 * @param index 
				 */
				constructor(description: string, pattern: string, index: number);
				static class: java.lang.Class<java.util.regex.PatternSyntaxException>;
				/**
				 * Returns the syntactically incorrect regular expression.
				 */
				public getPattern(): string;
				/**
				 * Returns a detailed error message for the exception. The message is potentially multi-line, and it might include a detailed description, the original regular expression, and the index at which the error occurred.
				 */
				public getMessage(): string;
				/**
				 * Returns the description of the syntax error, or null if the description is not known.
				 */
				public getDescription(): string;
				/**
				 * Returns the character index around which the error occurred, or -1 if the index is not known.
				 */
				public getIndex(): number;
			}
		}
		/**
		 * TimeZone represents a time zone, primarily used for configuring a Calendar or java.text.SimpleDateFormat instance.
		 */
		export class TimeZone extends java.lang.Object implements java.io.ISerializable, java.lang.ICloneable {
			constructor();
			/**
			 * The short display name style, such as PDT. Requests for this style may yield GMT offsets like GMT-08:00.
			 */
			static SHORT: number;
			/**
			 * The long display name style, such as Pacific Daylight Time. Requests for this style may yield GMT offsets like GMT-08:00.
			 */
			static LONG: number;
			static class: java.lang.Class<java.util.TimeZone>;
			/**
			 * Returns a new time zone with the same ID, raw offset, and daylight savings time rules as this time zone.
			 */
			public clone(): any;
			/**
			 * Returns the system's installed time zone IDs. Any of these IDs can be passed to #getTimeZone to lookup the corresponding time zone instance.
			 */
			public static getAvailableIDs(): native.Array<string>;
			/**
			 * Returns the IDs of the time zones whose offset from UTC is offsetMillis. Any of these IDs can be passed to #getTimeZone to lookup the corresponding time zone instance.
			 */
			public static getAvailableIDs(offsetMillis: number): native.Array<string>;
			/**
			 * Returns the user's preferred time zone. This may have been overridden for this process with #setDefault.
			 */
			public static getDefault(): java.util.TimeZone;
			/**
			 * Equivalent to getDisplayName(false, TimeZone.LONG, Locale.getDefault()). <a href="../util/Locale.html#default_locale">Be wary of the default locale</a>.
			 */
			public getDisplayName(): string;
			/**
			 * Equivalent to getDisplayName(false, TimeZone.LONG, locale).
			 */
			public getDisplayName(locale: java.util.Locale): string;
			/**
			 * Equivalent to getDisplayName(daylightTime, style, Locale.getDefault()). <a href="../util/Locale.html#default_locale">Be wary of the default locale</a>.
			 */
			public getDisplayName(daylightTime: boolean, style: number): string;
			/**
			 * Returns the #SHORT short or #LONG long name of this time zone with either standard or daylight time, as written in locale. If the name is not available, the result is in the format GMT[+-]hh:mm.
			 * @param daylightTime true for daylight time, false for standard time.
			 * @param style either {@link TimeZone#LONG} or {@link TimeZone#SHORT}.
			 * @param locale the display locale.
			 */
			public getDisplayName(daylightTime: boolean, style: number, locale: java.util.Locale): string;
			/**
			 * Returns the ID of this TimeZone, such as America/Los_Angeles, GMT-08:00 or UTC.
			 */
			public getID(): string;
			/**
			 * Returns the latest daylight savings in milliseconds for this time zone, relative to this time zone's regular UTC offset (as returned by #getRawOffset).
			 */
			public getDSTSavings(): number;
			/**
			 * Returns the offset in milliseconds from UTC for this time zone at time. The offset includes daylight savings time if the specified date is within the daylight savings time period.
			 * @param time the date in milliseconds since January 1, 1970 00:00:00 UTC
			 */
			public getOffset(time: number): number;
			/**
			 * Returns this time zone's offset in milliseconds from UTC at the specified date and time. The offset includes daylight savings time if the date and time is within the daylight savings time period.
			 */
			public getOffset(era: number, year: number, month: number, day: number, dayOfWeek: number, timeOfDayMillis: number): number;
			/**
			 * Returns the offset in milliseconds from UTC of this time zone's standard time.
			 */
			public getRawOffset(): number;
			/**
			 * Returns a TimeZone corresponding to the given id, or GMT for unknown ids.
			 */
			public static getTimeZone(id: string): java.util.TimeZone;
			/**
			 * Returns true if timeZone has the same rules as this time zone.
			 */
			public hasSameRules(timeZone: java.util.TimeZone): boolean;
			/**
			 * Returns true if time is in a daylight savings time period for this time zone.
			 */
			public inDaylightTime(time: java.util.Date): boolean;
			/**
			 * Overrides the default time zone for the current process only.
			 * @param timeZone a custom time zone, or {@code null} to set the default to
			 */
			public static setDefault(timeZone: java.util.TimeZone): void;
			/**
			 * Sets the ID of this TimeZone.
			 */
			public setID(id: string): void;
			/**
			 * Sets the offset in milliseconds from UTC of this time zone's standard time.
			 */
			public setRawOffset(offsetMillis: number): void;
			/**
			 * Returns true if this time zone has a future transition to or from daylight savings time.
			 */
			public useDaylightTime(): boolean;
		}
		/**
		 * A map that has its keys ordered. The sorting is according to either the natural ordering of its keys or the ordering given by a specified comparator.
		 */
		export class SortedMap<K, V> implements java.util.ISortedMap<K, V> {
			constructor(implementation: java.util.ISortedMap<K, V>);
			/**
			 * Returns the comparator used to compare keys in this sorted map.
			 */
			public comparator(): java.util.IComparator<any>;
			/**
			 * Returns the first key in this sorted map.
			 */
			public firstKey(): K;
			/**
			 * Returns a sorted map over a range of this sorted map with all keys that are less than the specified endKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.
			 * @param endKey 
			 */
			public headMap(endKey: K): java.util.ISortedMap<K, V>;
			/**
			 * Returns the last key in this sorted map.
			 */
			public lastKey(): K;
			/**
			 * Returns a sorted map over a range of this sorted map with all keys greater than or equal to the specified startKey and less than the specified endKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.
			 * @param startKey 
			 * @param endKey 
			 */
			public subMap(startKey: K, endKey: K): java.util.ISortedMap<K, V>;
			/**
			 * Returns a sorted map over a range of this sorted map with all keys that are greater than or equal to the specified startKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.
			 * @param startKey 
			 */
			public tailMap(startKey: K): java.util.ISortedMap<K, V>;
		}
		/**
		 * A concrete EnumSet for enums with 64 or fewer elements.
		 */
		export class MiniEnumSet<E> extends java.util.EnumSet<E> {
			static class: java.lang.Class<java.util.MiniEnumSet<any>>;
			public iterator(): java.util.IIterator<E>;
			public size(): number;
			public clear(): void;
			public add(element: E): boolean;
			public addAll(collection: java.util.ICollection<any>): boolean;
			public contains(object: any): boolean;
			public containsAll(collection: java.util.ICollection<any>): boolean;
			public removeAll(collection: java.util.ICollection<any>): boolean;
			public retainAll(collection: java.util.ICollection<any>): boolean;
			public remove(object: any): boolean;
			public equals(object: any): boolean;
			complement(): void;
			setRange(start: E, end: E): void;
		}
		export module MiniEnumSet {
			export class MiniEnumSetIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.MiniEnumSet.MiniEnumSetIterator>;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
		}
		export module logging {
			/**
			 * An error reporting facility for Handler implementations to record any error that may happen during logging. Handlers should report errors to an ErrorManager, instead of throwing exceptions, which would interfere with the log issuer's execution.
			 */
			export class ErrorManager extends java.lang.Object {
				/**
				 * Constructs an instance of ErrorManager.
				 */
				constructor();
				/**
				 * The error code indicating a failure that does not fit in any of the specific types of failures that follow.
				 */
				static GENERIC_FAILURE: number;
				/**
				 * The error code indicating a failure when writing to an output stream.
				 */
				static WRITE_FAILURE: number;
				/**
				 * The error code indicating a failure when flushing an output stream.
				 */
				static FLUSH_FAILURE: number;
				/**
				 * The error code indicating a failure when closing an output stream.
				 */
				static CLOSE_FAILURE: number;
				/**
				 * The error code indicating a failure when opening an output stream.
				 */
				static OPEN_FAILURE: number;
				/**
				 * The error code indicating a failure when formatting the error messages.
				 */
				static FORMAT_FAILURE: number;
				static class: java.lang.Class<java.util.logging.ErrorManager>;
				/**
				 * Reports an error using the given message, exception and error code. This implementation will write out the message to System#err on the first call and all subsequent calls are ignored. A subclass of this class should override this method.
				 * @param message 
				 * @param exception 
				 * @param errorCode 
				 */
				public error(message: string, exception: java.lang.Exception, errorCode: number): void;
			}
			/**
			 * Formatter to convert a LogRecord into an XML string. The DTD specified in Appendix A to the Java Logging APIs specification is used. XMLFormatter uses the output handler's encoding if it is specified, otherwise the default platform encoding is used instead. UTF-8 is the recommended encoding.
			 */
			export class XMLFormatter extends java.util.logging.Formatter {
				/**
				 * Constructs a new XMLFormatter.
				 */
				constructor();
				static class: java.lang.Class<java.util.logging.XMLFormatter>;
				/**
				 * Converts a LogRecord into an XML string.
				 * @param r 
				 */
				public format(r: java.util.logging.LogRecord): string;
				/**
				 * Returns the header string for a set of log records formatted as XML strings, using the output handler's encoding if it is defined, otherwise using the default platform encoding.
				 * @param h 
				 */
				public getHead(h: java.util.logging.Handler): string;
				/**
				 * Returns the tail string for a set of log records formatted as XML strings.
				 * @param h 
				 */
				public getTail(h: java.util.logging.Handler): string;
			}
			/**
			 * Formatter objects are used to format LogRecord objects into a string representation. Head and tail strings are sometimes used to wrap a set of records. The getHead and getTail methods are used for this purpose.
			 */
			export class Formatter extends java.lang.Object {
				static class: java.lang.Class<java.util.logging.Formatter>;
				/**
				 * Converts a LogRecord object into a string representation. The resulted string is usually localized and includes the message field of the record.
				 * @param r 
				 */
				public format(r: java.util.logging.LogRecord): string;
				/**
				 * Formats a LogRecord object into a localized string representation. This is a convenience method for subclasses of Formatter.
				 * @param r 
				 */
				public formatMessage(r: java.util.logging.LogRecord): string;
				/**
				 * Gets the head string used to wrap a set of log records. This base class always returns an empty string.
				 * @param h 
				 */
				public getHead(h: java.util.logging.Handler): string;
				/**
				 * Gets the tail string used to wrap a set of log records. This base class always returns the empty string.
				 * @param h 
				 */
				public getTail(h: java.util.logging.Handler): string;
			}
			/**
			 * A handler that writes log messages to a socket connection.
			 */
			export class SocketHandler extends java.util.logging.StreamHandler {
				/**
				 * Constructs a SocketHandler object using the properties read by the log manager, including the host name and port number. Default formatting uses the XMLFormatter class and level is set to ALL.
				 */
				constructor();
				/**
				 * Constructs a SocketHandler object using the specified host name and port number together with other properties read by the log manager. Default formatting uses the XMLFormatter class and level is set to ALL.
				 * @param host 
				 * @param port 
				 */
				constructor(host: string, port: number);
				static class: java.lang.Class<java.util.logging.SocketHandler>;
				/**
				 * Closes this handler. The network connection to the host is also closed.
				 */
				public close(): void;
				/**
				 * Logs a record if necessary. A flush operation will be done afterwards.
				 * @param record 
				 */
				public publish(record: java.util.logging.LogRecord): void;
				/**
				 * Closes this handler, but the underlying output stream is only closed if closeStream is true. Security is not checked.
				 * @param closeStream 
				 */
				close(closeStream: boolean): void;
			}
			/**
			 * SimpleFormatter can be used to print a summary of the information contained in a LogRecord object in a human readable format.
			 */
			export class SimpleFormatter extends java.util.logging.Formatter {
				/**
				 * Constructs a new SimpleFormatter.
				 */
				constructor();
				static class: java.lang.Class<java.util.logging.SimpleFormatter>;
				/**
				 * Converts a LogRecord object into a human readable string representation.
				 * @param r 
				 */
				public format(r: java.util.logging.LogRecord): string;
			}
			/**
			 * A Handler object accepts a logging request and exports the desired messages to a target, for example, a file, the console, etc. It can be disabled by setting its logging level to Level.OFF.
			 */
			export class Handler extends java.lang.Object {
				static class: java.lang.Class<java.util.logging.Handler>;
				printInvalidPropMessage(key: string, value: string, e: java.lang.Exception): void;
				/**
				 * init the common properties, including filter, level, formatter, and encoding
				 */
				initProperties(defaultLevel: string, defaultFilter: string, defaultFormatter: string, defaultEncoding: string): void;
				/**
				 * Closes this handler. A flush operation will be performed and all the associated resources will be freed. Client applications should not use this handler after closing it.
				 */
				public close(): void;
				/**
				 * Flushes any buffered output.
				 */
				public flush(): void;
				/**
				 * Accepts a logging request and sends it to the the target.
				 * @param record 
				 */
				public publish(record: java.util.logging.LogRecord): void;
				/**
				 * Gets the character encoding used by this handler, null for default encoding.
				 */
				public getEncoding(): string;
				/**
				 * Gets the error manager used by this handler to report errors during logging.
				 */
				public getErrorManager(): java.util.logging.ErrorManager;
				/**
				 * Gets the filter used by this handler.
				 */
				public getFilter(): java.util.logging.IFilter;
				/**
				 * Gets the formatter used by this handler to format the logging messages.
				 */
				public getFormatter(): java.util.logging.Formatter;
				/**
				 * Gets the logging level of this handler, records with levels lower than this value will be dropped.
				 */
				public getLevel(): java.util.logging.Level;
				/**
				 * Determines whether the supplied log record needs to be logged. The logging levels will be checked as well as the filter.
				 * @param record 
				 */
				public isLoggable(record: java.util.logging.LogRecord): boolean;
				/**
				 * Reports an error to the error manager associated with this handler, ErrorManager is used for that purpose. No security checks are done, therefore this is compatible with environments where the caller is non-privileged.
				 * @param msg 
				 * @param ex 
				 * @param code 
				 */
				protected reportError(msg: string, ex: java.lang.Exception, code: number): void;
				/**
				 * Sets the character encoding used by this handler. A null value indicates the use of the default encoding. This internal method does not check security.
				 * @param newEncoding 
				 */
				internalSetEncoding(newEncoding: string): void;
				/**
				 * Sets the character encoding used by this handler, null indicates a default encoding.
				 * @param encoding 
				 */
				public setEncoding(encoding: string): void;
				/**
				 * Sets the error manager for this handler.
				 * @param newErrorManager 
				 */
				public setErrorManager(newErrorManager: java.util.logging.ErrorManager): void;
				/**
				 * Sets the filter to be used by this handler.
				 * @param newFilter 
				 */
				public setFilter(newFilter: java.util.logging.IFilter): void;
				/**
				 * Sets the formatter to be used by this handler. This internal method does not check security.
				 * @param newFormatter 
				 */
				internalSetFormatter(newFormatter: java.util.logging.Formatter): void;
				/**
				 * Sets the formatter to be used by this handler.
				 * @param newFormatter 
				 */
				public setFormatter(newFormatter: java.util.logging.Formatter): void;
				/**
				 * Sets the logging level of the messages logged by this handler, levels lower than this value will be dropped.
				 * @param newLevel 
				 */
				public setLevel(newLevel: java.util.logging.Level): void;
			}
			/**
			 * A Handler put the description of log events into a cycled memory buffer.
			 */
			export class MemoryHandler extends java.util.logging.Handler {
				/**
				 * Default constructor, construct and init a MemoryHandler using LogManager properties or default values.
				 */
				constructor();
				/**
				 * Construct and init a MemoryHandler using given target, size and push level, other properties using LogManager properties or default values.
				 * @param target 
				 * @param size 
				 * @param pushLevel 
				 */
				constructor(target: java.util.logging.Handler, size: number, pushLevel: java.util.logging.Level);
				static class: java.lang.Class<java.util.logging.MemoryHandler>;
				/**
				 * Close this handler and target handler, free all associated resources.
				 */
				public close(): void;
				/**
				 * Call target handler to flush any buffered output. Note that this doesn't cause this MemoryHandler to push.
				 */
				public flush(): void;
				/**
				 * Put a given LogRecord into internal buffer. If given record is not loggable, just return. Otherwise it is stored in the buffer. Furthermore if the record's level is not less than the push level, the push action is triggered to output all the buffered records to the target handler, and the target handler will publish them.
				 * @param record 
				 */
				public publish(record: java.util.logging.LogRecord): void;
				/**
				 * Return the push level.
				 */
				public getPushLevel(): java.util.logging.Level;
				/**
				 * Check if given LogRecord would be put into this MemoryHandler's internal buffer.
				 * @param record 
				 */
				public isLoggable(record: java.util.logging.LogRecord): boolean;
				/**
				 * Triggers a push action to output all buffered records to the target handler, and the target handler will publish them. Then the buffer is cleared.
				 */
				public push(): void;
				/**
				 * Set the push level. The push level is used to check the push action triggering. When a new LogRecord is put into the internal buffer and its level is not less than the push level, the push action will be triggered. Note that set new push level won't trigger push action.
				 * @param newLevel 
				 */
				public setPushLevel(newLevel: java.util.logging.Level): void;
			}
			/**
			 * Loggers are used to log records to a variety of destinations such as log files or the console. They use instances of Handler to actually do the destination-specific operations.
			 */
			export class Logger extends java.lang.Object {
				/**
				 * The name of the global logger. Before using this, see the discussion of how to use Logger in the class documentation. 1.6
				 */
				static GLOBAL_LOGGER_NAME: string;
				/**
				 * The global logger is provided as convenience for casual use. deadlock-prone. Use Logger.getLogger(Logger.GLOBAL_LOGGER_NAME) as a direct replacement, but see the discussion of how to use Logger in the class documentation.
				 */
				static global: java.util.logging.Logger;
				static class: java.lang.Class<java.util.logging.Logger>;
				/**
				 * We've optimized for the common case: logging to a single handler that implements DalvikLogHandler. This is how Android framework applications are configured by default.
				 */
				updateDalvikLogHandler(): void;
				/**
				 * Load the specified resource bundle, use privileged code.
				 * @param resourceBundleName 
				 */
				static loadResourceBundle(resourceBundleName: string): java.util.ResourceBundle;
				/**
				 * Gets an anonymous logger to use internally in a thread. Anonymous loggers are not registered in the log manager's namespace. No security checks will be performed when updating an anonymous logger's control settings.
				 */
				public static getAnonymousLogger(): java.util.logging.Logger;
				/**
				 * Gets an anonymous logger to use internally in a thread. Anonymous loggers are not registered in the log manager's namespace. No security checks will be performed when updating an anonymous logger's control settings.
				 * @param resourceBundleName 
				 */
				public static getAnonymousLogger(resourceBundleName: string): java.util.logging.Logger;
				/**
				 * Gets a named logger. The returned logger may already exist or may be newly created. In the latter case, its level will be set to the configured level according to the LogManager's properties.
				 * @param name 
				 */
				public static getLogger(name: string): java.util.logging.Logger;
				/**
				 * Gets a named logger associated with the supplied resource bundle. The resource bundle will be used to localize logging messages.
				 * @param name 
				 * @param resourceBundleName 
				 */
				public static getLogger(name: string, resourceBundleName: string): java.util.logging.Logger;
				/**
				 * Adds a handler to this logger. The name will be fed with log records received by this logger.
				 * @param handler 
				 */
				public addHandler(handler: java.util.logging.Handler): void;
				/**
				 * Set the logger's manager and initializes its configuration from the manager's properties.
				 */
				setManager(manager: java.util.logging.LogManager): void;
				/**
				 * Gets all the handlers associated with this logger.
				 */
				public getHandlers(): native.Array<java.util.logging.Handler>;
				/**
				 * Removes a handler from this logger. If the specified handler does not exist then this method has no effect.
				 * @param handler 
				 */
				public removeHandler(handler: java.util.logging.Handler): void;
				/**
				 * Gets the filter used by this logger.
				 */
				public getFilter(): java.util.logging.IFilter;
				/**
				 * Sets the filter used by this logger.
				 * @param newFilter 
				 */
				public setFilter(newFilter: java.util.logging.IFilter): void;
				/**
				 * Gets the logging level of this logger. A null level indicates that this logger inherits its parent's level.
				 */
				public getLevel(): java.util.logging.Level;
				/**
				 * Sets the logging level for this logger. A null level indicates that this logger will inherit its parent's level.
				 * @param newLevel 
				 */
				public setLevel(newLevel: java.util.logging.Level): void;
				/**
				 * Gets the flag which indicates whether to use the handlers of this logger's parent to publish incoming log records, potentially recursively up the namespace.
				 */
				public getUseParentHandlers(): boolean;
				/**
				 * Sets the flag which indicates whether to use the handlers of this logger's parent, potentially recursively up the namespace.
				 * @param notifyParentHandlers 
				 */
				public setUseParentHandlers(notifyParentHandlers: boolean): void;
				/**
				 * Gets the nearest parent of this logger in the namespace, a null value will be returned if called on the root logger.
				 */
				public getParent(): java.util.logging.Logger;
				/**
				 * Sets the parent of this logger in the namespace. This method should be used by the LogManager object only.
				 * @param parent 
				 */
				public setParent(parent: java.util.logging.Logger): void;
				/**
				 * Gets the name of this logger, null for anonymous loggers.
				 */
				public getName(): string;
				/**
				 * Gets the loaded resource bundle used by this logger to localize logging messages. If the value is null, the parent's resource bundle will be inherited.
				 */
				public getResourceBundle(): java.util.ResourceBundle;
				/**
				 * Gets the name of the loaded resource bundle used by this logger to localize logging messages. If the value is null, the parent's resource bundle name will be inherited.
				 */
				public getResourceBundleName(): string;
				/**
				 * Determines whether this logger will actually log messages of the specified level. The effective level used to do the determination may be inherited from its parent. The default level is Level.INFO.
				 * @param l 
				 */
				public isLoggable(l: java.util.logging.Level): boolean;
				/**
				 * Logs a message indicating that a method has been entered. A log record with log level Level.FINER, log message "ENTRY", the specified source class name and source method name is submitted for logging.
				 * @param sourceClass 
				 * @param sourceMethod 
				 */
				public entering(sourceClass: string, sourceMethod: string): void;
				/**
				 * Logs a message indicating that a method has been entered. A log record with log level Level.FINER, log message "ENTRY", the specified source class name, source method name and one parameter is submitted for logging.
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param param 
				 */
				public entering(sourceClass: string, sourceMethod: string, param: any): void;
				/**
				 * Logs a message indicating that a method has been entered. A log record with log level Level.FINER, log message "ENTRY", the specified source class name, source method name and array of parameters is submitted for logging.
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param params 
				 */
				public entering(sourceClass: string, sourceMethod: string, params: native.Array<any>): void;
				/**
				 * Logs a message indicating that a method is exited. A log record with log level Level.FINER, log message "RETURN", the specified source class name and source method name is submitted for logging.
				 * @param sourceClass 
				 * @param sourceMethod 
				 */
				public exiting(sourceClass: string, sourceMethod: string): void;
				/**
				 * Logs a message indicating that a method is exited. A log record with log level Level.FINER, log message "RETURN", the specified source class name, source method name and return value is submitted for logging.
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param result 
				 */
				public exiting(sourceClass: string, sourceMethod: string, result: any): void;
				/**
				 * Logs a message indicating that an exception is thrown. A log record with log level Level.FINER, log message "THROW", the specified source class name, source method name and the Throwable object is submitted for logging.
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param thrown 
				 */
				public throwing(sourceClass: string, sourceMethod: string, thrown: java.lang.Throwable): void;
				/**
				 * Logs a message of level Level.SEVERE; the message is transmitted to all subscribed handlers.
				 * @param msg 
				 */
				public severe(msg: string): void;
				/**
				 * Logs a message of level Level.WARNING; the message is transmitted to all subscribed handlers.
				 * @param msg 
				 */
				public warning(msg: string): void;
				/**
				 * Logs a message of level Level.INFO; the message is transmitted to all subscribed handlers.
				 * @param msg 
				 */
				public info(msg: string): void;
				/**
				 * Logs a message of level Level.CONFIG; the message is transmitted to all subscribed handlers.
				 * @param msg 
				 */
				public config(msg: string): void;
				/**
				 * Logs a message of level Level.FINE; the message is transmitted to all subscribed handlers.
				 * @param msg 
				 */
				public fine(msg: string): void;
				/**
				 * Logs a message of level Level.FINER; the message is transmitted to all subscribed handlers.
				 * @param msg 
				 */
				public finer(msg: string): void;
				/**
				 * Logs a message of level Level.FINEST; the message is transmitted to all subscribed handlers.
				 * @param msg 
				 */
				public finest(msg: string): void;
				/**
				 * Logs a message of the specified level. The message is transmitted to all subscribed handlers.
				 * @param logLevel 
				 * @param msg 
				 */
				public log(logLevel: java.util.logging.Level, msg: string): void;
				/**
				 * Logs a message of the specified level with the supplied parameter. The message is then transmitted to all subscribed handlers.
				 * @param logLevel 
				 * @param msg 
				 * @param param 
				 */
				public log(logLevel: java.util.logging.Level, msg: string, param: any): void;
				/**
				 * Logs a message of the specified level with the supplied parameter array. The message is then transmitted to all subscribed handlers.
				 * @param logLevel 
				 * @param msg 
				 * @param params 
				 */
				public log(logLevel: java.util.logging.Level, msg: string, params: native.Array<any>): void;
				/**
				 * Logs a message of the specified level with the supplied Throwable object. The message is then transmitted to all subscribed handlers.
				 * @param logLevel 
				 * @param msg 
				 * @param thrown 
				 */
				public log(logLevel: java.util.logging.Level, msg: string, thrown: java.lang.Throwable): void;
				/**
				 * Logs a given log record. Only records with a logging level that is equal or greater than this logger's level will be submitted to this logger's handlers for logging. If getUseParentHandlers() returns true, the log record will also be submitted to the handlers of this logger's parent, potentially recursively up the namespace.
				 * @param record 
				 */
				public log(record: java.util.logging.LogRecord): void;
				/**
				 * Logs a message of the given level with the specified source class name and source method name.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param msg 
				 */
				public logp(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, msg: string): void;
				/**
				 * Logs a message of the given level with the specified source class name, source method name and parameter.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param msg 
				 * @param param 
				 */
				public logp(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, msg: string, param: any): void;
				/**
				 * Logs a message of the given level with the specified source class name, source method name and parameter array.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param msg 
				 * @param params 
				 */
				public logp(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, msg: string, params: native.Array<any>): void;
				/**
				 * Logs a message of the given level with the specified source class name, source method name and Throwable object.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param msg 
				 * @param thrown 
				 */
				public logp(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, msg: string, thrown: java.lang.Throwable): void;
				/**
				 * Logs a message of the given level with the specified source class name and source method name, using the given resource bundle to localize the message. If bundleName is null, the empty string or not valid then the message is not localized.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param bundleName 
				 * @param msg 
				 */
				public logrb(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, bundleName: string, msg: string): void;
				/**
				 * Logs a message of the given level with the specified source class name, source method name and parameter, using the given resource bundle to localize the message. If bundleName is null, the empty string or not valid then the message is not localized.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param bundleName 
				 * @param msg 
				 * @param param 
				 */
				public logrb(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, bundleName: string, msg: string, param: any): void;
				/**
				 * Logs a message of the given level with the specified source class name, source method name and parameter array, using the given resource bundle to localize the message. If bundleName is null, the empty string or not valid then the message is not localized.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param bundleName 
				 * @param msg 
				 * @param params 
				 */
				public logrb(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, bundleName: string, msg: string, params: native.Array<any>): void;
				/**
				 * Logs a message of the given level with the specified source class name, source method name and Throwable object, using the given resource bundle to localize the message. If bundleName is null, the empty string or not valid then the message is not localized.
				 * @param logLevel 
				 * @param sourceClass 
				 * @param sourceMethod 
				 * @param bundleName 
				 * @param msg 
				 * @param thrown 
				 */
				public logrb(logLevel: java.util.logging.Level, sourceClass: string, sourceMethod: string, bundleName: string, msg: string, thrown: java.lang.Throwable): void;
				reset(): void;
			}
			/**
			 * A handler that writes log messages to the standard output stream System.err.
			 */
			export class ConsoleHandler extends java.util.logging.StreamHandler {
				/**
				 * Constructs a ConsoleHandler object.
				 */
				constructor();
				static class: java.lang.Class<java.util.logging.ConsoleHandler>;
				/**
				 * Closes this handler. The System.err is flushed but not closed.
				 */
				public close(): void;
				/**
				 * Logs a record if necessary. A flush operation will be done.
				 * @param record 
				 */
				public publish(record: java.util.logging.LogRecord): void;
				/**
				 * Closes this handler, but the underlying output stream is only closed if closeStream is true. Security is not checked.
				 * @param closeStream 
				 */
				close(closeStream: boolean): void;
			}
			/**
			 * A FileHandler writes logging records into a specified file or a rotating set of files.
			 */
			export class FileHandler extends java.util.logging.StreamHandler {
				/**
				 * Construct a FileHandler using LogManager properties or their default value.
				 */
				constructor();
				/**
				 * Constructs a new FileHandler. The given name pattern is used as output filename, the file limit is set to zero (no limit), the file count is set to one; the remaining configuration is done using LogManager properties or their default values. This handler writes to only one file with no size limit.
				 * @param pattern 
				 */
				constructor(pattern: string);
				/**
				 * Construct a new FileHandler. The given name pattern is used as output filename, the file limit is set to zero (no limit), the file count is initialized to one and the value of append becomes the new instance's append mode. The remaining configuration is done using LogManager properties. This handler writes to only one file with no size limit.
				 * @param pattern 
				 * @param append 
				 */
				constructor(pattern: string, append: boolean);
				/**
				 * Construct a new FileHandler. The given name pattern is used as output filename, the maximum file size is set to limit and the file count is initialized to count. The remaining configuration is done using LogManager properties. This handler is configured to write to a rotating set of count files, when the limit of bytes has been written to one output file, another file will be opened instead.
				 * @param pattern 
				 * @param limit 
				 * @param count 
				 */
				constructor(pattern: string, limit: number, count: number);
				/**
				 * Construct a new FileHandler. The given name pattern is used as output filename, the maximum file size is set to limit, the file count is initialized to count and the append mode is set to append. The remaining configuration is done using LogManager properties. This handler is configured to write to a rotating set of count files, when the limit of bytes has been written to one output file, another file will be opened instead.
				 * @param pattern 
				 * @param limit 
				 * @param count 
				 * @param append 
				 */
				constructor(pattern: string, limit: number, count: number, append: boolean);
				static class: java.lang.Class<java.util.logging.FileHandler>;
				findNextGeneration(): void;
				/**
				 * Flushes and closes all opened files.
				 */
				public close(): void;
				/**
				 * Publish a LogRecord.
				 * @param record 
				 */
				public publish(record: java.util.logging.LogRecord): void;
				/**
				 * Closes this handler, but the underlying output stream is only closed if closeStream is true. Security is not checked.
				 * @param closeStream 
				 */
				close(closeStream: boolean): void;
			}
			export module FileHandler {
				/**
				 * This output stream uses the decorator pattern to add measurement features to OutputStream which can detect the total size(in bytes) of output, the initial size can be set.
				 */
				export class MeasureOutputStream extends java.io.OutputStream {
					constructor(stream: java.io.OutputStream, currentLength: number);
					constructor(stream: java.io.OutputStream);
					static class: java.lang.Class<java.util.logging.FileHandler.MeasureOutputStream>;
					public write(oneByte: number): void;
					public write(b: native.Array<number>, off: number, len: number): void;
					public close(): void;
					public flush(): void;
					public getLength(): any;
					public setLength(newLength: number): void;
					/**
					 * Equivalent to write(buffer, 0, buffer.length).
					 */
					write(buffer: native.Array<number>): void;
				}
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class LoggingPermission extends java.security.BasicPermission implements java.security.IGuard, java.io.ISerializable {
				constructor(name: string, actions: string);
				static class: java.lang.Class<java.util.logging.LoggingPermission>;
				public getActions(): string;
				public implies(permission: java.security.Permission): boolean;
				/**
				 * Checks whether access to the specified Object should be granted. This method returns silently if access is granted, otherwise a SecurityException is thrown.
				 * @param object 
				 */
				checkGuard(object: any): void;
			}
			/**
			 * LoggingMXBean is the management interface for the logging sub-system.
			 */
			export class LoggingMXBean implements java.util.logging.ILoggingMXBean {
				constructor(implementation: java.util.logging.ILoggingMXBean);
				/**
				 * Gets the string value of the logging level of a logger. An empty string is returned when the logger's level is defined by its parent. A null is returned if the specified logger does not exist.
				 * @param loggerName 
				 */
				public getLoggerLevel(loggerName: string): string;
				/**
				 * Gets a list of all currently registered logger names. This is performed using the LogManager#getLoggerNames().
				 */
				public getLoggerNames(): java.util.IList<string>;
				/**
				 * Gets the name of the parent logger of a logger. If the logger doesn't exist then null is returned. If the logger is the root logger, then an empty String is returned.
				 * @param loggerName 
				 */
				public getParentLoggerName(loggerName: string): string;
				/**
				 * Sets the log level of a logger. LevelName set to null means the level is inherited from the nearest non-null ancestor.
				 * @param loggerName 
				 * @param levelName 
				 */
				public setLoggerLevel(loggerName: string, levelName: string): void;
			}
			/**
			 * A LogRecord object represents a logging request. It is passed between the logging framework and individual logging handlers. Client applications should not modify a LogRecord object that has been passed into the logging framework.
			 */
			export class LogRecord extends java.lang.Object implements java.io.ISerializable {
				/**
				 * Constructs a LogRecord object using the supplied the logging level and message. The millis property is set to the current time. The sequence property is set to a new unique value, allocated in increasing order within the VM. The thread ID is set to a unique value for the current thread. All other properties are set to null.
				 * @param level 
				 * @param msg 
				 */
				constructor(level: java.util.logging.Level, msg: string);
				static class: java.lang.Class<java.util.logging.LogRecord>;
				/**
				 * Gets the logging level.
				 */
				public getLevel(): java.util.logging.Level;
				/**
				 * Sets the logging level.
				 * @param level 
				 */
				public setLevel(level: java.util.logging.Level): void;
				/**
				 * Gets the name of the logger.
				 */
				public getLoggerName(): string;
				/**
				 * Sets the name of the logger.
				 * @param loggerName 
				 */
				public setLoggerName(loggerName: string): void;
				/**
				 * Gets the raw message.
				 */
				public getMessage(): string;
				/**
				 * Sets the raw message. When this record is formatted by a logger that has a localization resource bundle that contains an entry for message, then the raw message is replaced with its localized version.
				 * @param message 
				 */
				public setMessage(message: string): void;
				/**
				 * Gets the time when this event occurred, in milliseconds since 1970.
				 */
				public getMillis(): any;
				/**
				 * Sets the time when this event occurred, in milliseconds since 1970.
				 * @param millis 
				 */
				public setMillis(millis: number): void;
				/**
				 * Gets the parameters.
				 */
				public getParameters(): native.Array<any>;
				/**
				 * Sets the parameters.
				 * @param parameters 
				 */
				public setParameters(parameters: native.Array<any>): void;
				/**
				 * Gets the resource bundle used to localize the raw message during formatting.
				 */
				public getResourceBundle(): java.util.ResourceBundle;
				/**
				 * Sets the resource bundle used to localize the raw message during formatting.
				 * @param resourceBundle 
				 */
				public setResourceBundle(resourceBundle: java.util.ResourceBundle): void;
				/**
				 * Gets the name of the resource bundle.
				 */
				public getResourceBundleName(): string;
				/**
				 * Sets the name of the resource bundle.
				 * @param resourceBundleName 
				 */
				public setResourceBundleName(resourceBundleName: string): void;
				/**
				 * Gets the sequence number.
				 */
				public getSequenceNumber(): any;
				/**
				 * Sets the sequence number. It is usually not necessary to call this method to change the sequence number because the number is allocated when this instance is constructed.
				 * @param sequenceNumber 
				 */
				public setSequenceNumber(sequenceNumber: number): void;
				/**
				 * Gets the name of the class that is the source of this log record. This information can be changed, may be null and is untrusted.
				 */
				public getSourceClassName(): string;
				/**
				 * Sets the name of the class that is the source of this log record.
				 * @param sourceClassName 
				 */
				public setSourceClassName(sourceClassName: string): void;
				/**
				 * Gets the name of the method that is the source of this log record.
				 */
				public getSourceMethodName(): string;
				/**
				 * Sets the name of the method that is the source of this log record.
				 * @param sourceMethodName 
				 */
				public setSourceMethodName(sourceMethodName: string): void;
				/**
				 * Gets a unique ID of the thread originating the log record. Every thread becomes a different ID.
				 */
				public getThreadID(): number;
				/**
				 * Sets the ID of the thread originating this log record.
				 * @param threadID 
				 */
				public setThreadID(threadID: number): void;
				/**
				 * Gets the Throwable object associated with this log record.
				 */
				public getThrown(): java.lang.Throwable;
				/**
				 * Sets the Throwable object associated with this log record.
				 * @param thrown 
				 */
				public setThrown(thrown: java.lang.Throwable): void;
			}
			/**
			 * A Filter provides a mechanism for exercising fine-grained control over which records get logged.
			 */
			interface IFilter {
				/**
				 * Checks record to determine if it should be logged.
				 * @param record 
				 */
				isLoggable(record: java.util.logging.LogRecord): boolean;
			}
			/**
			 * A Filter provides a mechanism for exercising fine-grained control over which records get logged.
			 */
			export class Filter implements java.util.logging.IFilter {
				constructor(implementation: java.util.logging.IFilter);
				/**
				 * Checks record to determine if it should be logged.
				 * @param record 
				 */
				public isLoggable(record: java.util.logging.LogRecord): boolean;
			}
			/**
			 * A StreamHandler object writes log messages to an output stream, that is, objects of the class java.io.OutputStream.
			 */
			export class StreamHandler extends java.util.logging.Handler {
				/**
				 * Constructs a StreamHandler object. The new stream handler does not have an associated output stream.
				 */
				constructor();
				/**
				 * Constructs a StreamHandler object with the supplied output stream and formatter.
				 * @param os 
				 * @param formatter 
				 */
				constructor(os: java.io.OutputStream, formatter: java.util.logging.Formatter);
				static class: java.lang.Class<java.util.logging.StreamHandler>;
				/**
				 * Sets the output stream this handler writes to. Note it does nothing else.
				 * @param newOs 
				 */
				internalSetOutputStream(newOs: java.io.OutputStream): void;
				/**
				 * Sets the output stream this handler writes to. If there's an existing output stream, the tail string of the associated formatter will be written to it. Then it will be flushed, closed and replaced with os.
				 * @param os 
				 */
				protected setOutputStream(os: java.io.OutputStream): void;
				/**
				 * Sets the character encoding used by this handler. A null value indicates that the default encoding should be used.
				 * @param encoding 
				 */
				public setEncoding(encoding: string): void;
				/**
				 * Closes this handler, but the underlying output stream is only closed if closeStream is true. Security is not checked.
				 * @param closeStream 
				 */
				close(closeStream: boolean): void;
				/**
				 * Closes this handler. The tail string of the formatter associated with this handler is written out. A flush operation and a subsequent close operation is then performed upon the output stream. Client applications should not use a handler after closing it.
				 */
				public close(): void;
				/**
				 * Flushes any buffered output.
				 */
				public flush(): void;
				/**
				 * Accepts a logging request. The log record is formatted and written to the output stream if the following three conditions are met: <ul> <li>the supplied log record has at least the required logging level; <li>the supplied log record passes the filter associated with this handler, if any; <li>the output stream associated with this handler is not null. </ul> If it is the first time a log record is written out, the head string of the formatter associated with this handler is written out first.
				 * @param record 
				 */
				public publish(record: java.util.logging.LogRecord): void;
				/**
				 * Determines whether the supplied log record needs to be logged. The logging levels are checked as well as the filter. The output stream of this handler is also checked. If it is null, this method returns false.
				 * @param record 
				 */
				public isLoggable(record: java.util.logging.LogRecord): boolean;
			}
			/**
			 * Level objects are used to indicate the level of logging. There are a set of predefined logging levels, each associated with an integer value. Enabling a certain logging level also enables all logging levels with larger values.
			 */
			export class Level extends java.lang.Object implements java.io.ISerializable {
				/**
				 * The OFF level provides no logging messages.
				 */
				static OFF: java.util.logging.Level;
				/**
				 * The SEVERE level provides severe failure messages.
				 */
				static SEVERE: java.util.logging.Level;
				/**
				 * The WARNING level provides warnings.
				 */
				static WARNING: java.util.logging.Level;
				/**
				 * The INFO level provides informative messages.
				 */
				static INFO: java.util.logging.Level;
				/**
				 * The CONFIG level provides static configuration messages.
				 */
				static CONFIG: java.util.logging.Level;
				/**
				 * The FINE level provides tracing messages.
				 */
				static FINE: java.util.logging.Level;
				/**
				 * The FINER level provides more detailed tracing messages.
				 */
				static FINER: java.util.logging.Level;
				/**
				 * The FINEST level provides highly detailed tracing messages.
				 */
				static FINEST: java.util.logging.Level;
				/**
				 * The ALL level provides all logging messages.
				 */
				static ALL: java.util.logging.Level;
				static class: java.lang.Class<java.util.logging.Level>;
				/**
				 * Parses a level name into a Level object.
				 * @param name 
				 */
				public static parse(name: string): java.util.logging.Level;
				/**
				 * Gets the name of this level.
				 */
				public getName(): string;
				/**
				 * Gets the name of the resource bundle associated with this level.
				 */
				public getResourceBundleName(): string;
				/**
				 * Gets the integer value indicating this level.
				 */
				public intValue(): number;
				/**
				 * Gets the localized name of this level. The default locale is used. If no resource bundle is associated with this level then the original level name is returned.
				 */
				public getLocalizedName(): string;
				/**
				 * Compares two Level objects for equality. They are considered to be equal if they have the same level value.
				 * @param o 
				 */
				public equals(o: any): boolean;
				/**
				 * Returns the hash code of this Level object.
				 */
				public hashCode(): number;
				/**
				 * Returns the string representation of this Level object. In this case, it is the level's name.
				 */
				public toString(): string;
			}
			/**
			 * LoggingMXBean is the management interface for the logging sub-system.
			 */
			interface ILoggingMXBean {
				/**
				 * Gets the string value of the logging level of a logger. An empty string is returned when the logger's level is defined by its parent. A null is returned if the specified logger does not exist.
				 * @param loggerName 
				 */
				getLoggerLevel(loggerName: string): string;
				/**
				 * Gets a list of all currently registered logger names. This is performed using the LogManager#getLoggerNames().
				 */
				getLoggerNames(): java.util.IList<string>;
				/**
				 * Gets the name of the parent logger of a logger. If the logger doesn't exist then null is returned. If the logger is the root logger, then an empty String is returned.
				 * @param loggerName 
				 */
				getParentLoggerName(loggerName: string): string;
				/**
				 * Sets the log level of a logger. LevelName set to null means the level is inherited from the nearest non-null ancestor.
				 * @param loggerName 
				 * @param levelName 
				 */
				setLoggerLevel(loggerName: string, levelName: string): void;
			}
			/**
			 * LogManager is used to maintain configuration properties of the logging framework, and to manage a hierarchical namespace of all named Logger objects.
			 */
			export class LogManager extends java.lang.Object {
				/**
				 * The String value of the LoggingMXBean's ObjectName.
				 */
				static LOGGING_MXBEAN_NAME: string;
				static class: java.lang.Class<java.util.logging.LogManager>;
				/**
				 * Get the LoggingMXBean instance. this implementation always throws an UnsupportedOperationException.
				 */
				public static getLoggingMXBean(): java.util.logging.ILoggingMXBean;
				/**
				 * Does nothing.
				 */
				public checkAccess(): void;
				/**
				 * Add a given logger into the hierarchical namespace. The Logger.addLogger() factory methods call this method to add newly created Logger. This returns false if a logger with the given name has existed in the namespace
				 * @param logger 
				 */
				public addLogger(logger: java.util.logging.Logger): boolean;
				/**
				 * Get the logger with the given name.
				 * @param name 
				 */
				public getLogger(name: string): java.util.logging.Logger;
				/**
				 * Get a Enumeration of all registered logger names.
				 */
				public getLoggerNames(): java.util.IEnumeration<string>;
				/**
				 * Get the global LogManager instance.
				 */
				public static getLogManager(): java.util.logging.LogManager;
				/**
				 * Get the value of property with given name.
				 * @param name 
				 */
				public getProperty(name: string): string;
				/**
				 * Re-initialize the properties and configuration. The initialization process is same as the LogManager instantiation.
				 */
				public readConfiguration(): void;
				static getInstanceByClass(className: string): any;
				/**
				 * Re-initialize the properties and configuration from the given InputStream
				 * @param ins 
				 */
				public readConfiguration(ins: java.io.InputStream): void;
				/**
				 * Reset configuration.
				 */
				public reset(): void;
				/**
				 * Add a PropertyChangeListener, which will be invoked when the properties are reread.
				 * @param l 
				 */
				public addPropertyChangeListener(l: java.beans.IPropertyChangeListener): void;
				/**
				 * Remove a PropertyChangeListener, do nothing if the given listener is not found.
				 * @param l 
				 */
				public removePropertyChangeListener(l: java.beans.IPropertyChangeListener): void;
				/**
				 * Returns a named logger associated with the supplied resource bundle.
				 * @param name resourceBundleName the resource bundle to associate, or null for
				 * @param resourceBundleName 
				 */
				getOrCreate(name: string, resourceBundleName: string): java.util.logging.Logger;
				/**
				 * Sets the parent of this logger in the namespace. Callers must first #checkAccess() check security.
				 * @param logger newParent
				 * @param newParent 
				 */
				setParent(logger: java.util.logging.Logger, newParent: java.util.logging.Logger): void;
				/**
				 * Sets the level on logger to newLevel. Any child loggers currently inheriting their level from logger will be updated recursively.
				 * @param logger newLevel the new minimum logging threshold. If null, the logger's
				 * @param newLevel 
				 */
				setLevelRecursively(logger: java.util.logging.Logger, newLevel: java.util.logging.Level): void;
			}
		}
		/**
		 * Arrays contains static methods which operate on arrays.
		 */
		export class Arrays extends java.lang.Object {
			static class: java.lang.Class<java.util.Arrays>;
			/**
			 * Returns a List of the objects in the specified array. The size of the List cannot be modified, i.e. adding and removing are unsupported, but the elements can be set. Setting an element modifies the underlying array.
			 * @param array 
			 */
			public static asList<T>(array: native.Array<T>): java.util.IList<T>;
			/**
			 * Performs a binary search for value in the ascending sorted array array. Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param value the element to find.
			 */
			public static binarySearch(array: native.Array<number>, value: number): number;
			/**
			 * Performs a binary search for value in the ascending sorted array array, in the range specified by fromIndex (inclusive) and toIndex (exclusive). Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param startIndex the inclusive start index.
			 * @param endIndex the exclusive start index.
			 * @param value the element to find.
			 */
			public static binarySearch(array: native.Array<number>, startIndex: number, endIndex: number, value: number): number;
			/**
			 * Performs a binary search for value in the ascending sorted array array. Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param value the element to find.
			 */
			public static binarySearch(array: native.Array<string>, value: string): number;
			/**
			 * Performs a binary search for value in the ascending sorted array array, in the range specified by fromIndex (inclusive) and toIndex (exclusive). Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param startIndex the inclusive start index.
			 * @param endIndex the exclusive start index.
			 * @param value the element to find.
			 */
			public static binarySearch(array: native.Array<string>, startIndex: number, endIndex: number, value: string): number;
			/**
			 * Performs a binary search for value in the ascending sorted array array. Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param value the element to find.
			 */
			public static binarySearch(array: native.Array<any>, value: any): number;
			/**
			 * Performs a binary search for value in the ascending sorted array array, in the range specified by fromIndex (inclusive) and toIndex (exclusive). Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param startIndex the inclusive start index.
			 * @param endIndex the exclusive start index.
			 * @param value the element to find.
			 */
			public static binarySearch(array: native.Array<any>, startIndex: number, endIndex: number, value: any): number;
			/**
			 * Performs a binary search for value in the ascending sorted array array, using comparator to compare elements. Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param value the element to find.
			 * @param comparator the {@code Comparator} used to compare the elements.
			 */
			public static binarySearch<T>(array: native.Array<T>, value: T, comparator: java.util.IComparator<any>): number;
			/**
			 * Performs a binary search for value in the ascending sorted array array, in the range specified by fromIndex (inclusive) and toIndex (exclusive), using comparator to compare elements. Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param array the sorted array to search.
			 * @param startIndex the inclusive start index.
			 * @param endIndex the exclusive start index.
			 * @param value the element to find.
			 * @param comparator the {@code Comparator} used to compare the elements.
			 */
			public static binarySearch<T>(array: native.Array<T>, startIndex: number, endIndex: number, value: T, comparator: java.util.IComparator<any>): number;
			/**
			 * Fills the specified array with the specified element.
			 * @param array 
			 * @param value 
			 */
			public static fill(array: native.Array<number>, value: number): void;
			/**
			 * Fills the specified range in the array with the specified element.
			 * @param array 
			 * @param start 
			 * @param end 
			 * @param value 
			 */
			public static fill(array: native.Array<number>, start: number, end: number, value: number): void;
			/**
			 * Fills the specified array with the specified element.
			 * @param array 
			 * @param value 
			 */
			public static fill(array: native.Array<string>, value: string): void;
			/**
			 * Fills the specified range in the array with the specified element.
			 * @param array 
			 * @param start 
			 * @param end 
			 * @param value 
			 */
			public static fill(array: native.Array<string>, start: number, end: number, value: string): void;
			/**
			 * Fills the specified array with the specified element.
			 * @param array 
			 * @param value 
			 */
			public static fill(array: native.Array<boolean>, value: boolean): void;
			/**
			 * Fills the specified range in the array with the specified element.
			 * @param array 
			 * @param start 
			 * @param end 
			 * @param value 
			 */
			public static fill(array: native.Array<boolean>, start: number, end: number, value: boolean): void;
			/**
			 * Fills the specified array with the specified element.
			 * @param array 
			 * @param value 
			 */
			public static fill(array: native.Array<any>, value: any): void;
			/**
			 * Fills the specified range in the array with the specified element.
			 * @param array 
			 * @param start 
			 * @param end 
			 * @param value 
			 */
			public static fill(array: native.Array<any>, start: number, end: number, value: any): void;
			/**
			 * Returns a hash code based on the contents of the given array. For any two boolean arrays a and b, if Arrays.equals(a, b) returns true, it means that the return value of Arrays.hashCode(a) equals Arrays.hashCode(b).
			 * @param array 
			 */
			public static hashCode(array: native.Array<boolean>): number;
			/**
			 * Returns a hash code based on the "deep contents" of the given array. If the array contains other arrays as its elements, the hash code is based on their contents not their identities. So it is not acceptable to invoke this method on an array that contains itself as an element, either directly or indirectly.
			 * @param array 
			 */
			public static deepHashCode(array: native.Array<any>): number;
			/**
			 * Compares the two arrays.
			 * @param array1 
			 * @param array2 
			 */
			public static equals(array1: native.Array<number>, array2: native.Array<number>): boolean;
			/**
			 * Returns true if the two given arrays are deeply equal to one another. Unlike the method equals(Object[] array1, Object[] array2), this method is appropriate for use for nested arrays of arbitrary depth.
			 * @param array1 
			 * @param array2 
			 */
			public static deepEquals(array1: native.Array<any>, array2: native.Array<any>): boolean;
			/**
			 * Sorts the specified array in ascending numerical order.
			 * @param array 
			 */
			public static sort(array: native.Array<number>): void;
			/**
			 * Sorts the specified range in the array in ascending numerical order.
			 * @param array 
			 * @param start 
			 * @param end 
			 */
			public static sort(array: native.Array<number>, start: number, end: number): void;
			/**
			 * Sorts the specified range in the array using the specified Comparator. All elements must be comparable to each other without a ClassCastException being thrown.
			 * @param array 
			 * @param start 
			 * @param end 
			 * @param comparator 
			 */
			public static sort<T>(array: native.Array<T>, start: number, end: number, comparator: java.util.IComparator<any>): void;
			/**
			 * Sorts the specified array using the specified Comparator. All elements must be comparable to each other without a ClassCastException being thrown.
			 * @param array 
			 * @param comparator 
			 */
			public static sort<T>(array: native.Array<T>, comparator: java.util.IComparator<any>): void;
			/**
			 * Creates a String representation of the boolean[] passed. The result is surrounded by brackets ("[]"), each element is converted to a String via the String#valueOf(boolean) and separated by ", ". If the array is null, then "null" is returned.
			 * @param array 
			 */
			public static toString(array: native.Array<boolean>): string;
			/**
			 * Creates a <i>"deep"</i> String representation of the Object[] passed, such that if the array contains other arrays, the String representation of those arrays is generated as well.
			 * @param array 
			 */
			public static deepToString(array: native.Array<any>): string;
			/**
			 * Copies newLength elements from original into a new array. If newLength is greater than original.length, the result is padded with the value false.
			 * @param original the original array
			 * @param newLength the length of the new array
			 */
			public static copyOf(original: native.Array<boolean>, newLength: number): native.Array<boolean>;
			/**
			 * Copies newLength elements from original into a new array. If newLength is greater than original.length, the result is padded with the value null.
			 * @param original the original array
			 * @param newLength the length of the new array
			 * @param newType the class of the new array
			 */
			public static copyOf<T, U>(original: native.Array<U>, newLength: number, newType: java.lang.Class<any>): native.Array<T>;
			/**
			 * Copies elements from original into a new array, from indexes start (inclusive) to end (exclusive). The original order of elements is preserved. If end is greater than original.length, the result is padded with the value false.
			 * @param original the original array
			 * @param start the start index, inclusive
			 * @param end the end index, exclusive
			 */
			public static copyOfRange(original: native.Array<boolean>, start: number, end: number): native.Array<boolean>;
			/**
			 * Copies elements from original into a new array, from indexes start (inclusive) to end (exclusive). The original order of elements is preserved. If end is greater than original.length, the result is padded with the value null.
			 * @param original the original array
			 * @param start the start index, inclusive
			 * @param end the end index, exclusive
			 * @param newType 
			 */
			public static copyOfRange<T, U>(original: native.Array<U>, start: number, end: number, newType: java.lang.Class<any>): native.Array<T>;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.
			 * @param o 
			 */
			equals(o: any): boolean;
			/**
			 * Returns an integer hash code for this object. By contract, any two objects for which #equals returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.
			 */
			hashCode(): number;
			/**
			 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
			 */
			toString(): string;
		}
		export module Arrays {
			export class ArrayList<E> extends java.util.AbstractList<E> implements java.io.ISerializable, java.util.IRandomAccess {
				static class: java.lang.Class<java.util.Arrays.ArrayList<any>>;
				public contains(object: any): boolean;
				public get(location: number): E;
				public indexOf(object: any): number;
				public lastIndexOf(object: any): number;
				public set(location: number, object: E): E;
				public size(): number;
				public toArray(): native.Array<any>;
				public toArray<T>(contents: native.Array<T>): native.Array<T>;
			}
		}
		/**
		 * A Map is a data structure consisting of a set of keys and values in which each key is mapped to a single value. The class of the objects used as keys is declared when the Map is declared, as is the class of the corresponding values.
		 */
		export class Map<K, V> implements java.util.IMap<K, V> {
			constructor(implementation: java.util.IMap<K, V>);
			/**
			 * Removes all elements from this Map, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns whether this Map contains the specified key.
			 * @param key 
			 */
			public containsKey(key: any): boolean;
			/**
			 * Returns whether this Map contains the specified value.
			 * @param value 
			 */
			public containsValue(value: any): boolean;
			/**
			 * Returns a Set containing all of the mappings in this Map. Each mapping is an instance of Map.Entry. As the Set is backed by this Map, changes in one will be reflected in the other.
			 */
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			/**
			 * Compares the argument to the receiver, and returns true if the specified object is a Map and both Maps contain the same mappings.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the value of the mapping with the specified key.
			 * @param key 
			 */
			public get(key: any): V;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			public hashCode(): number;
			/**
			 * Returns whether this map is empty.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns a set of the keys contained in this Map. The Set is backed by this Map so changes to one are reflected by the other. The Set does not support adding.
			 */
			public keySet(): java.util.ISet<K>;
			/**
			 * Maps the specified key to the specified value.
			 * @param key 
			 * @param value 
			 */
			public put(key: K, value: V): V;
			/**
			 * Copies every mapping in the specified Map to this Map.
			 * @param map 
			 */
			public putAll(map: java.util.IMap<any, any>): void;
			/**
			 * Removes a mapping with the specified key from this Map.
			 * @param key 
			 */
			public remove(key: any): V;
			/**
			 * Returns the number of mappings in this Map.
			 */
			public size(): number;
			/**
			 * Returns a Collection of the values contained in this Map. The Collection is backed by this Map so changes to one are reflected by the other. The Collection supports Collection#remove, Collection#removeAll, Collection#retainAll, and Collection#clear operations, and it does not support Collection#add or Collection#addAll operations.
			 */
			public values(): java.util.ICollection<V>;
		}
		export module Map {
			/**
			 * Map.Entry is a key/value mapping contained in a Map.
			 */
			export class Entry<K, V> implements java.util.Map.IEntry<K, V> {
				constructor(implementation: java.util.Map.IEntry<K, V>);
				/**
				 * Compares the specified object to this Map.Entry and returns if they are equal. To be equal, the object must be an instance of Map.Entry and have the same key and value.
				 * @param object 
				 */
				public equals(object: any): boolean;
				/**
				 * Returns the key.
				 */
				public getKey(): K;
				/**
				 * Returns the value.
				 */
				public getValue(): V;
				/**
				 * Returns an integer hash code for the receiver. Object which are equal return the same value for this method.
				 */
				public hashCode(): number;
				/**
				 * Sets the value of this entry to the specified value, replacing any existing value.
				 * @param object 
				 */
				public setValue(object: V): V;
			}
			/**
			 * Map.Entry is a key/value mapping contained in a Map.
			 */
			interface IEntry<K, V> {
				/**
				 * Compares the specified object to this Map.Entry and returns if they are equal. To be equal, the object must be an instance of Map.Entry and have the same key and value.
				 * @param object 
				 */
				equals(object: any): boolean;
				/**
				 * Returns the key.
				 */
				getKey(): K;
				/**
				 * Returns the value.
				 */
				getValue(): V;
				/**
				 * Returns an integer hash code for the receiver. Object which are equal return the same value for this method.
				 */
				hashCode(): number;
				/**
				 * Sets the value of this entry to the specified value, replacing any existing value.
				 * @param object 
				 */
				setValue(object: V): V;
			}
		}
		/**
		 * A utility class providing proleptic Gregorian calendar functions used by time zone and calendar code. Do not instantiate.
		 */
		export class Grego extends java.lang.Object {
			static MIN_MILLIS: number;
			static MAX_MILLIS: number;
			static MILLIS_PER_SECOND: number;
			static MILLIS_PER_MINUTE: number;
			static MILLIS_PER_HOUR: number;
			static MILLIS_PER_DAY: number;
			static class: java.lang.Class<java.util.Grego>;
			/**
			 * Return true if the given year is a leap year.
			 * @param year Gregorian year, with 0 == 1 BCE, -1 == 2 BCE, etc.
			 */
			public static isLeapYear(year: number): boolean;
			/**
			 * Return the number of days in the given month.
			 * @param year Gregorian year, with 0 == 1 BCE, -1 == 2 BCE, etc.
			 * @param month 0-based month, with 0==Jan
			 */
			public static monthLength(year: number, month: number): number;
			/**
			 * Return the length of a previous month of the Gregorian calendar.
			 * @param year Gregorian year, with 0 == 1 BCE, -1 == 2 BCE, etc.
			 * @param month 0-based month, with 0==Jan
			 */
			public static previousMonthLength(year: number, month: number): number;
			/**
			 * Convert a year, month, and day-of-month, given in the proleptic Gregorian calendar, to 1970 epoch days.
			 * @param year Gregorian year, with 0 == 1 BCE, -1 == 2 BCE, etc.
			 * @param month 0-based month, with 0==Jan
			 * @param dom 1-based day of month
			 */
			public static fieldsToDay(year: number, month: number, dom: number): any;
			/**
			 * Return the day of week on the 1970-epoch day
			 * @param day the 1970-epoch day (integral value)
			 */
			public static dayOfWeek(day: number): number;
			public static dayToFields(day: number, fields: native.Array<number>): native.Array<number>;
			public static timeToFields(time: number, fields: native.Array<number>): native.Array<number>;
			public static floorDivide(numerator: number, denominator: number): any;
			public static getDayOfWeekInMonth(year: number, month: number, dayOfMonth: number): number;
		}
		/**
		 * WeakHashMap is an implementation of Map with keys which are WeakReferences. A key/value mapping is removed when the key is no longer referenced. All optional operations (adding and removing) are supported. Keys and values can be any objects. Note that the garbage collector acts similar to a second thread on this collection, possibly removing keys.
		 */
		export class WeakHashMap<K, V> extends java.util.AbstractMap<K, V> {
			/**
			 * Constructs a new empty WeakHashMap instance.
			 */
			constructor();
			/**
			 * Constructs a new WeakHashMap instance with the specified capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new WeakHashMap instance with the specified capacity and load factor.
			 * @param capacity 
			 * @param loadFactor 
			 */
			constructor(capacity: number, loadFactor: number);
			/**
			 * Constructs a new WeakHashMap instance containing the mappings from the specified map.
			 * @param map 
			 */
			constructor(map: java.util.IMap<any, any>);
			static class: java.lang.Class<java.util.WeakHashMap<any, any>>;
			/**
			 * Removes all mappings from this map, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns whether this map contains the specified key.
			 * @param key 
			 */
			public containsKey(key: any): boolean;
			/**
			 * Returns a set containing all of the mappings in this map. Each mapping is an instance of Map.Entry. As the set is backed by this map, changes in one will be reflected in the other. It does not support adding operations.
			 */
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			/**
			 * Returns a set of the keys contained in this map. The set is backed by this map so changes to one are reflected by the other. The set does not support adding.
			 */
			public keySet(): java.util.ISet<K>;
			/**
			 * Returns a collection of the values contained in this map. The collection is backed by this map so changes to one are reflected by the other. The collection supports remove, removeAll, retainAll and clear operations, and it does not support add or addAll operations.
			 */
			public values(): java.util.ICollection<V>;
			/**
			 * Returns the value of the mapping with the specified key.
			 * @param key 
			 */
			public get(key: any): V;
			getEntry(key: any): java.util.WeakHashMap.Entry<K, V>;
			/**
			 * Returns whether this map contains the specified value.
			 * @param value 
			 */
			public containsValue(value: any): boolean;
			/**
			 * Returns the number of elements in this map.
			 */
			public isEmpty(): boolean;
			poll(): void;
			removeEntry(toRemove: java.util.WeakHashMap.Entry<K, V>): void;
			/**
			 * Maps the specified key to the specified value.
			 * @param key 
			 * @param value 
			 */
			public put(key: K, value: V): V;
			/**
			 * Copies all the mappings in the given map to this map. These mappings will replace all mappings that this map had for any of the keys currently in the given map.
			 * @param map 
			 */
			public putAll(map: java.util.IMap<any, any>): void;
			/**
			 * Removes the mapping with the specified key from this map.
			 * @param key 
			 */
			public remove(key: any): V;
			/**
			 * Returns the number of elements in this map.
			 */
			public size(): number;
		}
		export module WeakHashMap {
			export class Entry<K, V> extends java.lang.ref.WeakReference<K> {
				static class: java.lang.Class<java.util.WeakHashMap.Entry<any, any>>;
				public getKey(): K;
				public getValue(): V;
				public setValue(object: V): V;
				public equals(other: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
			export module Entry {
				export class Type<R, K, V> implements java.util.WeakHashMap.Entry.IType<R, K, V> {
					constructor(implementation: java.util.WeakHashMap.Entry.IType<R, K, V>);
					public get(entry: java.util.Map.IEntry<K, V>): R;
				}
				interface IType<R, K, V> {
					get(entry: java.util.Map.IEntry<K, V>): R;
				}
			}
			export class HashIterator<R> extends java.lang.Object {
				static class: java.lang.Class<java.util.WeakHashMap.HashIterator<any>>;
				public hasNext(): boolean;
				public next(): R;
				public remove(): void;
			}
		}
		/**
		 * A Set is a data structure which does not allow duplicate elements.
		 */
		export class Set<E> implements java.util.ISet<E> {
			constructor(implementation: java.util.ISet<E>);
			/**
			 * Adds the specified object to this set. The set is not modified if it already contains the object.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Adds the objects in the specified collection which do not exist yet in this set.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this set, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Searches this set for the specified object.
			 * @param object 
			 */
			public contains(object: any): boolean;
			/**
			 * Searches this set for all objects in the specified collection.
			 * @param collection 
			 */
			public containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Compares the specified object to this set, and returns true if they represent the <em>same</em> object using a class specific comparison. Equality for a set means that both sets have the same size and the same elements.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the hash code for this set. Two set which are equal must return the same value.
			 */
			public hashCode(): number;
			/**
			 * Returns true if this set has no elements.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an iterator on the elements of this set. The elements are unordered.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Removes the specified object from this set.
			 * @param object 
			 */
			public remove(object: any): boolean;
			/**
			 * Removes all objects in the specified collection from this set.
			 * @param collection 
			 */
			public removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all objects from this set that are not contained in the specified collection.
			 * @param collection 
			 */
			public retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Returns the number of elements in this set.
			 */
			public size(): number;
			/**
			 * Returns an array containing all elements contained in this set.
			 */
			public toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this set. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this set, the array element following the collection elements is set to null.
			 * @param array 
			 */
			public toArray<T>(array: native.Array<T>): native.Array<T>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class PropertyPermission extends java.security.BasicPermission {
			constructor(name: string, actions: string);
			static class: java.lang.Class<java.util.PropertyPermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * A FormatterClosedException will be thrown if the formatter has been closed.
		 */
		export class FormatterClosedException extends java.lang.IllegalStateException implements java.io.ISerializable {
			/**
			 * Constructs a new FormatterClosedException with the stack trace filled in.
			 */
			constructor();
			static class: java.lang.Class<java.util.FormatterClosedException>;
		}
		export module concurrent {
			/**
			 * An object that creates new threads on demand. Using thread factories removes hardwiring of calls to Thread#Thread(Runnable) new Thread, enabling applications to use special thread subclasses, priorities, etc.
			 */
			export class ThreadFactory implements java.util.concurrent.IThreadFactory {
				constructor(implementation: java.util.concurrent.IThreadFactory);
				/**
				 * Constructs a new Thread. Implementations may also initialize priority, name, daemon status, ThreadGroup, etc.
				 * @param r a runnable to be executed by new thread instance
				 */
				public newThread(r: java.lang.IRunnable): java.lang.Thread;
			}
			/**
			 * Exception thrown when a thread tries to wait upon a barrier that is in a broken state, or which enters the broken state while the thread is waiting.
			 */
			export class BrokenBarrierException extends java.lang.Exception {
				/**
				 * Constructs a <tt>BrokenBarrierException</tt> with no specified detail message.
				 */
				constructor();
				/**
				 * Constructs a <tt>BrokenBarrierException</tt> with the specified detail message.
				 * @param message the detail message
				 */
				constructor(message: string);
				static class: java.lang.Class<java.util.concurrent.BrokenBarrierException>;
			}
			/**
			 * A synchronization point at which threads can pair and swap elements within pairs. Each thread presents some object on entry to the #exchange exchange method, matches with a partner thread, and receives its partner's object on return. An Exchanger may be viewed as a bidirectional form of a SynchronousQueue. Exchangers may be useful in applications such as genetic algorithms and pipeline designs.
			 */
			export class Exchanger<V> extends java.lang.Object {
				/**
				 * Creates a new Exchanger.
				 */
				constructor();
				static class: java.lang.Class<java.util.concurrent.Exchanger<any>>;
				/**
				 * Waits for another thread to arrive at this exchange point (unless the current thread is Thread#interrupt interrupted), and then transfers the given object to it, receiving its object in return.
				 * @param x the object to exchange
				 */
				public exchange(x: V): V;
				/**
				 * Waits for another thread to arrive at this exchange point (unless the current thread is Thread#interrupt interrupted or the specified waiting time elapses), and then transfers the given object to it, receiving its object in return.
				 * @param x the object to exchange
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the <tt>timeout</tt> argument
				 */
				public exchange(x: V, timeout: number, unit: java.util.concurrent.TimeUnit): V;
			}
			export module Exchanger {
				/**
				 * Nodes hold partially exchanged data. This class opportunistically subclasses AtomicReference to represent the hole. So get() returns hole, and compareAndSet CAS'es value into hole. This class cannot be parameterized as "V" because of the use of non-V CANCEL sentinels.
				 */
				export class Node extends java.util.concurrent.atomic.AtomicReference<any> {
					/**
					 * Creates node with given item and empty hole.
					 * @param item the item
					 */
					constructor(item: any);
					/**
					 * The element offered by the Thread creating this node.
					 */
					item: any;
					/**
					 * The Thread waiting to be signalled; null until waiting.
					 */
					waiter: java.lang.Thread;
					static class: java.lang.Class<java.util.concurrent.Exchanger.Node>;
				}
				/**
				 * A Slot is an AtomicReference with heuristic padding to lessen cache effects of this heavily CAS'ed location. While the padding adds noticeable space, all slots are created only on demand, and there will be more than one of them only when it would improve throughput more than enough to outweigh using extra space.
				 */
				export class Slot extends java.util.concurrent.atomic.AtomicReference<any> {
					static class: java.lang.Class<java.util.concurrent.Exchanger.Slot>;
				}
			}
			/**
			 * A ThreadPoolExecutor that can additionally schedule commands to run after a given delay, or to execute periodically. This class is preferable to java.util.Timer when multiple worker threads are needed, or when the additional flexibility or capabilities of ThreadPoolExecutor (which this class extends) are required.
			 */
			export class ScheduledThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor implements java.util.concurrent.IScheduledExecutorService {
				/**
				 * Creates a new ScheduledThreadPoolExecutor with the given core pool size.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 */
				constructor(corePoolSize: number);
				/**
				 * Creates a new ScheduledThreadPoolExecutor with the given initial parameters.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 * @param threadFactory the factory to use when the executor
				 */
				constructor(corePoolSize: number, threadFactory: java.util.concurrent.IThreadFactory);
				/**
				 * Creates a new ScheduledThreadPoolExecutor with the given initial parameters.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 * @param handler the handler to use when execution is blocked
				 */
				constructor(corePoolSize: number, handler: java.util.concurrent.IRejectedExecutionHandler);
				/**
				 * Creates a new ScheduledThreadPoolExecutor with the given initial parameters.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 * @param threadFactory the factory to use when the executor
				 * @param handler the handler to use when execution is blocked
				 */
				constructor(corePoolSize: number, threadFactory: java.util.concurrent.IThreadFactory, handler: java.util.concurrent.IRejectedExecutionHandler);
				static class: java.lang.Class<java.util.concurrent.ScheduledThreadPoolExecutor>;
				/**
				 * Returns current nanosecond time.
				 */
				now(): any;
				/**
				 * Returns true if can run a task given current run state and run-after-shutdown parameters.
				 * @param periodic true if this task periodic, false if delayed
				 */
				canRunInCurrentRunState(periodic: boolean): boolean;
				/**
				 * Requeues a periodic task unless current run state precludes it. Same idea as delayedExecute except drops task rather than rejecting.
				 * @param task the task
				 */
				reExecutePeriodic(task: java.util.concurrent.IRunnableScheduledFuture<any>): void;
				/**
				 * Cancels and clears the queue of all tasks that should not be run due to shutdown policy. Invoked within super.shutdown.
				 */
				onShutdown(): void;
				/**
				 * Modifies or replaces the task used to execute a runnable. This method can be used to override the concrete class used for managing internal tasks. The default implementation simply returns the given task.
				 * @param runnable the submitted Runnable
				 * @param task the task created to execute the runnable
				 */
				protected decorateTask<V>(runnable: java.lang.IRunnable, task: java.util.concurrent.IRunnableScheduledFuture<V>): java.util.concurrent.IRunnableScheduledFuture<V>;
				/**
				 * Modifies or replaces the task used to execute a callable. This method can be used to override the concrete class used for managing internal tasks. The default implementation simply returns the given task.
				 * @param callable the submitted Callable
				 * @param task the task created to execute the callable
				 */
				protected decorateTask<V>(callable: java.util.concurrent.ICallable<V>, task: java.util.concurrent.IRunnableScheduledFuture<V>): java.util.concurrent.IRunnableScheduledFuture<V>;
				/**
				 * Returns the trigger time of a delayed action.
				 */
				triggerTime(delay: number): any;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public schedule(command: java.lang.IRunnable, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public schedule<V>(callable: java.util.concurrent.ICallable<V>, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<V>;
				/**
				 *  RejectedExecutionException NullPointerException IllegalArgumentException 
				 */
				public scheduleAtFixedRate(command: java.lang.IRunnable, initialDelay: number, period: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 *  RejectedExecutionException NullPointerException IllegalArgumentException 
				 */
				public scheduleWithFixedDelay(command: java.lang.IRunnable, initialDelay: number, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 * Executes command with zero required delay. This has effect equivalent to #schedule(Runnable,long,TimeUnit) schedule(command, 0, anyUnit). Note that inspections of the queue and of the list returned by shutdownNow will access the zero-delayed ScheduledFuture, not the command itself.
				 */
				public execute(command: java.lang.IRunnable): void;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
				/**
				 * Sets the policy on whether to continue executing existing periodic tasks even when this executor has been shutdown. In this case, these tasks will only terminate upon shutdownNow or after setting the policy to false when already shutdown. This value is by default false.
				 * @param value if {@code true}, continue after shutdown, else don't.
				 */
				public setContinueExistingPeriodicTasksAfterShutdownPolicy(value: boolean): void;
				/**
				 * Gets the policy on whether to continue executing existing periodic tasks even when this executor has been shutdown. In this case, these tasks will only terminate upon shutdownNow or after setting the policy to false when already shutdown. This value is by default false.
				 */
				public getContinueExistingPeriodicTasksAfterShutdownPolicy(): boolean;
				/**
				 * Sets the policy on whether to execute existing delayed tasks even when this executor has been shutdown. In this case, these tasks will only terminate upon shutdownNow, or after setting the policy to false when already shutdown. This value is by default true.
				 * @param value if {@code true}, execute after shutdown, else don't.
				 */
				public setExecuteExistingDelayedTasksAfterShutdownPolicy(value: boolean): void;
				/**
				 * Gets the policy on whether to execute existing delayed tasks even when this executor has been shutdown. In this case, these tasks will only terminate upon shutdownNow, or after setting the policy to false when already shutdown. This value is by default true.
				 */
				public getExecuteExistingDelayedTasksAfterShutdownPolicy(): boolean;
				/**
				 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
				 */
				public shutdown(): void;
				/**
				 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
				 */
				public shutdownNow(): java.util.IList<java.lang.IRunnable>;
				/**
				 * Returns the task queue used by this executor. Each element of this queue is a ScheduledFuture, including those tasks submitted using execute which are for scheduling purposes used as the basis of a zero-delay ScheduledFuture. Iteration over this queue is <em>not</em> guaranteed to traverse tasks in the order in which they will execute.
				 */
				public getQueue(): java.util.concurrent.IBlockingQueue<java.lang.IRunnable>;
				/**
				 * Returns <tt>true</tt> if this executor has been shut down.
				 */
				isShutdown(): boolean;
				/**
				 * Returns <tt>true</tt> if all tasks have completed following shut down. Note that <tt>isTerminated</tt> is never <tt>true</tt> unless either <tt>shutdown</tt> or <tt>shutdownNow</tt> was called first.
				 */
				isTerminated(): boolean;
				/**
				 * Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete. Future#isDone is <tt>true</tt> for each element of the returned list. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. Future#isDone is <tt>true</tt> for each element of the returned list. Upon return, tasks that have not completed are cancelled. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>): T;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do before the given timeout elapses. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
			}
			export module ScheduledThreadPoolExecutor {
				/**
				 * Specialized delay queue. To mesh with TPE declarations, this class must be declared as a BlockingQueue<Runnable> even though it can only hold RunnableScheduledFutures.
				 */
				export class DelayedWorkQueue extends java.util.AbstractQueue<java.lang.IRunnable> {
					static class: java.lang.Class<java.util.concurrent.ScheduledThreadPoolExecutor.DelayedWorkQueue>;
					public contains(x: any): boolean;
					public remove(x: any): boolean;
					public size(): number;
					public isEmpty(): boolean;
					public remainingCapacity(): number;
					public peek(): java.util.concurrent.IRunnableScheduledFuture<any>;
					public offer(x: java.lang.IRunnable): boolean;
					public put(e: java.lang.IRunnable): void;
					public add(e: java.lang.IRunnable): boolean;
					public offer(e: java.lang.IRunnable, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
					public poll(): java.util.concurrent.IRunnableScheduledFuture<any>;
					public take(): java.util.concurrent.IRunnableScheduledFuture<any>;
					public poll(timeout: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IRunnableScheduledFuture<any>;
					public clear(): void;
					public drainTo(c: java.util.ICollection<any>): number;
					public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
					public toArray(): native.Array<any>;
					public toArray<T>(a: native.Array<T>): native.Array<T>;
					public iterator(): java.util.IIterator<java.lang.IRunnable>;
					/**
					 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
					 */
					remove(): java.lang.IRunnable;
				}
				export module DelayedWorkQueue {
					/**
					 * Snapshot iterator that works off copy of underlying q array.
					 */
					export class Itr extends java.lang.Object {
						static class: java.lang.Class<java.util.concurrent.ScheduledThreadPoolExecutor.DelayedWorkQueue.Itr>;
						public hasNext(): boolean;
						public next(): java.lang.IRunnable;
						public remove(): void;
					}
				}
				export class ScheduledFutureTask<V> extends java.util.concurrent.FutureTask<V> {
					static class: java.lang.Class<java.util.concurrent.ScheduledThreadPoolExecutor.ScheduledFutureTask<any>>;
					public getDelay(unit: java.util.concurrent.TimeUnit): any;
					public compareTo(other: java.util.concurrent.IDelayed): number;
					/**
					 * Returns true if this is a periodic (not a one-shot) action.
					 */
					public isPeriodic(): boolean;
					public cancel(mayInterruptIfRunning: boolean): boolean;
					/**
					 * Overrides FutureTask version so as to reset/requeue if periodic.
					 */
					public run(): void;
				}
			}
			/**
			 * Factory and utility methods for Executor, ExecutorService, ScheduledExecutorService, ThreadFactory, and Callable classes defined in this package. This class supports the following kinds of methods:
			 */
			export class Executors extends java.lang.Object {
				static class: java.lang.Class<java.util.concurrent.Executors>;
				/**
				 * Creates a thread pool that reuses a fixed number of threads operating off a shared unbounded queue. At any point, at most <tt>nThreads</tt> threads will be active processing tasks. If additional tasks are submitted when all threads are active, they will wait in the queue until a thread is available. If any thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks. The threads in the pool will exist until it is explicitly ExecutorService#shutdown shutdown.
				 * @param nThreads the number of threads in the pool
				 */
				public static newFixedThreadPool(nThreads: number): java.util.concurrent.IExecutorService;
				/**
				 * Creates a thread pool that reuses a fixed number of threads operating off a shared unbounded queue, using the provided ThreadFactory to create new threads when needed. At any point, at most <tt>nThreads</tt> threads will be active processing tasks. If additional tasks are submitted when all threads are active, they will wait in the queue until a thread is available. If any thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks. The threads in the pool will exist until it is explicitly ExecutorService#shutdown shutdown.
				 * @param nThreads the number of threads in the pool
				 * @param threadFactory the factory to use when creating new threads
				 */
				public static newFixedThreadPool(nThreads: number, threadFactory: java.util.concurrent.IThreadFactory): java.util.concurrent.IExecutorService;
				/**
				 * Creates an Executor that uses a single worker thread operating off an unbounded queue. (Note however that if this single thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks.) Tasks are guaranteed to execute sequentially, and no more than one task will be active at any given time. Unlike the otherwise equivalent <tt>newFixedThreadPool(1)</tt> the returned executor is guaranteed not to be reconfigurable to use additional threads.
				 */
				public static newSingleThreadExecutor(): java.util.concurrent.IExecutorService;
				/**
				 * Creates an Executor that uses a single worker thread operating off an unbounded queue, and uses the provided ThreadFactory to create a new thread when needed. Unlike the otherwise equivalent <tt>newFixedThreadPool(1, threadFactory)</tt> the returned executor is guaranteed not to be reconfigurable to use additional threads.
				 * @param threadFactory the factory to use when creating new
				 */
				public static newSingleThreadExecutor(threadFactory: java.util.concurrent.IThreadFactory): java.util.concurrent.IExecutorService;
				/**
				 * Creates a thread pool that creates new threads as needed, but will reuse previously constructed threads when they are available. These pools will typically improve the performance of programs that execute many short-lived asynchronous tasks. Calls to <tt>execute</tt> will reuse previously constructed threads if available. If no existing thread is available, a new thread will be created and added to the pool. Threads that have not been used for sixty seconds are terminated and removed from the cache. Thus, a pool that remains idle for long enough will not consume any resources. Note that pools with similar properties but different details (for example, timeout parameters) may be created using ThreadPoolExecutor constructors.
				 */
				public static newCachedThreadPool(): java.util.concurrent.IExecutorService;
				/**
				 * Creates a thread pool that creates new threads as needed, but will reuse previously constructed threads when they are available, and uses the provided ThreadFactory to create new threads when needed.
				 * @param threadFactory the factory to use when creating new threads
				 */
				public static newCachedThreadPool(threadFactory: java.util.concurrent.IThreadFactory): java.util.concurrent.IExecutorService;
				/**
				 * Creates a single-threaded executor that can schedule commands to run after a given delay, or to execute periodically. (Note however that if this single thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks.) Tasks are guaranteed to execute sequentially, and no more than one task will be active at any given time. Unlike the otherwise equivalent <tt>newScheduledThreadPool(1)</tt> the returned executor is guaranteed not to be reconfigurable to use additional threads.
				 */
				public static newSingleThreadScheduledExecutor(): java.util.concurrent.IScheduledExecutorService;
				/**
				 * Creates a single-threaded executor that can schedule commands to run after a given delay, or to execute periodically. (Note however that if this single thread terminates due to a failure during execution prior to shutdown, a new one will take its place if needed to execute subsequent tasks.) Tasks are guaranteed to execute sequentially, and no more than one task will be active at any given time. Unlike the otherwise equivalent <tt>newScheduledThreadPool(1, threadFactory)</tt> the returned executor is guaranteed not to be reconfigurable to use additional threads.
				 * @param threadFactory the factory to use when creating new
				 */
				public static newSingleThreadScheduledExecutor(threadFactory: java.util.concurrent.IThreadFactory): java.util.concurrent.IScheduledExecutorService;
				/**
				 * Creates a thread pool that can schedule commands to run after a given delay, or to execute periodically.
				 * @param corePoolSize the number of threads to keep in the pool,
				 */
				public static newScheduledThreadPool(corePoolSize: number): java.util.concurrent.IScheduledExecutorService;
				/**
				 * Creates a thread pool that can schedule commands to run after a given delay, or to execute periodically.
				 * @param corePoolSize the number of threads to keep in the pool,
				 * @param threadFactory the factory to use when the executor
				 */
				public static newScheduledThreadPool(corePoolSize: number, threadFactory: java.util.concurrent.IThreadFactory): java.util.concurrent.IScheduledExecutorService;
				/**
				 * Returns an object that delegates all defined ExecutorService methods to the given executor, but not any other methods that might otherwise be accessible using casts. This provides a way to safely "freeze" configuration and disallow tuning of a given concrete implementation.
				 * @param executor the underlying implementation
				 */
				public static unconfigurableExecutorService(executor: java.util.concurrent.IExecutorService): java.util.concurrent.IExecutorService;
				/**
				 * Returns an object that delegates all defined ScheduledExecutorService methods to the given executor, but not any other methods that might otherwise be accessible using casts. This provides a way to safely "freeze" configuration and disallow tuning of a given concrete implementation.
				 * @param executor the underlying implementation
				 */
				public static unconfigurableScheduledExecutorService(executor: java.util.concurrent.IScheduledExecutorService): java.util.concurrent.IScheduledExecutorService;
				/**
				 * Returns a default thread factory used to create new threads. This factory creates all new threads used by an Executor in the same ThreadGroup. Each new thread is created as a non-daemon thread with priority set to the smaller of <tt>Thread.NORM_PRIORITY</tt> and the maximum priority permitted in the thread group. New threads have names accessible via Thread#getName of <em>pool-N-thread-M</em>, where <em>N</em> is the sequence number of this factory, and <em>M</em> is the sequence number of the thread created by this factory.
				 */
				public static defaultThreadFactory(): java.util.concurrent.IThreadFactory;
				/**
				 * Legacy security code; do not use.
				 */
				public static privilegedThreadFactory(): java.util.concurrent.IThreadFactory;
				/**
				 * Returns a Callable object that, when called, runs the given task and returns the given result. This can be useful when applying methods requiring a <tt>Callable</tt> to an otherwise resultless action.
				 * @param task the task to run
				 * @param result the result to return
				 */
				public static callable<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.ICallable<T>;
				/**
				 * Returns a Callable object that, when called, runs the given task and returns <tt>null</tt>.
				 * @param task the task to run
				 */
				public static callable(task: java.lang.IRunnable): java.util.concurrent.ICallable<any>;
				/**
				 * Returns a Callable object that, when called, runs the given privileged action and returns its result.
				 * @param action the privileged action to run
				 */
				public static callable(action: java.security.IPrivilegedAction<any>): java.util.concurrent.ICallable<any>;
				/**
				 * Returns a Callable object that, when called, runs the given privileged exception action and returns its result.
				 * @param action the privileged exception action to run
				 */
				public static callable(action: java.security.IPrivilegedExceptionAction<any>): java.util.concurrent.ICallable<any>;
				/**
				 * Legacy security code; do not use.
				 */
				public static privilegedCallable<T>(callable: java.util.concurrent.ICallable<T>): java.util.concurrent.ICallable<T>;
				/**
				 * Returns a Callable object that will, when called, execute the given <tt>callable</tt> under the current with the current context class loader as the context class loader.
				 */
				public static privilegedCallableUsingCurrentClassLoader<T>(callable: java.util.concurrent.ICallable<T>): java.util.concurrent.ICallable<T>;
			}
			export module Executors {
				/**
				 * A callable that runs under established access control settings and current ClassLoader
				 */
				export class PrivilegedCallableUsingCurrentClassLoader<T> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.Executors.PrivilegedCallableUsingCurrentClassLoader<any>>;
					public call(): T;
				}
				/**
				 * The default thread factory
				 */
				export class DefaultThreadFactory extends java.lang.Object implements java.util.concurrent.IThreadFactory {
					static class: java.lang.Class<java.util.concurrent.Executors.DefaultThreadFactory>;
					public newThread(r: java.lang.IRunnable): java.lang.Thread;
				}
				/**
				 * A callable that runs given task and returns given result
				 */
				export class RunnableAdapter<T> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.Executors.RunnableAdapter<any>>;
					public call(): T;
				}
				/**
				 * A wrapper class that exposes only the ScheduledExecutorService methods of a ScheduledExecutorService implementation.
				 */
				export class DelegatedScheduledExecutorService extends java.util.concurrent.Executors.DelegatedExecutorService implements java.util.concurrent.IScheduledExecutorService {
					static class: java.lang.Class<java.util.concurrent.Executors.DelegatedScheduledExecutorService>;
					public schedule(command: java.lang.IRunnable, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
					public schedule<V>(callable: java.util.concurrent.ICallable<V>, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<V>;
					public scheduleAtFixedRate(command: java.lang.IRunnable, initialDelay: number, period: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
					public scheduleWithFixedDelay(command: java.lang.IRunnable, initialDelay: number, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
					/**
					 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
					 */
					shutdown(): void;
					/**
					 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
					 */
					shutdownNow(): java.util.IList<java.lang.IRunnable>;
					/**
					 * Returns <tt>true</tt> if this executor has been shut down.
					 */
					isShutdown(): boolean;
					/**
					 * Returns <tt>true</tt> if all tasks have completed following shut down. Note that <tt>isTerminated</tt> is never <tt>true</tt> unless either <tt>shutdown</tt> or <tt>shutdownNow</tt> was called first.
					 */
					isTerminated(): boolean;
					/**
					 * Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
					 * @param timeout the maximum time to wait
					 * @param unit the time unit of the timeout argument
					 */
					awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
					/**
					 * Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future's <tt>get</tt> method will return the task's result upon successful completion.
					 * @param task the task to submit
					 */
					submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
					/**
					 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return the given result upon successful completion.
					 * @param task the task to submit
					 * @param result the result to return
					 */
					submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
					/**
					 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return <tt>null</tt> upon <em>successful</em> completion.
					 * @param task the task to submit
					 */
					submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
					/**
					 * Executes the given tasks, returning a list of Futures holding their status and results when all complete. Future#isDone is <tt>true</tt> for each element of the returned list. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
					 * @param tasks the collection of tasks
					 */
					invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
					/**
					 * Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. Future#isDone is <tt>true</tt> for each element of the returned list. Upon return, tasks that have not completed are cancelled. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
					 * @param tasks the collection of tasks
					 * @param timeout the maximum time to wait
					 * @param unit the time unit of the timeout argument
					 */
					invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
					/**
					 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
					 * @param tasks the collection of tasks
					 */
					invokeAny<T>(tasks: java.util.ICollection<any>): T;
					/**
					 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do before the given timeout elapses. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
					 * @param tasks the collection of tasks
					 * @param timeout the maximum time to wait
					 * @param unit the time unit of the timeout argument
					 */
					invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
					/**
					 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
					 * @param command the runnable task
					 */
					execute(command: java.lang.IRunnable): void;
				}
				/**
				 * Thread factory capturing access control context and class loader
				 */
				export class PrivilegedThreadFactory extends java.util.concurrent.Executors.DefaultThreadFactory {
					static class: java.lang.Class<java.util.concurrent.Executors.PrivilegedThreadFactory>;
					public newThread(r: java.lang.IRunnable): java.lang.Thread;
				}
				/**
				 * A wrapper class that exposes only the ExecutorService methods of an ExecutorService implementation.
				 */
				export class DelegatedExecutorService extends java.util.concurrent.AbstractExecutorService {
					static class: java.lang.Class<java.util.concurrent.Executors.DelegatedExecutorService>;
					public execute(command: java.lang.IRunnable): void;
					public shutdown(): void;
					public shutdownNow(): java.util.IList<java.lang.IRunnable>;
					public isShutdown(): boolean;
					public isTerminated(): boolean;
					public awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
					public submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
					public submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
					public submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
					public invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
					public invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
					public invokeAny<T>(tasks: java.util.ICollection<any>): T;
					public invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
				}
				/**
				 * A callable that runs under established access control settings
				 */
				export class PrivilegedCallable<T> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.Executors.PrivilegedCallable<any>>;
					public call(): T;
				}
				export class FinalizableDelegatedExecutorService extends java.util.concurrent.Executors.DelegatedExecutorService {
					static class: java.lang.Class<java.util.concurrent.Executors.FinalizableDelegatedExecutorService>;
					protected finalize(): void;
				}
			}
			/**
			 * An Executor that provides methods to manage termination and methods that can produce a Future for tracking progress of one or more asynchronous tasks.
			 */
			interface IExecutorService extends java.util.concurrent.IExecutor {
				/**
				 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
				 */
				shutdown(): void;
				/**
				 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
				 */
				shutdownNow(): java.util.IList<java.lang.IRunnable>;
				/**
				 * Returns <tt>true</tt> if this executor has been shut down.
				 */
				isShutdown(): boolean;
				/**
				 * Returns <tt>true</tt> if all tasks have completed following shut down. Note that <tt>isTerminated</tt> is never <tt>true</tt> unless either <tt>shutdown</tt> or <tt>shutdownNow</tt> was called first.
				 */
				isTerminated(): boolean;
				/**
				 * Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future's <tt>get</tt> method will return the task's result upon successful completion.
				 * @param task the task to submit
				 */
				submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return the given result upon successful completion.
				 * @param task the task to submit
				 * @param result the result to return
				 */
				submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return <tt>null</tt> upon <em>successful</em> completion.
				 * @param task the task to submit
				 */
				submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete. Future#isDone is <tt>true</tt> for each element of the returned list. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. Future#isDone is <tt>true</tt> for each element of the returned list. Upon return, tasks that have not completed are cancelled. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>): T;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do before the given timeout elapses. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
				/**
				 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
				 * @param command the runnable task
				 */
				execute(command: java.lang.IRunnable): void;
			}
			/**
			 * An optionally-bounded BlockingQueue blocking queue based on linked nodes. This queue orders elements FIFO (first-in-first-out). The <em>head</em> of the queue is that element that has been on the queue the longest time. The <em>tail</em> of the queue is that element that has been on the queue the shortest time. New elements are inserted at the tail of the queue, and the queue retrieval operations obtain elements at the head of the queue. Linked queues typically have higher throughput than array-based queues but less predictable performance in most concurrent applications.
			 */
			export class LinkedBlockingQueue<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
				/**
				 * Creates a LinkedBlockingQueue with a capacity of Integer#MAX_VALUE.
				 */
				constructor();
				/**
				 * Creates a LinkedBlockingQueue with the given (fixed) capacity.
				 * @param capacity the capacity of this queue
				 */
				constructor(capacity: number);
				/**
				 * Creates a LinkedBlockingQueue with a capacity of Integer#MAX_VALUE, initially containing the elements of the given collection, added in traversal order of the collection's iterator.
				 * @param c the collection of elements to initially contain
				 */
				constructor(c: java.util.ICollection<any>);
				static class: java.lang.Class<java.util.concurrent.LinkedBlockingQueue<any>>;
				/**
				 * Lock to prevent both puts and takes.
				 */
				fullyLock(): void;
				/**
				 * Unlock to allow both puts and takes.
				 */
				fullyUnlock(): void;
				/**
				 * Returns the number of elements in this queue.
				 */
				public size(): number;
				/**
				 * Returns the number of additional elements that this queue can ideally (in the absence of memory or resource constraints) accept without blocking. This is always equal to the initial capacity of this queue less the current size of this queue.
				 */
				public remainingCapacity(): number;
				/**
				 * Inserts the specified element at the tail of this queue, waiting if necessary for space to become available.
				 */
				public put(e: E): void;
				/**
				 * Inserts the specified element at the tail of this queue, waiting if necessary up to the specified wait time for space to become available.
				 */
				public offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Inserts the specified element at the tail of this queue if it is possible to do so immediately without exceeding the queue's capacity, returning true upon success and false if this queue is full. When using a capacity-restricted queue, this method is generally preferable to method BlockingQueue#add add, which can fail to insert an element only by throwing an exception.
				 */
				public offer(e: E): boolean;
				public take(): E;
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				public poll(): E;
				public peek(): E;
				/**
				 * Unlinks interior Node p with predecessor trail.
				 */
				unlink(p: java.util.concurrent.LinkedBlockingQueue.Node<E>, trail: java.util.concurrent.LinkedBlockingQueue.Node<E>): void;
				/**
				 * Removes a single instance of the specified element from this queue, if it is present. More formally, removes an element e such that o.equals(e), if this queue contains one or more such elements. Returns true if this queue contained the specified element (or equivalently, if this queue changed as a result of the call).
				 * @param o element to be removed from this queue, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Returns true if this queue contains the specified element. More formally, returns true if and only if this queue contains at least one element e such that o.equals(e).
				 * @param o object to be checked for containment in this queue
				 */
				public contains(o: any): boolean;
				/**
				 * Returns an array containing all of the elements in this queue, in proper sequence.
				 */
				public toArray(): native.Array<any>;
				/**
				 * Returns an array containing all of the elements in this queue, in proper sequence; the runtime type of the returned array is that of the specified array. If the queue fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this queue.
				 * @param a the array into which the elements of the queue are to
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				public toString(): string;
				/**
				 * Atomically removes all of the elements from this queue. The queue will be empty after this call returns.
				 */
				public clear(): void;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
				/**
				 * Returns an iterator over the elements in this queue in proper sequence. The elements will be returned in order from first (head) to last (tail).
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
				 */
				remove(): E;
			}
			export module LinkedBlockingQueue {
				export class Itr extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.LinkedBlockingQueue.Itr>;
					public hasNext(): boolean;
					public next(): any;
					public remove(): void;
				}
				/**
				 * Linked list node class
				 */
				export class Node<E> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.LinkedBlockingQueue.Node<any>>;
				}
			}
			export module locks {
				/**
				 * Condition factors out the Object monitor methods (Object#wait() wait, Object#notify notify and Object#notifyAll notifyAll) into distinct objects to give the effect of having multiple wait-sets per object, by combining them with the use of arbitrary Lock implementations. Where a Lock replaces the use of synchronized methods and statements, a Condition replaces the use of the Object monitor methods.
				 */
				export class Condition implements java.util.concurrent.locks.ICondition {
					constructor(implementation: java.util.concurrent.locks.ICondition);
					/**
					 * Causes the current thread to wait until it is signalled or Thread#interrupt interrupted.
					 */
					public await(): void;
					/**
					 * Causes the current thread to wait until it is signalled.
					 */
					public awaitUninterruptibly(): void;
					/**
					 * Causes the current thread to wait until it is signalled or interrupted, or the specified waiting time elapses.
					 * @param nanosTimeout the maximum time to wait, in nanoseconds
					 */
					public awaitNanos(nanosTimeout: number): any;
					/**
					 * Causes the current thread to wait until it is signalled or interrupted, or the specified waiting time elapses. This method is behaviorally equivalent to: <pre> awaitNanos(unit.toNanos(time)) > 0</pre>
					 * @param time the maximum time to wait
					 * @param unit the time unit of the {@code time} argument
					 */
					public await(time: number, unit: java.util.concurrent.TimeUnit): boolean;
					/**
					 * Causes the current thread to wait until it is signalled or interrupted, or the specified deadline elapses.
					 * @param deadline the absolute time to wait until
					 */
					public awaitUntil(deadline: java.util.Date): boolean;
					/**
					 * Wakes up one waiting thread.
					 */
					public signal(): void;
					/**
					 * Wakes up all waiting threads.
					 */
					public signalAll(): void;
				}
				/**
				 * A reentrant mutual exclusion Lock with the same basic behavior and semantics as the implicit monitor lock accessed using synchronized methods and statements, but with extended capabilities.
				 */
				export class ReentrantLock extends java.lang.Object implements java.util.concurrent.locks.ILock, java.io.ISerializable {
					/**
					 * Creates an instance of ReentrantLock. This is equivalent to using ReentrantLock(false).
					 */
					constructor();
					/**
					 * Creates an instance of ReentrantLock with the given fairness policy.
					 * @param fair {@code true} if this lock should use a fair ordering policy
					 */
					constructor(fair: boolean);
					static class: java.lang.Class<java.util.concurrent.locks.ReentrantLock>;
					/**
					 * Acquires the lock.
					 */
					public lock(): void;
					/**
					 * Acquires the lock unless the current thread is Thread#interrupt interrupted.
					 */
					public lockInterruptibly(): void;
					/**
					 * Acquires the lock only if it is not held by another thread at the time of invocation.
					 */
					public tryLock(): boolean;
					/**
					 * Acquires the lock if it is not held by another thread within the given waiting time and the current thread has not been Thread#interrupt interrupted.
					 * @param timeout the time to wait for the lock
					 * @param unit the time unit of the timeout argument
					 */
					public tryLock(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
					/**
					 * Attempts to release this lock.
					 */
					public unlock(): void;
					/**
					 * Returns a Condition instance for use with this Lock instance.
					 */
					public newCondition(): java.util.concurrent.locks.ICondition;
					/**
					 * Queries the number of holds on this lock by the current thread.
					 */
					public getHoldCount(): number;
					/**
					 * Queries if this lock is held by the current thread.
					 */
					public isHeldByCurrentThread(): boolean;
					/**
					 * Queries if this lock is held by any thread. This method is designed for use in monitoring of the system state, not for synchronization control.
					 */
					public isLocked(): boolean;
					/**
					 * Returns true if this lock has fairness set true.
					 */
					public isFair(): boolean;
					/**
					 * Returns the thread that currently owns this lock, or null if not owned. When this method is called by a thread that is not the owner, the return value reflects a best-effort approximation of current lock status. For example, the owner may be momentarily null even if there are threads trying to acquire the lock but have not yet done so. This method is designed to facilitate construction of subclasses that provide more extensive lock monitoring facilities.
					 */
					protected getOwner(): java.lang.Thread;
					/**
					 * Queries whether any threads are waiting to acquire this lock. Note that because cancellations may occur at any time, a true return does not guarantee that any other thread will ever acquire this lock. This method is designed primarily for use in monitoring of the system state.
					 */
					public hasQueuedThreads(): boolean;
					/**
					 * Queries whether the given thread is waiting to acquire this lock. Note that because cancellations may occur at any time, a true return does not guarantee that this thread will ever acquire this lock. This method is designed primarily for use in monitoring of the system state.
					 * @param thread the thread
					 */
					public hasQueuedThread(thread: java.lang.Thread): boolean;
					/**
					 * Returns an estimate of the number of threads waiting to acquire this lock. The value is only an estimate because the number of threads may change dynamically while this method traverses internal data structures. This method is designed for use in monitoring of the system state, not for synchronization control.
					 */
					public getQueueLength(): number;
					/**
					 * Returns a collection containing threads that may be waiting to acquire this lock. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive monitoring facilities.
					 */
					protected getQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Queries whether any threads are waiting on the given condition associated with this lock. Note that because timeouts and interrupts may occur at any time, a true return does not guarantee that a future signal will awaken any threads. This method is designed primarily for use in monitoring of the system state.
					 * @param condition the condition
					 */
					public hasWaiters(condition: java.util.concurrent.locks.ICondition): boolean;
					/**
					 * Returns an estimate of the number of threads waiting on the given condition associated with this lock. Note that because timeouts and interrupts may occur at any time, the estimate serves only as an upper bound on the actual number of waiters. This method is designed for use in monitoring of the system state, not for synchronization control.
					 * @param condition the condition
					 */
					public getWaitQueueLength(condition: java.util.concurrent.locks.ICondition): number;
					/**
					 * Returns a collection containing those threads that may be waiting on the given condition associated with this lock. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive condition monitoring facilities.
					 * @param condition the condition
					 */
					protected getWaitingThreads(condition: java.util.concurrent.locks.ICondition): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a string identifying this lock, as well as its lock state. The state, in brackets, includes either the String "Unlocked" or the String "Locked by" followed by the Thread#getName name of the owning thread.
					 */
					public toString(): string;
				}
				export module ReentrantLock {
					/**
					 * Sync object for non-fair locks
					 */
					export class NonfairSync extends java.util.concurrent.locks.ReentrantLock.Sync {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantLock.NonfairSync>;
						/**
						 * Performs lock. Try immediate barge, backing up to normal acquire on failure.
						 */
						lock(): void;
						protected tryAcquire(acquires: number): boolean;
					}
					/**
					 * Sync object for fair locks
					 */
					export class FairSync extends java.util.concurrent.locks.ReentrantLock.Sync {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantLock.FairSync>;
						lock(): void;
						/**
						 * Fair version of tryAcquire. Don't grant access unless recursive call or no waiters or is first.
						 */
						protected tryAcquire(acquires: number): boolean;
					}
					/**
					 * Base of synchronization control for this lock. Subclassed into fair and nonfair versions below. Uses AQS state to represent the number of holds on the lock.
					 */
					export class Sync extends java.util.concurrent.locks.AbstractQueuedSynchronizer {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantLock.Sync>;
						/**
						 * Performs Lock#lock. The main reason for subclassing is to allow fast path for nonfair version.
						 */
						lock(): void;
						/**
						 * Performs non-fair tryLock. tryAcquire is implemented in subclasses, but both need nonfair try for trylock method.
						 */
						nonfairTryAcquire(acquires: number): boolean;
						protected tryRelease(releases: number): boolean;
						protected isHeldExclusively(): boolean;
						newCondition(): java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject;
						getOwner(): java.lang.Thread;
						getHoldCount(): number;
						isLocked(): boolean;
					}
				}
				/**
				 * Provides a framework for implementing blocking locks and related synchronizers (semaphores, events, etc) that rely on first-in-first-out (FIFO) wait queues. This class is designed to be a useful basis for most kinds of synchronizers that rely on a single atomic <tt>int</tt> value to represent state. Subclasses must define the protected methods that change this state, and which define what that state means in terms of this object being acquired or released. Given these, the other methods in this class carry out all queuing and blocking mechanics. Subclasses can maintain other state fields, but only the atomically updated <tt>int</tt> value manipulated using methods #getState, #setState and #compareAndSetState is tracked with respect to synchronization.
				 */
				export class AbstractQueuedSynchronizer extends java.util.concurrent.locks.AbstractOwnableSynchronizer implements java.io.ISerializable {
					static class: java.lang.Class<java.util.concurrent.locks.AbstractQueuedSynchronizer>;
					ConditionObject: {
	new (): java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject;
};
					/**
					 * Returns the current value of synchronization state. This operation has memory semantics of a <tt>volatile</tt> read.
					 */
					protected getState(): number;
					/**
					 * Sets the value of synchronization state. This operation has memory semantics of a <tt>volatile</tt> write.
					 * @param newState the new state value
					 */
					protected setState(newState: number): void;
					/**
					 * Atomically sets synchronization state to the given updated value if the current state value equals the expected value. This operation has memory semantics of a <tt>volatile</tt> read and write.
					 * @param expect the expected value
					 * @param update the new value
					 */
					protected compareAndSetState(expect: number, update: number): boolean;
					/**
					 * Convenience method to interrupt current thread.
					 */
					static selfInterrupt(): void;
					/**
					 * Acquires in exclusive uninterruptible mode for thread already in queue. Used by condition wait methods as well as acquire.
					 * @param node the node
					 * @param arg the acquire argument
					 */
					acquireQueued(node: java.util.concurrent.locks.AbstractQueuedSynchronizer.Node, arg: number): boolean;
					/**
					 * Attempts to acquire in exclusive mode. This method should query if the state of the object permits it to be acquired in the exclusive mode, and if so to acquire it.
					 * @param arg the acquire argument. This value is always the one
					 */
					protected tryAcquire(arg: number): boolean;
					/**
					 * Attempts to set the state to reflect a release in exclusive mode.
					 * @param arg the release argument. This value is always the one
					 */
					protected tryRelease(arg: number): boolean;
					/**
					 * Attempts to acquire in shared mode. This method should query if the state of the object permits it to be acquired in the shared mode, and if so to acquire it.
					 * @param arg the acquire argument. This value is always the one
					 */
					protected tryAcquireShared(arg: number): number;
					/**
					 * Attempts to set the state to reflect a release in shared mode.
					 * @param arg the release argument. This value is always the one
					 */
					protected tryReleaseShared(arg: number): boolean;
					/**
					 * Returns true if synchronization is held exclusively with respect to the current (calling) thread. This method is invoked upon each call to a non-waiting ConditionObject method. (Waiting methods instead invoke #release.)
					 */
					protected isHeldExclusively(): boolean;
					/**
					 * Acquires in exclusive mode, ignoring interrupts. Implemented by invoking at least once #tryAcquire, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquire until success. This method can be used to implement method Lock#lock.
					 * @param arg the acquire argument. This value is conveyed to
					 */
					public acquire(arg: number): void;
					/**
					 * Acquires in exclusive mode, aborting if interrupted. Implemented by first checking interrupt status, then invoking at least once #tryAcquire, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquire until success or the thread is interrupted. This method can be used to implement method Lock#lockInterruptibly.
					 * @param arg the acquire argument. This value is conveyed to
					 */
					public acquireInterruptibly(arg: number): void;
					/**
					 * Attempts to acquire in exclusive mode, aborting if interrupted, and failing if the given timeout elapses. Implemented by first checking interrupt status, then invoking at least once #tryAcquire, returning on success. Otherwise, the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquire until success or the thread is interrupted or the timeout elapses. This method can be used to implement method Lock#tryLock(long, TimeUnit).
					 * @param arg the acquire argument. This value is conveyed to
					 * @param nanosTimeout the maximum number of nanoseconds to wait
					 */
					public tryAcquireNanos(arg: number, nanosTimeout: number): boolean;
					/**
					 * Releases in exclusive mode. Implemented by unblocking one or more threads if #tryRelease returns true. This method can be used to implement method Lock#unlock.
					 * @param arg the release argument. This value is conveyed to
					 */
					public release(arg: number): boolean;
					/**
					 * Acquires in shared mode, ignoring interrupts. Implemented by first invoking at least once #tryAcquireShared, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquireShared until success.
					 * @param arg the acquire argument. This value is conveyed to
					 */
					public acquireShared(arg: number): void;
					/**
					 * Acquires in shared mode, aborting if interrupted. Implemented by first checking interrupt status, then invoking at least once #tryAcquireShared, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquireShared until success or the thread is interrupted.
					 * @param arg the acquire argument
					 */
					public acquireSharedInterruptibly(arg: number): void;
					/**
					 * Attempts to acquire in shared mode, aborting if interrupted, and failing if the given timeout elapses. Implemented by first checking interrupt status, then invoking at least once #tryAcquireShared, returning on success. Otherwise, the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquireShared until success or the thread is interrupted or the timeout elapses.
					 * @param arg the acquire argument. This value is conveyed to
					 * @param nanosTimeout the maximum number of nanoseconds to wait
					 */
					public tryAcquireSharedNanos(arg: number, nanosTimeout: number): boolean;
					/**
					 * Releases in shared mode. Implemented by unblocking one or more threads if #tryReleaseShared returns true.
					 * @param arg the release argument. This value is conveyed to
					 */
					public releaseShared(arg: number): boolean;
					/**
					 * Queries whether any threads are waiting to acquire. Note that because cancellations due to interrupts and timeouts may occur at any time, a true return does not guarantee that any other thread will ever acquire.
					 */
					public hasQueuedThreads(): boolean;
					/**
					 * Queries whether any threads have ever contended to acquire this synchronizer; that is if an acquire method has ever blocked.
					 */
					public hasContended(): boolean;
					/**
					 * Returns the first (longest-waiting) thread in the queue, or null if no threads are currently queued.
					 */
					public getFirstQueuedThread(): java.lang.Thread;
					/**
					 * Returns true if the given thread is currently queued.
					 * @param thread the thread
					 */
					public isQueued(thread: java.lang.Thread): boolean;
					/**
					 * Returns true if the apparent first queued thread, if one exists, is waiting in exclusive mode. If this method returns true, and the current thread is attempting to acquire in shared mode (that is, this method is invoked from #tryAcquireShared) then it is guaranteed that the current thread is not the first queued thread. Used only as a heuristic in ReentrantReadWriteLock.
					 */
					apparentlyFirstQueuedIsExclusive(): boolean;
					/**
					 * Returns an estimate of the number of threads waiting to acquire. The value is only an estimate because the number of threads may change dynamically while this method traverses internal data structures. This method is designed for use in monitoring system state, not for synchronization control.
					 */
					public getQueueLength(): number;
					/**
					 * Returns a collection containing threads that may be waiting to acquire. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive monitoring facilities.
					 */
					public getQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a collection containing threads that may be waiting to acquire in exclusive mode. This has the same properties as #getQueuedThreads except that it only returns those threads waiting due to an exclusive acquire.
					 */
					public getExclusiveQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a collection containing threads that may be waiting to acquire in shared mode. This has the same properties as #getQueuedThreads except that it only returns those threads waiting due to a shared acquire.
					 */
					public getSharedQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a string identifying this synchronizer, as well as its state. The state, in brackets, includes the String "State =" followed by the current value of #getState, and either "nonempty" or "empty" depending on whether the queue is empty.
					 */
					public toString(): string;
					/**
					 * Returns true if a node, always one that was initially placed on a condition queue, is now waiting to reacquire on sync queue.
					 * @param node the node
					 */
					isOnSyncQueue(node: java.util.concurrent.locks.AbstractQueuedSynchronizer.Node): boolean;
					/**
					 * Transfers a node from a condition queue onto sync queue. Returns true if successful.
					 * @param node the node
					 */
					transferForSignal(node: java.util.concurrent.locks.AbstractQueuedSynchronizer.Node): boolean;
					/**
					 * Transfers node, if necessary, to sync queue after a cancelled wait. Returns true if thread was cancelled before being signalled.
					 * @param node its node
					 */
					transferAfterCancelledWait(node: java.util.concurrent.locks.AbstractQueuedSynchronizer.Node): boolean;
					/**
					 * Invokes release with current state value; returns saved state. Cancels node and throws exception on failure.
					 * @param node the condition node for this wait
					 */
					fullyRelease(node: java.util.concurrent.locks.AbstractQueuedSynchronizer.Node): number;
					/**
					 * Queries whether the given ConditionObject uses this synchronizer as its lock.
					 * @param condition the condition
					 */
					public owns(condition: java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject): boolean;
					/**
					 * Queries whether any threads are waiting on the given condition associated with this synchronizer. Note that because timeouts and interrupts may occur at any time, a <tt>true</tt> return does not guarantee that a future <tt>signal</tt> will awaken any threads. This method is designed primarily for use in monitoring of the system state.
					 * @param condition the condition
					 */
					public hasWaiters(condition: java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject): boolean;
					/**
					 * Returns an estimate of the number of threads waiting on the given condition associated with this synchronizer. Note that because timeouts and interrupts may occur at any time, the estimate serves only as an upper bound on the actual number of waiters. This method is designed for use in monitoring of the system state, not for synchronization control.
					 * @param condition the condition
					 */
					public getWaitQueueLength(condition: java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject): number;
					/**
					 * Returns a collection containing those threads that may be waiting on the given condition associated with this synchronizer. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order.
					 * @param condition the condition
					 */
					public getWaitingThreads(condition: java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject): java.util.ICollection<java.lang.Thread>;
				}
				export module AbstractQueuedSynchronizer {
					/**
					 * Wait queue node class.
					 */
					export class Node extends java.lang.Object {
						static class: java.lang.Class<java.util.concurrent.locks.AbstractQueuedSynchronizer.Node>;
						/**
						 * Returns true if node is waiting in shared mode
						 */
						isShared(): boolean;
						/**
						 * Returns previous node, or throws NullPointerException if null. Use when predecessor cannot be null. The null check could be elided, but is present to help the VM.
						 */
						predecessor(): java.util.concurrent.locks.AbstractQueuedSynchronizer.Node;
					}
					/**
					 * Condition implementation for a AbstractQueuedSynchronizer serving as the basis of a Lock implementation.
					 */
					export class ConditionObject extends java.lang.Object implements java.util.concurrent.locks.ICondition, java.io.ISerializable {
						static class: java.lang.Class<java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject>;
						/**
						 * Moves the longest-waiting thread, if one exists, from the wait queue for this condition to the wait queue for the owning lock.
						 */
						public signal(): void;
						/**
						 * Moves all threads from the wait queue for this condition to the wait queue for the owning lock.
						 */
						public signalAll(): void;
						/**
						 * Implements uninterruptible condition wait. <ol> <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. </ol>
						 */
						public awaitUninterruptibly(): void;
						/**
						 * Implements interruptible condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled or interrupted. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. </ol>
						 */
						public await(): void;
						/**
						 * Implements timed condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled, interrupted, or timed out. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. </ol>
						 */
						public awaitNanos(nanosTimeout: number): any;
						/**
						 * Implements absolute timed condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled, interrupted, or timed out. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. <li> If timed out while blocked in step 4, return false, else true. </ol>
						 */
						public awaitUntil(deadline: java.util.Date): boolean;
						/**
						 * Implements timed condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled, interrupted, or timed out. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. <li> If timed out while blocked in step 4, return false, else true. </ol>
						 */
						public await(time: number, unit: java.util.concurrent.TimeUnit): boolean;
						/**
						 * Returns true if this condition was created by the given synchronization object.
						 */
						isOwnedBy(sync: java.util.concurrent.locks.AbstractQueuedSynchronizer): boolean;
						/**
						 * Queries whether any threads are waiting on this condition. Implements AbstractQueuedSynchronizer#hasWaiters.
						 */
						protected hasWaiters(): boolean;
						/**
						 * Returns an estimate of the number of threads waiting on this condition. Implements AbstractQueuedSynchronizer#getWaitQueueLength.
						 */
						protected getWaitQueueLength(): number;
						/**
						 * Returns a collection containing those threads that may be waiting on this Condition. Implements AbstractQueuedSynchronizer#getWaitingThreads.
						 */
						protected getWaitingThreads(): java.util.ICollection<java.lang.Thread>;
					}
				}
				/**
				 * A <tt>ReadWriteLock</tt> maintains a pair of associated Lock locks, one for read-only operations and one for writing. The #readLock read lock may be held simultaneously by multiple reader threads, so long as there are no writers. The #writeLock write lock is exclusive.
				 */
				export class ReadWriteLock implements java.util.concurrent.locks.IReadWriteLock {
					constructor(implementation: java.util.concurrent.locks.IReadWriteLock);
					/**
					 * Returns the lock used for reading.
					 */
					public readLock(): java.util.concurrent.locks.ILock;
					/**
					 * Returns the lock used for writing.
					 */
					public writeLock(): java.util.concurrent.locks.ILock;
				}
				/**
				 * A synchronizer that may be exclusively owned by a thread. This class provides a basis for creating locks and related synchronizers that may entail a notion of ownership. The <tt>AbstractOwnableSynchronizer</tt> class itself does not manage or use this information. However, subclasses and tools may use appropriately maintained values to help control and monitor access and provide diagnostics.
				 */
				export class AbstractOwnableSynchronizer extends java.lang.Object implements java.io.ISerializable {
					static class: java.lang.Class<java.util.concurrent.locks.AbstractOwnableSynchronizer>;
					/**
					 * Sets the thread that currently owns exclusive access. A <tt>null</tt> argument indicates that no thread owns access. This method does not otherwise impose any synchronization or <tt>volatile</tt> field accesses.
					 */
					protected setExclusiveOwnerThread(t: java.lang.Thread): void;
					/**
					 * Returns the thread last set by <tt>setExclusiveOwnerThread</tt>, or <tt>null</tt> if never set. This method does not otherwise impose any synchronization or <tt>volatile</tt> field accesses.
					 */
					protected getExclusiveOwnerThread(): java.lang.Thread;
				}
				/**
				 * A version of AbstractQueuedSynchronizer in which synchronization state is maintained as a <tt>long</tt>. This class has exactly the same structure, properties, and methods as <tt>AbstractQueuedSynchronizer</tt> with the exception that all state-related parameters and results are defined as <tt>long</tt> rather than <tt>int</tt>. This class may be useful when creating synchronizers such as multilevel locks and barriers that require 64 bits of state.
				 */
				export class AbstractQueuedLongSynchronizer extends java.util.concurrent.locks.AbstractOwnableSynchronizer implements java.io.ISerializable {
					static class: java.lang.Class<java.util.concurrent.locks.AbstractQueuedLongSynchronizer>;
					ConditionObject: {
	new (): java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject;
};
					/**
					 * Returns the current value of synchronization state. This operation has memory semantics of a <tt>volatile</tt> read.
					 */
					protected getState(): any;
					/**
					 * Sets the value of synchronization state. This operation has memory semantics of a <tt>volatile</tt> write.
					 * @param newState the new state value
					 */
					protected setState(newState: number): void;
					/**
					 * Atomically sets synchronization state to the given updated value if the current state value equals the expected value. This operation has memory semantics of a <tt>volatile</tt> read and write.
					 * @param expect the expected value
					 * @param update the new value
					 */
					protected compareAndSetState(expect: number, update: number): boolean;
					/**
					 * Convenience method to interrupt current thread.
					 */
					static selfInterrupt(): void;
					/**
					 * Acquires in exclusive uninterruptible mode for thread already in queue. Used by condition wait methods as well as acquire.
					 * @param node the node
					 * @param arg the acquire argument
					 */
					acquireQueued(node: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.Node, arg: number): boolean;
					/**
					 * Attempts to acquire in exclusive mode. This method should query if the state of the object permits it to be acquired in the exclusive mode, and if so to acquire it.
					 * @param arg the acquire argument. This value is always the one
					 */
					protected tryAcquire(arg: number): boolean;
					/**
					 * Attempts to set the state to reflect a release in exclusive mode.
					 * @param arg the release argument. This value is always the one
					 */
					protected tryRelease(arg: number): boolean;
					/**
					 * Attempts to acquire in shared mode. This method should query if the state of the object permits it to be acquired in the shared mode, and if so to acquire it.
					 * @param arg the acquire argument. This value is always the one
					 */
					protected tryAcquireShared(arg: number): any;
					/**
					 * Attempts to set the state to reflect a release in shared mode.
					 * @param arg the release argument. This value is always the one
					 */
					protected tryReleaseShared(arg: number): boolean;
					/**
					 * Returns true if synchronization is held exclusively with respect to the current (calling) thread. This method is invoked upon each call to a non-waiting ConditionObject method. (Waiting methods instead invoke #release.)
					 */
					protected isHeldExclusively(): boolean;
					/**
					 * Acquires in exclusive mode, ignoring interrupts. Implemented by invoking at least once #tryAcquire, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquire until success. This method can be used to implement method Lock#lock.
					 * @param arg the acquire argument. This value is conveyed to
					 */
					public acquire(arg: number): void;
					/**
					 * Acquires in exclusive mode, aborting if interrupted. Implemented by first checking interrupt status, then invoking at least once #tryAcquire, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquire until success or the thread is interrupted. This method can be used to implement method Lock#lockInterruptibly.
					 * @param arg the acquire argument. This value is conveyed to
					 */
					public acquireInterruptibly(arg: number): void;
					/**
					 * Attempts to acquire in exclusive mode, aborting if interrupted, and failing if the given timeout elapses. Implemented by first checking interrupt status, then invoking at least once #tryAcquire, returning on success. Otherwise, the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquire until success or the thread is interrupted or the timeout elapses. This method can be used to implement method Lock#tryLock(long, TimeUnit).
					 * @param arg the acquire argument. This value is conveyed to
					 * @param nanosTimeout the maximum number of nanoseconds to wait
					 */
					public tryAcquireNanos(arg: number, nanosTimeout: number): boolean;
					/**
					 * Releases in exclusive mode. Implemented by unblocking one or more threads if #tryRelease returns true. This method can be used to implement method Lock#unlock.
					 * @param arg the release argument. This value is conveyed to
					 */
					public release(arg: number): boolean;
					/**
					 * Acquires in shared mode, ignoring interrupts. Implemented by first invoking at least once #tryAcquireShared, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquireShared until success.
					 * @param arg the acquire argument. This value is conveyed to
					 */
					public acquireShared(arg: number): void;
					/**
					 * Acquires in shared mode, aborting if interrupted. Implemented by first checking interrupt status, then invoking at least once #tryAcquireShared, returning on success. Otherwise the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquireShared until success or the thread is interrupted.
					 * @param arg the acquire argument
					 */
					public acquireSharedInterruptibly(arg: number): void;
					/**
					 * Attempts to acquire in shared mode, aborting if interrupted, and failing if the given timeout elapses. Implemented by first checking interrupt status, then invoking at least once #tryAcquireShared, returning on success. Otherwise, the thread is queued, possibly repeatedly blocking and unblocking, invoking #tryAcquireShared until success or the thread is interrupted or the timeout elapses.
					 * @param arg the acquire argument. This value is conveyed to
					 * @param nanosTimeout the maximum number of nanoseconds to wait
					 */
					public tryAcquireSharedNanos(arg: number, nanosTimeout: number): boolean;
					/**
					 * Releases in shared mode. Implemented by unblocking one or more threads if #tryReleaseShared returns true.
					 * @param arg the release argument. This value is conveyed to
					 */
					public releaseShared(arg: number): boolean;
					/**
					 * Queries whether any threads are waiting to acquire. Note that because cancellations due to interrupts and timeouts may occur at any time, a true return does not guarantee that any other thread will ever acquire.
					 */
					public hasQueuedThreads(): boolean;
					/**
					 * Queries whether any threads have ever contended to acquire this synchronizer; that is if an acquire method has ever blocked.
					 */
					public hasContended(): boolean;
					/**
					 * Returns the first (longest-waiting) thread in the queue, or null if no threads are currently queued.
					 */
					public getFirstQueuedThread(): java.lang.Thread;
					/**
					 * Returns true if the given thread is currently queued.
					 * @param thread the thread
					 */
					public isQueued(thread: java.lang.Thread): boolean;
					/**
					 * Returns true if the apparent first queued thread, if one exists, is waiting in exclusive mode. If this method returns true, and the current thread is attempting to acquire in shared mode (that is, this method is invoked from #tryAcquireShared) then it is guaranteed that the current thread is not the first queued thread. Used only as a heuristic in ReentrantReadWriteLock.
					 */
					apparentlyFirstQueuedIsExclusive(): boolean;
					/**
					 * Queries whether any threads have been waiting to acquire longer than the current thread.
					 */
					hasQueuedPredecessors(): boolean;
					/**
					 * Returns an estimate of the number of threads waiting to acquire. The value is only an estimate because the number of threads may change dynamically while this method traverses internal data structures. This method is designed for use in monitoring system state, not for synchronization control.
					 */
					public getQueueLength(): number;
					/**
					 * Returns a collection containing threads that may be waiting to acquire. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive monitoring facilities.
					 */
					public getQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a collection containing threads that may be waiting to acquire in exclusive mode. This has the same properties as #getQueuedThreads except that it only returns those threads waiting due to an exclusive acquire.
					 */
					public getExclusiveQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a collection containing threads that may be waiting to acquire in shared mode. This has the same properties as #getQueuedThreads except that it only returns those threads waiting due to a shared acquire.
					 */
					public getSharedQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a string identifying this synchronizer, as well as its state. The state, in brackets, includes the String "State =" followed by the current value of #getState, and either "nonempty" or "empty" depending on whether the queue is empty.
					 */
					public toString(): string;
					/**
					 * Returns true if a node, always one that was initially placed on a condition queue, is now waiting to reacquire on sync queue.
					 * @param node the node
					 */
					isOnSyncQueue(node: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.Node): boolean;
					/**
					 * Transfers a node from a condition queue onto sync queue. Returns true if successful.
					 * @param node the node
					 */
					transferForSignal(node: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.Node): boolean;
					/**
					 * Transfers node, if necessary, to sync queue after a cancelled wait. Returns true if thread was cancelled before being signalled.
					 * @param node its node
					 */
					transferAfterCancelledWait(node: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.Node): boolean;
					/**
					 * Invokes release with current state value; returns saved state. Cancels node and throws exception on failure.
					 * @param node the condition node for this wait
					 */
					fullyRelease(node: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.Node): any;
					/**
					 * Queries whether the given ConditionObject uses this synchronizer as its lock.
					 * @param condition the condition
					 */
					public owns(condition: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject): boolean;
					/**
					 * Queries whether any threads are waiting on the given condition associated with this synchronizer. Note that because timeouts and interrupts may occur at any time, a <tt>true</tt> return does not guarantee that a future <tt>signal</tt> will awaken any threads. This method is designed primarily for use in monitoring of the system state.
					 * @param condition the condition
					 */
					public hasWaiters(condition: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject): boolean;
					/**
					 * Returns an estimate of the number of threads waiting on the given condition associated with this synchronizer. Note that because timeouts and interrupts may occur at any time, the estimate serves only as an upper bound on the actual number of waiters. This method is designed for use in monitoring of the system state, not for synchronization control.
					 * @param condition the condition
					 */
					public getWaitQueueLength(condition: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject): number;
					/**
					 * Returns a collection containing those threads that may be waiting on the given condition associated with this synchronizer. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order.
					 * @param condition the condition
					 */
					public getWaitingThreads(condition: java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject): java.util.ICollection<java.lang.Thread>;
				}
				export module AbstractQueuedLongSynchronizer {
					/**
					 * Wait queue node class.
					 */
					export class Node extends java.lang.Object {
						static class: java.lang.Class<java.util.concurrent.locks.AbstractQueuedLongSynchronizer.Node>;
						/**
						 * Returns true if node is waiting in shared mode
						 */
						isShared(): boolean;
						/**
						 * Returns previous node, or throws NullPointerException if null. Use when predecessor cannot be null. The null check could be elided, but is present to help the VM.
						 */
						predecessor(): java.util.concurrent.locks.AbstractQueuedLongSynchronizer.Node;
					}
					/**
					 * Condition implementation for a AbstractQueuedLongSynchronizer serving as the basis of a Lock implementation.
					 */
					export class ConditionObject extends java.lang.Object implements java.util.concurrent.locks.ICondition, java.io.ISerializable {
						static class: java.lang.Class<java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject>;
						/**
						 * Moves the longest-waiting thread, if one exists, from the wait queue for this condition to the wait queue for the owning lock.
						 */
						public signal(): void;
						/**
						 * Moves all threads from the wait queue for this condition to the wait queue for the owning lock.
						 */
						public signalAll(): void;
						/**
						 * Implements uninterruptible condition wait. <ol> <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. </ol>
						 */
						public awaitUninterruptibly(): void;
						/**
						 * Implements interruptible condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled or interrupted. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. </ol>
						 */
						public await(): void;
						/**
						 * Implements timed condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled, interrupted, or timed out. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. </ol>
						 */
						public awaitNanos(nanosTimeout: number): any;
						/**
						 * Implements absolute timed condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled, interrupted, or timed out. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. <li> If timed out while blocked in step 4, return false, else true. </ol>
						 */
						public awaitUntil(deadline: java.util.Date): boolean;
						/**
						 * Implements timed condition wait. <ol> <li> If current thread is interrupted, throw InterruptedException. <li> Save lock state returned by #getState. <li> Invoke #release with saved state as argument, throwing IllegalMonitorStateException if it fails. <li> Block until signalled, interrupted, or timed out. <li> Reacquire by invoking specialized version of #acquire with saved state as argument. <li> If interrupted while blocked in step 4, throw InterruptedException. <li> If timed out while blocked in step 4, return false, else true. </ol>
						 */
						public await(time: number, unit: java.util.concurrent.TimeUnit): boolean;
						/**
						 * Returns true if this condition was created by the given synchronization object.
						 */
						isOwnedBy(sync: java.util.concurrent.locks.AbstractQueuedLongSynchronizer): boolean;
						/**
						 * Queries whether any threads are waiting on this condition. Implements AbstractQueuedLongSynchronizer#hasWaiters.
						 */
						protected hasWaiters(): boolean;
						/**
						 * Returns an estimate of the number of threads waiting on this condition. Implements AbstractQueuedLongSynchronizer#getWaitQueueLength.
						 */
						protected getWaitQueueLength(): number;
						/**
						 * Returns a collection containing those threads that may be waiting on this Condition. Implements AbstractQueuedLongSynchronizer#getWaitingThreads.
						 */
						protected getWaitingThreads(): java.util.ICollection<java.lang.Thread>;
					}
				}
				/**
				 * Basic thread blocking primitives for creating locks and other synchronization classes.
				 */
				export class LockSupport extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.locks.LockSupport>;
					/**
					 * Makes available the permit for the given thread, if it was not already available. If the thread was blocked on park then it will unblock. Otherwise, its next call to park is guaranteed not to block. This operation is not guaranteed to have any effect at all if the given thread has not been started.
					 * @param thread the thread to unpark, or {@code null}, in which case
					 */
					public static unpark(thread: java.lang.Thread): void;
					/**
					 * Disables the current thread for thread scheduling purposes unless the permit is available.
					 * @param blocker the synchronization object responsible for this
					 */
					public static park(blocker: any): void;
					/**
					 * Disables the current thread for thread scheduling purposes, for up to the specified waiting time, unless the permit is available.
					 * @param blocker the synchronization object responsible for this
					 * @param nanos the maximum number of nanoseconds to wait
					 */
					public static parkNanos(blocker: any, nanos: number): void;
					/**
					 * Disables the current thread for thread scheduling purposes, until the specified deadline, unless the permit is available.
					 * @param blocker the synchronization object responsible for this
					 * @param deadline the absolute time, in milliseconds from the Epoch,
					 */
					public static parkUntil(blocker: any, deadline: number): void;
					/**
					 * Returns the blocker object supplied to the most recent invocation of a park method that has not yet unblocked, or null if not blocked. The value returned is just a momentary snapshot -- the thread may have since unblocked or blocked on a different blocker object.
					 * @param t the thread
					 */
					public static getBlocker(t: java.lang.Thread): any;
					/**
					 * Disables the current thread for thread scheduling purposes unless the permit is available.
					 */
					public static park(): void;
					/**
					 * Disables the current thread for thread scheduling purposes, for up to the specified waiting time, unless the permit is available.
					 * @param nanos the maximum number of nanoseconds to wait
					 */
					public static parkNanos(nanos: number): void;
					/**
					 * Disables the current thread for thread scheduling purposes, until the specified deadline, unless the permit is available.
					 * @param deadline the absolute time, in milliseconds from the Epoch,
					 */
					public static parkUntil(deadline: number): void;
				}
				/**
				 * A <tt>ReadWriteLock</tt> maintains a pair of associated Lock locks, one for read-only operations and one for writing. The #readLock read lock may be held simultaneously by multiple reader threads, so long as there are no writers. The #writeLock write lock is exclusive.
				 */
				interface IReadWriteLock {
					/**
					 * Returns the lock used for reading.
					 */
					readLock(): java.util.concurrent.locks.ILock;
					/**
					 * Returns the lock used for writing.
					 */
					writeLock(): java.util.concurrent.locks.ILock;
				}
				/**
				 * An implementation of ReadWriteLock supporting similar semantics to ReentrantLock.
				 */
				export class ReentrantReadWriteLock extends java.lang.Object implements java.util.concurrent.locks.IReadWriteLock, java.io.ISerializable {
					/**
					 * Creates a new ReentrantReadWriteLock with default (nonfair) ordering properties.
					 */
					constructor();
					/**
					 * Creates a new ReentrantReadWriteLock with the given fairness policy.
					 * @param fair {@code true} if this lock should use a fair ordering policy
					 */
					constructor(fair: boolean);
					static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock>;
					public writeLock(): java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
					public readLock(): java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock;
					/**
					 * Returns true if this lock has fairness set true.
					 */
					public isFair(): boolean;
					/**
					 * Returns the thread that currently owns the write lock, or null if not owned. When this method is called by a thread that is not the owner, the return value reflects a best-effort approximation of current lock status. For example, the owner may be momentarily null even if there are threads trying to acquire the lock but have not yet done so. This method is designed to facilitate construction of subclasses that provide more extensive lock monitoring facilities.
					 */
					protected getOwner(): java.lang.Thread;
					/**
					 * Queries the number of read locks held for this lock. This method is designed for use in monitoring system state, not for synchronization control.
					 */
					public getReadLockCount(): number;
					/**
					 * Queries if the write lock is held by any thread. This method is designed for use in monitoring system state, not for synchronization control.
					 */
					public isWriteLocked(): boolean;
					/**
					 * Queries if the write lock is held by the current thread.
					 */
					public isWriteLockedByCurrentThread(): boolean;
					/**
					 * Queries the number of reentrant write holds on this lock by the current thread. A writer thread has a hold on a lock for each lock action that is not matched by an unlock action.
					 */
					public getWriteHoldCount(): number;
					/**
					 * Queries the number of reentrant read holds on this lock by the current thread. A reader thread has a hold on a lock for each lock action that is not matched by an unlock action.
					 */
					public getReadHoldCount(): number;
					/**
					 * Returns a collection containing threads that may be waiting to acquire the write lock. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive lock monitoring facilities.
					 */
					protected getQueuedWriterThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a collection containing threads that may be waiting to acquire the read lock. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive lock monitoring facilities.
					 */
					protected getQueuedReaderThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Queries whether any threads are waiting to acquire the read or write lock. Note that because cancellations may occur at any time, a true return does not guarantee that any other thread will ever acquire a lock. This method is designed primarily for use in monitoring of the system state.
					 */
					public hasQueuedThreads(): boolean;
					/**
					 * Queries whether the given thread is waiting to acquire either the read or write lock. Note that because cancellations may occur at any time, a true return does not guarantee that this thread will ever acquire a lock. This method is designed primarily for use in monitoring of the system state.
					 * @param thread the thread
					 */
					public hasQueuedThread(thread: java.lang.Thread): boolean;
					/**
					 * Returns an estimate of the number of threads waiting to acquire either the read or write lock. The value is only an estimate because the number of threads may change dynamically while this method traverses internal data structures. This method is designed for use in monitoring of the system state, not for synchronization control.
					 */
					public getQueueLength(): number;
					/**
					 * Returns a collection containing threads that may be waiting to acquire either the read or write lock. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive monitoring facilities.
					 */
					protected getQueuedThreads(): java.util.ICollection<java.lang.Thread>;
					/**
					 * Queries whether any threads are waiting on the given condition associated with the write lock. Note that because timeouts and interrupts may occur at any time, a true return does not guarantee that a future signal will awaken any threads. This method is designed primarily for use in monitoring of the system state.
					 * @param condition the condition
					 */
					public hasWaiters(condition: java.util.concurrent.locks.ICondition): boolean;
					/**
					 * Returns an estimate of the number of threads waiting on the given condition associated with the write lock. Note that because timeouts and interrupts may occur at any time, the estimate serves only as an upper bound on the actual number of waiters. This method is designed for use in monitoring of the system state, not for synchronization control.
					 * @param condition the condition
					 */
					public getWaitQueueLength(condition: java.util.concurrent.locks.ICondition): number;
					/**
					 * Returns a collection containing those threads that may be waiting on the given condition associated with the write lock. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive condition monitoring facilities.
					 * @param condition the condition
					 */
					protected getWaitingThreads(condition: java.util.concurrent.locks.ICondition): java.util.ICollection<java.lang.Thread>;
					/**
					 * Returns a string identifying this lock, as well as its lock state. The state, in brackets, includes the String "Write locks =" followed by the number of reentrantly held write locks, and the String "Read locks =" followed by the number of held read locks.
					 */
					public toString(): string;
				}
				export module ReentrantReadWriteLock {
					/**
					 * The lock returned by method ReentrantReadWriteLock#readLock.
					 */
					export class ReadLock extends java.lang.Object implements java.util.concurrent.locks.ILock, java.io.ISerializable {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock>;
						/**
						 * Acquires the read lock.
						 */
						public lock(): void;
						/**
						 * Acquires the read lock unless the current thread is Thread#interrupt interrupted.
						 */
						public lockInterruptibly(): void;
						/**
						 * Acquires the read lock only if the write lock is not held by another thread at the time of invocation.
						 */
						public tryLock(): boolean;
						/**
						 * Acquires the read lock if the write lock is not held by another thread within the given waiting time and the current thread has not been Thread#interrupt interrupted.
						 * @param timeout the time to wait for the read lock
						 * @param unit the time unit of the timeout argument
						 */
						public tryLock(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
						/**
						 * Attempts to release this lock.
						 */
						public unlock(): void;
						/**
						 * Throws UnsupportedOperationException because ReadLocks do not support conditions.
						 */
						public newCondition(): java.util.concurrent.locks.ICondition;
						/**
						 * Returns a string identifying this lock, as well as its lock state. The state, in brackets, includes the String "Read locks =" followed by the number of held read locks.
						 */
						public toString(): string;
					}
					/**
					 * Nonfair version of Sync
					 */
					export class NonfairSync extends java.util.concurrent.locks.ReentrantReadWriteLock.Sync {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock.NonfairSync>;
						writerShouldBlock(): boolean;
						readerShouldBlock(): boolean;
					}
					/**
					 * The lock returned by method ReentrantReadWriteLock#writeLock.
					 */
					export class WriteLock extends java.lang.Object implements java.util.concurrent.locks.ILock, java.io.ISerializable {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock>;
						/**
						 * Acquires the write lock.
						 */
						public lock(): void;
						/**
						 * Acquires the write lock unless the current thread is Thread#interrupt interrupted.
						 */
						public lockInterruptibly(): void;
						/**
						 * Acquires the write lock only if it is not held by another thread at the time of invocation.
						 */
						public tryLock(): boolean;
						/**
						 * Acquires the write lock if it is not held by another thread within the given waiting time and the current thread has not been Thread#interrupt interrupted.
						 * @param timeout the time to wait for the write lock
						 * @param unit the time unit of the timeout argument
						 */
						public tryLock(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
						/**
						 * Attempts to release this lock.
						 */
						public unlock(): void;
						/**
						 * Returns a Condition instance for use with this Lock instance.
						 */
						public newCondition(): java.util.concurrent.locks.ICondition;
						/**
						 * Returns a string identifying this lock, as well as its lock state. The state, in brackets includes either the String "Unlocked" or the String "Locked by" followed by the Thread#getName name of the owning thread.
						 */
						public toString(): string;
						/**
						 * Queries if this write lock is held by the current thread. Identical in effect to ReentrantReadWriteLock#isWriteLockedByCurrentThread.
						 */
						public isHeldByCurrentThread(): boolean;
						/**
						 * Queries the number of holds on this write lock by the current thread. A thread has a hold on a lock for each lock action that is not matched by an unlock action. Identical in effect to ReentrantReadWriteLock#getWriteHoldCount.
						 */
						public getHoldCount(): number;
					}
					/**
					 * Fair version of Sync
					 */
					export class FairSync extends java.util.concurrent.locks.ReentrantReadWriteLock.Sync {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock.FairSync>;
						writerShouldBlock(): boolean;
						readerShouldBlock(): boolean;
					}
					/**
					 * Synchronization implementation for ReentrantReadWriteLock. Subclassed into fair and nonfair versions.
					 */
					export class Sync extends java.util.concurrent.locks.AbstractQueuedSynchronizer {
						static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock.Sync>;
						/**
						 * Returns the number of shared holds represented in count
						 */
						static sharedCount(c: number): number;
						/**
						 * Returns the number of exclusive holds represented in count
						 */
						static exclusiveCount(c: number): number;
						/**
						 * Returns true if the current thread, when trying to acquire the read lock, and otherwise eligible to do so, should block because of policy for overtaking other waiting threads.
						 */
						readerShouldBlock(): boolean;
						/**
						 * Returns true if the current thread, when trying to acquire the write lock, and otherwise eligible to do so, should block because of policy for overtaking other waiting threads.
						 */
						writerShouldBlock(): boolean;
						protected tryRelease(releases: number): boolean;
						protected tryAcquire(acquires: number): boolean;
						protected tryReleaseShared(unused: number): boolean;
						protected tryAcquireShared(unused: number): number;
						/**
						 * Full version of acquire for reads, that handles CAS misses and reentrant reads not dealt with in tryAcquireShared.
						 */
						fullTryAcquireShared(current: java.lang.Thread): number;
						/**
						 * Performs tryLock for write, enabling barging in both modes. This is identical in effect to tryAcquire except for lack of calls to writerShouldBlock.
						 */
						tryWriteLock(): boolean;
						/**
						 * Performs tryLock for read, enabling barging in both modes. This is identical in effect to tryAcquireShared except for lack of calls to readerShouldBlock.
						 */
						tryReadLock(): boolean;
						protected isHeldExclusively(): boolean;
						newCondition(): java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject;
						getOwner(): java.lang.Thread;
						getReadLockCount(): number;
						isWriteLocked(): boolean;
						getWriteHoldCount(): number;
						getReadHoldCount(): number;
						getCount(): number;
					}
					export module Sync {
						/**
						 * ThreadLocal subclass. Easiest to explicitly define for sake of deserialization mechanics.
						 */
						export class ThreadLocalHoldCounter extends java.lang.ThreadLocal<java.util.concurrent.locks.ReentrantReadWriteLock.Sync.HoldCounter> {
							static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock.Sync.ThreadLocalHoldCounter>;
							public initialValue(): java.util.concurrent.locks.ReentrantReadWriteLock.Sync.HoldCounter;
						}
						/**
						 * A counter for per-thread read hold counts. Maintained as a ThreadLocal; cached in cachedHoldCounter
						 */
						export class HoldCounter extends java.lang.Object {
							static class: java.lang.Class<java.util.concurrent.locks.ReentrantReadWriteLock.Sync.HoldCounter>;
						}
					}
				}
				/**
				 * Lock implementations provide more extensive locking operations than can be obtained using synchronized methods and statements. They allow more flexible structuring, may have quite different properties, and may support multiple associated Condition objects.
				 */
				interface ILock {
					/**
					 * Acquires the lock.
					 */
					lock(): void;
					/**
					 * Acquires the lock unless the current thread is Thread#interrupt interrupted.
					 */
					lockInterruptibly(): void;
					/**
					 * Acquires the lock only if it is free at the time of invocation.
					 */
					tryLock(): boolean;
					/**
					 * Acquires the lock if it is free within the given waiting time and the current thread has not been Thread#interrupt interrupted.
					 * @param time the maximum time to wait for the lock
					 * @param unit the time unit of the {@code time} argument
					 */
					tryLock(time: number, unit: java.util.concurrent.TimeUnit): boolean;
					/**
					 * Releases the lock.
					 */
					unlock(): void;
					/**
					 * Returns a new Condition instance that is bound to this Lock instance.
					 */
					newCondition(): java.util.concurrent.locks.ICondition;
				}
				/**
				 * Condition factors out the Object monitor methods (Object#wait() wait, Object#notify notify and Object#notifyAll notifyAll) into distinct objects to give the effect of having multiple wait-sets per object, by combining them with the use of arbitrary Lock implementations. Where a Lock replaces the use of synchronized methods and statements, a Condition replaces the use of the Object monitor methods.
				 */
				interface ICondition {
					/**
					 * Causes the current thread to wait until it is signalled or Thread#interrupt interrupted.
					 */
					await(): void;
					/**
					 * Causes the current thread to wait until it is signalled.
					 */
					awaitUninterruptibly(): void;
					/**
					 * Causes the current thread to wait until it is signalled or interrupted, or the specified waiting time elapses.
					 * @param nanosTimeout the maximum time to wait, in nanoseconds
					 */
					awaitNanos(nanosTimeout: number): any;
					/**
					 * Causes the current thread to wait until it is signalled or interrupted, or the specified waiting time elapses. This method is behaviorally equivalent to: <pre> awaitNanos(unit.toNanos(time)) > 0</pre>
					 * @param time the maximum time to wait
					 * @param unit the time unit of the {@code time} argument
					 */
					await(time: number, unit: java.util.concurrent.TimeUnit): boolean;
					/**
					 * Causes the current thread to wait until it is signalled or interrupted, or the specified deadline elapses.
					 * @param deadline the absolute time to wait until
					 */
					awaitUntil(deadline: java.util.Date): boolean;
					/**
					 * Wakes up one waiting thread.
					 */
					signal(): void;
					/**
					 * Wakes up all waiting threads.
					 */
					signalAll(): void;
				}
				/**
				 * Lock implementations provide more extensive locking operations than can be obtained using synchronized methods and statements. They allow more flexible structuring, may have quite different properties, and may support multiple associated Condition objects.
				 */
				export class Lock implements java.util.concurrent.locks.ILock {
					constructor(implementation: java.util.concurrent.locks.ILock);
					/**
					 * Acquires the lock.
					 */
					public lock(): void;
					/**
					 * Acquires the lock unless the current thread is Thread#interrupt interrupted.
					 */
					public lockInterruptibly(): void;
					/**
					 * Acquires the lock only if it is free at the time of invocation.
					 */
					public tryLock(): boolean;
					/**
					 * Acquires the lock if it is free within the given waiting time and the current thread has not been Thread#interrupt interrupted.
					 * @param time the maximum time to wait for the lock
					 * @param unit the time unit of the {@code time} argument
					 */
					public tryLock(time: number, unit: java.util.concurrent.TimeUnit): boolean;
					/**
					 * Releases the lock.
					 */
					public unlock(): void;
					/**
					 * Returns a new Condition instance that is bound to this Lock instance.
					 */
					public newCondition(): java.util.concurrent.locks.ICondition;
				}
			}
			/**
			 * An unbounded BlockingQueue blocking queue of <tt>Delayed</tt> elements, in which an element can only be taken when its delay has expired. The <em>head</em> of the queue is that <tt>Delayed</tt> element whose delay expired furthest in the past. If no delay has expired there is no head and <tt>poll</tt> will return <tt>null</tt>. Expiration occurs when an element's <tt>getDelay(TimeUnit.NANOSECONDS)</tt> method returns a value less than or equal to zero. Even though unexpired elements cannot be removed using <tt>take</tt> or <tt>poll</tt>, they are otherwise treated as normal elements. For example, the <tt>size</tt> method returns the count of both expired and unexpired elements. This queue does not permit null elements.
			 */
			export class DelayQueue<E extends java.util.concurrent.IDelayed> extends java.util.AbstractQueue<E> {
				/**
				 * Creates a new <tt>DelayQueue</tt> that is initially empty.
				 */
				constructor();
				/**
				 * Creates a <tt>DelayQueue</tt> initially containing the elements of the given collection of Delayed instances.
				 * @param c the collection of elements to initially contain
				 */
				constructor(c: java.util.ICollection<any>);
				static class: java.lang.Class<java.util.concurrent.DelayQueue<any>>;
				/**
				 * Inserts the specified element into this delay queue.
				 * @param e the element to add
				 */
				public add(e: E): boolean;
				/**
				 * Inserts the specified element into this delay queue.
				 * @param e the element to add
				 */
				public offer(e: E): boolean;
				/**
				 * Inserts the specified element into this delay queue. As the queue is unbounded this method will never block.
				 * @param e the element to add
				 */
				public put(e: E): void;
				/**
				 * Inserts the specified element into this delay queue. As the queue is unbounded this method will never block.
				 * @param e the element to add
				 * @param timeout This parameter is ignored as the method never blocks
				 * @param unit This parameter is ignored as the method never blocks
				 */
				public offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the head of this queue, or returns <tt>null</tt> if this queue has no elements with an expired delay.
				 */
				public poll(): E;
				/**
				 * Retrieves and removes the head of this queue, waiting if necessary until an element with an expired delay is available on this queue.
				 */
				public take(): E;
				/**
				 * Retrieves and removes the head of this queue, waiting if necessary until an element with an expired delay is available on this queue, or the specified wait time expires.
				 */
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Retrieves, but does not remove, the head of this queue, or returns <tt>null</tt> if this queue is empty. Unlike <tt>poll</tt>, if no expired elements are available in the queue, this method returns the element that will expire next, if one exists.
				 */
				public peek(): E;
				public size(): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
				/**
				 * Atomically removes all of the elements from this delay queue. The queue will be empty after this call returns. Elements with an unexpired delay are not waited for; they are simply discarded from the queue.
				 */
				public clear(): void;
				/**
				 * Always returns <tt>Integer.MAX_VALUE</tt> because a <tt>DelayQueue</tt> is not capacity constrained.
				 */
				public remainingCapacity(): number;
				/**
				 * Returns an array containing all of the elements in this queue. The returned array elements are in no particular order.
				 */
				public toArray(): native.Array<any>;
				/**
				 * Returns an array containing all of the elements in this queue; the runtime type of the returned array is that of the specified array. The returned array elements are in no particular order. If the queue fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this queue.
				 * @param a the array into which the elements of the queue are to
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				/**
				 * Removes a single instance of the specified element from this queue, if it is present, whether or not it has expired.
				 */
				public remove(o: any): boolean;
				/**
				 * Identity-based version for use in Itr.remove
				 */
				removeEQ(o: any): void;
				/**
				 * Returns an iterator over all the elements (both expired and unexpired) in this queue. The iterator does not return the elements in any particular order.
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
				 */
				remove(): E;
			}
			export module DelayQueue {
				/**
				 * Snapshot iterator that works off copy of underlying q array.
				 */
				export class Itr extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.DelayQueue.Itr>;
					public hasNext(): boolean;
					public next(): any;
					public remove(): void;
				}
			}
			/**
			 * A mix-in style interface for marking objects that should be acted upon after a given delay.
			 */
			interface IDelayed {
				/**
				 * Returns the remaining delay associated with this object, in the given time unit.
				 * @param unit the time unit
				 */
				getDelay(unit: java.util.concurrent.TimeUnit): any;
			}
			/**
			 * A ScheduledFuture that is Runnable. Successful execution of the <tt>run</tt> method causes completion of the <tt>Future</tt> and allows access to its results. FutureTask Executor 1.6 Doug Lea
			 */
			export class RunnableScheduledFuture<V> implements java.util.concurrent.IRunnableScheduledFuture<V> {
				constructor(implementation: java.util.concurrent.IRunnableScheduledFuture<V>);
				/**
				 * Returns true if this is a periodic task. A periodic task may re-run according to some schedule. A non-periodic task can be run only once.
				 */
				public isPeriodic(): boolean;
			}
			/**
			 * A bounded BlockingQueue blocking queue backed by an array. This queue orders elements FIFO (first-in-first-out). The <em>head</em> of the queue is that element that has been on the queue the longest time. The <em>tail</em> of the queue is that element that has been on the queue the shortest time. New elements are inserted at the tail of the queue, and the queue retrieval operations obtain elements at the head of the queue.
			 */
			export class ArrayBlockingQueue<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
				/**
				 * Creates an ArrayBlockingQueue with the given (fixed) capacity and default access policy.
				 * @param capacity the capacity of this queue
				 */
				constructor(capacity: number);
				/**
				 * Creates an ArrayBlockingQueue with the given (fixed) capacity and the specified access policy.
				 * @param capacity the capacity of this queue
				 * @param fair if {@code true} then queue accesses for threads blocked
				 */
				constructor(capacity: number, fair: boolean);
				/**
				 * Creates an ArrayBlockingQueue with the given (fixed) capacity, the specified access policy and initially containing the elements of the given collection, added in traversal order of the collection's iterator.
				 * @param capacity the capacity of this queue
				 * @param fair if {@code true} then queue accesses for threads blocked
				 * @param c the collection of elements to initially contain
				 */
				constructor(capacity: number, fair: boolean, c: java.util.ICollection<any>);
				static class: java.lang.Class<java.util.concurrent.ArrayBlockingQueue<any>>;
				/**
				 * Circularly increment i.
				 */
				inc(i: number): number;
				/**
				 * Circularly decrement i.
				 */
				dec(i: number): number;
				/**
				 * Returns item at index i.
				 */
				itemAt(i: number): E;
				/**
				 * Deletes item at array index removeIndex. Utility for remove(Object) and iterator.remove. Call only when holding lock.
				 */
				removeAt(removeIndex: number): void;
				/**
				 * Inserts the specified element at the tail of this queue if it is possible to do so immediately without exceeding the queue's capacity, returning true upon success and throwing an IllegalStateException if this queue is full.
				 * @param e the element to add
				 */
				public add(e: E): boolean;
				/**
				 * Inserts the specified element at the tail of this queue if it is possible to do so immediately without exceeding the queue's capacity, returning true upon success and false if this queue is full. This method is generally preferable to method #add, which can fail to insert an element only by throwing an exception.
				 */
				public offer(e: E): boolean;
				/**
				 * Inserts the specified element at the tail of this queue, waiting for space to become available if the queue is full.
				 */
				public put(e: E): void;
				/**
				 * Inserts the specified element at the tail of this queue, waiting up to the specified wait time for space to become available if the queue is full.
				 */
				public offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				public poll(): E;
				public take(): E;
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				public peek(): E;
				/**
				 * Returns the number of elements in this queue.
				 */
				public size(): number;
				/**
				 * Returns the number of additional elements that this queue can ideally (in the absence of memory or resource constraints) accept without blocking. This is always equal to the initial capacity of this queue less the current size of this queue.
				 */
				public remainingCapacity(): number;
				/**
				 * Removes a single instance of the specified element from this queue, if it is present. More formally, removes an element e such that o.equals(e), if this queue contains one or more such elements. Returns true if this queue contained the specified element (or equivalently, if this queue changed as a result of the call).
				 * @param o element to be removed from this queue, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Returns true if this queue contains the specified element. More formally, returns true if and only if this queue contains at least one element e such that o.equals(e).
				 * @param o object to be checked for containment in this queue
				 */
				public contains(o: any): boolean;
				/**
				 * Returns an array containing all of the elements in this queue, in proper sequence.
				 */
				public toArray(): native.Array<any>;
				/**
				 * Returns an array containing all of the elements in this queue, in proper sequence; the runtime type of the returned array is that of the specified array. If the queue fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this queue.
				 * @param a the array into which the elements of the queue are to
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				public toString(): string;
				/**
				 * Atomically removes all of the elements from this queue. The queue will be empty after this call returns.
				 */
				public clear(): void;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
				/**
				 * Returns an iterator over the elements in this queue in proper sequence. The elements will be returned in order from first (head) to last (tail).
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
				 */
				remove(): E;
			}
			export module ArrayBlockingQueue {
				/**
				 * Iterator for ArrayBlockingQueue.
				 */
				export class Itr extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.ArrayBlockingQueue.Itr>;
					isDetached(): boolean;
					/**
					 * For performance reasons, we would like not to acquire a lock in hasNext in the common case. To allow for this, we only access fields (i.e. nextItem) that are not modified by update operations triggered by queue modifications.
					 */
					public hasNext(): boolean;
					public next(): any;
					public remove(): void;
					/**
					 * Called to notify the iterator that the queue is empty, or that it has fallen hopelessly behind, so that it should abandon any further iteration, except possibly to return one more element from next(), as promised by returning true from hasNext().
					 */
					shutdown(): void;
					/**
					 * Called whenever an interior remove (not at takeIndex) occured.
					 */
					removedAt(removedIndex: number): boolean;
					/**
					 * Called whenever takeIndex wraps around to zero.
					 */
					takeIndexWrapped(): boolean;
				}
				/**
				 * Shared data between iterators and their queue, allowing queue modifications to update iterators when elements are removed.
				 */
				export class Itrs extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.ArrayBlockingQueue.Itrs>;
					/**
					 * Sweeps itrs, looking for and expunging stale iterators. If at least one was found, tries harder to find more. Called only from iterating thread.
					 * @param tryHarder whether to start in try-harder mode, because
					 */
					doSomeSweeping(tryHarder: boolean): void;
					/**
					 * Adds a new iterator to the linked list of tracked iterators.
					 */
					register(itr: java.util.concurrent.ArrayBlockingQueue.Itr): void;
					/**
					 * Called whenever takeIndex wraps around to 0.
					 */
					takeIndexWrapped(): void;
					/**
					 * Called whenever an interior remove (not at takeIndex) occured.
					 */
					removedAt(removedIndex: number): void;
					/**
					 * Called whenever the queue becomes empty.
					 */
					queueIsEmpty(): void;
					/**
					 * Called whenever an element has been dequeued (at takeIndex).
					 */
					elementDequeued(): void;
				}
				export module Itrs {
					/**
					 * Node in a linked list of weak iterator references.
					 */
					export class Node extends java.lang.ref.WeakReference<java.util.concurrent.ArrayBlockingQueue.Itr> {
						static class: java.lang.Class<java.util.concurrent.ArrayBlockingQueue.Itrs.Node>;
					}
				}
			}
			/**
			 * A Deque that additionally supports blocking operations that wait for the deque to become non-empty when retrieving an element, and wait for space to become available in the deque when storing an element.
			 */
			export class BlockingDeque<E> implements java.util.concurrent.IBlockingDeque<E> {
				constructor(implementation: java.util.concurrent.IBlockingDeque<E>);
				/**
				 * Inserts the specified element at the front of this deque if it is possible to do so immediately without violating capacity restrictions, throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offerFirst(Object) offerFirst.
				 * @param e the element to add
				 */
				public addFirst(e: E): void;
				/**
				 * Inserts the specified element at the end of this deque if it is possible to do so immediately without violating capacity restrictions, throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offerLast(Object) offerLast.
				 * @param e the element to add
				 */
				public addLast(e: E): void;
				/**
				 * Inserts the specified element at the front of this deque if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #addFirst(Object) addFirst method, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				public offerFirst(e: E): boolean;
				/**
				 * Inserts the specified element at the end of this deque if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #addLast(Object) addLast method, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				public offerLast(e: E): boolean;
				/**
				 * Inserts the specified element at the front of this deque, waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				public putFirst(e: E): void;
				/**
				 * Inserts the specified element at the end of this deque, waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				public putLast(e: E): void;
				/**
				 * Inserts the specified element at the front of this deque, waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				public offerFirst(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Inserts the specified element at the end of this deque, waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				public offerLast(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the first element of this deque, waiting if necessary until an element becomes available.
				 */
				public takeFirst(): E;
				/**
				 * Retrieves and removes the last element of this deque, waiting if necessary until an element becomes available.
				 */
				public takeLast(): E;
				/**
				 * Retrieves and removes the first element of this deque, waiting up to the specified wait time if necessary for an element to become available.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				public pollFirst(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Retrieves and removes the last element of this deque, waiting up to the specified wait time if necessary for an element to become available.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				public pollLast(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
				 * @param o element to be removed from this deque, if present
				 */
				public removeFirstOccurrence(o: any): boolean;
				/**
				 * Removes the last occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the last element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
				 * @param o element to be removed from this deque, if present
				 */
				public removeLastOccurrence(o: any): boolean;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offer(Object) offer.
				 * @param e the element to add
				 */
				public add(e: E): boolean;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #add method, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				public offer(e: E): boolean;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque), waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				public put(e: E): void;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque), waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout 
				 * @param unit 
				 */
				public offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #poll poll only in that it throws an exception if this deque is empty.
				 */
				public remove(): E;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
				 */
				public poll(): E;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), waiting if necessary until an element becomes available.
				 */
				public take(): E;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), waiting up to the specified wait time if necessary for an element to become available.
				 */
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #peek peek only in that it throws an exception if this deque is empty.
				 */
				public element(): E;
				/**
				 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
				 */
				public peek(): E;
				/**
				 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
				 * @param o element to be removed from this deque, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Returns <tt>true</tt> if this deque contains the specified element. More formally, returns <tt>true</tt> if and only if this deque contains at least one element <tt>e</tt> such that <tt>o.equals(e)</tt>.
				 * @param o object to be checked for containment in this deque
				 */
				public contains(o: any): boolean;
				/**
				 * Returns the number of elements in this deque.
				 */
				public size(): number;
				/**
				 * Returns an iterator over the elements in this deque in proper sequence. The elements will be returned in order from first (head) to last (tail).
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Pushes an element onto the stack represented by this deque. In other words, inserts the element at the front of this deque unless it would violate capacity restrictions.
				 */
				public push(e: E): void;
			}
			/**
			 * An object that creates new threads on demand. Using thread factories removes hardwiring of calls to Thread#Thread(Runnable) new Thread, enabling applications to use special thread subclasses, priorities, etc.
			 */
			interface IThreadFactory {
				/**
				 * Constructs a new Thread. Implementations may also initialize priority, name, daemon status, ThreadGroup, etc.
				 * @param r a runnable to be executed by new thread instance
				 */
				newThread(r: java.lang.IRunnable): java.lang.Thread;
			}
			/**
			 * A BlockingQueue blocking queue in which each insert operation must wait for a corresponding remove operation by another thread, and vice versa. A synchronous queue does not have any internal capacity, not even a capacity of one. You cannot <tt>peek</tt> at a synchronous queue because an element is only present when you try to remove it; you cannot insert an element (using any method) unless another thread is trying to remove it; you cannot iterate as there is nothing to iterate. The <em>head</em> of the queue is the element that the first queued inserting thread is trying to add to the queue; if there is no such queued thread then no element is available for removal and <tt>poll()</tt> will return <tt>null</tt>. For purposes of other <tt>Collection</tt> methods (for example <tt>contains</tt>), a <tt>SynchronousQueue</tt> acts as an empty collection. This queue does not permit <tt>null</tt> elements.
			 */
			export class SynchronousQueue<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
				/**
				 * Creates a <tt>SynchronousQueue</tt> with nonfair access policy.
				 */
				constructor();
				/**
				 * Creates a <tt>SynchronousQueue</tt> with the specified fairness policy.
				 * @param fair if true, waiting threads contend in FIFO order for
				 */
				constructor(fair: boolean);
				static class: java.lang.Class<java.util.concurrent.SynchronousQueue<any>>;
				/**
				 * Adds the specified element to this queue, waiting if necessary for another thread to receive it.
				 */
				public put(o: E): void;
				/**
				 * Inserts the specified element into this queue, waiting if necessary up to the specified wait time for another thread to receive it.
				 */
				public offer(o: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Inserts the specified element into this queue, if another thread is waiting to receive it.
				 * @param e the element to add
				 */
				public offer(e: E): boolean;
				/**
				 * Retrieves and removes the head of this queue, waiting if necessary for another thread to insert it.
				 */
				public take(): E;
				/**
				 * Retrieves and removes the head of this queue, waiting if necessary up to the specified wait time, for another thread to insert it.
				 */
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Retrieves and removes the head of this queue, if another thread is currently making an element available.
				 */
				public poll(): E;
				/**
				 * Always returns <tt>true</tt>. A <tt>SynchronousQueue</tt> has no internal capacity.
				 */
				public isEmpty(): boolean;
				/**
				 * Always returns zero. A <tt>SynchronousQueue</tt> has no internal capacity.
				 */
				public size(): number;
				/**
				 * Always returns zero. A <tt>SynchronousQueue</tt> has no internal capacity.
				 */
				public remainingCapacity(): number;
				/**
				 * Does nothing. A <tt>SynchronousQueue</tt> has no internal capacity.
				 */
				public clear(): void;
				/**
				 * Always returns <tt>false</tt>. A <tt>SynchronousQueue</tt> has no internal capacity.
				 * @param o the element
				 */
				public contains(o: any): boolean;
				/**
				 * Always returns <tt>false</tt>. A <tt>SynchronousQueue</tt> has no internal capacity.
				 * @param o the element to remove
				 */
				public remove(o: any): boolean;
				/**
				 * Returns <tt>false</tt> unless the given collection is empty. A <tt>SynchronousQueue</tt> has no internal capacity.
				 * @param c the collection
				 */
				public containsAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Always returns <tt>false</tt>. A <tt>SynchronousQueue</tt> has no internal capacity.
				 * @param c the collection
				 */
				public removeAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Always returns <tt>false</tt>. A <tt>SynchronousQueue</tt> has no internal capacity.
				 * @param c the collection
				 */
				public retainAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Always returns <tt>null</tt>. A <tt>SynchronousQueue</tt> does not return elements unless actively waited on.
				 */
				public peek(): E;
				/**
				 * Returns an empty iterator in which <tt>hasNext</tt> always returns <tt>false</tt>.
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Returns a zero-length array.
				 */
				public toArray(): native.Array<any>;
				/**
				 * Sets the zeroeth element of the specified array to <tt>null</tt> (if the array has non-zero length) and returns it.
				 * @param a the array
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
				/**
				 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
				 */
				remove(): E;
			}
			export module SynchronousQueue {
				export class EmptyIterator<E> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.SynchronousQueue.EmptyIterator<any>>;
					public hasNext(): boolean;
					public next(): E;
					public remove(): void;
				}
				/**
				 * Shared internal API for dual stacks and queues.
				 */
				export class Transferer extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.SynchronousQueue.Transferer>;
					/**
					 * Performs a put or take.
					 * @param e if non-null, the item to be handed to a consumer;
					 * @param timed if this operation should timeout
					 * @param nanos the timeout, in nanoseconds
					 */
					transfer(e: any, timed: boolean, nanos: number): any;
				}
				/**
				 * Dual stack
				 */
				export class TransferStack extends java.util.concurrent.SynchronousQueue.Transferer {
					static class: java.lang.Class<java.util.concurrent.SynchronousQueue.TransferStack>;
					/**
					 * Return true if m has fulfilling bit set
					 */
					static isFulfilling(m: number): boolean;
					casHead(h: java.util.concurrent.SynchronousQueue.TransferStack.SNode, nh: java.util.concurrent.SynchronousQueue.TransferStack.SNode): boolean;
					/**
					 * Creates or resets fields of a node. Called only from transfer where the node to push on stack is lazily created and reused when possible to help reduce intervals between reads and CASes of head and to avoid surges of garbage when CASes to push nodes fail due to contention.
					 */
					static snode(s: java.util.concurrent.SynchronousQueue.TransferStack.SNode, e: any, next: java.util.concurrent.SynchronousQueue.TransferStack.SNode, mode: number): java.util.concurrent.SynchronousQueue.TransferStack.SNode;
					/**
					 * Puts or takes an item.
					 */
					transfer(e: any, timed: boolean, nanos: number): any;
					/**
					 * Spins/blocks until node s is matched by a fulfill operation.
					 * @param s the waiting node
					 * @param timed true if timed wait
					 * @param nanos timeout value
					 */
					awaitFulfill(s: java.util.concurrent.SynchronousQueue.TransferStack.SNode, timed: boolean, nanos: number): java.util.concurrent.SynchronousQueue.TransferStack.SNode;
					/**
					 * Returns true if node s is at head or there is an active fulfiller.
					 */
					shouldSpin(s: java.util.concurrent.SynchronousQueue.TransferStack.SNode): boolean;
					/**
					 * Unlinks s from the stack.
					 */
					clean(s: java.util.concurrent.SynchronousQueue.TransferStack.SNode): void;
				}
				export module TransferStack {
					/**
					 * Node class for TransferStacks.
					 */
					export class SNode extends java.lang.Object {
						static class: java.lang.Class<java.util.concurrent.SynchronousQueue.TransferStack.SNode>;
						casNext(cmp: java.util.concurrent.SynchronousQueue.TransferStack.SNode, val: java.util.concurrent.SynchronousQueue.TransferStack.SNode): boolean;
						/**
						 * Tries to match node s to this node, if so, waking up thread. Fulfillers call tryMatch to identify their waiters. Waiters block until they have been matched.
						 * @param s the node to match
						 */
						tryMatch(s: java.util.concurrent.SynchronousQueue.TransferStack.SNode): boolean;
						/**
						 * Tries to cancel a wait by matching node to itself.
						 */
						tryCancel(): void;
						isCancelled(): boolean;
					}
				}
				export class FifoWaitQueue extends java.util.concurrent.SynchronousQueue.WaitQueue {
					static class: java.lang.Class<java.util.concurrent.SynchronousQueue.FifoWaitQueue>;
				}
				/**
				 * Dual Queue
				 */
				export class TransferQueue extends java.util.concurrent.SynchronousQueue.Transferer {
					static class: java.lang.Class<java.util.concurrent.SynchronousQueue.TransferQueue>;
					/**
					 * Tries to cas nh as new head; if successful, unlink old head's next node to avoid garbage retention.
					 */
					advanceHead(h: java.util.concurrent.SynchronousQueue.TransferQueue.QNode, nh: java.util.concurrent.SynchronousQueue.TransferQueue.QNode): void;
					/**
					 * Tries to cas nt as new tail.
					 */
					advanceTail(t: java.util.concurrent.SynchronousQueue.TransferQueue.QNode, nt: java.util.concurrent.SynchronousQueue.TransferQueue.QNode): void;
					/**
					 * Tries to CAS cleanMe slot.
					 */
					casCleanMe(cmp: java.util.concurrent.SynchronousQueue.TransferQueue.QNode, val: java.util.concurrent.SynchronousQueue.TransferQueue.QNode): boolean;
					/**
					 * Puts or takes an item.
					 */
					transfer(e: any, timed: boolean, nanos: number): any;
					/**
					 * Spins/blocks until node s is fulfilled.
					 * @param s the waiting node
					 * @param e the comparison value for checking match
					 * @param timed true if timed wait
					 * @param nanos timeout value
					 */
					awaitFulfill(s: java.util.concurrent.SynchronousQueue.TransferQueue.QNode, e: any, timed: boolean, nanos: number): any;
					/**
					 * Gets rid of cancelled node s with original predecessor pred.
					 */
					clean(pred: java.util.concurrent.SynchronousQueue.TransferQueue.QNode, s: java.util.concurrent.SynchronousQueue.TransferQueue.QNode): void;
				}
				export module TransferQueue {
					/**
					 * Node class for TransferQueue.
					 */
					export class QNode extends java.lang.Object {
						static class: java.lang.Class<java.util.concurrent.SynchronousQueue.TransferQueue.QNode>;
						casNext(cmp: java.util.concurrent.SynchronousQueue.TransferQueue.QNode, val: java.util.concurrent.SynchronousQueue.TransferQueue.QNode): boolean;
						casItem(cmp: any, val: any): boolean;
						/**
						 * Tries to cancel by CAS'ing ref to this as item.
						 */
						tryCancel(cmp: any): void;
						isCancelled(): boolean;
						/**
						 * Returns true if this node is known to be off the queue because its next pointer has been forgotten due to an advanceHead operation.
						 */
						isOffList(): boolean;
					}
				}
				export class WaitQueue extends java.lang.Object implements java.io.ISerializable {
					static class: java.lang.Class<java.util.concurrent.SynchronousQueue.WaitQueue>;
				}
				export class LifoWaitQueue extends java.util.concurrent.SynchronousQueue.WaitQueue {
					static class: java.lang.Class<java.util.concurrent.SynchronousQueue.LifoWaitQueue>;
				}
			}
			/**
			 * An object that executes submitted Runnable tasks. This interface provides a way of decoupling task submission from the mechanics of how each task will be run, including details of thread use, scheduling, etc. An <tt>Executor</tt> is normally used instead of explicitly creating threads. For example, rather than invoking <tt>new Thread(new(RunnableTask())).start()</tt> for each of a set of tasks, you might use:
			 */
			interface IExecutor {
				/**
				 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
				 * @param command the runnable task
				 */
				execute(command: java.lang.IRunnable): void;
			}
			/**
			 * A <tt>TimeUnit</tt> represents time durations at a given unit of granularity and provides utility methods to convert across units, and to perform timing and delay operations in these units. A <tt>TimeUnit</tt> does not maintain time information, but only helps organize and use time representations that may be maintained separately across various contexts. A nanosecond is defined as one thousandth of a microsecond, a microsecond as one thousandth of a millisecond, a millisecond as one thousandth of a second, a minute as sixty seconds, an hour as sixty minutes, and a day as twenty four hours.
			 */
			export enum TimeUnit {
				NANOSECONDS,
				MICROSECONDS,
				MILLISECONDS,
				SECONDS,
				MINUTES,
				HOURS,
				DAYS
			}
			/**
			 * A Future that is Runnable. Successful execution of the <tt>run</tt> method causes completion of the <tt>Future</tt> and allows access to its results. FutureTask Executor 1.6 Doug Lea
			 */
			export class RunnableFuture<V> implements java.lang.IRunnable, java.util.concurrent.IRunnableFuture<V> {
				constructor(implementation: java.util.concurrent.IRunnableFuture<V>);
				/**
				 * Sets this Future to the result of its computation unless it has been cancelled.
				 */
				public run(): void;
			}
			/**
			 * Exception thrown when a blocking operation times out. Blocking operations for which a timeout is specified need a means to indicate that the timeout has occurred. For many such operations it is possible to return a value that indicates timeout; when that is not possible or desirable then <tt>TimeoutException</tt> should be declared and thrown.
			 */
			export class TimeoutException extends java.lang.Exception {
				/**
				 * Constructs a <tt>TimeoutException</tt> with no specified detail message.
				 */
				constructor();
				/**
				 * Constructs a <tt>TimeoutException</tt> with the specified detail message.
				 * @param message the detail message
				 */
				constructor(message: string);
				static class: java.lang.Class<java.util.concurrent.TimeoutException>;
			}
			/**
			 * A java.util.Queue that additionally supports operations that wait for the queue to become non-empty when retrieving an element, and wait for space to become available in the queue when storing an element.
			 */
			export class BlockingQueue<E> implements java.util.concurrent.IBlockingQueue<E> {
				constructor(implementation: java.util.concurrent.IBlockingQueue<E>);
				/**
				 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted queue, it is generally preferable to use #offer(Object) offer.
				 * @param e the element to add
				 */
				public add(e: E): boolean;
				/**
				 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted queue, this method is generally preferable to #add, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				public offer(e: E): boolean;
				/**
				 * Inserts the specified element into this queue, waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				public put(e: E): void;
				/**
				 * Inserts the specified element into this queue, waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				public offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the head of this queue, waiting if necessary until an element becomes available.
				 */
				public take(): E;
				/**
				 * Retrieves and removes the head of this queue, waiting up to the specified wait time if necessary for an element to become available.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Returns the number of additional elements that this queue can ideally (in the absence of memory or resource constraints) accept without blocking, or <tt>Integer.MAX_VALUE</tt> if there is no intrinsic limit.
				 */
				public remainingCapacity(): number;
				/**
				 * Removes a single instance of the specified element from this queue, if it is present. More formally, removes an element <tt>e</tt> such that <tt>o.equals(e)</tt>, if this queue contains one or more such elements. Returns <tt>true</tt> if this queue contained the specified element (or equivalently, if this queue changed as a result of the call).
				 * @param o element to be removed from this queue, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Returns <tt>true</tt> if this queue contains the specified element. More formally, returns <tt>true</tt> if and only if this queue contains at least one element <tt>e</tt> such that <tt>o.equals(e)</tt>.
				 * @param o object to be checked for containment in this queue
				 */
				public contains(o: any): boolean;
				/**
				 * Removes all available elements from this queue and adds them to the given collection. This operation may be more efficient than repeatedly polling this queue. A failure encountered while attempting to add elements to collection <tt>c</tt> may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result in <tt>IllegalArgumentException</tt>. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.
				 * @param c the collection to transfer elements into
				 */
				public drainTo(c: java.util.ICollection<any>): number;
				/**
				 * Removes at most the given number of available elements from this queue and adds them to the given collection. A failure encountered while attempting to add elements to collection <tt>c</tt> may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result in <tt>IllegalArgumentException</tt>. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.
				 * @param c the collection to transfer elements into
				 * @param maxElements the maximum number of elements to transfer
				 */
				public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
			}
			/**
			 * An ExecutorService that can schedule commands to run after a given delay, or to execute periodically.
			 */
			export class ScheduledExecutorService implements java.util.concurrent.IExecutorService, java.util.concurrent.IScheduledExecutorService {
				constructor(implementation: java.util.concurrent.IScheduledExecutorService);
				/**
				 * Creates and executes a one-shot action that becomes enabled after the given delay.
				 * @param command the task to execute
				 * @param delay the time from now to delay execution
				 * @param unit the time unit of the delay parameter
				 */
				public schedule(command: java.lang.IRunnable, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 * Creates and executes a ScheduledFuture that becomes enabled after the given delay.
				 * @param callable the function to execute
				 * @param delay the time from now to delay execution
				 * @param unit the time unit of the delay parameter
				 */
				public schedule<V>(callable: java.util.concurrent.ICallable<V>, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<V>;
				/**
				 * Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given period; that is executions will commence after <tt>initialDelay</tt> then <tt>initialDelay+period</tt>, then <tt>initialDelay + 2 * period</tt>, and so on. If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor. If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.
				 * @param command the task to execute
				 * @param initialDelay the time to delay first execution
				 * @param period the period between successive executions
				 * @param unit the time unit of the initialDelay and period parameters
				 */
				public scheduleAtFixedRate(command: java.lang.IRunnable, initialDelay: number, period: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 * Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given delay between the termination of one execution and the commencement of the next. If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor.
				 * @param command the task to execute
				 * @param initialDelay the time to delay first execution
				 * @param delay the delay between the termination of one
				 * @param unit the time unit of the initialDelay and delay parameters
				 */
				public scheduleWithFixedDelay(command: java.lang.IRunnable, initialDelay: number, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
				 */
				shutdown(): void;
				/**
				 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
				 */
				shutdownNow(): java.util.IList<java.lang.IRunnable>;
				/**
				 * Returns <tt>true</tt> if this executor has been shut down.
				 */
				isShutdown(): boolean;
				/**
				 * Returns <tt>true</tt> if all tasks have completed following shut down. Note that <tt>isTerminated</tt> is never <tt>true</tt> unless either <tt>shutdown</tt> or <tt>shutdownNow</tt> was called first.
				 */
				isTerminated(): boolean;
				/**
				 * Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future's <tt>get</tt> method will return the task's result upon successful completion.
				 * @param task the task to submit
				 */
				submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return the given result upon successful completion.
				 * @param task the task to submit
				 * @param result the result to return
				 */
				submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return <tt>null</tt> upon <em>successful</em> completion.
				 * @param task the task to submit
				 */
				submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete. Future#isDone is <tt>true</tt> for each element of the returned list. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. Future#isDone is <tt>true</tt> for each element of the returned list. Upon return, tasks that have not completed are cancelled. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>): T;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do before the given timeout elapses. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
				/**
				 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
				 * @param command the runnable task
				 */
				execute(command: java.lang.IRunnable): void;
			}
			/**
			 * An ExecutorService that can schedule commands to run after a given delay, or to execute periodically.
			 */
			interface IScheduledExecutorService extends java.util.concurrent.IExecutorService {
				/**
				 * Creates and executes a one-shot action that becomes enabled after the given delay.
				 * @param command the task to execute
				 * @param delay the time from now to delay execution
				 * @param unit the time unit of the delay parameter
				 */
				schedule(command: java.lang.IRunnable, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 * Creates and executes a ScheduledFuture that becomes enabled after the given delay.
				 * @param callable the function to execute
				 * @param delay the time from now to delay execution
				 * @param unit the time unit of the delay parameter
				 */
				schedule<V>(callable: java.util.concurrent.ICallable<V>, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<V>;
				/**
				 * Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given period; that is executions will commence after <tt>initialDelay</tt> then <tt>initialDelay+period</tt>, then <tt>initialDelay + 2 * period</tt>, and so on. If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor. If any execution of this task takes longer than its period, then subsequent executions may start late, but will not concurrently execute.
				 * @param command the task to execute
				 * @param initialDelay the time to delay first execution
				 * @param period the period between successive executions
				 * @param unit the time unit of the initialDelay and period parameters
				 */
				scheduleAtFixedRate(command: java.lang.IRunnable, initialDelay: number, period: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 * Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given delay between the termination of one execution and the commencement of the next. If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor.
				 * @param command the task to execute
				 * @param initialDelay the time to delay first execution
				 * @param delay the delay between the termination of one
				 * @param unit the time unit of the initialDelay and delay parameters
				 */
				scheduleWithFixedDelay(command: java.lang.IRunnable, initialDelay: number, delay: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IScheduledFuture<any>;
				/**
				 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
				 */
				shutdown(): void;
				/**
				 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
				 */
				shutdownNow(): java.util.IList<java.lang.IRunnable>;
				/**
				 * Returns <tt>true</tt> if this executor has been shut down.
				 */
				isShutdown(): boolean;
				/**
				 * Returns <tt>true</tt> if all tasks have completed following shut down. Note that <tt>isTerminated</tt> is never <tt>true</tt> unless either <tt>shutdown</tt> or <tt>shutdownNow</tt> was called first.
				 */
				isTerminated(): boolean;
				/**
				 * Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future's <tt>get</tt> method will return the task's result upon successful completion.
				 * @param task the task to submit
				 */
				submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return the given result upon successful completion.
				 * @param task the task to submit
				 * @param result the result to return
				 */
				submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return <tt>null</tt> upon <em>successful</em> completion.
				 * @param task the task to submit
				 */
				submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete. Future#isDone is <tt>true</tt> for each element of the returned list. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. Future#isDone is <tt>true</tt> for each element of the returned list. Upon return, tasks that have not completed are cancelled. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>): T;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do before the given timeout elapses. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
				/**
				 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
				 * @param command the runnable task
				 */
				execute(command: java.lang.IRunnable): void;
			}
			/**
			 * A java.util.Map providing additional atomic <tt>putIfAbsent</tt>, <tt>remove</tt>, and <tt>replace</tt> methods.
			 */
			export class ConcurrentMap<K, V> implements java.util.concurrent.IConcurrentMap<K, V> {
				constructor(implementation: java.util.concurrent.IConcurrentMap<K, V>);
				/**
				 * If the specified key is not already associated with a value, associate it with the given value. This is equivalent to <pre> if (!map.containsKey(key)) return map.put(key, value); else return map.get(key);</pre>
				 * @param key key with which the specified value is to be associated
				 * @param value value to be associated with the specified key
				 */
				public putIfAbsent(key: K, value: V): V;
				/**
				 * Removes the entry for a key only if currently mapped to a given value. This is equivalent to <pre> if (map.containsKey(key) && map.get(key).equals(value)) { map.remove(key); return true; else return false;}</pre>
				 * @param key key with which the specified value is associated
				 * @param value value expected to be associated with the specified key
				 */
				public remove(key: any, value: any): boolean;
				/**
				 * Replaces the entry for a key only if currently mapped to a given value. This is equivalent to <pre> if (map.containsKey(key) && map.get(key).equals(oldValue)) { map.put(key, newValue); return true; else return false;}</pre>
				 * @param key key with which the specified value is associated
				 * @param oldValue value expected to be associated with the specified key
				 * @param newValue value to be associated with the specified key
				 */
				public replace(key: K, oldValue: V, newValue: V): boolean;
				/**
				 * Replaces the entry for a key only if currently mapped to some value. This is equivalent to <pre> if (map.containsKey(key)) { return map.put(key, value); else return null;}</pre>
				 * @param key key with which the specified value is associated
				 * @param value value to be associated with the specified key
				 */
				public replace(key: K, value: V): V;
			}
			/**
			 * A <tt>Future</tt> represents the result of an asynchronous computation. Methods are provided to check if the computation is complete, to wait for its completion, and to retrieve the result of the computation. The result can only be retrieved using method <tt>get</tt> when the computation has completed, blocking if necessary until it is ready. Cancellation is performed by the <tt>cancel</tt> method. Additional methods are provided to determine if the task completed normally or was cancelled. Once a computation has completed, the computation cannot be cancelled. If you would like to use a <tt>Future</tt> for the sake of cancellability but not provide a usable result, you can declare types of the form Future<?> and return <tt>null</tt> as a result of the underlying task.
			 */
			interface IFuture<V> {
				/**
				 * Attempts to cancel execution of this task. This attempt will fail if the task has already completed, has already been cancelled, or could not be cancelled for some other reason. If successful, and this task has not started when <tt>cancel</tt> is called, this task should never run. If the task has already started, then the <tt>mayInterruptIfRunning</tt> parameter determines whether the thread executing this task should be interrupted in an attempt to stop the task.
				 * @param mayInterruptIfRunning <tt>true</tt> if the thread executing this
				 */
				cancel(mayInterruptIfRunning: boolean): boolean;
				/**
				 * Returns <tt>true</tt> if this task was cancelled before it completed normally.
				 */
				isCancelled(): boolean;
				/**
				 * Returns <tt>true</tt> if this task completed.
				 */
				isDone(): boolean;
				/**
				 * Waits if necessary for the computation to complete, and then retrieves its result.
				 */
				get(): V;
				/**
				 * Waits if necessary for at most the given time for the computation to complete, and then retrieves its result, if available.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				get(timeout: number, unit: java.util.concurrent.TimeUnit): V;
			}
			/**
			 * An unbounded BlockingQueue blocking queue that uses the same ordering rules as class PriorityQueue and supplies blocking retrieval operations. While this queue is logically unbounded, attempted additions may fail due to resource exhaustion (causing OutOfMemoryError). This class does not permit null elements. A priority queue relying on Comparable natural ordering also does not permit insertion of non-comparable objects (doing so results in ClassCastException).
			 */
			export class PriorityBlockingQueue<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
				/**
				 * Creates a PriorityBlockingQueue with the default initial capacity (11) that orders its elements according to their Comparable natural ordering.
				 */
				constructor();
				/**
				 * Creates a PriorityBlockingQueue with the specified initial capacity that orders its elements according to their Comparable natural ordering.
				 * @param initialCapacity the initial capacity for this priority queue
				 */
				constructor(initialCapacity: number);
				/**
				 * Creates a PriorityBlockingQueue with the specified initial capacity that orders its elements according to the specified comparator.
				 * @param initialCapacity the initial capacity for this priority queue
				 * @param comparator the comparator that will be used to order this
				 */
				constructor(initialCapacity: number, comparator: java.util.IComparator<any>);
				/**
				 * Creates a PriorityBlockingQueue containing the elements in the specified collection. If the specified collection is a SortedSet or a PriorityQueue, this priority queue will be ordered according to the same ordering. Otherwise, this priority queue will be ordered according to the Comparable natural ordering of its elements.
				 * @param c the collection whose elements are to be placed
				 */
				constructor(c: java.util.ICollection<any>);
				static class: java.lang.Class<java.util.concurrent.PriorityBlockingQueue<any>>;
				/**
				 * Inserts the specified element into this priority queue.
				 * @param e the element to add
				 */
				public add(e: E): boolean;
				/**
				 * Inserts the specified element into this priority queue. As the queue is unbounded, this method will never return false.
				 * @param e the element to add
				 */
				public offer(e: E): boolean;
				/**
				 * Inserts the specified element into this priority queue. As the queue is unbounded, this method will never block.
				 * @param e the element to add
				 */
				public put(e: E): void;
				/**
				 * Inserts the specified element into this priority queue. As the queue is unbounded, this method will never block or return false.
				 * @param e the element to add
				 * @param timeout This parameter is ignored as the method never blocks
				 * @param unit This parameter is ignored as the method never blocks
				 */
				public offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				public poll(): E;
				public take(): E;
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				public peek(): E;
				/**
				 * Returns the comparator used to order the elements in this queue, or null if this queue uses the Comparable natural ordering of its elements.
				 */
				public comparator(): java.util.IComparator<any>;
				public size(): number;
				/**
				 * Always returns Integer.MAX_VALUE because a PriorityBlockingQueue is not capacity constrained.
				 */
				public remainingCapacity(): number;
				/**
				 * Removes a single instance of the specified element from this queue, if it is present. More formally, removes an element e such that o.equals(e), if this queue contains one or more such elements. Returns true if and only if this queue contained the specified element (or equivalently, if this queue changed as a result of the call).
				 * @param o element to be removed from this queue, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Identity-based version for use in Itr.remove
				 */
				removeEQ(o: any): void;
				/**
				 * Returns true if this queue contains the specified element. More formally, returns true if and only if this queue contains at least one element e such that o.equals(e).
				 * @param o object to be checked for containment in this queue
				 */
				public contains(o: any): boolean;
				/**
				 * Returns an array containing all of the elements in this queue. The returned array elements are in no particular order.
				 */
				public toArray(): native.Array<any>;
				public toString(): string;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
				/**
				 * Atomically removes all of the elements from this queue. The queue will be empty after this call returns.
				 */
				public clear(): void;
				/**
				 * Returns an array containing all of the elements in this queue; the runtime type of the returned array is that of the specified array. The returned array elements are in no particular order. If the queue fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this queue.
				 * @param a the array into which the elements of the queue are to
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				/**
				 * Returns an iterator over the elements in this queue. The iterator does not return the elements in any particular order.
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
				 */
				remove(): E;
			}
			export module PriorityBlockingQueue {
				/**
				 * Snapshot iterator that works off copy of underlying q array.
				 */
				export class Itr extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.PriorityBlockingQueue.Itr>;
					public hasNext(): boolean;
					public next(): any;
					public remove(): void;
				}
			}
			/**
			 * A synchronization aid that allows a set of threads to all wait for each other to reach a common barrier point. CyclicBarriers are useful in programs involving a fixed sized party of threads that must occasionally wait for each other. The barrier is called <em>cyclic</em> because it can be re-used after the waiting threads are released.
			 */
			export class CyclicBarrier extends java.lang.Object {
				/**
				 * Creates a new <tt>CyclicBarrier</tt> that will trip when the given number of parties (threads) are waiting upon it, and which will execute the given barrier action when the barrier is tripped, performed by the last thread entering the barrier.
				 * @param parties the number of threads that must invoke {@link #await}
				 * @param barrierAction the command to execute when the barrier is
				 */
				constructor(parties: number, barrierAction: java.lang.IRunnable);
				/**
				 * Creates a new <tt>CyclicBarrier</tt> that will trip when the given number of parties (threads) are waiting upon it, and does not perform a predefined action when the barrier is tripped.
				 * @param parties the number of threads that must invoke {@link #await}
				 */
				constructor(parties: number);
				static class: java.lang.Class<java.util.concurrent.CyclicBarrier>;
				/**
				 * Returns the number of parties required to trip this barrier.
				 */
				public getParties(): number;
				/**
				 * Waits until all #getParties parties have invoked <tt>await</tt> on this barrier.
				 */
				public await(): number;
				/**
				 * Waits until all #getParties parties have invoked <tt>await</tt> on this barrier, or the specified waiting time elapses.
				 * @param timeout the time to wait for the barrier
				 * @param unit the time unit of the timeout parameter
				 */
				public await(timeout: number, unit: java.util.concurrent.TimeUnit): number;
				/**
				 * Queries if this barrier is in a broken state.
				 */
				public isBroken(): boolean;
				/**
				 * Resets the barrier to its initial state. If any parties are currently waiting at the barrier, they will return with a BrokenBarrierException. Note that resets <em>after</em> a breakage has occurred for other reasons can be complicated to carry out; threads need to re-synchronize in some other way, and choose one to perform the reset. It may be preferable to instead create a new barrier for subsequent use.
				 */
				public reset(): void;
				/**
				 * Returns the number of parties currently waiting at the barrier. This method is primarily useful for debugging and assertions.
				 */
				public getNumberWaiting(): number;
			}
			export module CyclicBarrier {
				/**
				 * Each use of the barrier is represented as a generation instance. The generation changes whenever the barrier is tripped, or is reset. There can be many generations associated with threads using the barrier - due to the non-deterministic way the lock may be allocated to waiting threads - but only one of these can be active at a time (the one to which <tt>count</tt> applies) and all the rest are either broken or tripped. There need not be an active generation if there has been a break but no subsequent reset.
				 */
				export class Generation extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.CyclicBarrier.Generation>;
				}
			}
			/**
			 * A java.util.Map providing additional atomic <tt>putIfAbsent</tt>, <tt>remove</tt>, and <tt>replace</tt> methods.
			 */
			interface IConcurrentMap<K, V> {
				/**
				 * If the specified key is not already associated with a value, associate it with the given value. This is equivalent to <pre> if (!map.containsKey(key)) return map.put(key, value); else return map.get(key);</pre>
				 * @param key key with which the specified value is to be associated
				 * @param value value to be associated with the specified key
				 */
				putIfAbsent(key: K, value: V): V;
				/**
				 * Removes the entry for a key only if currently mapped to a given value. This is equivalent to <pre> if (map.containsKey(key) && map.get(key).equals(value)) { map.remove(key); return true; else return false;}</pre>
				 * @param key key with which the specified value is associated
				 * @param value value expected to be associated with the specified key
				 */
				remove(key: any, value: any): boolean;
				/**
				 * Replaces the entry for a key only if currently mapped to a given value. This is equivalent to <pre> if (map.containsKey(key) && map.get(key).equals(oldValue)) { map.put(key, newValue); return true; else return false;}</pre>
				 * @param key key with which the specified value is associated
				 * @param oldValue value expected to be associated with the specified key
				 * @param newValue value to be associated with the specified key
				 */
				replace(key: K, oldValue: V, newValue: V): boolean;
				/**
				 * Replaces the entry for a key only if currently mapped to some value. This is equivalent to <pre> if (map.containsKey(key)) { return map.put(key, value); else return null;}</pre>
				 * @param key key with which the specified value is associated
				 * @param value value to be associated with the specified key
				 */
				replace(key: K, value: V): V;
			}
			/**
			 * A delayed result-bearing action that can be cancelled. Usually a scheduled future is the result of scheduling a task with a ScheduledExecutorService.
			 */
			interface IScheduledFuture<V> extends java.util.concurrent.IDelayed {
				/**
				 * Returns the remaining delay associated with this object, in the given time unit.
				 * @param unit the time unit
				 */
				getDelay(unit: java.util.concurrent.TimeUnit): any;
			}
			/**
			 * Exception indicating that the result of a value-producing task, such as a FutureTask, cannot be retrieved because the task was cancelled.
			 */
			export class CancellationException extends java.lang.IllegalStateException {
				/**
				 * Constructs a <tt>CancellationException</tt> with no detail message.
				 */
				constructor();
				/**
				 * Constructs a <tt>CancellationException</tt> with the specified detail message.
				 * @param message the detail message
				 */
				constructor(message: string);
				static class: java.lang.Class<java.util.concurrent.CancellationException>;
			}
			/**
			 * A service that decouples the production of new asynchronous tasks from the consumption of the results of completed tasks. Producers <tt>submit</tt> tasks for execution. Consumers <tt>take</tt> completed tasks and process their results in the order they complete. A <tt>CompletionService</tt> can for example be used to manage asynchronous IO, in which tasks that perform reads are submitted in one part of a program or system, and then acted upon in a different part of the program when the reads complete, possibly in a different order than they were requested.
			 */
			export class CompletionService<V> implements java.util.concurrent.ICompletionService<V> {
				constructor(implementation: java.util.concurrent.ICompletionService<V>);
				/**
				 * Submits a value-returning task for execution and returns a Future representing the pending results of the task. Upon completion, this task may be taken or polled.
				 * @param task the task to submit
				 */
				public submit(task: java.util.concurrent.ICallable<V>): java.util.concurrent.IFuture<V>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. Upon completion, this task may be taken or polled.
				 * @param task the task to submit
				 * @param result the result to return upon successful completion
				 */
				public submit(task: java.lang.IRunnable, result: V): java.util.concurrent.IFuture<V>;
				/**
				 * Retrieves and removes the Future representing the next completed task, waiting if none are yet present.
				 */
				public take(): java.util.concurrent.IFuture<V>;
				/**
				 * Retrieves and removes the Future representing the next completed task or <tt>null</tt> if none are present.
				 */
				public poll(): java.util.concurrent.IFuture<V>;
				/**
				 * Retrieves and removes the Future representing the next completed task, waiting if necessary up to the specified wait time if none are yet present.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IFuture<V>;
			}
			export module atomic {
				/**
				 * An int array in which elements may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. 1.5 Doug Lea
				 */
				export class AtomicIntegerArray extends java.lang.Object implements java.io.ISerializable {
					/**
					 * Creates a new AtomicIntegerArray of the given length, with all elements initially zero.
					 * @param length the length of the array
					 */
					constructor(length: number);
					/**
					 * Creates a new AtomicIntegerArray with the same length as, and all elements copied from, the given array.
					 * @param array the array to copy elements from
					 */
					constructor(array: native.Array<number>);
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicIntegerArray>;
					/**
					 * Returns the length of the array.
					 */
					public length(): number;
					/**
					 * Gets the current value at position i.
					 * @param i the index
					 */
					public get(i: number): number;
					/**
					 * Sets the element at position i to the given value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public set(i: number, newValue: number): void;
					/**
					 * Eventually sets the element at position i to the given value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public lazySet(i: number, newValue: number): void;
					/**
					 * Atomically sets the element at position i to the given value and returns the old value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public getAndSet(i: number, newValue: number): number;
					/**
					 * Atomically sets the element at position i to the given updated value if the current value == the expected value.
					 * @param i the index
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(i: number, expect: number, update: number): boolean;
					/**
					 * Atomically sets the element at position i to the given updated value if the current value == the expected value.
					 * @param i the index
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(i: number, expect: number, update: number): boolean;
					/**
					 * Atomically increments by one the element at index i.
					 * @param i the index
					 */
					public getAndIncrement(i: number): number;
					/**
					 * Atomically decrements by one the element at index i.
					 * @param i the index
					 */
					public getAndDecrement(i: number): number;
					/**
					 * Atomically adds the given value to the element at index i.
					 * @param i the index
					 * @param delta the value to add
					 */
					public getAndAdd(i: number, delta: number): number;
					/**
					 * Atomically increments by one the element at index i.
					 * @param i the index
					 */
					public incrementAndGet(i: number): number;
					/**
					 * Atomically decrements by one the element at index i.
					 * @param i the index
					 */
					public decrementAndGet(i: number): number;
					/**
					 * Atomically adds the given value to the element at index i.
					 * @param i the index
					 * @param delta the value to add
					 */
					public addAndGet(i: number, delta: number): number;
					/**
					 * Returns the String representation of the current values of array.
					 */
					public toString(): string;
				}
				/**
				 * A boolean value that may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. An AtomicBoolean is used in applications such as atomically updated flags, and cannot be used as a replacement for a java.lang.Boolean.
				 */
				export class AtomicBoolean extends java.lang.Object implements java.io.ISerializable {
					/**
					 * Creates a new AtomicBoolean with the given initial value.
					 * @param initialValue the initial value
					 */
					constructor(initialValue: boolean);
					/**
					 * Creates a new AtomicBoolean with initial value false.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicBoolean>;
					/**
					 * Returns the current value.
					 */
					public get(): boolean;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(expect: boolean, update: boolean): boolean;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(expect: boolean, update: boolean): boolean;
					/**
					 * Unconditionally sets to the given value.
					 * @param newValue the new value
					 */
					public set(newValue: boolean): void;
					/**
					 * Eventually sets to the given value.
					 * @param newValue the new value
					 */
					public lazySet(newValue: boolean): void;
					/**
					 * Atomically sets to the given value and returns the previous value.
					 * @param newValue the new value
					 */
					public getAndSet(newValue: boolean): boolean;
					/**
					 * Returns the String representation of the current value.
					 */
					public toString(): string;
				}
				/**
				 * A long value that may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. An AtomicLong is used in applications such as atomically incremented sequence numbers, and cannot be used as a replacement for a java.lang.Long. However, this class does extend Number to allow uniform access by tools and utilities that deal with numerically-based classes.
				 */
				export class AtomicLong extends java.lang.Number implements java.io.ISerializable {
					/**
					 * Creates a new AtomicLong with the given initial value.
					 * @param initialValue the initial value
					 */
					constructor(initialValue: number);
					/**
					 * Creates a new AtomicLong with initial value 0.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicLong>;
					/**
					 * Gets the current value.
					 */
					public get(): any;
					/**
					 * Sets to the given value.
					 * @param newValue the new value
					 */
					public set(newValue: number): void;
					/**
					 * Eventually sets to the given value.
					 * @param newValue the new value
					 */
					public lazySet(newValue: number): void;
					/**
					 * Atomically sets to the given value and returns the old value.
					 * @param newValue the new value
					 */
					public getAndSet(newValue: number): any;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(expect: number, update: number): boolean;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(expect: number, update: number): boolean;
					/**
					 * Atomically increments by one the current value.
					 */
					public getAndIncrement(): any;
					/**
					 * Atomically decrements by one the current value.
					 */
					public getAndDecrement(): any;
					/**
					 * Atomically adds the given value to the current value.
					 * @param delta the value to add
					 */
					public getAndAdd(delta: number): any;
					/**
					 * Atomically increments by one the current value.
					 */
					public incrementAndGet(): any;
					/**
					 * Atomically decrements by one the current value.
					 */
					public decrementAndGet(): any;
					/**
					 * Atomically adds the given value to the current value.
					 * @param delta the value to add
					 */
					public addAndGet(delta: number): any;
					/**
					 * Returns the String representation of the current value.
					 */
					public toString(): string;
					/**
					 * Returns the value of this AtomicLong as an int after a narrowing primitive conversion.
					 */
					public intValue(): number;
					/**
					 * Returns the value of this AtomicLong as a long.
					 */
					public longValue(): any;
					/**
					 * Returns the value of this AtomicLong as a float after a widening primitive conversion.
					 */
					public floatValue(): number;
					/**
					 * Returns the value of this AtomicLong as a double after a widening primitive conversion.
					 */
					public doubleValue(): any;
				}
				/**
				 * A reflection-based utility that enables atomic updates to designated volatile long fields of designated classes. This class is designed for use in atomic data structures in which several fields of the same node are independently subject to atomic updates.
				 */
				export class AtomicLongFieldUpdater<T> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicLongFieldUpdater<any>>;
					/**
					 * Creates and returns an updater for objects with the given field. The Class argument is needed to check that reflective types and generic types match.
					 * @param tclass the class of the objects holding the field
					 * @param fieldName the name of the field to be updated.
					 */
					public static newUpdater<U>(tclass: java.lang.Class<U>, fieldName: string): java.util.concurrent.atomic.AtomicLongFieldUpdater<U>;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given updated value if the current value == the expected value. This method is guaranteed to be atomic with respect to other calls to compareAndSet and set, but not necessarily with respect to other changes in the field.
					 * @param obj An object whose field to conditionally set
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(obj: T, expect: number, update: number): boolean;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given updated value if the current value == the expected value. This method is guaranteed to be atomic with respect to other calls to compareAndSet and set, but not necessarily with respect to other changes in the field.
					 * @param obj An object whose field to conditionally set
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(obj: T, expect: number, update: number): boolean;
					/**
					 * Sets the field of the given object managed by this updater to the given updated value. This operation is guaranteed to act as a volatile store with respect to subsequent invocations of compareAndSet.
					 * @param obj An object whose field to set
					 * @param newValue the new value
					 */
					public set(obj: T, newValue: number): void;
					/**
					 * Eventually sets the field of the given object managed by this updater to the given updated value.
					 * @param obj An object whose field to set
					 * @param newValue the new value
					 */
					public lazySet(obj: T, newValue: number): void;
					/**
					 * Gets the current value held in the field of the given object managed by this updater.
					 * @param obj An object whose field to get
					 */
					public get(obj: T): any;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given value and returns the old value.
					 * @param obj An object whose field to get and set
					 * @param newValue the new value
					 */
					public getAndSet(obj: T, newValue: number): any;
					/**
					 * Atomically increments by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public getAndIncrement(obj: T): any;
					/**
					 * Atomically decrements by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public getAndDecrement(obj: T): any;
					/**
					 * Atomically adds the given value to the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 * @param delta the value to add
					 */
					public getAndAdd(obj: T, delta: number): any;
					/**
					 * Atomically increments by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public incrementAndGet(obj: T): any;
					/**
					 * Atomically decrements by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public decrementAndGet(obj: T): any;
					/**
					 * Atomically adds the given value to the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 * @param delta the value to add
					 */
					public addAndGet(obj: T, delta: number): any;
				}
				export module AtomicLongFieldUpdater {
					export class LockedUpdater<T> extends java.util.concurrent.atomic.AtomicLongFieldUpdater<T> {
						static class: java.lang.Class<java.util.concurrent.atomic.AtomicLongFieldUpdater.LockedUpdater<any>>;
						public compareAndSet(obj: T, expect: number, update: number): boolean;
						public weakCompareAndSet(obj: T, expect: number, update: number): boolean;
						public set(obj: T, newValue: number): void;
						public lazySet(obj: T, newValue: number): void;
						public get(obj: T): any;
					}
					export class CASUpdater<T> extends java.util.concurrent.atomic.AtomicLongFieldUpdater<T> {
						static class: java.lang.Class<java.util.concurrent.atomic.AtomicLongFieldUpdater.CASUpdater<any>>;
						public compareAndSet(obj: T, expect: number, update: number): boolean;
						public weakCompareAndSet(obj: T, expect: number, update: number): boolean;
						public set(obj: T, newValue: number): void;
						public lazySet(obj: T, newValue: number): void;
						public get(obj: T): any;
					}
				}
				/**
				 * A reflection-based utility that enables atomic updates to designated volatile int fields of designated classes. This class is designed for use in atomic data structures in which several fields of the same node are independently subject to atomic updates.
				 */
				export class AtomicIntegerFieldUpdater<T> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicIntegerFieldUpdater<any>>;
					/**
					 * Creates and returns an updater for objects with the given field. The Class argument is needed to check that reflective types and generic types match.
					 * @param tclass the class of the objects holding the field
					 * @param fieldName the name of the field to be updated
					 */
					public static newUpdater<U>(tclass: java.lang.Class<U>, fieldName: string): java.util.concurrent.atomic.AtomicIntegerFieldUpdater<U>;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given updated value if the current value == the expected value. This method is guaranteed to be atomic with respect to other calls to compareAndSet and set, but not necessarily with respect to other changes in the field.
					 * @param obj An object whose field to conditionally set
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(obj: T, expect: number, update: number): boolean;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given updated value if the current value == the expected value. This method is guaranteed to be atomic with respect to other calls to compareAndSet and set, but not necessarily with respect to other changes in the field.
					 * @param obj An object whose field to conditionally set
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(obj: T, expect: number, update: number): boolean;
					/**
					 * Sets the field of the given object managed by this updater to the given updated value. This operation is guaranteed to act as a volatile store with respect to subsequent invocations of compareAndSet.
					 * @param obj An object whose field to set
					 * @param newValue the new value
					 */
					public set(obj: T, newValue: number): void;
					/**
					 * Eventually sets the field of the given object managed by this updater to the given updated value.
					 * @param obj An object whose field to set
					 * @param newValue the new value
					 */
					public lazySet(obj: T, newValue: number): void;
					/**
					 * Gets the current value held in the field of the given object managed by this updater.
					 * @param obj An object whose field to get
					 */
					public get(obj: T): number;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given value and returns the old value.
					 * @param obj An object whose field to get and set
					 * @param newValue the new value
					 */
					public getAndSet(obj: T, newValue: number): number;
					/**
					 * Atomically increments by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public getAndIncrement(obj: T): number;
					/**
					 * Atomically decrements by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public getAndDecrement(obj: T): number;
					/**
					 * Atomically adds the given value to the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 * @param delta the value to add
					 */
					public getAndAdd(obj: T, delta: number): number;
					/**
					 * Atomically increments by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public incrementAndGet(obj: T): number;
					/**
					 * Atomically decrements by one the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 */
					public decrementAndGet(obj: T): number;
					/**
					 * Atomically adds the given value to the current value of the field of the given object managed by this updater.
					 * @param obj An object whose field to get and set
					 * @param delta the value to add
					 */
					public addAndGet(obj: T, delta: number): number;
				}
				export module AtomicIntegerFieldUpdater {
					/**
					 * Standard hotspot implementation using intrinsics
					 */
					export class AtomicIntegerFieldUpdaterImpl<T> extends java.util.concurrent.atomic.AtomicIntegerFieldUpdater<T> {
						static class: java.lang.Class<java.util.concurrent.atomic.AtomicIntegerFieldUpdater.AtomicIntegerFieldUpdaterImpl<any>>;
						public compareAndSet(obj: T, expect: number, update: number): boolean;
						public weakCompareAndSet(obj: T, expect: number, update: number): boolean;
						public set(obj: T, newValue: number): void;
						public lazySet(obj: T, newValue: number): void;
						public get(obj: T): number;
					}
				}
				/**
				 * An int value that may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. An AtomicInteger is used in applications such as atomically incremented counters, and cannot be used as a replacement for an java.lang.Integer. However, this class does extend Number to allow uniform access by tools and utilities that deal with numerically-based classes.
				 */
				export class AtomicInteger extends java.lang.Number implements java.io.ISerializable {
					/**
					 * Creates a new AtomicInteger with the given initial value.
					 * @param initialValue the initial value
					 */
					constructor(initialValue: number);
					/**
					 * Creates a new AtomicInteger with initial value 0.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicInteger>;
					/**
					 * Gets the current value.
					 */
					public get(): number;
					/**
					 * Sets to the given value.
					 * @param newValue the new value
					 */
					public set(newValue: number): void;
					/**
					 * Eventually sets to the given value.
					 * @param newValue the new value
					 */
					public lazySet(newValue: number): void;
					/**
					 * Atomically sets to the given value and returns the old value.
					 * @param newValue the new value
					 */
					public getAndSet(newValue: number): number;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(expect: number, update: number): boolean;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(expect: number, update: number): boolean;
					/**
					 * Atomically increments by one the current value.
					 */
					public getAndIncrement(): number;
					/**
					 * Atomically decrements by one the current value.
					 */
					public getAndDecrement(): number;
					/**
					 * Atomically adds the given value to the current value.
					 * @param delta the value to add
					 */
					public getAndAdd(delta: number): number;
					/**
					 * Atomically increments by one the current value.
					 */
					public incrementAndGet(): number;
					/**
					 * Atomically decrements by one the current value.
					 */
					public decrementAndGet(): number;
					/**
					 * Atomically adds the given value to the current value.
					 * @param delta the value to add
					 */
					public addAndGet(delta: number): number;
					/**
					 * Returns the String representation of the current value.
					 */
					public toString(): string;
					/**
					 * Returns the value of this AtomicInteger as an int.
					 */
					public intValue(): number;
					/**
					 * Returns the value of this AtomicInteger as a long after a widening primitive conversion.
					 */
					public longValue(): any;
					/**
					 * Returns the value of this AtomicInteger as a float after a widening primitive conversion.
					 */
					public floatValue(): number;
					/**
					 * Returns the value of this AtomicInteger as a double after a widening primitive conversion.
					 */
					public doubleValue(): any;
				}
				/**
				 * An array of object references in which elements may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. 1.5 Doug Lea
				 */
				export class AtomicReferenceArray<E> extends java.lang.Object implements java.io.ISerializable {
					/**
					 * Creates a new AtomicReferenceArray of the given length, with all elements initially null.
					 * @param length the length of the array
					 */
					constructor(length: number);
					/**
					 * Creates a new AtomicReferenceArray with the same length as, and all elements copied from, the given array.
					 * @param array the array to copy elements from
					 */
					constructor(array: native.Array<E>);
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicReferenceArray<any>>;
					/**
					 * Returns the length of the array.
					 */
					public length(): number;
					/**
					 * Gets the current value at position i.
					 * @param i the index
					 */
					public get(i: number): E;
					/**
					 * Sets the element at position i to the given value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public set(i: number, newValue: E): void;
					/**
					 * Eventually sets the element at position i to the given value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public lazySet(i: number, newValue: E): void;
					/**
					 * Atomically sets the element at position i to the given value and returns the old value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public getAndSet(i: number, newValue: E): E;
					/**
					 * Atomically sets the element at position i to the given updated value if the current value == the expected value.
					 * @param i the index
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(i: number, expect: E, update: E): boolean;
					/**
					 * Atomically sets the element at position i to the given updated value if the current value == the expected value.
					 * @param i the index
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(i: number, expect: E, update: E): boolean;
					/**
					 * Returns the String representation of the current values of array.
					 */
					public toString(): string;
				}
				/**
				 * An AtomicStampedReference maintains an object reference along with an integer "stamp", that can be updated atomically.
				 */
				export class AtomicStampedReference<V> extends java.lang.Object {
					/**
					 * Creates a new AtomicStampedReference with the given initial values.
					 * @param initialRef the initial reference
					 * @param initialStamp the initial stamp
					 */
					constructor(initialRef: V, initialStamp: number);
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicStampedReference<any>>;
					/**
					 * Returns the current value of the reference.
					 */
					public getReference(): V;
					/**
					 * Returns the current value of the stamp.
					 */
					public getStamp(): number;
					/**
					 * Returns the current values of both the reference and the stamp. Typical usage is int[1] holder; ref = v.get(holder); .
					 * @param stampHolder an array of size of at least one. On return,
					 */
					public get(stampHolder: native.Array<number>): V;
					/**
					 * Atomically sets the value of both the reference and stamp to the given update values if the current reference is == to the expected reference and the current stamp is equal to the expected stamp.
					 * @param expectedReference the expected value of the reference
					 * @param newReference the new value for the reference
					 * @param expectedStamp the expected value of the stamp
					 * @param newStamp the new value for the stamp
					 */
					public weakCompareAndSet(expectedReference: V, newReference: V, expectedStamp: number, newStamp: number): boolean;
					/**
					 * Atomically sets the value of both the reference and stamp to the given update values if the current reference is == to the expected reference and the current stamp is equal to the expected stamp.
					 * @param expectedReference the expected value of the reference
					 * @param newReference the new value for the reference
					 * @param expectedStamp the expected value of the stamp
					 * @param newStamp the new value for the stamp
					 */
					public compareAndSet(expectedReference: V, newReference: V, expectedStamp: number, newStamp: number): boolean;
					/**
					 * Unconditionally sets the value of both the reference and stamp.
					 * @param newReference the new value for the reference
					 * @param newStamp the new value for the stamp
					 */
					public set(newReference: V, newStamp: number): void;
					/**
					 * Atomically sets the value of the stamp to the given update value if the current reference is == to the expected reference. Any given invocation of this operation may fail (return false) spuriously, but repeated invocation when the current value holds the expected value and no other thread is also attempting to set the value will eventually succeed.
					 * @param expectedReference the expected value of the reference
					 * @param newStamp the new value for the stamp
					 */
					public attemptStamp(expectedReference: V, newStamp: number): boolean;
				}
				export module AtomicStampedReference {
					export class Pair<T> extends java.lang.Object {
						static class: java.lang.Class<java.util.concurrent.atomic.AtomicStampedReference.Pair<any>>;
						static of<T>(reference: T, stamp: number): java.util.concurrent.atomic.AtomicStampedReference.Pair<T>;
					}
				}
				/**
				 * A long array in which elements may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. 1.5 Doug Lea
				 */
				export class AtomicLongArray extends java.lang.Object implements java.io.ISerializable {
					/**
					 * Creates a new AtomicLongArray of the given length, with all elements initially zero.
					 * @param length the length of the array
					 */
					constructor(length: number);
					/**
					 * Creates a new AtomicLongArray with the same length as, and all elements copied from, the given array.
					 * @param array the array to copy elements from
					 */
					constructor(array: native.Array<number>);
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicLongArray>;
					/**
					 * Returns the length of the array.
					 */
					public length(): number;
					/**
					 * Gets the current value at position i.
					 * @param i the index
					 */
					public get(i: number): any;
					/**
					 * Sets the element at position i to the given value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public set(i: number, newValue: number): void;
					/**
					 * Eventually sets the element at position i to the given value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public lazySet(i: number, newValue: number): void;
					/**
					 * Atomically sets the element at position i to the given value and returns the old value.
					 * @param i the index
					 * @param newValue the new value
					 */
					public getAndSet(i: number, newValue: number): any;
					/**
					 * Atomically sets the element at position i to the given updated value if the current value == the expected value.
					 * @param i the index
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(i: number, expect: number, update: number): boolean;
					/**
					 * Atomically sets the element at position i to the given updated value if the current value == the expected value.
					 * @param i the index
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(i: number, expect: number, update: number): boolean;
					/**
					 * Atomically increments by one the element at index i.
					 * @param i the index
					 */
					public getAndIncrement(i: number): any;
					/**
					 * Atomically decrements by one the element at index i.
					 * @param i the index
					 */
					public getAndDecrement(i: number): any;
					/**
					 * Atomically adds the given value to the element at index i.
					 * @param i the index
					 * @param delta the value to add
					 */
					public getAndAdd(i: number, delta: number): any;
					/**
					 * Atomically increments by one the element at index i.
					 * @param i the index
					 */
					public incrementAndGet(i: number): any;
					/**
					 * Atomically decrements by one the element at index i.
					 * @param i the index
					 */
					public decrementAndGet(i: number): any;
					/**
					 * Atomically adds the given value to the element at index i.
					 * @param i the index
					 * @param delta the value to add
					 */
					public addAndGet(i: number, delta: number): any;
					/**
					 * Returns the String representation of the current values of array.
					 */
					public toString(): string;
				}
				/**
				 * An object reference that may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables. 1.5 Doug Lea
				 */
				export class AtomicReference<V> extends java.lang.Object implements java.io.ISerializable {
					/**
					 * Creates a new AtomicReference with the given initial value.
					 * @param initialValue the initial value
					 */
					constructor(initialValue: V);
					/**
					 * Creates a new AtomicReference with null initial value.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicReference<any>>;
					/**
					 * Gets the current value.
					 */
					public get(): V;
					/**
					 * Sets to the given value.
					 * @param newValue the new value
					 */
					public set(newValue: V): void;
					/**
					 * Eventually sets to the given value.
					 * @param newValue the new value
					 */
					public lazySet(newValue: V): void;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(expect: V, update: V): boolean;
					/**
					 * Atomically sets the value to the given updated value if the current value == the expected value.
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(expect: V, update: V): boolean;
					/**
					 * Atomically sets to the given value and returns the old value.
					 * @param newValue the new value
					 */
					public getAndSet(newValue: V): V;
					/**
					 * Returns the String representation of the current value.
					 */
					public toString(): string;
				}
				/**
				 * A reflection-based utility that enables atomic updates to designated volatile reference fields of designated classes. This class is designed for use in atomic data structures in which several reference fields of the same node are independently subject to atomic updates. For example, a tree node might be declared as
				 */
				export class AtomicReferenceFieldUpdater<T, V> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicReferenceFieldUpdater<any, any>>;
					/**
					 * Creates and returns an updater for objects with the given field. The Class arguments are needed to check that reflective types and generic types match.
					 * @param tclass the class of the objects holding the field.
					 * @param vclass the class of the field
					 * @param fieldName the name of the field to be updated.
					 */
					public static newUpdater<U, W>(tclass: java.lang.Class<U>, vclass: java.lang.Class<W>, fieldName: string): java.util.concurrent.atomic.AtomicReferenceFieldUpdater<U, W>;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given updated value if the current value == the expected value. This method is guaranteed to be atomic with respect to other calls to compareAndSet and set, but not necessarily with respect to other changes in the field.
					 * @param obj An object whose field to conditionally set
					 * @param expect the expected value
					 * @param update the new value
					 */
					public compareAndSet(obj: T, expect: V, update: V): boolean;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given updated value if the current value == the expected value. This method is guaranteed to be atomic with respect to other calls to compareAndSet and set, but not necessarily with respect to other changes in the field.
					 * @param obj An object whose field to conditionally set
					 * @param expect the expected value
					 * @param update the new value
					 */
					public weakCompareAndSet(obj: T, expect: V, update: V): boolean;
					/**
					 * Sets the field of the given object managed by this updater to the given updated value. This operation is guaranteed to act as a volatile store with respect to subsequent invocations of compareAndSet.
					 * @param obj An object whose field to set
					 * @param newValue the new value
					 */
					public set(obj: T, newValue: V): void;
					/**
					 * Eventually sets the field of the given object managed by this updater to the given updated value.
					 * @param obj An object whose field to set
					 * @param newValue the new value
					 */
					public lazySet(obj: T, newValue: V): void;
					/**
					 * Gets the current value held in the field of the given object managed by this updater.
					 * @param obj An object whose field to get
					 */
					public get(obj: T): V;
					/**
					 * Atomically sets the field of the given object managed by this updater to the given value and returns the old value.
					 * @param obj An object whose field to get and set
					 * @param newValue the new value
					 */
					public getAndSet(obj: T, newValue: V): V;
				}
				export module AtomicReferenceFieldUpdater {
					export class AtomicReferenceFieldUpdaterImpl<T, V> extends java.util.concurrent.atomic.AtomicReferenceFieldUpdater<T, V> {
						static class: java.lang.Class<java.util.concurrent.atomic.AtomicReferenceFieldUpdater.AtomicReferenceFieldUpdaterImpl<any, any>>;
						targetCheck(obj: T): void;
						updateCheck(obj: T, update: V): void;
						public compareAndSet(obj: T, expect: V, update: V): boolean;
						public weakCompareAndSet(obj: T, expect: V, update: V): boolean;
						public set(obj: T, newValue: V): void;
						public lazySet(obj: T, newValue: V): void;
						public get(obj: T): V;
					}
				}
				/**
				 * An AtomicMarkableReference maintains an object reference along with a mark bit, that can be updated atomically.
				 */
				export class AtomicMarkableReference<V> extends java.lang.Object {
					/**
					 * Creates a new AtomicMarkableReference with the given initial values.
					 * @param initialRef the initial reference
					 * @param initialMark the initial mark
					 */
					constructor(initialRef: V, initialMark: boolean);
					static class: java.lang.Class<java.util.concurrent.atomic.AtomicMarkableReference<any>>;
					/**
					 * Returns the current value of the reference.
					 */
					public getReference(): V;
					/**
					 * Returns the current value of the mark.
					 */
					public isMarked(): boolean;
					/**
					 * Returns the current values of both the reference and the mark. Typical usage is boolean[1] holder; ref = v.get(holder); .
					 * @param markHolder an array of size of at least one. On return,
					 */
					public get(markHolder: native.Array<boolean>): V;
					/**
					 * Atomically sets the value of both the reference and mark to the given update values if the current reference is == to the expected reference and the current mark is equal to the expected mark.
					 * @param expectedReference the expected value of the reference
					 * @param newReference the new value for the reference
					 * @param expectedMark the expected value of the mark
					 * @param newMark the new value for the mark
					 */
					public weakCompareAndSet(expectedReference: V, newReference: V, expectedMark: boolean, newMark: boolean): boolean;
					/**
					 * Atomically sets the value of both the reference and mark to the given update values if the current reference is == to the expected reference and the current mark is equal to the expected mark.
					 * @param expectedReference the expected value of the reference
					 * @param newReference the new value for the reference
					 * @param expectedMark the expected value of the mark
					 * @param newMark the new value for the mark
					 */
					public compareAndSet(expectedReference: V, newReference: V, expectedMark: boolean, newMark: boolean): boolean;
					/**
					 * Unconditionally sets the value of both the reference and mark.
					 * @param newReference the new value for the reference
					 * @param newMark the new value for the mark
					 */
					public set(newReference: V, newMark: boolean): void;
					/**
					 * Atomically sets the value of the mark to the given update value if the current reference is == to the expected reference. Any given invocation of this operation may fail (return false) spuriously, but repeated invocation when the current value holds the expected value and no other thread is also attempting to set the value will eventually succeed.
					 * @param expectedReference the expected value of the reference
					 * @param newMark the new value for the mark
					 */
					public attemptMark(expectedReference: V, newMark: boolean): boolean;
				}
				export module AtomicMarkableReference {
					export class Pair<T> extends java.lang.Object {
						static class: java.lang.Class<java.util.concurrent.atomic.AtomicMarkableReference.Pair<any>>;
						static of<T>(reference: T, mark: boolean): java.util.concurrent.atomic.AtomicMarkableReference.Pair<T>;
					}
				}
			}
			/**
			 * A task that returns a result and may throw an exception. Implementors define a single method with no arguments called <tt>call</tt>.
			 */
			interface ICallable<V> {
				/**
				 * Computes a result, or throws an exception if unable to do so.
				 */
				call(): V;
			}
			/**
			 * A service that decouples the production of new asynchronous tasks from the consumption of the results of completed tasks. Producers <tt>submit</tt> tasks for execution. Consumers <tt>take</tt> completed tasks and process their results in the order they complete. A <tt>CompletionService</tt> can for example be used to manage asynchronous IO, in which tasks that perform reads are submitted in one part of a program or system, and then acted upon in a different part of the program when the reads complete, possibly in a different order than they were requested.
			 */
			interface ICompletionService<V> {
				/**
				 * Submits a value-returning task for execution and returns a Future representing the pending results of the task. Upon completion, this task may be taken or polled.
				 * @param task the task to submit
				 */
				submit(task: java.util.concurrent.ICallable<V>): java.util.concurrent.IFuture<V>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. Upon completion, this task may be taken or polled.
				 * @param task the task to submit
				 * @param result the result to return upon successful completion
				 */
				submit(task: java.lang.IRunnable, result: V): java.util.concurrent.IFuture<V>;
				/**
				 * Retrieves and removes the Future representing the next completed task, waiting if none are yet present.
				 */
				take(): java.util.concurrent.IFuture<V>;
				/**
				 * Retrieves and removes the Future representing the next completed task or <tt>null</tt> if none are present.
				 */
				poll(): java.util.concurrent.IFuture<V>;
				/**
				 * Retrieves and removes the Future representing the next completed task, waiting if necessary up to the specified wait time if none are yet present.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				poll(timeout: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IFuture<V>;
			}
			/**
			 * An unbounded thread-safe Queue queue based on linked nodes. This queue orders elements FIFO (first-in-first-out). The <em>head</em> of the queue is that element that has been on the queue the longest time. The <em>tail</em> of the queue is that element that has been on the queue the shortest time. New elements are inserted at the tail of the queue, and the queue retrieval operations obtain elements at the head of the queue. A ConcurrentLinkedQueue is an appropriate choice when many threads will share access to a common collection. Like most other concurrent collection implementations, this class does not permit the use of null elements.
			 */
			export class ConcurrentLinkedQueue<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
				/**
				 * Creates a ConcurrentLinkedQueue that is initially empty.
				 */
				constructor();
				/**
				 * Creates a ConcurrentLinkedQueue initially containing the elements of the given collection, added in traversal order of the collection's iterator.
				 * @param c the collection of elements to initially contain
				 */
				constructor(c: java.util.ICollection<any>);
				static class: java.lang.Class<java.util.concurrent.ConcurrentLinkedQueue<any>>;
				/**
				 * Inserts the specified element at the tail of this queue. As the queue is unbounded, this method will never throw IllegalStateException or return false.
				 */
				public add(e: E): boolean;
				/**
				 * Try to CAS head to p. If successful, repoint old head to itself as sentinel for succ(), below.
				 */
				updateHead(h: java.util.concurrent.ConcurrentLinkedQueue.Node<E>, p: java.util.concurrent.ConcurrentLinkedQueue.Node<E>): void;
				/**
				 * Returns the successor of p, or the head node if p.next has been linked to self, which will only be true if traversing with a stale pointer that is now off the list.
				 */
				succ(p: java.util.concurrent.ConcurrentLinkedQueue.Node<E>): java.util.concurrent.ConcurrentLinkedQueue.Node<E>;
				/**
				 * Inserts the specified element at the tail of this queue. As the queue is unbounded, this method will never return false.
				 */
				public offer(e: E): boolean;
				public poll(): E;
				public peek(): E;
				/**
				 * Returns the first live (non-deleted) node on list, or null if none. This is yet another variant of poll/peek; here returning the first node, not element. We could make peek() a wrapper around first(), but that would cost an extra volatile read of item, and the need to add a retry loop to deal with the possibility of losing a race to a concurrent poll().
				 */
				first(): java.util.concurrent.ConcurrentLinkedQueue.Node<E>;
				/**
				 * Returns true if this queue contains no elements.
				 */
				public isEmpty(): boolean;
				/**
				 * Returns the number of elements in this queue. If this queue contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
				 */
				public size(): number;
				/**
				 * Returns true if this queue contains the specified element. More formally, returns true if and only if this queue contains at least one element e such that o.equals(e).
				 * @param o object to be checked for containment in this queue
				 */
				public contains(o: any): boolean;
				/**
				 * Removes a single instance of the specified element from this queue, if it is present. More formally, removes an element e such that o.equals(e), if this queue contains one or more such elements. Returns true if this queue contained the specified element (or equivalently, if this queue changed as a result of the call).
				 * @param o element to be removed from this queue, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Appends all of the elements in the specified collection to the end of this queue, in the order that they are returned by the specified collection's iterator. Attempts to addAll of a queue to itself result in IllegalArgumentException.
				 * @param c the elements to be inserted into this queue
				 */
				public addAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Returns an array containing all of the elements in this queue, in proper sequence.
				 */
				public toArray(): native.Array<any>;
				/**
				 * Returns an array containing all of the elements in this queue, in proper sequence; the runtime type of the returned array is that of the specified array. If the queue fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this queue.
				 * @param a the array into which the elements of the queue are to
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				/**
				 * Returns an iterator over the elements in this queue in proper sequence. The elements will be returned in order from first (head) to last (tail).
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
				 */
				remove(): E;
			}
			export module ConcurrentLinkedQueue {
				export class Itr extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.ConcurrentLinkedQueue.Itr>;
					public hasNext(): boolean;
					public next(): any;
					public remove(): void;
				}
				export class Node<E> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.ConcurrentLinkedQueue.Node<any>>;
					casItem(cmp: E, val: E): boolean;
					lazySetNext(val: java.util.concurrent.ConcurrentLinkedQueue.Node<E>): void;
					casNext(cmp: java.util.concurrent.ConcurrentLinkedQueue.Node<E>, val: java.util.concurrent.ConcurrentLinkedQueue.Node<E>): boolean;
				}
			}
			/**
			 * A Deque that additionally supports blocking operations that wait for the deque to become non-empty when retrieving an element, and wait for space to become available in the deque when storing an element.
			 */
			interface IBlockingDeque<E> {
				/**
				 * Inserts the specified element at the front of this deque if it is possible to do so immediately without violating capacity restrictions, throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offerFirst(Object) offerFirst.
				 * @param e the element to add
				 */
				addFirst(e: E): void;
				/**
				 * Inserts the specified element at the end of this deque if it is possible to do so immediately without violating capacity restrictions, throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offerLast(Object) offerLast.
				 * @param e the element to add
				 */
				addLast(e: E): void;
				/**
				 * Inserts the specified element at the front of this deque if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #addFirst(Object) addFirst method, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				offerFirst(e: E): boolean;
				/**
				 * Inserts the specified element at the end of this deque if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #addLast(Object) addLast method, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				offerLast(e: E): boolean;
				/**
				 * Inserts the specified element at the front of this deque, waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				putFirst(e: E): void;
				/**
				 * Inserts the specified element at the end of this deque, waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				putLast(e: E): void;
				/**
				 * Inserts the specified element at the front of this deque, waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				offerFirst(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Inserts the specified element at the end of this deque, waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				offerLast(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the first element of this deque, waiting if necessary until an element becomes available.
				 */
				takeFirst(): E;
				/**
				 * Retrieves and removes the last element of this deque, waiting if necessary until an element becomes available.
				 */
				takeLast(): E;
				/**
				 * Retrieves and removes the first element of this deque, waiting up to the specified wait time if necessary for an element to become available.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				pollFirst(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Retrieves and removes the last element of this deque, waiting up to the specified wait time if necessary for an element to become available.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				pollLast(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
				 * @param o element to be removed from this deque, if present
				 */
				removeFirstOccurrence(o: any): boolean;
				/**
				 * Removes the last occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the last element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
				 * @param o element to be removed from this deque, if present
				 */
				removeLastOccurrence(o: any): boolean;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offer(Object) offer.
				 * @param e the element to add
				 */
				add(e: E): boolean;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #add method, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				offer(e: E): boolean;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque), waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				put(e: E): void;
				/**
				 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque), waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout 
				 * @param unit 
				 */
				offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #poll poll only in that it throws an exception if this deque is empty.
				 */
				remove(): E;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
				 */
				poll(): E;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), waiting if necessary until an element becomes available.
				 */
				take(): E;
				/**
				 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), waiting up to the specified wait time if necessary for an element to become available.
				 */
				poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #peek peek only in that it throws an exception if this deque is empty.
				 */
				element(): E;
				/**
				 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
				 */
				peek(): E;
				/**
				 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
				 * @param o element to be removed from this deque, if present
				 */
				remove(o: any): boolean;
				/**
				 * Returns <tt>true</tt> if this deque contains the specified element. More formally, returns <tt>true</tt> if and only if this deque contains at least one element <tt>e</tt> such that <tt>o.equals(e)</tt>.
				 * @param o object to be checked for containment in this deque
				 */
				contains(o: any): boolean;
				/**
				 * Returns the number of elements in this deque.
				 */
				size(): number;
				/**
				 * Returns an iterator over the elements in this deque in proper sequence. The elements will be returned in order from first (head) to last (tail).
				 */
				iterator(): java.util.IIterator<E>;
				/**
				 * Pushes an element onto the stack represented by this deque. In other words, inserts the element at the front of this deque unless it would violate capacity restrictions.
				 */
				push(e: E): void;
			}
			/**
			 * Provides default implementations of ExecutorService execution methods. This class implements the <tt>submit</tt>, <tt>invokeAny</tt> and <tt>invokeAll</tt> methods using a RunnableFuture returned by <tt>newTaskFor</tt>, which defaults to the FutureTask class provided in this package. For example, the implementation of <tt>submit(Runnable)</tt> creates an associated <tt>RunnableFuture</tt> that is executed and returned. Subclasses may override the <tt>newTaskFor</tt> methods to return <tt>RunnableFuture</tt> implementations other than <tt>FutureTask</tt>.
			 */
			export class AbstractExecutorService extends java.lang.Object implements java.util.concurrent.IExecutorService {
				constructor();
				static class: java.lang.Class<java.util.concurrent.AbstractExecutorService>;
				/**
				 * Returns a <tt>RunnableFuture</tt> for the given runnable and default value.
				 * @param runnable the runnable task being wrapped
				 * @param value the default value for the returned future
				 */
				protected newTaskFor<T>(runnable: java.lang.IRunnable, value: T): java.util.concurrent.IRunnableFuture<T>;
				/**
				 * Returns a <tt>RunnableFuture</tt> for the given callable task.
				 * @param callable the callable task being wrapped
				 */
				protected newTaskFor<T>(callable: java.util.concurrent.ICallable<T>): java.util.concurrent.IRunnableFuture<T>;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
				/**
				 *  RejectedExecutionException NullPointerException 
				 */
				public submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
				public invokeAny<T>(tasks: java.util.ICollection<any>): T;
				public invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
				public invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
				public invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
				 */
				shutdown(): void;
				/**
				 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
				 */
				shutdownNow(): java.util.IList<java.lang.IRunnable>;
				/**
				 * Returns <tt>true</tt> if this executor has been shut down.
				 */
				isShutdown(): boolean;
				/**
				 * Returns <tt>true</tt> if all tasks have completed following shut down. Note that <tt>isTerminated</tt> is never <tt>true</tt> unless either <tt>shutdown</tt> or <tt>shutdownNow</tt> was called first.
				 */
				isTerminated(): boolean;
				/**
				 * Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
				 * @param command the runnable task
				 */
				execute(command: java.lang.IRunnable): void;
			}
			/**
			 * A thread-safe random-access list.
			 */
			export class CopyOnWriteArrayList<E> extends java.lang.Object implements java.util.IRandomAccess, java.lang.ICloneable, java.io.ISerializable {
				/**
				 * Creates a new empty instance.
				 */
				constructor();
				/**
				 * Creates a new instance containing the elements of collection.
				 */
				constructor(collection: java.util.ICollection<any>);
				/**
				 * Creates a new instance containing the elements of array.
				 */
				constructor(array: native.Array<E>);
				static class: java.lang.Class<java.util.concurrent.CopyOnWriteArrayList<any>>;
				CowSubList: {
	new (expectedElements: native.Array<any>, from: number, to: number): java.util.concurrent.CopyOnWriteArrayList.CowSubList;
};
				public clone(): any;
				public size(): number;
				public get(index: number): E;
				public contains(o: any): boolean;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				static containsAll(collection: java.util.ICollection<any>, snapshot: native.Array<any>, from: number, to: number): boolean;
				/**
				 * Searches this list for object and returns the index of the first occurrence that is at or after from.
				 */
				public indexOf(object: E, from: number): number;
				public indexOf(object: any): number;
				/**
				 * Searches this list for object and returns the index of the last occurrence that is before to.
				 */
				public lastIndexOf(object: E, to: number): number;
				public lastIndexOf(object: any): number;
				public isEmpty(): boolean;
				/**
				 * Returns an Iterator that iterates over the elements of this list as they were at the time of this method call. Changes to the list made after this method call will not be reflected by the iterator, nor will they trigger a ConcurrentModificationException.
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Returns a ListIterator that iterates over the elements of this list as they were at the time of this method call. Changes to the list made after this method call will not be reflected by the iterator, nor will they trigger a ConcurrentModificationException.
				 */
				public listIterator(index: number): java.util.IListIterator<E>;
				/**
				 * Equivalent to listIterator(0).
				 */
				public listIterator(): java.util.IListIterator<E>;
				public subList(from: number, to: number): java.util.IList<E>;
				public toArray(): native.Array<any>;
				public toArray<T>(contents: native.Array<T>): native.Array<T>;
				public equals(other: any): boolean;
				public hashCode(): number;
				public toString(): string;
				public add(e: E): boolean;
				public add(index: number, e: E): void;
				public addAll(collection: java.util.ICollection<any>): boolean;
				public addAll(index: number, collection: java.util.ICollection<any>): boolean;
				/**
				 * Adds the elements of collection that are not already present in this list. If collection includes a repeated value, at most one occurrence of that value will be added to this list. Elements are added at the end of this list.
				 */
				public addAllAbsent(collection: java.util.ICollection<any>): number;
				/**
				 * Adds object to the end of this list if it is not already present.
				 */
				public addIfAbsent(object: E): boolean;
				public clear(): void;
				public remove(index: number): E;
				public remove(o: any): boolean;
				public removeAll(collection: java.util.ICollection<any>): boolean;
				public retainAll(collection: java.util.ICollection<any>): boolean;
				public set(index: number, e: E): E;
				static lastIndexOf(o: any, data: native.Array<any>, from: number, to: number): number;
				static indexOf(o: any, data: native.Array<any>, from: number, to: number): number;
				getArray(): native.Array<any>;
			}
			export module CopyOnWriteArrayList {
				/**
				 * Iterates an immutable snapshot of the list.
				 */
				export class CowIterator<E> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.CopyOnWriteArrayList.CowIterator<any>>;
					public add(object: E): void;
					public hasNext(): boolean;
					public hasPrevious(): boolean;
					public next(): E;
					public nextIndex(): number;
					public previous(): E;
					public previousIndex(): number;
					public remove(): void;
					public set(object: E): void;
				}
				/**
				 * The sub list is thread safe and supports non-blocking reads. Doing so is more difficult than in the full list, because each read needs to examine four fields worth of state: - the elements array of the full list - two integers for the bounds of this sub list - the expected elements array (to detect concurrent modification)
				 */
				export class CowSubList extends java.util.AbstractList<any> {
					static class: java.lang.Class<java.util.concurrent.CopyOnWriteArrayList.CowSubList>;
					public size(): number;
					public isEmpty(): boolean;
					public get(index: number): any;
					public iterator(): java.util.IIterator<any>;
					public listIterator(): java.util.IListIterator<any>;
					public listIterator(index: number): java.util.IListIterator<any>;
					public indexOf(object: any): number;
					public lastIndexOf(object: any): number;
					public contains(object: any): boolean;
					public containsAll(collection: java.util.ICollection<any>): boolean;
					public subList(from: number, to: number): java.util.IList<any>;
					public remove(index: number): any;
					public clear(): void;
					public add(index: number, object: any): void;
					public add(object: any): boolean;
					public addAll(index: number, collection: java.util.ICollection<any>): boolean;
					public addAll(collection: java.util.ICollection<any>): boolean;
					public set(index: number, object: any): any;
					public remove(object: any): boolean;
					public removeAll(collection: java.util.ICollection<any>): boolean;
					public retainAll(collection: java.util.ICollection<any>): boolean;
				}
				export class Slice extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.CopyOnWriteArrayList.Slice>;
					/**
					 * Throws if index doesn't identify an element in the array.
					 */
					checkElementIndex(index: number): void;
					/**
					 * Throws if index doesn't identify an insertion point in the array. Unlike element index, it's okay to add or iterate at size().
					 */
					checkPositionIndex(index: number): void;
					checkConcurrentModification(snapshot: native.Array<any>): void;
				}
			}
			/**
			 * An optionally-bounded BlockingDeque blocking deque based on linked nodes.
			 */
			export class LinkedBlockingDeque<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
				/**
				 * Creates a LinkedBlockingDeque with a capacity of Integer#MAX_VALUE.
				 */
				constructor();
				/**
				 * Creates a LinkedBlockingDeque with the given (fixed) capacity.
				 * @param capacity the capacity of this deque
				 */
				constructor(capacity: number);
				/**
				 * Creates a LinkedBlockingDeque with a capacity of Integer#MAX_VALUE, initially containing the elements of the given collection, added in traversal order of the collection's iterator.
				 * @param c the collection of elements to initially contain
				 */
				constructor(c: java.util.ICollection<any>);
				static class: java.lang.Class<java.util.concurrent.LinkedBlockingDeque<any>>;
				/**
				 * Unlinks x.
				 */
				unlink(x: java.util.concurrent.LinkedBlockingDeque.Node<E>): void;
				/**
				 *  IllegalStateException NullPointerException 
				 */
				public addFirst(e: E): void;
				/**
				 *  IllegalStateException NullPointerException 
				 */
				public addLast(e: E): void;
				/**
				 *  NullPointerException 
				 */
				public offerFirst(e: E): boolean;
				/**
				 *  NullPointerException 
				 */
				public offerLast(e: E): boolean;
				/**
				 *  NullPointerException InterruptedException 
				 */
				public putFirst(e: E): void;
				/**
				 *  NullPointerException InterruptedException 
				 */
				public putLast(e: E): void;
				/**
				 *  NullPointerException InterruptedException 
				 */
				public offerFirst(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 *  NullPointerException InterruptedException 
				 */
				public offerLast(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 *  NoSuchElementException 
				 */
				public removeFirst(): E;
				/**
				 *  NoSuchElementException 
				 */
				public removeLast(): E;
				public pollFirst(): E;
				public pollLast(): E;
				public takeFirst(): E;
				public takeLast(): E;
				public pollFirst(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				public pollLast(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 *  NoSuchElementException 
				 */
				public getFirst(): E;
				/**
				 *  NoSuchElementException 
				 */
				public getLast(): E;
				public peekFirst(): E;
				public peekLast(): E;
				public removeFirstOccurrence(o: any): boolean;
				public removeLastOccurrence(o: any): boolean;
				/**
				 * Inserts the specified element at the end of this deque unless it would violate capacity restrictions. When using a capacity-restricted deque, it is generally preferable to use method #offer(Object) offer.
				 */
				public add(e: E): boolean;
				/**
				 *  NullPointerException if the specified element is null
				 */
				public offer(e: E): boolean;
				/**
				 *  NullPointerException InterruptedException 
				 */
				public put(e: E): void;
				/**
				 *  NullPointerException InterruptedException 
				 */
				public offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the head of the queue represented by this deque. This method differs from #poll poll only in that it throws an exception if this deque is empty.
				 */
				public remove(): E;
				public poll(): E;
				public take(): E;
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Retrieves, but does not remove, the head of the queue represented by this deque. This method differs from #peek peek only in that it throws an exception if this deque is empty.
				 */
				public element(): E;
				public peek(): E;
				/**
				 * Returns the number of additional elements that this deque can ideally (in the absence of memory or resource constraints) accept without blocking. This is always equal to the initial capacity of this deque less the current size of this deque.
				 */
				public remainingCapacity(): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>): number;
				/**
				 *  UnsupportedOperationException ClassCastException NullPointerException IllegalArgumentException 
				 */
				public drainTo(c: java.util.ICollection<any>, maxElements: number): number;
				/**
				 *  IllegalStateException NullPointerException 
				 */
				public push(e: E): void;
				/**
				 *  NoSuchElementException 
				 */
				public pop(): E;
				/**
				 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element e such that o.equals(e) (if such an element exists). Returns true if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
				 * @param o element to be removed from this deque, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Returns the number of elements in this deque.
				 */
				public size(): number;
				/**
				 * Returns true if this deque contains the specified element. More formally, returns true if and only if this deque contains at least one element e such that o.equals(e).
				 * @param o object to be checked for containment in this deque
				 */
				public contains(o: any): boolean;
				/**
				 * Returns an array containing all of the elements in this deque, in proper sequence (from first to last element).
				 */
				public toArray(): native.Array<any>;
				/**
				 * Returns an array containing all of the elements in this deque, in proper sequence; the runtime type of the returned array is that of the specified array. If the deque fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this deque.
				 * @param a the array into which the elements of the deque are to
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				public toString(): string;
				/**
				 * Atomically removes all of the elements from this deque. The deque will be empty after this call returns.
				 */
				public clear(): void;
				/**
				 * Returns an iterator over the elements in this deque in proper sequence. The elements will be returned in order from first (head) to last (tail).
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Returns an iterator over the elements in this deque in reverse sequential order. The elements will be returned in order from last (tail) to first (head).
				 */
				public descendingIterator(): java.util.IIterator<E>;
			}
			export module LinkedBlockingDeque {
				/**
				 * Forward iterator
				 */
				export class Itr extends java.util.concurrent.LinkedBlockingDeque.AbstractItr {
					static class: java.lang.Class<java.util.concurrent.LinkedBlockingDeque.Itr>;
					firstNode(): java.util.concurrent.LinkedBlockingDeque.Node<any>;
					nextNode(n: java.util.concurrent.LinkedBlockingDeque.Node<any>): java.util.concurrent.LinkedBlockingDeque.Node<any>;
				}
				/**
				 * Doubly-linked list node class
				 */
				export class Node<E> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.LinkedBlockingDeque.Node<any>>;
				}
				/**
				 * Descending iterator
				 */
				export class DescendingItr extends java.util.concurrent.LinkedBlockingDeque.AbstractItr {
					static class: java.lang.Class<java.util.concurrent.LinkedBlockingDeque.DescendingItr>;
					firstNode(): java.util.concurrent.LinkedBlockingDeque.Node<any>;
					nextNode(n: java.util.concurrent.LinkedBlockingDeque.Node<any>): java.util.concurrent.LinkedBlockingDeque.Node<any>;
				}
				/**
				 * Base class for Iterators for LinkedBlockingDeque
				 */
				export class AbstractItr extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.LinkedBlockingDeque.AbstractItr>;
					firstNode(): java.util.concurrent.LinkedBlockingDeque.Node<any>;
					nextNode(n: java.util.concurrent.LinkedBlockingDeque.Node<any>): java.util.concurrent.LinkedBlockingDeque.Node<any>;
					/**
					 * Advances next.
					 */
					advance(): void;
					public hasNext(): boolean;
					public next(): any;
					public remove(): void;
				}
			}
			/**
			 * A java.util.Queue that additionally supports operations that wait for the queue to become non-empty when retrieving an element, and wait for space to become available in the queue when storing an element.
			 */
			interface IBlockingQueue<E> {
				/**
				 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted queue, it is generally preferable to use #offer(Object) offer.
				 * @param e the element to add
				 */
				add(e: E): boolean;
				/**
				 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted queue, this method is generally preferable to #add, which can fail to insert an element only by throwing an exception.
				 * @param e the element to add
				 */
				offer(e: E): boolean;
				/**
				 * Inserts the specified element into this queue, waiting if necessary for space to become available.
				 * @param e the element to add
				 */
				put(e: E): void;
				/**
				 * Inserts the specified element into this queue, waiting up to the specified wait time if necessary for space to become available.
				 * @param e the element to add
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				offer(e: E, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Retrieves and removes the head of this queue, waiting if necessary until an element becomes available.
				 */
				take(): E;
				/**
				 * Retrieves and removes the head of this queue, waiting up to the specified wait time if necessary for an element to become available.
				 * @param timeout how long to wait before giving up, in units of
				 * @param unit a <tt>TimeUnit</tt> determining how to interpret the
				 */
				poll(timeout: number, unit: java.util.concurrent.TimeUnit): E;
				/**
				 * Returns the number of additional elements that this queue can ideally (in the absence of memory or resource constraints) accept without blocking, or <tt>Integer.MAX_VALUE</tt> if there is no intrinsic limit.
				 */
				remainingCapacity(): number;
				/**
				 * Removes a single instance of the specified element from this queue, if it is present. More formally, removes an element <tt>e</tt> such that <tt>o.equals(e)</tt>, if this queue contains one or more such elements. Returns <tt>true</tt> if this queue contained the specified element (or equivalently, if this queue changed as a result of the call).
				 * @param o element to be removed from this queue, if present
				 */
				remove(o: any): boolean;
				/**
				 * Returns <tt>true</tt> if this queue contains the specified element. More formally, returns <tt>true</tt> if and only if this queue contains at least one element <tt>e</tt> such that <tt>o.equals(e)</tt>.
				 * @param o object to be checked for containment in this queue
				 */
				contains(o: any): boolean;
				/**
				 * Removes all available elements from this queue and adds them to the given collection. This operation may be more efficient than repeatedly polling this queue. A failure encountered while attempting to add elements to collection <tt>c</tt> may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result in <tt>IllegalArgumentException</tt>. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.
				 * @param c the collection to transfer elements into
				 */
				drainTo(c: java.util.ICollection<any>): number;
				/**
				 * Removes at most the given number of available elements from this queue and adds them to the given collection. A failure encountered while attempting to add elements to collection <tt>c</tt> may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result in <tt>IllegalArgumentException</tt>. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.
				 * @param c the collection to transfer elements into
				 * @param maxElements the maximum number of elements to transfer
				 */
				drainTo(c: java.util.ICollection<any>, maxElements: number): number;
			}
			/**
			 * A CompletionService that uses a supplied Executor to execute tasks. This class arranges that submitted tasks are, upon completion, placed on a queue accessible using take. The class is lightweight enough to be suitable for transient use when processing groups of tasks.
			 */
			export class ExecutorCompletionService<V> extends java.lang.Object {
				/**
				 * Creates an ExecutorCompletionService using the supplied executor for base task execution and a LinkedBlockingQueue as a completion queue.
				 * @param executor the executor to use
				 */
				constructor(executor: java.util.concurrent.IExecutor);
				/**
				 * Creates an ExecutorCompletionService using the supplied executor for base task execution and the supplied queue as its completion queue.
				 * @param executor the executor to use
				 * @param completionQueue the queue to use as the completion queue
				 */
				constructor(executor: java.util.concurrent.IExecutor, completionQueue: java.util.concurrent.IBlockingQueue<java.util.concurrent.IFuture<V>>);
				static class: java.lang.Class<java.util.concurrent.ExecutorCompletionService<any>>;
				public submit(task: java.util.concurrent.ICallable<V>): java.util.concurrent.IFuture<V>;
				public submit(task: java.lang.IRunnable, result: V): java.util.concurrent.IFuture<V>;
				public take(): java.util.concurrent.IFuture<V>;
				public poll(): java.util.concurrent.IFuture<V>;
				public poll(timeout: number, unit: java.util.concurrent.TimeUnit): java.util.concurrent.IFuture<V>;
			}
			export module ExecutorCompletionService {
				/**
				 * FutureTask extension to enqueue upon completion
				 */
				export class QueueingFuture extends java.util.concurrent.FutureTask<java.lang.Void> {
					static class: java.lang.Class<java.util.concurrent.ExecutorCompletionService.QueueingFuture>;
					protected done(): void;
				}
			}
			/**
			 * A java.util.Set that uses an internal CopyOnWriteArrayList for all of its operations. Thus, it shares the same basic properties: <ul> <li>It is best suited for applications in which set sizes generally stay small, read-only operations vastly outnumber mutative operations, and you need to prevent interference among threads during traversal. <li>It is thread-safe. <li>Mutative operations (<tt>add</tt>, <tt>set</tt>, <tt>remove</tt>, etc.) are expensive since they usually entail copying the entire underlying array. <li>Iterators do not support the mutative <tt>remove</tt> operation. <li>Traversal via iterators is fast and cannot encounter interference from other threads. Iterators rely on unchanging snapshots of the array at the time the iterators were constructed. </ul>
			 */
			export class CopyOnWriteArraySet<E> extends java.util.AbstractSet<E> implements java.io.ISerializable {
				/**
				 * Creates an empty set.
				 */
				constructor();
				/**
				 * Creates a set containing all of the elements of the specified collection.
				 * @param c the collection of elements to initially contain
				 */
				constructor(c: java.util.ICollection<any>);
				static class: java.lang.Class<java.util.concurrent.CopyOnWriteArraySet<any>>;
				/**
				 * Returns the number of elements in this set.
				 */
				public size(): number;
				/**
				 * Returns <tt>true</tt> if this set contains no elements.
				 */
				public isEmpty(): boolean;
				/**
				 * Returns <tt>true</tt> if this set contains the specified element. More formally, returns <tt>true</tt> if and only if this set contains an element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>.
				 * @param o element whose presence in this set is to be tested
				 */
				public contains(o: any): boolean;
				/**
				 * Returns an array containing all of the elements in this set. If this set makes any guarantees as to what order its elements are returned by its iterator, this method must return the elements in the same order.
				 */
				public toArray(): native.Array<any>;
				/**
				 * Returns an array containing all of the elements in this set; the runtime type of the returned array is that of the specified array. If the set fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this set.
				 * @param a the array into which the elements of this set are to be
				 */
				public toArray<T>(a: native.Array<T>): native.Array<T>;
				/**
				 * Removes all of the elements from this set. The set will be empty after this call returns.
				 */
				public clear(): void;
				/**
				 * Removes the specified element from this set if it is present. More formally, removes an element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>, if this set contains such an element. Returns <tt>true</tt> if this set contained the element (or equivalently, if this set changed as a result of the call). (This set will not contain the element once the call returns.)
				 * @param o object to be removed from this set, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Adds the specified element to this set if it is not already present. More formally, adds the specified element <tt>e</tt> to this set if the set contains no element <tt>e2</tt> such that <tt>(e==null&nbsp;?&nbsp;e2==null&nbsp;:&nbsp;e.equals(e2))</tt>. If this set already contains the element, the call leaves the set unchanged and returns <tt>false</tt>.
				 * @param e element to be added to this set
				 */
				public add(e: E): boolean;
				/**
				 * Returns <tt>true</tt> if this set contains all of the elements of the specified collection. If the specified collection is also a set, this method returns <tt>true</tt> if it is a <i>subset</i> of this set.
				 * @param c collection to be checked for containment in this set
				 */
				public containsAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Adds all of the elements in the specified collection to this set if they're not already present. If the specified collection is also a set, the <tt>addAll</tt> operation effectively modifies this set so that its value is the <i>union</i> of the two sets. The behavior of this operation is undefined if the specified collection is modified while the operation is in progress.
				 * @param c collection containing elements to be added to this set
				 */
				public addAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Removes from this set all of its elements that are contained in the specified collection. If the specified collection is also a set, this operation effectively modifies this set so that its value is the <i>asymmetric set difference</i> of the two sets.
				 * @param c collection containing elements to be removed from this set
				 */
				public removeAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Retains only the elements in this set that are contained in the specified collection. In other words, removes from this set all of its elements that are not contained in the specified collection. If the specified collection is also a set, this operation effectively modifies this set so that its value is the <i>intersection</i> of the two sets.
				 * @param c collection containing elements to be retained in this set
				 */
				public retainAll(c: java.util.ICollection<any>): boolean;
				/**
				 * Returns an iterator over the elements contained in this set in the order in which these elements were added.
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Compares the specified object with this set for equality. Returns true if the specified object is the same object as this object, or if it is also a Set and the elements returned by an List#iterator() iterator over the specified set are the same as the elements returned by an iterator over this set. More formally, the two iterators are considered to return the same elements if they return the same number of elements and for every element e1 returned by the iterator over the specified set, there is an element e2 returned by the iterator over this set such that (e1==null ? e2==null : e1.equals(e2)).
				 * @param o object to be compared for equality with this set
				 */
				public equals(o: any): boolean;
			}
			/**
			 * A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each #acquire blocks if necessary until a permit is available, and then takes it. Each #release adds a permit, potentially releasing a blocking acquirer. However, no actual permit objects are used; the Semaphore just keeps a count of the number available and acts accordingly.
			 */
			export class Semaphore extends java.lang.Object implements java.io.ISerializable {
				/**
				 * Creates a Semaphore with the given number of permits and nonfair fairness setting.
				 * @param permits the initial number of permits available.
				 */
				constructor(permits: number);
				/**
				 * Creates a Semaphore with the given number of permits and the given fairness setting.
				 * @param permits the initial number of permits available.
				 * @param fair {@code true} if this semaphore will guarantee
				 */
				constructor(permits: number, fair: boolean);
				static class: java.lang.Class<java.util.concurrent.Semaphore>;
				/**
				 * Acquires a permit from this semaphore, blocking until one is available, or the thread is Thread#interrupt interrupted.
				 */
				public acquire(): void;
				/**
				 * Acquires a permit from this semaphore, blocking until one is available.
				 */
				public acquireUninterruptibly(): void;
				/**
				 * Acquires a permit from this semaphore, only if one is available at the time of invocation.
				 */
				public tryAcquire(): boolean;
				/**
				 * Acquires a permit from this semaphore, if one becomes available within the given waiting time and the current thread has not been Thread#interrupt interrupted.
				 * @param timeout the maximum time to wait for a permit
				 * @param unit the time unit of the {@code timeout} argument
				 */
				public tryAcquire(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Releases a permit, returning it to the semaphore.
				 */
				public release(): void;
				/**
				 * Acquires the given number of permits from this semaphore, blocking until all are available, or the thread is Thread#interrupt interrupted.
				 * @param permits the number of permits to acquire
				 */
				public acquire(permits: number): void;
				/**
				 * Acquires the given number of permits from this semaphore, blocking until all are available.
				 * @param permits the number of permits to acquire
				 */
				public acquireUninterruptibly(permits: number): void;
				/**
				 * Acquires the given number of permits from this semaphore, only if all are available at the time of invocation.
				 * @param permits the number of permits to acquire
				 */
				public tryAcquire(permits: number): boolean;
				/**
				 * Acquires the given number of permits from this semaphore, if all become available within the given waiting time and the current thread has not been Thread#interrupt interrupted.
				 * @param permits the number of permits to acquire
				 * @param timeout the maximum time to wait for the permits
				 * @param unit the time unit of the {@code timeout} argument
				 */
				public tryAcquire(permits: number, timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Releases the given number of permits, returning them to the semaphore.
				 * @param permits the number of permits to release
				 */
				public release(permits: number): void;
				/**
				 * Returns the current number of permits available in this semaphore.
				 */
				public availablePermits(): number;
				/**
				 * Acquires and returns all permits that are immediately available.
				 */
				public drainPermits(): number;
				/**
				 * Shrinks the number of available permits by the indicated reduction. This method can be useful in subclasses that use semaphores to track resources that become unavailable. This method differs from acquire in that it does not block waiting for permits to become available.
				 * @param reduction the number of permits to remove
				 */
				protected reducePermits(reduction: number): void;
				/**
				 * Returns true if this semaphore has fairness set true.
				 */
				public isFair(): boolean;
				/**
				 * Queries whether any threads are waiting to acquire. Note that because cancellations may occur at any time, a true return does not guarantee that any other thread will ever acquire. This method is designed primarily for use in monitoring of the system state.
				 */
				public hasQueuedThreads(): boolean;
				/**
				 * Returns an estimate of the number of threads waiting to acquire. The value is only an estimate because the number of threads may change dynamically while this method traverses internal data structures. This method is designed for use in monitoring of the system state, not for synchronization control.
				 */
				public getQueueLength(): number;
				/**
				 * Returns a collection containing threads that may be waiting to acquire. Because the actual set of threads may change dynamically while constructing this result, the returned collection is only a best-effort estimate. The elements of the returned collection are in no particular order. This method is designed to facilitate construction of subclasses that provide more extensive monitoring facilities.
				 */
				protected getQueuedThreads(): java.util.ICollection<java.lang.Thread>;
				/**
				 * Returns a string identifying this semaphore, as well as its state. The state, in brackets, includes the String "Permits =" followed by the number of permits.
				 */
				public toString(): string;
			}
			export module Semaphore {
				/**
				 * NonFair version
				 */
				export class NonfairSync extends java.util.concurrent.Semaphore.Sync {
					static class: java.lang.Class<java.util.concurrent.Semaphore.NonfairSync>;
					protected tryAcquireShared(acquires: number): number;
				}
				/**
				 * Fair version
				 */
				export class FairSync extends java.util.concurrent.Semaphore.Sync {
					static class: java.lang.Class<java.util.concurrent.Semaphore.FairSync>;
					protected tryAcquireShared(acquires: number): number;
				}
				/**
				 * Synchronization implementation for semaphore. Uses AQS state to represent permits. Subclassed into fair and nonfair versions.
				 */
				export class Sync extends java.util.concurrent.locks.AbstractQueuedSynchronizer {
					static class: java.lang.Class<java.util.concurrent.Semaphore.Sync>;
					getPermits(): number;
					nonfairTryAcquireShared(acquires: number): number;
					protected tryReleaseShared(releases: number): boolean;
					reducePermits(reductions: number): void;
					drainPermits(): number;
				}
			}
			/**
			 * A ConcurrentMap supporting NavigableMap operations, and recursively so for its navigable sub-maps.
			 */
			interface IConcurrentNavigableMap<K, V> {
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				subMap(fromKey: K, fromInclusive: boolean, toKey: K, toInclusive: boolean): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				headMap(toKey: K, inclusive: boolean): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				tailMap(fromKey: K, inclusive: boolean): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				subMap(fromKey: K, toKey: K): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				headMap(toKey: K): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				tailMap(fromKey: K): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 * Returns a reverse order view of the mappings contained in this map. The descending map is backed by this map, so changes to the map are reflected in the descending map, and vice-versa.
				 */
				descendingMap(): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 * Returns a NavigableSet view of the keys contained in this map. The set's iterator returns the keys in ascending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
				 */
				navigableKeySet(): java.util.INavigableSet<K>;
				/**
				 * Returns a NavigableSet view of the keys contained in this map. The set's iterator returns the keys in ascending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
				 */
				keySet(): java.util.INavigableSet<K>;
				/**
				 * Returns a reverse order NavigableSet view of the keys contained in this map. The set's iterator returns the keys in descending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
				 */
				descendingKeySet(): java.util.INavigableSet<K>;
			}
			/**
			 * A task that returns a result and may throw an exception. Implementors define a single method with no arguments called <tt>call</tt>.
			 */
			export class Callable<V> implements java.util.concurrent.ICallable<V> {
				constructor(implementation: java.util.concurrent.ICallable<V>);
				/**
				 * Computes a result, or throws an exception if unable to do so.
				 */
				public call(): V;
			}
			/**
			 * An object that executes submitted Runnable tasks. This interface provides a way of decoupling task submission from the mechanics of how each task will be run, including details of thread use, scheduling, etc. An <tt>Executor</tt> is normally used instead of explicitly creating threads. For example, rather than invoking <tt>new Thread(new(RunnableTask())).start()</tt> for each of a set of tasks, you might use:
			 */
			export class Executor implements java.util.concurrent.IExecutor {
				constructor(implementation: java.util.concurrent.IExecutor);
				/**
				 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
				 * @param command the runnable task
				 */
				public execute(command: java.lang.IRunnable): void;
			}
			/**
			 * A cancellable asynchronous computation. This class provides a base implementation of Future, with methods to start and cancel a computation, query to see if the computation is complete, and retrieve the result of the computation. The result can only be retrieved when the computation has completed; the get methods will block if the computation has not yet completed. Once the computation has completed, the computation cannot be restarted or cancelled (unless the computation is invoked using #runAndReset).
			 */
			export class FutureTask<V> extends java.lang.Object {
				/**
				 * Creates a FutureTask that will, upon running, execute the given Callable.
				 * @param callable the callable task
				 */
				constructor(callable: java.util.concurrent.ICallable<V>);
				/**
				 * Creates a FutureTask that will, upon running, execute the given Runnable, and arrange that get will return the given result on successful completion.
				 * @param runnable the runnable task
				 * @param result the result to return on successful completion. If
				 */
				constructor(runnable: java.lang.IRunnable, result: V);
				static class: java.lang.Class<java.util.concurrent.FutureTask<any>>;
				public isCancelled(): boolean;
				public isDone(): boolean;
				public cancel(mayInterruptIfRunning: boolean): boolean;
				/**
				 *  CancellationException 
				 */
				public get(): V;
				/**
				 *  CancellationException 
				 */
				public get(timeout: number, unit: java.util.concurrent.TimeUnit): V;
				/**
				 * Protected method invoked when this task transitions to state isDone (whether normally or via cancellation). The default implementation does nothing. Subclasses may override this method to invoke completion callbacks or perform bookkeeping. Note that you can query status inside the implementation of this method to determine whether this task has been cancelled.
				 */
				protected done(): void;
				/**
				 * Sets the result of this future to the given value unless this future has already been set or has been cancelled.
				 * @param v the value
				 */
				protected set(v: V): void;
				/**
				 * Causes this future to report an ExecutionException with the given throwable as its cause, unless this future has already been set or has been cancelled.
				 * @param t the cause of failure
				 */
				protected setException(t: java.lang.Throwable): void;
				public run(): void;
				/**
				 * Executes the computation without setting its result, and then resets this future to initial state, failing to do so if the computation encounters an exception or is cancelled. This is designed for use with tasks that intrinsically execute more than once.
				 */
				protected runAndReset(): boolean;
			}
			export module FutureTask {
				/**
				 * Simple linked list nodes to record waiting threads in a Treiber stack. See other classes such as Phaser and SynchronousQueue for more detailed explanation.
				 */
				export class WaitNode extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.FutureTask.WaitNode>;
				}
			}
			/**
			 * A ScheduledFuture that is Runnable. Successful execution of the <tt>run</tt> method causes completion of the <tt>Future</tt> and allows access to its results. FutureTask Executor 1.6 Doug Lea
			 */
			interface IRunnableScheduledFuture<V> {
				/**
				 * Returns true if this is a periodic task. A periodic task may re-run according to some schedule. A non-periodic task can be run only once.
				 */
				isPeriodic(): boolean;
			}
			/**
			 * A hash table supporting full concurrency of retrievals and adjustable expected concurrency for updates. This class obeys the same functional specification as java.util.Hashtable, and includes versions of methods corresponding to each method of <tt>Hashtable</tt>. However, even though all operations are thread-safe, retrieval operations do <em>not</em> entail locking, and there is <em>not</em> any support for locking the entire table in a way that prevents all access. This class is fully interoperable with <tt>Hashtable</tt> in programs that rely on its thread safety but not on its synchronization details.
			 */
			export class ConcurrentHashMap<K, V> extends java.util.AbstractMap<K, V> implements java.io.ISerializable {
				/**
				 * Creates a new, empty map with the specified initial capacity, load factor and concurrency level.
				 * @param initialCapacity the initial capacity. The implementation
				 * @param loadFactor the load factor threshold, used to control resizing.
				 * @param concurrencyLevel the estimated number of concurrently
				 */
				constructor(initialCapacity: number, loadFactor: number, concurrencyLevel: number);
				/**
				 * Creates a new, empty map with the specified initial capacity and load factor and with the default concurrencyLevel (16).
				 * @param initialCapacity The implementation performs internal
				 * @param loadFactor the load factor threshold, used to control resizing.
				 */
				constructor(initialCapacity: number, loadFactor: number);
				/**
				 * Creates a new, empty map with the specified initial capacity, and with default load factor (0.75) and concurrencyLevel (16).
				 * @param initialCapacity the initial capacity. The implementation
				 */
				constructor(initialCapacity: number);
				/**
				 * Creates a new, empty map with a default initial capacity (16), load factor (0.75) and concurrencyLevel (16).
				 */
				constructor();
				/**
				 * Creates a new map with the same mappings as the given map. The map is created with a capacity of 1.5 times the number of mappings in the given map or 16 (whichever is greater), and a default load factor (0.75) and concurrencyLevel (16).
				 * @param m the map
				 */
				constructor(m: java.util.IMap<any, any>);
				static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap<any, any>>;
				/**
				 * Gets the ith element of given table (if nonnull) with volatile read semantics. Note: This is manually integrated into a few performance-sensitive methods to reduce call overhead.
				 */
				static entryAt<K, V>(tab: native.Array<java.util.concurrent.ConcurrentHashMap.HashEntry<K, V>>, i: number): java.util.concurrent.ConcurrentHashMap.HashEntry<K, V>;
				/**
				 * Sets the ith element of given table, with volatile write semantics. (See above about use of putOrderedObject.)
				 */
				static setEntryAt<K, V>(tab: native.Array<java.util.concurrent.ConcurrentHashMap.HashEntry<K, V>>, i: number, e: java.util.concurrent.ConcurrentHashMap.HashEntry<K, V>): void;
				/**
				 * Gets the jth element of given segment array (if nonnull) with volatile element access semantics via Unsafe. (The null check can trigger harmlessly only during deserialization.) Note: because each element of segments array is set only once (using fully ordered writes), some performance-sensitive methods rely on this method only as a recheck upon null reads.
				 */
				static segmentAt<K, V>(ss: native.Array<java.util.concurrent.ConcurrentHashMap.Segment<K, V>>, j: number): java.util.concurrent.ConcurrentHashMap.Segment<K, V>;
				/**
				 * Gets the table entry for the given segment and hash code.
				 */
				static entryForHash<K, V>(seg: java.util.concurrent.ConcurrentHashMap.Segment<K, V>, h: number): java.util.concurrent.ConcurrentHashMap.HashEntry<K, V>;
				/**
				 * Returns <tt>true</tt> if this map contains no key-value mappings.
				 */
				public isEmpty(): boolean;
				/**
				 * Returns the number of key-value mappings in this map. If the map contains more than <tt>Integer.MAX_VALUE</tt> elements, returns <tt>Integer.MAX_VALUE</tt>.
				 */
				public size(): number;
				/**
				 * Returns the value to which the specified key is mapped, or null if this map contains no mapping for the key.
				 */
				public get(key: any): V;
				/**
				 * Tests if the specified object is a key in this table.
				 * @param key possible key
				 */
				public containsKey(key: any): boolean;
				/**
				 * Returns <tt>true</tt> if this map maps one or more keys to the specified value. Note: This method requires a full internal traversal of the hash table, and so is much slower than method <tt>containsKey</tt>.
				 * @param value value whose presence in this map is to be tested
				 */
				public containsValue(value: any): boolean;
				/**
				 * Legacy method testing if some key maps into the specified value in this table. This method is identical in functionality to #containsValue, and exists solely to ensure full compatibility with class java.util.Hashtable, which supported this method prior to introduction of the Java Collections framework.
				 * @param value a value to search for
				 */
				public contains(value: any): boolean;
				/**
				 * Maps the specified key to the specified value in this table. Neither the key nor the value can be null.
				 * @param key key with which the specified value is to be associated
				 * @param value value to be associated with the specified key
				 */
				public put(key: K, value: V): V;
				/**
				 * 
				 */
				public putIfAbsent(key: K, value: V): V;
				/**
				 * Copies all of the mappings from the specified map to this one. These mappings replace any mappings that this map had for any of the keys currently in the specified map.
				 * @param m mappings to be stored in this map
				 */
				public putAll(m: java.util.IMap<any, any>): void;
				/**
				 * Removes the key (and its corresponding value) from this map. This method does nothing if the key is not in the map.
				 * @param key the key that needs to be removed
				 */
				public remove(key: any): V;
				/**
				 * 
				 */
				public remove(key: any, value: any): boolean;
				/**
				 * 
				 */
				public replace(key: K, oldValue: V, newValue: V): boolean;
				/**
				 * 
				 */
				public replace(key: K, value: V): V;
				/**
				 * Removes all of the mappings from this map.
				 */
				public clear(): void;
				/**
				 * Returns a Set view of the keys contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from this map, via the <tt>Iterator.remove</tt>, <tt>Set.remove</tt>, <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt> operations. It does not support the <tt>add</tt> or <tt>addAll</tt> operations.
				 */
				public keySet(): java.util.ISet<K>;
				/**
				 * Returns a Collection view of the values contained in this map. The collection is backed by the map, so changes to the map are reflected in the collection, and vice-versa. The collection supports element removal, which removes the corresponding mapping from this map, via the <tt>Iterator.remove</tt>, <tt>Collection.remove</tt>, <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt> operations. It does not support the <tt>add</tt> or <tt>addAll</tt> operations.
				 */
				public values(): java.util.ICollection<V>;
				/**
				 * Returns a Set view of the mappings contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from the map, via the <tt>Iterator.remove</tt>, <tt>Set.remove</tt>, <tt>removeAll</tt>, <tt>retainAll</tt>, and <tt>clear</tt> operations. It does not support the <tt>add</tt> or <tt>addAll</tt> operations.
				 */
				public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
				/**
				 * Returns an enumeration of the keys in this table.
				 */
				public keys(): java.util.IEnumeration<K>;
				/**
				 * Returns an enumeration of the values in this table.
				 */
				public elements(): java.util.IEnumeration<V>;
			}
			export module ConcurrentHashMap {
				export class KeySet extends java.util.AbstractSet<any> {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.KeySet>;
					public iterator(): java.util.IIterator<any>;
					public size(): number;
					public isEmpty(): boolean;
					public contains(o: any): boolean;
					public remove(o: any): boolean;
					public clear(): void;
				}
				/**
				 * ConcurrentHashMap list entry. Note that this is never exported out as a user-visible Map.Entry.
				 */
				export class HashEntry<K, V> extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.HashEntry<any, any>>;
					/**
					 * Sets next field with volatile write semantics. (See above about use of putOrderedObject.)
					 */
					setNext(n: java.util.concurrent.ConcurrentHashMap.HashEntry<K, V>): void;
				}
				export class HashIterator extends java.lang.Object {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.HashIterator>;
					/**
					 * Sets nextEntry to first node of next non-empty table (in backwards order, to simplify checks).
					 */
					advance(): void;
					nextEntry(): java.util.concurrent.ConcurrentHashMap.HashEntry<any, any>;
					public hasNext(): boolean;
					public hasMoreElements(): boolean;
					public remove(): void;
				}
				export class KeyIterator extends java.util.concurrent.ConcurrentHashMap.HashIterator {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.KeyIterator>;
					public next(): any;
					public nextElement(): any;
				}
				export class Values extends java.util.AbstractCollection<any> {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.Values>;
					public iterator(): java.util.IIterator<any>;
					public size(): number;
					public isEmpty(): boolean;
					public contains(o: any): boolean;
					public clear(): void;
				}
				export class ValueIterator extends java.util.concurrent.ConcurrentHashMap.HashIterator {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.ValueIterator>;
					public next(): any;
					public nextElement(): any;
				}
				/**
				 * Custom Entry class used by EntryIterator.next(), that relays setValue changes to the underlying map.
				 */
				export class WriteThroughEntry extends java.util.AbstractMap.SimpleEntry<any, any> {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.WriteThroughEntry>;
					/**
					 * Sets our entry's value and writes through to the map. The value to return is somewhat arbitrary here. Since a WriteThroughEntry does not necessarily track asynchronous changes, the most recent "previous" value could be different from what we return (or could even have been removed in which case the put will re-establish). We do not and cannot guarantee more.
					 */
					public setValue(value: any): any;
				}
				export class EntryIterator extends java.util.concurrent.ConcurrentHashMap.HashIterator {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.EntryIterator>;
					public next(): java.util.Map.IEntry<any, any>;
				}
				/**
				 * Segments are specialized versions of hash tables. This subclasses from ReentrantLock opportunistically, just to simplify some locking and avoid separate construction.
				 */
				export class Segment<K, V> extends java.util.concurrent.locks.ReentrantLock implements java.io.ISerializable {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.Segment<any, any>>;
					put(key: K, hash: number, value: V, onlyIfAbsent: boolean): V;
					/**
					 * Remove; match on key only if value null, else match both.
					 */
					remove(key: any, hash: number, value: any): V;
					replace(key: K, hash: number, oldValue: V, newValue: V): boolean;
					replace(key: K, hash: number, value: V): V;
					clear(): void;
				}
				export class EntrySet extends java.util.AbstractSet<java.util.Map.IEntry<any, any>> {
					static class: java.lang.Class<java.util.concurrent.ConcurrentHashMap.EntrySet>;
					public iterator(): java.util.IIterator<java.util.Map.IEntry<any, any>>;
					public contains(o: any): boolean;
					public remove(o: any): boolean;
					public size(): number;
					public isEmpty(): boolean;
					public clear(): void;
				}
			}
			/**
			 * Exception thrown when attempting to retrieve the result of a task that aborted by throwing an exception. This exception can be inspected using the #getCause() method.
			 */
			export class ExecutionException extends java.lang.Exception {
				/**
				 * Constructs an <tt>ExecutionException</tt> with the specified detail message and cause.
				 * @param message the detail message
				 * @param cause the cause (which is saved for later retrieval by the
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Constructs an <tt>ExecutionException</tt> with the specified cause. The detail message is set to (cause == null ? null : cause.toString()) (which typically contains the class and detail message of <tt>cause</tt>).
				 * @param cause the cause (which is saved for later retrieval by the
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.util.concurrent.ExecutionException>;
			}
			/**
			 * A ConcurrentMap supporting NavigableMap operations, and recursively so for its navigable sub-maps.
			 */
			export class ConcurrentNavigableMap<K, V> implements java.util.concurrent.IConcurrentNavigableMap<K, V> {
				constructor(implementation: java.util.concurrent.IConcurrentNavigableMap<K, V>);
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				public subMap(fromKey: K, fromInclusive: boolean, toKey: K, toInclusive: boolean): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				public headMap(toKey: K, inclusive: boolean): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				public tailMap(fromKey: K, inclusive: boolean): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				public subMap(fromKey: K, toKey: K): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				public headMap(toKey: K): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 *  ClassCastException NullPointerException IllegalArgumentException 
				 */
				public tailMap(fromKey: K): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 * Returns a reverse order view of the mappings contained in this map. The descending map is backed by this map, so changes to the map are reflected in the descending map, and vice-versa.
				 */
				public descendingMap(): java.util.concurrent.IConcurrentNavigableMap<K, V>;
				/**
				 * Returns a NavigableSet view of the keys contained in this map. The set's iterator returns the keys in ascending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
				 */
				public navigableKeySet(): java.util.INavigableSet<K>;
				/**
				 * Returns a NavigableSet view of the keys contained in this map. The set's iterator returns the keys in ascending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
				 */
				public keySet(): java.util.INavigableSet<K>;
				/**
				 * Returns a reverse order NavigableSet view of the keys contained in this map. The set's iterator returns the keys in descending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
				 */
				public descendingKeySet(): java.util.INavigableSet<K>;
			}
			/**
			 * A handler for tasks that cannot be executed by a ThreadPoolExecutor.
			 */
			interface IRejectedExecutionHandler {
				/**
				 * Method that may be invoked by a ThreadPoolExecutor when ThreadPoolExecutor#execute execute cannot accept a task. This may occur when no more threads or queue slots are available because their bounds would be exceeded, or upon shutdown of the Executor.
				 * @param r the runnable task requested to be executed
				 * @param executor the executor attempting to execute this task
				 */
				rejectedExecution(r: java.lang.IRunnable, executor: java.util.concurrent.ThreadPoolExecutor): void;
			}
			/**
			 * A mix-in style interface for marking objects that should be acted upon after a given delay.
			 */
			export class Delayed implements java.util.concurrent.IDelayed {
				constructor(implementation: java.util.concurrent.IDelayed);
				/**
				 * Returns the remaining delay associated with this object, in the given time unit.
				 * @param unit the time unit
				 */
				public getDelay(unit: java.util.concurrent.TimeUnit): any;
			}
			/**
			 * A Future that is Runnable. Successful execution of the <tt>run</tt> method causes completion of the <tt>Future</tt> and allows access to its results. FutureTask Executor 1.6 Doug Lea
			 */
			interface IRunnableFuture<V> extends java.lang.IRunnable {
				/**
				 * Sets this Future to the result of its computation unless it has been cancelled.
				 */
				run(): void;
			}
			/**
			 * A scalable concurrent NavigableSet implementation based on a ConcurrentSkipListMap. The elements of the set are kept sorted according to their Comparable natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used.
			 */
			export class ConcurrentSkipListSet<E> extends java.util.AbstractSet<E> implements java.lang.ICloneable, java.io.ISerializable {
				/**
				 * Constructs a new, empty set that orders its elements according to their Comparable natural ordering.
				 */
				constructor();
				/**
				 * Constructs a new, empty set that orders its elements according to the specified comparator.
				 * @param comparator the comparator that will be used to order this set.
				 */
				constructor(comparator: java.util.IComparator<any>);
				/**
				 * Constructs a new set containing the elements in the specified collection, that orders its elements according to their Comparable natural ordering.
				 * @param c The elements that will comprise the new set
				 */
				constructor(c: java.util.ICollection<any>);
				/**
				 * Constructs a new set containing the same elements and using the same ordering as the specified sorted set.
				 * @param s sorted set whose elements will comprise the new set
				 */
				constructor(s: java.util.ISortedSet<E>);
				static class: java.lang.Class<java.util.concurrent.ConcurrentSkipListSet<any>>;
				/**
				 * Returns a shallow copy of this <tt>ConcurrentSkipListSet</tt> instance. (The elements themselves are not cloned.)
				 */
				public clone(): java.util.concurrent.ConcurrentSkipListSet<E>;
				/**
				 * Returns the number of elements in this set. If this set contains more than <tt>Integer.MAX_VALUE</tt> elements, it returns <tt>Integer.MAX_VALUE</tt>.
				 */
				public size(): number;
				/**
				 * Returns <tt>true</tt> if this set contains no elements.
				 */
				public isEmpty(): boolean;
				/**
				 * Returns <tt>true</tt> if this set contains the specified element. More formally, returns <tt>true</tt> if and only if this set contains an element <tt>e</tt> such that <tt>o.equals(e)</tt>.
				 * @param o object to be checked for containment in this set
				 */
				public contains(o: any): boolean;
				/**
				 * Adds the specified element to this set if it is not already present. More formally, adds the specified element <tt>e</tt> to this set if the set contains no element <tt>e2</tt> such that <tt>e.equals(e2)</tt>. If this set already contains the element, the call leaves the set unchanged and returns <tt>false</tt>.
				 * @param e element to be added to this set
				 */
				public add(e: E): boolean;
				/**
				 * Removes the specified element from this set if it is present. More formally, removes an element <tt>e</tt> such that <tt>o.equals(e)</tt>, if this set contains such an element. Returns <tt>true</tt> if this set contained the element (or equivalently, if this set changed as a result of the call). (This set will not contain the element once the call returns.)
				 * @param o object to be removed from this set, if present
				 */
				public remove(o: any): boolean;
				/**
				 * Removes all of the elements from this set.
				 */
				public clear(): void;
				/**
				 * Returns an iterator over the elements in this set in ascending order.
				 */
				public iterator(): java.util.IIterator<E>;
				/**
				 * Returns an iterator over the elements in this set in descending order.
				 */
				public descendingIterator(): java.util.IIterator<E>;
				/**
				 * Compares the specified object with this set for equality. Returns <tt>true</tt> if the specified object is also a set, the two sets have the same size, and every member of the specified set is contained in this set (or equivalently, every member of this set is contained in the specified set). This definition ensures that the equals method works properly across different implementations of the set interface.
				 * @param o the object to be compared for equality with this set
				 */
				public equals(o: any): boolean;
				/**
				 * Removes from this set all of its elements that are contained in the specified collection. If the specified collection is also a set, this operation effectively modifies this set so that its value is the <i>asymmetric set difference</i> of the two sets.
				 * @param c collection containing elements to be removed from this set
				 */
				public removeAll(c: java.util.ICollection<any>): boolean;
				/**
				 *  ClassCastException NullPointerException if the specified element is null
				 */
				public lower(e: E): E;
				/**
				 *  ClassCastException NullPointerException if the specified element is null
				 */
				public floor(e: E): E;
				/**
				 *  ClassCastException NullPointerException if the specified element is null
				 */
				public ceiling(e: E): E;
				/**
				 *  ClassCastException NullPointerException if the specified element is null
				 */
				public higher(e: E): E;
				public pollFirst(): E;
				public pollLast(): E;
				public comparator(): java.util.IComparator<any>;
				/**
				 *  NoSuchElementException 
				 */
				public first(): E;
				/**
				 *  NoSuchElementException 
				 */
				public last(): E;
				/**
				 *  ClassCastException NullPointerException if fromElement or toElement is null IllegalArgumentException 
				 */
				public subSet(fromElement: E, fromInclusive: boolean, toElement: E, toInclusive: boolean): java.util.INavigableSet<E>;
				/**
				 *  ClassCastException NullPointerException if toElement is null IllegalArgumentException 
				 */
				public headSet(toElement: E, inclusive: boolean): java.util.INavigableSet<E>;
				/**
				 *  ClassCastException NullPointerException if fromElement is null IllegalArgumentException 
				 */
				public tailSet(fromElement: E, inclusive: boolean): java.util.INavigableSet<E>;
				/**
				 *  ClassCastException NullPointerException if fromElement or toElement is null IllegalArgumentException 
				 */
				public subSet(fromElement: E, toElement: E): java.util.INavigableSet<E>;
				/**
				 *  ClassCastException NullPointerException if toElement is null IllegalArgumentException 
				 */
				public headSet(toElement: E): java.util.INavigableSet<E>;
				/**
				 *  ClassCastException NullPointerException if fromElement is null IllegalArgumentException 
				 */
				public tailSet(fromElement: E): java.util.INavigableSet<E>;
				/**
				 * Returns a reverse order view of the elements contained in this set. The descending set is backed by this set, so changes to the set are reflected in the descending set, and vice-versa.
				 */
				public descendingSet(): java.util.INavigableSet<E>;
			}
			/**
			 * A handler for tasks that cannot be executed by a ThreadPoolExecutor.
			 */
			export class RejectedExecutionHandler implements java.util.concurrent.IRejectedExecutionHandler {
				constructor(implementation: java.util.concurrent.IRejectedExecutionHandler);
				/**
				 * Method that may be invoked by a ThreadPoolExecutor when ThreadPoolExecutor#execute execute cannot accept a task. This may occur when no more threads or queue slots are available because their bounds would be exceeded, or upon shutdown of the Executor.
				 * @param r the runnable task requested to be executed
				 * @param executor the executor attempting to execute this task
				 */
				public rejectedExecution(r: java.lang.IRunnable, executor: java.util.concurrent.ThreadPoolExecutor): void;
			}
			/**
			 * A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.
			 */
			export class CountDownLatch extends java.lang.Object {
				/**
				 * Constructs a CountDownLatch initialized with the given count.
				 * @param count the number of times {@link #countDown} must be invoked
				 */
				constructor(count: number);
				static class: java.lang.Class<java.util.concurrent.CountDownLatch>;
				/**
				 * Causes the current thread to wait until the latch has counted down to zero, unless the thread is Thread#interrupt interrupted.
				 */
				public await(): void;
				/**
				 * Causes the current thread to wait until the latch has counted down to zero, unless the thread is Thread#interrupt interrupted, or the specified waiting time elapses.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the {@code timeout} argument
				 */
				public await(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Decrements the count of the latch, releasing all waiting threads if the count reaches zero.
				 */
				public countDown(): void;
				/**
				 * Returns the current count.
				 */
				public getCount(): any;
				/**
				 * Returns a string identifying this latch, as well as its state. The state, in brackets, includes the String "Count =" followed by the current count.
				 */
				public toString(): string;
			}
			export module CountDownLatch {
				/**
				 * Synchronization control For CountDownLatch. Uses AQS state to represent count.
				 */
				export class Sync extends java.util.concurrent.locks.AbstractQueuedSynchronizer {
					static class: java.lang.Class<java.util.concurrent.CountDownLatch.Sync>;
					getCount(): number;
					protected tryAcquireShared(acquires: number): number;
					protected tryReleaseShared(releases: number): boolean;
				}
			}
			/**
			 * A delayed result-bearing action that can be cancelled. Usually a scheduled future is the result of scheduling a task with a ScheduledExecutorService.
			 */
			export class ScheduledFuture<V> implements java.util.concurrent.IDelayed, java.util.concurrent.IScheduledFuture<V> {
				constructor(implementation: java.util.concurrent.IScheduledFuture<V>);
				/**
				 * Returns the remaining delay associated with this object, in the given time unit.
				 * @param unit the time unit
				 */
				getDelay(unit: java.util.concurrent.TimeUnit): any;
			}
			/**
			 * Exception thrown by an Executor when a task cannot be accepted for execution.
			 */
			export class RejectedExecutionException extends java.lang.RuntimeException {
				/**
				 * Constructs a <tt>RejectedExecutionException</tt> with no detail message. The cause is not initialized, and may subsequently be initialized by a call to #initCause(Throwable) initCause.
				 */
				constructor();
				/**
				 * Constructs a <tt>RejectedExecutionException</tt> with the specified detail message. The cause is not initialized, and may subsequently be initialized by a call to #initCause(Throwable) initCause.
				 * @param message the detail message
				 */
				constructor(message: string);
				/**
				 * Constructs a <tt>RejectedExecutionException</tt> with the specified detail message and cause.
				 * @param message the detail message
				 * @param cause the cause (which is saved for later retrieval by the
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Constructs a <tt>RejectedExecutionException</tt> with the specified cause. The detail message is set to (cause == null ? null : cause.toString()) (which typically contains the class and detail message of <tt>cause</tt>).
				 * @param cause the cause (which is saved for later retrieval by the
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.util.concurrent.RejectedExecutionException>;
			}
			/**
			 * An Executor that provides methods to manage termination and methods that can produce a Future for tracking progress of one or more asynchronous tasks.
			 */
			export class ExecutorService implements java.util.concurrent.IExecutor, java.util.concurrent.IExecutorService {
				constructor(implementation: java.util.concurrent.IExecutorService);
				/**
				 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
				 */
				public shutdown(): void;
				/**
				 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution.
				 */
				public shutdownNow(): java.util.IList<java.lang.IRunnable>;
				/**
				 * Returns <tt>true</tt> if this executor has been shut down.
				 */
				public isShutdown(): boolean;
				/**
				 * Returns <tt>true</tt> if all tasks have completed following shut down. Note that <tt>isTerminated</tt> is never <tt>true</tt> unless either <tt>shutdown</tt> or <tt>shutdownNow</tt> was called first.
				 */
				public isTerminated(): boolean;
				/**
				 * Blocks until all tasks have completed execution after a shutdown request, or the timeout occurs, or the current thread is interrupted, whichever happens first.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				public awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future's <tt>get</tt> method will return the task's result upon successful completion.
				 * @param task the task to submit
				 */
				public submit<T>(task: java.util.concurrent.ICallable<T>): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return the given result upon successful completion.
				 * @param task the task to submit
				 * @param result the result to return
				 */
				public submit<T>(task: java.lang.IRunnable, result: T): java.util.concurrent.IFuture<T>;
				/**
				 * Submits a Runnable task for execution and returns a Future representing that task. The Future's <tt>get</tt> method will return <tt>null</tt> upon <em>successful</em> completion.
				 * @param task the task to submit
				 */
				public submit(task: java.lang.IRunnable): java.util.concurrent.IFuture<any>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete. Future#isDone is <tt>true</tt> for each element of the returned list. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				public invokeAll<T>(tasks: java.util.ICollection<any>): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. Future#isDone is <tt>true</tt> for each element of the returned list. Upon return, tasks that have not completed are cancelled. Note that a <em>completed</em> task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				public invokeAll<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): java.util.IList<java.util.concurrent.IFuture<T>>;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 */
				public invokeAny<T>(tasks: java.util.ICollection<any>): T;
				/**
				 * Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do before the given timeout elapses. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.
				 * @param tasks the collection of tasks
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				public invokeAny<T>(tasks: java.util.ICollection<any>, timeout: number, unit: java.util.concurrent.TimeUnit): T;
				/**
				 * Executes the given command at some time in the future. The command may execute in a new thread, in a pooled thread, or in the calling thread, at the discretion of the <tt>Executor</tt> implementation.
				 * @param command the runnable task
				 */
				execute(command: java.lang.IRunnable): void;
			}
			/**
			 * A <tt>Future</tt> represents the result of an asynchronous computation. Methods are provided to check if the computation is complete, to wait for its completion, and to retrieve the result of the computation. The result can only be retrieved using method <tt>get</tt> when the computation has completed, blocking if necessary until it is ready. Cancellation is performed by the <tt>cancel</tt> method. Additional methods are provided to determine if the task completed normally or was cancelled. Once a computation has completed, the computation cannot be cancelled. If you would like to use a <tt>Future</tt> for the sake of cancellability but not provide a usable result, you can declare types of the form Future<?> and return <tt>null</tt> as a result of the underlying task.
			 */
			export class Future<V> implements java.util.concurrent.IFuture<V> {
				constructor(implementation: java.util.concurrent.IFuture<V>);
				/**
				 * Attempts to cancel execution of this task. This attempt will fail if the task has already completed, has already been cancelled, or could not be cancelled for some other reason. If successful, and this task has not started when <tt>cancel</tt> is called, this task should never run. If the task has already started, then the <tt>mayInterruptIfRunning</tt> parameter determines whether the thread executing this task should be interrupted in an attempt to stop the task.
				 * @param mayInterruptIfRunning <tt>true</tt> if the thread executing this
				 */
				public cancel(mayInterruptIfRunning: boolean): boolean;
				/**
				 * Returns <tt>true</tt> if this task was cancelled before it completed normally.
				 */
				public isCancelled(): boolean;
				/**
				 * Returns <tt>true</tt> if this task completed.
				 */
				public isDone(): boolean;
				/**
				 * Waits if necessary for the computation to complete, and then retrieves its result.
				 */
				public get(): V;
				/**
				 * Waits if necessary for at most the given time for the computation to complete, and then retrieves its result, if available.
				 * @param timeout the maximum time to wait
				 * @param unit the time unit of the timeout argument
				 */
				public get(timeout: number, unit: java.util.concurrent.TimeUnit): V;
			}
			/**
			 * An ExecutorService that executes each submitted task using one of possibly several pooled threads, normally configured using Executors factory methods.
			 */
			export class ThreadPoolExecutor extends java.util.concurrent.AbstractExecutorService {
				/**
				 * Creates a new ThreadPoolExecutor with the given initial parameters and default thread factory and rejected execution handler. It may be more convenient to use one of the Executors factory methods instead of this general purpose constructor.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 * @param maximumPoolSize the maximum number of threads to allow in the
				 * @param keepAliveTime when the number of threads is greater than
				 * @param unit the time unit for the {@code keepAliveTime} argument
				 * @param workQueue the queue to use for holding tasks before they are
				 */
				constructor(corePoolSize: number, maximumPoolSize: number, keepAliveTime: number, unit: java.util.concurrent.TimeUnit, workQueue: java.util.concurrent.IBlockingQueue<java.lang.IRunnable>);
				/**
				 * Creates a new ThreadPoolExecutor with the given initial parameters and default rejected execution handler.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 * @param maximumPoolSize the maximum number of threads to allow in the
				 * @param keepAliveTime when the number of threads is greater than
				 * @param unit the time unit for the {@code keepAliveTime} argument
				 * @param workQueue the queue to use for holding tasks before they are
				 * @param threadFactory the factory to use when the executor
				 */
				constructor(corePoolSize: number, maximumPoolSize: number, keepAliveTime: number, unit: java.util.concurrent.TimeUnit, workQueue: java.util.concurrent.IBlockingQueue<java.lang.IRunnable>, threadFactory: java.util.concurrent.IThreadFactory);
				/**
				 * Creates a new ThreadPoolExecutor with the given initial parameters and default thread factory.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 * @param maximumPoolSize the maximum number of threads to allow in the
				 * @param keepAliveTime when the number of threads is greater than
				 * @param unit the time unit for the {@code keepAliveTime} argument
				 * @param workQueue the queue to use for holding tasks before they are
				 * @param handler the handler to use when execution is blocked
				 */
				constructor(corePoolSize: number, maximumPoolSize: number, keepAliveTime: number, unit: java.util.concurrent.TimeUnit, workQueue: java.util.concurrent.IBlockingQueue<java.lang.IRunnable>, handler: java.util.concurrent.IRejectedExecutionHandler);
				/**
				 * Creates a new ThreadPoolExecutor with the given initial parameters.
				 * @param corePoolSize the number of threads to keep in the pool, even
				 * @param maximumPoolSize the maximum number of threads to allow in the
				 * @param keepAliveTime when the number of threads is greater than
				 * @param unit the time unit for the {@code keepAliveTime} argument
				 * @param workQueue the queue to use for holding tasks before they are
				 * @param threadFactory the factory to use when the executor
				 * @param handler the handler to use when execution is blocked
				 */
				constructor(corePoolSize: number, maximumPoolSize: number, keepAliveTime: number, unit: java.util.concurrent.TimeUnit, workQueue: java.util.concurrent.IBlockingQueue<java.lang.IRunnable>, threadFactory: java.util.concurrent.IThreadFactory, handler: java.util.concurrent.IRejectedExecutionHandler);
				static class: java.lang.Class<java.util.concurrent.ThreadPoolExecutor>;
				/**
				 * Transitions to TERMINATED state if either (SHUTDOWN and pool and queue empty) or (STOP and pool empty). If otherwise eligible to terminate but workerCount is nonzero, interrupts an idle worker to ensure that shutdown signals propagate. This method must be called following any action that might make termination possible -- reducing worker count or removing tasks from the queue during shutdown. The method is non-private to allow access from ScheduledThreadPoolExecutor.
				 */
				tryTerminate(): void;
				/**
				 * Invokes the rejected execution handler for the given command. Package-protected for use by ScheduledThreadPoolExecutor.
				 */
				reject(command: java.lang.IRunnable): void;
				/**
				 * Performs any further cleanup following run state transition on invocation of shutdown. A no-op here, but used by ScheduledThreadPoolExecutor to cancel delayed tasks.
				 */
				onShutdown(): void;
				/**
				 * State check needed by ScheduledThreadPoolExecutor to enable running tasks during shutdown.
				 * @param shutdownOK true if should return true if SHUTDOWN
				 */
				isRunningOrShutdown(shutdownOK: boolean): boolean;
				/**
				 * Main worker run loop. Repeatedly gets tasks from queue and executes them, while coping with a number of issues:
				 * @param w the worker
				 */
				runWorker(w: java.util.concurrent.ThreadPoolExecutor.Worker): void;
				/**
				 * Executes the given task sometime in the future. The task may execute in a new thread or in an existing pooled thread.
				 * @param command the task to execute
				 */
				public execute(command: java.lang.IRunnable): void;
				/**
				 * Initiates an orderly shutdown in which previously submitted tasks are executed, but no new tasks will be accepted. Invocation has no additional effect if already shut down.
				 */
				public shutdown(): void;
				/**
				 * Attempts to stop all actively executing tasks, halts the processing of waiting tasks, and returns a list of the tasks that were awaiting execution. These tasks are drained (removed) from the task queue upon return from this method.
				 */
				public shutdownNow(): java.util.IList<java.lang.IRunnable>;
				public isShutdown(): boolean;
				/**
				 * Returns true if this executor is in the process of terminating after #shutdown or #shutdownNow but has not completely terminated. This method may be useful for debugging. A return of true reported a sufficient period after shutdown may indicate that submitted tasks have ignored or suppressed interruption, causing this executor not to properly terminate.
				 */
				public isTerminating(): boolean;
				public isTerminated(): boolean;
				public awaitTermination(timeout: number, unit: java.util.concurrent.TimeUnit): boolean;
				/**
				 * Invokes shutdown when this executor is no longer referenced and it has no threads.
				 */
				protected finalize(): void;
				/**
				 * Sets the thread factory used to create new threads.
				 * @param threadFactory the new thread factory
				 */
				public setThreadFactory(threadFactory: java.util.concurrent.IThreadFactory): void;
				/**
				 * Returns the thread factory used to create new threads.
				 */
				public getThreadFactory(): java.util.concurrent.IThreadFactory;
				/**
				 * Sets a new handler for unexecutable tasks.
				 * @param handler the new handler
				 */
				public setRejectedExecutionHandler(handler: java.util.concurrent.IRejectedExecutionHandler): void;
				/**
				 * Returns the current handler for unexecutable tasks.
				 */
				public getRejectedExecutionHandler(): java.util.concurrent.IRejectedExecutionHandler;
				/**
				 * Sets the core number of threads. This overrides any value set in the constructor. If the new value is smaller than the current value, excess existing threads will be terminated when they next become idle. If larger, new threads will, if needed, be started to execute any queued tasks.
				 * @param corePoolSize the new core size
				 */
				public setCorePoolSize(corePoolSize: number): void;
				/**
				 * Returns the core number of threads.
				 */
				public getCorePoolSize(): number;
				/**
				 * Starts a core thread, causing it to idly wait for work. This overrides the default policy of starting core threads only when new tasks are executed. This method will return false if all core threads have already been started.
				 */
				public prestartCoreThread(): boolean;
				/**
				 * Same as prestartCoreThread except arranges that at least one thread is started even if corePoolSize is 0.
				 */
				ensurePrestart(): void;
				/**
				 * Starts all core threads, causing them to idly wait for work. This overrides the default policy of starting core threads only when new tasks are executed.
				 */
				public prestartAllCoreThreads(): number;
				/**
				 * Returns true if this pool allows core threads to time out and terminate if no tasks arrive within the keepAlive time, being replaced if needed when new tasks arrive. When true, the same keep-alive policy applying to non-core threads applies also to core threads. When false (the default), core threads are never terminated due to lack of incoming tasks.
				 */
				public allowsCoreThreadTimeOut(): boolean;
				/**
				 * Sets the policy governing whether core threads may time out and terminate if no tasks arrive within the keep-alive time, being replaced if needed when new tasks arrive. When false, core threads are never terminated due to lack of incoming tasks. When true, the same keep-alive policy applying to non-core threads applies also to core threads. To avoid continual thread replacement, the keep-alive time must be greater than zero when setting true. This method should in general be called before the pool is actively used.
				 * @param value {@code true} if should time out, else {@code false}
				 */
				public allowCoreThreadTimeOut(value: boolean): void;
				/**
				 * Sets the maximum allowed number of threads. This overrides any value set in the constructor. If the new value is smaller than the current value, excess existing threads will be terminated when they next become idle.
				 * @param maximumPoolSize the new maximum
				 */
				public setMaximumPoolSize(maximumPoolSize: number): void;
				/**
				 * Returns the maximum allowed number of threads.
				 */
				public getMaximumPoolSize(): number;
				/**
				 * Sets the time limit for which threads may remain idle before being terminated. If there are more than the core number of threads currently in the pool, after waiting this amount of time without processing a task, excess threads will be terminated. This overrides any value set in the constructor.
				 * @param time the time to wait. A time value of zero will cause
				 * @param unit the time unit of the {@code time} argument
				 */
				public setKeepAliveTime(time: number, unit: java.util.concurrent.TimeUnit): void;
				/**
				 * Returns the thread keep-alive time, which is the amount of time that threads in excess of the core pool size may remain idle before being terminated.
				 * @param unit the desired time unit of the result
				 */
				public getKeepAliveTime(unit: java.util.concurrent.TimeUnit): any;
				/**
				 * Returns the task queue used by this executor. Access to the task queue is intended primarily for debugging and monitoring. This queue may be in active use. Retrieving the task queue does not prevent queued tasks from executing.
				 */
				public getQueue(): java.util.concurrent.IBlockingQueue<java.lang.IRunnable>;
				/**
				 * Removes this task from the executor's internal queue if it is present, thus causing it not to be run if it has not already started.
				 * @param task the task to remove
				 */
				public remove(task: java.lang.IRunnable): boolean;
				/**
				 * Tries to remove from the work queue all Future tasks that have been cancelled. This method can be useful as a storage reclamation operation, that has no other impact on functionality. Cancelled tasks are never executed, but may accumulate in work queues until worker threads can actively remove them. Invoking this method instead tries to remove them now. However, this method may fail to remove tasks in the presence of interference by other threads.
				 */
				public purge(): void;
				/**
				 * Returns the current number of threads in the pool.
				 */
				public getPoolSize(): number;
				/**
				 * Returns the approximate number of threads that are actively executing tasks.
				 */
				public getActiveCount(): number;
				/**
				 * Returns the largest number of threads that have ever simultaneously been in the pool.
				 */
				public getLargestPoolSize(): number;
				/**
				 * Returns the approximate total number of tasks that have ever been scheduled for execution. Because the states of tasks and threads may change dynamically during computation, the returned value is only an approximation.
				 */
				public getTaskCount(): any;
				/**
				 * Returns the approximate total number of tasks that have completed execution. Because the states of tasks and threads may change dynamically during computation, the returned value is only an approximation, but one that does not ever decrease across successive calls.
				 */
				public getCompletedTaskCount(): any;
				/**
				 * Returns a string identifying this pool, as well as its state, including indications of run state and estimated worker and task counts.
				 */
				public toString(): string;
				/**
				 * Method invoked prior to executing the given Runnable in the given thread. This method is invoked by thread t that will execute task r, and may be used to re-initialize ThreadLocals, or to perform logging.
				 * @param t the thread that will run task {@code r}
				 * @param r the task that will be executed
				 */
				protected beforeExecute(t: java.lang.Thread, r: java.lang.IRunnable): void;
				/**
				 * Method invoked upon completion of execution of the given Runnable. This method is invoked by the thread that executed the task. If non-null, the Throwable is the uncaught RuntimeException or Error that caused execution to terminate abruptly.
				 * @param r the runnable that has completed
				 * @param t the exception that caused termination, or null if
				 */
				protected afterExecute(r: java.lang.IRunnable, t: java.lang.Throwable): void;
				/**
				 * Method invoked when the Executor has terminated. Default implementation does nothing. Note: To properly nest multiple overridings, subclasses should generally invoke super.terminated within this method.
				 */
				protected terminated(): void;
			}
			export module ThreadPoolExecutor {
				/**
				 * A handler for rejected tasks that discards the oldest unhandled request and then retries execute, unless the executor is shut down, in which case the task is discarded.
				 */
				export class DiscardOldestPolicy extends java.lang.Object implements java.util.concurrent.IRejectedExecutionHandler {
					/**
					 * Creates a DiscardOldestPolicy for the given executor.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy>;
					/**
					 * Obtains and ignores the next task that the executor would otherwise execute, if one is immediately available, and then retries execution of task r, unless the executor is shut down, in which case task r is instead discarded.
					 * @param r the runnable task requested to be executed
					 * @param e the executor attempting to execute this task
					 */
					public rejectedExecution(r: java.lang.IRunnable, e: java.util.concurrent.ThreadPoolExecutor): void;
				}
				/**
				 * A handler for rejected tasks that silently discards the rejected task.
				 */
				export class DiscardPolicy extends java.lang.Object implements java.util.concurrent.IRejectedExecutionHandler {
					/**
					 * Creates a DiscardPolicy.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.ThreadPoolExecutor.DiscardPolicy>;
					/**
					 * Does nothing, which has the effect of discarding task r.
					 * @param r the runnable task requested to be executed
					 * @param e the executor attempting to execute this task
					 */
					public rejectedExecution(r: java.lang.IRunnable, e: java.util.concurrent.ThreadPoolExecutor): void;
				}
				/**
				 * A handler for rejected tasks that throws a RejectedExecutionException.
				 */
				export class AbortPolicy extends java.lang.Object implements java.util.concurrent.IRejectedExecutionHandler {
					/**
					 * Creates an AbortPolicy.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.ThreadPoolExecutor.AbortPolicy>;
					/**
					 * Always throws RejectedExecutionException.
					 * @param r the runnable task requested to be executed
					 * @param e the executor attempting to execute this task
					 */
					public rejectedExecution(r: java.lang.IRunnable, e: java.util.concurrent.ThreadPoolExecutor): void;
				}
				/**
				 * A handler for rejected tasks that runs the rejected task directly in the calling thread of the execute method, unless the executor has been shut down, in which case the task is discarded.
				 */
				export class CallerRunsPolicy extends java.lang.Object implements java.util.concurrent.IRejectedExecutionHandler {
					/**
					 * Creates a CallerRunsPolicy.
					 */
					constructor();
					static class: java.lang.Class<java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy>;
					/**
					 * Executes task r in the caller's thread, unless the executor has been shut down, in which case the task is discarded.
					 * @param r the runnable task requested to be executed
					 * @param e the executor attempting to execute this task
					 */
					public rejectedExecution(r: java.lang.IRunnable, e: java.util.concurrent.ThreadPoolExecutor): void;
				}
				/**
				 * Class Worker mainly maintains interrupt control state for threads running tasks, along with other minor bookkeeping. This class opportunistically extends AbstractQueuedSynchronizer to simplify acquiring and releasing a lock surrounding each task execution. This protects against interrupts that are intended to wake up a worker thread waiting for a task from instead interrupting a task being run. We implement a simple non-reentrant mutual exclusion lock rather than use ReentrantLock because we do not want worker tasks to be able to reacquire the lock when they invoke pool control methods like setCorePoolSize.
				 */
				export class Worker extends java.util.concurrent.locks.AbstractQueuedSynchronizer implements java.lang.IRunnable {
					static class: java.lang.Class<java.util.concurrent.ThreadPoolExecutor.Worker>;
					/**
					 * Delegates main run loop to outer runWorker
					 */
					public run(): void;
					protected isHeldExclusively(): boolean;
					protected tryAcquire(unused: number): boolean;
					protected tryRelease(unused: number): boolean;
					public lock(): void;
					public tryLock(): boolean;
					public unlock(): void;
					public isLocked(): boolean;
				}
			}
		}
		/**
		 * Class AbstractCollection is an abstract implementation of the Collection interface. A subclass must implement the abstract methods iterator() and size() to create an immutable collection. To create a modifiable collection it's necessary to override the add() method that currently throws an UnsupportedOperationException.
		 */
		export class AbstractCollection<E> extends java.lang.Object {
			static class: java.lang.Class<java.util.AbstractCollection<any>>;
			public add(object: E): boolean;
			/**
			 * Attempts to add all of the objects contained in collection to the contents of this Collection (optional). This implementation iterates over the given Collection and calls add for each element. If any of these calls return true, then true is returned as result of this method call, false otherwise. If this Collection does not support adding elements, an UnsupportedOperationException is thrown.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this Collection, leaving it empty (optional). This implementation iterates over this Collection and calls the remove method on each element. If the iterator does not support removal of elements, an UnsupportedOperationException is thrown.
			 */
			public clear(): void;
			/**
			 * Tests whether this Collection contains the specified object. This implementation iterates over this Collection and tests, whether any element is equal to the given object. If object != null then object.equals(e) is called for each element e returned by the iterator until the element is found. If object == null then each element e returned by the iterator is compared with the test e == null.
			 * @param object 
			 */
			public contains(object: any): boolean;
			/**
			 * Tests whether this Collection contains all objects contained in the specified Collection. This implementation iterates over the specified Collection. If one element returned by the iterator is not contained in this Collection, then false is returned; true otherwise.
			 * @param collection 
			 */
			public containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Returns if this Collection contains no elements. This implementation tests, whether size returns 0.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an instance of Iterator that may be used to access the objects contained by this Collection. The order in which the elements are returned by the Iterator is not defined unless the instance of the Collection has a defined order. In that case, the elements are returned in that order.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Removes one instance of the specified object from this Collection if one is contained (optional). This implementation iterates over this Collection and tests for each element e returned by the iterator, whether e is equal to the given object. If object != null then this test is performed using object.equals(e), otherwise using object == null. If an element equal to the given object is found, then the remove method is called on the iterator and true is returned, false otherwise. If the iterator does not support removing elements, an UnsupportedOperationException is thrown.
			 * @param object 
			 */
			public remove(object: any): boolean;
			/**
			 * Removes all occurrences in this Collection of each object in the specified Collection (optional). After this method returns none of the elements in the passed Collection can be found in this Collection anymore.
			 * @param collection 
			 */
			public removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all objects from this Collection that are not also found in the Collection passed (optional). After this method returns this Collection will only contain elements that also can be found in the Collection passed to this method.
			 * @param collection 
			 */
			public retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Returns a count of how many objects this Collection contains.
			 */
			public size(): number;
			public toArray(): native.Array<any>;
			public toArray<T>(contents: native.Array<T>): native.Array<T>;
			/**
			 * Returns the string representation of this Collection. The presentation has a specific format. It is enclosed by square brackets ("[]"). Elements are separated by ', ' (comma and space).
			 */
			public toString(): string;
		}
		/**
		 * SortedSet is a Set which iterates over its elements in a sorted order. The order is determined either by the elements natural ordering, or by a Comparator which is passed into a concrete implementation at construction time. All elements in this set must be mutually comparable. The ordering in this set must be consistent with equals of its elements.
		 */
		export class SortedSet<E> implements java.util.ISortedSet<E> {
			constructor(implementation: java.util.ISortedSet<E>);
			/**
			 * Returns the comparator used to compare elements in this SortedSet.
			 */
			public comparator(): java.util.IComparator<any>;
			/**
			 * Returns the first element in this SortedSet. The first element is the lowest element.
			 */
			public first(): E;
			/**
			 * Returns a SortedSet of the specified portion of this SortedSet which contains elements less than the end element. The returned SortedSet is backed by this SortedSet so changes to one set are reflected by the other.
			 * @param end 
			 */
			public headSet(end: E): java.util.ISortedSet<E>;
			/**
			 * Returns the last element in this SortedSet. The last element is the highest element.
			 */
			public last(): E;
			/**
			 * Returns a SortedSet of the specified portion of this SortedSet which contains elements greater or equal to the start element but less than the end element. The returned SortedSet is backed by this SortedMap so changes to one set are reflected by the other.
			 * @param start 
			 * @param end 
			 */
			public subSet(start: E, end: E): java.util.ISortedSet<E>;
			/**
			 * Returns a SortedSet of the specified portion of this SortedSet which contains elements greater or equal to the start element. The returned SortedSet is backed by this SortedSet so changes to one set are reflected by the other.
			 * @param start 
			 */
			public tailSet(start: E): java.util.ISortedSet<E>;
		}
		/**
		 * A Comparator is used to compare two objects to determine their ordering with respect to each other. On a given Collection, a Comparator can be used to obtain a sorted Collection which is <i>totally ordered</i>. For a Comparator to be <i>consistent with equals</i>, its {code #compare(Object, Object)} method has to return zero for each pair of elements (a,b) where a.equals(b) holds true. It is recommended that a Comparator implements java.io.Serializable.
		 */
		interface IComparator<T> {
			/**
			 * Compares the two specified objects to determine their relative ordering. The ordering implied by the return value of this method for all possible pairs of (lhs, rhs) should form an <i>equivalence relation</i>. This means that <ul> <li>compare(a,a) returns zero for all a</li> <li>the sign of compare(a,b) must be the opposite of the sign of compare(b,a) for all pairs of (a,b)</li> <li>From compare(a,b) > 0 and compare(b,c) > 0 it must follow compare(a,c) > 0 for all possible combinations of (a,b,c)</li> </ul>
			 * @param lhs 
			 * @param rhs 
			 */
			compare(lhs: T, rhs: T): number;
			/**
			 * Compares this Comparator with the specified Object and indicates whether they are equal. In order to be equal, object must represent the same object as this instance using a class-specific comparison.
			 * @param object 
			 */
			equals(object: any): boolean;
		}
		/**
		 * An UnknownFormatConversionException will be thrown if the format conversion is unknown.
		 */
		export class UnknownFormatConversionException extends java.util.IllegalFormatException {
			/**
			 * Constructs an UnknownFormatConversionException with the unknown format conversion.
			 * @param s 
			 */
			constructor(s: string);
			static class: java.lang.Class<java.util.UnknownFormatConversionException>;
			/**
			 * Returns the conversion associated with the exception.
			 */
			public getConversion(): string;
			public getMessage(): string;
		}
		/**
		 * A TooManyListenersException is thrown when an attempt is made to add more than one listener to an event source which only supports a single listener. It is also thrown when the same listener is added more than once.
		 */
		export class TooManyListenersException extends java.lang.Exception {
			/**
			 * Constructs a new TooManyListenersException with the current stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new TooManyListenersException with the stack trace and message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.util.TooManyListenersException>;
		}
		/**
		 * This class provides skeletal implementations of some Queue operations. The implementations in this class are appropriate when the base implementation does <em>not</em> allow <tt>null</tt> elements. Methods #add add, #remove remove, and #element element are based on #offer offer, #poll poll, and #peek peek, respectively, but throw exceptions instead of indicating failure via <tt>false</tt> or <tt>null</tt> returns.
		 */
		export class AbstractQueue<E> extends java.util.AbstractCollection<E> {
			static class: java.lang.Class<java.util.AbstractQueue<any>>;
			/**
			 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available.
			 * @param e the element to add
			 */
			public add(e: E): boolean;
			/**
			 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
			 */
			public remove(): E;
			/**
			 * Retrieves, but does not remove, the head of this queue. This method differs from #peek peek only in that it throws an exception if this queue is empty.
			 */
			public element(): E;
			/**
			 * Removes all of the elements from this queue. The queue will be empty after this call returns.
			 */
			public clear(): void;
			/**
			 * Adds all of the elements in the specified collection to this queue. Attempts to addAll of a queue to itself result in <tt>IllegalArgumentException</tt>. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.
			 * @param c collection containing elements to be added to this queue
			 */
			public addAll(c: java.util.ICollection<any>): boolean;
			/**
			 * Removes one instance of the specified object from this Collection if one is contained (optional). This implementation iterates over this Collection and tests for each element e returned by the iterator, whether e is equal to the given object. If object != null then this test is performed using object.equals(e), otherwise using object == null. If an element equal to the given object is found, then the remove method is called on the iterator and true is returned, false otherwise. If the iterator does not support removing elements, an UnsupportedOperationException is thrown.
			 * @param object 
			 */
			remove(object: any): boolean;
		}
		/**
		 * SimpleTimeZone is a concrete subclass of TimeZone that represents a time zone for use with a Gregorian calendar. This class does not handle historical changes.
		 */
		export class SimpleTimeZone extends java.util.TimeZone {
			/**
			 * Constructs a SimpleTimeZone with the given base time zone offset from GMT and time zone ID. Timezone IDs can be obtained from TimeZone.getAvailableIDs. Normally you should use TimeZone.getDefault to construct a TimeZone.
			 * @param offset 
			 * @param name 
			 */
			constructor(offset: number, name: string);
			/**
			 * Constructs a SimpleTimeZone with the given base time zone offset from GMT, time zone ID, and times to start and end the daylight savings time. Timezone IDs can be obtained from TimeZone.getAvailableIDs. Normally you should use TimeZone.getDefault to create a TimeZone. For a time zone that does not use daylight saving time, do not use this constructor; instead you should use SimpleTimeZone(rawOffset, ID).
			 * @param offset 
			 * @param name 
			 * @param startMonth 
			 * @param startDay 
			 * @param startDayOfWeek 
			 * @param startTime 
			 * @param endMonth 
			 * @param endDay 
			 * @param endDayOfWeek 
			 * @param endTime 
			 */
			constructor(offset: number, name: string, startMonth: number, startDay: number, startDayOfWeek: number, startTime: number, endMonth: number, endDay: number, endDayOfWeek: number, endTime: number);
			/**
			 * Constructs a SimpleTimeZone with the given base time zone offset from GMT, time zone ID, times to start and end the daylight savings time, and the daylight savings time difference in milliseconds.
			 * @param offset 
			 * @param name 
			 * @param startMonth 
			 * @param startDay 
			 * @param startDayOfWeek 
			 * @param startTime 
			 * @param endMonth 
			 * @param endDay 
			 * @param endDayOfWeek 
			 * @param endTime 
			 * @param daylightSavings 
			 */
			constructor(offset: number, name: string, startMonth: number, startDay: number, startDayOfWeek: number, startTime: number, endMonth: number, endDay: number, endDayOfWeek: number, endTime: number, daylightSavings: number);
			/**
			 * Construct a SimpleTimeZone with the given base time zone offset from GMT, time zone ID, times to start and end the daylight savings time including a mode specifier, the daylight savings time difference in milliseconds. The mode specifies either #WALL_TIME, #STANDARD_TIME, or #UTC_TIME.
			 * @param offset 
			 * @param name 
			 * @param startMonth 
			 * @param startDay 
			 * @param startDayOfWeek 
			 * @param startTime 
			 * @param startTimeMode 
			 * @param endMonth endDay
			 * @param endDay endMonth
			 * @param endDayOfWeek 
			 * @param endTime 
			 * @param endTimeMode 
			 * @param daylightSavings 
			 */
			constructor(offset: number, name: string, startMonth: number, startDay: number, startDayOfWeek: number, startTime: number, startTimeMode: number, endMonth: number, endDay: number, endDayOfWeek: number, endTime: number, endTimeMode: number, daylightSavings: number);
			/**
			 * The constant for representing a start or end time in GMT time mode.
			 */
			static UTC_TIME: number;
			/**
			 * The constant for representing a start or end time in standard local time mode, based on timezone's raw offset from GMT; does not include Daylight savings.
			 */
			static STANDARD_TIME: number;
			/**
			 * The constant for representing a start or end time in local wall clock time mode, based on timezone's adjusted offset from GMT; includes Daylight savings.
			 */
			static WALL_TIME: number;
			static class: java.lang.Class<java.util.SimpleTimeZone>;
			/**
			 * Returns a new SimpleTimeZone with the same ID, rawOffset and daylight savings time rules as this SimpleTimeZone.
			 */
			public clone(): any;
			/**
			 * Compares the specified object to this SimpleTimeZone and returns whether they are equal. The object must be an instance of SimpleTimeZone and have the same internal data.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public getDSTSavings(): number;
			public getOffset(era: number, year: number, month: number, day: number, dayOfWeek: number, time: number): number;
			public getOffset(time: number): number;
			public getRawOffset(): number;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			public hashCode(): number;
			public hasSameRules(zone: java.util.TimeZone): boolean;
			public inDaylightTime(time: java.util.Date): boolean;
			/**
			 * Sets the daylight savings offset in milliseconds for this SimpleTimeZone.
			 * @param milliseconds 
			 */
			public setDSTSavings(milliseconds: number): void;
			/**
			 * Sets the rule which specifies the end of daylight savings time.
			 * @param month 
			 * @param dayOfMonth 
			 * @param time 
			 */
			public setEndRule(month: number, dayOfMonth: number, time: number): void;
			/**
			 * Sets the rule which specifies the end of daylight savings time.
			 * @param month 
			 * @param day 
			 * @param dayOfWeek 
			 * @param time 
			 */
			public setEndRule(month: number, day: number, dayOfWeek: number, time: number): void;
			/**
			 * Sets the rule which specifies the end of daylight savings time.
			 * @param month 
			 * @param day 
			 * @param dayOfWeek 
			 * @param time 
			 * @param after 
			 */
			public setEndRule(month: number, day: number, dayOfWeek: number, time: number, after: boolean): void;
			/**
			 * Sets the offset for standard time from GMT for this SimpleTimeZone.
			 * @param offset 
			 */
			public setRawOffset(offset: number): void;
			/**
			 * Sets the rule which specifies the start of daylight savings time.
			 * @param month 
			 * @param dayOfMonth 
			 * @param time 
			 */
			public setStartRule(month: number, dayOfMonth: number, time: number): void;
			/**
			 * Sets the rule which specifies the start of daylight savings time.
			 * @param month 
			 * @param day 
			 * @param dayOfWeek 
			 * @param time 
			 */
			public setStartRule(month: number, day: number, dayOfWeek: number, time: number): void;
			/**
			 * Sets the rule which specifies the start of daylight savings time.
			 * @param month 
			 * @param day 
			 * @param dayOfWeek 
			 * @param time 
			 * @param after 
			 */
			public setStartRule(month: number, day: number, dayOfWeek: number, time: number, after: boolean): void;
			/**
			 * Sets the starting year for daylight savings time in this SimpleTimeZone. Years before this start year will always be in standard time.
			 * @param year 
			 */
			public setStartYear(year: number): void;
			/**
			 * Returns the string representation of this SimpleTimeZone.
			 */
			public toString(): string;
			public useDaylightTime(): boolean;
		}
		/**
		 * ListResourceBundle is the abstract superclass of classes which provide resources by implementing the getContents() method to return the list of resources.
		 */
		export class ListResourceBundle extends java.util.ResourceBundle {
			/**
			 * Constructs a new instance of this class.
			 */
			constructor();
			static class: java.lang.Class<java.util.ListResourceBundle>;
			/**
			 * Returns an Object array containing the resources of this ListResourceBundle. Each element in the array is an array of two elements, the first is the resource key string and the second is the resource.
			 */
			protected getContents(): native.Array<native.Array<any>>;
			public getKeys(): java.util.IEnumeration<string>;
			public handleGetObject(key: string): any;
			/**
			 * Returns a set of the keys in this ResourceBundle but not in its parents.
			 */
			protected handleKeySet(): java.util.ISet<string>;
		}
		/**
		 * Observer is the interface to be implemented by objects that receive notification of updates on an Observable object.
		 */
		export class Observer implements java.util.IObserver {
			constructor(implementation: java.util.IObserver);
			/**
			 * This method is called if the specified Observable object's notifyObservers method is called (because the Observable object has been updated.
			 * @param observable 
			 * @param data 
			 */
			public update(observable: java.util.Observable, data: any): void;
		}
		/**
		 * EventListener is the superclass of all event listener interfaces.
		 */
		export class EventListener implements java.util.IEventListener {
			constructor(implementation: java.util.IEventListener);
		}
		/**
		 * A collection designed for holding elements prior to processing. Besides basic java.util.Collection Collection operations, queues provide additional insertion, extraction, and inspection operations. Each of these methods exists in two forms: one throws an exception if the operation fails, the other returns a special value (either <tt>null</tt> or <tt>false</tt>, depending on the operation). The latter form of the insert operation is designed specifically for use with capacity-restricted <tt>Queue</tt> implementations; in most implementations, insert operations cannot fail.
		 */
		export class Queue<E> implements java.util.IQueue<E> {
			constructor(implementation: java.util.IQueue<E>);
			/**
			 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available.
			 * @param e the element to add
			 */
			public add(e: E): boolean;
			/**
			 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions. When using a capacity-restricted queue, this method is generally preferable to #add, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			public offer(e: E): boolean;
			/**
			 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
			 */
			public remove(): E;
			/**
			 * Retrieves and removes the head of this queue, or returns <tt>null</tt> if this queue is empty.
			 */
			public poll(): E;
			/**
			 * Retrieves, but does not remove, the head of this queue. This method differs from #peek peek only in that it throws an exception if this queue is empty.
			 */
			public element(): E;
			/**
			 * Retrieves, but does not remove, the head of this queue, or returns <tt>null</tt> if this queue is empty.
			 */
			public peek(): E;
		}
		/**
		 * A legacy iteration interface.
		 */
		export class Enumeration<E> implements java.util.IEnumeration<E> {
			constructor(implementation: java.util.IEnumeration<E>);
			/**
			 * Returns whether this Enumeration has more elements.
			 */
			public hasMoreElements(): boolean;
			/**
			 * Returns the next element in this Enumeration.
			 */
			public nextElement(): E;
		}
		/**
		 * Hashtable is a synchronized implementation of Map. All optional operations are supported.
		 */
		export class Hashtable<K, V> extends java.util.Dictionary<K, V> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new Hashtable using the default capacity and load factor.
			 */
			constructor();
			/**
			 * Constructs a new Hashtable using the specified capacity and the default load factor.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new Hashtable using the specified capacity and load factor.
			 * @param capacity 
			 * @param loadFactor 
			 */
			constructor(capacity: number, loadFactor: number);
			/**
			 * Constructs a new instance of Hashtable containing the mappings from the specified map.
			 * @param map 
			 */
			constructor(map: java.util.IMap<any, any>);
			static class: java.lang.Class<java.util.Hashtable<any, any>>;
			/**
			 * Returns a new Hashtable with the same key/value pairs, capacity and load factor.
			 */
			public clone(): any;
			/**
			 * Returns true if this Hashtable has no key/value pairs.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns the number of key/value pairs in this Hashtable.
			 */
			public size(): number;
			/**
			 * Returns the value associated with the specified key in this Hashtable.
			 * @param key 
			 */
			public get(key: any): V;
			/**
			 * Returns true if this Hashtable contains the specified object as a key of one of the key/value pairs.
			 * @param key 
			 */
			public containsKey(key: any): boolean;
			/**
			 * Searches this Hashtable for the specified value.
			 * @param value 
			 */
			public containsValue(value: any): boolean;
			/**
			 * Returns true if this Hashtable contains the specified object as the value of at least one of the key/value pairs.
			 * @param value 
			 */
			public contains(value: any): boolean;
			/**
			 * Associate the specified value with the specified key in this Hashtable. If the key already exists, the old value is replaced. The key and value cannot be null.
			 * @param key 
			 * @param value 
			 */
			public put(key: K, value: V): V;
			/**
			 * Copies every mapping to this Hashtable from the specified map.
			 * @param map 
			 */
			public putAll(map: java.util.IMap<any, any>): void;
			/**
			 * Increases the capacity of this Hashtable. This method is called when the size of this Hashtable exceeds the load factor.
			 */
			protected rehash(): void;
			/**
			 * Removes the key/value pair with the specified key from this Hashtable.
			 * @param key 
			 */
			public remove(key: any): V;
			/**
			 * Removes all key/value pairs from this Hashtable, leaving the size zero and the capacity unchanged.
			 */
			public clear(): void;
			/**
			 * Returns a set of the keys contained in this Hashtable. The set is backed by this Hashtable so changes to one are reflected by the other. The set does not support adding.
			 */
			public keySet(): java.util.ISet<K>;
			/**
			 * Returns a collection of the values contained in this Hashtable. The collection is backed by this Hashtable so changes to one are reflected by the other. The collection does not support adding.
			 */
			public values(): java.util.ICollection<V>;
			/**
			 * Returns a set of the mappings contained in this Hashtable. Each element in the set is a Map.Entry. The set is backed by this Hashtable so changes to one are reflected by the other. The set does not support adding.
			 */
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			/**
			 * Returns an enumeration on the keys of this Hashtable instance. The results of the enumeration may be affected if the contents of this Hashtable are modified.
			 */
			public keys(): java.util.IEnumeration<K>;
			/**
			 * Returns an enumeration on the values of this Hashtable. The results of the Enumeration may be affected if the contents of this Hashtable are modified.
			 */
			public elements(): java.util.IEnumeration<V>;
			/**
			 * Compares this Hashtable with the specified object and indicates if they are equal. In order to be equal, object must be an instance of Map and contain the same key/value pairs.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public hashCode(): number;
			/**
			 * Returns the string representation of this Hashtable.
			 */
			public toString(): string;
		}
		export module Hashtable {
			export class KeySet extends java.util.AbstractSet<any> {
				static class: java.lang.Class<java.util.Hashtable.KeySet>;
				public iterator(): java.util.IIterator<any>;
				public size(): number;
				public contains(o: any): boolean;
				public remove(o: any): boolean;
				public clear(): void;
				public removeAll(collection: java.util.ICollection<any>): boolean;
				public retainAll(collection: java.util.ICollection<any>): boolean;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				public equals(object: any): boolean;
				public hashCode(): number;
				public toString(): string;
				public toArray(): native.Array<any>;
				public toArray<T>(a: native.Array<T>): native.Array<T>;
			}
			export class HashIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.Hashtable.HashIterator>;
				public hasNext(): boolean;
				nextEntry(): java.util.Hashtable.HashtableEntry<any, any>;
				nextEntryNotFailFast(): java.util.Hashtable.HashtableEntry<any, any>;
				public remove(): void;
			}
			export class KeyIterator extends java.util.Hashtable.HashIterator {
				static class: java.lang.Class<java.util.Hashtable.KeyIterator>;
				public next(): any;
			}
			export class ValueEnumeration extends java.util.Hashtable.HashIterator {
				static class: java.lang.Class<java.util.Hashtable.ValueEnumeration>;
				public hasMoreElements(): boolean;
				public nextElement(): any;
			}
			export class Values extends java.util.AbstractCollection<any> {
				static class: java.lang.Class<java.util.Hashtable.Values>;
				public iterator(): java.util.IIterator<any>;
				public size(): number;
				public contains(o: any): boolean;
				public clear(): void;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				public toString(): string;
				public toArray(): native.Array<any>;
				public toArray<T>(a: native.Array<T>): native.Array<T>;
			}
			export class ValueIterator extends java.util.Hashtable.HashIterator {
				static class: java.lang.Class<java.util.Hashtable.ValueIterator>;
				public next(): any;
			}
			export class EntryIterator extends java.util.Hashtable.HashIterator {
				static class: java.lang.Class<java.util.Hashtable.EntryIterator>;
				public next(): java.util.Map.IEntry<any, any>;
			}
			/**
			 * Note: technically the methods of this class should synchronize the backing map. However, this would require them to have a reference to it, which would cause considerable bloat. Moreover, the RI behaves the same way.
			 */
			export class HashtableEntry<K, V> extends java.lang.Object {
				static class: java.lang.Class<java.util.Hashtable.HashtableEntry<any, any>>;
				public getKey(): K;
				public getValue(): V;
				public setValue(value: V): V;
				public equals(o: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
			export class KeyEnumeration extends java.util.Hashtable.HashIterator {
				static class: java.lang.Class<java.util.Hashtable.KeyEnumeration>;
				public hasMoreElements(): boolean;
				public nextElement(): any;
			}
			export class EntrySet extends java.util.AbstractSet<java.util.Map.IEntry<any, any>> {
				static class: java.lang.Class<java.util.Hashtable.EntrySet>;
				public iterator(): java.util.IIterator<java.util.Map.IEntry<any, any>>;
				public contains(o: any): boolean;
				public remove(o: any): boolean;
				public size(): number;
				public clear(): void;
				public removeAll(collection: java.util.ICollection<any>): boolean;
				public retainAll(collection: java.util.ICollection<any>): boolean;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				public equals(object: any): boolean;
				public hashCode(): number;
				public toString(): string;
				public toArray(): native.Array<any>;
				public toArray<T>(a: native.Array<T>): native.Array<T>;
			}
		}
		/**
		 * Calendar is an abstract base class for converting between a Date object and a set of integer fields such as YEAR, MONTH, DAY, HOUR, and so on. (A Date object represents a specific instant in time with millisecond precision. See Date for information about the Date class.)
		 */
		export class Calendar extends java.lang.Object implements java.io.ISerializable, java.lang.ICloneable {
			/**
			 * Value of the MONTH field indicating the first month of the year.
			 */
			static JANUARY: number;
			/**
			 * Value of the MONTH field indicating the second month of the year.
			 */
			static FEBRUARY: number;
			/**
			 * Value of the MONTH field indicating the third month of the year.
			 */
			static MARCH: number;
			/**
			 * Value of the MONTH field indicating the fourth month of the year.
			 */
			static APRIL: number;
			/**
			 * Value of the MONTH field indicating the fifth month of the year.
			 */
			static MAY: number;
			/**
			 * Value of the MONTH field indicating the sixth month of the year.
			 */
			static JUNE: number;
			/**
			 * Value of the MONTH field indicating the seventh month of the year.
			 */
			static JULY: number;
			/**
			 * Value of the MONTH field indicating the eighth month of the year.
			 */
			static AUGUST: number;
			/**
			 * Value of the MONTH field indicating the ninth month of the year.
			 */
			static SEPTEMBER: number;
			/**
			 * Value of the MONTH field indicating the tenth month of the year.
			 */
			static OCTOBER: number;
			/**
			 * Value of the MONTH field indicating the eleventh month of the year.
			 */
			static NOVEMBER: number;
			/**
			 * Value of the MONTH field indicating the twelfth month of the year.
			 */
			static DECEMBER: number;
			/**
			 * Value of the MONTH field indicating the thirteenth month of the year. Although GregorianCalendar does not use this value, lunar calendars do.
			 */
			static UNDECIMBER: number;
			/**
			 * Value of the DAY_OF_WEEK field indicating Sunday.
			 */
			static SUNDAY: number;
			/**
			 * Value of the DAY_OF_WEEK field indicating Monday.
			 */
			static MONDAY: number;
			/**
			 * Value of the DAY_OF_WEEK field indicating Tuesday.
			 */
			static TUESDAY: number;
			/**
			 * Value of the DAY_OF_WEEK field indicating Wednesday.
			 */
			static WEDNESDAY: number;
			/**
			 * Value of the DAY_OF_WEEK field indicating Thursday.
			 */
			static THURSDAY: number;
			/**
			 * Value of the DAY_OF_WEEK field indicating Friday.
			 */
			static FRIDAY: number;
			/**
			 * Value of the DAY_OF_WEEK field indicating Saturday.
			 */
			static SATURDAY: number;
			/**
			 * Field number for get and set indicating the era, e.g., AD or BC in the Julian calendar. This is a calendar-specific value; see subclass documentation.
			 */
			static ERA: number;
			/**
			 * Field number for get and set indicating the year. This is a calendar-specific value; see subclass documentation.
			 */
			static YEAR: number;
			/**
			 * Field number for get and set indicating the month. This is a calendar-specific value. The first month of the year is JANUARY; the last depends on the number of months in a year.
			 */
			static MONTH: number;
			/**
			 * Field number for get and set indicating the week number within the current year. The first week of the year, as defined by getFirstDayOfWeek() and getMinimalDaysInFirstWeek(), has value 1. Subclasses define the value of WEEK_OF_YEAR for days before the first week of the year.
			 */
			static WEEK_OF_YEAR: number;
			/**
			 * Field number for get and set indicating the week number within the current month. The first week of the month, as defined by getFirstDayOfWeek() and getMinimalDaysInFirstWeek(), has value 1. Subclasses define the value of WEEK_OF_MONTH for days before the first week of the month.
			 */
			static WEEK_OF_MONTH: number;
			/**
			 * Field number for get and set indicating the day of the month. This is a synonym for DAY_OF_MONTH. The first day of the month has value 1.
			 */
			static DATE: number;
			/**
			 * Field number for get and set indicating the day of the month. This is a synonym for DATE. The first day of the month has value 1.
			 */
			static DAY_OF_MONTH: number;
			/**
			 * Field number for get and set indicating the day number within the current year. The first day of the year has value 1.
			 */
			static DAY_OF_YEAR: number;
			/**
			 * Field number for get and set indicating the day of the week. This field takes values SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, and SATURDAY.
			 */
			static DAY_OF_WEEK: number;
			/**
			 * Field number for get and set indicating the ordinal number of the day of the week within the current month. Together with the DAY_OF_WEEK field, this uniquely specifies a day within a month. Unlike WEEK_OF_MONTH and WEEK_OF_YEAR, this field's value does <em>not</em> depend on getFirstDayOfWeek() or getMinimalDaysInFirstWeek(). DAY_OF_MONTH 1 through 7 always correspond to <code>DAY_OF_WEEK_IN_MONTH 1</code>; 8 through 15 correspond to DAY_OF_WEEK_IN_MONTH 2, and so on. DAY_OF_WEEK_IN_MONTH 0 indicates the week before DAY_OF_WEEK_IN_MONTH 1. Negative values count back from the end of the month, so the last Sunday of a month is specified as DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1. Because negative values count backward they will usually be aligned differently within the month than positive values. For example, if a month has 31 days, DAY_OF_WEEK_IN_MONTH -1 will overlap DAY_OF_WEEK_IN_MONTH 5 and the end of 4.
			 */
			static DAY_OF_WEEK_IN_MONTH: number;
			/**
			 * Field number for get and set indicating whether the HOUR is before or after noon. E.g., at 10:04:15.250 PM the AM_PM is PM.
			 */
			static AM_PM: number;
			/**
			 * Field number for get and set indicating the hour of the morning or afternoon. HOUR is used for the 12-hour clock. E.g., at 10:04:15.250 PM the HOUR is 10.
			 */
			static HOUR: number;
			/**
			 * Field number for get and set indicating the hour of the day. HOUR_OF_DAY is used for the 24-hour clock. E.g., at 10:04:15.250 PM the HOUR_OF_DAY is 22.
			 */
			static HOUR_OF_DAY: number;
			/**
			 * Field number for get and set indicating the minute within the hour. E.g., at 10:04:15.250 PM the MINUTE is 4.
			 */
			static MINUTE: number;
			/**
			 * Field number for get and set indicating the second within the minute. E.g., at 10:04:15.250 PM the SECOND is 15.
			 */
			static SECOND: number;
			/**
			 * Field number for get and set indicating the millisecond within the second. E.g., at 10:04:15.250 PM the MILLISECOND is 250.
			 */
			static MILLISECOND: number;
			/**
			 * Field number for get and set indicating the raw offset from GMT in milliseconds.
			 */
			static ZONE_OFFSET: number;
			/**
			 * Field number for get and set indicating the daylight savings offset in milliseconds.
			 */
			static DST_OFFSET: number;
			/**
			 * This is the total number of fields in this calendar.
			 */
			static FIELD_COUNT: number;
			/**
			 * Value of the AM_PM field indicating the period of the day from midnight to just before noon.
			 */
			static AM: number;
			/**
			 * Value of the AM_PM field indicating the period of the day from noon to just before midnight.
			 */
			static PM: number;
			/**
			 * Requests both SHORT and LONG styles in the map returned by #getDisplayNames. 1.6
			 */
			static ALL_STYLES: number;
			/**
			 * Requests short names (such as "Jan") from #getDisplayName or #getDisplayNames. 1.6
			 */
			static SHORT: number;
			/**
			 * Requests long names (such as "January") from #getDisplayName or #getDisplayNames. 1.6
			 */
			static LONG: number;
			static class: java.lang.Class<java.util.Calendar>;
			/**
			 * Adds the specified amount to a Calendar field.
			 * @param field 
			 * @param value 
			 */
			public add(field: number, value: number): void;
			/**
			 * Returns whether the Date specified by this Calendar instance is after the Date specified by the parameter. The comparison is not dependent on the time zones of the Calendar.
			 * @param calendar 
			 */
			public after(calendar: any): boolean;
			/**
			 * Returns whether the Date specified by this Calendar instance is before the Date specified by the parameter. The comparison is not dependent on the time zones of the Calendar.
			 * @param calendar 
			 */
			public before(calendar: any): boolean;
			/**
			 * Clears all of the fields of this Calendar. All fields are initialized to zero.
			 */
			public clear(): void;
			/**
			 * Clears the specified field to zero and sets the isSet flag to false.
			 * @param field 
			 */
			public clear(field: number): void;
			/**
			 * Returns a new Calendar with the same properties.
			 */
			public clone(): any;
			/**
			 * Computes the time from the fields if the time has not already been set. Computes the fields from the time if the fields are not already set.
			 */
			protected complete(): void;
			/**
			 * Computes the Calendar fields from time.
			 */
			protected computeFields(): void;
			/**
			 * Computes time from the Calendar fields.
			 */
			protected computeTime(): void;
			/**
			 * Compares the specified object to this Calendar and returns whether they are equal. The object must be an instance of Calendar and have the same properties.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Gets the value of the specified field after computing the field values by calling complete() first.
			 * @param field 
			 */
			public get(field: number): number;
			/**
			 * Returns the maximum value of the specified field for the current date. For example, the maximum number of days in the current month.
			 */
			public getActualMaximum(field: number): number;
			/**
			 * Gets the minimum value of the specified field for the current date.
			 * @param field 
			 */
			public getActualMinimum(field: number): number;
			/**
			 * Returns an array of locales for which custom Calendar instances are available.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			/**
			 * Gets the first day of the week for this Calendar.
			 */
			public getFirstDayOfWeek(): number;
			/**
			 * Gets the greatest minimum value of the specified field. This is the biggest value that getActualMinimum can return for any possible time.
			 * @param field 
			 */
			public getGreatestMinimum(field: number): number;
			/**
			 * Constructs a new instance of the Calendar subclass appropriate for the default Locale.
			 */
			public static getInstance(): java.util.Calendar;
			/**
			 * Constructs a new instance of the Calendar subclass appropriate for the specified Locale.
			 * @param locale 
			 */
			public static getInstance(locale: java.util.Locale): java.util.Calendar;
			/**
			 * Constructs a new instance of the Calendar subclass appropriate for the default Locale, using the specified TimeZone.
			 * @param timezone 
			 */
			public static getInstance(timezone: java.util.TimeZone): java.util.Calendar;
			/**
			 * Constructs a new instance of the Calendar subclass appropriate for the specified Locale.
			 * @param timezone 
			 * @param locale 
			 */
			public static getInstance(timezone: java.util.TimeZone, locale: java.util.Locale): java.util.Calendar;
			/**
			 * Gets the smallest maximum value of the specified field. This is the smallest value that getActualMaximum() can return for any possible time.
			 * @param field 
			 */
			public getLeastMaximum(field: number): number;
			/**
			 * Gets the greatest maximum value of the specified field. This returns the biggest value that get can return for the specified field.
			 * @param field 
			 */
			public getMaximum(field: number): number;
			/**
			 * Gets the minimal days in the first week of the year.
			 */
			public getMinimalDaysInFirstWeek(): number;
			/**
			 * Gets the smallest minimum value of the specified field. this returns the smallest value thet get can return for the specified field.
			 * @param field 
			 */
			public getMinimum(field: number): number;
			/**
			 * Gets the time of this Calendar as a Date object.
			 */
			public getTime(): java.util.Date;
			/**
			 * Computes the time from the fields if required and returns the time.
			 */
			public getTimeInMillis(): any;
			/**
			 * Gets the timezone of this Calendar.
			 */
			public getTimeZone(): java.util.TimeZone;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			public hashCode(): number;
			/**
			 * Gets the value of the specified field without recomputing.
			 * @param field 
			 */
			protected internalGet(field: number): number;
			/**
			 * Returns if this Calendar accepts field values which are outside the valid range for the field.
			 */
			public isLenient(): boolean;
			/**
			 * Returns whether the specified field is set. Note that the interpretation of "is set" is somewhat technical. In particular, it does <i>not</i> mean that the field's value is up to date. If you want to know whether a field contains an up-to-date value, you must also check areFieldsSet, making this method somewhat useless unless you're a subclass, in which case you can access the isSet array directly.
			 * @param field 
			 */
			public isSet(field: number): boolean;
			/**
			 * Adds the specified amount to the specified field and wraps the value of the field when it goes beyond the maximum or minimum value for the current date. Other fields will be adjusted as required to maintain a consistent date.
			 * @param field 
			 * @param value 
			 */
			public roll(field: number, value: number): void;
			/**
			 * Increment or decrement the specified field and wrap the value of the field when it goes beyond the maximum or minimum value for the current date. Other fields will be adjusted as required to maintain a consistent date.
			 * @param field 
			 * @param increment 
			 */
			public roll(field: number, increment: boolean): void;
			/**
			 * Sets a field to the specified value.
			 * @param field 
			 * @param value 
			 */
			public set(field: number, value: number): void;
			/**
			 * Sets the year, month and day of the month fields. Other fields are not changed.
			 * @param year 
			 * @param month 
			 * @param day 
			 */
			public set(year: number, month: number, day: number): void;
			/**
			 * Sets the year, month, day of the month, hour of day and minute fields. Other fields are not changed.
			 * @param year 
			 * @param month 
			 * @param day 
			 * @param hourOfDay 
			 * @param minute 
			 */
			public set(year: number, month: number, day: number, hourOfDay: number, minute: number): void;
			/**
			 * Sets the year, month, day of the month, hour of day, minute and second fields. Other fields are not changed.
			 * @param year 
			 * @param month 
			 * @param day 
			 * @param hourOfDay 
			 * @param minute 
			 * @param second 
			 */
			public set(year: number, month: number, day: number, hourOfDay: number, minute: number, second: number): void;
			/**
			 * Sets the first day of the week for this Calendar.
			 * @param value 
			 */
			public setFirstDayOfWeek(value: number): void;
			/**
			 * Sets this Calendar to accept field values which are outside the valid range for the field.
			 * @param value 
			 */
			public setLenient(value: boolean): void;
			/**
			 * Sets the minimal days in the first week of the year.
			 * @param value 
			 */
			public setMinimalDaysInFirstWeek(value: number): void;
			/**
			 * Sets the time of this Calendar.
			 * @param date 
			 */
			public setTime(date: java.util.Date): void;
			/**
			 * Sets the time of this Calendar.
			 * @param milliseconds 
			 */
			public setTimeInMillis(milliseconds: number): void;
			/**
			 * Sets the TimeZone used by this Calendar.
			 * @param timezone 
			 */
			public setTimeZone(timezone: java.util.TimeZone): void;
			/**
			 * Returns the string representation of this Calendar.
			 */
			public toString(): string;
			/**
			 * Compares the times of the two Calendar, which represent the milliseconds from the January 1, 1970 00:00:00.000 GMT (Gregorian).
			 * @param anotherCalendar 
			 */
			public compareTo(anotherCalendar: java.util.Calendar): number;
			/**
			 * Returns a human-readable string for the value of field using the given style and locale. If no string is available, returns null. The value is retrieved by invoking get(field).
			 * @param field the field
			 * @param style {@code SHORT} or {@code LONG}
			 * @param locale the locale
			 */
			public getDisplayName(field: number, style: number, locale: java.util.Locale): string;
			/**
			 * Returns a map of human-readable strings to corresponding values, for the given field, style, and locale. Returns null if no strings are available.
			 * @param field the field
			 * @param style {@code SHORT}, {@code LONG}, or {@code ALL_STYLES}
			 * @param locale the locale
			 */
			public getDisplayNames(field: number, style: number, locale: java.util.Locale): java.util.IMap<string, java.lang.Integer>;
		}
		/**
		 * An AbstractSet is an abstract implementation of the Set interface. This implementation does not support adding. A subclass must implement the abstract methods iterator() and size().
		 */
		export class AbstractSet<E> extends java.util.AbstractCollection<E> {
			static class: java.lang.Class<java.util.AbstractSet<any>>;
			/**
			 * Compares the specified object to this Set and returns true if they are equal. The object must be an instance of Set and contain the same objects.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the hash code for this set. Two set which are equal must return the same value. This implementation calculates the hash code by adding each element's hash code.
			 */
			public hashCode(): number;
			/**
			 * Removes all occurrences in this collection which are contained in the specified collection.
			 * @param collection 
			 */
			public removeAll(collection: java.util.ICollection<any>): boolean;
		}
		/**
		 * A map whose entries are sorted by their keys. All optional operations such as #put and #remove are supported.
		 */
		export class TreeMap<K, V> extends java.util.AbstractMap<K, V> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Create a natural order, empty tree map whose keys must be mutually comparable and non-null.
			 */
			constructor();
			/**
			 * Create a natural order tree map populated with the key/value pairs of copyFrom. This map's keys must be mutually comparable and non-null.
			 */
			constructor(copyFrom: java.util.IMap<any, any>);
			/**
			 * Create a tree map ordered by comparator. This map's keys may only be null if comparator permits.
			 * @param comparator the comparator to order elements with, or {@code null} to use the natural
			 */
			constructor(comparator: java.util.IComparator<any>);
			/**
			 * Create a tree map with the ordering and key/value pairs of copyFrom. This map's keys may only be null if the copyFrom's ordering permits.
			 */
			constructor(copyFrom: java.util.ISortedMap<K, any>);
			static class: java.lang.Class<java.util.TreeMap<any, any>>;
			public clone(): any;
			public size(): number;
			public isEmpty(): boolean;
			public get(key: any): V;
			public containsKey(key: any): boolean;
			public put(key: K, value: V): V;
			public clear(): void;
			public remove(key: any): V;
			putInternal(key: K, value: V): V;
			/**
			 * Returns the node at or adjacent to the given key, creating it if requested.
			 */
			find(key: K, relation: java.util.TreeMap.Relation): java.util.TreeMap.Node<K, V>;
			findByObject(key: any): java.util.TreeMap.Node<K, V>;
			/**
			 * Returns this map's entry that has the same key and value as entry, or null if this map has no such entry.
			 */
			findByEntry(entry: java.util.Map.IEntry<any, any>): java.util.TreeMap.Node<K, V>;
			/**
			 * Removes node from this tree, rearranging the tree's structure as necessary.
			 */
			removeInternal(node: java.util.TreeMap.Node<K, V>): void;
			removeInternalByKey(key: any): java.util.TreeMap.Node<K, V>;
			public firstEntry(): java.util.Map.IEntry<K, V>;
			public pollFirstEntry(): java.util.Map.IEntry<K, V>;
			public firstKey(): K;
			public lastEntry(): java.util.Map.IEntry<K, V>;
			public pollLastEntry(): java.util.Map.IEntry<K, V>;
			public lastKey(): K;
			public lowerEntry(key: K): java.util.Map.IEntry<K, V>;
			public lowerKey(key: K): K;
			public floorEntry(key: K): java.util.Map.IEntry<K, V>;
			public floorKey(key: K): K;
			public ceilingEntry(key: K): java.util.Map.IEntry<K, V>;
			public ceilingKey(key: K): K;
			public higherEntry(key: K): java.util.Map.IEntry<K, V>;
			public higherKey(key: K): K;
			public comparator(): java.util.IComparator<any>;
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			public keySet(): java.util.ISet<K>;
			public navigableKeySet(): java.util.INavigableSet<K>;
			public subMap(from: K, fromInclusive: boolean, to: K, toInclusive: boolean): java.util.INavigableMap<K, V>;
			public subMap(fromInclusive: K, toExclusive: K): java.util.ISortedMap<K, V>;
			public headMap(to: K, inclusive: boolean): java.util.INavigableMap<K, V>;
			public headMap(toExclusive: K): java.util.ISortedMap<K, V>;
			public tailMap(from: K, inclusive: boolean): java.util.INavigableMap<K, V>;
			public tailMap(fromInclusive: K): java.util.ISortedMap<K, V>;
			public descendingMap(): java.util.INavigableMap<K, V>;
			public descendingKeySet(): java.util.INavigableSet<K>;
			/**
			 * Returns the number of elements in the iteration.
			 */
			static count(iterator: java.util.IIterator<any>): number;
		}
		export module TreeMap {
			export class KeySet extends java.util.AbstractSet<any> {
				static class: java.lang.Class<java.util.TreeMap.KeySet>;
				public size(): number;
				public iterator(): java.util.IIterator<any>;
				public descendingIterator(): java.util.IIterator<any>;
				public contains(o: any): boolean;
				public remove(key: any): boolean;
				public clear(): void;
				public comparator(): java.util.IComparator<any>;
				public first(): any;
				public last(): any;
				public lower(key: any): any;
				public floor(key: any): any;
				public ceiling(key: any): any;
				public higher(key: any): any;
				public pollFirst(): any;
				public pollLast(): any;
				public subSet(from: any, fromInclusive: boolean, to: any, toInclusive: boolean): java.util.INavigableSet<any>;
				public subSet(fromInclusive: any, toExclusive: any): java.util.ISortedSet<any>;
				public headSet(to: any, inclusive: boolean): java.util.INavigableSet<any>;
				public headSet(toExclusive: any): java.util.ISortedSet<any>;
				public tailSet(from: any, inclusive: boolean): java.util.INavigableSet<any>;
				public tailSet(fromInclusive: any): java.util.ISortedSet<any>;
				public descendingSet(): java.util.INavigableSet<any>;
			}
			export enum Relation {
				LOWER,
				FLOOR,
				EQUAL,
				CREATE,
				CEILING,
				HIGHER
			}
			export class NavigableSubMap<K, V> extends java.util.AbstractMap<K, V> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.TreeMap.NavigableSubMap<any, any>>;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
				protected readResolve(): any;
			}
			export class Node<K, V> extends java.lang.Object {
				static class: java.lang.Class<java.util.TreeMap.Node<any, any>>;
				copy(parent: java.util.TreeMap.Node<K, V>): java.util.TreeMap.Node<K, V>;
				public getKey(): K;
				public getValue(): V;
				public setValue(value: V): V;
				public equals(o: any): boolean;
				public hashCode(): number;
				public toString(): string;
				/**
				 * Returns the next node in an inorder traversal, or null if this is the last node in the tree.
				 */
				next(): java.util.TreeMap.Node<K, V>;
				/**
				 * Returns the previous node in an inorder traversal, or null if this is the first node in the tree.
				 */
				public prev(): java.util.TreeMap.Node<K, V>;
				/**
				 * Returns the first node in this subtree.
				 */
				public first(): java.util.TreeMap.Node<K, V>;
				/**
				 * Returns the last node in this subtree.
				 */
				public last(): java.util.TreeMap.Node<K, V>;
			}
			export class AscendingSubMap<K, V> extends java.util.TreeMap.NavigableSubMap<K, V> {
				static class: java.lang.Class<java.util.TreeMap.AscendingSubMap<any, any>>;
			}
			export enum Bound {
				INCLUSIVE,
				EXCLUSIVE,
				NO_BOUND
			}
			export class DescendingSubMap<K, V> extends java.util.TreeMap.NavigableSubMap<K, V> {
				static class: java.lang.Class<java.util.TreeMap.DescendingSubMap<any, any>>;
			}
			/**
			 * A map with optional limits on its range.
			 */
			export class BoundedMap extends java.util.AbstractMap<any, any> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.TreeMap.BoundedMap>;
				public size(): number;
				public isEmpty(): boolean;
				public get(key: any): any;
				public containsKey(key: any): boolean;
				public put(key: any, value: any): any;
				public remove(key: any): any;
				public firstEntry(): java.util.Map.IEntry<any, any>;
				public pollFirstEntry(): java.util.Map.IEntry<any, any>;
				public firstKey(): any;
				public lastEntry(): java.util.Map.IEntry<any, any>;
				public pollLastEntry(): java.util.Map.IEntry<any, any>;
				public lastKey(): any;
				public lowerEntry(key: any): java.util.Map.IEntry<any, any>;
				public lowerKey(key: any): any;
				public floorEntry(key: any): java.util.Map.IEntry<any, any>;
				public floorKey(key: any): any;
				public ceilingEntry(key: any): java.util.Map.IEntry<any, any>;
				public ceilingKey(key: any): any;
				public higherEntry(key: any): java.util.Map.IEntry<any, any>;
				public higherKey(key: any): any;
				public comparator(): java.util.IComparator<any>;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<any, any>>;
				public keySet(): java.util.ISet<any>;
				public navigableKeySet(): java.util.INavigableSet<any>;
				public descendingMap(): java.util.INavigableMap<any, any>;
				public descendingKeySet(): java.util.INavigableSet<any>;
				public subMap(from: any, fromInclusive: boolean, to: any, toInclusive: boolean): java.util.INavigableMap<any, any>;
				public subMap(fromInclusive: any, toExclusive: any): java.util.INavigableMap<any, any>;
				public headMap(to: any, inclusive: boolean): java.util.INavigableMap<any, any>;
				public headMap(toExclusive: any): java.util.INavigableMap<any, any>;
				public tailMap(from: any, inclusive: boolean): java.util.INavigableMap<any, any>;
				public tailMap(fromInclusive: any): java.util.INavigableMap<any, any>;
				writeReplace(): any;
			}
			export module BoundedMap {
				export class BoundedEntrySet extends java.util.AbstractSet<java.util.Map.IEntry<any, any>> {
					static class: java.lang.Class<java.util.TreeMap.BoundedMap.BoundedEntrySet>;
					public size(): number;
					public isEmpty(): boolean;
					public iterator(): java.util.IIterator<java.util.Map.IEntry<any, any>>;
					public contains(o: any): boolean;
					public remove(o: any): boolean;
				}
				export class BoundedKeySet extends java.util.AbstractSet<any> {
					static class: java.lang.Class<java.util.TreeMap.BoundedMap.BoundedKeySet>;
					public size(): number;
					public isEmpty(): boolean;
					public iterator(): java.util.IIterator<any>;
					public descendingIterator(): java.util.IIterator<any>;
					public contains(key: any): boolean;
					public remove(key: any): boolean;
					public first(): any;
					public pollFirst(): any;
					public last(): any;
					public pollLast(): any;
					public lower(key: any): any;
					public floor(key: any): any;
					public ceiling(key: any): any;
					public higher(key: any): any;
					public comparator(): java.util.IComparator<any>;
					public subSet(from: any, fromInclusive: boolean, to: any, toInclusive: boolean): java.util.INavigableSet<any>;
					public subSet(fromInclusive: any, toExclusive: any): java.util.ISortedSet<any>;
					public headSet(to: any, inclusive: boolean): java.util.INavigableSet<any>;
					public headSet(toExclusive: any): java.util.ISortedSet<any>;
					public tailSet(from: any, inclusive: boolean): java.util.INavigableSet<any>;
					public tailSet(fromInclusive: any): java.util.ISortedSet<any>;
					public descendingSet(): java.util.INavigableSet<any>;
				}
				export class BoundedIterator<T> extends java.util.TreeMap.MapIterator<T> {
					static class: java.lang.Class<java.util.TreeMap.BoundedMap.BoundedIterator<any>>;
					protected stepForward(): java.util.TreeMap.Node<any, any>;
					protected stepBackward(): java.util.TreeMap.Node<any, any>;
				}
			}
			export class SubMap extends java.util.AbstractMap<any, any> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.TreeMap.SubMap>;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<any, any>>;
				protected readResolve(): any;
			}
			/**
			 * Walk the nodes of the tree left-to-right or right-to-left. Note that in descending iterations, next will return the previous node.
			 */
			export class MapIterator<T> extends java.lang.Object {
				static class: java.lang.Class<java.util.TreeMap.MapIterator<any>>;
				public hasNext(): boolean;
				protected stepForward(): java.util.TreeMap.Node<any, any>;
				protected stepBackward(): java.util.TreeMap.Node<any, any>;
				public remove(): void;
			}
			export class EntrySet extends java.util.AbstractSet<java.util.Map.IEntry<any, any>> {
				static class: java.lang.Class<java.util.TreeMap.EntrySet>;
				public size(): number;
				public iterator(): java.util.IIterator<java.util.Map.IEntry<any, any>>;
				public contains(o: any): boolean;
				public remove(o: any): boolean;
				public clear(): void;
			}
		}
		/**
		 * A linear collection that supports element insertion and removal at both ends. The name <i>deque</i> is short for "double ended queue" and is usually pronounced "deck". Most <tt>Deque</tt> implementations place no fixed limits on the number of elements they may contain, but this interface supports capacity-restricted deques as well as those with no fixed size limit.
		 */
		export class Deque<E> implements java.util.IDeque<E> {
			constructor(implementation: java.util.IDeque<E>);
			/**
			 * Inserts the specified element at the front of this deque if it is possible to do so immediately without violating capacity restrictions. When using a capacity-restricted deque, it is generally preferable to use method #offerFirst.
			 * @param e the element to add
			 */
			public addFirst(e: E): void;
			/**
			 * Inserts the specified element at the end of this deque if it is possible to do so immediately without violating capacity restrictions. When using a capacity-restricted deque, it is generally preferable to use method #offerLast.
			 * @param e the element to add
			 */
			public addLast(e: E): void;
			/**
			 * Inserts the specified element at the front of this deque unless it would violate capacity restrictions. When using a capacity-restricted deque, this method is generally preferable to the #addFirst method, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			public offerFirst(e: E): boolean;
			/**
			 * Inserts the specified element at the end of this deque unless it would violate capacity restrictions. When using a capacity-restricted deque, this method is generally preferable to the #addLast method, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			public offerLast(e: E): boolean;
			/**
			 * Retrieves and removes the first element of this deque. This method differs from #pollFirst pollFirst only in that it throws an exception if this deque is empty.
			 */
			public removeFirst(): E;
			/**
			 * Retrieves and removes the last element of this deque. This method differs from #pollLast pollLast only in that it throws an exception if this deque is empty.
			 */
			public removeLast(): E;
			/**
			 * Retrieves and removes the first element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			public pollFirst(): E;
			/**
			 * Retrieves and removes the last element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			public pollLast(): E;
			/**
			 * Retrieves, but does not remove, the first element of this deque.
			 */
			public getFirst(): E;
			/**
			 * Retrieves, but does not remove, the last element of this deque. This method differs from #peekLast peekLast only in that it throws an exception if this deque is empty.
			 */
			public getLast(): E;
			/**
			 * Retrieves, but does not remove, the first element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			public peekFirst(): E;
			/**
			 * Retrieves, but does not remove, the last element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			public peekLast(): E;
			/**
			 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			public removeFirstOccurrence(o: any): boolean;
			/**
			 * Removes the last occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the last element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			public removeLastOccurrence(o: any): boolean;
			/**
			 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offer(Object) offer.
			 * @param e the element to add
			 */
			public add(e: E): boolean;
			/**
			 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #add method, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			public offer(e: E): boolean;
			/**
			 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #poll poll only in that it throws an exception if this deque is empty.
			 */
			public remove(): E;
			/**
			 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
			 */
			public poll(): E;
			/**
			 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #peek peek only in that it throws an exception if this deque is empty.
			 */
			public element(): E;
			/**
			 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
			 */
			public peek(): E;
			/**
			 * Pushes an element onto the stack represented by this deque (in other words, at the head of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available.
			 * @param e the element to push
			 */
			public push(e: E): void;
			/**
			 * Pops an element from the stack represented by this deque. In other words, removes and returns the first element of this deque.
			 */
			public pop(): E;
			/**
			 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			public remove(o: any): boolean;
			/**
			 * Returns <tt>true</tt> if this deque contains the specified element. More formally, returns <tt>true</tt> if and only if this deque contains at least one element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>.
			 * @param o element whose presence in this deque is to be tested
			 */
			public contains(o: any): boolean;
			/**
			 * Returns the number of elements in this deque.
			 */
			public size(): number;
			/**
			 * Returns an iterator over the elements in this deque in proper sequence. The elements will be returned in order from first (head) to last (tail).
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Returns an iterator over the elements in this deque in reverse sequential order. The elements will be returned in order from last (tail) to first (head).
			 */
			public descendingIterator(): java.util.IIterator<E>;
		}
		/**
		 * Observable is used to notify a group of Observer objects when a change occurs. On creation, the set of observers is empty. After a change occurred, the application can call the #notifyObservers() method. This will cause the invocation of the update() method of all registered Observers. The order of invocation is not specified. This implementation will call the Observers in the order they registered. Subclasses are completely free in what order they call the update methods.
		 */
		export class Observable extends java.lang.Object {
			/**
			 * Constructs a new Observable object.
			 */
			constructor();
			static class: java.lang.Class<java.util.Observable>;
			/**
			 * Adds the specified observer to the list of observers. If it is already registered, it is not added a second time.
			 * @param observer 
			 */
			public addObserver(observer: java.util.IObserver): void;
			/**
			 * Clears the changed flag for this Observable. After calling clearChanged(), hasChanged() will return false.
			 */
			protected clearChanged(): void;
			/**
			 * Returns the number of observers registered to this Observable.
			 */
			public countObservers(): number;
			/**
			 * Removes the specified observer from the list of observers. Passing null won't do anything.
			 * @param observer 
			 */
			public deleteObserver(observer: java.util.IObserver): void;
			/**
			 * Removes all observers from the list of observers.
			 */
			public deleteObservers(): void;
			/**
			 * Returns the changed flag for this Observable.
			 */
			public hasChanged(): boolean;
			/**
			 * If hasChanged() returns true, calls the update() method for every observer in the list of observers using null as the argument. Afterwards, calls clearChanged().
			 */
			public notifyObservers(): void;
			/**
			 * If hasChanged() returns true, calls the update() method for every Observer in the list of observers using the specified argument. Afterwards calls clearChanged().
			 * @param data 
			 */
			public notifyObservers(data: any): void;
			/**
			 * Sets the changed flag for this Observable. After calling setChanged(), hasChanged() will return true.
			 */
			protected setChanged(): void;
		}
		/**
		 * Classes that handle custom formatting for the 's' specifier of Formatter should implement the Formattable interface. It gives basic control over formatting objects.
		 */
		export class Formattable implements java.util.IFormattable {
			constructor(implementation: java.util.IFormattable);
			/**
			 * Formats the object using the specified Formatter.
			 * @param formatter 
			 * @param flags 
			 * @param width 
			 * @param precision 
			 */
			public formatTo(formatter: java.util.Formatter, flags: number, width: number, precision: number): void;
		}
		/**
		 * A Map is a data structure consisting of a set of keys and values in which each key is mapped to a single value. The class of the objects used as keys is declared when the Map is declared, as is the class of the corresponding values.
		 */
		interface IMap<K, V> {
			/**
			 * Removes all elements from this Map, leaving it empty.
			 */
			clear(): void;
			/**
			 * Returns whether this Map contains the specified key.
			 * @param key 
			 */
			containsKey(key: any): boolean;
			/**
			 * Returns whether this Map contains the specified value.
			 * @param value 
			 */
			containsValue(value: any): boolean;
			/**
			 * Returns a Set containing all of the mappings in this Map. Each mapping is an instance of Map.Entry. As the Set is backed by this Map, changes in one will be reflected in the other.
			 */
			entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			/**
			 * Compares the argument to the receiver, and returns true if the specified object is a Map and both Maps contain the same mappings.
			 * @param object 
			 */
			equals(object: any): boolean;
			/**
			 * Returns the value of the mapping with the specified key.
			 * @param key 
			 */
			get(key: any): V;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			hashCode(): number;
			/**
			 * Returns whether this map is empty.
			 */
			isEmpty(): boolean;
			/**
			 * Returns a set of the keys contained in this Map. The Set is backed by this Map so changes to one are reflected by the other. The Set does not support adding.
			 */
			keySet(): java.util.ISet<K>;
			/**
			 * Maps the specified key to the specified value.
			 * @param key 
			 * @param value 
			 */
			put(key: K, value: V): V;
			/**
			 * Copies every mapping in the specified Map to this Map.
			 * @param map 
			 */
			putAll(map: java.util.IMap<any, any>): void;
			/**
			 * Removes a mapping with the specified key from this Map.
			 * @param key 
			 */
			remove(key: any): V;
			/**
			 * Returns the number of mappings in this Map.
			 */
			size(): number;
			/**
			 * Returns a Collection of the values contained in this Map. The Collection is backed by this Map so changes to one are reflected by the other. The Collection supports Collection#remove, Collection#removeAll, Collection#retainAll, and Collection#clear operations, and it does not support Collection#add or Collection#addAll operations.
			 */
			values(): java.util.ICollection<V>;
		}
		/**
		 * Breaks a string into tokens; new code should probably use String#split.
		 */
		export class StringTokenizer extends java.lang.Object {
			/**
			 * Constructs a new StringTokenizer for the parameter string using whitespace as the delimiter. The returnDelimiters flag is set to false.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * Constructs a new StringTokenizer for the parameter string using the specified delimiters. The returnDelimiters flag is set to false. If delimiters is null, this constructor doesn't throw an Exception, but later calls to some methods might throw a NullPointerException.
			 * @param string 
			 * @param delimiters 
			 */
			constructor(string: string, delimiters: string);
			/**
			 * Constructs a new StringTokenizer for the parameter string using the specified delimiters, returning the delimiters as tokens if the parameter returnDelimiters is true. If delimiters is null this constructor doesn't throw an Exception, but later calls to some methods might throw a NullPointerException.
			 * @param string 
			 * @param delimiters 
			 * @param returnDelimiters 
			 */
			constructor(string: string, delimiters: string, returnDelimiters: boolean);
			static class: java.lang.Class<java.util.StringTokenizer>;
			/**
			 * Returns the number of unprocessed tokens remaining in the string.
			 */
			public countTokens(): number;
			/**
			 * Returns true if unprocessed tokens remain. This method is implemented in order to satisfy the Enumeration interface.
			 */
			public hasMoreElements(): boolean;
			/**
			 * Returns true if unprocessed tokens remain.
			 */
			public hasMoreTokens(): boolean;
			/**
			 * Returns the next token in the string as an Object. This method is implemented in order to satisfy the Enumeration interface.
			 */
			public nextElement(): any;
			/**
			 * Returns the next token in the string as a String.
			 */
			public nextToken(): string;
			/**
			 * Returns the next token in the string as a String. The delimiters used are changed to the specified delimiters.
			 * @param delims 
			 */
			public nextToken(delims: string): string;
		}
		/**
		 * A collection designed for holding elements prior to processing. Besides basic java.util.Collection Collection operations, queues provide additional insertion, extraction, and inspection operations. Each of these methods exists in two forms: one throws an exception if the operation fails, the other returns a special value (either <tt>null</tt> or <tt>false</tt>, depending on the operation). The latter form of the insert operation is designed specifically for use with capacity-restricted <tt>Queue</tt> implementations; in most implementations, insert operations cannot fail.
		 */
		interface IQueue<E> {
			/**
			 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available.
			 * @param e the element to add
			 */
			add(e: E): boolean;
			/**
			 * Inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions. When using a capacity-restricted queue, this method is generally preferable to #add, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			offer(e: E): boolean;
			/**
			 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
			 */
			remove(): E;
			/**
			 * Retrieves and removes the head of this queue, or returns <tt>null</tt> if this queue is empty.
			 */
			poll(): E;
			/**
			 * Retrieves, but does not remove, the head of this queue. This method differs from #peek peek only in that it throws an exception if this queue is empty.
			 */
			element(): E;
			/**
			 * Retrieves, but does not remove, the head of this queue, or returns <tt>null</tt> if this queue is empty.
			 */
			peek(): E;
		}
		/**
		 * An IllegalFormatException is thrown when a format string that contains either an illegal syntax or format specifier is transferred as a parameter. Only subclasses inheriting explicitly from this exception are allowed to be instantiated.
		 */
		export class IllegalFormatException extends java.lang.IllegalArgumentException implements java.io.ISerializable {
			static class: java.lang.Class<java.util.IllegalFormatException>;
		}
		/**
		 * A Set is a data structure which does not allow duplicate elements.
		 */
		interface ISet<E> {
			/**
			 * Adds the specified object to this set. The set is not modified if it already contains the object.
			 * @param object 
			 */
			add(object: E): boolean;
			/**
			 * Adds the objects in the specified collection which do not exist yet in this set.
			 * @param collection 
			 */
			addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this set, leaving it empty.
			 */
			clear(): void;
			/**
			 * Searches this set for the specified object.
			 * @param object 
			 */
			contains(object: any): boolean;
			/**
			 * Searches this set for all objects in the specified collection.
			 * @param collection 
			 */
			containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Compares the specified object to this set, and returns true if they represent the <em>same</em> object using a class specific comparison. Equality for a set means that both sets have the same size and the same elements.
			 * @param object 
			 */
			equals(object: any): boolean;
			/**
			 * Returns the hash code for this set. Two set which are equal must return the same value.
			 */
			hashCode(): number;
			/**
			 * Returns true if this set has no elements.
			 */
			isEmpty(): boolean;
			/**
			 * Returns an iterator on the elements of this set. The elements are unordered.
			 */
			iterator(): java.util.IIterator<E>;
			/**
			 * Removes the specified object from this set.
			 * @param object 
			 */
			remove(object: any): boolean;
			/**
			 * Removes all objects in the specified collection from this set.
			 * @param collection 
			 */
			removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all objects from this set that are not contained in the specified collection.
			 * @param collection 
			 */
			retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Returns the number of elements in this set.
			 */
			size(): number;
			/**
			 * Returns an array containing all elements contained in this set.
			 */
			toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this set. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this set, the array element following the collection elements is set to null.
			 * @param array 
			 */
			toArray<T>(array: native.Array<T>): native.Array<T>;
		}
		/**
		 * A MissingFormatWidthException will be thrown if the format width is missing but is required.
		 */
		export class MissingFormatWidthException extends java.util.IllegalFormatException {
			/**
			 * Constructs a new MissingFormatWidthException with the specified format specifier.
			 * @param s 
			 */
			constructor(s: string);
			static class: java.lang.Class<java.util.MissingFormatWidthException>;
			/**
			 * Returns the format specifier associated with the exception.
			 */
			public getFormatSpecifier(): string;
			public getMessage(): string;
		}
		/**
		 * LinkedHashSet is a variant of HashSet. Its entries are kept in a doubly-linked list. The iteration order is the order in which entries were inserted.
		 */
		export class LinkedHashSet<E> extends java.util.HashSet<E> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new empty instance of LinkedHashSet.
			 */
			constructor();
			/**
			 * Constructs a new instance of LinkedHashSet with the specified capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new instance of LinkedHashSet with the specified capacity and load factor.
			 * @param capacity 
			 * @param loadFactor 
			 */
			constructor(capacity: number, loadFactor: number);
			/**
			 * Constructs a new instance of LinkedHashSet containing the unique elements in the specified collection.
			 * @param collection 
			 */
			constructor(collection: java.util.ICollection<any>);
			static class: java.lang.Class<java.util.LinkedHashSet<any>>;
			createBackingMap(capacity: number, loadFactor: number): java.util.HashMap<E, java.util.HashSet<E>>;
		}
		/**
		 * Locale represents a language/country/variant combination. Locales are used to alter the presentation of information such as numbers or dates to suit the conventions in the region they describe.
		 */
		export class Locale extends java.lang.Object implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new Locale using the specified language.
			 */
			constructor(language: string);
			/**
			 * Constructs a new Locale using the specified language and country codes.
			 */
			constructor(language: string, country: string);
			/**
			 * Constructs a new Locale using the specified language, country, and variant codes.
			 */
			constructor(language: string, country: string, variant: string);
			/**
			 * Locale constant for en_CA.
			 */
			static CANADA: java.util.Locale;
			/**
			 * Locale constant for fr_CA.
			 */
			static CANADA_FRENCH: java.util.Locale;
			/**
			 * Locale constant for zh_CN.
			 */
			static CHINA: java.util.Locale;
			/**
			 * Locale constant for zh.
			 */
			static CHINESE: java.util.Locale;
			/**
			 * Locale constant for en.
			 */
			static ENGLISH: java.util.Locale;
			/**
			 * Locale constant for fr_FR.
			 */
			static FRANCE: java.util.Locale;
			/**
			 * Locale constant for fr.
			 */
			static FRENCH: java.util.Locale;
			/**
			 * Locale constant for de.
			 */
			static GERMAN: java.util.Locale;
			/**
			 * Locale constant for de_DE.
			 */
			static GERMANY: java.util.Locale;
			/**
			 * Locale constant for it.
			 */
			static ITALIAN: java.util.Locale;
			/**
			 * Locale constant for it_IT.
			 */
			static ITALY: java.util.Locale;
			/**
			 * Locale constant for ja_JP.
			 */
			static JAPAN: java.util.Locale;
			/**
			 * Locale constant for ja.
			 */
			static JAPANESE: java.util.Locale;
			/**
			 * Locale constant for ko_KR.
			 */
			static KOREA: java.util.Locale;
			/**
			 * Locale constant for ko.
			 */
			static KOREAN: java.util.Locale;
			/**
			 * Locale constant for zh_CN.
			 */
			static PRC: java.util.Locale;
			/**
			 * Locale constant for the root locale. The root locale has an empty language, country, and variant.
			 */
			static ROOT: java.util.Locale;
			/**
			 * Locale constant for zh_CN.
			 */
			static SIMPLIFIED_CHINESE: java.util.Locale;
			/**
			 * Locale constant for zh_TW.
			 */
			static TAIWAN: java.util.Locale;
			/**
			 * Locale constant for zh_TW.
			 */
			static TRADITIONAL_CHINESE: java.util.Locale;
			/**
			 * Locale constant for en_GB.
			 */
			static UK: java.util.Locale;
			/**
			 * Locale constant for en_US.
			 */
			static US: java.util.Locale;
			static class: java.lang.Class<java.util.Locale>;
			public clone(): any;
			/**
			 * Returns true if object is a locale with the same language, country and variant.
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the system's installed locales. This array always includes Locale.US, and usually several others. Most locale-sensitive classes offer their own getAvailableLocales method, which should be preferred over this general purpose method.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			/**
			 * Returns the country code for this locale, or "" if this locale doesn't correspond to a specific country.
			 */
			public getCountry(): string;
			/**
			 * Returns the user's preferred locale. This may have been overridden for this process with #setDefault.
			 */
			public static getDefault(): java.util.Locale;
			/**
			 * Equivalent to getDisplayCountry(Locale.getDefault()).
			 */
			public getDisplayCountry(): string;
			/**
			 * Returns the name of this locale's country, localized to locale. Returns the empty string if this locale does not correspond to a specific country.
			 */
			public getDisplayCountry(locale: java.util.Locale): string;
			/**
			 * Equivalent to getDisplayLanguage(Locale.getDefault()).
			 */
			public getDisplayLanguage(): string;
			/**
			 * Returns the name of this locale's language, localized to locale. If the language name is unknown, the language code is returned.
			 */
			public getDisplayLanguage(locale: java.util.Locale): string;
			/**
			 * Equivalent to getDisplayName(Locale.getDefault()).
			 */
			public getDisplayName(): string;
			/**
			 * Returns this locale's language name, country name, and variant, localized to locale. The exact output form depends on whether this locale corresponds to a specific language, country and variant.
			 */
			public getDisplayName(locale: java.util.Locale): string;
			/**
			 * Returns the full variant name in the default Locale for the variant code of this Locale. If there is no matching variant name, the variant code is returned.
			 */
			public getDisplayVariant(): string;
			/**
			 * Returns the full variant name in the specified Locale for the variant code of this Locale. If there is no matching variant name, the variant code is returned.
			 */
			public getDisplayVariant(locale: java.util.Locale): string;
			/**
			 * Returns the three letter ISO country code which corresponds to the country code for this Locale.
			 */
			public getISO3Country(): string;
			/**
			 * Returns the three letter ISO language code which corresponds to the language code for this Locale.
			 */
			public getISO3Language(): string;
			/**
			 * Returns an array of strings containing all the two-letter ISO country codes that can be used as the country code when constructing a Locale.
			 */
			public static getISOCountries(): native.Array<string>;
			/**
			 * Returns an array of strings containing all the two-letter ISO language codes that can be used as the language code when constructing a Locale.
			 */
			public static getISOLanguages(): native.Array<string>;
			/**
			 * Returns the language code for this Locale or the empty string if no language was set.
			 */
			public getLanguage(): string;
			/**
			 * Returns the variant code for this Locale or an empty String if no variant was set.
			 */
			public getVariant(): string;
			public hashCode(): number;
			/**
			 * Overrides the default locale. This does not affect system configuration, and attempts to override the system-provided default locale may themselves be overridden by actual changes to the system configuration. Code that calls this method is usually incorrect, and should be fixed by passing the appropriate locale to each locale-sensitive method that's called.
			 */
			public static setDefault(locale: java.util.Locale): void;
			/**
			 * Returns the string representation of this Locale. It consists of the language code, country code and variant separated by underscores. If the language is missing the string begins with an underscore. If the country is missing there are 2 underscores between the language and the variant. The variant cannot stand alone without a language and/or country code: in this case this method would return the empty string.
			 */
			public toString(): string;
		}
		/**
		 * MapEntry is an internal class which provides an implementation of Map.Entry.
		 */
		export class MapEntry<K, V> extends java.lang.Object implements java.lang.ICloneable {
			static class: java.lang.Class<java.util.MapEntry<any, any>>;
			public clone(): any;
			public equals(object: any): boolean;
			public getKey(): K;
			public getValue(): V;
			public hashCode(): number;
			public setValue(object: V): V;
			public toString(): string;
		}
		export module MapEntry {
			export class Type<RT, KT, VT> implements java.util.MapEntry.IType<RT, KT, VT> {
				constructor(implementation: java.util.MapEntry.IType<RT, KT, VT>);
				public get(entry: java.util.MapEntry<KT, VT>): RT;
			}
			interface IType<RT, KT, VT> {
				get(entry: java.util.MapEntry<KT, VT>): RT;
			}
		}
		/**
		 * HashMap is an implementation of Map. All optional operations are supported.
		 */
		export class HashMap<K, V> extends java.util.AbstractMap<K, V> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new empty HashMap instance.
			 */
			constructor();
			/**
			 * Constructs a new HashMap instance with the specified capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new HashMap instance with the specified capacity and load factor.
			 * @param capacity 
			 * @param loadFactor 
			 */
			constructor(capacity: number, loadFactor: number);
			/**
			 * Constructs a new HashMap instance containing the mappings from the specified map.
			 * @param map 
			 */
			constructor(map: java.util.IMap<any, any>);
			static class: java.lang.Class<java.util.HashMap<any, any>>;
			/**
			 * Inserts all of the elements of map into this HashMap in a manner suitable for use by constructors and pseudo-constructors (i.e., clone, readObject). Also used by LinkedHashMap.
			 */
			constructorPutAll(map: java.util.IMap<any, any>): void;
			/**
			 * Returns an appropriate capacity for the specified initial size. Does not round the result up to a power of two; the caller must do this! The returned value will be between 0 and MAXIMUM_CAPACITY (inclusive).
			 */
			static capacityForInitSize(size: number): number;
			/**
			 * Returns a shallow copy of this map.
			 */
			public clone(): any;
			/**
			 * This method is called from the pseudo-constructors (clone and readObject) prior to invoking constructorPut/constructorPutAll, which invoke the overridden constructorNewEntry method. Normally it is a VERY bad idea to invoke an overridden method from a pseudo-constructor (Effective Java Item 17). In this case it is unavoidable, and the init method provides a workaround.
			 */
			init(): void;
			/**
			 * Returns whether this map is empty.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns the number of elements in this map.
			 */
			public size(): number;
			/**
			 * Returns the value of the mapping with the specified key.
			 * @param key 
			 */
			public get(key: any): V;
			/**
			 * Returns whether this map contains the specified key.
			 * @param key 
			 */
			public containsKey(key: any): boolean;
			/**
			 * Returns whether this map contains the specified value.
			 * @param value 
			 */
			public containsValue(value: any): boolean;
			/**
			 * Maps the specified key to the specified value.
			 * @param key 
			 * @param value 
			 */
			public put(key: K, value: V): V;
			/**
			 * Give LinkedHashMap a chance to take action when we modify an existing entry.
			 * @param e the entry we're about to modify.
			 */
			preModify(e: java.util.HashMap.HashMapEntry<K, V>): void;
			/**
			 * Creates a new entry for the given key, value, hash, and index and inserts it into the hash table. This method is called by put (and indirectly, putAll), and overridden by LinkedHashMap. The hash must incorporate the secondary hash function.
			 */
			addNewEntry(key: K, value: V, hash: number, index: number): void;
			/**
			 * Creates a new entry for the null key, and the given value and inserts it into the hash table. This method is called by put (and indirectly, putAll), and overridden by LinkedHashMap.
			 */
			addNewEntryForNullKey(value: V): void;
			/**
			 * Like newEntry, but does not perform any activity that would be unnecessary or inappropriate for constructors. In this class, the two methods behave identically; in LinkedHashMap, they differ.
			 */
			constructorNewEntry(key: K, value: V, hash: number, first: java.util.HashMap.HashMapEntry<K, V>): java.util.HashMap.HashMapEntry<K, V>;
			/**
			 * Copies all the mappings in the specified map to this map. These mappings will replace all mappings that this map had for any of the keys currently in the given map.
			 * @param map 
			 */
			public putAll(map: java.util.IMap<any, any>): void;
			/**
			 * Removes the mapping with the specified key from this map.
			 * @param key 
			 */
			public remove(key: any): V;
			/**
			 * Subclass overrides this method to unlink entry.
			 */
			postRemove(e: java.util.HashMap.HashMapEntry<K, V>): void;
			/**
			 * Removes all mappings from this hash map, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns a set of the keys contained in this map. The set is backed by this map so changes to one are reflected by the other. The set does not support adding.
			 */
			public keySet(): java.util.ISet<K>;
			/**
			 * Returns a collection of the values contained in this map. The collection is backed by this map so changes to one are reflected by the other. The collection supports remove, removeAll, retainAll and clear operations, and it does not support add or addAll operations.
			 */
			public values(): java.util.ICollection<V>;
			/**
			 * Returns a set containing all of the mappings in this map. Each mapping is an instance of Map.Entry. As the set is backed by this map, changes in one will be reflected in the other.
			 */
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			newKeyIterator(): java.util.IIterator<K>;
			newValueIterator(): java.util.IIterator<V>;
			newEntryIterator(): java.util.IIterator<java.util.Map.IEntry<K, V>>;
		}
		export module HashMap {
			export class KeySet extends java.util.AbstractSet<any> {
				static class: java.lang.Class<java.util.HashMap.KeySet>;
				public iterator(): java.util.IIterator<any>;
				public size(): number;
				public isEmpty(): boolean;
				public contains(o: any): boolean;
				public remove(o: any): boolean;
				public clear(): void;
			}
			export class HashIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.HashMap.HashIterator>;
				public hasNext(): boolean;
				nextEntry(): java.util.HashMap.HashMapEntry<any, any>;
				public remove(): void;
			}
			export class KeyIterator extends java.util.HashMap.HashIterator {
				static class: java.lang.Class<java.util.HashMap.KeyIterator>;
				public next(): any;
			}
			export class Values extends java.util.AbstractCollection<any> {
				static class: java.lang.Class<java.util.HashMap.Values>;
				public iterator(): java.util.IIterator<any>;
				public size(): number;
				public isEmpty(): boolean;
				public contains(o: any): boolean;
				public clear(): void;
			}
			export class ValueIterator extends java.util.HashMap.HashIterator {
				static class: java.lang.Class<java.util.HashMap.ValueIterator>;
				public next(): any;
			}
			export class HashMapEntry<K, V> extends java.lang.Object {
				static class: java.lang.Class<java.util.HashMap.HashMapEntry<any, any>>;
				public getKey(): K;
				public getValue(): V;
				public setValue(value: V): V;
				public equals(o: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
			export class EntryIterator extends java.util.HashMap.HashIterator {
				static class: java.lang.Class<java.util.HashMap.EntryIterator>;
				public next(): java.util.Map.IEntry<any, any>;
			}
			export class EntrySet extends java.util.AbstractSet<java.util.Map.IEntry<any, any>> {
				static class: java.lang.Class<java.util.HashMap.EntrySet>;
				public iterator(): java.util.IIterator<java.util.Map.IEntry<any, any>>;
				public contains(o: any): boolean;
				public remove(o: any): boolean;
				public size(): number;
				public isEmpty(): boolean;
				public clear(): void;
			}
		}
		/**
		 * A MissingResourceException is thrown by ResourceBundle when a resource bundle cannot be found or a resource is missing from a resource bundle.
		 */
		export class MissingResourceException extends java.lang.RuntimeException {
			/**
			 * Constructs a new MissingResourceException with the stack trace, message, the class name of the resource bundle and the name of the missing resource filled in.
			 * @param detailMessage 
			 * @param className 
			 * @param resourceName 
			 */
			constructor(detailMessage: string, className: string, resourceName: string);
			static class: java.lang.Class<java.util.MissingResourceException>;
			/**
			 * Returns the class name of the resource bundle from which a resource could not be found, or in the case of a missing resource, the name of the missing resource bundle.
			 */
			public getClassName(): string;
			/**
			 * Returns the name of the missing resource, or an empty string if the resource bundle is missing.
			 */
			public getKey(): string;
		}
		/**
		 * IdentityHashMap is a variant on HashMap which tests equality by reference instead of equality by value. Basically, keys and values are compared for equality by checking if their references are equal rather than by calling the "equals" function.
		 */
		export class IdentityHashMap<K, V> extends java.util.AbstractMap<K, V> implements java.io.ISerializable, java.lang.ICloneable {
			/**
			 * Creates an IdentityHashMap with default expected maximum size.
			 */
			constructor();
			/**
			 * Creates an IdentityHashMap with the specified maximum size parameter.
			 * @param maxSize 
			 */
			constructor(maxSize: number);
			/**
			 * Creates an IdentityHashMap using the given map as initial values.
			 * @param map 
			 */
			constructor(map: java.util.IMap<any, any>);
			static class: java.lang.Class<java.util.IdentityHashMap<any, any>>;
			/**
			 * Removes all elements from this map, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns whether this map contains the specified key.
			 * @param key 
			 */
			public containsKey(key: any): boolean;
			/**
			 * Returns whether this map contains the specified value.
			 * @param value 
			 */
			public containsValue(value: any): boolean;
			/**
			 * Returns the value of the mapping with the specified key.
			 * @param key 
			 */
			public get(key: any): V;
			/**
			 * Maps the specified key to the specified value.
			 * @param key 
			 * @param value 
			 */
			public put(key: K, value: V): V;
			/**
			 * Copies all the mappings in the specified map to this map. These mappings will replace all mappings that this map had for any of the keys currently in the given map.
			 * @param map 
			 */
			public putAll(map: java.util.IMap<any, any>): void;
			/**
			 * Removes the mapping with the specified key from this map.
			 * @param key 
			 */
			public remove(key: any): V;
			/**
			 * Returns a set containing all of the mappings in this map. Each mapping is an instance of Map.Entry. As the set is backed by this map, changes in one will be reflected in the other.
			 */
			public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			/**
			 * Returns a set of the keys contained in this map. The set is backed by this map so changes to one are reflected by the other. The set does not support adding.
			 */
			public keySet(): java.util.ISet<K>;
			/**
			 * Returns a collection of the values contained in this map. The collection is backed by this map so changes to one are reflected by the other. The collection supports remove, removeAll, retainAll and clear operations, and it does not support add or addAll operations.
			 */
			public values(): java.util.ICollection<V>;
			/**
			 * Compares this map with other objects. This map is equal to another map is it represents the same set of mappings. With this map, two mappings are the same if both the key and the value are equal by reference. When compared with a map that is not an IdentityHashMap, the equals method is neither necessarily symmetric (a.equals(b) implies b.equals(a)) nor transitive (a.equals(b) and b.equals(c) implies a.equals(c)).
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns a new IdentityHashMap with the same mappings and size as this one.
			 */
			public clone(): any;
			/**
			 * Returns whether this IdentityHashMap has no elements.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns the number of mappings in this IdentityHashMap.
			 */
			public size(): number;
		}
		export module IdentityHashMap {
			export class IdentityHashMapEntry<K, V> extends java.util.MapEntry<K, V> {
				static class: java.lang.Class<java.util.IdentityHashMap.IdentityHashMapEntry<any, any>>;
				public clone(): any;
				public equals(object: any): boolean;
				public hashCode(): number;
				public toString(): string;
				public setValue(object: V): V;
			}
			export class IdentityHashMapIterator<E, KT, VT> extends java.lang.Object {
				static class: java.lang.Class<java.util.IdentityHashMap.IdentityHashMapIterator<any, any, any>>;
				public hasNext(): boolean;
				checkConcurrentMod(): void;
				public next(): E;
				public remove(): void;
			}
			export class IdentityHashMapEntrySet<KT, VT> extends java.util.AbstractSet<java.util.Map.IEntry<KT, VT>> {
				constructor(hm: java.util.IdentityHashMap<KT, VT>);
				static class: java.lang.Class<java.util.IdentityHashMap.IdentityHashMapEntrySet<any, any>>;
				hashMap(): java.util.IdentityHashMap<KT, VT>;
				public size(): number;
				public clear(): void;
				public remove(object: any): boolean;
				public contains(object: any): boolean;
				public iterator(): java.util.IIterator<java.util.Map.IEntry<KT, VT>>;
			}
		}
		/**
		 * LinkedHashMap is an implementation of Map that guarantees iteration order. All optional operations are supported.
		 */
		export class LinkedHashMap<K, V> extends java.util.HashMap<K, V> {
			/**
			 * Constructs a new empty LinkedHashMap instance.
			 */
			constructor();
			/**
			 * Constructs a new LinkedHashMap instance with the specified capacity.
			 * @param initialCapacity 
			 */
			constructor(initialCapacity: number);
			/**
			 * Constructs a new LinkedHashMap instance with the specified capacity and load factor.
			 * @param initialCapacity 
			 * @param loadFactor 
			 */
			constructor(initialCapacity: number, loadFactor: number);
			/**
			 * Constructs a new LinkedHashMap instance with the specified capacity, load factor and a flag specifying the ordering behavior.
			 * @param initialCapacity 
			 * @param loadFactor 
			 * @param accessOrder 
			 */
			constructor(initialCapacity: number, loadFactor: number, accessOrder: boolean);
			/**
			 * Constructs a new LinkedHashMap instance containing the mappings from the specified map. The order of the elements is preserved.
			 * @param map 
			 */
			constructor(map: java.util.IMap<any, any>);
			static class: java.lang.Class<java.util.LinkedHashMap<any, any>>;
			init(): void;
			/**
			 * Evicts eldest entry if instructed, creates a new entry and links it in as head of linked list. This method should call constructorNewEntry (instead of duplicating code) if the performance of your VM permits.
			 */
			addNewEntry(key: K, value: V, hash: number, index: number): void;
			addNewEntryForNullKey(value: V): void;
			/**
			 * As above, but without eviction.
			 */
			constructorNewEntry(key: K, value: V, hash: number, next: java.util.HashMap.HashMapEntry<K, V>): java.util.HashMap.HashMapEntry<K, V>;
			/**
			 * Returns the value of the mapping with the specified key.
			 * @param key 
			 */
			public get(key: any): V;
			preModify(e: java.util.HashMap.HashMapEntry<K, V>): void;
			postRemove(e: java.util.HashMap.HashMapEntry<K, V>): void;
			/**
			 * This override is done for LinkedHashMap performance: iteration is cheaper via LinkedHashMap nxt links.
			 */
			public containsValue(value: any): boolean;
			public clear(): void;
			newKeyIterator(): java.util.IIterator<K>;
			newValueIterator(): java.util.IIterator<V>;
			newEntryIterator(): java.util.IIterator<java.util.Map.IEntry<K, V>>;
			protected removeEldestEntry(eldest: java.util.Map.IEntry<K, V>): boolean;
		}
		export module LinkedHashMap {
			export class KeyIterator extends java.util.LinkedHashMap.LinkedHashIterator<any> {
				static class: java.lang.Class<java.util.LinkedHashMap.KeyIterator>;
				public next(): any;
			}
			export class LinkedHashIterator<T> extends java.lang.Object {
				static class: java.lang.Class<java.util.LinkedHashMap.LinkedHashIterator<any>>;
				public hasNext(): boolean;
				nextEntry(): java.util.LinkedHashMap.LinkedEntry<any, any>;
				public remove(): void;
			}
			export class ValueIterator extends java.util.LinkedHashMap.LinkedHashIterator<any> {
				static class: java.lang.Class<java.util.LinkedHashMap.ValueIterator>;
				public next(): any;
			}
			export class EntryIterator extends java.util.LinkedHashMap.LinkedHashIterator<java.util.Map.IEntry<any, any>> {
				static class: java.lang.Class<java.util.LinkedHashMap.EntryIterator>;
				public next(): java.util.Map.IEntry<any, any>;
			}
			/**
			 * LinkedEntry adds nxt/prv double-links to plain HashMapEntry.
			 */
			export class LinkedEntry<K, V> extends java.util.HashMap.HashMapEntry<K, V> {
				static class: java.lang.Class<java.util.LinkedHashMap.LinkedEntry<any, any>>;
			}
		}
		/**
		 * AbstractSequentialList is an abstract implementation of the List interface. This implementation does not support adding. A subclass must implement the abstract method listIterator().
		 */
		export class AbstractSequentialList<E> extends java.util.AbstractList<E> {
			static class: java.lang.Class<java.util.AbstractSequentialList<any>>;
			public add(location: number, object: E): void;
			public addAll(location: number, collection: java.util.ICollection<any>): boolean;
			public get(location: number): E;
			public iterator(): java.util.IIterator<E>;
			public listIterator(location: number): java.util.IListIterator<E>;
			public remove(location: number): E;
			public set(location: number, object: E): E;
			/**
			 * Adds the specified object at the end of this List.
			 * @param object 
			 */
			add(object: E): boolean;
			/**
			 * Returns a ListIterator on the elements of this list. The elements are iterated in the same order that they occur in the list.
			 */
			listIterator(): java.util.IListIterator<E>;
			/**
			 * Attempts to add all of the objects contained in collection to the contents of this Collection (optional). This implementation iterates over the given Collection and calls add for each element. If any of these calls return true, then true is returned as result of this method call, false otherwise. If this Collection does not support adding elements, an UnsupportedOperationException is thrown.
			 * @param collection 
			 */
			addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes one instance of the specified object from this Collection if one is contained (optional). This implementation iterates over this Collection and tests for each element e returned by the iterator, whether e is equal to the given object. If object != null then this test is performed using object.equals(e), otherwise using object == null. If an element equal to the given object is found, then the remove method is called on the iterator and true is returned, false otherwise. If the iterator does not support removing elements, an UnsupportedOperationException is thrown.
			 * @param object 
			 */
			remove(object: any): boolean;
		}
		/**
		 * A Comparator is used to compare two objects to determine their ordering with respect to each other. On a given Collection, a Comparator can be used to obtain a sorted Collection which is <i>totally ordered</i>. For a Comparator to be <i>consistent with equals</i>, its {code #compare(Object, Object)} method has to return zero for each pair of elements (a,b) where a.equals(b) holds true. It is recommended that a Comparator implements java.io.Serializable.
		 */
		export class Comparator<T> implements java.util.IComparator<T> {
			constructor(implementation: java.util.IComparator<T>);
			/**
			 * Compares the two specified objects to determine their relative ordering. The ordering implied by the return value of this method for all possible pairs of (lhs, rhs) should form an <i>equivalence relation</i>. This means that <ul> <li>compare(a,a) returns zero for all a</li> <li>the sign of compare(a,b) must be the opposite of the sign of compare(b,a) for all pairs of (a,b)</li> <li>From compare(a,b) > 0 and compare(b,c) > 0 it must follow compare(a,c) > 0 for all possible combinations of (a,b,c)</li> </ul>
			 * @param lhs 
			 * @param rhs 
			 */
			public compare(lhs: T, rhs: T): number;
			/**
			 * Compares this Comparator with the specified Object and indicates whether they are equal. In order to be equal, object must represent the same object as this instance using a class-specific comparison.
			 * @param object 
			 */
			public equals(object: any): boolean;
		}
		/**
		 * An EmptyStackException is thrown if the pop/peek method of a stack is executed on an empty stack.
		 */
		export class EmptyStackException extends java.lang.RuntimeException {
			/**
			 * Constructs a new EmptyStackException with the stack trace filled in.
			 */
			constructor();
			static class: java.lang.Class<java.util.EmptyStackException>;
		}
		/**
		 * This class provides methods that return pseudo-random values.
		 */
		export class Random extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a random generator with an initial state that is unlikely to be duplicated by a subsequent instantiation.
			 */
			constructor();
			/**
			 * Construct a random generator with the given seed as the initial state. Equivalent to Random r = new Random(); r.setSeed(seed);.
			 */
			constructor(seed: number);
			static class: java.lang.Class<java.util.Random>;
			/**
			 * Returns a pseudo-random uniformly distributed int value of the number of bits specified by the argument bits as described by Donald E. Knuth in <i>The Art of Computer Programming, Volume 2: Seminumerical Algorithms</i>, section 3.2.1.
			 */
			protected next(bits: number): number;
			/**
			 * Returns a pseudo-random uniformly distributed boolean.
			 */
			public nextBoolean(): boolean;
			/**
			 * Fills buf with random bytes.
			 */
			public nextBytes(buf: native.Array<number>): void;
			/**
			 * Returns a pseudo-random uniformly distributed double in the half-open range [0.0, 1.0).
			 */
			public nextDouble(): any;
			/**
			 * Returns a pseudo-random uniformly distributed float in the half-open range [0.0, 1.0).
			 */
			public nextFloat(): number;
			/**
			 * Returns a pseudo-random (approximately) normally distributed double with mean 0.0 and standard deviation 1.0. This method uses the <i>polar method</i> of G. E. P. Box, M. E. Muller, and G. Marsaglia, as described by Donald E. Knuth in <i>The Art of Computer Programming, Volume 2: Seminumerical Algorithms</i>, section 3.4.1, subsection C, algorithm P.
			 */
			public nextGaussian(): any;
			/**
			 * Returns a pseudo-random uniformly distributed int.
			 */
			public nextInt(): number;
			/**
			 * Returns a pseudo-random uniformly distributed int in the half-open range [0, n).
			 */
			public nextInt(n: number): number;
			/**
			 * Returns a pseudo-random uniformly distributed long.
			 */
			public nextLong(): any;
			/**
			 * Modifies the seed using a linear congruential formula presented in <i>The Art of Computer Programming, Volume 2</i>, Section 3.2.1.
			 */
			public setSeed(seed: number): void;
		}
		/**
		 * An IllegalFormatPrecisionException will be thrown if the precision is a negative other than -1 or in other cases where precision is not supported.
		 */
		export class IllegalFormatPrecisionException extends java.util.IllegalFormatException {
			/**
			 * Constructs a new IllegalFormatPrecisionException with specified precision.
			 * @param p 
			 */
			constructor(p: number);
			static class: java.lang.Class<java.util.IllegalFormatPrecisionException>;
			/**
			 * Returns the precision associated with the exception.
			 */
			public getPrecision(): number;
			public getMessage(): string;
		}
		/**
		 * A List is a collection which maintains an ordering for its elements. Every element in the List has an index. Each element can thus be accessed by its index, with the first index being zero. Normally, Lists allow duplicate elements, as compared to Sets, where elements have to be unique.
		 */
		export class List<E> implements java.util.IList<E> {
			constructor(implementation: java.util.IList<E>);
			/**
			 * Inserts the specified object into this List at the specified location. The object is inserted before the current element at the specified location. If the location is equal to the size of this List, the object is added at the end. If the location is smaller than the size of this List, then all elements beyond the specified location are moved by one position towards the end of the List.
			 * @param location 
			 * @param object 
			 */
			public add(location: number, object: E): void;
			/**
			 * Adds the specified object at the end of this List.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Inserts the objects in the specified collection at the specified location in this List. The objects are added in the order they are returned from the collection's iterator.
			 * @param location 
			 * @param collection 
			 */
			public addAll(location: number, collection: java.util.ICollection<any>): boolean;
			/**
			 * Adds the objects in the specified collection to the end of this List. The objects are added in the order in which they are returned from the collection's iterator.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this List, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Tests whether this List contains the specified object.
			 * @param object 
			 */
			public contains(object: any): boolean;
			/**
			 * Tests whether this List contains all objects contained in the specified collection.
			 * @param collection 
			 */
			public containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Compares the given object with the List, and returns true if they represent the <em>same</em> object using a class specific comparison. For Lists, this means that they contain the same elements in exactly the same order.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the element at the specified location in this List.
			 * @param location 
			 */
			public get(location: number): E;
			/**
			 * Returns the hash code for this List. It is calculated by taking each element' hashcode and its position in the List into account.
			 */
			public hashCode(): number;
			/**
			 * Searches this List for the specified object and returns the index of the first occurrence.
			 * @param object 
			 */
			public indexOf(object: any): number;
			/**
			 * Returns whether this List contains no elements.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an iterator on the elements of this List. The elements are iterated in the same order as they occur in the List.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Searches this List for the specified object and returns the index of the last occurrence.
			 * @param object 
			 */
			public lastIndexOf(object: any): number;
			/**
			 * Returns a List iterator on the elements of this List. The elements are iterated in the same order that they occur in the List.
			 */
			public listIterator(): java.util.IListIterator<E>;
			/**
			 * Returns a list iterator on the elements of this List. The elements are iterated in the same order as they occur in the List. The iteration starts at the specified location.
			 * @param location 
			 */
			public listIterator(location: number): java.util.IListIterator<E>;
			/**
			 * Removes the object at the specified location from this List.
			 * @param location 
			 */
			public remove(location: number): E;
			/**
			 * Removes the first occurrence of the specified object from this List.
			 * @param object 
			 */
			public remove(object: any): boolean;
			/**
			 * Removes all occurrences in this List of each object in the specified collection.
			 * @param collection 
			 */
			public removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all objects from this List that are not contained in the specified collection.
			 * @param collection 
			 */
			public retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Replaces the element at the specified location in this List with the specified object. This operation does not change the size of the List.
			 * @param location 
			 * @param object 
			 */
			public set(location: number, object: E): E;
			/**
			 * Returns the number of elements in this List.
			 */
			public size(): number;
			/**
			 * Returns a List of the specified portion of this List from the given start index to the end index minus one. The returned List is backed by this List so changes to it are reflected by the other.
			 * @param start 
			 * @param end 
			 */
			public subList(start: number, end: number): java.util.IList<E>;
			/**
			 * Returns an array containing all elements contained in this List.
			 */
			public toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this List. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this List, the array element following the collection elements is set to null.
			 * @param array 
			 */
			public toArray<T>(array: native.Array<T>): native.Array<T>;
		}
		/**
		 * RandomAccess is implemented by List implementations that support fast (usually constant time) random access.
		 */
		interface IRandomAccess {
		}
		/**
		 * UUID is an immutable representation of a 128-bit universally unique identifier (UUID).
		 */
		export class UUID extends java.lang.Object implements java.io.ISerializable {
			/**
			 * @param mostSigBits 
			 * @param leastSigBits 
			 */
			constructor(mostSigBits: number, leastSigBits: number);
			static class: java.lang.Class<java.util.UUID>;
			public static randomUUID(): java.util.UUID;
			/**
			 * @param name 
			 */
			public static nameUUIDFromBytes(name: native.Array<number>): java.util.UUID;
			/**
			 * @param uuid 
			 */
			public static fromString(uuid: string): java.util.UUID;
			public getLeastSignificantBits(): any;
			public getMostSignificantBits(): any;
			public version(): number;
			public variant(): number;
			public timestamp(): any;
			public clockSequence(): number;
			public node(): any;
			/**
			 * @param uuid 
			 */
			public compareTo(uuid: java.util.UUID): number;
			/**
			 * @param object 
			 */
			public equals(object: any): boolean;
			public hashCode(): number;
			public toString(): string;
		}
		/**
		 * Collections contains static methods which operate on Collection classes.
		 */
		export class Collections extends java.lang.Object {
			/**
			 * An empty immutable instance of List.
			 */
			static EMPTY_LIST: java.util.IList<any>;
			/**
			 * An empty immutable instance of Set.
			 */
			static EMPTY_SET: java.util.ISet<any>;
			/**
			 * An empty immutable instance of Map.
			 */
			static EMPTY_MAP: java.util.IMap<any, any>;
			static class: java.lang.Class<java.util.Collections>;
			/**
			 * Performs a binary search for the specified element in the specified sorted list. The list needs to be already sorted in natural sorting order. Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param list 
			 * @param object 
			 */
			public static binarySearch<T>(list: java.util.IList<any>, object: T): number;
			/**
			 * Performs a binary search for the specified element in the specified sorted list using the specified comparator. The list needs to be already sorted according to the comparator passed. Searching in an unsorted array has an undefined result. It's also undefined which element is found if there are multiple occurrences of the same element.
			 * @param list 
			 * @param object 
			 * @param comparator 
			 */
			public static binarySearch<T>(list: java.util.IList<any>, object: T, comparator: java.util.IComparator<any>): number;
			/**
			 * Copies the elements from the source list to the destination list. At the end both lists will have the same objects at the same index. If the destination array is larger than the source list, the elements in the destination list with index >= source.size() will be unchanged.
			 * @param destination 
			 * @param source 
			 */
			public static copy<T>(destination: java.util.IList<any>, source: java.util.IList<any>): void;
			/**
			 * Returns an Enumeration on the specified collection.
			 * @param collection 
			 */
			public static enumeration<T>(collection: java.util.ICollection<T>): java.util.IEnumeration<T>;
			/**
			 * Fills the specified list with the specified element.
			 * @param list 
			 * @param object 
			 */
			public static fill<T>(list: java.util.IList<any>, object: T): void;
			/**
			 * Searches the specified collection for the maximum element.
			 * @param collection 
			 */
			public static max<T>(collection: java.util.ICollection<any>): T;
			/**
			 * Searches the specified collection for the maximum element using the specified comparator.
			 * @param collection 
			 * @param comparator 
			 */
			public static max<T>(collection: java.util.ICollection<any>, comparator: java.util.IComparator<any>): T;
			/**
			 * Searches the specified collection for the minimum element.
			 * @param collection 
			 */
			public static min<T>(collection: java.util.ICollection<any>): T;
			/**
			 * Searches the specified collection for the minimum element using the specified comparator.
			 * @param collection 
			 * @param comparator 
			 */
			public static min<T>(collection: java.util.ICollection<any>, comparator: java.util.IComparator<any>): T;
			/**
			 * Returns a list containing the specified number of the specified element. The list cannot be modified. The list is serializable.
			 * @param length 
			 * @param object 
			 */
			public static nCopies<T>(length: number, object: T): java.util.IList<T>;
			/**
			 * Modifies the specified List by reversing the order of the elements.
			 * @param list 
			 */
			public static reverse(list: java.util.IList<any>): void;
			/**
			 * A comparator which reverses the natural order of the elements. The Comparator that's returned is Serializable.
			 */
			public static reverseOrder<T>(): java.util.IComparator<T>;
			/**
			 * Returns a Comparator that reverses the order of the Comparator passed. If the Comparator passed is null, then this method is equivalent to #reverseOrder().
			 * @param c 
			 */
			public static reverseOrder<T>(c: java.util.IComparator<T>): java.util.IComparator<T>;
			/**
			 * Moves every element of the list to a random new position in the list.
			 * @param list 
			 */
			public static shuffle(list: java.util.IList<any>): void;
			/**
			 * Moves every element of the list to a random new position in the list using the specified random number generator.
			 * @param list 
			 * @param random 
			 */
			public static shuffle(list: java.util.IList<any>, random: java.util.Random): void;
			/**
			 * Returns a set containing the specified element. The set cannot be modified. The set is serializable.
			 * @param object 
			 */
			public static singleton<E>(object: E): java.util.ISet<E>;
			/**
			 * Returns a list containing the specified element. The list cannot be modified. The list is serializable.
			 * @param object 
			 */
			public static singletonList<E>(object: E): java.util.IList<E>;
			/**
			 * Returns a Map containing the specified key and value. The map cannot be modified. The map is serializable.
			 * @param key 
			 * @param value 
			 */
			public static singletonMap<K, V>(key: K, value: V): java.util.IMap<K, V>;
			/**
			 * Sorts the specified list in ascending natural order. The algorithm is stable which means equal elements don't get reordered.
			 * @param list 
			 */
			public static sort<T extends java.lang.IComparable<any>>(list: java.util.IList<T>): void;
			/**
			 * Sorts the specified list using the specified comparator. The algorithm is stable which means equal elements don't get reordered.
			 * @param list 
			 * @param comparator 
			 */
			public static sort<T>(list: java.util.IList<T>, comparator: java.util.IComparator<any>): void;
			/**
			 * Swaps the elements of list list at indices index1 and index2.
			 * @param list 
			 * @param index1 
			 * @param index2 
			 */
			public static swap(list: java.util.IList<any>, index1: number, index2: number): void;
			/**
			 * Replaces all occurrences of Object obj in list with newObj. If the obj is null, then all occurrences of null are replaced with newObj.
			 * @param list 
			 * @param obj 
			 * @param obj2 
			 */
			public static replaceAll<T>(list: java.util.IList<T>, obj: T, obj2: T): boolean;
			/**
			 * Rotates the elements in list by the distance dist
			 * @param lst 
			 * @param dist 
			 */
			public static rotate(lst: java.util.IList<any>, dist: number): void;
			/**
			 * Searches the list for sublist and returns the beginning index of the first occurrence.
			 * @param list 
			 * @param sublist 
			 */
			public static indexOfSubList(list: java.util.IList<any>, sublist: java.util.IList<any>): number;
			/**
			 * Searches the list for sublist and returns the beginning index of the last occurrence.
			 * @param list 
			 * @param sublist 
			 */
			public static lastIndexOfSubList(list: java.util.IList<any>, sublist: java.util.IList<any>): number;
			/**
			 * Returns an ArrayList with all the elements in the enumeration. The elements in the returned ArrayList are in the same order as in the enumeration.
			 * @param enumeration 
			 */
			public static list<T>(enumeration: java.util.IEnumeration<T>): java.util.ArrayList<T>;
			/**
			 * Returns a wrapper on the specified collection which synchronizes all access to the collection.
			 * @param collection 
			 */
			public static synchronizedCollection<T>(collection: java.util.ICollection<T>): java.util.ICollection<T>;
			/**
			 * Returns a wrapper on the specified List which synchronizes all access to the List.
			 * @param list 
			 */
			public static synchronizedList<T>(list: java.util.IList<T>): java.util.IList<T>;
			/**
			 * Returns a wrapper on the specified map which synchronizes all access to the map.
			 * @param map 
			 */
			public static synchronizedMap<K, V>(map: java.util.IMap<K, V>): java.util.IMap<K, V>;
			/**
			 * Returns a wrapper on the specified set which synchronizes all access to the set.
			 * @param set 
			 */
			public static synchronizedSet<E>(set: java.util.ISet<E>): java.util.ISet<E>;
			/**
			 * Returns a wrapper on the specified sorted map which synchronizes all access to the sorted map.
			 * @param map 
			 */
			public static synchronizedSortedMap<K, V>(map: java.util.ISortedMap<K, V>): java.util.ISortedMap<K, V>;
			/**
			 * Returns a wrapper on the specified sorted set which synchronizes all access to the sorted set.
			 * @param set 
			 */
			public static synchronizedSortedSet<E>(set: java.util.ISortedSet<E>): java.util.ISortedSet<E>;
			/**
			 * Returns a wrapper on the specified collection which throws an UnsupportedOperationException whenever an attempt is made to modify the collection.
			 * @param collection 
			 */
			public static unmodifiableCollection<E>(collection: java.util.ICollection<any>): java.util.ICollection<E>;
			/**
			 * Returns a wrapper on the specified list which throws an UnsupportedOperationException whenever an attempt is made to modify the list.
			 * @param list 
			 */
			public static unmodifiableList<E>(list: java.util.IList<any>): java.util.IList<E>;
			/**
			 * Returns a wrapper on the specified map which throws an UnsupportedOperationException whenever an attempt is made to modify the map.
			 * @param map 
			 */
			public static unmodifiableMap<K, V>(map: java.util.IMap<any, any>): java.util.IMap<K, V>;
			/**
			 * Returns a wrapper on the specified set which throws an UnsupportedOperationException whenever an attempt is made to modify the set.
			 * @param set 
			 */
			public static unmodifiableSet<E>(set: java.util.ISet<any>): java.util.ISet<E>;
			/**
			 * Returns a wrapper on the specified sorted map which throws an UnsupportedOperationException whenever an attempt is made to modify the sorted map.
			 * @param map 
			 */
			public static unmodifiableSortedMap<K, V>(map: java.util.ISortedMap<K, any>): java.util.ISortedMap<K, V>;
			/**
			 * Returns a wrapper on the specified sorted set which throws an UnsupportedOperationException whenever an attempt is made to modify the sorted set.
			 * @param set 
			 */
			public static unmodifiableSortedSet<E>(set: java.util.ISortedSet<E>): java.util.ISortedSet<E>;
			/**
			 * Returns the number of elements in the Collection that match the Object passed. If the Object is null, then the number of null elements is returned.
			 * @param c 
			 * @param o 
			 */
			public static frequency(c: java.util.ICollection<any>, o: any): number;
			/**
			 * Returns a type-safe empty, immutable List.
			 */
			public static emptyList<T>(): java.util.IList<T>;
			/**
			 * Returns a type-safe empty, immutable Set.
			 */
			public static emptySet<T>(): java.util.ISet<T>;
			/**
			 * Returns a type-safe empty, immutable Map.
			 */
			public static emptyMap<K, V>(): java.util.IMap<K, V>;
			/**
			 * Returns a dynamically typesafe view of the specified collection. Trying to insert an element of the wrong type into this collection throws a ClassCastException. At creation time the types in c are not checked for correct type.
			 * @param c 
			 * @param type 
			 */
			public static checkedCollection<E>(c: java.util.ICollection<E>, type: java.lang.Class<E>): java.util.ICollection<E>;
			/**
			 * Returns a dynamically typesafe view of the specified map. Trying to insert an element of the wrong type into this map throws a ClassCastException. At creation time the types in m are not checked for correct type.
			 * @param m 
			 * @param keyType 
			 * @param valueType 
			 */
			public static checkedMap<K, V>(m: java.util.IMap<K, V>, keyType: java.lang.Class<K>, valueType: java.lang.Class<V>): java.util.IMap<K, V>;
			/**
			 * Returns a dynamically typesafe view of the specified list. Trying to insert an element of the wrong type into this list throws a ClassCastException. At creation time the types in list are not checked for correct type.
			 * @param list 
			 * @param type 
			 */
			public static checkedList<E>(list: java.util.IList<E>, type: java.lang.Class<E>): java.util.IList<E>;
			/**
			 * Returns a dynamically typesafe view of the specified set. Trying to insert an element of the wrong type into this set throws a ClassCastException. At creation time the types in s are not checked for correct type.
			 * @param s 
			 * @param type 
			 */
			public static checkedSet<E>(s: java.util.ISet<E>, type: java.lang.Class<E>): java.util.ISet<E>;
			/**
			 * Returns a dynamically typesafe view of the specified sorted map. Trying to insert an element of the wrong type into this sorted map throws a ClassCastException. At creation time the types in m are not checked for correct type.
			 * @param m 
			 * @param keyType 
			 * @param valueType 
			 */
			public static checkedSortedMap<K, V>(m: java.util.ISortedMap<K, V>, keyType: java.lang.Class<K>, valueType: java.lang.Class<V>): java.util.ISortedMap<K, V>;
			/**
			 * Returns a dynamically typesafe view of the specified sorted set. Trying to insert an element of the wrong type into this sorted set throws a ClassCastException. At creation time the types in s are not checked for correct type.
			 * @param s 
			 * @param type 
			 */
			public static checkedSortedSet<E>(s: java.util.ISortedSet<E>, type: java.lang.Class<E>): java.util.ISortedSet<E>;
			/**
			 * Adds all the specified elements to the specified collection.
			 * @param c 
			 * @param a 
			 */
			public static addAll<T>(c: java.util.ICollection<any>, a: native.Array<T>): boolean;
			/**
			 * Returns whether the specified collections have no elements in common.
			 * @param c1 
			 * @param c2 
			 */
			public static disjoint(c1: java.util.ICollection<any>, c2: java.util.ICollection<any>): boolean;
			/**
			 * Checks if specified object is instance of specified class. Used for a dynamically typesafe view of the collections.
			 * @param obj -
			 * @param type -
			 */
			static checkType<E>(obj: E, type: java.lang.Class<any>): E;
			/**
			 * Returns a set backed by map.
			 */
			public static newSetFromMap<E>(map: java.util.IMap<E, boolean>): java.util.ISet<E>;
			/**
			 * Returns a last-in, first-out queue as a view of deque.
			 */
			public static asLifoQueue<T>(deque: java.util.IDeque<T>): java.util.IQueue<T>;
		}
		export module Collections {
			export class UnmodifiableSet<E> extends java.util.Collections.UnmodifiableCollection<E> {
				static class: java.lang.Class<java.util.Collections.UnmodifiableSet<any>>;
				public equals(object: any): boolean;
				public hashCode(): number;
			}
			/**
			 * A dynamically typesafe view of a Collection.
			 */
			export class CheckedCollection<E> extends java.lang.Object implements java.io.ISerializable {
				constructor(c: java.util.ICollection<E>, type: java.lang.Class<E>);
				static class: java.lang.Class<java.util.Collections.CheckedCollection<any>>;
				public size(): number;
				public isEmpty(): boolean;
				public contains(obj: any): boolean;
				public iterator(): java.util.IIterator<E>;
				public toArray(): native.Array<any>;
				public toArray<T>(arr: native.Array<T>): native.Array<T>;
				public add(obj: E): boolean;
				public remove(obj: any): boolean;
				public containsAll(c1: java.util.ICollection<any>): boolean;
				public addAll(c1: java.util.ICollection<any>): boolean;
				public removeAll(c1: java.util.ICollection<any>): boolean;
				public retainAll(c1: java.util.ICollection<any>): boolean;
				public clear(): void;
				public toString(): string;
			}
			export class EmptySet extends java.util.AbstractSet<any> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.EmptySet>;
				public contains(object: any): boolean;
				public size(): number;
				public iterator(): java.util.IIterator<any>;
			}
			/**
			 * This class is a singleton so that equals() and hashCode() work properly.
			 */
			export class ReverseComparator<T> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.ReverseComparator<any>>;
				public compare(o1: T, o2: T): number;
			}
			export class SynchronizedCollection<E> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.SynchronizedCollection<any>>;
				public add(object: E): boolean;
				public addAll(collection: java.util.ICollection<any>): boolean;
				public clear(): void;
				public contains(object: any): boolean;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				public isEmpty(): boolean;
				public iterator(): java.util.IIterator<E>;
				public remove(object: any): boolean;
				public removeAll(collection: java.util.ICollection<any>): boolean;
				public retainAll(collection: java.util.ICollection<any>): boolean;
				public size(): number;
				public toArray(): native.Array<any>;
				public toString(): string;
				public toArray<T>(array: native.Array<T>): native.Array<T>;
			}
			export class SynchronizedRandomAccessList<E> extends java.util.Collections.SynchronizedList<E> implements java.util.IRandomAccess {
				static class: java.lang.Class<java.util.Collections.SynchronizedRandomAccessList<any>>;
				public subList(start: number, end: number): java.util.IList<E>;
			}
			export class SynchronizedSet<E> extends java.util.Collections.SynchronizedCollection<E> {
				static class: java.lang.Class<java.util.Collections.SynchronizedSet<any>>;
				public equals(object: any): boolean;
				public hashCode(): number;
			}
			export class SetFromMap<E> extends java.util.AbstractSet<E> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.SetFromMap<any>>;
				public equals(object: any): boolean;
				public hashCode(): number;
				public add(object: E): boolean;
				public clear(): void;
				public toString(): string;
				public contains(object: any): boolean;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				public isEmpty(): boolean;
				public remove(object: any): boolean;
				public retainAll(collection: java.util.ICollection<any>): boolean;
				public toArray(): native.Array<any>;
				public toArray<T>(contents: native.Array<T>): native.Array<T>;
				public iterator(): java.util.IIterator<E>;
				public size(): number;
			}
			export class ReverseComparator2<T> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.ReverseComparator2<any>>;
				public compare(o1: T, o2: T): number;
				public equals(o: any): boolean;
				public hashCode(): number;
			}
			export class SynchronizedMap<K, V> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.SynchronizedMap<any, any>>;
				public clear(): void;
				public containsKey(key: any): boolean;
				public containsValue(value: any): boolean;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
				public equals(object: any): boolean;
				public get(key: any): V;
				public hashCode(): number;
				public isEmpty(): boolean;
				public keySet(): java.util.ISet<K>;
				public put(key: K, value: V): V;
				public putAll(map: java.util.IMap<any, any>): void;
				public remove(key: any): V;
				public size(): number;
				public values(): java.util.ICollection<V>;
				public toString(): string;
			}
			export class UnmodifiableList<E> extends java.util.Collections.UnmodifiableCollection<E> {
				static class: java.lang.Class<java.util.Collections.UnmodifiableList<any>>;
				public add(location: number, object: E): void;
				public addAll(location: number, collection: java.util.ICollection<any>): boolean;
				public equals(object: any): boolean;
				public get(location: number): E;
				public hashCode(): number;
				public indexOf(object: any): number;
				public lastIndexOf(object: any): number;
				public listIterator(): java.util.IListIterator<E>;
				public listIterator(location: number): java.util.IListIterator<E>;
				public remove(location: number): E;
				public set(location: number, object: E): E;
				public subList(start: number, end: number): java.util.IList<E>;
				add(object: E): boolean;
				addAll(collection: java.util.ICollection<any>): boolean;
				remove(object: any): boolean;
			}
			export class CopiesList<E> extends java.util.AbstractList<E> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.CopiesList<any>>;
				public contains(object: any): boolean;
				public size(): number;
				public get(location: number): E;
			}
			export class AsLIFOQueue<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.AsLIFOQueue<any>>;
				public iterator(): java.util.IIterator<E>;
				public size(): number;
				public offer(o: E): boolean;
				public peek(): E;
				public poll(): E;
				public add(o: E): boolean;
				public clear(): void;
				public element(): E;
				public remove(): E;
				public contains(object: any): boolean;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				public isEmpty(): boolean;
				public remove(object: any): boolean;
				public removeAll(collection: java.util.ICollection<any>): boolean;
				public retainAll(collection: java.util.ICollection<any>): boolean;
				public toArray(): native.Array<any>;
				public toArray<T>(contents: native.Array<T>): native.Array<T>;
				public toString(): string;
			}
			/**
			 * Class represents a dynamically typesafe view of the specified ListIterator.
			 */
			export class CheckedListIterator<E> extends java.lang.Object {
				/**
				 * Constructs a dynamically typesafe view of the specified ListIterator.
				 * @param i -
				 * @param type 
				 */
				constructor(i: java.util.IListIterator<E>, type: java.lang.Class<E>);
				static class: java.lang.Class<java.util.Collections.CheckedListIterator<any>>;
				public hasNext(): boolean;
				public next(): E;
				public remove(): void;
				public hasPrevious(): boolean;
				public previous(): E;
				public nextIndex(): number;
				public previousIndex(): number;
				public set(obj: E): void;
				public add(obj: E): void;
			}
			export class EmptyMap extends java.util.AbstractMap<any, any> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.EmptyMap>;
				public containsKey(key: any): boolean;
				public containsValue(value: any): boolean;
				public entrySet(): java.util.ISet<any>;
				public get(key: any): any;
				public keySet(): java.util.ISet<any>;
				public values(): java.util.ICollection<any>;
			}
			export class EmptyList extends java.util.AbstractList<any> implements java.util.IRandomAccess, java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.EmptyList>;
				public contains(object: any): boolean;
				public size(): number;
				public get(location: number): any;
			}
			export class SingletonMap<K, V> extends java.util.AbstractMap<K, V> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.SingletonMap<any, any>>;
				public containsKey(key: any): boolean;
				public containsValue(value: any): boolean;
				public get(key: any): V;
				public size(): number;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
			}
			/**
			 * A dynamically typesafe view of a Set.
			 */
			export class CheckedSet<E> extends java.util.Collections.CheckedCollection<E> {
				constructor(s: java.util.ISet<E>, type: java.lang.Class<E>);
				static class: java.lang.Class<java.util.Collections.CheckedSet<any>>;
				public equals(obj: any): boolean;
				public hashCode(): number;
			}
			export class SingletonSet<E> extends java.util.AbstractSet<E> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.SingletonSet<any>>;
				public contains(object: any): boolean;
				public size(): number;
				public iterator(): java.util.IIterator<E>;
			}
			export class SingletonList<E> extends java.util.AbstractList<E> implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.SingletonList<any>>;
				public contains(object: any): boolean;
				public get(location: number): E;
				public size(): number;
			}
			export class SynchronizedSortedSet<E> extends java.util.Collections.SynchronizedSet<E> {
				static class: java.lang.Class<java.util.Collections.SynchronizedSortedSet<any>>;
				public comparator(): java.util.IComparator<any>;
				public first(): E;
				public headSet(end: E): java.util.ISortedSet<E>;
				public last(): E;
				public subSet(start: E, end: E): java.util.ISortedSet<E>;
				public tailSet(start: E): java.util.ISortedSet<E>;
			}
			export class UnmodifiableRandomAccessList<E> extends java.util.Collections.UnmodifiableList<E> implements java.util.IRandomAccess {
				static class: java.lang.Class<java.util.Collections.UnmodifiableRandomAccessList<any>>;
				public subList(start: number, end: number): java.util.IList<E>;
			}
			/**
			 * A dynamically typesafe view of a SortedMap.
			 */
			export class CheckedSortedMap<K, V> extends java.util.Collections.CheckedMap<K, V> {
				static class: java.lang.Class<java.util.Collections.CheckedSortedMap<any, any>>;
				public comparator(): java.util.IComparator<any>;
				public subMap(fromKey: K, toKey: K): java.util.ISortedMap<K, V>;
				public headMap(toKey: K): java.util.ISortedMap<K, V>;
				public tailMap(fromKey: K): java.util.ISortedMap<K, V>;
				public firstKey(): K;
				public lastKey(): K;
			}
			/**
			 * A dynamically typesafe view of a Map.
			 */
			export class CheckedMap<K, V> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.CheckedMap<any, any>>;
				public size(): number;
				public isEmpty(): boolean;
				public containsKey(key: any): boolean;
				public containsValue(value: any): boolean;
				public get(key: any): V;
				public put(key: K, value: V): V;
				public remove(key: any): V;
				public putAll(map: java.util.IMap<any, any>): void;
				public clear(): void;
				public keySet(): java.util.ISet<K>;
				public values(): java.util.ICollection<V>;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
				public equals(obj: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
			export module CheckedMap {
				/**
				 * A dynamically typesafe view of an entry set.
				 */
				export class CheckedEntrySet<K, V> extends java.lang.Object {
					constructor(s: java.util.ISet<java.util.Map.IEntry<K, V>>, valueType: java.lang.Class<V>);
					static class: java.lang.Class<java.util.Collections.CheckedMap.CheckedEntrySet<any, any>>;
					public iterator(): java.util.IIterator<java.util.Map.IEntry<K, V>>;
					public toArray(): native.Array<any>;
					public toArray<T>(array: native.Array<T>): native.Array<T>;
					public retainAll(c: java.util.ICollection<any>): boolean;
					public removeAll(c: java.util.ICollection<any>): boolean;
					public containsAll(c: java.util.ICollection<any>): boolean;
					public addAll(c: java.util.ICollection<any>): boolean;
					public remove(o: any): boolean;
					public contains(o: any): boolean;
					public add(o: java.util.Map.IEntry<K, V>): boolean;
					public isEmpty(): boolean;
					public clear(): void;
					public size(): number;
					public hashCode(): number;
					public equals(object: any): boolean;
				}
				export module CheckedEntrySet {
					/**
					 * A dynamically typesafe view of an entry iterator.
					 */
					export class CheckedEntryIterator<K, V> extends java.lang.Object {
						constructor(i: java.util.IIterator<java.util.Map.IEntry<K, V>>, valueType: java.lang.Class<V>);
						static class: java.lang.Class<java.util.Collections.CheckedMap.CheckedEntrySet.CheckedEntryIterator<any, any>>;
						public hasNext(): boolean;
						public remove(): void;
						public next(): java.util.Map.IEntry<K, V>;
					}
				}
				/**
				 * A dynamically typesafe view of a Map.Entry.
				 */
				export class CheckedEntry<K, V> extends java.lang.Object {
					constructor(e: java.util.Map.IEntry<K, V>, valueType: java.lang.Class<V>);
					static class: java.lang.Class<java.util.Collections.CheckedMap.CheckedEntry<any, any>>;
					public getKey(): K;
					public getValue(): V;
					public setValue(obj: V): V;
					public equals(obj: any): boolean;
					public hashCode(): number;
				}
			}
			/**
			 * A dynamically typesafe view of a SortedSet.
			 */
			export class CheckedSortedSet<E> extends java.util.Collections.CheckedSet<E> {
				constructor(s: java.util.ISortedSet<E>, type: java.lang.Class<E>);
				static class: java.lang.Class<java.util.Collections.CheckedSortedSet<any>>;
				public comparator(): java.util.IComparator<any>;
				public subSet(fromElement: E, toElement: E): java.util.ISortedSet<E>;
				public headSet(toElement: E): java.util.ISortedSet<E>;
				public tailSet(fromElement: E): java.util.ISortedSet<E>;
				public first(): E;
				public last(): E;
			}
			export class UnmodifiableCollection<E> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.UnmodifiableCollection<any>>;
				public add(object: E): boolean;
				public addAll(collection: java.util.ICollection<any>): boolean;
				public clear(): void;
				public contains(object: any): boolean;
				public containsAll(collection: java.util.ICollection<any>): boolean;
				public isEmpty(): boolean;
				public iterator(): java.util.IIterator<E>;
				public remove(object: any): boolean;
				public removeAll(collection: java.util.ICollection<any>): boolean;
				public retainAll(collection: java.util.ICollection<any>): boolean;
				public size(): number;
				public toArray(): native.Array<any>;
				public toArray<T>(array: native.Array<T>): native.Array<T>;
				public toString(): string;
			}
			/**
			 * A dynamically typesafe view of a RandomAccessList.
			 */
			export class CheckedRandomAccessList<E> extends java.util.Collections.CheckedList<E> implements java.util.IRandomAccess {
				constructor(l: java.util.IList<E>, type: java.lang.Class<E>);
				static class: java.lang.Class<java.util.Collections.CheckedRandomAccessList<any>>;
			}
			export class UnmodifiableSortedMap<K, V> extends java.util.Collections.UnmodifiableMap<K, V> {
				static class: java.lang.Class<java.util.Collections.UnmodifiableSortedMap<any, any>>;
				public comparator(): java.util.IComparator<any>;
				public firstKey(): K;
				public headMap(before: K): java.util.ISortedMap<K, V>;
				public lastKey(): K;
				public subMap(start: K, end: K): java.util.ISortedMap<K, V>;
				public tailMap(after: K): java.util.ISortedMap<K, V>;
			}
			export class UnmodifiableMap<K, V> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.Collections.UnmodifiableMap<any, any>>;
				public clear(): void;
				public containsKey(key: any): boolean;
				public containsValue(value: any): boolean;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<K, V>>;
				public equals(object: any): boolean;
				public get(key: any): V;
				public hashCode(): number;
				public isEmpty(): boolean;
				public keySet(): java.util.ISet<K>;
				public put(key: K, value: V): V;
				public putAll(map: java.util.IMap<any, any>): void;
				public remove(key: any): V;
				public size(): number;
				public values(): java.util.ICollection<V>;
				public toString(): string;
			}
			export module UnmodifiableMap {
				export class UnmodifiableEntrySet<K, V> extends java.util.Collections.UnmodifiableSet<java.util.Map.IEntry<K, V>> {
					static class: java.lang.Class<java.util.Collections.UnmodifiableMap.UnmodifiableEntrySet<any, any>>;
					public iterator(): java.util.IIterator<java.util.Map.IEntry<K, V>>;
					public toArray(): native.Array<any>;
					public toArray<T>(contents: native.Array<T>): native.Array<T>;
				}
				export module UnmodifiableEntrySet {
					export class UnmodifiableMapEntry<K, V> extends java.lang.Object {
						static class: java.lang.Class<java.util.Collections.UnmodifiableMap.UnmodifiableEntrySet.UnmodifiableMapEntry<any, any>>;
						public equals(object: any): boolean;
						public getKey(): K;
						public getValue(): V;
						public hashCode(): number;
						public setValue(object: V): V;
						public toString(): string;
					}
				}
			}
			/**
			 * Class represents a dynamically typesafe view of a List.
			 */
			export class CheckedList<E> extends java.util.Collections.CheckedCollection<E> {
				constructor(l: java.util.IList<E>, type: java.lang.Class<E>);
				static class: java.lang.Class<java.util.Collections.CheckedList<any>>;
				public addAll(index: number, c1: java.util.ICollection<any>): boolean;
				public get(index: number): E;
				public set(index: number, obj: E): E;
				public add(index: number, obj: E): void;
				public remove(index: number): E;
				public indexOf(obj: any): number;
				public lastIndexOf(obj: any): number;
				public listIterator(): java.util.IListIterator<E>;
				public listIterator(index: number): java.util.IListIterator<E>;
				public subList(fromIndex: number, toIndex: number): java.util.IList<E>;
				public equals(obj: any): boolean;
				public hashCode(): number;
				add(obj: E): boolean;
				remove(obj: any): boolean;
				addAll(c1: java.util.ICollection<any>): boolean;
			}
			export class SynchronizedSortedMap<K, V> extends java.util.Collections.SynchronizedMap<K, V> {
				static class: java.lang.Class<java.util.Collections.SynchronizedSortedMap<any, any>>;
				public comparator(): java.util.IComparator<any>;
				public firstKey(): K;
				public headMap(endKey: K): java.util.ISortedMap<K, V>;
				public lastKey(): K;
				public subMap(startKey: K, endKey: K): java.util.ISortedMap<K, V>;
				public tailMap(startKey: K): java.util.ISortedMap<K, V>;
			}
			export class SynchronizedList<E> extends java.util.Collections.SynchronizedCollection<E> {
				static class: java.lang.Class<java.util.Collections.SynchronizedList<any>>;
				public add(location: number, object: E): void;
				public addAll(location: number, collection: java.util.ICollection<any>): boolean;
				public equals(object: any): boolean;
				public get(location: number): E;
				public hashCode(): number;
				public indexOf(object: any): number;
				public lastIndexOf(object: any): number;
				public listIterator(): java.util.IListIterator<E>;
				public listIterator(location: number): java.util.IListIterator<E>;
				public remove(location: number): E;
				public set(location: number, object: E): E;
				public subList(start: number, end: number): java.util.IList<E>;
				add(object: E): boolean;
				addAll(collection: java.util.ICollection<any>): boolean;
				remove(object: any): boolean;
			}
			export class UnmodifiableSortedSet<E> extends java.util.Collections.UnmodifiableSet<E> {
				static class: java.lang.Class<java.util.Collections.UnmodifiableSortedSet<any>>;
				public comparator(): java.util.IComparator<any>;
				public first(): E;
				public headSet(before: E): java.util.ISortedSet<E>;
				public last(): E;
				public subSet(start: E, end: E): java.util.ISortedSet<E>;
				public tailSet(after: E): java.util.ISortedSet<E>;
			}
		}
		/**
		 * HashSet is an implementation of a Set. All optional operations (adding and removing) are supported. The elements can be any objects.
		 */
		export class HashSet<E> extends java.util.AbstractSet<E> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new empty instance of HashSet.
			 */
			constructor();
			/**
			 * Constructs a new instance of HashSet with the specified capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new instance of HashSet with the specified capacity and load factor.
			 * @param capacity 
			 * @param loadFactor 
			 */
			constructor(capacity: number, loadFactor: number);
			/**
			 * Constructs a new instance of HashSet containing the unique elements in the specified collection.
			 * @param collection 
			 */
			constructor(collection: java.util.ICollection<any>);
			static class: java.lang.Class<java.util.HashSet<any>>;
			/**
			 * Adds the specified object to this HashSet if not already present.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Removes all elements from this HashSet, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns a new HashSet with the same elements and size as this HashSet.
			 */
			public clone(): any;
			/**
			 * Searches this HashSet for the specified object.
			 * @param object 
			 */
			public contains(object: any): boolean;
			/**
			 * Returns true if this HashSet has no elements, false otherwise.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an Iterator on the elements of this HashSet.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Removes the specified object from this HashSet.
			 * @param object 
			 */
			public remove(object: any): boolean;
			/**
			 * Returns the number of elements in this HashSet.
			 */
			public size(): number;
			createBackingMap(capacity: number, loadFactor: number): java.util.HashMap<E, java.util.HashSet<E>>;
		}
		/**
		 * AbstractList is an abstract implementation of the List interface, optimized for a backing store which supports random access. This implementation does not support adding or replacing. A subclass must implement the abstract methods get() and size(), and to create a modifiable List it's necessary to override the add() method that currently throws an UnsupportedOperationException.
		 */
		export class AbstractList<E> extends java.util.AbstractCollection<E> {
			static class: java.lang.Class<java.util.AbstractList<any>>;
			/**
			 * Inserts the specified object into this List at the specified location. The object is inserted before any previous element at the specified location. If the location is equal to the size of this List, the object is added at the end.
			 * @param location 
			 * @param object 
			 */
			public add(location: number, object: E): void;
			/**
			 * Adds the specified object at the end of this List.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Inserts the objects in the specified Collection at the specified location in this List. The objects are added in the order they are returned from the collection's iterator.
			 * @param location 
			 * @param collection 
			 */
			public addAll(location: number, collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this list, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Compares the specified object to this list and return true if they are equal. Two lists are equal when they both contain the same objects in the same order.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the element at the specified location in this list.
			 * @param location 
			 */
			public get(location: number): E;
			/**
			 * Returns the hash code of this list. The hash code is calculated by taking each element's hashcode into account.
			 */
			public hashCode(): number;
			/**
			 * Searches this list for the specified object and returns the index of the first occurrence.
			 * @param object 
			 */
			public indexOf(object: any): number;
			/**
			 * Returns an iterator on the elements of this list. The elements are iterated in the same order as they occur in the list.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Searches this list for the specified object and returns the index of the last occurrence.
			 * @param object 
			 */
			public lastIndexOf(object: any): number;
			/**
			 * Returns a ListIterator on the elements of this list. The elements are iterated in the same order that they occur in the list.
			 */
			public listIterator(): java.util.IListIterator<E>;
			/**
			 * Returns a list iterator on the elements of this list. The elements are iterated in the same order as they occur in the list. The iteration starts at the specified location.
			 * @param location 
			 */
			public listIterator(location: number): java.util.IListIterator<E>;
			/**
			 * Removes the object at the specified location from this list.
			 * @param location 
			 */
			public remove(location: number): E;
			/**
			 * Removes the objects in the specified range from the start to the end index minus one.
			 * @param start 
			 * @param end 
			 */
			protected removeRange(start: number, end: number): void;
			/**
			 * Replaces the element at the specified location in this list with the specified object.
			 * @param location 
			 * @param object 
			 */
			public set(location: number, object: E): E;
			/**
			 * Returns a part of consecutive elements of this list as a view. The returned view will be of zero length if start equals end. Any change that occurs in the returned subList will be reflected to the original list, and vice-versa. All the supported optional operations by the original list will also be supported by this subList.
			 * @param start 
			 * @param end 
			 */
			public subList(start: number, end: number): java.util.IList<E>;
			/**
			 * Attempts to add all of the objects contained in collection to the contents of this Collection (optional). This implementation iterates over the given Collection and calls add for each element. If any of these calls return true, then true is returned as result of this method call, false otherwise. If this Collection does not support adding elements, an UnsupportedOperationException is thrown.
			 * @param collection 
			 */
			addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes one instance of the specified object from this Collection if one is contained (optional). This implementation iterates over this Collection and tests for each element e returned by the iterator, whether e is equal to the given object. If object != null then this test is performed using object.equals(e), otherwise using object == null. If an element equal to the given object is found, then the remove method is called on the iterator and true is returned, false otherwise. If the iterator does not support removing elements, an UnsupportedOperationException is thrown.
			 * @param object 
			 */
			remove(object: any): boolean;
		}
		export module AbstractList {
			export class FullListIterator extends java.util.AbstractList.SimpleListIterator {
				static class: java.lang.Class<java.util.AbstractList.FullListIterator>;
				public add(object: any): void;
				public hasPrevious(): boolean;
				public nextIndex(): number;
				public previous(): any;
				public previousIndex(): number;
				public set(object: any): void;
			}
			export class SubAbstractList<E> extends java.util.AbstractList<E> {
				static class: java.lang.Class<java.util.AbstractList.SubAbstractList<any>>;
				public add(location: number, object: E): void;
				public addAll(location: number, collection: java.util.ICollection<any>): boolean;
				public addAll(collection: java.util.ICollection<any>): boolean;
				public get(location: number): E;
				public iterator(): java.util.IIterator<E>;
				public listIterator(location: number): java.util.IListIterator<E>;
				public remove(location: number): E;
				protected removeRange(start: number, end: number): void;
				public set(location: number, object: E): E;
				public size(): number;
				sizeChanged(increment: boolean): void;
				/**
				 * Adds the specified object at the end of this List.
				 * @param object 
				 */
				add(object: E): boolean;
				/**
				 * Returns a ListIterator on the elements of this list. The elements are iterated in the same order that they occur in the list.
				 */
				listIterator(): java.util.IListIterator<E>;
				/**
				 * Removes one instance of the specified object from this Collection if one is contained (optional). This implementation iterates over this Collection and tests for each element e returned by the iterator, whether e is equal to the given object. If object != null then this test is performed using object.equals(e), otherwise using object == null. If an element equal to the given object is found, then the remove method is called on the iterator and true is returned, false otherwise. If the iterator does not support removing elements, an UnsupportedOperationException is thrown.
				 * @param object 
				 */
				remove(object: any): boolean;
			}
			export module SubAbstractList {
				export class SubAbstractListIterator<E> extends java.lang.Object {
					static class: java.lang.Class<java.util.AbstractList.SubAbstractList.SubAbstractListIterator<any>>;
					public add(object: E): void;
					public hasNext(): boolean;
					public hasPrevious(): boolean;
					public next(): E;
					public nextIndex(): number;
					public previous(): E;
					public previousIndex(): number;
					public remove(): void;
					public set(object: E): void;
				}
			}
			export class SimpleListIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.AbstractList.SimpleListIterator>;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
			export class SubAbstractListRandomAccess<E> extends java.util.AbstractList.SubAbstractList<E> implements java.util.IRandomAccess {
				static class: java.lang.Class<java.util.AbstractList.SubAbstractListRandomAccess<any>>;
			}
		}
		/**
		 * A linear collection that supports element insertion and removal at both ends. The name <i>deque</i> is short for "double ended queue" and is usually pronounced "deck". Most <tt>Deque</tt> implementations place no fixed limits on the number of elements they may contain, but this interface supports capacity-restricted deques as well as those with no fixed size limit.
		 */
		interface IDeque<E> {
			/**
			 * Inserts the specified element at the front of this deque if it is possible to do so immediately without violating capacity restrictions. When using a capacity-restricted deque, it is generally preferable to use method #offerFirst.
			 * @param e the element to add
			 */
			addFirst(e: E): void;
			/**
			 * Inserts the specified element at the end of this deque if it is possible to do so immediately without violating capacity restrictions. When using a capacity-restricted deque, it is generally preferable to use method #offerLast.
			 * @param e the element to add
			 */
			addLast(e: E): void;
			/**
			 * Inserts the specified element at the front of this deque unless it would violate capacity restrictions. When using a capacity-restricted deque, this method is generally preferable to the #addFirst method, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			offerFirst(e: E): boolean;
			/**
			 * Inserts the specified element at the end of this deque unless it would violate capacity restrictions. When using a capacity-restricted deque, this method is generally preferable to the #addLast method, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			offerLast(e: E): boolean;
			/**
			 * Retrieves and removes the first element of this deque. This method differs from #pollFirst pollFirst only in that it throws an exception if this deque is empty.
			 */
			removeFirst(): E;
			/**
			 * Retrieves and removes the last element of this deque. This method differs from #pollLast pollLast only in that it throws an exception if this deque is empty.
			 */
			removeLast(): E;
			/**
			 * Retrieves and removes the first element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			pollFirst(): E;
			/**
			 * Retrieves and removes the last element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			pollLast(): E;
			/**
			 * Retrieves, but does not remove, the first element of this deque.
			 */
			getFirst(): E;
			/**
			 * Retrieves, but does not remove, the last element of this deque. This method differs from #peekLast peekLast only in that it throws an exception if this deque is empty.
			 */
			getLast(): E;
			/**
			 * Retrieves, but does not remove, the first element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			peekFirst(): E;
			/**
			 * Retrieves, but does not remove, the last element of this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			peekLast(): E;
			/**
			 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			removeFirstOccurrence(o: any): boolean;
			/**
			 * Removes the last occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the last element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			removeLastOccurrence(o: any): boolean;
			/**
			 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available. When using a capacity-restricted deque, it is generally preferable to use #offer(Object) offer.
			 * @param e the element to add
			 */
			add(e: E): boolean;
			/**
			 * Inserts the specified element into the queue represented by this deque (in other words, at the tail of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and <tt>false</tt> if no space is currently available. When using a capacity-restricted deque, this method is generally preferable to the #add method, which can fail to insert an element only by throwing an exception.
			 * @param e the element to add
			 */
			offer(e: E): boolean;
			/**
			 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #poll poll only in that it throws an exception if this deque is empty.
			 */
			remove(): E;
			/**
			 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
			 */
			poll(): E;
			/**
			 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque). This method differs from #peek peek only in that it throws an exception if this deque is empty.
			 */
			element(): E;
			/**
			 * Retrieves, but does not remove, the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
			 */
			peek(): E;
			/**
			 * Pushes an element onto the stack represented by this deque (in other words, at the head of this deque) if it is possible to do so immediately without violating capacity restrictions, returning <tt>true</tt> upon success and throwing an <tt>IllegalStateException</tt> if no space is currently available.
			 * @param e the element to push
			 */
			push(e: E): void;
			/**
			 * Pops an element from the stack represented by this deque. In other words, removes and returns the first element of this deque.
			 */
			pop(): E;
			/**
			 * Removes the first occurrence of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			remove(o: any): boolean;
			/**
			 * Returns <tt>true</tt> if this deque contains the specified element. More formally, returns <tt>true</tt> if and only if this deque contains at least one element <tt>e</tt> such that <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>.
			 * @param o element whose presence in this deque is to be tested
			 */
			contains(o: any): boolean;
			/**
			 * Returns the number of elements in this deque.
			 */
			size(): number;
			/**
			 * Returns an iterator over the elements in this deque in proper sequence. The elements will be returned in order from first (head) to last (tail).
			 */
			iterator(): java.util.IIterator<E>;
			/**
			 * Returns an iterator over the elements in this deque in reverse sequential order. The elements will be returned in order from last (tail) to first (head).
			 */
			descendingIterator(): java.util.IIterator<E>;
		}
		/**
		 * The BitSet class implements a <a href="http://en.wikipedia.org/wiki/Bit_array">bit array</a>. Each element is either true or false. A BitSet is created with a given size and grows automatically if this size is exceeded.
		 */
		export class BitSet extends java.lang.Object implements java.io.ISerializable, java.lang.ICloneable {
			/**
			 * Creates a new BitSet with size equal to 64 bits.
			 */
			constructor();
			/**
			 * Creates a new BitSet with size equal to bitCount, rounded up to a multiple of 64.
			 */
			constructor(bitCount: number);
			static class: java.lang.Class<java.util.BitSet>;
			public clone(): any;
			public equals(o: any): boolean;
			public hashCode(): number;
			/**
			 * Returns the bit at index index. Indexes greater than the current length return false.
			 */
			public get(index: number): boolean;
			/**
			 * Sets the bit at index index to true.
			 */
			public set(index: number): void;
			/**
			 * Clears the bit at index index.
			 */
			public clear(index: number): void;
			/**
			 * Flips the bit at index index.
			 */
			public flip(index: number): void;
			/**
			 * Returns a new BitSet containing the range of bits [fromIndex, toIndex), shifted down so that the bit at fromIndex is at bit 0 in the new BitSet.
			 */
			public get(fromIndex: number, toIndex: number): java.util.BitSet;
			/**
			 * Sets the bit at index index to state.
			 */
			public set(index: number, state: boolean): void;
			/**
			 * Sets the range of bits [fromIndex, toIndex) to state.
			 */
			public set(fromIndex: number, toIndex: number, state: boolean): void;
			/**
			 * Clears all the bits in this BitSet. This method does not change the capacity. Use clear if you want to reuse this BitSet with the same capacity, but create a new BitSet if you're trying to potentially reclaim memory.
			 */
			public clear(): void;
			/**
			 * Sets the range of bits [fromIndex, toIndex).
			 */
			public set(fromIndex: number, toIndex: number): void;
			/**
			 * Clears the range of bits [fromIndex, toIndex).
			 */
			public clear(fromIndex: number, toIndex: number): void;
			/**
			 * Flips the range of bits [fromIndex, toIndex).
			 */
			public flip(fromIndex: number, toIndex: number): void;
			/**
			 * Returns true if this.and(bs) is non-empty, but may be faster than computing that.
			 */
			public intersects(bs: java.util.BitSet): boolean;
			/**
			 * Logically ands the bits of this BitSet with bs.
			 */
			public and(bs: java.util.BitSet): void;
			/**
			 * Clears all bits in this BitSet which are also set in bs.
			 */
			public andNot(bs: java.util.BitSet): void;
			/**
			 * Logically ors the bits of this BitSet with bs.
			 */
			public or(bs: java.util.BitSet): void;
			/**
			 * Logically xors the bits of this BitSet with bs.
			 */
			public xor(bs: java.util.BitSet): void;
			/**
			 * Returns the capacity in bits of the array implementing this BitSet. This is unrelated to the length of the BitSet, and not generally useful. Use #nextSetBit to iterate, or #length to find the highest set bit.
			 */
			public size(): number;
			/**
			 * Returns the number of bits up to and including the highest bit set. This is unrelated to the #size of the BitSet.
			 */
			public length(): number;
			/**
			 * Returns a string containing a concise, human-readable description of the receiver: a comma-delimited list of the indexes of all set bits. For example: "{0,1,8"}.
			 */
			public toString(): string;
			/**
			 * Returns the index of the first bit that is set on or after index, or -1 if no higher bits are set. IndexOutOfBoundsException if index < 0.
			 */
			public nextSetBit(index: number): number;
			/**
			 * Returns the index of the first bit that is clear on or after index. Since all bits past the end are implicitly clear, this never returns -1. IndexOutOfBoundsException if index < 0.
			 */
			public nextClearBit(index: number): number;
			/**
			 * Returns true if all the bits in this BitSet are set to false, false otherwise.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns the number of bits that are true in this BitSet.
			 */
			public cardinality(): number;
		}
		/**
		 * A SortedMap extended with navigation methods returning the closest matches for given search targets. Methods lowerEntry, floorEntry, ceilingEntry, and higherEntry return Map.Entry objects associated with keys respectively less than, less than or equal, greater than or equal, and greater than a given key, returning null if there is no such key. Similarly, methods lowerKey, floorKey, ceilingKey, and higherKey return only the associated keys. All of these methods are designed for locating, not traversing entries.
		 */
		interface INavigableMap<K, V> {
			/**
			 * Returns a key-value mapping associated with the greatest key strictly less than the given key, or null if there is no such key.
			 * @param key the key
			 */
			lowerEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the greatest key strictly less than the given key, or null if there is no such key.
			 * @param key the key
			 */
			lowerKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the greatest key less than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			floorEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the greatest key less than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			floorKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the least key greater than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			ceilingEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the least key greater than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			ceilingKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the least key strictly greater than the given key, or null if there is no such key.
			 * @param key the key
			 */
			higherEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the least key strictly greater than the given key, or null if there is no such key.
			 * @param key the key
			 */
			higherKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the least key in this map, or null if the map is empty.
			 */
			firstEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Returns a key-value mapping associated with the greatest key in this map, or null if the map is empty.
			 */
			lastEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Removes and returns a key-value mapping associated with the least key in this map, or null if the map is empty.
			 */
			pollFirstEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Removes and returns a key-value mapping associated with the greatest key in this map, or null if the map is empty.
			 */
			pollLastEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Returns a reverse order view of the mappings contained in this map. The descending map is backed by this map, so changes to the map are reflected in the descending map, and vice-versa. If either map is modified while an iteration over a collection view of either map is in progress (except through the iterator's own remove operation), the results of the iteration are undefined.
			 */
			descendingMap(): java.util.INavigableMap<K, V>;
			/**
			 * Returns a NavigableSet view of the keys contained in this map. The set's iterator returns the keys in ascending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
			 */
			navigableKeySet(): java.util.INavigableSet<K>;
			/**
			 * Returns a reverse order NavigableSet view of the keys contained in this map. The set's iterator returns the keys in descending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
			 */
			descendingKeySet(): java.util.INavigableSet<K>;
			/**
			 * Returns a view of the portion of this map whose keys range from fromKey to toKey. If fromKey and toKey are equal, the returned map is empty unless fromExclusive and toExclusive are both true. The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa. The returned map supports all optional map operations that this map supports.
			 * @param fromKey low endpoint of the keys in the returned map
			 * @param fromInclusive {@code true} if the low endpoint
			 * @param toKey high endpoint of the keys in the returned map
			 * @param toInclusive {@code true} if the high endpoint
			 */
			subMap(fromKey: K, fromInclusive: boolean, toKey: K, toInclusive: boolean): java.util.INavigableMap<K, V>;
			/**
			 * Returns a view of the portion of this map whose keys are less than (or equal to, if inclusive is true) toKey. The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa. The returned map supports all optional map operations that this map supports.
			 * @param toKey high endpoint of the keys in the returned map
			 * @param inclusive {@code true} if the high endpoint
			 */
			headMap(toKey: K, inclusive: boolean): java.util.INavigableMap<K, V>;
			/**
			 * Returns a view of the portion of this map whose keys are greater than (or equal to, if inclusive is true) fromKey. The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa. The returned map supports all optional map operations that this map supports.
			 * @param fromKey low endpoint of the keys in the returned map
			 * @param inclusive {@code true} if the low endpoint
			 */
			tailMap(fromKey: K, inclusive: boolean): java.util.INavigableMap<K, V>;
			/**
			 * 
			 */
			subMap(fromKey: K, toKey: K): java.util.ISortedMap<K, V>;
			/**
			 * 
			 */
			headMap(toKey: K): java.util.ISortedMap<K, V>;
			/**
			 * 
			 */
			tailMap(fromKey: K): java.util.ISortedMap<K, V>;
		}
		/**
		 * A PriorityQueue holds elements on a priority heap, which orders the elements according to their natural order or according to the comparator specified at construction time. If the queue uses natural ordering, only elements that are comparable are permitted to be inserted into the queue.
		 */
		export class PriorityQueue<E> extends java.util.AbstractQueue<E> implements java.io.ISerializable {
			/**
			 * Constructs a priority queue with an initial capacity of 11 and natural ordering.
			 */
			constructor();
			/**
			 * Constructs a priority queue with the specified capacity and natural ordering.
			 * @param initialCapacity 
			 */
			constructor(initialCapacity: number);
			/**
			 * Constructs a priority queue with the specified capacity and comparator.
			 * @param initialCapacity 
			 * @param comparator 
			 */
			constructor(initialCapacity: number, comparator: java.util.IComparator<any>);
			/**
			 * Constructs a priority queue that contains the elements of a collection. The constructed priority queue has the initial capacity of 110% of the size of the collection. The queue uses natural ordering to order its elements.
			 * @param c 
			 */
			constructor(c: java.util.ICollection<any>);
			/**
			 * Constructs a priority queue that contains the elements of another priority queue. The constructed priority queue has the initial capacity of 110% of the specified one. Both priority queues have the same comparator.
			 * @param c 
			 */
			constructor(c: java.util.PriorityQueue<any>);
			/**
			 * Constructs a priority queue that contains the elements of a sorted set. The constructed priority queue has the initial capacity of 110% of the size of the sorted set. The priority queue will have the same comparator as the sorted set.
			 * @param c 
			 */
			constructor(c: java.util.ISortedSet<any>);
			static class: java.lang.Class<java.util.PriorityQueue<any>>;
			/**
			 * Gets the iterator of the priority queue, which will not return elements in any specified ordering.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Gets the size of the priority queue. If the size of the queue is greater than the Integer.MAX, then it returns Integer.MAX.
			 */
			public size(): number;
			/**
			 * Removes all the elements of the priority queue.
			 */
			public clear(): void;
			/**
			 * Inserts the element to the priority queue.
			 * @param o 
			 */
			public offer(o: E): boolean;
			/**
			 * Gets and removes the head of the queue.
			 */
			public poll(): E;
			/**
			 * Gets but does not remove the head of the queue.
			 */
			public peek(): E;
			/**
			 * Gets the comparator of the priority queue.
			 */
			public comparator(): java.util.IComparator<any>;
			/**
			 * Removes the specified object from the priority queue.
			 * @param o 
			 */
			public remove(o: any): boolean;
			/**
			 * Adds the specified object to the priority queue.
			 * @param o 
			 */
			public add(o: E): boolean;
			/**
			 * Retrieves and removes the head of this queue. This method differs from #poll poll only in that it throws an exception if this queue is empty.
			 */
			remove(): E;
		}
		export module PriorityQueue {
			export class PriorityIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.PriorityQueue.PriorityIterator>;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
		}
		/**
		 * An ListIterator is used to sequence over a List of objects. ListIterator can move backwards or forwards through the list.
		 */
		export class ListIterator<E> implements java.util.IListIterator<E> {
			constructor(implementation: java.util.IListIterator<E>);
			/**
			 * Inserts the specified object into the list between next and previous. The object inserted will be the previous object.
			 * @param object 
			 */
			public add(object: E): void;
			/**
			 * Returns whether there are more elements to iterate.
			 */
			public hasNext(): boolean;
			/**
			 * Returns whether there are previous elements to iterate.
			 */
			public hasPrevious(): boolean;
			/**
			 * Returns the next object in the iteration.
			 */
			public next(): E;
			/**
			 * Returns the index of the next object in the iteration.
			 */
			public nextIndex(): number;
			/**
			 * Returns the previous object in the iteration.
			 */
			public previous(): E;
			/**
			 * Returns the index of the previous object in the iteration.
			 */
			public previousIndex(): number;
			/**
			 * Removes the last object returned by next or previous from the list.
			 */
			public remove(): void;
			/**
			 * Replaces the last object returned by next or previous with the specified object.
			 * @param object 
			 */
			public set(object: E): void;
		}
		/**
		 * EventObjects represent events. Typically applications subclass this class to add event specific information.
		 */
		export class EventObject extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new instance of this class.
			 * @param source 
			 */
			constructor(source: any);
			static class: java.lang.Class<java.util.EventObject>;
			/**
			 * Returns the object which fired the event.
			 */
			public getSource(): any;
			/**
			 * Returns the string representation of this EventObject.
			 */
			public toString(): string;
		}
		/**
		 * LinkedList is an implementation of List, backed by a doubly-linked list. All optional operations including adding, removing, and replacing elements are supported.
		 */
		export class LinkedList<E> extends java.util.AbstractSequentialList<E> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new empty instance of LinkedList.
			 */
			constructor();
			/**
			 * Constructs a new instance of LinkedList that holds all of the elements contained in the specified collection. The order of the elements in this new LinkedList will be determined by the iteration order of collection.
			 * @param collection 
			 */
			constructor(collection: java.util.ICollection<any>);
			static class: java.lang.Class<java.util.LinkedList<any>>;
			/**
			 * Inserts the specified object into this LinkedList at the specified location. The object is inserted before any previous element at the specified location. If the location is equal to the size of this LinkedList, the object is added at the end.
			 * @param location 
			 * @param object 
			 */
			public add(location: number, object: E): void;
			/**
			 * Adds the specified object at the end of this LinkedList.
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Inserts the objects in the specified collection at the specified location in this LinkedList. The objects are added in the order they are returned from the collection's iterator.
			 * @param location 
			 * @param collection 
			 */
			public addAll(location: number, collection: java.util.ICollection<any>): boolean;
			/**
			 * Adds the objects in the specified Collection to this LinkedList.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Adds the specified object at the beginning of this LinkedList.
			 * @param object 
			 */
			public addFirst(object: E): void;
			/**
			 * Adds the specified object at the end of this LinkedList.
			 * @param object 
			 */
			public addLast(object: E): void;
			/**
			 * Removes all elements from this LinkedList, leaving it empty.
			 */
			public clear(): void;
			/**
			 * Returns a new LinkedList with the same elements and size as this LinkedList.
			 */
			public clone(): any;
			/**
			 * Searches this LinkedList for the specified object.
			 * @param object 
			 */
			public contains(object: any): boolean;
			public get(location: number): E;
			/**
			 * Returns the first element in this LinkedList.
			 */
			public getFirst(): E;
			/**
			 * Returns the last element in this LinkedList.
			 */
			public getLast(): E;
			public indexOf(object: any): number;
			/**
			 * Searches this LinkedList for the specified object and returns the index of the last occurrence.
			 * @param object 
			 */
			public lastIndexOf(object: any): number;
			/**
			 * Returns a ListIterator on the elements of this LinkedList. The elements are iterated in the same order that they occur in the LinkedList. The iteration starts at the specified location.
			 * @param location 
			 */
			public listIterator(location: number): java.util.IListIterator<E>;
			/**
			 * Removes the object at the specified location from this LinkedList.
			 * @param location 
			 */
			public remove(location: number): E;
			public remove(object: any): boolean;
			/**
			 * Removes the first object from this LinkedList.
			 */
			public removeFirst(): E;
			/**
			 * Removes the last object from this LinkedList.
			 */
			public removeLast(): E;
			/**
			 * 
			 */
			public descendingIterator(): java.util.IIterator<E>;
			/**
			 * 
			 */
			public offerFirst(e: E): boolean;
			/**
			 * 
			 */
			public offerLast(e: E): boolean;
			/**
			 * 
			 */
			public peekFirst(): E;
			/**
			 * 
			 */
			public peekLast(): E;
			/**
			 * 
			 */
			public pollFirst(): E;
			/**
			 * 
			 */
			public pollLast(): E;
			/**
			 * 
			 */
			public pop(): E;
			/**
			 * 
			 */
			public push(e: E): void;
			/**
			 * 
			 */
			public removeFirstOccurrence(o: any): boolean;
			/**
			 * 
			 */
			public removeLastOccurrence(o: any): boolean;
			/**
			 * Replaces the element at the specified location in this LinkedList with the specified object.
			 * @param location 
			 * @param object 
			 */
			public set(location: number, object: E): E;
			/**
			 * Returns the number of elements in this LinkedList.
			 */
			public size(): number;
			public offer(o: E): boolean;
			public poll(): E;
			public remove(): E;
			public peek(): E;
			public element(): E;
			/**
			 * Returns a new array containing all elements contained in this LinkedList.
			 */
			public toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this LinkedList. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this LinkedList, the array element following the collection elements is set to null.
			 * @param contents 
			 */
			public toArray<T>(contents: native.Array<T>): native.Array<T>;
			/**
			 * Returns a ListIterator on the elements of this list. The elements are iterated in the same order that they occur in the list.
			 */
			listIterator(): java.util.IListIterator<E>;
		}
		export module LinkedList {
			export class LinkIterator<ET> extends java.lang.Object {
				static class: java.lang.Class<java.util.LinkedList.LinkIterator<any>>;
				public add(object: ET): void;
				public hasNext(): boolean;
				public hasPrevious(): boolean;
				public next(): ET;
				public nextIndex(): number;
				public previous(): ET;
				public previousIndex(): number;
				public remove(): void;
				public set(object: ET): void;
			}
			export class ReverseLinkIterator<ET> extends java.lang.Object {
				static class: java.lang.Class<java.util.LinkedList.ReverseLinkIterator<any>>;
				public hasNext(): boolean;
				public next(): ET;
				public remove(): void;
			}
			export class Link<ET> extends java.lang.Object {
				static class: java.lang.Class<java.util.LinkedList.Link<any>>;
			}
		}
		/**
		 * A List is a collection which maintains an ordering for its elements. Every element in the List has an index. Each element can thus be accessed by its index, with the first index being zero. Normally, Lists allow duplicate elements, as compared to Sets, where elements have to be unique.
		 */
		interface IList<E> {
			/**
			 * Inserts the specified object into this List at the specified location. The object is inserted before the current element at the specified location. If the location is equal to the size of this List, the object is added at the end. If the location is smaller than the size of this List, then all elements beyond the specified location are moved by one position towards the end of the List.
			 * @param location 
			 * @param object 
			 */
			add(location: number, object: E): void;
			/**
			 * Adds the specified object at the end of this List.
			 * @param object 
			 */
			add(object: E): boolean;
			/**
			 * Inserts the objects in the specified collection at the specified location in this List. The objects are added in the order they are returned from the collection's iterator.
			 * @param location 
			 * @param collection 
			 */
			addAll(location: number, collection: java.util.ICollection<any>): boolean;
			/**
			 * Adds the objects in the specified collection to the end of this List. The objects are added in the order in which they are returned from the collection's iterator.
			 * @param collection 
			 */
			addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this List, leaving it empty.
			 */
			clear(): void;
			/**
			 * Tests whether this List contains the specified object.
			 * @param object 
			 */
			contains(object: any): boolean;
			/**
			 * Tests whether this List contains all objects contained in the specified collection.
			 * @param collection 
			 */
			containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Compares the given object with the List, and returns true if they represent the <em>same</em> object using a class specific comparison. For Lists, this means that they contain the same elements in exactly the same order.
			 * @param object 
			 */
			equals(object: any): boolean;
			/**
			 * Returns the element at the specified location in this List.
			 * @param location 
			 */
			get(location: number): E;
			/**
			 * Returns the hash code for this List. It is calculated by taking each element' hashcode and its position in the List into account.
			 */
			hashCode(): number;
			/**
			 * Searches this List for the specified object and returns the index of the first occurrence.
			 * @param object 
			 */
			indexOf(object: any): number;
			/**
			 * Returns whether this List contains no elements.
			 */
			isEmpty(): boolean;
			/**
			 * Returns an iterator on the elements of this List. The elements are iterated in the same order as they occur in the List.
			 */
			iterator(): java.util.IIterator<E>;
			/**
			 * Searches this List for the specified object and returns the index of the last occurrence.
			 * @param object 
			 */
			lastIndexOf(object: any): number;
			/**
			 * Returns a List iterator on the elements of this List. The elements are iterated in the same order that they occur in the List.
			 */
			listIterator(): java.util.IListIterator<E>;
			/**
			 * Returns a list iterator on the elements of this List. The elements are iterated in the same order as they occur in the List. The iteration starts at the specified location.
			 * @param location 
			 */
			listIterator(location: number): java.util.IListIterator<E>;
			/**
			 * Removes the object at the specified location from this List.
			 * @param location 
			 */
			remove(location: number): E;
			/**
			 * Removes the first occurrence of the specified object from this List.
			 * @param object 
			 */
			remove(object: any): boolean;
			/**
			 * Removes all occurrences in this List of each object in the specified collection.
			 * @param collection 
			 */
			removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all objects from this List that are not contained in the specified collection.
			 * @param collection 
			 */
			retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Replaces the element at the specified location in this List with the specified object. This operation does not change the size of the List.
			 * @param location 
			 * @param object 
			 */
			set(location: number, object: E): E;
			/**
			 * Returns the number of elements in this List.
			 */
			size(): number;
			/**
			 * Returns a List of the specified portion of this List from the given start index to the end index minus one. The returned List is backed by this List so changes to it are reflected by the other.
			 * @param start 
			 * @param end 
			 */
			subList(start: number, end: number): java.util.IList<E>;
			/**
			 * Returns an array containing all elements contained in this List.
			 */
			toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this List. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this List, the array element following the collection elements is set to null.
			 * @param array 
			 */
			toArray<T>(array: native.Array<T>): native.Array<T>;
		}
		/**
		 * Stack is a Last-In/First-Out(LIFO) data structure which represents a stack of objects. It enables users to pop to and push from the stack, including null objects. There is no limit to the size of the stack.
		 */
		export class Stack<E> extends java.util.Vector<E> {
			/**
			 * Constructs a stack with the default size of Vector.
			 */
			constructor();
			static class: java.lang.Class<java.util.Stack<any>>;
			/**
			 * Returns whether the stack is empty or not.
			 */
			public empty(): boolean;
			/**
			 * Returns the element at the top of the stack without removing it.
			 */
			public peek(): E;
			/**
			 * Returns the element at the top of the stack and removes it.
			 */
			public pop(): E;
			/**
			 * Pushes the specified object onto the top of the stack.
			 * @param object 
			 */
			public push(object: E): E;
			/**
			 * Returns the index of the first occurrence of the object, starting from the top of the stack.
			 * @param o 
			 */
			public search(o: any): number;
		}
		/**
		 * A SortedSet extended with navigation methods reporting closest matches for given search targets. Methods lower, floor, ceiling, and higher return elements respectively less than, less than or equal, greater than or equal, and greater than a given element, returning null if there is no such element. A NavigableSet may be accessed and traversed in either ascending or descending order. The descendingSet method returns a view of the set with the senses of all relational and directional methods inverted. The performance of ascending operations and views is likely to be faster than that of descending ones. This interface additionally defines methods pollFirst and pollLast that return and remove the lowest and highest element, if one exists, else returning null. Methods subSet, headSet, and tailSet differ from the like-named SortedSet methods in accepting additional arguments describing whether lower and upper bounds are inclusive versus exclusive. Subsets of any NavigableSet must implement the NavigableSet interface.
		 */
		interface INavigableSet<E> {
			/**
			 * Returns the greatest element in this set strictly less than the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			lower(e: E): E;
			/**
			 * Returns the greatest element in this set less than or equal to the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			floor(e: E): E;
			/**
			 * Returns the least element in this set greater than or equal to the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			ceiling(e: E): E;
			/**
			 * Returns the least element in this set strictly greater than the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			higher(e: E): E;
			/**
			 * Retrieves and removes the first (lowest) element, or returns null if this set is empty.
			 */
			pollFirst(): E;
			/**
			 * Retrieves and removes the last (highest) element, or returns null if this set is empty.
			 */
			pollLast(): E;
			/**
			 * Returns an iterator over the elements in this set, in ascending order.
			 */
			iterator(): java.util.IIterator<E>;
			/**
			 * Returns a reverse order view of the elements contained in this set. The descending set is backed by this set, so changes to the set are reflected in the descending set, and vice-versa. If either set is modified while an iteration over either set is in progress (except through the iterator's own remove operation), the results of the iteration are undefined.
			 */
			descendingSet(): java.util.INavigableSet<E>;
			/**
			 * Returns an iterator over the elements in this set, in descending order. Equivalent in effect to descendingSet().iterator().
			 */
			descendingIterator(): java.util.IIterator<E>;
			/**
			 * Returns a view of the portion of this set whose elements range from fromElement to toElement. If fromElement and toElement are equal, the returned set is empty unless fromExclusive and toExclusive are both true. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.
			 * @param fromElement low endpoint of the returned set
			 * @param fromInclusive {@code true} if the low endpoint
			 * @param toElement high endpoint of the returned set
			 * @param toInclusive {@code true} if the high endpoint
			 */
			subSet(fromElement: E, fromInclusive: boolean, toElement: E, toInclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * Returns a view of the portion of this set whose elements are less than (or equal to, if inclusive is true) toElement. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.
			 * @param toElement high endpoint of the returned set
			 * @param inclusive {@code true} if the high endpoint
			 */
			headSet(toElement: E, inclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * Returns a view of the portion of this set whose elements are greater than (or equal to, if inclusive is true) fromElement. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.
			 * @param fromElement low endpoint of the returned set
			 * @param inclusive {@code true} if the low endpoint
			 */
			tailSet(fromElement: E, inclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * 
			 */
			subSet(fromElement: E, toElement: E): java.util.ISortedSet<E>;
			/**
			 * 
			 */
			headSet(toElement: E): java.util.ISortedSet<E>;
			/**
			 * 
			 */
			tailSet(fromElement: E): java.util.ISortedSet<E>;
		}
		/**
		 * This abstract class provides a simple wrapper for objects of type EventListener.
		 */
		export class EventListenerProxy extends java.lang.Object implements java.util.IEventListener {
			/**
			 * Creates a new EventListener proxy instance.
			 * @param listener 
			 */
			constructor(listener: java.util.IEventListener);
			static class: java.lang.Class<java.util.EventListenerProxy>;
			/**
			 * Returns the wrapped EventListener.
			 */
			public getListener(): java.util.IEventListener;
		}
		/**
		 * This is a near duplicate of TimSort, modified for use with arrays of objects that implement Comparable, instead of using explicit comparators.
		 */
		export class ComparableTimSort extends java.lang.Object {
			static class: java.lang.Class<java.util.ComparableTimSort>;
			static sort(a: native.Array<any>): void;
			static sort(a: native.Array<any>, lo: number, hi: number): void;
		}
		/**
		 * Collection is the root of the collection hierarchy. It defines operations on data collections and the behavior that they will have in all implementations of Collections.
		 */
		export class Collection<E> implements java.util.ICollection<E> {
			constructor(implementation: java.util.ICollection<E>);
			/**
			 * Attempts to add object to the contents of this Collection (optional).
			 * @param object 
			 */
			public add(object: E): boolean;
			/**
			 * Attempts to add all of the objects contained in Collection to the contents of this Collection (optional). If the passed Collection is changed during the process of adding elements to this Collection, the behavior is not defined.
			 * @param collection 
			 */
			public addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this Collection, leaving it empty (optional).
			 */
			public clear(): void;
			/**
			 * Tests whether this Collection contains the specified object. Returns true if and only if at least one element elem in this Collection meets following requirement: (object==null ? elem==null : object.equals(elem)).
			 * @param object 
			 */
			public contains(object: any): boolean;
			/**
			 * Tests whether this Collection contains all objects contained in the specified Collection. If an element elem is contained several times in the specified Collection, the method returns true even if elem is contained only once in this Collection.
			 * @param collection 
			 */
			public containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Compares the argument to the receiver, and returns true if they represent the <em>same</em> object using a class specific comparison.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			public hashCode(): number;
			/**
			 * Returns if this Collection contains no elements.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an instance of Iterator that may be used to access the objects contained by this Collection. The order in which the elements are returned by the iterator is not defined. Only if the instance of the Collection has a defined order the elements are returned in that order.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Removes one instance of the specified object from this Collection if one is contained (optional). The element elem that is removed complies with (object==null ? elem==null : object.equals(elem).
			 * @param object 
			 */
			public remove(object: any): boolean;
			/**
			 * Removes all occurrences in this Collection of each object in the specified Collection (optional). After this method returns none of the elements in the passed Collection can be found in this Collection anymore.
			 * @param collection 
			 */
			public removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all objects from this Collection that are not also found in the Collection passed (optional). After this method returns this Collection will only contain elements that also can be found in the Collection passed to this method.
			 * @param collection 
			 */
			public retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Returns a count of how many objects this Collection contains.
			 */
			public size(): number;
			/**
			 * Returns a new array containing all elements contained in this Collection.
			 */
			public toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this Collection. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this Collection, the array element following the Collection elements is set to null.
			 * @param array 
			 */
			public toArray<T>(array: native.Array<T>): native.Array<T>;
		}
		/**
		 * ResourceBundle is an abstract class which is the superclass of classes which provide Locale-specific resources. A bundle contains a number of named resources, where the names are Strings. A bundle may have a parent bundle, and when a resource is not found in a bundle, the parent bundle is searched for the resource. If the fallback mechanism reaches the base bundle and still can't find the resource it throws a MissingResourceException.
		 */
		export class ResourceBundle extends java.lang.Object {
			/**
			 * Constructs a new instance of this class.
			 */
			constructor();
			static class: java.lang.Class<java.util.ResourceBundle>;
			/**
			 * Finds the named resource bundle for the default Locale and the caller's ClassLoader.
			 * @param bundleName 
			 */
			public static getBundle(bundleName: string): java.util.ResourceBundle;
			/**
			 * Finds the named ResourceBundle for the specified Locale and the caller ClassLoader.
			 * @param bundleName 
			 * @param locale 
			 */
			public static getBundle(bundleName: string, locale: java.util.Locale): java.util.ResourceBundle;
			/**
			 * Finds the named resource bundle for the specified Locale and ClassLoader.
			 * @param bundleName 
			 * @param locale 
			 * @param loader 
			 */
			public static getBundle(bundleName: string, locale: java.util.Locale, loader: java.lang.ClassLoader): java.util.ResourceBundle;
			/**
			 * Finds the named resource bundle for the specified base name and control.
			 * @param baseName 
			 * @param control 
			 */
			public static getBundle(baseName: string, control: java.util.ResourceBundle.Control): java.util.ResourceBundle;
			/**
			 * Finds the named resource bundle for the specified base name and control.
			 * @param baseName 
			 * @param targetLocale 
			 * @param control 
			 */
			public static getBundle(baseName: string, targetLocale: java.util.Locale, control: java.util.ResourceBundle.Control): java.util.ResourceBundle;
			/**
			 * Finds the named resource bundle for the specified base name and control.
			 * @param baseName 
			 * @param targetLocale 
			 * @param loader 
			 * @param control 
			 */
			public static getBundle(baseName: string, targetLocale: java.util.Locale, loader: java.lang.ClassLoader, control: java.util.ResourceBundle.Control): java.util.ResourceBundle;
			/**
			 * Returns the names of the resources contained in this ResourceBundle.
			 */
			public getKeys(): java.util.IEnumeration<string>;
			/**
			 * Gets the Locale of this ResourceBundle. In case a bundle was not found for the requested Locale, this will return the actual Locale of this resource bundle that was found after doing a fallback.
			 */
			public getLocale(): java.util.Locale;
			/**
			 * Returns the named resource from this ResourceBundle. If the resource cannot be found in this bundle, it falls back to the parent bundle (if it's not null) by calling the #handleGetObject method. If the resource still can't be found it throws a MissingResourceException.
			 * @param key 
			 */
			public getObject(key: string): any;
			/**
			 * Returns the named string resource from this ResourceBundle.
			 * @param key 
			 */
			public getString(key: string): string;
			/**
			 * Returns the named resource from this ResourceBundle.
			 * @param key 
			 */
			public getStringArray(key: string): native.Array<string>;
			/**
			 * Returns the named resource from this ResourceBundle, or null if the resource is not found.
			 * @param key 
			 */
			protected handleGetObject(key: string): any;
			/**
			 * Sets the parent resource bundle of this ResourceBundle. The parent is searched for resources which are not found in this ResourceBundle.
			 * @param bundle 
			 */
			protected setParent(bundle: java.util.ResourceBundle): void;
			public static clearCache(): void;
			public static clearCache(loader: java.lang.ClassLoader): void;
			public containsKey(key: string): boolean;
			public keySet(): java.util.ISet<string>;
			protected handleKeySet(): java.util.ISet<string>;
		}
		export module ResourceBundle {
			export class MissingBundle extends java.util.ResourceBundle {
				static class: java.lang.Class<java.util.ResourceBundle.MissingBundle>;
				public getKeys(): java.util.IEnumeration<string>;
				public handleGetObject(name: string): any;
			}
			/**
			 * ResourceBundle.Control is a static utility class defines ResourceBundle load access methods, its default access order is as the same as before. However users can implement their own control.
			 */
			export class Control extends java.lang.Object {
				/**
				 * a list defines default format
				 */
				static FORMAT_DEFAULT: java.util.IList<string>;
				/**
				 * a list defines java class format
				 */
				static FORMAT_CLASS: java.util.IList<string>;
				/**
				 * a list defines property format
				 */
				static FORMAT_PROPERTIES: java.util.IList<string>;
				/**
				 * a constant that indicates cache will not be used.
				 */
				static TTL_DONT_CACHE: number;
				/**
				 * a constant that indicates cache will not be expired.
				 */
				static TTL_NO_EXPIRATION_CONTROL: number;
				static class: java.lang.Class<java.util.ResourceBundle.Control>;
				/**
				 * Returns a control according to formats.
				 */
				public static getControl(formats: java.util.IList<string>): java.util.ResourceBundle.Control;
				/**
				 * Returns a control according to formats whose fallback locale is null.
				 */
				public static getNoFallbackControl(formats: java.util.IList<string>): java.util.ResourceBundle.Control;
				/**
				 * Returns a list of candidate locales according to baseName in locale.
				 */
				public getCandidateLocales(baseName: string, locale: java.util.Locale): java.util.IList<java.util.Locale>;
				/**
				 * Returns a list of strings of formats according to baseName.
				 */
				public getFormats(baseName: string): java.util.IList<string>;
				/**
				 * Returns the fallback locale for baseName in locale.
				 */
				public getFallbackLocale(baseName: string, locale: java.util.Locale): java.util.Locale;
				/**
				 * Returns a new ResourceBundle.
				 * @param baseName 
				 * @param locale 
				 * @param format 
				 * @param loader 
				 * @param reload 
				 */
				public newBundle(baseName: string, locale: java.util.Locale, format: string, loader: java.lang.ClassLoader, reload: boolean): java.util.ResourceBundle;
				/**
				 * Returns the time to live of the ResourceBundle baseName in locale, default is TTL_NO_EXPIRATION_CONTROL.
				 */
				public getTimeToLive(baseName: string, locale: java.util.Locale): any;
				/**
				 * Returns true if the ResourceBundle needs to reload.
				 * @param baseName 
				 * @param locale 
				 * @param format 
				 * @param loader 
				 * @param bundle 
				 * @param loadTime 
				 */
				public needsReload(baseName: string, locale: java.util.Locale, format: string, loader: java.lang.ClassLoader, bundle: java.util.ResourceBundle, loadTime: number): boolean;
				/**
				 * a utility method to answer the name of a resource bundle according to the given base name and locale
				 * @param baseName 
				 * @param locale 
				 */
				public toBundleName(baseName: string, locale: java.util.Locale): string;
				/**
				 * a utility method to answer the name of a resource according to the given bundleName and suffix
				 * @param bundleName 
				 * @param suffix 
				 */
				public toResourceName(bundleName: string, suffix: string): string;
			}
			export class SimpleControl extends java.util.ResourceBundle.Control {
				constructor(format: string);
				static class: java.lang.Class<java.util.ResourceBundle.SimpleControl>;
			}
			export class NoFallbackControl extends java.util.ResourceBundle.Control {
				constructor(format: string);
				constructor(list: java.util.IList<string>);
				static class: java.lang.Class<java.util.ResourceBundle.NoFallbackControl>;
				public getFallbackLocale(baseName: string, locale: java.util.Locale): java.util.Locale;
			}
		}
		/**
		 * An IllegalFormatWidthException will be thrown if the width is a negative value other than -1 or in other cases where a width is not supported.
		 */
		export class IllegalFormatWidthException extends java.util.IllegalFormatException {
			/**
			 * Constructs a new IllegalFormatWidthException with specified width.
			 * @param w 
			 */
			constructor(w: number);
			static class: java.lang.Class<java.util.IllegalFormatWidthException>;
			/**
			 * Returns the width associated with the exception.
			 */
			public getWidth(): number;
			public getMessage(): string;
		}
		/**
		 * A parser that parses a text string of primitive types and strings with the help of regular expressions. It supports localized numbers and various radixes. The input is broken into tokens by the delimiter pattern, which is whitespace by default. The primitive types can be obtained via corresponding next* methods. If the token is not in a valid format, an InputMismatchException is thrown.
		 */
		export class Scanner extends java.lang.Object {
			/**
			 * Creates a Scanner with the specified File as input. The default charset is applied when reading the file.
			 * @param src 
			 */
			constructor(src: java.io.File);
			/**
			 * Creates a Scanner with the specified File as input. The specified charset is applied when reading the file.
			 * @param src 
			 * @param charsetName 
			 */
			constructor(src: java.io.File, charsetName: string);
			/**
			 * Creates a Scanner on the specified string.
			 * @param src 
			 */
			constructor(src: string);
			/**
			 * Creates a Scanner on the specified InputStream. The default charset is applied when decoding the input.
			 * @param src 
			 */
			constructor(src: java.io.InputStream);
			/**
			 * Creates a Scanner on the specified InputStream. The specified charset is applied when decoding the input.
			 * @param src 
			 * @param charsetName 
			 */
			constructor(src: java.io.InputStream, charsetName: string);
			/**
			 * Creates a Scanner with the specified Readable as input.
			 * @param src 
			 */
			constructor(src: java.lang.IReadable);
			/**
			 * Creates a Scanner with the specified ReadableByteChannel as input. The default charset is applied when decoding the input.
			 * @param src 
			 */
			constructor(src: java.nio.channels.IReadableByteChannel);
			/**
			 * Creates a Scanner with the specified ReadableByteChannel as input. The specified charset is applied when decoding the input.
			 * @param src 
			 * @param charsetName 
			 */
			constructor(src: java.nio.channels.IReadableByteChannel, charsetName: string);
			static class: java.lang.Class<java.util.Scanner>;
			/**
			 * Closes this Scanner and the underlying input if the input implements Closeable. If the Scanner has been closed, this method will have no effect. Any scanning operation called after calling this method will throw an IllegalStateException.
			 */
			public close(): void;
			/**
			 * Returns the delimiter Pattern in use by this Scanner.
			 */
			public delimiter(): java.util.regex.Pattern;
			/**
			 * Tries to find the pattern in the input. Delimiters are ignored. If the pattern is found before line terminator, the matched string will be returned, and the Scanner will advance to the end of the matched string. Otherwise, null will be returned and the Scanner will not advance. When waiting for input, the Scanner may be blocked. All the input may be cached if no line terminator exists in the buffer.
			 * @param pattern 
			 */
			public findInLine(pattern: java.util.regex.Pattern): string;
			/**
			 * Compiles the pattern string and tries to find a substing matching it in the input data. The delimiter will be ignored. This is the same as invoking findInLine(Pattern.compile(pattern)).
			 * @param pattern 
			 */
			public findInLine(pattern: string): string;
			/**
			 * Tries to find the pattern in the input between the current position and the specified horizon. Delimiters are ignored. If the pattern is found, the matched string will be returned, and the Scanner will advance to the end of the matched string. Otherwise, null will be returned and Scanner will not advance. When waiting for input, the Scanner may be blocked.
			 * @param pattern 
			 * @param horizon 
			 */
			public findWithinHorizon(pattern: java.util.regex.Pattern, horizon: number): string;
			/**
			 * Tries to find the pattern in the input between the current position and the specified horizon. Delimiters are ignored. This call is the same as invoking findWithinHorizon(Pattern.compile(pattern)).
			 * @param pattern 
			 * @param horizon 
			 */
			public findWithinHorizon(pattern: string, horizon: number): string;
			/**
			 * Returns whether this Scanner has one or more tokens remaining to parse. This method will block if the data is still being read.
			 */
			public hasNext(): boolean;
			/**
			 * Returns whether this Scanner has one or more tokens remaining to parse and the next token matches the given pattern. This method will block if the data is still being read.
			 * @param pattern 
			 */
			public hasNext(pattern: java.util.regex.Pattern): boolean;
			/**
			 * Returns true if this Scanner has one or more tokens remaining to parse and the next token matches a pattern compiled from the given string. This method will block if the data is still being read. This call is equivalent to hasNext(Pattern.compile(pattern)).
			 * @param pattern 
			 */
			public hasNext(pattern: string): boolean;
			/**
			 * Returns whether the next token can be translated into a valid BigDecimal.
			 */
			public hasNextBigDecimal(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid BigInteger in the default radix.
			 */
			public hasNextBigInteger(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid BigInteger in the specified radix.
			 * @param radix 
			 */
			public hasNextBigInteger(radix: number): boolean;
			/**
			 * Returns whether the next token can be translated into a valid boolean value.
			 */
			public hasNextBoolean(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid byte value in the default radix.
			 */
			public hasNextByte(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid byte value in the specified radix.
			 * @param radix 
			 */
			public hasNextByte(radix: number): boolean;
			/**
			 * Returns whether the next token translated into a valid double value.
			 */
			public hasNextDouble(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid float value.
			 */
			public hasNextFloat(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid int value in the default radix.
			 */
			public hasNextInt(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid int value in the specified radix.
			 * @param radix 
			 */
			public hasNextInt(radix: number): boolean;
			/**
			 * Returns whether there is a line terminator in the input. This method may block.
			 */
			public hasNextLine(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid long value in the default radix.
			 */
			public hasNextLong(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid long value in the specified radix.
			 * @param radix 
			 */
			public hasNextLong(radix: number): boolean;
			/**
			 * Returns whether the next token can be translated into a valid short value in the default radix.
			 */
			public hasNextShort(): boolean;
			/**
			 * Returns whether the next token can be translated into a valid short value in the specified radix.
			 * @param radix 
			 */
			public hasNextShort(radix: number): boolean;
			/**
			 * Returns the last IOException that was raised while reading from the underlying input.
			 */
			public ioException(): java.io.IOException;
			/**
			 * Return the Locale of this Scanner.
			 */
			public locale(): java.util.Locale;
			/**
			 * Returns the result of the last matching operation.
			 */
			public match(): java.util.regex.IMatchResult;
			/**
			 * Returns the next token. The token will be both prefixed and postfixed by the delimiter that is currently being used (or a string that matches the delimiter pattern). This method will block if input is being read.
			 */
			public next(): string;
			/**
			 * Returns the next token if it matches the specified pattern. The token will be both prefixed and postfixed by the delimiter that is currently being used (or a string that matches the delimiter pattern). This method will block if input is being read.
			 * @param pattern 
			 */
			public next(pattern: java.util.regex.Pattern): string;
			/**
			 * Returns the next token if it matches the specified pattern. The token will be both prefixed and postfixed by the delimiter that is currently being used (or a string that matches the delimiter pattern). This method will block if input is being read. Calling this method is equivalent to next(Pattern.compile(pattern)).
			 * @param pattern 
			 */
			public next(pattern: string): string;
			/**
			 * Returns the next token as a BigDecimal. This method will block if input is being read. If the next token can be translated into a BigDecimal the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting string is passed to BigDecimal(String) .
			 */
			public nextBigDecimal(): java.math.BigDecimal;
			/**
			 * Returns the next token as a BigInteger. This method will block if input is being read. Equivalent to nextBigInteger(DEFAULT_RADIX).
			 */
			public nextBigInteger(): java.math.BigInteger;
			/**
			 * Returns the next token as a BigInteger with the specified radix. This method will block if input is being read. If the next token can be translated into a BigInteger the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting String is passed to BigInteger#BigInteger(String, int)} with the specified radix.
			 * @param radix 
			 */
			public nextBigInteger(radix: number): java.math.BigInteger;
			/**
			 * Returns the next token as a boolean. This method will block if input is being read.
			 */
			public nextBoolean(): boolean;
			/**
			 * Returns the next token as a byte. This method will block if input is being read. Equivalent to nextByte(DEFAULT_RADIX).
			 */
			public nextByte(): number;
			/**
			 * Returns the next token as a byte with the specified radix. Will block if input is being read. If the next token can be translated into a byte the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting String is passed to Byte#parseByte(String, int)} with the specified radix.
			 * @param radix 
			 */
			public nextByte(radix: number): number;
			/**
			 * Returns the next token as a double. This method will block if input is being read. If the next token can be translated into a double the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting String is passed to Double#parseDouble(String)}. If the token matches the localized NaN or infinity strings, it is also passed to Double#parseDouble(String)}.
			 */
			public nextDouble(): any;
			/**
			 * Returns the next token as a float. This method will block if input is being read. If the next token can be translated into a float the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting String is passed to Float#parseFloat(String)}.If the token matches the localized NaN or infinity strings, it is also passed to Float#parseFloat(String)}.
			 */
			public nextFloat(): number;
			/**
			 * Returns the next token as an int. This method will block if input is being read. Equivalent to nextInt(DEFAULT_RADIX).
			 */
			public nextInt(): number;
			/**
			 * Returns the next token as an int with the specified radix. This method will block if input is being read. If the next token can be translated into an int the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting String is passed to Integer#parseInt(String, int) with the specified radix.
			 * @param radix 
			 */
			public nextInt(radix: number): number;
			/**
			 * Returns the skipped input and advances the Scanner to the beginning of the next line. The returned result will exclude any line terminator. When searching, if no line terminator is found, then a large amount of input will be cached. If no line at all can be found, a NoSuchElementException will be thrown.
			 */
			public nextLine(): string;
			/**
			 * Returns the next token as a long. This method will block if input is being read. Equivalent to nextLong(DEFAULT_RADIX).
			 */
			public nextLong(): any;
			/**
			 * Returns the next token as a long with the specified radix. This method will block if input is being read. If the next token can be translated into a long the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting String is passed to Long#parseLong(String, int)} with the specified radix.
			 * @param radix 
			 */
			public nextLong(radix: number): any;
			/**
			 * Returns the next token as a short. This method will block if input is being read. Equivalent to nextShort(DEFAULT_RADIX).
			 */
			public nextShort(): number;
			/**
			 * Returns the next token as a short with the specified radix. This method will block if input is being read. If the next token can be translated into a short the following is done: All Locale-specific prefixes, group separators, and Locale-specific suffixes are removed. Then non-ASCII digits are mapped into ASCII digits via Character#digit(char, int), and a negative sign (-) is added if the Locale-specific negative prefix or suffix was present. Finally the resulting String is passed to Short#parseShort(String, int)} with the specified radix.
			 * @param radix 
			 */
			public nextShort(radix: number): number;
			/**
			 * Return the radix of this Scanner.
			 */
			public radix(): number;
			/**
			 * Tries to use specified pattern to match input starting from the current position. The delimiter will be ignored. If a match is found, the matched input will be skipped. If an anchored match of the specified pattern succeeds, the corresponding input will also be skipped. Otherwise, a NoSuchElementException will be thrown. Patterns that can match a lot of input may cause the Scanner to read in a large amount of input.
			 * @param pattern 
			 */
			public skip(pattern: java.util.regex.Pattern): java.util.Scanner;
			/**
			 * Tries to use the specified string to construct a pattern and then uses the constructed pattern to match input starting from the current position. The delimiter will be ignored. This call is the same as invoke skip(Pattern.compile(pattern)).
			 * @param pattern 
			 */
			public skip(pattern: string): java.util.Scanner;
			/**
			 * Returns a string representation of this Scanner. The information returned may be helpful for debugging. The format of the string is unspecified.
			 */
			public toString(): string;
			/**
			 * Sets the delimiting pattern of this Scanner.
			 * @param pattern 
			 */
			public useDelimiter(pattern: java.util.regex.Pattern): java.util.Scanner;
			/**
			 * Sets the delimiting pattern of this Scanner with a pattern compiled from the supplied string value.
			 * @param pattern 
			 */
			public useDelimiter(pattern: string): java.util.Scanner;
			/**
			 * Sets the Locale of this Scanner to a specified Locale.
			 * @param l 
			 */
			public useLocale(l: java.util.Locale): java.util.Scanner;
			/**
			 * Sets the radix of this Scanner to the specified radix.
			 * @param radix 
			 */
			public useRadix(radix: number): java.util.Scanner;
			/**
			 * Remove is not a supported operation on Scanner.
			 */
			public remove(): void;
			/**
			 * Resets this scanner's delimiter, locale, and radix.
			 */
			public reset(): java.util.Scanner;
		}
		export module Scanner {
			export enum DataType {
				INT,
				FLOAT
			}
		}
		/**
		 * <strong>Note: Do not use this class since it is obsolete. Please use the Map interface for new implementations.</strong>
		 */
		export class Dictionary<K, V> extends java.lang.Object {
			/**
			 * Constructs a new instance of this class.
			 */
			constructor();
			static class: java.lang.Class<java.util.Dictionary<any, any>>;
			/**
			 * Returns an enumeration on the elements of this dictionary.
			 */
			public elements(): java.util.IEnumeration<V>;
			/**
			 * Returns the value which is associated with key.
			 * @param key 
			 */
			public get(key: any): V;
			/**
			 * Returns true if this dictionary has no key/value pairs.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an enumeration on the keys of this dictionary.
			 */
			public keys(): java.util.IEnumeration<K>;
			/**
			 * Associate key with value in this dictionary. If key exists in the dictionary before this call, the old value in the dictionary is replaced by value.
			 * @param key 
			 * @param value 
			 */
			public put(key: K, value: V): V;
			/**
			 * Removes the key/value pair with the specified key from this dictionary.
			 * @param key 
			 */
			public remove(key: any): V;
			/**
			 * Returns the number of key/value pairs in this dictionary.
			 */
			public size(): number;
		}
		/**
		 * A SortedSet extended with navigation methods reporting closest matches for given search targets. Methods lower, floor, ceiling, and higher return elements respectively less than, less than or equal, greater than or equal, and greater than a given element, returning null if there is no such element. A NavigableSet may be accessed and traversed in either ascending or descending order. The descendingSet method returns a view of the set with the senses of all relational and directional methods inverted. The performance of ascending operations and views is likely to be faster than that of descending ones. This interface additionally defines methods pollFirst and pollLast that return and remove the lowest and highest element, if one exists, else returning null. Methods subSet, headSet, and tailSet differ from the like-named SortedSet methods in accepting additional arguments describing whether lower and upper bounds are inclusive versus exclusive. Subsets of any NavigableSet must implement the NavigableSet interface.
		 */
		export class NavigableSet<E> implements java.util.INavigableSet<E> {
			constructor(implementation: java.util.INavigableSet<E>);
			/**
			 * Returns the greatest element in this set strictly less than the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			public lower(e: E): E;
			/**
			 * Returns the greatest element in this set less than or equal to the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			public floor(e: E): E;
			/**
			 * Returns the least element in this set greater than or equal to the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			public ceiling(e: E): E;
			/**
			 * Returns the least element in this set strictly greater than the given element, or null if there is no such element.
			 * @param e the value to match
			 */
			public higher(e: E): E;
			/**
			 * Retrieves and removes the first (lowest) element, or returns null if this set is empty.
			 */
			public pollFirst(): E;
			/**
			 * Retrieves and removes the last (highest) element, or returns null if this set is empty.
			 */
			public pollLast(): E;
			/**
			 * Returns an iterator over the elements in this set, in ascending order.
			 */
			public iterator(): java.util.IIterator<E>;
			/**
			 * Returns a reverse order view of the elements contained in this set. The descending set is backed by this set, so changes to the set are reflected in the descending set, and vice-versa. If either set is modified while an iteration over either set is in progress (except through the iterator's own remove operation), the results of the iteration are undefined.
			 */
			public descendingSet(): java.util.INavigableSet<E>;
			/**
			 * Returns an iterator over the elements in this set, in descending order. Equivalent in effect to descendingSet().iterator().
			 */
			public descendingIterator(): java.util.IIterator<E>;
			/**
			 * Returns a view of the portion of this set whose elements range from fromElement to toElement. If fromElement and toElement are equal, the returned set is empty unless fromExclusive and toExclusive are both true. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.
			 * @param fromElement low endpoint of the returned set
			 * @param fromInclusive {@code true} if the low endpoint
			 * @param toElement high endpoint of the returned set
			 * @param toInclusive {@code true} if the high endpoint
			 */
			public subSet(fromElement: E, fromInclusive: boolean, toElement: E, toInclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * Returns a view of the portion of this set whose elements are less than (or equal to, if inclusive is true) toElement. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.
			 * @param toElement high endpoint of the returned set
			 * @param inclusive {@code true} if the high endpoint
			 */
			public headSet(toElement: E, inclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * Returns a view of the portion of this set whose elements are greater than (or equal to, if inclusive is true) fromElement. The returned set is backed by this set, so changes in the returned set are reflected in this set, and vice-versa. The returned set supports all optional set operations that this set supports.
			 * @param fromElement low endpoint of the returned set
			 * @param inclusive {@code true} if the low endpoint
			 */
			public tailSet(fromElement: E, inclusive: boolean): java.util.INavigableSet<E>;
			/**
			 * 
			 */
			public subSet(fromElement: E, toElement: E): java.util.ISortedSet<E>;
			/**
			 * 
			 */
			public headSet(toElement: E): java.util.ISortedSet<E>;
			/**
			 * 
			 */
			public tailSet(fromElement: E): java.util.ISortedSet<E>;
		}
		/**
		 * The unchecked exception will be thrown out if there are duplicate flags given out in the format specifier.
		 */
		export class DuplicateFormatFlagsException extends java.util.IllegalFormatException {
			/**
			 * Constructs a new DuplicateFormatFlagsException with the flags containing duplicates.
			 * @param f 
			 */
			constructor(f: string);
			static class: java.lang.Class<java.util.DuplicateFormatFlagsException>;
			/**
			 * Returns the format flags that contain a duplicate flag.
			 */
			public getFlags(): string;
			public getMessage(): string;
		}
		/**
		 * FormattableFlags are used as a parameter to Formattable#formatTo(Formatter, int, int, int) and change the output format in Formattables. The validation and interpretation of the flags must be done by the implementations.
		 */
		export class FormattableFlags extends java.lang.Object {
			/**
			 * Denotes the output is to be left-justified. In order to fill the minimum width requirement, spaces(' ') will be appended at the end of the specified output element. If no such flag is set, the output is right-justified.
			 */
			static LEFT_JUSTIFY: number;
			/**
			 * Denotes the output is to be converted to upper case in the way the locale parameter of Formatter.formatTo() requires. The output has the same effect as String.toUpperCase(java.util.Locale).
			 */
			static UPPERCASE: number;
			/**
			 * Denotes the output is to be formatted in an alternate form. The definition of the alternate form is determined by the Formattable.
			 */
			static ALTERNATE: number;
			static class: java.lang.Class<java.util.FormattableFlags>;
		}
		/**
		 * A SortedMap extended with navigation methods returning the closest matches for given search targets. Methods lowerEntry, floorEntry, ceilingEntry, and higherEntry return Map.Entry objects associated with keys respectively less than, less than or equal, greater than or equal, and greater than a given key, returning null if there is no such key. Similarly, methods lowerKey, floorKey, ceilingKey, and higherKey return only the associated keys. All of these methods are designed for locating, not traversing entries.
		 */
		export class NavigableMap<K, V> implements java.util.INavigableMap<K, V> {
			constructor(implementation: java.util.INavigableMap<K, V>);
			/**
			 * Returns a key-value mapping associated with the greatest key strictly less than the given key, or null if there is no such key.
			 * @param key the key
			 */
			public lowerEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the greatest key strictly less than the given key, or null if there is no such key.
			 * @param key the key
			 */
			public lowerKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the greatest key less than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			public floorEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the greatest key less than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			public floorKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the least key greater than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			public ceilingEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the least key greater than or equal to the given key, or null if there is no such key.
			 * @param key the key
			 */
			public ceilingKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the least key strictly greater than the given key, or null if there is no such key.
			 * @param key the key
			 */
			public higherEntry(key: K): java.util.Map.IEntry<K, V>;
			/**
			 * Returns the least key strictly greater than the given key, or null if there is no such key.
			 * @param key the key
			 */
			public higherKey(key: K): K;
			/**
			 * Returns a key-value mapping associated with the least key in this map, or null if the map is empty.
			 */
			public firstEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Returns a key-value mapping associated with the greatest key in this map, or null if the map is empty.
			 */
			public lastEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Removes and returns a key-value mapping associated with the least key in this map, or null if the map is empty.
			 */
			public pollFirstEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Removes and returns a key-value mapping associated with the greatest key in this map, or null if the map is empty.
			 */
			public pollLastEntry(): java.util.Map.IEntry<K, V>;
			/**
			 * Returns a reverse order view of the mappings contained in this map. The descending map is backed by this map, so changes to the map are reflected in the descending map, and vice-versa. If either map is modified while an iteration over a collection view of either map is in progress (except through the iterator's own remove operation), the results of the iteration are undefined.
			 */
			public descendingMap(): java.util.INavigableMap<K, V>;
			/**
			 * Returns a NavigableSet view of the keys contained in this map. The set's iterator returns the keys in ascending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
			 */
			public navigableKeySet(): java.util.INavigableSet<K>;
			/**
			 * Returns a reverse order NavigableSet view of the keys contained in this map. The set's iterator returns the keys in descending order. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation), the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.
			 */
			public descendingKeySet(): java.util.INavigableSet<K>;
			/**
			 * Returns a view of the portion of this map whose keys range from fromKey to toKey. If fromKey and toKey are equal, the returned map is empty unless fromExclusive and toExclusive are both true. The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa. The returned map supports all optional map operations that this map supports.
			 * @param fromKey low endpoint of the keys in the returned map
			 * @param fromInclusive {@code true} if the low endpoint
			 * @param toKey high endpoint of the keys in the returned map
			 * @param toInclusive {@code true} if the high endpoint
			 */
			public subMap(fromKey: K, fromInclusive: boolean, toKey: K, toInclusive: boolean): java.util.INavigableMap<K, V>;
			/**
			 * Returns a view of the portion of this map whose keys are less than (or equal to, if inclusive is true) toKey. The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa. The returned map supports all optional map operations that this map supports.
			 * @param toKey high endpoint of the keys in the returned map
			 * @param inclusive {@code true} if the high endpoint
			 */
			public headMap(toKey: K, inclusive: boolean): java.util.INavigableMap<K, V>;
			/**
			 * Returns a view of the portion of this map whose keys are greater than (or equal to, if inclusive is true) fromKey. The returned map is backed by this map, so changes in the returned map are reflected in this map, and vice-versa. The returned map supports all optional map operations that this map supports.
			 * @param fromKey low endpoint of the keys in the returned map
			 * @param inclusive {@code true} if the low endpoint
			 */
			public tailMap(fromKey: K, inclusive: boolean): java.util.INavigableMap<K, V>;
			/**
			 * 
			 */
			public subMap(fromKey: K, toKey: K): java.util.ISortedMap<K, V>;
			/**
			 * 
			 */
			public headMap(toKey: K): java.util.ISortedMap<K, V>;
			/**
			 * 
			 */
			public tailMap(fromKey: K): java.util.ISortedMap<K, V>;
		}
		/**
		 * Formats arguments according to a format string (like printf in C).
		 */
		export class Formatter extends java.lang.Object implements java.io.ICloseable, java.io.IFlushable {
			/**
			 * Constructs a Formatter.
			 */
			constructor();
			/**
			 * Constructs a Formatter whose output will be written to the specified Appendable.
			 * @param a 
			 */
			constructor(a: any);
			/**
			 * Constructs a Formatter with the specified Locale.
			 * @param l 
			 */
			constructor(l: java.util.Locale);
			/**
			 * Constructs a Formatter with the specified Locale and whose output will be written to the specified Appendable.
			 * @param a 
			 * @param l 
			 */
			constructor(a: any, l: java.util.Locale);
			/**
			 * Constructs a Formatter whose output is written to the specified file.
			 * @param fileName 
			 */
			constructor(fileName: string);
			/**
			 * Constructs a Formatter whose output is written to the specified file.
			 * @param fileName 
			 * @param csn 
			 */
			constructor(fileName: string, csn: string);
			/**
			 * Constructs a Formatter with the given Locale and charset, and whose output is written to the specified file.
			 * @param fileName 
			 * @param csn 
			 * @param l 
			 */
			constructor(fileName: string, csn: string, l: java.util.Locale);
			/**
			 * Constructs a Formatter whose output is written to the specified File.
			 * @param file 
			 */
			constructor(file: java.io.File);
			/**
			 * Constructs a Formatter with the given charset, and whose output is written to the specified File.
			 * @param file 
			 * @param csn 
			 */
			constructor(file: java.io.File, csn: string);
			/**
			 * Constructs a Formatter with the given Locale and charset, and whose output is written to the specified File.
			 * @param file 
			 * @param csn 
			 * @param l 
			 */
			constructor(file: java.io.File, csn: string, l: java.util.Locale);
			/**
			 * Constructs a Formatter whose output is written to the specified OutputStream.
			 * @param os 
			 */
			constructor(os: java.io.OutputStream);
			/**
			 * Constructs a Formatter with the given charset, and whose output is written to the specified OutputStream.
			 * @param os 
			 * @param csn 
			 */
			constructor(os: java.io.OutputStream, csn: string);
			/**
			 * Constructs a Formatter with the given Locale and charset, and whose output is written to the specified OutputStream.
			 * @param os 
			 * @param csn 
			 * @param l 
			 */
			constructor(os: java.io.OutputStream, csn: string, l: java.util.Locale);
			/**
			 * Constructs a Formatter whose output is written to the specified PrintStream.
			 * @param ps 
			 */
			constructor(ps: java.io.PrintStream);
			static class: java.lang.Class<java.util.Formatter>;
			/**
			 * Returns the Locale of the Formatter.
			 */
			public locale(): java.util.Locale;
			/**
			 * Returns the output destination of the Formatter.
			 */
			public out(): any;
			/**
			 * Returns the content by calling the toString() method of the output destination.
			 */
			public toString(): string;
			/**
			 * Flushes the Formatter. If the output destination is Flushable, then the method flush() will be called on that destination.
			 */
			public flush(): void;
			/**
			 * Closes the Formatter. If the output destination is Closeable, then the method close() will be called on that destination.
			 */
			public close(): void;
			/**
			 * Returns the last IOException thrown by the Formatter's output destination. If the append() method of the destination does not throw IOExceptions, the ioException() method will always return null.
			 */
			public ioException(): java.io.IOException;
			/**
			 * Writes a formatted string to the output destination of the Formatter.
			 * @param format 
			 * @param args 
			 */
			public format(format: string, args: native.Array<any>): java.util.Formatter;
			/**
			 * Writes a formatted string to the output destination of the Formatter.
			 * @param l 
			 * @param format 
			 * @param args 
			 */
			public format(l: java.util.Locale, format: string, args: native.Array<any>): java.util.Formatter;
		}
		export module Formatter {
			export class CachedDecimalFormat extends java.lang.Object {
				constructor();
				currentPattern: string;
				static class: java.lang.Class<java.util.Formatter.CachedDecimalFormat>;
			}
			export class FormatSpecifierParser extends java.lang.Object {
				static class: java.lang.Class<java.util.Formatter.FormatSpecifierParser>;
				/**
				 * Returns a FormatToken representing the format specifier starting at 'offset'.
				 * @param offset the first character after the '%'
				 */
				parseFormatToken(offset: number): java.util.Formatter.FormatToken;
				/**
				 * Returns a string corresponding to the last format specifier that was parsed. Used to construct error messages.
				 */
				getFormatSpecifierText(): string;
			}
			/**
			 * The enumeration giving the available styles for formatting very large decimal numbers.
			 */
			export enum BigDecimalLayoutForm {
				SCIENTIFIC,
				DECIMAL_FLOAT
			}
			export class FormatToken extends java.lang.Object {
				static class: java.lang.Class<java.util.Formatter.FormatToken>;
				isDefault(): boolean;
				isPrecisionSet(): boolean;
				getArgIndex(): number;
				setArgIndex(index: number): void;
				getWidth(): number;
				setWidth(width: number): void;
				getPrecision(): number;
				setPrecision(precise: number): void;
				getStrFlags(): string;
				setFlag(ch: number): boolean;
				getConversionType(): string;
				setConversionType(c: string): void;
				getDateSuffix(): string;
				setDateSuffix(c: string): void;
				requireArgument(): boolean;
				checkFlags(arg: any): void;
				public unknownFormatConversionException(): java.util.UnknownFormatConversionException;
			}
		}
		/**
		 * Thrown when a service provider can't be loaded by ServiceLoader. 1.6
		 */
		export class ServiceConfigurationError extends java.lang.Error {
			/**
			 * Constructs a new error with the given detail message.
			 * @param message the detail message, or null
			 */
			constructor(message: string);
			/**
			 * Constructs a new error with the given detail message and cause.
			 * @param message the detail message, or null
			 * @param cause the cause, null
			 */
			constructor(message: string, cause: java.lang.Throwable);
			static class: java.lang.Class<java.util.ServiceConfigurationError>;
		}
		/**
		 * A Properties object is a Hashtable where the keys and values must be Strings. Each property can have a default Properties list which specifies the default values to be used when a given key is not found in this Properties instance.
		 */
		export class Properties extends java.util.Hashtable<any, any> {
			/**
			 * Constructs a new Properties object.
			 */
			constructor();
			/**
			 * Constructs a new Properties object using the specified default Properties.
			 * @param properties 
			 */
			constructor(properties: java.util.Properties);
			static class: java.lang.Class<java.util.Properties>;
			/**
			 * Searches for the property with the specified name. If the property is not found, the default Properties are checked. If the property is not found in the default Properties, null is returned.
			 * @param name 
			 */
			public getProperty(name: string): string;
			/**
			 * Searches for the property with the specified name. If the property is not found, it looks in the default Properties. If the property is not found in the default Properties, it returns the specified default.
			 * @param name 
			 * @param defaultValue 
			 */
			public getProperty(name: string, defaultValue: string): string;
			/**
			 * Lists the mappings in this Properties to out in a human-readable form. Note that values are truncated to 37 characters, so this method is rarely useful.
			 */
			public list(out: java.io.PrintStream): void;
			/**
			 * Lists the mappings in this Properties to out in a human-readable form. Note that values are truncated to 37 characters, so this method is rarely useful.
			 */
			public list(out: java.io.PrintWriter): void;
			/**
			 * Loads properties from the specified InputStream, assumed to be ISO-8859-1. See "<a href="#character_encoding">Character Encoding</a>".
			 * @param input in the {@code InputStream}
			 */
			public load(input: java.io.InputStream): void;
			/**
			 * Loads properties from the specified Reader. The properties file is interpreted according to the following rules: <ul> <li>Empty lines are ignored.</li> <li>Lines starting with either a "#" or a "!" are comment lines and are ignored.</li> <li>A backslash at the end of the line escapes the following newline character ("\r", "\n", "\r\n"). If there's whitespace after the backslash it will just escape that whitespace instead of concatenating the lines. This does not apply to comment lines.</li> <li>A property line consists of the key, the space between the key and the value, and the value. The key goes up to the first whitespace, "=" or ":" that is not escaped. The space between the key and the value contains either one whitespace, one "=" or one ":" and any amount of additional whitespace before and after that character. The value starts with the first character after the space between the key and the value.</li> <li>Following escape sequences are recognized: "\ ", "\\", "\r", "\n", "\!", "\#", "\t", "\b", "\f", and "&#92;uXXXX" (unicode character).</li> </ul>
			 * @param input in the {@code Reader}
			 */
			public load(input: java.io.Reader): void;
			/**
			 * Returns all of the property names (keys) in this Properties object.
			 */
			public propertyNames(): java.util.IEnumeration<any>;
			/**
			 * Returns those property names (keys) in this Properties object for which both key and value are strings.
			 */
			public stringPropertyNames(): java.util.ISet<string>;
			/**
			 * Saves the mappings in this Properties to the specified OutputStream, putting the specified comment at the beginning. The output from this method is suitable for being read by the #load(InputStream) method.
			 * @param out the {@code OutputStream} to write to.
			 * @param comment the comment to add at the beginning.
			 */
			public save(out: java.io.OutputStream, comment: string): void;
			/**
			 * Maps the specified key to the specified value. If the key already exists, the old value is replaced. The key and value cannot be null.
			 * @param name 
			 * @param value 
			 */
			public setProperty(name: string, value: string): any;
			/**
			 * Stores properties to the specified OutputStream, using ISO-8859-1. See "<a href="#character_encoding">Character Encoding</a>".
			 * @param out the {@code OutputStream}
			 * @param comment an optional comment to be written, or null
			 */
			public store(out: java.io.OutputStream, comment: string): void;
			/**
			 * Stores the mappings in this Properties object to out, putting the specified comment at the beginning.
			 * @param writer the {@code Writer}
			 * @param comment an optional comment to be written, or null
			 */
			public store(writer: java.io.Writer, comment: string): void;
			/**
			 * Loads the properties from an InputStream containing the properties in XML form. The XML document must begin with (and conform to) following DOCTYPE:
			 * @param input in the InputStream containing the XML document.
			 */
			public loadFromXML(input: java.io.InputStream): void;
			/**
			 * Writes all properties stored in this instance into the OutputStream in XML representation. The DOCTYPE is
			 * @param os the {@code OutputStream} to write to.
			 * @param comment the comment to add. If null, no comment is added.
			 */
			public storeToXML(os: java.io.OutputStream, comment: string): void;
			/**
			 * Writes all properties stored in this instance into the OutputStream in XML representation. The DOCTYPE is
			 * @param os the {@code OutputStream} to write to.
			 * @param comment the comment to add. If null, no comment is added.
			 * @param encoding the code identifying the encoding that should be used to
			 */
			public storeToXML(os: java.io.OutputStream, comment: string, encoding: string): void;
		}
		/**
		 * A legacy iteration interface.
		 */
		interface IEnumeration<E> {
			/**
			 * Returns whether this Enumeration has more elements.
			 */
			hasMoreElements(): boolean;
			/**
			 * Returns the next element in this Enumeration.
			 */
			nextElement(): E;
		}
		/**
		 * The TimerTask class represents a task to run at a specified time. The task may be run once or repeatedly.
		 */
		export class TimerTask extends java.lang.Object implements java.lang.IRunnable {
			static class: java.lang.Class<java.util.TimerTask>;
			getWhen(): any;
			setScheduledTime(time: number): void;
			isScheduled(): boolean;
			/**
			 * Cancels the TimerTask and removes it from the Timer's queue. Generally, it returns false if the call did not prevent a TimerTask from running at least once. Subsequent calls have no effect.
			 */
			public cancel(): boolean;
			/**
			 * Returns the scheduled execution time. If the task execution is in progress it returns the execution time of the ongoing task. Tasks which have not yet run return an undefined value.
			 */
			public scheduledExecutionTime(): any;
			/**
			 * The task to run should be specified in the implementation of the run() method.
			 */
			public run(): void;
		}
		/**
		 * An InvalidPropertiesFormatException is thrown if loading the XML document defining the properties does not follow the Properties specification.
		 */
		export class InvalidPropertiesFormatException extends java.io.IOException {
			/**
			 * Constructs a new InvalidPropertiesFormatException with the current stack trace and message filled in.
			 * @param m 
			 */
			constructor(m: string);
			/**
			 * Constructs a new InvalidPropertiesFormatException with the cause for the Exception.
			 * @param c 
			 */
			constructor(c: java.lang.Throwable);
			static class: java.lang.Class<java.util.InvalidPropertiesFormatException>;
		}
		/**
		 * An iterator over a sequence of objects, such as a collection.
		 */
		export class Iterator<E> implements java.util.IIterator<E> {
			constructor(implementation: java.util.IIterator<E>);
			/**
			 * Returns true if there is at least one more element, false otherwise. #next
			 */
			public hasNext(): boolean;
			/**
			 * Returns the next object and advances the iterator.
			 */
			public next(): E;
			/**
			 * Removes the last object returned by next from the collection. This method can only be called once between each call to next.
			 */
			public remove(): void;
		}
		/**
		 * An IllegalFormatFlagsException will be thrown if the combination of the format flags is illegal.
		 */
		export class IllegalFormatFlagsException extends java.util.IllegalFormatException implements java.io.ISerializable {
			/**
			 * Constructs a new IllegalFormatFlagsException with the specified flags.
			 * @param flags 
			 */
			constructor(flags: string);
			static class: java.lang.Class<java.util.IllegalFormatFlagsException>;
			/**
			 * Returns the flags that are illegal.
			 */
			public getFlags(): string;
			public getMessage(): string;
		}
		/**
		 * A FormatFlagsConversionMismatchException will be thrown if a conversion and the flags are incompatible.
		 */
		export class FormatFlagsConversionMismatchException extends java.util.IllegalFormatException implements java.io.ISerializable {
			/**
			 * Constructs a new FormatFlagsConversionMismatchException with the flags and conversion specified.
			 * @param f 
			 * @param c 
			 */
			constructor(f: string, c: string);
			static class: java.lang.Class<java.util.FormatFlagsConversionMismatchException>;
			/**
			 * Returns the incompatible format flag.
			 */
			public getFlags(): string;
			/**
			 * Returns the incompatible conversion.
			 */
			public getConversion(): string;
			public getMessage(): string;
		}
		/**
		 * SortedSet is a Set which iterates over its elements in a sorted order. The order is determined either by the elements natural ordering, or by a Comparator which is passed into a concrete implementation at construction time. All elements in this set must be mutually comparable. The ordering in this set must be consistent with equals of its elements.
		 */
		interface ISortedSet<E> {
			/**
			 * Returns the comparator used to compare elements in this SortedSet.
			 */
			comparator(): java.util.IComparator<any>;
			/**
			 * Returns the first element in this SortedSet. The first element is the lowest element.
			 */
			first(): E;
			/**
			 * Returns a SortedSet of the specified portion of this SortedSet which contains elements less than the end element. The returned SortedSet is backed by this SortedSet so changes to one set are reflected by the other.
			 * @param end 
			 */
			headSet(end: E): java.util.ISortedSet<E>;
			/**
			 * Returns the last element in this SortedSet. The last element is the highest element.
			 */
			last(): E;
			/**
			 * Returns a SortedSet of the specified portion of this SortedSet which contains elements greater or equal to the start element but less than the end element. The returned SortedSet is backed by this SortedMap so changes to one set are reflected by the other.
			 * @param start 
			 * @param end 
			 */
			subSet(start: E, end: E): java.util.ISortedSet<E>;
			/**
			 * Returns a SortedSet of the specified portion of this SortedSet which contains elements greater or equal to the start element. The returned SortedSet is backed by this SortedSet so changes to one set are reflected by the other.
			 * @param start 
			 */
			tailSet(start: E): java.util.ISortedSet<E>;
		}
		/**
		 * An EnumSet is a specialized Set to be used with enums as keys.
		 */
		export class EnumSet<E> extends java.util.AbstractSet<E> implements java.lang.ICloneable, java.io.ISerializable {
			static class: java.lang.Class<java.util.EnumSet<any>>;
			/**
			 * Creates an empty enum set. The permitted elements are of type Class&lt;E&gt;.
			 * @param elementType 
			 */
			public static noneOf<E>(elementType: java.lang.Class<E>): java.util.EnumSet<E>;
			/**
			 * Creates an enum set filled with all the enum elements of the specified elementType.
			 * @param elementType 
			 */
			public static allOf<E>(elementType: java.lang.Class<E>): java.util.EnumSet<E>;
			/**
			 * Creates an enum set. All the contained elements are of type Class&lt;E&gt;, and the contained elements are the same as those contained in s.
			 * @param s 
			 */
			public static copyOf<E>(s: java.util.EnumSet<E>): java.util.EnumSet<E>;
			/**
			 * Creates an enum set. The contained elements are the same as those contained in collection c. If c is an enum set, invoking this method is the same as invoking #copyOf(EnumSet).
			 * @param c 
			 */
			public static copyOf<E>(c: java.util.ICollection<E>): java.util.EnumSet<E>;
			/**
			 * Creates an enum set. All the contained elements complement those from the specified enum set.
			 * @param s 
			 */
			public static complementOf<E>(s: java.util.EnumSet<E>): java.util.EnumSet<E>;
			complement(): void;
			/**
			 * Creates a new enum set, containing only the specified element. There are six overloadings of the method. They accept from one to five elements respectively. The sixth one receives an arbitrary number of elements, and runs slower than those that only receive a fixed number of elements.
			 * @param e 
			 */
			public static of<E>(e: E): java.util.EnumSet<E>;
			/**
			 * Creates a new enum set, containing only the specified elements. There are six overloadings of the method. They accept from one to five elements respectively. The sixth one receives an arbitrary number of elements, and runs slower than those that only receive a fixed number of elements.
			 * @param e1 
			 * @param e2 
			 */
			public static of<E>(e1: E, e2: E): java.util.EnumSet<E>;
			/**
			 * Creates a new enum set, containing only the specified elements. There are six overloadings of the method. They accept from one to five elements respectively. The sixth one receives an arbitrary number of elements, and runs slower than those that only receive a fixed number of elements.
			 * @param e1 
			 * @param e2 
			 * @param e3 
			 */
			public static of<E>(e1: E, e2: E, e3: E): java.util.EnumSet<E>;
			/**
			 * Creates a new enum set, containing only the specified elements. There are six overloadings of the method. They accept from one to five elements respectively. The sixth one receives an arbitrary number of elements, and runs slower than those that only receive a fixed number of elements.
			 * @param e1 
			 * @param e2 
			 * @param e3 
			 * @param e4 
			 */
			public static of<E>(e1: E, e2: E, e3: E, e4: E): java.util.EnumSet<E>;
			/**
			 * Creates a new enum set, containing only the specified elements. There are six overloadings of the method. They accept from one to five elements respectively. The sixth one receives an arbitrary number of elements, and runs slower than those that only receive a fixed number of elements.
			 * @param e1 
			 * @param e2 
			 * @param e3 
			 * @param e4 
			 * @param e5 
			 */
			public static of<E>(e1: E, e2: E, e3: E, e4: E, e5: E): java.util.EnumSet<E>;
			/**
			 * Creates a new enum set, containing only the specified elements. It can receive an arbitrary number of elements, and runs slower than those only receiving a fixed number of elements.
			 * @param start 
			 * @param others 
			 */
			public static of<E>(start: E, others: native.Array<E>): java.util.EnumSet<E>;
			/**
			 * Creates an enum set containing all the elements within the range defined by start and end (inclusive). All the elements must be in order.
			 * @param start 
			 * @param end 
			 */
			public static range<E>(start: E, end: E): java.util.EnumSet<E>;
			setRange(start: E, end: E): void;
			/**
			 * Creates a new enum set with the same elements as those contained in this enum set.
			 */
			public clone(): java.util.EnumSet<E>;
			isValidType(cls: java.lang.Class<any>): boolean;
			writeReplace(): any;
		}
		export module EnumSet {
			export class SerializationProxy<E> extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.util.EnumSet.SerializationProxy<any>>;
			}
		}
		/**
		 * A stable, adaptive, iterative mergesort that requires far fewer than n lg(n) comparisons when running on partially sorted arrays, while offering performance comparable to a traditional mergesort when run on random arrays. Like all proper mergesorts, this sort is stable and runs O(n log n) time (worst case). In the worst case, this sort requires temporary storage space for n/2 object references; in the best case, it requires only a small constant amount of space.
		 */
		export class TimSort<T> extends java.lang.Object {
			static class: java.lang.Class<java.util.TimSort<any>>;
			static sort<T>(a: native.Array<T>, c: java.util.IComparator<any>): void;
			static sort<T>(a: native.Array<T>, lo: number, hi: number, c: java.util.IComparator<any>): void;
		}
		/**
		 * A map that has its keys ordered. The sorting is according to either the natural ordering of its keys or the ordering given by a specified comparator.
		 */
		interface ISortedMap<K, V> {
			/**
			 * Returns the comparator used to compare keys in this sorted map.
			 */
			comparator(): java.util.IComparator<any>;
			/**
			 * Returns the first key in this sorted map.
			 */
			firstKey(): K;
			/**
			 * Returns a sorted map over a range of this sorted map with all keys that are less than the specified endKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.
			 * @param endKey 
			 */
			headMap(endKey: K): java.util.ISortedMap<K, V>;
			/**
			 * Returns the last key in this sorted map.
			 */
			lastKey(): K;
			/**
			 * Returns a sorted map over a range of this sorted map with all keys greater than or equal to the specified startKey and less than the specified endKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.
			 * @param startKey 
			 * @param endKey 
			 */
			subMap(startKey: K, endKey: K): java.util.ISortedMap<K, V>;
			/**
			 * Returns a sorted map over a range of this sorted map with all keys that are greater than or equal to the specified startKey. Changes to the returned sorted map are reflected in this sorted map and vice versa.
			 * @param startKey 
			 */
			tailMap(startKey: K): java.util.ISortedMap<K, V>;
		}
		/**
		 * Resizable-array implementation of the Deque interface. Array deques have no capacity restrictions; they grow as necessary to support usage. They are not thread-safe; in the absence of external synchronization, they do not support concurrent access by multiple threads. Null elements are prohibited. This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue.
		 */
		export class ArrayDeque<E> extends java.util.AbstractCollection<E> implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs an empty array deque with an initial capacity sufficient to hold 16 elements.
			 */
			constructor();
			/**
			 * Constructs an empty array deque with an initial capacity sufficient to hold the specified number of elements.
			 * @param numElements lower bound on initial capacity of the deque
			 */
			constructor(numElements: number);
			/**
			 * Constructs a deque containing the elements of the specified collection, in the order they are returned by the collection's iterator. (The first element returned by the collection's iterator becomes the first element, or <i>front</i> of the deque.)
			 * @param c the collection whose elements are to be placed into the deque
			 */
			constructor(c: java.util.ICollection<any>);
			static class: java.lang.Class<java.util.ArrayDeque<any>>;
			/**
			 * Inserts the specified element at the front of this deque.
			 * @param e the element to add
			 */
			public addFirst(e: E): void;
			/**
			 * Inserts the specified element at the end of this deque.
			 * @param e the element to add
			 */
			public addLast(e: E): void;
			/**
			 * Inserts the specified element at the front of this deque.
			 * @param e the element to add
			 */
			public offerFirst(e: E): boolean;
			/**
			 * Inserts the specified element at the end of this deque.
			 * @param e the element to add
			 */
			public offerLast(e: E): boolean;
			/**
			 *  NoSuchElementException 
			 */
			public removeFirst(): E;
			/**
			 *  NoSuchElementException 
			 */
			public removeLast(): E;
			public pollFirst(): E;
			public pollLast(): E;
			/**
			 *  NoSuchElementException 
			 */
			public getFirst(): E;
			/**
			 *  NoSuchElementException 
			 */
			public getLast(): E;
			public peekFirst(): E;
			public peekLast(): E;
			/**
			 * Removes the first occurrence of the specified element in this deque (when traversing the deque from head to tail). If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			public removeFirstOccurrence(o: any): boolean;
			/**
			 * Removes the last occurrence of the specified element in this deque (when traversing the deque from head to tail). If the deque does not contain the element, it is unchanged. More formally, removes the last element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			public removeLastOccurrence(o: any): boolean;
			/**
			 * Inserts the specified element at the end of this deque.
			 * @param e the element to add
			 */
			public add(e: E): boolean;
			/**
			 * Inserts the specified element at the end of this deque.
			 * @param e the element to add
			 */
			public offer(e: E): boolean;
			/**
			 * Retrieves and removes the head of the queue represented by this deque.
			 */
			public remove(): E;
			/**
			 * Retrieves and removes the head of the queue represented by this deque (in other words, the first element of this deque), or returns <tt>null</tt> if this deque is empty.
			 */
			public poll(): E;
			/**
			 * Retrieves, but does not remove, the head of the queue represented by this deque. This method differs from #peek peek only in that it throws an exception if this deque is empty.
			 */
			public element(): E;
			/**
			 * Retrieves, but does not remove, the head of the queue represented by this deque, or returns <tt>null</tt> if this deque is empty.
			 */
			public peek(): E;
			/**
			 * Pushes an element onto the stack represented by this deque. In other words, inserts the element at the front of this deque.
			 * @param e the element to push
			 */
			public push(e: E): void;
			/**
			 * Pops an element from the stack represented by this deque. In other words, removes and returns the first element of this deque.
			 */
			public pop(): E;
			/**
			 * Returns the number of elements in this deque.
			 */
			public size(): number;
			/**
			 * Returns <tt>true</tt> if this deque contains no elements.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns an iterator over the elements in this deque. The elements will be ordered from first (head) to last (tail). This is the same order that elements would be dequeued (via successive calls to #remove or popped (via successive calls to #pop).
			 */
			public iterator(): java.util.IIterator<E>;
			public descendingIterator(): java.util.IIterator<E>;
			/**
			 * Returns <tt>true</tt> if this deque contains the specified element. More formally, returns <tt>true</tt> if and only if this deque contains at least one element <tt>e</tt> such that <tt>o.equals(e)</tt>.
			 * @param o object to be checked for containment in this deque
			 */
			public contains(o: any): boolean;
			/**
			 * Removes a single instance of the specified element from this deque. If the deque does not contain the element, it is unchanged. More formally, removes the first element <tt>e</tt> such that <tt>o.equals(e)</tt> (if such an element exists). Returns <tt>true</tt> if this deque contained the specified element (or equivalently, if this deque changed as a result of the call).
			 * @param o element to be removed from this deque, if present
			 */
			public remove(o: any): boolean;
			/**
			 * Removes all of the elements from this deque. The deque will be empty after this call returns.
			 */
			public clear(): void;
			/**
			 * Returns an array containing all of the elements in this deque in proper sequence (from first to last element).
			 */
			public toArray(): native.Array<any>;
			/**
			 * Returns an array containing all of the elements in this deque in proper sequence (from first to last element); the runtime type of the returned array is that of the specified array. If the deque fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this deque.
			 * @param a the array into which the elements of the deque are to
			 */
			public toArray<T>(a: native.Array<T>): native.Array<T>;
			/**
			 * Returns a copy of this deque.
			 */
			public clone(): java.util.ArrayDeque<E>;
		}
		export module ArrayDeque {
			export class DescendingIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.ArrayDeque.DescendingIterator>;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
			export class DeqIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.ArrayDeque.DeqIterator>;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
		}
		/**
		 * Date represents a specific moment in time, to the millisecond.
		 */
		export class Date extends java.lang.Object implements java.io.ISerializable, java.lang.ICloneable {
			/**
			 * Initializes this Date instance to the current time.
			 */
			constructor();
			/**
			 * Constructs a new Date initialized to midnight in the default TimeZone on the specified date.
			 * @param year 
			 * @param month 
			 * @param day 
			 */
			constructor(year: number, month: number, day: number);
			/**
			 * Constructs a new Date initialized to the specified date and time in the default TimeZone.
			 * @param year 
			 * @param month 
			 * @param day 
			 * @param hour 
			 * @param minute 
			 */
			constructor(year: number, month: number, day: number, hour: number, minute: number);
			/**
			 * Constructs a new Date initialized to the specified date and time in the default TimeZone.
			 * @param year 
			 * @param month 
			 * @param day 
			 * @param hour 
			 * @param minute 
			 * @param second 
			 */
			constructor(year: number, month: number, day: number, hour: number, minute: number, second: number);
			/**
			 * Initializes this Date instance using the specified millisecond value. The value is the number of milliseconds since Jan. 1, 1970 GMT.
			 * @param milliseconds 
			 */
			constructor(milliseconds: number);
			/**
			 * Constructs a new Date initialized to the date and time parsed from the specified String.
			 * @param string 
			 */
			constructor(string: string);
			static class: java.lang.Class<java.util.Date>;
			/**
			 * Returns if this Date is after the specified Date.
			 * @param date 
			 */
			public after(date: java.util.Date): boolean;
			/**
			 * Returns if this Date is before the specified Date.
			 * @param date 
			 */
			public before(date: java.util.Date): boolean;
			/**
			 * Returns a new Date with the same millisecond value as this Date.
			 */
			public clone(): any;
			/**
			 * Compare the receiver to the specified Date to determine the relative ordering.
			 * @param date 
			 */
			public compareTo(date: java.util.Date): number;
			/**
			 * Compares the specified object to this Date and returns if they are equal. To be equal, the object must be an instance of Date and have the same millisecond value.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the gregorian calendar day of the month for this Date object.
			 */
			public getDate(): number;
			/**
			 * Returns the gregorian calendar day of the week for this Date object.
			 */
			public getDay(): number;
			/**
			 * Returns the gregorian calendar hour of the day for this Date object.
			 */
			public getHours(): number;
			/**
			 * Returns the gregorian calendar minute of the hour for this Date object.
			 */
			public getMinutes(): number;
			/**
			 * Returns the gregorian calendar month for this Date object.
			 */
			public getMonth(): number;
			/**
			 * Returns the gregorian calendar second of the minute for this Date object.
			 */
			public getSeconds(): number;
			/**
			 * Returns this Date as a millisecond value. The value is the number of milliseconds since Jan. 1, 1970, midnight GMT.
			 */
			public getTime(): any;
			/**
			 * Returns the timezone offset in minutes of the default TimeZone.
			 */
			public getTimezoneOffset(): number;
			/**
			 * Returns the gregorian calendar year since 1900 for this Date object.
			 */
			public getYear(): number;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			public hashCode(): number;
			/**
			 * Returns the millisecond value of the date and time parsed from the specified String. Many date/time formats are recognized, including IETF standard syntax, i.e. Tue, 22 Jun 1999 12:16:00 GMT-0500
			 * @param string 
			 */
			public static parse(string: string): any;
			/**
			 * Sets the gregorian calendar day of the month for this Date object.
			 * @param day 
			 */
			public setDate(day: number): void;
			/**
			 * Sets the gregorian calendar hour of the day for this Date object.
			 * @param hour 
			 */
			public setHours(hour: number): void;
			/**
			 * Sets the gregorian calendar minute of the hour for this Date object.
			 * @param minute 
			 */
			public setMinutes(minute: number): void;
			/**
			 * Sets the gregorian calendar month for this Date object.
			 * @param month 
			 */
			public setMonth(month: number): void;
			/**
			 * Sets the gregorian calendar second of the minute for this Date object.
			 * @param second 
			 */
			public setSeconds(second: number): void;
			/**
			 * Sets this Date to the specified millisecond value. The value is the number of milliseconds since Jan. 1, 1970 GMT.
			 * @param milliseconds 
			 */
			public setTime(milliseconds: number): void;
			/**
			 * Sets the gregorian calendar year since 1900 for this Date object.
			 * @param year 
			 */
			public setYear(year: number): void;
			/**
			 * Returns the string representation of this Date in GMT in the format "22 Jun 1999 13:02:00 GMT".
			 */
			public toGMTString(): string;
			/**
			 * Returns the string representation of this Date for the default Locale.
			 */
			public toLocaleString(): string;
			/**
			 * Returns a string representation of this Date. The formatting is equivalent to using a SimpleDateFormat with the format string "EEE MMM dd HH:mm:ss zzz yyyy", which looks something like "Tue Jun 22 13:07:00 PDT 1999". The current default time zone and locale are used. If you need control over the time zone or locale, use SimpleDateFormat instead.
			 */
			public toString(): string;
			/**
			 * Returns the millisecond value of the specified date and time in GMT.
			 * @param year 
			 * @param month 
			 * @param day 
			 * @param hour 
			 * @param minute 
			 * @param second 
			 */
			public static UTC(year: number, month: number, day: number, hour: number, minute: number, second: number): any;
		}
		export module prefs {
			/**
			 * This is the event class to indicate that one child of the preference node has been added or deleted.
			 */
			export class NodeChangeEvent extends java.util.EventObject implements java.io.ISerializable {
				/**
				 * Constructs a new NodeChangeEvent instance.
				 * @param p 
				 * @param c 
				 */
				constructor(p: java.util.prefs.Preferences, c: java.util.prefs.Preferences);
				static class: java.lang.Class<java.util.prefs.NodeChangeEvent>;
				/**
				 * Gets the Preferences instance that fired this event.
				 */
				public getParent(): java.util.prefs.Preferences;
				/**
				 * Gets the child Preferences node that was added or removed.
				 */
				public getChild(): java.util.prefs.Preferences;
			}
			export class NodeSet extends java.lang.Object implements org.w3c.dom.INodeList {
				constructor(nodes: java.util.IIterator<org.w3c.dom.INode>);
				static class: java.lang.Class<java.util.prefs.NodeSet>;
				public getLength(): number;
				public item(index: number): org.w3c.dom.INode;
			}
			/**
			 * This is the event class to indicate that a preference has been added, deleted or updated.
			 */
			export class PreferenceChangeEvent extends java.util.EventObject implements java.io.ISerializable {
				/**
				 * Construct a new PreferenceChangeEvent instance.
				 * @param p 
				 * @param k 
				 * @param v 
				 */
				constructor(p: java.util.prefs.Preferences, k: string, v: string);
				static class: java.lang.Class<java.util.prefs.PreferenceChangeEvent>;
				/**
				 * Gets the key of the changed preference.
				 */
				public getKey(): string;
				/**
				 * Gets the new value of the changed preference or null if the preference has been removed.
				 */
				public getNewValue(): string;
				/**
				 * Gets the Preferences instance that fired this event.
				 */
				public getNode(): java.util.prefs.Preferences;
			}
			/**
			 * This interface is used to handle preference node change events. The implementation of this interface can be installed by the Preferences instance.
			 */
			export class NodeChangeListener implements java.util.IEventListener, java.util.prefs.INodeChangeListener {
				constructor(implementation: java.util.prefs.INodeChangeListener);
				/**
				 * This method gets called whenever a child node is added to another node.
				 * @param e 
				 */
				public childAdded(e: java.util.prefs.NodeChangeEvent): void;
				/**
				 * This method gets called whenever a child node is removed from another node.
				 * @param e 
				 */
				public childRemoved(e: java.util.prefs.NodeChangeEvent): void;
			}
			/**
			 * This interface is used to handle preferences change events. The implementation of this interface can be installed by the Preferences instance.
			 */
			interface IPreferenceChangeListener extends java.util.IEventListener {
				/**
				 * This method gets invoked whenever a preference is added, deleted or updated.
				 * @param pce 
				 */
				preferenceChange(pce: java.util.prefs.PreferenceChangeEvent): void;
			}
			/**
			 * This abstract class is a partial implementation of the abstract class Preferences, which can be used to simplify Preferences provider's implementation. This class defines nine abstract SPI methods, which must be implemented by a preference provider.
			 */
			export class AbstractPreferences extends java.util.prefs.Preferences {
				static class: java.lang.Class<java.util.prefs.AbstractPreferences>;
				/**
				 * Returns an array of all cached child nodes.
				 */
				protected cachedChildren(): native.Array<java.util.prefs.AbstractPreferences>;
				/**
				 * Returns the child node with the specified name or null if it doesn't exist. Implementers can assume that the name supplied to this method will be a valid node name string (conforming to the node naming format) and will not correspond to a node that has been cached or removed.
				 * @param name 
				 */
				protected getChild(name: string): java.util.prefs.AbstractPreferences;
				/**
				 * Returns whether this node has been removed by invoking the method removeNode().
				 */
				protected isRemoved(): boolean;
				/**
				 * Flushes changes of this node to the backing store. This method should only flush this node and should not include the descendant nodes. Any implementation that wants to provide functionality to flush all nodes at once should override the method #flush() flush().
				 */
				protected flushSpi(): void;
				/**
				 * Returns the names of all of the child nodes of this node or an empty array if this node has no children. The names of cached children are not required to be returned.
				 */
				protected childrenNamesSpi(): native.Array<string>;
				/**
				 * Returns the child preference node with the given name, creating it if it does not exist. The caller of this method should ensure that the given name is valid and that this node has not been removed or cached. If the named node has just been removed, the implementation of this method must create a new one instead of reactivating the removed one.
				 * @param name 
				 */
				protected childSpi(name: string): java.util.prefs.AbstractPreferences;
				/**
				 * Puts the given key-value pair into this node. Caller of this method should ensure that both of the given values are valid and that this node has not been removed.
				 * @param name 
				 * @param value 
				 */
				protected putSpi(name: string, value: string): void;
				/**
				 * Gets the preference value mapped to the given key. The caller of this method should ensure that the given key is valid and that this node has not been removed. This method should not throw any exceptions but if it does, the caller will ignore the exception, regarding it as a null return value.
				 * @param key 
				 */
				protected getSpi(key: string): string;
				/**
				 * Returns an array of all preference keys of this node or an empty array if no preferences have been found. The caller of this method should ensure that this node has not been removed.
				 */
				protected keysSpi(): native.Array<string>;
				/**
				 * Removes this node from the preference hierarchy tree. The caller of this method should ensure that this node has no child nodes, which means the method Preferences#removeNode() Preferences.removeNode() should invoke this method multiple-times in bottom-up pattern. The removal is not required to be persisted until after it is flushed.
				 */
				protected removeNodeSpi(): void;
				/**
				 * Removes the preference with the specified key. The caller of this method should ensure that the given key is valid and that this node has not been removed.
				 * @param key 
				 */
				protected removeSpi(key: string): void;
				/**
				 * Synchronizes this node with the backing store. This method should only synchronize this node and should not include the descendant nodes. An implementation that wants to provide functionality to synchronize all nodes at once should override the method #sync() sync().
				 */
				protected syncSpi(): void;
				public absolutePath(): string;
				public childrenNames(): native.Array<string>;
				public clear(): void;
				public exportNode(ostream: java.io.OutputStream): void;
				public exportSubtree(ostream: java.io.OutputStream): void;
				public flush(): void;
				public get(key: string, deflt: string): string;
				public getBoolean(key: string, deflt: boolean): boolean;
				public getByteArray(key: string, deflt: native.Array<number>): native.Array<number>;
				public getDouble(key: string, deflt: number): any;
				public getFloat(key: string, deflt: number): number;
				public getInt(key: string, deflt: number): number;
				public getLong(key: string, deflt: number): any;
				public isUserNode(): boolean;
				public keys(): native.Array<string>;
				public name(): string;
				public node(name: string): java.util.prefs.Preferences;
				public nodeExists(name: string): boolean;
				public parent(): java.util.prefs.Preferences;
				public put(key: string, value: string): void;
				public putBoolean(key: string, value: boolean): void;
				public putByteArray(key: string, value: native.Array<number>): void;
				public putDouble(key: string, value: number): void;
				public putFloat(key: string, value: number): void;
				public putInt(key: string, value: number): void;
				public putLong(key: string, value: number): void;
				public remove(key: string): void;
				public removeNode(): void;
				public addNodeChangeListener(ncl: java.util.prefs.INodeChangeListener): void;
				public addPreferenceChangeListener(pcl: java.util.prefs.IPreferenceChangeListener): void;
				public removeNodeChangeListener(ncl: java.util.prefs.INodeChangeListener): void;
				public removePreferenceChangeListener(pcl: java.util.prefs.IPreferenceChangeListener): void;
				public sync(): void;
				public toString(): string;
			}
			export module AbstractPreferences {
				export class NodeRemoveEvent extends java.util.prefs.NodeChangeEvent {
					constructor(p: java.util.prefs.Preferences, c: java.util.prefs.Preferences);
					static class: java.lang.Class<java.util.prefs.AbstractPreferences.NodeRemoveEvent>;
				}
				export class EventDispatcher extends java.lang.Thread {
					static class: java.lang.Class<java.util.prefs.AbstractPreferences.EventDispatcher>;
					public run(): void;
				}
				export class NodeAddEvent extends java.util.prefs.NodeChangeEvent {
					constructor(p: java.util.prefs.Preferences, c: java.util.prefs.Preferences);
					static class: java.lang.Class<java.util.prefs.AbstractPreferences.NodeAddEvent>;
				}
			}
			/**
			 * The default implementation of <code>AbstractPreferences</code> for the Linux platform, using the file system as its back end.
			 */
			export class FilePreferencesImpl extends java.util.prefs.AbstractPreferences {
				static class: java.lang.Class<java.util.prefs.FilePreferencesImpl>;
				protected childrenNamesSpi(): native.Array<string>;
				protected childSpi(name: string): java.util.prefs.AbstractPreferences;
				protected flushSpi(): void;
				protected getSpi(key: string): string;
				protected keysSpi(): native.Array<string>;
				protected putSpi(name: string, value: string): void;
				protected removeNodeSpi(): void;
				protected removeSpi(key: string): void;
				protected syncSpi(): void;
			}
			/**
			 * The default implementation of <code>PreferencesFactory</code> for the Linux platform, using the file system as its back end.
			 */
			export class FilePreferencesFactoryImpl extends java.lang.Object implements java.util.prefs.IPreferencesFactory {
				constructor();
				static class: java.lang.Class<java.util.prefs.FilePreferencesFactoryImpl>;
				public userRoot(): java.util.prefs.Preferences;
				public systemRoot(): java.util.prefs.Preferences;
			}
			/**
			 * This interface is used by the Preferences class as factory class to create Preferences instances. This interface can be implemented and installed to replace the default preferences implementation.
			 */
			export class PreferencesFactory implements java.util.prefs.IPreferencesFactory {
				constructor(implementation: java.util.prefs.IPreferencesFactory);
				/**
				 * Returns the root node of the preferences hierarchy for the calling user context.
				 */
				public userRoot(): java.util.prefs.Preferences;
				/**
				 * Returns the root node of the system preferences hierarchy.
				 */
				public systemRoot(): java.util.prefs.Preferences;
			}
			/**
			 * An exception to indicate that an error was encountered while accessing the backing store.
			 */
			export class BackingStoreException extends java.lang.Exception {
				/**
				 * Constructs a new BackingStoreException instance with a detailed exception message.
				 * @param s 
				 */
				constructor(s: string);
				/**
				 * Constructs a new BackingStoreException instance with a nested Throwable.
				 * @param t 
				 */
				constructor(t: java.lang.Throwable);
				static class: java.lang.Class<java.util.prefs.BackingStoreException>;
			}
			/**
			 * This interface is used by the Preferences class as factory class to create Preferences instances. This interface can be implemented and installed to replace the default preferences implementation.
			 */
			interface IPreferencesFactory {
				/**
				 * Returns the root node of the preferences hierarchy for the calling user context.
				 */
				userRoot(): java.util.prefs.Preferences;
				/**
				 * Returns the root node of the system preferences hierarchy.
				 */
				systemRoot(): java.util.prefs.Preferences;
			}
			/**
			 * An exception to indicate that the input XML file is not well-formed or could not be validated against the appropriate document type (specified by in the Preferences).
			 */
			export class InvalidPreferencesFormatException extends java.lang.Exception {
				/**
				 * Constructs a new InvalidPreferencesFormatException instance with a detailed exception message.
				 * @param s 
				 */
				constructor(s: string);
				/**
				 * Constructs a new InvalidPreferencesFormatException instance with a detailed exception message and a nested Throwable.
				 * @param s 
				 * @param t 
				 */
				constructor(s: string, t: java.lang.Throwable);
				/**
				 * Constructs a new InvalidPreferencesFormatException instance with a nested Throwable.
				 * @param t 
				 */
				constructor(t: java.lang.Throwable);
				static class: java.lang.Class<java.util.prefs.InvalidPreferencesFormatException>;
			}
			/**
			 * This interface is used to handle preference node change events. The implementation of this interface can be installed by the Preferences instance.
			 */
			interface INodeChangeListener extends java.util.IEventListener {
				/**
				 * This method gets called whenever a child node is added to another node.
				 * @param e 
				 */
				childAdded(e: java.util.prefs.NodeChangeEvent): void;
				/**
				 * This method gets called whenever a child node is removed from another node.
				 * @param e 
				 */
				childRemoved(e: java.util.prefs.NodeChangeEvent): void;
			}
			/**
			 * This interface is used to handle preferences change events. The implementation of this interface can be installed by the Preferences instance.
			 */
			export class PreferenceChangeListener implements java.util.IEventListener, java.util.prefs.IPreferenceChangeListener {
				constructor(implementation: java.util.prefs.IPreferenceChangeListener);
				/**
				 * This method gets invoked whenever a preference is added, deleted or updated.
				 * @param pce 
				 */
				public preferenceChange(pce: java.util.prefs.PreferenceChangeEvent): void;
			}
			/**
			 * An instance of the class Preferences represents one node in a preference tree, which provides a mechanism to store and access configuration data in a hierarchical way. Two hierarchy trees are maintained, one for system preferences shared by all users and the other for user preferences specific to the user. Preferences hierarchy trees and data are stored in an implementation-dependent back-end.
			 */
			export class Preferences extends java.lang.Object {
				/**
				 * Maximum size in characters allowed for a preferences key.
				 */
				static MAX_KEY_LENGTH: number;
				/**
				 * Maximum size in characters allowed for a preferences name.
				 */
				static MAX_NAME_LENGTH: number;
				/**
				 * Maximum size in characters allowed for a preferences value.
				 */
				static MAX_VALUE_LENGTH: number;
				static class: java.lang.Class<java.util.prefs.Preferences>;
				/**
				 * Gets the absolute path string of this preference node.
				 */
				public absolutePath(): string;
				/**
				 * Returns the names of all children of this node or an empty array if this node has no children.
				 */
				public childrenNames(): native.Array<string>;
				/**
				 * Removes all preferences of this node.
				 */
				public clear(): void;
				/**
				 * Exports all of the preferences of this node to a XML document using the given output stream.
				 * @param ostream 
				 */
				public exportNode(ostream: java.io.OutputStream): void;
				/**
				 * Exports all of the preferences of this node and all its descendants to a XML document using the given output stream.
				 * @param ostream 
				 */
				public exportSubtree(ostream: java.io.OutputStream): void;
				/**
				 * Forces all pending updates to this node and its descendants to be persisted in the backing store.
				 */
				public flush(): void;
				/**
				 * Gets the String value mapped to the given key or its default value if no value is mapped or no backing store is available.
				 * @param key 
				 * @param deflt 
				 */
				public get(key: string, deflt: string): string;
				/**
				 * Gets the boolean value mapped to the given key or its default value if no value is mapped, if the backing store is unavailable, or if the value is invalid.
				 * @param key 
				 * @param deflt 
				 */
				public getBoolean(key: string, deflt: boolean): boolean;
				/**
				 * Gets the byte array value mapped to the given key or its default value if no value is mapped, if the backing store is unavailable, or if the value is an invalid string.
				 * @param key 
				 * @param deflt 
				 */
				public getByteArray(key: string, deflt: native.Array<number>): native.Array<number>;
				/**
				 * Gets the double value mapped to the given key or its default value if no value is mapped, if the backing store is unavailable, or if the value is an invalid string.
				 * @param key 
				 * @param deflt 
				 */
				public getDouble(key: string, deflt: number): any;
				/**
				 * Gets the float value mapped to the given key or its default value if no value is mapped, if the backing store is unavailable, or if the value is an invalid string.
				 * @param key 
				 * @param deflt 
				 */
				public getFloat(key: string, deflt: number): number;
				/**
				 * Gets the int value mapped to the given key or its default value if no value is mapped, if the backing store is unavailable, or if the value is an invalid string.
				 * @param key 
				 * @param deflt 
				 */
				public getInt(key: string, deflt: number): number;
				/**
				 * Gets the long value mapped to the given key or its default value if no value is mapped, if the backing store is unavailable, or if the value is an invalid string.
				 * @param key 
				 * @param deflt 
				 */
				public getLong(key: string, deflt: number): any;
				/**
				 * Imports all the preferences from an XML document using the given input stream.
				 * @param istream 
				 */
				public static importPreferences(istream: java.io.InputStream): void;
				/**
				 * Returns whether this is a user preference node.
				 */
				public isUserNode(): boolean;
				/**
				 * Returns all preference keys stored in this node or an empty array if no key was found.
				 */
				public keys(): native.Array<string>;
				/**
				 * Returns the name of this node.
				 */
				public name(): string;
				/**
				 * Returns the preference node with the given path name. The path name can be relative or absolute. The requested node and its ancestors will be created if they do not exist.
				 * @param path 
				 */
				public node(path: string): java.util.prefs.Preferences;
				/**
				 * Returns whether the preference node with the given path name exists. The path is treated as relative to this node if it doesn't start with a slash, otherwise it is treated as an absolute path.
				 * @param path 
				 */
				public nodeExists(path: string): boolean;
				/**
				 * Returns the parent preference node of this node or null if this node is the root node.
				 */
				public parent(): java.util.prefs.Preferences;
				/**
				 * Adds a new preference to this node using the given key and value or updates the value if a preference with the given key already exists.
				 * @param key 
				 * @param value 
				 */
				public put(key: string, value: string): void;
				/**
				 * Adds a new preference with a boolean value to this node using the given key and value or updates the value if a preference with the given key already exists.
				 * @param key 
				 * @param value 
				 */
				public putBoolean(key: string, value: boolean): void;
				/**
				 * Adds a new preference to this node using the given key and the string form of the given value or updates the value if a preference with the given key already exists.
				 * @param key 
				 * @param value 
				 */
				public putByteArray(key: string, value: native.Array<number>): void;
				/**
				 * Adds a new preference to this node using the given key and double value or updates the value if a preference with the given key already exists.
				 * @param key 
				 * @param value 
				 */
				public putDouble(key: string, value: number): void;
				/**
				 * Adds a new preference to this node using the given key and float value or updates the value if a preference with the given key already exists.
				 * @param key 
				 * @param value 
				 */
				public putFloat(key: string, value: number): void;
				/**
				 * Adds a new preference to this node using the given key and int value or updates the value if a preference with the given key already exists.
				 * @param key 
				 * @param value 
				 */
				public putInt(key: string, value: number): void;
				/**
				 * Adds a new preference to this node using the given key and long value or updates the value if a preference with the given key already exists.
				 * @param key 
				 * @param value 
				 */
				public putLong(key: string, value: number): void;
				/**
				 * Removes the preference mapped to the given key from this node.
				 * @param key 
				 */
				public remove(key: string): void;
				/**
				 * Removes this preference node with all its descendants. The removal won't necessarily be persisted until the method flush() is invoked.
				 */
				public removeNode(): void;
				/**
				 * Registers a NodeChangeListener instance for this node, which will handle NodeChangeEvents. NodeChangeEvents will be fired when a child node has been added to or removed from this node.
				 * @param ncl 
				 */
				public addNodeChangeListener(ncl: java.util.prefs.INodeChangeListener): void;
				/**
				 * Registers a PreferenceChangeListener instance for this node, which will handle PreferenceChangeEvents. PreferenceChangeEvents will be fired when a preference has been added to, removed from, or updated for this node.
				 * @param pcl 
				 */
				public addPreferenceChangeListener(pcl: java.util.prefs.IPreferenceChangeListener): void;
				/**
				 * Removes the given NodeChangeListener instance from this node.
				 * @param ncl 
				 */
				public removeNodeChangeListener(ncl: java.util.prefs.INodeChangeListener): void;
				/**
				 * Removes the given PreferenceChangeListener instance from this node.
				 * @param pcl 
				 */
				public removePreferenceChangeListener(pcl: java.util.prefs.IPreferenceChangeListener): void;
				/**
				 * Synchronizes the data of this preference node and its descendants with the back-end preference store. Any changes found in the back-end data should be reflected in this node and its descendants, and at the same time any local changes to this node and descendants should be persisted.
				 */
				public sync(): void;
				/**
				 * Returns the system preference node for the package of the given class. The absolute path of the returned node is one slash followed by the given class's full package name, replacing each period character ('.') with a slash. For example, the absolute path of the preference associated with the class Object would be "/java/lang". As a special case, the unnamed package is associated with a preference node "/&lt;unnamed&gt;". This method will create the node and its ancestors as needed. Any nodes created by this method won't necessarily be persisted until the method flush() is invoked.
				 * @param c 
				 */
				public static systemNodeForPackage(c: java.lang.Class<any>): java.util.prefs.Preferences;
				/**
				 * Returns the root node of the system preference hierarchy.
				 */
				public static systemRoot(): java.util.prefs.Preferences;
				/**
				 * Returns the user preference node for the package of the given class. The absolute path of the returned node is one slash followed by the given class's full package name, replacing each period character ('.') with a slash. For example, the absolute path of the preference associated with the class Object would be "/java/lang". As a special case, the unnamed package is associated with a preference node "/&lt;unnamed&gt;". This method will create the node and its ancestors as needed. Any nodes created by this method won't necessarily be persisted until the method flush() is invoked.
				 * @param c 
				 */
				public static userNodeForPackage(c: java.lang.Class<any>): java.util.prefs.Preferences;
				/**
				 * Returns the root node of the user preference hierarchy.
				 */
				public static userRoot(): java.util.prefs.Preferences;
				/**
				 * Returns a string representation of this node. The format is "User/System Preference Node: " followed by this node's absolute path.
				 */
				public toString(): string;
			}
			/**
			 * Utility class for the Preferences import/export from XML file.
			 */
			export class XMLParser extends java.lang.Object {
				static class: java.lang.Class<java.util.prefs.XMLParser>;
				/**
				 * utilities for Preferences export
				 */
				static exportPrefs(prefs: java.util.prefs.Preferences, stream: java.io.OutputStream, withSubTree: boolean): void;
				/**
				 * utilities for Preferences import
				 */
				static importPrefs(input: java.io.InputStream): void;
				/**
				 * Returns the preferences from xmlFile. Returns empty properties if any errors occur.
				 */
				static readXmlPreferences(xmlFile: java.io.File): java.util.Properties;
				/**
				 * Writes the preferences to xmlFile.
				 */
				static writeXmlPreferences(xmlFile: java.io.File, properties: java.util.Properties): void;
			}
		}
		/**
		 * EventListener is the superclass of all event listener interfaces.
		 */
		interface IEventListener {
		}
		/**
		 * Timers schedule one-shot or recurring TimerTask tasks for execution. Prefer java.util.concurrent.ScheduledThreadPoolExecutor ScheduledThreadPoolExecutor for new code.
		 */
		export class Timer extends java.lang.Object {
			/**
			 * Creates a new named Timer which may be specified to be run as a daemon thread.
			 * @param name the name of the {@code Timer}.
			 * @param isDaemon true if {@code Timer}'s thread should be a daemon thread.
			 */
			constructor(name: string, isDaemon: boolean);
			/**
			 * Creates a new named Timer which does not run as a daemon thread.
			 * @param name the name of the Timer.
			 */
			constructor(name: string);
			/**
			 * Creates a new Timer which may be specified to be run as a daemon thread.
			 * @param isDaemon {@code true} if the {@code Timer}'s thread should be a daemon thread.
			 */
			constructor(isDaemon: boolean);
			/**
			 * Creates a new non-daemon Timer.
			 */
			constructor();
			static class: java.lang.Class<java.util.Timer>;
			/**
			 * Cancels the Timer and all scheduled tasks. If there is a currently running task it is not affected. No more tasks may be scheduled on this Timer. Subsequent calls do nothing.
			 */
			public cancel(): void;
			/**
			 * Removes all canceled tasks from the task queue. If there are no other references on the tasks, then after this call they are free to be garbage collected.
			 */
			public purge(): number;
			/**
			 * Schedule a task for single execution. If when is less than the current time, it will be scheduled to be executed as soon as possible.
			 * @param task 
			 * @param when 
			 */
			public schedule(task: java.util.TimerTask, when: java.util.Date): void;
			/**
			 * Schedule a task for single execution after a specified delay.
			 * @param task 
			 * @param delay 
			 */
			public schedule(task: java.util.TimerTask, delay: number): void;
			/**
			 * Schedule a task for repeated fixed-delay execution after a specific delay.
			 * @param task 
			 * @param delay 
			 * @param period 
			 */
			public schedule(task: java.util.TimerTask, delay: number, period: number): void;
			/**
			 * Schedule a task for repeated fixed-delay execution after a specific time has been reached.
			 * @param task 
			 * @param when 
			 * @param period 
			 */
			public schedule(task: java.util.TimerTask, when: java.util.Date, period: number): void;
			/**
			 * Schedule a task for repeated fixed-rate execution after a specific delay has passed.
			 * @param task 
			 * @param delay 
			 * @param period 
			 */
			public scheduleAtFixedRate(task: java.util.TimerTask, delay: number, period: number): void;
			/**
			 * Schedule a task for repeated fixed-rate execution after a specific time has been reached.
			 * @param task 
			 * @param when 
			 * @param period 
			 */
			public scheduleAtFixedRate(task: java.util.TimerTask, when: java.util.Date, period: number): void;
		}
		export module Timer {
			export class FinalizerHelper extends java.lang.Object {
				static class: java.lang.Class<java.util.Timer.FinalizerHelper>;
				protected finalize(): void;
			}
			export class TimerImpl extends java.lang.Thread {
				static class: java.lang.Class<java.util.Timer.TimerImpl>;
				/**
				 * This method will be launched on separate thread for each Timer object.
				 */
				public run(): void;
				/**
				 * Cancels timer.
				 */
				public cancel(): void;
				public purge(): number;
			}
			export module TimerImpl {
				export class TimerHeap extends java.lang.Object {
					static class: java.lang.Class<java.util.Timer.TimerImpl.TimerHeap>;
					public minimum(): java.util.TimerTask;
					public isEmpty(): boolean;
					public insert(task: java.util.TimerTask): void;
					public delete(pos: number): void;
					public reset(): void;
					public adjustMinimum(): void;
					public deleteIfCancelled(): void;
				}
			}
		}
		/**
		 * Collection is the root of the collection hierarchy. It defines operations on data collections and the behavior that they will have in all implementations of Collections.
		 */
		interface ICollection<E> {
			/**
			 * Attempts to add object to the contents of this Collection (optional).
			 * @param object 
			 */
			add(object: E): boolean;
			/**
			 * Attempts to add all of the objects contained in Collection to the contents of this Collection (optional). If the passed Collection is changed during the process of adding elements to this Collection, the behavior is not defined.
			 * @param collection 
			 */
			addAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all elements from this Collection, leaving it empty (optional).
			 */
			clear(): void;
			/**
			 * Tests whether this Collection contains the specified object. Returns true if and only if at least one element elem in this Collection meets following requirement: (object==null ? elem==null : object.equals(elem)).
			 * @param object 
			 */
			contains(object: any): boolean;
			/**
			 * Tests whether this Collection contains all objects contained in the specified Collection. If an element elem is contained several times in the specified Collection, the method returns true even if elem is contained only once in this Collection.
			 * @param collection 
			 */
			containsAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Compares the argument to the receiver, and returns true if they represent the <em>same</em> object using a class specific comparison.
			 * @param object 
			 */
			equals(object: any): boolean;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			hashCode(): number;
			/**
			 * Returns if this Collection contains no elements.
			 */
			isEmpty(): boolean;
			/**
			 * Returns an instance of Iterator that may be used to access the objects contained by this Collection. The order in which the elements are returned by the iterator is not defined. Only if the instance of the Collection has a defined order the elements are returned in that order.
			 */
			iterator(): java.util.IIterator<E>;
			/**
			 * Removes one instance of the specified object from this Collection if one is contained (optional). The element elem that is removed complies with (object==null ? elem==null : object.equals(elem).
			 * @param object 
			 */
			remove(object: any): boolean;
			/**
			 * Removes all occurrences in this Collection of each object in the specified Collection (optional). After this method returns none of the elements in the passed Collection can be found in this Collection anymore.
			 * @param collection 
			 */
			removeAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Removes all objects from this Collection that are not also found in the Collection passed (optional). After this method returns this Collection will only contain elements that also can be found in the Collection passed to this method.
			 * @param collection 
			 */
			retainAll(collection: java.util.ICollection<any>): boolean;
			/**
			 * Returns a count of how many objects this Collection contains.
			 */
			size(): number;
			/**
			 * Returns a new array containing all elements contained in this Collection.
			 */
			toArray(): native.Array<any>;
			/**
			 * Returns an array containing all elements contained in this Collection. If the specified array is large enough to hold the elements, the specified array is used, otherwise an array of the same type is created. If the specified array is used and is larger than this Collection, the array element following the Collection elements is set to null.
			 * @param array 
			 */
			toArray<T>(array: native.Array<T>): native.Array<T>;
		}
		export module HugeEnumSet {
			export class HugeEnumSetIterator extends java.lang.Object {
				static class: java.lang.Class<java.util.HugeEnumSet.HugeEnumSetIterator>;
				/**
				 * Assigns mask and index to the next available value, cycling currentBits as necessary.
				 */
				computeNextElement(): void;
				public hasNext(): boolean;
				public next(): any;
				public remove(): void;
			}
		}
		/**
		 * Thrown when trying to retrieve an element past the end of an Enumeration or Iterator.
		 */
		export class NoSuchElementException extends java.lang.RuntimeException {
			/**
			 * Constructs a new NoSuchElementException with the current stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new NoSuchElementException with the current stack trace and message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.util.NoSuchElementException>;
		}
	}
	export module nio {
		/**
		 * IntArrayBuffer, ReadWriteIntArrayBuffer and ReadOnlyIntArrayBuffer compose the implementation of array based int buffers.
		 */
		export class ReadWriteIntArrayBuffer extends java.nio.IntArrayBuffer {
			static class: java.lang.Class<java.nio.ReadWriteIntArrayBuffer>;
			static copy(other: java.nio.IntArrayBuffer, markOfOther: number): java.nio.ReadWriteIntArrayBuffer;
			public asReadOnlyBuffer(): java.nio.IntBuffer;
			public compact(): java.nio.IntBuffer;
			public duplicate(): java.nio.IntBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.IntBuffer;
			public put(index: number, c: number): java.nio.IntBuffer;
			public put(src: native.Array<number>, srcOffset: number, intCount: number): java.nio.IntBuffer;
			public slice(): java.nio.IntBuffer;
			/**
			 * Writes ints from the given int array to the current position and increases the position by the number of ints written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.IntBuffer;
			/**
			 * Writes all the remaining ints of the src int buffer to this buffer's current position, and increases both buffers' position by the number of ints copied.
			 * @param src 
			 */
			put(src: java.nio.IntBuffer): java.nio.IntBuffer;
		}
		/**
		 * DirectByteBuffer, ReadWriteDirectByteBuffer and ReadOnlyDirectByteBuffer compose the implementation of platform memory based byte buffers.
		 */
		export class ReadWriteDirectByteBuffer extends java.nio.DirectByteBuffer {
			static class: java.lang.Class<java.nio.ReadWriteDirectByteBuffer>;
			static copy(other: java.nio.DirectByteBuffer, markOfOther: number): java.nio.ReadWriteDirectByteBuffer;
			public asReadOnlyBuffer(): java.nio.ByteBuffer;
			public compact(): java.nio.ByteBuffer;
			public duplicate(): java.nio.ByteBuffer;
			public isReadOnly(): boolean;
			public put(value: number): java.nio.ByteBuffer;
			public put(index: number, value: number): java.nio.ByteBuffer;
			public put(src: native.Array<number>, srcOffset: number, byteCount: number): java.nio.ByteBuffer;
			public putChar(value: string): java.nio.ByteBuffer;
			public putChar(index: number, value: string): java.nio.ByteBuffer;
			public putDouble(value: number): java.nio.ByteBuffer;
			public putDouble(index: number, value: number): java.nio.ByteBuffer;
			public putFloat(value: number): java.nio.ByteBuffer;
			public putFloat(index: number, value: number): java.nio.ByteBuffer;
			public putInt(value: number): java.nio.ByteBuffer;
			public putInt(index: number, value: number): java.nio.ByteBuffer;
			public putLong(value: number): java.nio.ByteBuffer;
			public putLong(index: number, value: number): java.nio.ByteBuffer;
			public putShort(value: number): java.nio.ByteBuffer;
			public putShort(index: number, value: number): java.nio.ByteBuffer;
			public slice(): java.nio.ByteBuffer;
			/**
			 * Writes bytes in the given byte array to the current position and increases the position by the number of bytes written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.ByteBuffer;
			/**
			 * Writes all the remaining bytes of the src byte buffer to this buffer's current position, and increases both buffers' position by the number of bytes copied.
			 * @param src 
			 */
			put(src: java.nio.ByteBuffer): java.nio.ByteBuffer;
		}
		/**
		 * ShortArrayBuffer, ReadWriteShortArrayBuffer and ReadOnlyShortArrayBuffer compose the implementation of array based short buffers.
		 */
		export class ReadWriteShortArrayBuffer extends java.nio.ShortArrayBuffer {
			static class: java.lang.Class<java.nio.ReadWriteShortArrayBuffer>;
			static copy(other: java.nio.ShortArrayBuffer, markOfOther: number): java.nio.ReadWriteShortArrayBuffer;
			public asReadOnlyBuffer(): java.nio.ShortBuffer;
			public compact(): java.nio.ShortBuffer;
			public duplicate(): java.nio.ShortBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.ShortBuffer;
			public put(index: number, c: number): java.nio.ShortBuffer;
			public put(src: native.Array<number>, srcOffset: number, shortCount: number): java.nio.ShortBuffer;
			public slice(): java.nio.ShortBuffer;
			/**
			 * Writes shorts from the given short array to the current position and increases the position by the number of shorts written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.ShortBuffer;
			/**
			 * Writes all the remaining shorts of the src short buffer to this buffer's current position, and increases both buffers' position by the number of shorts copied.
			 * @param src 
			 */
			put(src: java.nio.ShortBuffer): java.nio.ShortBuffer;
		}
		/**
		 * IntArrayBuffer, ReadWriteIntArrayBuffer and ReadOnlyIntArrayBuffer compose the implementation of array based int buffers.
		 */
		export class IntArrayBuffer extends java.nio.IntBuffer {
			static class: java.lang.Class<java.nio.IntArrayBuffer>;
			public get(): number;
			public get(index: number): number;
			public get(dst: native.Array<number>, dstOffset: number, intCount: number): java.nio.IntBuffer;
			public isDirect(): boolean;
			public order(): java.nio.ByteOrder;
			/**
			 * Reads ints from the current position into the specified int array and increases the position by the number of ints read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.IntBuffer;
		}
		/**
		 * Our concrete implementation of the abstract FileChannel class.
		 */
		export class FileChannelImpl extends java.nio.channels.FileChannel {
			/**
			 * Create a new file channel implementation class that wraps the given fd and operates in the specified mode.
			 */
			constructor(stream: any, fd: java.io.FileDescriptor, mode: number);
			static class: java.lang.Class<java.nio.FileChannelImpl>;
			protected implCloseChannel(): void;
			public lock(position: number, size: number, shared: boolean): java.nio.channels.FileLock;
			public tryLock(position: number, size: number, shared: boolean): java.nio.channels.FileLock;
			/**
			 * Non-API method to release a given lock on a file channel. Assumes that the lock will mark itself invalid after successful unlocking.
			 */
			public release(lock: java.nio.channels.FileLock): void;
			public force(metadata: boolean): void;
			public map(mapMode: java.nio.channels.FileChannel.MapMode, position: number, size: number): java.nio.MappedByteBuffer;
			public position(): any;
			public position(newPosition: number): java.nio.channels.FileChannel;
			public read(buffer: java.nio.ByteBuffer, position: number): number;
			public read(buffer: java.nio.ByteBuffer): number;
			public read(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
			public size(): any;
			public transferFrom(src: java.nio.channels.IReadableByteChannel, position: number, count: number): any;
			public transferTo(position: number, count: number, target: java.nio.channels.IWritableByteChannel): any;
			public truncate(size: number): java.nio.channels.FileChannel;
			public write(buffer: java.nio.ByteBuffer, position: number): number;
			public write(buffer: java.nio.ByteBuffer): number;
			public write(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
			/**
			 * @param buffers copyingIn true if we're copying data into the buffers (typically
			 * @param offset 
			 * @param length 
			 * @param copyingIn 
			 */
			static calculateTotalRemaining(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number, copyingIn: boolean): number;
			public getFD(): java.io.FileDescriptor;
			/**
			 * Obtains an exclusive lock on this file.
			 */
			lock(): java.nio.channels.FileLock;
			/**
			 * Reads bytes from this file channel and stores them in the specified array of buffers. This method attempts to read as many bytes as can be stored in the buffer array from this channel and returns the number of bytes actually read. It also increases the file position by the number of bytes read.
			 * @param buffers 
			 */
			read(buffers: native.Array<java.nio.ByteBuffer>): any;
			/**
			 * Attempts to acquire an exclusive lock on this file without blocking.
			 */
			tryLock(): java.nio.channels.FileLock;
			/**
			 * Writes bytes from all the given byte buffers to this file channel.
			 * @param buffers 
			 */
			write(buffers: native.Array<java.nio.ByteBuffer>): any;
		}
		export module FileChannelImpl {
			export class FileLockImpl extends java.nio.channels.FileLock {
				constructor(channel: java.nio.channels.FileChannel, position: number, size: number, shared: boolean);
				static class: java.lang.Class<java.nio.FileChannelImpl.FileLockImpl>;
				public isValid(): boolean;
				public release(): void;
			}
		}
		/**
		 * This class wraps a byte buffer to be a float buffer.
		 */
		export class FloatToByteBufferAdapter extends java.nio.FloatBuffer {
			static class: java.lang.Class<java.nio.FloatToByteBufferAdapter>;
			static asFloatBuffer(byteBuffer: java.nio.ByteBuffer): java.nio.FloatBuffer;
			public asReadOnlyBuffer(): java.nio.FloatBuffer;
			public compact(): java.nio.FloatBuffer;
			public duplicate(): java.nio.FloatBuffer;
			public get(): number;
			public get(index: number): number;
			public get(dst: native.Array<number>, dstOffset: number, floatCount: number): java.nio.FloatBuffer;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			public order(): java.nio.ByteOrder;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.FloatBuffer;
			public put(index: number, c: number): java.nio.FloatBuffer;
			public put(src: native.Array<number>, srcOffset: number, floatCount: number): java.nio.FloatBuffer;
			public slice(): java.nio.FloatBuffer;
			/**
			 * Reads floats from the current position into the specified float array and increases the position by the number of floats read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.FloatBuffer;
			/**
			 * Writes floats from the given float array to the current position and increases the position by the number of floats written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.FloatBuffer;
			/**
			 * Writes all the remaining floats of the src float buffer to this buffer's current position, and increases both buffers' position by the number of floats copied.
			 * @param src 
			 */
			put(src: java.nio.FloatBuffer): java.nio.FloatBuffer;
		}
		/**
		 * A buffer of floats.
		 */
		export class FloatBuffer extends java.nio.Buffer {
			static class: java.lang.Class<java.nio.FloatBuffer>;
			/**
			 * Creates a float buffer based on a newly allocated float array.
			 * @param capacity 
			 */
			public static allocate(capacity: number): java.nio.FloatBuffer;
			/**
			 * Creates a new float buffer by wrapping the given float array.
			 * @param array 
			 */
			public static wrap(array: native.Array<number>): java.nio.FloatBuffer;
			/**
			 * Creates a new float buffer by wrapping the given float array.
			 * @param array 
			 * @param start 
			 * @param floatCount 
			 */
			public static wrap(array: native.Array<number>, start: number, floatCount: number): java.nio.FloatBuffer;
			public array(): native.Array<number>;
			public arrayOffset(): number;
			/**
			 * Returns a read-only buffer that shares its content with this buffer.
			 */
			public asReadOnlyBuffer(): java.nio.FloatBuffer;
			/**
			 * Compacts this float buffer.
			 */
			public compact(): java.nio.FloatBuffer;
			/**
			 * Compare the remaining floats of this buffer to another float buffer's remaining floats.
			 * @param otherBuffer 
			 */
			public compareTo(otherBuffer: java.nio.FloatBuffer): number;
			/**
			 * Returns a duplicated buffer that shares its content with this buffer.
			 */
			public duplicate(): java.nio.FloatBuffer;
			/**
			 * Checks whether this float buffer is equal to another object. If other is not a FloatBuffer then false is returned.
			 * @param other 
			 */
			public equals(other: any): boolean;
			/**
			 * Returns the float at the current position and increases the position by 1.
			 */
			public get(): number;
			/**
			 * Reads floats from the current position into the specified float array and increases the position by the number of floats read.
			 * @param dst 
			 */
			public get(dst: native.Array<number>): java.nio.FloatBuffer;
			/**
			 * Reads floats from the current position into the specified float array, starting from the specified offset, and increases the position by the number of floats read.
			 * @param dst 
			 * @param dstOffset 
			 * @param floatCount 
			 */
			public get(dst: native.Array<number>, dstOffset: number, floatCount: number): java.nio.FloatBuffer;
			/**
			 * Returns a float at the specified index; the position is not changed.
			 * @param index 
			 */
			public get(index: number): number;
			public hasArray(): boolean;
			/**
			 * Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates whether this buffer is direct. A direct buffer will try its best to take advantage of native memory APIs and it may not stay in the Java heap, so it is not affected by garbage collection.
			 */
			public isDirect(): boolean;
			/**
			 * Returns the byte order used by this buffer when converting floats from/to bytes.
			 */
			public order(): java.nio.ByteOrder;
			/**
			 * Child class implements this method to realize array().
			 */
			protectedArray(): native.Array<number>;
			/**
			 * Child class implements this method to realize arrayOffset().
			 */
			protectedArrayOffset(): number;
			/**
			 * Child class implements this method to realize hasArray().
			 */
			protectedHasArray(): boolean;
			/**
			 * Writes the given float to the current position and increases the position by 1.
			 * @param f 
			 */
			public put(f: number): java.nio.FloatBuffer;
			/**
			 * Writes floats from the given float array to the current position and increases the position by the number of floats written.
			 * @param src 
			 */
			public put(src: native.Array<number>): java.nio.FloatBuffer;
			/**
			 * Writes floats from the given float array, starting from the specified offset, to the current position and increases the position by the number of floats written.
			 * @param src 
			 * @param srcOffset 
			 * @param floatCount 
			 */
			public put(src: native.Array<number>, srcOffset: number, floatCount: number): java.nio.FloatBuffer;
			/**
			 * Writes all the remaining floats of the src float buffer to this buffer's current position, and increases both buffers' position by the number of floats copied.
			 * @param src 
			 */
			public put(src: java.nio.FloatBuffer): java.nio.FloatBuffer;
			/**
			 * Writes a float to the specified index of this buffer; the position is not changed.
			 * @param index 
			 * @param f 
			 */
			public put(index: number, f: number): java.nio.FloatBuffer;
			/**
			 * Returns a sliced buffer that shares its content with this buffer.
			 */
			public slice(): java.nio.FloatBuffer;
		}
		/**
		 * LongArrayBuffer, ReadWriteLongArrayBuffer and ReadOnlyLongArrayBuffer compose the implementation of array based long buffers.
		 */
		export class LongArrayBuffer extends java.nio.LongBuffer {
			static class: java.lang.Class<java.nio.LongArrayBuffer>;
			public get(): any;
			public get(index: number): any;
			public get(dst: native.Array<number>, dstOffset: number, longCount: number): java.nio.LongBuffer;
			public isDirect(): boolean;
			public order(): java.nio.ByteOrder;
			/**
			 * Reads longs from the current position into the specified long array and increases the position by the number of longs read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.LongBuffer;
		}
		/**
		 * Default implementation of SelectionKey
		 */
		export class SelectionKeyImpl extends java.nio.channels.spi.AbstractSelectionKey {
			constructor(channel: java.nio.channels.spi.AbstractSelectableChannel, operations: number, attachment: any, selector: java.nio.SelectorImpl);
			static class: java.lang.Class<java.nio.SelectionKeyImpl>;
			public channel(): java.nio.channels.SelectableChannel;
			public interestOps(): number;
			interestOpsNoCheck(): number;
			public interestOps(operations: number): java.nio.channels.SelectionKey;
			public readyOps(): number;
			public selector(): java.nio.channels.Selector;
			setReadyOps(readyOps: number): void;
			/**
			 * Returns true if the channel for this key is connected. If the channel does not need connecting, this always return true.
			 */
			isConnected(): boolean;
		}
		/**
		 * This class wraps a byte buffer to be a double buffer.
		 */
		export class DoubleToByteBufferAdapter extends java.nio.DoubleBuffer {
			static class: java.lang.Class<java.nio.DoubleToByteBufferAdapter>;
			static asDoubleBuffer(byteBuffer: java.nio.ByteBuffer): java.nio.DoubleBuffer;
			public asReadOnlyBuffer(): java.nio.DoubleBuffer;
			public compact(): java.nio.DoubleBuffer;
			public duplicate(): java.nio.DoubleBuffer;
			public get(): any;
			public get(index: number): any;
			public get(dst: native.Array<number>, dstOffset: number, doubleCount: number): java.nio.DoubleBuffer;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			public order(): java.nio.ByteOrder;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.DoubleBuffer;
			public put(index: number, c: number): java.nio.DoubleBuffer;
			public put(src: native.Array<number>, srcOffset: number, doubleCount: number): java.nio.DoubleBuffer;
			public slice(): java.nio.DoubleBuffer;
			/**
			 * Reads doubles from the current position into the specified double array and increases the position by the number of doubles read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.DoubleBuffer;
			/**
			 * Writes doubles from the given double array to the current position and increases the position by the number of doubles written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.DoubleBuffer;
			/**
			 * Writes all the remaining doubles of the src double buffer to this buffer's current position, and increases both buffers' position by the number of doubles copied.
			 * @param src 
			 */
			put(src: java.nio.DoubleBuffer): java.nio.DoubleBuffer;
		}
		/**
		 * LongArrayBuffer, ReadWriteLongArrayBuffer and ReadOnlyLongArrayBuffer compose the implementation of array based long buffers.
		 */
		export class ReadOnlyLongArrayBuffer extends java.nio.LongArrayBuffer {
			static class: java.lang.Class<java.nio.ReadOnlyLongArrayBuffer>;
			static copy(other: java.nio.LongArrayBuffer, markOfOther: number): java.nio.ReadOnlyLongArrayBuffer;
			public asReadOnlyBuffer(): java.nio.LongBuffer;
			public compact(): java.nio.LongBuffer;
			public duplicate(): java.nio.LongBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.LongBuffer;
			public put(index: number, c: number): java.nio.LongBuffer;
			public put(buf: java.nio.LongBuffer): java.nio.LongBuffer;
			public put(src: native.Array<number>, srcOffset: number, longCount: number): java.nio.LongBuffer;
			public slice(): java.nio.LongBuffer;
			/**
			 * Writes longs from the given long array to the current position and increases the position by the number of longs written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.LongBuffer;
		}
		export class PipeImpl extends java.nio.channels.Pipe {
			constructor(selectorProvider: java.nio.channels.spi.SelectorProvider);
			static class: java.lang.Class<java.nio.PipeImpl>;
			public sink(): java.nio.channels.Pipe.SinkChannel;
			public source(): java.nio.channels.Pipe.SourceChannel;
		}
		export module PipeImpl {
			export class PipeSinkChannel extends java.nio.channels.Pipe.SinkChannel implements java.nio.IFileDescriptorChannel {
				static class: java.lang.Class<java.nio.PipeImpl.PipeSinkChannel>;
				protected implCloseSelectableChannel(): void;
				protected implConfigureBlocking(blocking: boolean): void;
				public write(buffer: java.nio.ByteBuffer): number;
				public write(buffers: native.Array<java.nio.ByteBuffer>): any;
				public write(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				public getFD(): java.io.FileDescriptor;
			}
			export class PipeSourceChannel extends java.nio.channels.Pipe.SourceChannel implements java.nio.IFileDescriptorChannel {
				static class: java.lang.Class<java.nio.PipeImpl.PipeSourceChannel>;
				protected implCloseSelectableChannel(): void;
				protected implConfigureBlocking(blocking: boolean): void;
				public read(buffer: java.nio.ByteBuffer): number;
				public read(buffers: native.Array<java.nio.ByteBuffer>): any;
				public read(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				public getFD(): java.io.FileDescriptor;
			}
		}
		/**
		 * CharArrayBuffer, ReadWriteCharArrayBuffer and ReadOnlyCharArrayBuffer compose the implementation of array based char buffers.
		 */
		export class ReadWriteCharArrayBuffer extends java.nio.CharArrayBuffer {
			static class: java.lang.Class<java.nio.ReadWriteCharArrayBuffer>;
			static copy(other: java.nio.CharArrayBuffer, markOfOther: number): java.nio.ReadWriteCharArrayBuffer;
			public asReadOnlyBuffer(): java.nio.CharBuffer;
			public compact(): java.nio.CharBuffer;
			public duplicate(): java.nio.CharBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<string>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: string): java.nio.CharBuffer;
			public put(index: number, c: string): java.nio.CharBuffer;
			public put(src: native.Array<string>, srcOffset: number, charCount: number): java.nio.CharBuffer;
			public slice(): java.nio.CharBuffer;
			/**
			 * Writes chars from the given char array to the current position and increases the position by the number of chars written.
			 * @param src 
			 */
			put(src: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Writes all the remaining chars of the src char buffer to this buffer's current position, and increases both buffers' position by the number of chars copied.
			 * @param src 
			 */
			put(src: java.nio.CharBuffer): java.nio.CharBuffer;
			/**
			 * Writes chars of the given string to the current position of this buffer, and increases the position by the number of chars written.
			 * @param str 
			 * @param start 
			 * @param end 
			 */
			put(str: string, start: number, end: number): java.nio.CharBuffer;
		}
		/**
		 * A <code>BufferUnderflowException</code> is thrown when elements are read from a buffer but there are not enough remaining elements in the buffer.
		 */
		export class BufferUnderflowException extends java.lang.RuntimeException {
			/**
			 * Constructs a <code>BufferUnderflowException</code>.
			 */
			constructor();
			static class: java.lang.Class<java.nio.BufferUnderflowException>;
		}
		/**
		 * A buffer of doubles.
		 */
		export class DoubleBuffer extends java.nio.Buffer {
			static class: java.lang.Class<java.nio.DoubleBuffer>;
			/**
			 * Creates a double buffer based on a newly allocated double array.
			 * @param capacity 
			 */
			public static allocate(capacity: number): java.nio.DoubleBuffer;
			/**
			 * Creates a new double buffer by wrapping the given double array.
			 * @param array 
			 */
			public static wrap(array: native.Array<number>): java.nio.DoubleBuffer;
			/**
			 * Creates a new double buffer by wrapping the given double array.
			 * @param array 
			 * @param start 
			 * @param doubleCount 
			 */
			public static wrap(array: native.Array<number>, start: number, doubleCount: number): java.nio.DoubleBuffer;
			public array(): native.Array<number>;
			public arrayOffset(): number;
			/**
			 * Returns a read-only buffer that shares its content with this buffer.
			 */
			public asReadOnlyBuffer(): java.nio.DoubleBuffer;
			/**
			 * Compacts this double buffer.
			 */
			public compact(): java.nio.DoubleBuffer;
			/**
			 * Compare the remaining doubles of this buffer to another double buffer's remaining doubles.
			 * @param otherBuffer 
			 */
			public compareTo(otherBuffer: java.nio.DoubleBuffer): number;
			/**
			 * Returns a duplicated buffer that shares its content with this buffer.
			 */
			public duplicate(): java.nio.DoubleBuffer;
			/**
			 * Checks whether this double buffer is equal to another object. If other is not a DoubleBuffer then false is returned.
			 * @param other 
			 */
			public equals(other: any): boolean;
			/**
			 * Returns the double at the current position and increases the position by 1.
			 */
			public get(): any;
			/**
			 * Reads doubles from the current position into the specified double array and increases the position by the number of doubles read.
			 * @param dst 
			 */
			public get(dst: native.Array<number>): java.nio.DoubleBuffer;
			/**
			 * Reads doubles from the current position into the specified double array, starting from the specified offset, and increases the position by the number of doubles read.
			 * @param dst 
			 * @param dstOffset 
			 * @param doubleCount 
			 */
			public get(dst: native.Array<number>, dstOffset: number, doubleCount: number): java.nio.DoubleBuffer;
			/**
			 * Returns a double at the specified index; the position is not changed.
			 * @param index 
			 */
			public get(index: number): any;
			public hasArray(): boolean;
			/**
			 * Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates whether this buffer is direct. A direct buffer will try its best to take advantage of native memory APIs and it may not stay in the Java heap, so it is not affected by garbage collection.
			 */
			public isDirect(): boolean;
			/**
			 * Returns the byte order used by this buffer when converting doubles from/to bytes.
			 */
			public order(): java.nio.ByteOrder;
			/**
			 * Child class implements this method to realize array().
			 */
			protectedArray(): native.Array<number>;
			/**
			 * Child class implements this method to realize arrayOffset().
			 */
			protectedArrayOffset(): number;
			/**
			 * Child class implements this method to realize hasArray().
			 */
			protectedHasArray(): boolean;
			/**
			 * Writes the given double to the current position and increases the position by 1.
			 * @param d 
			 */
			public put(d: number): java.nio.DoubleBuffer;
			/**
			 * Writes doubles from the given double array to the current position and increases the position by the number of doubles written.
			 * @param src 
			 */
			public put(src: native.Array<number>): java.nio.DoubleBuffer;
			/**
			 * Writes doubles from the given double array, starting from the specified offset, to the current position and increases the position by the number of doubles written.
			 * @param src 
			 * @param srcOffset 
			 * @param doubleCount 
			 */
			public put(src: native.Array<number>, srcOffset: number, doubleCount: number): java.nio.DoubleBuffer;
			/**
			 * Writes all the remaining doubles of the src double buffer to this buffer's current position, and increases both buffers' position by the number of doubles copied.
			 * @param src 
			 */
			public put(src: java.nio.DoubleBuffer): java.nio.DoubleBuffer;
			/**
			 * Write a double to the specified index of this buffer and the position is not changed.
			 * @param index 
			 * @param d 
			 */
			public put(index: number, d: number): java.nio.DoubleBuffer;
			/**
			 * Returns a sliced buffer that shares its content with this buffer.
			 */
			public slice(): java.nio.DoubleBuffer;
		}
		/**
		 * A buffer is a list of elements of a specific primitive type.
		 */
		export class Buffer extends java.lang.Object {
			static class: java.lang.Class<java.nio.Buffer>;
			/**
			 * Returns the array that backs this buffer (optional operation). The returned value is the actual array, not a copy, so modifications to the array write through to the buffer.
			 */
			public array(): any;
			/**
			 * Returns the offset into the array returned by array of the first element of the buffer (optional operation). The backing array (if there is one) is not necessarily the same size as the buffer, and position 0 in the buffer is not necessarily the 0th element in the array. Use buffer.array()[offset + buffer.arrayOffset() to access element offset in buffer.
			 */
			public arrayOffset(): number;
			/**
			 * Returns the capacity of this buffer.
			 */
			public capacity(): number;
			/**
			 * Used for the scalar get/put operations.
			 */
			checkIndex(index: number): void;
			/**
			 * Used for the ByteBuffer operations that get types larger than a byte.
			 */
			checkIndex(index: number, sizeOfType: number): void;
			checkGetBounds(bytesPerElement: number, length: number, offset: number, count: number): number;
			checkPutBounds(bytesPerElement: number, length: number, offset: number, count: number): number;
			checkStartEndRemaining(start: number, end: number): void;
			/**
			 * Clears this buffer.
			 */
			public clear(): java.nio.Buffer;
			/**
			 * Flips this buffer.
			 */
			public flip(): java.nio.Buffer;
			/**
			 * Returns true if array and arrayOffset won't throw. This method does not return true for buffers not backed by arrays because the other methods would throw UnsupportedOperationException, nor does it return true for buffers backed by read-only arrays, because the other methods would throw ReadOnlyBufferException. 1.6
			 */
			public hasArray(): boolean;
			/**
			 * Indicates if there are elements remaining in this buffer, that is if position < limit.
			 */
			public hasRemaining(): boolean;
			/**
			 * Returns true if this is a direct buffer. 1.6
			 */
			public isDirect(): boolean;
			/**
			 * Indicates whether this buffer is read-only.
			 */
			public isReadOnly(): boolean;
			checkWritable(): void;
			/**
			 * Returns the limit of this buffer.
			 */
			public limit(): number;
			/**
			 * Sets the limit of this buffer.
			 * @param newLimit 
			 */
			public limit(newLimit: number): java.nio.Buffer;
			/**
			 * Subverts the fact that limit(int) is final, for the benefit of MappedByteBufferAdapter.
			 */
			limitImpl(newLimit: number): void;
			/**
			 * Marks the current position, so that the position may return to this point later by calling <code>reset()</code>.
			 */
			public mark(): java.nio.Buffer;
			/**
			 * Returns the position of this buffer.
			 */
			public position(): number;
			/**
			 * Sets the position of this buffer.
			 * @param newPosition 
			 */
			public position(newPosition: number): java.nio.Buffer;
			positionImpl(newPosition: number): void;
			/**
			 * Returns the number of remaining elements in this buffer, that is limit - position.
			 */
			public remaining(): number;
			/**
			 * Resets the position of this buffer to the <code>mark</code>.
			 */
			public reset(): java.nio.Buffer;
			/**
			 * Rewinds this buffer.
			 */
			public rewind(): java.nio.Buffer;
			public toString(): string;
		}
		/**
		 * The default ServerSocketChannel.
		 */
		export class ServerSocketChannelImpl extends java.nio.channels.ServerSocketChannel implements java.nio.IFileDescriptorChannel {
			constructor(sp: java.nio.channels.spi.SelectorProvider);
			static class: java.lang.Class<java.nio.ServerSocketChannelImpl>;
			public socket(): java.net.ServerSocket;
			public accept(): java.nio.channels.SocketChannel;
			protected implConfigureBlocking(blocking: boolean): void;
			protected implCloseSelectableChannel(): void;
			public getFD(): java.io.FileDescriptor;
		}
		export module ServerSocketChannelImpl {
			export class ServerSocketAdapter extends java.net.ServerSocket {
				static class: java.lang.Class<java.nio.ServerSocketChannelImpl.ServerSocketAdapter>;
				public bind(localAddress: java.net.SocketAddress, backlog: number): void;
				public accept(): java.net.Socket;
				public implAccept(clientSocketChannel: java.nio.SocketChannelImpl): java.net.Socket;
				public getChannel(): java.nio.channels.ServerSocketChannel;
				public isBound(): boolean;
				public bind(localAddress: java.net.SocketAddress): void;
				public close(): void;
				/**
				 * Invokes the server socket implementation to accept a connection on the given socket aSocket.
				 * @param aSocket 
				 */
                public implAccept(aSocket: java.net.Socket): void;
			}
		}
		/**
		 * Allows access to the FileDescriptor underlying a Channel.
		 */
		interface IFileDescriptorChannel {
			getFD(): java.io.FileDescriptor;
		}
		/**
		 * HeapByteBuffer, ReadWriteHeapByteBuffer and ReadOnlyHeapByteBuffer compose the implementation of array based byte buffers.
		 */
		export class ReadOnlyHeapByteBuffer extends java.nio.HeapByteBuffer {
			static class: java.lang.Class<java.nio.ReadOnlyHeapByteBuffer>;
			static copy(other: java.nio.HeapByteBuffer, markOfOther: number): java.nio.ReadOnlyHeapByteBuffer;
			public asReadOnlyBuffer(): java.nio.ByteBuffer;
			public compact(): java.nio.ByteBuffer;
			public duplicate(): java.nio.ByteBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(b: number): java.nio.ByteBuffer;
			public put(index: number, b: number): java.nio.ByteBuffer;
			public put(src: native.Array<number>, srcOffset: number, byteCount: number): java.nio.ByteBuffer;
			public putDouble(value: number): java.nio.ByteBuffer;
			public putDouble(index: number, value: number): java.nio.ByteBuffer;
			public putFloat(value: number): java.nio.ByteBuffer;
			public putFloat(index: number, value: number): java.nio.ByteBuffer;
			public putInt(value: number): java.nio.ByteBuffer;
			public putInt(index: number, value: number): java.nio.ByteBuffer;
			public putLong(index: number, value: number): java.nio.ByteBuffer;
			public putLong(value: number): java.nio.ByteBuffer;
			public putShort(index: number, value: number): java.nio.ByteBuffer;
			public putShort(value: number): java.nio.ByteBuffer;
			public put(buf: java.nio.ByteBuffer): java.nio.ByteBuffer;
			public slice(): java.nio.ByteBuffer;
			/**
			 * Writes bytes in the given byte array to the current position and increases the position by the number of bytes written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.ByteBuffer;
		}
		export class MemoryBlock extends java.lang.Object {
			static class: java.lang.Class<java.nio.MemoryBlock>;
			public static mmap(fd: java.io.FileDescriptor, offset: number, size: number, mapMode: java.nio.channels.FileChannel.MapMode): java.nio.MemoryBlock;
			public static allocate(byteCount: number): java.nio.MemoryBlock;
			public static wrapFromJni(address: number, byteCount: number): java.nio.MemoryBlock;
			public array(): native.Array<number>;
			public free(): void;
			public pokeByte(offset: number, value: number): void;
			public pokeByteArray(offset: number, src: native.Array<number>, srcOffset: number, byteCount: number): void;
			public pokeCharArray(offset: number, src: native.Array<string>, srcOffset: number, charCount: number, swap: boolean): void;
			public pokeDoubleArray(offset: number, src: native.Array<number>, srcOffset: number, doubleCount: number, swap: boolean): void;
			public pokeFloatArray(offset: number, src: native.Array<number>, srcOffset: number, floatCount: number, swap: boolean): void;
			public pokeIntArray(offset: number, src: native.Array<number>, srcOffset: number, intCount: number, swap: boolean): void;
			public pokeLongArray(offset: number, src: native.Array<number>, srcOffset: number, longCount: number, swap: boolean): void;
			public pokeShortArray(offset: number, src: native.Array<number>, srcOffset: number, shortCount: number, swap: boolean): void;
			public peekByte(offset: number): number;
			public peekByteArray(offset: number, dst: native.Array<number>, dstOffset: number, byteCount: number): void;
			public peekCharArray(offset: number, dst: native.Array<string>, dstOffset: number, charCount: number, swap: boolean): void;
			public peekDoubleArray(offset: number, dst: native.Array<number>, dstOffset: number, doubleCount: number, swap: boolean): void;
			public peekFloatArray(offset: number, dst: native.Array<number>, dstOffset: number, floatCount: number, swap: boolean): void;
			public peekIntArray(offset: number, dst: native.Array<number>, dstOffset: number, intCount: number, swap: boolean): void;
			public peekLongArray(offset: number, dst: native.Array<number>, dstOffset: number, longCount: number, swap: boolean): void;
			public peekShortArray(offset: number, dst: native.Array<number>, dstOffset: number, shortCount: number, swap: boolean): void;
			public pokeShort(offset: number, value: number, order: java.nio.ByteOrder): void;
			public peekShort(offset: number, order: java.nio.ByteOrder): number;
			public pokeInt(offset: number, value: number, order: java.nio.ByteOrder): void;
			public peekInt(offset: number, order: java.nio.ByteOrder): number;
			public pokeLong(offset: number, value: number, order: java.nio.ByteOrder): void;
			public peekLong(offset: number, order: java.nio.ByteOrder): any;
			public toInt(): number;
			public toString(): string;
			public getSize(): any;
		}
		export module MemoryBlock {
			/**
			 * Handles calling munmap(2) on a memory-mapped region.
			 */
			export class MemoryMappedBlock extends java.nio.MemoryBlock {
				static class: java.lang.Class<java.nio.MemoryBlock.MemoryMappedBlock>;
				public free(): void;
				protected finalize(): void;
			}
			/**
			 * Non-movable heap blocks are byte arrays on the Java heap that the GC guarantees not to move. Used to implement DirectByteBuffer.
			 */
			export class NonMovableHeapBlock extends java.nio.MemoryBlock {
				static class: java.lang.Class<java.nio.MemoryBlock.NonMovableHeapBlock>;
				public array(): native.Array<number>;
				public free(): void;
			}
			/**
			 * Represents a block of memory we don't own. (We don't take ownership of memory corresponding to direct buffers created by the JNI NewDirectByteBuffer function.)
			 */
			export class UnmanagedBlock extends java.nio.MemoryBlock {
				static class: java.lang.Class<java.nio.MemoryBlock.UnmanagedBlock>;
			}
		}
		export module channels {
			/**
			 * An UnsupportedAddressTypeException is thrown when connecting or binding to an unsupported address type.
			 */
			export class UnsupportedAddressTypeException extends java.lang.IllegalArgumentException {
				/**
				 * Constructs an UnsupportedAddressTypeException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.UnsupportedAddressTypeException>;
			}
			/**
			 * A SocketChannel is a selectable channel that provides a partial abstraction of stream connecting socket. socket() returns the related Socket instance which can handle the socket.
			 */
			export class SocketChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.IByteChannel, java.nio.channels.IScatteringByteChannel, java.nio.channels.IGatheringByteChannel {
				static class: java.lang.Class<java.nio.channels.SocketChannel>;
				/**
				 * Creates an open and unconnected socket channel.
				 */
				public static open(): java.nio.channels.SocketChannel;
				/**
				 * Creates a socket channel and connects it to a socket address.
				 * @param address 
				 */
				public static open(address: java.net.SocketAddress): java.nio.channels.SocketChannel;
				/**
				 * Gets the valid operations of this channel. Socket channels support connect, read and write operation, so this method returns SelectionKey.OP_CONNECT | SelectionKey.OP_READ | SelectionKey.OP_WRITE.
				 */
				public validOps(): number;
				/**
				 * Returns the socket assigned to this channel, which does not declare any public methods that are not declared in Socket.
				 */
				public socket(): java.net.Socket;
				/**
				 * Indicates whether this channel's socket is connected.
				 */
				public isConnected(): boolean;
				/**
				 * Indicates whether this channel's socket is still trying to connect.
				 */
				public isConnectionPending(): boolean;
				/**
				 * Connects this channel's socket with a remote address.
				 * @param address 
				 */
				public connect(address: java.net.SocketAddress): boolean;
				/**
				 * Completes the connection process initiated by a call of connect(SocketAddress).
				 */
				public finishConnect(): boolean;
				/**
				 * Reads bytes from this socket channel into the given buffer.
				 * @param target 
				 */
				public read(target: java.nio.ByteBuffer): number;
				/**
				 * Reads bytes from this socket channel into a subset of the given buffers. This method attempts to read all remaining() bytes from length byte buffers, in order, starting at targets[offset]. The number of bytes actually read is returned.
				 * @param targets 
				 * @param offset 
				 * @param length 
				 */
				public read(targets: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Reads bytes from this socket channel and stores them in the specified array of buffers. This method attempts to read as many bytes as can be stored in the buffer array from this channel and returns the number of bytes actually read.
				 * @param targets 
				 */
				public read(targets: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Writes bytes from the given byte buffer to this socket channel. The maximum number of bytes that are written is the remaining number of bytes in the buffer when this method is invoked. The bytes are taken from the buffer starting at the buffer's position.
				 * @param source 
				 */
				public write(source: java.nio.ByteBuffer): number;
				/**
				 * Attempts to write a subset of the given bytes from the buffers to this socket channel. This method attempts to write all remaining() bytes from length byte buffers, in order, starting at sources[offset]. The number of bytes actually written is returned.
				 * @param sources 
				 * @param offset 
				 * @param length 
				 */
				public write(sources: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Writes bytes from all the given byte buffers to this socket channel.
				 * @param sources 
				 */
				public write(sources: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * A ReadableByteChannel is a type of Channel that can read bytes.
			 */
			export class ReadableByteChannel implements java.nio.channels.IChannel, java.nio.channels.IReadableByteChannel {
				constructor(implementation: java.nio.channels.IReadableByteChannel);
				/**
				 * Reads bytes from the channel into the given buffer.
				 * @param buffer 
				 */
				public read(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * A channel is a conduit to I/O services covering such items as files, sockets, hardware devices, I/O ports or some software component.
			 */
			interface IChannel extends java.io.ICloseable {
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * An AlreadyConnectedException is thrown when an attempt is made to connect a SocketChannel that is already connected.
			 */
			export class AlreadyConnectedException extends java.lang.IllegalStateException {
				/**
				 * Constructs an AlreadyConnectedException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.AlreadyConnectedException>;
			}
			/**
			 * A FileLockInterruptionException is thrown when a thread is interrupted while waiting to acquire a file lock.
			 */
			export class FileLockInterruptionException extends java.io.IOException {
				/**
				 * Constructs a FileLockInterruptionException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.FileLockInterruptionException>;
			}
			/**
			 * A CancelledKeyException is thrown when an invalid selection key is used.
			 */
			export class CancelledKeyException extends java.lang.IllegalStateException {
				/**
				 * Constructs a CancelledKeyException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.CancelledKeyException>;
			}
			/**
			 * The interface for channels that can write a set of buffers in a single operation. The corresponding interface for read operations is ScatteringByteChannel.
			 */
			interface IGatheringByteChannel extends java.nio.channels.IWritableByteChannel {
				/**
				 * Writes bytes from all the given buffers to a channel.
				 * @param buffers 
				 */
				write(buffers: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Attempts to write all <code>remaining()</code> bytes from length byte buffers, in order, starting at buffers[offset]. The number of bytes actually written is returned.
				 * @param buffers 
				 * @param offset 
				 * @param length 
				 */
				write(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Writes bytes from the given buffer to the channel.
				 * @param buffer 
				 */
				write(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * This class provides several utilities to get I/O streams from channels.
			 */
			export class Channels extends java.lang.Object {
				static class: java.lang.Class<java.nio.channels.Channels>;
				/**
				 * Returns an input stream on the given channel. The resulting stream has the following properties: <ul> <li>If the stream is closed, then the underlying channel is closed as well.</li> <li>It is thread safe.</li> <li>It throws an IllegalBlockingModeException if the channel is in non-blocking mode and read is called.</li> <li>Neither mark nor reset is supported.</li> <li>It is not buffered.</li> </ul>
				 * @param channel 
				 */
				public static newInputStream(channel: java.nio.channels.IReadableByteChannel): java.io.InputStream;
				/**
				 * Returns an output stream on the given channel. The resulting stream has the following properties: <ul> <li>If the stream is closed, then the underlying channel is closed as well.</li> <li>It is thread safe.</li> <li>It throws an IllegalBlockingModeException if the channel is in non-blocking mode and write is called.</li> <li>It is not buffered.</li> </ul>
				 * @param channel 
				 */
				public static newOutputStream(channel: java.nio.channels.IWritableByteChannel): java.io.OutputStream;
				/**
				 * Returns a readable channel on the given input stream. The resulting channel has the following properties: <ul> <li>If the channel is closed, then the underlying stream is closed as well.</li> <li>It is not buffered.</li> </ul>
				 * @param inputStream 
				 */
				public static newChannel(inputStream: java.io.InputStream): java.nio.channels.IReadableByteChannel;
				/**
				 * Returns a writable channel on the given output stream.
				 * @param outputStream 
				 */
				public static newChannel(outputStream: java.io.OutputStream): java.nio.channels.IWritableByteChannel;
				/**
				 * Returns a reader that decodes bytes from a channel.
				 * @param channel 
				 * @param decoder 
				 * @param minBufferCapacity 
				 */
				public static newReader(channel: java.nio.channels.IReadableByteChannel, decoder: java.nio.charset.CharsetDecoder, minBufferCapacity: number): java.io.Reader;
				/**
				 * Returns a reader that decodes bytes from a channel. This method creates a reader with a buffer of default size.
				 * @param channel 
				 * @param charsetName 
				 */
				public static newReader(channel: java.nio.channels.IReadableByteChannel, charsetName: string): java.io.Reader;
				/**
				 * Returns a writer that encodes characters with the specified encoder and sends the bytes to the specified channel.
				 * @param channel 
				 * @param encoder 
				 * @param minBufferCapacity 
				 */
				public static newWriter(channel: java.nio.channels.IWritableByteChannel, encoder: java.nio.charset.CharsetEncoder, minBufferCapacity: number): java.io.Writer;
				/**
				 * Returns a writer that encodes characters with the specified encoder and sends the bytes to the specified channel. This method creates a writer with a buffer of default size.
				 * @param channel 
				 * @param charsetName 
				 */
				public static newWriter(channel: java.nio.channels.IWritableByteChannel, charsetName: string): java.io.Writer;
				static checkBlocking(channel: java.nio.channels.IChannel): void;
			}
			export module Channels {
				/**
				 * A readable channel that delegates to an input stream.
				 */
				export class InputStreamChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.IReadableByteChannel {
					static class: java.lang.Class<java.nio.channels.Channels.InputStreamChannel>;
					public read(target: java.nio.ByteBuffer): number;
					protected implCloseChannel(): void;
					/**
					 * Returns true if this channel is open.
					 */
					isOpen(): boolean;
					/**
					 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
					 */
					close(): void;
				}
				/**
				 * A writable channel that delegates to an output stream.
				 */
				export class OutputStreamChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.IWritableByteChannel {
					static class: java.lang.Class<java.nio.channels.Channels.OutputStreamChannel>;
					public write(source: java.nio.ByteBuffer): number;
					protected implCloseChannel(): void;
					/**
					 * Returns true if this channel is open.
					 */
					isOpen(): boolean;
					/**
					 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
					 */
					close(): void;
				}
				/**
				 * An input stream that delegates to a readable channel.
				 */
				export class ChannelInputStream extends java.io.InputStream {
					static class: java.lang.Class<java.nio.channels.Channels.ChannelInputStream>;
					public read(): number;
					public read(target: native.Array<number>, offset: number, length: number): number;
					public available(): number;
					public close(): void;
					/**
					 * Equivalent to read(buffer, 0, buffer.length).
					 */
					read(buffer: native.Array<number>): number;
				}
				/**
				 * An output stream that delegates to a writable channel.
				 */
				export class ChannelOutputStream extends java.io.OutputStream {
					static class: java.lang.Class<java.nio.channels.Channels.ChannelOutputStream>;
					public write(oneByte: number): void;
					public write(source: native.Array<number>, offset: number, length: number): void;
					public close(): void;
					/**
					 * Equivalent to write(buffer, 0, buffer.length).
					 */
					write(buffer: native.Array<number>): void;
				}
			}
			/**
			 * A ClosedByInterruptException is thrown when a thread is interrupted in a blocking I/O operation.
			 */
			export class ClosedByInterruptException extends java.nio.channels.AsynchronousCloseException {
				/**
				 * Constructs a ClosedByInterruptException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.ClosedByInterruptException>;
			}
			/**
			 * A ReadableByteChannel is a type of Channel that can read bytes.
			 */
			interface IReadableByteChannel extends java.nio.channels.IChannel {
				/**
				 * Reads bytes from the channel into the given buffer.
				 * @param buffer 
				 */
				read(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * A NonReadableChannelException is thrown when attempting to read from a channel that is not open for reading.
			 */
			export class NonReadableChannelException extends java.lang.IllegalStateException {
				/**
				 * Constructs a NonReadableChannelException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.NonReadableChannelException>;
			}
			/**
			 * Channels that implement this interface can be asynchronously closed and interrupted.
			 */
			export class InterruptibleChannel implements java.nio.channels.IChannel, java.nio.channels.IInterruptibleChannel {
				constructor(implementation: java.nio.channels.IInterruptibleChannel);
				/**
				 * Closes the channel.
				 */
				public close(): void;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
			}
			/**
			 * A FileLock represents a locked region of a file.
			 */
			export class FileLock extends java.lang.Object {
				static class: java.lang.Class<java.nio.channels.FileLock>;
				/**
				 * Returns the lock's FileChannel.
				 */
				public channel(): java.nio.channels.FileChannel;
				/**
				 * Returns the lock's starting position in the file.
				 */
				public position(): any;
				/**
				 * Returns the length of the file lock in bytes.
				 */
				public size(): any;
				/**
				 * Indicates if the file lock is shared with other processes or if it is exclusive.
				 */
				public isShared(): boolean;
				/**
				 * Indicates if the receiver's lock region overlaps the region described in the parameter list.
				 * @param start 
				 * @param length 
				 */
				public overlaps(start: number, length: number): boolean;
				/**
				 * Indicates whether this lock is a valid file lock. The lock is valid unless the underlying channel has been closed or it has been explicitly released.
				 */
				public isValid(): boolean;
				/**
				 * Releases this particular lock on the file. If the lock is invalid then this method has no effect. Once released, the lock becomes invalid.
				 */
				public release(): void;
				/**
				 * Returns a string that shows the details of the lock suitable for display to an end user.
				 */
				public toString(): string;
			}
			/**
			 * An UnresolvedAddressException is thrown when trying to use an unresolved network address in a network operation.
			 */
			export class UnresolvedAddressException extends java.lang.IllegalArgumentException {
				/**
				 * Constructs an UnresolvedAddressException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.UnresolvedAddressException>;
			}
			/**
			 * A NonWritableChannelException is thrown when attempting to write to a channel that is not open for writing.
			 */
			export class NonWritableChannelException extends java.lang.IllegalStateException {
				/**
				 * Constructs a NonWritableChannelException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.NonWritableChannelException>;
			}
			/**
			 * An OverlappingFileLockException is thrown when attempting to acquire a lock that overlaps an existing or pending lock held by this process.
			 */
			export class OverlappingFileLockException extends java.lang.IllegalStateException {
				/**
				 * Constructs a OverlappingFileLockException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.OverlappingFileLockException>;
			}
			/**
			 * A ServerSocketChannel is a partial abstraction of a selectable, stream-oriented listening socket. Binding and manipulation of socket options can only be done through the associated ServerSocket object, returned by calling socket(). ServerSocketChannels can not be constructed for an already existing server-socket, nor can a java.net.SocketImpl be assigned.
			 */
			export class ServerSocketChannel extends java.nio.channels.spi.AbstractSelectableChannel {
				static class: java.lang.Class<java.nio.channels.ServerSocketChannel>;
				/**
				 * Creates an open and unbound server-socket channel.
				 */
				public static open(): java.nio.channels.ServerSocketChannel;
				/**
				 * Gets the valid operations of this channel. Server-socket channels support accepting operation, so this method returns SelectionKey.OP_ACCEPT.
				 */
				public validOps(): number;
				/**
				 * Return the server-socket assigned this channel, which does not declare any public methods that are not declared in ServerSocket.
				 */
				public socket(): java.net.ServerSocket;
				/**
				 * Accepts a connection to this server-socket channel.
				 */
				public accept(): java.nio.channels.SocketChannel;
			}
			/**
			 * A controller for the selection of SelectableChannel objects. Selectable channels can be registered with a selector and get a SelectionKey that represents the registration. The keys are also added to the selector's key set. Selection keys can be canceled so that the corresponding channel is no longer registered with the selector.
			 */
			export class Selector extends java.lang.Object {
				static class: java.lang.Class<java.nio.channels.Selector>;
				/**
				 * Returns a selector returned by SelectorProvider#provider's SelectorProvider#openSelector method.
				 */
				public static open(): java.nio.channels.Selector;
				/**
				 * Closes this selector. Ongoing calls to the select methods of this selector will get interrupted. This interruption behaves as if the #wakeup() method of this selector is called. After this, all keys that are still valid are invalidated and their channels are unregistered. All resources held by this selector are released.
				 */
				public close(): void;
				/**
				 * Indicates whether this selector is open.
				 */
				public isOpen(): boolean;
				/**
				 * Gets the set of registered keys. The set is immutable and is not thread- safe.
				 */
				public keys(): java.util.ISet<java.nio.channels.SelectionKey>;
				/**
				 * Gets the provider of this selector.
				 */
				public provider(): java.nio.channels.spi.SelectorProvider;
				/**
				 * Detects if any of the registered channels is ready for I/O operations according to its SelectionKey interest set. This method does not return until at least one channel is ready, #wakeup() is invoked or the calling thread is interrupted.
				 */
				public select(): number;
				/**
				 * Detects if any of the registered channels is ready for I/O operations according to its SelectionKey interest set. This method does not return until at least one channel is ready, #wakeup() is invoked, the calling thread is interrupted or the specified timeout expires.
				 * @param timeout 
				 */
				public select(timeout: number): number;
				/**
				 * Gets the selection keys whose channels are ready for operation. The set is not thread-safe and no keys may be added to it. Removing keys is allowed.
				 */
				public selectedKeys(): java.util.ISet<java.nio.channels.SelectionKey>;
				/**
				 * Detects if any of the registered channels is ready for I/O operations according to its SelectionKey interest set. This operation will return immediately.
				 */
				public selectNow(): number;
				/**
				 * Forces blocked select operations to return immediately.
				 */
				public wakeup(): java.nio.channels.Selector;
			}
			/**
			 * A ClosedSelectorException is thrown when a Selector selector is closed and an I/O operation is attempted.
			 */
			export class ClosedSelectorException extends java.lang.IllegalStateException {
				/**
				 * Constructs a ClosedSelectorException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.ClosedSelectorException>;
			}
			/**
			 * Channels that implement this interface can be asynchronously closed and interrupted.
			 */
			interface IInterruptibleChannel extends java.nio.channels.IChannel {
				/**
				 * Closes the channel.
				 */
				close(): void;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
			}
			/**
			 * A SelectionKey represents the relationship between a channel and a selector for which the channel is registered. <h3>Operation set</h3> An operation set is represented by an integer value. The bits of an operation set represent categories of operations for a key's channel: Accepting socket connections (OP_ACCEPT), connecting with a socket (OP_CONNECT), reading (OP_READ) and writing (OP_WRITE). <h4>Interest set</h4> The interest set is an operation set that defines the operations that a SelectableChannel channel is interested in performing. <h4>Ready set</h4> The ready set is an operation set that shows the operations that a channel is ready to execute.
			 */
			export class SelectionKey extends java.lang.Object {
				/**
				 * Interest set mask bit for socket-accept operations.
				 */
				static OP_ACCEPT: number;
				/**
				 * Interest set mask bit for socket-connect operations.
				 */
				static OP_CONNECT: number;
				/**
				 * Interesting operation mask bit for read operations.
				 */
				static OP_READ: number;
				/**
				 * Interest set mask bit for write operations.
				 */
				static OP_WRITE: number;
				static class: java.lang.Class<java.nio.channels.SelectionKey>;
				/**
				 * Attaches an object to this key. It is acceptable to attach null, this discards the old attachment.
				 * @param anObject 
				 */
				public attach(anObject: any): any;
				/**
				 * Gets the attached object.
				 */
				public attachment(): any;
				/**
				 * Cancels this key.
				 */
				public cancel(): void;
				/**
				 * Gets the channel of this key.
				 */
				public channel(): java.nio.channels.SelectableChannel;
				/**
				 * Gets this key's SelectionKey interest set. The returned set has only those bits set that are valid for this key's channel.
				 */
				public interestOps(): number;
				/**
				 * Sets the SelectionKey interest set for this key.
				 * @param operations 
				 */
				public interestOps(operations: number): java.nio.channels.SelectionKey;
				/**
				 * Indicates whether this key's channel is interested in the accept operation and is ready to accept new connections. A call to this method is equal to executing (readyOps() & OP_ACCEPT) == OP_ACCEPT.
				 */
				public isAcceptable(): boolean;
				/**
				 * Indicates whether this key's channel is interested in the connect operation and is ready to connect. A call to this method is equal to executing (readyOps() & OP_CONNECT) == OP_CONNECT.
				 */
				public isConnectable(): boolean;
				/**
				 * Indicates whether this key's channel is interested in the read operation and is ready to read. A call to this method is equal to executing (readyOps() & OP_READ) == OP_READ.
				 */
				public isReadable(): boolean;
				/**
				 * Indicates whether this key is valid. A key is valid as long as it has not been canceled.
				 */
				public isValid(): boolean;
				/**
				 * Indicates whether this key's channel is interested in the write operation and is ready to write. A call to this method is equal to executing (readyOps() & OP_WRITE) == OP_WRITE.
				 */
				public isWritable(): boolean;
				/**
				 * Gets the set of operations that are ready. The returned set has only those bits set that are valid for this key's channel.
				 */
				public readyOps(): number;
				/**
				 * Gets the selector for which this key's channel is registered.
				 */
				public selector(): java.nio.channels.Selector;
			}
			/**
			 * A ClosedChannelException is thrown when a channel is closed for the type of operation attempted.
			 */
			export class ClosedChannelException extends java.io.IOException {
				/**
				 * Constructs a ClosedChannelException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.ClosedChannelException>;
			}
			/**
			 * An AsynchronousCloseException is thrown when the underlying channel for an I/O operation is closed by another thread.
			 */
			export class AsynchronousCloseException extends java.nio.channels.ClosedChannelException {
				/**
				 * Constructs an AsynchronousCloseException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.AsynchronousCloseException>;
			}
			/**
			 * The interface for channels that can write a set of buffers in a single operation. The corresponding interface for read operations is ScatteringByteChannel.
			 */
			export class GatheringByteChannel implements java.nio.channels.IWritableByteChannel, java.nio.channels.IGatheringByteChannel {
				constructor(implementation: java.nio.channels.IGatheringByteChannel);
				/**
				 * Writes bytes from all the given buffers to a channel.
				 * @param buffers 
				 */
				public write(buffers: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Attempts to write all <code>remaining()</code> bytes from length byte buffers, in order, starting at buffers[offset]. The number of bytes actually written is returned.
				 * @param buffers 
				 * @param offset 
				 * @param length 
				 */
				public write(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Writes bytes from the given buffer to the channel.
				 * @param buffer 
				 */
				write(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * A NoConnectionPendingException is thrown if SocketChannel's SocketChannel#finishConnect() finishConnect method is called before the SocketChannel's SocketChannel#connect(java.net.SocketAddress) connect} method completed without error.
			 */
			export class NoConnectionPendingException extends java.lang.IllegalStateException {
				/**
				 * Constructs a NoConnectionPendingException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.NoConnectionPendingException>;
			}
			/**
			 * A ByteChannel is both readable and writable.
			 */
			interface IByteChannel extends java.nio.channels.IReadableByteChannel, java.nio.channels.IWritableByteChannel {
				/**
				 * Reads bytes from the channel into the given buffer.
				 * @param buffer 
				 */
				read(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
				/**
				 * Writes bytes from the given buffer to the channel.
				 * @param buffer 
				 */
				write(buffer: java.nio.ByteBuffer): number;
			}
			/**
			 * An abstract channel type for interaction with a platform file.
			 */
			export class FileChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.IGatheringByteChannel, java.nio.channels.IScatteringByteChannel, java.nio.channels.IByteChannel {
				static class: java.lang.Class<java.nio.channels.FileChannel>;
				/**
				 * Requests that all updates to this channel are committed to the storage device.
				 * @param metadata 
				 */
				public force(metadata: boolean): void;
				/**
				 * Obtains an exclusive lock on this file.
				 */
				public lock(): java.nio.channels.FileLock;
				/**
				 * Obtains a lock on a specified region of the file.
				 * @param position 
				 * @param size 
				 * @param shared 
				 */
				public lock(position: number, size: number, shared: boolean): java.nio.channels.FileLock;
				/**
				 * Maps the file into memory. There can be three modes: read-only, read/write and private. After mapping, changes made to memory or the file channel do not affect the other storage place.
				 * @param mode 
				 * @param position 
				 * @param size 
				 */
				public map(mode: java.nio.channels.FileChannel.MapMode, position: number, size: number): java.nio.MappedByteBuffer;
				/**
				 * Returns the current value of the file position pointer.
				 */
				public position(): any;
				/**
				 * Sets the file position pointer to a new value.
				 * @param offset 
				 */
				public position(offset: number): java.nio.channels.FileChannel;
				/**
				 * Reads bytes from this file channel into the given buffer.
				 * @param buffer 
				 */
				public read(buffer: java.nio.ByteBuffer): number;
				/**
				 * Reads bytes from this file channel into the given buffer starting from the specified file position.
				 * @param buffer 
				 * @param position 
				 */
				public read(buffer: java.nio.ByteBuffer, position: number): number;
				/**
				 * Reads bytes from this file channel and stores them in the specified array of buffers. This method attempts to read as many bytes as can be stored in the buffer array from this channel and returns the number of bytes actually read. It also increases the file position by the number of bytes read.
				 * @param buffers 
				 */
				public read(buffers: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Reads bytes from this file channel into a subset of the given buffers. This method attempts to read all remaining() bytes from length byte buffers, in order, starting at targets[offset]. It increases the file position by the number of bytes actually read. The number of bytes actually read is returned.
				 * @param buffers 
				 * @param start 
				 * @param number 
				 */
				public read(buffers: native.Array<java.nio.ByteBuffer>, start: number, number: number): any;
				/**
				 * Returns the size of the file underlying this channel in bytes.
				 */
				public size(): any;
				/**
				 * Reads up to count bytes from src and stores them in this channel's file starting at position. No bytes are transferred if position is larger than the size of this channel's file. Less than count bytes are transferred if there are less bytes remaining in the source channel or if the source channel is non-blocking and has less than count bytes immediately available in its output buffer.
				 * @param src 
				 * @param position 
				 * @param count 
				 */
				public transferFrom(src: java.nio.channels.IReadableByteChannel, position: number, count: number): any;
				/**
				 * Reads up to count bytes from this channel's file starting at position and writes them to target. No bytes are transferred if position is larger than the size of this channel's file. Less than count bytes are transferred if there less bytes available from this channel's file or if the target channel is non-blocking and has less than count bytes free in its input buffer.
				 * @param position 
				 * @param count 
				 * @param target 
				 */
				public transferTo(position: number, count: number, target: java.nio.channels.IWritableByteChannel): any;
				/**
				 * Truncates the file underlying this channel to a given size. Any bytes beyond the given size are removed from the file. If there are no bytes beyond the given size then the file contents are unmodified.
				 * @param size 
				 */
				public truncate(size: number): java.nio.channels.FileChannel;
				/**
				 * Attempts to acquire an exclusive lock on this file without blocking.
				 */
				public tryLock(): java.nio.channels.FileLock;
				/**
				 * Attempts to acquire an exclusive lock on this file without blocking. The method returns null if the acquisition would result in an overlapped lock with another OS process.
				 * @param position 
				 * @param size 
				 * @param shared 
				 */
				public tryLock(position: number, size: number, shared: boolean): java.nio.channels.FileLock;
				/**
				 * Writes bytes from the given byte buffer to this file channel.
				 * @param src 
				 */
				public write(src: java.nio.ByteBuffer): number;
				/**
				 * Writes bytes from the given buffer to this file channel starting at the given file position.
				 * @param buffer 
				 * @param position 
				 */
				public write(buffer: java.nio.ByteBuffer, position: number): number;
				/**
				 * Writes bytes from all the given byte buffers to this file channel.
				 * @param buffers 
				 */
				public write(buffers: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Attempts to write a subset of the given bytes from the buffers to this file channel. This method attempts to write all remaining() bytes from length byte buffers, in order, starting at sources[offset]. The number of bytes actually written is returned.
				 * @param buffers 
				 * @param offset 
				 * @param length 
				 */
				public write(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			export module FileChannel {
				/**
				 * MapMode defines file mapping mode constants.
				 */
				export class MapMode extends java.lang.Object {
					/**
					 * Private mapping mode (equivalent to copy on write).
					 */
					static PRIVATE: java.nio.channels.FileChannel.MapMode;
					/**
					 * Read-only mapping mode.
					 */
					static READ_ONLY: java.nio.channels.FileChannel.MapMode;
					/**
					 * Read-write mapping mode.
					 */
					static READ_WRITE: java.nio.channels.FileChannel.MapMode;
					static class: java.lang.Class<java.nio.channels.FileChannel.MapMode>;
					/**
					 * Returns a string version of the mapping mode.
					 */
					public toString(): string;
				}
			}
			/**
			 * A channel is a conduit to I/O services covering such items as files, sockets, hardware devices, I/O ports or some software component.
			 */
			export class Channel implements java.io.ICloseable, java.nio.channels.IChannel {
				constructor(implementation: java.nio.channels.IChannel);
				/**
				 * Returns true if this channel is open.
				 */
				public isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				public close(): void;
			}
			/**
			 * A DatagramChannel is a selectable channel that represents a partial abstraction of a datagram socket. The socket method of this class can return the related DatagramSocket instance, which can handle the socket.
			 */
			export class DatagramChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.IByteChannel, java.nio.channels.IScatteringByteChannel, java.nio.channels.IGatheringByteChannel {
				static class: java.lang.Class<java.nio.channels.DatagramChannel>;
				/**
				 * Creates an opened and not-connected datagram channel.
				 */
				public static open(): java.nio.channels.DatagramChannel;
				/**
				 * Gets the valid operations of this channel. Datagram channels support read and write operations, so this method returns ( <code>SelectionKey.OP_READ</code> | <code>SelectionKey.OP_WRITE</code> ).
				 */
				public validOps(): number;
				/**
				 * Returns the related datagram socket of this channel, which does not define additional public methods to those defined by DatagramSocket.
				 */
				public socket(): java.net.DatagramSocket;
				/**
				 * Returns whether this channel's socket is connected or not.
				 */
				public isConnected(): boolean;
				/**
				 * Connects the socket of this channel to a remote address, which is the only communication peer for getting and sending datagrams after being connected.
				 * @param address 
				 */
				public connect(address: java.net.SocketAddress): java.nio.channels.DatagramChannel;
				/**
				 * Disconnects the socket of this channel, which has been connected before in order to send and receive datagrams.
				 */
				public disconnect(): java.nio.channels.DatagramChannel;
				/**
				 * Gets a datagram from this channel.
				 * @param target 
				 */
				public receive(target: java.nio.ByteBuffer): java.net.SocketAddress;
				/**
				 * Sends a datagram through this channel. The datagram consists of the remaining bytes in source.
				 * @param source 
				 * @param address 
				 */
				public send(source: java.nio.ByteBuffer, address: java.net.SocketAddress): number;
				/**
				 * Reads a datagram from this channel into the byte buffer.
				 * @param target 
				 */
				public read(target: java.nio.ByteBuffer): number;
				/**
				 * Reads a datagram from this channel into an array of byte buffers.
				 * @param targets 
				 * @param offset 
				 * @param length 
				 */
				public read(targets: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Reads a datagram from this channel into an array of byte buffers.
				 * @param targets 
				 */
				public read(targets: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Writes a datagram from the byte buffer to this channel.
				 * @param source 
				 */
				public write(source: java.nio.ByteBuffer): number;
				/**
				 * Writes a datagram from the byte buffers to this channel.
				 * @param sources 
				 * @param offset 
				 * @param length 
				 */
				public write(sources: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Writes a datagram from the byte buffers to this channel.
				 * @param sources 
				 */
				public write(sources: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * A ConnectionPendingException is thrown when an attempt is made to connect a SocketChannel that has a non-blocking connection already underway.
			 */
			export class ConnectionPendingException extends java.lang.IllegalStateException {
				/**
				 * Constructs a ConnectionPendingException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.ConnectionPendingException>;
			}
			/**
			 * A WritableByteChannel is a type of Channel that can write bytes.
			 */
			export class WritableByteChannel implements java.nio.channels.IChannel, java.nio.channels.IWritableByteChannel {
				constructor(implementation: java.nio.channels.IWritableByteChannel);
				/**
				 * Writes bytes from the given buffer to the channel.
				 * @param buffer 
				 */
				public write(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * A WritableByteChannel is a type of Channel that can write bytes.
			 */
			interface IWritableByteChannel extends java.nio.channels.IChannel {
				/**
				 * Writes bytes from the given buffer to the channel.
				 * @param buffer 
				 */
				write(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * A NotYetConnectedException is thrown if the socket channel is not connected before an I/O operation is invoked.
			 */
			export class NotYetConnectedException extends java.lang.IllegalStateException {
				/**
				 * Constructs a NotYetConnectedException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.NotYetConnectedException>;
			}
			/**
			 * A pipe contains two channels, forming a unidirectional pipe. One is the writable sink channel, and the other is the readable source channel. When bytes are written into the writable channel they can be read from the readable channel. Bytes are read in the order in which they were written.
			 */
			export class Pipe extends java.lang.Object {
				static class: java.lang.Class<java.nio.channels.Pipe>;
				/**
				 * Returns a new pipe from the default java.nio.channels.spi.SelectorProvider.
				 */
				public static open(): java.nio.channels.Pipe;
				/**
				 * Returns the sink channel of the pipe.
				 */
				public sink(): java.nio.channels.Pipe.SinkChannel;
				/**
				 * Returns the source channel of the pipe.
				 */
				public source(): java.nio.channels.Pipe.SourceChannel;
			}
			export module Pipe {
				/**
				 * Readable source channel used to read from a pipe.
				 */
				export class SourceChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.IReadableByteChannel, java.nio.channels.IScatteringByteChannel {
					static class: java.lang.Class<java.nio.channels.Pipe.SourceChannel>;
					/**
					 * Indicates that this channel only supports reading.
					 */
					public validOps(): number;
					/**
					 * Reads bytes from the channel into the given buffer.
					 * @param buffer 
					 */
					read(buffer: java.nio.ByteBuffer): number;
					/**
					 * Returns true if this channel is open.
					 */
					isOpen(): boolean;
					/**
					 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
					 */
					close(): void;
					/**
					 * Reads bytes from this channel into the specified array of buffers.
					 * @param buffers 
					 */
					read(buffers: native.Array<java.nio.ByteBuffer>): any;
					/**
					 * Attempts to read all remaining() bytes from length byte buffers, in order, starting at buffers[offset]. The number of bytes actually read is returned.
					 * @param buffers 
					 * @param offset 
					 * @param length 
					 */
					read(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				}
				/**
				 * Writable sink channel used to write to a pipe.
				 */
				export class SinkChannel extends java.nio.channels.spi.AbstractSelectableChannel implements java.nio.channels.IWritableByteChannel, java.nio.channels.IGatheringByteChannel {
					static class: java.lang.Class<java.nio.channels.Pipe.SinkChannel>;
					/**
					 * Indicates that this channel only supports writing.
					 */
					public validOps(): number;
					/**
					 * Writes bytes from the given buffer to the channel.
					 * @param buffer 
					 */
					write(buffer: java.nio.ByteBuffer): number;
					/**
					 * Returns true if this channel is open.
					 */
					isOpen(): boolean;
					/**
					 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
					 */
					close(): void;
					/**
					 * Writes bytes from all the given buffers to a channel.
					 * @param buffers 
					 */
					write(buffers: native.Array<java.nio.ByteBuffer>): any;
					/**
					 * Attempts to write all <code>remaining()</code> bytes from length byte buffers, in order, starting at buffers[offset]. The number of bytes actually written is returned.
					 * @param buffers 
					 * @param offset 
					 * @param length 
					 */
					write(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				}
			}
			export module spi {
				/**
				 * SelectorProvider is an abstract base class that declares methods for providing instances of DatagramChannel, Pipe, java.nio.channels.Selector , ServerSocketChannel, and SocketChannel. All the methods of this class are thread-safe.
				 */
				export class SelectorProvider extends java.lang.Object {
					static class: java.lang.Class<java.nio.channels.spi.SelectorProvider>;
					/**
					 * Gets a provider instance by executing the following steps when called for the first time: <ul> <li> if the system property "java.nio.channels.spi.SelectorProvider" is set, the value of this property is the class name of the provider returned; </li> <li>if there is a provider-configuration file named "java.nio.channels.spi.SelectorProvider" in META-INF/services of a jar file valid in the system class loader, the first class name is the provider's class name; </li> <li> otherwise, a system default provider will be returned.</li> </ul>
					 */
					public static provider(): java.nio.channels.spi.SelectorProvider;
					/**
					 * Creates a new open DatagramChannel.
					 */
					public openDatagramChannel(): java.nio.channels.DatagramChannel;
					/**
					 * Creates a new Pipe.
					 */
					public openPipe(): java.nio.channels.Pipe;
					/**
					 * Creates a new selector.
					 */
					public openSelector(): java.nio.channels.spi.AbstractSelector;
					/**
					 * Creates a new open ServerSocketChannel.
					 */
					public openServerSocketChannel(): java.nio.channels.ServerSocketChannel;
					/**
					 * Create a new open SocketChannel.
					 */
					public openSocketChannel(): java.nio.channels.SocketChannel;
					/**
					 * Returns the channel inherited from the process that created this VM. On Android, this method always returns null because stdin and stdout are never connected to a socket.
					 */
					public inheritedChannel(): java.nio.channels.IChannel;
				}
				/**
				 * AbstractSelector is the base implementation class for selectors. It realizes the interruption of selection by begin and end. It also holds the cancellation and the deletion of the key set.
				 */
				export class AbstractSelector extends java.nio.channels.Selector {
					static class: java.lang.Class<java.nio.channels.spi.AbstractSelector>;
					/**
					 * Closes this selector. This method does nothing if this selector is already closed. The actual closing must be implemented by subclasses in implCloseSelector().
					 */
					public close(): void;
					/**
					 * Implements the closing of this channel.
					 */
					protected implCloseSelector(): void;
					/**
					 * Returns true if this selector is open.
					 */
					public isOpen(): boolean;
					/**
					 * Returns this selector's provider.
					 */
					public provider(): java.nio.channels.spi.SelectorProvider;
					/**
					 * Returns this channel's set of canceled selection keys.
					 */
					protected cancelledKeys(): java.util.ISet<java.nio.channels.SelectionKey>;
					/**
					 * Registers channel with this selector.
					 * @param channel operations the {@link SelectionKey interest set} of {@code
					 * @param operations attachment the attachment for the selection key.
					 * @param attachment 
					 */
					protected register(channel: java.nio.channels.spi.AbstractSelectableChannel, operations: number, attachment: any): java.nio.channels.SelectionKey;
					/**
					 * Deletes the key from the channel's key set.
					 */
					protected deregister(key: java.nio.channels.spi.AbstractSelectionKey): void;
					/**
					 * Indicates the beginning of a code section that includes an I/O operation that is potentially blocking. After this operation, the application should invoke the corresponding end(boolean) method.
					 */
					protected begin(): void;
					/**
					 * Indicates the end of a code section that has been started with begin() and that includes a potentially blocking I/O operation.
					 */
					protected end(): void;
					cancel(key: java.nio.channels.SelectionKey): void;
				}
				/**
				 * AbstractSelectionKey is the base implementation class for selection keys. It implements validation and cancellation methods.
				 */
				export class AbstractSelectionKey extends java.nio.channels.SelectionKey {
					static class: java.lang.Class<java.nio.channels.spi.AbstractSelectionKey>;
					/**
					 * Indicates whether this key is valid. A key is valid as long as it has not been canceled.
					 */
					public isValid(): boolean;
					/**
					 * Cancels this key.
					 */
					public cancel(): void;
				}
				/**
				 * AbstractInterruptibleChannel is the root class for interruptible channels.
				 */
				export class AbstractInterruptibleChannel extends java.lang.Object implements java.nio.channels.IChannel, java.nio.channels.IInterruptibleChannel {
					static class: java.lang.Class<java.nio.channels.spi.AbstractInterruptibleChannel>;
					public isOpen(): boolean;
					/**
					 * Closes an open channel. If the channel is already closed then this method has no effect, otherwise it closes the receiver via the implCloseChannel method.
					 */
					public close(): void;
					/**
					 * Indicates the beginning of a code section that includes an I/O operation that is potentially blocking. After this operation, the application should invoke the corresponding end(boolean) method.
					 */
					protected begin(): void;
					/**
					 * Indicates the end of a code section that has been started with begin() and that includes a potentially blocking I/O operation.
					 * @param success 
					 */
					protected end(success: boolean): void;
					/**
					 * Implements the channel closing behavior.
					 */
					protected implCloseChannel(): void;
				}
				/**
				 * AbstractSelectableChannel is the base implementation class for selectable channels. It declares methods for registering, unregistering and closing selectable channels. It is thread-safe.
				 */
				export class AbstractSelectableChannel extends java.nio.channels.SelectableChannel {
					static class: java.lang.Class<java.nio.channels.spi.AbstractSelectableChannel>;
					/**
					 * Returns the selector provider that has created this channel.
					 */
					public provider(): java.nio.channels.spi.SelectorProvider;
					/**
					 * Indicates whether this channel is registered with one or more selectors.
					 */
					public isRegistered(): boolean;
					/**
					 * Gets this channel's selection key for the specified selector.
					 * @param selector 
					 */
					public keyFor(selector: java.nio.channels.Selector): java.nio.channels.SelectionKey;
					/**
					 * Registers this channel with the specified selector for the specified interest set. If the channel is already registered with the selector, the SelectionKey interest set is updated to interestSet and the corresponding selection key is returned. If the channel is not yet registered, this method calls the register method of selector and adds the selection key to this channel's key set.
					 * @param selector 
					 * @param interestSet 
					 * @param attachment 
					 */
					public register(selector: java.nio.channels.Selector, interestSet: number, attachment: any): java.nio.channels.SelectionKey;
					/**
					 * Implements the channel closing behavior. Calls implCloseSelectableChannel() first, then loops through the list of selection keys and cancels them, which unregisters this channel from all selectors it is registered with.
					 */
					protected implCloseChannel(): void;
					/**
					 * Implements the closing function of the SelectableChannel. This method is called from implCloseChannel().
					 */
					protected implCloseSelectableChannel(): void;
					/**
					 * Indicates whether this channel is in blocking mode.
					 */
					public isBlocking(): boolean;
					/**
					 * Gets the object used for the synchronization of register and configureBlocking.
					 */
					public blockingLock(): any;
					/**
					 * Sets the blocking mode of this channel. A call to this method blocks if other calls to this method or to register are executing. The actual setting of the mode is done by calling implConfigureBlocking(boolean).
					 * @param blockingMode 
					 */
					public configureBlocking(blockingMode: boolean): java.nio.channels.SelectableChannel;
					/**
					 * Implements the configuration of blocking/non-blocking mode.
					 * @param blocking true for blocking, false for non-blocking.
					 */
					protected implConfigureBlocking(blocking: boolean): void;
					deregister(k: java.nio.channels.SelectionKey): void;
					/**
					 * Registers this channel with the specified selector for the specified interest set. If the channel is already registered with the selector, the corresponding selection key is returned but the SelectionKey interest set is updated to operations. The returned key is canceled if the channel is closed while registering is in progress.
					 * @param selector 
					 * @param operations 
					 */
					register(selector: java.nio.channels.Selector, operations: number): java.nio.channels.SelectionKey;
				}
			}
			/**
			 * The interface for channels that can read data into a set of buffers in a single operation. The corresponding interface for writes is GatheringByteChannel.
			 */
			export class ScatteringByteChannel implements java.nio.channels.IReadableByteChannel, java.nio.channels.IScatteringByteChannel {
				constructor(implementation: java.nio.channels.IScatteringByteChannel);
				/**
				 * Reads bytes from this channel into the specified array of buffers.
				 * @param buffers 
				 */
				public read(buffers: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Attempts to read all remaining() bytes from length byte buffers, in order, starting at buffers[offset]. The number of bytes actually read is returned.
				 * @param buffers 
				 * @param offset 
				 * @param length 
				 */
				public read(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Reads bytes from the channel into the given buffer.
				 * @param buffer 
				 */
				read(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * An IllegalSelectorException is thrown when a call is made to register a channel on a selector that has been created by a different provider.
			 */
			export class IllegalSelectorException extends java.lang.IllegalArgumentException {
				/**
				 * Constructs a IllegalSelectorException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.IllegalSelectorException>;
			}
			/**
			 * A NotYetBoundException is thrown if the server socket channel is not bound before an I/O operation is made.
			 */
			export class NotYetBoundException extends java.lang.IllegalStateException {
				/**
				 * Constructs a NotYetBoundException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.NotYetBoundException>;
			}
			/**
			 * A ByteChannel is both readable and writable.
			 */
			export class ByteChannel implements java.nio.channels.IReadableByteChannel, java.nio.channels.IWritableByteChannel, java.nio.channels.IByteChannel {
				constructor(implementation: java.nio.channels.IByteChannel);
				/**
				 * Reads bytes from the channel into the given buffer.
				 * @param buffer 
				 */
				read(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
				/**
				 * Writes bytes from the given buffer to the channel.
				 * @param buffer 
				 */
				write(buffer: java.nio.ByteBuffer): number;
			}
			/**
			 * A channel that can be used with a Selector. The channel must be registered with a selector by calling one of the register methods, which return a SelectionKey object. In order to deregister a channel from a selector, its selection key must be canceled. This can be done explicitly by calling the SelectionKey#cancel() method but it is also done implicitly when the channel or the selector is closed.
			 */
			export class SelectableChannel extends java.nio.channels.spi.AbstractInterruptibleChannel implements java.nio.channels.IChannel {
				static class: java.lang.Class<java.nio.channels.SelectableChannel>;
				/**
				 * Gets the blocking lock which synchronizes the configureBlocking and register methods.
				 */
				public blockingLock(): any;
				/**
				 * Sets the blocking mode of this channel. A call to this method blocks if other calls to this method or to a register method are executing. The new blocking mode is valid for calls to other methods that are invoked after the call to this method. If other methods are already executing when this method is called, they still have the old mode and the call to this method might block depending on the implementation.
				 * @param block 
				 */
				public configureBlocking(block: boolean): java.nio.channels.SelectableChannel;
				/**
				 * Indicates whether this channel is in blocking mode.
				 */
				public isBlocking(): boolean;
				/**
				 * Indicates whether this channel is registered with at least one selector.
				 */
				public isRegistered(): boolean;
				/**
				 * Gets this channel's selection key for the specified selector.
				 * @param sel 
				 */
				public keyFor(sel: java.nio.channels.Selector): java.nio.channels.SelectionKey;
				/**
				 * Gets the provider of this channel.
				 */
				public provider(): java.nio.channels.spi.SelectorProvider;
				/**
				 * Registers this channel with the specified selector for the specified interest set. If the channel is already registered with the selector, the corresponding selection key is returned but the SelectionKey interest set is updated to operations. The returned key is canceled if the channel is closed while registering is in progress.
				 * @param selector 
				 * @param operations 
				 */
				public register(selector: java.nio.channels.Selector, operations: number): java.nio.channels.SelectionKey;
				/**
				 * Registers this channel with the specified selector for the specified interest set and an object to attach. If the channel is already registered with the selector, the corresponding selection key is returned but its SelectionKey interest set is updated to ops and the attached object is updated to att. The returned key is canceled if the channel is closed while registering is in progress.
				 * @param sel 
				 * @param ops 
				 * @param att 
				 */
				public register(sel: java.nio.channels.Selector, ops: number, att: any): java.nio.channels.SelectionKey;
				/**
				 * Gets the set of valid SelectionKey operations of this channel. Instances of a concrete channel class always return the same value.
				 */
				public validOps(): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * The interface for channels that can read data into a set of buffers in a single operation. The corresponding interface for writes is GatheringByteChannel.
			 */
			interface IScatteringByteChannel extends java.nio.channels.IReadableByteChannel {
				/**
				 * Reads bytes from this channel into the specified array of buffers.
				 * @param buffers 
				 */
				read(buffers: native.Array<java.nio.ByteBuffer>): any;
				/**
				 * Attempts to read all remaining() bytes from length byte buffers, in order, starting at buffers[offset]. The number of bytes actually read is returned.
				 * @param buffers 
				 * @param offset 
				 * @param length 
				 */
				read(buffers: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
				/**
				 * Reads bytes from the channel into the given buffer.
				 * @param buffer 
				 */
				read(buffer: java.nio.ByteBuffer): number;
				/**
				 * Returns true if this channel is open.
				 */
				isOpen(): boolean;
				/**
				 * Closes an open channel. If the channel is already closed then this method has no effect. If there is a problem with closing the channel then the method throws an IOException and the exception contains reasons for the failure.
				 */
				close(): void;
			}
			/**
			 * An IllegalBlockingModeException is thrown when an operation that requires a specific blocking mode is invoked on a channel that is in a different blocking mode.
			 */
			export class IllegalBlockingModeException extends java.lang.IllegalStateException {
				/**
				 * Constructs a IllegalBlockingModeException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.channels.IllegalBlockingModeException>;
			}
		}
		export class DatagramChannelImpl extends java.nio.channels.DatagramChannel implements java.nio.IFileDescriptorChannel {
			static class: java.lang.Class<java.nio.DatagramChannelImpl>;
			public socket(): java.net.DatagramSocket;
			/**
			 * Returns the local address to which the socket is bound.
			 */
			getLocalAddress(): java.net.InetAddress;
			/**
			 *  java.nio.channels.DatagramChannel#isConnected()
			 */
			public isConnected(): boolean;
			/**
			 *  java.nio.channels.DatagramChannel#connect(java.net.SocketAddress)
			 */
			public connect(address: java.net.SocketAddress): java.nio.channels.DatagramChannel;
			/**
			 *  java.nio.channels.DatagramChannel#disconnect()
			 */
			public disconnect(): java.nio.channels.DatagramChannel;
			public receive(target: java.nio.ByteBuffer): java.net.SocketAddress;
			public send(source: java.nio.ByteBuffer, socketAddress: java.net.SocketAddress): number;
			public read(target: java.nio.ByteBuffer): number;
			public read(targets: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
			public write(src: java.nio.ByteBuffer): number;
			/**
			 *  java.nio.channels.DatagramChannel#write(java.nio.ByteBuffer[], int, int)
			 */
			public write(sources: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
			protected implCloseSelectableChannel(): void;
			protected implConfigureBlocking(blocking: boolean): void;
			public getFD(): java.io.FileDescriptor;
			/**
			 * Reads a datagram from this channel into an array of byte buffers.
			 * @param targets 
			 */
			read(targets: native.Array<java.nio.ByteBuffer>): any;
			/**
			 * Writes a datagram from the byte buffers to this channel.
			 * @param sources 
			 */
			write(sources: native.Array<java.nio.ByteBuffer>): any;
		}
		export module DatagramChannelImpl {
			export class DatagramSocketAdapter extends java.net.DatagramSocket {
				static class: java.lang.Class<java.nio.DatagramChannelImpl.DatagramSocketAdapter>;
				public getChannel(): java.nio.channels.DatagramChannel;
				/**
				 *  java.net.DatagramSocket#isBound()
				 */
				public isBound(): boolean;
				/**
				 *  java.net.DatagramSocket#isConnected()
				 */
				public isConnected(): boolean;
				/**
				 *  java.net.DatagramSocket#getInetAddress()
				 */
				public getInetAddress(): java.net.InetAddress;
				/**
				 *  java.net.DatagramSocket#getLocalAddress()
				 */
				public getLocalAddress(): java.net.InetAddress;
				/**
				 *  java.net.DatagramSocket#getPort()
				 */
				public getPort(): number;
				/**
				 *  java.net.DatagramSocket#bind(java.net.SocketAddress)
				 */
				public bind(localAddr: java.net.SocketAddress): void;
				/**
				 *  java.net.DatagramSocket#receive(java.net.DatagramPacket)
				 */
				public receive(packet: java.net.DatagramPacket): void;
				/**
				 *  java.net.DatagramSocket#send(java.net.DatagramPacket)
				 */
				public send(packet: java.net.DatagramPacket): void;
				/**
				 *  java.net.DatagramSocket#close()
				 */
				public close(): void;
				/**
				 *  java.net.DatagramSocket#disconnect()
				 */
				public disconnect(): void;
			}
		}
		/**
		 * MappedByteBuffer is a special kind of direct byte buffer which maps a region of file to memory.
		 */
		export class MappedByteBuffer extends java.nio.ByteBuffer {
			static class: java.lang.Class<java.nio.MappedByteBuffer>;
			/**
			 * Returns true if there is a high probability that every page of this buffer is currently loaded in RAM, meaning that accesses will not cause a page fault. It is impossible to give a strong guarantee since this is only a snapshot of a dynamic situation.
			 */
			public isLoaded(): boolean;
			/**
			 * Attempts to load every page of this buffer into RAM. See #isLoaded.
			 */
			public load(): java.nio.MappedByteBuffer;
			/**
			 * Writes all changes of the buffer to the mapped file. If the mapped file is stored on a local device, it is guaranteed that the changes are written to the file. No such guarantee is given if the file is located on a remote device.
			 */
			public force(): java.nio.MappedByteBuffer;
		}
		export class SelectorImpl extends java.nio.channels.spi.AbstractSelector {
			constructor(selectorProvider: java.nio.channels.spi.SelectorProvider);
			static class: java.lang.Class<java.nio.SelectorImpl>;
			protected implCloseSelector(): void;
			protected register(channel: java.nio.channels.spi.AbstractSelectableChannel, operations: number, attachment: any): java.nio.channels.SelectionKey;
			public keys(): java.util.ISet<java.nio.channels.SelectionKey>;
			public select(): number;
			public select(timeout: number): number;
			public selectNow(): number;
			public selectedKeys(): java.util.ISet<java.nio.channels.SelectionKey>;
			public wakeup(): java.nio.channels.Selector;
		}
		export module SelectorImpl {
			export class UnaddableSet<E> extends java.lang.Object {
				static class: java.lang.Class<java.nio.SelectorImpl.UnaddableSet<any>>;
				public equals(object: any): boolean;
				public hashCode(): number;
				public add(object: E): boolean;
				public addAll(c: java.util.ICollection<any>): boolean;
				public clear(): void;
				public contains(object: any): boolean;
				public containsAll(c: java.util.ICollection<any>): boolean;
				public isEmpty(): boolean;
				public iterator(): java.util.IIterator<E>;
				public remove(object: any): boolean;
				public removeAll(c: java.util.ICollection<any>): boolean;
				public retainAll(c: java.util.ICollection<any>): boolean;
				public size(): number;
				public toArray(): native.Array<any>;
				public toArray<T>(a: native.Array<T>): native.Array<T>;
			}
		}
		/**
		 * A buffer of ints.
		 */
		export class IntBuffer extends java.nio.Buffer {
			static class: java.lang.Class<java.nio.IntBuffer>;
			/**
			 * Creates an int buffer based on a newly allocated int array.
			 * @param capacity 
			 */
			public static allocate(capacity: number): java.nio.IntBuffer;
			/**
			 * Creates a new int buffer by wrapping the given int array.
			 * @param array 
			 */
			public static wrap(array: native.Array<number>): java.nio.IntBuffer;
			/**
			 * Creates a new int buffer by wrapping the given int array.
			 * @param array 
			 * @param start 
			 * @param intCount 
			 */
			public static wrap(array: native.Array<number>, start: number, intCount: number): java.nio.IntBuffer;
			public array(): native.Array<number>;
			public arrayOffset(): number;
			/**
			 * Returns a read-only buffer that shares its content with this buffer.
			 */
			public asReadOnlyBuffer(): java.nio.IntBuffer;
			/**
			 * Compacts this int buffer.
			 */
			public compact(): java.nio.IntBuffer;
			/**
			 * Compares the remaining ints of this buffer to another int buffer's remaining ints.
			 * @param otherBuffer 
			 */
			public compareTo(otherBuffer: java.nio.IntBuffer): number;
			/**
			 * Returns a duplicated buffer that shares its content with this buffer.
			 */
			public duplicate(): java.nio.IntBuffer;
			/**
			 * Checks whether this int buffer is equal to another object.
			 * @param other 
			 */
			public equals(other: any): boolean;
			/**
			 * Returns the int at the current position and increases the position by 1.
			 */
			public get(): number;
			/**
			 * Reads ints from the current position into the specified int array and increases the position by the number of ints read.
			 * @param dst 
			 */
			public get(dst: native.Array<number>): java.nio.IntBuffer;
			/**
			 * Reads ints from the current position into the specified int array, starting from the specified offset, and increases the position by the number of ints read.
			 * @param dst 
			 * @param dstOffset 
			 * @param intCount 
			 */
			public get(dst: native.Array<number>, dstOffset: number, intCount: number): java.nio.IntBuffer;
			/**
			 * Returns an int at the specified index; the position is not changed.
			 * @param index 
			 */
			public get(index: number): number;
			public hasArray(): boolean;
			/**
			 * Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates whether this buffer is direct. A direct buffer will try its best to take advantage of native memory APIs and it may not stay in the Java heap, so it is not affected by garbage collection.
			 */
			public isDirect(): boolean;
			/**
			 * Returns the byte order used by this buffer when converting ints from/to bytes.
			 */
			public order(): java.nio.ByteOrder;
			/**
			 * Child class implements this method to realize array().
			 */
			protectedArray(): native.Array<number>;
			/**
			 * Child class implements this method to realize arrayOffset().
			 */
			protectedArrayOffset(): number;
			/**
			 * Child class implements this method to realize hasArray().
			 */
			protectedHasArray(): boolean;
			/**
			 * Writes the given int to the current position and increases the position by 1.
			 * @param i 
			 */
			public put(i: number): java.nio.IntBuffer;
			/**
			 * Writes ints from the given int array to the current position and increases the position by the number of ints written.
			 * @param src 
			 */
			public put(src: native.Array<number>): java.nio.IntBuffer;
			/**
			 * Writes ints from the given int array, starting from the specified offset, to the current position and increases the position by the number of ints written.
			 * @param src 
			 * @param srcOffset 
			 * @param intCount 
			 */
			public put(src: native.Array<number>, srcOffset: number, intCount: number): java.nio.IntBuffer;
			/**
			 * Writes all the remaining ints of the src int buffer to this buffer's current position, and increases both buffers' position by the number of ints copied.
			 * @param src 
			 */
			public put(src: java.nio.IntBuffer): java.nio.IntBuffer;
			/**
			 * Write a int to the specified index of this buffer; the position is not changed.
			 * @param index 
			 * @param i 
			 */
			public put(index: number, i: number): java.nio.IntBuffer;
			/**
			 * Returns a sliced buffer that shares its content with this buffer.
			 */
			public slice(): java.nio.IntBuffer;
		}
		/**
		 * DoubleArrayBuffer, ReadWriteDoubleArrayBuffer and ReadOnlyDoubleArrayBuffer compose the implementation of array based double buffers.
		 */
		export class ReadOnlyDoubleArrayBuffer extends java.nio.DoubleArrayBuffer {
			static class: java.lang.Class<java.nio.ReadOnlyDoubleArrayBuffer>;
			static copy(other: java.nio.DoubleArrayBuffer, markOfOther: number): java.nio.ReadOnlyDoubleArrayBuffer;
			public asReadOnlyBuffer(): java.nio.DoubleBuffer;
			public compact(): java.nio.DoubleBuffer;
			public duplicate(): java.nio.DoubleBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.DoubleBuffer;
			public put(index: number, c: number): java.nio.DoubleBuffer;
			public put(src: native.Array<number>, srcOffset: number, byteCount: number): java.nio.DoubleBuffer;
			public put(buf: java.nio.DoubleBuffer): java.nio.DoubleBuffer;
			public slice(): java.nio.DoubleBuffer;
			/**
			 * Writes doubles from the given double array to the current position and increases the position by the number of doubles written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.DoubleBuffer;
		}
		/**
		 * LongArrayBuffer, ReadWriteLongArrayBuffer and ReadOnlyLongArrayBuffer compose the implementation of array based long buffers.
		 */
		export class ReadWriteLongArrayBuffer extends java.nio.LongArrayBuffer {
			static class: java.lang.Class<java.nio.ReadWriteLongArrayBuffer>;
			static copy(other: java.nio.LongArrayBuffer, markOfOther: number): java.nio.ReadWriteLongArrayBuffer;
			public asReadOnlyBuffer(): java.nio.LongBuffer;
			public compact(): java.nio.LongBuffer;
			public duplicate(): java.nio.LongBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.LongBuffer;
			public put(index: number, c: number): java.nio.LongBuffer;
			public put(src: native.Array<number>, srcOffset: number, longCount: number): java.nio.LongBuffer;
			public slice(): java.nio.LongBuffer;
			/**
			 * Writes longs from the given long array to the current position and increases the position by the number of longs written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.LongBuffer;
			/**
			 * Writes all the remaining longs of the src long buffer to this buffer's current position, and increases both buffers' position by the number of longs copied.
			 * @param src 
			 */
			put(src: java.nio.LongBuffer): java.nio.LongBuffer;
		}
		export class DirectByteBuffer extends java.nio.BaseByteBuffer {
			static class: java.lang.Class<java.nio.DirectByteBuffer>;
			public get(dst: native.Array<number>, dstOffset: number, byteCount: number): java.nio.ByteBuffer;
			public get(): number;
			public get(index: number): number;
			public getChar(): string;
			public getChar(index: number): string;
			public getDouble(): any;
			public getDouble(index: number): any;
			public getFloat(): number;
			public getFloat(index: number): number;
			public getInt(): number;
			public getInt(index: number): number;
			public getLong(): any;
			public getLong(index: number): any;
			public getShort(): number;
			public getShort(index: number): number;
			public isDirect(): boolean;
			public free(): void;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			/**
			 * Reads bytes from the current position into the specified byte array and increases the position by the number of bytes read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.ByteBuffer;
		}
		/**
		 * A buffer of shorts.
		 */
		export class ShortBuffer extends java.nio.Buffer {
			static class: java.lang.Class<java.nio.ShortBuffer>;
			/**
			 * Creates a short buffer based on a newly allocated short array.
			 * @param capacity 
			 */
			public static allocate(capacity: number): java.nio.ShortBuffer;
			/**
			 * Creates a new short buffer by wrapping the given short array.
			 * @param array 
			 */
			public static wrap(array: native.Array<number>): java.nio.ShortBuffer;
			/**
			 * Creates a new short buffer by wrapping the given short array.
			 * @param array 
			 * @param start 
			 * @param shortCount 
			 */
			public static wrap(array: native.Array<number>, start: number, shortCount: number): java.nio.ShortBuffer;
			public array(): native.Array<number>;
			public arrayOffset(): number;
			/**
			 * Returns a read-only buffer that shares its content with this buffer.
			 */
			public asReadOnlyBuffer(): java.nio.ShortBuffer;
			/**
			 * Compacts this short buffer.
			 */
			public compact(): java.nio.ShortBuffer;
			/**
			 * Compare the remaining shorts of this buffer to another short buffer's remaining shorts.
			 * @param otherBuffer 
			 */
			public compareTo(otherBuffer: java.nio.ShortBuffer): number;
			/**
			 * Returns a duplicated buffer that shares its content with this buffer.
			 */
			public duplicate(): java.nio.ShortBuffer;
			/**
			 * Checks whether this short buffer is equal to another object.
			 * @param other 
			 */
			public equals(other: any): boolean;
			/**
			 * Returns the short at the current position and increases the position by 1.
			 */
			public get(): number;
			/**
			 * Reads shorts from the current position into the specified short array and increases the position by the number of shorts read.
			 * @param dst 
			 */
			public get(dst: native.Array<number>): java.nio.ShortBuffer;
			/**
			 * Reads shorts from the current position into the specified short array, starting from the specified offset, and increases the position by the number of shorts read.
			 * @param dst 
			 * @param dstOffset 
			 * @param shortCount 
			 */
			public get(dst: native.Array<number>, dstOffset: number, shortCount: number): java.nio.ShortBuffer;
			/**
			 * Returns the short at the specified index; the position is not changed.
			 * @param index 
			 */
			public get(index: number): number;
			public hasArray(): boolean;
			/**
			 * Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates whether this buffer is direct. A direct buffer will try its best to take advantage of native memory APIs and it may not stay in the Java heap, so it is not affected by garbage collection.
			 */
			public isDirect(): boolean;
			/**
			 * Returns the byte order used by this buffer when converting shorts from/to bytes.
			 */
			public order(): java.nio.ByteOrder;
			/**
			 * Child class implements this method to realize array().
			 */
			protectedArray(): native.Array<number>;
			/**
			 * Child class implements this method to realize arrayOffset().
			 */
			protectedArrayOffset(): number;
			/**
			 * Child class implements this method to realize hasArray().
			 */
			protectedHasArray(): boolean;
			/**
			 * Writes the given short to the current position and increases the position by 1.
			 * @param s 
			 */
			public put(s: number): java.nio.ShortBuffer;
			/**
			 * Writes shorts from the given short array to the current position and increases the position by the number of shorts written.
			 * @param src 
			 */
			public put(src: native.Array<number>): java.nio.ShortBuffer;
			/**
			 * Writes shorts from the given short array, starting from the specified offset, to the current position and increases the position by the number of shorts written.
			 * @param src 
			 * @param srcOffset 
			 * @param shortCount 
			 */
			public put(src: native.Array<number>, srcOffset: number, shortCount: number): java.nio.ShortBuffer;
			/**
			 * Writes all the remaining shorts of the src short buffer to this buffer's current position, and increases both buffers' position by the number of shorts copied.
			 * @param src 
			 */
			public put(src: java.nio.ShortBuffer): java.nio.ShortBuffer;
			/**
			 * Writes a short to the specified index of this buffer; the position is not changed.
			 * @param index 
			 * @param s 
			 */
			public put(index: number, s: number): java.nio.ShortBuffer;
			/**
			 * Returns a sliced buffer that shares its content with this buffer.
			 */
			public slice(): java.nio.ShortBuffer;
		}
		/**
		 * Allows access to the FileDescriptor underlying a Channel.
		 */
		export class FileDescriptorChannel implements java.nio.IFileDescriptorChannel {
			constructor(implementation: java.nio.IFileDescriptorChannel);
			public getFD(): java.io.FileDescriptor;
		}
		/**
		 * This class wraps a byte buffer to be a short buffer.
		 */
		export class ShortToByteBufferAdapter extends java.nio.ShortBuffer {
			static class: java.lang.Class<java.nio.ShortToByteBufferAdapter>;
			static asShortBuffer(byteBuffer: java.nio.ByteBuffer): java.nio.ShortBuffer;
			public asReadOnlyBuffer(): java.nio.ShortBuffer;
			public compact(): java.nio.ShortBuffer;
			public duplicate(): java.nio.ShortBuffer;
			public get(): number;
			public get(index: number): number;
			public get(dst: native.Array<number>, dstOffset: number, shortCount: number): java.nio.ShortBuffer;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			public order(): java.nio.ByteOrder;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.ShortBuffer;
			public put(index: number, c: number): java.nio.ShortBuffer;
			public put(src: native.Array<number>, srcOffset: number, shortCount: number): java.nio.ShortBuffer;
			public slice(): java.nio.ShortBuffer;
			/**
			 * Reads shorts from the current position into the specified short array and increases the position by the number of shorts read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.ShortBuffer;
			/**
			 * Writes shorts from the given short array to the current position and increases the position by the number of shorts written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.ShortBuffer;
			/**
			 * Writes all the remaining shorts of the src short buffer to this buffer's current position, and increases both buffers' position by the number of shorts copied.
			 * @param src 
			 */
			put(src: java.nio.ShortBuffer): java.nio.ShortBuffer;
		}
		/**
		 * A ReadOnlyBufferException is thrown when some write operation is called on a read-only buffer.
		 */
		export class ReadOnlyBufferException extends java.lang.UnsupportedOperationException {
			/**
			 * Constructs a ReadOnlyBufferException.
			 */
			constructor();
			static class: java.lang.Class<java.nio.ReadOnlyBufferException>;
		}
		/**
		 * Rather than duplicate all the code from ReadOnlyDirectByteBuffer and ReadWriteDirectByteBuffer (and their superclasses), we delegate to one or the other. The tricky part is that we need to keep our fields in sync with our delegate's fields. There are lots of methods that access the fields directly.
		 */
		export class MappedByteBufferAdapter extends java.nio.MappedByteBuffer {
			constructor(block: java.nio.MemoryBlock, capacity: number, offset: number, mode: java.nio.channels.FileChannel.MapMode);
			static class: java.lang.Class<java.nio.MappedByteBufferAdapter>;
			limitImpl(newLimit: number): void;
			positionImpl(newPosition: number): void;
			public asCharBuffer(): java.nio.CharBuffer;
			public asDoubleBuffer(): java.nio.DoubleBuffer;
			public asFloatBuffer(): java.nio.FloatBuffer;
			public asIntBuffer(): java.nio.IntBuffer;
			public asLongBuffer(): java.nio.LongBuffer;
			public asReadOnlyBuffer(): java.nio.ByteBuffer;
			public asShortBuffer(): java.nio.ShortBuffer;
			public compact(): java.nio.ByteBuffer;
			public duplicate(): java.nio.ByteBuffer;
			public get(): number;
			public get(index: number): number;
			public get(dst: native.Array<number>, dstOffset: number, byteCount: number): java.nio.ByteBuffer;
			public getChar(): string;
			public getChar(index: number): string;
			public getDouble(): any;
			public getDouble(index: number): any;
			public getFloat(): number;
			public getFloat(index: number): number;
			public getInt(): number;
			public getInt(index: number): number;
			public getLong(): any;
			public getLong(index: number): any;
			public getShort(): number;
			public getShort(index: number): number;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			orderImpl(byteOrder: java.nio.ByteOrder): void;
			public put(b: number): java.nio.ByteBuffer;
			public put(src: native.Array<number>, srcOffset: number, byteCount: number): java.nio.ByteBuffer;
			public put(index: number, b: number): java.nio.ByteBuffer;
			public putChar(value: string): java.nio.ByteBuffer;
			public putChar(index: number, value: string): java.nio.ByteBuffer;
			public putDouble(value: number): java.nio.ByteBuffer;
			public putDouble(index: number, value: number): java.nio.ByteBuffer;
			public putFloat(value: number): java.nio.ByteBuffer;
			public putFloat(index: number, value: number): java.nio.ByteBuffer;
			public putInt(index: number, value: number): java.nio.ByteBuffer;
			public putInt(value: number): java.nio.ByteBuffer;
			public putLong(index: number, value: number): java.nio.ByteBuffer;
			public putLong(value: number): java.nio.ByteBuffer;
			public putShort(index: number, value: number): java.nio.ByteBuffer;
			public putShort(value: number): java.nio.ByteBuffer;
			public slice(): java.nio.ByteBuffer;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public free(): void;
			/**
			 * Reads bytes from the current position into the specified byte array and increases the position by the number of bytes read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.ByteBuffer;
			/**
			 * Writes bytes in the given byte array to the current position and increases the position by the number of bytes written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.ByteBuffer;
			/**
			 * Writes all the remaining bytes of the src byte buffer to this buffer's current position, and increases both buffers' position by the number of bytes copied.
			 * @param src 
			 */
			put(src: java.nio.ByteBuffer): java.nio.ByteBuffer;
		}
		/**
		 * FloatArrayBuffer, ReadWriteFloatArrayBuffer and ReadOnlyFloatArrayBuffer compose the implementation of array based float buffers.
		 */
		export class ReadOnlyFloatArrayBuffer extends java.nio.FloatArrayBuffer {
			static class: java.lang.Class<java.nio.ReadOnlyFloatArrayBuffer>;
			static copy(other: java.nio.FloatArrayBuffer, markOfOther: number): java.nio.ReadOnlyFloatArrayBuffer;
			public asReadOnlyBuffer(): java.nio.FloatBuffer;
			public compact(): java.nio.FloatBuffer;
			public duplicate(): java.nio.FloatBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.FloatBuffer;
			public put(index: number, c: number): java.nio.FloatBuffer;
			public put(buf: java.nio.FloatBuffer): java.nio.FloatBuffer;
			public put(src: native.Array<number>, srcOffset: number, byteCount: number): java.nio.FloatBuffer;
			public slice(): java.nio.FloatBuffer;
			/**
			 * Writes floats from the given float array to the current position and increases the position by the number of floats written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.FloatBuffer;
		}
		export module charset {
			/**
			 * A converter that can convert a byte sequence from a charset into a 16-bit Unicode character sequence.
			 */
			export class CharsetDecoder extends java.lang.Object {
				static class: java.lang.Class<java.nio.charset.CharsetDecoder>;
				/**
				 * Returns the average number of characters created by this decoder for a single input byte.
				 */
				public averageCharsPerByte(): number;
				/**
				 * Returns the Charset which this decoder uses.
				 */
				public charset(): java.nio.charset.Charset;
				/**
				 * This is a facade method for the decoding operation.
				 * @param input in
				 */
				public decode(input: java.nio.ByteBuffer): java.nio.CharBuffer;
				/**
				 * Decodes bytes starting at the current position of the given input buffer, and writes the equivalent character sequence into the given output buffer from its current position.
				 * @param input in
				 * @param out 
				 * @param endOfInput 
				 */
				public decode(input: java.nio.ByteBuffer, out: java.nio.CharBuffer, endOfInput: boolean): java.nio.charset.CoderResult;
				/**
				 * Decodes bytes into characters. This method is called by the #decode(ByteBuffer, CharBuffer, boolean) decode method.
				 * @param input in
				 * @param out 
				 */
				protected decodeLoop(input: java.nio.ByteBuffer, out: java.nio.CharBuffer): java.nio.charset.CoderResult;
				/**
				 * Gets the charset detected by this decoder; this method is optional.
				 */
				public detectedCharset(): java.nio.charset.Charset;
				/**
				 * Flushes this decoder.
				 * @param out 
				 */
				public flush(out: java.nio.CharBuffer): java.nio.charset.CoderResult;
				/**
				 * Flushes this decoder. The default implementation does nothing and always returns <code>CoderResult.UNDERFLOW</code>; this method can be overridden if needed.
				 * @param out 
				 */
				protected implFlush(out: java.nio.CharBuffer): java.nio.charset.CoderResult;
				/**
				 * Notifies that this decoder's <code>CodingErrorAction</code> specified for malformed input error has been changed. The default implementation does nothing; this method can be overridden if needed.
				 * @param newAction 
				 */
				protected implOnMalformedInput(newAction: java.nio.charset.CodingErrorAction): void;
				/**
				 * Notifies that this decoder's <code>CodingErrorAction</code> specified for unmappable character error has been changed. The default implementation does nothing; this method can be overridden if needed.
				 * @param newAction 
				 */
				protected implOnUnmappableCharacter(newAction: java.nio.charset.CodingErrorAction): void;
				/**
				 * Notifies that this decoder's replacement has been changed. The default implementation does nothing; this method can be overridden if needed.
				 * @param newReplacement 
				 */
				protected implReplaceWith(newReplacement: string): void;
				/**
				 * Reset this decoder's charset related state. The default implementation does nothing; this method can be overridden if needed.
				 */
				protected implReset(): void;
				/**
				 * Indicates whether this decoder implements an auto-detecting charset.
				 */
				public isAutoDetecting(): boolean;
				/**
				 * Indicates whether this decoder has detected a charset; this method is optional.
				 */
				public isCharsetDetected(): boolean;
				/**
				 * Returns this decoder's <code>CodingErrorAction</code> when malformed input occurred during the decoding process.
				 */
				public malformedInputAction(): java.nio.charset.CodingErrorAction;
				/**
				 * Returns the maximum number of characters which can be created by this decoder for one input byte, must be positive.
				 */
				public maxCharsPerByte(): number;
				/**
				 * Sets this decoder's action on malformed input errors.
				 * @param newAction 
				 */
				public onMalformedInput(newAction: java.nio.charset.CodingErrorAction): java.nio.charset.CharsetDecoder;
				/**
				 * Sets this decoder's action on unmappable character errors.
				 * @param newAction 
				 */
				public onUnmappableCharacter(newAction: java.nio.charset.CodingErrorAction): java.nio.charset.CharsetDecoder;
				/**
				 * Returns the replacement string, which is never null or empty.
				 */
				public replacement(): string;
				/**
				 * Sets the new replacement string.
				 * @param replacement 
				 */
				public replaceWith(replacement: string): java.nio.charset.CharsetDecoder;
				/**
				 * Resets this decoder. This method will reset the internal status, and then calls <code>implReset()</code> to reset any status related to the specific charset.
				 */
				public reset(): java.nio.charset.CharsetDecoder;
				/**
				 * Returns this decoder's <code>CodingErrorAction</code> when an unmappable character error occurred during the decoding process.
				 */
				public unmappableCharacterAction(): java.nio.charset.CodingErrorAction;
			}
			/**
			 * Used to indicate what kind of actions to take in case of encoding/decoding errors. Currently three actions are defined: IGNORE, REPLACE and REPORT.
			 */
			export class CodingErrorAction extends java.lang.Object {
				/**
				 * Denotes the action to ignore any errors.
				 */
				static IGNORE: java.nio.charset.CodingErrorAction;
				/**
				 * Denotes the action to fill in the output with a replacement character when malformed input or an unmappable character is encountered.
				 */
				static REPLACE: java.nio.charset.CodingErrorAction;
				/**
				 * Denotes the action to report the encountered error in an appropriate manner, for example to throw an exception or return an informative result.
				 */
				static REPORT: java.nio.charset.CodingErrorAction;
				static class: java.lang.Class<java.nio.charset.CodingErrorAction>;
				/**
				 * Returns a text description of this action indication.
				 */
				public toString(): string;
			}
			export class CharsetDecoderICU extends java.nio.charset.CharsetDecoder {
				static class: java.lang.Class<java.nio.charset.CharsetDecoderICU>;
				public static newInstance(cs: java.nio.charset.Charset, icuCanonicalName: string): java.nio.charset.CharsetDecoderICU;
				protected implReplaceWith(newReplacement: string): void;
				protected implOnMalformedInput(newAction: java.nio.charset.CodingErrorAction): void;
				protected implOnUnmappableCharacter(newAction: java.nio.charset.CodingErrorAction): void;
				protected implReset(): void;
				protected implFlush(out: java.nio.CharBuffer): java.nio.charset.CoderResult;
				protected decodeLoop(input: java.nio.ByteBuffer, out: java.nio.CharBuffer): java.nio.charset.CoderResult;
				protected finalize(): void;
			}
			/**
			 * A charset is a named mapping between Unicode characters and byte sequences. Every Charset can <i>decode</i>, converting a byte sequence into a sequence of characters, and some can also <i>encode</i>, converting a sequence of characters into a byte sequence. Use the method #canEncode to find out whether a charset supports both.
			 */
			export class Charset extends java.lang.Object {
				static class: java.lang.Class<java.nio.charset.Charset>;
				/**
				 * Returns an immutable case-insensitive map from canonical names to Charset instances. If multiple charsets have the same canonical name, it is unspecified which is returned in the map. This method may be slow. If you know which charset you're looking for, use #forName.
				 */
				public static availableCharsets(): java.util.ISortedMap<string, java.nio.charset.Charset>;
				/**
				 * Returns a Charset instance for the named charset.
				 * @param charsetName a charset name (either canonical or an alias)
				 */
				public static forName(charsetName: string): java.nio.charset.Charset;
				/**
				 * Determines whether the specified charset is supported by this runtime.
				 * @param charsetName 
				 */
				public static isSupported(charsetName: string): boolean;
				/**
				 * Determines whether this charset is a superset of the given charset. A charset C1 contains charset C2 if every character representable by C2 is also representable by C1. This means that lossless conversion is possible from C2 to C1 (but not necessarily the other way round). It does <i>not</i> imply that the two charsets use the same byte sequences for the characters they share.
				 * @param charset 
				 */
				public contains(charset: java.nio.charset.Charset): boolean;
				/**
				 * Gets a new instance of an encoder for this charset.
				 */
				public newEncoder(): java.nio.charset.CharsetEncoder;
				/**
				 * Gets a new instance of a decoder for this charset.
				 */
				public newDecoder(): java.nio.charset.CharsetDecoder;
				/**
				 * Gets the canonical name of this charset.
				 */
				public name(): string;
				/**
				 * Gets the set of this charset's aliases.
				 */
				public aliases(): java.util.ISet<string>;
				/**
				 * Gets the name of this charset for the default locale.
				 */
				public displayName(): string;
				/**
				 * Gets the name of this charset for the specified locale.
				 * @param l 
				 */
				public displayName(l: java.util.Locale): string;
				/**
				 * Indicates whether this charset is known to be registered in the IANA Charset Registry.
				 */
				public isRegistered(): boolean;
				/**
				 * Returns true if this charset supports encoding, false otherwise.
				 */
				public canEncode(): boolean;
				/**
				 * Returns a new ByteBuffer containing the bytes encoding the characters from buffer. This method uses CodingErrorAction.REPLACE.
				 * @param buffer 
				 */
				public encode(buffer: java.nio.CharBuffer): java.nio.ByteBuffer;
				/**
				 * Returns a new ByteBuffer containing the bytes encoding the characters from s. This method uses CodingErrorAction.REPLACE.
				 * @param s the string to be encoded.
				 */
				public encode(s: string): java.nio.ByteBuffer;
				/**
				 * Returns a new CharBuffer containing the characters decoded from buffer. This method uses CodingErrorAction.REPLACE.
				 * @param buffer 
				 */
				public decode(buffer: java.nio.ByteBuffer): java.nio.CharBuffer;
				/**
				 * Compares this charset with the given charset. This comparison is based on the case insensitive canonical names of the charsets.
				 * @param charset 
				 */
				public compareTo(charset: java.nio.charset.Charset): number;
				/**
				 * Determines whether this charset equals to the given object. They are considered to be equal if they have the same canonical name.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Gets the hash code of this charset.
				 */
				public hashCode(): number;
				/**
				 * Gets a string representation of this charset. Usually this contains the canonical name of the charset.
				 */
				public toString(): string;
				/**
				 * Returns the system's default charset. This is determined during VM startup, and will not change thereafter. On Android, the default charset is UTF-8.
				 */
				public static defaultCharset(): java.nio.charset.Charset;
			}
			/**
			 * A CharacterCodingException is thrown when an encoding or decoding error occurs.
			 */
			export class CharacterCodingException extends java.io.IOException {
				/**
				 * Constructs a new CharacterCodingException.
				 */
				constructor();
				static class: java.lang.Class<java.nio.charset.CharacterCodingException>;
			}
			/**
			 * Transforms a sequence of 16-bit Java characters to a byte sequence in some encoding.
			 */
			export class CharsetEncoder extends java.lang.Object {
				static class: java.lang.Class<java.nio.charset.CharsetEncoder>;
				/**
				 * Returns the average number of bytes created by this encoder for a single input character.
				 */
				public averageBytesPerChar(): number;
				/**
				 * Checks if the given character can be encoded by this encoder.
				 * @param c 
				 */
				public canEncode(c: string): boolean;
				/**
				 * Returns the Charset which this encoder uses.
				 */
				public charset(): java.nio.charset.Charset;
				/**
				 * This is a facade method for the encoding operation.
				 * @param input in
				 */
				public encode(input: java.nio.CharBuffer): java.nio.ByteBuffer;
				/**
				 * Encodes characters starting at the current position of the given input buffer, and writes the equivalent byte sequence into the given output buffer from its current position.
				 * @param input in
				 * @param out 
				 * @param endOfInput 
				 */
				public encode(input: java.nio.CharBuffer, out: java.nio.ByteBuffer, endOfInput: boolean): java.nio.charset.CoderResult;
				/**
				 * Encodes characters into bytes. This method is called by #encode(CharBuffer, ByteBuffer, boolean) encode.
				 * @param input in
				 * @param out 
				 */
				protected encodeLoop(input: java.nio.CharBuffer, out: java.nio.ByteBuffer): java.nio.charset.CoderResult;
				/**
				 * Flushes this encoder.
				 * @param out 
				 */
				public flush(out: java.nio.ByteBuffer): java.nio.charset.CoderResult;
				/**
				 * Flushes this encoder. The default implementation does nothing and always returns <code>CoderResult.UNDERFLOW</code>; this method can be overridden if needed.
				 * @param out 
				 */
				protected implFlush(out: java.nio.ByteBuffer): java.nio.charset.CoderResult;
				/**
				 * Notifies that this encoder's <code>CodingErrorAction</code> specified for malformed input error has been changed. The default implementation does nothing; this method can be overridden if needed.
				 * @param newAction 
				 */
				protected implOnMalformedInput(newAction: java.nio.charset.CodingErrorAction): void;
				/**
				 * Notifies that this encoder's <code>CodingErrorAction</code> specified for unmappable character error has been changed. The default implementation does nothing; this method can be overridden if needed.
				 * @param newAction 
				 */
				protected implOnUnmappableCharacter(newAction: java.nio.charset.CodingErrorAction): void;
				/**
				 * Notifies that this encoder's replacement has been changed. The default implementation does nothing; this method can be overridden if needed.
				 * @param newReplacement 
				 */
				protected implReplaceWith(newReplacement: native.Array<number>): void;
				/**
				 * Resets this encoder's charset related state. The default implementation does nothing; this method can be overridden if needed.
				 */
				protected implReset(): void;
				/**
				 * Checks if the given argument is legal as this encoder's replacement byte array.
				 * @param replacement 
				 */
				public isLegalReplacement(replacement: native.Array<number>): boolean;
				/**
				 * Returns this encoder's <code>CodingErrorAction</code> when a malformed input error occurred during the encoding process.
				 */
				public malformedInputAction(): java.nio.charset.CodingErrorAction;
				/**
				 * Returns the maximum number of bytes which can be created by this encoder for one input character, must be positive.
				 */
				public maxBytesPerChar(): number;
				/**
				 * Sets this encoder's action on malformed input error.
				 * @param newAction 
				 */
				public onMalformedInput(newAction: java.nio.charset.CodingErrorAction): java.nio.charset.CharsetEncoder;
				/**
				 * Sets this encoder's action on unmappable character error.
				 * @param newAction 
				 */
				public onUnmappableCharacter(newAction: java.nio.charset.CodingErrorAction): java.nio.charset.CharsetEncoder;
				/**
				 * Returns the replacement byte array, which is never null or empty.
				 */
				public replacement(): native.Array<number>;
				/**
				 * Sets the new replacement value.
				 * @param replacement 
				 */
				public replaceWith(replacement: native.Array<number>): java.nio.charset.CharsetEncoder;
				/**
				 * Resets this encoder. This method will reset the internal status and then calls <code>implReset()</code> to reset any status related to the specific charset.
				 */
				public reset(): java.nio.charset.CharsetEncoder;
				/**
				 * Returns this encoder's <code>CodingErrorAction</code> when unmappable character occurred during encoding process.
				 */
				public unmappableCharacterAction(): java.nio.charset.CodingErrorAction;
			}
			export module spi {
				/**
				 * The service provider class for character sets.
				 */
				export class CharsetProvider extends java.lang.Object {
					static class: java.lang.Class<java.nio.charset.spi.CharsetProvider>;
					/**
					 * Returns an iterator over all the available charsets.
					 */
					public charsets(): java.util.IIterator<java.nio.charset.Charset>;
					/**
					 * Returns the named charset.
					 * @param charsetName 
					 */
					public charsetForName(charsetName: string): java.nio.charset.Charset;
				}
			}
			export class CharsetICU extends java.nio.charset.Charset {
				static class: java.lang.Class<java.nio.charset.CharsetICU>;
				public newDecoder(): java.nio.charset.CharsetDecoder;
				public newEncoder(): java.nio.charset.CharsetEncoder;
				public contains(cs: java.nio.charset.Charset): boolean;
			}
			/**
			 * An IllegalCharsetNameException is thrown when an illegal charset name is encountered.
			 */
			export class IllegalCharsetNameException extends java.lang.IllegalArgumentException {
				/**
				 * Constructs a new IllegalCharsetNameException with the supplied charset name.
				 * @param charsetName 
				 */
				constructor(charsetName: string);
				static class: java.lang.Class<java.nio.charset.IllegalCharsetNameException>;
				/**
				 * Returns the encountered illegal charset name.
				 */
				public getCharsetName(): string;
			}
			/**
			 * An UnsupportedCharsetException is thrown when an unsupported charset name is encountered.
			 */
			export class UnsupportedCharsetException extends java.lang.IllegalArgumentException {
				/**
				 * Constructs a new UnsupportedCharsetException with the supplied charset name.
				 * @param charsetName 
				 */
				constructor(charsetName: string);
				static class: java.lang.Class<java.nio.charset.UnsupportedCharsetException>;
				/**
				 * Gets the encountered unsupported charset name.
				 */
				public getCharsetName(): string;
			}
			/**
			 * An UnmappableCharacterException is thrown when an unmappable character for the given charset is encountered.
			 */
			export class UnmappableCharacterException extends java.nio.charset.CharacterCodingException {
				/**
				 * Constructs a new UnmappableCharacterException.
				 * @param length 
				 */
				constructor(length: number);
				static class: java.lang.Class<java.nio.charset.UnmappableCharacterException>;
				/**
				 * Returns the length of the unmappable character.
				 */
				public getInputLength(): number;
				public getMessage(): string;
			}
			/**
			 * A MalformedInputException is thrown when a malformed input is encountered, for example if a byte sequence is illegal for the given charset.
			 */
			export class MalformedInputException extends java.nio.charset.CharacterCodingException {
				/**
				 * Constructs a new MalformedInputException.
				 * @param length 
				 */
				constructor(length: number);
				static class: java.lang.Class<java.nio.charset.MalformedInputException>;
				/**
				 * Gets the length of the malformed input.
				 */
				public getInputLength(): number;
				public getMessage(): string;
			}
			export class CharsetEncoderICU extends java.nio.charset.CharsetEncoder {
				static class: java.lang.Class<java.nio.charset.CharsetEncoderICU>;
				public static newInstance(cs: java.nio.charset.Charset, icuCanonicalName: string): java.nio.charset.CharsetEncoderICU;
				protected implReplaceWith(newReplacement: native.Array<number>): void;
				protected implOnMalformedInput(newAction: java.nio.charset.CodingErrorAction): void;
				protected implOnUnmappableCharacter(newAction: java.nio.charset.CodingErrorAction): void;
				protected implReset(): void;
				protected implFlush(out: java.nio.ByteBuffer): java.nio.charset.CoderResult;
				protected encodeLoop(input: java.nio.CharBuffer, out: java.nio.ByteBuffer): java.nio.charset.CoderResult;
				public canEncode(c: string): boolean;
				public canEncode(codePoint: number): boolean;
				protected finalize(): void;
			}
			/**
			 * A CoderMalfunctionError is thrown when the encoder/decoder is malfunctioning.
			 */
			export class CoderMalfunctionError extends java.lang.Error {
				/**
				 * Constructs a new CoderMalfunctionError.
				 * @param ex 
				 */
				constructor(ex: java.lang.Exception);
				static class: java.lang.Class<java.nio.charset.CoderMalfunctionError>;
			}
			/**
			 * Used to indicate the result of encoding/decoding. There are four types of results: <ol> <li>UNDERFLOW indicates that all input has been processed but more input is required. It is represented by the unique object <code>CoderResult.UNDERFLOW</code>. <li>OVERFLOW indicates an insufficient output buffer size. It is represented by the unique object <code>CoderResult.OVERFLOW</code>. <li>A malformed-input error indicates that an unrecognizable sequence of input units has been encountered. Get an instance of this type of result by calling <code>CoderResult.malformedForLength(int)</code> with the length of the malformed-input. <li>An unmappable-character error indicates that a sequence of input units can not be mapped to the output charset. Get an instance of this type of result by calling <code>CoderResult.unmappableForLength(int)</code> with the input sequence size indicating the identity of the unmappable character. </ol>
			 */
			export class CoderResult extends java.lang.Object {
				/**
				 * Result object indicating that there is insufficient data in the encoding/decoding buffer or that additional data is required.
				 */
				static UNDERFLOW: java.nio.charset.CoderResult;
				/**
				 * Result object used to indicate that the output buffer does not have enough space available to store the result of the encoding/decoding.
				 */
				static OVERFLOW: java.nio.charset.CoderResult;
				static class: java.lang.Class<java.nio.charset.CoderResult>;
				/**
				 * Gets a <code>CoderResult</code> object indicating a malformed-input error.
				 * @param length 
				 */
				public static malformedForLength(length: number): java.nio.charset.CoderResult;
				/**
				 * Gets a <code>CoderResult</code> object indicating an unmappable character error.
				 * @param length 
				 */
				public static unmappableForLength(length: number): java.nio.charset.CoderResult;
				/**
				 * Returns true if this result is an underflow condition.
				 */
				public isUnderflow(): boolean;
				/**
				 * Returns true if this result represents a malformed-input error or an unmappable-character error.
				 */
				public isError(): boolean;
				/**
				 * Returns true if this result represents a malformed-input error.
				 */
				public isMalformed(): boolean;
				/**
				 * Returns true if this result is an overflow condition.
				 */
				public isOverflow(): boolean;
				/**
				 * Returns true if this result represents an unmappable-character error.
				 */
				public isUnmappable(): boolean;
				/**
				 * Gets the length of the erroneous input. The length is only meaningful to a malformed-input error or an unmappable character error.
				 */
				public length(): number;
				/**
				 * Throws an exception corresponding to this coder result.
				 */
				public throwException(): void;
				/**
				 * Returns a text description of this result.
				 */
				public toString(): string;
			}
		}
		/**
		 * HeapByteBuffer, ReadWriteHeapByteBuffer and ReadOnlyHeapByteBuffer compose the implementation of array based byte buffers.
		 */
		export class HeapByteBuffer extends java.nio.BaseByteBuffer {
			static class: java.lang.Class<java.nio.HeapByteBuffer>;
			public get(dst: native.Array<number>, dstOffset: number, byteCount: number): java.nio.ByteBuffer;
			public get(): number;
			public get(index: number): number;
			public getChar(): string;
			public getChar(index: number): string;
			public getDouble(): any;
			public getDouble(index: number): any;
			public getFloat(): number;
			public getFloat(index: number): number;
			public getInt(): number;
			public getInt(index: number): number;
			public getLong(): any;
			public getLong(index: number): any;
			public getShort(): number;
			public getShort(index: number): number;
			public isDirect(): boolean;
			/**
			 * Reads bytes from the current position into the specified byte array and increases the position by the number of bytes read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.ByteBuffer;
		}
		/**
		 * DoubleArrayBuffer, ReadWriteDoubleArrayBuffer and ReadOnlyDoubleArrayBuffer compose the implementation of array based double buffers.
		 */
		export class DoubleArrayBuffer extends java.nio.DoubleBuffer {
			static class: java.lang.Class<java.nio.DoubleArrayBuffer>;
			public get(): any;
			public get(index: number): any;
			public get(dst: native.Array<number>, dstOffset: number, doubleCount: number): java.nio.DoubleBuffer;
			public isDirect(): boolean;
			public order(): java.nio.ByteOrder;
			/**
			 * Reads doubles from the current position into the specified double array and increases the position by the number of doubles read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.DoubleBuffer;
		}
		/**
		 * HeapByteBuffer, ReadWriteHeapByteBuffer and ReadOnlyHeapByteBuffer compose the implementation of array based byte buffers.
		 */
		export class ReadWriteHeapByteBuffer extends java.nio.HeapByteBuffer {
			static class: java.lang.Class<java.nio.ReadWriteHeapByteBuffer>;
			static copy(other: java.nio.HeapByteBuffer, markOfOther: number): java.nio.ReadWriteHeapByteBuffer;
			public asReadOnlyBuffer(): java.nio.ByteBuffer;
			public compact(): java.nio.ByteBuffer;
			public duplicate(): java.nio.ByteBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(b: number): java.nio.ByteBuffer;
			public put(index: number, b: number): java.nio.ByteBuffer;
			public put(src: native.Array<number>, srcOffset: number, byteCount: number): java.nio.ByteBuffer;
			public putChar(index: number, value: string): java.nio.ByteBuffer;
			public putChar(value: string): java.nio.ByteBuffer;
			public putDouble(value: number): java.nio.ByteBuffer;
			public putDouble(index: number, value: number): java.nio.ByteBuffer;
			public putFloat(value: number): java.nio.ByteBuffer;
			public putFloat(index: number, value: number): java.nio.ByteBuffer;
			public putInt(value: number): java.nio.ByteBuffer;
			public putInt(index: number, value: number): java.nio.ByteBuffer;
			public putLong(index: number, value: number): java.nio.ByteBuffer;
			public putLong(value: number): java.nio.ByteBuffer;
			public putShort(index: number, value: number): java.nio.ByteBuffer;
			public putShort(value: number): java.nio.ByteBuffer;
			public slice(): java.nio.ByteBuffer;
			/**
			 * Writes bytes in the given byte array to the current position and increases the position by the number of bytes written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.ByteBuffer;
			/**
			 * Writes all the remaining bytes of the src byte buffer to this buffer's current position, and increases both buffers' position by the number of bytes copied.
			 * @param src 
			 */
			put(src: java.nio.ByteBuffer): java.nio.ByteBuffer;
		}
		/**
		 * A buffer of chars.
		 */
		export class CharBuffer extends java.nio.Buffer implements java.lang.ICharSequence, java.lang.IAppendable, java.lang.IReadable {
			static class: java.lang.Class<java.nio.CharBuffer>;
			/**
			 * Creates a char buffer based on a newly allocated char array.
			 * @param capacity 
			 */
			public static allocate(capacity: number): java.nio.CharBuffer;
			/**
			 * Creates a new char buffer by wrapping the given char array.
			 * @param array 
			 */
			public static wrap(array: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Creates a new char buffer by wrapping the given char array.
			 * @param array 
			 * @param start 
			 * @param charCount 
			 */
			public static wrap(array: native.Array<string>, start: number, charCount: number): java.nio.CharBuffer;
			/**
			 * Creates a new char buffer by wrapping the given char sequence.
			 * @param chseq 
			 */
			public static wrap(chseq: string): java.nio.CharBuffer;
			/**
			 * Creates a new char buffer by wrapping the given char sequence.
			 * @param cs 
			 * @param start 
			 * @param end 
			 */
			public static wrap(cs: string, start: number, end: number): java.nio.CharBuffer;
			public array(): native.Array<string>;
			public arrayOffset(): number;
			/**
			 * Returns a read-only buffer that shares its content with this buffer.
			 */
			public asReadOnlyBuffer(): java.nio.CharBuffer;
			/**
			 * Returns the character located at the specified index in the buffer. The index value is referenced from the current buffer position.
			 * @param index 
			 */
			public charAt(index: number): string;
			/**
			 * Compacts this char buffer.
			 */
			public compact(): java.nio.CharBuffer;
			/**
			 * Compare the remaining chars of this buffer to another char buffer's remaining chars.
			 * @param otherBuffer 
			 */
			public compareTo(otherBuffer: java.nio.CharBuffer): number;
			/**
			 * Returns a duplicated buffer that shares its content with this buffer.
			 */
			public duplicate(): java.nio.CharBuffer;
			/**
			 * Checks whether this char buffer is equal to another object.
			 * @param other 
			 */
			public equals(other: any): boolean;
			/**
			 * Returns the char at the current position and increases the position by 1.
			 */
			public get(): string;
			/**
			 * Reads chars from the current position into the specified char array and increases the position by the number of chars read.
			 * @param dst 
			 */
			public get(dst: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Reads chars from the current position into the specified char array, starting from the specified offset, and increases the position by the number of chars read.
			 * @param dst 
			 * @param dstOffset 
			 * @param charCount 
			 */
			public get(dst: native.Array<string>, dstOffset: number, charCount: number): java.nio.CharBuffer;
			/**
			 * Returns a char at the specified index; the position is not changed.
			 * @param index 
			 */
			public get(index: number): string;
			public hasArray(): boolean;
			/**
			 * Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates whether this buffer is direct. A direct buffer will try its best to take advantage of native memory APIs and it may not stay in the Java heap, so it is not affected by garbage collection.
			 */
			public isDirect(): boolean;
			/**
			 * Returns the number of remaining chars.
			 */
			public length(): number;
			/**
			 * Returns the byte order used by this buffer when converting chars from/to bytes.
			 */
			public order(): java.nio.ByteOrder;
			/**
			 * Child class implements this method to realize array().
			 */
			protectedArray(): native.Array<string>;
			/**
			 * Child class implements this method to realize arrayOffset().
			 */
			protectedArrayOffset(): number;
			/**
			 * Child class implements this method to realize hasArray().
			 */
			protectedHasArray(): boolean;
			/**
			 * Writes the given char to the current position and increases the position by 1.
			 * @param c 
			 */
			public put(c: string): java.nio.CharBuffer;
			/**
			 * Writes chars from the given char array to the current position and increases the position by the number of chars written.
			 * @param src 
			 */
			public put(src: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Writes chars from the given char array, starting from the specified offset, to the current position and increases the position by the number of chars written.
			 * @param src 
			 * @param srcOffset 
			 * @param charCount 
			 */
			public put(src: native.Array<string>, srcOffset: number, charCount: number): java.nio.CharBuffer;
			/**
			 * Writes all the remaining chars of the src char buffer to this buffer's current position, and increases both buffers' position by the number of chars copied.
			 * @param src 
			 */
			public put(src: java.nio.CharBuffer): java.nio.CharBuffer;
			/**
			 * Writes a char to the specified index of this buffer; the position is not changed.
			 * @param index 
			 * @param c 
			 */
			public put(index: number, c: string): java.nio.CharBuffer;
			/**
			 * Writes chars of the given string to the current position of this buffer, and increases the position by the number of chars written.
			 * @param str 
			 * @param start 
			 * @param end 
			 */
			public put(str: string, start: number, end: number): java.nio.CharBuffer;
			/**
			 * Returns a sliced buffer that shares its content with this buffer.
			 */
			public slice(): java.nio.CharBuffer;
			/**
			 * Returns a new char buffer representing a sub-sequence of this buffer's current remaining content.
			 * @param start 
			 * @param end 
			 */
			public subSequence(start: number, end: number): string;
			/**
			 * Returns a string representing the current remaining chars of this buffer.
			 */
			public toString(): string;
			/**
			 * Writes the given char to the current position and increases the position by 1.
			 * @param c 
			 */
			public append(c: string): java.nio.CharBuffer;
			/**
			 * Writes chars of the given CharSequence to the current position of this buffer, and increases the position by the number of chars written.
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			public append(csq: string, start: number, end: number): java.nio.CharBuffer;
			/**
			 * Reads characters from this buffer and puts them into target. The number of chars that are copied is either the number of remaining chars in this buffer or the number of remaining chars in target, whichever is smaller.
			 * @param target 
			 */
			public read(target: java.nio.CharBuffer): number;
		}
		/**
		 * CharArrayBuffer, ReadWriteCharArrayBuffer and ReadOnlyCharArrayBuffer compose the implementation of array based char buffers.
		 */
		export class CharArrayBuffer extends java.nio.CharBuffer {
			static class: java.lang.Class<java.nio.CharArrayBuffer>;
			public get(): string;
			public get(index: number): string;
			public get(dst: native.Array<string>, srcOffset: number, charCount: number): java.nio.CharBuffer;
			public isDirect(): boolean;
			public order(): java.nio.ByteOrder;
			public subSequence(start: number, end: number): string;
			public toString(): string;
			/**
			 * Reads chars from the current position into the specified char array and increases the position by the number of chars read.
			 * @param dst 
			 */
			get(dst: native.Array<string>): java.nio.CharBuffer;
		}
		/**
		 * Defines byte order constants.
		 */
		export class ByteOrder extends java.lang.Object {
			/**
			 * This constant represents big endian.
			 */
			static BIG_ENDIAN: java.nio.ByteOrder;
			/**
			 * This constant represents little endian.
			 */
			static LITTLE_ENDIAN: java.nio.ByteOrder;
			static class: java.lang.Class<java.nio.ByteOrder>;
			/**
			 * Returns the current platform byte order.
			 */
			public static nativeOrder(): java.nio.ByteOrder;
			/**
			 * Returns a string that describes this object.
			 */
			public toString(): string;
		}
		/**
		 * An InvalidMarkException is thrown when reset() is called on a buffer, but no mark has been set previously.
		 */
		export class InvalidMarkException extends java.lang.IllegalStateException {
			/**
			 * Constructs an InvalidMarkException.
			 */
			constructor();
			static class: java.lang.Class<java.nio.InvalidMarkException>;
		}
		/**
		 * This class is used via JNI by code in frameworks/base/.
		 */
		export class NIOAccess extends java.lang.Object {
			static class: java.lang.Class<java.nio.NIOAccess>;
			/**
			 * Returns the underlying native pointer to the data of the given Buffer starting at the Buffer's current position, or 0 if the Buffer is not backed by native heap storage. Note that this is different than what the Harmony implementation calls a "base address."
			 * @param b the Buffer to be queried
			 */
			static getBasePointer(b: java.nio.Buffer): any;
			/**
			 * Returns the underlying Java array containing the data of the given Buffer, or null if the Buffer is not backed by a Java array.
			 * @param b the Buffer to be queried
			 */
			static getBaseArray(b: java.nio.Buffer): any;
			/**
			 * Returns the offset in bytes from the start of the underlying Java array object containing the data of the given Buffer to the actual start of the data. The start of the data takes into account the Buffer's current position. This method is only meaningful if getBaseArray() returns non-null.
			 * @param b the Buffer to be queried
			 */
			static getBaseArrayOffset(b: java.nio.Buffer): number;
		}
		/**
		 * IntArrayBuffer, ReadWriteIntArrayBuffer and ReadOnlyIntArrayBuffer compose the implementation of array based int buffers.
		 */
		export class ReadOnlyIntArrayBuffer extends java.nio.IntArrayBuffer {
			static class: java.lang.Class<java.nio.ReadOnlyIntArrayBuffer>;
			static copy(other: java.nio.IntArrayBuffer, markOfOther: number): java.nio.ReadOnlyIntArrayBuffer;
			public asReadOnlyBuffer(): java.nio.IntBuffer;
			public compact(): java.nio.IntBuffer;
			public duplicate(): java.nio.IntBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.IntBuffer;
			public put(index: number, c: number): java.nio.IntBuffer;
			public put(buf: java.nio.IntBuffer): java.nio.IntBuffer;
			public put(src: native.Array<number>, srcOffset: number, intCount: number): java.nio.IntBuffer;
			public slice(): java.nio.IntBuffer;
			/**
			 * Writes ints from the given int array to the current position and increases the position by the number of ints written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.IntBuffer;
		}
		/**
		 * Used to implement java.nio read(ByteBuffer[])/write(ByteBuffer[]) operations as POSIX readv(2) and writev(2) calls.
		 */
		export class IoVec extends java.lang.Object {
			static class: java.lang.Class<java.nio.IoVec>;
			init(): number;
			doTransfer(fd: java.io.FileDescriptor): number;
			didTransfer(byteCount: number): void;
		}
		export module IoVec {
			export enum Direction {
				READV,
				WRITEV
			}
		}
		/**
		 * A <code>BufferOverflowException</code> is thrown when elements are written to a buffer but there is not enough remaining space in the buffer.
		 */
		export class BufferOverflowException extends java.lang.RuntimeException {
			/**
			 * Constructs a <code>BufferOverflowException</code>.
			 */
			constructor();
			static class: java.lang.Class<java.nio.BufferOverflowException>;
		}
		/**
		 * This class wraps a byte buffer to be a char buffer.
		 */
		export class CharToByteBufferAdapter extends java.nio.CharBuffer {
			static class: java.lang.Class<java.nio.CharToByteBufferAdapter>;
			static asCharBuffer(byteBuffer: java.nio.ByteBuffer): java.nio.CharBuffer;
			public asReadOnlyBuffer(): java.nio.CharBuffer;
			public compact(): java.nio.CharBuffer;
			public duplicate(): java.nio.CharBuffer;
			public get(): string;
			public get(index: number): string;
			public get(dst: native.Array<string>, dstOffset: number, charCount: number): java.nio.CharBuffer;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			public order(): java.nio.ByteOrder;
			protectedArray(): native.Array<string>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: string): java.nio.CharBuffer;
			public put(index: number, c: string): java.nio.CharBuffer;
			public put(src: native.Array<string>, srcOffset: number, charCount: number): java.nio.CharBuffer;
			public slice(): java.nio.CharBuffer;
			public subSequence(start: number, end: number): string;
			/**
			 * Reads chars from the current position into the specified char array and increases the position by the number of chars read.
			 * @param dst 
			 */
			get(dst: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Writes chars from the given char array to the current position and increases the position by the number of chars written.
			 * @param src 
			 */
			put(src: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Writes all the remaining chars of the src char buffer to this buffer's current position, and increases both buffers' position by the number of chars copied.
			 * @param src 
			 */
			put(src: java.nio.CharBuffer): java.nio.CharBuffer;
			/**
			 * Writes chars of the given string to the current position of this buffer, and increases the position by the number of chars written.
			 * @param str 
			 * @param start 
			 * @param end 
			 */
			put(str: string, start: number, end: number): java.nio.CharBuffer;
		}
		/**
		 * A buffer of longs.
		 */
		export class LongBuffer extends java.nio.Buffer {
			static class: java.lang.Class<java.nio.LongBuffer>;
			/**
			 * Creates a long buffer based on a newly allocated long array.
			 * @param capacity 
			 */
			public static allocate(capacity: number): java.nio.LongBuffer;
			/**
			 * Creates a new long buffer by wrapping the given long array.
			 * @param array 
			 */
			public static wrap(array: native.Array<number>): java.nio.LongBuffer;
			/**
			 * Creates a new long buffer by wrapping the given long array.
			 * @param array 
			 * @param start 
			 * @param longCount 
			 */
			public static wrap(array: native.Array<number>, start: number, longCount: number): java.nio.LongBuffer;
			public array(): native.Array<number>;
			public arrayOffset(): number;
			/**
			 * Returns a read-only buffer that shares its content with this buffer.
			 */
			public asReadOnlyBuffer(): java.nio.LongBuffer;
			/**
			 * Compacts this long buffer.
			 */
			public compact(): java.nio.LongBuffer;
			/**
			 * Compare the remaining longs of this buffer to another long buffer's remaining longs.
			 * @param otherBuffer 
			 */
			public compareTo(otherBuffer: java.nio.LongBuffer): number;
			/**
			 * Returns a duplicated buffer that shares its content with this buffer.
			 */
			public duplicate(): java.nio.LongBuffer;
			/**
			 * Checks whether this long buffer is equal to another object.
			 * @param other 
			 */
			public equals(other: any): boolean;
			/**
			 * Returns the long at the current position and increase the position by 1.
			 */
			public get(): any;
			/**
			 * Reads longs from the current position into the specified long array and increases the position by the number of longs read.
			 * @param dst 
			 */
			public get(dst: native.Array<number>): java.nio.LongBuffer;
			/**
			 * Reads longs from the current position into the specified long array, starting from the specified offset, and increase the position by the number of longs read.
			 * @param dst 
			 * @param dstOffset 
			 * @param longCount 
			 */
			public get(dst: native.Array<number>, dstOffset: number, longCount: number): java.nio.LongBuffer;
			/**
			 * Returns the long at the specified index; the position is not changed.
			 * @param index 
			 */
			public get(index: number): any;
			public hasArray(): boolean;
			/**
			 * Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates whether this buffer is direct. A direct buffer will try its best to take advantage of native memory APIs and it may not stay in the Java heap, so it is not affected by garbage collection.
			 */
			public isDirect(): boolean;
			/**
			 * Returns the byte order used by this buffer when converting longs from/to bytes.
			 */
			public order(): java.nio.ByteOrder;
			/**
			 * Child class implements this method to realize array().
			 */
			protectedArray(): native.Array<number>;
			/**
			 * Child class implements this method to realize arrayOffset().
			 */
			protectedArrayOffset(): number;
			/**
			 * Child class implements this method to realize hasArray().
			 */
			protectedHasArray(): boolean;
			/**
			 * Writes the given long to the current position and increases the position by 1.
			 * @param l 
			 */
			public put(l: number): java.nio.LongBuffer;
			/**
			 * Writes longs from the given long array to the current position and increases the position by the number of longs written.
			 * @param src 
			 */
			public put(src: native.Array<number>): java.nio.LongBuffer;
			/**
			 * Writes longs from the given long array, starting from the specified offset, to the current position and increases the position by the number of longs written.
			 * @param src 
			 * @param srcOffset 
			 * @param longCount 
			 */
			public put(src: native.Array<number>, srcOffset: number, longCount: number): java.nio.LongBuffer;
			/**
			 * Writes all the remaining longs of the src long buffer to this buffer's current position, and increases both buffers' position by the number of longs copied.
			 * @param src 
			 */
			public put(src: java.nio.LongBuffer): java.nio.LongBuffer;
			/**
			 * Writes a long to the specified index of this buffer; the position is not changed.
			 * @param index 
			 * @param l 
			 */
			public put(index: number, l: number): java.nio.LongBuffer;
			/**
			 * Returns a sliced buffer that shares its content with this buffer.
			 */
			public slice(): java.nio.LongBuffer;
		}
		/**
		 * ShortArrayBuffer, ReadWriteShortArrayBuffer and ReadOnlyShortArrayBuffer compose the implementation of array based short buffers.
		 */
		export class ShortArrayBuffer extends java.nio.ShortBuffer {
			static class: java.lang.Class<java.nio.ShortArrayBuffer>;
			public get(): number;
			public get(index: number): number;
			public get(dst: native.Array<number>, dstOffset: number, shortCount: number): java.nio.ShortBuffer;
			public isDirect(): boolean;
			public order(): java.nio.ByteOrder;
			/**
			 * Reads shorts from the current position into the specified short array and increases the position by the number of shorts read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.ShortBuffer;
		}
		/**
		 * This class wraps a char sequence to be a char buffer.
		 */
		export class CharSequenceAdapter extends java.nio.CharBuffer {
			static class: java.lang.Class<java.nio.CharSequenceAdapter>;
			static copy(other: java.nio.CharSequenceAdapter): java.nio.CharSequenceAdapter;
			public asReadOnlyBuffer(): java.nio.CharBuffer;
			public compact(): java.nio.CharBuffer;
			public duplicate(): java.nio.CharBuffer;
			public get(): string;
			public get(index: number): string;
			public get(dst: native.Array<string>, dstOffset: number, charCount: number): java.nio.CharBuffer;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			public order(): java.nio.ByteOrder;
			protectedArray(): native.Array<string>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: string): java.nio.CharBuffer;
			public put(index: number, c: string): java.nio.CharBuffer;
			public put(src: native.Array<string>, srcOffset: number, charCount: number): java.nio.CharBuffer;
			public put(src: string, start: number, end: number): java.nio.CharBuffer;
			public slice(): java.nio.CharBuffer;
			public subSequence(start: number, end: number): string;
			/**
			 * Reads chars from the current position into the specified char array and increases the position by the number of chars read.
			 * @param dst 
			 */
			get(dst: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Writes chars from the given char array to the current position and increases the position by the number of chars written.
			 * @param src 
			 */
			put(src: native.Array<string>): java.nio.CharBuffer;
			/**
			 * Writes all the remaining chars of the src char buffer to this buffer's current position, and increases both buffers' position by the number of chars copied.
			 * @param src 
			 */
			put(src: java.nio.CharBuffer): java.nio.CharBuffer;
		}
		/**
		 * A buffer for bytes.
		 */
		export class ByteBuffer extends java.nio.Buffer {
			static class: java.lang.Class<java.nio.ByteBuffer>;
			/**
			 * Creates a byte buffer based on a newly allocated byte array.
			 * @param capacity 
			 */
			public static allocate(capacity: number): java.nio.ByteBuffer;
			/**
			 * Creates a direct byte buffer based on a newly allocated memory block.
			 * @param capacity 
			 */
			public static allocateDirect(capacity: number): java.nio.ByteBuffer;
			/**
			 * Creates a new byte buffer by wrapping the given byte array.
			 * @param array 
			 */
			public static wrap(array: native.Array<number>): java.nio.ByteBuffer;
			/**
			 * Creates a new byte buffer by wrapping the given byte array.
			 * @param array 
			 * @param start 
			 * @param byteCount 
			 */
			public static wrap(array: native.Array<number>, start: number, byteCount: number): java.nio.ByteBuffer;
			/**
			 * Returns the byte array which this buffer is based on, if there is one.
			 */
			public array(): native.Array<number>;
			/**
			 * Returns the offset of the byte array which this buffer is based on, if there is one.
			 */
			public arrayOffset(): number;
			/**
			 * Returns a char buffer which is based on the remaining content of this byte buffer.
			 */
			public asCharBuffer(): java.nio.CharBuffer;
			/**
			 * Returns a double buffer which is based on the remaining content of this byte buffer.
			 */
			public asDoubleBuffer(): java.nio.DoubleBuffer;
			/**
			 * Returns a float buffer which is based on the remaining content of this byte buffer.
			 */
			public asFloatBuffer(): java.nio.FloatBuffer;
			/**
			 * Returns a int buffer which is based on the remaining content of this byte buffer.
			 */
			public asIntBuffer(): java.nio.IntBuffer;
			/**
			 * Returns a long buffer which is based on the remaining content of this byte buffer.
			 */
			public asLongBuffer(): java.nio.LongBuffer;
			/**
			 * Returns a read-only buffer that shares its content with this buffer.
			 */
			public asReadOnlyBuffer(): java.nio.ByteBuffer;
			/**
			 * Returns a short buffer which is based on the remaining content of this byte buffer.
			 */
			public asShortBuffer(): java.nio.ShortBuffer;
			/**
			 * Compacts this byte buffer.
			 */
			public compact(): java.nio.ByteBuffer;
			/**
			 * Compares the remaining bytes of this buffer to another byte buffer's remaining bytes.
			 * @param otherBuffer 
			 */
			public compareTo(otherBuffer: java.nio.ByteBuffer): number;
			/**
			 * Returns a duplicated buffer that shares its content with this buffer.
			 */
			public duplicate(): java.nio.ByteBuffer;
			/**
			 * Checks whether this byte buffer is equal to another object.
			 * @param other 
			 */
			public equals(other: any): boolean;
			/**
			 * Returns the byte at the current position and increases the position by 1.
			 */
			public get(): number;
			/**
			 * Reads bytes from the current position into the specified byte array and increases the position by the number of bytes read.
			 * @param dst 
			 */
			public get(dst: native.Array<number>): java.nio.ByteBuffer;
			/**
			 * Reads bytes from the current position into the specified byte array, starting at the specified offset, and increases the position by the number of bytes read.
			 * @param dst 
			 * @param dstOffset 
			 * @param byteCount 
			 */
			public get(dst: native.Array<number>, dstOffset: number, byteCount: number): java.nio.ByteBuffer;
			/**
			 * Returns the byte at the specified index and does not change the position.
			 * @param index 
			 */
			public get(index: number): number;
			/**
			 * Returns the char at the current position and increases the position by 2.
			 */
			public getChar(): string;
			/**
			 * Returns the char at the specified index.
			 * @param index 
			 */
			public getChar(index: number): string;
			/**
			 * Returns the double at the current position and increases the position by 8.
			 */
			public getDouble(): any;
			/**
			 * Returns the double at the specified index.
			 * @param index 
			 */
			public getDouble(index: number): any;
			/**
			 * Returns the float at the current position and increases the position by 4.
			 */
			public getFloat(): number;
			/**
			 * Returns the float at the specified index.
			 * @param index 
			 */
			public getFloat(index: number): number;
			/**
			 * Returns the int at the current position and increases the position by 4.
			 */
			public getInt(): number;
			/**
			 * Returns the int at the specified index.
			 * @param index 
			 */
			public getInt(index: number): number;
			/**
			 * Returns the long at the current position and increases the position by 8.
			 */
			public getLong(): any;
			/**
			 * Returns the long at the specified index.
			 * @param index 
			 */
			public getLong(index: number): any;
			/**
			 * Returns the short at the current position and increases the position by 2.
			 */
			public getShort(): number;
			/**
			 * Returns the short at the specified index.
			 * @param index 
			 */
			public getShort(index: number): number;
			public hasArray(): boolean;
			/**
			 * Calculates this buffer's hash code from the remaining chars. The position, limit, capacity and mark don't affect the hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates whether this buffer is direct.
			 */
			public isDirect(): boolean;
			/**
			 * Returns the byte order used by this buffer when converting bytes from/to other primitive types.
			 */
			public order(): java.nio.ByteOrder;
			/**
			 * Sets the byte order of this buffer.
			 * @param byteOrder 
			 */
			public order(byteOrder: java.nio.ByteOrder): java.nio.ByteBuffer;
			/**
			 * Subverts the fact that order(ByteOrder) is final, for the benefit of MappedByteBufferAdapter.
			 */
			orderImpl(byteOrder: java.nio.ByteOrder): void;
			/**
			 * Child class implements this method to realize array().
			 */
			protectedArray(): native.Array<number>;
			/**
			 * Child class implements this method to realize arrayOffset().
			 */
			protectedArrayOffset(): number;
			/**
			 * Child class implements this method to realize hasArray().
			 */
			protectedHasArray(): boolean;
			/**
			 * Writes the given byte to the current position and increases the position by 1.
			 * @param b 
			 */
			public put(b: number): java.nio.ByteBuffer;
			/**
			 * Writes bytes in the given byte array to the current position and increases the position by the number of bytes written.
			 * @param src 
			 */
			public put(src: native.Array<number>): java.nio.ByteBuffer;
			/**
			 * Writes bytes in the given byte array, starting from the specified offset, to the current position and increases the position by the number of bytes written.
			 * @param src 
			 * @param srcOffset 
			 * @param byteCount 
			 */
			public put(src: native.Array<number>, srcOffset: number, byteCount: number): java.nio.ByteBuffer;
			/**
			 * Writes all the remaining bytes of the src byte buffer to this buffer's current position, and increases both buffers' position by the number of bytes copied.
			 * @param src 
			 */
			public put(src: java.nio.ByteBuffer): java.nio.ByteBuffer;
			/**
			 * Write a byte to the specified index of this buffer without changing the position.
			 * @param index 
			 * @param b 
			 */
			public put(index: number, b: number): java.nio.ByteBuffer;
			/**
			 * Writes the given char to the current position and increases the position by 2.
			 * @param value 
			 */
			public putChar(value: string): java.nio.ByteBuffer;
			/**
			 * Writes the given char to the specified index of this buffer.
			 * @param index 
			 * @param value 
			 */
			public putChar(index: number, value: string): java.nio.ByteBuffer;
			/**
			 * Writes the given double to the current position and increases the position by 8.
			 * @param value 
			 */
			public putDouble(value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given double to the specified index of this buffer.
			 * @param index 
			 * @param value 
			 */
			public putDouble(index: number, value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given float to the current position and increases the position by 4.
			 * @param value 
			 */
			public putFloat(value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given float to the specified index of this buffer.
			 * @param index 
			 * @param value 
			 */
			public putFloat(index: number, value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given int to the current position and increases the position by 4.
			 * @param value 
			 */
			public putInt(value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given int to the specified index of this buffer.
			 * @param index 
			 * @param value 
			 */
			public putInt(index: number, value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given long to the current position and increases the position by 8.
			 * @param value 
			 */
			public putLong(value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given long to the specified index of this buffer.
			 * @param index 
			 * @param value 
			 */
			public putLong(index: number, value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given short to the current position and increases the position by 2.
			 * @param value 
			 */
			public putShort(value: number): java.nio.ByteBuffer;
			/**
			 * Writes the given short to the specified index of this buffer.
			 * @param index 
			 * @param value 
			 */
			public putShort(index: number, value: number): java.nio.ByteBuffer;
			/**
			 * Returns a sliced buffer that shares its content with this buffer.
			 */
			public slice(): java.nio.ByteBuffer;
		}
		/**
		 * ShortArrayBuffer, ReadWriteShortArrayBuffer and ReadOnlyShortArrayBuffer compose the implementation of array based short buffers.
		 */
		export class ReadOnlyShortArrayBuffer extends java.nio.ShortArrayBuffer {
			static class: java.lang.Class<java.nio.ReadOnlyShortArrayBuffer>;
			static copy(other: java.nio.ShortArrayBuffer, markOfOther: number): java.nio.ReadOnlyShortArrayBuffer;
			public asReadOnlyBuffer(): java.nio.ShortBuffer;
			public compact(): java.nio.ShortBuffer;
			public duplicate(): java.nio.ShortBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(buf: java.nio.ShortBuffer): java.nio.ShortBuffer;
			public put(c: number): java.nio.ShortBuffer;
			public put(index: number, c: number): java.nio.ShortBuffer;
			public put(src: native.Array<number>, srcOffset: number, shortCount: number): java.nio.ShortBuffer;
			public slice(): java.nio.ShortBuffer;
			/**
			 * Writes shorts from the given short array to the current position and increases the position by the number of shorts written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.ShortBuffer;
		}
		/**
		 * This class wraps a byte buffer to be a long buffer.
		 */
		export class LongToByteBufferAdapter extends java.nio.LongBuffer {
			static class: java.lang.Class<java.nio.LongToByteBufferAdapter>;
			static asLongBuffer(byteBuffer: java.nio.ByteBuffer): java.nio.LongBuffer;
			public asReadOnlyBuffer(): java.nio.LongBuffer;
			public compact(): java.nio.LongBuffer;
			public duplicate(): java.nio.LongBuffer;
			public get(): any;
			public get(index: number): any;
			public get(dst: native.Array<number>, dstOffset: number, longCount: number): java.nio.LongBuffer;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			public order(): java.nio.ByteOrder;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.LongBuffer;
			public put(index: number, c: number): java.nio.LongBuffer;
			public put(src: native.Array<number>, srcOffset: number, longCount: number): java.nio.LongBuffer;
			public slice(): java.nio.LongBuffer;
			/**
			 * Reads longs from the current position into the specified long array and increases the position by the number of longs read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.LongBuffer;
			/**
			 * Writes longs from the given long array to the current position and increases the position by the number of longs written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.LongBuffer;
			/**
			 * Writes all the remaining longs of the src long buffer to this buffer's current position, and increases both buffers' position by the number of longs copied.
			 * @param src 
			 */
			put(src: java.nio.LongBuffer): java.nio.LongBuffer;
		}
		/**
		 * This class wraps a byte buffer to be a int buffer.
		 */
		export class IntToByteBufferAdapter extends java.nio.IntBuffer {
			static class: java.lang.Class<java.nio.IntToByteBufferAdapter>;
			static asIntBuffer(byteBuffer: java.nio.ByteBuffer): java.nio.IntBuffer;
			public asReadOnlyBuffer(): java.nio.IntBuffer;
			public compact(): java.nio.IntBuffer;
			public duplicate(): java.nio.IntBuffer;
			public get(): number;
			public get(index: number): number;
			public get(dst: native.Array<number>, dstOffset: number, intCount: number): java.nio.IntBuffer;
			public isDirect(): boolean;
			public isReadOnly(): boolean;
			public order(): java.nio.ByteOrder;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.IntBuffer;
			public put(index: number, c: number): java.nio.IntBuffer;
			public put(src: native.Array<number>, srcOffset: number, intCount: number): java.nio.IntBuffer;
			public slice(): java.nio.IntBuffer;
			/**
			 * Reads ints from the current position into the specified int array and increases the position by the number of ints read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.IntBuffer;
			/**
			 * Writes ints from the given int array to the current position and increases the position by the number of ints written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.IntBuffer;
			/**
			 * Writes all the remaining ints of the src int buffer to this buffer's current position, and increases both buffers' position by the number of ints copied.
			 * @param src 
			 */
			put(src: java.nio.IntBuffer): java.nio.IntBuffer;
		}
		/**
		 * FloatArrayBuffer, ReadWriteFloatArrayBuffer and ReadOnlyFloatArrayBuffer compose the implementation of array based float buffers.
		 */
		export class ReadWriteFloatArrayBuffer extends java.nio.FloatArrayBuffer {
			static class: java.lang.Class<java.nio.ReadWriteFloatArrayBuffer>;
			static copy(other: java.nio.FloatArrayBuffer, markOfOther: number): java.nio.ReadWriteFloatArrayBuffer;
			public asReadOnlyBuffer(): java.nio.FloatBuffer;
			public compact(): java.nio.FloatBuffer;
			public duplicate(): java.nio.FloatBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.FloatBuffer;
			public put(index: number, c: number): java.nio.FloatBuffer;
			public put(src: native.Array<number>, srcOffset: number, floatCount: number): java.nio.FloatBuffer;
			public slice(): java.nio.FloatBuffer;
			/**
			 * Writes floats from the given float array to the current position and increases the position by the number of floats written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.FloatBuffer;
			/**
			 * Writes all the remaining floats of the src float buffer to this buffer's current position, and increases both buffers' position by the number of floats copied.
			 * @param src 
			 */
			put(src: java.nio.FloatBuffer): java.nio.FloatBuffer;
		}
		/**
		 * Serves as the root of other byte buffer impl classes, implements common methods that can be shared by child classes.
		 */
		export class BaseByteBuffer extends java.nio.ByteBuffer {
			static class: java.lang.Class<java.nio.BaseByteBuffer>;
			public asCharBuffer(): java.nio.CharBuffer;
			public asDoubleBuffer(): java.nio.DoubleBuffer;
			public asFloatBuffer(): java.nio.FloatBuffer;
			public asIntBuffer(): java.nio.IntBuffer;
			public asLongBuffer(): java.nio.LongBuffer;
			public asShortBuffer(): java.nio.ShortBuffer;
			public getChar(): string;
			public getChar(index: number): string;
			public putChar(value: string): java.nio.ByteBuffer;
			public putChar(index: number, value: string): java.nio.ByteBuffer;
		}
		/**
		 * FloatArrayBuffer, ReadWriteFloatArrayBuffer and ReadOnlyFloatArrayBuffer compose the implementation of array based float buffers.
		 */
		export class FloatArrayBuffer extends java.nio.FloatBuffer {
			static class: java.lang.Class<java.nio.FloatArrayBuffer>;
			public get(): number;
			public get(index: number): number;
			public get(dst: native.Array<number>, dstOffset: number, floatCount: number): java.nio.FloatBuffer;
			public isDirect(): boolean;
			public order(): java.nio.ByteOrder;
			/**
			 * Reads floats from the current position into the specified float array and increases the position by the number of floats read.
			 * @param dst 
			 */
			get(dst: native.Array<number>): java.nio.FloatBuffer;
		}
		export class SocketChannelImpl extends java.nio.channels.SocketChannel implements java.nio.IFileDescriptorChannel {
			constructor(selectorProvider: java.nio.channels.spi.SelectorProvider);
			constructor(selectorProvider: java.nio.channels.spi.SelectorProvider, connect: boolean);
			constructor(selectorProvider: java.nio.channels.spi.SelectorProvider, existingFd: java.io.FileDescriptor);
			static class: java.lang.Class<java.nio.SocketChannelImpl>;
			public socket(): java.net.Socket;
			public isConnected(): boolean;
			setConnected(): void;
			setBound(flag: boolean): void;
			public isConnectionPending(): boolean;
			public connect(socketAddress: java.net.SocketAddress): boolean;
			public finishConnect(): boolean;
			finishAccept(): void;
			public read(dst: java.nio.ByteBuffer): number;
			public read(targets: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
			public write(src: java.nio.ByteBuffer): number;
			public write(sources: native.Array<java.nio.ByteBuffer>, offset: number, length: number): any;
			static validateAddress(socketAddress: java.net.SocketAddress): java.net.InetSocketAddress;
			public getLocalAddress(): java.net.InetAddress;
			protected implCloseSelectableChannel(): void;
			protected implConfigureBlocking(blocking: boolean): void;
			public getFD(): java.io.FileDescriptor;
			/**
			 * Reads bytes from this socket channel and stores them in the specified array of buffers. This method attempts to read as many bytes as can be stored in the buffer array from this channel and returns the number of bytes actually read.
			 * @param targets 
			 */
			read(targets: native.Array<java.nio.ByteBuffer>): any;
			/**
			 * Writes bytes from all the given byte buffers to this socket channel.
			 * @param sources 
			 */
			write(sources: native.Array<java.nio.ByteBuffer>): any;
		}
		export module SocketChannelImpl {
			export class SocketChannelOutputStream extends java.io.OutputStream {
				constructor(channel: java.nio.channels.SocketChannel);
				static class: java.lang.Class<java.nio.SocketChannelImpl.SocketChannelOutputStream>;
				public close(): void;
				public write(buffer: native.Array<number>, offset: number, byteCount: number): void;
				public write(oneByte: number): void;
				/**
				 * Equivalent to write(buffer, 0, buffer.length).
				 */
				write(buffer: native.Array<number>): void;
			}
			export class SocketChannelInputStream extends java.io.InputStream {
				constructor(channel: java.nio.channels.SocketChannel);
				static class: java.lang.Class<java.nio.SocketChannelImpl.SocketChannelInputStream>;
				public close(): void;
				public read(): number;
				public read(buffer: native.Array<number>, offset: number, byteCount: number): number;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			export class SocketAdapter extends java.net.Socket {
				static class: java.lang.Class<java.nio.SocketChannelImpl.SocketAdapter>;
				public getChannel(): java.nio.channels.SocketChannel;
				public isBound(): boolean;
				public isConnected(): boolean;
				public getLocalAddress(): java.net.InetAddress;
				public connect(remoteAddr: java.net.SocketAddress, timeout: number): void;
				public bind(localAddr: java.net.SocketAddress): void;
				public close(): void;
				public getOutputStream(): java.io.OutputStream;
				public getInputStream(): java.io.InputStream;
				public getFileDescriptor$(): java.io.FileDescriptor;
				/**
				 * Connects this socket to the given remote host address and port specified by the SocketAddress remoteAddr.
				 * @param remoteAddr 
				 */
				connect(remoteAddr: java.net.SocketAddress): void;
			}
		}
		/**
		 * DoubleArrayBuffer, ReadWriteDoubleArrayBuffer and ReadOnlyDoubleArrayBuffer compose the implementation of array based double buffers.
		 */
		export class ReadWriteDoubleArrayBuffer extends java.nio.DoubleArrayBuffer {
			static class: java.lang.Class<java.nio.ReadWriteDoubleArrayBuffer>;
			static copy(other: java.nio.DoubleArrayBuffer, markOfOther: number): java.nio.ReadWriteDoubleArrayBuffer;
			public asReadOnlyBuffer(): java.nio.DoubleBuffer;
			public compact(): java.nio.DoubleBuffer;
			public duplicate(): java.nio.DoubleBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<number>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: number): java.nio.DoubleBuffer;
			public put(index: number, c: number): java.nio.DoubleBuffer;
			public put(src: native.Array<number>, srcOffset: number, doubleCount: number): java.nio.DoubleBuffer;
			public slice(): java.nio.DoubleBuffer;
			/**
			 * Writes doubles from the given double array to the current position and increases the position by the number of doubles written.
			 * @param src 
			 */
			put(src: native.Array<number>): java.nio.DoubleBuffer;
			/**
			 * Writes all the remaining doubles of the src double buffer to this buffer's current position, and increases both buffers' position by the number of doubles copied.
			 * @param src 
			 */
			put(src: java.nio.DoubleBuffer): java.nio.DoubleBuffer;
		}
		/**
		 * CharArrayBuffer, ReadWriteCharArrayBuffer and ReadOnlyCharArrayBuffer compose the implementation of array based char buffers.
		 */
		export class ReadOnlyCharArrayBuffer extends java.nio.CharArrayBuffer {
			static class: java.lang.Class<java.nio.ReadOnlyCharArrayBuffer>;
			static copy(other: java.nio.CharArrayBuffer, markOfOther: number): java.nio.ReadOnlyCharArrayBuffer;
			public asReadOnlyBuffer(): java.nio.CharBuffer;
			public compact(): java.nio.CharBuffer;
			public duplicate(): java.nio.CharBuffer;
			public isReadOnly(): boolean;
			protectedArray(): native.Array<string>;
			protectedArrayOffset(): number;
			protectedHasArray(): boolean;
			public put(c: string): java.nio.CharBuffer;
			public put(index: number, c: string): java.nio.CharBuffer;
			public put(src: native.Array<string>, srcOffset: number, charCount: number): java.nio.CharBuffer;
			public put(src: java.nio.CharBuffer): java.nio.CharBuffer;
			public put(src: string, start: number, end: number): java.nio.CharBuffer;
			public slice(): java.nio.CharBuffer;
			/**
			 * Writes chars from the given char array to the current position and increases the position by the number of chars written.
			 * @param src 
			 */
			put(src: native.Array<string>): java.nio.CharBuffer;
		}
	}
	export module io {
		/**
		 * Signals that a blocking I/O operation has been interrupted. The number of bytes that were transferred successfully before the interruption took place is stored in a field of the exception.
		 */
		export class InterruptedIOException extends java.io.IOException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			/**
			 * The number of bytes transferred before the I/O interrupt occurred.
			 */
			bytesTransferred: number;
			static class: java.lang.Class<java.io.InterruptedIOException>;
		}
		/**
		 * A helper interface with constants used by the serialization implementation.
		 */
		export class ObjectStreamConstants implements java.io.IObjectStreamConstants {
			constructor(implementation: java.io.IObjectStreamConstants);
			/**
			 * The stream header's magic number.
			 */
			static STREAM_MAGIC: number;
			/**
			 * The stream header's version number.
			 */
			static STREAM_VERSION: number;
			/**
			 * The minimum tag value.
			 */
			static TC_BASE: number;
			/**
			 * Tag to mark a null object reference.
			 */
			static TC_NULL: number;
			/**
			 * Tag to mark a reference to an object that has already been written to the stream.
			 */
			static TC_REFERENCE: number;
			/**
			 * Tag to mark a new class descriptor.
			 */
			static TC_CLASSDESC: number;
			/**
			 * Tag to mark a new object.
			 */
			static TC_OBJECT: number;
			/**
			 * Tag to mark a new string.
			 */
			static TC_STRING: number;
			/**
			 * Tag to mark a new array.
			 */
			static TC_ARRAY: number;
			/**
			 * Tag to mark a reference to a class.
			 */
			static TC_CLASS: number;
			/**
			 * Tag to mark a block of optional data. The byte following this tag indicates the size of the block.
			 */
			static TC_BLOCKDATA: number;
			/**
			 * Tag to mark the end of block data blocks for an object.
			 */
			static TC_ENDBLOCKDATA: number;
			/**
			 * Tag to mark a stream reset.
			 */
			static TC_RESET: number;
			/**
			 * Tag to mark a long block of data. The long following this tag indicates the size of the block.
			 */
			static TC_BLOCKDATALONG: number;
			/**
			 * Tag to mark an exception.
			 */
			static TC_EXCEPTION: number;
			/**
			 * Tag to mark a long string.
			 */
			static TC_LONGSTRING: number;
			/**
			 * Tag to mark a new proxy class descriptor.
			 */
			static TC_PROXYCLASSDESC: number;
			/**
			 * The maximum tag value.
			 */
			static TC_MAX: number;
			/**
			 * Handle for the first object that gets serialized.
			 */
			static baseWireHandle: number;
			/**
			 * Stream protocol version 1.
			 */
			static PROTOCOL_VERSION_1: number;
			/**
			 * Stream protocol version 2.
			 */
			static PROTOCOL_VERSION_2: number;
			/**
			 * Permission constant to enable subclassing of ObjectInputStream and ObjectOutputStream.
			 */
			static SUBCLASS_IMPLEMENTATION_PERMISSION: java.io.SerializablePermission;
			/**
			 * Permission constant to enable object substitution during serialization and deserialization.
			 */
			static SUBSTITUTION_PERMISSION: java.io.SerializablePermission;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a serializable class has its own writeObject method.
			 */
			static SC_WRITE_METHOD: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a class is serializable.
			 */
			static SC_SERIALIZABLE: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a class is externalizable.
			 */
			static SC_EXTERNALIZABLE: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that an externalizable class is written in block data mode.
			 */
			static SC_BLOCK_DATA: number;
			/**
			 * Tag to mark a new enum.
			 */
			static TC_ENUM: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a class is an enum type.
			 */
			static SC_ENUM: number;
		}
		/**
		 * Marks classes that can be serialized by ObjectOutputStream and deserialized by ObjectInputStream.
		 */
		export class Serializable implements java.io.ISerializable {
			constructor(implementation: java.io.ISerializable);
		}
		/**
		 * Wraps an existing Writer and performs some transformation on the output data while it is being written. Transformations can be anything from a simple byte-wise filtering output data to an on-the-fly compression or decompression of the underlying writer. Writers that wrap another writer and provide some additional functionality on top of it usually inherit from this class.
		 */
		export class FilterWriter extends java.io.Writer {
			static class: java.lang.Class<java.io.FilterWriter>;
			/**
			 * Closes this writer. This implementation closes the target writer.
			 */
			public close(): void;
			/**
			 * Flushes this writer to ensure all pending data is sent out to the target writer. This implementation flushes the target writer.
			 */
			public flush(): void;
			/**
			 * Writes count characters from the char array buffer starting at position offset to the target writer.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<string>, offset: number, count: number): void;
			/**
			 * Writes the specified character oneChar to the target writer. Only the two least significant bytes of the integer oneChar are written.
			 * @param oneChar 
			 */
			public write(oneChar: number): void;
			/**
			 * Writes count characters from the string str starting at position index to this writer. This implementation writes str to the target writer.
			 * @param str 
			 * @param offset 
			 * @param count 
			 */
			public write(str: string, offset: number, count: number): void;
			/**
			 * Writes the entire character buffer buf to the target.
			 * @param buf 
			 */
			write(buf: native.Array<string>): void;
			/**
			 * Writes the characters from the specified string to the target.
			 * @param str 
			 */
			write(str: string): void;
		}
		/**
		 * A writable sink for bytes.
		 */
		export class OutputStream extends java.lang.Object implements java.io.ICloseable, java.io.IFlushable {
			/**
			 * Default constructor.
			 */
			constructor();
			static class: java.lang.Class<java.io.OutputStream>;
			/**
			 * Closes this stream. Implementations of this method should free any resources used by the stream. This implementation does nothing.
			 */
			public close(): void;
			/**
			 * Flushes this stream. Implementations of this method should ensure that any buffered data is written out. This implementation does nothing.
			 */
			public flush(): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			public write(buffer: native.Array<number>): void;
			/**
			 * Writes count bytes from the byte array buffer starting at position offset to this stream.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<number>, offset: number, count: number): void;
			/**
			 * Writes a single byte to this stream. Only the least significant byte of the integer oneByte is written to the stream.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Returns true if this writer has encountered and suppressed an error. Used by PrintStreams as an alternative to checked exceptions.
			 */
			checkError(): boolean;
		}
		/**
		 * An AutoCloseable whose close method may throw an IOException.
		 */
		export class Closeable implements java.io.ICloseable {
			constructor(implementation: java.io.ICloseable);
			/**
			 * Closes the object and release any system resources it holds.
			 */
			public close(): void;
		}
		/**
		 * Thrown when a file specified by a program cannot be found.
		 */
		export class FileNotFoundException extends java.io.IOException {
			/**
			 * Constructs a new FileNotFoundException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new FileNotFoundException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.FileNotFoundException>;
		}
		/**
		 * Defines an interface for classes that allow reading serialized objects.
		 */
		interface IObjectOutput extends java.io.IDataOutput {
			/**
			 * Closes the target stream. Implementations of this method should free any resources used by the stream.
			 */
			close(): void;
			/**
			 * Flushes the target stream. Implementations of this method should ensure that any pending writes are written out to the target stream.
			 */
			flush(): void;
			/**
			 * Writes the entire contents of the byte array buffer to the output stream. Blocks until all bytes are written.
			 * @param buffer 
			 */
			write(buffer: native.Array<number>): void;
			/**
			 * Writes count bytes from the byte array buffer starting at position offset to the target stream. Blocks until all bytes are written.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			write(buffer: native.Array<number>, offset: number, count: number): void;
			/**
			 * Writes a single byte to the target stream. Only the least significant byte of the integer value is written to the stream. Blocks until the byte is actually written.
			 * @param value 
			 */
			write(value: number): void;
			/**
			 * Writes the specified object obj to the target stream.
			 * @param obj 
			 */
			writeObject(obj: any): void;
			/**
			 * Writes the specified boolean.
			 * @param val 
			 */
			writeBoolean(val: boolean): void;
			/**
			 * Writes the specified 8-bit byte.
			 * @param val 
			 */
			writeByte(val: number): void;
			/**
			 * Writes the low order 8-bit bytes from the specified string.
			 * @param str 
			 */
			writeBytes(str: string): void;
			/**
			 * Writes the specified 16-bit character in big-endian order. Only the two least significant bytes of the integer oneByte are written.
			 * @param val 
			 */
			writeChar(val: number): void;
			/**
			 * Writes the 16-bit characters contained in str in big-endian order.
			 * @param str 
			 */
			writeChars(str: string): void;
			/**
			 * Writes the specified 64-bit double in big-endian order. The resulting output is the eight bytes returned by Double#doubleToLongBits(double).
			 * @param val 
			 */
			writeDouble(val: number): void;
			/**
			 * Writes the specified 32-bit float in big-endian order. The resulting output is the four bytes returned by Float#floatToIntBits(float).
			 * @param val 
			 */
			writeFloat(val: number): void;
			/**
			 * Writes the specified 32-bit int in big-endian order.
			 * @param val 
			 */
			writeInt(val: number): void;
			/**
			 * Writes the specified 64-bit long in big-endian order.
			 * @param val 
			 */
			writeLong(val: number): void;
			/**
			 * Writes the specified 16-bit short in big-endian order. Only the lower two bytes of val are written.
			 * @param val 
			 */
			writeShort(val: number): void;
			/**
			 * Writes the specified string encoded in DataInput modified UTF-8.
			 * @param str 
			 */
			writeUTF(str: string): void;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class FilePermission extends java.security.Permission implements java.io.ISerializable {
			constructor(path: string, actions: string);
			static class: java.lang.Class<java.io.FilePermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Defines an interface for classes that can (or need to) be flushed, typically before some output processing is considered to be finished and the object gets closed.
		 */
		interface IFlushable {
			/**
			 * Flushes the object by writing out any buffered data to the underlying output.
			 */
			flush(): void;
		}
		/**
		 * Marks classes that can be serialized by ObjectOutputStream and deserialized by ObjectInputStream.
		 */
		interface ISerializable {
		}
		/**
		 * A specialized InputStream that reads bytes from a String in a sequential manner.
		 */
		export class StringBufferInputStream extends java.io.InputStream {
			/**
			 * Construct a new StringBufferInputStream with str as source. The size of the stream is set to the length() of the string.
			 * @param str 
			 */
			constructor(str: string);
			static class: java.lang.Class<java.io.StringBufferInputStream>;
			public available(): number;
			/**
			 * Reads a single byte from the source string and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the source string has been reached.
			 */
			public read(): number;
			/**
			 * Reads at most length bytes from the source string and stores them in the byte array b starting at offset.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<number>, offset: number, length: number): number;
			/**
			 * Resets this stream to the beginning of the source string.
			 */
			public reset(): void;
			/**
			 * Skips charCount characters in the source string. It does nothing and returns 0 if charCount is negative. Less than charCount characters are skipped if the end of the source string is reached before the operation completes.
			 */
			public skip(charCount: number): any;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Wraps an existing InputStream and adds functionality to "push back" bytes that have been read, so that they can be read again. Parsers may find this useful. The number of bytes which may be pushed back can be specified during construction. If the buffer of pushed back bytes is empty, bytes are read from the underlying input stream.
		 */
		export class PushbackInputStream extends java.io.FilterInputStream {
			/**
			 * Constructs a new PushbackInputStream with the specified input stream as source. The size of the pushback buffer is set to the default value of 1 byte.
			 * @param input in
			 */
			constructor(input: java.io.InputStream);
			/**
			 * Constructs a new PushbackInputStream with in as source input stream. The size of the pushback buffer is set to size.
			 * @param input in
			 * @param size 
			 */
			constructor(input: java.io.InputStream, size: number);
			static class: java.lang.Class<java.io.PushbackInputStream>;
			public available(): number;
			/**
			 * Closes this stream. This implementation closes the source stream and releases the pushback buffer.
			 */
			public close(): void;
			/**
			 * Indicates whether this stream supports the mark(int) and reset() methods. PushbackInputStream does not support them, so it returns false.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. If the pushback buffer does not contain any available bytes then a byte from the source input stream is returned. Blocks until one byte has been read, the end of the source stream is detected or an exception is thrown.
			 */
			public read(): number;
			/**
			 * Reads at most length bytes from this stream and stores them in the byte array buffer starting at offset. Bytes are read from the pushback buffer first, then from the source stream if more bytes are required. Blocks until count bytes have been read, the end of the source stream is detected or an exception is thrown.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<number>, offset: number, length: number): number;
			/**
			 * Skips byteCount bytes in this stream. This implementation skips bytes in the pushback buffer first and then in the source stream if necessary.
			 */
			public skip(byteCount: number): any;
			/**
			 * Pushes all the bytes in buffer back to this stream. The bytes are pushed back in such a way that the next byte read from this stream is buffer[0], then buffer[1] and so on.
			 * @param buffer 
			 */
			public unread(buffer: native.Array<number>): void;
			/**
			 * Pushes a subset of the bytes in buffer back to this stream. The subset is defined by the start position offset within buffer and the number of bytes specified by length. The bytes are pushed back in such a way that the next byte read from this stream is buffer[offset], then buffer[1] and so on.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public unread(buffer: native.Array<number>, offset: number, length: number): void;
			/**
			 * Pushes the specified byte oneByte back to this stream. Only the least significant byte of the integer oneByte is pushed back. This is done in such a way that the next byte read from this stream is (byte) oneByte.
			 * @param oneByte 
			 */
			public unread(oneByte: number): void;
			/**
			 * Marks the current position in this stream. Setting a mark is not supported in this class; this implementation does nothing.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Resets this stream to the last marked position. Resetting the stream is not supported in this class; this implementation always throws an IOException.
			 */
			public reset(): void;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Wraps an existing InputStream and <em>buffers</em> the input. Expensive interaction with the underlying input stream is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when filling that buffer, but this is usually outweighed by the performance benefits.
		 */
		export class BufferedInputStream extends java.io.FilterInputStream {
			/**
			 * Constructs a new BufferedInputStream, providing in with a buffer of 8192 bytes.
			 * @param input in the {@code InputStream} the buffer reads from.
			 */
			constructor(input: java.io.InputStream);
			/**
			 * Constructs a new BufferedInputStream, providing in with size bytes of buffer.
			 * @param input in the {@code InputStream} the buffer reads from.
			 * @param size the size of buffer in bytes.
			 */
			constructor(input: java.io.InputStream, size: number);
			static class: java.lang.Class<java.io.BufferedInputStream>;
			/**
			 * Returns an estimated number of bytes that can be read or skipped without blocking for more input. This method returns the number of bytes available in the buffer plus those available in the source stream, but see InputStream#available for important caveats.
			 */
			public available(): number;
			/**
			 * Closes this stream. The source stream is closed and any resources associated with it are released.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this stream. The parameter readlimit indicates how many bytes can be read before a mark is invalidated. Calling reset() will reposition the stream back to the marked position if readlimit has not been surpassed. The underlying buffer may be increased in size to allow readlimit number of bytes to be supported.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Indicates whether BufferedInputStream supports the mark() and reset() methods.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the source string has been reached. If the internal buffer does not contain any available bytes then it is filled from the source stream and the first byte is returned.
			 */
			public read(): number;
			/**
			 * Reads at most byteCount bytes from this stream and stores them in byte array buffer starting at offset offset. Returns the number of bytes actually read or -1 if no bytes were read and the end of the stream was encountered. If all the buffered bytes have been used, a mark has not been set and the requested number of bytes is larger than the receiver's buffer size, this implementation bypasses the buffer and simply places the results directly into buffer.
			 * @param buffer 
			 * @param offset 
			 * @param byteCount 
			 */
			public read(buffer: native.Array<number>, offset: number, byteCount: number): number;
			/**
			 * Resets this stream to the last marked location.
			 */
			public reset(): void;
			/**
			 * Skips byteCount bytes in this stream. Subsequent calls to read will not return these bytes unless reset is used.
			 * @param byteCount 
			 */
			public skip(byteCount: number): any;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Defines an interface for classes that are able to write big-endian typed data to some target. Typically, this data can be read in by a class which implements DataInput. Types that can be written include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and DataInput MUTF-8 encoded strings.
		 */
		interface IDataOutput {
			/**
			 * Writes the entire contents of the byte array buffer to this stream.
			 * @param buffer 
			 */
			write(buffer: native.Array<number>): void;
			/**
			 * Writes count bytes from the byte array buffer starting at offset index.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			write(buffer: native.Array<number>, offset: number, count: number): void;
			/**
			 * Writes the specified 8-bit byte.
			 * @param oneByte 
			 */
			write(oneByte: number): void;
			/**
			 * Writes the specified boolean.
			 * @param val 
			 */
			writeBoolean(val: boolean): void;
			/**
			 * Writes the specified 8-bit byte.
			 * @param val 
			 */
			writeByte(val: number): void;
			/**
			 * Writes the low order 8-bit bytes from the specified string.
			 * @param str 
			 */
			writeBytes(str: string): void;
			/**
			 * Writes the specified 16-bit character in big-endian order. Only the two least significant bytes of the integer oneByte are written.
			 * @param val 
			 */
			writeChar(val: number): void;
			/**
			 * Writes the 16-bit characters contained in str in big-endian order.
			 * @param str 
			 */
			writeChars(str: string): void;
			/**
			 * Writes the specified 64-bit double in big-endian order. The resulting output is the eight bytes returned by Double#doubleToLongBits(double).
			 * @param val 
			 */
			writeDouble(val: number): void;
			/**
			 * Writes the specified 32-bit float in big-endian order. The resulting output is the four bytes returned by Float#floatToIntBits(float).
			 * @param val 
			 */
			writeFloat(val: number): void;
			/**
			 * Writes the specified 32-bit int in big-endian order.
			 * @param val 
			 */
			writeInt(val: number): void;
			/**
			 * Writes the specified 64-bit long in big-endian order.
			 * @param val 
			 */
			writeLong(val: number): void;
			/**
			 * Writes the specified 16-bit short in big-endian order. Only the lower two bytes of val are written.
			 * @param val 
			 */
			writeShort(val: number): void;
			/**
			 * Writes the specified string encoded in DataInput modified UTF-8.
			 * @param str 
			 */
			writeUTF(str: string): void;
		}
		/**
		 * Thrown when a program encounters the end of a file or stream during an input operation.
		 */
		export class EOFException extends java.io.IOException {
			/**
			 * Constructs a new EOFException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new EOFException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.EOFException>;
		}
		/**
		 * A specialization of IdentityHashMap<Object, int> for use when serializing objects. We need to assign each object we write an int 'handle' (densely packed but not starting at zero), and use the same handle any time we write the same object again.
		 */
		export class SerializationHandleMap extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.io.SerializationHandleMap>;
			public get(key: any): number;
			public put(key: any, value: number): number;
			public remove(key: any): number;
			public isEmpty(): boolean;
		}
		/**
		 * Signals that the ObjectInputStream#readObject() method could not read an object due to missing information (for example, a cyclic reference that doesn't match a previous instance, or a missing class descriptor for the object to be loaded).
		 */
		export class StreamCorruptedException extends java.io.ObjectStreamException {
			/**
			 * Constructs a new StreamCorruptedException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new StreamCorruptedException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.StreamCorruptedException>;
		}
		/**
		 * Signals some sort of problem during either serialization or deserialization of objects. This is actually the superclass of several other, more specific exception classes.
		 */
		export class ObjectStreamException extends java.io.IOException {
			static class: java.lang.Class<java.io.ObjectStreamException>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class SerializablePermission extends java.security.BasicPermission {
			constructor(permissionName: string);
			constructor(name: string, actions: string);
			static class: java.lang.Class<java.io.SerializablePermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Wraps an existing Reader and performs some transformation on the input data while it is being read. Transformations can be anything from a simple byte-wise filtering input data to an on-the-fly compression or decompression of the underlying reader. Readers that wrap another reader and provide some additional functionality on top of it usually inherit from this class.
		 */
		export class FilterReader extends java.io.Reader {
			static class: java.lang.Class<java.io.FilterReader>;
			/**
			 * Closes this reader. This implementation closes the filtered reader.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this reader. The parameter readlimit indicates how many bytes can be read before the mark is invalidated. Sending reset() will reposition this reader back to the marked position, provided that readlimit has not been surpassed.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Indicates whether this reader supports mark() and reset(). This implementation returns whether the filtered reader supports marking.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single character from the filtered reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the filtered reader has been reached.
			 */
			public read(): number;
			/**
			 * Reads at most count characters from the filtered reader and stores them in the byte array buffer starting at offset. Returns the number of characters actually read or -1 if no characters were read and the end of the filtered reader was encountered.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public read(buffer: native.Array<string>, offset: number, count: number): number;
			/**
			 * Indicates whether this reader is ready to be read without blocking. If the result is true, the next read() will not block. If the result is false, this reader may or may not block when read() is sent.
			 */
			public ready(): boolean;
			/**
			 * Resets this reader's position to the last marked location. Invocations of read() and skip() will occur from this new location. If this reader was not marked, the behavior depends on the implementation of reset() in the Reader subclass that is filtered by this reader. The default behavior for Reader is to throw an IOException.
			 */
			public reset(): void;
			/**
			 * Skips charCount characters in this reader. Subsequent calls to read will not return these characters unless reset is used. The default implementation is to skip characters in the filtered reader.
			 */
			public skip(charCount: number): any;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Defines an interface for classes that want to be serializable, but have their own binary representation.
		 */
		interface IExternalizable extends java.io.ISerializable {
			/**
			 * Reads the next object from the ObjectInput <code>input</code>.
			 * @param input 
			 */
			readExternal(input: java.io.IObjectInput): void;
			/**
			 * Writes the receiver to the ObjectOutput <code>output</code>.
			 * @param output 
			 */
			writeExternal(output: java.io.IObjectOutput): void;
		}
		/**
		 * An interface for filtering File objects based on their names or other information.
		 */
		interface IFileFilter {
			/**
			 * Indicating whether a specific file should be included in a pathname list.
			 * @param pathname 
			 */
			accept(pathname: java.io.File): boolean;
		}
		/**
		 * This could have been in Charset or Charsets, but all code uses those classes whereas no code should need to use this, so let's not make good code pay to initialize this map.
		 */
		export class HistoricalCharsetNames extends java.lang.Object {
			static class: java.lang.Class<java.io.HistoricalCharsetNames>;
			public static get(charset: java.nio.charset.Charset): string;
		}
		/**
		 * Signals a problem during the serialization or or deserialization of an object. Possible reasons include: <ul> <li>The SUIDs of the class loaded by the VM and the serialized class info do not match.</li> <li>A serializable or externalizable object cannot be instantiated (when deserializing) because the no-arg constructor that needs to be run is not visible or fails.</li> </ul>
		 */
		export class InvalidClassException extends java.io.ObjectStreamException {
			/**
			 * Constructs a new InvalidClassException with its stack trace and detailed message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new InvalidClassException with its stack trace, detail message and the fully qualified name of the class which caused the exception filled in.
			 * @param className 
			 * @param detailMessage 
			 */
			constructor(className: string, detailMessage: string);
			/**
			 * The fully qualified name of the class that caused the problem.
			 */
			classname: string;
			static class: java.lang.Class<java.io.InvalidClassException>;
			/**
			 * Returns the detail message which was provided when the exception was created. null is returned if no message was provided at creation time. If a detail message as well as a class name are provided, then the values are concatenated and returned.
			 */
			public getMessage(): string;
		}
		/**
		 * Thrown when a program asks for a particular character converter that is unavailable.
		 */
		export class UnsupportedEncodingException extends java.io.IOException {
			/**
			 * Constructs a new UnsupportedEncodingException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new UnsupportedEncodingException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.UnsupportedEncodingException>;
		}
		/**
		 * Signals that the FileDescriptor#sync() method has failed to complete.
		 */
		export class SyncFailedException extends java.io.IOException {
			/**
			 * Constructs a new SyncFailedException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.SyncFailedException>;
		}
		/**
		 * Defines an interface for classes that can (or need to) be flushed, typically before some output processing is considered to be finished and the object gets closed.
		 */
		export class Flushable implements java.io.IFlushable {
			constructor(implementation: java.io.IFlushable);
			/**
			 * Flushes the object by writing out any buffered data to the underlying output.
			 */
			public flush(): void;
		}
		/**
		 * An AutoCloseable whose close method may throw an IOException.
		 */
		interface ICloseable {
			/**
			 * Closes the object and release any system resources it holds.
			 */
			close(): void;
		}
		/**
		 * An input stream that reads bytes from a file. <pre> File file = ... InputStream in = null; try { in = new BufferedInputStream(new FileInputStream(file)); ... finally { if (in != null) { in.close(); } } }</pre>
		 */
		export class FileInputStream extends java.io.InputStream implements java.io.ICloseable {
			/**
			 * Constructs a new FileInputStream that reads from file.
			 * @param file 
			 */
			constructor(file: java.io.File);
			/**
			 * Constructs a new FileInputStream that reads from fd.
			 * @param fd 
			 */
			constructor(fd: java.io.FileDescriptor);
			/**
			 * Equivalent to new FileInputStream(new File(path)).
			 */
			constructor(path: string);
			static class: java.lang.Class<java.io.FileInputStream>;
			public available(): number;
			public close(): void;
			/**
			 * Ensures that all resources for this stream are released when it is about to be garbage collected.
			 */
			protected finalize(): void;
			/**
			 * Returns a read-only FileChannel that shares its position with this stream.
			 */
			public getChannel(): java.nio.channels.FileChannel;
			/**
			 * Returns the underlying file descriptor.
			 */
			public getFD(): java.io.FileDescriptor;
			public read(): number;
			public read(buffer: native.Array<number>, byteOffset: number, byteCount: number): number;
			public skip(byteCount: number): any;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Wraps an existing Reader and adds functionality to "push back" characters that have been read, so that they can be read again. Parsers may find this useful. The number of characters which may be pushed back can be specified during construction. If the buffer of pushed back bytes is empty, characters are read from the underlying reader.
		 */
		export class PushbackReader extends java.io.FilterReader {
			/**
			 * Constructs a new PushbackReader with the specified reader as source. The size of the pushback buffer is set to the default value of 1 character.
			 * @param input in
			 */
			constructor(input: java.io.Reader);
			/**
			 * Constructs a new PushbackReader with in as source reader. The size of the pushback buffer is set to size.
			 * @param input in
			 * @param size 
			 */
			constructor(input: java.io.Reader, size: number);
			static class: java.lang.Class<java.io.PushbackReader>;
			/**
			 * Closes this reader. This implementation closes the source reader and releases the pushback buffer.
			 */
			public close(): void;
			/**
			 * Marks the current position in this stream. Setting a mark is not supported in this class; this implementation always throws an IOException.
			 * @param readAheadLimit 
			 */
			public mark(readAheadLimit: number): void;
			/**
			 * Indicates whether this reader supports the mark(int) and reset() methods. PushbackReader does not support them, so it returns false.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the reader has been reached. If the pushback buffer does not contain any available characters then a character from the source reader is returned. Blocks until one character has been read, the end of the source reader is detected or an exception is thrown.
			 */
			public read(): number;
			/**
			 * Reads at most length bytes from this reader and stores them in byte array buffer starting at offset. Characters are read from the pushback buffer first, then from the source reader if more bytes are required. Blocks until count characters have been read, the end of the source reader is detected or an exception is thrown.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public read(buffer: native.Array<string>, offset: number, count: number): number;
			/**
			 * Indicates whether this reader is ready to be read without blocking. Returns true if this reader will not block when read is called, false if unknown or blocking will occur.
			 */
			public ready(): boolean;
			/**
			 * Resets this reader to the last marked position. Resetting the reader is not supported in this class; this implementation always throws an IOException.
			 */
			public reset(): void;
			/**
			 * Pushes all the characters in buffer back to this reader. The characters are pushed back in such a way that the next character read from this reader is buffer[0], then buffer[1] and so on.
			 * @param buffer 
			 */
			public unread(buffer: native.Array<string>): void;
			/**
			 * Pushes a subset of the characters in buffer back to this reader. The subset is defined by the start position offset within buffer and the number of characters specified by length. The bytes are pushed back in such a way that the next byte read from this stream is buffer[offset], then buffer[1] and so on.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public unread(buffer: native.Array<string>, offset: number, length: number): void;
			/**
			 * Pushes the specified character oneChar back to this reader. This is done in such a way that the next character read from this reader is (char) oneChar.
			 * @param oneChar 
			 */
			public unread(oneChar: number): void;
			/**
			 * Skips charCount characters in this reader. This implementation skips characters in the pushback buffer first and then in the source reader if necessary.
			 */
			public skip(charCount: number): any;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Defines an interface for classes that are able to read big-endian typed data from some source. Typically, this data has been written by a class which implements DataOutput. Types that can be read include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and MUTF-8 strings.
		 */
		export class DataInput implements java.io.IDataInput {
			constructor(implementation: java.io.IDataInput);
			/**
			 * Reads a boolean.
			 */
			public readBoolean(): boolean;
			/**
			 * Reads an 8-bit byte value.
			 */
			public readByte(): number;
			/**
			 * Reads a big-endian 16-bit character value.
			 */
			public readChar(): string;
			/**
			 * Reads a big-endian 64-bit double value.
			 */
			public readDouble(): any;
			/**
			 * Reads a big-endian 32-bit float value.
			 */
			public readFloat(): number;
			/**
			 * Equivalent to readFully(dst, 0, dst.length);.
			 */
			public readFully(dst: native.Array<number>): void;
			/**
			 * Reads byteCount bytes from this stream and stores them in the byte array dst starting at offset. If byteCount is zero, then this method returns without reading any bytes. Otherwise, this method blocks until byteCount bytes have been read. If insufficient bytes are available, EOFException is thrown. If an I/O error occurs, IOException is thrown. When an exception is thrown, some bytes may have been consumed from the stream and written into the array.
			 * @param dst 
			 * @param offset 
			 * @param byteCount 
			 */
			public readFully(dst: native.Array<number>, offset: number, byteCount: number): void;
			/**
			 * Reads a big-endian 32-bit integer value.
			 */
			public readInt(): number;
			/**
			 * Returns a string containing the next line of text available from this stream. A line is made of zero or more characters followed by '\n', '\r', "\r\n" or the end of the stream. The string does not include the newline sequence.
			 */
			public readLine(): string;
			/**
			 * Reads a big-endian 64-bit long value.
			 */
			public readLong(): any;
			/**
			 * Reads a big-endian 16-bit short value.
			 */
			public readShort(): number;
			/**
			 * Reads an unsigned 8-bit byte value and returns it as an int.
			 */
			public readUnsignedByte(): number;
			/**
			 * Reads a big-endian 16-bit unsigned short value and returns it as an int.
			 */
			public readUnsignedShort(): number;
			/**
			 * Reads a string encoded with DataInput modified UTF-8.
			 */
			public readUTF(): string;
			/**
			 * Skips count number of bytes. This method will not throw an EOFException if the end of the input is reached before count bytes where skipped.
			 * @param count 
			 */
			public skipBytes(count: number): number;
		}
		/**
		 * Signals that an object that is not serializable has been passed into the ObjectOutput.writeObject() method. This can happen if the object does not implement Serializable or Externalizable, or if it is serializable but it overrides writeObject(ObjectOutputStream) and explicitly prevents serialization by throwing this type of exception.
		 */
		export class NotSerializableException extends java.io.ObjectStreamException {
			/**
			 * Constructs a new NotSerializableException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new NotSerializableException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.NotSerializableException>;
		}
		/**
		 * A callback interface for post-deserialization checks on objects. Allows, for example, the validation of a whole graph of objects after all of them have been loaded.
		 */
		interface IObjectInputValidation {
			/**
			 * Validates this object.
			 */
			validateObject(): void;
		}
		/**
		 * Allows reading from and writing to a file in a random-access manner. This is different from the uni-directional sequential access that a FileInputStream or FileOutputStream provides. If the file is opened in read/write mode, write operations are available as well. The position of the next read or write operation can be moved forwards and backwards after every operation.
		 */
		export class RandomAccessFile extends java.lang.Object implements java.io.IDataInput, java.io.IDataOutput, java.io.ICloseable {
			/**
			 * Constructs a new RandomAccessFile based on file and opens it according to the access string in mode.
			 * @param file 
			 * @param mode 
			 */
			constructor(file: java.io.File, mode: string);
			/**
			 * Constructs a new RandomAccessFile based on the file named fileName and opens it according to the access string in mode. The file path may be specified absolutely or relative to the system property "user.dir".
			 * @param fileName 
			 * @param mode 
			 */
			constructor(fileName: string, mode: string);
			static class: java.lang.Class<java.io.RandomAccessFile>;
			/**
			 * Closes this file.
			 */
			public close(): void;
			protected finalize(): void;
			/**
			 * Gets this file's FileChannel object.
			 */
			public getChannel(): java.nio.channels.FileChannel;
			/**
			 * Gets this file's FileDescriptor. This represents the operating system resource for this random access file.
			 */
			public getFD(): java.io.FileDescriptor;
			/**
			 * Gets the current position within this file. All reads and writes take place at the current file pointer position.
			 */
			public getFilePointer(): any;
			/**
			 * Returns the length of this file in bytes.
			 */
			public length(): any;
			/**
			 * Reads a single byte from the current position in this file and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the file has been reached. Blocks until one byte has been read, the end of the file is detected, or an exception is thrown.
			 */
			public read(): number;
			/**
			 * Reads bytes from the current position in this file and stores them in the byte array buffer. The maximum number of bytes read corresponds to the size of buffer. Blocks until at least one byte has been read, the end of the file is detected, or an exception is thrown.
			 * @param buffer 
			 */
			public read(buffer: native.Array<number>): number;
			/**
			 * Reads at most byteCount bytes from the current position in this file and stores them in the byte array buffer starting at byteOffset. Blocks until at least one byte has been read, the end of the file is detected, or an exception is thrown.
			 */
			public read(buffer: native.Array<number>, byteOffset: number, byteCount: number): number;
			/**
			 * Reads a boolean from the current position in this file. Blocks until one byte has been read, the end of the file is reached or an exception is thrown.
			 */
			public readBoolean(): boolean;
			/**
			 * Reads an 8-bit byte from the current position in this file. Blocks until one byte has been read, the end of the file is reached or an exception is thrown.
			 */
			public readByte(): number;
			/**
			 * Reads a big-endian 16-bit character from the current position in this file. Blocks until two bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readChar(): string;
			/**
			 * Reads a big-endian 64-bit double from the current position in this file. Blocks until eight bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readDouble(): any;
			/**
			 * Reads a big-endian 32-bit float from the current position in this file. Blocks until four bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readFloat(): number;
			/**
			 * Equivalent to readFully(dst, 0, dst.length);.
			 */
			public readFully(dst: native.Array<number>): void;
			/**
			 * Reads byteCount bytes from this stream and stores them in the byte array dst starting at offset. If byteCount is zero, then this method returns without reading any bytes. Otherwise, this method blocks until byteCount bytes have been read. If insufficient bytes are available, EOFException is thrown. If an I/O error occurs, IOException is thrown. When an exception is thrown, some bytes may have been consumed from the stream and written into the array.
			 * @param dst 
			 * @param offset 
			 * @param byteCount 
			 */
			public readFully(dst: native.Array<number>, offset: number, byteCount: number): void;
			/**
			 * Reads a big-endian 32-bit integer from the current position in this file. Blocks until four bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readInt(): number;
			/**
			 * Reads a line of text form the current position in this file. A line is represented by zero or more characters followed by '\n', '\r', "\r\n" or the end of file marker. The string does not include the line terminating sequence.
			 */
			public readLine(): string;
			/**
			 * Reads a big-endian 64-bit long from the current position in this file. Blocks until eight bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readLong(): any;
			/**
			 * Reads a big-endian 16-bit short from the current position in this file. Blocks until two bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readShort(): number;
			/**
			 * Reads an unsigned 8-bit byte from the current position in this file and returns it as an integer. Blocks until one byte has been read, the end of the file is reached or an exception is thrown.
			 */
			public readUnsignedByte(): number;
			/**
			 * Reads an unsigned big-endian 16-bit short from the current position in this file and returns it as an integer. Blocks until two bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readUnsignedShort(): number;
			/**
			 * Reads a string that is encoded in DataInput modified UTF-8 from this file. The number of bytes that must be read for the complete string is determined by the first two bytes read from the file. Blocks until all required bytes have been read, the end of the file is reached or an exception is thrown.
			 */
			public readUTF(): string;
			/**
			 * Moves this file's file pointer to a new position, from where following read, write or skip operations are done. The position may be greater than the current length of the file, but the file's length will only change if the moving of the pointer is followed by a write operation.
			 * @param offset 
			 */
			public seek(offset: number): void;
			/**
			 * Sets the length of this file to newLength. If the current file is smaller, it is expanded but the contents from the previous end of the file to the new end are undefined. The file is truncated if its current size is bigger than newLength. If the current file pointer position is in the truncated part, it is set to the end of the file.
			 * @param newLength 
			 */
			public setLength(newLength: number): void;
			/**
			 * Skips over count bytes in this file. Less than count bytes are skipped if the end of the file is reached or an exception is thrown during the operation. Nothing is done if count is negative.
			 * @param count 
			 */
			public skipBytes(count: number): number;
			/**
			 * Writes the entire contents of the byte array buffer to this file, starting at the current file pointer.
			 * @param buffer 
			 */
			public write(buffer: native.Array<number>): void;
			/**
			 * Writes byteCount bytes from the byte array buffer to this file, starting at the current file pointer and using byteOffset as the first position within buffer to get bytes.
			 */
			public write(buffer: native.Array<number>, byteOffset: number, byteCount: number): void;
			/**
			 * Writes a byte to this file, starting at the current file pointer. Only the least significant byte of the integer oneByte is written.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Writes a boolean to this file as a single byte (1 for true, 0 for false), starting at the current file pointer.
			 * @param val 
			 */
			public writeBoolean(val: boolean): void;
			/**
			 * Writes an 8-bit byte to this file, starting at the current file pointer. Only the least significant byte of the integer val is written.
			 * @param val 
			 */
			public writeByte(val: number): void;
			/**
			 * Writes the low order 8-bit bytes from a string to this file, starting at the current file pointer.
			 * @param str 
			 */
			public writeBytes(str: string): void;
			/**
			 * Writes a big-endian 16-bit character to this file, starting at the current file pointer. Only the two least significant bytes of the integer val are written, with the high byte first.
			 * @param val 
			 */
			public writeChar(val: number): void;
			/**
			 * Writes big-endian 16-bit characters from str to this file, starting at the current file pointer.
			 * @param str 
			 */
			public writeChars(str: string): void;
			/**
			 * Writes a big-endian 64-bit double to this file, starting at the current file pointer. The bytes are those returned by Double#doubleToLongBits(double), meaning a canonical NaN is used.
			 * @param val 
			 */
			public writeDouble(val: number): void;
			/**
			 * Writes a big-endian 32-bit float to this file, starting at the current file pointer. The bytes are those returned by Float#floatToIntBits(float), meaning a canonical NaN is used.
			 * @param val 
			 */
			public writeFloat(val: number): void;
			/**
			 * Writes a big-endian 32-bit integer to this file, starting at the current file pointer.
			 * @param val 
			 */
			public writeInt(val: number): void;
			/**
			 * Writes a big-endian 64-bit long to this file, starting at the current file pointer.
			 * @param val 
			 */
			public writeLong(val: number): void;
			/**
			 * Writes a big-endian 16-bit short to this file, starting at the current file pointer. Only the two least significant bytes of the integer val are written.
			 * @param val 
			 */
			public writeShort(val: number): void;
			/**
			 * Writes a string encoded with DataInput modified UTF-8 to this file, starting at the current file pointer.
			 * @param str 
			 */
			public writeUTF(str: string): void;
		}
		/**
		 * A specialized InputStream for reading the contents of a byte array.
		 */
		export class ByteArrayInputStream extends java.io.InputStream {
			/**
			 * Constructs a new ByteArrayInputStream on the byte array buf.
			 * @param buf 
			 */
			constructor(buf: native.Array<number>);
			/**
			 * Constructs a new ByteArrayInputStream on the byte array buf with the initial position set to offset and the number of bytes available set to offset + length.
			 * @param buf 
			 * @param offset 
			 * @param length 
			 */
			constructor(buf: native.Array<number>, offset: number, length: number);
			static class: java.lang.Class<java.io.ByteArrayInputStream>;
			/**
			 * Returns the number of remaining bytes.
			 */
			public available(): number;
			/**
			 * Closes this stream and frees resources associated with this stream.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this ByteArrayInputStream. The parameter readlimit is ignored. Sending reset() will reposition the stream back to the marked position.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Indicates whether this stream supports the mark() and reset() methods. Returns true since this class supports these methods.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single byte from the source byte array and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the source array has been reached.
			 */
			public read(): number;
			/**
			 * Reads at most len bytes from this stream and stores them in byte array b starting at offset. This implementation reads bytes from the source byte array.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<number>, offset: number, length: number): number;
			/**
			 * Resets this stream to the last marked location. This implementation resets the position to either the marked position, the start position supplied in the constructor or 0 if neither has been provided.
			 */
			public reset(): void;
			/**
			 * Skips byteCount bytes in this InputStream. Subsequent calls to read will not return these bytes unless reset is used. This implementation skips byteCount number of bytes in the target stream. It does nothing and returns 0 if byteCount is negative.
			 */
			public skip(byteCount: number): any;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Describes a field for the purpose of serialization. Classes can define the collection of fields that are serialized, which may be different from the set of all declared fields.
		 */
		export class ObjectStreamField extends java.lang.Object {
			/**
			 * Constructs an ObjectStreamField with the specified name and type.
			 * @param name 
			 * @param cl 
			 */
			constructor(name: string, cl: java.lang.Class<any>);
			/**
			 * Constructs an ObjectStreamField with the specified name, type and the indication if it is unshared.
			 * @param name 
			 * @param cl 
			 * @param unshared 
			 */
			constructor(name: string, cl: java.lang.Class<any>, unshared: boolean);
			static class: java.lang.Class<java.io.ObjectStreamField>;
			/**
			 * Compares this field descriptor to the specified one. Checks first if one of the compared fields has a primitive type and the other one not. If so, the field with the primitive type is considered to be "smaller". If both fields are equal, their names are compared.
			 * @param o 
			 */
			public compareTo(o: any): number;
			/**
			 * Gets the name of this field.
			 */
			public getName(): string;
			/**
			 * Gets the offset of this field in the object.
			 */
			public getOffset(): number;
			/**
			 * Return the type of the field the receiver represents, this is an internal method
			 */
			getTypeInternal(): java.lang.Class<any>;
			/**
			 * Gets the type of this field.
			 */
			public getType(): java.lang.Class<any>;
			/**
			 * Gets a character code for the type of this field. The following codes are used:
			 */
			public getTypeCode(): string;
			/**
			 * Gets the type signature used by the VM to represent the type of this field.
			 */
			public getTypeString(): string;
			/**
			 * Indicates whether this field's type is a primitive type.
			 */
			public isPrimitive(): boolean;
			writeField(out: java.io.DataOutputStream): boolean;
			/**
			 * Sets this field's offset in the object.
			 * @param newValue 
			 */
			protected setOffset(newValue: number): void;
			/**
			 * Returns a string containing a concise, human-readable description of this field descriptor.
			 */
			public toString(): string;
			resolve(loader: java.lang.ClassLoader): void;
			/**
			 * Indicates whether this field is unshared.
			 */
			public isUnshared(): boolean;
			setUnshared(unshared: boolean): void;
		}
		/**
		 * An output stream that writes bytes to a file. If the output file exists, it can be replaced or appended to. If it does not exist, a new file will be created. <pre> File file = ... OutputStream out = null; try { out = new BufferedOutputStream(new FileOutputStream(file)); ... finally { if (out != null) { out.close(); } } }</pre>
		 */
		export class FileOutputStream extends java.io.OutputStream implements java.io.ICloseable {
			/**
			 * Constructs a new FileOutputStream that writes to file. The file will be truncated if it exists, and created if it doesn't exist.
			 */
			constructor(file: java.io.File);
			/**
			 * Constructs a new FileOutputStream that writes to file. If append is true and the file already exists, it will be appended to; otherwise it will be truncated. The file will be created if it does not exist.
			 */
			constructor(file: java.io.File, append: boolean);
			/**
			 * Constructs a new FileOutputStream that writes to fd.
			 */
			constructor(fd: java.io.FileDescriptor);
			/**
			 * Constructs a new FileOutputStream that writes to path. The file will be truncated if it exists, and created if it doesn't exist.
			 */
			constructor(path: string);
			/**
			 * Constructs a new FileOutputStream that writes to path. If append is true and the file already exists, it will be appended to; otherwise it will be truncated. The file will be created if it does not exist.
			 */
			constructor(path: string, append: boolean);
			static class: java.lang.Class<java.io.FileOutputStream>;
			public close(): void;
			protected finalize(): void;
			/**
			 * Returns a write-only FileChannel that shares its position with this stream.
			 */
			public getChannel(): java.nio.channels.FileChannel;
			/**
			 * Returns the underlying file descriptor.
			 */
			public getFD(): java.io.FileDescriptor;
			public write(buffer: native.Array<number>, byteOffset: number, byteCount: number): void;
			public write(oneByte: number): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * Signals that a serialization-related method has been invoked in the wrong place. Some methods in ObjectInputStream and ObjectOutputStream can only be called from a nested call to readObject() or writeObject(). Any attempt to call them from another context will cause a NotActiveException to be thrown. The list of methods that are protected this way is: <ul> <li>ObjectInputStream#defaultReadObject()</li> <li>ObjectInputStream#registerValidation(ObjectInputValidation, int)</li> <li>ObjectOutputStream#defaultWriteObject()</li> </ul>
		 */
		export class NotActiveException extends java.io.ObjectStreamException {
			/**
			 * Constructs a new NotActiveException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new NotActiveException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.NotActiveException>;
		}
		/**
		 * Defines an interface for classes that want to be serializable, but have their own binary representation.
		 */
		export class Externalizable implements java.io.ISerializable, java.io.IExternalizable {
			constructor(implementation: java.io.IExternalizable);
			/**
			 * Reads the next object from the ObjectInput <code>input</code>.
			 * @param input 
			 */
			public readExternal(input: java.io.IObjectInput): void;
			/**
			 * Writes the receiver to the ObjectOutput <code>output</code>.
			 * @param output 
			 */
			public writeExternal(output: java.io.IObjectOutput): void;
		}
		/**
		 * Defines an interface for classes that allow reading serialized objects.
		 */
		export class ObjectInput implements java.io.IDataInput, java.io.IObjectInput {
			constructor(implementation: java.io.IObjectInput);
			/**
			 * Indicates the number of bytes of primitive data that can be read without blocking.
			 */
			public available(): number;
			/**
			 * Closes this stream. Implementations of this method should free any resources used by the stream.
			 */
			public close(): void;
			/**
			 * Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of this stream has been reached. Blocks if no input is available.
			 */
			public read(): number;
			/**
			 * Reads bytes from this stream into the byte array buffer. Blocks while waiting for input.
			 * @param buffer 
			 */
			public read(buffer: native.Array<number>): number;
			/**
			 * Reads at most count bytes from this stream and stores them in byte array buffer starting at offset count. Blocks while waiting for input.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public read(buffer: native.Array<number>, offset: number, count: number): number;
			/**
			 * Reads the next object from this stream.
			 */
			public readObject(): any;
			/**
			 * Skips byteCount bytes on this stream. Less than byteCount byte are skipped if the end of this stream is reached before the operation completes.
			 */
			public skip(byteCount: number): any;
			/**
			 * Reads a boolean.
			 */
			readBoolean(): boolean;
			/**
			 * Reads an 8-bit byte value.
			 */
			readByte(): number;
			/**
			 * Reads a big-endian 16-bit character value.
			 */
			readChar(): string;
			/**
			 * Reads a big-endian 64-bit double value.
			 */
			readDouble(): any;
			/**
			 * Reads a big-endian 32-bit float value.
			 */
			readFloat(): number;
			/**
			 * Equivalent to readFully(dst, 0, dst.length);.
			 */
			readFully(dst: native.Array<number>): void;
			/**
			 * Reads byteCount bytes from this stream and stores them in the byte array dst starting at offset. If byteCount is zero, then this method returns without reading any bytes. Otherwise, this method blocks until byteCount bytes have been read. If insufficient bytes are available, EOFException is thrown. If an I/O error occurs, IOException is thrown. When an exception is thrown, some bytes may have been consumed from the stream and written into the array.
			 * @param dst 
			 * @param offset 
			 * @param byteCount 
			 */
			readFully(dst: native.Array<number>, offset: number, byteCount: number): void;
			/**
			 * Reads a big-endian 32-bit integer value.
			 */
			readInt(): number;
			/**
			 * Returns a string containing the next line of text available from this stream. A line is made of zero or more characters followed by '\n', '\r', "\r\n" or the end of the stream. The string does not include the newline sequence.
			 */
			readLine(): string;
			/**
			 * Reads a big-endian 64-bit long value.
			 */
			readLong(): any;
			/**
			 * Reads a big-endian 16-bit short value.
			 */
			readShort(): number;
			/**
			 * Reads an unsigned 8-bit byte value and returns it as an int.
			 */
			readUnsignedByte(): number;
			/**
			 * Reads a big-endian 16-bit unsigned short value and returns it as an int.
			 */
			readUnsignedShort(): number;
			/**
			 * Reads a string encoded with DataInput modified UTF-8.
			 */
			readUTF(): string;
			/**
			 * Skips count number of bytes. This method will not throw an EOFException if the end of the input is reached before count bytes where skipped.
			 * @param count 
			 */
			skipBytes(count: number): number;
		}
		/**
		 * An "abstract" representation of a file system entity identified by a pathname. The pathname may be absolute (relative to the root directory of the file system) or relative to the current directory in which the program is running.
		 */
		export class File extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new file using the specified directory and name.
			 * @param dir 
			 * @param name 
			 */
			constructor(dir: java.io.File, name: string);
			/**
			 * Constructs a new file using the specified path.
			 * @param path 
			 */
			constructor(path: string);
			/**
			 * Constructs a new File using the specified directory path and file name, placing a path separator between the two.
			 * @param dirPath 
			 * @param name 
			 */
			constructor(dirPath: string, name: string);
			/**
			 * Constructs a new File using the path of the specified URI. uri needs to be an absolute and hierarchical Unified Resource Identifier with file scheme and non-empty path component, but with undefined authority, query or fragment components.
			 * @param uri 
			 */
			constructor(uri: java.net.URI);
			/**
			 * The system-dependent character used to separate components in filenames ('/'). Use of this (rather than hard-coding '/') helps portability to other operating systems.
			 */
			static separatorChar: string;
			/**
			 * The system-dependent string used to separate components in filenames ('/'). See #separatorChar.
			 */
			static separator: string;
			/**
			 * The system-dependent character used to separate components in search paths (':'). This is used to split such things as the PATH environment variable and classpath system properties into lists of directories to be searched.
			 */
			static pathSeparatorChar: string;
			/**
			 * The system-dependent string used to separate components in search paths (":"). See #pathSeparatorChar.
			 */
			static pathSeparator: string;
			static class: java.lang.Class<java.io.File>;
			/**
			 * Returns the file system roots. On Android and other Unix systems, there is a single root, /.
			 */
			public static listRoots(): native.Array<java.io.File>;
			/**
			 * Tests whether or not this process is allowed to execute this file. Note that this is a best-effort result; the only way to be certain is to actually attempt the operation.
			 */
			public canExecute(): boolean;
			/**
			 * Indicates whether the current context is allowed to read from this file.
			 */
			public canRead(): boolean;
			/**
			 * Indicates whether the current context is allowed to write to this file.
			 */
			public canWrite(): boolean;
			/**
			 * Returns the relative sort ordering of the paths for this file and the file another. The ordering is platform dependent.
			 * @param another 
			 */
			public compareTo(another: java.io.File): number;
			/**
			 * Deletes this file. Directories must be empty before they will be deleted.
			 */
			public delete(): boolean;
			/**
			 * Schedules this file to be automatically deleted when the VM terminates normally.
			 */
			public deleteOnExit(): void;
			/**
			 * Compares obj to this file and returns true if they represent the <em>same</em> object using a path specific comparison.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns a boolean indicating whether this file can be found on the underlying file system.
			 */
			public exists(): boolean;
			/**
			 * Returns the absolute path of this file. An absolute path is a path that starts at a root of the file system. On Android, there is only one root: /.
			 */
			public getAbsolutePath(): string;
			/**
			 * Returns a new file constructed using the absolute path of this file. Equivalent to new File(this.getAbsolutePath()).
			 */
			public getAbsoluteFile(): java.io.File;
			/**
			 * Returns the canonical path of this file. An <i>absolute</i> path is one that begins at the root of the file system. A <i>canonical</i> path is an absolute path with symbolic links and references to "." or ".." resolved. If a path element does not exist (or is not searchable), there is a conflict between interpreting canonicalization as a textual operation (where "a/../b" is "b" even if "a" does not exist) .
			 */
			public getCanonicalPath(): string;
			/**
			 * Returns a new file created using the canonical path of this file. Equivalent to new File(this.getCanonicalPath()).
			 */
			public getCanonicalFile(): java.io.File;
			/**
			 * Returns the name of the file or directory represented by this file.
			 */
			public getName(): string;
			/**
			 * Returns the pathname of the parent of this file. This is the path up to but not including the last name. null is returned if there is no parent.
			 */
			public getParent(): string;
			/**
			 * Returns a new file made from the pathname of the parent of this file. This is the path up to but not including the last name. null is returned when there is no parent.
			 */
			public getParentFile(): java.io.File;
			/**
			 * Returns the path of this file.
			 */
			public getPath(): string;
			/**
			 * Returns an integer hash code for the receiver. Any two objects for which equals returns true must return the same hash code.
			 */
			public hashCode(): number;
			/**
			 * Indicates if this file's pathname is absolute. Whether a pathname is absolute is platform specific. On Android, absolute paths start with the character '/'.
			 */
			public isAbsolute(): boolean;
			/**
			 * Indicates if this file represents a <em>directory</em> on the underlying file system.
			 */
			public isDirectory(): boolean;
			/**
			 * Indicates if this file represents a <em>file</em> on the underlying file system.
			 */
			public isFile(): boolean;
			/**
			 * Returns whether or not this file is a hidden file as defined by the operating system. The notion of "hidden" is system-dependent. For Unix systems a file is considered hidden if its name starts with a ".". For Windows systems there is an explicit flag in the file system for this purpose.
			 */
			public isHidden(): boolean;
			/**
			 * Returns the time when this file was last modified, measured in milliseconds since January 1st, 1970, midnight. Returns 0 if the file does not exist.
			 */
			public lastModified(): any;
			/**
			 * Sets the time this file was last modified, measured in milliseconds since January 1st, 1970, midnight.
			 * @param time 
			 */
			public setLastModified(time: number): boolean;
			/**
			 * Equivalent to setWritable(false, false).
			 */
			public setReadOnly(): boolean;
			/**
			 * Manipulates the execute permissions for the abstract path designated by this file.
			 * @param executable 
			 * @param ownerOnly 
			 */
			public setExecutable(executable: boolean, ownerOnly: boolean): boolean;
			/**
			 * Equivalent to setExecutable(executable, true). #setExecutable(boolean, boolean) 1.6
			 */
			public setExecutable(executable: boolean): boolean;
			/**
			 * Manipulates the read permissions for the abstract path designated by this file.
			 * @param readable 
			 * @param ownerOnly 
			 */
			public setReadable(readable: boolean, ownerOnly: boolean): boolean;
			/**
			 * Equivalent to setReadable(readable, true). #setReadable(boolean, boolean) 1.6
			 */
			public setReadable(readable: boolean): boolean;
			/**
			 * Manipulates the write permissions for the abstract path designated by this file.
			 * @param writable 
			 * @param ownerOnly 
			 */
			public setWritable(writable: boolean, ownerOnly: boolean): boolean;
			/**
			 * Equivalent to setWritable(writable, true). #setWritable(boolean, boolean) 1.6
			 */
			public setWritable(writable: boolean): boolean;
			/**
			 * Returns the length of this file in bytes. Returns 0 if the file does not exist. The result for a directory is not defined.
			 */
			public length(): any;
			/**
			 * Returns an array of strings with the file names in the directory represented by this file. The result is null if this file is not a directory.
			 */
			public list(): native.Array<string>;
			/**
			 * Gets a list of the files in the directory represented by this file. This list is then filtered through a FilenameFilter and the names of files with matching names are returned as an array of strings. Returns null if this file is not a directory. If filter is null then all filenames match.
			 * @param filter 
			 */
			public list(filter: java.io.IFilenameFilter): native.Array<string>;
			/**
			 * Returns an array of files contained in the directory represented by this file. The result is null if this file is not a directory. The paths of the files in the array are absolute if the path of this file is absolute, they are relative otherwise.
			 */
			public listFiles(): native.Array<java.io.File>;
			/**
			 * Gets a list of the files in the directory represented by this file. This list is then filtered through a FilenameFilter and files with matching names are returned as an array of files. Returns null if this file is not a directory. If filter is null then all filenames match.
			 * @param filter 
			 */
			public listFiles(filter: java.io.IFilenameFilter): native.Array<java.io.File>;
			/**
			 * Gets a list of the files in the directory represented by this file. This list is then filtered through a FileFilter and matching files are returned as an array of files. Returns null if this file is not a directory. If filter is null then all files match.
			 * @param filter 
			 */
			public listFiles(filter: java.io.IFileFilter): native.Array<java.io.File>;
			/**
			 * Creates the directory named by this file, assuming its parents exist. Use #mkdirs if you also want to create missing parents.
			 */
			public mkdir(): boolean;
			/**
			 * Creates the directory named by this file, creating missing parent directories if necessary. Use #mkdir if you don't want to create missing parents.
			 */
			public mkdirs(): boolean;
			/**
			 * Creates a new, empty file on the file system according to the path information stored in this file. This method returns true if it creates a file, false if the file already existed. Note that it returns false even if the file is not a file (because it's a directory, say).
			 */
			public createNewFile(): boolean;
			/**
			 * Creates an empty temporary file using the given prefix and suffix as part of the file name. If suffix is null, .tmp is used. This method is a convenience method that calls #createTempFile(String, String, File) with the third argument being null.
			 * @param prefix 
			 * @param suffix 
			 */
			public static createTempFile(prefix: string, suffix: string): java.io.File;
			/**
			 * Creates an empty temporary file in the given directory using the given prefix and suffix as part of the file name. If suffix is null, .tmp is used.
			 * @param prefix 
			 * @param suffix 
			 * @param directory 
			 */
			public static createTempFile(prefix: string, suffix: string, directory: java.io.File): java.io.File;
			/**
			 * Renames this file to newPath. This operation is supported for both files and directories.
			 * @param newPath the new path.
			 */
			public renameTo(newPath: java.io.File): boolean;
			/**
			 * Returns a string containing a concise, human-readable description of this file.
			 */
			public toString(): string;
			/**
			 * Returns a Uniform Resource Identifier for this file. The URI is system dependent and may not be transferable between different operating / file systems.
			 */
			public toURI(): java.net.URI;
			/**
			 * Returns a Uniform Resource Locator for this file. The URL is system dependent and may not be transferable between different operating / file systems.
			 */
			public toURL(): java.net.URL;
			/**
			 * Returns the total size in bytes of the partition containing this path. Returns 0 if this path does not exist.
			 */
			public getTotalSpace(): any;
			/**
			 * Returns the number of usable free bytes on the partition containing this path. Returns 0 if this path does not exist.
			 */
			public getUsableSpace(): any;
			/**
			 * Returns the number of free bytes on the partition containing this path. Returns 0 if this path does not exist.
			 */
			public getFreeSpace(): any;
		}
		/**
		 * Parses a stream into a set of defined tokens, one at a time. The different types of tokens that can be found are numbers, identifiers, quoted strings, and different comment styles. The class can be used for limited processing of source code of programming languages like Java, although it is nowhere near a full parser.
		 */
		export class StreamTokenizer extends java.lang.Object {
			/**
			 * Constructs a new StreamTokenizer with is as source input stream. This constructor is deprecated; instead, the constructor that takes a Reader as an arugment should be used.
			 * @param is 
			 */
			constructor(is: java.io.InputStream);
			/**
			 * Constructs a new StreamTokenizer with r as source reader. The tokenizer's initial state is as follows: <ul> <li>All byte values 'A' through 'Z', 'a' through 'z', and '&#92;u00A0' through '&#92;u00FF' are considered to be alphabetic.</li> <li>All byte values '&#92;u0000' through '&#92;u0020' are considered to be white space. '/' is a comment character.</li> <li>Single quote '\'' and double quote '"' are string quote characters. </li> <li>Numbers are parsed.</li> <li>End of lines are considered to be white space rather than separate tokens.</li> <li>C-style and C++-style comments are not recognized.</LI> </ul>
			 * @param r 
			 */
			constructor(r: java.io.Reader);
			/**
			 * Contains a number if the current token is a number (ttype == TT_NUMBER).
			 */
			nval: number;
			/**
			 * Contains a string if the current token is a word (ttype == TT_WORD).
			 */
			sval: string;
			/**
			 * The constant representing the end of the stream.
			 */
			static TT_EOF: number;
			/**
			 * The constant representing the end of the line.
			 */
			static TT_EOL: number;
			/**
			 * The constant representing a number token.
			 */
			static TT_NUMBER: number;
			/**
			 * The constant representing a word token.
			 */
			static TT_WORD: number;
			/**
			 * After calling nextToken(), ttype contains the type of token that has been read. When a single character is read, its value converted to an integer is stored in ttype. For a quoted string, the value is the quoted character. Otherwise, its value is one of the following: <ul> <li> TT_WORD - the token is a word.</li> <li> TT_NUMBER - the token is a number.</li> <li> TT_EOL - the end of line has been reached. Depends on whether eolIsSignificant is true.</li> <li> TT_EOF - the end of the stream has been reached.</li> </ul>
			 */
			ttype: number;
			static class: java.lang.Class<java.io.StreamTokenizer>;
			/**
			 * Specifies that the character ch shall be treated as a comment character.
			 * @param ch 
			 */
			public commentChar(ch: number): void;
			/**
			 * Specifies whether the end of a line is significant and should be returned as TT_EOF in ttype by this tokenizer.
			 * @param flag 
			 */
			public eolIsSignificant(flag: boolean): void;
			/**
			 * Returns the current line number.
			 */
			public lineno(): number;
			/**
			 * Specifies whether word tokens should be converted to lower case when they are stored in sval.
			 * @param flag 
			 */
			public lowerCaseMode(flag: boolean): void;
			/**
			 * Parses the next token from this tokenizer's source stream or reader. The type of the token is stored in the ttype field, additional information may be stored in the nval or sval fields.
			 */
			public nextToken(): number;
			/**
			 * Specifies that the character ch shall be treated as an ordinary character by this tokenizer. That is, it has no special meaning as a comment character, word component, white space, string delimiter or number.
			 * @param ch 
			 */
			public ordinaryChar(ch: number): void;
			/**
			 * Specifies that the characters in the range from low to hi shall be treated as an ordinary character by this tokenizer. That is, they have no special meaning as a comment character, word component, white space, string delimiter or number.
			 * @param low 
			 * @param hi 
			 */
			public ordinaryChars(low: number, hi: number): void;
			/**
			 * Specifies that this tokenizer shall parse numbers.
			 */
			public parseNumbers(): void;
			/**
			 * Indicates that the current token should be pushed back and returned again the next time nextToken() is called.
			 */
			public pushBack(): void;
			/**
			 * Specifies that the character ch shall be treated as a quote character.
			 * @param ch 
			 */
			public quoteChar(ch: number): void;
			/**
			 * Specifies that all characters shall be treated as ordinary characters.
			 */
			public resetSyntax(): void;
			/**
			 * Specifies whether "slash-slash" (C++-style) comments shall be recognized. This kind of comment ends at the end of the line.
			 * @param flag 
			 */
			public slashSlashComments(flag: boolean): void;
			/**
			 * Specifies whether "slash-star" (C-style) comments shall be recognized. Slash-star comments cannot be nested and end when a star-slash combination is found.
			 * @param flag 
			 */
			public slashStarComments(flag: boolean): void;
			/**
			 * Returns the state of this tokenizer in a readable format.
			 */
			public toString(): string;
			/**
			 * Specifies that the characters in the range from low to hi shall be treated as whitespace characters by this tokenizer.
			 * @param low 
			 * @param hi 
			 */
			public whitespaceChars(low: number, hi: number): void;
			/**
			 * Specifies that the characters in the range from low to hi shall be treated as word characters by this tokenizer. A word consists of a word character followed by zero or more word or number characters.
			 * @param low 
			 * @param hi 
			 */
			public wordChars(low: number, hi: number): void;
		}
		/**
		 * Defines an interface for classes that are able to write big-endian typed data to some target. Typically, this data can be read in by a class which implements DataInput. Types that can be written include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and DataInput MUTF-8 encoded strings.
		 */
		export class DataOutput implements java.io.IDataOutput {
			constructor(implementation: java.io.IDataOutput);
			/**
			 * Writes the entire contents of the byte array buffer to this stream.
			 * @param buffer 
			 */
			public write(buffer: native.Array<number>): void;
			/**
			 * Writes count bytes from the byte array buffer starting at offset index.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<number>, offset: number, count: number): void;
			/**
			 * Writes the specified 8-bit byte.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Writes the specified boolean.
			 * @param val 
			 */
			public writeBoolean(val: boolean): void;
			/**
			 * Writes the specified 8-bit byte.
			 * @param val 
			 */
			public writeByte(val: number): void;
			/**
			 * Writes the low order 8-bit bytes from the specified string.
			 * @param str 
			 */
			public writeBytes(str: string): void;
			/**
			 * Writes the specified 16-bit character in big-endian order. Only the two least significant bytes of the integer oneByte are written.
			 * @param val 
			 */
			public writeChar(val: number): void;
			/**
			 * Writes the 16-bit characters contained in str in big-endian order.
			 * @param str 
			 */
			public writeChars(str: string): void;
			/**
			 * Writes the specified 64-bit double in big-endian order. The resulting output is the eight bytes returned by Double#doubleToLongBits(double).
			 * @param val 
			 */
			public writeDouble(val: number): void;
			/**
			 * Writes the specified 32-bit float in big-endian order. The resulting output is the four bytes returned by Float#floatToIntBits(float).
			 * @param val 
			 */
			public writeFloat(val: number): void;
			/**
			 * Writes the specified 32-bit int in big-endian order.
			 * @param val 
			 */
			public writeInt(val: number): void;
			/**
			 * Writes the specified 64-bit long in big-endian order.
			 * @param val 
			 */
			public writeLong(val: number): void;
			/**
			 * Writes the specified 16-bit short in big-endian order. Only the lower two bytes of val are written.
			 * @param val 
			 */
			public writeShort(val: number): void;
			/**
			 * Writes the specified string encoded in DataInput modified UTF-8.
			 * @param str 
			 */
			public writeUTF(str: string): void;
		}
		/**
		 * A callback interface for post-deserialization checks on objects. Allows, for example, the validation of a whole graph of objects after all of them have been loaded.
		 */
		export class ObjectInputValidation implements java.io.IObjectInputValidation {
			constructor(implementation: java.io.IObjectInputValidation);
			/**
			 * Validates this object.
			 */
			public validateObject(): void;
		}
		/**
		 * Wraps an existing OutputStream and writes big-endian typed data to it. Typically, this stream can be read in by DataInputStream. Types that can be written include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and DataInput MUTF-8 encoded strings.
		 */
		export class DataOutputStream extends java.io.FilterOutputStream implements java.io.IDataOutput {
			/**
			 * Constructs a new DataOutputStream on the OutputStream out. Note that data written by this stream is not in a human readable form but can be reconstructed by using a DataInputStream on the resulting output.
			 * @param out 
			 */
			constructor(out: java.io.OutputStream);
			static class: java.lang.Class<java.io.DataOutputStream>;
			/**
			 * Flushes this stream to ensure all pending data is sent out to the target stream. This implementation then also flushes the target stream.
			 */
			public flush(): void;
			/**
			 * Returns the total number of bytes written to the target stream so far.
			 */
			public size(): number;
			/**
			 * Writes count bytes from the byte array buffer starting at offset to the target stream.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<number>, offset: number, count: number): void;
			/**
			 * Writes a byte to the target stream. Only the least significant byte of the integer oneByte is written.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Writes a boolean to the target stream.
			 * @param val 
			 */
			public writeBoolean(val: boolean): void;
			/**
			 * Writes an 8-bit byte to the target stream. Only the least significant byte of the integer val is written.
			 * @param val 
			 */
			public writeByte(val: number): void;
			public writeBytes(str: string): void;
			public writeChar(val: number): void;
			public writeChars(str: string): void;
			public writeDouble(val: number): void;
			public writeFloat(val: number): void;
			public writeInt(val: number): void;
			public writeLong(val: number): void;
			public writeShort(val: number): void;
			public writeUTF(str: string): void;
			/**
			 * Writes the entire contents of the byte array buffer to this stream.
			 * @param buffer 
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * A specialized Writer that writes to a file in the file system. All write requests made by calling methods in this class are directly forwarded to the equivalent function of the underlying operating system. Since this may induce some performance penalty, in particular if many small write requests are made, a FileWriter is often wrapped by a BufferedWriter.
		 */
		export class FileWriter extends java.io.OutputStreamWriter {
			/**
			 * Creates a FileWriter using the File file.
			 * @param file 
			 */
			constructor(file: java.io.File);
			/**
			 * Creates a FileWriter using the File file. The parameter append determines whether or not the file is opened and appended to or just opened and overwritten.
			 * @param file 
			 * @param append 
			 */
			constructor(file: java.io.File, append: boolean);
			/**
			 * Creates a FileWriter using the existing FileDescriptor fd.
			 * @param fd 
			 */
			constructor(fd: java.io.FileDescriptor);
			/**
			 * Creates a FileWriter using the platform dependent filename.
			 * @param filename 
			 */
			constructor(filename: string);
			/**
			 * Creates a FileWriter using the platform dependent filename. The parameter append determines whether or not the file is opened and appended to or just opened and overwritten.
			 * @param filename 
			 * @param append 
			 */
			constructor(filename: string, append: boolean);
			static class: java.lang.Class<java.io.FileWriter>;
		}
		/**
		 * An interface for filtering File objects based on their names or the directory they reside in.
		 */
		interface IFilenameFilter {
			/**
			 * Indicates if a specific filename matches this filter.
			 * @param dir 
			 * @param filename 
			 */
			accept(dir: java.io.File, filename: string): boolean;
		}
		/**
		 * An EmulatedFields is an object that represents a set of emulated fields for an object being dumped or loaded. It allows objects to be dumped with a shape different than the fields they were declared to have.
		 */
		export class EmulatedFields extends java.lang.Object {
			/**
			 * Constructs a new instance of EmulatedFields.
			 * @param fields 
			 * @param declared 
			 */
			constructor(fields: native.Array<java.io.ObjectStreamField>, declared: native.Array<java.io.ObjectStreamField>);
			static class: java.lang.Class<java.io.EmulatedFields>;
			/**
			 * Returns true indicating the field called name has not had a value explicitly assigned and that it still holds a default value for its type, or false indicating that the field named has been assigned a value explicitly.
			 * @param name 
			 */
			public defaulted(name: string): boolean;
			/**
			 * Finds and returns the byte value of a given field named name in the receiver. If the field has not been assigned any value yet, the default value defaultValue is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: number): number;
			/**
			 * Finds and returns the char value of a given field named name in the receiver. If the field has not been assigned any value yet, the default value defaultValue is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: string): string;
			/**
			 * Finds and returns the Object value of a given field named name in the receiver. If the field has not been assigned any value yet, the default value defaultValue is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: any): any;
			/**
			 * Finds and returns the boolean value of a given field named name in the receiver. If the field has not been assigned any value yet, the default value defaultValue is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: boolean): boolean;
			/**
			 * Find and set the byte value of a given field named name in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: number): void;
			/**
			 * Find and set the char value of a given field named name in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: string): void;
			/**
			 * Find and set the Object value of a given field named name in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: any): void;
			/**
			 * Find and set the boolean value of a given field named name in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: boolean): void;
			/**
			 * Return the array of ObjectSlot the receiver represents.
			 */
			public slots(): native.Array<java.io.EmulatedFields.ObjectSlot>;
		}
		export module EmulatedFields {
			export class ObjectSlot extends java.lang.Object {
				static class: java.lang.Class<java.io.EmulatedFields.ObjectSlot>;
				/**
				 * Returns the descriptor for this emulated field.
				 */
				public getField(): java.io.ObjectStreamField;
				/**
				 * Returns the value held by this emulated field.
				 */
				public getFieldValue(): any;
			}
		}
		/**
		 * The base class for all readers. A reader is a means of reading data from a source in a character-wise manner. Some readers also support marking a position in the input and returning to this position later.
		 */
		export class Reader extends java.lang.Object implements java.lang.IReadable, java.io.ICloseable {
			static class: java.lang.Class<java.io.Reader>;
			/**
			 * Closes this reader. Implementations of this method should free any resources associated with the reader.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this reader. The parameter readLimit indicates how many characters can be read before the mark is invalidated. Calling reset() will reposition the reader back to the marked position if readLimit has not been surpassed.
			 * @param readLimit 
			 */
			public mark(readLimit: number): void;
			/**
			 * Indicates whether this reader supports the mark() and reset() methods. This default implementation returns false.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the reader has been reached.
			 */
			public read(): number;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			public read(buf: native.Array<string>): number;
			/**
			 * Reads at most count characters from this reader and stores them at offset in the character array buf. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 * @param offset 
			 * @param count 
			 */
			public read(buf: native.Array<string>, offset: number, count: number): number;
			/**
			 * Indicates whether this reader is ready to be read without blocking. Returns true if this reader will not block when read is called, false if unknown or blocking will occur. This default implementation always returns false.
			 */
			public ready(): boolean;
			/**
			 * Resets this reader's position to the last mark() location. Invocations of read() and skip() will occur from this new location. If this reader has not been marked, the behavior of reset() is implementation specific. This default implementation throws an IOException.
			 */
			public reset(): void;
			/**
			 * Skips charCount characters in this reader. Subsequent calls of read methods will not return these characters unless reset is used. This method may perform multiple reads to read charCount characters.
			 */
			public skip(charCount: number): any;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			public read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Places information on a communications pipe. When two threads want to pass data back and forth, one creates a piped output stream and the other one creates a piped input stream.
		 */
		export class PipedOutputStream extends java.io.OutputStream {
			/**
			 * Constructs a new unconnected PipedOutputStream. The resulting stream must be connected to a PipedInputStream before data can be written to it.
			 */
			constructor();
			/**
			 * Constructs a new PipedOutputStream connected to the PipedInputStream target. Any data written to this stream can be read from the target stream.
			 * @param target 
			 */
			constructor(target: java.io.PipedInputStream);
			static class: java.lang.Class<java.io.PipedOutputStream>;
			/**
			 * Closes this stream. If this stream is connected to an input stream, the input stream is closed and the pipe is disconnected.
			 */
			public close(): void;
			/**
			 * Connects this stream to a PipedInputStream. Any data written to this output stream becomes readable in the input stream.
			 * @param stream 
			 */
			public connect(stream: java.io.PipedInputStream): void;
			/**
			 * Notifies the readers of this PipedInputStream that bytes can be read. This method does nothing if this stream is not connected.
			 */
			public flush(): void;
			/**
			 * Writes count bytes from the byte array buffer starting at offset to this stream. The written data can then be read from the connected input stream.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<number>, offset: number, count: number): void;
			/**
			 * Writes a single byte to this stream. Only the least significant byte of the integer oneByte is written. The written byte can then be read from the connected input stream.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * A specialized OutputStream that is able to write (serialize) Java objects as well as primitive data types (int, byte, char etc.). The data can later be loaded using an ObjectInputStream.
		 */
		export class ObjectOutputStream extends java.io.OutputStream implements java.io.IObjectOutput, java.io.IObjectStreamConstants {
			/**
			 * Constructs a new ObjectOutputStream that writes to the OutputStream output.
			 * @param output 
			 */
			constructor(output: java.io.OutputStream);
			static class: java.lang.Class<java.io.ObjectOutputStream>;
			/**
			 * Writes optional information for class aClass to the output stream. This optional data can be read when deserializing the class descriptor (ObjectStreamClass) for this class from an input stream. By default, no extra data is saved.
			 * @param aClass 
			 */
			protected annotateClass(aClass: java.lang.Class<any>): void;
			/**
			 * Writes optional information for a proxy class to the target stream. This optional data can be read when deserializing the proxy class from an input stream. By default, no extra data is saved.
			 * @param aClass 
			 */
			protected annotateProxyClass(aClass: java.lang.Class<any>): void;
			/**
			 * Closes this stream. Any buffered data is flushed. This implementation closes the target stream.
			 */
			public close(): void;
			/**
			 * Default method to write objects to this stream. Serializable fields defined in the object's class and superclasses are written to the output stream.
			 */
			public defaultWriteObject(): void;
			/**
			 * Writes buffered data to the target stream. This is similar to flush but the flush is not propagated to the target stream.
			 */
			protected drain(): void;
			/**
			 * Enables object replacement for this stream. By default this is not enabled. Only trusted subclasses (loaded with system class loader) are allowed to change this status.
			 * @param enable 
			 */
			protected enableReplaceObject(enable: boolean): boolean;
			/**
			 * Writes buffered data to the target stream and calls the flush method of the target stream.
			 */
			public flush(): void;
			/**
			 * Gets this stream's PutField object. This object provides access to the persistent fields that are eventually written to the output stream. It is used to transfer the values from the fields of the object that is currently being written to the persistent fields.
			 */
			public putFields(): java.io.ObjectOutputStream.PutField;
			/**
			 * Allows trusted subclasses to substitute the specified original object with a new object. Object substitution has to be activated first with calling enableReplaceObject(true). This implementation just returns object.
			 * @param object 
			 */
			protected replaceObject(object: any): any;
			/**
			 * Resets the state of this stream. A marker is written to the stream, so that the corresponding input stream will also perform a reset at the same point. Objects previously written are no longer remembered, so they will be written again (instead of a cyclical reference) if found in the object graph.
			 */
			public reset(): void;
			/**
			 * Sets the specified protocol version to be used by this stream.
			 * @param version 
			 */
			public useProtocolVersion(version: number): void;
			/**
			 * Writes count bytes from the byte array buffer starting at offset index to the target stream. Blocks until all bytes are written.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public write(buffer: native.Array<number>, offset: number, length: number): void;
			/**
			 * Writes a single byte to the target stream. Only the least significant byte of the integer value is written to the stream. Blocks until the byte is actually written.
			 * @param value 
			 */
			public write(value: number): void;
			/**
			 * Writes a boolean to the target stream.
			 * @param value 
			 */
			public writeBoolean(value: boolean): void;
			/**
			 * Writes a byte (8 bit) to the target stream.
			 * @param value 
			 */
			public writeByte(value: number): void;
			/**
			 * Writes the string value as a sequence of bytes to the target stream. Only the least significant byte of each character in the string is written.
			 * @param value 
			 */
			public writeBytes(value: string): void;
			/**
			 * Writes a character (16 bit) to the target stream.
			 * @param value 
			 */
			public writeChar(value: number): void;
			/**
			 * Writes the string value as a sequence of characters to the target stream.
			 * @param value 
			 */
			public writeChars(value: string): void;
			/**
			 * Writes a double (64 bit) to the target stream.
			 * @param value 
			 */
			public writeDouble(value: number): void;
			/**
			 * Writes the fields of the object currently being written to the target stream. The field values are buffered in the currently active PutField object, which can be accessed by calling putFields().
			 */
			public writeFields(): void;
			/**
			 * Writes a float (32 bit) to the target stream.
			 * @param value 
			 */
			public writeFloat(value: number): void;
			/**
			 * Writes an integer (32 bit) to the target stream.
			 * @param value 
			 */
			public writeInt(value: number): void;
			/**
			 * Writes a long (64 bit) to the target stream.
			 * @param value 
			 */
			public writeLong(value: number): void;
			/**
			 * Writes a class descriptor to the target stream.
			 * @param classDesc 
			 */
			protected writeClassDescriptor(classDesc: java.io.ObjectStreamClass): void;
			/**
			 * Writes an object to the target stream.
			 * @param object 
			 */
			public writeObject(object: any): void;
			/**
			 * Writes an unshared object to the target stream. This method is identical to writeObject, except that it always writes a new object to the stream versus the use of back-referencing for identical objects by writeObject.
			 * @param object 
			 */
			public writeUnshared(object: any): void;
			/**
			 * Method to be overridden by subclasses to write object to the target stream.
			 * @param object 
			 */
			protected writeObjectOverride(object: any): void;
			/**
			 * Writes a short (16 bit) to the target stream.
			 * @param value 
			 */
			public writeShort(value: number): void;
			/**
			 * Writes the ObjectOutputStream header to the target stream.
			 */
			protected writeStreamHeader(): void;
			/**
			 * Writes a string encoded with DataInput modified UTF-8 to the target stream.
			 * @param value 
			 */
			public writeUTF(value: string): void;
			/**
			 * Writes the entire contents of the byte array buffer to the output stream. Blocks until all bytes are written.
			 * @param buffer 
			 */
			write(buffer: native.Array<number>): void;
		}
		export module ObjectOutputStream {
			/**
			 * PutField is an inner class to provide access to the persistent fields that are written to the target stream.
			 */
			export class PutField extends java.lang.Object {
				constructor();
				static class: java.lang.Class<java.io.ObjectOutputStream.PutField>;
				/**
				 * Puts the value of the boolean field identified by name to the persistent field.
				 * @param name 
				 * @param value 
				 */
				public put(name: string, value: boolean): void;
				/**
				 * Puts the value of the character field identified by name to the persistent field.
				 * @param name 
				 * @param value 
				 */
				public put(name: string, value: string): void;
				/**
				 * Puts the value of the byte field identified by name to the persistent field.
				 * @param name 
				 * @param value 
				 */
				public put(name: string, value: number): void;
				/**
				 * Puts the value of the Object field identified by name to the persistent field.
				 * @param name 
				 * @param value 
				 */
				public put(name: string, value: any): void;
				/**
				 * Writes the fields to the target stream out.
				 * @param out 
				 */
				public write(out: java.io.IObjectOutput): void;
			}
		}
		/**
		 * Signals that the ObjectInputStream class encountered a primitive type (int, char etc.) instead of an object instance in the input stream.
		 */
		export class OptionalDataException extends java.io.ObjectStreamException {
			/**
			 * true indicates that there is no more primitive data available.
			 */
			eof: boolean;
			/**
			 * The number of bytes of primitive data (int, char, long etc.) that are available.
			 */
			length: number;
			static class: java.lang.Class<java.io.OptionalDataException>;
		}
		/**
		 * A specialized Writer for class for writing content to an (internal) char array. As bytes are written to this writer, the char array may be expanded to hold more characters. When the writing is considered to be finished, a copy of the char array can be requested from the class.
		 */
		export class CharArrayWriter extends java.io.Writer {
			/**
			 * Constructs a new CharArrayWriter which has a buffer allocated with the default size of 32 characters. This buffer is also used as the lock to synchronize access to this writer.
			 */
			constructor();
			/**
			 * Constructs a new CharArrayWriter which has a buffer allocated with the size of initialSize characters. The buffer is also used as the lock to synchronize access to this writer.
			 * @param initialSize 
			 */
			constructor(initialSize: number);
			static class: java.lang.Class<java.io.CharArrayWriter>;
			/**
			 * Closes this writer. The implementation in CharArrayWriter does nothing.
			 */
			public close(): void;
			/**
			 * Flushes this writer. The implementation in CharArrayWriter does nothing.
			 */
			public flush(): void;
			/**
			 * Resets this writer. The current write position is reset to the beginning of the buffer. All written characters are lost and the size of this writer is set to 0.
			 */
			public reset(): void;
			/**
			 * Returns the size of this writer, that is the number of characters it stores. This number changes if this writer is reset or when more characters are written to it.
			 */
			public size(): number;
			/**
			 * Returns the contents of the receiver as a char array. The array returned is a copy and any modifications made to this writer after calling this method are not reflected in the result.
			 */
			public toCharArray(): native.Array<string>;
			/**
			 * Returns the contents of this CharArrayWriter as a string. The string returned is a copy and any modifications made to this writer after calling this method are not reflected in the result.
			 */
			public toString(): string;
			/**
			 * Writes count characters starting at offset in c to this writer.
			 * @param buffer 
			 * @param offset 
			 * @param len 
			 */
			public write(buffer: native.Array<string>, offset: number, len: number): void;
			/**
			 * Writes the specified character oneChar to this writer. This implementation writes the two low order bytes of the integer oneChar to the buffer.
			 * @param oneChar 
			 */
			public write(oneChar: number): void;
			/**
			 * Writes count characters starting at offset from the string str to this CharArrayWriter.
			 */
			public write(str: string, offset: number, count: number): void;
			/**
			 * Writes the contents of this CharArrayWriter to another Writer. The output is all the characters that have been written to the receiver since the last reset or since it was created.
			 * @param out 
			 */
			public writeTo(out: java.io.Writer): void;
			/**
			 * Appends a char c to the CharArrayWriter. The method works the same way as write(c).
			 * @param c 
			 */
			public append(c: string): java.io.CharArrayWriter;
			/**
			 * Append a subsequence of a CharSequence to the CharArrayWriter. The first and last characters of the subsequence are specified by the parameters start and end. A call to CharArrayWriter.append(csq) works the same way as CharArrayWriter.write(csq.subSequence(start, end).toString). If csq is null, then it will be substituted with the string "null".
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			public append(csq: string, start: number, end: number): java.io.CharArrayWriter;
			/**
			 * Writes the entire character buffer buf to the target.
			 * @param buf 
			 */
			write(buf: native.Array<string>): void;
			/**
			 * Writes the characters from the specified string to the target.
			 * @param str 
			 */
			write(str: string): void;
		}
		/**
		 * Receives information on a communications pipe. When two threads want to pass data back and forth, one creates a piped writer and the other creates a piped reader.
		 */
		export class PipedReader extends java.io.Reader {
			/**
			 * Constructs a new unconnected PipedReader. The resulting reader must be connected to a PipedWriter before data may be read from it.
			 */
			constructor();
			/**
			 * Constructs a new PipedReader connected to the PipedWriter out. Any data written to the writer can be read from the this reader.
			 * @param out 
			 */
			constructor(out: java.io.PipedWriter);
			/**
			 * Constructs a new unconnected PipedReader with the given buffer size. The resulting reader must be connected to a PipedWriter before data may be read from it.
			 * @param pipeSize the size of the buffer in chars.
			 */
			constructor(pipeSize: number);
			/**
			 * Constructs a new PipedReader connected to the given PipedWriter, with the given buffer size. Any data written to the writer can be read from this reader.
			 * @param out the {@code PipedWriter} to connect to.
			 * @param pipeSize the size of the buffer in chars.
			 */
			constructor(out: java.io.PipedWriter, pipeSize: number);
			static class: java.lang.Class<java.io.PipedReader>;
			/**
			 * Closes this reader. This implementation releases the buffer used for the pipe and notifies all threads waiting to read or write.
			 */
			public close(): void;
			/**
			 * Connects this PipedReader to a PipedWriter. Any data written to the writer becomes readable in this reader.
			 * @param src 
			 */
			public connect(src: java.io.PipedWriter): void;
			/**
			 * Establishes the connection to the PipedWriter.
			 */
			establishConnection(): void;
			/**
			 * Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the reader has been reached. If there is no data in the pipe, this method blocks until data is available, the end of the reader is detected or an exception is thrown.
			 */
			public read(): number;
			/**
			 * Reads at most count characters from this reader and stores them in the character array buffer starting at offset. If there is no data in the pipe, this method blocks until at least one byte has been read, the end of the reader is detected or an exception is thrown.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public read(buffer: native.Array<string>, offset: number, count: number): number;
			/**
			 * Indicates whether this reader is ready to be read without blocking. Returns true if this reader will not block when read is called, false if unknown or blocking will occur. This implementation returns true if the internal buffer contains characters that can be read.
			 */
			public ready(): boolean;
			/**
			 * Receives a char and stores it into the PipedReader. This called by PipedWriter.write() when writes occur. <P> If the buffer is full and the thread sending #receive is interrupted, the InterruptedIOException will be thrown.
			 * @param oneChar 
			 */
			receive(oneChar: string): void;
			/**
			 * Receives a char array and stores it into the PipedReader. This called by PipedWriter.write() when writes occur. <P> If the buffer is full and the thread sending #receive is interrupted, the InterruptedIOException will be thrown.
			 */
			receive(chars: native.Array<string>, offset: number, count: number): void;
			done(): void;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Wraps an existing Reader and counts the line terminators encountered while reading the data. The line number starts at 0 and is incremented any time '\r', '\n' or "\r\n" is read. The class has an internal buffer for its data. The size of the buffer defaults to 8 KB.
		 */
		export class LineNumberReader extends java.io.BufferedReader {
			/**
			 * Constructs a new LineNumberReader on the Reader in. The internal buffer gets the default size (8 KB).
			 * @param input in
			 */
			constructor(input: java.io.Reader);
			/**
			 * Constructs a new LineNumberReader on the Reader in. The size of the internal buffer is specified by the parameter size.
			 * @param input in
			 * @param size 
			 */
			constructor(input: java.io.Reader, size: number);
			static class: java.lang.Class<java.io.LineNumberReader>;
			/**
			 * Returns the current line number for this reader. Numbering starts at 0.
			 */
			public getLineNumber(): number;
			/**
			 * Sets a mark position in this reader. The parameter readlimit indicates how many characters can be read before the mark is invalidated. Sending reset() will reposition this reader back to the marked position, provided that readlimit has not been surpassed. The line number associated with this marked position is also stored so that it can be restored when reset() is called.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Reads a single character from the source reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the source reader has been reached.
			 */
			public read(): number;
			/**
			 * Reads at most count characters from the source reader and stores them in the character array buffer starting at offset. Returns the number of characters actually read or -1 if no characters have been read and the end of this reader has been reached.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public read(buffer: native.Array<string>, offset: number, count: number): number;
			/**
			 * Returns the next line of text available from this reader. A line is represented by 0 or more characters followed by '\r', '\n', "\r\n" or the end of the stream. The returned string does not include the newline sequence.
			 */
			public readLine(): string;
			/**
			 * Resets this reader to the last marked location. It also resets the line count to what is was when this reader was marked. This implementation resets the source reader.
			 */
			public reset(): void;
			/**
			 * Sets the line number of this reader to the specified lineNumber. Note that this may have side effects on the line number associated with the last marked position.
			 * @param lineNumber 
			 */
			public setLineNumber(lineNumber: number): void;
			/**
			 * Skips charCount characters in this reader. Subsequent calls to read will not return these characters unless reset is used. This implementation skips charCount number of characters in the source reader and increments the line number count whenever line terminator sequences are skipped.
			 */
			public skip(charCount: number): any;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Wraps an existing Writer and <em>buffers</em> the output. Expensive interaction with the underlying reader is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when filling that buffer, but this is usually outweighed by the performance benefits.
		 */
		export class BufferedWriter extends java.io.Writer {
			/**
			 * Constructs a new BufferedWriter, providing out with a buffer of 8192 bytes.
			 * @param out the {@code Writer} the buffer writes to.
			 */
			constructor(out: java.io.Writer);
			/**
			 * Constructs a new BufferedWriter, providing out with size bytes of buffer.
			 * @param out the {@code OutputStream} the buffer writes to.
			 * @param size the size of buffer in bytes.
			 */
			constructor(out: java.io.Writer, size: number);
			static class: java.lang.Class<java.io.BufferedWriter>;
			/**
			 * Closes this writer. The contents of the buffer are flushed, the target writer is closed, and the buffer is released. Only the first invocation of close has any effect.
			 */
			public close(): void;
			/**
			 * Flushes this writer. The contents of the buffer are committed to the target writer and it is then flushed.
			 */
			public flush(): void;
			/**
			 * Writes a newline to this writer. On Android, this is "\n". The target writer may or may not be flushed when a newline is written.
			 */
			public newLine(): void;
			/**
			 * Writes count characters starting at offset in buffer to this writer. If count is greater than this writer's buffer, then the buffer is flushed and the characters are written directly to the target writer.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<string>, offset: number, count: number): void;
			/**
			 * Writes the character oneChar to this writer. If the buffer gets full by writing this character, this writer is flushed. Only the lower two bytes of the integer oneChar are written.
			 * @param oneChar 
			 */
			public write(oneChar: number): void;
			/**
			 * Writes count characters starting at offset in str to this writer. If count is greater than this writer's buffer, then this writer is flushed and the remaining characters are written directly to the target writer. If count is negative no characters are written to the buffer. This differs from the behavior of the superclass.
			 * @param str 
			 * @param offset 
			 * @param count 
			 */
			public write(str: string, offset: number, count: number): void;
			/**
			 * Writes the entire character buffer buf to the target.
			 * @param buf 
			 */
			write(buf: native.Array<string>): void;
			/**
			 * Writes the characters from the specified string to the target.
			 * @param str 
			 */
			write(str: string): void;
		}
		/**
		 * An interface for filtering File objects based on their names or the directory they reside in.
		 */
		export class FilenameFilter implements java.io.IFilenameFilter {
			constructor(implementation: java.io.IFilenameFilter);
			/**
			 * Indicates if a specific filename matches this filter.
			 * @param dir 
			 * @param filename 
			 */
			public accept(dir: java.io.File, filename: string): boolean;
		}
		/**
		 * Places information on a communications pipe. When two threads want to pass data back and forth, one creates a piped writer and the other creates a piped reader.
		 */
		export class PipedWriter extends java.io.Writer {
			/**
			 * Constructs a new unconnected PipedWriter. The resulting writer must be connected to a PipedReader before data may be written to it.
			 */
			constructor();
			/**
			 * Constructs a new PipedWriter connected to destination. Any data written to this writer can be read from destination.
			 * @param destination 
			 */
			constructor(destination: java.io.PipedReader);
			static class: java.lang.Class<java.io.PipedWriter>;
			/**
			 * Closes this writer. If a PipedReader is connected to this writer, it is closed as well and the pipe is disconnected. Any data buffered in the reader can still be read.
			 */
			public close(): void;
			/**
			 * Connects this PipedWriter to a PipedReader. Any data written to this writer becomes readable in the reader.
			 * @param reader 
			 */
			public connect(reader: java.io.PipedReader): void;
			/**
			 * Notifies the readers of this PipedReader that characters can be read. This method does nothing if this Writer is not connected.
			 */
			public flush(): void;
			/**
			 * Writes count characters from the character array buffer starting at offset index to this writer. The written data can then be read from the connected PipedReader instance.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<string>, offset: number, count: number): void;
			/**
			 * Writes a single character c to this writer. This character can then be read from the connected PipedReader instance.
			 * @param c 
			 */
			public write(c: number): void;
			/**
			 * Writes the entire character buffer buf to the target.
			 * @param buf 
			 */
			write(buf: native.Array<string>): void;
			/**
			 * Writes the characters from the specified string to the target.
			 * @param str 
			 */
			write(str: string): void;
			/**
			 * Writes count characters from str starting at offset to the target.
			 * @param str 
			 * @param offset 
			 * @param count 
			 */
			write(str: string, offset: number, count: number): void;
		}
		/**
		 * A helper interface with constants used by the serialization implementation.
		 */
		interface IObjectStreamConstants {
		}
		export module IObjectStreamConstants {
			/**
			 * The stream header's magic number.
			 */
			var STREAM_MAGIC: number;
			/**
			 * The stream header's version number.
			 */
			var STREAM_VERSION: number;
			/**
			 * The minimum tag value.
			 */
			var TC_BASE: number;
			/**
			 * Tag to mark a null object reference.
			 */
			var TC_NULL: number;
			/**
			 * Tag to mark a reference to an object that has already been written to the stream.
			 */
			var TC_REFERENCE: number;
			/**
			 * Tag to mark a new class descriptor.
			 */
			var TC_CLASSDESC: number;
			/**
			 * Tag to mark a new object.
			 */
			var TC_OBJECT: number;
			/**
			 * Tag to mark a new string.
			 */
			var TC_STRING: number;
			/**
			 * Tag to mark a new array.
			 */
			var TC_ARRAY: number;
			/**
			 * Tag to mark a reference to a class.
			 */
			var TC_CLASS: number;
			/**
			 * Tag to mark a block of optional data. The byte following this tag indicates the size of the block.
			 */
			var TC_BLOCKDATA: number;
			/**
			 * Tag to mark the end of block data blocks for an object.
			 */
			var TC_ENDBLOCKDATA: number;
			/**
			 * Tag to mark a stream reset.
			 */
			var TC_RESET: number;
			/**
			 * Tag to mark a long block of data. The long following this tag indicates the size of the block.
			 */
			var TC_BLOCKDATALONG: number;
			/**
			 * Tag to mark an exception.
			 */
			var TC_EXCEPTION: number;
			/**
			 * Tag to mark a long string.
			 */
			var TC_LONGSTRING: number;
			/**
			 * Tag to mark a new proxy class descriptor.
			 */
			var TC_PROXYCLASSDESC: number;
			/**
			 * The maximum tag value.
			 */
			var TC_MAX: number;
			/**
			 * Handle for the first object that gets serialized.
			 */
			var baseWireHandle: number;
			/**
			 * Stream protocol version 1.
			 */
			var PROTOCOL_VERSION_1: number;
			/**
			 * Stream protocol version 2.
			 */
			var PROTOCOL_VERSION_2: number;
			/**
			 * Permission constant to enable subclassing of ObjectInputStream and ObjectOutputStream.
			 */
			var SUBCLASS_IMPLEMENTATION_PERMISSION: java.io.SerializablePermission;
			/**
			 * Permission constant to enable object substitution during serialization and deserialization.
			 */
			var SUBSTITUTION_PERMISSION: java.io.SerializablePermission;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a serializable class has its own writeObject method.
			 */
			var SC_WRITE_METHOD: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a class is serializable.
			 */
			var SC_SERIALIZABLE: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a class is externalizable.
			 */
			var SC_EXTERNALIZABLE: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that an externalizable class is written in block data mode.
			 */
			var SC_BLOCK_DATA: number;
			/**
			 * Tag to mark a new enum.
			 */
			var TC_ENUM: number;
			/**
			 * Bit mask for the flag field in ObjectStreamClass. Indicates that a class is an enum type.
			 */
			var SC_ENUM: number;
		}
		/**
		 * A specialized Writer that writes characters to a StringBuffer in a sequential manner, appending them in the process. The result can later be queried using the #StringWriter(int) or #toString() methods.
		 */
		export class StringWriter extends java.io.Writer {
			/**
			 * Constructs a new StringWriter which has a StringBuffer allocated with the default size of 16 characters. The StringBuffer is also the lock used to synchronize access to this writer.
			 */
			constructor();
			/**
			 * Constructs a new StringWriter which has a StringBuffer allocated with a size of initialSize characters. The StringBuffer is also the lock used to synchronize access to this writer.
			 * @param initialSize 
			 */
			constructor(initialSize: number);
			static class: java.lang.Class<java.io.StringWriter>;
			/**
			 * Calling this method has no effect. In contrast to most Writer subclasses, the other methods in StringWriter do not throw an IOException if close() has been called.
			 */
			public close(): void;
			/**
			 * Calling this method has no effect.
			 */
			public flush(): void;
			/**
			 * Gets a reference to this writer's internal StringBuffer. Any changes made to the returned buffer are reflected in this writer.
			 */
			public getBuffer(): java.lang.StringBuffer;
			/**
			 * Gets a copy of the contents of this writer as a string.
			 */
			public toString(): string;
			/**
			 * Writes count characters starting at offset in buf to this writer's StringBuffer.
			 * @param chars 
			 * @param offset 
			 * @param count 
			 */
			public write(chars: native.Array<string>, offset: number, count: number): void;
			/**
			 * Writes one character to this writer's StringBuffer. Only the two least significant bytes of the integer oneChar are written.
			 * @param oneChar 
			 */
			public write(oneChar: number): void;
			/**
			 * Writes the characters from the specified string to this writer's StringBuffer.
			 * @param str 
			 */
			public write(str: string): void;
			/**
			 * Writes count characters from str starting at offset to this writer's StringBuffer.
			 * @param str 
			 * @param offset 
			 * @param count 
			 */
			public write(str: string, offset: number, count: number): void;
			/**
			 * Appends the character c to this writer's StringBuffer. This method works the same way as #write(int).
			 * @param c 
			 */
			public append(c: string): java.io.StringWriter;
			/**
			 * Appends a subsequence of the character sequence csq to this writer's StringBuffer. This method works the same way as StringWriter.writer(csq.subsequence(start, end).toString()). If csq is null, then the specified subsequence of the string "null" will be written to the target.
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			public append(csq: string, start: number, end: number): java.io.StringWriter;
			/**
			 * Writes the entire character buffer buf to the target.
			 * @param buf 
			 */
			write(buf: native.Array<string>): void;
		}
		/**
		 * A specialized Reader that reads characters from a String in a sequential manner.
		 */
		export class StringReader extends java.io.Reader {
			/**
			 * Construct a new StringReader with str as source. The size of the reader is set to the length() of the string and the Object to synchronize access through is set to str.
			 * @param str 
			 */
			constructor(str: string);
			static class: java.lang.Class<java.io.StringReader>;
			/**
			 * Closes this reader. Once it is closed, read operations on this reader will throw an IOException. Only the first invocation of this method has any effect.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this reader. The parameter readLimit is ignored for this class. Calling reset() will reposition the reader back to the marked position.
			 * @param readLimit 
			 */
			public mark(readLimit: number): void;
			/**
			 * Indicates whether this reader supports the mark() and reset() methods. This implementation returns true.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single character from the source string and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the source string has been reached.
			 */
			public read(): number;
			/**
			 * Reads at most len characters from the source string and stores them at offset in the character array buf. Returns the number of characters actually read or -1 if the end of the source string has been reached.
			 * @param buf 
			 * @param offset 
			 * @param len 
			 */
			public read(buf: native.Array<string>, offset: number, len: number): number;
			/**
			 * Indicates whether this reader is ready to be read without blocking. This implementation always returns true.
			 */
			public ready(): boolean;
			/**
			 * Resets this reader's position to the last mark() location. Invocations of read() and skip() will occur from this new location. If this reader has not been marked, it is reset to the beginning of the source string.
			 */
			public reset(): void;
			/**
			 * Moves charCount characters in the source string. Unlike the Reader#skip(long) overridden method, this method may skip negative skip distances: this rewinds the input so that characters may be read again. When the end of the source string has been reached, the input cannot be rewound.
			 * @param charCount 
			 */
			public skip(charCount: number): any;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Provides access to the console, if available. The system-wide instance can be accessed via java.lang.System#console. 1.6
		 */
		export class Console extends java.lang.Object implements java.io.IFlushable {
			static class: java.lang.Class<java.io.Console>;
			public flush(): void;
			/**
			 * Writes a formatted string to the console using the specified format string and arguments.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public format(format: string, args: native.Array<any>): java.io.Console;
			/**
			 * Equivalent to format(format, args).
			 */
			public printf(format: string, args: native.Array<any>): java.io.Console;
			/**
			 * Returns the Reader associated with this console.
			 */
			public reader(): java.io.Reader;
			/**
			 * Reads a line from the console.
			 */
			public readLine(): string;
			/**
			 * Reads a line from this console, using the specified prompt. The prompt is given as a format string and optional arguments. Note that this can be a source of errors: if it is possible that your prompt contains % characters, you must use the format string "%s" and pass the actual prompt as a parameter.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public readLine(format: string, args: native.Array<any>): string;
			/**
			 * Reads a password from the console. The password will not be echoed to the display.
			 */
			public readPassword(): native.Array<string>;
			/**
			 * Reads a password from the console. The password will not be echoed to the display. A formatted prompt is also displayed.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public readPassword(format: string, args: native.Array<any>): native.Array<string>;
			/**
			 * Returns the Writer associated with this console.
			 */
			public writer(): java.io.PrintWriter;
		}
		export module Console {
			export class ConsoleReader extends java.io.BufferedReader {
				constructor(input: java.io.InputStream);
				static class: java.lang.Class<java.io.Console.ConsoleReader>;
				public close(): void;
			}
			export class ConsoleWriter extends java.io.PrintWriter {
				constructor(out: java.io.OutputStream);
				static class: java.lang.Class<java.io.Console.ConsoleWriter>;
				public close(): void;
			}
		}
		/**
		 * A specialized Reader that reads from a file in the file system. All read requests made by calling methods in this class are directly forwarded to the equivalent function of the underlying operating system. Since this may induce some performance penalty, in particular if many small read requests are made, a FileReader is often wrapped by a BufferedReader.
		 */
		export class FileReader extends java.io.InputStreamReader {
			/**
			 * Constructs a new FileReader on the given file.
			 * @param file 
			 */
			constructor(file: java.io.File);
			/**
			 * Construct a new FileReader on the given FileDescriptor fd. Since a previously opened FileDescriptor is passed as an argument, no FileNotFoundException can be thrown.
			 * @param fd 
			 */
			constructor(fd: java.io.FileDescriptor);
			/**
			 * Construct a new FileReader on the given file named filename.
			 * @param filename 
			 */
			constructor(filename: string);
			static class: java.lang.Class<java.io.FileReader>;
		}
		/**
		 * Signals that, during deserialization, the validation of an object has failed.
		 */
		export class InvalidObjectException extends java.io.ObjectStreamException {
			/**
			 * Constructs an InvalidObjectException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.InvalidObjectException>;
		}
		/**
		 * Signals that the ObjectInputStream#readObject() method has detected an exception marker in the input stream. This marker indicates that exception occurred when the object was serialized, and this marker was inserted instead of the original object. It is a way to "propagate" an exception from the code that attempted to write the object to the code that is attempting to read the object.
		 */
		export class WriteAbortedException extends java.io.ObjectStreamException {
			/**
			 * Constructs a new WriteAbortedException with its stack trace, detail message and the exception which caused the underlying problem when serializing the object filled in.
			 * @param detailMessage 
			 * @param rootCause 
			 */
			constructor(detailMessage: string, rootCause: java.lang.Exception);
			/**
			 * The exception that occured when writeObject() was attempting to serialize the object.
			 */
			detail: java.lang.Exception;
			static class: java.lang.Class<java.io.WriteAbortedException>;
			/**
			 * Gets the extra information message which was provided when this exception was created. Returns null if no message was provided at creation time.
			 */
			public getMessage(): string;
			/**
			 * Gets the cause of this exception or null if there is no cause.
			 */
			public getCause(): java.lang.Throwable;
		}
		/**
		 * An interface for filtering File objects based on their names or other information.
		 */
		export class FileFilter implements java.io.IFileFilter {
			constructor(implementation: java.io.IFileFilter);
			/**
			 * Indicating whether a specific file should be included in a pathname list.
			 * @param pathname 
			 */
			public accept(pathname: java.io.File): boolean;
		}
		/**
		 * Wraps an existing OutputStream and <em>buffers</em> the output. Expensive interaction with the underlying input stream is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when flushing that buffer, but this is usually outweighed by the performance benefits.
		 */
		export class BufferedOutputStream extends java.io.FilterOutputStream {
			/**
			 * Constructs a new BufferedOutputStream, providing out with a buffer of 8192 bytes.
			 * @param out the {@code OutputStream} the buffer writes to.
			 */
			constructor(out: java.io.OutputStream);
			/**
			 * Constructs a new BufferedOutputStream, providing out with size bytes of buffer.
			 * @param out the {@code OutputStream} the buffer writes to.
			 * @param size the size of buffer in bytes.
			 */
			constructor(out: java.io.OutputStream, size: number);
			static class: java.lang.Class<java.io.BufferedOutputStream>;
			/**
			 * Flushes this stream to ensure all pending data is written out to the target stream. In addition, the target stream is flushed.
			 */
			public flush(): void;
			/**
			 * Writes count bytes from the byte array buffer starting at offset to this stream. If there is room in the buffer to hold the bytes, they are copied in. If not, the buffered bytes plus the bytes in buffer are written to the target stream, the target is flushed, and the buffer is cleared.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public write(buffer: native.Array<number>, offset: number, length: number): void;
			public close(): void;
			/**
			 * Writes one byte to this stream. Only the low order byte of the integer oneByte is written. If there is room in the buffer, the byte is copied into the buffer and the count incremented. Otherwise, the buffer plus oneByte are written to the target stream, the target is flushed, and the buffer is reset.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * Represents a descriptor for identifying a class during serialization and deserialization. Information contained in the descriptor includes the name and SUID of the class as well as field names and types. Information inherited from the superclasses is also taken into account.
		 */
		export class ObjectStreamClass extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constant indicating that the class has no Serializable fields.
			 */
			static NO_FIELDS: native.Array<java.io.ObjectStreamField>;
			static class: java.lang.Class<java.io.ObjectStreamClass>;
			setConstructor(newConstructor: number): void;
			getConstructor(): any;
			getReflectionField(osf: java.io.ObjectStreamField): java.lang.reflect.Field;
			/**
			 * Builds the collection of field descriptors for the receiver
			 * @param declaredFields 
			 */
			buildFieldDescriptors(declaredFields: native.Array<java.lang.reflect.Field>): void;
			/**
			 * Return the java.lang.reflect.Field serialPersistentFields if class cl implements it. Return null otherwise.
			 * @param cl 
			 */
			static fieldSerialPersistentFields(cl: java.lang.Class<any>): java.lang.reflect.Field;
			/**
			 * Returns the class (java.lang.Class) for this descriptor.
			 */
			public forClass(): java.lang.Class<any>;
			/**
			 * Create and return a new instance of class 'instantiationClass' using JNI to call the constructor chosen by resolveConstructorClass.
			 */
			newInstance(instantiationClass: java.lang.Class<any>): any;
			/**
			 * Return a String representing the signature for a Constructor c.
			 * @param c 
			 */
			static getConstructorSignature(c: java.lang.reflect.Constructor<any>): string;
			/**
			 * Gets a field descriptor of the class represented by this class descriptor.
			 * @param name 
			 */
			public getField(name: string): java.io.ObjectStreamField;
			/**
			 * Returns the collection of field descriptors for the fields of the corresponding class
			 */
			fields(): native.Array<java.io.ObjectStreamField>;
			/**
			 * Returns a collection of field descriptors for the serialized fields of the class represented by this class descriptor.
			 */
			public getFields(): native.Array<java.io.ObjectStreamField>;
			getHierarchy(): java.util.IList<java.io.ObjectStreamClass>;
			/**
			 * Returns the collection of field descriptors for the input fields of the corresponding class
			 */
			getLoadFields(): native.Array<java.io.ObjectStreamField>;
			/**
			 * Returns the flags for this descriptor, where possible combined values are
			 */
			getFlags(): number;
			/**
			 * Return a String representing the signature for a method m.
			 * @param m 
			 */
			static getMethodSignature(m: java.lang.reflect.Method): string;
			/**
			 * Returns the name of the class represented by this descriptor.
			 */
			public getName(): string;
			/**
			 * Returns the Serial Version User ID of the class represented by this descriptor.
			 */
			public getSerialVersionUID(): any;
			/**
			 * Returns the descriptor (ObjectStreamClass) of the superclass of the class represented by the receiver.
			 */
			getSuperclass(): java.io.ObjectStreamClass;
			/**
			 * Return true if instances of class cl are Externalizable, false otherwise.
			 * @param cl 
			 */
			static isExternalizable(cl: java.lang.Class<any>): boolean;
			/**
			 * Return true if the type code <code>typecode<code> describes a primitive type
			 * @param typecode a char describing the typecode
			 */
			static isPrimitiveType(typecode: string): boolean;
			/**
			 * Return true if instances of class cl are Serializable, false otherwise.
			 * @param cl 
			 */
			static isSerializable(cl: java.lang.Class<any>): boolean;
			isSerializable(): boolean;
			isExternalizable(): boolean;
			isProxy(): boolean;
			isEnum(): boolean;
			/**
			 * Returns the descriptor for a serializable class. Returns null if the class doesn't implement Serializable or Externalizable.
			 * @param cl 
			 */
			public static lookup(cl: java.lang.Class<any>): java.io.ObjectStreamClass;
			/**
			 * Returns the descriptor for any class, whether or not the class implements Serializable or Externalizable.
			 * @param cl 
			 */
			public static lookupAny(cl: java.lang.Class<any>): java.io.ObjectStreamClass;
			/**
			 * Return the descriptor (ObjectStreamClass) corresponding to the class cl. Returns an ObjectStreamClass even if instances of the class cannot be serialized
			 * @param cl 
			 */
			static lookupStreamClass(cl: java.lang.Class<any>): java.io.ObjectStreamClass;
			/**
			 * Return the java.lang.reflect.Method if class <code>cl</code> implements <code>methodName</code> . Return null otherwise.
			 * @param cl 
			 * @param methodName 
			 */
			static findMethod(cl: java.lang.Class<any>, methodName: string): java.lang.reflect.Method;
			/**
			 * Return the java.lang.reflect.Method if class <code>cl</code> implements private <code>methodName</code> . Return null otherwise.
			 * @param cl 
			 * @param methodName 
			 * @param param 
			 */
			static findPrivateMethod(cl: java.lang.Class<any>, methodName: string, param: native.Array<java.lang.Class<any>>): java.lang.reflect.Method;
			hasMethodWriteReplace(): boolean;
			getMethodWriteReplace(): java.lang.reflect.Method;
			hasMethodReadResolve(): boolean;
			getMethodReadResolve(): java.lang.reflect.Method;
			hasMethodWriteObject(): boolean;
			getMethodWriteObject(): java.lang.reflect.Method;
			hasMethodReadObject(): boolean;
			getMethodReadObject(): java.lang.reflect.Method;
			hasMethodReadObjectNoData(): boolean;
			getMethodReadObjectNoData(): java.lang.reflect.Method;
			initPrivateFields(desc: java.io.ObjectStreamClass): void;
			/**
			 * Set the class (java.lang.Class) that the receiver represents
			 * @param c 
			 */
			setClass(c: java.lang.Class<any>): void;
			/**
			 * Set the collection of field descriptors for the fields of the corresponding class
			 * @param f 
			 */
			setFields(f: native.Array<java.io.ObjectStreamField>): void;
			/**
			 * Set the collection of field descriptors for the input fields of the corresponding class
			 * @param f 
			 */
			setLoadFields(f: native.Array<java.io.ObjectStreamField>): void;
			/**
			 * Set the flags for this descriptor, where possible combined values are
			 * @param b 
			 */
			setFlags(b: number): void;
			/**
			 * Set the name of the class represented by the receiver
			 * @param newName 
			 */
			setName(newName: string): void;
			/**
			 * Set the Serial Version User ID of the class represented by the receiver
			 * @param l 
			 */
			setSerialVersionUID(l: number): void;
			/**
			 * Set the descriptor for the superclass of the class described by the receiver
			 * @param c 
			 */
			setSuperclass(c: java.io.ObjectStreamClass): void;
			/**
			 * Returns a string containing a concise, human-readable description of this descriptor.
			 */
			public toString(): string;
		}
		/**
		 * Wraps either an existing OutputStream or an existing Writer and provides convenience methods for printing common data types in a human readable format. No IOException is thrown by this class. Instead, callers should use #checkError() to see if a problem has occurred in this writer.
		 */
		export class PrintWriter extends java.io.Writer {
			/**
			 * Constructs a new PrintWriter with out as its target stream. By default, the new print writer does not automatically flush its contents to the target stream when a newline is encountered.
			 * @param out 
			 */
			constructor(out: java.io.OutputStream);
			/**
			 * Constructs a new PrintWriter with out as its target stream. The parameter autoFlush determines if the print writer automatically flushes its contents to the target stream when a newline is encountered.
			 * @param out 
			 * @param autoFlush 
			 */
			constructor(out: java.io.OutputStream, autoFlush: boolean);
			/**
			 * Constructs a new PrintWriter with wr as its target writer. By default, the new print writer does not automatically flush its contents to the target writer when a newline is encountered.
			 * @param wr 
			 */
			constructor(wr: java.io.Writer);
			/**
			 * Constructs a new PrintWriter with out as its target writer. The parameter autoFlush determines if the print writer automatically flushes its contents to the target writer when a newline is encountered.
			 * @param wr 
			 * @param autoFlush 
			 */
			constructor(wr: java.io.Writer, autoFlush: boolean);
			/**
			 * Constructs a new PrintWriter with file as its target. The VM's default character set is used for character encoding. The print writer does not automatically flush its contents to the target file when a newline is encountered. The output to the file is buffered.
			 * @param file 
			 */
			constructor(file: java.io.File);
			/**
			 * Constructs a new PrintWriter with file as its target. The character set named csn is used for character encoding. The print writer does not automatically flush its contents to the target file when a newline is encountered. The output to the file is buffered.
			 * @param file 
			 * @param csn 
			 */
			constructor(file: java.io.File, csn: string);
			/**
			 * Constructs a new PrintWriter with the file identified by fileName as its target. The VM's default character set is used for character encoding. The print writer does not automatically flush its contents to the target file when a newline is encountered. The output to the file is buffered.
			 * @param fileName 
			 */
			constructor(fileName: string);
			/**
			 * Constructs a new PrintWriter with the file identified by fileName as its target. The character set named csn is used for character encoding. The print writer does not automatically flush its contents to the target file when a newline is encountered. The output to the file is buffered.
			 * @param fileName 
			 * @param csn 
			 */
			constructor(fileName: string, csn: string);
			static class: java.lang.Class<java.io.PrintWriter>;
			/**
			 * Flushes this writer and returns the value of the error flag.
			 */
			public checkError(): boolean;
			/**
			 * Sets the error state of the stream to false. 1.6
			 */
			protected clearError(): void;
			/**
			 * Closes this print writer. Flushes this writer and then closes the target. If an I/O error occurs, this writer's error flag is set to true.
			 */
			public close(): void;
			/**
			 * Ensures that all pending data is sent out to the target. It also flushes the target. If an I/O error occurs, this writer's error state is set to true.
			 */
			public flush(): void;
			/**
			 * Formats args according to the format string format, and writes the result to this stream. This method uses the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>". If automatic flushing is enabled then the buffer is flushed as well.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public format(format: string, args: native.Array<any>): java.io.PrintWriter;
			/**
			 * Writes a string formatted by an intermediate Formatter to the target using the specified locale, format string and arguments. If automatic flushing is enabled then this writer is flushed.
			 * @param l 
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public format(l: java.util.Locale, format: string, args: native.Array<any>): java.io.PrintWriter;
			/**
			 * Prints a formatted string. The behavior of this method is the same as this writer's #format(String, Object...) method.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public printf(format: string, args: native.Array<any>): java.io.PrintWriter;
			/**
			 * Prints a formatted string. The behavior of this method is the same as this writer's #format(Locale, String, Object...) method.
			 * @param l 
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public printf(l: java.util.Locale, format: string, args: native.Array<any>): java.io.PrintWriter;
			/**
			 * Prints the string representation of the specified character array to the target.
			 * @param charArray 
			 */
			public print(charArray: native.Array<string>): void;
			/**
			 * Prints the string representation of the specified character to the target.
			 * @param ch 
			 */
			public print(ch: string): void;
			/**
			 * Prints the string representation of the specified double to the target.
			 * @param dnum 
			 */
			public print(dnum: number): void;
			/**
			 * Prints the string representation of the specified object to the target.
			 * @param obj 
			 */
			public print(obj: any): void;
			/**
			 * Prints the string representation of the specified boolean to the target.
			 * @param bool 
			 */
			public print(bool: boolean): void;
			/**
			 * Prints a newline. Flushes this writer if the autoFlush flag is set to true.
			 */
			public println(): void;
			/**
			 * Prints the string representation of the character array chars followed by a newline. Flushes this writer if the autoFlush flag is set to true.
			 */
			public println(chars: native.Array<string>): void;
			/**
			 * Prints the string representation of the char c followed by a newline. Flushes this writer if the autoFlush flag is set to true.
			 */
			public println(c: string): void;
			/**
			 * Prints the string representation of the double d followed by a newline. Flushes this writer if the autoFlush flag is set to true.
			 */
			public println(d: number): void;
			/**
			 * Prints the string representation of the object o, or "null, followed by a newline. Flushes this writer if the autoFlush flag is set to true.
			 */
			public println(obj: any): void;
			/**
			 * Prints the string representation of the boolean b followed by a newline. Flushes this writer if the autoFlush flag is set to true.
			 */
			public println(b: boolean): void;
			/**
			 * Sets the error flag of this writer to true.
			 */
			protected setError(): void;
			/**
			 * Writes the character buffer buf to the target.
			 * @param buf 
			 */
			public write(buf: native.Array<string>): void;
			/**
			 * Writes count characters from buffer starting at offset to the target.
			 * @param buf 
			 * @param offset 
			 * @param count 
			 */
			public write(buf: native.Array<string>, offset: number, count: number): void;
			/**
			 * Writes one character to the target. Only the two least significant bytes of the integer oneChar are written.
			 * @param oneChar 
			 */
			public write(oneChar: number): void;
			/**
			 * Writes the characters from the specified string to the target.
			 * @param str 
			 */
			public write(str: string): void;
			/**
			 * Writes count characters from str starting at offset to the target.
			 * @param str 
			 * @param offset 
			 * @param count 
			 */
			public write(str: string, offset: number, count: number): void;
			/**
			 * Appends the character c to the target.
			 * @param c 
			 */
			public append(c: string): java.io.PrintWriter;
			/**
			 * Appends a subsequence of the character sequence csq to the target. This method works the same way as PrintWriter.print(csq.subsequence(start, end).toString()). If csq is null, then the specified subsequence of the string "null" will be written to the target.
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			public append(csq: string, start: number, end: number): java.io.PrintWriter;
		}
		/**
		 * Wraps an existing OutputStream and provides convenience methods for writing common data types in a human readable format. This is not to be confused with DataOutputStream which is used for encoding common data types so that they can be read back in. No IOException is thrown by this class. Instead, callers should use #checkError() to see if a problem has occurred in this stream.
		 */
		export class PrintStream extends java.io.FilterOutputStream implements java.lang.IAppendable, java.io.ICloseable {
			/**
			 * Constructs a new PrintStream with out as its target stream. By default, the new print stream does not automatically flush its contents to the target stream when a newline is encountered.
			 * @param out 
			 */
			constructor(out: java.io.OutputStream);
			/**
			 * Constructs a new PrintStream with out as its target stream. The parameter autoFlush determines if the print stream automatically flushes its contents to the target stream when a newline is encountered.
			 * @param out 
			 * @param autoFlush 
			 */
			constructor(out: java.io.OutputStream, autoFlush: boolean);
			/**
			 * Constructs a new PrintStream with out as its target stream and using the character encoding charsetName while writing. The parameter autoFlush determines if the print stream automatically flushes its contents to the target stream when a newline is encountered.
			 * @param out 
			 * @param autoFlush 
			 * @param charsetName 
			 */
			constructor(out: java.io.OutputStream, autoFlush: boolean, charsetName: string);
			/**
			 * Constructs a new PrintStream with file as its target. The VM's default character set is used for character encoding.
			 * @param file 
			 */
			constructor(file: java.io.File);
			/**
			 * Constructs a new PrintStream with file as its target. The character set named charsetName is used for character encoding.
			 * @param file 
			 * @param charsetName 
			 */
			constructor(file: java.io.File, charsetName: string);
			/**
			 * Constructs a new PrintStream with the file identified by fileName as its target. The VM's default character set is used for character encoding.
			 * @param fileName 
			 */
			constructor(fileName: string);
			/**
			 * Constructs a new PrintStream with the file identified by fileName as its target. The character set named charsetName is used for character encoding.
			 * @param fileName 
			 * @param charsetName 
			 */
			constructor(fileName: string, charsetName: string);
			static class: java.lang.Class<java.io.PrintStream>;
			/**
			 * Flushes this stream and returns the value of the error flag.
			 */
			public checkError(): boolean;
			/**
			 * Sets the error state of the stream to false. 1.6
			 */
			protected clearError(): void;
			/**
			 * Closes this print stream. Flushes this stream and then closes the target stream. If an I/O error occurs, this stream's error state is set to true.
			 */
			public close(): void;
			/**
			 * Ensures that all pending data is sent out to the target stream. It also flushes the target stream. If an I/O error occurs, this stream's error state is set to true.
			 */
			public flush(): void;
			/**
			 * Formats args according to the format string format, and writes the result to this stream. This method uses the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public format(format: string, args: native.Array<any>): java.io.PrintStream;
			/**
			 * Writes a string formatted by an intermediate Formatter to this stream using the specified locale, format string and arguments.
			 * @param l 
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public format(l: java.util.Locale, format: string, args: native.Array<any>): java.io.PrintStream;
			/**
			 * Prints a formatted string. The behavior of this method is the same as this stream's #format(String, Object...) method.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public printf(format: string, args: native.Array<any>): java.io.PrintStream;
			/**
			 * Prints a formatted string. The behavior of this method is the same as this stream's #format(Locale, String, Object...) method.
			 * @param l 
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public printf(l: java.util.Locale, format: string, args: native.Array<any>): java.io.PrintStream;
			/**
			 * Prints the string representation of the character array chars.
			 */
			public print(chars: native.Array<string>): void;
			/**
			 * Prints the string representation of the char c.
			 */
			public print(c: string): void;
			/**
			 * Prints the string representation of the double d.
			 */
			public print(d: number): void;
			/**
			 * Prints the string representation of the Object o, or "null".
			 */
			public print(o: any): void;
			/**
			 * Prints the string representation of the boolean b.
			 */
			public print(b: boolean): void;
			/**
			 * Prints a newline.
			 */
			public println(): void;
			/**
			 * Prints the string representation of the character array chars followed by a newline.
			 */
			public println(chars: native.Array<string>): void;
			/**
			 * Prints the string representation of the char c followed by a newline.
			 */
			public println(c: string): void;
			/**
			 * Prints the string representation of the double d followed by a newline.
			 */
			public println(d: number): void;
			/**
			 * Prints the string representation of the Object o, or "null", followed by a newline.
			 */
			public println(o: any): void;
			/**
			 * Prints the string representation of the boolean b followed by a newline.
			 */
			public println(b: boolean): void;
			/**
			 * Sets the error flag of this print stream to true.
			 */
			protected setError(): void;
			/**
			 * Writes count bytes from buffer starting at offset to the target stream. If autoFlush is set, this stream gets flushed after writing the buffer.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public write(buffer: native.Array<number>, offset: number, length: number): void;
			/**
			 * Writes one byte to the target stream. Only the least significant byte of the integer oneByte is written. This stream is flushed if oneByte is equal to the character '\n' and this stream is set to autoFlush.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Appends the char c.
			 */
			public append(c: string): java.io.PrintStream;
			/**
			 * Appends a subsequence of CharSequence charSequence, or "null".
			 * @param charSequence 
			 * @param start 
			 * @param end 
			 */
			public append(charSequence: string, start: number, end: number): java.io.PrintStream;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * Wraps an existing InputStream and performs some transformation on the input data while it is being read. Transformations can be anything from a simple byte-wise filtering input data to an on-the-fly compression or decompression of the underlying stream. Input streams that wrap another input stream and provide some additional functionality on top of it usually inherit from this class.
		 */
		export class FilterInputStream extends java.io.InputStream {
			static class: java.lang.Class<java.io.FilterInputStream>;
			public available(): number;
			/**
			 * Closes this stream. This implementation closes the filtered stream.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this stream. The parameter readlimit indicates how many bytes can be read before the mark is invalidated. Sending reset() will reposition this stream back to the marked position, provided that readlimit has not been surpassed.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Indicates whether this stream supports mark() and reset(). This implementation returns whether or not the filtered stream supports marking.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single byte from the filtered stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of this stream has been reached.
			 */
			public read(): number;
			/**
			 * Reads at most count bytes from this stream and stores them in the byte array buffer starting at offset. Returns the number of bytes actually read or -1 if no bytes have been read and the end of this stream has been reached. This implementation reads bytes from the filtered stream.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public read(buffer: native.Array<number>, offset: number, count: number): number;
			/**
			 * Resets this stream to the last marked location. This implementation resets the target stream.
			 */
			public reset(): void;
			/**
			 * Skips byteCount bytes in this stream. Subsequent calls to read will not return these bytes unless reset is used. This implementation skips byteCount bytes in the filtered stream.
			 */
			public skip(byteCount: number): any;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Defines an interface for classes that allow reading serialized objects.
		 */
		export class ObjectOutput implements java.io.IDataOutput, java.io.IObjectOutput {
			constructor(implementation: java.io.IObjectOutput);
			/**
			 * Closes the target stream. Implementations of this method should free any resources used by the stream.
			 */
			public close(): void;
			/**
			 * Flushes the target stream. Implementations of this method should ensure that any pending writes are written out to the target stream.
			 */
			public flush(): void;
			/**
			 * Writes the entire contents of the byte array buffer to the output stream. Blocks until all bytes are written.
			 * @param buffer 
			 */
			public write(buffer: native.Array<number>): void;
			/**
			 * Writes count bytes from the byte array buffer starting at position offset to the target stream. Blocks until all bytes are written.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<number>, offset: number, count: number): void;
			/**
			 * Writes a single byte to the target stream. Only the least significant byte of the integer value is written to the stream. Blocks until the byte is actually written.
			 * @param value 
			 */
			public write(value: number): void;
			/**
			 * Writes the specified object obj to the target stream.
			 * @param obj 
			 */
			public writeObject(obj: any): void;
			/**
			 * Writes the specified boolean.
			 * @param val 
			 */
			writeBoolean(val: boolean): void;
			/**
			 * Writes the specified 8-bit byte.
			 * @param val 
			 */
			writeByte(val: number): void;
			/**
			 * Writes the low order 8-bit bytes from the specified string.
			 * @param str 
			 */
			writeBytes(str: string): void;
			/**
			 * Writes the specified 16-bit character in big-endian order. Only the two least significant bytes of the integer oneByte are written.
			 * @param val 
			 */
			writeChar(val: number): void;
			/**
			 * Writes the 16-bit characters contained in str in big-endian order.
			 * @param str 
			 */
			writeChars(str: string): void;
			/**
			 * Writes the specified 64-bit double in big-endian order. The resulting output is the eight bytes returned by Double#doubleToLongBits(double).
			 * @param val 
			 */
			writeDouble(val: number): void;
			/**
			 * Writes the specified 32-bit float in big-endian order. The resulting output is the four bytes returned by Float#floatToIntBits(float).
			 * @param val 
			 */
			writeFloat(val: number): void;
			/**
			 * Writes the specified 32-bit int in big-endian order.
			 * @param val 
			 */
			writeInt(val: number): void;
			/**
			 * Writes the specified 64-bit long in big-endian order.
			 * @param val 
			 */
			writeLong(val: number): void;
			/**
			 * Writes the specified 16-bit short in big-endian order. Only the lower two bytes of val are written.
			 * @param val 
			 */
			writeShort(val: number): void;
			/**
			 * Writes the specified string encoded in DataInput modified UTF-8.
			 * @param str 
			 */
			writeUTF(str: string): void;
		}
		/**
		 * A class for turning a byte stream into a character stream. Data read from the source input stream is converted into characters by either a default or a provided character converter. The default encoding is taken from the "file.encoding" system property. InputStreamReader contains a buffer of bytes read from the source stream and converts these into characters as needed. The buffer size is 8K.
		 */
		export class InputStreamReader extends java.io.Reader {
			/**
			 * Constructs a new InputStreamReader on the InputStream in. This constructor sets the character converter to the encoding specified in the "file.encoding" property and falls back to ISO 8859_1 (ISO-Latin-1) if the property doesn't exist.
			 * @param input in
			 */
			constructor(input: java.io.InputStream);
			/**
			 * Constructs a new InputStreamReader on the InputStream in. The character converter that is used to decode bytes into characters is identified by name by charsetName. If the encoding cannot be found, an UnsupportedEncodingException error is thrown.
			 * @param input in
			 * @param charsetName 
			 */
			constructor(input: java.io.InputStream, charsetName: string);
			/**
			 * Constructs a new InputStreamReader on the InputStream in and CharsetDecoder dec.
			 * @param input in
			 * @param dec 
			 */
			constructor(input: java.io.InputStream, dec: java.nio.charset.CharsetDecoder);
			/**
			 * Constructs a new InputStreamReader on the InputStream in and Charset charset.
			 * @param input in
			 * @param charset 
			 */
			constructor(input: java.io.InputStream, charset: java.nio.charset.Charset);
			static class: java.lang.Class<java.io.InputStreamReader>;
			/**
			 * Closes this reader. This implementation closes the source InputStream and releases all local storage.
			 */
			public close(): void;
			/**
			 * Returns the historical name of the encoding used by this writer to convert characters to bytes, or null if this writer has been closed. Most callers should probably keep track of the String or Charset they passed in; this method may not return the same name.
			 */
			public getEncoding(): string;
			/**
			 * Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the reader has been reached. The byte value is either obtained from converting bytes in this reader's buffer or by first filling the buffer from the source InputStream and then reading from the buffer.
			 */
			public read(): number;
			/**
			 * Reads at most length characters from this reader and stores them at position offset in the character array buf. Returns the number of characters actually read or -1 if the end of the reader has been reached. The bytes are either obtained from converting bytes in this reader's buffer or by first filling the buffer from the source InputStream and then reading from the buffer.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<string>, offset: number, length: number): number;
			/**
			 * Indicates whether this reader is ready to be read without blocking. If the result is true, the next read() will not block. If the result is false then this reader may or may not block when read() is called. This implementation returns true if there are bytes available in the buffer or the source stream has bytes available.
			 */
			public ready(): boolean;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * An EmulatedFieldsForLoading is an object that represents a set of emulated fields for an object being loaded. It is a concrete implementation for ObjectInputStream.GetField
		 */
		export class EmulatedFieldsForLoading extends java.io.ObjectInputStream.GetField {
			static class: java.lang.Class<java.io.EmulatedFieldsForLoading>;
			/**
			 * Return a boolean indicating if the field named <code>name</code> has been assigned a value explicitly (false) or if it still holds a default value for the type (true) because it hasn't been assigned to yet.
			 * @param name 
			 */
			public defaulted(name: string): boolean;
			/**
			 * Return the actual EmulatedFields instance used by the receiver. We have the actual work in a separate class so that the code can be shared. The receiver has to be of a subclass of GetField.
			 */
			emulatedFields(): java.io.EmulatedFields;
			/**
			 * Find and return the byte value of a given field named <code>name</code> in the receiver. If the field has not been assigned any value yet, the default value <code>defaultValue</code> is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: number): number;
			/**
			 * Find and return the char value of a given field named <code>name</code> in the receiver. If the field has not been assigned any value yet, the default value <code>defaultValue</code> is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: string): string;
			/**
			 * Find and return the Object value of a given field named <code>name</code> in the receiver. If the field has not been assigned any value yet, the default value <code>defaultValue</code> is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: any): any;
			/**
			 * Find and return the boolean value of a given field named <code>name</code> in the receiver. If the field has not been assigned any value yet, the default value <code>defaultValue</code> is returned instead.
			 * @param name 
			 * @param defaultValue 
			 */
			public get(name: string, defaultValue: boolean): boolean;
			/**
			 * Return the class descriptor for which the emulated fields are defined.
			 */
			public getObjectStreamClass(): java.io.ObjectStreamClass;
		}
		/**
		 * A readable source of bytes.
		 */
		export class InputStream extends java.lang.Object implements java.io.ICloseable {
			/**
			 * This constructor does nothing. It is provided for signature compatibility.
			 */
			constructor();
			static class: java.lang.Class<java.io.InputStream>;
			/**
			 * Returns an estimated number of bytes that can be read or skipped without blocking for more input.
			 */
			public available(): number;
			/**
			 * Closes this stream. Concrete implementations of this class should free any resources during close. This implementation does nothing.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this InputStream. The parameter readlimit indicates how many bytes can be read before the mark is invalidated. Sending reset() will reposition the stream back to the marked position provided readLimit has not been surpassed.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Indicates whether this stream supports the mark() and reset() methods. The default implementation returns false.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the stream has been reached. Blocks until one byte has been read, the end of the source stream is detected or an exception is thrown.
			 */
			public read(): number;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			public read(buffer: native.Array<number>): number;
			/**
			 * Reads at most length bytes from this stream and stores them in the byte array b starting at offset.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<number>, offset: number, length: number): number;
			/**
			 * Resets this stream to the last marked location. Throws an IOException if the number of bytes read since the mark has been set is greater than the limit provided to mark, or if no mark has been set.
			 */
			public reset(): void;
			/**
			 * Skips at most n bytes in this stream. This method does nothing and returns 0 if n is negative, but some subclasses may throw.
			 * @param byteCount the number of bytes to skip.
			 */
			public skip(byteCount: number): any;
		}
		/**
		 * Wraps an existing InputStream and counts the line terminators encountered while reading the data. Line numbering starts at 0. Recognized line terminator sequences are '\r', '\n' and "\r\n". When using read, line terminator sequences are always translated into '\n'.
		 */
		export class LineNumberInputStream extends java.io.FilterInputStream {
			/**
			 * Constructs a new LineNumberInputStream on the InputStream in. Line numbers are counted for all data read from this stream.
			 * @param input in
			 */
			constructor(input: java.io.InputStream);
			static class: java.lang.Class<java.io.LineNumberInputStream>;
			/**
			 * 
			 */
			public available(): number;
			/**
			 * Returns the current line number for this stream. Numbering starts at 0.
			 */
			public getLineNumber(): number;
			/**
			 * Sets a mark position in this stream. The parameter readlimit indicates how many bytes can be read before the mark is invalidated. Sending reset() will reposition this stream back to the marked position, provided that readlimit has not been surpassed. The line number count will also be reset to the last marked line number count.
			 * @param readlimit 
			 */
			public mark(readlimit: number): void;
			/**
			 * Reads a single byte from the filtered stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of this stream has been reached.
			 */
			public read(): number;
			/**
			 * Reads at most length bytes from the filtered stream and stores them in the byte array buffer starting at offset. Returns the number of bytes actually read or -1 if no bytes have been read and the end of this stream has been reached.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<number>, offset: number, length: number): number;
			/**
			 * Resets this stream to the last marked location. It also resets the line count to what is was when this stream was marked.
			 */
			public reset(): void;
			/**
			 * Sets the line number of this stream to the specified lineNumber. Note that this may have side effects on the line number associated with the last marked position.
			 * @param lineNumber 
			 */
			public setLineNumber(lineNumber: number): void;
			/**
			 * Skips count number of bytes in this stream. Subsequent calls to read will not return these bytes unless reset is used. This implementation skips byteCount bytes in the filtered stream and increments the line number count whenever line terminator sequences are skipped.
			 * @param byteCount 
			 */
			public skip(byteCount: number): any;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * A specialized OutputStream for class for writing content to an (internal) byte array. As bytes are written to this stream, the byte array may be expanded to hold more bytes. When the writing is considered to be finished, a copy of the byte array can be requested from the class.
		 */
		export class ByteArrayOutputStream extends java.io.OutputStream {
			/**
			 * Constructs a new ByteArrayOutputStream with a default size of 32 bytes. If more than 32 bytes are written to this instance, the underlying byte array will expand.
			 */
			constructor();
			/**
			 * Constructs a new ByteArrayOutputStream with a default size of size bytes. If more than size bytes are written to this instance, the underlying byte array will expand.
			 * @param size 
			 */
			constructor(size: number);
			static class: java.lang.Class<java.io.ByteArrayOutputStream>;
			/**
			 * Closes this stream. This releases system resources used for this stream.
			 */
			public close(): void;
			/**
			 * Resets this stream to the beginning of the underlying byte array. All subsequent writes will overwrite any bytes previously stored in this stream.
			 */
			public reset(): void;
			/**
			 * Returns the total number of bytes written to this stream so far.
			 */
			public size(): number;
			/**
			 * Returns the contents of this ByteArrayOutputStream as a byte array. Any changes made to the receiver after returning will not be reflected in the byte array returned to the caller.
			 */
			public toByteArray(): native.Array<number>;
			/**
			 * Returns the contents of this ByteArrayOutputStream as a string. Any changes made to the receiver after returning will not be reflected in the string returned to the caller.
			 */
			public toString(): string;
			/**
			 * Returns the contents of this ByteArrayOutputStream as a string. Each byte b in this stream is converted to a character c using the following function: c == (char)(((hibyte & 0xff) << 8) | (b & 0xff)). This method is deprecated and either #toString() or #toString(String) should be used.
			 * @param hibyte 
			 */
			public toString(hibyte: number): string;
			/**
			 * Returns the contents of this ByteArrayOutputStream as a string converted according to the encoding declared in charsetName.
			 * @param charsetName 
			 */
			public toString(charsetName: string): string;
			/**
			 * Writes count bytes from the byte array buffer starting at offset index to this stream.
			 * @param buffer 
			 * @param offset 
			 * @param len 
			 */
			public write(buffer: native.Array<number>, offset: number, len: number): void;
			/**
			 * Writes the specified byte oneByte to the OutputStream. Only the low order byte of oneByte is written.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Takes the contents of this stream and writes it to the output stream out.
			 * @param out 
			 */
			public writeTo(out: java.io.OutputStream): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * Receives information from a communications pipe. When two threads want to pass data back and forth, one creates a piped output stream and the other one creates a piped input stream.
		 */
		export class PipedInputStream extends java.io.InputStream {
			/**
			 * Constructs a new unconnected PipedInputStream. The resulting stream must be connected to a PipedOutputStream before data may be read from it.
			 */
			constructor();
			/**
			 * Constructs a new PipedInputStream connected to the PipedOutputStream out. Any data written to the output stream can be read from the this input stream.
			 * @param out 
			 */
			constructor(out: java.io.PipedOutputStream);
			/**
			 * Constructs a new unconnected PipedInputStream with the given buffer size. The resulting stream must be connected to a PipedOutputStream before data may be read from it.
			 * @param pipeSize the size of the buffer in bytes.
			 */
			constructor(pipeSize: number);
			/**
			 * Constructs a new PipedInputStream connected to the given PipedOutputStream, with the given buffer size. Any data written to the output stream can be read from this input stream.
			 * @param out the {@code PipedOutputStream} to connect to.
			 * @param pipeSize the size of the buffer in bytes.
			 */
			constructor(out: java.io.PipedOutputStream, pipeSize: number);
			static class: java.lang.Class<java.io.PipedInputStream>;
			/**
			 * 
			 */
			public available(): number;
			/**
			 * Closes this stream. This implementation releases the buffer used for the pipe and notifies all threads waiting to read or write.
			 */
			public close(): void;
			/**
			 * Connects this PipedInputStream to a PipedOutputStream. Any data written to the output stream becomes readable in this input stream.
			 * @param src 
			 */
			public connect(src: java.io.PipedOutputStream): void;
			/**
			 * Establishes the connection to the PipedOutputStream.
			 */
			establishConnection(): void;
			/**
			 * Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of this stream has been reached. If there is no data in the pipe, this method blocks until data is available, the end of the stream is detected or an exception is thrown.
			 */
			public read(): number;
			/**
			 * Reads at most byteCount bytes from this stream and stores them in the byte array bytes starting at offset. Blocks until at least one byte has been read, the end of the stream is detected or an exception is thrown.
			 */
			public read(bytes: native.Array<number>, offset: number, byteCount: number): number;
			/**
			 * Receives a byte and stores it in this stream's buffer. This method is called by PipedOutputStream#write(int). The least significant byte of the integer oneByte is stored at index in in the buffer.
			 * @param oneByte 
			 */
			protected receive(oneByte: number): void;
			done(): void;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Signals a general, I/O-related error. Error details may be specified when calling the constructor, as usual. Note there are also several subclasses of this class for more specific error situations, such as FileNotFoundException or EOFException.
		 */
		export class IOException extends java.lang.Exception {
			/**
			 * Constructs a new IOException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new IOException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new instance of this class with detail message and cause filled in.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new instance of this class with its detail cause filled in.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.io.IOException>;
		}
		/**
		 * Wraps an existing InputStream and reads big-endian typed data from it. Typically, this stream has been written by a DataOutputStream. Types that can be read include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and strings encoded in DataInput modified UTF-8.
		 */
		export class DataInputStream extends java.io.FilterInputStream implements java.io.IDataInput {
			/**
			 * Constructs a new DataInputStream on the InputStream in. All reads are then filtered through this stream. Note that data read by this stream is not in a human readable format and was most likely created by a DataOutputStream.
			 * @param input in
			 */
			constructor(input: java.io.InputStream);
			static class: java.lang.Class<java.io.DataInputStream>;
			public read(buffer: native.Array<number>): number;
			/**
			 * Reads at most length bytes from this stream and stores them in the byte array buffer starting at offset. Returns the number of bytes that have been read or -1 if no bytes have been read and the end of the stream has been reached.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<number>, offset: number, length: number): number;
			public readBoolean(): boolean;
			public readByte(): number;
			public readChar(): string;
			public readDouble(): any;
			public readFloat(): number;
			public readFully(dst: native.Array<number>): void;
			public readFully(dst: native.Array<number>, offset: number, byteCount: number): void;
			public readInt(): number;
			public readLine(): string;
			public readLong(): any;
			public readShort(): number;
			public readUnsignedByte(): number;
			public readUnsignedShort(): number;
			public readUTF(): string;
			decodeUTF(utfSize: number): string;
			public static readUTF(input: java.io.IDataInput): string;
			/**
			 * Skips count number of bytes in this stream. Subsequent read()s will not return these bytes unless reset() is used.
			 * @param count 
			 */
			public skipBytes(count: number): number;
			/**
			 * Reads a single byte from the filtered stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of this stream has been reached.
			 */
			read(): number;
		}
		/**
		 * The top level class for character conversion exceptions.
		 */
		export class CharConversionException extends java.io.IOException {
			/**
			 * Constructs a new CharConversionException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new CharConversionException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.CharConversionException>;
		}
		/**
		 * Wraps a Unix file descriptor. It's possible to get the file descriptor used by some classes (such as FileInputStream, FileOutputStream, and RandomAccessFile), and then create new streams that point to the same file descriptor.
		 */
		export class FileDescriptor extends java.lang.Object {
			/**
			 * Constructs a new invalid FileDescriptor.
			 */
			constructor();
			/**
			 * Corresponds to stdin.
			 */
			static in: java.io.FileDescriptor;
			/**
			 * Corresponds to stdout.
			 */
			static out: java.io.FileDescriptor;
			/**
			 * Corresponds to stderr.
			 */
			static err: java.io.FileDescriptor;
			static class: java.lang.Class<java.io.FileDescriptor>;
			/**
			 * Ensures that data which is buffered within the underlying implementation is written out to the appropriate device before returning.
			 */
			public sync(): void;
			/**
			 * Tests whether this FileDescriptor is valid.
			 */
			public valid(): boolean;
			public toString(): string;
		}
		/**
		 * Signals that an incorrectly encoded UTF-8 string has been encountered, most likely while reading some DataInputStream.
		 */
		export class UTFDataFormatException extends java.io.IOException {
			/**
			 * Constructs a new UTFDataFormatException with its stack trace filled in.
			 */
			constructor();
			/**
			 * Constructs a new UTFDataFormatException with its stack trace and detail message filled in.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.io.UTFDataFormatException>;
		}
		/**
		 * A specialized Reader for reading the contents of a char array.
		 */
		export class CharArrayReader extends java.io.Reader {
			/**
			 * Constructs a CharArrayReader on the char array buf. The size of the reader is set to the length of the buffer and the object to to read from is set to buf.
			 * @param buf 
			 */
			constructor(buf: native.Array<string>);
			/**
			 * Constructs a CharArrayReader on the char array buf. The size of the reader is set to length and the start position from which to read the buffer is set to offset.
			 * @param buf 
			 * @param offset 
			 * @param length 
			 */
			constructor(buf: native.Array<string>, offset: number, length: number);
			static class: java.lang.Class<java.io.CharArrayReader>;
			/**
			 * This method closes this CharArrayReader. Once it is closed, you can no longer read from it. Only the first invocation of this method has any effect.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this reader. The parameter readLimit is ignored for CharArrayReaders. Calling reset() will reposition the reader back to the marked position provided the mark has not been invalidated.
			 * @param readLimit 
			 */
			public mark(readLimit: number): void;
			/**
			 * Indicates whether this reader supports the mark() and reset() methods.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if no more characters are available from this reader.
			 */
			public read(): number;
			/**
			 * Reads at most count characters from this CharArrayReader and stores them at offset in the character array buf. Returns the number of characters actually read or -1 if the end of reader was encountered.
			 * @param buffer 
			 * @param offset 
			 * @param len 
			 */
			public read(buffer: native.Array<string>, offset: number, len: number): number;
			/**
			 * Indicates whether this reader is ready to be read without blocking. Returns true if the next read will not block. Returns false if this reader may or may not block when read is called. The implementation in CharArrayReader always returns true even when it has been closed.
			 */
			public ready(): boolean;
			/**
			 * Resets this reader's position to the last mark() location. Invocations of read() and skip() will occur from this new location. If this reader has not been marked, it is reset to the beginning of the string.
			 */
			public reset(): void;
			/**
			 * Skips charCount characters in this reader. Subsequent calls to read will not return these characters unless reset is used. This method does nothing and returns 0 if charCount <= 0.
			 */
			public skip(charCount: number): any;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Concatenates two or more existing InputStreams. Reads are taken from the first stream until it ends, then the next stream is used, until the last stream returns end of file.
		 */
		export class SequenceInputStream extends java.io.InputStream {
			/**
			 * Constructs a new SequenceInputStream using the two streams s1 and s2 as the sequence of streams to read from.
			 * @param s1 
			 * @param s2 
			 */
			constructor(s1: java.io.InputStream, s2: java.io.InputStream);
			/**
			 * Constructs a new SequenceInputStream using the elements returned from Enumeration e as the stream sequence. The instances returned by e.nextElement() must be of type InputStream.
			 * @param e 
			 */
			constructor(e: java.util.IEnumeration<any>);
			static class: java.lang.Class<java.io.SequenceInputStream>;
			public available(): number;
			/**
			 * Closes all streams in this sequence of input stream.
			 */
			public close(): void;
			/**
			 * Reads a single byte from this sequence of input streams and returns it as an integer in the range from 0 to 255. It tries to read from the current stream first; if the end of this stream has been reached, it reads from the next one. Blocks until one byte has been read, the end of the last input stream in the sequence has been reached, or an exception is thrown.
			 */
			public read(): number;
			/**
			 * Reads at most count bytes from this sequence of input streams and stores them in the byte array buffer starting at offset. Blocks only until at least 1 byte has been read, the end of the stream has been reached, or an exception is thrown.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public read(buffer: native.Array<number>, offset: number, count: number): number;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Defines an interface for classes that are able to read big-endian typed data from some source. Typically, this data has been written by a class which implements DataOutput. Types that can be read include byte, 16-bit short, 32-bit int, 32-bit float, 64-bit long, 64-bit double, byte strings, and MUTF-8 strings.
		 */
		interface IDataInput {
			/**
			 * Reads a boolean.
			 */
			readBoolean(): boolean;
			/**
			 * Reads an 8-bit byte value.
			 */
			readByte(): number;
			/**
			 * Reads a big-endian 16-bit character value.
			 */
			readChar(): string;
			/**
			 * Reads a big-endian 64-bit double value.
			 */
			readDouble(): any;
			/**
			 * Reads a big-endian 32-bit float value.
			 */
			readFloat(): number;
			/**
			 * Equivalent to readFully(dst, 0, dst.length);.
			 */
			readFully(dst: native.Array<number>): void;
			/**
			 * Reads byteCount bytes from this stream and stores them in the byte array dst starting at offset. If byteCount is zero, then this method returns without reading any bytes. Otherwise, this method blocks until byteCount bytes have been read. If insufficient bytes are available, EOFException is thrown. If an I/O error occurs, IOException is thrown. When an exception is thrown, some bytes may have been consumed from the stream and written into the array.
			 * @param dst 
			 * @param offset 
			 * @param byteCount 
			 */
			readFully(dst: native.Array<number>, offset: number, byteCount: number): void;
			/**
			 * Reads a big-endian 32-bit integer value.
			 */
			readInt(): number;
			/**
			 * Returns a string containing the next line of text available from this stream. A line is made of zero or more characters followed by '\n', '\r', "\r\n" or the end of the stream. The string does not include the newline sequence.
			 */
			readLine(): string;
			/**
			 * Reads a big-endian 64-bit long value.
			 */
			readLong(): any;
			/**
			 * Reads a big-endian 16-bit short value.
			 */
			readShort(): number;
			/**
			 * Reads an unsigned 8-bit byte value and returns it as an int.
			 */
			readUnsignedByte(): number;
			/**
			 * Reads a big-endian 16-bit unsigned short value and returns it as an int.
			 */
			readUnsignedShort(): number;
			/**
			 * Reads a string encoded with DataInput modified UTF-8.
			 */
			readUTF(): string;
			/**
			 * Skips count number of bytes. This method will not throw an EOFException if the end of the input is reached before count bytes where skipped.
			 * @param count 
			 */
			skipBytes(count: number): number;
		}
		/**
		 * This error is thrown when a severe I/O error has happened.
		 */
		export class IOError extends java.lang.Error {
			/**
			 * Constructs a new instance with its cause filled in.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.io.IOError>;
		}
		/**
		 * Wraps an existing Reader and <em>buffers</em> the input. Expensive interaction with the underlying reader is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when filling that buffer, but this is usually outweighed by the performance benefits.
		 */
		export class BufferedReader extends java.io.Reader {
			/**
			 * Constructs a new BufferedReader, providing in with a buffer of 8192 characters.
			 * @param input in the {@code Reader} the buffer reads from.
			 */
			constructor(input: java.io.Reader);
			/**
			 * Constructs a new BufferedReader, providing in with size characters of buffer.
			 * @param input in the {@code InputStream} the buffer reads from.
			 * @param size the size of buffer in characters.
			 */
			constructor(input: java.io.Reader, size: number);
			static class: java.lang.Class<java.io.BufferedReader>;
			/**
			 * Closes this reader. This implementation closes the buffered source reader and releases the buffer. Nothing is done if this reader has already been closed.
			 */
			public close(): void;
			/**
			 * Sets a mark position in this reader. The parameter markLimit indicates how many characters can be read before the mark is invalidated. Calling reset() will reposition the reader back to the marked position if markLimit has not been surpassed.
			 * @param markLimit 
			 */
			public mark(markLimit: number): void;
			/**
			 * Indicates whether this reader supports the mark() and reset() methods. This implementation returns true.
			 */
			public markSupported(): boolean;
			/**
			 * Reads a single character from this reader and returns it with the two higher-order bytes set to 0. If possible, BufferedReader returns a character from the buffer. If there are no characters available in the buffer, it fills the buffer and then returns a character. It returns -1 if there are no more characters in the source reader.
			 */
			public read(): number;
			/**
			 * Reads at most length characters from this reader and stores them at offset in the character array buffer. Returns the number of characters actually read or -1 if the end of the source reader has been reached. If all the buffered characters have been used, a mark has not been set and the requested number of characters is larger than this readers buffer size, BufferedReader bypasses the buffer and simply places the results directly into buffer.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<string>, offset: number, length: number): number;
			/**
			 * Peeks at the next input character, refilling the buffer if necessary. If this character is a newline character ("\n"), it is discarded.
			 */
			chompNewline(): void;
			/**
			 * Returns the next line of text available from this reader. A line is represented by zero or more characters followed by '\n', '\r', "\r\n" or the end of the reader. The string does not include the newline sequence.
			 */
			public readLine(): string;
			/**
			 * Indicates whether this reader is ready to be read without blocking.
			 */
			public ready(): boolean;
			/**
			 * Resets this reader's position to the last mark() location. Invocations of read() and skip() will occur from this new location.
			 */
			public reset(): void;
			/**
			 * Skips byteCount bytes in this stream. Subsequent calls to read will not return these bytes unless reset is used. Skipping characters may invalidate a mark if markLimit is surpassed.
			 * @param byteCount 
			 */
			public skip(byteCount: number): any;
			/**
			 * Reads characters from this reader and stores them in the character array buf starting at offset 0. Returns the number of characters actually read or -1 if the end of the reader has been reached.
			 * @param buf 
			 */
			read(buf: native.Array<string>): number;
			/**
			 * Reads characters and puts them into the target character buffer.
			 * @param target 
			 */
			read(target: java.nio.CharBuffer): number;
		}
		/**
		 * Defines an interface for classes that allow reading serialized objects.
		 */
		interface IObjectInput extends java.io.IDataInput {
			/**
			 * Indicates the number of bytes of primitive data that can be read without blocking.
			 */
			available(): number;
			/**
			 * Closes this stream. Implementations of this method should free any resources used by the stream.
			 */
			close(): void;
			/**
			 * Reads a single byte from this stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of this stream has been reached. Blocks if no input is available.
			 */
			read(): number;
			/**
			 * Reads bytes from this stream into the byte array buffer. Blocks while waiting for input.
			 * @param buffer 
			 */
			read(buffer: native.Array<number>): number;
			/**
			 * Reads at most count bytes from this stream and stores them in byte array buffer starting at offset count. Blocks while waiting for input.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			read(buffer: native.Array<number>, offset: number, count: number): number;
			/**
			 * Reads the next object from this stream.
			 */
			readObject(): any;
			/**
			 * Skips byteCount bytes on this stream. Less than byteCount byte are skipped if the end of this stream is reached before the operation completes.
			 */
			skip(byteCount: number): any;
			/**
			 * Reads a boolean.
			 */
			readBoolean(): boolean;
			/**
			 * Reads an 8-bit byte value.
			 */
			readByte(): number;
			/**
			 * Reads a big-endian 16-bit character value.
			 */
			readChar(): string;
			/**
			 * Reads a big-endian 64-bit double value.
			 */
			readDouble(): any;
			/**
			 * Reads a big-endian 32-bit float value.
			 */
			readFloat(): number;
			/**
			 * Equivalent to readFully(dst, 0, dst.length);.
			 */
			readFully(dst: native.Array<number>): void;
			/**
			 * Reads byteCount bytes from this stream and stores them in the byte array dst starting at offset. If byteCount is zero, then this method returns without reading any bytes. Otherwise, this method blocks until byteCount bytes have been read. If insufficient bytes are available, EOFException is thrown. If an I/O error occurs, IOException is thrown. When an exception is thrown, some bytes may have been consumed from the stream and written into the array.
			 * @param dst 
			 * @param offset 
			 * @param byteCount 
			 */
			readFully(dst: native.Array<number>, offset: number, byteCount: number): void;
			/**
			 * Reads a big-endian 32-bit integer value.
			 */
			readInt(): number;
			/**
			 * Returns a string containing the next line of text available from this stream. A line is made of zero or more characters followed by '\n', '\r', "\r\n" or the end of the stream. The string does not include the newline sequence.
			 */
			readLine(): string;
			/**
			 * Reads a big-endian 64-bit long value.
			 */
			readLong(): any;
			/**
			 * Reads a big-endian 16-bit short value.
			 */
			readShort(): number;
			/**
			 * Reads an unsigned 8-bit byte value and returns it as an int.
			 */
			readUnsignedByte(): number;
			/**
			 * Reads a big-endian 16-bit unsigned short value and returns it as an int.
			 */
			readUnsignedShort(): number;
			/**
			 * Reads a string encoded with DataInput modified UTF-8.
			 */
			readUTF(): string;
			/**
			 * Skips count number of bytes. This method will not throw an EOFException if the end of the input is reached before count bytes where skipped.
			 * @param count 
			 */
			skipBytes(count: number): number;
		}
		/**
		 * A class for turning a character stream into a byte stream. Data written to the target input stream is converted into bytes by either a default or a provided character converter. The default encoding is taken from the "file.encoding" system property. OutputStreamWriter contains a buffer of bytes to be written to target stream and converts these into characters as needed. The buffer size is 8K.
		 */
		export class OutputStreamWriter extends java.io.Writer {
			/**
			 * Constructs a new OutputStreamWriter using out as the target stream to write converted characters to. The default character encoding is used.
			 * @param out 
			 */
			constructor(out: java.io.OutputStream);
			/**
			 * Constructs a new OutputStreamWriter using out as the target stream to write converted characters to and charsetName as the character encoding. If the encoding cannot be found, an UnsupportedEncodingException error is thrown.
			 * @param out 
			 * @param charsetName 
			 */
			constructor(out: java.io.OutputStream, charsetName: string);
			/**
			 * Constructs a new OutputStreamWriter using out as the target stream to write converted characters to and cs as the character encoding.
			 * @param out 
			 * @param cs 
			 */
			constructor(out: java.io.OutputStream, cs: java.nio.charset.Charset);
			/**
			 * Constructs a new OutputStreamWriter using out as the target stream to write converted characters to and charsetEncoder as the character encoder.
			 * @param out 
			 * @param charsetEncoder 
			 */
			constructor(out: java.io.OutputStream, charsetEncoder: java.nio.charset.CharsetEncoder);
			static class: java.lang.Class<java.io.OutputStreamWriter>;
			/**
			 * Closes this writer. This implementation flushes the buffer as well as the target stream. The target stream is then closed and the resources for the buffer and converter are released.
			 */
			public close(): void;
			/**
			 * Flushes this writer. This implementation ensures that all buffered bytes are written to the target stream. After writing the bytes, the target stream is flushed as well.
			 */
			public flush(): void;
			/**
			 * Returns the historical name of the encoding used by this writer to convert characters to bytes, or null if this writer has been closed. Most callers should probably keep track of the String or Charset they passed in; this method may not return the same name.
			 */
			public getEncoding(): string;
			/**
			 * Writes count characters starting at offset in buf to this writer. The characters are immediately converted to bytes by the character converter and stored in a local buffer. If the buffer gets full as a result of the conversion, this writer is flushed.
			 * @param buffer 
			 * @param offset 
			 * @param count 
			 */
			public write(buffer: native.Array<string>, offset: number, count: number): void;
			/**
			 * Writes the character oneChar to this writer. The lowest two bytes of the integer oneChar are immediately converted to bytes by the character converter and stored in a local buffer. If the buffer gets full by converting this character, this writer is flushed.
			 * @param oneChar 
			 */
			public write(oneChar: number): void;
			/**
			 * Writes count characters starting at offset in str to this writer. The characters are immediately converted to bytes by the character converter and stored in a local buffer. If the buffer gets full as a result of the conversion, this writer is flushed.
			 * @param str 
			 * @param offset 
			 * @param count 
			 */
			public write(str: string, offset: number, count: number): void;
			checkError(): boolean;
			/**
			 * Writes the entire character buffer buf to the target.
			 * @param buf 
			 */
			write(buf: native.Array<string>): void;
			/**
			 * Writes the characters from the specified string to the target.
			 * @param str 
			 */
			write(str: string): void;
		}
		/**
		 * Wraps an existing OutputStream and performs some transformation on the output data while it is being written. Transformations can be anything from a simple byte-wise filtering output data to an on-the-fly compression or decompression of the underlying stream. Output streams that wrap another output stream and provide some additional functionality on top of it usually inherit from this class.
		 */
		export class FilterOutputStream extends java.io.OutputStream {
			/**
			 * Constructs a new FilterOutputStream with out as its target stream.
			 * @param out 
			 */
			constructor(out: java.io.OutputStream);
			static class: java.lang.Class<java.io.FilterOutputStream>;
			/**
			 * Closes this stream. This implementation closes the target stream.
			 */
			public close(): void;
			/**
			 * Ensures that all pending data is sent out to the target stream. This implementation flushes the target stream.
			 */
			public flush(): void;
			/**
			 * Writes count bytes from the byte array buffer starting at offset to the target stream.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public write(buffer: native.Array<number>, offset: number, length: number): void;
			/**
			 * Writes one byte to the target stream. Only the low order byte of the integer oneByte is written.
			 * @param oneByte 
			 */
			public write(oneByte: number): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * An EmulatedFieldsForDumping is an object that represents a set of emulated fields for an object being dumped. It is a concrete implementation for ObjectOutputStream.PutField
		 */
		export class EmulatedFieldsForDumping extends java.io.ObjectOutputStream.PutField {
			static class: java.lang.Class<java.io.EmulatedFieldsForDumping>;
			/**
			 * Return the actual EmulatedFields instance used by the receiver. We have the actual work in a separate class so that the code can be shared. The receiver has to be of a subclass of PutField.
			 */
			emulatedFields(): java.io.EmulatedFields;
			/**
			 * Find and set the byte value of a given field named <code>name</code> in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: number): void;
			/**
			 * Find and set the char value of a given field named <code>name</code> in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: string): void;
			/**
			 * Find and set the Object value of a given field named <code>name</code> in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: any): void;
			/**
			 * Find and set the boolean value of a given field named <code>name</code> in the receiver.
			 * @param name 
			 * @param value 
			 */
			public put(name: string, value: boolean): void;
			/**
			 * Write the field values to the specified ObjectOutput.
			 * @param output 
			 */
			public write(output: java.io.IObjectOutput): void;
		}
		/**
		 * The base class for all writers. A writer is a means of writing data to a target in a character-wise manner. Most output streams expect the #flush() method to be called before closing the stream, to ensure all data is actually written out.
		 */
		export class Writer extends java.lang.Object implements java.lang.IAppendable, java.io.ICloseable, java.io.IFlushable {
			static class: java.lang.Class<java.io.Writer>;
			/**
			 * Closes this writer. Implementations of this method should free any resources associated with the writer.
			 */
			public close(): void;
			/**
			 * Flushes this writer. Implementations of this method should ensure that all buffered characters are written to the target.
			 */
			public flush(): void;
			/**
			 * Writes the entire character buffer buf to the target.
			 * @param buf 
			 */
			public write(buf: native.Array<string>): void;
			/**
			 * Writes count characters starting at offset in buf to the target.
			 * @param buf 
			 * @param offset 
			 * @param count 
			 */
			public write(buf: native.Array<string>, offset: number, count: number): void;
			/**
			 * Writes one character to the target. Only the two least significant bytes of the integer oneChar are written.
			 * @param oneChar 
			 */
			public write(oneChar: number): void;
			/**
			 * Writes the characters from the specified string to the target.
			 * @param str 
			 */
			public write(str: string): void;
			/**
			 * Writes count characters from str starting at offset to the target.
			 * @param str 
			 * @param offset 
			 * @param count 
			 */
			public write(str: string, offset: number, count: number): void;
			/**
			 * Appends the character c to the target. This method works the same way as #write(int).
			 * @param c 
			 */
			public append(c: string): java.io.Writer;
			/**
			 * Appends a subsequence of the character sequence csq to the target. This method works the same way as Writer.writer(csq.subsequence(start, end).toString()). If csq is null, then the specified subsequence of the string "null" will be written to the target.
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			public append(csq: string, start: number, end: number): java.io.Writer;
			/**
			 * Returns true if this writer has encountered and suppressed an error. Used by PrintWriters as an alternative to checked exceptions.
			 */
			checkError(): boolean;
		}
		/**
		 * A specialized InputStream that is able to read (deserialize) Java objects as well as primitive data types (int, byte, char etc.). The data has typically been saved using an ObjectOutputStream.
		 */
		export class ObjectInputStream extends java.io.InputStream implements java.io.IObjectInput, java.io.IObjectStreamConstants {
			/**
			 * Constructs a new ObjectInputStream that reads from the InputStream input.
			 * @param input 
			 */
			constructor(input: java.io.InputStream);
			static class: java.lang.Class<java.io.ObjectInputStream>;
			public available(): number;
			/**
			 * Closes this stream. This implementation closes the source stream.
			 */
			public close(): void;
			/**
			 * Default method to read objects from this stream. Serializable fields defined in the object's class and superclasses are read from the source stream.
			 */
			public defaultReadObject(): void;
			/**
			 * Enables object replacement for this stream. By default this is not enabled. Only trusted subclasses (loaded with system class loader) are allowed to change this status.
			 * @param enable 
			 */
			protected enableResolveObject(enable: boolean): boolean;
			/**
			 * Reads a single byte from the source stream and returns it as an integer in the range from 0 to 255. Returns -1 if the end of the source stream has been reached. Blocks if no input is available.
			 */
			public read(): number;
			/**
			 * Reads at most length bytes from the source stream and stores them in byte array buffer starting at offset count. Blocks until count bytes have been read, the end of the source stream is detected or an exception is thrown.
			 * @param buffer 
			 * @param offset 
			 * @param length 
			 */
			public read(buffer: native.Array<number>, offset: number, length: number): number;
			/**
			 * Reads a boolean from the source stream.
			 */
			public readBoolean(): boolean;
			/**
			 * Reads a byte (8 bit) from the source stream.
			 */
			public readByte(): number;
			/**
			 * Reads a character (16 bit) from the source stream.
			 */
			public readChar(): string;
			/**
			 * Reads a double (64 bit) from the source stream.
			 */
			public readDouble(): any;
			/**
			 * Reads the persistent fields of the object that is currently being read from the source stream. The values read are stored in a GetField object that provides access to the persistent fields. This GetField object is then returned.
			 */
			public readFields(): java.io.ObjectInputStream.GetField;
			/**
			 * Reads a float (32 bit) from the source stream.
			 */
			public readFloat(): number;
			/**
			 * Reads bytes from the source stream into the byte array dst. This method will block until dst.length bytes have been read.
			 * @param dst 
			 */
			public readFully(dst: native.Array<number>): void;
			/**
			 * Reads byteCount bytes from the source stream into the byte array dst.
			 * @param dst 
			 * @param offset 
			 * @param byteCount 
			 */
			public readFully(dst: native.Array<number>, offset: number, byteCount: number): void;
			/**
			 * Reads an integer (32 bit) from the source stream.
			 */
			public readInt(): number;
			/**
			 * Reads the next line from the source stream. Lines are terminated by '\r', '\n', "\r\n" or an EOF.
			 */
			public readLine(): string;
			/**
			 * Reads a long (64 bit) from the source stream.
			 */
			public readLong(): any;
			/**
			 * Reads a class descriptor from the source stream.
			 */
			protected readClassDescriptor(): java.io.ObjectStreamClass;
			/**
			 * Creates the proxy class that implements the interfaces specified in interfaceNames.
			 * @param interfaceNames 
			 */
			protected resolveProxyClass(interfaceNames: native.Array<string>): java.lang.Class<any>;
			/**
			 * Reads the next object from the source stream.
			 */
			public readObject(): any;
			/**
			 * Reads the next unshared object from the source stream.
			 */
			public readUnshared(): any;
			/**
			 * Method to be overridden by subclasses to read the next object from the source stream.
			 */
			protected readObjectOverride(): any;
			/**
			 * Reads a short (16 bit) from the source stream.
			 */
			public readShort(): number;
			/**
			 * Reads and validates the ObjectInputStream header from the source stream.
			 */
			protected readStreamHeader(): void;
			/**
			 * Reads an unsigned byte (8 bit) from the source stream.
			 */
			public readUnsignedByte(): number;
			/**
			 * Reads an unsigned short (16 bit) from the source stream.
			 */
			public readUnsignedShort(): number;
			/**
			 * Reads a string encoded in DataInput modified UTF-8 from the source stream.
			 */
			public readUTF(): string;
			/**
			 * Registers a callback for post-deserialization validation of objects. It allows to perform additional consistency checks before the readObject() method of this class returns its result to the caller. This method can only be called from within the readObject() method of a class that implements "special" deserialization rules. It can be called multiple times. Validation callbacks are then done in order of decreasing priority, defined by priority.
			 * @param object 
			 * @param priority 
			 */
			public registerValidation(object: java.io.IObjectInputValidation, priority: number): void;
			/**
			 * Loads the Java class corresponding to the class descriptor osClass that has just been read from the source stream.
			 * @param osClass 
			 */
			protected resolveClass(osClass: java.io.ObjectStreamClass): java.lang.Class<any>;
			/**
			 * Allows trusted subclasses to substitute the specified original object with a new object. Object substitution has to be activated first with calling enableResolveObject(true). This implementation just returns object.
			 * @param object 
			 */
			protected resolveObject(object: any): any;
			/**
			 * Skips length bytes on the source stream. This method should not be used to skip bytes at any arbitrary position, just when reading primitive data types (int, char etc).
			 * @param length 
			 */
			public skipBytes(length: number): number;
			/**
			 * Reads bytes from this stream into the byte array buffer. Blocks while waiting for input.
			 * @param buffer 
			 */
			read(buffer: native.Array<number>): number;
			/**
			 * Skips byteCount bytes on this stream. Less than byteCount byte are skipped if the end of this stream is reached before the operation completes.
			 */
			skip(byteCount: number): any;
		}
		export module ObjectInputStream {
			/**
			 * GetField is an inner class that provides access to the persistent fields read from the source stream.
			 */
			export class GetField extends java.lang.Object {
				constructor();
				static class: java.lang.Class<java.io.ObjectInputStream.GetField>;
				/**
				 * Gets the ObjectStreamClass that describes a field.
				 */
				public getObjectStreamClass(): java.io.ObjectStreamClass;
				/**
				 * Indicates if the field identified by name is defaulted. This means that it has no value in this stream.
				 * @param name 
				 */
				public defaulted(name: string): boolean;
				/**
				 * Gets the value of the boolean field identified by name from the persistent field.
				 * @param name 
				 * @param defaultValue 
				 */
				public get(name: string, defaultValue: boolean): boolean;
				/**
				 * Gets the value of the character field identified by name from the persistent field.
				 * @param name 
				 * @param defaultValue 
				 */
				public get(name: string, defaultValue: string): string;
				/**
				 * Gets the value of the byte field identified by name from the persistent field.
				 * @param name 
				 * @param defaultValue 
				 */
				public get(name: string, defaultValue: number): number;
				/**
				 * Gets the value of the object field identified by name from the persistent field.
				 * @param name 
				 * @param defaultValue 
				 */
				public get(name: string, defaultValue: any): any;
			}
			export class InputValidationDesc extends java.lang.Object {
				static class: java.lang.Class<java.io.ObjectInputStream.InputValidationDesc>;
			}
		}
	}
	export module beans {
		/**
		 * A PropertyChangeListener can subscribe with a event source. Whenever that source raises a PropertyChangeEvent this listener will get notified.
		 */
		interface IPropertyChangeListener extends java.util.IEventListener {
			/**
			 * The source bean calls this method when an event is raised.
			 * @param event 
			 */
			propertyChange(event: java.beans.PropertyChangeEvent): void;
		}
		/**
		 * An event that indicates that a constraint or a boundary of a property has changed.
		 */
		export class PropertyChangeEvent extends java.util.EventObject {
			/**
			 * The constructor used to create a new PropertyChangeEvent.
			 * @param source 
			 * @param propertyName 
			 * @param oldValue 
			 * @param newValue 
			 */
			constructor(source: any, propertyName: string, oldValue: any, newValue: any);
			static class: java.lang.Class<java.beans.PropertyChangeEvent>;
			/**
			 * Returns the name of the property that has changed. If an unspecified set of properties has changed it returns null.
			 */
			public getPropertyName(): string;
			/**
			 * Sets the propagationId object.
			 */
			public setPropagationId(propagationId: any): void;
			/**
			 * Returns the propagationId object. This is reserved for future use. Beans 1.0 demands that a listener receiving this property and then sending its own PropertyChangeEvent sets the received propagationId on the new PropertyChangeEvent's propagationId field.
			 */
			public getPropagationId(): any;
			/**
			 * Returns the old value that the property had. If the old value is unknown this method returns null.
			 */
			public getOldValue(): any;
			/**
			 * Returns the new value that the property now has. If the new value is unknown this method returns null.
			 */
			public getNewValue(): any;
		}
		/**
		 * A PropertyChangeListener can subscribe with a event source. Whenever that source raises a PropertyChangeEvent this listener will get notified.
		 */
		export class PropertyChangeListener implements java.util.IEventListener, java.beans.IPropertyChangeListener {
			constructor(implementation: java.beans.IPropertyChangeListener);
			/**
			 * The source bean calls this method when an event is raised.
			 * @param event 
			 */
			public propertyChange(event: java.beans.PropertyChangeEvent): void;
		}
		/**
		 * Manages a list of listeners to be notified when a property changes. Listeners subscribe to be notified of all property changes, or of changes to a single named property.
		 */
		export class PropertyChangeSupport extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Creates a new instance that uses the source bean as source for any event.
			 * @param sourceBean 
			 */
			constructor(sourceBean: any);
			static class: java.lang.Class<java.beans.PropertyChangeSupport>;
			/**
			 * Fires a PropertyChangeEvent with the given name, old value and new value. As source the bean used to initialize this instance is used. If the old value and the new value are not null and equal the event will not be fired.
			 * @param propertyName 
			 * @param oldValue 
			 * @param newValue 
			 */
			public firePropertyChange(propertyName: string, oldValue: any, newValue: any): void;
			/**
			 * Fires an IndexedPropertyChangeEvent with the given name, old value, new value and index. As source the bean used to initialize this instance is used. If the old value and the new value are not null and equal the event will not be fired.
			 * @param propertyName 
			 * @param index 
			 * @param oldValue 
			 * @param newValue 
			 */
			public fireIndexedPropertyChange(propertyName: string, index: number, oldValue: any, newValue: any): void;
			/**
			 * Unsubscribes listener from change notifications for the property named propertyName. If multiple subscriptions exist for listener, it will receive one fewer notifications when the property changes. If the property name or listener is null or not subscribed, this method silently does nothing.
			 */
			public removePropertyChangeListener(propertyName: string, listener: java.beans.IPropertyChangeListener): void;
			/**
			 * Subscribes listener to change notifications for the property named propertyName. If the listener is already subscribed, it will receive an additional notification when the property changes. If the property name or listener is null, this method silently does nothing.
			 */
			public addPropertyChangeListener(propertyName: string, listener: java.beans.IPropertyChangeListener): void;
			/**
			 * Returns the subscribers to be notified when propertyName changes. This includes both listeners subscribed to all property changes and listeners subscribed to the named property only.
			 */
			public getPropertyChangeListeners(propertyName: string): native.Array<java.beans.IPropertyChangeListener>;
			/**
			 * Fires a property change of a boolean property with the given name. If the old value and the new value are not null and equal the event will not be fired.
			 * @param propertyName 
			 * @param oldValue 
			 * @param newValue 
			 */
			public firePropertyChange(propertyName: string, oldValue: boolean, newValue: boolean): void;
			/**
			 * Fires a property change of a boolean property with the given name. If the old value and the new value are not null and equal the event will not be fired.
			 * @param propertyName 
			 * @param index 
			 * @param oldValue 
			 * @param newValue 
			 */
			public fireIndexedPropertyChange(propertyName: string, index: number, oldValue: boolean, newValue: boolean): void;
			/**
			 * Fires a property change of an integer property with the given name. If the old value and the new value are not null and equal the event will not be fired.
			 * @param propertyName 
			 * @param oldValue 
			 * @param newValue 
			 */
			public firePropertyChange(propertyName: string, oldValue: number, newValue: number): void;
			/**
			 * Fires a property change of an integer property with the given name. If the old value and the new value are not null and equal the event will not be fired.
			 * @param propertyName 
			 * @param index 
			 * @param oldValue 
			 * @param newValue 
			 */
			public fireIndexedPropertyChange(propertyName: string, index: number, oldValue: number, newValue: number): void;
			/**
			 * Returns true if there are listeners registered to the property with the given name.
			 * @param propertyName 
			 */
			public hasListeners(propertyName: string): boolean;
			/**
			 * Unsubscribes listener from change notifications for all properties. If the listener has multiple subscriptions, it will receive one fewer notification when properties change. If the property name or listener is null or not subscribed, this method silently does nothing.
			 */
			public removePropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
			/**
			 * Subscribes listener to change notifications for all properties. If the listener is already subscribed, it will receive an additional notification. If the listener is null, this method silently does nothing.
			 */
			public addPropertyChangeListener(listener: java.beans.IPropertyChangeListener): void;
			/**
			 * Returns all subscribers. This includes both listeners subscribed to all property changes and listeners subscribed to a single property.
			 */
			public getPropertyChangeListeners(): native.Array<java.beans.IPropertyChangeListener>;
			/**
			 * Publishes a property change event to all listeners of that property. If the event's old and new values are equal (but non-null), no event will be published.
			 */
			public firePropertyChange(event: java.beans.PropertyChangeEvent): void;
		}
		/**
		 * A type of PropertyChangeEvent that indicates that an indexed property has changed.
		 */
		export class IndexedPropertyChangeEvent extends java.beans.PropertyChangeEvent {
			/**
			 * Creates a new property changed event with an indication of the property index.
			 * @param source 
			 * @param propertyName 
			 * @param oldValue 
			 * @param newValue 
			 * @param index 
			 */
			constructor(source: any, propertyName: string, oldValue: any, newValue: any, index: number);
			static class: java.lang.Class<java.beans.IndexedPropertyChangeEvent>;
			/**
			 * Returns the index of the property that was changed in this event.
			 */
			public getIndex(): number;
		}
		/**
		 * The implementation of this listener proxy just delegates the received events to its listener.
		 */
		export class PropertyChangeListenerProxy extends java.util.EventListenerProxy implements java.beans.IPropertyChangeListener {
			/**
			 * Creates a new listener proxy that associates a listener with a property name.
			 * @param propertyName 
			 * @param listener 
			 */
			constructor(propertyName: string, listener: java.beans.IPropertyChangeListener);
			static class: java.lang.Class<java.beans.PropertyChangeListenerProxy>;
			/**
			 * Returns the name of the property associated with this listener proxy.
			 */
			public getPropertyName(): string;
			public propertyChange(event: java.beans.PropertyChangeEvent): void;
		}
	}
	export module math {
		/**
		 * Static library that provides all multiplication of BigInteger methods.
		 */
		export class Multiplication extends java.lang.Object {
			static class: java.lang.Class<java.math.Multiplication>;
			/**
			 * Multiplies a number by a positive integer.
			 * @param val an arbitrary {@code BigInteger}
			 * @param factor a positive {@code int} number
			 */
			static multiplyByPositiveInt(val: java.math.BigInteger, factor: number): java.math.BigInteger;
			/**
			 * Multiplies a number by a power of ten. This method is used in BigDecimal class.
			 * @param val the number to be multiplied
			 * @param exp a positive {@code long} exponent
			 */
			static multiplyByTenPow(val: java.math.BigInteger, exp: number): java.math.BigInteger;
			/**
			 * It calculates a power of ten, which exponent could be out of 32-bit range. Note that internally this method will be used in the worst case with an exponent equals to: Integer.MAX_VALUE - Integer.MIN_VALUE.
			 * @param exp the exponent of power of ten, it must be positive.
			 */
			static powerOf10(exp: number): java.math.BigInteger;
			/**
			 * Multiplies a number by a power of five. This method is used in BigDecimal class.
			 * @param val the number to be multiplied
			 * @param exp a positive {@code int} exponent
			 */
			static multiplyByFivePow(val: java.math.BigInteger, exp: number): java.math.BigInteger;
		}
		/**
		 * Specifies the rounding behavior for operations whose results cannot be represented exactly.
		 */
		export enum RoundingMode {
			UP,
			DOWN,
			CEILING,
			FLOOR,
			HALF_UP,
			HALF_DOWN,
			HALF_EVEN,
			UNNECESSARY
		}
		export module RoundingMode {
			/**
			 * Converts rounding mode constants from class BigDecimal into RoundingMode values.
			 * @param mode 
			 */
			export function valueOf(mode: number): java.math.RoundingMode;
		}
		export class BigInt extends java.lang.Object {
			static class: java.lang.Class<java.math.BigInt>;
			protected finalize(): void;
			public toString(): string;
			getNativeBIGNUM(): number;
			static consumeErrors(sb: java.lang.StringBuilder): number;
			static cmp(a: java.math.BigInt, b: java.math.BigInt): number;
			putCopy(from: java.math.BigInt): void;
			copy(): java.math.BigInt;
			putLongInt(val: number): void;
			putULongInt(val: number, neg: boolean): void;
			putDecString(original: string): void;
			putHexString(original: string): void;
			/**
			 * Returns a string suitable for passing to OpenSSL. Throws if 's' doesn't match Java's rules for valid BigInteger strings. BN_dec2bn and BN_hex2bn do very little checking, so we need to manually ensure we comply with Java's rules. http://code.google.com/p/android/issues/detail?id=7036
			 */
			checkString(s: string, base: number): string;
			putBigEndian(a: native.Array<number>, neg: boolean): void;
			putLittleEndianInts(a: native.Array<number>, neg: boolean): void;
			putBigEndianTwosComplement(a: native.Array<number>): void;
			longInt(): any;
			decString(): string;
			hexString(): string;
			bigEndianMagnitude(): native.Array<number>;
			littleEndianIntsMagnitude(): native.Array<number>;
			sign(): number;
			setSign(val: number): void;
			twosCompFitsIntoBytes(desiredByteCount: number): boolean;
			bitLength(): number;
			isBitSet(n: number): boolean;
			static shift(a: java.math.BigInt, n: number): java.math.BigInt;
			shift(n: number): void;
			addPositiveInt(w: number): void;
			multiplyByPositiveInt(w: number): void;
			static remainderByPositiveInt(a: java.math.BigInt, w: number): number;
			static addition(a: java.math.BigInt, b: java.math.BigInt): java.math.BigInt;
			add(a: java.math.BigInt): void;
			static subtraction(a: java.math.BigInt, b: java.math.BigInt): java.math.BigInt;
			static gcd(a: java.math.BigInt, b: java.math.BigInt): java.math.BigInt;
			static product(a: java.math.BigInt, b: java.math.BigInt): java.math.BigInt;
			static bigExp(a: java.math.BigInt, p: java.math.BigInt): java.math.BigInt;
			static exp(a: java.math.BigInt, p: number): java.math.BigInt;
			static division(dividend: java.math.BigInt, divisor: java.math.BigInt, quotient: java.math.BigInt, remainder: java.math.BigInt): void;
			static modulus(a: java.math.BigInt, m: java.math.BigInt): java.math.BigInt;
			static modExp(a: java.math.BigInt, p: java.math.BigInt, m: java.math.BigInt): java.math.BigInt;
			static modInverse(a: java.math.BigInt, m: java.math.BigInt): java.math.BigInt;
			static generatePrimeDefault(bitLength: number): java.math.BigInt;
			isPrime(certainty: number): boolean;
		}
		/**
		 * The library implements some logical operations over BigInteger. The operations provided are listed below. <ul type="circle"> <li>not</li> <li>and</li> <li>andNot</li> <li>or</li> <li>xor</li> </ul>
		 */
		export class Logical extends java.lang.Object {
			static class: java.lang.Class<java.math.Logical>;
			/**
			 *  BigInteger#not()
			 */
			static not(val: java.math.BigInteger): java.math.BigInteger;
			/**
			 *  BigInteger#and(BigInteger)
			 */
			static and(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static andPositive(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static andDiffSigns(positive: java.math.BigInteger, negative: java.math.BigInteger): java.math.BigInteger;
			static andNegative(longer: java.math.BigInteger, shorter: java.math.BigInteger): java.math.BigInteger;
			/**
			 *  BigInteger#andNot(BigInteger)
			 */
			static andNot(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static andNotPositive(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static andNotPositiveNegative(positive: java.math.BigInteger, negative: java.math.BigInteger): java.math.BigInteger;
			static andNotNegativePositive(negative: java.math.BigInteger, positive: java.math.BigInteger): java.math.BigInteger;
			static andNotNegative(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			/**
			 *  BigInteger#or(BigInteger)
			 */
			static or(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static orPositive(longer: java.math.BigInteger, shorter: java.math.BigInteger): java.math.BigInteger;
			static orNegative(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static orDiffSigns(positive: java.math.BigInteger, negative: java.math.BigInteger): java.math.BigInteger;
			/**
			 *  BigInteger#xor(BigInteger)
			 */
			static xor(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static xorPositive(longer: java.math.BigInteger, shorter: java.math.BigInteger): java.math.BigInteger;
			static xorNegative(val: java.math.BigInteger, that: java.math.BigInteger): java.math.BigInteger;
			static xorDiffSigns(positive: java.math.BigInteger, negative: java.math.BigInteger): java.math.BigInteger;
		}
		/**
		 * An immutable signed integer of arbitrary magnitude.
		 */
		export class BigInteger extends java.lang.Number implements java.io.ISerializable {
			/**
			 * Constructs a random non-negative BigInteger instance in the range [0, pow(2, numBits)-1].
			 * @param numBits maximum length of the new {@code BigInteger} in bits.
			 * @param random is the random number generator to be used.
			 */
			constructor(numBits: number, random: java.util.Random);
			/**
			 * Constructs a random BigInteger instance in the range [0, pow(2, bitLength)-1] which is probably prime. The probability that the returned BigInteger is prime is beyond 1 - 1/pow(2, certainty).
			 * @param bitLength length of the new {@code BigInteger} in bits.
			 * @param certainty tolerated primality uncertainty.
			 * @param unused 
			 */
			constructor(bitLength: number, certainty: number, unused: java.util.Random);
			/**
			 * Constructs a new BigInteger by parsing value. The string representation consists of an optional plus or minus sign followed by a non-empty sequence of decimal digits. Digits are interpreted as if by Character.digit(char,10).
			 * @param value string representation of the new {@code BigInteger}.
			 */
			constructor(value: string);
			/**
			 * Constructs a new BigInteger instance by parsing value. The string representation consists of an optional plus or minus sign followed by a non-empty sequence of digits in the specified radix. Digits are interpreted as if by Character.digit(char, radix).
			 * @param value string representation of the new {@code BigInteger}.
			 * @param radix the base to be used for the conversion.
			 */
			constructor(value: string, radix: number);
			/**
			 * Constructs a new BigInteger instance with the given sign and magnitude.
			 * @param signum sign of the new {@code BigInteger} (-1 for negative, 0 for
			 * @param magnitude magnitude of the new {@code BigInteger} with the most
			 */
			constructor(signum: number, magnitude: native.Array<number>);
			/**
			 * Constructs a new BigInteger from the given two's complement representation. The most significant byte is the entry at index 0. The most significant bit of this entry determines the sign of the new BigInteger instance. The array must be nonempty.
			 * @param value two's complement representation of the new {@code
			 */
			constructor(value: native.Array<number>);
			/**
			 * The BigInteger constant 0.
			 */
			static ZERO: java.math.BigInteger;
			/**
			 * The BigInteger constant 1.
			 */
			static ONE: java.math.BigInteger;
			/**
			 * The BigInteger constant 10.
			 */
			static TEN: java.math.BigInteger;
			static class: java.lang.Class<java.math.BigInteger>;
			/**
			 * Returns the internal native representation of this big integer, computing it if necessary.
			 */
			getBigInt(): java.math.BigInt;
			prepareJavaRepresentation(): void;
			/**
			 * Returns a BigInteger whose value is equal to value.
			 */
			public static valueOf(value: number): java.math.BigInteger;
			/**
			 * Returns the two's complement representation of this BigInteger in a byte array.
			 */
			public toByteArray(): native.Array<number>;
			/**
			 * Returns a BigInteger whose value is the absolute value of this.
			 */
			public abs(): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is the -this.
			 */
			public negate(): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this + value.
			 */
			public add(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this - value.
			 */
			public subtract(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns the sign of this BigInteger.
			 */
			public signum(): number;
			/**
			 * Returns a BigInteger whose value is this >> n. For negative arguments, the result is also negative. The shift distance may be negative which means that this is shifted left.
			 * @param n shift distance
			 */
			public shiftRight(n: number): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this << n. The result is equivalent to this * pow(2, n) if n >= 0. The shift distance may be negative which means that this is shifted right. The result then corresponds to floor(this / pow(2, -n)).
			 * @param n shift distance.
			 */
			public shiftLeft(n: number): java.math.BigInteger;
			shiftLeftOneBit(): java.math.BigInteger;
			/**
			 * Returns the length of the value's two's complement representation without leading zeros for positive numbers / without leading ones for negative values.
			 */
			public bitLength(): number;
			/**
			 * Tests whether the bit at position n in this is set. The result is equivalent to this & pow(2, n) != 0.
			 * @param n position where the bit in {@code this} has to be inspected.
			 */
			public testBit(n: number): boolean;
			/**
			 * Returns a BigInteger which has the same binary representation as this but with the bit at position n set. The result is equivalent to this | pow(2, n).
			 * @param n position where the bit in {@code this} has to be set.
			 */
			public setBit(n: number): java.math.BigInteger;
			/**
			 * Returns a BigInteger which has the same binary representation as this but with the bit at position n cleared. The result is equivalent to this & ~pow(2, n).
			 * @param n position where the bit in {@code this} has to be cleared.
			 */
			public clearBit(n: number): java.math.BigInteger;
			/**
			 * Returns a BigInteger which has the same binary representation as this but with the bit at position n flipped. The result is equivalent to this ^ pow(2, n).
			 * @param n position where the bit in {@code this} has to be flipped.
			 */
			public flipBit(n: number): java.math.BigInteger;
			/**
			 * Returns the position of the lowest set bit in the two's complement representation of this BigInteger. If all bits are zero (this==0) then -1 is returned as result.
			 */
			public getLowestSetBit(): number;
			/**
			 * Returns the number of bits in the two's complement representation of this which differ from the sign bit. If this is negative, the result is equivalent to the number of bits set in the two's complement representation of -this - 1.
			 */
			public bitCount(): number;
			/**
			 * Returns a BigInteger whose value is ~this. The result of this operation is -this-1.
			 */
			public not(): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this & value.
			 * @param value value to be and'ed with {@code this}.
			 */
			public and(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this | value.
			 * @param value value to be or'ed with {@code this}.
			 */
			public or(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this ^ value.
			 * @param value value to be xor'ed with {@code this}
			 */
			public xor(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this & ~value. Evaluating x.andNot(value) returns the same result as x.and(value.not()).
			 * @param value value to be not'ed and then and'ed with {@code this}.
			 */
			public andNot(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns this BigInteger as an int value. If this is too big to be represented as an int, then this % (1 << 32) is returned.
			 */
			public intValue(): number;
			/**
			 * Returns this BigInteger as a long value. If this is too big to be represented as a long, then this % pow(2, 64) is returned.
			 */
			public longValue(): any;
			/**
			 * Returns this BigInteger as a float. If this is too big to be represented as a float, then Float.POSITIVE_INFINITY or Float.NEGATIVE_INFINITY is returned. Note that not all integers in the range [-Float.MAX_VALUE, Float.MAX_VALUE] can be exactly represented as a float.
			 */
			public floatValue(): number;
			/**
			 * Returns this BigInteger as a double. If this is too big to be represented as a double, then Double.POSITIVE_INFINITY or Double.NEGATIVE_INFINITY is returned. Note that not all integers in the range [-Double.MAX_VALUE, Double.MAX_VALUE] can be exactly represented as a double.
			 */
			public doubleValue(): any;
			/**
			 * Compares this BigInteger with value. Returns -1 if this < value, 0 if this == value and 1 if this > value, .
			 * @param value value to be compared with {@code this}.
			 */
			public compareTo(value: java.math.BigInteger): number;
			/**
			 * Returns the minimum of this BigInteger and value.
			 * @param value value to be used to compute the minimum with {@code this}.
			 */
			public min(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns the maximum of this BigInteger and value.
			 * @param value value to be used to compute the maximum with {@code this}
			 */
			public max(value: java.math.BigInteger): java.math.BigInteger;
			public hashCode(): number;
			public equals(x: any): boolean;
			/**
			 * Returns a string representation of this BigInteger in decimal form.
			 */
			public toString(): string;
			/**
			 * Returns a string containing a string representation of this BigInteger with base radix. If radix < Character.MIN_RADIX or radix > Character.MAX_RADIX then a decimal representation is returned. The characters of the string representation are generated with method Character.forDigit.
			 * @param radix base to be used for the string representation.
			 */
			public toString(radix: number): string;
			/**
			 * Returns a BigInteger whose value is greatest common divisor of this and value. If this == 0 and value == 0 then zero is returned, otherwise the result is positive.
			 * @param value value with which the greatest common divisor is computed.
			 */
			public gcd(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this * value.
			 */
			public multiply(value: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is pow(this, exp).
			 */
			public pow(exp: number): java.math.BigInteger;
			/**
			 * Returns a two element BigInteger array containing this / divisor at index 0 and this % divisor at index 1.
			 * @param divisor value by which {@code this} is divided.
			 */
			public divideAndRemainder(divisor: java.math.BigInteger): native.Array<java.math.BigInteger>;
			/**
			 * Returns a BigInteger whose value is this / divisor.
			 * @param divisor value by which {@code this} is divided.
			 */
			public divide(divisor: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this % divisor. Regarding signs this methods has the same behavior as the % operator on ints: the sign of the remainder is the same as the sign of this.
			 * @param divisor value by which {@code this} is divided.
			 */
			public remainder(divisor: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is 1/this mod m. The modulus m must be positive. The result is guaranteed to be in the interval [0, m) (0 inclusive, m exclusive). If this is not relatively prime to m, then an exception is thrown.
			 * @param m the modulus.
			 */
			public modInverse(m: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is pow(this, exponent) mod m. The modulus m must be positive. The result is guaranteed to be in the interval [0, m) (0 inclusive, m exclusive). If the exponent is negative, then pow(this.modInverse(m), -exponent) mod m is computed. The inverse of this only exists if this is relatively prime to m, otherwise an exception is thrown.
			 * @param exponent the exponent.
			 * @param m the modulus.
			 */
			public modPow(exponent: java.math.BigInteger, m: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Returns a BigInteger whose value is this mod m. The modulus m must be positive. The result is guaranteed to be in the interval [0, m) (0 inclusive, m exclusive). The behavior of this function is not equivalent to the behavior of the % operator defined for the built-in int's.
			 * @param m the modulus.
			 */
			public mod(m: java.math.BigInteger): java.math.BigInteger;
			/**
			 * Tests whether this BigInteger is probably prime. If true is returned, then this is prime with a probability beyond 1 - 1/pow(2, certainty). If false is returned, then this is definitely composite. If the argument certainty <= 0, then this method returns true.
			 * @param certainty tolerated primality uncertainty.
			 */
			public isProbablePrime(certainty: number): boolean;
			/**
			 * Returns the smallest integer x > this which is probably prime as a BigInteger instance. The probability that the returned BigInteger is prime is beyond 1 - 1/pow(2, 80).
			 */
			public nextProbablePrime(): java.math.BigInteger;
			/**
			 * Returns a random positive BigInteger instance in the range [0, pow(2, bitLength)-1] which is probably prime. The probability that the returned BigInteger is prime is beyond 1 - 1/pow(2, 80).
			 * @param bitLength length of the new {@code BigInteger} in bits.
			 * @param unused 
			 */
			public static probablePrime(bitLength: number, unused: java.util.Random): java.math.BigInteger;
			static multiplyByInt(res: native.Array<number>, a: native.Array<number>, aSize: number, factor: number): number;
			static inplaceAdd(a: native.Array<number>, aSize: number, addend: number): number;
			getFirstNonzeroDigit(): number;
			/**
			 * Returns a copy of the current instance to achieve immutability
			 */
			copy(): java.math.BigInteger;
		}
		/**
		 * Static library that provides all operations related with division and modular arithmetic to BigInteger. Some methods are provided in both mutable and immutable way. There are several variants provided listed below:
		 */
		export class Division extends java.lang.Object {
			static class: java.lang.Class<java.math.Division>;
			/**
			 * Divides an array by an integer value. Implements the Knuth's division algorithm. See D. Knuth, The Art of Computer Programming, vol. 2.
			 */
			static divideArrayByInt(quotient: native.Array<number>, dividend: native.Array<number>, dividendLength: number, divisor: number): number;
		}
		export class NativeBN extends java.lang.Object {
			static class: java.lang.Class<java.math.NativeBN>;
			public static ERR_get_error(): number;
			public static ERR_error_string(e: number): string;
			public static BN_new(): number;
			public static BN_free(a: number): void;
			public static BN_cmp(a: number, b: number): number;
			public static BN_copy(to: number, from: number): boolean;
			public static putLongInt(a: number, dw: number): boolean;
			public static putULongInt(a: number, dw: number, neg: boolean): boolean;
			public static BN_dec2bn(a: number, str: string): number;
			public static BN_hex2bn(a: number, str: string): number;
			public static BN_bin2bn(s: native.Array<number>, len: number, neg: boolean, ret: number): boolean;
			public static litEndInts2bn(ints: native.Array<number>, len: number, neg: boolean, ret: number): boolean;
			public static twosComp2bn(s: native.Array<number>, len: number, ret: number): boolean;
			public static longInt(a: number): any;
			public static BN_bn2dec(a: number): string;
			public static BN_bn2hex(a: number): string;
			public static BN_bn2bin(a: number): native.Array<number>;
			public static bn2litEndInts(a: number): native.Array<number>;
			public static sign(a: number): number;
			public static BN_set_negative(b: number, n: number): void;
			public static bitLength(a: number): number;
			public static BN_is_bit_set(a: number, n: number): boolean;
			public static modifyBit(a: number, n: number, op: number): boolean;
			public static BN_shift(r: number, a: number, n: number): boolean;
			public static BN_add_word(a: number, w: number): boolean;
			public static BN_sub_word(a: number, w: number): boolean;
			public static BN_mul_word(a: number, w: number): boolean;
			public static BN_div_word(a: number, w: number): number;
			public static BN_mod_word(a: number, w: number): number;
			public static BN_add(r: number, a: number, b: number): boolean;
			public static BN_sub(r: number, a: number, b: number): boolean;
			public static BN_gcd(r: number, a: number, b: number): boolean;
			public static BN_mul(r: number, a: number, b: number): boolean;
			public static BN_exp(r: number, a: number, p: number): boolean;
			public static BN_div(dv: number, rem: number, m: number, d: number): boolean;
			public static BN_nnmod(r: number, a: number, m: number): boolean;
			public static BN_mod_exp(r: number, a: number, p: number, m: number): boolean;
			public static BN_mod_inverse(ret: number, a: number, n: number): boolean;
			public static BN_generate_prime_ex(ret: number, bits: number, safe: boolean, add: number, rem: number, cb: number): boolean;
			public static BN_is_prime_ex(p: number, nchecks: number, cb: number): boolean;
		}
		/**
		 * Static library that provides all the <b>bit level</b> operations for BigInteger. The operations are: <ul type="circle"> <li>Left Shifting</li> <li>Right Shifting</li> <li>Bit clearing</li> <li>Bit setting</li> <li>Bit counting</li> <li>Bit testing</li> <li>Getting of the lowest bit set</li> </ul> All operations are provided in immutable way, and some in both mutable and immutable.
		 */
		export class BitLevel extends java.lang.Object {
			static class: java.lang.Class<java.math.BitLevel>;
			/**
			 *  BigInteger#bitLength()
			 */
			static bitLength(val: java.math.BigInteger): number;
			/**
			 *  BigInteger#bitCount()
			 */
			static bitCount(val: java.math.BigInteger): number;
			/**
			 * Performs a fast bit testing for positive numbers. The bit to to be tested must be in the range [0, val.bitLength()-1]
			 */
			static testBit(val: java.math.BigInteger, n: number): boolean;
			/**
			 * Check if there are 1s in the lowest bits of this BigInteger
			 * @param numberOfBits the number of the lowest bits to check
			 * @param digits 
			 */
			static nonZeroDroppedBits(numberOfBits: number, digits: native.Array<number>): boolean;
			static shiftLeftOneBit(result: native.Array<number>, source: native.Array<number>, srcLen: number): void;
			static shiftLeftOneBit(source: java.math.BigInteger): java.math.BigInteger;
			/**
			 *  BigInteger#shiftRight(int)
			 */
			static shiftRight(source: java.math.BigInteger, count: number): java.math.BigInteger;
			/**
			 * Shifts right an array of integers. Total shift distance in bits is intCount * 32 + count.
			 * @param result 
			 * @param resultLen 
			 * @param source 
			 * @param intCount 
			 * @param count 
			 */
			static shiftRight(result: native.Array<number>, resultLen: number, source: native.Array<number>, intCount: number, count: number): boolean;
			/**
			 * Performs a flipBit on the BigInteger, returning a BigInteger with the the specified bit flipped.
			 */
			static flipBit(val: java.math.BigInteger, n: number): java.math.BigInteger;
		}
		/**
		 * Provides primality probabilistic methods.
		 */
		export class Primality extends java.lang.Object {
			static class: java.lang.Class<java.math.Primality>;
			/**
			 * It uses the sieve of Eratosthenes to discard several composite numbers in some appropriate range (at the moment [this, this + 1024]). After this process it applies the Miller-Rabin test to the numbers that were not discarded in the sieve.
			 */
			static nextProbablePrime(n: java.math.BigInteger): java.math.BigInteger;
		}
		/**
		 * Static library that provides BigInteger base conversion from/to any integer represented in an java.lang.String Object.
		 */
		export class Conversion extends java.lang.Object {
			static class: java.lang.Class<java.math.Conversion>;
			/**
			 *  BigInteger#toString(int)
			 */
			static bigInteger2String(val: java.math.BigInteger, radix: number): string;
			/**
			 * Builds the correspondent String representation of val being scaled by scale.
			 */
			static toDecimalScaledString(val: java.math.BigInteger, scale: number): string;
			static toDecimalScaledString(value: number, scale: number): string;
			static divideLongByBillion(a: number): any;
			/**
			 *  BigInteger#doubleValue()
			 */
			static bigInteger2Double(val: java.math.BigInteger): any;
		}
		/**
		 * Immutable objects describing settings such as rounding mode and digit precision for the numerical operations provided by class BigDecimal.
		 */
		export class MathContext extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new MathContext with the specified precision and with the rounding mode RoundingMode#HALF_UP HALF_UP. If the precision passed is zero, then this implies that the computations have to be performed exact, the rounding mode in this case is irrelevant.
			 * @param precision 
			 */
			constructor(precision: number);
			/**
			 * Constructs a new MathContext with the specified precision and with the specified rounding mode. If the precision passed is zero, then this implies that the computations have to be performed exact, the rounding mode in this case is irrelevant.
			 * @param precision 
			 * @param roundingMode 
			 */
			constructor(precision: number, roundingMode: java.math.RoundingMode);
			/**
			 * Constructs a new MathContext from a string. The string has to specify the precision and the rounding mode to be used and has to follow the following syntax: "precision=&lt;precision&gt; roundingMode=&lt;roundingMode&gt;" This is the same form as the one returned by the #toString method.
			 */
			constructor(s: string);
			/**
			 * A MathContext which corresponds to the <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> quadruple decimal precision format: 34 digit precision and RoundingMode#HALF_EVEN rounding.
			 */
			static DECIMAL128: java.math.MathContext;
			/**
			 * A MathContext which corresponds to the <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> single decimal precision format: 7 digit precision and RoundingMode#HALF_EVEN rounding.
			 */
			static DECIMAL32: java.math.MathContext;
			/**
			 * A MathContext which corresponds to the <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> double decimal precision format: 16 digit precision and RoundingMode#HALF_EVEN rounding.
			 */
			static DECIMAL64: java.math.MathContext;
			/**
			 * A MathContext for unlimited precision with RoundingMode#HALF_UP rounding.
			 */
			static UNLIMITED: java.math.MathContext;
			static class: java.lang.Class<java.math.MathContext>;
			/**
			 * Returns the precision. The precision is the number of digits used for an operation. Results are rounded to this precision. The precision is guaranteed to be non negative. If the precision is zero, then the computations have to be performed exact, results are not rounded in this case.
			 */
			public getPrecision(): number;
			/**
			 * Returns the rounding mode. The rounding mode is the strategy to be used to round results.
			 */
			public getRoundingMode(): java.math.RoundingMode;
			/**
			 * Returns true if x is a MathContext with the same precision setting and the same rounding mode as this MathContext instance.
			 * @param x 
			 */
			public equals(x: any): boolean;
			/**
			 * Returns the hash code for this MathContext instance.
			 */
			public hashCode(): number;
			/**
			 * Returns the string representation for this MathContext instance. The string has the form "precision=<precision> roundingMode=<roundingMode>" where <precision> is an integer describing the number of digits used for operations and <roundingMode> is the string representation of the rounding mode.
			 */
			public toString(): string;
		}
		/**
		 * This class represents immutable integer numbers of arbitrary length. Large numbers are typically used in security applications and therefore BigIntegers offer dedicated functionality like the generation of large prime numbers or the computation of modular inverse.
		 */
		export class BigDecimal extends java.lang.Number implements java.io.ISerializable {
			/**
			 * Constructs a new BigDecimal instance from a string representation given as a character array.
			 * @param input in
			 * @param offset 
			 * @param len 
			 */
			constructor(input: native.Array<string>, offset: number, len: number);
			/**
			 * Constructs a new BigDecimal instance from a string representation given as a character array.
			 * @param input in
			 * @param offset 
			 * @param len 
			 * @param mc 
			 */
			constructor(input: native.Array<string>, offset: number, len: number, mc: java.math.MathContext);
			/**
			 * Constructs a new BigDecimal instance from a string representation given as a character array.
			 * @param input in
			 */
			constructor(input: native.Array<string>);
			/**
			 * Constructs a new BigDecimal instance from a string representation given as a character array. The result is rounded according to the specified math context.
			 * @param input in
			 * @param mc 
			 */
			constructor(input: native.Array<string>, mc: java.math.MathContext);
			/**
			 * Constructs a new BigDecimal instance from a string representation.
			 * @param val 
			 */
			constructor(val: string);
			/**
			 * Constructs a new BigDecimal instance from a string representation. The result is rounded according to the specified math context.
			 * @param val 
			 * @param mc 
			 */
			constructor(val: string, mc: java.math.MathContext);
			/**
			 * Constructs a new BigDecimal instance from the 64bit double val. The constructed big decimal is equivalent to the given double. For example, new BigDecimal(0.1) is equal to 0.1000000000000000055511151231257827021181583404541015625. This happens as 0.1 cannot be represented exactly in binary.
			 * @param val 
			 */
			constructor(val: number);
			/**
			 * Constructs a new BigDecimal instance from the 64bit double val. The constructed big decimal is equivalent to the given double. For example, new BigDecimal(0.1) is equal to 0.1000000000000000055511151231257827021181583404541015625. This happens as 0.1 cannot be represented exactly in binary.
			 * @param val 
			 * @param mc 
			 */
			constructor(val: number, mc: java.math.MathContext);
			/**
			 * Constructs a new BigDecimal instance from the given big integer val. The scale of the result is 0.
			 * @param val 
			 */
			constructor(val: java.math.BigInteger);
			/**
			 * Constructs a new BigDecimal instance from the given big integer val. The scale of the result is 0.
			 * @param val 
			 * @param mc 
			 */
			constructor(val: java.math.BigInteger, mc: java.math.MathContext);
			/**
			 * Constructs a new BigDecimal instance from a given unscaled value unscaledVal and a given scale. The value of this instance is unscaledVal 10^(-scale).
			 * @param unscaledVal 
			 * @param scale 
			 */
			constructor(unscaledVal: java.math.BigInteger, scale: number);
			/**
			 * Constructs a new BigDecimal instance from a given unscaled value unscaledVal and a given scale. The value of this instance is unscaledVal 10^(-scale). The result is rounded according to the specified math context.
			 * @param unscaledVal 
			 * @param scale 
			 * @param mc 
			 */
			constructor(unscaledVal: java.math.BigInteger, scale: number, mc: java.math.MathContext);
			/**
			 * Rounding mode where positive values are rounded towards positive infinity and negative values towards negative infinity.
			 */
			static ROUND_UP: number;
			/**
			 * Rounding mode where the values are rounded towards zero.
			 */
			static ROUND_DOWN: number;
			/**
			 * Rounding mode to round towards positive infinity. For positive values this rounding mode behaves as #ROUND_UP, for negative values as #ROUND_DOWN.
			 */
			static ROUND_CEILING: number;
			/**
			 * Rounding mode to round towards negative infinity. For positive values this rounding mode behaves as #ROUND_DOWN, for negative values as #ROUND_UP.
			 */
			static ROUND_FLOOR: number;
			/**
			 * Rounding mode where values are rounded towards the nearest neighbor. Ties are broken by rounding up.
			 */
			static ROUND_HALF_UP: number;
			/**
			 * Rounding mode where values are rounded towards the nearest neighbor. Ties are broken by rounding down.
			 */
			static ROUND_HALF_DOWN: number;
			/**
			 * Rounding mode where values are rounded towards the nearest neighbor. Ties are broken by rounding to the even neighbor.
			 */
			static ROUND_HALF_EVEN: number;
			/**
			 * Rounding mode where the rounding operations throws an ArithmeticException for the case that rounding is necessary, i.e. for the case that the value cannot be represented exactly.
			 */
			static ROUND_UNNECESSARY: number;
			/**
			 * The constant zero as a BigDecimal.
			 */
			static ZERO: java.math.BigDecimal;
			/**
			 * The constant one as a BigDecimal.
			 */
			static ONE: java.math.BigDecimal;
			/**
			 * The constant ten as a BigDecimal.
			 */
			static TEN: java.math.BigDecimal;
			static class: java.lang.Class<java.math.BigDecimal>;
			/**
			 * Returns a new BigDecimal instance whose value is equal to unscaledVal 10^(-scale). The scale of the result is scale, and its unscaled value is unscaledVal.
			 * @param unscaledVal 
			 * @param scale 
			 */
			public static valueOf(unscaledVal: number, scale: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal instance whose value is equal to unscaledVal. The scale of the result is 0, and its unscaled value is unscaledVal.
			 * @param unscaledVal 
			 */
			public static valueOf(unscaledVal: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this + augend. The scale of the result is the maximum of the scales of the two arguments.
			 * @param augend 
			 */
			public add(augend: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this + augend. The result is rounded according to the passed context mc.
			 * @param augend 
			 * @param mc 
			 */
			public add(augend: java.math.BigDecimal, mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this - subtrahend. The scale of the result is the maximum of the scales of the two arguments.
			 * @param subtrahend 
			 */
			public subtract(subtrahend: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this - subtrahend. The result is rounded according to the passed context mc.
			 * @param subtrahend 
			 * @param mc 
			 */
			public subtract(subtrahend: java.math.BigDecimal, mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this * multiplicand. The scale of the result is the sum of the scales of the two arguments.
			 * @param multiplicand 
			 */
			public multiply(multiplicand: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this * multiplicand. The result is rounded according to the passed context mc.
			 * @param multiplicand 
			 * @param mc 
			 */
			public multiply(multiplicand: java.math.BigDecimal, mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this / divisor. As scale of the result the parameter scale is used. If rounding is required to meet the specified scale, then the specified rounding mode roundingMode is applied.
			 * @param divisor 
			 * @param scale 
			 * @param roundingMode 
			 */
			public divide(divisor: java.math.BigDecimal, scale: number, roundingMode: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this / divisor. As scale of the result the parameter scale is used. If rounding is required to meet the specified scale, then the specified rounding mode roundingMode is applied.
			 * @param divisor 
			 * @param scale 
			 * @param roundingMode 
			 */
			public divide(divisor: java.math.BigDecimal, scale: number, roundingMode: java.math.RoundingMode): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this / divisor. The scale of the result is the scale of this. If rounding is required to meet the specified scale, then the specified rounding mode roundingMode is applied.
			 * @param divisor 
			 * @param roundingMode 
			 */
			public divide(divisor: java.math.BigDecimal, roundingMode: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this / divisor. The scale of the result is the scale of this. If rounding is required to meet the specified scale, then the specified rounding mode roundingMode is applied.
			 * @param divisor 
			 * @param roundingMode 
			 */
			public divide(divisor: java.math.BigDecimal, roundingMode: java.math.RoundingMode): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this / divisor. The scale of the result is the difference of the scales of this and divisor. If the exact result requires more digits, then the scale is adjusted accordingly. For example, 1/128 = 0.0078125 which has a scale of 7 and precision 5.
			 * @param divisor 
			 */
			public divide(divisor: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this / divisor. The result is rounded according to the passed context mc. If the passed math context specifies precision 0, then this call is equivalent to this.divide(divisor).
			 * @param divisor 
			 * @param mc 
			 */
			public divide(divisor: java.math.BigDecimal, mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is the integral part of this / divisor. The quotient is rounded down towards zero to the next integer. For example, 0.5/0.2 = 2.
			 * @param divisor 
			 */
			public divideToIntegralValue(divisor: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is the integral part of this / divisor. The quotient is rounded down towards zero to the next integer. The rounding mode passed with the parameter mc is not considered. But if the precision of mc > 0 and the integral part requires more digits, then an ArithmeticException is thrown.
			 * @param divisor 
			 * @param mc 
			 */
			public divideToIntegralValue(divisor: java.math.BigDecimal, mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this % divisor.
			 * @param divisor 
			 */
			public remainder(divisor: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this % divisor.
			 * @param divisor 
			 * @param mc 
			 */
			public remainder(divisor: java.math.BigDecimal, mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a BigDecimal array which contains the integral part of this / divisor at index 0 and the remainder this % divisor at index 1. The quotient is rounded down towards zero to the next integer.
			 * @param divisor 
			 */
			public divideAndRemainder(divisor: java.math.BigDecimal): native.Array<java.math.BigDecimal>;
			/**
			 * Returns a BigDecimal array which contains the integral part of this / divisor at index 0 and the remainder this % divisor at index 1. The quotient is rounded down towards zero to the next integer. The rounding mode passed with the parameter mc is not considered. But if the precision of mc > 0 and the integral part requires more digits, then an ArithmeticException is thrown.
			 * @param divisor 
			 * @param mc 
			 */
			public divideAndRemainder(divisor: java.math.BigDecimal, mc: java.math.MathContext): native.Array<java.math.BigDecimal>;
			/**
			 * Returns a new BigDecimal whose value is this ^ n. The scale of the result is n times the scales of this.
			 * @param n 
			 */
			public pow(n: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this ^ n. The result is rounded according to the passed context mc.
			 * @param n 
			 * @param mc 
			 */
			public pow(n: number, mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is the absolute value of this. The scale of the result is the same as the scale of this.
			 */
			public abs(): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is the absolute value of this. The result is rounded according to the passed context mc.
			 * @param mc 
			 */
			public abs(mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is the -this. The scale of the result is the same as the scale of this.
			 */
			public negate(): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is the -this. The result is rounded according to the passed context mc.
			 * @param mc 
			 */
			public negate(mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is +this. The scale of the result is the same as the scale of this.
			 */
			public plus(): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is +this. The result is rounded according to the passed context mc.
			 * @param mc 
			 */
			public plus(mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns the sign of this BigDecimal.
			 */
			public signum(): number;
			/**
			 * Returns the scale of this BigDecimal. The scale is the number of digits behind the decimal point. The value of this BigDecimal is the unsignedValue * 10^(-scale). If the scale is negative, then this BigDecimal represents a big integer.
			 */
			public scale(): number;
			/**
			 * Returns the precision of this BigDecimal. The precision is the number of decimal digits used to represent this decimal. It is equivalent to the number of digits of the unscaled value. The precision of 0 is 1 (independent of the scale).
			 */
			public precision(): number;
			/**
			 * Returns the unscaled value (mantissa) of this BigDecimal instance as a BigInteger. The unscaled value can be computed as this 10^(scale).
			 */
			public unscaledValue(): java.math.BigInteger;
			/**
			 * Returns a new BigDecimal whose value is this, rounded according to the passed context mc.
			 * @param mc 
			 */
			public round(mc: java.math.MathContext): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal instance with the specified scale.
			 * @param newScale 
			 * @param roundingMode 
			 */
			public setScale(newScale: number, roundingMode: java.math.RoundingMode): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal instance with the specified scale.
			 * @param newScale 
			 * @param roundingMode 
			 */
			public setScale(newScale: number, roundingMode: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal instance with the specified scale. If the new scale is greater than the old scale, then additional zeros are added to the unscaled value. If the new scale is smaller than the old scale, then trailing zeros are removed. If the trailing digits are not zeros then an ArithmeticException is thrown.
			 * @param newScale 
			 */
			public setScale(newScale: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal instance where the decimal point has been moved n places to the left. If n < 0 then the decimal point is moved -n places to the right.
			 * @param n 
			 */
			public movePointLeft(n: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal instance where the decimal point has been moved n places to the right. If n < 0 then the decimal point is moved -n places to the left.
			 * @param n 
			 */
			public movePointRight(n: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal whose value is this 10^n. The scale of the result is this.scale() - n. The precision of the result is the precision of this.
			 * @param n 
			 */
			public scaleByPowerOfTen(n: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal instance with the same value as this but with a unscaled value where the trailing zeros have been removed. If the unscaled value of this has n trailing zeros, then the scale and the precision of the result has been reduced by n.
			 */
			public stripTrailingZeros(): java.math.BigDecimal;
			/**
			 * Compares this BigDecimal with val. Returns one of the three values 1, 0, or -1. The method behaves as if this.subtract(val) is computed. If this difference is > 0 then 1 is returned, if the difference is < 0 then -1 is returned, and if the difference is 0 then 0 is returned. This means, that if two decimal instances are compared which are equal in value but differ in scale, then these two instances are considered as equal.
			 * @param val 
			 */
			public compareTo(val: java.math.BigDecimal): number;
			/**
			 * Returns true if x is a BigDecimal instance and if this instance is equal to this big decimal. Two big decimals are equal if their unscaled value and their scale is equal. For example, 1.0 (10*10^(-1)) is not equal to 1.00 (100*10^(-2)). Similarly, zero instances are not equal if their scale differs.
			 * @param x 
			 */
			public equals(x: any): boolean;
			/**
			 * Returns the minimum of this BigDecimal and val.
			 * @param val 
			 */
			public min(val: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns the maximum of this BigDecimal and val.
			 * @param val 
			 */
			public max(val: java.math.BigDecimal): java.math.BigDecimal;
			/**
			 * Returns a hash code for this BigDecimal.
			 */
			public hashCode(): number;
			/**
			 * Returns a canonical string representation of this BigDecimal. If necessary, scientific notation is used. This representation always prints all significant digits of this value.
			 */
			public toString(): string;
			/**
			 * Returns a string representation of this BigDecimal. This representation always prints all significant digits of this value.
			 */
			public toEngineeringString(): string;
			/**
			 * Returns a string representation of this BigDecimal. No scientific notation is used. This methods adds zeros where necessary.
			 */
			public toPlainString(): string;
			/**
			 * Returns this BigDecimal as a big integer instance. A fractional part is discarded.
			 */
			public toBigInteger(): java.math.BigInteger;
			/**
			 * Returns this BigDecimal as a big integer instance if it has no fractional part. If this BigDecimal has a fractional part, i.e. if rounding would be necessary, an ArithmeticException is thrown.
			 */
			public toBigIntegerExact(): java.math.BigInteger;
			/**
			 * Returns this BigDecimal as an long value. Any fractional part is discarded. If the integral part of this is too big to be represented as an long, then this % 2^64 is returned.
			 */
			public longValue(): any;
			/**
			 * Returns this BigDecimal as a long value if it has no fractional part and if its value fits to the int range ([-2^{63}..2^{63}-1]). If these conditions are not met, an ArithmeticException is thrown.
			 */
			public longValueExact(): any;
			/**
			 * Returns this BigDecimal as an int value. Any fractional part is discarded. If the integral part of this is too big to be represented as an int, then this % 2^32 is returned.
			 */
			public intValue(): number;
			/**
			 * Returns this BigDecimal as a int value if it has no fractional part and if its value fits to the int range ([-2^{31}..2^{31}-1]). If these conditions are not met, an ArithmeticException is thrown.
			 */
			public intValueExact(): number;
			/**
			 * Returns this BigDecimal as a short value if it has no fractional part and if its value fits to the short range ([-2^{15}..2^{15}-1]). If these conditions are not met, an ArithmeticException is thrown.
			 */
			public shortValueExact(): number;
			/**
			 * Returns this BigDecimal as a byte value if it has no fractional part and if its value fits to the byte range ([-128..127]). If these conditions are not met, an ArithmeticException is thrown.
			 */
			public byteValueExact(): number;
			/**
			 * Returns this BigDecimal as a float value. If this is too big to be represented as an float, then Float.POSITIVE_INFINITY or Float.NEGATIVE_INFINITY is returned.
			 */
			public floatValue(): number;
			/**
			 * Returns this BigDecimal as a double value. If this is too big to be represented as an float, then Double.POSITIVE_INFINITY or Double.NEGATIVE_INFINITY is returned.
			 */
			public doubleValue(): any;
			/**
			 * Returns the unit in the last place (ULP) of this BigDecimal instance. An ULP is the distance to the nearest big decimal with the same precision.
			 */
			public ulp(): java.math.BigDecimal;
		}
	}
	export module text {
		/**
		 * A concrete implementation class for Collation.
		 */
		export class RuleBasedCollator extends java.text.Collator {
			/**
			 * Constructs a new instance of RuleBasedCollator using the specified rules. The rules are usually either hand-written based on the RuleBasedCollator class description or the result of a former #getRules() call.
			 * @param rules 
			 */
			constructor(rules: string);
			static class: java.lang.Class<java.text.RuleBasedCollator>;
			/**
			 * Obtains a CollationElementIterator for the given CharacterIterator. The source iterator's integrity will be preserved since a new copy will be created for use.
			 * @param source 
			 */
			public getCollationElementIterator(source: java.text.ICharacterIterator): java.text.CollationElementIterator;
			/**
			 * Obtains a CollationElementIterator for the given string.
			 * @param source 
			 */
			public getCollationElementIterator(source: string): java.text.CollationElementIterator;
			/**
			 * Returns the collation rules of this collator. These rules can be fed into the RuleBasedCollator(String) constructor.
			 */
			public getRules(): string;
			/**
			 * Returns a new collator with the same collation rules, decomposition mode and strength value as this collator.
			 */
			public clone(): any;
			/**
			 * Compares the source text to the target text according to the collation rules, strength and decomposition mode for this RuleBasedCollator. See the Collator class description for an example of use.
			 * @param source 
			 * @param target 
			 */
			public compare(source: string, target: string): number;
			/**
			 * Returns the CollationKey for the given source text.
			 * @param source 
			 */
			public getCollationKey(source: string): java.text.CollationKey;
			public hashCode(): number;
			/**
			 * Compares the specified object with this RuleBasedCollator and indicates if they are equal. In order to be equal, object must be an instance of Collator with the same collation rules and the same attributes.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Compares two objects to determine their relative order. The objects must be strings.
			 * @param object1 
			 * @param object2 
			 */
			compare(object1: any, object2: any): number;
			/**
			 * Compares two strings using the collation rules to determine if they are equal.
			 * @param string1 
			 * @param string2 
			 */
			equals(string1: string, string2: string): boolean;
		}
		export class RuleBasedBreakIterator extends java.text.BreakIterator {
			static class: java.lang.Class<java.text.RuleBasedBreakIterator>;
			public current(): number;
			public first(): number;
			public following(offset: number): number;
			public getText(): java.text.ICharacterIterator;
			public last(): number;
			public next(): number;
			public next(n: number): number;
			public previous(): number;
			public setText(newText: java.text.ICharacterIterator): void;
			public isBoundary(offset: number): boolean;
			public preceding(offset: number): number;
			public equals(o: any): boolean;
			public toString(): string;
			public hashCode(): number;
			public clone(): any;
			/**
			 * Sets the new text string to be analyzed, the current position will be reset to the beginning of this new string, and the old string will be lost.
			 * @param newText 
			 */
			setText(newText: string): void;
		}
		/**
		 * A concrete subclass of NumberFormat that formats decimal numbers. It has a variety of features designed to make it possible to parse and format numbers in any locale, including support for Western, Arabic, or Indic digits. It also supports different flavors of numbers, including integers ("123"), fixed-point numbers ("123.4"), scientific notation ("1.23E4"), percentages ("12%"), and currency amounts ("$123"). All of these flavors can be easily localized.
		 */
		export class DecimalFormat extends java.text.NumberFormat {
			/**
			 * Constructs a new DecimalFormat for formatting and parsing numbers for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			constructor();
			/**
			 * Constructs a new DecimalFormat using the specified non-localized pattern and the DecimalFormatSymbols for the user's default Locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param pattern 
			 */
			constructor(pattern: string);
			/**
			 * Constructs a new DecimalFormat using the specified non-localized pattern and DecimalFormatSymbols.
			 * @param pattern 
			 * @param value 
			 */
			constructor(pattern: string, value: java.text.DecimalFormatSymbols);
			static class: java.lang.Class<java.text.DecimalFormat>;
			/**
			 * Changes the pattern of this decimal format to the specified pattern which uses localized pattern characters.
			 * @param pattern 
			 */
			public applyLocalizedPattern(pattern: string): void;
			/**
			 * Changes the pattern of this decimal format to the specified pattern which uses non-localized pattern characters.
			 * @param pattern 
			 */
			public applyPattern(pattern: string): void;
			/**
			 * Returns a new instance of DecimalFormat with the same pattern and properties.
			 */
			public clone(): any;
			/**
			 * Compares the specified object to this decimal format and indicates if they are equal. In order to be equal, object must be an instance of DecimalFormat with the same pattern and properties.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Formats the specified object using the rules of this decimal format and returns an AttributedCharacterIterator with the formatted number and attributes.
			 * @param object 
			 */
			public formatToCharacterIterator(object: any): java.text.IAttributedCharacterIterator;
			public format(value: number, buffer: java.lang.StringBuffer, position: java.text.FieldPosition): java.lang.StringBuffer;
			public format(number: any, buffer: java.lang.StringBuffer, position: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Returns the DecimalFormatSymbols used by this decimal format.
			 */
			public getDecimalFormatSymbols(): java.text.DecimalFormatSymbols;
			/**
			 * Returns the currency used by this decimal format.
			 */
			public getCurrency(): java.util.Currency;
			/**
			 * Returns the number of digits grouped together by the grouping separator. This only allows to get the primary grouping size. There is no API to get the secondary grouping size.
			 */
			public getGroupingSize(): number;
			/**
			 * Returns the multiplier which is applied to the number before formatting or after parsing.
			 */
			public getMultiplier(): number;
			/**
			 * Returns the prefix which is formatted or parsed before a negative number.
			 */
			public getNegativePrefix(): string;
			/**
			 * Returns the suffix which is formatted or parsed after a negative number.
			 */
			public getNegativeSuffix(): string;
			/**
			 * Returns the prefix which is formatted or parsed before a positive number.
			 */
			public getPositivePrefix(): string;
			/**
			 * Returns the suffix which is formatted or parsed after a positive number.
			 */
			public getPositiveSuffix(): string;
			public hashCode(): number;
			/**
			 * Indicates whether the decimal separator is shown when there are no fractional digits.
			 */
			public isDecimalSeparatorAlwaysShown(): boolean;
			/**
			 * This value indicates whether the return object of the parse operation is of type BigDecimal. This value defaults to false.
			 */
			public isParseBigDecimal(): boolean;
			/**
			 * Sets the flag that indicates whether numbers will be parsed as integers. When this decimal format is used for parsing and this value is set to true, then the resulting numbers will be of type java.lang.Integer. Special cases are NaN, positive and negative infinity, which are still returned as java.lang.Double.
			 * @param value 
			 */
			public setParseIntegerOnly(value: boolean): void;
			/**
			 * Indicates whether parsing with this decimal format will only return numbers of type java.lang.Integer.
			 */
			public isParseIntegerOnly(): boolean;
			/**
			 * Parses a Long or Double from the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parse(string: string, position: java.text.ParsePosition): java.lang.Number;
			/**
			 * Sets the DecimalFormatSymbols used by this decimal format.
			 * @param value 
			 */
			public setDecimalFormatSymbols(value: java.text.DecimalFormatSymbols): void;
			/**
			 * Sets the currency used by this decimal format. The min and max fraction digits remain the same.
			 * @param currency 
			 */
			public setCurrency(currency: java.util.Currency): void;
			/**
			 * Sets whether the decimal separator is shown when there are no fractional digits.
			 * @param value 
			 */
			public setDecimalSeparatorAlwaysShown(value: boolean): void;
			/**
			 * Sets the number of digits grouped together by the grouping separator. This only allows to set the primary grouping size; the secondary grouping size can only be set with a pattern.
			 * @param value 
			 */
			public setGroupingSize(value: number): void;
			/**
			 * Sets whether or not grouping will be used in this format. Grouping affects both parsing and formatting.
			 * @param value 
			 */
			public setGroupingUsed(value: boolean): void;
			/**
			 * Indicates whether grouping will be used in this format.
			 */
			public isGroupingUsed(): boolean;
			/**
			 * Sets the maximum number of digits after the decimal point. If the value passed is negative then it is replaced by 0. Regardless of this setting, no more than 340 digits will be used.
			 * @param value the maximum number of fraction digits.
			 */
			public setMaximumFractionDigits(value: number): void;
			/**
			 * Sets the maximum number of digits before the decimal point. If the value passed is negative then it is replaced by 0. Regardless of this setting, no more than 309 digits will be used.
			 * @param value the maximum number of integer digits.
			 */
			public setMaximumIntegerDigits(value: number): void;
			/**
			 * Sets the minimum number of digits after the decimal point. If the value passed is negative then it is replaced by 0. Regardless of this setting, no more than 340 digits will be used.
			 * @param value the minimum number of fraction digits.
			 */
			public setMinimumFractionDigits(value: number): void;
			/**
			 * Sets the minimum number of digits before the decimal point. If the value passed is negative then it is replaced by 0. Regardless of this setting, no more than 309 digits will be used.
			 * @param value the minimum number of integer digits.
			 */
			public setMinimumIntegerDigits(value: number): void;
			/**
			 * Sets the multiplier which is applied to the number before formatting or after parsing.
			 * @param value 
			 */
			public setMultiplier(value: number): void;
			/**
			 * Sets the prefix which is formatted or parsed before a negative number.
			 * @param value 
			 */
			public setNegativePrefix(value: string): void;
			/**
			 * Sets the suffix which is formatted or parsed after a negative number.
			 * @param value 
			 */
			public setNegativeSuffix(value: string): void;
			/**
			 * Sets the prefix which is formatted or parsed before a positive number.
			 * @param value 
			 */
			public setPositivePrefix(value: string): void;
			/**
			 * Sets the suffix which is formatted or parsed after a positive number.
			 * @param value 
			 */
			public setPositiveSuffix(value: string): void;
			/**
			 * Sets the behavior of the parse method. If set to true then all the returned objects will be of type BigDecimal.
			 * @param newValue 
			 */
			public setParseBigDecimal(newValue: boolean): void;
			/**
			 * Returns the pattern of this decimal format using localized pattern characters.
			 */
			public toLocalizedPattern(): string;
			/**
			 * Returns the pattern of this decimal format using non-localized pattern characters.
			 */
			public toPattern(): string;
			/**
			 * Returns the RoundingMode used by this NumberFormat. 1.6
			 */
			public getRoundingMode(): java.math.RoundingMode;
			/**
			 * Sets the RoundingMode used by this NumberFormat. 1.6
			 */
			public setRoundingMode(roundingMode: java.math.RoundingMode): void;
			/**
			 * Formats the specified double using the rules of this number format.
			 * @param value 
			 */
			format(value: number): string;
			/**
			 * Parses a Number from the specified string using the rules of this number format.
			 * @param string 
			 */
			parse(string: string): java.lang.Number;
			/**
			 * Formats the specified object using the rules of this format.
			 * @param object 
			 */
			format(object: any): string;
		}
		/**
		 * Performs locale-sensitive string comparison. A concrete subclass, RuleBasedCollator, allows customization of the collation ordering by the use of rule sets.
		 */
		export class Collator extends java.lang.Object implements java.lang.ICloneable {
			/**
			 * Constant used to specify the decomposition rule.
			 */
			static NO_DECOMPOSITION: number;
			/**
			 * Constant used to specify the decomposition rule.
			 */
			static CANONICAL_DECOMPOSITION: number;
			/**
			 * Constant used to specify the decomposition rule. This value for decomposition is not supported.
			 */
			static FULL_DECOMPOSITION: number;
			/**
			 * Constant used to specify the collation strength.
			 */
			static PRIMARY: number;
			/**
			 * Constant used to specify the collation strength.
			 */
			static SECONDARY: number;
			/**
			 * Constant used to specify the collation strength.
			 */
			static TERTIARY: number;
			/**
			 * Constant used to specify the collation strength.
			 */
			static IDENTICAL: number;
			static class: java.lang.Class<java.text.Collator>;
			/**
			 * Returns a new collator with the same decomposition mode and strength value as this collator.
			 */
			public clone(): any;
			/**
			 * Compares two objects to determine their relative order. The objects must be strings.
			 * @param object1 
			 * @param object2 
			 */
			public compare(object1: any, object2: any): number;
			/**
			 * Compares two strings to determine their relative order.
			 * @param string1 
			 * @param string2 
			 */
			public compare(string1: string, string2: string): number;
			/**
			 * Compares this collator with the specified object and indicates if they are equal.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Compares two strings using the collation rules to determine if they are equal.
			 * @param string1 
			 * @param string2 
			 */
			public equals(string1: string, string2: string): boolean;
			/**
			 * Returns an array of locales for which custom Collator instances are available.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			/**
			 * Returns a CollationKey for the specified string for this collator with the current decomposition rule and strength value.
			 * @param string 
			 */
			public getCollationKey(string: string): java.text.CollationKey;
			/**
			 * Returns the decomposition rule for this collator.
			 */
			public getDecomposition(): number;
			/**
			 * Returns a Collator instance which is appropriate for the user's default Locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getInstance(): java.text.Collator;
			/**
			 * Returns a Collator instance which is appropriate for locale.
			 */
			public static getInstance(locale: java.util.Locale): java.text.Collator;
			/**
			 * Returns the strength value for this collator.
			 */
			public getStrength(): number;
			public hashCode(): number;
			/**
			 * Sets the decomposition rule for this collator.
			 * @param value 
			 */
			public setDecomposition(value: number): void;
			/**
			 * Sets the strength value for this collator.
			 * @param value 
			 */
			public setStrength(value: number): void;
		}
		/**
		 * Locates boundaries in text. This class defines a protocol for objects that break up a piece of natural-language text according to a set of criteria. Instances or subclasses of BreakIterator can be provided, for example, to break a piece of text into words, sentences, or logical characters according to the conventions of some language or group of languages. We provide four built-in types of BreakIterator: <ul> <li>#getSentenceInstance() returns a BreakIterator that locates boundaries between sentences. This is useful for triple-click selection, for example.</li> <li>#getWordInstance() returns a BreakIterator that locates boundaries between words. This is useful for double-click selection or "find whole words" searches. This type of BreakIterator makes sure there is a boundary position at the beginning and end of each legal word (numbers count as words, too). Whitespace and punctuation are kept separate from real words.</li> <li>getLineInstance() returns a BreakIterator that locates positions where it is legal for a text editor to wrap lines. This is similar to word breaking, but not the same: punctuation and whitespace are generally kept with words (you don't want a line to start with whitespace, for example), and some special characters can force a position to be considered a line break position or prevent a position from being a line break position.</li> <li>getCharacterInstance() returns a BreakIterator that locates boundaries between logical characters. Because of the structure of the Unicode encoding, a logical character may be stored internally as more than one Unicode code point. (A with an umlaut may be stored as an a followed by a separate combining umlaut character, for example, but the user still thinks of it as one character.) This iterator allows various processes (especially text editors) to treat as characters the units of text that a user would think of as characters, rather than the units of text that the computer sees as "characters".</li> </ul> BreakIterator's interface follows an "iterator" model (hence the name), meaning it has a concept of a "current position" and methods like first(), last(), next(), and previous() that update the current position. All BreakIterators uphold the following invariants: <ul> <li>The beginning and end of the text are always treated as boundary positions.</li> <li>The current position of the iterator is always a boundary position (random- access methods move the iterator to the nearest boundary position before or after the specified position, not <i>to</i> the specified position).</li> <li>DONE is used as a flag to indicate when iteration has stopped. DONE is only returned when the current position is the end of the text and the user calls next(), or when the current position is the beginning of the text and the user calls previous().</li> <li>Break positions are numbered by the positions of the characters that follow them. Thus, under normal circumstances, the position before the first character is 0, the position after the first character is 1, and the position after the last character is 1 plus the length of the string.</li> <li>The client can change the position of an iterator, or the text it analyzes, at will, but cannot change the behavior. If the user wants different behavior, he must instantiate a new iterator.</li> </ul>
		 */
		export class BreakIterator extends java.lang.Object implements java.lang.ICloneable {
			/**
			 * This constant is returned by iterate methods like previous() or next() if they have returned all valid boundaries.
			 */
			static DONE: number;
			static class: java.lang.Class<java.text.BreakIterator>;
			/**
			 * Returns an array of locales for which custom BreakIterator instances are available.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			/**
			 * Returns a new instance of BreakIterator to iterate over characters using the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getCharacterInstance(): java.text.BreakIterator;
			/**
			 * Returns a new instance of BreakIterator to iterate over characters using the given locale.
			 * @param where 
			 */
			public static getCharacterInstance(where: java.util.Locale): java.text.BreakIterator;
			/**
			 * Returns a new instance of {BreakIterator to iterate over line breaks using the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getLineInstance(): java.text.BreakIterator;
			/**
			 * Returns a new instance of BreakIterator to iterate over line breaks using the given locale.
			 * @param where 
			 */
			public static getLineInstance(where: java.util.Locale): java.text.BreakIterator;
			/**
			 * Returns a new instance of BreakIterator to iterate over sentence-breaks using the default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getSentenceInstance(): java.text.BreakIterator;
			/**
			 * Returns a new instance of BreakIterator to iterate over sentence-breaks using the given locale.
			 * @param where 
			 */
			public static getSentenceInstance(where: java.util.Locale): java.text.BreakIterator;
			/**
			 * Returns a new instance of BreakIterator to iterate over word-breaks using the default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getWordInstance(): java.text.BreakIterator;
			/**
			 * Returns a new instance of BreakIterator to iterate over word-breaks using the given locale.
			 * @param where 
			 */
			public static getWordInstance(where: java.util.Locale): java.text.BreakIterator;
			/**
			 * Indicates whether the given offset is a boundary position. If this method returns true, the current iteration position is set to the given position; if the function returns false, the current iteration position is set as though #following(int) had been called.
			 * @param offset 
			 */
			public isBoundary(offset: number): boolean;
			/**
			 * Returns the position of last boundary preceding the given offset, and sets the current position to the returned value, or DONE if the given offset specifies the starting position.
			 * @param offset 
			 */
			public preceding(offset: number): number;
			/**
			 * Sets the new text string to be analyzed, the current position will be reset to the beginning of this new string, and the old string will be lost.
			 * @param newText 
			 */
			public setText(newText: string): void;
			/**
			 * Returns this iterator's current position.
			 */
			public current(): number;
			/**
			 * Sets this iterator's current position to the first boundary and returns that position.
			 */
			public first(): number;
			/**
			 * Sets the position of the first boundary to the one following the given offset and returns this position. Returns DONE if there is no boundary after the given offset.
			 * @param offset 
			 */
			public following(offset: number): number;
			/**
			 * Returns a CharacterIterator which represents the text being analyzed. Please note that the returned value is probably the internal iterator used by this object. If the invoker wants to modify the status of the returned iterator, it is recommended to first create a clone of the iterator returned.
			 */
			public getText(): java.text.ICharacterIterator;
			/**
			 * Sets this iterator's current position to the last boundary and returns that position.
			 */
			public last(): number;
			/**
			 * Sets this iterator's current position to the next boundary after the current position, and returns this position. Returns DONE if no boundary was found after the current position.
			 */
			public next(): number;
			/**
			 * Sets this iterator's current position to the next boundary after the given position, and returns that position. Returns DONE if no boundary was found after the given position.
			 * @param n 
			 */
			public next(n: number): number;
			/**
			 * Sets this iterator's current position to the previous boundary before the current position and returns that position. Returns DONE if no boundary was found before the current position.
			 */
			public previous(): number;
			/**
			 * Sets the new text to be analyzed by the given CharacterIterator. The position will be reset to the beginning of the new text, and other status information of this iterator will be kept.
			 * @param newText 
			 */
			public setText(newText: java.text.ICharacterIterator): void;
			/**
			 * Returns a copy of this iterator.
			 */
			public clone(): any;
		}
		/**
		 * Holds a string with attributes describing the characters of this string.
		 */
		export class AttributedString extends java.lang.Object {
			/**
			 * Constructs an AttributedString from an AttributedCharacterIterator, which represents attributed text.
			 * @param iterator 
			 */
			constructor(iterator: java.text.IAttributedCharacterIterator);
			/**
			 * Constructs an AttributedString from a range of the text contained in the specified AttributedCharacterIterator, starting at start and ending at end. All attributes will be copied to this attributed string.
			 * @param iterator 
			 * @param start 
			 * @param end 
			 */
			constructor(iterator: java.text.IAttributedCharacterIterator, start: number, end: number);
			/**
			 * Constructs an AttributedString from a range of the text contained in the specified AttributedCharacterIterator, starting at start, ending at end and it will copy the attributes defined in the specified set. If the set is null then all attributes are copied.
			 * @param iterator 
			 * @param start 
			 * @param end 
			 * @param attributes 
			 */
			constructor(iterator: java.text.IAttributedCharacterIterator, start: number, end: number, attributes: native.Array<java.text.AttributedCharacterIterator.Attribute>);
			/**
			 * Creates an AttributedString from the given text.
			 * @param value 
			 */
			constructor(value: string);
			/**
			 * Creates an AttributedString from the given text and the attributes. The whole text has the given attributes applied.
			 * @param value 
			 * @param attributes 
			 */
			constructor(value: string, attributes: java.util.IMap<any, any>);
			static class: java.lang.Class<java.text.AttributedString>;
			/**
			 * Applies a given attribute to this string.
			 * @param attribute 
			 * @param value 
			 */
			public addAttribute(attribute: java.text.AttributedCharacterIterator.Attribute, value: any): void;
			/**
			 * Applies a given attribute to the given range of this string.
			 * @param attribute 
			 * @param value 
			 * @param start 
			 * @param end 
			 */
			public addAttribute(attribute: java.text.AttributedCharacterIterator.Attribute, value: any, start: number, end: number): void;
			/**
			 * Applies a given set of attributes to the given range of the string.
			 * @param attributes 
			 * @param start 
			 * @param end 
			 */
			public addAttributes(attributes: java.util.IMap<any, any>, start: number, end: number): void;
			/**
			 * Returns an AttributedCharacterIterator that gives access to the complete content of this attributed string.
			 */
			public getIterator(): java.text.IAttributedCharacterIterator;
			/**
			 * Returns an AttributedCharacterIterator that gives access to the complete content of this attributed string. Only attributes contained in attributes are available from this iterator if they are defined for this text.
			 * @param attributes 
			 */
			public getIterator(attributes: native.Array<java.text.AttributedCharacterIterator.Attribute>): java.text.IAttributedCharacterIterator;
			/**
			 * Returns an AttributedCharacterIterator that gives access to the contents of this attributed string starting at index start up to index end. Only attributes contained in attributes are available from this iterator if they are defined for this text.
			 * @param attributes 
			 * @param start 
			 * @param end 
			 */
			public getIterator(attributes: native.Array<java.text.AttributedCharacterIterator.Attribute>, start: number, end: number): java.text.IAttributedCharacterIterator;
		}
		export module AttributedString {
			export class AttributedIterator extends java.lang.Object implements java.text.IAttributedCharacterIterator {
				static class: java.lang.Class<java.text.AttributedString.AttributedIterator>;
				/**
				 * Returns a new AttributedIterator with the same source string, begin, end, and current index as this attributed iterator.
				 */
				public clone(): any;
				public current(): string;
				public first(): string;
				/**
				 * Returns the begin index in the source string.
				 */
				public getBeginIndex(): number;
				/**
				 * Returns the end index in the source String.
				 */
				public getEndIndex(): number;
				/**
				 * Returns the current index in the source String.
				 */
				public getIndex(): number;
				/**
				 * Returns a set of attributes present in the AttributedString. An empty set returned indicates that no attributes where defined.
				 */
				public getAllAttributeKeys(): java.util.ISet<java.text.AttributedCharacterIterator.Attribute>;
				public getAttribute(attribute: java.text.AttributedCharacterIterator.Attribute): any;
				public getAttributes(): java.util.IMap<java.text.AttributedCharacterIterator.Attribute, any>;
				public getRunLimit(): number;
				public getRunLimit(attribute: java.text.AttributedCharacterIterator.Attribute): number;
				public getRunLimit(attributes: java.util.ISet<any>): number;
				public getRunStart(): number;
				public getRunStart(attribute: java.text.AttributedCharacterIterator.Attribute): number;
				public getRunStart(attributes: java.util.ISet<any>): number;
				public last(): string;
				public next(): string;
				public previous(): string;
				public setIndex(location: number): string;
			}
			export class Range extends java.lang.Object {
				static class: java.lang.Class<java.text.AttributedString.Range>;
			}
		}
		/**
		 * The base class for all formats.
		 */
		export class Format extends java.lang.Object implements java.io.ISerializable, java.lang.ICloneable {
			static class: java.lang.Class<java.text.Format>;
			/**
			 * Returns a copy of this Format instance.
			 */
			public clone(): any;
			/**
			 * Formats the specified object using the rules of this format.
			 * @param object 
			 */
			public format(object: any): string;
			/**
			 * Appends the specified object to the specified string buffer using the rules of this format.
			 * @param object 
			 * @param buffer 
			 * @param field 
			 */
			public format(object: any, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Formats the specified object using the rules of this format and returns an AttributedCharacterIterator with the formatted string and no attributes.
			 * @param object 
			 */
			public formatToCharacterIterator(object: any): java.text.IAttributedCharacterIterator;
			/**
			 * Parses the specified string using the rules of this format.
			 * @param string 
			 */
			public parseObject(string: string): any;
			/**
			 * Parses the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parseObject(string: string, position: java.text.ParsePosition): any;
			static upTo(string: string, position: java.text.ParsePosition, buffer: java.lang.StringBuffer, stop: string): boolean;
			static upToWithQuotes(string: string, position: java.text.ParsePosition, buffer: java.lang.StringBuffer, stop: string, start: string): boolean;
		}
		export module Format {
			/**
			 * Inner class used to represent Format attributes in the AttributedCharacterIterator that the formatToCharacterIterator() method returns in Format subclasses.
			 */
			export class Field extends java.text.AttributedCharacterIterator.Attribute {
				static class: java.lang.Class<java.text.Format.Field>;
			}
		}
		/**
		 * An interface for the bidirectional iteration over a group of characters. The iteration starts at the begin index in the group of characters and continues to one index before the end index.
		 */
		interface ICharacterIterator extends java.lang.ICloneable {
			/**
			 * Returns a new CharacterIterator with the same properties.
			 */
			clone(): any;
			/**
			 * Returns the character at the current index.
			 */
			current(): string;
			/**
			 * Sets the current position to the begin index and returns the character at the new position.
			 */
			first(): string;
			/**
			 * Returns the begin index.
			 */
			getBeginIndex(): number;
			/**
			 * Returns the end index.
			 */
			getEndIndex(): number;
			/**
			 * Returns the current index.
			 */
			getIndex(): number;
			/**
			 * Sets the current position to the end index - 1 and returns the character at the new position.
			 */
			last(): string;
			/**
			 * Increments the current index and returns the character at the new index.
			 */
			next(): string;
			/**
			 * Decrements the current index and returns the character at the new index.
			 */
			previous(): string;
			/**
			 * Sets the current index to a new position and returns the character at the new index.
			 * @param location 
			 */
			setIndex(location: number): string;
		}
		export module ICharacterIterator {
			/**
			 * A constant which indicates that there is no character at the current index.
			 */
			var DONE: string;
		}
		/**
		 * Represents a string under the rules of a specific Collator object. Comparing two CollationKey instances returns the relative order of the strings they represent.
		 */
		export class CollationKey extends java.lang.Object {
			static class: java.lang.Class<java.text.CollationKey>;
			/**
			 * Compares this collation key to the given collation key.
			 * @param value the other collation key.
			 */
			public compareTo(value: java.text.CollationKey): number;
			/**
			 * Returns the string from which this collation key was created.
			 */
			public getSourceString(): string;
			/**
			 * Returns this collation key as a byte array.
			 */
			public toByteArray(): native.Array<number>;
		}
		/**
		 * Created by a RuleBasedCollator to iterate through a string. The result of each iteration is a 32-bit collation element that defines the ordering priority of the next character or sequence of characters in the source string.
		 */
		export class CollationElementIterator extends java.lang.Object {
			/**
			 * This constant is returned by the iterator in the methods next() and previous() when the end or the beginning of the source string has been reached, and there are no more valid collation elements to return.
			 */
			static NULLORDER: number;
			static class: java.lang.Class<java.text.CollationElementIterator>;
			/**
			 * Obtains the maximum length of any expansion sequence that ends with the specified collation element. Returns 1 if there is no expansion with this collation element as the last element.
			 * @param order 
			 */
			public getMaxExpansion(order: number): number;
			/**
			 * Obtains the character offset in the source string corresponding to the next collation element. This value could be any of: <ul> <li>The index of the first character in the source string that matches the value of the next collation element. This means that if setOffset(offset) sets the index in the middle of a contraction, getOffset() returns the index of the first character in the contraction, which may not be equal to the original offset that was set. Hence calling getOffset() immediately after setOffset(offset) does not guarantee that the original offset set will be returned.</li> <li>If normalization is on, the index of the immediate subsequent character, or composite character with the first character, having a combining class of 0.</li> <li>The length of the source string, if iteration has reached the end. </li> </ul>
			 */
			public getOffset(): number;
			/**
			 * Obtains the next collation element in the source string.
			 */
			public next(): number;
			/**
			 * Obtains the previous collation element in the source string.
			 */
			public previous(): number;
			/**
			 * Obtains the primary order of the specified collation element, i.e. the first 16 bits. This value is unsigned.
			 * @param order 
			 */
			public static primaryOrder(order: number): number;
			/**
			 * Repositions the cursor to point at the first element of the current string. The next call to #next() or #previous() will return the first and last collation element in the string, respectively.
			 */
			public reset(): void;
			/**
			 * Obtains the secondary order of the specified collation element, i.e. the 16th to 23th bits, inclusive. This value is unsigned.
			 * @param order 
			 */
			public static secondaryOrder(order: number): number;
			/**
			 * Points the iterator at the collation element associated with the character in the source string which is found at the supplied offset. After this call completes, an invocation of the #next() method will return this collation element.
			 * @param newOffset 
			 */
			public setOffset(newOffset: number): void;
			/**
			 * Sets a new source string iterator for iteration, and resets the offset to the beginning of the text.
			 * @param source 
			 */
			public setText(source: java.text.ICharacterIterator): void;
			/**
			 * Sets a new source string for iteration, and resets the offset to the beginning of the text.
			 * @param source 
			 */
			public setText(source: string): void;
			/**
			 * Obtains the tertiary order of the specified collation element, i.e. the last 8 bits. This value is unsigned.
			 * @param order 
			 */
			public static tertiaryOrder(order: number): number;
		}
		/**
		 * Extends the CharacterIterator interface, adding support for iterating over attributes and not only characters. An AttributedCharacterIterator also allows the user to find runs and their limits. Runs are defined as ranges of characters that all have the same attributes with the same values.
		 */
		interface IAttributedCharacterIterator extends java.text.ICharacterIterator {
			/**
			 * Returns a set of attributes present in the AttributedCharacterIterator. An empty set is returned if no attributes were defined.
			 */
			getAllAttributeKeys(): java.util.ISet<java.text.AttributedCharacterIterator.Attribute>;
			/**
			 * Returns the value stored in the attribute for the current character. If the attribute was not defined then null is returned.
			 * @param attribute the attribute for which the value should be returned.
			 */
			getAttribute(attribute: java.text.AttributedCharacterIterator.Attribute): any;
			/**
			 * Returns a map of all attributes of the current character. If no attributes were defined for the current character then an empty map is returned.
			 */
			getAttributes(): java.util.IMap<java.text.AttributedCharacterIterator.Attribute, any>;
			/**
			 * Returns the index of the last character in the run having the same attributes as the current character.
			 */
			getRunLimit(): number;
			/**
			 * Returns the index of the last character in the run that has the same attribute value for the given attribute as the current character.
			 * @param attribute 
			 */
			getRunLimit(attribute: java.text.AttributedCharacterIterator.Attribute): number;
			/**
			 * Returns the index of the last character in the run that has the same attribute values for the attributes in the set as the current character.
			 * @param attributes 
			 */
			getRunLimit(attributes: java.util.ISet<any>): number;
			/**
			 * Returns the index of the first character in the run that has the same attributes as the current character.
			 */
			getRunStart(): number;
			/**
			 * Returns the index of the first character in the run that has the same attribute value for the given attribute as the current character.
			 * @param attribute 
			 */
			getRunStart(attribute: java.text.AttributedCharacterIterator.Attribute): number;
			/**
			 * Returns the index of the first character in the run that has the same attribute values for the attributes in the set as the current character.
			 * @param attributes 
			 */
			getRunStart(attributes: java.util.ISet<any>): number;
			/**
			 * Returns a new CharacterIterator with the same properties.
			 */
			clone(): any;
			/**
			 * Returns the character at the current index.
			 */
			current(): string;
			/**
			 * Sets the current position to the begin index and returns the character at the new position.
			 */
			first(): string;
			/**
			 * Returns the begin index.
			 */
			getBeginIndex(): number;
			/**
			 * Returns the end index.
			 */
			getEndIndex(): number;
			/**
			 * Returns the current index.
			 */
			getIndex(): number;
			/**
			 * Sets the current position to the end index - 1 and returns the character at the new position.
			 */
			last(): string;
			/**
			 * Increments the current index and returns the character at the new index.
			 */
			next(): string;
			/**
			 * Decrements the current index and returns the character at the new index.
			 */
			previous(): string;
			/**
			 * Sets the current index to a new position and returns the character at the new index.
			 * @param location 
			 */
			setIndex(location: number): string;
		}
		/**
		 * Tracks the current position in a parsed string. In case of an error the error index can be set to the position where the error occurred without having to change the parse position.
		 */
		export class ParsePosition extends java.lang.Object {
			/**
			 * Constructs a new ParsePosition with the specified index.
			 * @param index 
			 */
			constructor(index: number);
			static class: java.lang.Class<java.text.ParsePosition>;
			/**
			 * Compares the specified object to this ParsePosition and indicates if they are equal. In order to be equal, object must be an instance of ParsePosition and it must have the same index and error index.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the index at which the parse could not continue.
			 */
			public getErrorIndex(): number;
			/**
			 * Returns the current parse position.
			 */
			public getIndex(): number;
			public hashCode(): number;
			/**
			 * Sets the index at which the parse could not continue.
			 * @param index 
			 */
			public setErrorIndex(index: number): void;
			/**
			 * Sets the current parse position.
			 * @param index 
			 */
			public setIndex(index: number): void;
			/**
			 * Returns the string representation of this parse position.
			 */
			public toString(): string;
		}
		/**
		 * Encapsulates the set of symbols (such as the decimal separator, the grouping separator, and so on) needed by DecimalFormat to format numbers. DecimalFormat internally creates an instance of DecimalFormatSymbols from its locale data. If you need to change any of these symbols, you can get the DecimalFormatSymbols object from your DecimalFormat and modify it.
		 */
		export class DecimalFormatSymbols extends java.lang.Object implements java.lang.ICloneable, java.io.ISerializable {
			/**
			 * Constructs a new DecimalFormatSymbols containing the symbols for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>". Best practice is to create a DecimalFormat and then to get the DecimalFormatSymbols from that object by calling DecimalFormat#getDecimalFormatSymbols().
			 */
			constructor();
			/**
			 * Constructs a new DecimalFormatSymbols containing the symbols for the specified Locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>". Best practice is to create a DecimalFormat and then to get the DecimalFormatSymbols from that object by calling DecimalFormat#getDecimalFormatSymbols().
			 * @param locale 
			 */
			constructor(locale: java.util.Locale);
			static class: java.lang.Class<java.text.DecimalFormatSymbols>;
			/**
			 * Returns a new DecimalFormatSymbols instance for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getInstance(): java.text.DecimalFormatSymbols;
			/**
			 * Returns a new DecimalFormatSymbols for the given locale.
			 * @param locale the locale
			 */
			public static getInstance(locale: java.util.Locale): java.text.DecimalFormatSymbols;
			/**
			 * Returns an array of locales for which custom DecimalFormatSymbols instances are available.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			public clone(): any;
			/**
			 * Compares the specified object to this DecimalFormatSymbols and indicates if they are equal. In order to be equal, object must be an instance of DecimalFormatSymbols and contain the same symbols.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public toString(): string;
			/**
			 * Returns the currency.
			 */
			public getCurrency(): java.util.Currency;
			/**
			 * Returns the international currency symbol.
			 */
			public getInternationalCurrencySymbol(): string;
			/**
			 * Returns the currency symbol.
			 */
			public getCurrencySymbol(): string;
			/**
			 * Returns the character which represents the decimal point in a number.
			 */
			public getDecimalSeparator(): string;
			/**
			 * Returns the character which represents a single digit in a format pattern.
			 */
			public getDigit(): string;
			/**
			 * Returns the character used as the thousands separator in a number.
			 */
			public getGroupingSeparator(): string;
			/**
			 * Returns the string which represents infinity.
			 */
			public getInfinity(): string;
			/**
			 * Returns the minus sign character.
			 */
			public getMinusSign(): string;
			/**
			 * Returns the character which represents the decimal point in a monetary value.
			 */
			public getMonetaryDecimalSeparator(): string;
			/**
			 * Returns the string which represents NaN.
			 */
			public getNaN(): string;
			/**
			 * Returns the character which separates the positive and negative patterns in a format pattern.
			 */
			public getPatternSeparator(): string;
			/**
			 * Returns the percent character.
			 */
			public getPercent(): string;
			/**
			 * Returns the per mill sign character.
			 */
			public getPerMill(): string;
			/**
			 * Returns the character which represents zero.
			 */
			public getZeroDigit(): string;
			public getExponentSeparator(): string;
			public hashCode(): number;
			/**
			 * Sets the currency.
			 * @param currency 
			 */
			public setCurrency(currency: java.util.Currency): void;
			/**
			 * Sets the international currency symbol.
			 * @param value 
			 */
			public setInternationalCurrencySymbol(value: string): void;
			/**
			 * Sets the currency symbol.
			 * @param value 
			 */
			public setCurrencySymbol(value: string): void;
			/**
			 * Sets the character which represents the decimal point in a number.
			 * @param value 
			 */
			public setDecimalSeparator(value: string): void;
			/**
			 * Sets the character which represents a single digit in a format pattern.
			 * @param value 
			 */
			public setDigit(value: string): void;
			/**
			 * Sets the character used as the thousands separator in a number.
			 * @param value 
			 */
			public setGroupingSeparator(value: string): void;
			/**
			 * Sets the string which represents infinity.
			 * @param value 
			 */
			public setInfinity(value: string): void;
			/**
			 * Sets the minus sign character.
			 * @param value 
			 */
			public setMinusSign(value: string): void;
			/**
			 * Sets the character which represents the decimal point in a monetary value.
			 * @param value 
			 */
			public setMonetaryDecimalSeparator(value: string): void;
			/**
			 * Sets the string which represents NaN.
			 * @param value 
			 */
			public setNaN(value: string): void;
			/**
			 * Sets the character which separates the positive and negative patterns in a format pattern.
			 * @param value 
			 */
			public setPatternSeparator(value: string): void;
			/**
			 * Sets the percent character.
			 * @param value 
			 */
			public setPercent(value: string): void;
			/**
			 * Sets the per mill sign character.
			 * @param value 
			 */
			public setPerMill(value: string): void;
			/**
			 * Sets the character which represents zero.
			 * @param value 
			 */
			public setZeroDigit(value: string): void;
			/**
			 * Sets the string used to separate mantissa and exponent. Typically "E", as in "1.2E3". 1.6
			 */
			public setExponentSeparator(value: string): void;
		}
		/**
		 * Produces concatenated messages in language-neutral way. New code should probably use java.util.Formatter instead.
		 */
		export class MessageFormat extends java.text.Format {
			/**
			 * Constructs a new MessageFormat using the specified pattern and locale.
			 * @param template 
			 * @param locale 
			 */
			constructor(template: string, locale: java.util.Locale);
			/**
			 * Constructs a new MessageFormat using the specified pattern and the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param template 
			 */
			constructor(template: string);
			static class: java.lang.Class<java.text.MessageFormat>;
			/**
			 * Changes this MessageFormat to use the specified pattern.
			 * @param template 
			 */
			public applyPattern(template: string): void;
			/**
			 * Returns a new instance of MessageFormat with the same pattern and formats as this MessageFormat.
			 */
			public clone(): any;
			/**
			 * Compares the specified object to this MessageFormat and indicates if they are equal. In order to be equal, object must be an instance of MessageFormat and have the same pattern.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Formats the specified object using the rules of this message format and returns an AttributedCharacterIterator with the formatted message and attributes. The AttributedCharacterIterator returned also includes the attributes from the formats of this message format.
			 * @param object 
			 */
			public formatToCharacterIterator(object: any): java.text.IAttributedCharacterIterator;
			/**
			 * Converts the specified objects into a string which it appends to the specified string buffer using the pattern of this message format.
			 * @param objects 
			 * @param buffer 
			 * @param field 
			 */
			public format(objects: native.Array<any>, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Converts the specified objects into a string which it appends to the specified string buffer using the pattern of this message format.
			 * @param object 
			 * @param buffer 
			 * @param field 
			 */
			public format(object: any, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Formats the supplied objects using the specified message format pattern.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public static format(format: string, args: native.Array<any>): string;
			/**
			 * Returns the Format instances used by this message format.
			 */
			public getFormats(): native.Array<java.text.Format>;
			/**
			 * Returns the formats used for each argument index. If an argument is placed more than once in the pattern string, then this returns the format of the last one.
			 */
			public getFormatsByArgumentIndex(): native.Array<java.text.Format>;
			/**
			 * Sets the format used for the argument at index argIndex to format.
			 * @param argIndex 
			 * @param format 
			 */
			public setFormatByArgumentIndex(argIndex: number, format: java.text.Format): void;
			/**
			 * Sets the formats used for each argument. The formats array elements should be in the order of the argument indices.
			 * @param formats 
			 */
			public setFormatsByArgumentIndex(formats: native.Array<java.text.Format>): void;
			/**
			 * Returns the locale used when creating formats.
			 */
			public getLocale(): java.util.Locale;
			public hashCode(): number;
			/**
			 * Parses the message arguments from the specified string using the rules of this message format.
			 * @param string 
			 */
			public parse(string: string): native.Array<any>;
			/**
			 * Parses the message argument from the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parse(string: string, position: java.text.ParsePosition): native.Array<any>;
			/**
			 * Parses the message argument from the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parseObject(string: string, position: java.text.ParsePosition): any;
			/**
			 * Sets the specified format used by this message format.
			 * @param offset 
			 * @param format 
			 */
			public setFormat(offset: number, format: java.text.Format): void;
			/**
			 * Sets the formats used by this message format.
			 * @param formats 
			 */
			public setFormats(formats: native.Array<java.text.Format>): void;
			/**
			 * Sets the locale to use when creating Format instances. Changing the locale may change the behavior of applyPattern, toPattern, format and formatToCharacterIterator.
			 * @param locale 
			 */
			public setLocale(locale: java.util.Locale): void;
			/**
			 * Returns the pattern of this message format.
			 */
			public toPattern(): string;
			/**
			 * Formats the specified object using the rules of this format.
			 * @param object 
			 */
			format(object: any): string;
			/**
			 * Parses the specified string using the rules of this format.
			 * @param string 
			 */
			parseObject(string: string): any;
		}
		export module MessageFormat {
			/**
			 * The instances of this inner class are used as attribute keys in AttributedCharacterIterator that the MessageFormat#formatToCharacterIterator(Object) method returns.
			 */
			export class Field extends java.text.Format.Field {
				/**
				 * This constant stands for the message argument.
				 */
				static ARGUMENT: java.text.MessageFormat.Field;
				static class: java.lang.Class<java.text.MessageFormat.Field>;
			}
			/**
			 * An inner class to store attributes, values, start and end indices. Instances of this inner class are used as elements for the fields list.
			 */
			export class FieldContainer extends java.lang.Object {
				constructor(start: number, end: number, attribute: java.text.AttributedCharacterIterator.Attribute, value: any);
				static class: java.lang.Class<java.text.MessageFormat.FieldContainer>;
			}
		}
		/**
		 * Provides normalization functions according to <a href="http://www.unicode.org/unicode/reports/tr15/tr15-23.html">Unicode Standard Annex #15: Unicode Normalization Forms</a>. Normalization can decompose and compose characters for equivalency checking.
		 */
		export class Normalizer extends java.lang.Object {
			static class: java.lang.Class<java.text.Normalizer>;
			/**
			 * Check whether the given character sequence <code>src</code> is normalized according to the normalization method <code>form</code>.
			 * @param src character sequence to check
			 * @param form normalization form to check against
			 */
			public static isNormalized(src: string, form: java.text.Normalizer.Form): boolean;
			/**
			 * Normalize the character sequence <code>src</code> according to the normalization method <code>form</code>.
			 * @param src character sequence to read for normalization
			 * @param form normalization form
			 */
			public static normalize(src: string, form: java.text.Normalizer.Form): string;
		}
		export module Normalizer {
			/**
			 * The normalization forms supported by the Normalizer. These are specified in <a href="http://www.unicode.org/unicode/reports/tr15/tr15-23.html">Unicode Standard Annex #15</a>.
			 */
			export enum Form {
				NFD,
				NFC,
				NFKD,
				NFKC
			}
		}
		/**
		 * Returns a fixed string based on a numeric value. The class can be used in conjunction with the MessageFormat class to handle plurals in messages. ChoiceFormat enables users to attach a format to a range of numbers. The choice is specified with an ascending list of doubles, where each item specifies a half-open interval up to the next item as in the following: X matches j if and only if limit[j] <= X < limit[j+1].
		 */
		export class ChoiceFormat extends java.text.NumberFormat {
			/**
			 * Constructs a new ChoiceFormat with the specified double values and associated strings. When calling #format(double, StringBuffer, FieldPosition) format with a double value d, then the element i in formats is selected where i fulfills limits[i] <= d < limits[i+1].
			 * @param limits 
			 * @param formats 
			 */
			constructor(limits: native.Array<number>, formats: native.Array<string>);
			/**
			 * Constructs a new ChoiceFormat with the strings and limits parsed from the specified pattern.
			 * @param template 
			 */
			constructor(template: string);
			static class: java.lang.Class<java.text.ChoiceFormat>;
			/**
			 * Parses the pattern to determine new strings and ranges for this ChoiceFormat.
			 * @param template 
			 */
			public applyPattern(template: string): void;
			/**
			 * Returns a new instance of ChoiceFormat with the same ranges and strings as this ChoiceFormat.
			 */
			public clone(): any;
			/**
			 * Compares the specified object with this ChoiceFormat. The object must be an instance of ChoiceFormat and have the same limits and formats to be equal to this instance.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Appends the string associated with the range in which the specified double value fits to the specified string buffer.
			 * @param value 
			 * @param buffer 
			 * @param field 
			 */
			public format(value: number, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Returns the strings associated with the ranges of this ChoiceFormat.
			 */
			public getFormats(): native.Array<any>;
			/**
			 * Returns the limits of this ChoiceFormat.
			 */
			public getLimits(): native.Array<number>;
			/**
			 * Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.
			 */
			public hashCode(): number;
			/**
			 * Returns the double value which is closest to the specified double but larger.
			 * @param value 
			 */
			public static nextDouble(value: number): any;
			/**
			 * Returns the double value which is closest to the specified double but either larger or smaller as specified.
			 * @param value 
			 * @param increment 
			 */
			public static nextDouble(value: number, increment: boolean): any;
			/**
			 * Parses a double from the specified string starting at the index specified by position. The string is compared to the strings of this ChoiceFormat and if a match occurs then the lower bound of the corresponding range in the limits array is returned. If the string is successfully parsed then the index of the ParsePosition passed to this method is updated to the index following the parsed text.
			 * @param string 
			 * @param position 
			 */
			public parse(string: string, position: java.text.ParsePosition): java.lang.Number;
			/**
			 * Returns the double value which is closest to the specified double but smaller.
			 * @param value 
			 */
			public static previousDouble(value: number): any;
			/**
			 * Sets the double values and associated strings of this ChoiceFormat. When calling #format(double, StringBuffer, FieldPosition) format with a double value d, then the element i in formats is selected where i fulfills limits[i] <= d < limits[i+1].
			 * @param limits 
			 * @param formats 
			 */
			public setChoices(limits: native.Array<number>, formats: native.Array<string>): void;
			/**
			 * Returns the pattern of this ChoiceFormat which specifies the ranges and their associated strings.
			 */
			public toPattern(): string;
			/**
			 * Formats the specified double using the rules of this number format.
			 * @param value 
			 */
			format(value: number): string;
			/**
			 * Formats a number into a supplied buffer.
			 * @param object 
			 * @param buffer 
			 * @param field 
			 */
			format(object: any, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Parses a Number from the specified string using the rules of this number format.
			 * @param string 
			 */
			parse(string: string): java.lang.Number;
			/**
			 * Formats the specified object using the rules of this format.
			 * @param object 
			 */
			format(object: any): string;
		}
		/**
		 * Identifies fields in formatted strings. If a FieldPosition is passed to the format method with such a parameter, then the indices will be set to the start and end indices of the field in the formatted string.
		 */
		export class FieldPosition extends java.lang.Object {
			/**
			 * Constructs a new FieldPosition for the specified field.
			 * @param field 
			 */
			constructor(field: number);
			/**
			 * Constructs a new FieldPosition for the specified Field attribute.
			 * @param attribute 
			 */
			constructor(attribute: java.text.Format.Field);
			/**
			 * Constructs a new FieldPosition for the specified Field attribute and field id.
			 * @param attribute 
			 * @param field 
			 */
			constructor(attribute: java.text.Format.Field, field: number);
			static class: java.lang.Class<java.text.FieldPosition>;
			clear(): void;
			/**
			 * Compares the specified object to this field position and indicates if they are equal. In order to be equal, object must be an instance of FieldPosition with the same field, begin index and end index.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the index of the beginning of the field.
			 */
			public getBeginIndex(): number;
			/**
			 * Returns the index one past the end of the field.
			 */
			public getEndIndex(): number;
			/**
			 * Returns the field which is being identified.
			 */
			public getField(): number;
			/**
			 * Returns the attribute which is being identified.
			 */
			public getFieldAttribute(): java.text.Format.Field;
			public hashCode(): number;
			/**
			 * Sets the index of the beginning of the field.
			 * @param index 
			 */
			public setBeginIndex(index: number): void;
			/**
			 * Sets the index of the end of the field.
			 * @param index 
			 */
			public setEndIndex(index: number): void;
			/**
			 * Returns the string representation of this field position.
			 */
			public toString(): string;
		}
		/**
		 * Wrapper for a text attribute value which represents an annotation. An annotation has two special aspects: <ol> <li>it is connected to a range of main text; if this range or the main text is changed then the annotation becomes invalid,</li> <li>it can not be joined with adjacent annotations even if the text attribute value is the same.</li> </ol>
		 */
		export class Annotation extends java.lang.Object {
			/**
			 * Constructs a new Annotation.
			 * @param attribute the attribute attached to this annotation. This may be
			 */
			constructor(attribute: any);
			static class: java.lang.Class<java.text.Annotation>;
			/**
			 * Returns the value of this annotation. The value may be null.
			 */
			public getValue(): any;
			/**
			 * Returns this annotation in string representation.
			 */
			public toString(): string;
		}
		/**
		 * Extends the CharacterIterator interface, adding support for iterating over attributes and not only characters. An AttributedCharacterIterator also allows the user to find runs and their limits. Runs are defined as ranges of characters that all have the same attributes with the same values.
		 */
		export class AttributedCharacterIterator implements java.text.ICharacterIterator, java.text.IAttributedCharacterIterator {
			constructor(implementation: java.text.IAttributedCharacterIterator);
			/**
			 * Returns a set of attributes present in the AttributedCharacterIterator. An empty set is returned if no attributes were defined.
			 */
			public getAllAttributeKeys(): java.util.ISet<java.text.AttributedCharacterIterator.Attribute>;
			/**
			 * Returns the value stored in the attribute for the current character. If the attribute was not defined then null is returned.
			 * @param attribute the attribute for which the value should be returned.
			 */
			public getAttribute(attribute: java.text.AttributedCharacterIterator.Attribute): any;
			/**
			 * Returns a map of all attributes of the current character. If no attributes were defined for the current character then an empty map is returned.
			 */
			public getAttributes(): java.util.IMap<java.text.AttributedCharacterIterator.Attribute, any>;
			/**
			 * Returns the index of the last character in the run having the same attributes as the current character.
			 */
			public getRunLimit(): number;
			/**
			 * Returns the index of the last character in the run that has the same attribute value for the given attribute as the current character.
			 * @param attribute 
			 */
			public getRunLimit(attribute: java.text.AttributedCharacterIterator.Attribute): number;
			/**
			 * Returns the index of the last character in the run that has the same attribute values for the attributes in the set as the current character.
			 * @param attributes 
			 */
			public getRunLimit(attributes: java.util.ISet<any>): number;
			/**
			 * Returns the index of the first character in the run that has the same attributes as the current character.
			 */
			public getRunStart(): number;
			/**
			 * Returns the index of the first character in the run that has the same attribute value for the given attribute as the current character.
			 * @param attribute 
			 */
			public getRunStart(attribute: java.text.AttributedCharacterIterator.Attribute): number;
			/**
			 * Returns the index of the first character in the run that has the same attribute values for the attributes in the set as the current character.
			 * @param attributes 
			 */
			public getRunStart(attributes: java.util.ISet<any>): number;
			/**
			 * Returns a new CharacterIterator with the same properties.
			 */
			clone(): any;
			/**
			 * Returns the character at the current index.
			 */
			current(): string;
			/**
			 * Sets the current position to the begin index and returns the character at the new position.
			 */
			first(): string;
			/**
			 * Returns the begin index.
			 */
			getBeginIndex(): number;
			/**
			 * Returns the end index.
			 */
			getEndIndex(): number;
			/**
			 * Returns the current index.
			 */
			getIndex(): number;
			/**
			 * Sets the current position to the end index - 1 and returns the character at the new position.
			 */
			last(): string;
			/**
			 * Increments the current index and returns the character at the new index.
			 */
			next(): string;
			/**
			 * Decrements the current index and returns the character at the new index.
			 */
			previous(): string;
			/**
			 * Sets the current index to a new position and returns the character at the new index.
			 * @param location 
			 */
			setIndex(location: number): string;
		}
		export module AttributedCharacterIterator {
			/**
			 * Defines keys for text attributes.
			 */
			export class Attribute extends java.lang.Object implements java.io.ISerializable {
				/**
				 * This attribute marks segments from an input method. Most input methods create these segments for words.
				 */
				static INPUT_METHOD_SEGMENT: java.text.AttributedCharacterIterator.Attribute;
				/**
				 * The attribute describing the language of a character. The value objects are of type Locale or a subtype of it.
				 */
				static LANGUAGE: java.text.AttributedCharacterIterator.Attribute;
				/**
				 * For languages that have different reading directions of text (like Japanese), this attribute allows to define which reading should be used. The value objects are of type Annotation which contain a String.
				 */
				static READING: java.text.AttributedCharacterIterator.Attribute;
				static class: java.lang.Class<java.text.AttributedCharacterIterator.Attribute>;
				/**
				 * Compares this attribute with the specified object. Checks if both objects are the same instance. It is defined final so all subclasses have the same behavior for this method.
				 * @param object 
				 */
				public equals(object: any): boolean;
				/**
				 * Returns the name of this attribute.
				 */
				protected getName(): string;
				/**
				 * Calculates the hash code for objects of type Attribute. It is defined final so all sub types calculate their hash code identically.
				 */
				public hashCode(): number;
				/**
				 * Resolves a deserialized instance to the correct constant attribute.
				 */
				protected readResolve(): any;
				/**
				 * Returns the name of the class followed by a "(", the name of the attribute, and a ")".
				 */
				public toString(): string;
			}
		}
		/**
		 * An implementation of CharacterIterator for strings.
		 */
		export class StringCharacterIterator extends java.lang.Object implements java.text.ICharacterIterator {
			/**
			 * Constructs a new StringCharacterIterator on the specified string. The begin and current indices are set to the beginning of the string, the end index is set to the length of the string.
			 * @param value 
			 */
			constructor(value: string);
			/**
			 * Constructs a new StringCharacterIterator on the specified string with the current index set to the specified value. The begin index is set to the beginning of the string, the end index is set to the length of the string.
			 * @param value 
			 * @param location 
			 */
			constructor(value: string, location: number);
			/**
			 * Constructs a new StringCharacterIterator on the specified string with the begin, end and current index set to the specified values.
			 * @param value 
			 * @param start 
			 * @param end 
			 * @param location 
			 */
			constructor(value: string, start: number, end: number, location: number);
			static class: java.lang.Class<java.text.StringCharacterIterator>;
			/**
			 * Returns a new StringCharacterIterator with the same source string, begin, end, and current index as this iterator.
			 */
			public clone(): any;
			/**
			 * Returns the character at the current index in the source string.
			 */
			public current(): string;
			/**
			 * Compares the specified object with this StringCharacterIterator and indicates if they are equal. In order to be equal, object must be an instance of StringCharacterIterator that iterates over the same sequence of characters with the same index.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Sets the current position to the begin index and returns the character at the new position in the source string.
			 */
			public first(): string;
			/**
			 * Returns the begin index in the source string.
			 */
			public getBeginIndex(): number;
			/**
			 * Returns the end index in the source string.
			 */
			public getEndIndex(): number;
			/**
			 * Returns the current index in the source string.
			 */
			public getIndex(): number;
			public hashCode(): number;
			/**
			 * Sets the current position to the end index - 1 and returns the character at the new position.
			 */
			public last(): string;
			/**
			 * Increments the current index and returns the character at the new index.
			 */
			public next(): string;
			/**
			 * Decrements the current index and returns the character at the new index.
			 */
			public previous(): string;
			/**
			 * Sets the current index in the source string.
			 * @param location 
			 */
			public setIndex(location: number): string;
			/**
			 * Sets the source string to iterate over. The begin and end positions are set to the start and end of this string.
			 * @param value 
			 */
			public setText(value: string): void;
		}
		/**
		 * Implements the <a href="http://unicode.org/reports/tr9/">Unicode Bidirectional Algorithm</a>.
		 */
		export class Bidi extends java.lang.Object {
			/**
			 * Creates a Bidi object from the AttributedCharacterIterator of a paragraph text. The RUN_DIRECTION attribute determines the base direction of the bidirectional text. If it is not specified explicitly, the algorithm uses DIRECTION_DEFAULT_LEFT_TO_RIGHT by default. The BIDI_EMBEDDING attribute specifies the level of embedding for each character. Values between -1 and -62 denote overrides at the level's absolute value, values from 1 to 62 indicate embeddings, and the 0 value indicates the level is calculated by the algorithm automatically. For the character with no BIDI_EMBEDDING attribute or with a improper attribute value, such as a null value, the algorithm treats its embedding level as 0. The NUMERIC_SHAPING attribute specifies the instance of NumericShaper used to convert European digits to other decimal digits before performing the bidi algorithm.
			 * @param paragraph 
			 */
			constructor(paragraph: java.text.IAttributedCharacterIterator);
			/**
			 * Creates a Bidi object.
			 * @param text 
			 * @param textStart 
			 * @param embeddings 
			 * @param embStart 
			 * @param paragraphLength 
			 * @param flags 
			 */
			constructor(text: native.Array<string>, textStart: number, embeddings: native.Array<number>, embStart: number, paragraphLength: number, flags: number);
			/**
			 * Creates a Bidi object.
			 * @param paragraph 
			 * @param flags 
			 */
			constructor(paragraph: string, flags: number);
			/**
			 * Constant that indicates the default base level. If there is no strong character, then set the paragraph level to 0 (left-to-right).
			 */
			static DIRECTION_DEFAULT_LEFT_TO_RIGHT: number;
			/**
			 * Constant that indicates the default base level. If there is no strong character, then set the paragraph level to 1 (right-to-left).
			 */
			static DIRECTION_DEFAULT_RIGHT_TO_LEFT: number;
			/**
			 * Constant that specifies the default base level as 0 (left-to-right).
			 */
			static DIRECTION_LEFT_TO_RIGHT: number;
			/**
			 * Constant that specifies the default base level as 1 (right-to-left).
			 */
			static DIRECTION_RIGHT_TO_LEFT: number;
			static class: java.lang.Class<java.text.Bidi>;
			/**
			 * Returns whether the base level is from left to right.
			 */
			public baseIsLeftToRight(): boolean;
			/**
			 * Creates a new Bidi object containing the information of one line from this object.
			 * @param lineStart 
			 * @param lineLimit 
			 */
			public createLineBidi(lineStart: number, lineLimit: number): java.text.Bidi;
			/**
			 * Returns the base level.
			 */
			public getBaseLevel(): number;
			/**
			 * Returns the length of the text in the Bidi object.
			 */
			public getLength(): number;
			/**
			 * Returns the level of a specified character.
			 * @param offset 
			 */
			public getLevelAt(offset: number): number;
			/**
			 * Returns the number of runs in the bidirectional text.
			 */
			public getRunCount(): number;
			/**
			 * Returns the level of the specified run.
			 * @param run 
			 */
			public getRunLevel(run: number): number;
			/**
			 * Returns the limit offset of the specified run.
			 * @param run 
			 */
			public getRunLimit(run: number): number;
			/**
			 * Returns the start offset of the specified run.
			 * @param run 
			 */
			public getRunStart(run: number): number;
			/**
			 * Indicates whether the text is from left to right, that is, both the base direction and the text direction is from left to right.
			 */
			public isLeftToRight(): boolean;
			/**
			 * Indicates whether the text direction is mixed.
			 */
			public isMixed(): boolean;
			/**
			 * Indicates whether the text is from right to left, that is, both the base direction and the text direction is from right to left.
			 */
			public isRightToLeft(): boolean;
			/**
			 * Reorders a range of objects according to their specified levels. This is a convenience function that does not use a Bidi object. The range of objects at index from objectStart to objectStart + count will be reordered according to the range of levels at index from levelStart to levelStart + count.
			 * @param levels 
			 * @param levelStart 
			 * @param objects 
			 * @param objectStart 
			 * @param count 
			 */
			public static reorderVisually(levels: native.Array<number>, levelStart: number, objects: native.Array<any>, objectStart: number, count: number): void;
			/**
			 * Indicates whether a range of characters of a text requires a Bidi object to display properly.
			 * @param text 
			 * @param start 
			 * @param limit 
			 */
			public static requiresBidi(text: native.Array<string>, start: number, limit: number): boolean;
			public toString(): string;
		}
		export module Bidi {
			/**
			 * TODO: if we care about performance, we might just want to use an int[] instead of a Run[].
			 */
			export class Run extends java.lang.Object {
				constructor(start: number, limit: number, level: number);
				static class: java.lang.Class<java.text.Bidi.Run>;
				public getLevel(): number;
				public getLimit(): number;
				public getStart(): number;
			}
		}
		/**
		 * An interface for the bidirectional iteration over a group of characters. The iteration starts at the begin index in the group of characters and continues to one index before the end index.
		 */
		export class CharacterIterator implements java.lang.ICloneable, java.text.ICharacterIterator {
			constructor(implementation: java.text.ICharacterIterator);
			/**
			 * A constant which indicates that there is no character at the current index.
			 */
			static DONE: string;
			/**
			 * Returns a new CharacterIterator with the same properties.
			 */
			public clone(): any;
			/**
			 * Returns the character at the current index.
			 */
			public current(): string;
			/**
			 * Sets the current position to the begin index and returns the character at the new position.
			 */
			public first(): string;
			/**
			 * Returns the begin index.
			 */
			public getBeginIndex(): number;
			/**
			 * Returns the end index.
			 */
			public getEndIndex(): number;
			/**
			 * Returns the current index.
			 */
			public getIndex(): number;
			/**
			 * Sets the current position to the end index - 1 and returns the character at the new position.
			 */
			public last(): string;
			/**
			 * Increments the current index and returns the character at the new index.
			 */
			public next(): string;
			/**
			 * Decrements the current index and returns the character at the new index.
			 */
			public previous(): string;
			/**
			 * Sets the current index to a new position and returns the character at the new index.
			 * @param location 
			 */
			public setIndex(location: number): string;
		}
		/**
		 * An abstract class for date/time formatting subclasses which formats and parses dates or time in a language-independent manner. The date/time formatting subclass, such as SimpleDateFormat, allows for formatting (i.e., date -> text), parsing (text -> date), and normalization. The date is represented as a Date object or as the milliseconds since January 1, 1970, 00:00:00 GMT.
		 */
		export class DateFormat extends java.text.Format {
			/**
			 * The format style constant defining the default format style. The default is MEDIUM.
			 */
			static DEFAULT: number;
			/**
			 * The format style constant defining the full style.
			 */
			static FULL: number;
			/**
			 * The format style constant defining the long style.
			 */
			static LONG: number;
			/**
			 * The format style constant defining the medium style.
			 */
			static MEDIUM: number;
			/**
			 * The format style constant defining the short style.
			 */
			static SHORT: number;
			/**
			 * The FieldPosition selector for 'G' field alignment, corresponds to the Calendar#ERA field.
			 */
			static ERA_FIELD: number;
			/**
			 * The FieldPosition selector for 'y' field alignment, corresponds to the Calendar#YEAR field.
			 */
			static YEAR_FIELD: number;
			/**
			 * The FieldPosition selector for 'M' field alignment, corresponds to the Calendar#MONTH field.
			 */
			static MONTH_FIELD: number;
			/**
			 * The FieldPosition selector for 'd' field alignment, corresponds to the Calendar#DATE field.
			 */
			static DATE_FIELD: number;
			/**
			 * The FieldPosition selector for 'k' field alignment, corresponds to the Calendar#HOUR_OF_DAY field. HOUR_OF_DAY1_FIELD is used for the one-based 24-hour clock. For example, 23:59 + 01:00 results in 24:59.
			 */
			static HOUR_OF_DAY1_FIELD: number;
			/**
			 * The FieldPosition selector for 'H' field alignment, corresponds to the Calendar#HOUR_OF_DAY field. HOUR_OF_DAY0_FIELD is used for the zero-based 24-hour clock. For example, 23:59 + 01:00 results in 00:59.
			 */
			static HOUR_OF_DAY0_FIELD: number;
			/**
			 * FieldPosition selector for 'm' field alignment, corresponds to the Calendar#MINUTE field.
			 */
			static MINUTE_FIELD: number;
			/**
			 * FieldPosition selector for 's' field alignment, corresponds to the Calendar#SECOND field.
			 */
			static SECOND_FIELD: number;
			/**
			 * FieldPosition selector for 'S' field alignment, corresponds to the Calendar#MILLISECOND field.
			 */
			static MILLISECOND_FIELD: number;
			/**
			 * FieldPosition selector for 'E' field alignment, corresponds to the Calendar#DAY_OF_WEEK field.
			 */
			static DAY_OF_WEEK_FIELD: number;
			/**
			 * FieldPosition selector for 'D' field alignment, corresponds to the Calendar#DAY_OF_YEAR field.
			 */
			static DAY_OF_YEAR_FIELD: number;
			/**
			 * FieldPosition selector for 'F' field alignment, corresponds to the Calendar#DAY_OF_WEEK_IN_MONTH field.
			 */
			static DAY_OF_WEEK_IN_MONTH_FIELD: number;
			/**
			 * FieldPosition selector for 'w' field alignment, corresponds to the Calendar#WEEK_OF_YEAR field.
			 */
			static WEEK_OF_YEAR_FIELD: number;
			/**
			 * FieldPosition selector for 'W' field alignment, corresponds to the Calendar#WEEK_OF_MONTH field.
			 */
			static WEEK_OF_MONTH_FIELD: number;
			/**
			 * FieldPosition selector for 'a' field alignment, corresponds to the Calendar#AM_PM field.
			 */
			static AM_PM_FIELD: number;
			/**
			 * FieldPosition selector for 'h' field alignment, corresponding to the Calendar#HOUR field.
			 */
			static HOUR1_FIELD: number;
			/**
			 * The FieldPosition selector for 'K' field alignment, corresponding to the Calendar#HOUR field.
			 */
			static HOUR0_FIELD: number;
			/**
			 * The FieldPosition selector for 'z' field alignment, corresponds to the Calendar#ZONE_OFFSET and Calendar#DST_OFFSET fields.
			 */
			static TIMEZONE_FIELD: number;
			static class: java.lang.Class<java.text.DateFormat>;
			/**
			 * Returns a new instance of DateFormat with the same properties.
			 */
			public clone(): any;
			/**
			 * Compares this date format with the specified object and indicates if they are equal.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Formats the specified object as a string using the pattern of this date format and appends the string to the specified string buffer.
			 * @param object 
			 * @param buffer 
			 * @param field 
			 */
			public format(object: any, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Formats the specified date using the rules of this date format.
			 * @param date 
			 */
			public format(date: java.util.Date): string;
			/**
			 * Formats the specified date as a string using the pattern of this date format and appends the string to the specified string buffer.
			 * @param date 
			 * @param buffer 
			 * @param field 
			 */
			public format(date: java.util.Date, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Returns an array of locales for which custom DateFormat instances are available.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			/**
			 * Returns the calendar used by this DateFormat.
			 */
			public getCalendar(): java.util.Calendar;
			/**
			 * Returns a DateFormat instance for formatting and parsing dates in the DEFAULT style for the default locale.
			 */
			public static getDateInstance(): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing dates in the specified style for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param style 
			 */
			public static getDateInstance(style: number): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing dates in the specified style for the specified locale.
			 * @param style 
			 * @param locale 
			 */
			public static getDateInstance(style: number, locale: java.util.Locale): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing dates and time values in the DEFAULT style for the default locale.
			 */
			public static getDateTimeInstance(): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing of both dates and time values in the manner appropriate for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param dateStyle 
			 * @param timeStyle 
			 */
			public static getDateTimeInstance(dateStyle: number, timeStyle: number): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing dates and time values in the specified styles for the specified locale.
			 * @param dateStyle 
			 * @param timeStyle 
			 * @param locale 
			 */
			public static getDateTimeInstance(dateStyle: number, timeStyle: number, locale: java.util.Locale): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing dates and times in the SHORT style for the default locale.
			 */
			public static getInstance(): java.text.DateFormat;
			/**
			 * Returns the NumberFormat used by this DateFormat.
			 */
			public getNumberFormat(): java.text.NumberFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing time values in the DEFAULT style for the default locale.
			 */
			public static getTimeInstance(): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing time values in the specified style for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param style 
			 */
			public static getTimeInstance(style: number): java.text.DateFormat;
			/**
			 * Returns a DateFormat instance for formatting and parsing time values in the specified style for the specified locale.
			 * @param style 
			 * @param locale 
			 */
			public static getTimeInstance(style: number, locale: java.util.Locale): java.text.DateFormat;
			/**
			 * Returns the time zone of this date format's calendar.
			 */
			public getTimeZone(): java.util.TimeZone;
			public hashCode(): number;
			/**
			 * Indicates whether the calendar used by this date format is lenient.
			 */
			public isLenient(): boolean;
			/**
			 * Parses a date from the specified string using the rules of this date format.
			 * @param string 
			 */
			public parse(string: string): java.util.Date;
			/**
			 * Parses a date from the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parse(string: string, position: java.text.ParsePosition): java.util.Date;
			/**
			 * Parses a date from the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parseObject(string: string, position: java.text.ParsePosition): any;
			/**
			 * Sets the calendar used by this date format.
			 * @param cal 
			 */
			public setCalendar(cal: java.util.Calendar): void;
			/**
			 * Specifies whether or not date/time parsing shall be lenient. With lenient parsing, the parser may use heuristics to interpret inputs that do not precisely match this object's format. With strict parsing, inputs must match this object's format.
			 * @param value 
			 */
			public setLenient(value: boolean): void;
			/**
			 * Sets the NumberFormat used by this date format.
			 * @param format 
			 */
			public setNumberFormat(format: java.text.NumberFormat): void;
			/**
			 * Sets the time zone of the calendar used by this date format.
			 * @param timezone 
			 */
			public setTimeZone(timezone: java.util.TimeZone): void;
			/**
			 * Formats the specified object using the rules of this format.
			 * @param object 
			 */
			format(object: any): string;
			/**
			 * Parses the specified string using the rules of this format.
			 * @param string 
			 */
			parseObject(string: string): any;
		}
		export module DateFormat {
			/**
			 * The instances of this inner class are used as attribute keys and values in AttributedCharacterIterator that the SimpleDateFormat#formatToCharacterIterator(Object) method returns.
			 */
			export class Field extends java.text.Format.Field {
				/**
				 * Marks the era part of a date.
				 */
				static ERA: java.text.DateFormat.Field;
				/**
				 * Marks the year part of a date.
				 */
				static YEAR: java.text.DateFormat.Field;
				/**
				 * Marks the month part of a date.
				 */
				static MONTH: java.text.DateFormat.Field;
				/**
				 * Marks the hour of the day part of a date (0-11).
				 */
				static HOUR_OF_DAY0: java.text.DateFormat.Field;
				/**
				 * Marks the hour of the day part of a date (1-12).
				 */
				static HOUR_OF_DAY1: java.text.DateFormat.Field;
				/**
				 * Marks the minute part of a time.
				 */
				static MINUTE: java.text.DateFormat.Field;
				/**
				 * Marks the second part of a time.
				 */
				static SECOND: java.text.DateFormat.Field;
				/**
				 * Marks the millisecond part of a time.
				 */
				static MILLISECOND: java.text.DateFormat.Field;
				/**
				 * Marks the day of the week part of a date.
				 */
				static DAY_OF_WEEK: java.text.DateFormat.Field;
				/**
				 * Marks the day of the month part of a date.
				 */
				static DAY_OF_MONTH: java.text.DateFormat.Field;
				/**
				 * Marks the day of the year part of a date.
				 */
				static DAY_OF_YEAR: java.text.DateFormat.Field;
				/**
				 * Marks the day of the week in the month part of a date.
				 */
				static DAY_OF_WEEK_IN_MONTH: java.text.DateFormat.Field;
				/**
				 * Marks the week of the year part of a date.
				 */
				static WEEK_OF_YEAR: java.text.DateFormat.Field;
				/**
				 * Marks the week of the month part of a date.
				 */
				static WEEK_OF_MONTH: java.text.DateFormat.Field;
				/**
				 * Marks the time indicator part of a date.
				 */
				static AM_PM: java.text.DateFormat.Field;
				/**
				 * Marks the hour part of a date (0-11).
				 */
				static HOUR0: java.text.DateFormat.Field;
				/**
				 * Marks the hour part of a date (1-12).
				 */
				static HOUR1: java.text.DateFormat.Field;
				/**
				 * Marks the time zone part of a date.
				 */
				static TIME_ZONE: java.text.DateFormat.Field;
				static class: java.lang.Class<java.text.DateFormat.Field>;
				/**
				 * Returns the Calendar field that this field represents.
				 */
				public getCalendarField(): number;
				/**
				 * Returns the DateFormat.Field instance for the given calendar field.
				 * @param calendarField 
				 */
				public static ofCalendarField(calendarField: number): java.text.DateFormat.Field;
			}
		}
		/**
		 * Encapsulates localized date-time formatting data, such as the names of the months, the names of the days of the week, and the time zone data. DateFormat and SimpleDateFormat both use DateFormatSymbols to encapsulate this information.
		 */
		export class DateFormatSymbols extends java.lang.Object implements java.io.ISerializable, java.lang.ICloneable {
			/**
			 * Constructs a new DateFormatSymbols instance containing the symbols for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			constructor();
			/**
			 * Constructs a new DateFormatSymbols instance containing the symbols for the specified locale.
			 * @param locale 
			 */
			constructor(locale: java.util.Locale);
			static class: java.lang.Class<java.text.DateFormatSymbols>;
			/**
			 * Gets zone strings, initializing them if necessary. Does not create a defensive copy, so make sure you do so before exposing the returned arrays to clients.
			 */
			internalZoneStrings(): native.Array<native.Array<string>>;
			/**
			 * Returns a new DateFormatSymbols instance for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getInstance(): java.text.DateFormatSymbols;
			/**
			 * Returns a new DateFormatSymbols for the given locale.
			 * @param locale the locale
			 */
			public static getInstance(locale: java.util.Locale): java.text.DateFormatSymbols;
			/**
			 * Returns an array of locales for which custom DateFormatSymbols instances are available.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			public clone(): any;
			/**
			 * Compares this object with the specified object and indicates if they are equal.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public toString(): string;
			/**
			 * Returns the array of strings which represent AM and PM. Use the java.util.Calendar constants Calendar.AM and Calendar.PM as indices for the array.
			 */
			public getAmPmStrings(): native.Array<string>;
			/**
			 * Returns the array of strings which represent BC and AD. Use the java.util.Calendar constants GregorianCalendar.BC and GregorianCalendar.AD as indices for the array.
			 */
			public getEras(): native.Array<string>;
			/**
			 * Returns the pattern characters used by SimpleDateFormat to specify date and time fields.
			 */
			public getLocalPatternChars(): string;
			/**
			 * Returns the array of strings containing the full names of the months. Use the java.util.Calendar constants Calendar.JANUARY etc. as indices for the array.
			 */
			public getMonths(): native.Array<string>;
			/**
			 * Returns the array of strings containing the abbreviated names of the months. Use the java.util.Calendar constants Calendar.JANUARY etc. as indices for the array.
			 */
			public getShortMonths(): native.Array<string>;
			/**
			 * Returns the array of strings containing the abbreviated names of the days of the week. Use the java.util.Calendar constants Calendar.SUNDAY etc. as indices for the array.
			 */
			public getShortWeekdays(): native.Array<string>;
			/**
			 * Returns the array of strings containing the full names of the days of the week. Use the java.util.Calendar constants Calendar.SUNDAY etc. as indices for the array.
			 */
			public getWeekdays(): native.Array<string>;
			/**
			 * Returns the two-dimensional array of strings containing localized names for time zones. Each row is an array of five strings: <ul> <li>The time zone ID, for example "America/Los_Angeles". This is not localized, and is used as a key into the table. <li>The long display name, for example "Pacific Standard Time". <li>The short display name, for example "PST". <li>The long display name for DST, for example "Pacific Daylight Time". This is the non-DST long name for zones that have never had DST, for example "Central Standard Time" for "Canada/Saskatchewan". <li>The short display name for DST, for example "PDT". This is the non-DST short name for zones that have never had DST, for example "CST" for "Canada/Saskatchewan". </ul>
			 */
			public getZoneStrings(): native.Array<native.Array<string>>;
			public hashCode(): number;
			/**
			 * Sets the array of strings which represent AM and PM. Use the java.util.Calendar constants Calendar.AM and Calendar.PM as indices for the array.
			 * @param data 
			 */
			public setAmPmStrings(data: native.Array<string>): void;
			/**
			 * Sets the array of Strings which represent BC and AD. Use the java.util.Calendar constants GregorianCalendar.BC and GregorianCalendar.AD as indices for the array.
			 * @param data 
			 */
			public setEras(data: native.Array<string>): void;
			/**
			 * Sets the pattern characters used by SimpleDateFormat to specify date and time fields.
			 * @param data 
			 */
			public setLocalPatternChars(data: string): void;
			/**
			 * Sets the array of strings containing the full names of the months. Use the java.util.Calendar constants Calendar.JANUARY etc. as indices for the array.
			 * @param data 
			 */
			public setMonths(data: native.Array<string>): void;
			/**
			 * Sets the array of strings containing the abbreviated names of the months. Use the java.util.Calendar constants Calendar.JANUARY etc. as indices for the array.
			 * @param data 
			 */
			public setShortMonths(data: native.Array<string>): void;
			/**
			 * Sets the array of strings containing the abbreviated names of the days of the week. Use the java.util.Calendar constants Calendar.SUNDAY etc. as indices for the array.
			 * @param data 
			 */
			public setShortWeekdays(data: native.Array<string>): void;
			/**
			 * Sets the array of strings containing the full names of the days of the week. Use the java.util.Calendar constants Calendar.SUNDAY etc. as indices for the array.
			 * @param data 
			 */
			public setWeekdays(data: native.Array<string>): void;
			/**
			 * Sets the two-dimensional array of strings containing localized names for time zones. See #getZoneStrings for details. IllegalArgumentException if any row has fewer than 5 elements. NullPointerException if zoneStrings == null.
			 */
			public setZoneStrings(zoneStrings: native.Array<native.Array<string>>): void;
		}
		/**
		 * Thrown when the string being parsed is not in the correct form.
		 */
		export class ParseException extends java.lang.Exception {
			/**
			 * Constructs a new instance of this class with its stack trace, detail message and the location of the error filled in.
			 * @param detailMessage 
			 * @param location 
			 */
			constructor(detailMessage: string, location: number);
			static class: java.lang.Class<java.text.ParseException>;
			/**
			 * Returns the index at which this parse exception occurred.
			 */
			public getErrorOffset(): number;
		}
		/**
		 * A concrete class for formatting and parsing dates in a locale-sensitive manner. Formatting turns a Date into a String, and parsing turns a String into a Date.
		 */
		export class SimpleDateFormat extends java.text.DateFormat {
			/**
			 * Constructs a new SimpleDateFormat for formatting and parsing dates and times in the SHORT style for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			constructor();
			/**
			 * Constructs a new SimpleDateFormat using the specified non-localized pattern and the DateFormatSymbols and Calendar for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param pattern 
			 */
			constructor(pattern: string);
			/**
			 * Constructs a new SimpleDateFormat using the specified non-localized pattern and DateFormatSymbols and the Calendar for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param template 
			 * @param value 
			 */
			constructor(template: string, value: java.text.DateFormatSymbols);
			/**
			 * Constructs a new SimpleDateFormat using the specified non-localized pattern and the DateFormatSymbols and Calendar for the specified locale.
			 * @param template 
			 * @param locale 
			 */
			constructor(template: string, locale: java.util.Locale);
			static class: java.lang.Class<java.text.SimpleDateFormat>;
			/**
			 * Changes the pattern of this simple date format to the specified pattern which uses localized pattern characters.
			 * @param template 
			 */
			public applyLocalizedPattern(template: string): void;
			/**
			 * Changes the pattern of this simple date format to the specified pattern which uses non-localized pattern characters.
			 * @param template 
			 */
			public applyPattern(template: string): void;
			/**
			 * Returns a new SimpleDateFormat with the same pattern and properties as this simple date format.
			 */
			public clone(): any;
			/**
			 * Compares the specified object with this simple date format and indicates if they are equal. In order to be equal, object must be an instance of SimpleDateFormat and have the same DateFormat properties, pattern, DateFormatSymbols and creation year.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Formats the specified object using the rules of this simple date format and returns an AttributedCharacterIterator with the formatted date and attributes.
			 * @param object 
			 */
			public formatToCharacterIterator(object: any): java.text.IAttributedCharacterIterator;
			/**
			 * Formats the specified date as a string using the pattern of this date format and appends the string to the specified string buffer.
			 * @param date 
			 * @param buffer 
			 * @param fieldPos 
			 */
			public format(date: java.util.Date, buffer: java.lang.StringBuffer, fieldPos: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Returns the date which is the start of the one hundred year period for two-digit year values. See #set2DigitYearStart for details.
			 */
			public get2DigitYearStart(): java.util.Date;
			/**
			 * Returns the DateFormatSymbols used by this simple date format.
			 */
			public getDateFormatSymbols(): java.text.DateFormatSymbols;
			public hashCode(): number;
			/**
			 * Parses a date from the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parse(string: string, position: java.text.ParsePosition): java.util.Date;
			/**
			 * Sets the date which is the start of the one hundred year period for two-digit year values.
			 */
			public set2DigitYearStart(date: java.util.Date): void;
			/**
			 * Sets the DateFormatSymbols used by this simple date format.
			 * @param value 
			 */
			public setDateFormatSymbols(value: java.text.DateFormatSymbols): void;
			/**
			 * Returns the pattern of this simple date format using localized pattern characters.
			 */
			public toLocalizedPattern(): string;
			/**
			 * Returns the pattern of this simple date format using non-localized pattern characters.
			 */
			public toPattern(): string;
			/**
			 * Formats the specified object as a string using the pattern of this date format and appends the string to the specified string buffer.
			 * @param object 
			 * @param buffer 
			 * @param field 
			 */
			format(object: any, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Formats the specified date using the rules of this date format.
			 * @param date 
			 */
			format(date: java.util.Date): string;
			/**
			 * Parses a date from the specified string using the rules of this date format.
			 * @param string 
			 */
			parse(string: string): java.util.Date;
			/**
			 * Formats the specified object using the rules of this format.
			 * @param object 
			 */
			format(object: any): string;
		}
		/**
		 * The abstract base class for all number formats. This class provides the interface for formatting and parsing numbers. NumberFormat also provides methods for determining which locales have number formats, and what their names are.
		 */
		export class NumberFormat extends java.text.Format {
			/**
			 * Field constant identifying the integer part of a number.
			 */
			static INTEGER_FIELD: number;
			/**
			 * Field constant identifying the fractional part of a number.
			 */
			static FRACTION_FIELD: number;
			static class: java.lang.Class<java.text.NumberFormat>;
			/**
			 * Returns a new NumberFormat with the same properties.
			 */
			public clone(): any;
			/**
			 * Compares the specified object to this number format and indicates if they are equal. In order to be equal, object must be an instance of NumberFormat with the same pattern and properties.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Formats the specified double using the rules of this number format.
			 * @param value 
			 */
			public format(value: number): string;
			/**
			 * Formats the specified double value as a string using the pattern of this number format and appends the string to the specified string buffer.
			 * @param value 
			 * @param buffer 
			 * @param field 
			 */
			public format(value: number, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Formats a number into a supplied buffer.
			 * @param object 
			 * @param buffer 
			 * @param field 
			 */
			public format(object: any, buffer: java.lang.StringBuffer, field: java.text.FieldPosition): java.lang.StringBuffer;
			/**
			 * Returns an array of locales for which custom NumberFormat instances are available.
			 */
			public static getAvailableLocales(): native.Array<java.util.Locale>;
			/**
			 * Returns the currency used by this number format.
			 */
			public getCurrency(): java.util.Currency;
			/**
			 * Returns a NumberFormat for formatting and parsing currency values for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getCurrencyInstance(): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing currency values for the specified locale.
			 * @param locale 
			 */
			public static getCurrencyInstance(locale: java.util.Locale): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing integers for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getIntegerInstance(): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing integers for the specified locale.
			 * @param locale 
			 */
			public static getIntegerInstance(locale: java.util.Locale): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing numbers for the default locale.
			 */
			public static getInstance(): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing numbers for the specified locale.
			 * @param locale 
			 */
			public static getInstance(locale: java.util.Locale): java.text.NumberFormat;
			/**
			 * Returns the maximum number of fraction digits that are printed when formatting. If the maximum is less than the number of fraction digits, the least significant digits are truncated.
			 */
			public getMaximumFractionDigits(): number;
			/**
			 * Returns the maximum number of integer digits that are printed when formatting. If the maximum is less than the number of integer digits, the most significant digits are truncated.
			 */
			public getMaximumIntegerDigits(): number;
			/**
			 * Returns the minimum number of fraction digits that are printed when formatting.
			 */
			public getMinimumFractionDigits(): number;
			/**
			 * Returns the minimum number of integer digits that are printed when formatting.
			 */
			public getMinimumIntegerDigits(): number;
			/**
			 * Returns a NumberFormat for formatting and parsing numbers for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getNumberInstance(): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing numbers for the specified locale.
			 * @param locale 
			 */
			public static getNumberInstance(locale: java.util.Locale): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing percentage values for the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public static getPercentInstance(): java.text.NumberFormat;
			/**
			 * Returns a NumberFormat for formatting and parsing percentage values for the given locale.
			 */
			public static getPercentInstance(locale: java.util.Locale): java.text.NumberFormat;
			public hashCode(): number;
			/**
			 * Indicates whether this number format formats and parses numbers using a grouping separator.
			 */
			public isGroupingUsed(): boolean;
			/**
			 * Indicates whether this number format only parses integer numbers. Parsing stops if a decimal separator is encountered.
			 */
			public isParseIntegerOnly(): boolean;
			/**
			 * Parses a Number from the specified string using the rules of this number format.
			 * @param string 
			 */
			public parse(string: string): java.lang.Number;
			/**
			 * Parses a Number from the specified string starting at the index specified by position. If the string is successfully parsed then the index of the ParsePosition is updated to the index following the parsed text. On error, the index is unchanged and the error index of ParsePosition is set to the index where the error occurred.
			 * @param string 
			 * @param position 
			 */
			public parse(string: string, position: java.text.ParsePosition): java.lang.Number;
			public parseObject(string: string, position: java.text.ParsePosition): any;
			/**
			 * Sets the currency used by this number format when formatting currency values. The min and max fraction digits remain the same.
			 * @param currency 
			 */
			public setCurrency(currency: java.util.Currency): void;
			/**
			 * Sets whether this number format formats and parses numbers using a grouping separator.
			 * @param value 
			 */
			public setGroupingUsed(value: boolean): void;
			/**
			 * Sets the maximum number of fraction digits that are printed when formatting. If the maximum is less than the number of fraction digits, the least significant digits are truncated.
			 * @param value 
			 */
			public setMaximumFractionDigits(value: number): void;
			/**
			 * Sets the new maximum count of integer digits that are printed when formatting. If the maximum is less than the number of integer digits, the most significant digits are truncated.
			 * @param value 
			 */
			public setMaximumIntegerDigits(value: number): void;
			/**
			 * Sets the minimum number of fraction digits that are printed when formatting.
			 * @param value 
			 */
			public setMinimumFractionDigits(value: number): void;
			/**
			 * Sets the minimum number of integer digits that are printed when formatting.
			 * @param value 
			 */
			public setMinimumIntegerDigits(value: number): void;
			/**
			 * Specifies if this number format should parse numbers only as integers or else as any kind of number. If this method is called with a true value then subsequent parsing attempts will stop if a decimal separator is encountered.
			 * @param value 
			 */
			public setParseIntegerOnly(value: boolean): void;
			/**
			 * Returns the RoundingMode used by this NumberFormat. The default implementation in NumberFormat throws UnsupportedOperationException. Subclasses for which a rounding mode is meaningful are expected to override this method. 1.6
			 */
			public getRoundingMode(): java.math.RoundingMode;
			/**
			 * Sets the RoundingMode used by this NumberFormat. The default implementation in NumberFormat throws UnsupportedOperationException. Subclasses for which a rounding mode is meaningful are expected to override this method. 1.6
			 */
			public setRoundingMode(roundingMode: java.math.RoundingMode): void;
			/**
			 * Formats the specified object using the rules of this format.
			 * @param object 
			 */
			format(object: any): string;
			/**
			 * Parses the specified string using the rules of this format.
			 * @param string 
			 */
			parseObject(string: string): any;
		}
		export module NumberFormat {
			/**
			 * The instances of this inner class are used as attribute keys and values in AttributedCharacterIterator that the NumberFormat#formatToCharacterIterator(Object) method returns.
			 */
			export class Field extends java.text.Format.Field {
				/**
				 * This constant stands for the number sign.
				 */
				static SIGN: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the integer part of the number.
				 */
				static INTEGER: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the fraction part of the number.
				 */
				static FRACTION: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the exponent part of the number.
				 */
				static EXPONENT: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the exponent sign symbol.
				 */
				static EXPONENT_SIGN: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the exponent symbol.
				 */
				static EXPONENT_SYMBOL: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the decimal separator.
				 */
				static DECIMAL_SEPARATOR: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the grouping separator.
				 */
				static GROUPING_SEPARATOR: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the percent symbol.
				 */
				static PERCENT: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the permille symbol.
				 */
				static PERMILLE: java.text.NumberFormat.Field;
				/**
				 * This constant stands for the currency symbol.
				 */
				static CURRENCY: java.text.NumberFormat.Field;
				static class: java.lang.Class<java.text.NumberFormat.Field>;
			}
		}
	}
	export module lang {
		/**
		 * The superclass of all enumerated types. Actual enumeration types inherit from this class, but extending this class does not make a class an enumeration type, since the compiler needs to generate special information for it.
		 */
		export class Enum<E> extends java.lang.Object implements java.io.ISerializable {
			static class: java.lang.Class<java.lang.Enum<any>>;
			/**
			 * Returns the name of this enum constant. The name is the field as it appears in the enum declaration.
			 */
			public name(): string;
			/**
			 * Returns the position of the enum constant in the declaration. The first constant has an ordinal value of zero.
			 */
			public ordinal(): number;
			/**
			 * Returns a string containing a concise, human-readable description of this object. In this case, the enum constant's name is returned.
			 */
			public toString(): string;
			/**
			 * Compares this object with the specified object and indicates if they are equal. In order to be equal, object must be identical to this enum constant.
			 * @param other 
			 */
			public equals(other: any): boolean;
			public hashCode(): number;
			/**
			 * Enum objects are singletons, they may not be cloned. This method always throws a CloneNotSupportedException.
			 */
			protected clone(): any;
			/**
			 * Compares this object to the specified enum object to determine their relative order. This method compares the object's ordinal values, that is, their position in the enum declaration.
			 * @param o 
			 */
			public compareTo(o: E): number;
			/**
			 * Returns the enum constant's declaring class.
			 */
			public getDeclaringClass(): java.lang.Class<E>;
			/**
			 * Returns the constant with the specified name of the specified enum type.
			 * @param enumType 
			 * @param name 
			 */
			public static valueOf<T>(enumType: java.lang.Class<T>, name: string): T;
			/**
			 * Enum types may not have finalizers.
			 */
			protected finalize(): void;
		}
		/**
		 * Instances of classes that implement this interface can be used with the enhanced for loop.
		 */
		interface IIterable<T> {
			/**
			 * Returns an Iterator for the elements in this object.
			 */
			iterator(): java.util.IIterator<T>;
		}
		export class TwoEnumerationsInOne extends java.lang.Object {
			constructor(first: java.util.IEnumeration<java.net.URL>, second: java.util.IEnumeration<java.net.URL>);
			static class: java.lang.Class<java.lang.TwoEnumerationsInOne>;
			public hasMoreElements(): boolean;
			public nextElement(): java.net.URL;
		}
		/**
		 * An immutable sequence of characters/code units (chars). A String is represented by array of UTF-16 values, such that Unicode supplementary characters (code points) are stored/encoded as surrogate pairs via Unicode code units (char).
		 */
		export class String extends java.lang.Object implements java.io.ISerializable, java.lang.ICharSequence {
			/**
			 * Creates an empty string.
			 */
			constructor();
			/**
			 * Converts the byte array to a string using the system's java.nio.charset.Charset#defaultCharset default charset.
			 */
			constructor(data: native.Array<number>);
			/**
			 * Converts the byte array to a string, setting the high byte of every character to the specified value.
			 * @param data 
			 * @param high 
			 */
			constructor(data: native.Array<number>, high: number);
			/**
			 * Converts a subsequence of the byte array to a string using the system's java.nio.charset.Charset#defaultCharset default charset.
			 */
			constructor(data: native.Array<number>, offset: number, byteCount: number);
			/**
			 * Converts the byte array to a string, setting the high byte of every character to high.
			 */
			constructor(data: native.Array<number>, high: number, offset: number, byteCount: number);
			/**
			 * Converts the byte array to a string using the named charset.
			 */
			constructor(data: native.Array<number>, offset: number, byteCount: number, charsetName: string);
			/**
			 * Converts the byte array to a string using the named charset.
			 */
			constructor(data: native.Array<number>, charsetName: string);
			/**
			 * Converts the byte array to a string using the given charset.
			 */
			constructor(data: native.Array<number>, offset: number, byteCount: number, charset: java.nio.charset.Charset);
			/**
			 * Converts the byte array to a String using the given charset.
			 */
			constructor(data: native.Array<number>, charset: java.nio.charset.Charset);
			/**
			 * Constructs a new string with the same sequence of characters as toCopy. The returned string's <a href="#backing_array">backing array</a> is no larger than necessary.
			 */
			constructor(toCopy: string);
			/**
			 * Creates a String from the contents of the specified StringBuffer.
			 */
			constructor(stringBuffer: java.lang.StringBuffer);
			/**
			 * Creates a String from the contents of the specified StringBuilder.
			 */
			constructor(stringBuilder: java.lang.StringBuilder);
			/**
			 * A comparator ignoring the case of the characters.
			 */
			static CASE_INSENSITIVE_ORDER: java.util.IComparator<string>;
			static class: java.lang.Class<java.lang.String>;
			/**
			 * Returns the character at the specified offset in this string.
			 * @param index 
			 */
			public charAt(index: number): string;
			/**
			 * Compares the specified string to this string using the Unicode values of the characters. Returns 0 if the strings contain the same characters in the same order. Returns a negative integer if the first non-equal character in this string has a Unicode value which is less than the Unicode value of the character at the same position in the specified string, or if this string is a prefix of the specified string. Returns a positive integer if the first non-equal character in this string has a Unicode value which is greater than the Unicode value of the character at the same position in the specified string, or if the specified string is a prefix of this string.
			 * @param string 
			 */
			public compareTo(string: string): number;
			/**
			 * Compares the specified string to this string using the Unicode values of the characters, ignoring case differences. Returns 0 if the strings contain the same characters in the same order. Returns a negative integer if the first non-equal character in this string has a Unicode value which is less than the Unicode value of the character at the same position in the specified string, or if this string is a prefix of the specified string. Returns a positive integer if the first non-equal character in this string has a Unicode value which is greater than the Unicode value of the character at the same position in the specified string, or if the specified string is a prefix of this string.
			 * @param string 
			 */
			public compareToIgnoreCase(string: string): number;
			/**
			 * Concatenates this string and the specified string.
			 * @param string 
			 */
			public concat(string: string): string;
			/**
			 * Creates a new string containing the characters in the specified character array. Modifying the character array after creating the string has no effect on the string.
			 * @param data 
			 */
			public static copyValueOf(data: native.Array<string>): string;
			/**
			 * Creates a new string containing the specified characters in the character array. Modifying the character array after creating the string has no effect on the string.
			 * @param data 
			 * @param start 
			 * @param length 
			 */
			public static copyValueOf(data: native.Array<string>, start: number, length: number): string;
			/**
			 * Compares the specified string to this string to determine if the specified string is a suffix.
			 * @param suffix 
			 */
			public endsWith(suffix: string): boolean;
			/**
			 * Compares the specified object to this string and returns true if they are equal. The object must be an instance of string with the same characters in the same order.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Compares the specified string to this string ignoring the case of the characters and returns true if they are equal.
			 * @param string 
			 */
			public equalsIgnoreCase(string: string): boolean;
			/**
			 * Mangles this string into a byte array by stripping the high order bits from each character. Use #getBytes() or #getBytes(String) instead.
			 * @param start 
			 * @param end 
			 * @param data 
			 * @param index 
			 */
			public getBytes(start: number, end: number, data: native.Array<number>, index: number): void;
			/**
			 * Returns a new byte array containing the characters of this string encoded using the system's java.nio.charset.Charset#defaultCharset default charset.
			 */
			public getBytes(): native.Array<number>;
			/**
			 * Returns a new byte array containing the characters of this string encoded using the named charset.
			 */
			public getBytes(charsetName: string): native.Array<number>;
			/**
			 * Returns a new byte array containing the characters of this string encoded using the given charset.
			 */
			public getBytes(charset: java.nio.charset.Charset): native.Array<number>;
			/**
			 * Copies the specified characters in this string to the character array starting at the specified offset in the character array.
			 * @param start 
			 * @param end 
			 * @param buffer 
			 * @param index 
			 */
			public getChars(start: number, end: number, buffer: native.Array<string>, index: number): void;
			/**
			 * Version of getChars without bounds checks, for use by other classes within the java.lang package only. The caller is responsible for ensuring that start >= 0 && start <= end && end <= count.
			 */
			_getChars(start: number, end: number, buffer: native.Array<string>, index: number): void;
			public hashCode(): number;
			/**
			 * Searches in this string for the first index of the specified character. The search for the character starts at the beginning and moves towards the end of this string.
			 * @param c 
			 */
			public indexOf(c: number): number;
			/**
			 * Searches in this string for the index of the specified character. The search for the character starts at the specified offset and moves towards the end of this string.
			 * @param c 
			 * @param start 
			 */
			public indexOf(c: number, start: number): number;
			/**
			 * Searches in this string for the first index of the specified string. The search for the string starts at the beginning and moves towards the end of this string.
			 * @param string 
			 */
			public indexOf(string: string): number;
			/**
			 * Searches in this string for the index of the specified string. The search for the string starts at the specified offset and moves towards the end of this string.
			 * @param subString 
			 * @param start 
			 */
			public indexOf(subString: string, start: number): number;
			/**
			 * Returns an interned string equal to this string. The VM maintains an internal set of unique strings. All string literals found in loaded classes' constant pools are automatically interned. Manually-interned strings are only weakly referenced, so calling intern won't lead to unwanted retention.
			 */
			public intern(): string;
			/**
			 * Returns true if the length of this string is 0.
			 */
			public isEmpty(): boolean;
			/**
			 * Returns the last index of the code point c, or -1. The search for the character starts at the end and moves towards the beginning of this string.
			 */
			public lastIndexOf(c: number): number;
			/**
			 * Returns the last index of the code point c, or -1. The search for the character starts at offset start and moves towards the beginning of this string.
			 */
			public lastIndexOf(c: number, start: number): number;
			/**
			 * Searches in this string for the last index of the specified string. The search for the string starts at the end and moves towards the beginning of this string.
			 * @param string 
			 */
			public lastIndexOf(string: string): number;
			/**
			 * Searches in this string for the index of the specified string. The search for the string starts at the specified offset and moves towards the beginning of this string.
			 * @param subString 
			 * @param start 
			 */
			public lastIndexOf(subString: string, start: number): number;
			/**
			 * Returns the size of this string.
			 */
			public length(): number;
			/**
			 * Compares the specified string to this string and compares the specified range of characters to determine if they are the same.
			 * @param thisStart 
			 * @param string 
			 * @param start 
			 * @param length 
			 */
			public regionMatches(thisStart: number, string: string, start: number, length: number): boolean;
			/**
			 * Compares the specified string to this string and compares the specified range of characters to determine if they are the same. When ignoreCase is true, the case of the characters is ignored during the comparison.
			 * @param ignoreCase 
			 * @param thisStart 
			 * @param string 
			 * @param start 
			 * @param length 
			 */
			public regionMatches(ignoreCase: boolean, thisStart: number, string: string, start: number, length: number): boolean;
			/**
			 * Copies this string replacing occurrences of the specified character with another character.
			 * @param oldChar 
			 * @param newChar 
			 */
			public replace(oldChar: string, newChar: string): string;
			/**
			 * Compares the specified string to this string to determine if the specified string is a prefix.
			 * @param prefix 
			 */
			public startsWith(prefix: string): boolean;
			/**
			 * Compares the specified string to this string, starting at the specified offset, to determine if the specified string is a prefix.
			 * @param prefix 
			 * @param start 
			 */
			public startsWith(prefix: string, start: number): boolean;
			/**
			 * Returns a string containing a suffix of this string. The returned string shares this string's <a href="#backing_array">backing array</a>.
			 * @param start 
			 */
			public substring(start: number): string;
			/**
			 * Returns a string containing a subsequence of characters from this string. The returned string shares this string's <a href="#backing_array">backing array</a>.
			 * @param start 
			 * @param end 
			 */
			public substring(start: number, end: number): string;
			/**
			 * Copies the characters in this string to a character array.
			 */
			public toCharArray(): native.Array<string>;
			/**
			 * Converts this string to lower case, using the rules of the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public toLowerCase(): string;
			/**
			 * Converts this string to lower case, using the rules of locale.
			 */
			public toLowerCase(locale: java.util.Locale): string;
			/**
			 * Returns this string.
			 */
			public toString(): string;
			/**
			 * Converts this this string to upper case, using the rules of the user's default locale. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 */
			public toUpperCase(): string;
			/**
			 * Converts this this string to upper case, using the rules of locale.
			 */
			public toUpperCase(locale: java.util.Locale): string;
			/**
			 * Copies this string removing white space characters from the beginning and end of the string.
			 */
			public trim(): string;
			/**
			 * Creates a new string containing the characters in the specified character array. Modifying the character array after creating the string has no effect on the string.
			 * @param data 
			 */
			public static valueOf(data: native.Array<string>): string;
			/**
			 * Creates a new string containing the specified characters in the character array. Modifying the character array after creating the string has no effect on the string.
			 * @param data 
			 * @param start 
			 * @param length 
			 */
			public static valueOf(data: native.Array<string>, start: number, length: number): string;
			/**
			 * Converts the specified character to its string representation.
			 * @param value 
			 */
			public static valueOf(value: string): string;
			/**
			 * Converts the specified double to its string representation.
			 * @param value 
			 */
			public static valueOf(value: number): string;
			/**
			 * Converts the specified object to its string representation. If the object is null return the string "null", otherwise use toString() to get the string representation.
			 * @param value 
			 */
			public static valueOf(value: any): string;
			/**
			 * Converts the specified boolean to its string representation. When the boolean is true return "true", otherwise return "false".
			 * @param value 
			 */
			public static valueOf(value: boolean): string;
			/**
			 * Returns whether the characters in the StringBuffer strbuf are the same as those in this string.
			 * @param strbuf 
			 */
			public contentEquals(strbuf: java.lang.StringBuffer): boolean;
			/**
			 * Compares a CharSequence to this String to determine if their contents are equal.
			 * @param cs 
			 */
			public contentEquals(cs: string): boolean;
			/**
			 * Tests whether this string matches the given regularExpression. This method returns true only if the regular expression matches the <i>entire</i> input string. A common mistake is to assume that this method behaves like #contains; if you want to match anywhere within the input string, you need to add .* to the beginning and end of your regular expression. See Pattern#matches.
			 */
			public matches(regularExpression: string): boolean;
			/**
			 * Replaces all matches for regularExpression within this string with the given replacement. See Pattern for regular expression syntax.
			 */
			public replaceAll(regularExpression: string, replacement: string): string;
			/**
			 * Replaces the first match for regularExpression within this string with the given replacement. See Pattern for regular expression syntax.
			 */
			public replaceFirst(regularExpression: string, replacement: string): string;
			/**
			 * Splits this string using the supplied regularExpression. Equivalent to split(regularExpression, 0). See Pattern#split(CharSequence, int) for an explanation of limit. See Pattern for regular expression syntax.
			 */
			public split(regularExpression: string): native.Array<string>;
			/**
			 * Splits this string using the supplied regularExpression. See Pattern#split(CharSequence, int) for an explanation of limit. See Pattern for regular expression syntax.
			 */
			public split(regularExpression: string, limit: number): native.Array<string>;
			/**
			 * Has the same result as the substring function, but is present so that string may implement the CharSequence interface.
			 * @param start 
			 * @param end 
			 */
			public subSequence(start: number, end: number): string;
			/**
			 * Returns the Unicode code point at the given index.
			 */
			public codePointAt(index: number): number;
			/**
			 * Returns the Unicode code point that precedes the given index.
			 */
			public codePointBefore(index: number): number;
			/**
			 * Calculates the number of Unicode code points between start and end.
			 * @param start 
			 * @param end 
			 */
			public codePointCount(start: number, end: number): number;
			/**
			 * Determines if this String contains the sequence of characters in the CharSequence passed.
			 * @param cs 
			 */
			public contains(cs: string): boolean;
			/**
			 * Returns the index within this object that is offset from index by codePointOffset code points.
			 * @param index 
			 * @param codePointOffset 
			 */
			public offsetByCodePoints(index: number, codePointOffset: number): number;
			/**
			 * Returns a localized formatted string, using the supplied format and arguments, using the user's default locale.
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public static format(format: string, args: native.Array<any>): string;
			/**
			 * Returns a formatted string, using the supplied format and arguments, localized to the given locale.
			 * @param locale 
			 * @param format the format string (see {@link java.util.Formatter#format})
			 * @param args 
			 */
			public static format(locale: java.util.Locale, format: string, args: native.Array<any>): string;
		}
		export module String {
			/**
			 * CaseInsensitiveComparator compares Strings ignoring the case of the characters.
			 */
			export class CaseInsensitiveComparator extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.lang.String.CaseInsensitiveComparator>;
				/**
				 * Compare the two objects to determine the relative ordering.
				 * @param o1 
				 * @param o2 
				 */
				public compare(o1: string, o2: string): number;
			}
		}
		/**
		 * Class Math provides basic math constants and operations such as trigonometric functions, hyperbolic functions, exponential, logarithms, etc.
		 */
		export class Math extends java.lang.Object {
			/**
			 * The double value closest to e, the base of the natural logarithm.
			 */
			static E: number;
			/**
			 * The double value closest to pi, the ratio of a circle's circumference to its diameter.
			 */
			static PI: number;
			static class: java.lang.Class<java.lang.Math>;
			/**
			 * Returns the absolute value of the argument.
			 */
			public static abs(d: number): any;
			/**
			 * Returns the closest double approximation of the arc cosine of the argument within the range [0..pi]. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static acos(d: number): any;
			/**
			 * Returns the closest double approximation of the arc sine of the argument within the range [-pi/2..pi/2]. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static asin(d: number): any;
			/**
			 * Returns the closest double approximation of the arc tangent of the argument within the range [-pi/2..pi/2]. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static atan(d: number): any;
			/**
			 * Returns the closest double approximation of the arc tangent of y/x within the range [-pi..pi]. This is the angle of the polar representation of the rectangular coordinates (x,y). The returned result is within 2 ulps (units in the last place) of the real result.
			 * @param y 
			 * @param x 
			 */
			public static atan2(y: number, x: number): any;
			/**
			 * Returns the closest double approximation of the cube root of the argument.
			 * @param d 
			 */
			public static cbrt(d: number): any;
			/**
			 * Returns the double conversion of the most negative (closest to negative infinity) integer value which is greater than the argument.
			 * @param d 
			 */
			public static ceil(d: number): any;
			/**
			 * Returns the closest double approximation of the cosine of the argument. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static cos(d: number): any;
			/**
			 * Returns the closest double approximation of the hyperbolic cosine of the argument. The returned result is within 2.5 ulps (units in the last place) of the real result.
			 * @param d 
			 */
			public static cosh(d: number): any;
			/**
			 * Returns the closest double approximation of the raising "e" to the power of the argument. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static exp(d: number): any;
			/**
			 * Returns the closest double approximation of <i>e</i><sup> d</sup>- 1. If the argument is very close to 0, it is much more accurate to use expm1(d)+1 than exp(d) (due to cancellation of significant digits). The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static expm1(d: number): any;
			/**
			 * Returns the double conversion of the most positive (closest to positive infinity) integer value which is less than the argument.
			 * @param d 
			 */
			public static floor(d: number): any;
			/**
			 * Returns sqrt(<i>x</i><sup>2</sup>+ <i> y</i><sup>2</sup>). The final result is without medium underflow or overflow. The returned result is within 1 ulp (unit in the last place) of the real result. If one parameter remains constant, the result should be semi-monotonic.
			 * @param x 
			 * @param y 
			 */
			public static hypot(x: number, y: number): any;
			/**
			 * Returns the remainder of dividing x by y using the IEEE 754 rules. The result is x-round(x/p)*p where round(x/p) is the nearest integer (rounded to even), but without numerical cancellation problems.
			 * @param x 
			 * @param y 
			 */
			public static IEEEremainder(x: number, y: number): any;
			/**
			 * Returns the closest double approximation of the natural logarithm of the argument. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static log(d: number): any;
			/**
			 * Returns the closest double approximation of the base 10 logarithm of the argument. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static log10(d: number): any;
			/**
			 * Returns the closest double approximation of the natural logarithm of the sum of the argument and 1. If the argument is very close to 0, it is much more accurate to use log1p(d) than log(1.0+d) (due to numerical cancellation). The returned result is within 1 ulp (unit in the last place) of the real result and is semi-monotonic.
			 * @param d 
			 */
			public static log1p(d: number): any;
			/**
			 * Returns the most positive (closest to positive infinity) of the two arguments.
			 */
			public static max(d1: number, d2: number): any;
			/**
			 * Returns the most negative (closest to negative infinity) of the two arguments.
			 */
			public static min(d1: number, d2: number): any;
			/**
			 * Returns the closest double approximation of the result of raising x to the power of y.
			 * @param x 
			 * @param y 
			 */
			public static pow(x: number, y: number): any;
			/**
			 * Returns the double conversion of the result of rounding the argument to an integer. Tie breaks are rounded towards even.
			 * @param d 
			 */
			public static rint(d: number): any;
			/**
			 * Returns the result of rounding the argument to an integer. The result is equivalent to (long) Math.floor(d+0.5).
			 * @param d 
			 */
			public static round(d: number): any;
			/**
			 * Returns the signum function of the argument. If the argument is less than zero, it returns -1.0. If the argument is greater than zero, 1.0 is returned. If the argument is either positive or negative zero, the argument is returned as result.
			 * @param d 
			 */
			public static signum(d: number): any;
			/**
			 * Returns the closest double approximation of the sine of the argument. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static sin(d: number): any;
			/**
			 * Returns the closest double approximation of the hyperbolic sine of the argument. The returned result is within 2.5 ulps (units in the last place) of the real result.
			 * @param d 
			 */
			public static sinh(d: number): any;
			/**
			 * Returns the closest double approximation of the square root of the argument.
			 */
			public static sqrt(d: number): any;
			/**
			 * Returns the closest double approximation of the tangent of the argument. The returned result is within 1 ulp (unit in the last place) of the real result.
			 * @param d 
			 */
			public static tan(d: number): any;
			/**
			 * Returns the closest double approximation of the hyperbolic tangent of the argument. The absolute value is always less than 1. The returned result is within 2.5 ulps (units in the last place) of the real result. If the real result is within 0.5ulp of 1 or -1, it should return exactly +1 or -1.
			 * @param d 
			 */
			public static tanh(d: number): any;
			/**
			 * Returns a pseudo-random double n, where n >= 0.0 && n < 1.0. This method reuses a single instance of java.util.Random. This method is thread-safe because access to the Random is synchronized, but this harms scalability. Applications may find a performance benefit from allocating a Random for each of their threads.
			 */
			public static random(): any;
			/**
			 * Returns the measure in radians of the supplied degree angle. The result is angdeg / 180 * pi.
			 * @param angdeg 
			 */
			public static toRadians(angdeg: number): any;
			/**
			 * Returns the measure in degrees of the supplied radian angle. The result is angrad * 180 / pi.
			 * @param angrad 
			 */
			public static toDegrees(angrad: number): any;
			/**
			 * Returns the argument's ulp (unit in the last place). The size of a ulp of a double value is the positive distance between this value and the double value next larger in magnitude. For non-NaN x, ulp(-x) == ulp(x).
			 * @param d 
			 */
			public static ulp(d: number): any;
			/**
			 * Returns a double with the given magnitude and the sign of sign. If sign is NaN, the sign of the result is arbitrary. If you need a determinate sign in such cases, use StrictMath.copySign. 1.6
			 */
			public static copySign(magnitude: number, sign: number): any;
			/**
			 * Returns the unbiased base-2 exponent of float f. 1.6
			 */
			public static getExponent(f: number): number;
			/**
			 * Returns the next double after start in the given direction. 1.6
			 */
			public static nextAfter(start: number, direction: number): any;
			/**
			 * Returns the next double larger than d. 1.6
			 */
			public static nextUp(d: number): any;
			/**
			 * Returns d * 2^scaleFactor. The result may be rounded. 1.6
			 */
			public static scalb(d: number, scaleFactor: number): any;
		}
		export module reflect {
			/**
			 * This interface represents an array type with a component type that is either a parameterized type or a type variable.
			 */
			interface IGenericArrayType extends java.lang.reflect.IType {
				/**
				 * Returns the component type of this array.
				 */
				getGenericComponentType(): java.lang.reflect.IType;
			}
			/**
			 * This interface provides reflective access to annotation information.
			 */
			export class AnnotatedElement implements java.lang.reflect.IAnnotatedElement {
				constructor(implementation: java.lang.reflect.IAnnotatedElement);
				/**
				 * Returns, for this element, the annotation with the specified type, or null if no annotation with the specified type is present (including inherited annotations).
				 * @param annotationType 
				 */
				public getAnnotation<T extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<T>): T;
				/**
				 * Returns, for this element, an array containing all annotations (including inherited annotations). If there are no annotations present, this method returns a zero length array.
				 */
				public getAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				/**
				 * Returns, for this element, all annotations that are explicitly declared (not inherited). If there are no declared annotations present, this method returns a zero length array.
				 */
				public getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				/**
				 * Indicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).
				 * @param annotationType 
				 */
				public isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
			}
			/**
			 * Common interface providing access to reflective information on class members.
			 */
			interface IMember {
				/**
				 * Returns the class that declares this member.
				 */
				getDeclaringClass(): java.lang.Class<any>;
				/**
				 * Returns the modifiers for this member. The Modifier class should be used to decode the result.
				 */
				getModifiers(): number;
				/**
				 * Returns the name of this member.
				 */
				getName(): string;
				/**
				 * Indicates whether or not this member is synthetic (artificially introduced by the compiler).
				 */
				isSynthetic(): boolean;
			}
			export module IMember {
				/**
				 * Designates all public members of a class or interface (including inherited members).
				 */
				var PUBLIC: number;
				/**
				 * Designates all declared members of a class or interface (without inherited members).
				 */
				var DECLARED: number;
			}
			/**
			 * Common interface for language constructs that declare type parameters.
			 */
			interface IGenericDeclaration {
				/**
				 * Returns the declared type parameters in declaration order. If there are no type parameters, this method returns a zero length array.
				 */
				getTypeParameters(): native.Array<java.lang.reflect.ITypeVariable<any>>;
			}
			/**
			 * Common interface implemented by all Java types.
			 */
			interface IType {
			}
			/**
			 * This interface represents a parameterized type such as 'Set&lt;String&gt;'.
			 */
			export class ParameterizedType implements java.lang.reflect.IType, java.lang.reflect.IParameterizedType {
				constructor(implementation: java.lang.reflect.IParameterizedType);
				/**
				 * Returns an array of the actual type arguments for this type.
				 */
				public getActualTypeArguments(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the parent / owner type, if this type is an inner type, otherwise null is returned if this is a top-level type.
				 */
				public getOwnerType(): java.lang.reflect.IType;
				/**
				 * Returns the declaring type of this parameterized type.
				 */
				public getRawType(): java.lang.reflect.IType;
			}
			/**
			 * This class represents a field. Information about the field can be accessed, and the field's value can be accessed dynamically.
			 */
			export class Field extends java.lang.reflect.AccessibleObject implements java.lang.reflect.IMember {
				static class: java.lang.Class<java.lang.reflect.Field>;
				/**
				 * 
				 */
				getSignatureAttribute(): string;
				/**
				 * Indicates whether or not this field is synthetic.
				 */
				public isSynthetic(): boolean;
				/**
				 * Returns the string representation of this field, including the field's generic type.
				 */
				public toGenericString(): string;
				/**
				 * Indicates whether or not this field is an enumeration constant.
				 */
				public isEnumConstant(): boolean;
				/**
				 * Returns the generic type of this field.
				 */
				public getGenericType(): java.lang.reflect.IType;
				public getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				public getAnnotation<A extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<A>): A;
				public isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
				/**
				 * Indicates whether or not the specified object is equal to this field. To be equal, the specified object must be an instance of Field with the same declaring class, type and name as this field.
				 * @param object 
				 */
				public equals(object: any): boolean;
				/**
				 * Returns the value of the field in the specified object. This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public get(object: any): any;
				/**
				 * Returns the value of the field in the specified object as a boolean. This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getBoolean(object: any): boolean;
				/**
				 * Returns the value of the field in the specified object as a byte. This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getByte(object: any): number;
				/**
				 * Returns the value of the field in the specified object as a char. This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getChar(object: any): string;
				/**
				 * Returns the class that declares this field.
				 */
				public getDeclaringClass(): java.lang.Class<any>;
				/**
				 * Returns the value of the field in the specified object as a double. This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getDouble(object: any): any;
				/**
				 * Returns the value of the field in the specified object as a float . This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getFloat(object: any): number;
				/**
				 * Returns the value of the field in the specified object as an int. This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getInt(object: any): number;
				/**
				 * Returns the value of the field in the specified object as a long. This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getLong(object: any): any;
				/**
				 * Returns the modifiers for this field. The Modifier class should be used to decode the result.
				 */
				public getModifiers(): number;
				/**
				 * Returns the name of this field.
				 */
				public getName(): string;
				/**
				 * Returns the value of the field in the specified object as a short . This reproduces the effect of object.fieldName
				 * @param object 
				 */
				public getShort(object: any): number;
				/**
				 * Return the Class associated with the type of this field.
				 */
				public getType(): java.lang.Class<any>;
				/**
				 * Returns an integer hash code for this field. Objects which are equal return the same value for this method.
				 */
				public hashCode(): number;
				/**
				 * Sets the value of the field in the specified object to the value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public set(object: any, value: any): void;
				/**
				 * Sets the value of the field in the specified object to the boolean value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setBoolean(object: any, value: boolean): void;
				/**
				 * Sets the value of the field in the specified object to the byte value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setByte(object: any, value: number): void;
				/**
				 * Sets the value of the field in the specified object to the char value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setChar(object: any, value: string): void;
				/**
				 * Sets the value of the field in the specified object to the double value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setDouble(object: any, value: number): void;
				/**
				 * Sets the value of the field in the specified object to the float value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setFloat(object: any, value: number): void;
				/**
				 * Set the value of the field in the specified object to the int value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setInt(object: any, value: number): void;
				/**
				 * Sets the value of the field in the specified object to the long value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setLong(object: any, value: number): void;
				/**
				 * Sets the value of the field in the specified object to the short value. This reproduces the effect of object.fieldName = value
				 * @param object 
				 * @param value 
				 */
				public setShort(object: any, value: number): void;
				/**
				 * Returns a string containing a concise, human-readable description of this field.
				 */
				public toString(): string;
				/**
				 * Returns a printable String consisting of the canonical names of the classes contained in an array. The form is that used in parameter and exception lists, that is, the class or type names are separated by commas.
				 * @param types 
				 */
				toString(types: native.Array<java.lang.Class<any>>): string;
			}
			/**
			 * Proxy defines methods for creating dynamic proxy classes and instances. A proxy class implements a declared set of interfaces and delegates method invocations to an InvocationHandler.
			 */
			export class Proxy extends java.lang.Object implements java.io.ISerializable {
				static class: java.lang.Class<java.lang.reflect.Proxy>;
				/**
				 * Returns the dynamically built Class for the specified interfaces. Creates a new Class when necessary. The order of the interfaces is relevant. Invocations of this method with the same interfaces but different order result in different generated classes. The interfaces must be visible from the supplied class loader; no duplicates are permitted. All non-public interfaces must be defined in the same package.
				 * @param loader 
				 * @param interfaces 
				 */
				public static getProxyClass(loader: java.lang.ClassLoader, interfaces: native.Array<java.lang.Class<any>>): java.lang.Class<any>;
				/**
				 * Returns an instance of the dynamically built class for the specified interfaces. Method invocations on the returned instance are forwarded to the specified invocation handler. The interfaces must be visible from the supplied class loader; no duplicates are permitted. All non-public interfaces must be defined in the same package.
				 * @param loader 
				 * @param interfaces 
				 * @param h 
				 */
				public static newProxyInstance(loader: java.lang.ClassLoader, interfaces: native.Array<java.lang.Class<any>>, h: java.lang.reflect.IInvocationHandler): any;
				/**
				 * Indicates whether or not the specified class is a dynamically generated proxy class.
				 * @param cl 
				 */
				public static isProxyClass(cl: java.lang.Class<any>): boolean;
				/**
				 * Returns the invocation handler of the specified proxy instance.
				 * @param proxy 
				 */
				public static getInvocationHandler(proxy: any): java.lang.reflect.IInvocationHandler;
			}
			/**
			 * This interface represents a type variables such as 'T' in 'public interface Comparable<T>', the bounded 'T' in 'public interface A<T extends Number>' or the multiple bounded 'T' in 'public interface B<T extends Number & Cloneable>'.
			 */
			export class TypeVariable<D extends java.lang.reflect.IGenericDeclaration> implements java.lang.reflect.IType, java.lang.reflect.ITypeVariable<D> {
				constructor(implementation: java.lang.reflect.ITypeVariable<D>);
				/**
				 * Returns the upper bounds of this type variable. Object is the implicit upper bound if no other bounds are declared.
				 */
				public getBounds(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the language construct that declares this type variable.
				 */
				public getGenericDeclaration(): D;
				/**
				 * Returns the name of this type variable as it is specified in source code.
				 */
				public getName(): string;
			}
			/**
			 * This class provides a wrapper for an undeclared, checked exception thrown by an InvocationHandler.
			 */
			export class UndeclaredThrowableException extends java.lang.RuntimeException {
				/**
				 * Constructs a new UndeclaredThrowableException instance with the undeclared, checked exception that occurred.
				 * @param exception 
				 */
				constructor(exception: java.lang.Throwable);
				/**
				 * Constructs a new UndeclaredThrowableException instance with the undeclared, checked exception that occurred and a message.
				 * @param exception detailMessage
				 * @param detailMessage exception
				 */
				constructor(exception: java.lang.Throwable, detailMessage: string);
				static class: java.lang.Class<java.lang.reflect.UndeclaredThrowableException>;
				/**
				 * Returns the undeclared, checked exception that occurred, which may be null.
				 */
				public getUndeclaredThrowable(): java.lang.Throwable;
				/**
				 * Returns the undeclared, checked exception that occurred, which may be null.
				 */
				public getCause(): java.lang.Throwable;
			}
			/**
			 * AccessibleObject is the superclass of all member reflection classes (Field, Constructor, Method). AccessibleObject provides the ability to toggle a flag controlling access checks for these objects. By default, accessing a member (for example, setting a field or invoking a method) checks the validity of the access (for example, invoking a private method from outside the defining class is prohibited) and throws IllegalAccessException if the operation is not permitted. If the accessible flag is set to true, these checks are omitted. This allows privileged code, such as Java object serialization, object inspectors, and debuggers to have complete access to objects.
			 */
			export class AccessibleObject extends java.lang.Object implements java.lang.reflect.IAnnotatedElement {
				static class: java.lang.Class<java.lang.reflect.AccessibleObject>;
				/**
				 * Attempts to set the value of the accessible flag for all the objects in the array provided. Setting this flag to false will enable access checks, setting to true will disable them.
				 * @param objects 
				 * @param flag 
				 */
				public static setAccessible(objects: native.Array<java.lang.reflect.AccessibleObject>, flag: boolean): void;
				/**
				 * Indicates whether this object is accessible without access checks being performed. Returns the accessible flag.
				 */
				public isAccessible(): boolean;
				/**
				 * Attempts to set the value of the accessible flag. Setting this flag to false will enable access checks, setting to true will disable them.
				 * @param flag 
				 */
				public setAccessible(flag: boolean): void;
				public isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
				public getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				public getAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				public getAnnotation<T extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<T>): T;
				/**
				 * Returns the signature for a class. This is the kind of signature used internally by the JVM, with one-character codes representing the basic types. It is not suitable for printing.
				 * @param clazz 
				 */
				getSignature(clazz: java.lang.Class<any>): string;
				/**
				 * Returns a printable String consisting of the canonical names of the classes contained in an array. The form is that used in parameter and exception lists, that is, the class or type names are separated by commas.
				 * @param types 
				 */
				toString(types: native.Array<java.lang.Class<any>>): string;
				/**
				 * Gets the Signature attribute for this instance. Returns null if not found.
				 */
				getSignatureAttribute(): string;
				/**
				 * Retrieve the signature attribute from an arbitrary class. This is the same as Class.getSignatureAttribute(), but it can be used from the java.lang.reflect package.
				 */
				static getClassSignatureAttribute(clazz: java.lang.Class<any>): string;
				/**
				 * Appends the best #toString name for c to out. This works around the fact that Class#getName is lousy for primitive arrays (it writes "[C" instead of "char[]") and Class#getCanonicalName() is lousy for nested classes (it uses a "." separator rather than a "$" separator).
				 */
				appendTypeName(out: java.lang.StringBuilder, c: java.lang.Class<any>): void;
				/**
				 * Appends names of the specified array classes to the buffer. The array elements may represent a simple type, a reference type or an array type. Output format: java.lang.Object[], java.io.File, void
				 * @param sb types array of classes to print the names
				 * @param types 
				 */
				appendArrayGenericType(sb: java.lang.StringBuilder, types: native.Array<java.lang.reflect.IType>): void;
				/**
				 * Appends the generic type representation to the buffer.
				 * @param sb buffer
				 * @param obj the generic type which representation should be appended to the buffer
				 */
				appendGenericType(sb: java.lang.StringBuilder, obj: java.lang.reflect.IType): void;
				/**
				 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
				 */
				toString(): string;
			}
			/**
			 * This class provides static methods to decode class and member modifiers.
			 */
			export class Modifier extends java.lang.Object {
				/**
				 * Constructs a new Modifier instance.
				 */
				constructor();
				/**
				 * The int value representing the public modifier.
				 */
				static PUBLIC: number;
				/**
				 * The int value representing the private modifier.
				 */
				static PRIVATE: number;
				/**
				 * The int value representing the protected modifier.
				 */
				static PROTECTED: number;
				/**
				 * The int value representing the static modifier.
				 */
				static STATIC: number;
				/**
				 * The int value representing the final modifier.
				 */
				static FINAL: number;
				/**
				 * The int value representing the synchronized modifier.
				 */
				static SYNCHRONIZED: number;
				/**
				 * The int value representing the volatile modifier.
				 */
				static VOLATILE: number;
				/**
				 * The int value representing the transient modifier.
				 */
				static TRANSIENT: number;
				/**
				 * The int value representing the native modifier.
				 */
				static NATIVE: number;
				/**
				 * The int value representing the interface modifier.
				 */
				static INTERFACE: number;
				/**
				 * The int value representing the abstract modifier.
				 */
				static ABSTRACT: number;
				/**
				 * The int value representing the strict modifier.
				 */
				static STRICT: number;
				static class: java.lang.Class<java.lang.reflect.Modifier>;
				/**
				 * Indicates whether or not the specified modifiers contain the abstract modifier.
				 * @param modifiers 
				 */
				public static isAbstract(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the final modifier.
				 * @param modifiers 
				 */
				public static isFinal(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the interface modifier.
				 * @param modifiers 
				 */
				public static isInterface(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the native modifier.
				 * @param modifiers 
				 */
				public static isNative(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the private modifier.
				 * @param modifiers 
				 */
				public static isPrivate(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the protected modifier.
				 * @param modifiers 
				 */
				public static isProtected(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the public modifier.
				 * @param modifiers 
				 */
				public static isPublic(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the static modifier.
				 * @param modifiers 
				 */
				public static isStatic(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the strict modifier.
				 * @param modifiers 
				 */
				public static isStrict(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the synchronized modifier.
				 * @param modifiers 
				 */
				public static isSynchronized(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the transient modifier.
				 * @param modifiers 
				 */
				public static isTransient(modifiers: number): boolean;
				/**
				 * Indicates whether or not the specified modifiers contain the volatile modifier.
				 * @param modifiers 
				 */
				public static isVolatile(modifiers: number): boolean;
				/**
				 * Returns a string containing the string representation of all modifiers present in the specified modifiers. Modifiers appear in the order specified by the Java Language Specification:
				 * @param modifiers 
				 */
				public static toString(modifiers: number): string;
				/**
				 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
				 */
				toString(): string;
			}
			/**
			 * Common interface providing access to reflective information on class members.
			 */
			export class Member implements java.lang.reflect.IMember {
				constructor(implementation: java.lang.reflect.IMember);
				/**
				 * Designates all public members of a class or interface (including inherited members).
				 */
				static PUBLIC: number;
				/**
				 * Designates all declared members of a class or interface (without inherited members).
				 */
				static DECLARED: number;
				/**
				 * Returns the class that declares this member.
				 */
				public getDeclaringClass(): java.lang.Class<any>;
				/**
				 * Returns the modifiers for this member. The Modifier class should be used to decode the result.
				 */
				public getModifiers(): number;
				/**
				 * Returns the name of this member.
				 */
				public getName(): string;
				/**
				 * Indicates whether or not this member is synthetic (artificially introduced by the compiler).
				 */
				public isSynthetic(): boolean;
			}
			/**
			 * A pattern type, such as the upper bounded wildcard ? extends Closeable or the lower bounded wildcard ? super String.
			 */
			interface IWildcardType extends java.lang.reflect.IType {
				/**
				 * Returns the array of types that represent the upper bounds of this type. The default upper bound is Object.
				 */
				getUpperBounds(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the array of types that represent the lower bounds of this type. The default lower bound is null, in which case an empty array is returned. Since only one lower bound is allowed, the returned array's length will never exceed one.
				 */
				getLowerBounds(): native.Array<java.lang.reflect.IType>;
			}
			/**
			 * Implementors of this interface dispatch methods invoked on proxy instances.
			 */
			interface IInvocationHandler {
				/**
				 * Handles the method which was originally invoked on the proxy instance. A typical usage pattern follows below:
				 * @param proxy 
				 * @param method 
				 * @param args 
				 */
				invoke(proxy: any, method: java.lang.reflect.Method, args: native.Array<any>): any;
			}
			/**
			 * Indicates that a malformed parameterized type has been encountered by a reflective method.
			 */
			export class MalformedParameterizedTypeException extends java.lang.RuntimeException {
				/**
				 * Constructs a new MalformedParameterizedTypeException instance.
				 */
				constructor();
				static class: java.lang.Class<java.lang.reflect.MalformedParameterizedTypeException>;
			}
			/**
			 * This class represents a constructor. Information about the constructor can be accessed, and the constructor can be invoked dynamically.
			 */
			export class Constructor<T> extends java.lang.reflect.AccessibleObject implements java.lang.reflect.IGenericDeclaration, java.lang.reflect.IMember {
				static class: java.lang.Class<java.lang.reflect.Constructor<any>>;
				getSignatureAttribute(): string;
				public getTypeParameters(): native.Array<java.lang.reflect.ITypeVariable<java.lang.reflect.Constructor<T>>>;
				/**
				 * Returns the string representation of the constructor's declaration, including the type parameters.
				 */
				public toGenericString(): string;
				/**
				 * Returns the generic parameter types as an array of Type instances, in declaration order. If this constructor has no generic parameters, an empty array is returned.
				 */
				public getGenericParameterTypes(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the exception types as an array of Type instances. If this constructor has no declared exceptions, an empty array will be returned.
				 */
				public getGenericExceptionTypes(): native.Array<java.lang.reflect.IType>;
				public getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				public getAnnotation<A extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<A>): A;
				public isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
				/**
				 * Returns an array of arrays that represent the annotations of the formal parameters of this constructor. If there are no parameters on this constructor, then an empty array is returned. If there are no annotations set, then an array of empty arrays is returned.
				 */
				public getParameterAnnotations(): native.Array<native.Array<java.lang.annotation.IAnnotation>>;
				/**
				 * Indicates whether or not this constructor takes a variable number of arguments.
				 */
				public isVarArgs(): boolean;
				/**
				 * Indicates whether or not this constructor is synthetic (artificially introduced by the compiler).
				 */
				public isSynthetic(): boolean;
				/**
				 * Indicates whether or not the specified object is equal to this constructor. To be equal, the specified object must be an instance of Constructor with the same declaring class and parameter types as this constructor.
				 * @param object 
				 */
				public equals(object: any): boolean;
				/**
				 * Returns the class that declares this constructor.
				 */
				public getDeclaringClass(): java.lang.Class<T>;
				/**
				 * Returns the exception types as an array of Class instances. If this constructor has no declared exceptions, an empty array will be returned.
				 */
				public getExceptionTypes(): native.Array<java.lang.Class<any>>;
				/**
				 * Returns the modifiers for this constructor. The Modifier class should be used to decode the result.
				 */
				public getModifiers(): number;
				/**
				 * Returns the name of this constructor.
				 */
				public getName(): string;
				/**
				 * Returns an array of the Class objects associated with the parameter types of this constructor. If the constructor was declared with no parameters, an empty array will be returned.
				 */
				public getParameterTypes(): native.Array<java.lang.Class<any>>;
				/**
				 * Returns an integer hash code for this constructor. Constructors which are equal return the same value for this method. The hash code for a Constructor is the hash code of the name of the declaring class.
				 */
				public hashCode(): number;
				/**
				 * Returns a new instance of the declaring class, initialized by dynamically invoking the constructor represented by this Constructor object. This reproduces the effect of new declaringClass(arg1, arg2, ... , argN) This method performs the following: <ul> <li>A new instance of the declaring class is created. If the declaring class cannot be instantiated (i.e. abstract class, an interface, an array type, or a primitive type) then an InstantiationException is thrown.</li> <li>If this Constructor object is enforcing access control (see AccessibleObject) and this constructor is not accessible from the current context, an IllegalAccessException is thrown.</li> <li>If the number of arguments passed and the number of parameters do not match, an IllegalArgumentException is thrown.</li> <li>For each argument passed: <ul> <li>If the corresponding parameter type is a primitive type, the argument is unboxed. If the unboxing fails, an IllegalArgumentException is thrown.</li> <li>If the resulting argument cannot be converted to the parameter type via a widening conversion, an IllegalArgumentException is thrown.</li> </ul> <li>The constructor represented by this Constructor object is then invoked. If an exception is thrown during the invocation, it is caught and wrapped in an InvocationTargetException. This exception is then thrown. If the invocation completes normally, the newly initialized object is returned. </ul>
				 * @param args 
				 */
				public newInstance(args: native.Array<any>): T;
				/**
				 * Returns a string containing a concise, human-readable description of this constructor. The format of the string is:
				 */
				public toString(): string;
				/**
				 * Returns a printable String consisting of the canonical names of the classes contained in an array. The form is that used in parameter and exception lists, that is, the class or type names are separated by commas.
				 * @param types 
				 */
				toString(types: native.Array<java.lang.Class<any>>): string;
			}
			/**
			 * This interface represents an array type with a component type that is either a parameterized type or a type variable.
			 */
			export class GenericArrayType implements java.lang.reflect.IType, java.lang.reflect.IGenericArrayType {
				constructor(implementation: java.lang.reflect.IGenericArrayType);
				/**
				 * Returns the component type of this array.
				 */
				public getGenericComponentType(): java.lang.reflect.IType;
			}
			/**
			 * This class represents a method. Information about the method can be accessed, and the method can be invoked dynamically.
			 */
			export class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.IGenericDeclaration, java.lang.reflect.IMember {
				static class: java.lang.Class<java.lang.reflect.Method>;
				public getTypeParameters(): native.Array<java.lang.reflect.ITypeVariable<java.lang.reflect.Method>>;
				/**
				 * 
				 */
				getSignatureAttribute(): string;
				/**
				 * Returns the Signature annotation for this method. Returns null if not found.
				 */
				static getSignatureAnnotation(declaringClass: java.lang.Class<any>, slot: number): native.Array<any>;
				/**
				 * Returns the string representation of the method's declaration, including the type parameters.
				 */
				public toGenericString(): string;
				/**
				 * Returns the parameter types as an array of Type instances, in declaration order. If this method has no parameters, an empty array is returned.
				 */
				public getGenericParameterTypes(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the exception types as an array of Type instances. If this method has no declared exceptions, an empty array will be returned.
				 */
				public getGenericExceptionTypes(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the return type of this method as a Type instance.
				 */
				public getGenericReturnType(): java.lang.reflect.IType;
				public getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				static getDeclaredAnnotations(declaringClass: java.lang.Class<any>, slot: number): native.Array<java.lang.annotation.IAnnotation>;
				public getAnnotation<A extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<A>): A;
				static getAnnotation<A extends java.lang.annotation.IAnnotation>(declaringClass: java.lang.Class<any>, slot: number, annotationType: java.lang.Class<A>): A;
				public isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
				static isAnnotationPresent(declaringClass: java.lang.Class<any>, slot: number, annotationType: java.lang.Class<any>): boolean;
				/**
				 * Creates an array of empty Annotation arrays.
				 */
				static noAnnotations(size: number): native.Array<native.Array<java.lang.annotation.IAnnotation>>;
				/**
				 * Returns an array of arrays that represent the annotations of the formal parameters of this method. If there are no parameters on this method, then an empty array is returned. If there are no annotations set, then and array of empty arrays is returned.
				 */
				public getParameterAnnotations(): native.Array<native.Array<java.lang.annotation.IAnnotation>>;
				static getParameterAnnotations(declaringClass: java.lang.Class<any>, slot: number): native.Array<native.Array<java.lang.annotation.IAnnotation>>;
				/**
				 * Indicates whether or not this method takes a variable number argument.
				 */
				public isVarArgs(): boolean;
				/**
				 * Indicates whether or not this method is a bridge.
				 */
				public isBridge(): boolean;
				/**
				 * Indicates whether or not this method is synthetic.
				 */
				public isSynthetic(): boolean;
				/**
				 * Returns the default value for the annotation member represented by this method.
				 */
				public getDefaultValue(): any;
				/**
				 * Indicates whether or not the specified object is equal to this method. To be equal, the specified object must be an instance of Method with the same declaring class and parameter types as this method.
				 * @param object 
				 */
				public equals(object: any): boolean;
				/**
				 * Returns the class that declares this method.
				 */
				public getDeclaringClass(): java.lang.Class<any>;
				/**
				 * Returns the exception types as an array of Class instances. If this method has no declared exceptions, an empty array is returned.
				 */
				public getExceptionTypes(): native.Array<java.lang.Class<any>>;
				/**
				 * Returns the modifiers for this method. The Modifier class should be used to decode the result.
				 */
				public getModifiers(): number;
				static getMethodModifiers(declaringClass: java.lang.Class<any>, slot: number): number;
				/**
				 * Returns the name of the method represented by this Method instance.
				 */
				public getName(): string;
				/**
				 * Returns an array of Class objects associated with the parameter types of this method. If the method was declared with no parameters, an empty array will be returned.
				 */
				public getParameterTypes(): native.Array<java.lang.Class<any>>;
				/**
				 * Returns the Class associated with the return type of this method.
				 */
				public getReturnType(): java.lang.Class<any>;
				/**
				 * Returns an integer hash code for this method. Objects which are equal return the same value for this method. The hash code for this Method is the hash code of the name of this method.
				 */
				public hashCode(): number;
				/**
				 * Returns the result of dynamically invoking this method. Equivalent to receiver.methodName(arg1, arg2, ... , argN).
				 * @param receiver 
				 * @param args 
				 */
				public invoke(receiver: any, args: native.Array<any>): any;
				/**
				 * Returns a string containing a concise, human-readable description of this method. The format of the string is:
				 */
				public toString(): string;
				/**
				 * Returns a printable String consisting of the canonical names of the classes contained in an array. The form is that used in parameter and exception lists, that is, the class or type names are separated by commas.
				 * @param types 
				 */
				toString(types: native.Array<java.lang.Class<any>>): string;
			}
			/**
			 * Common interface for language constructs that declare type parameters.
			 */
			export class GenericDeclaration implements java.lang.reflect.IGenericDeclaration {
				constructor(implementation: java.lang.reflect.IGenericDeclaration);
				/**
				 * Returns the declared type parameters in declaration order. If there are no type parameters, this method returns a zero length array.
				 */
				public getTypeParameters(): native.Array<java.lang.reflect.ITypeVariable<any>>;
			}
			/**
			 * Implementors of this interface dispatch methods invoked on proxy instances.
			 */
			export class InvocationHandler implements java.lang.reflect.IInvocationHandler {
				constructor(implementation: java.lang.reflect.IInvocationHandler);
				/**
				 * Handles the method which was originally invoked on the proxy instance. A typical usage pattern follows below:
				 * @param proxy 
				 * @param method 
				 * @param args 
				 */
				public invoke(proxy: any, method: java.lang.reflect.Method, args: native.Array<any>): any;
			}
			/**
			 * This class provides a wrapper for an exception thrown by a Method or Constructor invocation.
			 */
			export class InvocationTargetException extends java.lang.Exception {
				/**
				 * Constructs a new InvocationTargetException instance with its cause / target exception filled in.
				 * @param exception 
				 */
				constructor(exception: java.lang.Throwable);
				/**
				 * Constructs a new InvocationTargetException instance with its cause / target exception and message filled in.
				 * @param exception detailMessage
				 * @param detailMessage exception
				 */
				constructor(exception: java.lang.Throwable, detailMessage: string);
				static class: java.lang.Class<java.lang.reflect.InvocationTargetException>;
				/**
				 * Returns the target exception, which may be null.
				 */
				public getTargetException(): java.lang.Throwable;
				/**
				 * Returns the cause of this exception, which may be null.
				 */
				public getCause(): java.lang.Throwable;
			}
			/**
			 * Provides static methods to create and access arrays dynamically.
			 */
			export class Array extends java.lang.Object {
				static class: java.lang.Class<java.lang.reflect.Array>;
				/**
				 * Returns the element of the array at the specified index. Equivalent to array[index]. If the array component is a primitive type, the result is automatically boxed.
				 */
				public static get(array: any, index: number): any;
				/**
				 * Returns the boolean at the given index in the given boolean array.
				 */
				public static getBoolean(array: any, index: number): boolean;
				/**
				 * Returns the byte at the given index in the given byte array.
				 */
				public static getByte(array: any, index: number): number;
				/**
				 * Returns the char at the given index in the given char array.
				 */
				public static getChar(array: any, index: number): string;
				/**
				 * Returns the double at the given index in the given array. Applies to byte, char, float, double, int, long, and short arrays.
				 */
				public static getDouble(array: any, index: number): any;
				/**
				 * Returns the float at the given index in the given array. Applies to byte, char, float, int, long, and short arrays.
				 */
				public static getFloat(array: any, index: number): number;
				/**
				 * Returns the int at the given index in the given array. Applies to byte, char, int, and short arrays.
				 */
				public static getInt(array: any, index: number): number;
				/**
				 * Returns the length of the array. Equivalent to array.length.
				 */
				public static getLength(array: any): number;
				/**
				 * Returns the long at the given index in the given array. Applies to byte, char, int, long, and short arrays.
				 */
				public static getLong(array: any, index: number): any;
				/**
				 * Returns the short at the given index in the given array. Applies to byte and short arrays.
				 */
				public static getShort(array: any, index: number): number;
				/**
				 * Returns a new multidimensional array of the specified component type and dimensions. Equivalent to new componentType[d0][d1]...[dn] for a dimensions array of { d0, d1, ... , dn }.
				 */
				public static newInstance(componentType: java.lang.Class<any>, dimensions: native.Array<number>): any;
				/**
				 * Returns a new array of the specified component type and length. Equivalent to new componentType[size].
				 */
				public static newInstance(componentType: java.lang.Class<any>, size: number): any;
				/**
				 * Sets the element of the array at the specified index to the value. Equivalent to array[index] = value. If the array component is a primitive type, the value is automatically unboxed.
				 */
				public static set(array: any, index: number, value: any): void;
				/**
				 * Sets array[index] = value. Applies to boolean arrays.
				 */
				public static setBoolean(array: any, index: number, value: boolean): void;
				/**
				 * Sets array[index] = value. Applies to byte, double, float, int, long, and short arrays.
				 */
				public static setByte(array: any, index: number, value: number): void;
				/**
				 * Sets array[index] = value. Applies to char, double, float, int, and long arrays.
				 */
				public static setChar(array: any, index: number, value: string): void;
				/**
				 * Sets array[index] = value. Applies to double arrays.
				 */
				public static setDouble(array: any, index: number, value: number): void;
				/**
				 * Sets array[index] = value. Applies to double and float arrays.
				 */
				public static setFloat(array: any, index: number, value: number): void;
				/**
				 * Sets array[index] = value. Applies to double, float, int, and long arrays.
				 */
				public static setInt(array: any, index: number, value: number): void;
				/**
				 * Sets array[index] = value. Applies to double, float, and long arrays.
				 */
				public static setLong(array: any, index: number, value: number): void;
				/**
				 * Sets array[index] = value. Applies to double, float, int, long, and short arrays.
				 */
				public static setShort(array: any, index: number, value: number): void;
			}
			/**
			 * This interface provides reflective access to annotation information.
			 */
			interface IAnnotatedElement {
				/**
				 * Returns, for this element, the annotation with the specified type, or null if no annotation with the specified type is present (including inherited annotations).
				 * @param annotationType 
				 */
				getAnnotation<T extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<T>): T;
				/**
				 * Returns, for this element, an array containing all annotations (including inherited annotations). If there are no annotations present, this method returns a zero length array.
				 */
				getAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				/**
				 * Returns, for this element, all annotations that are explicitly declared (not inherited). If there are no declared annotations present, this method returns a zero length array.
				 */
				getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
				/**
				 * Indicates whether or not this element has an annotation with the specified annotation type (including inherited annotations).
				 * @param annotationType 
				 */
				isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
			}
			/**
			 * Indicates that a malformed signature has been encountered via a reflective method.
			 */
			export class GenericSignatureFormatError extends java.lang.ClassFormatError {
				/**
				 * Constructs a new GenericSignatureFormatError instance.
				 */
				constructor();
				static class: java.lang.Class<java.lang.reflect.GenericSignatureFormatError>;
			}
			/**
			 * Common interface implemented by all Java types.
			 */
			export class Type implements java.lang.reflect.IType {
				constructor(implementation: java.lang.reflect.IType);
			}
			/**
			 * A pattern type, such as the upper bounded wildcard ? extends Closeable or the lower bounded wildcard ? super String.
			 */
			export class WildcardType implements java.lang.reflect.IType, java.lang.reflect.IWildcardType {
				constructor(implementation: java.lang.reflect.IWildcardType);
				/**
				 * Returns the array of types that represent the upper bounds of this type. The default upper bound is Object.
				 */
				public getUpperBounds(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the array of types that represent the lower bounds of this type. The default lower bound is null, in which case an empty array is returned. Since only one lower bound is allowed, the returned array's length will never exceed one.
				 */
				public getLowerBounds(): native.Array<java.lang.reflect.IType>;
			}
			/**
			 * This interface represents a parameterized type such as 'Set&lt;String&gt;'.
			 */
			interface IParameterizedType extends java.lang.reflect.IType {
				/**
				 * Returns an array of the actual type arguments for this type.
				 */
				getActualTypeArguments(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the parent / owner type, if this type is an inner type, otherwise null is returned if this is a top-level type.
				 */
				getOwnerType(): java.lang.reflect.IType;
				/**
				 * Returns the declaring type of this parameterized type.
				 */
				getRawType(): java.lang.reflect.IType;
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class ReflectPermission extends java.security.BasicPermission {
				constructor(name: string);
				constructor(name: string, actions: string);
				static class: java.lang.Class<java.lang.reflect.ReflectPermission>;
				public getActions(): string;
				public implies(permission: java.security.Permission): boolean;
			}
			/**
			 * This interface represents a type variables such as 'T' in 'public interface Comparable<T>', the bounded 'T' in 'public interface A<T extends Number>' or the multiple bounded 'T' in 'public interface B<T extends Number & Cloneable>'.
			 */
			interface ITypeVariable<D extends java.lang.reflect.IGenericDeclaration> extends java.lang.reflect.IType {
				/**
				 * Returns the upper bounds of this type variable. Object is the implicit upper bound if no other bounds are declared.
				 */
				getBounds(): native.Array<java.lang.reflect.IType>;
				/**
				 * Returns the language construct that declares this type variable.
				 */
				getGenericDeclaration(): D;
				/**
				 * Returns the name of this type variable as it is specified in source code.
				 */
				getName(): string;
			}
		}
		/**
		 * Allows Java applications to interface with the environment in which they are running. Applications can not create an instance of this class, but they can get a singleton instance by invoking #getRuntime().
		 */
		export class Runtime extends java.lang.Object {
			static class: java.lang.Class<java.lang.Runtime>;
			/**
			 * Executes the specified command and its arguments in a separate native process. The new process inherits the environment of the caller. Calling this method is equivalent to calling exec(progArray, null, null).
			 * @param progArray 
			 */
			public exec(progArray: native.Array<string>): java.lang.Process;
			/**
			 * Executes the specified command and its arguments in a separate native process. The new process uses the environment provided in envp. Calling this method is equivalent to calling exec(progArray, envp, null).
			 * @param progArray 
			 * @param envp 
			 */
			public exec(progArray: native.Array<string>, envp: native.Array<string>): java.lang.Process;
			/**
			 * Executes the specified command and its arguments in a separate native process. The new process uses the environment provided in envp and the working directory specified by directory.
			 * @param progArray 
			 * @param envp 
			 * @param directory 
			 */
			public exec(progArray: native.Array<string>, envp: native.Array<string>, directory: java.io.File): java.lang.Process;
			/**
			 * Executes the specified program in a separate native process. The new process inherits the environment of the caller. Calling this method is equivalent to calling exec(prog, null, null).
			 * @param prog 
			 */
			public exec(prog: string): java.lang.Process;
			/**
			 * Executes the specified program in a separate native process. The new process uses the environment provided in envp. Calling this method is equivalent to calling exec(prog, envp, null).
			 * @param prog 
			 * @param envp 
			 */
			public exec(prog: string, envp: native.Array<string>): java.lang.Process;
			/**
			 * Executes the specified program in a separate native process. The new process uses the environment provided in envp and the working directory specified by directory.
			 * @param prog 
			 * @param envp 
			 * @param directory 
			 */
			public exec(prog: string, envp: native.Array<string>, directory: java.io.File): java.lang.Process;
			/**
			 * Causes the VM to stop running and the program to exit. If #runFinalizersOnExit(boolean) has been previously invoked with a true argument, then all objects will be properly garbage-collected and finalized first.
			 * @param code 
			 */
			public exit(code: number): void;
			/**
			 * Returns the amount of free memory resources which are available to the running program.
			 */
			public freeMemory(): any;
			/**
			 * Indicates to the VM that it would be a good time to run the garbage collector. Note that this is a hint only. There is no guarantee that the garbage collector will actually be run.
			 */
			public gc(): void;
			/**
			 * Returns the single Runtime instance.
			 */
			public static getRuntime(): java.lang.Runtime;
			/**
			 * Loads and links the dynamic library that is identified through the specified path. This method is similar to #loadLibrary(String), but it accepts a full path specification whereas loadLibrary just accepts the name of the library to load.
			 * @param pathName 
			 */
			public load(pathName: string): void;
			load(pathName: string, loader: java.lang.ClassLoader): void;
			/**
			 * Loads and links the library with the specified name. The mapping of the specified library name to the full path for loading the library is implementation-dependent.
			 * @param libName 
			 */
			public loadLibrary(libName: string): void;
			loadLibrary(libraryName: string, loader: java.lang.ClassLoader): void;
			/**
			 * Provides a hint to the VM that it would be useful to attempt to perform any outstanding object finalization.
			 */
			public runFinalization(): void;
			/**
			 * Sets the flag that indicates whether all objects are finalized when the VM is about to exit. Note that all finalization which occurs when the system is exiting is performed after all running threads have been terminated.
			 * @param run 
			 */
			public static runFinalizersOnExit(run: boolean): void;
			/**
			 * Returns the total amount of memory which is available to the running program.
			 */
			public totalMemory(): any;
			/**
			 * Switches the output of debug information for instructions on or off. On Android, this method does nothing.
			 * @param enable 
			 */
			public traceInstructions(enable: boolean): void;
			/**
			 * Switches the output of debug information for methods on or off.
			 * @param enable 
			 */
			public traceMethodCalls(enable: boolean): void;
			/**
			 * Returns the localized version of the specified input stream. The input stream that is returned automatically converts all characters from the local character set to Unicode after reading them from the underlying stream.
			 * @param stream 
			 */
			public getLocalizedInputStream(stream: java.io.InputStream): java.io.InputStream;
			/**
			 * Returns the localized version of the specified output stream. The output stream that is returned automatically converts all characters from Unicode to the local character set before writing them to the underlying stream.
			 * @param stream 
			 */
			public getLocalizedOutputStream(stream: java.io.OutputStream): java.io.OutputStream;
			/**
			 * Registers a VM shutdown hook. A shutdown hook is a Thread that is ready to run, but has not yet been started. All registered shutdown hooks will be executed when the VM terminates normally (typically when the #exit(int) method is called).
			 * @param hook 
			 */
			public addShutdownHook(hook: java.lang.Thread): void;
			/**
			 * Unregisters a previously registered VM shutdown hook.
			 * @param hook 
			 */
			public removeShutdownHook(hook: java.lang.Thread): boolean;
			/**
			 * Causes the VM to stop running, and the program to exit. Neither shutdown hooks nor finalizers are run before.
			 * @param code 
			 */
			public halt(code: number): void;
			/**
			 * Returns the number of processors available to the VM, at least 1.
			 */
			public availableProcessors(): number;
			/**
			 * Returns the maximum amount of memory that may be used by the virtual machine, or Long.MAX_VALUE if there is no such limit.
			 */
			public maxMemory(): any;
		}
		/**
		 * Thrown when the an invalid arithmetic operation is attempted.
		 */
		export class ArithmeticException extends java.lang.RuntimeException {
			/**
			 * Constructs a new ArithmeticException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ArithmeticException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.ArithmeticException>;
		}
		/**
		 * Implements a thread-local storage, that is, a variable for which each thread has its own value. All threads share the same ThreadLocal object, but each sees a different value when accessing it, and changes made by one thread do not affect the other threads. The implementation supports null values.
		 */
		export class ThreadLocal<T> extends java.lang.Object {
			/**
			 * Creates a new thread-local variable.
			 */
			constructor();
			static class: java.lang.Class<java.lang.ThreadLocal<any>>;
			/**
			 * Returns the value of this variable for the current thread. If an entry doesn't yet exist for this variable on this thread, this method will create an entry, populating the value with the result of #initialValue().
			 */
			public get(): T;
			/**
			 * Provides the initial value of this variable for the current thread. The default implementation returns null.
			 */
			protected initialValue(): T;
			/**
			 * Sets the value of this variable for the current thread. If set to null, the value will be set to null and the underlying entry will still be present.
			 * @param value the new value of the variable for the caller thread.
			 */
			public set(value: T): void;
			/**
			 * Removes the entry for this variable in the current thread. If this call is followed by a #get() before a #set, #get() will call #initialValue() and create a new entry with the resulting value.
			 */
			public remove(): void;
			/**
			 * Creates Values instance for this thread and variable type.
			 */
			initializeValues(current: java.lang.Thread): java.lang.ThreadLocal.Values;
			/**
			 * Gets Values instance for this thread and variable type.
			 */
			values(current: java.lang.Thread): java.lang.ThreadLocal.Values;
		}
		export module ThreadLocal {
			/**
			 * Per-thread map of ThreadLocal instances to values.
			 */
			export class Values extends java.lang.Object {
				static class: java.lang.Class<java.lang.ThreadLocal.Values>;
				/**
				 * Adds an entry during rehashing. Compared to put(), this method doesn't have to clean up, check for existing entries, account for tombstones, etc.
				 */
				add(key: java.lang.ThreadLocal<any>, value: any): void;
				/**
				 * Sets entry for given ThreadLocal to given value, creating an entry if necessary.
				 */
				put(key: java.lang.ThreadLocal<any>, value: any): void;
				/**
				 * Gets value for given ThreadLocal after not finding it in the first slot.
				 */
				getAfterMiss(key: java.lang.ThreadLocal<any>): any;
				/**
				 * Removes entry for the given ThreadLocal.
				 */
				remove(key: java.lang.ThreadLocal<any>): void;
			}
		}
		/**
		 * Declares methods to append characters or character sequences. Any class that implements this interface can receive data formatted by a java.util.Formatter. The appended character or character sequence should be valid according to the rules described in Character Unicode Character Representation.
		 */
		interface IAppendable {
			/**
			 * Appends the specified character.
			 * @param c 
			 */
			append(c: string): any;
			/**
			 * Appends a subsequence of csq.
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			append(csq: string, start: number, end: number): any;
		}
		/**
		 * The wrapper for the primitive type boolean.
		 */
		export class Boolean extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new Boolean with its boolean value specified by string. If string is not null and is equal to "true" using a non-case sensitive comparison, the result will be a Boolean representing the primitive value true, otherwise it will be a Boolean representing the primitive value false.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * Constructs a new Boolean with the specified primitive boolean value.
			 * @param value 
			 */
			constructor(value: boolean);
			/**
			 * The Class object that represents the primitive type boolean.
			 */
			static TYPE: java.lang.Class<boolean>;
			/**
			 * The Boolean object that represents the primitive value true.
			 */
			static TRUE: java.lang.Boolean;
			/**
			 * The Boolean object that represents the primitive value false.
			 */
			static FALSE: java.lang.Boolean;
			static class: java.lang.Class<java.lang.Boolean>;
			/**
			 * Gets the primitive value of this boolean, either true or false.
			 */
			public booleanValue(): boolean;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must be an instance of Boolean and have the same boolean value as this object.
			 * @param o 
			 */
			public equals(o: any): boolean;
			/**
			 * Compares this object to the specified boolean object to determine their relative order.
			 * @param that 
			 */
			public compareTo(that: java.lang.Boolean): number;
			/**
			 * Compares this object to the specified boolean object to determine their relative order.
			 * @param that 
			 */
			public compareTo(that: boolean): number;
			/**
			 * Returns an integer hash code for this boolean.
			 */
			public hashCode(): number;
			/**
			 * Returns a string containing a concise, human-readable description of this boolean.
			 */
			public toString(): string;
			/**
			 * Returns the boolean value of the system property identified by string.
			 * @param string 
			 */
			public static getBoolean(string: string): boolean;
			/**
			 * Parses the specified string as a boolean.
			 * @param s 
			 */
			public static parseBoolean(s: string): boolean;
			/**
			 * Converts the specified boolean to its string representation.
			 * @param value 
			 */
			public static toString(value: boolean): string;
			/**
			 * Parses the specified string as a boolean value.
			 * @param string 
			 */
			public static valueOf(string: string): boolean;
			/**
			 * Returns a Boolean instance for the specified boolean value.
			 * @param b 
			 */
			public static valueOf(b: boolean): boolean;
		}
		/**
		 * Thrown if an enum constant does not exist for a particular name.
		 */
		export class EnumConstantNotPresentException extends java.lang.RuntimeException {
			/**
			 * Constructs a new EnumConstantNotPresentException with the current stack trace and a detail message based on the specified enum type and missing constant name.
			 * @param enumType 
			 * @param constantName 
			 */
			constructor(enumType: java.lang.Class<any>, constantName: string);
			static class: java.lang.Class<java.lang.EnumConstantNotPresentException>;
			/**
			 * Gets the enum type for which the constant name is missing.
			 */
			public enumType(): java.lang.Class<any>;
			/**
			 * Gets the name of the missing constant.
			 */
			public constantName(): string;
		}
		/**
		 * Thrown when a method is invoked with an argument which it can not reasonably deal with.
		 */
		export class IllegalArgumentException extends java.lang.RuntimeException {
			/**
			 * Constructs a new IllegalArgumentException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IllegalArgumentException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new IllegalArgumentException with the current stack trace, the specified detail message and the specified cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new IllegalArgumentException with the current stack trace and the specified cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.lang.IllegalArgumentException>;
		}
		/**
		 * Thrown when the depth of the stack of the running program exceeds some platform or VM specific limit. Typically, this will occur only when a program becomes infinitely recursive, but it can also occur in correctly written (but deeply recursive) programs.
		 */
		export class StackOverflowError extends java.lang.VirtualMachineError {
			/**
			 * Constructs a new StackOverflowError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new StackOverflowError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.StackOverflowError>;
		}
		/**
		 * Thrown by the VM when an abstract method is called.
		 */
		export class AbstractMethodError extends java.lang.IncompatibleClassChangeError {
			/**
			 * Constructs a new AbstractMethodError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new AbstractMethodError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.AbstractMethodError>;
		}
		/**
		 * IncompatibleClassChangeError is the superclass of all classes which represent errors that occur when inconsistent class files are loaded into the same running image.
		 */
		export class IncompatibleClassChangeError extends java.lang.LinkageError {
			/**
			 * Constructs a new IncompatibleClassChangeError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IncompatibleClassChangeError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.IncompatibleClassChangeError>;
		}
		/**
		 * Thrown when an attempt is made to invoke a native for which an implementation could not be found.
		 */
		export class UnsatisfiedLinkError extends java.lang.LinkageError {
			/**
			 * Constructs a new UnsatisfiedLinkError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new UnsatisfiedLinkError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.UnsatisfiedLinkError>;
		}
		/**
		 * Thrown when an attempt is made to create an array with a size of less than zero.
		 */
		export class NegativeArraySizeException extends java.lang.RuntimeException {
			/**
			 * Constructs a new NegativeArraySizeException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NegativeArraySizeException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NegativeArraySizeException>;
		}
		/**
		 * Thrown when a request for memory is made that can not be satisfied using the available platform resources. Such a request may be made by both the running application or by an internal function of the VM.
		 */
		export class OutOfMemoryError extends java.lang.VirtualMachineError {
			/**
			 * Constructs a new OutOfMemoryError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new OutOfMemoryError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.OutOfMemoryError>;
		}
		/**
		 * The wrapper for the primitive type float.
		 */
		export class Float extends java.lang.Number {
			/**
			 * Constructs a new Float with the specified primitive float value.
			 * @param value 
			 */
			constructor(value: number);
			/**
			 * Constructs a new Float from the specified string.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * Constant for the maximum float value, (2 - 2<sup>-23</sup>) * 2<sup>127</sup>.
			 */
			static MAX_VALUE: number;
			/**
			 * Constant for the minimum float value, 2<sup>-149</sup>.
			 */
			static MIN_VALUE: number;
			/**
			 * Constant for the Not-a-Number (NaN) value of the float type.
			 */
			static NaN: number;
			/**
			 * Constant for the positive infinity value of the float type.
			 */
			static POSITIVE_INFINITY: number;
			/**
			 * Constant for the negative infinity value of the float type.
			 */
			static NEGATIVE_INFINITY: number;
			/**
			 * Constant for the smallest positive normal value of the float type.
			 */
			static MIN_NORMAL: number;
			/**
			 * Maximum base-2 exponent that a finite value of the float type may have. Equal to Math.getExponent(Float.MAX_VALUE).
			 */
			static MAX_EXPONENT: number;
			/**
			 * Minimum base-2 exponent that a normal value of the float type may have. Equal to Math.getExponent(Float.MIN_NORMAL).
			 */
			static MIN_EXPONENT: number;
			/**
			 * The Class object that represents the primitive type float.
			 */
			static TYPE: java.lang.Class<java.lang.Float>;
			/**
			 * Constant for the number of bits needed to represent a float in two's complement form.
			 */
			static SIZE: number;
			static class: java.lang.Class<java.lang.Float>;
			private __java_lang_Float: any;
			/**
			 * Compares this object to the specified float object to determine their relative order. There are two special cases: <ul> <li>Float.NaN is equal to Float.NaN and it is greater than any other float value, including Float.POSITIVE_INFINITY;</li> <li>+0.0f is greater than -0.0f</li> </ul>
			 * @param object 
			 */
			public compareTo(object: java.lang.Float): number;
			public byteValue(): number;
			public doubleValue(): any;
			/**
			 * Tests this double for equality with object. To be equal, object must be an instance of Float and floatToIntBits must give the same value for both objects.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns an integer corresponding to the bits of the given <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> single precision float value. All <em>Not-a-Number (NaN)</em> values are converted to a single NaN representation (0x7fc00000) (compare to #floatToRawIntBits).
			 */
			public static floatToIntBits(value: number): number;
			/**
			 * Returns an integer corresponding to the bits of the given <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> single precision float value. <em>Not-a-Number (NaN)</em> values are preserved (compare to #floatToIntBits).
			 */
			public static floatToRawIntBits(value: number): number;
			/**
			 * Gets the primitive value of this float.
			 */
			public floatValue(): number;
			public hashCode(): number;
			/**
			 * Returns the <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> single precision float corresponding to the given bits.
			 */
			public static intBitsToFloat(bits: number): number;
			public intValue(): number;
			/**
			 * Indicates whether this object represents an infinite value.
			 */
			public isInfinite(): boolean;
			/**
			 * Indicates whether the specified float represents an infinite value.
			 * @param f 
			 */
			public static isInfinite(f: number): boolean;
			/**
			 * Indicates whether this object is a <em>Not-a-Number (NaN)</em> value.
			 */
			public isNaN(): boolean;
			/**
			 * Indicates whether the specified float is a <em>Not-a-Number (NaN)</em> value.
			 * @param f 
			 */
			public static isNaN(f: number): boolean;
			public longValue(): any;
			/**
			 * Parses the specified string as a float value.
			 * @param string 
			 */
			public static parseFloat(string: string): number;
			public shortValue(): number;
			public toString(): string;
			/**
			 * Returns a string containing a concise, human-readable description of the specified float value.
			 * @param f 
			 */
			public static toString(f: number): string;
			/**
			 * Parses the specified string as a float value.
			 * @param string 
			 */
			public static valueOf(string: string): java.lang.Float;
			/**
			 * Compares the two specified float values. There are two special cases: <ul> <li>Float.NaN is equal to Float.NaN and it is greater than any other float value, including Float.POSITIVE_INFINITY;</li> <li>+0.0f is greater than -0.0f</li> </ul>
			 * @param float1 
			 * @param float2 
			 */
			public static compare(float1: number, float2: number): number;
			/**
			 * Returns a Float instance for the specified float value.
			 * @param f 
			 */
			public static valueOf(f: number): java.lang.Float;
			/**
			 * Converts the specified float into its hexadecimal string representation.
			 * @param f 
			 */
			public static toHexString(f: number): string;
		}
		/**
		 * Thrown when the VM notices that a program tries to create a new instance of a class which has no visible constructors from the location where new is invoked.
		 */
		export class InstantiationError extends java.lang.IncompatibleClassChangeError {
			/**
			 * Constructs a new InstantiationError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new InstantiationError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.InstantiationError>;
		}
		/**
		 * Thrown when the VM notices that an attempt is made to load a class which does not pass the class verification phase.
		 */
		export class VerifyError extends java.lang.LinkageError {
			/**
			 * Constructs a new VerifyError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new VerifyError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.VerifyError>;
		}
		/**
		 * The wrapper for the primitive type byte.
		 */
		export class Byte extends java.lang.Number {
			/**
			 * Constructs a new Byte with the specified primitive byte value.
			 * @param value 
			 */
			constructor(value: number);
			/**
			 * Constructs a new Byte from the specified string.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * The maximum Byte value, 2<sup>7</sup>-1.
			 */
			static MAX_VALUE: number;
			/**
			 * The minimum Byte value, -2<sup>7</sup>.
			 */
			static MIN_VALUE: number;
			/**
			 * The number of bits needed to represent a Byte value in two's complement form.
			 */
			static SIZE: number;
			/**
			 * The Class object that represents the primitive type byte.
			 */
			static TYPE: java.lang.Class<java.lang.Byte>;
			static class: java.lang.Class<java.lang.Byte>;
			private __java_lang_Byte: any;
			/**
			 * Gets the primitive value of this byte.
			 */
			public byteValue(): number;
			/**
			 * Compares this object to the specified byte object to determine their relative order.
			 * @param object 
			 */
			public compareTo(object: java.lang.Byte): number;
			/**
			 * Parses the specified string and returns a Byte instance if the string can be decoded into a single byte value. The string may be an optional minus sign "-" followed by a hexadecimal ("0x..." or "#..."), octal ("0..."), or decimal ("...") representation of a byte.
			 * @param string 
			 */
			public static decode(string: string): java.lang.Byte;
			public doubleValue(): any;
			/**
			 * Compares this object with the specified object and indicates if they are equal. In order to be equal, object must be an instance of Byte and have the same byte value as this object.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public floatValue(): number;
			public hashCode(): number;
			public intValue(): number;
			public longValue(): any;
			/**
			 * Parses the specified string as a signed decimal byte value. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 */
			public static parseByte(string: string): number;
			/**
			 * Parses the specified string as a signed byte value using the specified radix. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 * @param radix 
			 */
			public static parseByte(string: string, radix: number): number;
			public shortValue(): number;
			public toString(): string;
			/**
			 * Returns a string containing a concise, human-readable description of the specified byte value.
			 * @param value 
			 */
			public static toString(value: number): string;
			/**
			 * Parses the specified string as a signed decimal byte value.
			 * @param string 
			 */
			public static valueOf(string: string): java.lang.Byte;
			/**
			 * Parses the specified string as a signed byte value using the specified radix.
			 * @param string 
			 * @param radix 
			 */
			public static valueOf(string: string, radix: number): java.lang.Byte;
			/**
			 * Returns a Byte instance for the specified byte value.
			 * @param b 
			 */
			public static valueOf(b: number): java.lang.Byte;
		}
		/**
		 * The root class of the Java class hierarchy. All non-primitive types (including arrays) inherit either directly or indirectly from this class.
		 */
		export class Object {
			/**
			 * Constructs a new instance of Object.
			 */
			constructor();
			static class: java.lang.Class<java.lang.Object>;
			/**
			 * Creates and returns a copy of this Object. The default implementation returns a so-called "shallow" copy: It creates a new instance of the same class and then copies the field values (including object references) from this instance to the new instance. A "deep" copy, in contrast, would also recursively clone nested objects. A subclass that needs to implement this kind of cloning should call super.clone() to create the new instance and then create deep copies of the nested, mutable objects.
			 */
			protected clone(): any;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.
			 * @param o 
			 */
			public equals(o: any): boolean;
			/**
			 * Invoked when the garbage collector has detected that this instance is no longer reachable. The default implementation does nothing, but this method can be overridden to free resources.
			 */
			protected finalize(): void;
			/**
			 * Returns the unique instance of Class that represents this object's class. Note that getClass() is a special case in that it actually returns Class<? extends Foo> where Foo is the erasure of the type of the expression getClass() was called upon.
			 */
			public getClass(): java.lang.Class<any>;
			/**
			 * Returns an integer hash code for this object. By contract, any two objects for which #equals returns true must return the same hash code value. This means that subclasses of Object usually override both methods or neither method.
			 */
			public hashCode(): number;
			/**
			 * Causes a thread which is waiting on this object's monitor (by means of calling one of the wait() methods) to be woken up. If more than one thread is waiting, one of them is chosen at the discretion of the VM. The chosen thread will not run immediately. The thread that called notify() has to release the object's monitor first. Also, the chosen thread still has to compete against other threads that try to synchronize on the same object.
			 */
			public notify(): void;
			/**
			 * Causes all threads which are waiting on this object's monitor (by means of calling one of the wait() methods) to be woken up. The threads will not run immediately. The thread that called notify() has to release the object's monitor first. Also, the threads still have to compete against other threads that try to synchronize on the same object.
			 */
			public notifyAll(): void;
			/**
			 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
			 */
			public toString(): string;
			/**
			 * Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object. This method can only be invoked by a thread which owns this object's monitor; see #notify() on how a thread can become the owner of a monitor.
			 */
			public wait(): void;
			/**
			 * Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the specified timeout expires. This method can only be invoked by a thread which owns this object's monitor; see #notify() on how a thread can become the owner of a monitor.
			 * @param millis 
			 */
			public wait(millis: number): void;
			/**
			 * Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the specified timeout expires. This method can only be invoked by a thread that owns this object's monitor; see #notify() on how a thread can become the owner of a monitor.
			 * @param millis 
			 * @param nanos 
			 */
			public wait(millis: number, nanos: number): void;
		}
		/**
		 * This (empty) interface must be implemented by all classes that wish to support cloning. The implementation of clone() in Object checks if the object being cloned implements this interface and throws CloneNotSupportedException if it does not.
		 */
		export class Cloneable implements java.lang.ICloneable {
			constructor(implementation: java.lang.ICloneable);
		}
		/**
		 * Represents a sequence of characters that can be incrementally read (copied) into a CharBuffer.
		 */
		export class Readable implements java.lang.IReadable {
			constructor(implementation: java.lang.IReadable);
			/**
			 * Reads characters into the specified CharBuffer. The maximum number of characters read is CharBuffer.remaining().
			 * @param cb 
			 */
			public read(cb: java.nio.CharBuffer): number;
		}
		/**
		 * Contains information about a Java package. This includes implementation and specification versions. Typically this information is retrieved from the manifest.
		 */
		export class Package extends java.lang.Object implements java.lang.reflect.IAnnotatedElement {
			static class: java.lang.Class<java.lang.Package>;
			/**
			 * Gets the annotation associated with the specified annotation type and this package, if present.
			 * @param annotationType 
			 */
			public getAnnotation<A extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<A>): A;
			/**
			 * Returns an empty array. Package annotations are not supported on Android.
			 */
			public getAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
			/**
			 * Returns an empty array. Package annotations are not supported on Android.
			 */
			public getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
			/**
			 * Indicates whether the specified annotation is present.
			 * @param annotationType 
			 */
			public isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
			/**
			 * Returns the title of the implementation of this package, or null if this is unknown. The format of this string is unspecified.
			 */
			public getImplementationTitle(): string;
			/**
			 * Returns the name of the vendor or organization that provides this implementation of the package, or null if this is unknown. The format of this string is unspecified.
			 */
			public getImplementationVendor(): string;
			/**
			 * Returns the version of the implementation of this package, or null if this is unknown. The format of this string is unspecified.
			 */
			public getImplementationVersion(): string;
			/**
			 * Returns the name of this package in the standard dot notation; for example: "java.lang".
			 */
			public getName(): string;
			/**
			 * Attempts to locate the requested package in the caller's class loader. If no package information can be located, null is returned.
			 * @param packageName 
			 */
			public static getPackage(packageName: string): java.lang.Package;
			/**
			 * Returns all the packages known to the caller's class loader.
			 */
			public static getPackages(): native.Array<java.lang.Package>;
			/**
			 * Returns the title of the specification this package implements, or null if this is unknown.
			 */
			public getSpecificationTitle(): string;
			/**
			 * Returns the name of the vendor or organization that owns and maintains the specification this package implements, or null if this is unknown.
			 */
			public getSpecificationVendor(): string;
			/**
			 * Returns the version of the specification this package implements, or null if this is unknown. The version string is a sequence of non-negative integers separated by dots; for example: "1.2.3".
			 */
			public getSpecificationVersion(): string;
			public hashCode(): number;
			/**
			 * Indicates whether this package's specification version is compatible with the specified version string. Version strings are compared by comparing each dot separated part of the version as an integer.
			 * @param version 
			 */
			public isCompatibleWith(version: string): boolean;
			/**
			 * Indicates whether this package is sealed.
			 */
			public isSealed(): boolean;
			/**
			 * Indicates whether this package is sealed with respect to the specified URL.
			 * @param url 
			 */
			public isSealed(url: java.net.URL): boolean;
			public toString(): string;
		}
		/**
		 * Thrown when the VM notices that it has gotten into an undefined state.
		 */
		export class InternalError extends java.lang.VirtualMachineError {
			/**
			 * Constructs a new InternalError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new InternalError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.InternalError>;
		}
		export class HexStringParser extends java.lang.Object {
			constructor(exponentWidth: number, mantissaWidth: number);
			static class: java.lang.Class<java.lang.HexStringParser>;
			public static parseDouble(hexString: string): any;
			public static parseFloat(hexString: string): number;
		}
		/**
		 * Thrown when the VM must throw an error which does not match any known exceptional condition.
		 */
		export class UnknownError extends java.lang.VirtualMachineError {
			/**
			 * Constructs a new UnknownError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new UnknownError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.UnknownError>;
		}
		/**
		 * A representation of a single stack frame. Arrays of StackTraceElement are stored in Throwable objects to represent the whole state of the call stack at the time a Throwable gets thrown.
		 */
		export class StackTraceElement extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new StackTraceElement for a specified execution point.
			 * @param cls 
			 * @param method 
			 * @param file 
			 * @param line 
			 */
			constructor(cls: string, method: string, file: string, line: number);
			static class: java.lang.Class<java.lang.StackTraceElement>;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, the following conditions must be fulfilled: <ul> <li>obj must be a stack trace element,</li> <li>the method names of this stack trace element and of obj must not be null,</li> <li>the class, method and file names as well as the line number of this stack trace element and of obj must be equal.</li> </ul>
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns the fully qualified name of the class belonging to this StackTraceElement.
			 */
			public getClassName(): string;
			/**
			 * Returns the name of the Java source file containing class belonging to this StackTraceElement.
			 */
			public getFileName(): string;
			/**
			 * Returns the line number in the source for the class belonging to this StackTraceElement.
			 */
			public getLineNumber(): number;
			/**
			 * Returns the name of the method belonging to this StackTraceElement.
			 */
			public getMethodName(): string;
			public hashCode(): number;
			/**
			 * Indicates if the method name returned by #getMethodName() is implemented as a native method.
			 */
			public isNativeMethod(): boolean;
			public toString(): string;
		}
		/**
		 * Represents a command that can be executed. Often used to run code in a different Thread.
		 */
		interface IRunnable {
			/**
			 * Starts executing the active part of the class' code. This method is called when a thread is started that has been created with a class which implements Runnable.
			 */
			run(): void;
		}
		/**
		 * Thrown when the VM notices that a program tries to reference, on a class or object, a field that does not exist.
		 */
		export class NoSuchFieldException extends java.lang.Exception {
			/**
			 * Constructs a new NoSuchFieldException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NoSuchFieldException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NoSuchFieldException>;
		}
		/**
		 * Thrown when a waiting thread is activated before the condition it was waiting for has been satisfied.
		 */
		export class InterruptedException extends java.lang.Exception {
			/**
			 * Constructs a new InterruptedException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new InterruptedException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.InterruptedException>;
		}
		/**
		 * Annotation type used to mark program elements that should no longer be used by programmers. Compilers produce a warning if a deprecated program element is used.
		 */
		export class Deprecated implements java.lang.annotation.IAnnotation, java.lang.IDeprecated {
			constructor(implementation: java.lang.IDeprecated);
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Thrown when the a string is indexed with a value less than zero, or greater than or equal to the size of the array.
		 */
		export class StringIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
			/**
			 * Constructs a new StringIndexOutOfBoundsException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new StringIndexOutOfBoundsException with the current stack trace and a detail message that is based on the specified invalid index.
			 * @param index 
			 */
			constructor(index: number);
			/**
			 * Constructs a new StringIndexOutOfBoundsException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.StringIndexOutOfBoundsException>;
		}
		/**
		 * ThreadGroup is a means of organizing threads into a hierarchical structure. This class is obsolete. See <i>Effective Java</i> Item 73, "Avoid thread groups" for details. Thread
		 */
		export class ThreadGroup extends java.lang.Object implements java.lang.Thread.IUncaughtExceptionHandler {
			/**
			 * Constructs a new ThreadGroup with the given name. The new ThreadGroup will be child of the ThreadGroup to which the calling thread belongs.
			 * @param name the name
			 */
			constructor(name: string);
			/**
			 * Constructs a new ThreadGroup with the given name, as a child of the given ThreadGroup.
			 * @param parent the parent
			 * @param name the name
			 */
			constructor(parent: java.lang.ThreadGroup, name: string);
			static class: java.lang.Class<java.lang.ThreadGroup>;
			/**
			 * Returns the number of running Threads which are children of this thread group, directly or indirectly.
			 */
			public activeCount(): number;
			/**
			 * Returns the number of ThreadGroups which are children of this group, directly or indirectly.
			 */
			public activeGroupCount(): number;
			/**
			 * Does nothing. The definition of this method depends on the deprecated method #suspend(). The exact behavior of this call was never specified.
			 * @param b Used to control low memory implicit suspension
			 */
			public allowThreadSuspension(b: boolean): boolean;
			/**
			 * Does nothing.
			 */
			public checkAccess(): void;
			/**
			 * Destroys this thread group and recursively all its subgroups. It is only legal to destroy a ThreadGroup that has no threads in it. Any daemon ThreadGroup is destroyed automatically when it becomes empty (no threads or thread groups in it).
			 */
			public destroy(): void;
			/**
			 * Iterates over all active threads in this group (and its sub-groups) and stores the threads in the given array. Returns when the array is full or no more threads remain, whichever happens first.
			 * @param threads the array into which the {@code Thread}s will be copied
			 */
			public enumerate(threads: native.Array<java.lang.Thread>): number;
			/**
			 * Iterates over all active threads in this group (and, optionally, its sub-groups) and stores the threads in the given array. Returns when the array is full or no more threads remain, whichever happens first.
			 * @param threads the array into which the {@code Thread}s will be copied
			 * @param recurse indicates whether {@code Thread}s in subgroups should be
			 */
			public enumerate(threads: native.Array<java.lang.Thread>, recurse: boolean): number;
			/**
			 * Returns the maximum allowed priority for a Thread in this thread group.
			 */
			public getMaxPriority(): number;
			/**
			 * Returns the name of this thread group.
			 */
			public getName(): string;
			/**
			 * Returns this thread group's parent ThreadGroup. It can be null if this is the the root ThreadGroup.
			 */
			public getParent(): java.lang.ThreadGroup;
			/**
			 * Interrupts every Thread in this group and recursively in all its subgroups.
			 */
			public interrupt(): void;
			/**
			 * Checks whether this thread group is a daemon ThreadGroup.
			 */
			public isDaemon(): boolean;
			/**
			 * Checks whether this thread group has already been destroyed.
			 */
			public isDestroyed(): boolean;
			/**
			 * Outputs to System.out a text representation of the hierarchy of Threads and ThreadGroups in this thread group (and recursively). Proper indentation is used to show the nesting of groups inside groups and threads inside groups.
			 */
			public list(): void;
			/**
			 * Checks whether this thread group is a direct or indirect parent group of a given ThreadGroup.
			 * @param g the potential child {@code ThreadGroup}
			 */
			public parentOf(g: java.lang.ThreadGroup): boolean;
			/**
			 * Resumes every thread in this group and recursively in all its subgroups.
			 */
			public resume(): void;
			/**
			 * Sets whether this is a daemon ThreadGroup or not. Daemon thread groups are automatically destroyed when they become empty.
			 * @param isDaemon the new value
			 */
			public setDaemon(isDaemon: boolean): void;
			/**
			 * Configures the maximum allowed priority for a Thread in this group and recursively in all its subgroups.
			 * @param newMax the new maximum priority to be set
			 */
			public setMaxPriority(newMax: number): void;
			/**
			 * Stops every thread in this group and recursively in all its subgroups.
			 */
			public stop(): void;
			/**
			 * Suspends every thread in this group and recursively in all its subgroups.
			 */
			public suspend(): void;
			public toString(): string;
			/**
			 * Handles uncaught exceptions. Any uncaught exception in any Thread is forwarded to the thread's ThreadGroup by invoking this method.
			 * @param t the Thread that terminated with an uncaught exception
			 * @param e the uncaught exception itself
			 */
			public uncaughtException(t: java.lang.Thread, e: java.lang.Throwable): void;
			/**
			 * Called by the Thread constructor.
			 */
			addThread(thread: java.lang.Thread): void;
			/**
			 * Called by the VM when a Thread dies.
			 */
			removeThread(thread: java.lang.Thread): void;
		}
		/**
		 * Manages child processes.
		 */
		export class ProcessManager extends java.lang.Object {
			static class: java.lang.Class<java.lang.ProcessManager>;
			/**
			 * Executes a process and returns an object representing it.
			 */
			public exec(taintedCommand: native.Array<string>, taintedEnvironment: native.Array<string>, workingDirectory: java.io.File, redirectErrorStream: boolean): java.lang.Process;
			/**
			 * Gets the process manager.
			 */
			public static getInstance(): java.lang.ProcessManager;
		}
		export module ProcessManager {
			/**
			 * Automatically closes fd when collected.
			 */
			export class ProcessInputStream extends java.io.FileInputStream {
				static class: java.lang.Class<java.lang.ProcessManager.ProcessInputStream>;
				public close(): void;
			}
			export class ProcessReference extends java.lang.ref.WeakReference<java.lang.ProcessManager.ProcessImpl> {
				constructor(referent: java.lang.ProcessManager.ProcessImpl, referenceQueue: java.lang.ProcessManager.ProcessReferenceQueue);
				static class: java.lang.Class<java.lang.ProcessManager.ProcessReference>;
			}
			export class ProcessReferenceQueue extends java.lang.ref.ReferenceQueue<java.lang.ProcessManager.ProcessImpl> {
				static class: java.lang.Class<java.lang.ProcessManager.ProcessReferenceQueue>;
				public poll(): java.lang.ProcessManager.ProcessReference;
			}
			export class ProcessImpl extends java.lang.Process {
				static class: java.lang.Class<java.lang.ProcessManager.ProcessImpl>;
				public destroy(): void;
				public exitValue(): number;
				public getErrorStream(): java.io.InputStream;
				public getInputStream(): java.io.InputStream;
				public getOutputStream(): java.io.OutputStream;
				public waitFor(): number;
				setExitValue(exitValue: number): void;
				public toString(): string;
			}
			/**
			 * Automatically closes fd when collected.
			 */
			export class ProcessOutputStream extends java.io.FileOutputStream {
				static class: java.lang.Class<java.lang.ProcessManager.ProcessOutputStream>;
				public close(): void;
			}
		}
		/**
		 * Thrown when a program attempts to clone an object which does not support the Cloneable interface.
		 */
		export class CloneNotSupportedException extends java.lang.Exception {
			/**
			 * Constructs a new CloneNotSupportedException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new CloneNotSupportedException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.CloneNotSupportedException>;
		}
		export module annotation {
			/**
			 * Defines the interface implemented by all annotations. Note that the interface itself is <i>not</i> an annotation, and neither is an interface that simply extends this one. Only the compiler is able to create proper annotation types.
			 */
			interface IAnnotation {
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines an enumeration for Java program elements. It is used in conjunction with the Target meta-annotation to restrict the use of an annotation to certain program elements.
			 */
			export enum ElementType {
				TYPE,
				FIELD,
				METHOD,
				PARAMETER,
				CONSTRUCTOR,
				LOCAL_VARIABLE,
				ANNOTATION_TYPE,
				PACKAGE
			}
			/**
			 * Defines a meta-annotation for indicating that an annotation is documented and considered part of the public API.
			 */
			export class Documented implements java.lang.annotation.IAnnotation, java.lang.annotation.IDocumented {
				constructor(implementation: java.lang.annotation.IDocumented);
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines a meta-annotation for indicating that an annotation is automatically inherited.
			 */
			export class Inherited implements java.lang.annotation.IAnnotation, java.lang.annotation.IInherited {
				constructor(implementation: java.lang.annotation.IInherited);
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Indicates that an annotation in the binary representation of a class is syntactically incorrect and the annotation parser is unable to process it. This exception is unlikely to ever occur, given that the code has been compiled by an ordinary Java compiler.
			 */
			export class AnnotationFormatError extends java.lang.Error {
				/**
				 * Constructs an instance with the message provided.
				 * @param message 
				 */
				constructor(message: string);
				/**
				 * Constructs an instance with a message and a cause.
				 * @param message 
				 * @param cause 
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Constructs an instance with a cause. If the cause is not null, then cause.toString() is used as the error's message.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<java.lang.annotation.AnnotationFormatError>;
			}
			/**
			 * Defines a meta-annotation for determining the scope of retention for an annotation. If the retention annotation is not set RetentionPolicy.CLASS is used as default retention.
			 */
			export class Retention implements java.lang.annotation.IAnnotation, java.lang.annotation.IRetention {
				constructor(implementation: java.lang.annotation.IRetention);
				public value(): java.lang.annotation.RetentionPolicy;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines an enumeration for annotation retention policies. Used in conjunction with the Retention annotation to specify an annotation's time-to-live in the overall development life cycle.
			 */
			export enum RetentionPolicy {
				SOURCE,
				CLASS,
				RUNTIME
			}
			/**
			 * Indicates that an annotation type has changed since it was compiled or serialized.
			 */
			export class AnnotationTypeMismatchException extends java.lang.RuntimeException {
				/**
				 * Constructs an instance for the given type element and the type found.
				 * @param element 
				 * @param foundType 
				 */
				constructor(element: java.lang.reflect.Method, foundType: string);
				static class: java.lang.Class<java.lang.annotation.AnnotationTypeMismatchException>;
				/**
				 * Returns the method object for the invalid type.
				 */
				public element(): java.lang.reflect.Method;
				/**
				 * Returns the invalid type.
				 */
				public foundType(): string;
			}
			/**
			 * Defines the interface implemented by all annotations. Note that the interface itself is <i>not</i> an annotation, and neither is an interface that simply extends this one. Only the compiler is able to create proper annotation types.
			 */
			export class Annotation implements java.lang.annotation.IAnnotation {
				constructor(implementation: java.lang.annotation.IAnnotation);
				/**
				 * Returns the type of this annotation.
				 */
				public annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				public hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				public toString(): string;
			}
			/**
			 * Defines a meta-annotation for determining what ElementTypes an annotation can be applied to.
			 */
			interface ITarget extends java.lang.annotation.IAnnotation {
				value(): native.Array<java.lang.annotation.ElementType>;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines a meta-annotation for determining the scope of retention for an annotation. If the retention annotation is not set RetentionPolicy.CLASS is used as default retention.
			 */
			interface IRetention extends java.lang.annotation.IAnnotation {
				value(): java.lang.annotation.RetentionPolicy;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines a meta-annotation for determining what ElementTypes an annotation can be applied to.
			 */
			export class Target implements java.lang.annotation.IAnnotation, java.lang.annotation.ITarget {
				constructor(implementation: java.lang.annotation.ITarget);
				public value(): native.Array<java.lang.annotation.ElementType>;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines a meta-annotation for indicating that an annotation is documented and considered part of the public API.
			 */
			interface IDocumented extends java.lang.annotation.IAnnotation {
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Indicates that an element of an annotation type was accessed that was added after the type was compiled or serialized. This does not apply to new elements that have default values.
			 */
			export class IncompleteAnnotationException extends java.lang.RuntimeException {
				/**
				 * Constructs an instance with the incomplete annotation type and the name of the element that's missing.
				 * @param annotationType 
				 * @param elementName 
				 */
				constructor(annotationType: java.lang.Class<any>, elementName: string);
				static class: java.lang.Class<java.lang.annotation.IncompleteAnnotationException>;
				/**
				 * Returns the annotation type.
				 */
				public annotationType(): java.lang.Class<any>;
				/**
				 * Returns the incomplete element's name.
				 */
				public elementName(): string;
			}
			/**
			 * Defines a meta-annotation for indicating that an annotation is automatically inherited.
			 */
			interface IInherited extends java.lang.annotation.IAnnotation {
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
		}
		/**
		 * Annotation type used to mark program elements that should no longer be used by programmers. Compilers produce a warning if a deprecated program element is used.
		 */
		interface IDeprecated extends java.lang.annotation.IAnnotation {
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * LinkageError is the superclass of all error classes that occur when loading and linking class files.
		 */
		export class LinkageError extends java.lang.Error {
			/**
			 * Constructs a new LinkageError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new LinkageError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.LinkageError>;
		}
		/**
		 * Thrown when a program tries to access a class, interface, enum or annotation type through a string that contains the type's name and the type cannot be found. This exception is an unchecked alternative to java.lang.ClassNotFoundException.
		 */
		export class TypeNotPresentException extends java.lang.RuntimeException {
			/**
			 * Constructs a new TypeNotPresentException with the current stack trace, a detail message that includes the name of the type that could not be found and the Throwable that caused this exception.
			 * @param typeName 
			 * @param cause 
			 */
			constructor(typeName: string, cause: java.lang.Throwable);
			static class: java.lang.Class<java.lang.TypeNotPresentException>;
			/**
			 * Gets the fully qualified name of the type that could not be found.
			 */
			public typeName(): string;
		}
		/**
		 * Thrown when the VM notices that an attempt is made to load a class which would directly or indirectly inherit from one of its subclasses.
		 */
		export class ClassCircularityError extends java.lang.LinkageError {
			/**
			 * Constructs a new ClassCircularityError that include the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ClassCircularityError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.ClassCircularityError>;
		}
		/**
		 * Thrown when an exception occurs during class initialization.
		 */
		export class ExceptionInInitializerError extends java.lang.LinkageError {
			/**
			 * Constructs a new ExceptionInInitializerError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ExceptionInInitializerError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new ExceptionInInitializerError with the current stack trace and the specified cause. The exception should be the one which originally occurred in the class initialization code.
			 * @param exception 
			 */
			constructor(exception: java.lang.Throwable);
			static class: java.lang.Class<java.lang.ExceptionInInitializerError>;
			/**
			 * Returns the exception that is the cause of this error.
			 */
			public getException(): java.lang.Throwable;
			/**
			 * Returns the cause of this error, or null if there is no cause.
			 */
			public getCause(): java.lang.Throwable;
		}
		/**
		 * Thrown when the VM notices that a program tries access a field which is not accessible from where it is referenced.
		 */
		export class IllegalAccessError extends java.lang.IncompatibleClassChangeError {
			/**
			 * Constructs a new IllegalAccessError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IllegalAccessError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.IllegalAccessError>;
		}
		/**
		 * Class StrictMath provides basic math constants and operations such as trigonometric functions, hyperbolic functions, exponential, logarithms, etc.
		 */
		export class StrictMath extends java.lang.Object {
			/**
			 * The double value closest to e, the base of the natural logarithm.
			 */
			static E: number;
			/**
			 * The double value closest to pi, the ratio of a circle's circumference to its diameter.
			 */
			static PI: number;
			static class: java.lang.Class<java.lang.StrictMath>;
			/**
			 * Returns the absolute value of the argument.
			 */
			public static abs(d: number): any;
			/**
			 * Returns the closest double approximation of the arc cosine of the argument within the range [0..pi].
			 * @param d 
			 */
			public static acos(d: number): any;
			/**
			 * Returns the closest double approximation of the arc sine of the argument within the range [-pi/2..pi/2].
			 * @param d 
			 */
			public static asin(d: number): any;
			/**
			 * Returns the closest double approximation of the arc tangent of the argument within the range [-pi/2..pi/2].
			 * @param d 
			 */
			public static atan(d: number): any;
			/**
			 * Returns the closest double approximation of the arc tangent of y/x within the range [-pi..pi]. This is the angle of the polar representation of the rectangular coordinates (x,y).
			 * @param y 
			 * @param x 
			 */
			public static atan2(y: number, x: number): any;
			/**
			 * Returns the closest double approximation of the cube root of the argument.
			 * @param d 
			 */
			public static cbrt(d: number): any;
			/**
			 * Returns the double conversion of the most negative (closest to negative infinity) integer value which is greater than the argument.
			 * @param d 
			 */
			public static ceil(d: number): any;
			/**
			 * Returns the closest double approximation of the hyperbolic cosine of the argument.
			 * @param d 
			 */
			public static cosh(d: number): any;
			/**
			 * Returns the closest double approximation of the cosine of the argument.
			 * @param d 
			 */
			public static cos(d: number): any;
			/**
			 * Returns the closest double approximation of the raising "e" to the power of the argument.
			 * @param d 
			 */
			public static exp(d: number): any;
			/**
			 * Returns the closest double approximation of <i>e</i><sup> d</sup>- 1. If the argument is very close to 0, it is much more accurate to use expm1(d)+1 than exp(d) (due to cancellation of significant digits).
			 * @param d 
			 */
			public static expm1(d: number): any;
			/**
			 * Returns the double conversion of the most positive (closest to positive infinity) integer value which is less than the argument.
			 * @param d the value whose closest integer value has to be computed.
			 */
			public static floor(d: number): any;
			/**
			 * Returns sqrt(<i>x</i><sup>2</sup>+ <i> y</i><sup>2</sup>). The final result is without medium underflow or overflow.
			 * @param x 
			 * @param y 
			 */
			public static hypot(x: number, y: number): any;
			/**
			 * Returns the remainder of dividing x by y using the IEEE 754 rules. The result is x-round(x/p)*p where round(x/p) is the nearest integer (rounded to even), but without numerical cancellation problems.
			 * @param x 
			 * @param y 
			 */
			public static IEEEremainder(x: number, y: number): any;
			/**
			 * Returns the closest double approximation of the natural logarithm of the argument.
			 * @param d 
			 */
			public static log(d: number): any;
			/**
			 * Returns the closest double approximation of the base 10 logarithm of the argument.
			 * @param d 
			 */
			public static log10(d: number): any;
			/**
			 * Returns the closest double approximation of the natural logarithm of the sum of the argument and 1. If the argument is very close to 0, it is much more accurate to use log1p(d) than log(1.0+d) (due to numerical cancellation).
			 * @param d 
			 */
			public static log1p(d: number): any;
			/**
			 * Returns the most positive (closest to positive infinity) of the two arguments.
			 */
			public static max(d1: number, d2: number): any;
			/**
			 * Returns the most negative (closest to negative infinity) of the two arguments.
			 */
			public static min(d1: number, d2: number): any;
			/**
			 * Returns the closest double approximation of the result of raising x to the power of y.
			 * @param x 
			 * @param y 
			 */
			public static pow(x: number, y: number): any;
			/**
			 * Returns a pseudo-random number between 0.0 (inclusive) and 1.0 (exclusive).
			 */
			public static random(): any;
			/**
			 * Returns the double conversion of the result of rounding the argument to an integer. Tie breaks are rounded towards even.
			 * @param d 
			 */
			public static rint(d: number): any;
			/**
			 * Returns the result of rounding the argument to an integer. The result is equivalent to (long) Math.floor(d+0.5).
			 * @param d 
			 */
			public static round(d: number): any;
			/**
			 * Returns the signum function of the argument. If the argument is less than zero, it returns -1.0. If the argument is greater than zero, 1.0 is returned. If the argument is either positive or negative zero, the argument is returned as result.
			 * @param d 
			 */
			public static signum(d: number): any;
			/**
			 * Returns the closest double approximation of the hyperbolic sine of the argument.
			 * @param d 
			 */
			public static sinh(d: number): any;
			/**
			 * Returns the closest double approximation of the sine of the argument.
			 * @param d 
			 */
			public static sin(d: number): any;
			/**
			 * Returns the closest double approximation of the square root of the argument.
			 */
			public static sqrt(d: number): any;
			/**
			 * Returns the closest double approximation of the tangent of the argument.
			 * @param d 
			 */
			public static tan(d: number): any;
			/**
			 * Returns the closest double approximation of the hyperbolic tangent of the argument. The absolute value is always less than 1.
			 * @param d 
			 */
			public static tanh(d: number): any;
			/**
			 * Returns the measure in degrees of the supplied radian angle. The result is angrad * 180 / pi.
			 * @param angrad 
			 */
			public static toDegrees(angrad: number): any;
			/**
			 * Returns the measure in radians of the supplied degree angle. The result is angdeg / 180 * pi.
			 * @param angdeg 
			 */
			public static toRadians(angdeg: number): any;
			/**
			 * Returns the argument's ulp (unit in the last place). The size of a ulp of a double value is the positive distance between this value and the double value next larger in magnitude. For non-NaN x, ulp(-x) == ulp(x).
			 * @param d 
			 */
			public static ulp(d: number): any;
			/**
			 * Returns a double with the given magnitude and the sign of sign. If sign is NaN, the sign of the result is positive. 1.6
			 */
			public static copySign(magnitude: number, sign: number): any;
			/**
			 * Returns the exponent of float f. 1.6
			 */
			public static getExponent(f: number): number;
			/**
			 * Returns the next double after start in the given direction. 1.6
			 */
			public static nextAfter(start: number, direction: number): any;
			/**
			 * Returns the next double larger than d. 1.6
			 */
			public static nextUp(d: number): any;
			/**
			 * Returns d * 2^scaleFactor. The result may be rounded. 1.6
			 */
			public static scalb(d: number, scaleFactor: number): any;
		}
		/**
		 * A Thread is a concurrent unit of execution. It has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at least one main Thread running when it is started; typically, there are several others for housekeeping. The application might decide to launch additional Threads for specific purposes.
		 */
		export class Thread extends java.lang.Object implements java.lang.IRunnable {
			/**
			 * Constructs a new Thread with no Runnable object and a newly generated name. The new Thread will belong to the same ThreadGroup as the Thread calling this constructor.
			 */
			constructor();
			/**
			 * Constructs a new Thread with a Runnable object and a newly generated name. The new Thread will belong to the same ThreadGroup as the Thread calling this constructor.
			 * @param runnable 
			 */
			constructor(runnable: java.lang.IRunnable);
			/**
			 * Constructs a new Thread with a Runnable object and name provided. The new Thread will belong to the same ThreadGroup as the Thread calling this constructor.
			 * @param runnable 
			 * @param threadName 
			 */
			constructor(runnable: java.lang.IRunnable, threadName: string);
			/**
			 * Constructs a new Thread with no Runnable object and the name provided. The new Thread will belong to the same ThreadGroup as the Thread calling this constructor.
			 * @param threadName 
			 */
			constructor(threadName: string);
			/**
			 * Constructs a new Thread with a Runnable object and a newly generated name. The new Thread will belong to the ThreadGroup passed as parameter.
			 * @param group 
			 * @param runnable 
			 */
			constructor(group: java.lang.ThreadGroup, runnable: java.lang.IRunnable);
			/**
			 * Constructs a new Thread with a Runnable object, the given name and belonging to the ThreadGroup passed as parameter.
			 * @param group 
			 * @param runnable 
			 * @param threadName 
			 */
			constructor(group: java.lang.ThreadGroup, runnable: java.lang.IRunnable, threadName: string);
			/**
			 * Constructs a new Thread with no Runnable object, the given name and belonging to the ThreadGroup passed as parameter.
			 * @param group 
			 * @param threadName 
			 */
			constructor(group: java.lang.ThreadGroup, threadName: string);
			/**
			 * Constructs a new Thread with a Runnable object, the given name and belonging to the ThreadGroup passed as parameter.
			 * @param group 
			 * @param runnable 
			 * @param threadName 
			 * @param stackSize 
			 */
			constructor(group: java.lang.ThreadGroup, runnable: java.lang.IRunnable, threadName: string, stackSize: number);
			/**
			 * The maximum priority value allowed for a thread.
			 */
			static MAX_PRIORITY: number;
			/**
			 * The minimum priority value allowed for a thread.
			 */
			static MIN_PRIORITY: number;
			/**
			 * The normal (default) priority value assigned to threads.
			 */
			static NORM_PRIORITY: number;
			static class: java.lang.Class<java.lang.Thread>;
			/**
			 * Returns the number of active Threads in the running Thread's group and its subgroups.
			 */
			public static activeCount(): number;
			/**
			 * Does nothing.
			 */
			public checkAccess(): void;
			/**
			 * Returns the number of stack frames in this thread.
			 */
			public countStackFrames(): number;
			/**
			 * Returns the Thread of the caller, that is, the current Thread.
			 */
			public static currentThread(): java.lang.Thread;
			/**
			 * Destroys the receiver without any monitor cleanup.
			 */
			public destroy(): void;
			/**
			 * Prints to the standard error stream a text representation of the current stack for this Thread.
			 */
			public static dumpStack(): void;
			/**
			 * Copies an array with all Threads which are in the same ThreadGroup as the receiver - and subgroups - into the array <code>threads</code> passed as parameter. If the array passed as parameter is too small no exception is thrown - the extra elements are simply not copied.
			 * @param threads 
			 */
			public static enumerate(threads: native.Array<java.lang.Thread>): number;
			/**
			 * Returns a map of all the currently live threads to their stack traces.
			 */
			public static getAllStackTraces(): java.util.IMap<java.lang.Thread, native.Array<java.lang.StackTraceElement>>;
			/**
			 * Returns the context ClassLoader for this Thread.
			 */
			public getContextClassLoader(): java.lang.ClassLoader;
			/**
			 * Returns the default exception handler that's executed when uncaught exception terminates a thread.
			 */
			public static getDefaultUncaughtExceptionHandler(): java.lang.Thread.IUncaughtExceptionHandler;
			/**
			 * Returns the thread's identifier. The ID is a positive <code>long</code> generated on thread creation, is unique to the thread, and doesn't change during the lifetime of the thread; the ID may be reused after the thread has been terminated.
			 */
			public getId(): any;
			/**
			 * Returns the name of the Thread.
			 */
			public getName(): string;
			/**
			 * Returns the priority of the Thread.
			 */
			public getPriority(): number;
			/**
			 * Returns an array of StackTraceElement representing the current thread's stack.
			 */
			public getStackTrace(): native.Array<java.lang.StackTraceElement>;
			/**
			 * Returns the current state of the Thread. This method is useful for monitoring purposes.
			 */
			public getState(): java.lang.Thread.State;
			/**
			 * Returns the ThreadGroup to which this Thread belongs.
			 */
			public getThreadGroup(): java.lang.ThreadGroup;
			/**
			 * Returns the thread's uncaught exception handler. If not explicitly set, then the ThreadGroup's handler is returned. If the thread is terminated, then <code>null</code> is returned.
			 */
			public getUncaughtExceptionHandler(): java.lang.Thread.IUncaughtExceptionHandler;
			/**
			 * Posts an interrupt request to this Thread. The behavior depends on the state of this Thread: <ul> <li> Threads blocked in one of Object's wait() methods or one of Thread's join() or sleep() methods will be woken up, their interrupt status will be cleared, and they receive an InterruptedException. <li> Threads blocked in an I/O operation of an java.nio.channels.InterruptibleChannel will have their interrupt status set and receive an java.nio.channels.ClosedByInterruptException. Also, the channel will be closed. <li> Threads blocked in a java.nio.channels.Selector will have their interrupt status set and return immediately. They don't receive an exception in this case. <ul>
			 */
			public interrupt(): void;
			/**
			 * Returns a <code>boolean</code> indicating whether the current Thread ( <code>currentThread()</code>) has a pending interrupt request (<code> true</code>) or not (<code>false</code>). It also has the side-effect of clearing the flag.
			 */
			public static interrupted(): boolean;
			/**
			 * Returns <code>true</code> if the receiver has already been started and still runs code (hasn't died yet). Returns <code>false</code> either if the receiver hasn't been started yet or if it has already started and run to completion and died.
			 */
			public isAlive(): boolean;
			/**
			 * Returns a <code>boolean</code> indicating whether the receiver is a daemon Thread (<code>true</code>) or not (<code>false</code>) A daemon Thread only runs as long as there are non-daemon Threads running. When the last non-daemon Thread ends, the whole program ends no matter if it had daemon Threads still running or not.
			 */
			public isDaemon(): boolean;
			/**
			 * Returns a <code>boolean</code> indicating whether the receiver has a pending interrupt request (<code>true</code>) or not ( <code>false</code>)
			 */
			public isInterrupted(): boolean;
			/**
			 * Blocks the current Thread (<code>Thread.currentThread()</code>) until the receiver finishes its execution and dies.
			 */
			public join(): void;
			/**
			 * Blocks the current Thread (<code>Thread.currentThread()</code>) until the receiver finishes its execution and dies or the specified timeout expires, whatever happens first.
			 * @param millis The maximum time to wait (in milliseconds).
			 */
			public join(millis: number): void;
			/**
			 * Blocks the current Thread (<code>Thread.currentThread()</code>) until the receiver finishes its execution and dies or the specified timeout expires, whatever happens first.
			 * @param millis The maximum time to wait (in milliseconds).
			 * @param nanos Extra nanosecond precision
			 */
			public join(millis: number, nanos: number): void;
			/**
			 * Throws UnsupportedOperationException.
			 */
			public resume(): void;
			/**
			 * Calls the <code>run()</code> method of the Runnable object the receiver holds. If no Runnable is set, does nothing.
			 */
			public run(): void;
			/**
			 * Set the context ClassLoader for the receiver.
			 * @param cl The context ClassLoader
			 */
			public setContextClassLoader(cl: java.lang.ClassLoader): void;
			/**
			 * Set if the receiver is a daemon Thread or not. This can only be done before the Thread starts running.
			 * @param isDaemon 
			 */
			public setDaemon(isDaemon: boolean): void;
			/**
			 * Sets the default uncaught exception handler. This handler is invoked in case any Thread dies due to an unhandled exception.
			 * @param handler 
			 */
			public static setDefaultUncaughtExceptionHandler(handler: java.lang.Thread.IUncaughtExceptionHandler): void;
			/**
			 * Sets the name of the Thread.
			 * @param threadName the new name for the Thread
			 */
			public setName(threadName: string): void;
			/**
			 * Sets the priority of the Thread. Note that the final priority set may not be the parameter that was passed - it will depend on the receiver's ThreadGroup. The priority cannot be set to be higher than the receiver's ThreadGroup's maxPriority().
			 * @param priority 
			 */
			public setPriority(priority: number): void;
			/**
			 * @param handler 
			 */
			public setUncaughtExceptionHandler(handler: java.lang.Thread.IUncaughtExceptionHandler): void;
			/**
			 * Causes the thread which sent this message to sleep for the given interval of time (given in milliseconds). The precision is not guaranteed - the Thread may sleep more or less than requested.
			 * @param time 
			 */
			public static sleep(time: number): void;
			/**
			 * Causes the thread which sent this message to sleep for the given interval of time (given in milliseconds and nanoseconds). The precision is not guaranteed - the Thread may sleep more or less than requested.
			 * @param millis 
			 * @param nanos 
			 */
			public static sleep(millis: number, nanos: number): void;
			/**
			 * Starts the new Thread of execution. The <code>run()</code> method of the receiver will be called by the receiver Thread itself (and not the Thread calling <code>start()</code>).
			 */
			public start(): void;
			/**
			 * Requests the receiver Thread to stop and throw ThreadDeath. The Thread is resumed if it was suspended and awakened if it was sleeping, so that it can proceed to throw ThreadDeath.
			 */
			public stop(): void;
			/**
			 * Throws UnsupportedOperationException.
			 */
			public stop(throwable: java.lang.Throwable): void;
			/**
			 * Throws UnsupportedOperationException.
			 */
			public suspend(): void;
			/**
			 * Returns a string containing a concise, human-readable description of the Thread. It includes the Thread's name, priority, and group name.
			 */
			public toString(): string;
			/**
			 * Causes the calling Thread to yield execution time to another Thread that is ready to run. The actual scheduling is implementation-dependent.
			 */
			public static yield(): void;
			/**
			 * Indicates whether the current Thread has a monitor lock on the specified object.
			 * @param object the object to test for the monitor lock
			 */
			public static holdsLock(object: any): boolean;
		}
		export module Thread {
			/**
			 * A representation of a thread's state. A given thread may only be in one state at a time.
			 */
			export enum State {
				NEW,
				RUNNABLE,
				BLOCKED,
				WAITING,
				TIMED_WAITING,
				TERMINATED
			}
			/**
			 * Implemented by objects that want to handle cases where a thread is being terminated by an uncaught exception. Upon such termination, the handler is notified of the terminating thread and causal exception. If there is no explicit handler set then the thread's group is the default handler.
			 */
			interface IUncaughtExceptionHandler {
				/**
				 * The thread is being terminated by an uncaught exception. Further exceptions thrown in this method are prevent the remainder of the method from executing, but are otherwise ignored.
				 * @param thread the thread that has an uncaught exception
				 * @param ex the exception that was thrown
				 */
				uncaughtException(thread: java.lang.Thread, ex: java.lang.Throwable): void;
			}
			/**
			 * Implemented by objects that want to handle cases where a thread is being terminated by an uncaught exception. Upon such termination, the handler is notified of the terminating thread and causal exception. If there is no explicit handler set then the thread's group is the default handler.
			 */
			export class UncaughtExceptionHandler implements java.lang.Thread.IUncaughtExceptionHandler {
				constructor(implementation: java.lang.Thread.IUncaughtExceptionHandler);
				/**
				 * The thread is being terminated by an uncaught exception. Further exceptions thrown in this method are prevent the remainder of the method from executing, but are otherwise ignored.
				 * @param thread the thread that has an uncaught exception
				 * @param ex the exception that was thrown
				 */
				public uncaughtException(thread: java.lang.Thread, ex: java.lang.Throwable): void;
			}
			/**
			 * Park states
			 */
			export class ParkState extends java.lang.Object {
				static class: java.lang.Class<java.lang.Thread.ParkState>;
			}
		}
		/**
		 * Thrown when a program attempts to access a field or method which is not accessible from the location where the reference is made.
		 */
		export class IllegalAccessException extends java.lang.Exception {
			/**
			 * Constructs a new IllegalAccessException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IllegalAccessException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.IllegalAccessException>;
		}
		/**
		 * Annotation type used to indicate that the compiler should not issue the specified warnings for the marked program element. Warnings are not only suppressed for the annotated element but also for all program elements contained in that element.
		 */
		interface ISuppressWarnings extends java.lang.annotation.IAnnotation {
			/**
			 * The list of warnings a compiler should not issue.
			 */
			value(): native.Array<string>;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * A modifiable CharSequence sequence of characters for use in creating strings, where all accesses are synchronized. This class has mostly been replaced by StringBuilder because this synchronization is rarely useful. This class is mainly used to interact with legacy APIs that expose it.
		 */
		export class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.IAppendable, java.io.ISerializable, java.lang.ICharSequence {
			/**
			 * Constructs a new StringBuffer using the default capacity which is 16.
			 */
			constructor();
			/**
			 * Constructs a new StringBuffer using the specified capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs a new StringBuffer containing the characters in the specified string. The capacity of the new buffer will be the length of the String plus the default capacity.
			 * @param string 
			 */
			constructor(string: string);
			static class: java.lang.Class<java.lang.StringBuffer>;
			/**
			 * Adds the string representation of the specified boolean to the end of this StringBuffer.
			 * @param b 
			 */
			public append(b: boolean): java.lang.StringBuffer;
			/**
			 * Adds the specified character to the end of this buffer.
			 * @param ch 
			 */
			public append(ch: string): java.lang.StringBuffer;
			/**
			 * Adds the string representation of the specified double to the end of this StringBuffer.
			 * @param d 
			 */
			public append(d: number): java.lang.StringBuffer;
			/**
			 * Adds the string representation of the specified object to the end of this StringBuffer.
			 * @param obj 
			 */
			public append(obj: any): java.lang.StringBuffer;
			/**
			 * Adds the specified StringBuffer to the end of this buffer.
			 * @param sb 
			 */
			public append(sb: java.lang.StringBuffer): java.lang.StringBuffer;
			/**
			 * Adds the character array to the end of this buffer.
			 * @param chars 
			 */
			public append(chars: native.Array<string>): java.lang.StringBuffer;
			/**
			 * Adds the specified sequence of characters to the end of this buffer.
			 * @param chars 
			 * @param start 
			 * @param length 
			 */
			public append(chars: native.Array<string>, start: number, length: number): java.lang.StringBuffer;
			/**
			 * Appends the specified subsequence of the CharSequence to this buffer.
			 * @param s 
			 * @param start 
			 * @param end 
			 */
			public append(s: string, start: number, end: number): java.lang.StringBuffer;
			/**
			 * Appends the string representation of the specified Unicode code point to the end of this buffer.
			 * @param codePoint 
			 */
			public appendCodePoint(codePoint: number): java.lang.StringBuffer;
			public charAt(index: number): string;
			public codePointAt(index: number): number;
			public codePointBefore(index: number): number;
			public codePointCount(beginIndex: number, endIndex: number): number;
			/**
			 * Deletes a range of characters.
			 * @param start 
			 * @param end 
			 */
			public delete(start: number, end: number): java.lang.StringBuffer;
			/**
			 * Deletes the character at the specified offset.
			 * @param location 
			 */
			public deleteCharAt(location: number): java.lang.StringBuffer;
			public ensureCapacity(min: number): void;
			/**
			 * Copies the requested sequence of characters to the char[] passed starting at idx.
			 * @param start 
			 * @param end 
			 * @param buffer 
			 * @param idx 
			 */
			public getChars(start: number, end: number, buffer: native.Array<string>, idx: number): void;
			public indexOf(subString: string, start: number): number;
			/**
			 * Inserts the character into this buffer at the specified offset.
			 * @param index 
			 * @param ch 
			 */
			public insert(index: number, ch: string): java.lang.StringBuffer;
			/**
			 * Inserts the string representation of the specified boolean into this buffer at the specified offset.
			 * @param index 
			 * @param b 
			 */
			public insert(index: number, b: boolean): java.lang.StringBuffer;
			/**
			 * Inserts the string representation of the specified integer into this buffer at the specified offset.
			 * @param index 
			 * @param i 
			 */
			public insert(index: number, i: number): java.lang.StringBuffer;
			/**
			 * Inserts the string representation of the specified object into this buffer at the specified offset.
			 * @param index 
			 * @param obj 
			 */
			public insert(index: number, obj: any): java.lang.StringBuffer;
			/**
			 * Inserts the character array into this buffer at the specified offset.
			 * @param index 
			 * @param chars 
			 */
			public insert(index: number, chars: native.Array<string>): java.lang.StringBuffer;
			/**
			 * Inserts the specified subsequence of characters into this buffer at the specified index.
			 * @param index 
			 * @param chars 
			 * @param start 
			 * @param length 
			 */
			public insert(index: number, chars: native.Array<string>, start: number, length: number): java.lang.StringBuffer;
			/**
			 * Inserts the specified subsequence into this buffer at the specified index.
			 * @param index 
			 * @param s 
			 * @param start 
			 * @param end 
			 */
			public insert(index: number, s: string, start: number, end: number): java.lang.StringBuffer;
			public lastIndexOf(subString: string, start: number): number;
			public offsetByCodePoints(index: number, codePointOffset: number): number;
			/**
			 * Replaces the characters in the specified range with the contents of the specified string.
			 * @param start 
			 * @param end 
			 * @param string 
			 */
			public replace(start: number, end: number, string: string): java.lang.StringBuffer;
			/**
			 * Reverses the order of characters in this buffer.
			 */
			public reverse(): java.lang.StringBuffer;
			public setCharAt(index: number, ch: string): void;
			public setLength(length: number): void;
			public subSequence(start: number, end: number): string;
			public substring(start: number): string;
			public substring(start: number, end: number): string;
			public toString(): string;
			public trimToSize(): void;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Searches for the first index of the specified character. The search for the character starts at the beginning and moves towards the end.
			 * @param string 
			 */
			indexOf(string: string): number;
			/**
			 * Searches for the last index of the specified character. The search for the character starts at the end and moves towards the beginning.
			 * @param string 
			 */
			lastIndexOf(string: string): number;
		}
		/**
		 * Thrown when the VM is unable to locate a class which it has been asked to load.
		 */
		export class NoClassDefFoundError extends java.lang.LinkageError {
			/**
			 * Constructs a new NoClassDefFoundError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NoClassDefFoundError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NoClassDefFoundError>;
		}
		/**
		 * Represents a command that can be executed. Often used to run code in a different Thread.
		 */
		export class Runnable implements java.lang.IRunnable {
			constructor(implementation: java.lang.IRunnable);
			/**
			 * Starts executing the active part of the class' code. This method is called when a thread is started that has been created with a class which implements Runnable.
			 */
			public run(): void;
		}
		/**
		 * This interface represents an ordered set of characters and defines the methods to probe them.
		 */
		interface ICharSequence {
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
		}
		/**
		 * Thrown when a monitor operation is attempted when the monitor is not in the correct state, for example when a thread attempts to exit a monitor which it does not own.
		 */
		export class IllegalMonitorStateException extends java.lang.RuntimeException {
			/**
			 * Constructs a new IllegalMonitorStateException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IllegalArgumentException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.IllegalMonitorStateException>;
		}
		/**
		 * Thrown when a program attempts to access a constructor which is not accessible from the location where the reference is made.
		 */
		export class InstantiationException extends java.lang.Exception {
			/**
			 * Constructs a new InstantiationException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new InstantiationException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.InstantiationException>;
		}
		/**
		 * Thrown by a class loader when a class file has an illegal format or if the data that it contains can not be interpreted as a class.
		 */
		export class ClassFormatError extends java.lang.LinkageError {
			/**
			 * Constructs a new ClassFormatError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ClassFormatError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.ClassFormatError>;
		}
		/**
		 * This interface should be implemented by all classes that wish to define a <em>natural order</em> of their instances. java.util.Collections#sort and java.util.Arrays#sort can then be used to automatically sort lists of classes that implement this interface.
		 */
		export class Comparable<T> implements java.lang.IComparable<T> {
			constructor(implementation: java.lang.IComparable<T>);
			/**
			 * Compares this object to the specified object to determine their relative order.
			 * @param another 
			 */
			public compareTo(another: T): number;
		}
		/**
		 * A modifiable CharSequence sequence of characters for use in creating and modifying Strings. This class is intended as a base class for StringBuffer and StringBuilder.
		 */
		export class AbstractStringBuilder extends java.lang.Object {
			static class: java.lang.Class<java.lang.AbstractStringBuilder>;
			getValue(): native.Array<string>;
			shareValue(): native.Array<string>;
			set(val: native.Array<string>, len: number): void;
			appendNull(): void;
			append0(chars: native.Array<string>): void;
			append0(chars: native.Array<string>, offset: number, length: number): void;
			append0(ch: string): void;
			append0(s: string, start: number, end: number): void;
			/**
			 * Returns the number of characters that can be held without growing.
			 */
			public capacity(): number;
			/**
			 * Retrieves the character at the index.
			 * @param index 
			 */
			public charAt(index: number): string;
			delete0(start: number, end: number): void;
			deleteCharAt0(index: number): void;
			/**
			 * Ensures that this object has a minimum capacity available before requiring the internal buffer to be enlarged. The general policy of this method is that if the minimumCapacity is larger than the current #capacity(), then the capacity will be increased to the largest value of either the minimumCapacity or the current capacity multiplied by two plus two. Although this is the general policy, there is no guarantee that the capacity will change.
			 * @param min 
			 */
			public ensureCapacity(min: number): void;
			/**
			 * Copies the requested sequence of characters into dst passed starting at dst.
			 * @param start 
			 * @param end 
			 * @param dst 
			 * @param dstStart 
			 */
			public getChars(start: number, end: number, dst: native.Array<string>, dstStart: number): void;
			insert0(index: number, chars: native.Array<string>): void;
			insert0(index: number, chars: native.Array<string>, start: number, length: number): void;
			insert0(index: number, ch: string): void;
			insert0(index: number, s: string, start: number, end: number): void;
			/**
			 * The current length.
			 */
			public length(): number;
			replace0(start: number, end: number, string: string): void;
			reverse0(): void;
			/**
			 * Sets the character at the index.
			 * @param index 
			 * @param ch 
			 */
			public setCharAt(index: number, ch: string): void;
			/**
			 * Sets the current length to a new value. If the new length is larger than the current length, then the new characters at the end of this object will contain the char value of .
			 * @param length 
			 */
			public setLength(length: number): void;
			/**
			 * Returns the String value of the subsequence from the start index to the current end.
			 * @param start 
			 */
			public substring(start: number): string;
			/**
			 * Returns the String value of the subsequence from the start index to the end index.
			 * @param start 
			 * @param end 
			 */
			public substring(start: number, end: number): string;
			/**
			 * Returns the current String representation.
			 */
			public toString(): string;
			/**
			 * Returns a CharSequence of the subsequence from the start index to the end index.
			 * @param start 
			 * @param end 
			 */
			public subSequence(start: number, end: number): string;
			/**
			 * Searches for the first index of the specified character. The search for the character starts at the beginning and moves towards the end.
			 * @param string 
			 */
			public indexOf(string: string): number;
			/**
			 * Searches for the index of the specified character. The search for the character starts at the specified offset and moves towards the end.
			 * @param subString 
			 * @param start 
			 */
			public indexOf(subString: string, start: number): number;
			/**
			 * Searches for the last index of the specified character. The search for the character starts at the end and moves towards the beginning.
			 * @param string 
			 */
			public lastIndexOf(string: string): number;
			/**
			 * Searches for the index of the specified character. The search for the character starts at the specified offset and moves towards the beginning.
			 * @param subString 
			 * @param start 
			 */
			public lastIndexOf(subString: string, start: number): number;
			/**
			 * Trims off any extra capacity beyond the current length. Note, this method is NOT guaranteed to change the capacity of this object.
			 */
			public trimToSize(): void;
			/**
			 * Retrieves the Unicode code point value at the index.
			 * @param index 
			 */
			public codePointAt(index: number): number;
			/**
			 * Retrieves the Unicode code point value that precedes the index.
			 * @param index 
			 */
			public codePointBefore(index: number): number;
			/**
			 * Calculates the number of Unicode code points between start and end.
			 * @param start 
			 * @param end 
			 */
			public codePointCount(start: number, end: number): number;
			/**
			 * Returns the index that is offset codePointOffset code points from index.
			 * @param index 
			 * @param codePointOffset 
			 */
			public offsetByCodePoints(index: number, codePointOffset: number): number;
		}
		/**
		 * Represents an external process. Enables writing to, reading from, destroying, and waiting for the external process, as well as querying its exit value. Use ProcessBuilder to create processes.
		 */
		export class Process extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.lang.Process>;
			/**
			 * Terminates this process and closes any associated streams.
			 */
			public destroy(): void;
			/**
			 * Returns the exit value of the native process represented by this object. It is available only when the native process has terminated.
			 */
			public exitValue(): number;
			/**
			 * Returns an input stream that is connected to the error stream <em>(stderr)</em> of the native process represented by this object.
			 */
			public getErrorStream(): java.io.InputStream;
			/**
			 * Returns an input stream that is connected to the standard output stream <em>(stdout)</em> of the native process represented by this object.
			 */
			public getInputStream(): java.io.InputStream;
			/**
			 * Returns an output stream that is connected to the standard input stream <em>(stdin)</em> of the native process represented by this object.
			 */
			public getOutputStream(): java.io.OutputStream;
			/**
			 * Causes the calling thread to wait for the native process associated with this object to finish executing.
			 */
			public waitFor(): number;
		}
		export class VMThread extends java.lang.Object {
			static class: java.lang.Class<java.lang.VMThread>;
			static create(t: java.lang.Thread, stackSize: number): void;
			static currentThread(): java.lang.Thread;
			static interrupted(): boolean;
			static sleep(msec: number, nsec: number): void;
			static yield(): void;
			interrupt(): void;
			isInterrupted(): boolean;
			/**
			 * Starts the VMThread (and thus the Java Thread) with the given stack size.
			 */
			start(stackSize: number): void;
			/**
			 * Queries whether this Thread holds a monitor lock on the given object.
			 */
			holdsLock(object: any): boolean;
			setPriority(newPriority: number): void;
			getStatus(): number;
			/**
			 * Tell the VM that the thread's name has changed. This is useful for DDMS, which would otherwise be oblivious to Thread.setName calls.
			 */
			nameChanged(newName: string): void;
		}
		export class RealToString extends java.lang.Object {
			static class: java.lang.Class<java.lang.RealToString>;
			public static getInstance(): java.lang.RealToString;
			public doubleToString(d: number): string;
			public appendDouble(sb: java.lang.AbstractStringBuilder, d: number): void;
			public floatToString(f: number): string;
			public appendFloat(sb: java.lang.AbstractStringBuilder, f: number): void;
			public convertFloat(sb: java.lang.AbstractStringBuilder, inputNumber: number): string;
		}
		export module ref {
			/**
			 * A reference that is cleared when its referent is not strongly reachable and there is memory pressure.
			 */
			export class SoftReference<T> extends java.lang.ref.Reference<T> {
				/**
				 * Constructs a new soft reference to the given referent. The newly created reference is not registered with any reference queue.
				 * @param r the referent to track
				 */
				constructor(r: T);
				/**
				 * Constructs a new soft reference to the given referent. The newly created reference is registered with the given reference queue.
				 * @param r the referent to track
				 * @param q the queue to register to the reference object with. A null value
				 */
				constructor(r: T, q: java.lang.ref.ReferenceQueue<any>);
				static class: java.lang.Class<java.lang.ref.SoftReference<any>>;
			}
			/**
			 * The ReferenceQueue is the container on which reference objects are enqueued when the garbage collector detects the reachability type specified for the referent.
			 */
			export class ReferenceQueue<T> extends java.lang.Object {
				/**
				 * Constructs a new instance of this class.
				 */
				constructor();
				static class: java.lang.Class<java.lang.ref.ReferenceQueue<any>>;
				/**
				 * Returns the next available reference from the queue, removing it in the process. Does not wait for a reference to become available.
				 */
				public poll(): java.lang.ref.Reference<any>;
				/**
				 * Returns the next available reference from the queue, removing it in the process. Waits indefinitely for a reference to become available.
				 */
				public remove(): java.lang.ref.Reference<any>;
				/**
				 * Returns the next available reference from the queue, removing it in the process. Waits for a reference to become available or the given timeout period to elapse, whichever happens first.
				 * @param timeoutMillis maximum time to spend waiting for a reference object
				 */
				public remove(timeoutMillis: number): java.lang.ref.Reference<any>;
				/**
				 * Enqueue the reference object on the receiver.
				 * @param reference 
				 */
				enqueue(reference: java.lang.ref.Reference<any>): void;
				static add(list: java.lang.ref.Reference<any>): void;
			}
			/**
			 * Provides an abstract class which describes behavior common to all reference objects. It is not possible to create immediate subclasses of Reference in addition to the ones provided by this package. It is also not desirable to do so, since references require very close cooperation with the system's garbage collector. The existing, specialized reference classes should be used instead.
			 */
			export class Reference<T> extends java.lang.Object {
				static class: java.lang.Class<java.lang.ref.Reference<any>>;
				/**
				 * Makes the referent null. This does not force the reference object to be enqueued.
				 */
				public clear(): void;
				/**
				 * Forces the reference object to be enqueued if it has been associated with a queue.
				 */
				public enqueue(): boolean;
				/**
				 * Returns the referent of the reference object.
				 */
				public get(): T;
				/**
				 * Checks whether the reference object has been enqueued.
				 */
				public isEnqueued(): boolean;
			}
			/**
			 * Implements a weak reference, which is the middle of the three types of references. Once the garbage collector decides that an object obj is is weakly-reachable, the following happens:
			 */
			export class WeakReference<T> extends java.lang.ref.Reference<T> {
				/**
				 * Constructs a new weak reference to the given referent. The newly created reference is not registered with any reference queue.
				 * @param r the referent to track
				 */
				constructor(r: T);
				/**
				 * Constructs a new weak reference to the given referent. The newly created reference is registered with the given reference queue.
				 * @param r the referent to track
				 * @param q the queue to register to the reference object with. A null value
				 */
				constructor(r: T, q: java.lang.ref.ReferenceQueue<any>);
				static class: java.lang.Class<java.lang.ref.WeakReference<any>>;
			}
			/**
			 * Implements a phantom reference, which is the weakest of the three types of references. Once the garbage collector decides that an object obj is phantom-reachable, it is being enqueued on the corresponding queue, but its referent is not cleared. That is, the reference queue of the phantom reference must explicitly be processed by some application code. As a consequence, a phantom reference that is not registered with any reference queue does not make any sense.
			 */
			export class PhantomReference<T> extends java.lang.ref.Reference<T> {
				/**
				 * Constructs a new phantom reference and registers it with the given reference queue. The reference queue may be null, but this case does not make any sense, since the reference will never be enqueued, and the #get() method always returns null.
				 * @param r the referent to track
				 * @param q the queue to register the phantom reference object with
				 */
				constructor(r: T, q: java.lang.ref.ReferenceQueue<any>);
				static class: java.lang.Class<java.lang.ref.PhantomReference<any>>;
				/**
				 * Returns null. The referent of a phantom reference is not accessible.
				 */
				public get(): T;
			}
		}
		/**
		 * ThreadDeath is thrown when a thread stops executing. It is used to aid in the orderly unrolling of the thread's stack (eg. cleanup of monitors).
		 */
		export class ThreadDeath extends java.lang.Error {
			/**
			 * Constructs a new instance of this class. Note that in the case of ThreadDeath, the stack trace may <em>not</em> be filled in a way which allows a stack trace to be printed.
			 */
			constructor();
			static class: java.lang.Class<java.lang.ThreadDeath>;
		}
		/**
		 * Thrown when an assertion has failed.
		 */
		export class AssertionError extends java.lang.Error {
			/**
			 * Constructs a new AssertionError with no message.
			 */
			constructor();
			/**
			 * Constructs a new AssertionError with a message based on calling String#valueOf(Object) with the specified object. If the object is an instance of Throwable, then it also becomes the cause of this error.
			 * @param detailMessage 
			 */
			constructor(detailMessage: any);
			/**
			 * Constructs a new AssertionError with a message based on calling String#valueOf(boolean) with the specified boolean value.
			 * @param detailMessage 
			 */
			constructor(detailMessage: boolean);
			/**
			 * Constructs a new AssertionError with a message based on calling String#valueOf(char) with the specified character value.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new AssertionError with a message based on calling String#valueOf(int) with the specified integer value.
			 * @param detailMessage 
			 */
			constructor(detailMessage: number);
			static class: java.lang.Class<java.lang.AssertionError>;
		}
		/**
		 * Placeholder class for the Java keyword void.
		 */
		export class Void extends java.lang.Object {
			/**
			 * The Class object that represents the primitive type void.
			 */
			static TYPE: java.lang.Class<java.lang.Void>;
			static class: java.lang.Class<java.lang.Void>;
		}
		/**
		 * Annotation type used to mark methods that override a method declaration in a superclass. Compilers produce an error if a method annotated with does not actually override a method in a superclass.
		 */
		export class Override implements java.lang.annotation.IAnnotation, java.lang.IOverride {
			constructor(implementation: java.lang.IOverride);
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Thrown when a class loader is unable to find a class.
		 */
		export class ClassNotFoundException extends java.lang.Exception {
			/**
			 * Constructs a new ClassNotFoundException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ClassNotFoundException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new ClassNotFoundException with the current stack trace, the specified detail message and the exception that occurred when loading the class.
			 * @param detailMessage 
			 * @param exception 
			 */
			constructor(detailMessage: string, exception: java.lang.Throwable);
			static class: java.lang.Class<java.lang.ClassNotFoundException>;
			/**
			 * Returns the exception which occurred when loading the class.
			 */
			public getException(): java.lang.Throwable;
			/**
			 * Returns the cause of this Throwable, or null if there is no cause.
			 */
			public getCause(): java.lang.Throwable;
		}
		/**
		 * The wrapper for the primitive type short.
		 */
		export class Short extends java.lang.Number {
			/**
			 * Constructs a new Short from the specified string.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * Constructs a new Short with the specified primitive short value.
			 * @param value 
			 */
			constructor(value: number);
			/**
			 * Constant for the maximum short value, 2<sup>15</sup>-1.
			 */
			static MAX_VALUE: number;
			/**
			 * Constant for the minimum short value, -2<sup>15</sup>.
			 */
			static MIN_VALUE: number;
			/**
			 * Constant for the number of bits needed to represent a short in two's complement form.
			 */
			static SIZE: number;
			/**
			 * The Class object that represents the primitive type short.
			 */
			static TYPE: java.lang.Class<java.lang.Short>;
			static class: java.lang.Class<java.lang.Short>;
			private __java_lang_Short: any;
			public byteValue(): number;
			/**
			 * Compares this object to the specified short object to determine their relative order.
			 * @param object 
			 */
			public compareTo(object: java.lang.Short): number;
			/**
			 * Parses the specified string and returns a Short instance if the string can be decoded into a short value. The string may be an optional minus sign "-" followed by a hexadecimal ("0x..." or "#..."), octal ("0..."), or decimal ("...") representation of a short.
			 * @param string 
			 */
			public static decode(string: string): java.lang.Short;
			public doubleValue(): any;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, object must be an instance of Short and have the same short value as this object.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public floatValue(): number;
			public hashCode(): number;
			public intValue(): number;
			public longValue(): any;
			/**
			 * Parses the specified string as a signed decimal short value. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 */
			public static parseShort(string: string): number;
			/**
			 * Parses the specified string as a signed short value using the specified radix. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 * @param radix 
			 */
			public static parseShort(string: string, radix: number): number;
			/**
			 * Gets the primitive value of this short.
			 */
			public shortValue(): number;
			public toString(): string;
			/**
			 * Returns a string containing a concise, human-readable description of the specified short value with radix 10.
			 * @param value 
			 */
			public static toString(value: number): string;
			/**
			 * Parses the specified string as a signed decimal short value.
			 * @param string 
			 */
			public static valueOf(string: string): java.lang.Short;
			/**
			 * Parses the specified string as a signed short value using the specified radix.
			 * @param string 
			 * @param radix 
			 */
			public static valueOf(string: string, radix: number): java.lang.Short;
			/**
			 * Reverses the bytes of the specified short.
			 * @param s 
			 */
			public static reverseBytes(s: number): number;
			/**
			 * Returns a Short instance for the specified short value.
			 * @param s 
			 */
			public static valueOf(s: number): java.lang.Short;
		}
		/**
		 * Thrown when an unsupported operation is attempted.
		 */
		export class UnsupportedOperationException extends java.lang.RuntimeException {
			/**
			 * Constructs a new UnsupportedOperationException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new UnsupportedOperationException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new UnsupportedOperationException with the current stack trace, the specified detail message and the specified cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new UnsupportedOperationException with the current stack trace and the specified cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.lang.UnsupportedOperationException>;
		}
		/**
		 * Does nothing on Android.
		 */
		export class Compiler extends java.lang.Object {
			static class: java.lang.Class<java.lang.Compiler>;
			/**
			 * Executes an operation according to the specified command object. This method is the low-level interface to the JIT compiler. It may return any object or null if no JIT compiler is available. Returns null on Android, whether or not the system has a JIT.
			 * @param cmd 
			 */
			public static command(cmd: any): any;
			/**
			 * Compiles the specified class using the JIT compiler and indicates if compilation has been successful. Does nothing and returns false on Android.
			 * @param classToCompile 
			 */
			public static compileClass(classToCompile: java.lang.Class<any>): boolean;
			/**
			 * Compiles all classes whose name matches the specified name using the JIT compiler and indicates if compilation has been successful. Does nothing and returns false on Android.
			 * @param nameRoot 
			 */
			public static compileClasses(nameRoot: string): boolean;
			/**
			 * Disables the JIT compiler. Does nothing on Android.
			 */
			public static disable(): void;
			/**
			 * Enables the JIT compiler. Does nothing on Android.
			 */
			public static enable(): void;
		}
		/**
		 * Performs case operations as described by http://unicode.org/reports/tr21/tr21-5.html.
		 */
		export class CaseMapper extends java.lang.Object {
			static class: java.lang.Class<java.lang.CaseMapper>;
			/**
			 * Implements String.toLowerCase. We need 's' so that we can return the original String instance if nothing changes. We need 'value', 'offset', and 'count' because they're not otherwise accessible.
			 */
			public static toLowerCase(locale: java.util.Locale, s: string, value: native.Array<string>, offset: number, count: number): string;
			public static toUpperCase(locale: java.util.Locale, s: string, value: native.Array<string>, offset: number, count: number): string;
		}
		/**
		 * Thrown when a program attempts to access a value in an indexable collection using a value which is outside of the range of valid indices.
		 */
		export class IndexOutOfBoundsException extends java.lang.RuntimeException {
			/**
			 * Constructs a new IndexOutOfBoundsException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IndexOutOfBoundsException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.IndexOutOfBoundsException>;
		}
		/**
		 * The wrapper for the primitive type char. This class also provides a number of utility methods for working with characters.
		 */
		export class Character extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new Character with the specified primitive char value.
			 * @param value 
			 */
			constructor(value: string);
			/**
			 * The minimum Character value.
			 */
			static MIN_VALUE: string;
			/**
			 * The maximum Character value.
			 */
			static MAX_VALUE: string;
			/**
			 * The minimum radix used for conversions between characters and integers.
			 */
			static MIN_RADIX: number;
			/**
			 * The maximum radix used for conversions between characters and integers.
			 */
			static MAX_RADIX: number;
			/**
			 * The Class object that represents the primitive type char.
			 */
			static TYPE: java.lang.Class<java.lang.Character>;
			/**
			 * Unicode category constant Cn.
			 */
			static UNASSIGNED: number;
			/**
			 * Unicode category constant Lu.
			 */
			static UPPERCASE_LETTER: number;
			/**
			 * Unicode category constant Ll.
			 */
			static LOWERCASE_LETTER: number;
			/**
			 * Unicode category constant Lt.
			 */
			static TITLECASE_LETTER: number;
			/**
			 * Unicode category constant Lm.
			 */
			static MODIFIER_LETTER: number;
			/**
			 * Unicode category constant Lo.
			 */
			static OTHER_LETTER: number;
			/**
			 * Unicode category constant Mn.
			 */
			static NON_SPACING_MARK: number;
			/**
			 * Unicode category constant Me.
			 */
			static ENCLOSING_MARK: number;
			/**
			 * Unicode category constant Mc.
			 */
			static COMBINING_SPACING_MARK: number;
			/**
			 * Unicode category constant Nd.
			 */
			static DECIMAL_DIGIT_NUMBER: number;
			/**
			 * Unicode category constant Nl.
			 */
			static LETTER_NUMBER: number;
			/**
			 * Unicode category constant No.
			 */
			static OTHER_NUMBER: number;
			/**
			 * Unicode category constant Zs.
			 */
			static SPACE_SEPARATOR: number;
			/**
			 * Unicode category constant Zl.
			 */
			static LINE_SEPARATOR: number;
			/**
			 * Unicode category constant Zp.
			 */
			static PARAGRAPH_SEPARATOR: number;
			/**
			 * Unicode category constant Cc.
			 */
			static CONTROL: number;
			/**
			 * Unicode category constant Cf.
			 */
			static FORMAT: number;
			/**
			 * Unicode category constant Co.
			 */
			static PRIVATE_USE: number;
			/**
			 * Unicode category constant Cs.
			 */
			static SURROGATE: number;
			/**
			 * Unicode category constant Pd.
			 */
			static DASH_PUNCTUATION: number;
			/**
			 * Unicode category constant Ps.
			 */
			static START_PUNCTUATION: number;
			/**
			 * Unicode category constant Pe.
			 */
			static END_PUNCTUATION: number;
			/**
			 * Unicode category constant Pc.
			 */
			static CONNECTOR_PUNCTUATION: number;
			/**
			 * Unicode category constant Po.
			 */
			static OTHER_PUNCTUATION: number;
			/**
			 * Unicode category constant Sm.
			 */
			static MATH_SYMBOL: number;
			/**
			 * Unicode category constant Sc.
			 */
			static CURRENCY_SYMBOL: number;
			/**
			 * Unicode category constant Sk.
			 */
			static MODIFIER_SYMBOL: number;
			/**
			 * Unicode category constant So.
			 */
			static OTHER_SYMBOL: number;
			/**
			 * Unicode category constant Pi.
			 */
			static INITIAL_QUOTE_PUNCTUATION: number;
			/**
			 * Unicode category constant Pf.
			 */
			static FINAL_QUOTE_PUNCTUATION: number;
			/**
			 * Unicode bidirectional constant.
			 */
			static DIRECTIONALITY_UNDEFINED: number;
			/**
			 * Unicode bidirectional constant L.
			 */
			static DIRECTIONALITY_LEFT_TO_RIGHT: number;
			/**
			 * Unicode bidirectional constant R.
			 */
			static DIRECTIONALITY_RIGHT_TO_LEFT: number;
			/**
			 * Unicode bidirectional constant AL.
			 */
			static DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC: number;
			/**
			 * Unicode bidirectional constant EN.
			 */
			static DIRECTIONALITY_EUROPEAN_NUMBER: number;
			/**
			 * Unicode bidirectional constant ES.
			 */
			static DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR: number;
			/**
			 * Unicode bidirectional constant ET.
			 */
			static DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR: number;
			/**
			 * Unicode bidirectional constant AN.
			 */
			static DIRECTIONALITY_ARABIC_NUMBER: number;
			/**
			 * Unicode bidirectional constant CS.
			 */
			static DIRECTIONALITY_COMMON_NUMBER_SEPARATOR: number;
			/**
			 * Unicode bidirectional constant NSM.
			 */
			static DIRECTIONALITY_NONSPACING_MARK: number;
			/**
			 * Unicode bidirectional constant BN.
			 */
			static DIRECTIONALITY_BOUNDARY_NEUTRAL: number;
			/**
			 * Unicode bidirectional constant B.
			 */
			static DIRECTIONALITY_PARAGRAPH_SEPARATOR: number;
			/**
			 * Unicode bidirectional constant S.
			 */
			static DIRECTIONALITY_SEGMENT_SEPARATOR: number;
			/**
			 * Unicode bidirectional constant WS.
			 */
			static DIRECTIONALITY_WHITESPACE: number;
			/**
			 * Unicode bidirectional constant ON.
			 */
			static DIRECTIONALITY_OTHER_NEUTRALS: number;
			/**
			 * Unicode bidirectional constant LRE.
			 */
			static DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING: number;
			/**
			 * Unicode bidirectional constant LRO.
			 */
			static DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE: number;
			/**
			 * Unicode bidirectional constant RLE.
			 */
			static DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING: number;
			/**
			 * Unicode bidirectional constant RLO.
			 */
			static DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE: number;
			/**
			 * Unicode bidirectional constant PDF.
			 */
			static DIRECTIONALITY_POP_DIRECTIONAL_FORMAT: number;
			/**
			 * The minimum value of a high surrogate or leading surrogate unit in UTF-16 encoding, '0xd800'.
			 */
			static MIN_HIGH_SURROGATE: string;
			/**
			 * The maximum value of a high surrogate or leading surrogate unit in UTF-16 encoding, '0xdbff'.
			 */
			static MAX_HIGH_SURROGATE: string;
			/**
			 * The minimum value of a low surrogate or trailing surrogate unit in UTF-16 encoding, '0xdc00'.
			 */
			static MIN_LOW_SURROGATE: string;
			/**
			 * The maximum value of a low surrogate or trailing surrogate unit in UTF-16 encoding, '0xdfff'.
			 */
			static MAX_LOW_SURROGATE: string;
			/**
			 * The minimum value of a surrogate unit in UTF-16 encoding, '0xd800'.
			 */
			static MIN_SURROGATE: string;
			/**
			 * The maximum value of a surrogate unit in UTF-16 encoding, '0xdfff'.
			 */
			static MAX_SURROGATE: string;
			/**
			 * The minimum value of a supplementary code point, U+010000.
			 */
			static MIN_SUPPLEMENTARY_CODE_POINT: number;
			/**
			 * The minimum code point value, U+0000.
			 */
			static MIN_CODE_POINT: number;
			/**
			 * The maximum code point value, U+10FFFF.
			 */
			static MAX_CODE_POINT: number;
			/**
			 * The number of bits required to represent a Character value unsigned form.
			 */
			static SIZE: number;
			static class: java.lang.Class<java.lang.Character>;
			/**
			 * Gets the primitive value of this character.
			 */
			public charValue(): string;
			/**
			 * Compares this object to the specified character object to determine their relative order.
			 * @param c 
			 */
			public compareTo(c: java.lang.Character): number;
			/**
			 * Returns a Character instance for the char value passed.
			 * @param c 
			 */
			public static valueOf(c: string): java.lang.Character;
			/**
			 * Indicates whether codePoint is a valid Unicode code point.
			 * @param codePoint 
			 */
			public static isValidCodePoint(codePoint: number): boolean;
			/**
			 * Indicates whether codePoint is within the supplementary code point range.
			 * @param codePoint 
			 */
			public static isSupplementaryCodePoint(codePoint: number): boolean;
			/**
			 * Indicates whether ch is a high- (or leading-) surrogate code unit that is used for representing supplementary characters in UTF-16 encoding.
			 * @param ch 
			 */
			public static isHighSurrogate(ch: string): boolean;
			/**
			 * Indicates whether ch is a low- (or trailing-) surrogate code unit that is used for representing supplementary characters in UTF-16 encoding.
			 * @param ch 
			 */
			public static isLowSurrogate(ch: string): boolean;
			/**
			 * Indicates whether the specified character pair is a valid surrogate pair.
			 * @param high 
			 * @param low 
			 */
			public static isSurrogatePair(high: string, low: string): boolean;
			/**
			 * Calculates the number of char values required to represent the specified Unicode code point. This method checks if the codePoint is greater than or equal to 0x10000, in which case 2 is returned, otherwise 1. To test if the code point is valid, use the #isValidCodePoint(int) method.
			 * @param codePoint 
			 */
			public static charCount(codePoint: number): number;
			/**
			 * Converts a surrogate pair into a Unicode code point. This method assumes that the pair are valid surrogates. If the pair are <i>not</i> valid surrogates, then the result is indeterminate. The #isSurrogatePair(char, char) method should be used prior to this method to validate the pair.
			 * @param high 
			 * @param low 
			 */
			public static toCodePoint(high: string, low: string): number;
			/**
			 * Returns the code point at index in the specified sequence of character units. If the unit at index is a high-surrogate unit, index + 1 is less than the length of the sequence and the unit at index + 1 is a low-surrogate unit, then the supplementary code point represented by the pair is returned; otherwise the char value at index is returned.
			 * @param seq 
			 * @param index 
			 */
			public static codePointAt(seq: string, index: number): number;
			/**
			 * Returns the code point at index in the specified array of character units. If the unit at index is a high-surrogate unit, index + 1 is less than the length of the array and the unit at index + 1 is a low-surrogate unit, then the supplementary code point represented by the pair is returned; otherwise the char value at index is returned.
			 * @param seq 
			 * @param index 
			 */
			public static codePointAt(seq: native.Array<string>, index: number): number;
			/**
			 * Returns the code point at index in the specified array of character units, where index has to be less than limit. If the unit at index is a high-surrogate unit, index + 1 is less than limit and the unit at index + 1 is a low-surrogate unit, then the supplementary code point represented by the pair is returned; otherwise the char value at index is returned.
			 * @param seq 
			 * @param index 
			 * @param limit 
			 */
			public static codePointAt(seq: native.Array<string>, index: number, limit: number): number;
			/**
			 * Returns the code point that precedes index in the specified sequence of character units. If the unit at index - 1 is a low-surrogate unit, index - 2 is not negative and the unit at index - 2 is a high-surrogate unit, then the supplementary code point represented by the pair is returned; otherwise the char value at index - 1 is returned.
			 * @param seq 
			 * @param index 
			 */
			public static codePointBefore(seq: string, index: number): number;
			/**
			 * Returns the code point that precedes index in the specified array of character units. If the unit at index - 1 is a low-surrogate unit, index - 2 is not negative and the unit at index - 2 is a high-surrogate unit, then the supplementary code point represented by the pair is returned; otherwise the char value at index - 1 is returned.
			 * @param seq 
			 * @param index 
			 */
			public static codePointBefore(seq: native.Array<string>, index: number): number;
			/**
			 * Returns the code point that precedes the index in the specified array of character units and is not less than start. If the unit at index - 1 is a low-surrogate unit, index - 2 is not less than start and the unit at index - 2 is a high-surrogate unit, then the supplementary code point represented by the pair is returned; otherwise the char value at index - 1 is returned.
			 * @param seq 
			 * @param index 
			 * @param start 
			 */
			public static codePointBefore(seq: native.Array<string>, index: number, start: number): number;
			/**
			 * Converts the specified Unicode code point into a UTF-16 encoded sequence and copies the value(s) into the char array dst, starting at index dstIndex.
			 * @param codePoint 
			 * @param dst 
			 * @param dstIndex 
			 */
			public static toChars(codePoint: number, dst: native.Array<string>, dstIndex: number): number;
			/**
			 * Converts the specified Unicode code point into a UTF-16 encoded sequence and returns it as a char array.
			 * @param codePoint 
			 */
			public static toChars(codePoint: number): native.Array<string>;
			/**
			 * Counts the number of Unicode code points in the subsequence of the specified character sequence, as delineated by beginIndex and endIndex. Any surrogate values with missing pair values will be counted as one code point.
			 * @param seq 
			 * @param beginIndex 
			 * @param endIndex 
			 */
			public static codePointCount(seq: string, beginIndex: number, endIndex: number): number;
			/**
			 * Counts the number of Unicode code points in the subsequence of the specified char array, as delineated by offset and count. Any surrogate values with missing pair values will be counted as one code point.
			 * @param seq 
			 * @param offset 
			 * @param count 
			 */
			public static codePointCount(seq: native.Array<string>, offset: number, count: number): number;
			/**
			 * Determines the index in the specified character sequence that is offset codePointOffset code points from index.
			 * @param seq 
			 * @param index 
			 * @param codePointOffset 
			 */
			public static offsetByCodePoints(seq: string, index: number, codePointOffset: number): number;
			/**
			 * Determines the index in a subsequence of the specified character array that is offset codePointOffset code points from index. The subsequence is delineated by start and count.
			 * @param seq 
			 * @param start 
			 * @param count 
			 * @param index 
			 * @param codePointOffset 
			 */
			public static offsetByCodePoints(seq: native.Array<string>, start: number, count: number, index: number, codePointOffset: number): number;
			/**
			 * Convenience method to determine the value of the specified character c in the supplied radix. The value of radix must be between MIN_RADIX and MAX_RADIX.
			 * @param c 
			 * @param radix 
			 */
			public static digit(c: string, radix: number): number;
			/**
			 * Convenience method to determine the value of the character codePoint in the supplied radix. The value of radix must be between MIN_RADIX and MAX_RADIX.
			 * @param codePoint 
			 * @param radix 
			 */
			public static digit(codePoint: number, radix: number): number;
			/**
			 * Compares this object with the specified object and indicates if they are equal. In order to be equal, object must be an instance of Character and have the same char value as this object.
			 * @param object 
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the character which represents the specified digit in the specified radix. The radix must be between MIN_RADIX and MAX_RADIX inclusive; digit must not be negative and smaller than radix. If any of these conditions does not hold, 0 is returned.
			 * @param digit 
			 * @param radix 
			 */
			public static forDigit(digit: number, radix: number): string;
			/**
			 * Returns the numeric value of the specified Unicode character. See #getNumericValue(int).
			 * @param c the character
			 */
			public static getNumericValue(c: string): number;
			/**
			 * Gets the numeric value of the specified Unicode code point. For example, the code point '0x34133' stands for the Roman number XII, which has the numeric value 12.
			 * @param codePoint the code point
			 */
			public static getNumericValue(codePoint: number): number;
			/**
			 * Gets the general Unicode category of the specified character.
			 * @param c 
			 */
			public static getType(c: string): number;
			/**
			 * Gets the general Unicode category of the specified code point.
			 * @param codePoint 
			 */
			public static getType(codePoint: number): number;
			/**
			 * Gets the Unicode directionality of the specified character.
			 * @param c 
			 */
			public static getDirectionality(c: string): number;
			/**
			 * Gets the Unicode directionality of the specified character.
			 * @param codePoint 
			 */
			public static getDirectionality(codePoint: number): number;
			/**
			 * Indicates whether the specified character is mirrored.
			 * @param c 
			 */
			public static isMirrored(c: string): boolean;
			/**
			 * Indicates whether the specified code point is mirrored.
			 * @param codePoint 
			 */
			public static isMirrored(codePoint: number): boolean;
			public hashCode(): number;
			/**
			 * Indicates whether the specified character is defined in the Unicode specification.
			 * @param c 
			 */
			public static isDefined(c: string): boolean;
			/**
			 * Indicates whether the specified code point is defined in the Unicode specification.
			 * @param codePoint 
			 */
			public static isDefined(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a digit.
			 * @param c 
			 */
			public static isDigit(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a digit.
			 * @param codePoint 
			 */
			public static isDigit(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is ignorable in a Java or Unicode identifier.
			 * @param c 
			 */
			public static isIdentifierIgnorable(c: string): boolean;
			/**
			 * Indicates whether the specified code point is ignorable in a Java or Unicode identifier.
			 * @param codePoint 
			 */
			public static isIdentifierIgnorable(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is an ISO control character.
			 * @param c 
			 */
			public static isISOControl(c: string): boolean;
			/**
			 * Indicates whether the specified code point is an ISO control character.
			 * @param c 
			 */
			public static isISOControl(c: number): boolean;
			/**
			 * Indicates whether the specified character is a valid part of a Java identifier other than the first character.
			 * @param c 
			 */
			public static isJavaIdentifierPart(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a valid part of a Java identifier other than the first character.
			 * @param codePoint 
			 */
			public static isJavaIdentifierPart(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a valid first character for a Java identifier.
			 * @param c 
			 */
			public static isJavaIdentifierStart(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a valid first character for a Java identifier.
			 * @param codePoint 
			 */
			public static isJavaIdentifierStart(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a Java letter.
			 * @param c 
			 */
			public static isJavaLetter(c: string): boolean;
			/**
			 * Indicates whether the specified character is a Java letter or digit character.
			 * @param c 
			 */
			public static isJavaLetterOrDigit(c: string): boolean;
			/**
			 * Indicates whether the specified character is a letter.
			 * @param c 
			 */
			public static isLetter(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a letter.
			 * @param codePoint 
			 */
			public static isLetter(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a letter or a digit.
			 * @param c 
			 */
			public static isLetterOrDigit(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a letter or a digit.
			 * @param codePoint 
			 */
			public static isLetterOrDigit(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a lower case letter.
			 * @param c 
			 */
			public static isLowerCase(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a lower case letter.
			 * @param codePoint 
			 */
			public static isLowerCase(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a Java space.
			 * @param c 
			 */
			public static isSpace(c: string): boolean;
			/**
			 * Indicates whether the specified character is a Unicode space character. That is, if it is a member of one of the Unicode categories Space Separator, Line Separator, or Paragraph Separator.
			 * @param c 
			 */
			public static isSpaceChar(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a Unicode space character. That is, if it is a member of one of the Unicode categories Space Separator, Line Separator, or Paragraph Separator.
			 * @param codePoint 
			 */
			public static isSpaceChar(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a titlecase character.
			 * @param c 
			 */
			public static isTitleCase(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a titlecase character.
			 * @param codePoint 
			 */
			public static isTitleCase(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is valid as part of a Unicode identifier other than the first character.
			 * @param c 
			 */
			public static isUnicodeIdentifierPart(c: string): boolean;
			/**
			 * Indicates whether the specified code point is valid as part of a Unicode identifier other than the first character.
			 * @param codePoint 
			 */
			public static isUnicodeIdentifierPart(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a valid initial character for a Unicode identifier.
			 * @param c 
			 */
			public static isUnicodeIdentifierStart(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a valid initial character for a Unicode identifier.
			 * @param codePoint 
			 */
			public static isUnicodeIdentifierStart(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is an upper case letter.
			 * @param c 
			 */
			public static isUpperCase(c: string): boolean;
			/**
			 * Indicates whether the specified code point is an upper case letter.
			 * @param codePoint 
			 */
			public static isUpperCase(codePoint: number): boolean;
			/**
			 * Indicates whether the specified character is a whitespace character in Java.
			 * @param c 
			 */
			public static isWhitespace(c: string): boolean;
			/**
			 * Indicates whether the specified code point is a whitespace character in Java.
			 * @param codePoint 
			 */
			public static isWhitespace(codePoint: number): boolean;
			/**
			 * Reverses the order of the first and second byte in the specified character.
			 * @param c 
			 */
			public static reverseBytes(c: string): string;
			/**
			 * Returns the lower case equivalent for the specified character if the character is an upper case letter. Otherwise, the specified character is returned unchanged.
			 * @param c 
			 */
			public static toLowerCase(c: string): string;
			/**
			 * Returns the lower case equivalent for the specified code point if it is an upper case letter. Otherwise, the specified code point is returned unchanged.
			 * @param codePoint 
			 */
			public static toLowerCase(codePoint: number): number;
			public toString(): string;
			/**
			 * Converts the specified character to its string representation.
			 * @param value 
			 */
			public static toString(value: string): string;
			/**
			 * Returns the title case equivalent for the specified character if it exists. Otherwise, the specified character is returned unchanged.
			 * @param c 
			 */
			public static toTitleCase(c: string): string;
			/**
			 * Returns the title case equivalent for the specified code point if it exists. Otherwise, the specified code point is returned unchanged.
			 * @param codePoint 
			 */
			public static toTitleCase(codePoint: number): number;
			/**
			 * Returns the upper case equivalent for the specified character if the character is a lower case letter. Otherwise, the specified character is returned unchanged.
			 * @param c 
			 */
			public static toUpperCase(c: string): string;
			/**
			 * Returns the upper case equivalent for the specified code point if the code point is a lower case letter. Otherwise, the specified code point is returned unchanged.
			 * @param codePoint 
			 */
			public static toUpperCase(codePoint: number): number;
		}
		export module Character {
			export class Subset extends java.lang.Object {
				static class: java.lang.Class<java.lang.Character.Subset>;
				/**
				 * Compares this character subset with the specified object. Uses java.lang.Object#equals(Object) to do the comparison.
				 * @param object 
				 */
				public equals(object: any): boolean;
				/**
				 * Returns the integer hash code for this character subset.
				 */
				public hashCode(): number;
				/**
				 * Returns the string representation of this subset.
				 */
				public toString(): string;
			}
			/**
			 * Represents a block of Unicode characters, as defined by the Unicode 4.0.1 specification.
			 */
			export class UnicodeBlock extends java.lang.Character.Subset {
				/**
				 * The &quot;Surrogates Area&quot; Unicode Block.
				 */
				static SURROGATES_AREA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Basic Latin&quot; Unicode Block.
				 */
				static BASIC_LATIN: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Latin-1 Supplement&quot; Unicode Block.
				 */
				static LATIN_1_SUPPLEMENT: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Latin Extended-A&quot; Unicode Block.
				 */
				static LATIN_EXTENDED_A: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Latin Extended-B&quot; Unicode Block.
				 */
				static LATIN_EXTENDED_B: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;IPA Extensions&quot; Unicode Block.
				 */
				static IPA_EXTENSIONS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Spacing Modifier Letters&quot; Unicode Block.
				 */
				static SPACING_MODIFIER_LETTERS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Combining Diacritical Marks&quot; Unicode Block.
				 */
				static COMBINING_DIACRITICAL_MARKS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Greek and Coptic&quot; Unicode Block. Previously referred to as &quot;Greek&quot;.
				 */
				static GREEK: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Cyrillic&quot; Unicode Block.
				 */
				static CYRILLIC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Cyrillic Supplement&quot; Unicode Block. Previously referred to as &quot;Cyrillic Supplementary&quot;.
				 */
				static CYRILLIC_SUPPLEMENTARY: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Armenian&quot; Unicode Block.
				 */
				static ARMENIAN: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Hebrew&quot; Unicode Block.
				 */
				static HEBREW: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Arabic&quot; Unicode Block.
				 */
				static ARABIC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Syriac&quot; Unicode Block.
				 */
				static SYRIAC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Thaana&quot; Unicode Block.
				 */
				static THAANA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Devanagari&quot; Unicode Block.
				 */
				static DEVANAGARI: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Bengali&quot; Unicode Block.
				 */
				static BENGALI: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Gurmukhi&quot; Unicode Block.
				 */
				static GURMUKHI: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Gujarati&quot; Unicode Block.
				 */
				static GUJARATI: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Oriya&quot; Unicode Block.
				 */
				static ORIYA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Tamil&quot; Unicode Block.
				 */
				static TAMIL: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Telugu&quot; Unicode Block.
				 */
				static TELUGU: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Kannada&quot; Unicode Block.
				 */
				static KANNADA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Malayalam&quot; Unicode Block.
				 */
				static MALAYALAM: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Sinhala&quot; Unicode Block.
				 */
				static SINHALA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Thai&quot; Unicode Block.
				 */
				static THAI: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Lao&quot; Unicode Block.
				 */
				static LAO: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Tibetan&quot; Unicode Block.
				 */
				static TIBETAN: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Myanmar&quot; Unicode Block.
				 */
				static MYANMAR: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Georgian&quot; Unicode Block.
				 */
				static GEORGIAN: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Hangul Jamo&quot; Unicode Block.
				 */
				static HANGUL_JAMO: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Ethiopic&quot; Unicode Block.
				 */
				static ETHIOPIC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Cherokee&quot; Unicode Block.
				 */
				static CHEROKEE: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Unified Canadian Aboriginal Syllabics&quot; Unicode Block.
				 */
				static UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Ogham&quot; Unicode Block.
				 */
				static OGHAM: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Runic&quot; Unicode Block.
				 */
				static RUNIC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Tagalog&quot; Unicode Block.
				 */
				static TAGALOG: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Hanunoo&quot; Unicode Block.
				 */
				static HANUNOO: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Buhid&quot; Unicode Block.
				 */
				static BUHID: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Tagbanwa&quot; Unicode Block.
				 */
				static TAGBANWA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Khmer&quot; Unicode Block.
				 */
				static KHMER: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Mongolian&quot; Unicode Block.
				 */
				static MONGOLIAN: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Limbu&quot; Unicode Block.
				 */
				static LIMBU: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Tai Le&quot; Unicode Block.
				 */
				static TAI_LE: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Khmer Symbols&quot; Unicode Block.
				 */
				static KHMER_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Phonetic Extensions&quot; Unicode Block.
				 */
				static PHONETIC_EXTENSIONS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Latin Extended Additional&quot; Unicode Block.
				 */
				static LATIN_EXTENDED_ADDITIONAL: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Greek Extended&quot; Unicode Block.
				 */
				static GREEK_EXTENDED: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;General Punctuation&quot; Unicode Block.
				 */
				static GENERAL_PUNCTUATION: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Superscripts and Subscripts&quot; Unicode Block.
				 */
				static SUPERSCRIPTS_AND_SUBSCRIPTS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Currency Symbols&quot; Unicode Block.
				 */
				static CURRENCY_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Combining Diacritical Marks for Symbols&quot; Unicode Block. Previously referred to as &quot;Combining Marks for Symbols&quot;.
				 */
				static COMBINING_MARKS_FOR_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Letterlike Symbols&quot; Unicode Block.
				 */
				static LETTERLIKE_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Number Forms&quot; Unicode Block.
				 */
				static NUMBER_FORMS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Arrows&quot; Unicode Block.
				 */
				static ARROWS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Mathematical Operators&quot; Unicode Block.
				 */
				static MATHEMATICAL_OPERATORS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Miscellaneous Technical&quot; Unicode Block.
				 */
				static MISCELLANEOUS_TECHNICAL: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Control Pictures&quot; Unicode Block.
				 */
				static CONTROL_PICTURES: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Optical Character Recognition&quot; Unicode Block.
				 */
				static OPTICAL_CHARACTER_RECOGNITION: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Enclosed Alphanumerics&quot; Unicode Block.
				 */
				static ENCLOSED_ALPHANUMERICS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Box Drawing&quot; Unicode Block.
				 */
				static BOX_DRAWING: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Block Elements&quot; Unicode Block.
				 */
				static BLOCK_ELEMENTS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Geometric Shapes&quot; Unicode Block.
				 */
				static GEOMETRIC_SHAPES: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Miscellaneous Symbols&quot; Unicode Block.
				 */
				static MISCELLANEOUS_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Dingbats&quot; Unicode Block.
				 */
				static DINGBATS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Miscellaneous Mathematical Symbols-A&quot; Unicode Block.
				 */
				static MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Supplemental Arrows-A&quot; Unicode Block.
				 */
				static SUPPLEMENTAL_ARROWS_A: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Braille Patterns&quot; Unicode Block.
				 */
				static BRAILLE_PATTERNS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Supplemental Arrows-B&quot; Unicode Block.
				 */
				static SUPPLEMENTAL_ARROWS_B: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Miscellaneous Mathematical Symbols-B&quot; Unicode Block.
				 */
				static MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Supplemental Mathematical Operators&quot; Unicode Block.
				 */
				static SUPPLEMENTAL_MATHEMATICAL_OPERATORS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Miscellaneous Symbols and Arrows&quot; Unicode Block.
				 */
				static MISCELLANEOUS_SYMBOLS_AND_ARROWS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Radicals Supplement&quot; Unicode Block.
				 */
				static CJK_RADICALS_SUPPLEMENT: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Kangxi Radicals&quot; Unicode Block.
				 */
				static KANGXI_RADICALS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Ideographic Description Characters&quot; Unicode Block.
				 */
				static IDEOGRAPHIC_DESCRIPTION_CHARACTERS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Symbols and Punctuation&quot; Unicode Block.
				 */
				static CJK_SYMBOLS_AND_PUNCTUATION: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Hiragana&quot; Unicode Block.
				 */
				static HIRAGANA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Katakana&quot; Unicode Block.
				 */
				static KATAKANA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Bopomofo&quot; Unicode Block.
				 */
				static BOPOMOFO: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Hangul Compatibility Jamo&quot; Unicode Block.
				 */
				static HANGUL_COMPATIBILITY_JAMO: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Kanbun&quot; Unicode Block.
				 */
				static KANBUN: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Bopomofo Extended&quot; Unicode Block.
				 */
				static BOPOMOFO_EXTENDED: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Katakana Phonetic Extensions&quot; Unicode Block.
				 */
				static KATAKANA_PHONETIC_EXTENSIONS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Enclosed CJK Letters and Months&quot; Unicode Block.
				 */
				static ENCLOSED_CJK_LETTERS_AND_MONTHS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Compatibility&quot; Unicode Block.
				 */
				static CJK_COMPATIBILITY: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Unified Ideographs Extension A&quot; Unicode Block.
				 */
				static CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Yijing Hexagram Symbols&quot; Unicode Block.
				 */
				static YIJING_HEXAGRAM_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Unified Ideographs&quot; Unicode Block.
				 */
				static CJK_UNIFIED_IDEOGRAPHS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Yi Syllables&quot; Unicode Block.
				 */
				static YI_SYLLABLES: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Yi Radicals&quot; Unicode Block.
				 */
				static YI_RADICALS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Hangul Syllables&quot; Unicode Block.
				 */
				static HANGUL_SYLLABLES: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;High Surrogates&quot; Unicode Block. This block represents code point values in the high surrogate range 0xD800 to 0xDB7F
				 */
				static HIGH_SURROGATES: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;High Private Use Surrogates&quot; Unicode Block. This block represents code point values in the high surrogate range 0xDB80 to 0xDBFF
				 */
				static HIGH_PRIVATE_USE_SURROGATES: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Low Surrogates&quot; Unicode Block. This block represents code point values in the low surrogate range 0xDC00 to 0xDFFF
				 */
				static LOW_SURROGATES: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Private Use Area&quot; Unicode Block.
				 */
				static PRIVATE_USE_AREA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Compatibility Ideographs&quot; Unicode Block.
				 */
				static CJK_COMPATIBILITY_IDEOGRAPHS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Alphabetic Presentation Forms&quot; Unicode Block.
				 */
				static ALPHABETIC_PRESENTATION_FORMS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Arabic Presentation Forms-A&quot; Unicode Block.
				 */
				static ARABIC_PRESENTATION_FORMS_A: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Variation Selectors&quot; Unicode Block.
				 */
				static VARIATION_SELECTORS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Combining Half Marks&quot; Unicode Block.
				 */
				static COMBINING_HALF_MARKS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Compatibility Forms&quot; Unicode Block.
				 */
				static CJK_COMPATIBILITY_FORMS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Small Form Variants&quot; Unicode Block.
				 */
				static SMALL_FORM_VARIANTS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Arabic Presentation Forms-B&quot; Unicode Block.
				 */
				static ARABIC_PRESENTATION_FORMS_B: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Halfwidth and Fullwidth Forms&quot; Unicode Block.
				 */
				static HALFWIDTH_AND_FULLWIDTH_FORMS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Specials&quot; Unicode Block.
				 */
				static SPECIALS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Linear B Syllabary&quot; Unicode Block.
				 */
				static LINEAR_B_SYLLABARY: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Linear B Ideograms&quot; Unicode Block.
				 */
				static LINEAR_B_IDEOGRAMS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Aegean Numbers&quot; Unicode Block.
				 */
				static AEGEAN_NUMBERS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Old Italic&quot; Unicode Block.
				 */
				static OLD_ITALIC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Gothic&quot; Unicode Block.
				 */
				static GOTHIC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Ugaritic&quot; Unicode Block.
				 */
				static UGARITIC: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Deseret&quot; Unicode Block.
				 */
				static DESERET: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Shavian&quot; Unicode Block.
				 */
				static SHAVIAN: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Osmanya&quot; Unicode Block.
				 */
				static OSMANYA: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Cypriot Syllabary&quot; Unicode Block.
				 */
				static CYPRIOT_SYLLABARY: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Byzantine Musical Symbols&quot; Unicode Block.
				 */
				static BYZANTINE_MUSICAL_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Musical Symbols&quot; Unicode Block.
				 */
				static MUSICAL_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Tai Xuan Jing Symbols&quot; Unicode Block.
				 */
				static TAI_XUAN_JING_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Mathematical Alphanumeric Symbols&quot; Unicode Block.
				 */
				static MATHEMATICAL_ALPHANUMERIC_SYMBOLS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Unified Ideographs Extension B&quot; Unicode Block.
				 */
				static CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;CJK Compatibility Ideographs Supplement&quot; Unicode Block.
				 */
				static CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Tags&quot; Unicode Block.
				 */
				static TAGS: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Variation Selectors Supplement&quot; Unicode Block.
				 */
				static VARIATION_SELECTORS_SUPPLEMENT: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Supplementary Private Use Area-A&quot; Unicode Block.
				 */
				static SUPPLEMENTARY_PRIVATE_USE_AREA_A: java.lang.Character.UnicodeBlock;
				/**
				 * The &quot;Supplementary Private Use Area-B&quot; Unicode Block.
				 */
				static SUPPLEMENTARY_PRIVATE_USE_AREA_B: java.lang.Character.UnicodeBlock;
				static class: java.lang.Class<java.lang.Character.UnicodeBlock>;
				/**
				 * Retrieves the constant that corresponds to the specified block name. The block names are defined by the Unicode 4.0.1 specification in the Blocks-4.0.1.txt file.
				 * @param blockName 
				 */
				public static forName(blockName: string): java.lang.Character.UnicodeBlock;
				/**
				 * Gets the constant for the Unicode block that contains the specified character.
				 * @param c 
				 */
				public static of(c: string): java.lang.Character.UnicodeBlock;
				/**
				 * Gets the constant for the Unicode block that contains the specified Unicode code point.
				 * @param codePoint 
				 */
				public static of(codePoint: number): java.lang.Character.UnicodeBlock;
			}
		}
		/**
		 * This interface represents an ordered set of characters and defines the methods to probe them.
		 */
		export class CharSequence implements java.lang.ICharSequence {
			constructor(implementation: java.lang.ICharSequence);
			/**
			 * Returns the number of characters in this sequence.
			 */
			public length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			public charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			public subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			public toString(): string;
		}
		/**
		 * Thrown when the VM notices that a program tries to reference, on a class or object, a field that does not exist.
		 */
		export class NoSuchFieldError extends java.lang.IncompatibleClassChangeError {
			/**
			 * Constructs a new NoSuchFieldError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NoSuchFieldError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NoSuchFieldError>;
		}
		/**
		 * Thrown when an invalid value is passed to a string-to-number conversion method.
		 */
		export class NumberFormatException extends java.lang.IllegalArgumentException {
			/**
			 * Constructs a new NumberFormatException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NumberFormatException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NumberFormatException>;
		}
		/**
		 * This interface should be implemented by all classes that wish to define a <em>natural order</em> of their instances. java.util.Collections#sort and java.util.Arrays#sort can then be used to automatically sort lists of classes that implement this interface.
		 */
		interface IComparable<T> {
			/**
			 * Compares this object to the specified object to determine their relative order.
			 * @param another 
			 */
			compareTo(another: T): number;
		}
		/**
		 * Thrown when the VM notices that a program tries to reference, on a class or object, a method that does not exist.
		 */
		export class NoSuchMethodError extends java.lang.IncompatibleClassChangeError {
			/**
			 * Constructs a new NoSuchMethodError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NoSuchMethodError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NoSuchMethodError>;
		}
		/**
		 * The wrapper for the primitive type double.
		 */
		export class Double extends java.lang.Number {
			/**
			 * Constructs a new Double with the specified primitive double value.
			 * @param value 
			 */
			constructor(value: number);
			/**
			 * Constructs a new Double from the specified string.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * Constant for the maximum double value, (2 - 2<sup>-52</sup>) * 2<sup>1023</sup>.
			 */
			static MAX_VALUE: number;
			/**
			 * Constant for the minimum double value, 2<sup>-1074</sup>.
			 */
			static MIN_VALUE: number;
			/**
			 * Constant for the Not-a-Number (NaN) value of the double type.
			 */
			static NaN: number;
			/**
			 * Constant for the positive infinity value of the double type.
			 */
			static POSITIVE_INFINITY: number;
			/**
			 * Constant for the negative infinity value of the double type.
			 */
			static NEGATIVE_INFINITY: number;
			/**
			 * Constant for the smallest positive normal value of the double type.
			 */
			static MIN_NORMAL: number;
			/**
			 * Maximum base-2 exponent that a finite value of the double type may have. Equal to Math.getExponent(Double.MAX_VALUE).
			 */
			static MAX_EXPONENT: number;
			/**
			 * Minimum base-2 exponent that a normal value of the double type may have. Equal to Math.getExponent(Double.MIN_NORMAL).
			 */
			static MIN_EXPONENT: number;
			/**
			 * The Class object that represents the primitive type double.
			 */
			static TYPE: java.lang.Class<java.lang.Double>;
			/**
			 * Constant for the number of bits needed to represent a double in two's complement form.
			 */
			static SIZE: number;
			static class: java.lang.Class<java.lang.Double>;
			private __java_lang_Double: any;
			/**
			 * Compares this object to the specified double object to determine their relative order. There are two special cases: <ul> <li>Double.NaN is equal to Double.NaN and it is greater than any other double value, including Double.POSITIVE_INFINITY;</li> <li>+0.0d is greater than -0.0d</li> </ul>
			 * @param object 
			 */
			public compareTo(object: java.lang.Double): number;
			public byteValue(): number;
			/**
			 * Returns an integer corresponding to the bits of the given <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> double precision value. All <em>Not-a-Number (NaN)</em> values are converted to a single NaN representation (0x7ff8000000000000L) (compare to #doubleToRawLongBits).
			 */
			public static doubleToLongBits(value: number): any;
			/**
			 * Returns an integer corresponding to the bits of the given <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> double precision value. <em>Not-a-Number (NaN)</em> values are preserved (compare to #doubleToLongBits).
			 */
			public static doubleToRawLongBits(value: number): any;
			/**
			 * Gets the primitive value of this double.
			 */
			public doubleValue(): any;
			/**
			 * Tests this double for equality with object. To be equal, object must be an instance of Double and doubleToLongBits must give the same value for both objects.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public floatValue(): number;
			public hashCode(): number;
			public intValue(): number;
			/**
			 * Indicates whether this object represents an infinite value.
			 */
			public isInfinite(): boolean;
			/**
			 * Indicates whether the specified double represents an infinite value.
			 * @param d 
			 */
			public static isInfinite(d: number): boolean;
			/**
			 * Indicates whether this object is a <em>Not-a-Number (NaN)</em> value.
			 */
			public isNaN(): boolean;
			/**
			 * Indicates whether the specified double is a <em>Not-a-Number (NaN)</em> value.
			 * @param d 
			 */
			public static isNaN(d: number): boolean;
			/**
			 * Returns the <a href="http://en.wikipedia.org/wiki/IEEE_754-1985">IEEE 754</a> double precision float corresponding to the given bits.
			 */
			public static longBitsToDouble(bits: number): any;
			public longValue(): any;
			/**
			 * Parses the specified string as a double value.
			 * @param string 
			 */
			public static parseDouble(string: string): any;
			public shortValue(): number;
			public toString(): string;
			/**
			 * Returns a string containing a concise, human-readable description of the specified double value.
			 * @param d 
			 */
			public static toString(d: number): string;
			/**
			 * Parses the specified string as a double value.
			 * @param string 
			 */
			public static valueOf(string: string): java.lang.Double;
			/**
			 * Compares the two specified double values. There are two special cases: <ul> <li>Double.NaN is equal to Double.NaN and it is greater than any other double value, including Double.POSITIVE_INFINITY;</li> <li>+0.0d is greater than -0.0d</li> </ul>
			 * @param double1 
			 * @param double2 
			 */
			public static compare(double1: number, double2: number): number;
			/**
			 * Returns a Double instance for the specified double value.
			 * @param d 
			 */
			public static valueOf(d: number): java.lang.Double;
			/**
			 * Converts the specified double into its hexadecimal string representation.
			 * @param d 
			 */
			public static toHexString(d: number): string;
		}
		export class VMClassLoader extends java.lang.Object {
			static class: java.lang.Class<java.lang.VMClassLoader>;
			/**
			 * Get a resource from a file in the bootstrap class path.
			 */
			static getResource(name: string): java.net.URL;
			static getResources(name: string): java.util.IList<java.net.URL>;
			/**
			 * Load class with bootstrap class loader.
			 */
			static loadClass(name: string, resolve: boolean): java.lang.Class<any>;
			static getPrimitiveClass(type: string): java.lang.Class<any>;
			static defineClass(cl: java.lang.ClassLoader, name: string, data: native.Array<number>, offset: number, len: number): java.lang.Class<any>;
			static defineClass(cl: java.lang.ClassLoader, data: native.Array<number>, offset: number, len: number): java.lang.Class<any>;
			static findLoadedClass(cl: java.lang.ClassLoader, name: string): java.lang.Class<any>;
		}
		/**
		 * Creates operating system processes. See Process for documentation and example usage.
		 */
		export class ProcessBuilder extends java.lang.Object {
			/**
			 * Constructs a new ProcessBuilder instance with the specified operating system program and its arguments.
			 * @param command 
			 */
			constructor(command: native.Array<string>);
			/**
			 * Constructs a new ProcessBuilder instance with the specified operating system program and its arguments. Note that the list passed to this constructor is not copied, so any subsequent updates to it are reflected in this instance's state.
			 * @param command 
			 */
			constructor(command: java.util.IList<string>);
			static class: java.lang.Class<java.lang.ProcessBuilder>;
			/**
			 * Returns this process builder's current program and arguments. Note that the returned list is not a copy and modifications to it will change the state of this instance.
			 */
			public command(): java.util.IList<string>;
			/**
			 * Changes the program and arguments of this process builder.
			 * @param command 
			 */
			public command(command: native.Array<string>): java.lang.ProcessBuilder;
			/**
			 * Changes the program and arguments of this process builder. Note that the list passed to this method is not copied, so any subsequent updates to it are reflected in this instance's state.
			 * @param command 
			 */
			public command(command: java.util.IList<string>): java.lang.ProcessBuilder;
			/**
			 * Returns the working directory of this process builder. If null is returned, then the working directory of the Java process is used when a process is started.
			 */
			public directory(): java.io.File;
			/**
			 * Changes the working directory of this process builder. If the specified directory is null, then the working directory of the Java process is used when a process is started.
			 * @param directory 
			 */
			public directory(directory: java.io.File): java.lang.ProcessBuilder;
			/**
			 * Returns this process builder's current environment. When a process builder instance is created, the environment is populated with a copy of the environment, as returned by System#getenv(). Note that the map returned by this method is not a copy and any changes made to it are reflected in this instance's state.
			 */
			public environment(): java.util.IMap<string, string>;
			/**
			 * Indicates whether the standard error should be redirected to standard output. If redirected, the Process#getErrorStream() will always return end of stream and standard error is written to Process#getInputStream().
			 */
			public redirectErrorStream(): boolean;
			/**
			 * Changes the state of whether or not standard error is redirected to standard output.
			 * @param redirectErrorStream 
			 */
			public redirectErrorStream(redirectErrorStream: boolean): java.lang.ProcessBuilder;
			/**
			 * Starts a new process based on the current state of this process builder.
			 */
			public start(): java.lang.Process;
		}
		/**
		 * The wrapper for the primitive type long.
		 */
		export class Long extends java.lang.Number {
			/**
			 * Constructs a new Long with the specified primitive long value.
			 * @param value 
			 */
			constructor(value: number);
			/**
			 * Constructs a new Long from the specified string.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * Constant for the maximum long value, 2<sup>63</sup>-1.
			 */
			static MAX_VALUE: number;
			/**
			 * Constant for the minimum long value, -2<sup>63</sup>.
			 */
			static MIN_VALUE: number;
			/**
			 * The Class object that represents the primitive type long.
			 */
			static TYPE: java.lang.Class<java.lang.Long>;
			/**
			 * Constant for the number of bits needed to represent a long in two's complement form.
			 */
			static SIZE: number;
			static class: java.lang.Class<java.lang.Long>;
			private __java_lang_Long: any;
			public byteValue(): number;
			/**
			 * Compares this object to the specified long object to determine their relative order.
			 * @param object 
			 */
			public compareTo(object: java.lang.Long): number;
			/**
			 * Parses the specified string and returns a Long instance if the string can be decoded into a long value. The string may be an optional minus sign "-" followed by a hexadecimal ("0x..." or "#..."), octal ("0..."), or decimal ("...") representation of a long.
			 * @param string 
			 */
			public static decode(string: string): java.lang.Long;
			public doubleValue(): any;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must be an instance of Long and have the same long value as this object.
			 * @param o 
			 */
			public equals(o: any): boolean;
			public floatValue(): number;
			/**
			 * Returns the Long value of the system property identified by string. Returns null if string is null or empty, if the property can not be found or if its value can not be parsed as a long.
			 * @param string 
			 */
			public static getLong(string: string): java.lang.Long;
			/**
			 * Returns the Long value of the system property identified by string. Returns the specified default value if string is null or empty, if the property can not be found or if its value can not be parsed as a long.
			 * @param string 
			 * @param defaultValue 
			 */
			public static getLong(string: string, defaultValue: number): java.lang.Long;
			/**
			 * Returns the Long value of the system property identified by string. Returns the specified default value if string is null or empty, if the property can not be found or if its value can not be parsed as a long.
			 * @param string 
			 * @param defaultValue 
			 */
			public static getLong(string: string, defaultValue: java.lang.Long): java.lang.Long;
			public hashCode(): number;
			public intValue(): number;
			/**
			 * Gets the primitive value of this long.
			 */
			public longValue(): any;
			/**
			 * Parses the specified string as a signed decimal long value. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 */
			public static parseLong(string: string): any;
			/**
			 * Parses the specified string as a signed long value using the specified radix. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 * @param radix 
			 */
			public static parseLong(string: string, radix: number): any;
			public shortValue(): number;
			/**
			 * Converts the specified long value into its binary string representation. The returned string is a concatenation of '0' and '1' characters.
			 * @param v 
			 */
			public static toBinaryString(v: number): string;
			/**
			 * Converts the specified long value into its hexadecimal string representation. The returned string is a concatenation of characters from '0' to '9' and 'a' to 'f'.
			 * @param v 
			 */
			public static toHexString(v: number): string;
			/**
			 * Converts the specified long value into its octal string representation. The returned string is a concatenation of characters from '0' to '7'.
			 * @param v 
			 */
			public static toOctalString(v: number): string;
			public toString(): string;
			/**
			 * Converts the specified long value into its decimal string representation. The returned string is a concatenation of a minus sign if the number is negative and characters from '0' to '9'.
			 * @param n 
			 */
			public static toString(n: number): string;
			/**
			 * Converts the specified signed long value into a string representation based on the specified radix. The returned string is a concatenation of a minus sign if the number is negative and characters from '0' to '9' and 'a' to 'z', depending on the radix. If radix is not in the interval defined by Character.MIN_RADIX and Character.MAX_RADIX then 10 is used as the base for the conversion.
			 * @param v 
			 * @param radix 
			 */
			public static toString(v: number, radix: number): string;
			/**
			 * Parses the specified string as a signed decimal long value.
			 * @param string 
			 */
			public static valueOf(string: string): java.lang.Long;
			/**
			 * Parses the specified string as a signed long value using the specified radix.
			 * @param string 
			 * @param radix 
			 */
			public static valueOf(string: string, radix: number): java.lang.Long;
			/**
			 * Determines the highest (leftmost) bit of the specified long value that is 1 and returns the bit mask value for that bit. This is also referred to as the Most Significant 1 Bit. Returns zero if the specified long is zero.
			 * @param v 
			 */
			public static highestOneBit(v: number): any;
			/**
			 * Determines the lowest (rightmost) bit of the specified long value that is 1 and returns the bit mask value for that bit. This is also referred to as the Least Significant 1 Bit. Returns zero if the specified long is zero.
			 * @param v 
			 */
			public static lowestOneBit(v: number): any;
			/**
			 * Determines the number of leading zeros in the specified long value prior to the #highestOneBit(long) highest one bit.
			 * @param v 
			 */
			public static numberOfLeadingZeros(v: number): number;
			/**
			 * Determines the number of trailing zeros in the specified long value after the #lowestOneBit(long) lowest one bit.
			 * @param v 
			 */
			public static numberOfTrailingZeros(v: number): number;
			/**
			 * Counts the number of 1 bits in the specified long value; this is also referred to as population count.
			 * @param v 
			 */
			public static bitCount(v: number): number;
			/**
			 * Rotates the bits of the specified long value to the left by the specified number of bits.
			 * @param v 
			 * @param distance 
			 */
			public static rotateLeft(v: number, distance: number): any;
			/**
			 * Rotates the bits of the specified long value to the right by the specified number of bits.
			 * @param v 
			 * @param distance 
			 */
			public static rotateRight(v: number, distance: number): any;
			/**
			 * Reverses the order of the bytes of the specified long value.
			 * @param v 
			 */
			public static reverseBytes(v: number): any;
			/**
			 * Reverses the order of the bits of the specified long value.
			 * @param v 
			 */
			public static reverse(v: number): any;
			/**
			 * Returns the value of the signum function for the specified long value.
			 * @param v 
			 */
			public static signum(v: number): number;
			/**
			 * Returns a Long instance for the specified long value.
			 * @param v 
			 */
			public static valueOf(v: number): java.lang.Long;
		}
		/**
		 * The superclass of all classes which can be thrown by the VM. The two direct subclasses are recoverable exceptions (Exception) and unrecoverable errors (Error). This class provides common methods for accessing a string message which provides extra information about the circumstances in which the Throwable was created (basically an error message in most cases), and for saving a stack trace (that is, a record of the call stack at a particular point in time) which can be printed later.
		 */
		export class Throwable extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Constructs a new Throwable that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new Throwable with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new Throwable with the current stack trace, the specified detail message and the specified cause.
			 * @param detailMessage 
			 * @param throwable 
			 */
			constructor(detailMessage: string, throwable: java.lang.Throwable);
			/**
			 * Constructs a new Throwable with the current stack trace and the specified cause.
			 * @param throwable 
			 */
			constructor(throwable: java.lang.Throwable);
			static class: java.lang.Class<java.lang.Throwable>;
			/**
			 * Records the stack trace from the point where this method has been called to this Throwable. This method is invoked by the Throwable constructors.
			 */
			public fillInStackTrace(): java.lang.Throwable;
			/**
			 * Returns the extra information message which was provided when this Throwable was created. Returns null if no message was provided at creation time.
			 */
			public getMessage(): string;
			/**
			 * Returns the extra information message which was provided when this Throwable was created. Returns null if no message was provided at creation time. Subclasses may override this method to return localized text for the message. Android returns the regular detail message.
			 */
			public getLocalizedMessage(): string;
			/**
			 * Returns the array of stack trace elements of this Throwable. Each StackTraceElement represents an entry in the call stack. The element at position 0 is the top of the stack, that is, the stack frame where this Throwable is thrown.
			 */
			public getStackTrace(): native.Array<java.lang.StackTraceElement>;
			/**
			 * Sets the array of stack trace elements. Each StackTraceElement represents an entry in the call stack. A copy of the specified array is stored in this Throwable. will be returned by getStackTrace() and printed by printStackTrace().
			 * @param trace 
			 */
			public setStackTrace(trace: native.Array<java.lang.StackTraceElement>): void;
			/**
			 * Writes a printable representation of this Throwable's stack trace to the System.err stream.
			 */
			public printStackTrace(): void;
			/**
			 * Writes a printable representation of this Throwable's stack trace to the specified print stream. If the Throwable contains a #getCause() cause, the method will be invoked recursively for the nested Throwable.
			 * @param err 
			 */
			public printStackTrace(err: java.io.PrintStream): void;
			/**
			 * Writes a printable representation of this Throwable's stack trace to the specified print writer. If the Throwable contains a #getCause() cause, the method will be invoked recursively for the nested Throwable.
			 * @param err 
			 */
			public printStackTrace(err: java.io.PrintWriter): void;
			public toString(): string;
			/**
			 * Initializes the cause of this Throwable. The cause can only be initialized once.
			 * @param throwable 
			 */
			public initCause(throwable: java.lang.Throwable): java.lang.Throwable;
			/**
			 * Returns the cause of this Throwable, or null if there is no cause.
			 */
			public getCause(): java.lang.Throwable;
		}
		/**
		 * The in-memory representation of a Java class. This representation serves as the starting point for querying class-related information, a process usually called "reflection". There are basically three types of Class instances: those representing real classes and interfaces, those representing primitive types, and those representing array classes.
		 */
		export class Class<T> extends java.lang.Object implements java.io.ISerializable, java.lang.reflect.IAnnotatedElement, java.lang.reflect.IGenericDeclaration, java.lang.reflect.IType {
			static class: java.lang.Class<java.lang.Class<any>>;
			/**
			 * Returns a Class object which represents the class with the specified name. The name should be the name of a class as described in the Class class definition; however, Classes representing primitive types can not be found using this method.
			 * @param className 
			 */
			public static forName(className: string): java.lang.Class<any>;
			/**
			 * Returns a Class object which represents the class with the specified name. The name should be the name of a class as described in the Class class definition, however Classes representing primitive types can not be found using this method. Security rules will be obeyed.
			 * @param className 
			 * @param initializeBoolean 
			 * @param classLoader 
			 */
			public static forName(className: string, initializeBoolean: boolean, classLoader: java.lang.ClassLoader): java.lang.Class<any>;
			static classForName(className: string, initializeBoolean: boolean, classLoader: java.lang.ClassLoader): java.lang.Class<any>;
			/**
			 * Returns an array containing Class objects for all public classes and interfaces that are members of this class. This includes public members inherited from super classes and interfaces. If there are no such class members or if this object represents a primitive type then an array of length 0 is returned.
			 */
			public getClasses(): native.Array<java.lang.Class<any>>;
			public getAnnotation<A extends java.lang.annotation.IAnnotation>(annotationType: java.lang.Class<A>): A;
			/**
			 * Returns all the annotations of this class. If there are no annotations then an empty array is returned.
			 */
			public getAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
			/**
			 * Returns the canonical name of this class. If this class does not have a canonical name as defined in the Java Language Specification, then the method returns null.
			 */
			public getCanonicalName(): string;
			/**
			 * Returns the class loader which was used to load the class represented by this Class. Implementations are free to return null for classes that were loaded by the bootstrap class loader. The Android reference implementation, though, returns a reference to an actual representation of the bootstrap class loader.
			 */
			public getClassLoader(): java.lang.ClassLoader;
			/**
			 * This must be provided by the VM vendor, as it is used by other provided class implementations in this package. Outside of this class, it is used by SecurityManager.classLoaderDepth(), currentClassLoader() and currentLoadedClass(). Return the ClassLoader for this Class without doing any security checks. The bootstrap ClassLoader is returned, unlike getClassLoader() which returns null in place of the bootstrap ClassLoader.
			 */
			getClassLoaderImpl(): java.lang.ClassLoader;
			/**
			 * Returns a Class object which represents the component type if this class represents an array type. Returns null if this class does not represent an array type. The component type of an array type is the type of the elements of the array.
			 */
			public getComponentType(): java.lang.Class<any>;
			/**
			 * Returns a Constructor object which represents the public constructor matching the specified parameter types.
			 * @param parameterTypes 
			 */
			public getConstructor(parameterTypes: native.Array<java.lang.Class<any>>): java.lang.reflect.Constructor<T>;
			/**
			 * Returns an array containing Constructor objects for all public constructors for the class represented by this Class. If there are no public constructors or if this Class represents an array class, a primitive type or void then an empty array is returned.
			 */
			public getConstructors(): native.Array<java.lang.reflect.Constructor<any>>;
			/**
			 * Returns the annotations that are directly defined on the class represented by this Class. Annotations that are inherited are not included in the result. If there are no annotations at all, an empty array is returned.
			 */
			public getDeclaredAnnotations(): native.Array<java.lang.annotation.IAnnotation>;
			/**
			 * Returns an array containing Class objects for all classes and interfaces that are declared as members of the class which this Class represents. If there are no classes or interfaces declared or if this class represents an array class, a primitive type or void, then an empty array is returned.
			 */
			public getDeclaredClasses(): native.Array<java.lang.Class<any>>;
			/**
			 * Returns a Constructor object which represents the constructor matching the specified parameter types that is declared by the class represented by this Class.
			 * @param parameterTypes 
			 */
			public getDeclaredConstructor(parameterTypes: native.Array<java.lang.Class<any>>): java.lang.reflect.Constructor<T>;
			/**
			 * Returns an array containing Constructor objects for all constructors declared in the class represented by this Class. If there are no constructors or if this Class represents an array class, a primitive type or void then an empty array is returned.
			 */
			public getDeclaredConstructors(): native.Array<java.lang.reflect.Constructor<any>>;
			/**
			 * Returns a Field object for the field with the specified name which is declared in the class represented by this Class.
			 * @param name the name of the requested field.
			 */
			public getDeclaredField(name: string): java.lang.reflect.Field;
			/**
			 * Returns an array containing Field objects for all fields declared in the class represented by this Class. If there are no fields or if this Class represents an array class, a primitive type or void then an empty array is returned.
			 */
			public getDeclaredFields(): native.Array<java.lang.reflect.Field>;
			static getDeclaredFields(clazz: java.lang.Class<any>, publicOnly: boolean): native.Array<java.lang.reflect.Field>;
			/**
			 * Returns the field if it is defined by clazz; null otherwise. This may return a non-public member.
			 */
			static getDeclaredField(clazz: java.lang.Class<any>, name: string): java.lang.reflect.Field;
			/**
			 * Returns a Method object which represents the method matching the specified name and parameter types that is declared by the class represented by this Class.
			 * @param name 
			 * @param parameterTypes 
			 */
			public getDeclaredMethod(name: string, parameterTypes: native.Array<java.lang.Class<any>>): java.lang.reflect.Method;
			/**
			 * Returns an array containing Method objects for all methods declared in the class represented by this Class. If there are no methods or if this Class represents an array class, a primitive type or void then an empty array is returned.
			 */
			public getDeclaredMethods(): native.Array<java.lang.reflect.Method>;
			/**
			 * Returns the list of methods without performing any security checks first. If no methods exist, an empty array is returned.
			 */
			static getDeclaredMethods(clazz: java.lang.Class<any>, publicOnly: boolean): native.Array<java.lang.reflect.Method>;
			/**
			 * Returns the constructor or method if it is defined by clazz; null otherwise. This may return a non-public member.
			 * @param clazz name the method name, or "<init>" to get a constructor.
			 * @param name 
			 * @param args 
			 */
			static getDeclaredConstructorOrMethod(clazz: java.lang.Class<any>, name: string, args: native.Array<java.lang.Class<any>>): java.lang.reflect.IMember;
			/**
			 * Returns the declaring Class of this Class. Returns null if the class is not a member of another class or if this Class represents an array class, a primitive type or void.
			 */
			public getDeclaringClass(): java.lang.Class<any>;
			/**
			 * Returns the enclosing Class of this Class. If there is no enclosing class the method returns null.
			 */
			public getEnclosingClass(): java.lang.Class<any>;
			/**
			 * Gets the enclosing Constructor of this Class, if it is an anonymous or local/automatic class; otherwise null.
			 */
			public getEnclosingConstructor(): java.lang.reflect.Constructor<any>;
			/**
			 * Gets the enclosing Method of this Class, if it is an anonymous or local/automatic class; otherwise null.
			 */
			public getEnclosingMethod(): java.lang.reflect.Method;
			/**
			 * Gets the enum constants associated with this Class. Returns null if this Class does not represent an enum type.
			 */
			public getEnumConstants(): native.Array<T>;
			/**
			 * Returns a Field object which represents the public field with the specified name. This method first searches the class C represented by this Class, then the interfaces implemented by C and finally the superclasses of C.
			 * @param name 
			 */
			public getField(name: string): java.lang.reflect.Field;
			/**
			 * Returns an array containing Field objects for all public fields for the class C represented by this Class. Fields may be declared in C, the interfaces it implements or in the superclasses of C. The elements in the returned array are in no particular order.
			 */
			public getFields(): native.Array<java.lang.reflect.Field>;
			/**
			 * Gets the Types of the interfaces that this Class directly implements. If the Class represents a primitive type or void then an empty array is returned.
			 */
			public getGenericInterfaces(): native.Array<java.lang.reflect.IType>;
			/**
			 * Gets the Type that represents the superclass of this class.
			 */
			public getGenericSuperclass(): java.lang.reflect.IType;
			/**
			 * Returns an array of Class objects that match the interfaces specified in the implements declaration of the class represented by this Class. The order of the elements in the array is identical to the order in the original class declaration. If the class does not implement any interfaces, an empty array is returned.
			 */
			public getInterfaces(): native.Array<java.lang.Class<any>>;
			/**
			 * Returns a Method object which represents the public method with the specified name and parameter types. This method first searches the class C represented by this Class, then the superclasses of C and finally the interfaces implemented by C and finally the superclasses of C for a method with matching name.
			 * @param name 
			 * @param parameterTypes 
			 */
			public getMethod(name: string, parameterTypes: native.Array<java.lang.Class<any>>): java.lang.reflect.Method;
			/**
			 * Returns an array containing Method objects for all public methods for the class C represented by this Class. Methods may be declared in C, the interfaces it implements or in the superclasses of C. The elements in the returned array are in no particular order.
			 */
			public getMethods(): native.Array<java.lang.reflect.Method>;
			/**
			 * Returns an integer that represents the modifiers of the class represented by this Class. The returned value is a combination of bits defined by constants in the Modifier class.
			 */
			public getModifiers(): number;
			/**
			 * Returns the name of the class represented by this Class. For a description of the format which is used, see the class definition of Class.
			 */
			public getName(): string;
			/**
			 * Returns the simple name of the class represented by this Class as defined in the source code. If there is no name (that is, the class is anonymous) then an empty string is returned. If the receiver is an array then the name of the underlying type with square braces appended (for example "Integer[]") is returned.
			 */
			public getSimpleName(): string;
			/**
			 * Returns null.
			 */
			public getProtectionDomain(): java.security.ProtectionDomain;
			/**
			 * Returns the URL of the resource specified by resName. The mapping between the resource name and the URL is managed by the class' class loader.
			 * @param resName 
			 */
			public getResource(resName: string): java.net.URL;
			/**
			 * Returns a read-only stream for the contents of the resource specified by resName. The mapping between the resource name and the stream is managed by the class' class loader.
			 * @param resName 
			 */
			public getResourceAsStream(resName: string): java.io.InputStream;
			/**
			 * Returns null. (On Android, a ClassLoader can load classes from multiple dex files. All classes from any given dex file will have the same signers, but different dex files may have different signers. This does not fit well with the original ClassLoader-based model of getSigners.)
			 */
			public getSigners(): native.Array<any>;
			/**
			 * Returns the Class object which represents the superclass of the class represented by this Class. If this Class represents the Object class, a primitive type, an interface or void then the method returns null. If this Class represents an array class then the Object class is returned.
			 */
			public getSuperclass(): java.lang.Class<any>;
			/**
			 * Returns an array containing TypeVariable objects for type variables declared by the generic class represented by this Class. Returns an empty array if the class is not generic.
			 */
			public getTypeParameters(): native.Array<java.lang.reflect.ITypeVariable<java.lang.Class<T>>>;
			/**
			 * Indicates whether this Class represents an annotation class.
			 */
			public isAnnotation(): boolean;
			public isAnnotationPresent(annotationType: java.lang.Class<any>): boolean;
			/**
			 * Indicates whether the class represented by this Class is anonymously declared.
			 */
			public isAnonymousClass(): boolean;
			/**
			 * Indicates whether the class represented by this Class is an array class.
			 */
			public isArray(): boolean;
			/**
			 * Indicates whether the specified class type can be converted to the class represented by this Class. Conversion may be done via an identity conversion or a widening reference conversion (if either the receiver or the argument represent primitive types, only the identity conversion applies).
			 * @param cls 
			 */
			public isAssignableFrom(cls: java.lang.Class<any>): boolean;
			/**
			 * Indicates whether the class represented by this Class is an enum.
			 */
			public isEnum(): boolean;
			/**
			 * Indicates whether the specified object can be cast to the class represented by this Class. This is the runtime version of the instanceof operator.
			 * @param object 
			 */
			public isInstance(object: any): boolean;
			/**
			 * Indicates whether this Class represents an interface.
			 */
			public isInterface(): boolean;
			/**
			 * Indicates whether the class represented by this Class is defined locally.
			 */
			public isLocalClass(): boolean;
			/**
			 * Indicates whether the class represented by this Class is a member class.
			 */
			public isMemberClass(): boolean;
			/**
			 * Indicates whether this Class represents a primitive type.
			 */
			public isPrimitive(): boolean;
			/**
			 * Indicates whether this Class represents a synthetic type.
			 */
			public isSynthetic(): boolean;
			/**
			 * Returns a new instance of the class represented by this Class, created by invoking the default (that is, zero-argument) constructor. If there is no such constructor, or if the creation fails (either because of a lack of available memory or because an exception is thrown by the constructor), an InstantiationException is thrown. If the default constructor exists but is not accessible from the context where this method is invoked, an IllegalAccessException is thrown.
			 */
			public newInstance(): T;
			public toString(): string;
			/**
			 * Returns the Package of which the class represented by this Class is a member. Returns null if no Package object was created by the class loader of the class.
			 */
			public getPackage(): java.lang.Package;
			/**
			 * Returns the assertion status for the class represented by this Class. Assertion is enabled / disabled based on the class loader, package or class default at runtime.
			 */
			public desiredAssertionStatus(): boolean;
			/**
			 * Casts this Class to represent a subclass of the specified class. If successful, this Class is returned; otherwise a ClassCastException is thrown.
			 * @param clazz 
			 */
			public asSubclass<U>(clazz: java.lang.Class<U>): java.lang.Class<any>;
			/**
			 * Casts the specified object to the type represented by this Class. If the object is null then the result is also null.
			 * @param obj 
			 */
			public cast(obj: any): T;
		}
		/**
		 * Thrown when a program attempts to store an element of an incompatible type in an array.
		 */
		export class ArrayStoreException extends java.lang.RuntimeException {
			/**
			 * Constructs a new ArrayStoreException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ArrayStoreException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.ArrayStoreException>;
		}
		/**
		 * Annotation type used to mark methods that override a method declaration in a superclass. Compilers produce an error if a method annotated with does not actually override a method in a superclass.
		 */
		interface IOverride extends java.lang.annotation.IAnnotation {
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Thrown when an action is attempted at a time when the VM is not in the correct state.
		 */
		export class IllegalStateException extends java.lang.RuntimeException {
			/**
			 * Constructs a new IllegalStateException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IllegalStateException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new IllegalStateException with the current stack trace, the specified detail message and the specified cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new IllegalStateException with the current stack trace and the specified cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.lang.IllegalStateException>;
		}
		/**
		 * A modifiable CharSequence sequence of characters for use in creating strings. This class is intended as a direct replacement of StringBuffer for non-concurrent use; unlike StringBuffer this class is not synchronized.
		 */
		export class StringBuilder extends java.lang.AbstractStringBuilder implements java.lang.IAppendable, java.lang.ICharSequence, java.io.ISerializable {
			/**
			 * Constructs an instance with an initial capacity of 16.
			 */
			constructor();
			/**
			 * Constructs an instance with the specified capacity.
			 * @param capacity 
			 */
			constructor(capacity: number);
			/**
			 * Constructs an instance that's initialized with the contents of the specified CharSequence. The capacity of the new builder will be the length of the CharSequence plus 16.
			 * @param seq 
			 */
			constructor(seq: string);
			static class: java.lang.Class<java.lang.StringBuilder>;
			/**
			 * Appends the string representation of the specified boolean value. The boolean value is converted to a String according to the rule defined by String#valueOf(boolean).
			 * @param b 
			 */
			public append(b: boolean): java.lang.StringBuilder;
			/**
			 * Appends the string representation of the specified char value. The char value is converted to a string according to the rule defined by String#valueOf(char).
			 * @param c 
			 */
			public append(c: string): java.lang.StringBuilder;
			/**
			 * Appends the string representation of the specified int value. The int value is converted to a string according to the rule defined by String#valueOf(int).
			 * @param i 
			 */
			public append(i: number): java.lang.StringBuilder;
			/**
			 * Appends the string representation of the specified Object. The Object value is converted to a string according to the rule defined by String#valueOf(Object).
			 * @param obj 
			 */
			public append(obj: any): java.lang.StringBuilder;
			/**
			 * Appends the contents of the specified StringBuffer. If the StringBuffer is null, then the string "null" is appended.
			 * @param sb 
			 */
			public append(sb: java.lang.StringBuffer): java.lang.StringBuilder;
			/**
			 * Appends the string representation of the specified char[]. The char[] is converted to a string according to the rule defined by String#valueOf(char[]).
			 * @param chars 
			 */
			public append(chars: native.Array<string>): java.lang.StringBuilder;
			/**
			 * Appends the string representation of the specified subset of the char[]. The char[] value is converted to a String according to the rule defined by String#valueOf(char[],int,int).
			 * @param str 
			 * @param offset 
			 * @param len 
			 */
			public append(str: native.Array<string>, offset: number, len: number): java.lang.StringBuilder;
			/**
			 * Appends the string representation of the specified subsequence of the CharSequence. If the CharSequence is null, then the string "null" is used to extract the subsequence from.
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			public append(csq: string, start: number, end: number): java.lang.StringBuilder;
			/**
			 * Appends the encoded Unicode code point. The code point is converted to a char[] as defined by Character#toChars(int).
			 * @param codePoint 
			 */
			public appendCodePoint(codePoint: number): java.lang.StringBuilder;
			/**
			 * Deletes a sequence of characters specified by start and end. Shifts any remaining characters to the left.
			 * @param start 
			 * @param end 
			 */
			public delete(start: number, end: number): java.lang.StringBuilder;
			/**
			 * Deletes the character at the specified index. shifts any remaining characters to the left.
			 * @param index 
			 */
			public deleteCharAt(index: number): java.lang.StringBuilder;
			/**
			 * Inserts the string representation of the specified boolean value at the specified offset. The boolean value is converted to a string according to the rule defined by String#valueOf(boolean).
			 * @param offset 
			 * @param b 
			 */
			public insert(offset: number, b: boolean): java.lang.StringBuilder;
			/**
			 * Inserts the string representation of the specified char value at the specified offset. The char value is converted to a string according to the rule defined by String#valueOf(char).
			 * @param offset 
			 * @param c 
			 */
			public insert(offset: number, c: string): java.lang.StringBuilder;
			/**
			 * Inserts the string representation of the specified int value at the specified offset. The int value is converted to a String according to the rule defined by String#valueOf(int).
			 * @param offset 
			 * @param i 
			 */
			public insert(offset: number, i: number): java.lang.StringBuilder;
			/**
			 * Inserts the string representation of the specified Object at the specified offset. The Object value is converted to a String according to the rule defined by String#valueOf(Object).
			 * @param offset 
			 * @param obj 
			 */
			public insert(offset: number, obj: any): java.lang.StringBuilder;
			/**
			 * Inserts the string representation of the specified char[] at the specified offset. The char[] value is converted to a String according to the rule defined by String#valueOf(char[]).
			 * @param offset 
			 * @param ch 
			 */
			public insert(offset: number, ch: native.Array<string>): java.lang.StringBuilder;
			/**
			 * Inserts the string representation of the specified subsequence of the char[] at the specified offset. The char[] value is converted to a String according to the rule defined by String#valueOf(char[],int,int).
			 * @param offset 
			 * @param str 
			 * @param strOffset 
			 * @param strLen 
			 */
			public insert(offset: number, str: native.Array<string>, strOffset: number, strLen: number): java.lang.StringBuilder;
			/**
			 * Inserts the string representation of the specified subsequence of the CharSequence at the specified offset. The CharSequence is converted to a String as defined by CharSequence#subSequence(int, int). If the CharSequence is null, then the string "null" is used to determine the subsequence.
			 * @param offset 
			 * @param s 
			 * @param start 
			 * @param end 
			 */
			public insert(offset: number, s: string, start: number, end: number): java.lang.StringBuilder;
			/**
			 * Replaces the specified subsequence in this builder with the specified string.
			 * @param start 
			 * @param end 
			 * @param string 
			 */
			public replace(start: number, end: number, string: string): java.lang.StringBuilder;
			/**
			 * Reverses the order of characters in this builder.
			 */
			public reverse(): java.lang.StringBuilder;
			/**
			 * Returns the contents of this builder.
			 */
			public toString(): string;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class SecurityManager extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.lang.SecurityManager>;
			public checkAccept(host: string, port: number): void;
			public checkAccess(thread: java.lang.Thread): void;
			public checkAccess(group: java.lang.ThreadGroup): void;
			public checkConnect(host: string, port: number): void;
			public checkConnect(host: string, port: number, context: any): void;
			public checkCreateClassLoader(): void;
			public checkDelete(file: string): void;
			public checkExec(cmd: string): void;
			public checkExit(status: number): void;
			public checkLink(libName: string): void;
			public checkListen(port: number): void;
			public checkMemberAccess(cls: java.lang.Class<any>, type: number): void;
			public checkMulticast(maddr: java.net.InetAddress): void;
			/**
			 *  use #checkMulticast(java.net.InetAddress)
			 */
			public checkMulticast(maddr: java.net.InetAddress, ttl: number): void;
			public checkPackageAccess(packageName: string): void;
			public checkPackageDefinition(packageName: string): void;
			public checkPropertiesAccess(): void;
			public checkPropertyAccess(key: string): void;
			public checkRead(fd: java.io.FileDescriptor): void;
			public checkRead(file: string): void;
			public checkRead(file: string, context: any): void;
			public checkSecurityAccess(target: string): void;
			public checkSetFactory(): void;
			public checkTopLevelWindow(window: any): boolean;
			public checkSystemClipboardAccess(): void;
			public checkAwtEventQueueAccess(): void;
			public checkPrintJobAccess(): void;
			public checkWrite(fd: java.io.FileDescriptor): void;
			public checkWrite(file: string): void;
			/**
			 *  Use #checkPermission.
			 */
			public getInCheck(): boolean;
			protected getClassContext(): native.Array<java.lang.Class<any>>;
			/**
			 *  Use #checkPermission.
			 */
			protected currentClassLoader(): java.lang.ClassLoader;
			/**
			 *  Use #checkPermission.
			 */
			protected classLoaderDepth(): number;
			/**
			 *  Use #checkPermission.
			 */
			protected currentLoadedClass(): java.lang.Class<any>;
			/**
			 *  Use #checkPermission.
			 */
			protected classDepth(name: string): number;
			/**
			 *  Use #checkPermission.
			 */
			protected inClass(name: string): boolean;
			/**
			 *  Use #checkPermission
			 */
			protected inClassLoader(): boolean;
			/**
			 * Returns the current thread's thread group.
			 */
			public getThreadGroup(): java.lang.ThreadGroup;
			public getSecurityContext(): any;
			public checkPermission(permission: java.security.Permission): void;
			public checkPermission(permission: java.security.Permission, context: any): void;
		}
		/**
		 * Instances of classes that implement this interface can be used with the enhanced for loop.
		 */
		export class Iterable<T> implements java.lang.IIterable<T> {
			constructor(implementation: java.lang.IIterable<T>);
			/**
			 * Returns an Iterator for the elements in this object.
			 */
			public iterator(): java.util.IIterator<T>;
		}
		/**
		 * Annotation type used to indicate that the compiler should not issue the specified warnings for the marked program element. Warnings are not only suppressed for the annotated element but also for all program elements contained in that element.
		 */
		export class SuppressWarnings implements java.lang.annotation.IAnnotation, java.lang.ISuppressWarnings {
			constructor(implementation: java.lang.ISuppressWarnings);
			/**
			 * The list of warnings a compiler should not issue.
			 */
			public value(): native.Array<string>;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Declares methods to append characters or character sequences. Any class that implements this interface can receive data formatted by a java.util.Formatter. The appended character or character sequence should be valid according to the rules described in Character Unicode Character Representation.
		 */
		export class Appendable implements java.lang.IAppendable {
			constructor(implementation: java.lang.IAppendable);
			/**
			 * Appends the specified character.
			 * @param c 
			 */
			public append(c: string): any;
			/**
			 * Appends a subsequence of csq.
			 * @param csq 
			 * @param start 
			 * @param end 
			 */
			public append(csq: string, start: number, end: number): any;
		}
		/**
		 * Thrown when an attempt is made to load a class with a format version that is not supported by the VM.
		 */
		export class UnsupportedClassVersionError extends java.lang.ClassFormatError {
			/**
			 * Constructs a new UnsupportedClassVersionError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new UnsupportedClassVersionError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.UnsupportedClassVersionError>;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class RuntimePermission extends java.security.BasicPermission {
			constructor(permissionName: string);
			constructor(name: string, actions: string);
			static class: java.lang.Class<java.lang.RuntimePermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Provides access to system-related information and resources including standard input and output. Enables clients to dynamically load native libraries. All methods of this class are accessed in a static way and the class itself can not be instantiated.
		 */
		export class System extends java.lang.Object {
			/**
			 * Default input stream.
			 */
			static in: java.io.InputStream;
			/**
			 * Default output stream.
			 */
			static out: java.io.PrintStream;
			/**
			 * Default error output stream.
			 */
			static err: java.io.PrintStream;
			static class: java.lang.Class<java.lang.System>;
			/**
			 * Sets the standard input stream to the given user defined input stream.
			 * @param newIn 
			 */
			public static setIn(newIn: java.io.InputStream): void;
			/**
			 * Sets the standard output stream to the given user defined output stream.
			 * @param newOut 
			 */
			public static setOut(newOut: java.io.PrintStream): void;
			/**
			 * Sets the standard error output stream to the given user defined output stream.
			 * @param newErr 
			 */
			public static setErr(newErr: java.io.PrintStream): void;
			/**
			 * Copies length elements from the array src, starting at offset srcPos, into the array dst, starting at offset dstPos.
			 * @param src 
			 * @param srcPos 
			 * @param dst 
			 * @param dstPos 
			 * @param length 
			 */
			public static arraycopy(src: any, srcPos: number, dst: any, dstPos: number, length: number): void;
			/**
			 * Returns the current system time in milliseconds since January 1, 1970 00:00:00 UTC. This method shouldn't be used for measuring timeouts or other elapsed time measurements, as changing the system time can affect the results.
			 */
			public static currentTimeMillis(): any;
			/**
			 * Returns the current timestamp of the most precise timer available on the local system. This timestamp can only be used to measure an elapsed period by comparing it against another timestamp. It cannot be used as a very exact system time expression.
			 */
			public static nanoTime(): any;
			/**
			 * Causes the VM to stop running and the program to exit. If #runFinalizersOnExit(boolean) has been previously invoked with a true argument, then all objects will be properly garbage-collected and finalized first.
			 * @param code 
			 */
			public static exit(code: number): void;
			/**
			 * Indicates to the VM that it would be a good time to run the garbage collector. Note that this is a hint only. There is no guarantee that the garbage collector will actually be run.
			 */
			public static gc(): void;
			/**
			 * Returns the value of the environment variable with the given name var.
			 * @param name 
			 */
			public static getenv(name: string): string;
			/**
			 * Returns an unmodifiable map of all available environment variables.
			 */
			public static getenv(): java.util.IMap<string, string>;
			/**
			 * Returns the inherited channel from the creator of the current virtual machine.
			 */
			public static inheritedChannel(): java.nio.channels.IChannel;
			/**
			 * Returns the system properties. Note that this is not a copy, so that changes made to the returned Properties object will be reflected in subsequent calls to getProperty and getProperties.
			 */
			public static getProperties(): java.util.Properties;
			/**
			 * Returns the value of a particular system property or null if no such property exists.
			 * @param propertyName 
			 */
			public static getProperty(propertyName: string): string;
			/**
			 * Returns the value of a particular system property. The defaultValue will be returned if no such property has been found.
			 * @param prop 
			 * @param defaultValue 
			 */
			public static getProperty(prop: string, defaultValue: string): string;
			/**
			 * Sets the value of a particular system property.
			 * @param prop 
			 * @param value 
			 */
			public static setProperty(prop: string, value: string): string;
			/**
			 * Removes a specific system property.
			 * @param key 
			 */
			public static clearProperty(key: string): string;
			/**
			 * Returns the java.io.Console associated with this VM, or null. Not all VMs will have an associated console. A console is typically only available for programs run from the command line. 1.6
			 */
			public static console(): java.io.Console;
			/**
			 * Returns null. Android does not use SecurityManager. This method is only provided for source compatibility.
			 */
			public static getSecurityManager(): java.lang.SecurityManager;
			/**
			 * Returns an integer hash code for the parameter. The hash code returned is the same one that would be returned by the method java.lang.Object.hashCode(), whether or not the object's class has overridden hashCode(). The hash code for null is 0.
			 * @param anObject 
			 */
			public static identityHashCode(anObject: any): number;
			/**
			 * Loads and links the dynamic library that is identified through the specified path. This method is similar to #loadLibrary(String), but it accepts a full path specification whereas loadLibrary just accepts the name of the library to load.
			 * @param pathName 
			 */
			public static load(pathName: string): void;
			/**
			 * Loads and links the library with the specified name. The mapping of the specified library name to the full path for loading the library is implementation-dependent.
			 * @param libName 
			 */
			public static loadLibrary(libName: string): void;
			/**
			 * Provides a hint to the VM that it would be useful to attempt to perform any outstanding object finalization.
			 */
			public static runFinalization(): void;
			/**
			 * Ensures that, when the VM is about to exit, all objects are finalized. Note that all finalization which occurs when the system is exiting is performed after all running threads have been terminated.
			 * @param flag 
			 */
			public static runFinalizersOnExit(flag: boolean): void;
			/**
			 * Sets all system properties. This does not take a copy; the passed-in object is used directly. Passing null causes the VM to reinitialize the properties to how they were when the VM was started.
			 */
			public static setProperties(p: java.util.Properties): void;
			/**
			 * Throws SecurityException.
			 * @param sm a security manager
			 */
			public static setSecurityManager(sm: java.lang.SecurityManager): void;
			/**
			 * Returns the platform specific file name format for the shared library named by the argument.
			 * @param userLibName 
			 */
			public static mapLibraryName(userLibName: string): string;
		}
		export module System {
			/**
			 * The unmodifiable environment variables map. System.getenv() specifies that this map must throw when passed non-String keys.
			 */
			export class SystemEnvironment extends java.util.AbstractMap<string, string> {
				constructor(map: java.util.IMap<string, string>);
				static class: java.lang.Class<java.lang.System.SystemEnvironment>;
				public entrySet(): java.util.ISet<java.util.Map.IEntry<string, string>>;
				public get(key: any): string;
				public containsKey(key: any): boolean;
				public containsValue(value: any): boolean;
			}
		}
		/**
		 * Thrown when the VM notices that a program tries to reference, on a class or object, a method that does not exist.
		 */
		export class NoSuchMethodException extends java.lang.Exception {
			/**
			 * Constructs a new NoSuchMethodException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NoSuchMethodException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NoSuchMethodException>;
		}
		/**
		 * RuntimeException is the superclass of all classes that represent exceptional conditions which occur as a result of executing an application in the VM. Unlike checked exceptions (exceptions where the type doesn't extend RuntimeException or Error), the compiler does not require code to handle runtime exceptions.
		 */
		export class RuntimeException extends java.lang.Exception {
			/**
			 * Constructs a new RuntimeException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new RuntimeException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new RuntimeException with the current stack trace, the specified detail message and the specified cause.
			 * @param detailMessage 
			 * @param throwable 
			 */
			constructor(detailMessage: string, throwable: java.lang.Throwable);
			/**
			 * Constructs a new RuntimeException with the current stack trace and the specified cause.
			 * @param throwable 
			 */
			constructor(throwable: java.lang.Throwable);
			static class: java.lang.Class<java.lang.RuntimeException>;
		}
		/**
		 * The abstract superclass of the classes which represent numeric base types (that is Byte, Short, Integer, Long, Float, and Double.
		 */
		export class Number extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Empty default constructor.
			 */
			constructor();
			static class: java.lang.Class<java.lang.Number>;
			/**
			 * Returns this object's value as a byte. Might involve rounding and/or truncating the value, so it fits into a byte.
			 */
			public byteValue(): number;
			/**
			 * Returns this object's value as a double. Might involve rounding.
			 */
			public doubleValue(): any;
			/**
			 * Returns this object's value as a float. Might involve rounding.
			 */
			public floatValue(): number;
			/**
			 * Returns this object's value as an int. Might involve rounding and/or truncating the value, so it fits into an int.
			 */
			public intValue(): number;
			/**
			 * Returns this object's value as a long. Might involve rounding and/or truncating the value, so it fits into a long.
			 */
			public longValue(): any;
			/**
			 * Returns this object's value as a short. Might involve rounding and/or truncating the value, so it fits into a short.
			 */
			public shortValue(): number;
		}
		/**
		 * Thrown when a program tries to access a field or method of an object or an element of an array when there is no instance or array to use, that is if the object or array points to null. It also occurs in some other, less obvious circumstances, like a throw e statement where the Throwable reference is null.
		 */
		export class NullPointerException extends java.lang.RuntimeException {
			/**
			 * Constructs a new NullPointerException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new NullPointerException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.NullPointerException>;
		}
		/**
		 * Loads classes and resources from a repository. One or more class loaders are installed at runtime. These are consulted whenever the runtime system needs a specific class that is not yet available in-memory. Typically, class loaders are grouped into a tree where child class loaders delegate all requests to parent class loaders. Only if the parent class loader cannot satisfy the request, the child class loader itself tries to handle it.
		 */
		export class ClassLoader extends java.lang.Object {
			static class: java.lang.Class<java.lang.ClassLoader>;
			/**
			 * Returns the system class loader. This is the parent for new ClassLoader instances and is typically the class loader used to start the application.
			 */
			public static getSystemClassLoader(): java.lang.ClassLoader;
			/**
			 * Finds the URL of the resource with the specified name. The system class loader's resource lookup algorithm is used to find the resource.
			 * @param resName 
			 */
			public static getSystemResource(resName: string): java.net.URL;
			/**
			 * Returns an enumeration of URLs for the resource with the specified name. The system class loader's resource lookup algorithm is used to find the resource.
			 * @param resName 
			 */
			public static getSystemResources(resName: string): java.util.IEnumeration<java.net.URL>;
			/**
			 * Returns a stream for the resource with the specified name. The system class loader's resource lookup algorithm is used to find the resource. Basically, the contents of the java.class.path are searched in order, looking for a path which matches the specified resource.
			 * @param resName 
			 */
			public static getSystemResourceAsStream(resName: string): java.io.InputStream;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format.
			 * @param classRep 
			 * @param offset 
			 * @param length 
			 */
			protected defineClass(classRep: native.Array<number>, offset: number, length: number): java.lang.Class<any>;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format.
			 * @param className 
			 * @param classRep 
			 * @param offset 
			 * @param length 
			 */
			protected defineClass(className: string, classRep: native.Array<number>, offset: number, length: number): java.lang.Class<any>;
			/**
			 * Constructs a new class from an array of bytes containing a class definition in class file format and assigns the specified protection domain to the new class. If the provided protection domain is null then a default protection domain is assigned to the class.
			 * @param className 
			 * @param classRep 
			 * @param offset 
			 * @param length 
			 * @param protectionDomain 
			 */
			protected defineClass(className: string, classRep: native.Array<number>, offset: number, length: number, protectionDomain: java.security.ProtectionDomain): java.lang.Class<any>;
			/**
			 * Defines a new class with the specified name, byte code from the byte buffer and the optional protection domain. If the provided protection domain is null then a default protection domain is assigned to the class.
			 * @param name 
			 * @param b 
			 * @param protectionDomain 
			 */
			protected defineClass(name: string, b: java.nio.ByteBuffer, protectionDomain: java.security.ProtectionDomain): java.lang.Class<any>;
			/**
			 * Overridden by subclasses, throws a ClassNotFoundException by default. This method is called by loadClass after the parent ClassLoader has failed to find a loaded class of the same name.
			 * @param className 
			 */
			protected findClass(className: string): java.lang.Class<any>;
			/**
			 * Returns the class with the specified name if it has already been loaded by the VM or null if it has not yet been loaded.
			 * @param className 
			 */
			protected findLoadedClass(className: string): java.lang.Class<any>;
			/**
			 * Finds the class with the specified name, loading it using the system class loader if necessary.
			 * @param className 
			 */
			protected findSystemClass(className: string): java.lang.Class<any>;
			/**
			 * Returns this class loader's parent.
			 */
			public getParent(): java.lang.ClassLoader;
			/**
			 * Returns the URL of the resource with the specified name. This implementation first tries to use the parent class loader to find the resource; if this fails then #findResource(String) is called to find the requested resource.
			 * @param resName 
			 */
			public getResource(resName: string): java.net.URL;
			/**
			 * Returns an enumeration of URLs for the resource with the specified name. This implementation first uses this class loader's parent to find the resource, then it calls #findResources(String) to get additional URLs. The returned enumeration contains the URL objects of both find operations.
			 * @param resName 
			 */
			public getResources(resName: string): java.util.IEnumeration<java.net.URL>;
			/**
			 * Returns a stream for the resource with the specified name. See #getResource(String) for a description of the lookup algorithm used to find the resource.
			 * @param resName 
			 */
			public getResourceAsStream(resName: string): java.io.InputStream;
			/**
			 * Loads the class with the specified name. Invoking this method is equivalent to calling loadClass(className, false).
			 * @param className 
			 */
			public loadClass(className: string): java.lang.Class<any>;
			/**
			 * Loads the class with the specified name, optionally linking it after loading. The following steps are performed: <ol> <li> Call #findLoadedClass(String) to determine if the requested class has already been loaded.</li> <li>If the class has not yet been loaded: Invoke this method on the parent class loader.</li> <li>If the class has still not been loaded: Call #findClass(String) to find the class.</li> </ol>
			 * @param className 
			 * @param resolve 
			 */
			public loadClass(className: string, resolve: boolean): java.lang.Class<any>;
			/**
			 * Forces a class to be linked (initialized). If the class has already been linked this operation has no effect.
			 * @param clazz 
			 */
			protected resolveClass(clazz: java.lang.Class<any>): void;
			/**
			 * Finds the URL of the resource with the specified name. This implementation just returns null; it should be overridden in subclasses.
			 * @param resName 
			 */
			protected findResource(resName: string): java.net.URL;
			/**
			 * Finds an enumeration of URLs for the resource with the specified name. This implementation just returns an empty Enumeration; it should be overridden in subclasses.
			 * @param resName 
			 */
			protected findResources(resName: string): java.util.IEnumeration<java.net.URL>;
			/**
			 * Returns the absolute path of the native library with the specified name, or null. If this method returns null then the virtual machine searches the directories specified by the system property "java.library.path".
			 * @param libName 
			 */
			protected findLibrary(libName: string): string;
			/**
			 * Returns the package with the specified name. Package information is searched in this class loader.
			 * @param name 
			 */
			protected getPackage(name: string): java.lang.Package;
			/**
			 * Returns all the packages known to this class loader.
			 */
			protected getPackages(): native.Array<java.lang.Package>;
			/**
			 * Defines and returns a new Package using the specified information. If sealBase is null, the package is left unsealed. Otherwise, the package is sealed using this URL.
			 * @param name 
			 * @param specTitle 
			 * @param specVersion 
			 * @param specVendor 
			 * @param implTitle 
			 * @param implVersion 
			 * @param implVendor 
			 * @param sealBase 
			 */
			protected definePackage(name: string, specTitle: string, specVersion: string, specVendor: string, implTitle: string, implVersion: string, implVendor: string, sealBase: java.net.URL): java.lang.Package;
			/**
			 * Sets the signers of the specified class. This implementation does nothing.
			 * @param c 
			 * @param signers 
			 */
			protected setSigners(c: java.lang.Class<any>, signers: native.Array<any>): void;
			/**
			 * Sets the assertion status of the class with the specified name.
			 * @param cname 
			 * @param enable 
			 */
			public setClassAssertionStatus(cname: string, enable: boolean): void;
			/**
			 * Sets the assertion status of the package with the specified name.
			 * @param pname 
			 * @param enable 
			 */
			public setPackageAssertionStatus(pname: string, enable: boolean): void;
			/**
			 * Sets the default assertion status for this class loader.
			 * @param enable 
			 */
			public setDefaultAssertionStatus(enable: boolean): void;
			/**
			 * Sets the default assertion status for this class loader to false and removes any package default and class assertion status settings.
			 */
			public clearAssertionStatus(): void;
		}
		export module ClassLoader {
			/**
			 * The 'System' ClassLoader - the one that is responsible for loading classes from the classpath. It is not equal to the bootstrap class loader - that one handles the built-in classes.
			 */
			export class SystemClassLoader extends java.lang.Object {
				static loader: java.lang.ClassLoader;
				static class: java.lang.Class<java.lang.ClassLoader.SystemClassLoader>;
			}
		}
		/**
		 * VirtualMachineError is the superclass of all error classes that occur during the operation of the VM.
		 */
		export class VirtualMachineError extends java.lang.Error {
			/**
			 * Constructs a new VirtualMachineError that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new VirtualMachineError with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.VirtualMachineError>;
		}
		/**
		 * A thread-local variable whose value is passed from parent to child thread. By default, the value of an inheritable thread-local variable of a child thread is initialized with the value of the parent thread's variable at thread creation time. However, subclasses may override {code #childValue(Object)} to provide an arbitrary function for passing the value of a parent's thread-local variable to the child's thread-local variable.
		 */
		export class InheritableThreadLocal<T> extends java.lang.ThreadLocal<T> {
			/**
			 * Creates a new inheritable thread-local variable.
			 */
			constructor();
			static class: java.lang.Class<java.lang.InheritableThreadLocal<any>>;
			/**
			 * Computes the initial value of this thread-local variable for the child thread given the parent thread's value. Called from the parent thread when creating a child thread. The default implementation returns the parent thread's value.
			 * @param parentValue the value of the variable in the parent thread.
			 */
			protected childValue(parentValue: T): T;
			values(current: java.lang.Thread): java.lang.ThreadLocal.Values;
			initializeValues(current: java.lang.Thread): java.lang.ThreadLocal.Values;
		}
		/**
		 * Error is the superclass of all classes that represent unrecoverable errors. When errors are thrown, they should not be caught by application code.
		 */
		export class Error extends java.lang.Throwable {
			/**
			 * Constructs a new Error that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new Error with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new Error with the current stack trace, the specified detail message and the specified cause.
			 * @param detailMessage 
			 * @param throwable 
			 */
			constructor(detailMessage: string, throwable: java.lang.Throwable);
			/**
			 * Constructs a new Error with the current stack trace and the specified cause.
			 * @param throwable 
			 */
			constructor(throwable: java.lang.Throwable);
			static class: java.lang.Class<java.lang.Error>;
		}
		/**
		 * Thrown when a security manager check fails.
		 */
		export class SecurityException extends java.lang.RuntimeException {
			/**
			 * Constructs a new SecurityException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new SecurityException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new SecurityException with the current stack trace, the specified detail message and the specified cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new SecurityException with the current stack trace and the specified cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<java.lang.SecurityException>;
		}
		/**
		 * Exception is the superclass of all classes that represent recoverable exceptions. When exceptions are thrown, they may be caught by application code.
		 */
		export class Exception extends java.lang.Throwable {
			/**
			 * Constructs a new Exception that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new Exception with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new Exception with the current stack trace, the specified detail message and the specified cause.
			 * @param detailMessage 
			 * @param throwable 
			 */
			constructor(detailMessage: string, throwable: java.lang.Throwable);
			/**
			 * Constructs a new Exception with the current stack trace and the specified cause.
			 * @param throwable 
			 */
			constructor(throwable: java.lang.Throwable);
			static class: java.lang.Class<java.lang.Exception>;
		}
		/**
		 * This (empty) interface must be implemented by all classes that wish to support cloning. The implementation of clone() in Object checks if the object being cloned implements this interface and throws CloneNotSupportedException if it does not.
		 */
		interface ICloneable {
		}
		/**
		 * Thrown when an operation is attempted which is not possible given the state that the executing thread is in.
		 */
		export class IllegalThreadStateException extends java.lang.IllegalArgumentException {
			/**
			 * Constructs a new IllegalThreadStateException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new IllegalThreadStateException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.IllegalThreadStateException>;
		}
		/**
		 * The wrapper for the primitive type int.
		 */
		export class Integer extends java.lang.Number {
			/**
			 * Constructs a new Integer with the specified primitive integer value.
			 * @param value 
			 */
			constructor(value: number);
			/**
			 * Constructs a new Integer from the specified string.
			 * @param string 
			 */
			constructor(string: string);
			/**
			 * Constant for the maximum int value, 2<sup>31</sup>-1.
			 */
			static MAX_VALUE: number;
			/**
			 * Constant for the minimum int value, -2<sup>31</sup>.
			 */
			static MIN_VALUE: number;
			/**
			 * Constant for the number of bits needed to represent an int in two's complement form.
			 */
			static SIZE: number;
			/**
			 * The Class object that represents the primitive type int.
			 */
			static TYPE: java.lang.Class<java.lang.Integer>;
			static class: java.lang.Class<java.lang.Integer>;
			private __java_lang_Integer: any;
			public byteValue(): number;
			/**
			 * Compares this object to the specified integer object to determine their relative order.
			 * @param object 
			 */
			public compareTo(object: java.lang.Integer): number;
			/**
			 * Parses the specified string and returns a Integer instance if the string can be decoded into an integer value. The string may be an optional minus sign "-" followed by a hexadecimal ("0x..." or "#..."), octal ("0..."), or decimal ("...") representation of an integer.
			 * @param string 
			 */
			public static decode(string: string): java.lang.Integer;
			public doubleValue(): any;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must be an instance of Integer and have the same integer value as this object.
			 * @param o 
			 */
			public equals(o: any): boolean;
			public floatValue(): number;
			/**
			 * Returns the Integer value of the system property identified by string. Returns null if string is null or empty, if the property can not be found or if its value can not be parsed as an integer.
			 * @param string 
			 */
			public static getInteger(string: string): java.lang.Integer;
			/**
			 * Returns the Integer value of the system property identified by string. Returns the specified default value if string is null or empty, if the property can not be found or if its value can not be parsed as an integer.
			 * @param string 
			 * @param defaultValue 
			 */
			public static getInteger(string: string, defaultValue: number): java.lang.Integer;
			/**
			 * Returns the Integer value of the system property identified by string. Returns the specified default value if string is null or empty, if the property can not be found or if its value can not be parsed as an integer.
			 * @param string 
			 * @param defaultValue 
			 */
			public static getInteger(string: string, defaultValue: java.lang.Integer): java.lang.Integer;
			public hashCode(): number;
			/**
			 * Gets the primitive value of this int.
			 */
			public intValue(): number;
			public longValue(): any;
			/**
			 * Parses the specified string as a signed decimal integer value. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 */
			public static parseInt(string: string): number;
			/**
			 * Parses the specified string as a signed integer value using the specified radix. The ASCII character - ('-') is recognized as the minus sign.
			 * @param string 
			 * @param radix 
			 */
			public static parseInt(string: string, radix: number): number;
			public shortValue(): number;
			/**
			 * Converts the specified integer into its binary string representation. The returned string is a concatenation of '0' and '1' characters.
			 * @param i 
			 */
			public static toBinaryString(i: number): string;
			/**
			 * Converts the specified integer into its hexadecimal string representation. The returned string is a concatenation of characters from '0' to '9' and 'a' to 'f'.
			 * @param i 
			 */
			public static toHexString(i: number): string;
			/**
			 * Converts the specified integer into its octal string representation. The returned string is a concatenation of characters from '0' to '7'.
			 * @param i 
			 */
			public static toOctalString(i: number): string;
			public toString(): string;
			/**
			 * Converts the specified integer into its decimal string representation. The returned string is a concatenation of a minus sign if the number is negative and characters from '0' to '9'.
			 * @param i 
			 */
			public static toString(i: number): string;
			/**
			 * Converts the specified signed integer into a string representation based on the specified radix. The returned string is a concatenation of a minus sign if the number is negative and characters from '0' to '9' and 'a' to 'z', depending on the radix. If radix is not in the interval defined by Character.MIN_RADIX and Character.MAX_RADIX then 10 is used as the base for the conversion.
			 * @param i 
			 * @param radix 
			 */
			public static toString(i: number, radix: number): string;
			/**
			 * Parses the specified string as a signed decimal integer value.
			 * @param string 
			 */
			public static valueOf(string: string): java.lang.Integer;
			/**
			 * Parses the specified string as a signed integer value using the specified radix.
			 * @param string 
			 * @param radix 
			 */
			public static valueOf(string: string, radix: number): java.lang.Integer;
			/**
			 * Determines the highest (leftmost) bit of the specified integer that is 1 and returns the bit mask value for that bit. This is also referred to as the Most Significant 1 Bit. Returns zero if the specified integer is zero.
			 * @param i 
			 */
			public static highestOneBit(i: number): number;
			/**
			 * Determines the lowest (rightmost) bit of the specified integer that is 1 and returns the bit mask value for that bit. This is also referred to as the Least Significant 1 Bit. Returns zero if the specified integer is zero.
			 * @param i 
			 */
			public static lowestOneBit(i: number): number;
			/**
			 * Determines the number of leading zeros in the specified integer prior to the #highestOneBit(int) highest one bit.
			 * @param i 
			 */
			public static numberOfLeadingZeros(i: number): number;
			/**
			 * Determines the number of trailing zeros in the specified integer after the #lowestOneBit(int) lowest one bit.
			 * @param i 
			 */
			public static numberOfTrailingZeros(i: number): number;
			/**
			 * Counts the number of 1 bits in the specified integer; this is also referred to as population count.
			 * @param i 
			 */
			public static bitCount(i: number): number;
			/**
			 * Rotates the bits of the specified integer to the left by the specified number of bits.
			 * @param i 
			 * @param distance 
			 */
			public static rotateLeft(i: number, distance: number): number;
			/**
			 * Rotates the bits of the specified integer to the right by the specified number of bits.
			 * @param i 
			 * @param distance 
			 */
			public static rotateRight(i: number, distance: number): number;
			/**
			 * Reverses the order of the bytes of the specified integer.
			 * @param i 
			 */
			public static reverseBytes(i: number): number;
			/**
			 * Reverses the order of the bits of the specified integer.
			 * @param i 
			 */
			public static reverse(i: number): number;
			/**
			 * Returns the value of the signum function for the specified integer.
			 * @param i 
			 */
			public static signum(i: number): number;
			/**
			 * Returns a Integer instance for the specified integer value.
			 * @param i 
			 */
			public static valueOf(i: number): java.lang.Integer;
		}
		/**
		 * Represents a sequence of characters that can be incrementally read (copied) into a CharBuffer.
		 */
		interface IReadable {
			/**
			 * Reads characters into the specified CharBuffer. The maximum number of characters read is CharBuffer.remaining().
			 * @param cb 
			 */
			read(cb: java.nio.CharBuffer): number;
		}
		/**
		 * Thrown when a program attempts to cast a an object to a type with which it is not compatible.
		 */
		export class ClassCastException extends java.lang.RuntimeException {
			/**
			 * Constructs a new ClassCastException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ClassCastException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.ClassCastException>;
		}
		/**
		 * Thrown when the an array is indexed with a value less than zero, or greater than or equal to the size of the array.
		 */
		export class ArrayIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
			/**
			 * Constructs a new ArrayIndexOutOfBoundsException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new ArrayIndexOutOfBoundsException with the current stack trace and a detail message that is based on the specified invalid index.
			 * @param index 
			 */
			constructor(index: number);
			/**
			 * Constructs a new ArrayIndexOutOfBoundsException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.lang.ArrayIndexOutOfBoundsException>;
		}
	}
	export module net {
		export class Socks4Message extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.Socks4Message>;
			/**
			 * Get the request's command or result.
			 */
			public getCommandOrResult(): number;
			/**
			 * Set the request's command or result.
			 */
			public setCommandOrResult(command: number): void;
			/**
			 * Returns the request's port number.
			 */
			public getPort(): number;
			/**
			 * Set the request's port number.
			 */
			public setPort(port: number): void;
			/**
			 * Returns the IP address of the request as an integer.
			 */
			public getIP(): number;
			/**
			 * Set the IP address. This expects an array of four bytes in host order.
			 */
			public setIP(ip: native.Array<number>): void;
			/**
			 * Returns the user id for authentication.
			 */
			public getUserId(): string;
			/**
			 * Set the user id for authentication.
			 */
			public setUserId(id: string): void;
			public toString(): string;
			/**
			 * Returns the total number of bytes used for the request. This method searches for the end of the user id, then searches for the end of the password and returns the final index as the requests length.
			 */
			public getLength(): number;
			/**
			 * Returns an error string corresponding to the given error value.
			 */
			public getErrorString(error: number): string;
			/**
			 * Returns the message's byte buffer.
			 */
			public getBytes(): native.Array<number>;
		}
		/**
		 * This SocketException may be thrown during socket creation or setting options, and is the superclass of all other socket related exceptions.
		 */
		export class SocketException extends java.io.IOException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.SocketException>;
		}
		/**
		 * This exception is thrown when a program attempts to create an URL from an incorrect specification.
		 */
		export class MalformedURLException extends java.io.IOException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.MalformedURLException>;
		}
		/**
		 * This class establishes a connection to a jar: URL using the JAR protocol. A JarURLConnection instance can refer to either a JAR archive file or to an entry of such a file. jar: URLs are specified as follows: <i>jar:{archive-url}!/{entry}</i> where "!/" is called a separator. This separator is important to determine if an archive or an entry of an archive is referred.
		 */
		export class JarURLConnection extends java.net.URLConnection {
			static class: java.lang.Class<java.net.JarURLConnection>;
			/**
			 * Returns all attributes of the JarEntry referenced by this JarURLConnection.
			 */
			public getAttributes(): java.util.jar.Attributes;
			/**
			 * Returns all certificates of the JarEntry referenced by this JarURLConnection instance. This method will return null until the InputStream has been completely verified.
			 */
			public getCertificates(): native.Array<java.security.cert.Certificate>;
			/**
			 * Gets the name of the entry referenced by this JarURLConnection. The return value will be null if this instance refers to a JAR file rather than an JAR file entry.
			 */
			public getEntryName(): string;
			/**
			 * Gets the JarEntry object of the entry referenced by this JarURLConnection.
			 */
			public getJarEntry(): java.util.jar.JarEntry;
			/**
			 * Gets the manifest file associated with this JAR-URL.
			 */
			public getManifest(): java.util.jar.Manifest;
			/**
			 * Gets the JarFile object referenced by this JarURLConnection.
			 */
			public getJarFile(): java.util.jar.JarFile;
			/**
			 * Gets the URL to the JAR-file referenced by this JarURLConnection.
			 */
			public getJarFileURL(): java.net.URL;
			/**
			 * Gets all attributes of the manifest file referenced by this JarURLConnection. If this instance refers to a JAR-file rather than a JAR-file entry, null will be returned.
			 */
			public getMainAttributes(): java.util.jar.Attributes;
		}
		/**
		 * This class represents a socket endpoint described by a IP address and a port number. It is a concrete implementation of SocketAddress for IP.
		 */
		export class InetSocketAddress extends java.net.SocketAddress {
			/**
			 * Creates a socket endpoint with the given port number port and no specified address. The range for valid port numbers is between 0 and 65535 inclusive.
			 * @param port 
			 */
			constructor(port: number);
			/**
			 * Creates a socket endpoint with the given port number port and address. The range for valid port numbers is between 0 and 65535 inclusive. If address is null this socket is bound to the IPv4 wildcard address.
			 * @param address port
			 * @param port address
			 */
			constructor(address: java.net.InetAddress, port: number);
			/**
			 * Creates a socket endpoint with the given port number port and the hostname host. The hostname is tried to be resolved and cannot be null. The range for valid port numbers is between 0 and 65535 inclusive.
			 * @param host port
			 * @param port host
			 */
			constructor(host: string, port: number);
			static class: java.lang.Class<java.net.InetSocketAddress>;
			/**
			 * Creates an InetSocketAddress without trying to resolve the hostname into an InetAddress. The address field is marked as unresolved.
			 * @param host 
			 * @param port 
			 */
			public static createUnresolved(host: string, port: number): java.net.InetSocketAddress;
			/**
			 * Gets the port number of this socket.
			 */
			public getPort(): number;
			/**
			 * Gets the address of this socket.
			 */
			public getAddress(): java.net.InetAddress;
			/**
			 * Returns the hostname, doing a reverse lookup on the InetAddress if no hostname string was provided at construction time.
			 */
			public getHostName(): string;
			/**
			 * Returns whether this socket address is unresolved or not.
			 */
			public isUnresolved(): boolean;
			/**
			 * Returns a string containing the address (or the hostname for an unresolved InetSocketAddress) and port number. For example: "www.google.com/74.125.224.115:80" or "/127.0.0.1:80".
			 */
			public toString(): string;
			/**
			 * Compares two socket endpoints and returns true if they are equal. Two socket endpoints are equal if the IP address or the hostname of both are equal and they are bound to the same port.
			 * @param socketAddr 
			 */
			public equals(socketAddr: any): boolean;
			public hashCode(): number;
		}
		/**
		 * The NoRouteToHostException will be thrown while attempting to connect to a remote host but the host cannot be reached for instance because of a badly configured router or a blocking firewall.
		 */
		export class NoRouteToHostException extends java.net.SocketException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.NoRouteToHostException>;
		}
		/**
		 * This class converts the content of a certain format (i.e. a MIME type) into a Java type object. It is created by ContentHandlerFactory. The data values should be accessed via URL or URLConnection.
		 */
		export class ContentHandler extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.ContentHandler>;
			/**
			 * Returns the object pointed by the specified URL connection uConn.
			 * @param uConn 
			 */
			public getContent(uConn: java.net.URLConnection): any;
			/**
			 * Returns the object pointed by the specified URL connection uConn.
			 * @param uConn 
			 * @param types 
			 */
			public getContent(uConn: java.net.URLConnection, types: native.Array<java.lang.Class<any>>): any;
		}
		/**
		 * Selects the proxy server to use, if any, when connecting to a given URL.
		 */
		export class ProxySelector extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.ProxySelector>;
			/**
			 * Returns the default proxy selector, or null if none exists.
			 */
			public static getDefault(): java.net.ProxySelector;
			/**
			 * Sets the default proxy selector. If selector is null, the current proxy selector will be removed.
			 */
			public static setDefault(selector: java.net.ProxySelector): void;
			/**
			 * Returns the proxy servers to use on connections to uri. This list will contain Proxy#NO_PROXY if no proxy server should be used.
			 */
			public select(uri: java.net.URI): java.util.IList<java.net.Proxy>;
			/**
			 * Notifies this ProxySelector that a connection to the proxy server could not be established.
			 * @param uri the URI to which the connection could not be established.
			 * @param address the address of the proxy.
			 * @param failure the exception which was thrown during connection
			 */
			public connectFailed(uri: java.net.URI, address: java.net.SocketAddress, failure: java.io.IOException): void;
		}
		/**
		 * Converts internationalized domain names between Unicode and the ASCII Compatible Encoding (ACE) representation.
		 */
		export class IDN extends java.lang.Object {
			/**
			 * When set, allows IDN to process unassigned unicode points.
			 */
			static ALLOW_UNASSIGNED: number;
			/**
			 * When set, ASCII strings are checked against <a href="http://www.ietf.org/rfc/rfc1122.txt">RFC 1122</a> and <a href="http://www.ietf.org/rfc/rfc1123.txt">RFC 1123</a>.
			 */
			static USE_STD3_ASCII_RULES: number;
			static class: java.lang.Class<java.net.IDN>;
			/**
			 * Transform a Unicode String to ASCII Compatible Encoding String according to the algorithm defined in <a href="http://www.ietf.org/rfc/rfc3490.txt">RFC 3490</a>.
			 * @param input the Unicode name
			 * @param flags 0, {@code ALLOW_UNASSIGNED}, {@code USE_STD3_ASCII_RULES},
			 */
			public static toASCII(input: string, flags: number): string;
			/**
			 * Equivalent to toASCII(input, 0).
			 * @param input the Unicode name
			 */
			public static toASCII(input: string): string;
			/**
			 * Translates a string from ASCII Compatible Encoding (ACE) to Unicode according to the algorithm defined in <a href="http://www.ietf.org/rfc/rfc3490.txt">RFC 3490</a>.
			 * @param input the ACE name
			 * @param flags 0, {@code ALLOW_UNASSIGNED}, {@code USE_STD3_ASCII_RULES},
			 */
			public static toUnicode(input: string, flags: number): string;
			/**
			 * Equivalent to toUnicode(input, 0).
			 * @param input the ACE name
			 */
			public static toUnicode(input: string): string;
		}
		/**
		 * This class represents a datagram packet which contains data either to be sent or received through a DatagramSocket. It holds additional information such as its source or destination host.
		 */
		export class DatagramPacket extends java.lang.Object {
			/**
			 * Constructs a new DatagramPacket object to receive data up to length bytes.
			 * @param data 
			 * @param length 
			 */
			constructor(data: native.Array<number>, length: number);
			/**
			 * Constructs a new DatagramPacket object to receive data up to length bytes with a specified buffer offset.
			 * @param data 
			 * @param offset 
			 * @param length 
			 */
			constructor(data: native.Array<number>, offset: number, length: number);
			/**
			 * Constructs a new DatagramPacket object to send data to the port aPort of the address host. The length must be lesser than or equal to the size of data. The first length bytes from the byte array position offset are sent.
			 * @param data 
			 * @param offset 
			 * @param length 
			 * @param host 
			 * @param aPort 
			 */
			constructor(data: native.Array<number>, offset: number, length: number, host: java.net.InetAddress, aPort: number);
			/**
			 * Constructs a new DatagramPacket object to send data to the port aPort of the address host. The length must be lesser than or equal to the size of data. The first length bytes are sent.
			 * @param data 
			 * @param length 
			 * @param host 
			 * @param port 
			 */
			constructor(data: native.Array<number>, length: number, host: java.net.InetAddress, port: number);
			/**
			 * Constructs a new DatagramPacket object to send data to the address sockAddr. The length must be lesser than or equal to the size of data. The first length bytes of the data are sent.
			 * @param data 
			 * @param length 
			 * @param sockAddr 
			 */
			constructor(data: native.Array<number>, length: number, sockAddr: java.net.SocketAddress);
			/**
			 * Constructs a new DatagramPacket object to send data to the address sockAddr. The length must be lesser than or equal to the size of data. The first length bytes of the data are sent.
			 * @param data 
			 * @param offset 
			 * @param length 
			 * @param sockAddr 
			 */
			constructor(data: native.Array<number>, offset: number, length: number, sockAddr: java.net.SocketAddress);
			static class: java.lang.Class<java.net.DatagramPacket>;
			/**
			 * Gets the sender or destination IP address of this datagram packet.
			 */
			public getAddress(): java.net.InetAddress;
			/**
			 * Gets the data of this datagram packet.
			 */
			public getData(): native.Array<number>;
			/**
			 * Gets the length of the data stored in this datagram packet.
			 */
			public getLength(): number;
			/**
			 * Gets the offset of the data stored in this datagram packet.
			 */
			public getOffset(): number;
			/**
			 * Gets the port number of the target or sender host of this datagram packet.
			 */
			public getPort(): number;
			/**
			 * Sets the IP address of the target host.
			 * @param addr 
			 */
			public setAddress(addr: java.net.InetAddress): void;
			/**
			 * Sets the data buffer for this datagram packet.
			 */
			public setData(data: native.Array<number>, offset: number, byteCount: number): void;
			/**
			 * Sets the data buffer for this datagram packet. The length of the datagram packet is set to the buffer length.
			 * @param buf 
			 */
			public setData(buf: native.Array<number>): void;
			/**
			 * Sets the length of the datagram packet. This length plus the offset must be lesser than or equal to the buffer size.
			 * @param length 
			 */
			public setLength(length: number): void;
			/**
			 * Sets the port number of the target host of this datagram packet.
			 * @param aPort 
			 */
			public setPort(aPort: number): void;
			/**
			 * Gets the host address and the port to which this datagram packet is sent as a SocketAddress object.
			 */
			public getSocketAddress(): java.net.SocketAddress;
			/**
			 * Sets the SocketAddress for this datagram packet.
			 * @param sockAddr 
			 */
			public setSocketAddress(sockAddr: java.net.SocketAddress): void;
		}
		export class ProxySelectorImpl extends java.net.ProxySelector {
			static class: java.lang.Class<java.net.ProxySelectorImpl>;
			public connectFailed(uri: java.net.URI, sa: java.net.SocketAddress, ioe: java.io.IOException): void;
			public select(uri: java.net.URI): java.util.IList<java.net.Proxy>;
		}
		/**
		 * This abstract class represents a protocol-independent base for socket-endpoint representing classes. The class has to be implemented according to a specific protocol.
		 */
		export class SocketAddress extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Creates a new SocketAddress instance.
			 */
			constructor();
			static class: java.lang.Class<java.net.SocketAddress>;
		}
		/**
		 * This class provides a concrete implementation of CookieHandler. It separates the storage of cookies from the policy which decides to accept or deny cookies. The constructor can have two arguments: a CookieStore and a CookiePolicy. The former is in charge of cookie storage and the latter makes decision on acceptance/rejection.
		 */
		export class CookieManager extends java.net.CookieHandler {
			/**
			 * Constructs a new cookie manager.
			 */
			constructor();
			/**
			 * Constructs a new cookie manager using a specified cookie store and a cookie policy.
			 * @param store 
			 * @param cookiePolicy 
			 */
			constructor(store: java.net.ICookieStore, cookiePolicy: java.net.ICookiePolicy);
			static class: java.lang.Class<java.net.CookieManager>;
			/**
			 * Searches and gets all cookies in the cache by the specified uri in the request header.
			 * @param uri 
			 * @param requestHeaders 
			 */
			public get(uri: java.net.URI, requestHeaders: java.util.IMap<string, java.util.IList<string>>): java.util.IMap<string, java.util.IList<string>>;
			/**
			 * Sets cookies according to uri and responseHeaders
			 * @param uri 
			 * @param responseHeaders 
			 */
			public put(uri: java.net.URI, responseHeaders: java.util.IMap<string, java.util.IList<string>>): void;
			/**
			 * Returns a cookie-safe path by truncating everything after the last "/". When request path like "/foo/bar.html" yields a cookie, that cookie's default path is "/foo/".
			 */
			static pathToCookiePath(path: string): string;
			/**
			 * Sets the cookie policy of this cookie manager.
			 * @param cookiePolicy 
			 */
			public setCookiePolicy(cookiePolicy: java.net.ICookiePolicy): void;
			/**
			 * Gets current cookie store.
			 */
			public getCookieStore(): java.net.ICookieStore;
		}
		/**
		 * An implementation of this class is able to obtain authentication information for a connection in several ways. For this purpose it has to set the default authenticator which extends Authenticator by setDefault(Authenticator a). Then it should override getPasswordAuthentication() which dictates how the authentication info is obtained. Usually, it prompts the user for the required input.
		 */
		export class Authenticator extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.Authenticator>;
			/**
			 * Returns the collected username and password for authorization. The subclass has to override this method to return a value different to the default which is null.
			 */
			protected getPasswordAuthentication(): java.net.PasswordAuthentication;
			/**
			 * Returns the port of the connection that requests authorization.
			 */
			protected getRequestingPort(): number;
			/**
			 * Returns the address of the connection that requests authorization or null if unknown.
			 */
			protected getRequestingSite(): java.net.InetAddress;
			/**
			 * Returns the realm (prompt string) of the connection that requests authorization.
			 */
			protected getRequestingPrompt(): string;
			/**
			 * Returns the protocol of the connection that requests authorization.
			 */
			protected getRequestingProtocol(): string;
			/**
			 * Returns the scheme of the connection that requests authorization, for example HTTP Basic Authentication.
			 */
			protected getRequestingScheme(): string;
			/**
			 * Invokes the methods of the registered authenticator to get the authentication info.
			 * @param rAddr 
			 * @param rPort 
			 * @param rProtocol 
			 * @param rPrompt 
			 * @param rScheme 
			 */
			public static requestPasswordAuthentication(rAddr: java.net.InetAddress, rPort: number, rProtocol: string, rPrompt: string, rScheme: string): java.net.PasswordAuthentication;
			/**
			 * Sets a as the default authenticator. It will be called whenever the realm that the URL is pointing to requires authorization.
			 * @param a 
			 */
			public static setDefault(a: java.net.Authenticator): void;
			/**
			 * Invokes the methods of the registered authenticator to get the authentication info.
			 * @param rHost 
			 * @param rAddr 
			 * @param rPort 
			 * @param rProtocol 
			 * @param rPrompt 
			 * @param rScheme 
			 */
			public static requestPasswordAuthentication(rHost: string, rAddr: java.net.InetAddress, rPort: number, rProtocol: string, rPrompt: string, rScheme: string): java.net.PasswordAuthentication;
			/**
			 * Returns the host name of the connection that requests authentication or null if unknown.
			 */
			protected getRequestingHost(): string;
			/**
			 * Invokes the methods of the registered authenticator to get the authentication info.
			 * @param rHost 
			 * @param rAddr 
			 * @param rPort 
			 * @param rProtocol 
			 * @param rPrompt 
			 * @param rScheme 
			 * @param rURL 
			 * @param reqType 
			 */
			public static requestPasswordAuthentication(rHost: string, rAddr: java.net.InetAddress, rPort: number, rProtocol: string, rPrompt: string, rScheme: string, rURL: java.net.URL, reqType: java.net.Authenticator.RequestorType): java.net.PasswordAuthentication;
			/**
			 * Returns the URL of the authentication request.
			 */
			protected getRequestingURL(): java.net.URL;
			/**
			 * Returns the type of this request, it can be PROXY or SERVER.
			 */
			protected getRequestorType(): java.net.Authenticator.RequestorType;
		}
		export module Authenticator {
			/**
			 * Enumeration class for the origin of the authentication request.
			 */
			export enum RequestorType {
				PROXY,
				SERVER
			}
        }
        export class URLStreamHandler {}
		/**
		 * Defines a factory which creates an URLStreamHandler for a specified protocol. It is used by the class URL.
		 */
		interface IURLStreamHandlerFactory {
			/**
			 * Creates a new URLStreamHandler instance for the given protocol.
			 * @param protocol 
			 */
			createURLStreamHandler(protocol: string): java.net.URLStreamHandler;
		}
		/**
		 * This immutable class is a data structure that encapsulates username and password which is used by the Authenticator class.
		 */
		export class PasswordAuthentication extends java.lang.Object {
			/**
			 * Creates an instance of a password authentication with a specified username and password.
			 * @param userName 
			 * @param password 
			 */
			constructor(userName: string, password: native.Array<string>);
			static class: java.lang.Class<java.net.PasswordAuthentication>;
			/**
			 * Gets a clone of the password stored by this instance. The user is responsible to finalize the returned array if the password clone is no longer needed.
			 */
			public getPassword(): native.Array<string>;
			/**
			 * Gets the username stored by this instance.
			 */
			public getUserName(): string;
		}
		/**
		 * Defines a factory which is responsible for creating a ContentHandler.
		 */
		export class ContentHandlerFactory implements java.net.IContentHandlerFactory {
			constructor(implementation: java.net.IContentHandlerFactory);
			/**
			 * Creates a content handler to handle contentType.
			 * @param contentType 
			 */
			public createContentHandler(contentType: string): java.net.ContentHandler;
		}
		/**
		 * An IPv4 address. See InetAddress.
		 */
		export class Inet4Address extends java.net.InetAddress {
			static class: java.lang.Class<java.net.Inet4Address>;
			public isAnyLocalAddress(): boolean;
			public isLinkLocalAddress(): boolean;
			public isLoopbackAddress(): boolean;
			public isMCGlobal(): boolean;
			public isMCLinkLocal(): boolean;
			public isMCNodeLocal(): boolean;
			public isMCOrgLocal(): boolean;
			public isMCSiteLocal(): boolean;
			public isMulticastAddress(): boolean;
			public isSiteLocalAddress(): boolean;
		}
		/**
		 * Identifies one of a network interface's addresses. These are passed back from the JNI behind NetworkInterface.getNetworkInterfaces. Multiple addresses for the same interface are collected together on the Java side.
		 */
		export class InterfaceAddress extends java.lang.Object {
			static class: java.lang.Class<java.net.InterfaceAddress>;
			/**
			 * Tests whether this object is equal to another one. Returns true if the address, broadcast address and prefix length are all equal.
			 * @param obj the object to be compared.
			 */
			public equals(obj: any): boolean;
			public hashCode(): number;
			/**
			 * Returns a string containing this interface's address, prefix length, and broadcast address. For example: "/172.18.103.112/23 [/172.18.103.255]" or "/0:0:0:0:0:0:0:1%1/128 [null]".
			 */
			public toString(): string;
			/**
			 * Returns the InetAddress for this address.
			 */
			public getAddress(): java.net.InetAddress;
			/**
			 * Returns the subnet-directed broadcast address if this is an IPv4 interface, null otherwise.
			 */
			public getBroadcast(): java.net.InetAddress;
			/**
			 * Returns the network prefix length in bits. (In IPv4 parlance, this is known as the subnet mask, but this method applies to IPv6 addresses too.)
			 */
			public getNetworkPrefixLength(): number;
		}
		/**
		 * This interface defines a factory for socket implementations.
		 */
		export class SocketImplFactory implements java.net.ISocketImplFactory {
			constructor(implementation: java.net.ISocketImplFactory);
			/**
			 * Creates a new SocketImpl instance.
			 */
			public createSocketImpl(): java.net.SocketImpl;
		}
		/**
		 * A BindException is thrown when a process cannot bind a local address/port, either because it is already bound or reserved by the OS.
		 */
		export class BindException extends java.net.SocketException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.BindException>;
		}
		/**
		 * This class is used to represent a network interface of the local device. An interface is defined by its address and a platform dependent name. The class provides methods to get all information about the available interfaces of the system or to identify the local interface of a joined multicast group.
		 */
		export class NetworkInterface extends java.lang.Object {
			static class: java.lang.Class<java.net.NetworkInterface>;
			static forUnboundMulticastSocket(): java.net.NetworkInterface;
			/**
			 * Returns the name of this network interface (such as "eth0" or "lo").
			 */
			public getName(): string;
			/**
			 * Returns an enumeration of the addresses bound to this network interface.
			 */
			public getInetAddresses(): java.util.IEnumeration<java.net.InetAddress>;
			/**
			 * Returns a human-readable name for this network interface. On Android, this is the same string as returned by #getName.
			 */
			public getDisplayName(): string;
			/**
			 * Returns the NetworkInterface corresponding to the named network interface, or null if no interface has this name.
			 */
			public static getByName(interfaceName: string): java.net.NetworkInterface;
			/**
			 * Returns the NetworkInterface corresponding to the given address, or null if no interface has this address.
			 */
			public static getByInetAddress(address: java.net.InetAddress): java.net.NetworkInterface;
			/**
			 * Gets a list of all network interfaces available on the local system or null if no interface is available.
			 */
			public static getNetworkInterfaces(): java.util.IEnumeration<java.net.NetworkInterface>;
			/**
			 * Compares the specified object to this NetworkInterface and returns whether they are equal or not. The object must be an instance of NetworkInterface with the same name, display name, and list of interface addresses.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns the hash code for this NetworkInterface. Since the name should be unique for each network interface the hash code is generated using the name.
			 */
			public hashCode(): number;
			/**
			 * Returns a string containing details of this network interface. The exact format is deliberately unspecified. Callers that require a specific format should build a string themselves, using this class' accessor methods.
			 */
			public toString(): string;
			/**
			 * Returns a List of the InterfaceAddresses for this network interface. 1.6
			 */
			public getInterfaceAddresses(): java.util.IList<java.net.InterfaceAddress>;
			/**
			 * Returns an enumeration of all the sub-interfaces of this network interface. Sub-interfaces are also known as virtual interfaces.
			 */
			public getSubInterfaces(): java.util.IEnumeration<java.net.NetworkInterface>;
			/**
			 * Returns the parent NetworkInterface of this interface if this is a sub-interface, or null if it's a physical (non virtual) interface.
			 */
			public getParent(): java.net.NetworkInterface;
			/**
			 * Returns true if this network interface is up.
			 */
			public isUp(): boolean;
			/**
			 * Returns true if this network interface is a loopback interface.
			 */
			public isLoopback(): boolean;
			/**
			 * Returns true if this network interface is a point-to-point interface. (For example, a PPP connection using a modem.)
			 */
			public isPointToPoint(): boolean;
			/**
			 * Returns true if this network interface supports multicast.
			 */
			public supportsMulticast(): boolean;
			/**
			 * Returns the hardware address of the interface, if it has one, or null otherwise.
			 */
			public getHardwareAddress(): native.Array<number>;
			/**
			 * Returns the Maximum Transmission Unit (MTU) of this interface.
			 */
			public getMTU(): number;
			/**
			 * Returns true if this interface is a virtual interface (also called a sub-interface). Virtual interfaces are, on some systems, interfaces created as a child of a physical interface and given different settings (like address or MTU). Usually the name of the interface will the name of the parent followed by a colon (:) and a number identifying the child, since there can be several virtual interfaces attached to a single physical interface.
			 */
			public isVirtual(): boolean;
		}
		/**
		 * An IPv6 address. See InetAddress.
		 */
		export class Inet6Address extends java.net.InetAddress {
			static class: java.lang.Class<java.net.Inet6Address>;
			/**
			 * Constructs an IPv6 address according to the given host, addr and scope_id.
			 * @param host 
			 * @param addr 
			 * @param scope_id 
			 */
			public static getByAddress(host: string, addr: native.Array<number>, scope_id: number): java.net.Inet6Address;
			/**
			 * Gets an IPv6 address instance according to the given host, addr and nif. scope_id is set according to the given nif and the addr type (for example site-local or link-local).
			 * @param host 
			 * @param addr 
			 * @param nif 
			 */
			public static getByAddress(host: string, addr: native.Array<number>, nif: java.net.NetworkInterface): java.net.Inet6Address;
			public isAnyLocalAddress(): boolean;
			/**
			 * Returns whether this IPv6 address is an IPv4-compatible address or not. An IPv4-compatible address has the prefix ::/96 and is a deprecated and no-longer used equivalent of the modern IPv4-mapped IPv6 addresses.
			 */
			public isIPv4CompatibleAddress(): boolean;
			public isLinkLocalAddress(): boolean;
			public isLoopbackAddress(): boolean;
			public isMCGlobal(): boolean;
			public isMCLinkLocal(): boolean;
			public isMCNodeLocal(): boolean;
			public isMCOrgLocal(): boolean;
			public isMCSiteLocal(): boolean;
			public isMulticastAddress(): boolean;
			public isSiteLocalAddress(): boolean;
			/**
			 * Returns the scope id if this address is scoped to an interface, 0 otherwise.
			 */
			public getScopeId(): number;
			/**
			 * Returns the network interface if this address is instanced with a scoped network interface, null otherwise.
			 */
			public getScopedInterface(): java.net.NetworkInterface;
			public toString(): string;
			/**
			 * Equivalent to getByAddress(null, ipAddress). Handy for addresses with no associated hostname.
			 */
			static getByAddress(ipAddress: native.Array<number>): java.net.InetAddress;
			/**
			 * Returns an InetAddress corresponding to the given network-order bytes ipAddress and scopeId.
			 */
			static getByAddress(hostName: string, ipAddress: native.Array<number>): java.net.InetAddress;
		}
		/**
		 * Defines a factory which is responsible for creating a ContentHandler.
		 */
		interface IContentHandlerFactory {
			/**
			 * Creates a content handler to handle contentType.
			 * @param contentType 
			 */
			createContentHandler(contentType: string): java.net.ContentHandler;
		}
		/**
		 * Defines a scheme for mapping a filename type to a MIME content type. Mainly used by URLStreamHandler for determining the right content handler to handle the resource.
		 */
		export class FileNameMap implements java.net.IFileNameMap {
			constructor(implementation: java.net.IFileNameMap);
			/**
			 * Returns the MIME type (such as "text/plain") for the given filename, or null.
			 */
			public getContentTypeFor(filename: string): string;
		}
		/**
		 * A response cache entry. A CacheResponse object provides an InputStream to access the response body and a Map for the response headers. ResponseCache
		 */
		export class CacheResponse extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.CacheResponse>;
			/**
			 * Returns an InputStream to access the response body.
			 */
			public getBody(): java.io.InputStream;
			/**
			 * Returns an immutable Map which contains the response headers information. Note that URLConnection may need the original headers to be able to fully reconstruct the response. In particular, failure to provide a mapping from null to the original HTTP status line will prevent an HttpURLConnection from returning the correct response code. See URLConnection#getHeaderFields.
			 */
			public getHeaders(): java.util.IMap<string, java.util.IList<string>>;
		}
		/**
		 * A CookieStore object is a repository for cookies.
		 */
		export class CookieStore implements java.net.ICookieStore {
			constructor(implementation: java.net.ICookieStore);
			/**
			 * Saves a HTTP cookie to this store. This is called for every incoming HTTP response.
			 * @param uri 
			 * @param cookie 
			 */
			public add(uri: java.net.URI, cookie: java.net.HttpCookie): void;
			/**
			 * Retrieves cookies that match the specified URI. Return not expired cookies. For every outgoing HTTP request, this method will be called.
			 * @param uri 
			 */
			public get(uri: java.net.URI): java.util.IList<java.net.HttpCookie>;
			/**
			 * Get all cookies in cookie store which are not expired.
			 */
			public getCookies(): java.util.IList<java.net.HttpCookie>;
			/**
			 * Get a set of URIs, which is composed of associated URI with all the cookies in the store.
			 */
			public getURIs(): java.util.IList<java.net.URI>;
			/**
			 * Remove the specified cookie from the store.
			 * @param uri 
			 * @param cookie 
			 */
			public remove(uri: java.net.URI, cookie: java.net.HttpCookie): boolean;
			/**
			 * Clear this cookie store.
			 */
			public removeAll(): boolean;
		}
		/**
		 * This exception is thrown when a timeout expired on a socket read or accept operation.
		 */
		export class SocketTimeoutException extends java.io.InterruptedIOException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.SocketTimeoutException>;
		}
		/**
		 * This interface defines a factory for socket implementations.
		 */
		interface ISocketImplFactory {
			/**
			 * Creates a new SocketImpl instance.
			 */
			createSocketImpl(): java.net.SocketImpl;
		}
		/**
		 * Implements FileNameMap in terms of libcore.net.MimeUtils.
		 */
		export class DefaultFileNameMap extends java.lang.Object implements java.net.IFileNameMap {
			static class: java.lang.Class<java.net.DefaultFileNameMap>;
			public getContentTypeFor(filename: string): string;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class NetPermission extends java.security.BasicPermission {
			constructor(name: string);
			constructor(name: string, actions: string);
			static class: java.lang.Class<java.net.NetPermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * This class is used to decode a string which is encoded in the application/x-www-form-urlencoded MIME content type.
		 */
		export class URLDecoder extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.URLDecoder>;
			/**
			 * Decodes the argument which is assumed to be encoded in the x-www-form-urlencoded MIME content type.
			 * @param s 
			 */
			public static decode(s: string): string;
			/**
			 * Decodes the argument which is assumed to be encoded in the x-www-form-urlencoded MIME content type using the specified encoding scheme.
			 * @param s 
			 * @param encoding 
			 */
			public static decode(s: string, encoding: string): string;
		}
		/**
		 * An opaque key-value value pair held by an HTTP client to permit a stateful session with an HTTP server. This class parses cookie headers for all three commonly used HTTP cookie specifications:
		 */
		export class HttpCookie extends java.lang.Object implements java.lang.ICloneable {
			/**
			 * Creates a new cookie.
			 * @param name a non-empty string that contains only printable ASCII, no
			 * @param value an opaque value from the HTTP server.
			 */
			constructor(name: string, value: string);
			static class: java.lang.Class<java.net.HttpCookie>;
			/**
			 * Returns true if host matches the domain pattern domain.
			 * @param domainPattern a host name (like {@code android.com} or {@code
			 * @param host the host name or IP address from an HTTP request.
			 */
			public static domainMatches(domainPattern: string, host: string): boolean;
			/**
			 * Returns true if cookie should be sent to or accepted from uri with respect to the cookie's path. Cookies match by directory prefix: URI "/foo" matches cookies "/foo", "/foo/" and "/foo/bar", but not "/" or "/foobar".
			 */
			static pathMatches(cookie: java.net.HttpCookie, uri: java.net.URI): boolean;
			/**
			 * Returns true if cookie should be sent to uri with respect to the cookie's secure attribute. Secure cookies should not be sent in insecure (ie. non-HTTPS) requests.
			 */
			static secureMatches(cookie: java.net.HttpCookie, uri: java.net.URI): boolean;
			/**
			 * Returns true if cookie should be sent to uri with respect to the cookie's port list.
			 */
			static portMatches(cookie: java.net.HttpCookie, uri: java.net.URI): boolean;
			/**
			 * Constructs a cookie from a string. The string should comply with set-cookie or set-cookie2 header format as specified in <a href="http://www.ietf.org/rfc/rfc2965.txt">RFC 2965</a>. Since set-cookies2 syntax allows more than one cookie definitions in one header, the returned object is a list.
			 * @param header 
			 */
			public static parse(header: string): java.util.IList<java.net.HttpCookie>;
			/**
			 * Returns the Comment attribute.
			 */
			public getComment(): string;
			/**
			 * Returns the value of CommentURL attribute.
			 */
			public getCommentURL(): string;
			/**
			 * Returns the Discard attribute.
			 */
			public getDiscard(): boolean;
			/**
			 * Returns the Domain attribute.
			 */
			public getDomain(): string;
			/**
			 * Returns the Max-Age attribute, in delta-seconds.
			 */
			public getMaxAge(): any;
			/**
			 * Returns the name of this cookie.
			 */
			public getName(): string;
			/**
			 * Returns the Path attribute. This cookie is visible to all subpaths.
			 */
			public getPath(): string;
			/**
			 * Returns the Port attribute, usually containing comma-separated port numbers. A null port indicates that the cookie may be sent to any port. The empty string indicates that the cookie should only be sent to the port of the originating request.
			 */
			public getPortlist(): string;
			/**
			 * Returns the Secure attribute.
			 */
			public getSecure(): boolean;
			/**
			 * Returns the value of this cookie.
			 */
			public getValue(): string;
			/**
			 * Returns the version of this cookie.
			 */
			public getVersion(): number;
			/**
			 * Returns true if this cookie's Max-Age is 0.
			 */
			public hasExpired(): boolean;
			/**
			 * Set the Comment attribute of this cookie.
			 */
			public setComment(comment: string): void;
			/**
			 * Set the CommentURL attribute of this cookie.
			 */
			public setCommentURL(commentURL: string): void;
			/**
			 * Set the Discard attribute of this cookie.
			 */
			public setDiscard(discard: boolean): void;
			/**
			 * Set the Domain attribute of this cookie. HTTP clients send cookies only to matching domains.
			 */
			public setDomain(pattern: string): void;
			/**
			 * Sets the Max-Age attribute of this cookie.
			 */
			public setMaxAge(deltaSeconds: number): void;
			/**
			 * Set the Path attribute of this cookie. HTTP clients send cookies to this path and its subpaths.
			 */
			public setPath(path: string): void;
			/**
			 * Set the Port attribute of this cookie.
			 */
			public setPortlist(portList: string): void;
			/**
			 * Sets the Secure attribute of this cookie.
			 */
			public setSecure(secure: boolean): void;
			/**
			 * Sets the opaque value of this cookie.
			 */
			public setValue(value: string): void;
			/**
			 * Sets the Version attribute of the cookie.
			 */
			public setVersion(v: number): void;
			public clone(): any;
			/**
			 * Returns true if object is a cookie with the same domain, name and path. Domain and name use case-insensitive comparison; path uses a case-sensitive comparison.
			 */
			public equals(object: any): boolean;
			/**
			 * Returns the hash code of this HTTP cookie: <pre> name.toLowerCase(Locale.US).hashCode() + (domain == null ? 0 : domain.toLowerCase(Locale.US).hashCode()) + (path == null ? 0 : path.hashCode()) </pre>
			 */
			public hashCode(): number;
			/**
			 * Returns a string representing this cookie in the format used by the Cookie header line in an HTTP request.
			 */
			public toString(): string;
		}
		export module HttpCookie {
			export class CookieParser extends java.lang.Object {
				static class: java.lang.Class<java.net.HttpCookie.CookieParser>;
				public parse(): java.util.IList<java.net.HttpCookie>;
			}
		}
		/**
		 * An Internet Protocol (IP) address. This can be either an IPv4 address or an IPv6 address, and in practice you'll have an instance of either Inet4Address or Inet6Address (this class cannot be instantiated directly). Most code does not need to distinguish between the two families, and should use InetAddress.
		 */
		export class InetAddress extends java.lang.Object implements java.io.ISerializable {
			static class: java.lang.Class<java.net.InetAddress>;
			/**
			 * Compares this InetAddress instance against the specified address in obj. Two addresses are equal if their address byte arrays have the same length and if the bytes in the arrays are equal.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Returns the IP address represented by this InetAddress instance as a byte array. The elements are in network order (the highest order address byte is in the zeroth element).
			 */
			public getAddress(): native.Array<number>;
			/**
			 * Gets all IP addresses associated with the given host identified by name or literal IP address. The IP address is resolved by the configured name service. If the host name is empty or null an UnknownHostException is thrown. If the host name is a literal IP address string an array with the corresponding single InetAddress is returned.
			 * @param host the hostname or literal IP string to be resolved.
			 */
			public static getAllByName(host: string): native.Array<java.net.InetAddress>;
			/**
			 * Returns the address of a host according to the given host string name host. The host string may be either a machine name or a dotted string IP address. If the latter, the hostName field is determined upon demand. host can be null which means that an address of the loopback interface is returned.
			 * @param host 
			 */
			public static getByName(host: string): java.net.InetAddress;
			/**
			 * Returns the numeric representation of this IP address (such as "127.0.0.1").
			 */
			public getHostAddress(): string;
			/**
			 * Returns the host name corresponding to this IP address. This may or may not be a fully-qualified name. If the IP address could not be resolved, the numeric representation is returned instead (see #getHostAddress).
			 */
			public getHostName(): string;
			/**
			 * Returns the fully qualified hostname corresponding to this IP address.
			 */
			public getCanonicalHostName(): string;
			/**
			 * Returns an InetAddress for the local host if possible, or the loopback address otherwise. This method works by getting the hostname, performing a DNS lookup, and then taking the first returned address. For devices with multiple network interfaces and/or multiple addresses per interface, this does not necessarily return the InetAddress you want.
			 */
			public static getLocalHost(): java.net.InetAddress;
			/**
			 * Gets the hashcode of the represented IP address.
			 */
			public hashCode(): number;
			/**
			 * Returns a string containing the host name (if available) and host address. For example: "www.google.com/74.125.224.115" or "/127.0.0.1".
			 */
			public toString(): string;
			/**
			 * Returns whether this is the IPv6 unspecified wildcard address :: or the IPv4 "any" address, 0.0.0.0.
			 */
			public isAnyLocalAddress(): boolean;
			/**
			 * Returns whether this address is a link-local address or not.
			 */
			public isLinkLocalAddress(): boolean;
			/**
			 * Returns whether this address is a loopback address or not.
			 */
			public isLoopbackAddress(): boolean;
			/**
			 * Returns whether this address is a global multicast address or not.
			 */
			public isMCGlobal(): boolean;
			/**
			 * Returns whether this address is a link-local multicast address or not.
			 */
			public isMCLinkLocal(): boolean;
			/**
			 * Returns whether this address is a node-local multicast address or not.
			 */
			public isMCNodeLocal(): boolean;
			/**
			 * Returns whether this address is a organization-local multicast address or not.
			 */
			public isMCOrgLocal(): boolean;
			/**
			 * Returns whether this address is a site-local multicast address or not.
			 */
			public isMCSiteLocal(): boolean;
			/**
			 * Returns whether this address is a multicast address or not.
			 */
			public isMulticastAddress(): boolean;
			/**
			 * Returns whether this address is a site-local address or not.
			 */
			public isSiteLocalAddress(): boolean;
			/**
			 * Tries to reach this InetAddress. This method first tries to use ICMP <i>(ICMP ECHO REQUEST)</i>, falling back to a TCP connection on port 7 (Echo) of the remote host.
			 * @param timeout 
			 */
			public isReachable(timeout: number): boolean;
			/**
			 * Tries to reach this InetAddress. This method first tries to use ICMP <i>(ICMP ECHO REQUEST)</i>, falling back to a TCP connection on port 7 (Echo) of the remote host.
			 * @param networkInterface 
			 * @param ttl 
			 * @param timeout 
			 */
			public isReachable(networkInterface: java.net.NetworkInterface, ttl: number, timeout: number): boolean;
			/**
			 * Equivalent to getByAddress(null, ipAddress). Handy for addresses with no associated hostname.
			 */
			public static getByAddress(ipAddress: native.Array<number>): java.net.InetAddress;
			/**
			 * Returns an InetAddress corresponding to the given network-order bytes ipAddress and scopeId.
			 */
			public static getByAddress(hostName: string, ipAddress: native.Array<number>): java.net.InetAddress;
		}
		/**
		 * This class provides a way to manage cookies with a HTTP protocol handler.
		 */
		export class CookieHandler extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.CookieHandler>;
			/**
			 * Returns the system-wide cookie handler or null if not set.
			 */
			public static getDefault(): java.net.CookieHandler;
			/**
			 * Sets the system-wide cookie handler.
			 */
			public static setDefault(cHandler: java.net.CookieHandler): void;
			/**
			 * Gets all cookies for a specific URI from the cookie cache.
			 * @param uri 
			 * @param requestHeaders 
			 */
			public get(uri: java.net.URI, requestHeaders: java.util.IMap<string, java.util.IList<string>>): java.util.IMap<string, java.util.IList<string>>;
			/**
			 * Sets all cookies of a specific URI in the responseHeaders into the cookie cache.
			 * @param uri 
			 * @param responseHeaders 
			 */
			public put(uri: java.net.URI, responseHeaders: java.util.IMap<string, java.util.IList<string>>): void;
		}
		/**
		 * This class implements a multicast socket for sending and receiving IP multicast datagram packets.
		 */
		export class MulticastSocket extends java.net.DatagramSocket {
			/**
			 * Constructs a multicast socket, bound to any available port on the local host.
			 */
			constructor();
			/**
			 * Constructs a multicast socket, bound to the specified port on the local host.
			 */
			constructor(port: number);
			/**
			 * Constructs a MulticastSocket bound to the address and port specified by localAddress, or an unbound MulticastSocket if localAddress == null.
			 */
			constructor(localAddress: java.net.SocketAddress);
			static class: java.lang.Class<java.net.MulticastSocket>;
			/**
			 * Returns an address of the outgoing network interface used by this socket. To avoid inherent unpredictability, new code should use #getNetworkInterface instead.
			 */
			public getInterface(): java.net.InetAddress;
			/**
			 * Returns the outgoing network interface used by this socket.
			 */
			public getNetworkInterface(): java.net.NetworkInterface;
			/**
			 * Returns the time-to-live (TTL) for multicast packets sent on this socket.
			 */
			public getTimeToLive(): number;
			/**
			 * Returns the time-to-live (TTL) for multicast packets sent on this socket.
			 */
			public getTTL(): number;
			/**
			 * Adds this socket to the specified multicast group. A socket must join a group before data may be received. A socket may be a member of multiple groups but may join any group only once.
			 * @param groupAddr 
			 */
			public joinGroup(groupAddr: java.net.InetAddress): void;
			/**
			 * Adds this socket to the specified multicast group. A socket must join a group before data may be received. A socket may be a member of multiple groups but may join any group only once.
			 * @param groupAddress 
			 * @param netInterface 
			 */
			public joinGroup(groupAddress: java.net.SocketAddress, netInterface: java.net.NetworkInterface): void;
			/**
			 * Removes this socket from the specified multicast group.
			 * @param groupAddr 
			 */
			public leaveGroup(groupAddr: java.net.InetAddress): void;
			/**
			 * Removes this socket from the specified multicast group.
			 * @param groupAddress 
			 * @param netInterface 
			 */
			public leaveGroup(groupAddress: java.net.SocketAddress, netInterface: java.net.NetworkInterface): void;
			/**
			 * Sends the given packet on this socket, using the given ttl. This method is deprecated because it modifies the TTL socket option for this socket twice on each call.
			 */
			public send(packet: java.net.DatagramPacket, ttl: number): void;
			/**
			 * Sets the outgoing network interface used by this socket. The interface used is the first interface found to have the given address. To avoid inherent unpredictability, new code should use #getNetworkInterface instead.
			 */
			public setInterface(address: java.net.InetAddress): void;
			/**
			 * Sets the outgoing network interface used by this socket to the given networkInterface.
			 */
			public setNetworkInterface(networkInterface: java.net.NetworkInterface): void;
			/**
			 * Sets the time-to-live (TTL) for multicast packets sent on this socket. Valid TTL values are between 0 and 255 inclusive.
			 */
			public setTimeToLive(ttl: number): void;
			/**
			 * Sets the time-to-live (TTL) for multicast packets sent on this socket. Valid TTL values are between 0 and 255 inclusive.
			 */
			public setTTL(ttl: number): void;
			createSocket(aPort: number, addr: java.net.InetAddress): void;
			/**
			 * Returns true if multicast loopback is <i>disabled</i>. See SocketOptions#IP_MULTICAST_LOOP, and note that the sense of this is the opposite of the underlying Unix IP_MULTICAST_LOOP.
			 */
			public getLoopbackMode(): boolean;
			/**
			 * Disables multicast loopback if disable == true. See SocketOptions#IP_MULTICAST_LOOP, and note that the sense of this is the opposite of the underlying Unix IP_MULTICAST_LOOP.
			 */
			public setLoopbackMode(disable: boolean): void;
			/**
			 * Sends a packet over this socket.
			 * @param pack 
			 */
			send(pack: java.net.DatagramPacket): void;
		}
		/**
		 * This PortUnreachableException will be thrown if an ICMP_Port_Unreachable message has been received.
		 */
		export class PortUnreachableException extends java.net.SocketException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.PortUnreachableException>;
		}
		/**
		 * A secure cache response represents data which is originally retrieved over a secure connection. Such a connection can be secured by using a cryptographic protocol like TLS or SSL.
		 */
		export class SecureCacheResponse extends java.net.CacheResponse {
			/**
			 * Creates a new instance of this class.
			 */
			constructor();
			static class: java.lang.Class<java.net.SecureCacheResponse>;
			/**
			 * Gets the cipher suite string on the connection which is originally used to retrieve the network resource.
			 */
			public getCipherSuite(): string;
			/**
			 * Gets the local certificate chain. When the original connection retrieved the resource data, this certificate chain was sent to the server during handshaking process. This method only takes effect when certificate-based cipher suite is enabled.
			 */
			public getLocalCertificateChain(): java.util.IList<java.security.cert.Certificate>;
			/**
			 * Gets the cached server's certificate chain. As part of defining the session, the certificate chain was established when the original connection retrieved network resource. This method can only be invoked when certificated-based cipher suite is enabled. Otherwise, it throws an SSLPeerUnverifiedException.
			 */
			public getServerCertificateChain(): java.util.IList<java.security.cert.Certificate>;
			/**
			 * Gets the server's principle. When the original connection retrieved network resource, the principle was established when defining the session.
			 */
			public getPeerPrincipal(): java.security.IPrincipal;
			/**
			 * Gets the local principle that the original connection sent to the server. When the original connection fetched the network resource, the principle was sent to the server during handshaking process.
			 */
			public getLocalPrincipal(): java.security.IPrincipal;
		}
		/**
		 * Is thrown if no appropriate ContentHandler could be found for a particular service requested by the URL connection. This could be happened if there is an invalid MIME type or the application wants to send data over a read-only connection.
		 */
		export class UnknownServiceException extends java.io.IOException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.UnknownServiceException>;
		}
		/**
		 * Defines an interface for socket implementations to get and set socket options. It is implemented by the classes SocketImpl and DatagramSocketImpl.
		 */
		interface ISocketOptions {
			/**
			 * Gets the value for the specified socket option.
			 * @param optID 
			 */
			getOption(optID: number): any;
			/**
			 * Sets the value of the specified socket option.
			 * @param optID 
			 * @param val 
			 */
			setOption(optID: number, val: any): void;
		}
		export module ISocketOptions {
			/**
			 * Number of seconds to wait when closing a socket if there is still some buffered data to be sent.
			 */
			var SO_LINGER: number;
			/**
			 * Integer timeout in milliseconds for blocking accept or read/receive operations (but not write/send operations). A timeout of 0 means no timeout. Negative timeouts are not allowed.
			 */
			var SO_TIMEOUT: number;
			/**
			 * This boolean option specifies whether data is sent immediately on this socket. As a side-effect this could lead to low packet efficiency. The socket implementation uses the Nagle's algorithm to try to reach a higher packet efficiency if this option is disabled.
			 */
			var TCP_NODELAY: number;
			/**
			 * This is an IPv4-only socket option whose functionality is subsumed by #IP_MULTICAST_IF and not implemented on Android.
			 */
			var IP_MULTICAST_IF: number;
			/**
			 * This option does not correspond to any Unix socket option and is not implemented on Android.
			 */
			var SO_BINDADDR: number;
			/**
			 * This boolean option specifies whether a reuse of a local address is allowed even if another socket is not yet removed by the operating system. It's only available on a MulticastSocket.
			 */
			var SO_REUSEADDR: number;
			/**
			 * The size in bytes of a socket's send buffer. This must be an integer greater than 0. This is a hint to the kernel; the kernel may use a larger buffer.
			 */
			var SO_SNDBUF: number;
			/**
			 * The size in bytes of a socket's receive buffer. This must be an integer greater than 0. This is a hint to the kernel; the kernel may use a larger buffer.
			 */
			var SO_RCVBUF: number;
			/**
			 * This boolean option specifies whether the kernel sends keepalive messages.
			 */
			var SO_KEEPALIVE: number;
			/**
			 * This integer option specifies the value for the type-of-service field of the IPv4 header, or the traffic class field of the IPv6 header. These correspond to the IP_TOS and IPV6_TCLASS socket options. These may be ignored by the underlying OS. Values must be between 0 and 255 inclusive.
			 */
			var IP_TOS: number;
			/**
			 * This boolean option specifies whether the local loopback of multicast packets is enabled or disabled. This option is enabled by default on multicast sockets. Note that the sense of this option in Java is the <i>opposite</i> of the underlying Unix IP_MULTICAST_LOOP. See MulticastSocket#setLoopbackMode.
			 */
			var IP_MULTICAST_LOOP: number;
			/**
			 * This boolean option can be used to enable broadcasting on datagram sockets.
			 */
			var SO_BROADCAST: number;
			/**
			 * This boolean option specifies whether sending TCP urgent data is supported on this socket or not.
			 */
			var SO_OOBINLINE: number;
			/**
			 * This integer option sets the outgoing interface for multicast packets using an interface index.
			 */
			var IP_MULTICAST_IF2: number;
		}
		/**
		 * An in-memory cookie store.
		 */
		export class CookieStoreImpl extends java.lang.Object implements java.net.ICookieStore {
			static class: java.lang.Class<java.net.CookieStoreImpl>;
			public add(uri: java.net.URI, cookie: java.net.HttpCookie): void;
			public get(uri: java.net.URI): java.util.IList<java.net.HttpCookie>;
			public getCookies(): java.util.IList<java.net.HttpCookie>;
			public getURIs(): java.util.IList<java.net.URI>;
			public remove(uri: java.net.URI, cookie: java.net.HttpCookie): boolean;
			public removeAll(): boolean;
		}
		/**
		 * Defines a factory which creates an URLStreamHandler for a specified protocol. It is used by the class URL.
		 */
		export class URLStreamHandlerFactory implements java.net.IURLStreamHandlerFactory {
			constructor(implementation: java.net.IURLStreamHandlerFactory);
			/**
			 * Creates a new URLStreamHandler instance for the given protocol.
			 * @param protocol 
			 */
			public createURLStreamHandler(protocol: string): java.net.URLStreamHandler;
		}
		/**
		 * CookiePolicy has three pre-defined policy. They are ACCEPT_ALL, ACCEPT_NONE and ACCEPT_ORIGINAL_SERVER respectively. They are used to decide which cookies should be accepted and which should not be.
		 */
		export class CookiePolicy implements java.net.ICookiePolicy {
			constructor(implementation: java.net.ICookiePolicy);
			/**
			 * A pre-defined policy, accepts all cookies.
			 */
			static ACCEPT_ALL: java.net.ICookiePolicy;
			/**
			 * A pre-defined policy, accepts no cookies at all.
			 */
			static ACCEPT_NONE: java.net.ICookiePolicy;
			/**
			 * A pre-defined policy, only accepts cookies from original server.
			 */
			static ACCEPT_ORIGINAL_SERVER: java.net.ICookiePolicy;
			/**
			 * This method is used to determine whether or not the specified cookie should be accepted.
			 * @param uri 
			 * @param cookie 
			 */
			public shouldAccept(uri: java.net.URI, cookie: java.net.HttpCookie): boolean;
		}
		/**
		 * A URISyntaxException will be thrown if some information could not be parsed while creating a URI.
		 */
		export class URISyntaxException extends java.lang.Exception {
			/**
			 * Constructs a new URISyntaxException instance containing the string that caused the exception, a description of the problem and the index at which the error occurred.
			 * @param input 
			 * @param reason 
			 * @param index 
			 */
			constructor(input: string, reason: string, index: number);
			/**
			 * Constructs a new URISyntaxException instance containing the string that caused the exception and a description of the problem.
			 * @param input 
			 * @param reason 
			 */
			constructor(input: string, reason: string);
			static class: java.lang.Class<java.net.URISyntaxException>;
			/**
			 * Gets the index at which the syntax error was found or -1 if the index is unknown/unavailable.
			 */
			public getIndex(): number;
			/**
			 * Gets a description of the syntax error.
			 */
			public getReason(): string;
			/**
			 * Gets the initial string that contains an invalid syntax.
			 */
			public getInput(): string;
			/**
			 * Gets a description of the exception, including the reason, the string that caused the syntax error and the position of the syntax error if available.
			 */
			public getMessage(): string;
		}
		/**
		 * Defines a scheme for mapping a filename type to a MIME content type. Mainly used by URLStreamHandler for determining the right content handler to handle the resource.
		 */
		interface IFileNameMap {
			/**
			 * Returns the MIME type (such as "text/plain") for the given filename, or null.
			 */
			getContentTypeFor(filename: string): string;
		}
		/**
		 * A Uniform Resource Identifier that identifies an abstract or physical resource, as specified by <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>.
		 */
		export class URI extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Creates a new URI instance by parsing spec.
			 * @param spec a URI whose illegal characters have all been encoded.
			 */
			constructor(spec: string);
			/**
			 * Creates a new URI instance of the given unencoded component parts.
			 * @param scheme the URI scheme, or null for a non-absolute URI.
			 * @param schemeSpecificPart 
			 * @param fragment 
			 */
			constructor(scheme: string, schemeSpecificPart: string, fragment: string);
			/**
			 * Creates a new URI instance of the given unencoded component parts.
			 * @param scheme the URI scheme, or null for a non-absolute URI.
			 * @param userInfo 
			 * @param host 
			 * @param port 
			 * @param path 
			 * @param query 
			 * @param fragment 
			 */
			constructor(scheme: string, userInfo: string, host: string, port: number, path: string, query: string, fragment: string);
			/**
			 * Creates a new URI instance of the given unencoded component parts.
			 * @param scheme the URI scheme, or null for a non-absolute URI.
			 * @param host 
			 * @param path 
			 * @param fragment 
			 */
			constructor(scheme: string, host: string, path: string, fragment: string);
			/**
			 * Creates a new URI instance of the given unencoded component parts.
			 * @param scheme the URI scheme, or null for a non-absolute URI.
			 * @param authority 
			 * @param path 
			 * @param query 
			 * @param fragment 
			 */
			constructor(scheme: string, authority: string, path: string, query: string, fragment: string);
			static class: java.lang.Class<java.net.URI>;
			/**
			 * Compares this URI with the given argument uri. This method will return a negative value if this URI instance is less than the given argument and a positive value if this URI instance is greater than the given argument. The return value 0 indicates that the two instances represent the same URI. To define the order the single parts of the URI are compared with each other. String components will be ordered in the natural case-sensitive way. A hierarchical URI is less than an opaque URI and if one part is null the URI with the undefined part is less than the other one.
			 * @param uri 
			 */
			public compareTo(uri: java.net.URI): number;
			/**
			 * Returns the URI formed by parsing uri. This method behaves identically to the string constructor but throws a different exception on failure. The constructor fails with a checked URISyntaxException; this method fails with an unchecked IllegalArgumentException.
			 */
			public static create(uri: string): java.net.URI;
			public equals(o: any): boolean;
			/**
			 * Returns the scheme of this URI, or null if this URI has no scheme. This is also known as the protocol.
			 */
			public getScheme(): string;
			/**
			 * Returns the decoded scheme-specific part of this URI, or null if this URI has no scheme-specific part.
			 */
			public getSchemeSpecificPart(): string;
			/**
			 * Returns the encoded scheme-specific part of this URI, or null if this URI has no scheme-specific part.
			 */
			public getRawSchemeSpecificPart(): string;
			/**
			 * Returns the decoded authority part of this URI, or null if this URI has no authority.
			 */
			public getAuthority(): string;
			/**
			 * Returns the encoded authority of this URI, or null if this URI has no authority.
			 */
			public getRawAuthority(): string;
			/**
			 * Returns the decoded user info of this URI, or null if this URI has no user info.
			 */
			public getUserInfo(): string;
			/**
			 * Returns the encoded user info of this URI, or null if this URI has no user info.
			 */
			public getRawUserInfo(): string;
			/**
			 * Returns the host of this URI, or null if this URI has no host.
			 */
			public getHost(): string;
			/**
			 * Returns the port number of this URI, or -1 if this URI has no explicit port.
			 */
			public getPort(): number;
			/**
			 * Returns the decoded path of this URI, or null if this URI has no path.
			 */
			public getPath(): string;
			/**
			 * Returns the encoded path of this URI, or null if this URI has no path.
			 */
			public getRawPath(): string;
			/**
			 * Returns the decoded query of this URI, or null if this URI has no query.
			 */
			public getQuery(): string;
			/**
			 * Returns the encoded query of this URI, or null if this URI has no query.
			 */
			public getRawQuery(): string;
			/**
			 * Returns the decoded fragment of this URI, or null if this URI has no fragment.
			 */
			public getFragment(): string;
			/**
			 * Gets the encoded fragment of this URI, or null if this URI has no fragment.
			 */
			public getRawFragment(): string;
			public hashCode(): number;
			/**
			 * Returns true if this URI is absolute, which means that a scheme is defined.
			 */
			public isAbsolute(): boolean;
			/**
			 * Returns true if this URI is opaque. Opaque URIs are absolute and have a scheme-specific part that does not start with a slash character. All parts except scheme, scheme-specific and fragment are undefined.
			 */
			public isOpaque(): boolean;
			/**
			 * Normalizes the path part of this URI.
			 */
			public normalize(): java.net.URI;
			/**
			 * Tries to parse the authority component of this URI to divide it into the host, port, and user-info. If this URI is already determined as a ServerAuthority this instance will be returned without changes.
			 */
			public parseServerAuthority(): java.net.URI;
			/**
			 * Makes the given URI relative to a relative URI against the URI represented by this instance.
			 * @param relative 
			 */
			public relativize(relative: java.net.URI): java.net.URI;
			/**
			 * Resolves the given URI relative against the URI represented by this instance.
			 * @param relative 
			 */
			public resolve(relative: java.net.URI): java.net.URI;
			/**
			 * Creates a new URI instance by parsing the given string relative and resolves the created URI against the URI represented by this instance.
			 * @param relative 
			 */
			public resolve(relative: string): java.net.URI;
			/**
			 * Returns the textual string representation of this URI instance using the US-ASCII encoding.
			 */
			public toASCIIString(): string;
			/**
			 * Returns the encoded URI.
			 */
			public toString(): string;
			/**
			 * Converts this URI instance to a URL.
			 */
			public toURL(): java.net.URL;
		}
		export module URI {
			/**
			 * Encodes the unescaped characters of s that are not permitted. Permitted characters are: <ul> <li>Unreserved characters in <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>. <li>extraOkayChars, <li>non-ASCII, non-control, non-whitespace characters </ul>
			 */
			export class PartEncoder {
				static class: java.lang.Class<java.net.URI.PartEncoder>;
				protected isRetained(c: string): boolean;
			}
		}
		/**
		 * A Uniform Resource Locator that identifies the location of an Internet resource as specified by <a href="http://www.ietf.org/rfc/rfc1738.txt">RFC 1738</a>.
		 */
		export class URL extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Creates a new URL instance by parsing spec.
			 */
			constructor(spec: string);
			/**
			 * Creates a new URL by resolving spec relative to context.
			 * @param context the URL to which {@code spec} is relative, or null for
			 * @param spec 
			 */
			constructor(context: java.net.URL, spec: string);
			/**
			 * Creates a new URL by resolving spec relative to context.
			 * @param context the URL to which {@code spec} is relative, or null for
			 * @param spec handler the stream handler for this URL, or null for the
			 * @param handler 
			 */
			constructor(context: java.net.URL, spec: string, handler: java.net.URLStreamHandler);
			/**
			 * Creates a new URL of the given component parts. The URL uses the protocol's default port.
			 */
			constructor(protocol: string, host: string, file: string);
			/**
			 * Creates a new URL of the given component parts. The URL uses the protocol's default port.
			 * @param protocol host the host name or IP address of the new URL.
			 * @param host port the port, or {@code -1} for the protocol's default port.
			 * @param port file the name of the resource.
			 * @param file 
			 */
			constructor(protocol: string, host: string, port: number, file: string);
			/**
			 * Creates a new URL of the given component parts. The URL uses the protocol's default port.
			 * @param protocol host the host name or IP address of the new URL.
			 * @param host port the port, or {@code -1} for the protocol's default port.
			 * @param port file the name of the resource.
			 * @param file handler the stream handler for this URL, or null for the
			 * @param handler 
			 */
			constructor(protocol: string, host: string, port: number, file: string, handler: java.net.URLStreamHandler);
			static class: java.lang.Class<java.net.URL>;
			/**
			 * Sets the stream handler factory for this VM.
			 */
			public static setURLStreamHandlerFactory(factory: java.net.IURLStreamHandlerFactory): void;
			fixURL(fixHost: boolean): void;
			/**
			 * Sets the properties of this URL using the provided arguments. Only a URLStreamHandler can use this method to set fields of the existing URL instance. A URL is generally constant.
			 */
			protected set(protocol: string, host: string, port: number, file: string, ref: string): void;
			/**
			 * Returns true if this URL equals o. URLs are equal if they have the same protocol, host, port, file, and reference.
			 */
			public equals(o: any): boolean;
			/**
			 * Returns true if this URL refers to the same resource as otherURL. All URL components except the reference field are compared.
			 */
			public sameFile(otherURL: java.net.URL): boolean;
			public hashCode(): number;
			/**
			 * Sets the receiver's stream handler to one which is appropriate for its protocol.
			 */
			setupStreamHandler(): void;
			/**
			 * Returns the content of the resource which is referred by this URL. By default this returns an InputStream, or null if the content type of the response is unknown.
			 */
			public getContent(): any;
			/**
			 * Equivalent to openConnection().getContent(types).
			 */
			public getContent(types: native.Array<java.lang.Class<any>>): any;
			/**
			 * Equivalent to openConnection().getInputStream(types).
			 */
			public openStream(): java.io.InputStream;
			/**
			 * Returns a new connection to the resource referred to by this URL.
			 */
			public openConnection(): java.net.URLConnection;
			/**
			 * Returns a new connection to the resource referred to by this URL.
			 * @param proxy the proxy through which the connection will be established.
			 */
			public openConnection(proxy: java.net.Proxy): java.net.URLConnection;
			/**
			 * Returns the URI equivalent to this URL.
			 */
			public toURI(): java.net.URI;
			/**
			 * Returns a string containing a concise, human-readable representation of this URL. The returned string is the same as the result of the method toExternalForm().
			 */
			public toString(): string;
			/**
			 * Returns a string containing a concise, human-readable representation of this URL.
			 */
			public toExternalForm(): string;
			/**
			 * Returns the protocol of this URL like "http" or "file". This is also known as the scheme. The returned string is lower case.
			 */
			public getProtocol(): string;
			/**
			 * Returns the authority part of this URL, or null if this URL has no authority.
			 */
			public getAuthority(): string;
			/**
			 * Returns the user info of this URL, or null if this URL has no user info.
			 */
			public getUserInfo(): string;
			/**
			 * Returns the host name or IP address of this URL.
			 */
			public getHost(): string;
			/**
			 * Returns the port number of this URL or -1 if this URL has no explicit port.
			 */
			public getPort(): number;
			/**
			 * Returns the default port number of the protocol used by this URL. If no default port is defined by the protocol or the URLStreamHandler, -1 will be returned.
			 */
			public getDefaultPort(): number;
			/**
			 * Returns the file of this URL.
			 */
			public getFile(): string;
			/**
			 * Returns the path part of this URL.
			 */
			public getPath(): string;
			/**
			 * Returns the query part of this URL, or null if this URL has no query.
			 */
			public getQuery(): string;
			/**
			 * Returns the value of the reference part of this URL, or null if this URL has no reference part. This is also known as the fragment.
			 */
			public getRef(): string;
			/**
			 * Sets the properties of this URL using the provided arguments. Only a URLStreamHandler can use this method to set fields of the existing URL instance. A URL is generally constant.
			 */
			protected set(protocol: string, host: string, port: number, authority: string, userInfo: string, path: string, query: string, ref: string): void;
		}
		/**
		 * This interface defines a factory for datagram socket implementations. It is used by the class DatagramSocket to create a new datagram socket implementation.
		 */
		export class DatagramSocketImplFactory implements java.net.IDatagramSocketImplFactory {
			constructor(implementation: java.net.IDatagramSocketImplFactory);
			/**
			 * Creates a new DatagramSocketImpl instance.
			 */
			public createDatagramSocketImpl(): java.net.DatagramSocketImpl;
		}
		/**
		 * This class represents proxy server settings. A created instance of Proxy stores a type and an address and is immutable. There are three types of proxies: <ul> <li>DIRECT</li> <li>HTTP</li> <li>SOCKS</li></ul
		 */
		export class Proxy extends java.lang.Object {
			/**
			 * Creates a new Proxy instance. SocketAddress must NOT be null when type is either Proxy.Type.HTTP or Proxy.Type.SOCKS. To create a Proxy instance representing the proxy type Proxy.Type.DIRECT, use Proxy.NO_PROXY instead of this constructor.
			 * @param type 
			 * @param sa 
			 */
			constructor(type: java.net.Proxy.Type, sa: java.net.SocketAddress);
			/**
			 * Represents the proxy type setting Proxy.Type.DIRECT. It tells protocol handlers that there is no proxy to be used. The address is set to null.
			 */
			static NO_PROXY: java.net.Proxy;
			static class: java.lang.Class<java.net.Proxy>;
			/**
			 * Gets the type of this Proxy instance.
			 */
			public type(): java.net.Proxy.Type;
			/**
			 * Gets the address of this Proxy instance.
			 */
			public address(): java.net.SocketAddress;
			/**
			 * Gets a textual representation of this Proxy instance. The string includes the two parts type.toString() and address.toString() if address is not null.
			 */
			public toString(): string;
			/**
			 * Compares the specified obj to this Proxy instance and returns whether they are equal or not. The given object must be an instance of Proxy with the same address and the same type value to be equal.
			 * @param obj 
			 */
			public equals(obj: any): boolean;
			/**
			 * Gets the hashcode for this Proxy instance.
			 */
			public hashCode(): number;
		}
		export module Proxy {
			/**
			 * Enum class for the proxy type. Possible options are DIRECT, HTTP and SOCKS.
			 */
			export enum Type {
				DIRECT,
				HTTP,
				SOCKS
			}
		}
		/**
		 * An URLConnection for HTTP (<a href="http://tools.ietf.org/html/rfc2616">RFC 2616</a>) used to send and receive data over the web. Data may be of any type and length. This class may be used to send and receive streaming data whose length is not known in advance.
		 */
		export class HttpURLConnection extends java.net.URLConnection {
			/**
			 * Numeric status code, 202: Accepted
			 */
			static HTTP_ACCEPTED: number;
			/**
			 * Numeric status code, 502: Bad Gateway
			 */
			static HTTP_BAD_GATEWAY: number;
			/**
			 * Numeric status code, 405: Bad Method
			 */
			static HTTP_BAD_METHOD: number;
			/**
			 * Numeric status code, 400: Bad Request
			 */
			static HTTP_BAD_REQUEST: number;
			/**
			 * Numeric status code, 408: Client Timeout
			 */
			static HTTP_CLIENT_TIMEOUT: number;
			/**
			 * Numeric status code, 409: Conflict
			 */
			static HTTP_CONFLICT: number;
			/**
			 * Numeric status code, 201: Created
			 */
			static HTTP_CREATED: number;
			/**
			 * Numeric status code, 413: Entity too large
			 */
			static HTTP_ENTITY_TOO_LARGE: number;
			/**
			 * Numeric status code, 403: Forbidden
			 */
			static HTTP_FORBIDDEN: number;
			/**
			 * Numeric status code, 504: Gateway timeout
			 */
			static HTTP_GATEWAY_TIMEOUT: number;
			/**
			 * Numeric status code, 410: Gone
			 */
			static HTTP_GONE: number;
			/**
			 * Numeric status code, 500: Internal error
			 */
			static HTTP_INTERNAL_ERROR: number;
			/**
			 * Numeric status code, 411: Length required
			 */
			static HTTP_LENGTH_REQUIRED: number;
			/**
			 * Numeric status code, 301 Moved permanently
			 */
			static HTTP_MOVED_PERM: number;
			/**
			 * Numeric status code, 302: Moved temporarily
			 */
			static HTTP_MOVED_TEMP: number;
			/**
			 * Numeric status code, 300: Multiple choices
			 */
			static HTTP_MULT_CHOICE: number;
			/**
			 * Numeric status code, 204: No content
			 */
			static HTTP_NO_CONTENT: number;
			/**
			 * Numeric status code, 406: Not acceptable
			 */
			static HTTP_NOT_ACCEPTABLE: number;
			/**
			 * Numeric status code, 203: Not authoritative
			 */
			static HTTP_NOT_AUTHORITATIVE: number;
			/**
			 * Numeric status code, 404: Not found
			 */
			static HTTP_NOT_FOUND: number;
			/**
			 * Numeric status code, 501: Not implemented
			 */
			static HTTP_NOT_IMPLEMENTED: number;
			/**
			 * Numeric status code, 304: Not modified
			 */
			static HTTP_NOT_MODIFIED: number;
			/**
			 * Numeric status code, 200: OK
			 */
			static HTTP_OK: number;
			/**
			 * Numeric status code, 206: Partial
			 */
			static HTTP_PARTIAL: number;
			/**
			 * Numeric status code, 402: Payment required
			 */
			static HTTP_PAYMENT_REQUIRED: number;
			/**
			 * Numeric status code, 412: Precondition failed
			 */
			static HTTP_PRECON_FAILED: number;
			/**
			 * Numeric status code, 407: Proxy authentication required
			 */
			static HTTP_PROXY_AUTH: number;
			/**
			 * Numeric status code, 414: Request too long
			 */
			static HTTP_REQ_TOO_LONG: number;
			/**
			 * Numeric status code, 205: Reset
			 */
			static HTTP_RESET: number;
			/**
			 * Numeric status code, 303: See other
			 */
			static HTTP_SEE_OTHER: number;
			/**
			 * Numeric status code, 500: Internal error
			 */
			static HTTP_SERVER_ERROR: number;
			/**
			 * Numeric status code, 305: Use proxy.
			 */
			static HTTP_USE_PROXY: number;
			/**
			 * Numeric status code, 401: Unauthorized
			 */
			static HTTP_UNAUTHORIZED: number;
			/**
			 * Numeric status code, 415: Unsupported type
			 */
			static HTTP_UNSUPPORTED_TYPE: number;
			/**
			 * Numeric status code, 503: Unavailable
			 */
			static HTTP_UNAVAILABLE: number;
			/**
			 * Numeric status code, 505: Version not supported
			 */
			static HTTP_VERSION: number;
			static class: java.lang.Class<java.net.HttpURLConnection>;
			/**
			 * Releases this connection so that its resources may be either reused or closed.
			 */
			public disconnect(): void;
			/**
			 * Returns an input stream from the server in the case of an error such as the requested file has not been found on the remote server. This stream can be used to read the data the server will send back.
			 */
			public getErrorStream(): java.io.InputStream;
			/**
			 * Returns the value of followRedirects which indicates if this connection follows a different URL redirected by the server. It is enabled by default.
			 */
			public static getFollowRedirects(): boolean;
			/**
			 * Returns the permission object (in this case SocketPermission) with the host and the port number as the target name and "resolve, connect" as the action list. If the port number of this URL instance is lower than 0 the port will be set to 80.
			 */
			public getPermission(): java.security.Permission;
			/**
			 * Returns the request method which will be used to make the request to the remote HTTP server. All possible methods of this HTTP implementation is listed in the class definition.
			 */
			public getRequestMethod(): string;
			/**
			 * Returns the response code returned by the remote HTTP server.
			 */
			public getResponseCode(): number;
			/**
			 * Returns the response message returned by the remote HTTP server.
			 */
			public getResponseMessage(): string;
			/**
			 * Sets the flag of whether this connection will follow redirects returned by the remote server.
			 * @param auto 
			 */
			public static setFollowRedirects(auto: boolean): void;
			/**
			 * Sets the request command which will be sent to the remote HTTP server. This method can only be called before the connection is made.
			 * @param method 
			 */
			public setRequestMethod(method: string): void;
			/**
			 * Returns whether this connection uses a proxy server or not.
			 */
			public usingProxy(): boolean;
			/**
			 * Returns the encoding used to transmit the response body over the network. This is null or "identity" if the content was not encoded, or "gzip" if the body was gzip compressed. Most callers will be more interested in the #getContentType() content type, which may also include the content's character encoding.
			 */
			public getContentEncoding(): string;
			/**
			 * Returns whether this connection follows redirects.
			 */
			public getInstanceFollowRedirects(): boolean;
			/**
			 * Sets whether this connection follows redirects.
			 * @param followRedirects 
			 */
			public setInstanceFollowRedirects(followRedirects: boolean): void;
			/**
			 * Returns the date value in milliseconds since 01.01.1970, 00:00h corresponding to the header field field. The defaultValue will be returned if no such field can be found in the response header.
			 * @param field 
			 * @param defaultValue 
			 */
			public getHeaderFieldDate(field: string, defaultValue: number): any;
			/**
			 * If the length of a HTTP request body is known ahead, sets fixed length to enable streaming without buffering. Sets after connection will cause an exception.
			 * @param contentLength 
			 */
			public setFixedLengthStreamingMode(contentLength: number): void;
			/**
			 * Stream a request body whose length is not known in advance. Old HTTP/1.0 only servers may not support this mode.
			 * @param chunkLength the length to use, or {@code 0} for the default chunk
			 */
			public setChunkedStreamingMode(chunkLength: number): void;
		}
		/**
		 * Caches URLConnection responses.
		 */
		export class ResponseCache extends java.lang.Object {
			constructor();
			static class: java.lang.Class<java.net.ResponseCache>;
			/**
			 * Returns the system's default response cache, or null.
			 */
			public static getDefault(): java.net.ResponseCache;
			/**
			 * Sets the system's default response cache. Use null to remove the response cache.
			 */
			public static setDefault(responseCache: java.net.ResponseCache): void;
			/**
			 * Returns the cached response corresponding to the given request.
			 * @param uri 
			 * @param requestMethod 
			 * @param requestHeaders 
			 */
			public get(uri: java.net.URI, requestMethod: string, requestHeaders: java.util.IMap<string, java.util.IList<string>>): java.net.CacheResponse;
			/**
			 * Allows the protocol handler to cache data after retrieving resources. The ResponseCache decides whether the resource data should be cached or not. If so, this method returns a CacheRequest to write the resource data to. Otherwise, this method returns null.
			 * @param uri 
			 * @param connection 
			 */
			public put(uri: java.net.URI, connection: java.net.URLConnection): java.net.CacheRequest;
		}
		/**
		 * This class is used to encode a string using the format required by application/x-www-form-urlencoded MIME content type.
		 */
		export class URLEncoder extends java.lang.Object {
			static class: java.lang.Class<java.net.URLEncoder>;
			/**
			 * Equivalent to encode(s, "UTF-8").
			 */
			public static encode(s: string): string;
			/**
			 * Encodes s using the Charset named by charsetName.
			 */
			public static encode(s: string, charsetName: string): string;
		}
		/**
		 * A ConnectException is thrown if a connection cannot be established to a remote host on a specific port.
		 */
		export class ConnectException extends java.net.SocketException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.ConnectException>;
		}
		/**
		 * A CookieStore object is a repository for cookies.
		 */
		interface ICookieStore {
			/**
			 * Saves a HTTP cookie to this store. This is called for every incoming HTTP response.
			 * @param uri 
			 * @param cookie 
			 */
			add(uri: java.net.URI, cookie: java.net.HttpCookie): void;
			/**
			 * Retrieves cookies that match the specified URI. Return not expired cookies. For every outgoing HTTP request, this method will be called.
			 * @param uri 
			 */
			get(uri: java.net.URI): java.util.IList<java.net.HttpCookie>;
			/**
			 * Get all cookies in cookie store which are not expired.
			 */
			getCookies(): java.util.IList<java.net.HttpCookie>;
			/**
			 * Get a set of URIs, which is composed of associated URI with all the cookies in the store.
			 */
			getURIs(): java.util.IList<java.net.URI>;
			/**
			 * Remove the specified cookie from the store.
			 * @param uri 
			 * @param cookie 
			 */
			remove(uri: java.net.URI, cookie: java.net.HttpCookie): boolean;
			/**
			 * Clear this cookie store.
			 */
			removeAll(): boolean;
		}
		/**
		 * Signals that either a connection attempt to a socket of the wrong type, the application of an unsupported operation or that a general error in the underlying protocol has occurred.
		 */
		export class ProtocolException extends java.io.IOException {
			/**
			 * Constructs a new instance.
			 */
			constructor();
			/**
			 * Constructs a new instance with the given detail message.
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.ProtocolException>;
		}
		/**
		 * Thrown when a hostname can not be resolved.
		 */
		export class UnknownHostException extends java.io.IOException {
			/**
			 * Constructs a new UnknownHostException instance with no detail message. Callers should usually supply a detail message.
			 */
			constructor();
			/**
			 * Constructs a new UnknownHostException instance with the given detail message. The detail message should generally contain the hostname and a reason for the failure, if known.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			static class: java.lang.Class<java.net.UnknownHostException>;
		}
		/**
		 * CookiePolicy has three pre-defined policy. They are ACCEPT_ALL, ACCEPT_NONE and ACCEPT_ORIGINAL_SERVER respectively. They are used to decide which cookies should be accepted and which should not be.
		 */
		interface ICookiePolicy {
			/**
			 * This method is used to determine whether or not the specified cookie should be accepted.
			 * @param uri 
			 * @param cookie 
			 */
			shouldAccept(uri: java.net.URI, cookie: java.net.HttpCookie): boolean;
		}
		export module ICookiePolicy {
			/**
			 * A pre-defined policy, accepts all cookies.
			 */
			var ACCEPT_ALL: java.net.ICookiePolicy;
			/**
			 * A pre-defined policy, accepts no cookies at all.
			 */
			var ACCEPT_NONE: java.net.ICookiePolicy;
			/**
			 * A pre-defined policy, only accepts cookies from original server.
			 */
			var ACCEPT_ORIGINAL_SERVER: java.net.ICookiePolicy;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class SocketPermission extends java.security.Permission implements java.io.ISerializable {
			constructor(host: string, action: string);
			static class: java.lang.Class<java.net.SocketPermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
		}
		/**
		 * Defines an interface for socket implementations to get and set socket options. It is implemented by the classes SocketImpl and DatagramSocketImpl.
		 */
		export class SocketOptions implements java.net.ISocketOptions {
			constructor(implementation: java.net.ISocketOptions);
			/**
			 * Number of seconds to wait when closing a socket if there is still some buffered data to be sent.
			 */
			static SO_LINGER: number;
			/**
			 * Integer timeout in milliseconds for blocking accept or read/receive operations (but not write/send operations). A timeout of 0 means no timeout. Negative timeouts are not allowed.
			 */
			static SO_TIMEOUT: number;
			/**
			 * This boolean option specifies whether data is sent immediately on this socket. As a side-effect this could lead to low packet efficiency. The socket implementation uses the Nagle's algorithm to try to reach a higher packet efficiency if this option is disabled.
			 */
			static TCP_NODELAY: number;
			/**
			 * This is an IPv4-only socket option whose functionality is subsumed by #IP_MULTICAST_IF and not implemented on Android.
			 */
			static IP_MULTICAST_IF: number;
			/**
			 * This option does not correspond to any Unix socket option and is not implemented on Android.
			 */
			static SO_BINDADDR: number;
			/**
			 * This boolean option specifies whether a reuse of a local address is allowed even if another socket is not yet removed by the operating system. It's only available on a MulticastSocket.
			 */
			static SO_REUSEADDR: number;
			/**
			 * The size in bytes of a socket's send buffer. This must be an integer greater than 0. This is a hint to the kernel; the kernel may use a larger buffer.
			 */
			static SO_SNDBUF: number;
			/**
			 * The size in bytes of a socket's receive buffer. This must be an integer greater than 0. This is a hint to the kernel; the kernel may use a larger buffer.
			 */
			static SO_RCVBUF: number;
			/**
			 * This boolean option specifies whether the kernel sends keepalive messages.
			 */
			static SO_KEEPALIVE: number;
			/**
			 * This integer option specifies the value for the type-of-service field of the IPv4 header, or the traffic class field of the IPv6 header. These correspond to the IP_TOS and IPV6_TCLASS socket options. These may be ignored by the underlying OS. Values must be between 0 and 255 inclusive.
			 */
			static IP_TOS: number;
			/**
			 * This boolean option specifies whether the local loopback of multicast packets is enabled or disabled. This option is enabled by default on multicast sockets. Note that the sense of this option in Java is the <i>opposite</i> of the underlying Unix IP_MULTICAST_LOOP. See MulticastSocket#setLoopbackMode.
			 */
			static IP_MULTICAST_LOOP: number;
			/**
			 * This boolean option can be used to enable broadcasting on datagram sockets.
			 */
			static SO_BROADCAST: number;
			/**
			 * This boolean option specifies whether sending TCP urgent data is supported on this socket or not.
			 */
			static SO_OOBINLINE: number;
			/**
			 * This integer option sets the outgoing interface for multicast packets using an interface index.
			 */
			static IP_MULTICAST_IF2: number;
			/**
			 * Gets the value for the specified socket option.
			 * @param optID 
			 */
			public getOption(optID: number): any;
			/**
			 * Sets the value of the specified socket option.
			 * @param optID 
			 * @param val 
			 */
			public setOption(optID: number, val: any): void;
		}
		/**
		 * This class represents a server-side socket that waits for incoming client connections. A ServerSocket handles the requests and sends back an appropriate reply. The actual tasks that a server socket must accomplish are implemented by an internal SocketImpl instance.
		 */
		export class ServerSocket extends java.lang.Object {
			/**
			 * Constructs a new unbound ServerSocket.
			 */
			constructor();
			/**
			 * Constructs a new ServerSocket instance bound to the given port. The backlog is set to 50. If port == 0, a port will be assigned by the OS.
			 */
			constructor(port: number);
			/**
			 * Constructs a new ServerSocket instance bound to the given port. The backlog is set to backlog. If port == 0, a port will be assigned by the OS.
			 */
			constructor(port: number, backlog: number);
			/**
			 * Constructs a new ServerSocket instance bound to the given localAddress and port. The backlog is set to backlog. If localAddress == null, the ANY address is used. If port == 0, a port will be assigned by the OS.
			 */
			constructor(port: number, backlog: number, localAddress: java.net.InetAddress);
			static class: java.lang.Class<java.net.ServerSocket>;
			/**
			 * Waits for an incoming request and blocks until the connection is opened. This method returns a socket object representing the just opened connection.
			 */
			public accept(): java.net.Socket;
			/**
			 * Closes this server socket and its implementation. Any attempt to connect to this socket thereafter will fail.
			 */
			public close(): void;
			/**
			 * Gets the local IP address of this server socket or null if the socket is unbound. This is useful for multihomed hosts.
			 */
			public getInetAddress(): java.net.InetAddress;
			/**
			 * Gets the local port of this server socket or -1 if the socket is unbound.
			 */
			public getLocalPort(): number;
			/**
			 * Gets the socket SocketOptions#SO_TIMEOUT accept timeout.
			 */
			public getSoTimeout(): number;
			/**
			 * Invokes the server socket implementation to accept a connection on the given socket aSocket.
			 * @param aSocket 
			 */
			protected implAccept(aSocket: java.net.Socket): void;
			/**
			 * Sets the server socket implementation factory of this instance. This method may only be invoked with sufficient security privilege and only once during the application lifetime.
			 * @param aFactory 
			 */
			public static setSocketFactory(aFactory: java.net.ISocketImplFactory): void;
			/**
			 * Sets the SocketOptions#SO_TIMEOUT accept timeout in milliseconds for this socket. This accept timeout defines the period the socket will block waiting to accept a connection before throwing an InterruptedIOException. The value 0 (default) is used to set an infinite timeout. To have effect this option must be set before the blocking method was called.
			 * @param timeout the timeout in milliseconds or 0 for no timeout.
			 */
			public setSoTimeout(timeout: number): void;
			/**
			 * Returns a textual representation of this server socket including the address, port and the state. The port field is set to 0 if there is no connection to the server socket.
			 */
			public toString(): string;
			/**
			 * Binds this server socket to the given local socket address with a maximum backlog of 50 unaccepted connections. If the localAddr is set to null the socket will be bound to an available local address on any free port of the system.
			 * @param localAddr 
			 */
			public bind(localAddr: java.net.SocketAddress): void;
			/**
			 * Binds this server socket to the given local socket address. If the localAddr is set to null the socket will be bound to an available local address on any free port of the system.
			 * @param localAddr the local machine address and port to bind on.
			 * @param backlog the maximum number of unaccepted connections. Passing 0 or
			 */
			public bind(localAddr: java.net.SocketAddress, backlog: number): void;
			/**
			 * Gets the local socket address of this server socket or null if the socket is unbound. This is useful on multihomed hosts.
			 */
			public getLocalSocketAddress(): java.net.SocketAddress;
			/**
			 * Returns whether this server socket is bound to a local address and port or not.
			 */
			public isBound(): boolean;
			/**
			 * Returns whether this server socket is closed or not.
			 */
			public isClosed(): boolean;
			/**
			 * Sets the value for the socket option SocketOptions.SO_REUSEADDR.
			 * @param reuse 
			 */
			public setReuseAddress(reuse: boolean): void;
			/**
			 * Gets the value of the socket option SocketOptions.SO_REUSEADDR.
			 */
			public getReuseAddress(): boolean;
			/**
			 * Sets this socket's SocketOptions#SO_SNDBUF receive buffer size.
			 */
			public setReceiveBufferSize(size: number): void;
			/**
			 * Returns this socket's SocketOptions#SO_RCVBUF receive buffer size.
			 */
			public getReceiveBufferSize(): number;
			/**
			 * Returns this socket's ServerSocketChannel, if one exists. A channel is available only if this socket wraps a channel. (That is, you can go from a channel to a socket and back again, but you can't go from an arbitrary socket to a channel.) In practice, this means that the socket must have been created by java.nio.channels.ServerSocketChannel#open.
			 */
			public getChannel(): java.nio.channels.ServerSocketChannel;
			/**
			 * Sets performance preferences for connection time, latency and bandwidth.
			 * @param connectionTime 
			 * @param latency 
			 * @param bandwidth 
			 */
			public setPerformancePreferences(connectionTime: number, latency: number, bandwidth: number): void;
		}
		/**
		 * If a HTTP request has to be retried, this exception will be thrown if the request cannot be retried automatically.
		 */
		export class HttpRetryException extends java.io.IOException {
			/**
			 * Creates a new HttpRetryException instance with the specified response code and the given detail message.
			 * @param detail 
			 * @param code 
			 */
			constructor(detail: string, code: number);
			/**
			 * Creates a new HttpRetryException instance with the specified response code, the given detail message and the value of the location field from the response header.
			 * @param detail 
			 * @param code 
			 * @param location 
			 */
			constructor(detail: string, code: number, location: string);
			static class: java.lang.Class<java.net.HttpRetryException>;
			/**
			 * Gets the location value.
			 */
			public getLocation(): string;
			/**
			 * Gets the detail message.
			 */
			public getReason(): string;
			/**
			 * Gets the response code.
			 */
			public responseCode(): number;
		}
		/**
		 * A connection to a URL for reading or writing. For HTTP connections, see HttpURLConnection for documentation of HTTP-specific features.
		 */
		export class URLConnection extends java.lang.Object {
			static class: java.lang.Class<java.net.URLConnection>;
			/**
			 * Opens a connection to the resource. This method will <strong>not</strong> reconnect to a resource after the initial connection has been closed.
			 */
			public connect(): void;
			/**
			 * Returns allowUserInteraction. Unused by Android.
			 */
			public getAllowUserInteraction(): boolean;
			/**
			 * Returns an object representing the content of the resource this URLConnection is connected to. First, it attempts to get the content type from the method getContentType() which looks at the response header field "Content-Type". If none is found it will guess the content type from the filename extension. If that fails the stream itself will be used to guess the content type.
			 */
			public getContent(): any;
			/**
			 * Returns an object representing the content of the resource this URLConnection is connected to. First, it attempts to get the content type from the method getContentType() which looks at the response header field "Content-Type". If none is found it will guess the content type from the filename extension. If that fails the stream itself will be used to guess the content type. The content type must match with one of the list types.
			 * @param types 
			 */
			public getContent(types: native.Array<java.lang.Class<any>>): any;
			/**
			 * Returns the content encoding type specified by the response header field content-encoding or null if this field is not set.
			 */
			public getContentEncoding(): string;
			/**
			 * Returns the content length in bytes specified by the response header field content-length or -1 if this field is not set.
			 */
			public getContentLength(): number;
			/**
			 * Returns the MIME-type of the content specified by the response header field content-type or null if type is unknown.
			 */
			public getContentType(): string;
			/**
			 * Returns the timestamp when this response has been sent as a date in milliseconds since January 1, 1970 GMT or 0 if this timestamp is unknown.
			 */
			public getDate(): any;
			/**
			 * Returns the default value of allowUserInteraction. Unused by Android.
			 */
			public static getDefaultAllowUserInteraction(): boolean;
			/**
			 * Returns null.
			 */
			public static getDefaultRequestProperty(field: string): string;
			/**
			 * Returns the default setting whether this connection allows using caches.
			 */
			public getDefaultUseCaches(): boolean;
			/**
			 * Returns the value of the option doInput which specifies whether this connection allows to receive data.
			 */
			public getDoInput(): boolean;
			/**
			 * Returns the value of the option doOutput which specifies whether this connection allows to send data.
			 */
			public getDoOutput(): boolean;
			/**
			 * Returns the timestamp when this response will be expired in milliseconds since January 1, 1970 GMT or 0 if this timestamp is unknown.
			 */
			public getExpiration(): any;
			/**
			 * Returns the table which is used by all URLConnection instances to determine the MIME-type according to a file extension.
			 */
			public static getFileNameMap(): java.net.IFileNameMap;
			/**
			 * Returns the header value at the field position pos or null if the header has fewer than pos fields. The base implementation of this method returns always null.
			 * @param pos 
			 */
			public getHeaderField(pos: number): string;
			/**
			 * Returns an unmodifiable map of the response-header fields and values. The response-header field names are the key values of the map. The map values are lists of header field values associated with a particular key name.
			 */
			public getHeaderFields(): java.util.IMap<string, java.util.IList<string>>;
			/**
			 * Returns an unmodifiable map of general request properties used by this connection. The request property names are the key values of the map. The map values are lists of property values of the corresponding key name.
			 */
			public getRequestProperties(): java.util.IMap<string, java.util.IList<string>>;
			/**
			 * Adds the given property to the request header. Existing properties with the same name will not be overwritten by this method.
			 * @param field 
			 * @param newValue 
			 */
			public addRequestProperty(field: string, newValue: string): void;
			/**
			 * Returns the value of the header field specified by key or null if there is no field with this name. The base implementation of this method returns always null.
			 * @param key 
			 */
			public getHeaderField(key: string): string;
			/**
			 * Returns the specified header value as a date in milliseconds since January 1, 1970 GMT. Returns the defaultValue if no such header field could be found.
			 * @param field 
			 * @param defaultValue 
			 */
			public getHeaderFieldDate(field: string, defaultValue: number): any;
			/**
			 * Returns the specified header value as a number. Returns the defaultValue if no such header field could be found or the value could not be parsed as an Integer.
			 * @param field 
			 * @param defaultValue 
			 */
			public getHeaderFieldInt(field: string, defaultValue: number): number;
			/**
			 * Returns the name of the header field at the given position posn or null if there are fewer than posn fields. The base implementation of this method returns always null.
			 * @param posn 
			 */
			public getHeaderFieldKey(posn: number): string;
			/**
			 * Returns the point of time since when the data must be modified to be transmitted. Some protocols transmit data only if it has been modified more recently than a particular time.
			 */
			public getIfModifiedSince(): any;
			/**
			 * Returns an InputStream for reading data from the resource pointed by this URLConnection. It throws an UnknownServiceException by default. This method must be overridden by its subclasses.
			 */
			public getInputStream(): java.io.InputStream;
			/**
			 * Returns the value of the response header field last-modified or 0 if this value is not set.
			 */
			public getLastModified(): any;
			/**
			 * Returns an OutputStream for writing data to this URLConnection. It throws an UnknownServiceException by default. This method must be overridden by its subclasses.
			 */
			public getOutputStream(): java.io.OutputStream;
			/**
			 * Returns a Permission object representing all needed permissions to open this connection. The returned permission object depends on the state of the connection and will be null if no permissions are necessary. By default, this method returns AllPermission. Subclasses should overwrite this method to return an appropriate permission object.
			 */
			public getPermission(): java.security.Permission;
			/**
			 * Returns the value of the request header property specified by {code field} or null if there is no field with this name. The base implementation of this method returns always null.
			 * @param field 
			 */
			public getRequestProperty(field: string): string;
			/**
			 * Returns the URL represented by this URLConnection.
			 */
			public getURL(): java.net.URL;
			/**
			 * Returns the value of the flag which specifies whether this URLConnection allows to use caches.
			 */
			public getUseCaches(): boolean;
			/**
			 * Determines the MIME-type of the given resource url by resolving the filename extension with the internal FileNameMap. Any fragment identifier is removed before processing.
			 * @param url 
			 */
			public static guessContentTypeFromName(url: string): string;
			/**
			 * Determines the MIME-type of the resource represented by the input stream is by reading its first few characters.
			 * @param is 
			 */
			public static guessContentTypeFromStream(is: java.io.InputStream): string;
			/**
			 * Sets allowUserInteraction. Unused by Android.
			 */
			public setAllowUserInteraction(newValue: boolean): void;
			/**
			 * Sets the internally used content handler factory. The content factory can only be set once during the lifetime of the application.
			 * @param contentFactory 
			 */
			public static setContentHandlerFactory(contentFactory: java.net.IContentHandlerFactory): void;
			/**
			 * Sets the default value for allowUserInteraction. Unused by Android.
			 */
			public static setDefaultAllowUserInteraction(allows: boolean): void;
			/**
			 * Does nothing.
			 */
			public static setDefaultRequestProperty(field: string, value: string): void;
			/**
			 * Sets the default value for the flag indicating whether this connection allows to use caches. Existing URLConnections are unaffected.
			 * @param newValue 
			 */
			public setDefaultUseCaches(newValue: boolean): void;
			/**
			 * Sets the flag indicating whether this URLConnection allows input. It cannot be set after the connection is established.
			 * @param newValue 
			 */
			public setDoInput(newValue: boolean): void;
			/**
			 * Sets the flag indicating whether this URLConnection allows output. It cannot be set after the connection is established.
			 * @param newValue 
			 */
			public setDoOutput(newValue: boolean): void;
			/**
			 * Sets the internal map which is used by all URLConnection instances to determine the MIME-type according to a filename extension.
			 * @param map 
			 */
			public static setFileNameMap(map: java.net.IFileNameMap): void;
			/**
			 * Sets the point of time since when the data must be modified to be transmitted. Some protocols transmit data only if it has been modified more recently than a particular time. The data will be transmitted regardless of its timestamp if this option is set to 0.
			 * @param newValue 
			 */
			public setIfModifiedSince(newValue: number): void;
			/**
			 * Sets the value of the specified request header field. The value will only be used by the current URLConnection instance. This method can only be called before the connection is established.
			 * @param field 
			 * @param newValue 
			 */
			public setRequestProperty(field: string, newValue: string): void;
			/**
			 * Sets the flag indicating whether this connection allows to use caches or not. This method can only be called prior to the connection establishment.
			 * @param newValue 
			 */
			public setUseCaches(newValue: boolean): void;
			/**
			 * Sets the maximum time in milliseconds to wait while connecting. Connecting to a server will fail with a SocketTimeoutException if the timeout elapses before a connection is established. The default value of 0 causes us to do a blocking connect. This does not mean we will never time out, but it probably means you'll get a TCP timeout after several minutes.
			 */
			public setConnectTimeout(timeoutMillis: number): void;
			/**
			 * Returns the connect timeout in milliseconds. (See {#setConnectTimeout}.)
			 */
			public getConnectTimeout(): number;
			/**
			 * Sets the maximum time to wait for an input stream read to complete before giving up. Reading will fail with a SocketTimeoutException if the timeout elapses before data becomes available. The default value of 0 disables read timeouts; read attempts will block indefinitely.
			 * @param timeoutMillis the read timeout in milliseconds. Non-negative.
			 */
			public setReadTimeout(timeoutMillis: number): void;
			/**
			 * Returns the read timeout in milliseconds, or 0 if reads never timeout.
			 */
			public getReadTimeout(): number;
			/**
			 * Returns the string representation containing the name of this class and the URL.
			 */
			public toString(): string;
		}
		export module URLConnection {
			export class DefaultContentHandler extends java.net.ContentHandler {
				static class: java.lang.Class<java.net.URLConnection.DefaultContentHandler>;
				public getContent(u: java.net.URLConnection): any;
				/**
				 * Returns the object pointed by the specified URL connection uConn.
				 * @param uConn 
				 * @param types 
				 */
				getContent(uConn: java.net.URLConnection, types: native.Array<java.lang.Class<any>>): any;
			}
		}
		/**
		 * The abstract superclass for datagram and multicast socket implementations.
		 */
		export class DatagramSocketImpl extends java.lang.Object implements java.net.ISocketOptions {
			/**
			 * Constructs an unbound datagram socket implementation.
			 */
			constructor();
			static class: java.lang.Class<java.net.DatagramSocketImpl>;
			/**
			 * Binds the datagram socket to the given localhost/port. Sockets must be bound prior to attempting to send or receive data.
			 * @param port 
			 * @param addr 
			 */
			protected bind(port: number, addr: java.net.InetAddress): void;
			/**
			 * Closes this socket.
			 */
			protected close(): void;
			/**
			 * This method allocates the socket descriptor in the underlying operating system.
			 */
			protected create(): void;
			/**
			 * Gets the FileDescriptor of this datagram socket, which is invalid if the socket is closed or not bound.
			 */
			protected getFileDescriptor(): java.io.FileDescriptor;
			/**
			 * Returns the local address to which the socket is bound.
			 */
			getLocalAddress(): java.net.InetAddress;
			/**
			 * Returns the local port to which this socket is bound.
			 */
			protected getLocalPort(): number;
			/**
			 * Gets the time-to-live (TTL) for multicast packets sent on this socket.
			 */
			protected getTTL(): number;
			/**
			 * Gets the time-to-live (TTL) for multicast packets sent on this socket. The TTL option defines how many routers a packet may be pass before it is discarded.
			 */
			protected getTimeToLive(): number;
			/**
			 * Adds this socket to the multicast group addr. A socket must join a group before being able to receive data. Further, a socket may be a member of multiple groups but may join any group only once.
			 * @param addr 
			 */
			protected join(addr: java.net.InetAddress): void;
			/**
			 * Adds this socket to the multicast group addr. A socket must join a group before being able to receive data. Further, a socket may be a member of multiple groups but may join any group only once.
			 * @param addr 
			 * @param netInterface 
			 */
			protected joinGroup(addr: java.net.SocketAddress, netInterface: java.net.NetworkInterface): void;
			/**
			 * Removes this socket from the multicast group addr.
			 * @param addr 
			 */
			protected leave(addr: java.net.InetAddress): void;
			/**
			 * Removes this socket from the multicast group addr.
			 * @param addr 
			 * @param netInterface 
			 */
			protected leaveGroup(addr: java.net.SocketAddress, netInterface: java.net.NetworkInterface): void;
			/**
			 * Peeks at the incoming packet to this socket and returns the address of the sender. The method will block until a packet is received or timeout expires.
			 * @param sender 
			 */
			protected peek(sender: java.net.InetAddress): number;
			/**
			 * Receives data and stores it in the supplied datagram packet pack. This call will block until either data has been received or, if a timeout is set, the timeout has expired. If the timeout expires an InterruptedIOException is thrown.
			 * @param pack 
			 */
			protected receive(pack: java.net.DatagramPacket): void;
			/**
			 * Sends the given datagram packet pack. The packet contains the data and the address and port information of the target host as well.
			 * @param pack 
			 */
			protected send(pack: java.net.DatagramPacket): void;
			/**
			 * Sets the time-to-live (TTL) option for multicast packets sent on this socket.
			 * @param ttl 
			 */
			protected setTimeToLive(ttl: number): void;
			/**
			 * Sets the time-to-live (TTL) option for multicast packets sent on this socket.
			 * @param ttl 
			 */
			protected setTTL(ttl: number): void;
			/**
			 * Connects this socket to the specified remote address and port.
			 * @param inetAddr 
			 * @param port 
			 */
			protected connect(inetAddr: java.net.InetAddress, port: number): void;
			/**
			 * Disconnects this socket from the remote host.
			 */
			protected disconnect(): void;
			/**
			 * Receives data into the supplied datagram packet by peeking. The data is not removed from socket buffer and can be received again by another peekData() or receive() call. This call blocks until either data has been received or, if a timeout is set, the timeout has been expired.
			 * @param pack 
			 */
			protected peekData(pack: java.net.DatagramPacket): number;
			/**
			 * Gets the value for the specified socket option.
			 * @param optID 
			 */
			getOption(optID: number): any;
			/**
			 * Sets the value of the specified socket option.
			 * @param optID 
			 * @param val 
			 */
			setOption(optID: number, val: any): void;
		}
		/**
		 * This class implements a UDP socket for sending and receiving DatagramPacket. A DatagramSocket object can be used for both endpoints of a connection for a packet delivery service.
		 */
		export class DatagramSocket extends java.lang.Object {
			/**
			 * Constructs a UDP datagram socket which is bound to any available port on the localhost.
			 */
			constructor();
			/**
			 * Constructs a UDP datagram socket which is bound to the specific port aPort on the localhost. Valid values for aPort are between 0 and 65535 inclusive.
			 * @param aPort 
			 */
			constructor(aPort: number);
			/**
			 * Constructs a UDP datagram socket which is bound to the specific local address addr on port aPort. Valid values for aPort are between 0 and 65535 inclusive.
			 * @param aPort 
			 * @param addr 
			 */
			constructor(aPort: number, addr: java.net.InetAddress);
			/**
			 * Constructs a new DatagramSocket bound to the host/port specified by the SocketAddress localAddr or an unbound DatagramSocket if the SocketAddress is null.
			 * @param localAddr 
			 */
			constructor(localAddr: java.net.SocketAddress);
			static class: java.lang.Class<java.net.DatagramSocket>;
			/**
			 * Closes this UDP datagram socket and all possibly associated channels.
			 */
			public close(): void;
			/**
			 * Disconnects this UDP datagram socket from the remote host. This method called on an unconnected socket does nothing.
			 */
			public disconnect(): void;
			createSocket(aPort: number, addr: java.net.InetAddress): void;
			/**
			 * Gets the InetAddress instance representing the remote address to which this UDP datagram socket is connected.
			 */
			public getInetAddress(): java.net.InetAddress;
			/**
			 * Gets the InetAddress instance representing the bound local address of this UDP datagram socket.
			 */
			public getLocalAddress(): java.net.InetAddress;
			/**
			 * Gets the local port which this socket is bound to.
			 */
			public getLocalPort(): number;
			/**
			 * Gets the remote port which this socket is connected to.
			 */
			public getPort(): number;
			/**
			 * Indicates whether this socket is multicast or not.
			 */
			isMulticastSocket(): boolean;
			/**
			 * Returns this socket's SocketOptions#SO_RCVBUF receive buffer size.
			 */
			public getReceiveBufferSize(): number;
			/**
			 * Returns this socket's SocketOptions#SO_SNDBUF send buffer size.
			 */
			public getSendBufferSize(): number;
			/**
			 * Gets the socket SocketOptions#SO_TIMEOUT receive timeout.
			 */
			public getSoTimeout(): number;
			/**
			 * Receives a packet from this socket and stores it in the argument pack. All fields of pack must be set according to the data received. If the received data is longer than the packet buffer size it is truncated. This method blocks until a packet is received or a timeout has expired.
			 * @param pack 
			 */
			public receive(pack: java.net.DatagramPacket): void;
			/**
			 * Sends a packet over this socket.
			 * @param pack 
			 */
			public send(pack: java.net.DatagramPacket): void;
			/**
			 * Sets this socket's SocketOptions#SO_SNDBUF send buffer size.
			 */
			public setSendBufferSize(size: number): void;
			/**
			 * Sets this socket's SocketOptions#SO_SNDBUF receive buffer size.
			 */
			public setReceiveBufferSize(size: number): void;
			/**
			 * Sets the SocketOptions#SO_TIMEOUT read timeout in milliseconds for this socket. This receive timeout defines the period the socket will block waiting to receive data before throwing an InterruptedIOException. The value 0 (default) is used to set an infinite timeout. To have effect this option must be set before the blocking method was called.
			 * @param timeout the timeout in milliseconds or 0 for no timeout.
			 */
			public setSoTimeout(timeout: number): void;
			/**
			 * Sets the socket implementation factory. This may only be invoked once over the lifetime of the application. This factory is used to create a new datagram socket implementation.
			 * @param fac 
			 */
			public static setDatagramSocketImplFactory(fac: java.net.IDatagramSocketImplFactory): void;
			checkOpen(): void;
			/**
			 * Binds this socket to the local address and port specified by localAddr. If this value is null any free port on a valid local address is used.
			 * @param localAddr 
			 */
			public bind(localAddr: java.net.SocketAddress): void;
			/**
			 * Connects this datagram socket to the address and port specified by peer. Future calls to #send will use this as the default target, and #receive will only accept packets from this source.
			 */
			public connect(peer: java.net.SocketAddress): void;
			/**
			 * Connects this datagram socket to the specific address and port. Future calls to #send will use this as the default target, and #receive will only accept packets from this source.
			 */
			public connect(address: java.net.InetAddress, port: number): void;
			/**
			 * Returns true if this socket is bound to a local address. See #bind.
			 */
			public isBound(): boolean;
			/**
			 * Returns true if this datagram socket is connected to a remote address. See #connect.
			 */
			public isConnected(): boolean;
			/**
			 * Returns the SocketAddress this socket is connected to, or null for an unconnected socket.
			 */
			public getRemoteSocketAddress(): java.net.SocketAddress;
			/**
			 * Returns the SocketAddress this socket is bound to, or null for an unbound socket.
			 */
			public getLocalSocketAddress(): java.net.SocketAddress;
			/**
			 * Sets the socket option SocketOptions.SO_REUSEADDR. This option has to be enabled if more than one UDP socket wants to be bound to the same address. That could be needed for receiving multicast packets.
			 * @param reuse 
			 */
			public setReuseAddress(reuse: boolean): void;
			/**
			 * Gets the state of the socket option SocketOptions.SO_REUSEADDR.
			 */
			public getReuseAddress(): boolean;
			/**
			 * Sets the socket option SocketOptions.SO_BROADCAST. This option must be enabled to send broadcast messages.
			 * @param broadcast 
			 */
			public setBroadcast(broadcast: boolean): void;
			/**
			 * Gets the state of the socket option SocketOptions.SO_BROADCAST.
			 */
			public getBroadcast(): boolean;
			/**
			 * Sets the SocketOptions#IP_TOS value for every packet sent by this socket.
			 */
			public setTrafficClass(value: number): void;
			/**
			 * Returns this socket's SocketOptions#IP_TOS setting.
			 */
			public getTrafficClass(): number;
			/**
			 * Gets the state of this socket.
			 */
			public isClosed(): boolean;
			/**
			 * Returns this socket's DatagramChannel, if one exists. A channel is available only if this socket wraps a channel. (That is, you can go from a channel to a socket and back again, but you can't go from an arbitrary socket to a channel.) In practice, this means that the socket must have been created by java.nio.channels.DatagramChannel#open.
			 */
			public getChannel(): java.nio.channels.DatagramChannel;
		}
		/**
		 * CacheRequest is a kind of channel for storing resource data in the ResponseCache. A protocol handler calls the OutputStream which is provided by the CacheRequest object, to store the resource data into the cache. It also allows the user to interrupt and abort the current store operation by calling the method abort. If an IOException occurs while reading the response or writing data to the cache, the current cache store operation is abandoned.
		 */
		export class CacheRequest extends java.lang.Object {
			/**
			 * This implementation does nothing.
			 */
			constructor();
			static class: java.lang.Class<java.net.CacheRequest>;
			/**
			 * Aborts the current cache operation. If an IOException occurs while reading the response or writing resource data to the cache, the current cache store operation is aborted.
			 */
			public abort(): void;
			/**
			 * Returns an OutputStream which is used to write the response body.
			 */
			public getBody(): java.io.OutputStream;
		}
		/**
		 * Implements caching for InetAddress. We use a unified cache for both positive and negative cache entries.
		 */
		export class AddressCache extends java.lang.Object {
			static class: java.lang.Class<java.net.AddressCache>;
			/**
			 * Removes all entries from the cache.
			 */
			public clear(): void;
			/**
			 * Returns the cached InetAddress[] associated with 'hostname'. Returns null if nothing is known about 'hostname'. Returns a String suitable for use as an UnknownHostException detail message if 'hostname' is known not to exist.
			 */
			public get(hostname: string): any;
			/**
			 * Associates the given 'addresses' with 'hostname'. The association will expire after a certain length of time.
			 */
			public put(hostname: string, addresses: native.Array<java.net.InetAddress>): void;
			/**
			 * Records that 'hostname' is known not to have any associated addresses. (I.e. insert a negative cache entry.)
			 */
			public putUnknownHost(hostname: string, detailMessage: string): void;
		}
		export module AddressCache {
			export class AddressCacheEntry extends java.lang.Object {
				static class: java.lang.Class<java.net.AddressCache.AddressCacheEntry>;
			}
		}
		/**
		 * This class loader is responsible for loading classes and resources from a list of URLs which can refer to either directories or JAR files. Classes loaded by this URLClassLoader are granted permission to access the URLs contained in the URL search list.
		 */
		export class URLClassLoader extends java.security.SecureClassLoader {
			/**
			 * Constructs a new URLClassLoader instance. The newly created instance will have the system ClassLoader as its parent. URLs that end with "/" are assumed to be directories, otherwise they are assumed to be JAR files.
			 * @param urls 
			 */
			constructor(urls: native.Array<java.net.URL>);
			/**
			 * Constructs a new URLClassLoader instance. The newly created instance will have the system ClassLoader as its parent. URLs that end with "/" are assumed to be directories, otherwise they are assumed to be JAR files.
			 * @param urls 
			 * @param parent 
			 */
			constructor(urls: native.Array<java.net.URL>, parent: java.lang.ClassLoader);
			/**
			 * Constructs a new URLClassLoader instance. The newly created instance will have the specified ClassLoader as its parent and use the specified factory to create stream handlers. URLs that end with "/" are assumed to be directories, otherwise they are assumed to be JAR files.
			 * @param searchUrls 
			 * @param parent 
			 * @param factory 
			 */
			constructor(searchUrls: native.Array<java.net.URL>, parent: java.lang.ClassLoader, factory: java.net.IURLStreamHandlerFactory);
			static class: java.lang.Class<java.net.URLClassLoader>;
			URLHandler: {
	new (url: java.net.URL): java.net.URLClassLoader.URLHandler;
};
			URLJarHandler: {
	new (url: java.net.URL, jarURL: java.net.URL, jf: java.util.jar.JarFile, prefixName: string): java.net.URLClassLoader.URLJarHandler;
	new (url: java.net.URL, jarURL: java.net.URL, jf: java.util.jar.JarFile, prefixName: string, index: java.net.URLClassLoader.IndexFile): java.net.URLClassLoader.URLJarHandler;
};
			URLFileHandler: {
	new (url: java.net.URL): java.net.URLClassLoader.URLFileHandler;
};
			/**
			 * Adds the specified URL to the search list.
			 * @param url 
			 */
			protected addURL(url: java.net.URL): void;
			/**
			 * Returns all known URLs which point to the specified resource.
			 * @param name 
			 */
			public findResources(name: string): java.util.IEnumeration<java.net.URL>;
			/**
			 * Gets all permissions for the specified codesource. First, this method retrieves the permissions from the system policy. If the protocol is "file:/" then a new permission, FilePermission, granting the read permission to the file is added to the permission collection. Otherwise, connecting to and accepting connections from the URL is granted.
			 * @param codesource 
			 */
			protected getPermissions(codesource: java.security.CodeSource): java.security.PermissionCollection;
			/**
			 * Returns the search list of this URLClassLoader.
			 */
			public getURLs(): native.Array<java.net.URL>;
			/**
			 * Returns a new URLClassLoader instance for the given URLs and the system ClassLoader as its parent.
			 * @param urls 
			 */
			public static newInstance(urls: native.Array<java.net.URL>): java.net.URLClassLoader;
			/**
			 * Returns a new URLClassLoader instance for the given URLs and the specified ClassLoader as its parent.
			 * @param urls 
			 * @param parentCl 
			 */
			public static newInstance(urls: native.Array<java.net.URL>, parentCl: java.lang.ClassLoader): java.net.URLClassLoader;
			/**
			 * Tries to locate and load the specified class using the known URLs. If the class could be found, a class object representing the loaded class will be returned.
			 */
			protected findClass(className: string): java.lang.Class<any>;
			/**
			 * Returns an URL referencing the specified resource or null if the resource could not be found.
			 * @param name 
			 */
			public findResource(name: string): java.net.URL;
			/**
			 * Defines a new package using the information extracted from the specified manifest.
			 * @param packageName 
			 * @param manifest 
			 * @param url 
			 */
			protected definePackage(packageName: string, manifest: java.util.jar.Manifest, url: java.net.URL): java.lang.Package;
			/**
			 * Defines and returns a new Package using the specified information. If sealBase is null, the package is left unsealed. Otherwise, the package is sealed using this URL.
			 * @param name 
			 * @param specTitle 
			 * @param specVersion 
			 * @param specVendor 
			 * @param implTitle 
			 * @param implVersion 
			 * @param implVendor 
			 * @param sealBase 
			 */
			protected definePackage(name: string, specTitle: string, specVersion: string, specVendor: string, implTitle: string, implVersion: string, implVendor: string, sealBase: java.net.URL): java.lang.Package;
		}
		export module URLClassLoader {
			export class URLHandler extends java.lang.Object {
				static class: java.lang.Class<java.net.URLClassLoader.URLHandler>;
				findResources(name: string, resources: java.util.ArrayList<java.net.URL>): void;
				findClass(packageName: string, name: string, origName: string): java.lang.Class<any>;
				createClass(is: java.io.InputStream, packageName: string, origName: string): java.lang.Class<any>;
				findResource(name: string): java.net.URL;
				targetURL(base: java.net.URL, name: string): java.net.URL;
			}
			export class URLJarHandler extends java.net.URLClassLoader.URLHandler {
				static class: java.lang.Class<java.net.URLClassLoader.URLJarHandler>;
				getIndex(): java.net.URLClassLoader.IndexFile;
				findResources(name: string, resources: java.util.ArrayList<java.net.URL>): void;
				findClass(packageName: string, name: string, origName: string): java.lang.Class<any>;
				findResourceInOwn(name: string): java.net.URL;
				findResource(name: string): java.net.URL;
			}
			export class URLFileHandler extends java.net.URLClassLoader.URLHandler {
				static class: java.lang.Class<java.net.URLClassLoader.URLFileHandler>;
				findClass(packageName: string, name: string, origName: string): java.lang.Class<any>;
				findResource(name: string): java.net.URL;
			}
			export class IndexFile extends java.lang.Object {
				constructor(map: java.util.HashMap<string, java.util.ArrayList<java.net.URL>>);
				static class: java.lang.Class<java.net.URLClassLoader.IndexFile>;
				static readIndexFile(jf: java.util.jar.JarFile, indexEntry: java.util.jar.JarEntry, url: java.net.URL): java.net.URLClassLoader.IndexFile;
				get(name: string): java.util.ArrayList<java.net.URL>;
			}
		}
		/**
		 * This class is the base of all streaming socket implementation classes. Streaming sockets are wrapped by two classes, ServerSocket and Socket at the server and client end of a connection. At the server, there are two types of sockets engaged in communication, the ServerSocket on a well known port (referred to as listener) used to establish a connection and the resulting Socket (referred to as host).
		 */
		export class SocketImpl extends java.lang.Object implements java.net.ISocketOptions {
			constructor();
			static class: java.lang.Class<java.net.SocketImpl>;
			/**
			 * Waits for an incoming request and blocks until the connection is opened on the given socket.
			 * @param newSocket 
			 */
			protected accept(newSocket: java.net.SocketImpl): void;
			/**
			 * Returns the available number of bytes which are readable from this socket without blocking.
			 */
			protected available(): number;
			/**
			 * Binds this socket to the specified local host address and port number.
			 * @param address 
			 * @param port 
			 */
			protected bind(address: java.net.InetAddress, port: number): void;
			/**
			 * Closes this socket. This makes later access invalid.
			 */
			protected close(): void;
			/**
			 * Connects this socket to the specified remote host and port number.
			 * @param host 
			 * @param port 
			 */
			protected connect(host: string, port: number): void;
			/**
			 * Connects this socket to the specified remote host address and port number.
			 * @param address 
			 * @param port 
			 */
			protected connect(address: java.net.InetAddress, port: number): void;
			/**
			 * Creates a new unconnected socket. The argument isStreaming defines whether the new socket is a streaming or a datagram socket.
			 * @param isStreaming 
			 */
			protected create(isStreaming: boolean): void;
			/**
			 * Gets the file descriptor of this socket.
			 */
			protected getFileDescriptor(): java.io.FileDescriptor;
			/**
			 * Gets the remote address this socket is connected to.
			 */
			protected getInetAddress(): java.net.InetAddress;
			/**
			 * Gets the input stream of this socket.
			 */
			protected getInputStream(): java.io.InputStream;
			/**
			 * Gets the local port number of this socket. The field is initialized to -1 and upon demand will go to the IP stack to get the bound value. See the class comment for the context of the local port.
			 */
			protected getLocalPort(): number;
			/**
			 * Gets the output stream of this socket.
			 */
			protected getOutputStream(): java.io.OutputStream;
			/**
			 * Gets the remote port number of this socket. This value is not meaningful when this instance is wrapped by a ServerSocket.
			 */
			protected getPort(): number;
			/**
			 * Listens for connection requests on this streaming socket. Incoming connection requests are queued up to the limit specified by backlog. Additional requests are rejected. This method may only be invoked on stream sockets.
			 * @param backlog 
			 */
			protected listen(backlog: number): void;
			/**
			 * Returns a string containing a concise, human-readable description of the socket.
			 */
			public toString(): string;
			/**
			 * Closes the input channel of this socket.
			 */
			protected shutdownInput(): void;
			/**
			 * Closes the output channel of this socket.
			 */
			protected shutdownOutput(): void;
			/**
			 * Connects this socket to the remote host address and port number specified by the SocketAddress object with the given timeout. This method will block indefinitely if the timeout is set to zero.
			 * @param remoteAddr 
			 * @param timeout 
			 */
			protected connect(remoteAddr: java.net.SocketAddress, timeout: number): void;
			/**
			 * Returns whether the socket supports urgent data or not. Subclasses should override this method.
			 */
			protected supportsUrgentData(): boolean;
			/**
			 * Sends the single byte of urgent data on the socket.
			 * @param value 
			 */
			protected sendUrgentData(value: number): void;
			/**
			 * Sets performance preference for connection time, latency and bandwidth. Does nothing by default.
			 * @param connectionTime 
			 * @param latency 
			 * @param bandwidth 
			 */
			protected setPerformancePreferences(connectionTime: number, latency: number, bandwidth: number): void;
			/**
			 * Gets the value for the specified socket option.
			 * @param optID 
			 */
			getOption(optID: number): any;
			/**
			 * Sets the value of the specified socket option.
			 * @param optID 
			 * @param val 
			 */
			setOption(optID: number, val: any): void;
		}
		/**
		 * This interface defines a factory for datagram socket implementations. It is used by the class DatagramSocket to create a new datagram socket implementation.
		 */
		interface IDatagramSocketImplFactory {
			/**
			 * Creates a new DatagramSocketImpl instance.
			 */
			createDatagramSocketImpl(): java.net.DatagramSocketImpl;
		}
		/**
		 * Provides a client-side TCP socket.
		 */
		export class Socket extends java.lang.Object {
			/**
			 * Creates a new unconnected socket. When a SocketImplFactory is defined it creates the internal socket implementation, otherwise the default socket implementation will be used for this socket.
			 */
			constructor();
			/**
			 * Creates a new unconnected socket using the given proxy type. When a SocketImplFactory is defined it creates the internal socket implementation, otherwise the default socket implementation will be used for this socket.
			 * @param proxy 
			 */
			constructor(proxy: java.net.Proxy);
			/**
			 * Creates a new streaming socket connected to the target host specified by the parameters dstName and dstPort. The socket is bound to any available port on the local host.
			 * @param dstName 
			 * @param dstPort 
			 */
			constructor(dstName: string, dstPort: number);
			/**
			 * Creates a new streaming socket connected to the target host specified by the parameters dstName and dstPort. On the local endpoint the socket is bound to the given address localAddress on port localPort. If host is null a loopback address is used to connect to.
			 * @param dstName 
			 * @param dstPort 
			 * @param localAddress 
			 * @param localPort 
			 */
			constructor(dstName: string, dstPort: number, localAddress: java.net.InetAddress, localPort: number);
			/**
			 * Creates a new streaming or datagram socket connected to the target host specified by the parameters hostName and port. The socket is bound to any available port on the local host.
			 * @param hostName 
			 * @param port 
			 * @param streaming 
			 */
			constructor(hostName: string, port: number, streaming: boolean);
			/**
			 * Creates a new streaming socket connected to the target host specified by the parameters dstAddress and dstPort. The socket is bound to any available port on the local host.
			 * @param dstAddress 
			 * @param dstPort 
			 */
			constructor(dstAddress: java.net.InetAddress, dstPort: number);
			/**
			 * Creates a new streaming socket connected to the target host specified by the parameters dstAddress and dstPort. On the local endpoint the socket is bound to the given address localAddress on port localPort.
			 * @param dstAddress 
			 * @param dstPort 
			 * @param localAddress 
			 * @param localPort 
			 */
			constructor(dstAddress: java.net.InetAddress, dstPort: number, localAddress: java.net.InetAddress, localPort: number);
			/**
			 * Creates a new streaming or datagram socket connected to the target host specified by the parameters addr and port. The socket is bound to any available port on the local host.
			 * @param addr 
			 * @param port 
			 * @param streaming 
			 */
			constructor(addr: java.net.InetAddress, port: number, streaming: boolean);
			static class: java.lang.Class<java.net.Socket>;
			/**
			 * Closes the socket. It is not possible to reconnect or rebind to this socket thereafter which means a new socket instance has to be created.
			 */
			public close(): void;
			/**
			 * Returns the IP address of the target host this socket is connected to, or null if this socket is not yet connected.
			 */
			public getInetAddress(): java.net.InetAddress;
			/**
			 * Returns an input stream to read data from this socket.
			 */
			public getInputStream(): java.io.InputStream;
			/**
			 * Returns this socket's SocketOptions#SO_KEEPALIVE setting.
			 */
			public getKeepAlive(): boolean;
			/**
			 * Returns the local IP address this socket is bound to, or InetAddress.ANY if the socket is unbound.
			 */
			public getLocalAddress(): java.net.InetAddress;
			/**
			 * Returns the local port this socket is bound to, or -1 if the socket is unbound.
			 */
			public getLocalPort(): number;
			/**
			 * Returns an output stream to write data into this socket.
			 */
			public getOutputStream(): java.io.OutputStream;
			/**
			 * Returns the port number of the target host this socket is connected to, or 0 if this socket is not yet connected.
			 */
			public getPort(): number;
			/**
			 * Returns this socket's SocketOptions#SO_LINGER linger timeout in seconds, or -1 for no linger (i.e. close will return immediately).
			 */
			public getSoLinger(): number;
			/**
			 * Returns this socket's SocketOptions#SO_RCVBUF receive buffer size.
			 */
			public getReceiveBufferSize(): number;
			/**
			 * Returns this socket's SocketOptions#SO_SNDBUF send buffer size.
			 */
			public getSendBufferSize(): number;
			/**
			 * Returns this socket's SocketOptions#SO_TIMEOUT receive timeout.
			 */
			public getSoTimeout(): number;
			/**
			 * Returns this socket's SocketOptions#TCP_NODELAY setting.
			 */
			public getTcpNoDelay(): boolean;
			/**
			 * Sets this socket's SocketOptions#SO_KEEPALIVE option.
			 */
			public setKeepAlive(keepAlive: boolean): void;
			/**
			 * Sets the internal factory for creating socket implementations. This may only be executed once during the lifetime of the application.
			 * @param fac 
			 */
			public static setSocketImplFactory(fac: java.net.ISocketImplFactory): void;
			/**
			 * Sets this socket's SocketOptions#SO_SNDBUF send buffer size.
			 */
			public setSendBufferSize(size: number): void;
			/**
			 * Sets this socket's SocketOptions#SO_SNDBUF receive buffer size.
			 */
			public setReceiveBufferSize(size: number): void;
			/**
			 * Sets this socket's SocketOptions#SO_LINGER linger timeout in seconds. If on is false, timeout is irrelevant.
			 */
			public setSoLinger(on: boolean, timeout: number): void;
			/**
			 * Sets this socket's SocketOptions#SO_TIMEOUT read timeout in milliseconds. Use 0 for no timeout. To take effect, this option must be set before the blocking method was called.
			 */
			public setSoTimeout(timeout: number): void;
			/**
			 * Sets this socket's SocketOptions#TCP_NODELAY option.
			 */
			public setTcpNoDelay(on: boolean): void;
			/**
			 * Returns a String containing a concise, human-readable description of the socket.
			 */
			public toString(): string;
			/**
			 * Closes the input stream of this socket. Any further data sent to this socket will be discarded. Reading from this socket after this method has been called will return the value EOF.
			 */
			public shutdownInput(): void;
			/**
			 * Closes the output stream of this socket. All buffered data will be sent followed by the termination sequence. Writing to the closed output stream will cause an IOException.
			 */
			public shutdownOutput(): void;
			/**
			 * Returns the local address and port of this socket as a SocketAddress or null if the socket is unbound. This is useful on multihomed hosts.
			 */
			public getLocalSocketAddress(): java.net.SocketAddress;
			/**
			 * Returns the remote address and port of this socket as a SocketAddress or null if the socket is not connected.
			 */
			public getRemoteSocketAddress(): java.net.SocketAddress;
			/**
			 * Returns whether this socket is bound to a local address and port.
			 */
			public isBound(): boolean;
			/**
			 * Returns whether this socket is connected to a remote host.
			 */
			public isConnected(): boolean;
			/**
			 * Returns whether this socket is closed.
			 */
			public isClosed(): boolean;
			/**
			 * Binds this socket to the given local host address and port specified by the SocketAddress localAddr. If localAddr is set to null, this socket will be bound to an available local address on any free port.
			 * @param localAddr 
			 */
			public bind(localAddr: java.net.SocketAddress): void;
			/**
			 * Connects this socket to the given remote host address and port specified by the SocketAddress remoteAddr.
			 * @param remoteAddr 
			 */
			public connect(remoteAddr: java.net.SocketAddress): void;
			/**
			 * Connects this socket to the given remote host address and port specified by the SocketAddress remoteAddr with the specified timeout. The connecting method will block until the connection is established or an error occurred.
			 * @param remoteAddr 
			 * @param timeout 
			 */
			public connect(remoteAddr: java.net.SocketAddress, timeout: number): void;
			/**
			 * Returns whether the incoming channel of the socket has already been closed.
			 */
			public isInputShutdown(): boolean;
			/**
			 * Returns whether the outgoing channel of the socket has already been closed.
			 */
			public isOutputShutdown(): boolean;
			/**
			 * Sets this socket's SocketOptions#SO_REUSEADDR option.
			 */
			public setReuseAddress(reuse: boolean): void;
			/**
			 * Returns this socket's SocketOptions#SO_REUSEADDR setting.
			 */
			public getReuseAddress(): boolean;
			/**
			 * Sets this socket's SocketOptions#SO_OOBINLINE option.
			 */
			public setOOBInline(oobinline: boolean): void;
			/**
			 * Returns this socket's SocketOptions#SO_OOBINLINE setting.
			 */
			public getOOBInline(): boolean;
			/**
			 * Sets this socket's SocketOptions#IP_TOS value for every packet sent by this socket.
			 */
			public setTrafficClass(value: number): void;
			/**
			 * Returns this socket's SocketOptions#IP_TOS setting.
			 */
			public getTrafficClass(): number;
			/**
			 * Sends the given single byte data which is represented by the lowest octet of value as "TCP urgent data".
			 * @param value 
			 */
			public sendUrgentData(value: number): void;
			/**
			 * Set the appropriate flags for a socket created by ServerSocket.accept().
			 */
			accepted(): void;
			/**
			 * Returns this socket's SocketChannel, if one exists. A channel is available only if this socket wraps a channel. (That is, you can go from a channel to a socket and back again, but you can't go from an arbitrary socket to a channel.) In practice, this means that the socket must have been created by java.nio.channels.ServerSocketChannel#accept or java.nio.channels.SocketChannel#open.
			 */
			public getChannel(): java.nio.channels.SocketChannel;
			/**
			 * Sets performance preferences for connectionTime, latency and bandwidth.
			 * @param connectionTime 
			 * @param latency 
			 * @param bandwidth 
			 */
			public setPerformancePreferences(connectionTime: number, latency: number, bandwidth: number): void;
		}
	}
	export module sql {
		/**
		 * An exception class that holds information about Database access warnings.
		 */
		export class SQLWarning extends java.sql.SQLException implements java.io.ISerializable {
			/**
			 * Creates an SQLWarning object. The reason string is set to null, the SQLState string is set to null and the error code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLWarning object. The reason string is set to the given reason string, the SQLState string is set to null and the error code is set to 0.
			 * @param theReason 
			 */
			constructor(theReason: string);
			/**
			 * Creates an SQLWarning object. The reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the error code is set to 0.
			 * @param theReason 
			 * @param theSQLState 
			 */
			constructor(theReason: string, theSQLState: string);
			/**
			 * Creates an SQLWarning object. The reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the error code is set to the given error code value.
			 * @param theReason 
			 * @param theSQLState 
			 * @param theErrorCode 
			 */
			constructor(theReason: string, theSQLState: string, theErrorCode: number);
			/**
			 * Creates an SQLWarning object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0, cause is set to cause.
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLWarning object. The Reason string is set to reason, the SQLState string is set to null and the Error Code is set to 0, cause is set to the given cause
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLWarning object. The Reason string is set to reason, the SQLState string is set to given SQLState and the Error Code is set to 0, cause is set to the given cause
			 */
			constructor(reason: string, SQLState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLWarning object. The Reason string is set to reason, the SQLState string is set to given SQLState and the Error Code is set to vendorCode, cause is set to the given cause
			 */
			constructor(reason: string, SQLState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLWarning>;
			/**
			 * Gets the next SQLWarning chained to this SQLWarning object.
			 */
			public getNextWarning(): java.sql.SQLWarning;
			/**
			 * Chains a supplied SQLWarning to this SQLWarning.
			 * @param w 
			 */
			public setNextWarning(w: java.sql.SQLWarning): void;
		}
		/**
		 * A class which defines constants used to identify generic SQL types, also called JDBC types. The type constant values are equivalent to those defined by X/OPEN.
		 */
		export class Types extends java.lang.Object {
			/**
			 * The type code that identifies the SQL type ARRAY.
			 */
			static ARRAY: number;
			/**
			 * The type code that identifies the SQL type BIGINT.
			 */
			static BIGINT: number;
			/**
			 * The type code that identifies the SQL type BINARY.
			 */
			static BINARY: number;
			/**
			 * The type code that identifies the SQL type BIT.
			 */
			static BIT: number;
			/**
			 * The type code that identifies the SQL type BLOB.
			 */
			static BLOB: number;
			/**
			 * The type code that identifies the SQL type BOOLEAN.
			 */
			static BOOLEAN: number;
			/**
			 * The type code that identifies the SQL type CHAR.
			 */
			static CHAR: number;
			/**
			 * The type code that identifies the SQL type CLOB.
			 */
			static CLOB: number;
			/**
			 * The type code that identifies the SQL type DATALINK.
			 */
			static DATALINK: number;
			/**
			 * The type code that identifies the SQL type DATE.
			 */
			static DATE: number;
			/**
			 * The type code that identifies the SQL type DECIMAL.
			 */
			static DECIMAL: number;
			/**
			 * The type code that identifies the SQL type DISTINCT.
			 */
			static DISTINCT: number;
			/**
			 * The type code that identifies the SQL type DOUBLE.
			 */
			static DOUBLE: number;
			/**
			 * The type code that identifies the SQL type FLOAT.
			 */
			static FLOAT: number;
			/**
			 * The type code that identifies the SQL type INTEGER.
			 */
			static INTEGER: number;
			/**
			 * The type code that identifies the SQL type JAVA_OBJECT.
			 */
			static JAVA_OBJECT: number;
			/**
			 * The type code that identifies the SQL type LONGVARBINARY.
			 */
			static LONGVARBINARY: number;
			/**
			 * The type code that identifies the SQL type LONGVARCHAR.
			 */
			static LONGVARCHAR: number;
			/**
			 * The type code that identifies the SQL type NULL.
			 */
			static NULL: number;
			/**
			 * The type code that identifies the SQL type NUMERIC.
			 */
			static NUMERIC: number;
			/**
			 * The type code that identifies that the SQL type is database specific and is mapped to a Java object, accessed via the methods getObject and setObject.
			 */
			static OTHER: number;
			/**
			 * The type code that identifies the SQL type REAL.
			 */
			static REAL: number;
			/**
			 * The type code that identifies the SQL type REF.
			 */
			static REF: number;
			/**
			 * The type code that identifies the SQL type SMALLINT.
			 */
			static SMALLINT: number;
			/**
			 * The type code that identifies the SQL type STRUCT.
			 */
			static STRUCT: number;
			/**
			 * The type code that identifies the SQL type TIME.
			 */
			static TIME: number;
			/**
			 * The type code that identifies the SQL type TIMESTAMP.
			 */
			static TIMESTAMP: number;
			/**
			 * The type code that identifies the SQL type TINYINT.
			 */
			static TINYINT: number;
			/**
			 * The type code that identifies the SQL type VARBINARY.
			 */
			static VARBINARY: number;
			/**
			 * The type code that identifies the SQL type VARCHAR.
			 */
			static VARCHAR: number;
			/**
			 * The type code that identifies the SQL type ROWID.
			 */
			static ROWID: number;
			/**
			 * The type code that identifies the SQL type NCHAR.
			 */
			static NCHAR: number;
			/**
			 * The type code that identifies the SQL type NVARCHAR.
			 */
			static NVARCHAR: number;
			/**
			 * The type code that identifies the SQL type LONGNVARCHAR.
			 */
			static LONGNVARCHAR: number;
			/**
			 * The type code that identifies the SQL type NCLOB.
			 */
			static NCLOB: number;
			/**
			 * The type code that identifies the SQL type SQLXML.
			 */
			static SQLXML: number;
			static class: java.lang.Class<java.sql.Types>;
		}
		export class NClob implements java.sql.IClob, java.sql.INClob {
			constructor(implementation: java.sql.INClob);
			/**
			 * Gets the value of this Clob object as an ASCII stream.
			 */
			getAsciiStream(): java.io.InputStream;
			/**
			 * Gets the data of this Clob object in a java.io.Reader.
			 */
			getCharacterStream(): java.io.Reader;
			/**
			 * Gets a copy of a specified substring in this Clob.
			 * @param pos 
			 * @param length 
			 */
			getSubString(pos: number, length: number): string;
			/**
			 * Retrieves the number of characters in this Clob object.
			 */
			length(): any;
			/**
			 * Retrieves the character position at which a specified Clob object appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			position(searchstr: java.sql.IClob, start: number): any;
			/**
			 * Retrieves the character position at which a specified substring appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			position(searchstr: string, start: number): any;
			/**
			 * Retrieves a stream which can be used to write Ascii characters to this Clob object, starting at specified position.
			 * @param pos 
			 */
			setAsciiStream(pos: number): java.io.OutputStream;
			/**
			 * Retrieves a stream which can be used to write a stream of unicode characters to this Clob object, at a specified position.
			 * @param pos 
			 */
			setCharacterStream(pos: number): java.io.Writer;
			/**
			 * Writes a given Java String to this Clob object at a specified position.
			 * @param pos 
			 * @param str 
			 */
			setString(pos: number, str: string): number;
			/**
			 * Writes len characters of a string, starting at a specified character offset, to this Clob.
			 * @param pos 
			 * @param str 
			 * @param offset 
			 * @param len 
			 */
			setString(pos: number, str: string, offset: number, len: number): number;
			/**
			 * Truncates this Clob after the specified number of characters.
			 * @param len 
			 */
			truncate(len: number): void;
			/**
			 * Frees any resources held by this clob. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing).
			 */
			free(): void;
			/**
			 * Returns a Reader that reads length characters from this clob, starting at 1-based offset {code pos}.
			 */
			getCharacterStream(pos: number, length: number): java.io.Reader;
		}
		/**
		 * Maps SQL's ROWID type into Java. 1.6
		 */
		interface IRowId {
			equals(obj: any): boolean;
			/**
			 * Returns an array of bytes representing the value of the corresponding SQL ROWID.
			 */
			getBytes(): native.Array<number>;
			toString(): string;
			hashCode(): number;
		}
		export class SQLTransientException extends java.sql.SQLException {
			/**
			 * Creates an SQLTransientException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLTransientException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLTransientException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransientException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLTransientException>;
		}
		/**
		 * This class is an actual usage of the wrapper pattern for JDBC classes. Developers can get the delegate instance when the instance may be a proxy class.
		 */
		interface IWrapper {
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * Provides information about the columns returned in a ResultSet.
		 */
		export class ResultSetMetaData implements java.sql.IWrapper, java.sql.IResultSetMetaData {
			constructor(implementation: java.sql.IResultSetMetaData);
			/**
			 * Indicates that a column cannot contain NULL values.
			 */
			static columnNoNulls: number;
			/**
			 * Indicates that a column can contain NULL values.
			 */
			static columnNullable: number;
			/**
			 * Indicates that it is unknown whether a column can contain NULLs or not.
			 */
			static columnNullableUnknown: number;
			/**
			 * Returns the title of an indexed column's catalog.
			 * @param column 
			 */
			public getCatalogName(column: number): string;
			/**
			 * Returns the fully-qualified type of the class that is produced when invoking ResultSet.getObject to recover this column's value.
			 * @param column 
			 */
			public getColumnClassName(column: number): string;
			/**
			 * Returns number of columns contained in the associated result set.
			 */
			public getColumnCount(): number;
			/**
			 * Returns the indexed column's standard maximum width, expressed in number of characters.
			 * @param column 
			 */
			public getColumnDisplaySize(column: number): number;
			/**
			 * Returns a recommended title for the indexed column, to be used when the title needs to be displayed.
			 * @param column 
			 */
			public getColumnLabel(column: number): string;
			/**
			 * Returns the title of the indexed column.
			 * @param column 
			 */
			public getColumnName(column: number): string;
			/**
			 * Returns the type of the indexed column as SQL type code.
			 * @param column 
			 */
			public getColumnType(column: number): number;
			/**
			 * Returns the type name of the indexed column.
			 * @param column 
			 */
			public getColumnTypeName(column: number): string;
			/**
			 * Returns the decimal precision of the indexed column.
			 * @param column 
			 */
			public getPrecision(column: number): number;
			/**
			 * Returns the number of digits to the right of the decimal point of the indexed column.
			 * @param column 
			 */
			public getScale(column: number): number;
			/**
			 * Returns the name of the indexed columns schema.
			 * @param column 
			 */
			public getSchemaName(column: number): string;
			/**
			 * Returns the title of the indexed columns table.
			 * @param column 
			 */
			public getTableName(column: number): string;
			/**
			 * Returns an indication of whether the indexed column is automatically incremented and is therefore read-only.
			 * @param column 
			 */
			public isAutoIncrement(column: number): boolean;
			/**
			 * Returns an indication of whether the case of the indexed column is important.
			 * @param column 
			 */
			public isCaseSensitive(column: number): boolean;
			/**
			 * Returns whether the indexed column contains a monetary amount.
			 * @param column 
			 */
			public isCurrency(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be successful.
			 * @param column 
			 */
			public isDefinitelyWritable(column: number): boolean;
			/**
			 * Returns whether the indexed column is nullable.
			 * @param column 
			 */
			public isNullable(column: number): number;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be unsuccessful.
			 * @param column 
			 */
			public isReadOnly(column: number): boolean;
			/**
			 * Returns an indication of whether the indexed column is searchable.
			 * @param column 
			 */
			public isSearchable(column: number): boolean;
			/**
			 * Returns an indication of whether the values contained in the indexed column are signed.
			 * @param column 
			 */
			public isSigned(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is possible.
			 * @param column 
			 */
			public isWritable(column: number): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * Legacy security code; do not use.
		 */
		export class SQLPermission extends java.security.BasicPermission implements java.security.IGuard, java.io.ISerializable {
			constructor(name: string);
			constructor(name: string, actions: string);
			static class: java.lang.Class<java.sql.SQLPermission>;
			public getActions(): string;
			public implies(permission: java.security.Permission): boolean;
			/**
			 * Checks whether access to the specified Object should be granted. This method returns silently if access is granted, otherwise a SecurityException is thrown.
			 * @param object 
			 */
			checkGuard(object: any): void;
		}
		/**
		 * The interface for an output stream used to write attributes of an SQL <i>User Defined Type</i> (UDT) to the database. This interface is used for custom mapping of types and is called by the JDBC driver. It is not intended to be used by applications.
		 */
		interface ISQLOutput {
			/**
			 * Write a String value into the output stream.
			 * @param theString 
			 */
			writeString(theString: string): void;
			/**
			 * Write a boolean value into the output stream.
			 * @param theFlag 
			 */
			writeBoolean(theFlag: boolean): void;
			/**
			 * Write a byte value into the output stream.
			 * @param theByte 
			 */
			writeByte(theByte: number): void;
			/**
			 * Write a short value into the output stream.
			 * @param theShort 
			 */
			writeShort(theShort: number): void;
			/**
			 * Write an int value into the output stream.
			 * @param theInt 
			 */
			writeInt(theInt: number): void;
			/**
			 * Write a long value into the output stream.
			 * @param theLong 
			 */
			writeLong(theLong: number): void;
			/**
			 * Write a float value into the output stream.
			 * @param theFloat 
			 */
			writeFloat(theFloat: number): void;
			/**
			 * Write a double value into the output stream.
			 * @param theDouble 
			 */
			writeDouble(theDouble: number): void;
			/**
			 * Write a java.math.BigDecimal value into the output stream.
			 * @param theBigDecimal 
			 */
			writeBigDecimal(theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Write an array of bytes into the output stream.
			 * @param theBytes 
			 */
			writeBytes(theBytes: native.Array<number>): void;
			/**
			 * Write a java.sql.Date value into the output stream.
			 * @param theDate 
			 */
			writeDate(theDate: java.sql.Date): void;
			/**
			 * Write a java.sql.Time value into the output stream.
			 * @param theTime 
			 */
			writeTime(theTime: java.sql.Time): void;
			/**
			 * Write a java.sql.Timestamp value into the output stream.
			 * @param theTimestamp 
			 */
			writeTimestamp(theTimestamp: java.sql.Timestamp): void;
			/**
			 * Write a stream of unicode characters into the output stream.
			 * @param theStream 
			 */
			writeCharacterStream(theStream: java.io.Reader): void;
			/**
			 * Write a stream of ASCII characters into the output stream.
			 * @param theStream 
			 */
			writeAsciiStream(theStream: java.io.InputStream): void;
			/**
			 * Write a stream of uninterpreted bytes into the output stream.
			 * @param theStream 
			 */
			writeBinaryStream(theStream: java.io.InputStream): void;
			/**
			 * Write an SQLData object into the output stream.
			 * @param theObject 
			 */
			writeObject(theObject: java.sql.ISQLData): void;
			/**
			 * Write an SQL Ref value into the output stream.
			 * @param theRef 
			 */
			writeRef(theRef: java.sql.IRef): void;
			/**
			 * Write an SQL Blob value into the output stream.
			 * @param theBlob 
			 */
			writeBlob(theBlob: java.sql.IBlob): void;
			/**
			 * Write an SQL Clob value into the output stream.
			 * @param theClob 
			 */
			writeClob(theClob: java.sql.IClob): void;
			/**
			 * Write an SQL Struct value into the output stream.
			 * @param theStruct 
			 */
			writeStruct(theStruct: java.sql.IStruct): void;
			/**
			 * Write an SQL Array value into the output stream.
			 * @param theArray 
			 */
			writeArray(theArray: java.sql.IArray): void;
			/**
			 * Write a URL into the output stream as an SQL DATALINK.
			 * @param theURL 
			 */
			writeURL(theURL: java.net.URL): void;
			/**
			 * Write a String into the output stream as an SQL NCHAR, NVARCHAR, or LONGNVARCHAR.
			 * @param theString 
			 */
			writeNString(theString: string): void;
			/**
			 * Write a Clob into the output stream as an SQL NCLOB.
			 * @param theNClob 
			 */
			writeNClob(theNClob: java.sql.INClob): void;
			/**
			 * Write a RowId into the output stream as an SQL ROWID.
			 * @param theRowId 
			 */
			writeRowId(theRowId: java.sql.IRowId): void;
			/**
			 * Write a SQLXML into the output stream as an SQL XML.
			 * @param theXml 
			 */
			writeSQLXML(theXml: java.sql.ISQLXML): void;
		}
		/**
		 * An interface for an object which represents a database table entry, returned as the result of the query to the database.
		 */
		export class ResultSet implements java.sql.IWrapper, java.sql.IResultSet {
			constructor(implementation: java.sql.IResultSet);
			/**
			 * A constant used to indicate that a ResultSet object must be closed when the method Connection.commit is invoked.
			 */
			static CLOSE_CURSORS_AT_COMMIT: number;
			/**
			 * A constant used to indicate that a ResultSet object must not be closed when the method Connection.commit is invoked.
			 */
			static HOLD_CURSORS_OVER_COMMIT: number;
			/**
			 * A constant used to indicate the concurrency mode for a ResultSet object that cannot be updated.
			 */
			static CONCUR_READ_ONLY: number;
			/**
			 * A constant used to indicate the concurrency mode for a ResultSet object that can be updated.
			 */
			static CONCUR_UPDATABLE: number;
			/**
			 * A constant used to indicate processing of the rows of a ResultSet in the forward direction, first to last.
			 */
			static FETCH_FORWARD: number;
			/**
			 * A constant used to indicate processing of the rows of a ResultSet in the reverse direction, last to first.
			 */
			static FETCH_REVERSE: number;
			/**
			 * A constant used to indicate that the order of processing of the rows of a ResultSet is unknown.
			 */
			static FETCH_UNKNOWN: number;
			/**
			 * A constant used to indicate a ResultSet object whose cursor can only move forward.
			 */
			static TYPE_FORWARD_ONLY: number;
			/**
			 * A constant used to indicate a ResultSet object which is scrollable but is insensitive to changes made by others.
			 */
			static TYPE_SCROLL_INSENSITIVE: number;
			/**
			 * A constant used to indicate a ResultSet object which is scrollable and sensitive to changes made by others.
			 */
			static TYPE_SCROLL_SENSITIVE: number;
			/**
			 * Moves the cursor to a specified row number in the ResultSet.
			 * @param row 
			 */
			public absolute(row: number): boolean;
			/**
			 * Moves the cursor to the end of the ResultSet, after the last row.
			 */
			public afterLast(): void;
			/**
			 * Moves the cursor to the start of the ResultSet, before the first row.
			 */
			public beforeFirst(): void;
			/**
			 * Cancels any updates made to the current row in the ResultSet.
			 */
			public cancelRowUpdates(): void;
			/**
			 * Clears all warnings related to this ResultSet.
			 */
			public clearWarnings(): void;
			/**
			 * Releases this ResultSet's database and JDBC resources. You are strongly advised to use this method rather than relying on the release being done when the ResultSet's finalize method is called during garbage collection process. Note that the close() method might take some time to complete since it is dependent on the behavior of the connection to the database and the database itself.
			 */
			public close(): void;
			/**
			 * Deletes the current row from the ResultSet and from the underlying database.
			 */
			public deleteRow(): void;
			/**
			 * Gets the index number for a column in the ResultSet from the provided column name.
			 * @param columnName 
			 */
			public findColumn(columnName: string): number;
			/**
			 * Shifts the cursor position to the first row in the ResultSet.
			 */
			public first(): boolean;
			/**
			 * Gets the content of a column specified by column index in the current row of this ResultSet as a java.sql.Array.
			 * @param columnIndex 
			 */
			public getArray(columnIndex: number): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Array.
			 * @param colName 
			 */
			public getArray(colName: string): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column index as an ASCII character stream.
			 * @param columnIndex 
			 */
			public getAsciiStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as an ASCII character stream.
			 * @param columnName 
			 */
			public getAsciiStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 */
			public getBigDecimal(columnIndex: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 * @param scale 
			 */
			public getBigDecimal(columnIndex: number, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 */
			public getBigDecimal(columnName: string): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 * @param scale 
			 */
			public getBigDecimal(columnName: string, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a binary stream.
			 * @param columnIndex 
			 */
			public getBinaryStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as a binary stream.
			 * @param columnName 
			 */
			public getBinaryStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Blob object.
			 * @param columnIndex 
			 */
			public getBlob(columnIndex: number): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Blob object.
			 * @param columnName 
			 */
			public getBlob(columnName: string): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column index as a boolean .
			 * @param columnIndex 
			 */
			public getBoolean(columnIndex: number): boolean;
			/**
			 * Gets the value of a column specified by column name, as a boolean .
			 * @param columnName 
			 */
			public getBoolean(columnName: string): boolean;
			/**
			 * Gets the value of a column specified by column index as a byte.
			 * @param columnIndex 
			 */
			public getByte(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a byte.
			 * @param columnName 
			 */
			public getByte(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a byte array.
			 * @param columnIndex 
			 */
			public getBytes(columnIndex: number): native.Array<number>;
			/**
			 * Gets the value of a column specified by column name as a byte array.
			 * @param columnName 
			 */
			public getBytes(columnName: string): native.Array<number>;
			/**
			 * Gets the value of a column specified by column index as a java.io.Reader object.
			 * @param columnIndex 
			 */
			public getCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Gets the value of a column specified by column name as a java.io.Reader object.
			 * @param columnName 
			 */
			public getCharacterStream(columnName: string): java.io.Reader;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Clob.
			 * @param columnIndex 
			 */
			public getClob(columnIndex: number): java.sql.IClob;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Clob.
			 * @param colName 
			 */
			public getClob(colName: string): java.sql.IClob;
			/**
			 * Gets the concurrency mode of this ResultSet.
			 */
			public getConcurrency(): number;
			/**
			 * Gets the name of the SQL cursor of this ResultSet.
			 */
			public getCursorName(): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date.
			 * @param columnIndex 
			 */
			public getDate(columnIndex: number): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date. This method uses a supplied calendar to compute the Date.
			 * @param columnIndex 
			 * @param cal 
			 */
			public getDate(columnIndex: number, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Date.
			 * @param columnName 
			 */
			public getDate(columnName: string): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Date object.
			 * @param columnName 
			 * @param cal 
			 */
			public getDate(columnName: string, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a double value.
			 * @param columnIndex 
			 */
			public getDouble(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name as a double value.
			 * @param columnName 
			 */
			public getDouble(columnName: string): any;
			/**
			 * Gets the direction in which rows are fetched for this ResultSet object.
			 */
			public getFetchDirection(): number;
			/**
			 * Gets the fetch size (in number of rows) for this ResultSet.
			 */
			public getFetchSize(): number;
			/**
			 * Gets the value of a column specified by column index as a float value.
			 * @param columnIndex 
			 */
			public getFloat(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a float value.
			 * @param columnName 
			 */
			public getFloat(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as an int value.
			 * @param columnIndex 
			 */
			public getInt(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as an int value.
			 * @param columnName 
			 */
			public getInt(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a long value.
			 * @param columnIndex 
			 */
			public getLong(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name, as a long value.
			 * @param columnName 
			 */
			public getLong(columnName: string): any;
			/**
			 * Gets the metadata for this ResultSet. This defines the number, types and properties of the columns in the ResultSet.
			 */
			public getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnIndex 
			 */
			public getObject(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column index as a Java Object.
			 * @param columnIndex 
			 * @param map 
			 */
			public getObject(columnIndex: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnName 
			 */
			public getObject(columnName: string): any;
			/**
			 * Gets the value of a column specified by column name as a Java Object.
			 * @param columnName 
			 * @param map 
			 */
			public getObject(columnName: string, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a column specified by column index as a Java java.sql.Ref.
			 * @param columnIndex 
			 */
			public getRef(columnIndex: number): java.sql.IRef;
			/**
			 * Gets the value of a column specified by column name as a Java java.sql.Ref.
			 * @param colName 
			 */
			public getRef(colName: string): java.sql.IRef;
			/**
			 * Gets the number of the current row in the ResultSet. Row numbers start at 1 for the first row.
			 */
			public getRow(): number;
			/**
			 * Gets the value of a column specified by column index as a short value.
			 * @param columnIndex 
			 */
			public getShort(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as a short value.
			 * @param columnName 
			 */
			public getShort(columnName: string): number;
			/**
			 * Gets the statement that produced this ResultSet. If the ResultSet was not created by a statement (i.e. because it was returned from one of the DatabaseMetaData methods), null is returned.
			 */
			public getStatement(): java.sql.IStatement;
			/**
			 * Gets the value of a column specified by column index as a String.
			 * @param columnIndex 
			 */
			public getString(columnIndex: number): string;
			/**
			 * Gets the value of a column specified by column name, as a String.
			 * @param columnName 
			 */
			public getString(columnName: string): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value.
			 * @param columnIndex 
			 */
			public getTime(columnIndex: number): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnIndex 
			 * @param cal 
			 */
			public getTime(columnIndex: number, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Time value.
			 * @param columnName 
			 */
			public getTime(columnName: string): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnName 
			 * @param cal 
			 */
			public getTime(columnName: string, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Timestamp value.
			 * @param columnIndex 
			 */
			public getTimestamp(columnIndex: number): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnIndex 
			 * @param cal 
			 */
			public getTimestamp(columnIndex: number, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value.
			 * @param columnName 
			 */
			public getTimestamp(columnName: string): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnName 
			 * @param cal 
			 */
			public getTimestamp(columnName: string, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the type of the ResultSet.
			 */
			public getType(): number;
			/**
			 * Gets the value of the column as an InputStream of unicode characters.
			 * @param columnIndex 
			 */
			public getUnicodeStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of the column as an InputStream of Unicode characters.
			 * @param columnName 
			 */
			public getUnicodeStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.net.URL.
			 * @param columnIndex 
			 */
			public getURL(columnIndex: number): java.net.URL;
			/**
			 * Gets the value of a column specified by column name as a java.net.URL object.
			 * @param columnName 
			 */
			public getURL(columnName: string): java.net.URL;
			/**
			 * Gets the first warning generated by calls on this ResultSet. Subsequent warnings on this ResultSet are chained to the first one.
			 */
			public getWarnings(): java.sql.SQLWarning;
			/**
			 * Insert the insert row into the ResultSet and into the underlying database. The cursor must be set to the Insert Row before this method is invoked.
			 */
			public insertRow(): void;
			/**
			 * Gets if the cursor is after the last row of the ResultSet.
			 */
			public isAfterLast(): boolean;
			/**
			 * Gets if the cursor is before the first row of the ResultSet.
			 */
			public isBeforeFirst(): boolean;
			/**
			 * Gets if the cursor is on the first row of the ResultSet.
			 */
			public isFirst(): boolean;
			/**
			 * Gets if the cursor is on the last row of the ResultSet
			 */
			public isLast(): boolean;
			/**
			 * Shifts the cursor position to the last row of the ResultSet.
			 */
			public last(): boolean;
			/**
			 * Moves the cursor to the remembered position, namely the row that was the current row before a call to moveToInsertRow. This only applies if the cursor is on the Insert Row.
			 */
			public moveToCurrentRow(): void;
			/**
			 * Moves the cursor position to the Insert Row. The current position is remembered and the cursor is positioned at the Insert Row. The columns in the Insert Row should be filled in with the appropriate update methods, before calling insertRow to insert the new row into the database.
			 */
			public moveToInsertRow(): void;
			/**
			 * Shifts the cursor position down one row in this ResultSet object.
			 */
			public next(): boolean;
			/**
			 * Relocates the cursor position to the preceding row in this ResultSet.
			 */
			public previous(): boolean;
			/**
			 * Refreshes the current row with its most up to date value in the database. Must not be called when the cursor is on the Insert Row.
			 */
			public refreshRow(): void;
			/**
			 * Moves the cursor position up or down by a specified number of rows. If the new position is beyond the start row (or end row), the cursor position is set before the first row (or, respectively, after the last row).
			 * @param rows 
			 */
			public relative(rows: number): boolean;
			/**
			 * Indicates whether a row has been deleted. This method depends on whether the JDBC driver and database can detect deletions.
			 */
			public rowDeleted(): boolean;
			/**
			 * Indicates whether the current row has had an insertion operation. This method depends on whether the JDBC driver and database can detect insertions.
			 */
			public rowInserted(): boolean;
			/**
			 * Indicates whether the current row has been updated. This method depends on whether the JDBC driver and database can detect updates.
			 */
			public rowUpdated(): boolean;
			/**
			 * Indicates which direction (forward/reverse) will be used to process the rows of this ResultSet object. This is treated as a hint by the JDBC driver.
			 * @param direction 
			 */
			public setFetchDirection(direction: number): void;
			/**
			 * Indicates the number of rows to fetch from the database when extra rows are required for this ResultSet. This used as a hint to the JDBC driver.
			 * @param rows 
			 */
			public setFetchSize(rows: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Array value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateArray(columnIndex: number, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Array value.
			 * @param columnName 
			 * @param x 
			 */
			public updateArray(columnName: string, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column index with an ASCII stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			public updateAsciiStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with an Ascii stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			public updateAsciiStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.BigDecimal value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateBigDecimal(columnIndex: number, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column name with a java.sql.BigDecimal value.
			 * @param columnName 
			 * @param x 
			 */
			public updateBigDecimal(columnName: string, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column index with a binary stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			public updateBinaryStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with a binary stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			public updateBinaryStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Blob value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateBlob(columnIndex: number, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Blob value.
			 * @param columnName 
			 * @param x 
			 */
			public updateBlob(columnName: string, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column index with a boolean value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateBoolean(columnIndex: number, x: boolean): void;
			/**
			 * Updates a column specified by a column name with a boolean value.
			 * @param columnName 
			 * @param x 
			 */
			public updateBoolean(columnName: string, x: boolean): void;
			/**
			 * Updates a column specified by a column index with a byte value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateByte(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a byte value.
			 * @param columnName 
			 * @param x 
			 */
			public updateByte(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a byte array value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateBytes(columnIndex: number, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column name with a byte array value.
			 * @param columnName 
			 * @param x 
			 */
			public updateBytes(columnName: string, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column index with a character stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			public updateCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column name with a character stream value.
			 * @param columnName 
			 * @param reader 
			 * @param length 
			 */
			public updateCharacterStream(columnName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Clob value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateClob(columnIndex: number, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Clob value.
			 * @param columnName 
			 * @param x 
			 */
			public updateClob(columnName: string, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Date value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateDate(columnIndex: number, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Date value.
			 * @param columnName 
			 * @param x 
			 */
			public updateDate(columnName: string, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column index with a double value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateDouble(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a double value.
			 * @param columnName 
			 * @param x 
			 */
			public updateDouble(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a float value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateFloat(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a float value.
			 * @param columnName 
			 * @param x 
			 */
			public updateFloat(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with an int value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateInt(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with an int value.
			 * @param columnName 
			 * @param x 
			 */
			public updateInt(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a long value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateLong(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a long value.
			 * @param columnName 
			 * @param x 
			 */
			public updateLong(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a null value.
			 * @param columnIndex 
			 */
			public updateNull(columnIndex: number): void;
			/**
			 * Updates a column specified by a column name with a null value.
			 * @param columnName 
			 */
			public updateNull(columnName: string): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateObject(columnIndex: number, x: any): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 * @param scale 
			 */
			public updateObject(columnIndex: number, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 */
			public updateObject(columnName: string, x: any): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 * @param scale 
			 */
			public updateObject(columnName: string, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Ref value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateRef(columnIndex: number, x: java.sql.IRef): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Ref value.
			 * @param columnName 
			 * @param x 
			 */
			public updateRef(columnName: string, x: java.sql.IRef): void;
			/**
			 * Updates the database with the new contents of the current row of this ResultSet object.
			 */
			public updateRow(): void;
			/**
			 * Updates a column specified by a column index with a short value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateShort(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a short value.
			 * @param columnName 
			 * @param x 
			 */
			public updateShort(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a String value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateString(columnIndex: number, x: string): void;
			/**
			 * Updates a column specified by a column name with a String value.
			 * @param columnName 
			 * @param x 
			 */
			public updateString(columnName: string, x: string): void;
			/**
			 * Updates a column specified by a column index with a Time value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateTime(columnIndex: number, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column name with a Time value.
			 * @param columnName 
			 * @param x 
			 */
			public updateTime(columnName: string, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column index with a Timestamp value.
			 * @param columnIndex 
			 * @param x 
			 */
			public updateTimestamp(columnIndex: number, x: java.sql.Timestamp): void;
			/**
			 * Updates a column specified by column name with a Timestamp value.
			 * @param columnName 
			 * @param x 
			 */
			public updateTimestamp(columnName: string, x: java.sql.Timestamp): void;
			/**
			 * Determines whether the last column read from this ResultSet contained SQL NULL.
			 */
			public wasNull(): boolean;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the 1-based columnIndex. SQLException
			 */
			public getRowId(columnIndex: number): java.sql.IRowId;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the named column. SQLException
			 */
			public getRowId(columnLabel: string): java.sql.IRowId;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateRowId(columnIndex: number, value: java.sql.IRowId): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateRowId(columnLabel: string, value: java.sql.IRowId): void;
			/**
			 * Returns the holdability of this result set: #HOLD_CURSORS_OVER_COMMIT or #CLOSE_CURSORS_AT_COMMIT. SQLException
			 */
			public getHoldability(): number;
			/**
			 * Returns true if this result set has been closed, false otherwise. SQLException
			 */
			public isClosed(): boolean;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNString(columnIndex: number, nString: string): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNString(columnLabel: string, nString: string): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNClob(columnIndex: number, nClob: java.sql.INClob): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNClob(columnLabel: string, nClob: java.sql.INClob): void;
			/**
			 * Returns an NClob corresponding to the value at the 1-based columnIndex. SQLException
			 */
			public getNClob(columnIndex: number): java.sql.INClob;
			/**
			 * Returns an NClob corresponding to the value in the named column. SQLException
			 */
			public getNClob(columnLabel: string): java.sql.INClob;
			/**
			 * Returns an SQLXML corresponding to the value at the 1-based columnIndex. SQLException
			 */
			public getSQLXML(columnIndex: number): java.sql.ISQLXML;
			/**
			 * Returns an SQLXML corresponding to the value in the named column. SQLException
			 */
			public getSQLXML(columnLabel: string): java.sql.ISQLXML;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateSQLXML(columnIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateSQLXML(columnLabel: string, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Returns a String corresponding to the value at the 1-based columnIndex. SQLException
			 */
			public getNString(columnIndex: number): string;
			/**
			 * Returns a String corresponding to the value in the named column. SQLException
			 */
			public getNString(columnLabel: string): string;
			/**
			 * Returns a Reader corresponding to the value at the 1-based columnIndex. SQLException
			 */
			public getNCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Returns a Reader corresponding to the value in the named column. SQLException
			 */
			public getNCharacterStream(columnLabel: string): java.io.Reader;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNCharacterStream(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateBlob(columnIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateBlob(columnLabel: string, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateAsciiStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateBinaryStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateAsciiStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateBinaryStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateBlob(columnIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateBlob(columnLabel: string, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			public updateNClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * Provides facilities for managing JDBC drivers.
		 */
		export class DriverManager extends java.lang.Object {
			static class: java.lang.Class<java.sql.DriverManager>;
			/**
			 * Removes a driver from the DriverManager's registered driver list. This will only succeed when the caller's class loader loaded the driver that is to be removed. If the driver was loaded by a different class loader, the removal of the driver fails silently.
			 * @param driver 
			 */
			public static deregisterDriver(driver: java.sql.IDriver): void;
			/**
			 * Attempts to establish a connection to the given database URL.
			 * @param url 
			 */
			public static getConnection(url: string): java.sql.IConnection;
			/**
			 * Attempts to establish a connection to the given database URL.
			 * @param url 
			 * @param info 
			 */
			public static getConnection(url: string, info: java.util.Properties): java.sql.IConnection;
			/**
			 * Attempts to establish a connection to the given database URL.
			 * @param url 
			 * @param user 
			 * @param password 
			 */
			public static getConnection(url: string, user: string, password: string): java.sql.IConnection;
			/**
			 * Tries to find a driver that can interpret the supplied URL.
			 * @param url 
			 */
			public static getDriver(url: string): java.sql.IDriver;
			/**
			 * Returns an Enumeration that contains all of the loaded JDBC drivers that the current caller can access.
			 */
			public static getDrivers(): java.util.IEnumeration<java.sql.IDriver>;
			/**
			 * Returns the login timeout when connecting to a database in seconds.
			 */
			public static getLoginTimeout(): number;
			/**
			 * Gets the log PrintStream used by the DriverManager and all the JDBC Drivers.
			 */
			public static getLogStream(): java.io.PrintStream;
			/**
			 * Retrieves the log writer.
			 */
			public static getLogWriter(): java.io.PrintWriter;
			/**
			 * Prints a message to the current JDBC log stream. This is either the PrintWriter or (deprecated) the PrintStream, if set.
			 * @param message 
			 */
			public static println(message: string): void;
			/**
			 * Registers a given JDBC driver with the DriverManager.
			 * @param driver 
			 */
			public static registerDriver(driver: java.sql.IDriver): void;
			/**
			 * Sets the login timeout when connecting to a database in seconds.
			 * @param seconds 
			 */
			public static setLoginTimeout(seconds: number): void;
			/**
			 * Sets the print stream to use for logging data from the DriverManager and the JDBC drivers.
			 * @param out 
			 */
			public static setLogStream(out: java.io.PrintStream): void;
			/**
			 * Sets the PrintWriter that is used by all loaded drivers, and also the DriverManager.
			 * @param out 
			 */
			public static setLogWriter(out: java.io.PrintWriter): void;
		}
		/**
		 * An interface which provides facilities for manipulating an SQL structured type as a Java object. The Struct object has a value for each attribute of the SQL structured type.
		 */
		interface IStruct {
			/**
			 * Gets the SQL Type name of the SQL structured type that this Struct represents.
			 */
			getSQLTypeName(): string;
			/**
			 * Gets the values of the attributes of this SQL structured type. This method uses the type map associated with the Connection for customized type mappings. Where there is no entry in the type mapping which matches this structured type, the JDBC driver uses the standard mapping.
			 */
			getAttributes(): native.Array<any>;
			/**
			 * Gets the values of the attributes of this SQL structured type. This method uses the supplied type mapping to determine how to map SQL types to their corresponding Java objects. In the case where there is no entry in the type mapping which matches this structured type, the JDBC driver uses the default mapping. The Connection type map is <i>never</i> utilized by this method.
			 * @param theMap 
			 */
			getAttributes(theMap: java.util.IMap<string, java.lang.Class<any>>): native.Array<any>;
		}
		/**
		 * This exception is thrown if a problem occurs during a batch update operation.
		 */
		export class BatchUpdateException extends java.sql.SQLException implements java.io.ISerializable {
			/**
			 * Creates a default BatchUpdateException with the parameters <i>reason</i>, <i>SQLState</i>, and <i>update counts</i> set to null and the <i>vendor code</i> set to 0.
			 */
			constructor();
			/**
			 * Creates an BatchUpdateException object. The reason is set to null if cause == null otherwise to cause.toString(), and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause the Throwable object for the underlying reason this SQLException
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an BatchUpdateException object. The Reason string is set to the null if cause == null otherwise to cause.toString(), and the cause Throwable object is set to the given cause Throwable object. SQLState is initialized to null while vendorCode is zero.
			 * @param updateCounts cause the Throwable object for the underlying reason this SQLException
			 * @param cause 
			 */
			constructor(updateCounts: native.Array<number>, cause: java.lang.Throwable);
			/**
			 * Creates an BatchUpdateException object. The cause Throwable object is set to the given cause Throwable object. SQLState is initialized to null while vendorCode is zero.
			 * @param reason cause the Throwable object for the underlying reason this SQLException
			 * @param updateCounts 
			 * @param cause 
			 */
			constructor(reason: string, updateCounts: native.Array<number>, cause: java.lang.Throwable);
			/**
			 * Creates an BatchUpdateException object. The cause Throwable object is set to the given cause Throwable object and the updateCounts array set to the int array parameter. SQLState is initialized to null while vendorCode is zero.
			 * @param reason cause the Throwable object for the underlying reason this SQLException
			 * @param SQLState 
			 * @param updateCounts 
			 * @param cause 
			 */
			constructor(reason: string, SQLState: string, updateCounts: native.Array<number>, cause: java.lang.Throwable);
			/**
			 * Creates an BatchUpdateException object. The cause Throwable object is set to the given cause Throwable object and the updateCounts array set to the int array parameter. VendorCode is set to the given vendorCode. SQLState is initialized to null while vendorCode is zero.
			 * @param reason cause the Throwable object for the underlying reason this SQLException
			 * @param SQLState 
			 * @param vendorCode 
			 * @param updateCounts 
			 * @param cause 
			 */
			constructor(reason: string, SQLState: string, vendorCode: number, updateCounts: native.Array<number>, cause: java.lang.Throwable);
			/**
			 * Creates a BatchUpdateException with the updateCounts set to the supplied value. All other fields are set to their default values.
			 * @param updateCounts 
			 */
			constructor(updateCounts: native.Array<number>);
			/**
			 * Creates a BatchUpdateException with the updateCounts and reason set to the supplied values. All other fields are set to their default values.
			 * @param reason 
			 * @param updateCounts 
			 */
			constructor(reason: string, updateCounts: native.Array<number>);
			/**
			 * Creates a BatchUpdateException with the reason, SQLState and updateCounts set to the supplied values. All other fields are set to their default values.
			 * @param reason 
			 * @param SQLState 
			 * @param updateCounts 
			 */
			constructor(reason: string, SQLState: string, updateCounts: native.Array<number>);
			/**
			 * Creates a BatchUpdateException for the case where all relevant information is provided.
			 * @param reason 
			 * @param SQLState 
			 * @param vendorCode 
			 * @param updateCounts 
			 */
			constructor(reason: string, SQLState: string, vendorCode: number, updateCounts: native.Array<number>);
			static class: java.lang.Class<java.sql.BatchUpdateException>;
			/**
			 * Gets the <i>update count</i> array giving status information for every command that was attempted in the batch.
			 */
			public getUpdateCounts(): native.Array<number>;
		}
		/**
		 * A savepoint is an instant during the current transaction that can be utilized by a rollback via the Connection#rollback command. Rolling back to a particular savepoint means that all changes that occurred after that savepoint are undone.
		 */
		interface ISavepoint {
			/**
			 * Returns the constructed ID for this savepoint.
			 */
			getSavepointId(): number;
			/**
			 * Returns the name for this savepoint.
			 */
			getSavepointName(): string;
		}
		/**
		 * This class is an actual usage of the wrapper pattern for JDBC classes. Developers can get the delegate instance when the instance may be a proxy class.
		 */
		export class Wrapper implements java.sql.IWrapper {
			constructor(implementation: java.sql.IWrapper);
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			public unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			public isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export class SQLRecoverableException extends java.sql.SQLException {
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLRecoverableException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLRecoverableException>;
		}
		/**
		 * A Java interface representing the SQL BLOB type.
		 */
		interface IBlob {
			/**
			 * Retrieves this Blob object as a binary stream.
			 */
			getBinaryStream(): java.io.InputStream;
			/**
			 * Retrieves length bytes from this Blob, starting at 1-based offset pos, and returns them as a binary stream.
			 */
			getBinaryStream(pos: number, length: number): java.io.InputStream;
			/**
			 * Gets a portion of the value of this Blob as an array of bytes.
			 * @param pos 
			 * @param length 
			 */
			getBytes(pos: number, length: number): native.Array<number>;
			/**
			 * Gets the number of bytes in this Blob object.
			 */
			length(): any;
			/**
			 * Search for the position in this Blob at which a specified pattern begins, starting at a specified position within the Blob.
			 * @param pattern 
			 * @param start 
			 */
			position(pattern: java.sql.IBlob, start: number): any;
			/**
			 * Search for the position in this Blob at which the specified pattern begins, starting at a specified position within the Blob.
			 * @param pattern 
			 * @param start 
			 */
			position(pattern: native.Array<number>, start: number): any;
			/**
			 * Gets a stream that can be used to write binary data to this Blob.
			 * @param pos 
			 */
			setBinaryStream(pos: number): java.io.OutputStream;
			/**
			 * Writes a specified array of bytes to this Blob object, starting at a specified position. Returns the number of bytes written.
			 * @param pos 
			 * @param theBytes 
			 */
			setBytes(pos: number, theBytes: native.Array<number>): number;
			/**
			 * Writes a portion of a specified byte array to this Blob. Returns the number of bytes written.
			 * @param pos 
			 * @param theBytes 
			 * @param offset 
			 * @param len 
			 */
			setBytes(pos: number, theBytes: native.Array<number>, offset: number, len: number): number;
			/**
			 * Truncate the value of this Blob object to a specified length in bytes.
			 * @param len 
			 */
			truncate(len: number): void;
			/**
			 * Frees any resources held by this blob. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing).
			 */
			free(): void;
		}
		/**
		 * A Java interface representing the SQL BLOB type.
		 */
		export class Blob implements java.sql.IBlob {
			constructor(implementation: java.sql.IBlob);
			/**
			 * Retrieves this Blob object as a binary stream.
			 */
			public getBinaryStream(): java.io.InputStream;
			/**
			 * Retrieves length bytes from this Blob, starting at 1-based offset pos, and returns them as a binary stream.
			 */
			public getBinaryStream(pos: number, length: number): java.io.InputStream;
			/**
			 * Gets a portion of the value of this Blob as an array of bytes.
			 * @param pos 
			 * @param length 
			 */
			public getBytes(pos: number, length: number): native.Array<number>;
			/**
			 * Gets the number of bytes in this Blob object.
			 */
			public length(): any;
			/**
			 * Search for the position in this Blob at which a specified pattern begins, starting at a specified position within the Blob.
			 * @param pattern 
			 * @param start 
			 */
			public position(pattern: java.sql.IBlob, start: number): any;
			/**
			 * Search for the position in this Blob at which the specified pattern begins, starting at a specified position within the Blob.
			 * @param pattern 
			 * @param start 
			 */
			public position(pattern: native.Array<number>, start: number): any;
			/**
			 * Gets a stream that can be used to write binary data to this Blob.
			 * @param pos 
			 */
			public setBinaryStream(pos: number): java.io.OutputStream;
			/**
			 * Writes a specified array of bytes to this Blob object, starting at a specified position. Returns the number of bytes written.
			 * @param pos 
			 * @param theBytes 
			 */
			public setBytes(pos: number, theBytes: native.Array<number>): number;
			/**
			 * Writes a portion of a specified byte array to this Blob. Returns the number of bytes written.
			 * @param pos 
			 * @param theBytes 
			 * @param offset 
			 * @param len 
			 */
			public setBytes(pos: number, theBytes: native.Array<number>, offset: number, len: number): number;
			/**
			 * Truncate the value of this Blob object to a specified length in bytes.
			 * @param len 
			 */
			public truncate(len: number): void;
			/**
			 * Frees any resources held by this blob. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing).
			 */
			public free(): void;
		}
		/**
		 * This interface represents an SQL Ref - a data object containing a cursor or pointer to a result table.
		 */
		interface IRef {
			/**
			 * Gets the fully-qualified SQL name of the SQL structured type that this Ref references.
			 */
			getBaseTypeName(): string;
			/**
			 * Gets the SQL structured type instance referenced by this Ref.
			 */
			getObject(): any;
			/**
			 * Returns the associated object and uses the relevant mapping to convert it to a Java type.
			 * @param map 
			 */
			getObject(map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Sets the value of the structured type that this Ref references to a supplied object.
			 * @param value 
			 */
			setObject(value: any): void;
		}
		/**
		 * An interface which provides comprehensive information about the database management system and its supported features.
		 */
		export class DatabaseMetaData implements java.sql.IWrapper, java.sql.IDatabaseMetaData {
			constructor(implementation: java.sql.IDatabaseMetaData);
			/**
			 * States that it may not be permitted to store NULL values.
			 */
			static attributeNoNulls: number;
			/**
			 * States that NULL values are definitely permitted.
			 */
			static attributeNullable: number;
			/**
			 * States that whether NULL values are permitted is unknown.
			 */
			static attributeNullableUnknown: number;
			/**
			 * States the best row identifier is <em>NOT</em> a pseudo column.
			 */
			static bestRowNotPseudo: number;
			/**
			 * States that the best row identifier is a pseudo column.
			 */
			static bestRowPseudo: number;
			/**
			 * States that the remainder of the current session is used as the scope for the best row identifier.
			 */
			static bestRowSession: number;
			/**
			 * States that best row identifier scope lasts only while the row is being used.
			 */
			static bestRowTemporary: number;
			/**
			 * States that the remainder of the current transaction is used as the scope for the best row identifier.
			 */
			static bestRowTransaction: number;
			/**
			 * States that the best row identifier may or may not be a pseudo column.
			 */
			static bestRowUnknown: number;
			/**
			 * States that the column must not allow NULL values.
			 */
			static columnNoNulls: number;
			/**
			 * States that the column definitely allows NULL values.
			 */
			static columnNullable: number;
			/**
			 * States that it is unknown whether the columns may be nulled.
			 */
			static columnNullableUnknown: number;
			/**
			 * For the column UPDATE_RULE, states that when the primary key is updated, the foreign key (imported key) is changed accordingly.
			 */
			static importedKeyCascade: number;
			/**
			 * States that the evaluation of foreign key constraints is deferred (delayed until commit).
			 */
			static importedKeyInitiallyDeferred: number;
			/**
			 * States that the evaluation of foreign key constraint is IMMEDIATE .
			 */
			static importedKeyInitiallyImmediate: number;
			/**
			 * For the columns UPDATE_RULE and DELETE_RULE, states that if the primary key has been imported, it cannot be updated or deleted.
			 */
			static importedKeyNoAction: number;
			/**
			 * States that the evaluation of foreign key constraint must not be DEFERRED.
			 */
			static importedKeyNotDeferrable: number;
			/**
			 * States that a primary key must not be updated when imported as a foreign key by some other table. Used for the column UPDATE_RULE.
			 */
			static importedKeyRestrict: number;
			/**
			 * States that when the primary key is modified (updated or deleted) the foreign (imported) key is changed to its default value. Applies to the UPDATE_RULE and DELETE_RULE columns.
			 */
			static importedKeySetDefault: number;
			/**
			 * States that when the primary key is modified (updated or deleted) the foreign (imported) key is changed to NULL. Applies to the UPDATE_RULE and DELETE_RULE columns.
			 */
			static importedKeySetNull: number;
			/**
			 * States that the column stores IN type parameters.
			 */
			static procedureColumnIn: number;
			/**
			 * States that this column stores INOUT type parameters.
			 */
			static procedureColumnInOut: number;
			/**
			 * States that this column stores OUT type parameters.
			 */
			static procedureColumnOut: number;
			/**
			 * States that the column stores results.
			 */
			static procedureColumnResult: number;
			/**
			 * States that the column stores return values.
			 */
			static procedureColumnReturn: number;
			/**
			 * States that type of the column is unknown.
			 */
			static procedureColumnUnknown: number;
			/**
			 * States that NULL values are not permitted.
			 */
			static procedureNoNulls: number;
			/**
			 * States that the procedure does not return a result.
			 */
			static procedureNoResult: number;
			/**
			 * States that NULL values are permitted.
			 */
			static procedureNullable: number;
			/**
			 * States that it is unknown whether NULL values are permitted.
			 */
			static procedureNullableUnknown: number;
			/**
			 * States that it is unknown whether or not the procedure returns a result.
			 */
			static procedureResultUnknown: number;
			/**
			 * States that the procedure returns a result.
			 */
			static procedureReturnsResult: number;
			/**
			 * States that the value is an SQL99 SQLSTATE value.
			 */
			static sqlStateSQL99: number;
			/**
			 * States that the value is an SQL CLI SQLSTATE value as defined by the X/Open standard.
			 */
			static sqlStateXOpen: number;
			/**
			 * States that this table index is a clustered index.
			 */
			static tableIndexClustered: number;
			/**
			 * States that this table index is a hashed index.
			 */
			static tableIndexHashed: number;
			/**
			 * States this table's index is neither a clustered index, not a hashed index, and not a table statistics index; i.e. it is something else.
			 */
			static tableIndexOther: number;
			/**
			 * States this column has the table's statistics, and that it is returned in conjunction with the table's index description.
			 */
			static tableIndexStatistic: number;
			/**
			 * States that a NULL value is <em>NOT</em> permitted for this data type.
			 */
			static typeNoNulls: number;
			/**
			 * States that a NULL value is permitted for this data type.
			 */
			static typeNullable: number;
			/**
			 * States that it is unknown if a NULL value is permitted for this data type.
			 */
			static typeNullableUnknown: number;
			/**
			 * States that this column shall not be used for WHERE statements with a LIKE clause.
			 */
			static typePredBasic: number;
			/**
			 * States that this column can only be used in a WHERE...LIKE statement.
			 */
			static typePredChar: number;
			/**
			 * States that this column does not support searches.
			 */
			static typePredNone: number;
			/**
			 * States that the column is searchable.
			 */
			static typeSearchable: number;
			/**
			 * States that the version column is known to be not a pseudo column.
			 */
			static versionColumnNotPseudo: number;
			/**
			 * States that this version column is known to be a pseudo column.
			 */
			static versionColumnPseudo: number;
			/**
			 * States that the version column may be a pseudo column or not.
			 */
			static versionColumnUnknown: number;
			/**
			 * States that the method DatabaseMetaData.getSQLStateType may returns an SQLSTATE value or not.
			 */
			static sqlStateSQL: number;
			/**
			 * States that the parameter or column is an IN parameter
			 */
			static functionColumnIn: number;
			/**
			 * States that the parameter or column is an INOUT parameter
			 */
			static functionColumnInOut: number;
			/**
			 * States that the parameter or column is an OUT parameter
			 */
			static functionColumnOut: number;
			/**
			 * States that the parameter or column is a return value
			 */
			static functionReturn: number;
			/**
			 * States that the parameter of function is unknown
			 */
			static functionColumnUnknown: number;
			/**
			 * States that the parameter or column is a column in a result set
			 */
			static functionColumnResult: number;
			/**
			 * States that NULL values are not allowed
			 */
			static functionNoNulls: number;
			/**
			 * States that NULL values are allowed
			 */
			static functionNullable: number;
			/**
			 * States that whether NULL values are allowed is unknown
			 */
			static functionNullableUnknown: number;
			/**
			 * States that it is not known whether the function returns a result or a table
			 */
			static functionResultUnknown: number;
			/**
			 * States that the function does not return a table
			 */
			static functionNoTable: number;
			/**
			 * States that the function returns a table.
			 */
			static functionReturnsTable: number;
			/**
			 * Returns whether all procedures returned by #getProcedures can be called by the current user.
			 */
			public allProceduresAreCallable(): boolean;
			/**
			 * Returns whether all the tables returned by getTables can be used by the current user in a SELECT statement.
			 */
			public allTablesAreSelectable(): boolean;
			/**
			 * Returns whether a data definition statement in a transaction forces a commit of the transaction.
			 */
			public dataDefinitionCausesTransactionCommit(): boolean;
			/**
			 * Returns whether the database ignores data definition statements within a transaction.
			 */
			public dataDefinitionIgnoredInTransactions(): boolean;
			/**
			 * Returns whether a visible row delete can be detected by calling ResultSet#rowDeleted.
			 * @param type 
			 */
			public deletesAreDetected(type: number): boolean;
			/**
			 * Returns whether the return value of getMaxRowSize includes the SQL data types LONGVARCHAR and LONGVARBINARY.
			 */
			public doesMaxRowSizeIncludeBlobs(): boolean;
			/**
			 * Returns a ResultSet describing a subset of the attributes of a specified SQL User Defined Type (UDT) for a specified schema and catalog. The subset is determined by restricting to those attributes whose name matches the attributeNamePattern and whose type name matches the typeNamePattern. Each row of the ResultSet describes one attribute, and the rows are ordered by the columns TYPE_SCHEM, TYPE_NAME and ORDINAL_POSITION. Inherited attributes are not included.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param typeNamePattern 
			 * @param attributeNamePattern 
			 */
			public getAttributes(catalog: string, schemaPattern: string, typeNamePattern: string, attributeNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a list of a table's optimal set of columns that uniquely identify the rows. The results are ordered by SCOPE (see below).
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 * @param scope 
			 * @param nullable 
			 */
			public getBestRowIdentifier(catalog: string, schema: string, table: string, scope: number, nullable: boolean): java.sql.IResultSet;
			/**
			 * Returns the set of catalog names available in this database. The set is returned ordered by catalog name.
			 */
			public getCatalogs(): java.sql.IResultSet;
			/**
			 * Returns the separator that this database uses between a catalog name and table name.
			 */
			public getCatalogSeparator(): string;
			/**
			 * Returns the term that the database vendor prefers term for "catalog".
			 */
			public getCatalogTerm(): string;
			/**
			 * Returns a description of access rights for a table's columns. Only access rights matching the criteria for the column name are returned.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 * @param columnNamePattern 
			 */
			public getColumnPrivileges(catalog: string, schema: string, table: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a description of table columns available in a specified catalog. Only descriptions meeting the specified catalog, schema, table, and column names are returned.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 * @param columnNamePattern 
			 */
			public getColumns(catalog: string, schemaPattern: string, tableNamePattern: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the database connection that created this metadata.
			 */
			public getConnection(): java.sql.IConnection;
			/**
			 * Returns a list of foreign key columns in a given foreign key table that reference the primary key columns of a supplied primary key table. This describes how one table imports the key of another table. It would be expected to return a single foreign key - primary key pair in most cases.
			 * @param primaryCatalog 
			 * @param primarySchema 
			 * @param primaryTable 
			 * @param foreignCatalog 
			 * @param foreignSchema 
			 * @param foreignTable 
			 */
			public getCrossReference(primaryCatalog: string, primarySchema: string, primaryTable: string, foreignCatalog: string, foreignSchema: string, foreignTable: string): java.sql.IResultSet;
			/**
			 * Returns the major version number of the database software.
			 */
			public getDatabaseMajorVersion(): number;
			/**
			 * Returns the minor version number of the database software.
			 */
			public getDatabaseMinorVersion(): number;
			/**
			 * Returns the name of the database software.
			 */
			public getDatabaseProductName(): string;
			/**
			 * Returns the version number of this database software.
			 */
			public getDatabaseProductVersion(): string;
			/**
			 * Returns the default transaction isolation level for this database.
			 */
			public getDefaultTransactionIsolation(): number;
			/**
			 * Returns the JDBC driver's major version number.
			 */
			public getDriverMajorVersion(): number;
			/**
			 * Returns the JDBC driver's minor version number.
			 */
			public getDriverMinorVersion(): number;
			/**
			 * Returns the name of this JDBC driver.
			 */
			public getDriverName(): string;
			/**
			 * Returns the version number of this JDBC driver.
			 */
			public getDriverVersion(): string;
			/**
			 * Returns a list of the foreign key columns that reference the primary key columns of a specified table (the foreign keys exported by a table).
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			public getExportedKeys(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Returns a string of characters that may be used in unquoted identifier names. The characters a-z, A-Z, 0-9 and _ are always permitted.
			 */
			public getExtraNameCharacters(): string;
			/**
			 * Returns the string used to quote SQL identifiers. Returns " " (space) if identifier quoting not supported.
			 */
			public getIdentifierQuoteString(): string;
			/**
			 * Returns a list columns in a table that are both primary keys and referenced by the table's foreign key columns (that is, the primary keys imported by a table).
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			public getImportedKeys(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Returns a list of indices and statistics for a specified table.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 * @param unique 
			 * @param approximate 
			 */
			public getIndexInfo(catalog: string, schema: string, table: string, unique: boolean, approximate: boolean): java.sql.IResultSet;
			/**
			 * Returns this driver's major JDBC version number.
			 */
			public getJDBCMajorVersion(): number;
			/**
			 * Returns the minor JDBC version number for this driver.
			 */
			public getJDBCMinorVersion(): number;
			/**
			 * Get the maximum number of hex characters in an in-line binary literal for this database.
			 */
			public getMaxBinaryLiteralLength(): number;
			/**
			 * Returns the maximum size of a catalog name in this database.
			 */
			public getMaxCatalogNameLength(): number;
			/**
			 * Returns the maximum size for a character literal in this database.
			 */
			public getMaxCharLiteralLength(): number;
			/**
			 * Returns the maximum size for a Column name for this database.
			 */
			public getMaxColumnNameLength(): number;
			/**
			 * Get the maximum number of columns in a GROUP BY clause for this database.
			 */
			public getMaxColumnsInGroupBy(): number;
			/**
			 * Returns the maximum number of columns in an Index for this database.
			 */
			public getMaxColumnsInIndex(): number;
			/**
			 * Returns the maximum number of columns in an ORDER BY clause for this database.
			 */
			public getMaxColumnsInOrderBy(): number;
			/**
			 * Returns the maximum number of columns in a SELECT list for this database.
			 */
			public getMaxColumnsInSelect(): number;
			/**
			 * Returns the maximum number of columns in a table for this database.
			 */
			public getMaxColumnsInTable(): number;
			/**
			 * Returns the database's maximum number of concurrent connections.
			 */
			public getMaxConnections(): number;
			/**
			 * Returns the maximum length of a cursor name for this database.
			 */
			public getMaxCursorNameLength(): number;
			/**
			 * Returns the maximum length in bytes for an Index for this database. This covers all the parts of a composite index.
			 */
			public getMaxIndexLength(): number;
			/**
			 * Returns the maximum number of characters for a procedure name in this database.
			 */
			public getMaxProcedureNameLength(): number;
			/**
			 * Returns the maximum number of bytes within a single row for this database.
			 */
			public getMaxRowSize(): number;
			/**
			 * Returns the maximum number of characters in a schema name for this database.
			 */
			public getMaxSchemaNameLength(): number;
			/**
			 * Returns the maximum number of characters in an SQL statement for this database.
			 */
			public getMaxStatementLength(): number;
			/**
			 * Get the maximum number of simultaneously open active statements for this database.
			 */
			public getMaxStatements(): number;
			/**
			 * Returns the maximum size for a table name in the database.
			 */
			public getMaxTableNameLength(): number;
			/**
			 * Returns the maximum number of tables permitted in a SELECT statement for the database.
			 */
			public getMaxTablesInSelect(): number;
			/**
			 * Returns the maximum number of characters in a user name for the database.
			 */
			public getMaxUserNameLength(): number;
			/**
			 * Returns a list of the math functions available with this database. These are used in the JDBC function escape clause and are the Open Group CLI math function names.
			 */
			public getNumericFunctions(): string;
			/**
			 * Returns a list of the primary key columns of a specified table.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			public getPrimaryKeys(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Returns a list of parameter and result columns for the stored procedures belonging to a specified catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param procedureNamePattern 
			 * @param columnNamePattern 
			 */
			public getProcedureColumns(catalog: string, schemaPattern: string, procedureNamePattern: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a list of the stored procedures available in a specified catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param procedureNamePattern 
			 */
			public getProcedures(catalog: string, schemaPattern: string, procedureNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the database vendor's preferred name for "procedure".
			 */
			public getProcedureTerm(): string;
			/**
			 * Returns the result set's default holdability.
			 */
			public getResultSetHoldability(): number;
			/**
			 * Returns a list of the schema names in the database. The list is returned as a ResultSet, ordered by the schema name, with one row per schema in the following format: <ol> <li>TABLE_SCHEM - String - the schema name</li> <li>TABLE_CATALOG - String - the catalog name (possibly null) </li> </ol>
			 */
			public getSchemas(): java.sql.IResultSet;
			/**
			 * Returns the database vendor's preferred term for "schema".
			 */
			public getSchemaTerm(): string;
			/**
			 * Returns the string that is used to escape wildcard characters. This string is used to escape the '_' and '%' wildcard characters in catalog search pattern strings. '_' is used to represent any single character while '%' is used for a sequence of zero or more characters.
			 */
			public getSearchStringEscape(): string;
			/**
			 * Returns a list of all the SQL keywords that are NOT also SQL92 keywords for the database.
			 */
			public getSQLKeywords(): string;
			/**
			 * States the type of SQLState value returned by SQLException.getSQLState. This can either be the X/Open (now known as Open Group) SQL CLI form or the SQL99 form.
			 */
			public getSQLStateType(): number;
			/**
			 * Returns a list of string functions available with the database. These functions are used in JDBC function escape clause and follow the Open Group CLI string function names definition.
			 */
			public getStringFunctions(): string;
			/**
			 * Returns a listing of the hierarchies of tables in a specified schema in the database.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 */
			public getSuperTables(catalog: string, schemaPattern: string, tableNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the User Defined Type (UDT) hierarchies for a given schema. Only the immediate parent/child relationship is described. If a UDT does not have a direct supertype, it is not listed.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param typeNamePattern 
			 */
			public getSuperTypes(catalog: string, schemaPattern: string, typeNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a list of system functions available with the database. These are names used in the JDBC function escape clause and are Open Group CLI function names.
			 */
			public getSystemFunctions(): string;
			/**
			 * Returns a description of access rights for each table present in a catalog. Table privileges can apply to one or more columns in the table - but are not guaranteed to apply to all columns.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 */
			public getTablePrivileges(catalog: string, schemaPattern: string, tableNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a description of the tables in a specified catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 * @param types 
			 */
			public getTables(catalog: string, schemaPattern: string, tableNamePattern: string, types: native.Array<string>): java.sql.IResultSet;
			/**
			 * Returns a list of table types supported by the database.
			 */
			public getTableTypes(): java.sql.IResultSet;
			/**
			 * Returns a list of time and date functions available for the database.
			 */
			public getTimeDateFunctions(): string;
			/**
			 * Get a list of the standard SQL types supported by this database. The list is returned as a ResultSet, with one row for each type, ordered by the DATA_TYPE value, where the data in each row is structured into the following columns: <ol> <li>TYPE_NAME - String : the type name</li> <li>DATA_TYPE - int : the SQL data type value as defined in java.sql.Types</li> <li>PRECISION - int - the maximum precision of the type</li> <li>LITERAL_PREFIX - String : the prefix to be used when quoting a literal value (possibly null)</li> <li>LITERAL_SUFFIX - String : the suffix to be used when quoting a literal value (possibly null)</li> <li>CREATE_PARAMS - String : params used when creating the type (possibly null)</li> <li>NULLABLE - short : shows if the value is nullable: <ul> <li>DatabaseMetaData.typeNoNulls : NULLs not permitted</li> <li>DatabaseMetaData.typeNullable : NULLs are permitted</li> <li>DatabaseMetaData.typeNullableUnknown : NULL status unknown</li> </ul> </li> <li>CASE_SENSITIVE - boolean : true if the type is case sensitive </li> <li>SEARCHABLE - short : how this type can be used with WHERE clauses: <ul> <li>DatabaseMetaData.typePredNone - WHERE clauses cannot be used</li> <li>DatabaseMetaData.typePredChar - support for WHERE...LIKE only</li> <li>DatabaseMetaData.typePredBasic - support except for WHERE...LIKE</li> <li>DatabaseMetaData.typeSearchable - support for all WHERE clauses</li> </ul> </li> <li>UNSIGNED_ATTRIBUTE - boolean - the type is unsigned or not</li> <li>FIXED_PREC_SCALE - boolean - fixed precision = it can be used as a money value</li> <li>AUTO_INCREMENT - boolean - can be used as an auto-increment value</li> <li>LOCAL_TYPE_NAME - String - a localized version of the type name (possibly null)</li> <li>MINIMUM_SCALE - short - the minimum scale supported</li> <li>MAXIMUM_SCALE - short - the maximum scale supported</li> <li>SQL_DATA_TYPE - int - not used</li> <li>SQL_DATETIME_SUB - int - not used</li> <li>NUM_PREC_RADIX - int - number radix (typically 2 or 10)</li> </ol>
			 */
			public getTypeInfo(): java.sql.IResultSet;
			/**
			 * Returns a description of the User Defined Types (UDTs) defined in a given schema, which includes the types DISTINCT, STRUCT and JAVA_OBJECT.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param typeNamePattern 
			 * @param types 
			 */
			public getUDTs(catalog: string, schemaPattern: string, typeNamePattern: string, types: native.Array<number>): java.sql.IResultSet;
			/**
			 * Returns the URL for this database.
			 */
			public getURL(): string;
			/**
			 * Determine the user name as known by the database.
			 */
			public getUserName(): string;
			/**
			 * Returns which of a table's columns are automatically updated when any value in a row is updated.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			public getVersionColumns(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Determines whether a visible row insert can be detected by calling ResultSet.rowInserted.
			 * @param type 
			 */
			public insertsAreDetected(type: number): boolean;
			/**
			 * Determine whether a fully qualified table name is prefixed or suffixed to a fully qualified table name.
			 */
			public isCatalogAtStart(): boolean;
			/**
			 * Determines whether the database is in read-only mode.
			 */
			public isReadOnly(): boolean;
			/**
			 * Determines whether updates are made to a copy of, or directly on, Large Objects (LOBs).
			 */
			public locatorsUpdateCopy(): boolean;
			/**
			 * Determines whether the database handles concatenations between NULL and non-NULL values by producing a NULL output.
			 */
			public nullPlusNonNullIsNull(): boolean;
			/**
			 * Determines whether NULL values are always sorted to the end of sorted results regardless of requested sort order. This means that they will appear at the end of sorted lists whatever other non-NULL values may be present.
			 */
			public nullsAreSortedAtEnd(): boolean;
			/**
			 * Determines whether NULL values are always sorted at the start of the sorted list, irrespective of the sort order. This means that they appear at the start of sorted lists, whatever other values may be present.
			 */
			public nullsAreSortedAtStart(): boolean;
			/**
			 * Determines whether NULL values are sorted high - i.e. they are sorted as if they are higher than any other values.
			 */
			public nullsAreSortedHigh(): boolean;
			/**
			 * Determines whether NULL values are sorted low - i.e. they are sorted as if they are lower than any other values.
			 */
			public nullsAreSortedLow(): boolean;
			/**
			 * Determines whether deletes made by others are visible, for a specified ResultSet type.
			 * @param type 
			 */
			public othersDeletesAreVisible(type: number): boolean;
			/**
			 * Determines whether inserts made by others are visible, for a specified ResultSet type.
			 * @param type 
			 */
			public othersInsertsAreVisible(type: number): boolean;
			/**
			 * Determines whether updates made by others are visible, for a specified ResultSet type.
			 * @param type 
			 */
			public othersUpdatesAreVisible(type: number): boolean;
			/**
			 * Determines whether a ResultSet can see its own deletes, for a specified ResultSet type.
			 * @param type 
			 */
			public ownDeletesAreVisible(type: number): boolean;
			/**
			 * Determines whether a ResultSet can see its own inserts, for a specified ResultSet type.
			 * @param type 
			 */
			public ownInsertsAreVisible(type: number): boolean;
			/**
			 * Determines whether a ResultSet can see its own updates, for a specified ResultSet type.
			 * @param type 
			 */
			public ownUpdatesAreVisible(type: number): boolean;
			/**
			 * Determines whether the database treats SQL identifiers that are in mixed case (and unquoted) as case insensitive. If true then the database stores them in lower case.
			 */
			public storesLowerCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case quoted SQL identifiers as case insensitive and stores them in lower case.
			 */
			public storesLowerCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case unquoted SQL identifiers as case insensitive and stores them in mixed case.
			 */
			public storesMixedCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers identifiers as case insensitive if they are mixed case quoted SQL. The database stores them in mixed case.
			 */
			public storesMixedCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case unquoted SQL identifiers as case insensitive and stores them in upper case.
			 */
			public storesUpperCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case quoted SQL identifiers as case insensitive and stores them in upper case.
			 */
			public storesUpperCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether the database supports ALTER TABLE operation with ADD COLUMN.
			 */
			public supportsAlterTableWithAddColumn(): boolean;
			/**
			 * Determines whether the database supports ALTER TABLE operation with DROP COLUMN.
			 */
			public supportsAlterTableWithDropColumn(): boolean;
			/**
			 * Determines whether the database supports the ANSI92 entry level SQL grammar.
			 */
			public supportsANSI92EntryLevelSQL(): boolean;
			/**
			 * Determines whether the database supports the ANSI92 full SQL grammar.
			 */
			public supportsANSI92FullSQL(): boolean;
			/**
			 * Determines whether the database supports the ANSI92 intermediate SQL Grammar.
			 */
			public supportsANSI92IntermediateSQL(): boolean;
			/**
			 * Determines whether the database supports batch updates.
			 */
			public supportsBatchUpdates(): boolean;
			/**
			 * Determines whether catalog names may be used in data manipulation statements.
			 */
			public supportsCatalogsInDataManipulation(): boolean;
			/**
			 * Determines whether catalog names can be used in index definition statements.
			 */
			public supportsCatalogsInIndexDefinitions(): boolean;
			/**
			 * Determines whether catalog names can be used in privilege definition statements.
			 */
			public supportsCatalogsInPrivilegeDefinitions(): boolean;
			/**
			 * Determines whether catalog names can be used in procedure call statements.
			 */
			public supportsCatalogsInProcedureCalls(): boolean;
			/**
			 * Determines whether catalog names may be used in table definition statements.
			 */
			public supportsCatalogsInTableDefinitions(): boolean;
			/**
			 * Determines whether the database supports column aliasing.
			 */
			public supportsColumnAliasing(): boolean;
			/**
			 * Determines whether the database supports the CONVERT operation between SQL types.
			 */
			public supportsConvert(): boolean;
			/**
			 * Determines whether the database supports CONVERT operation for two supplied SQL types.
			 * @param fromType 
			 * @param toType 
			 */
			public supportsConvert(fromType: number, toType: number): boolean;
			/**
			 * Determines whether the database supports the Core SQL Grammar for ODBC.
			 */
			public supportsCoreSQLGrammar(): boolean;
			/**
			 * Determines whether the database supports correlated sub-queries.
			 */
			public supportsCorrelatedSubqueries(): boolean;
			/**
			 * Determines whether the database allows both data definition and data manipulation statements inside a transaction.
			 */
			public supportsDataDefinitionAndDataManipulationTransactions(): boolean;
			/**
			 * Determines whether the database only allows data manipulation statements inside a transaction.
			 */
			public supportsDataManipulationTransactionsOnly(): boolean;
			/**
			 * Determines whether table correlation names are required to be different from the names of the tables, when they are supported.
			 */
			public supportsDifferentTableCorrelationNames(): boolean;
			/**
			 * Determines whether expressions in ORDER BY lists are supported.
			 */
			public supportsExpressionsInOrderBy(): boolean;
			/**
			 * Determines whether the Extended SQL Grammar for ODBC is supported.
			 */
			public supportsExtendedSQLGrammar(): boolean;
			/**
			 * Determines whether the database supports full nested outer joins.
			 */
			public supportsFullOuterJoins(): boolean;
			/**
			 * Determines whether auto generated keys can be returned when a statement executes.
			 */
			public supportsGetGeneratedKeys(): boolean;
			/**
			 * Determines whether the database supports GROUP BY clauses.
			 */
			public supportsGroupBy(): boolean;
			/**
			 * Determines whether the database supports using a column name in a GROUP BY clause not included in the SELECT statement as long as all of the columns in the SELECT statement are used in the GROUP BY clause.
			 */
			public supportsGroupByBeyondSelect(): boolean;
			/**
			 * Determines whether the database supports using a column name in a GROUP BY clause that is not in the SELECT statement.
			 */
			public supportsGroupByUnrelated(): boolean;
			/**
			 * Determines whether the database supports SQL Integrity Enhancement Facility.
			 */
			public supportsIntegrityEnhancementFacility(): boolean;
			/**
			 * Determines whether the database supports a LIKE escape clause.
			 */
			public supportsLikeEscapeClause(): boolean;
			/**
			 * Determines whether the database provides limited support for outer join operations.
			 */
			public supportsLimitedOuterJoins(): boolean;
			/**
			 * Determines whether the database supports Minimum SQL Grammar for ODBC.
			 */
			public supportsMinimumSQLGrammar(): boolean;
			/**
			 * Determines whether the database treats mixed case unquoted SQL identifiers as case sensitive storing them in mixed case.
			 */
			public supportsMixedCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case quoted SQL identifiers as case sensitive, storing them in mixed case.
			 */
			public supportsMixedCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether it is possible for a single CallableStatement to return multiple ResultSets simultaneously.
			 */
			public supportsMultipleOpenResults(): boolean;
			/**
			 * Determines whether retrieving multiple ResultSets from a single call to the execute method is supported.
			 */
			public supportsMultipleResultSets(): boolean;
			/**
			 * Determines whether multiple simultaneous transactions on different connections are supported.
			 */
			public supportsMultipleTransactions(): boolean;
			/**
			 * Determines whether callable statements with named parameters is supported.
			 */
			public supportsNamedParameters(): boolean;
			/**
			 * Determines whether columns in the database can be defined as non-nullable.
			 */
			public supportsNonNullableColumns(): boolean;
			/**
			 * Determines whether keeping cursors open across commit operations is supported.
			 */
			public supportsOpenCursorsAcrossCommit(): boolean;
			/**
			 * Determines whether the database can keep cursors open across rollback operations.
			 */
			public supportsOpenCursorsAcrossRollback(): boolean;
			/**
			 * Determines whether keeping statements open across commit operations is supported.
			 */
			public supportsOpenStatementsAcrossCommit(): boolean;
			/**
			 * Determines whether keeping statements open across rollback operations is supported.
			 */
			public supportsOpenStatementsAcrossRollback(): boolean;
			/**
			 * Determines whether using a column in an ORDER BY clause that is not in the SELECT statement is supported.
			 */
			public supportsOrderByUnrelated(): boolean;
			/**
			 * Determines whether outer join operations are supported.
			 */
			public supportsOuterJoins(): boolean;
			/**
			 * Determines whether positioned DELETE statements are supported.
			 */
			public supportsPositionedDelete(): boolean;
			/**
			 * Determines whether positioned UPDATE statements are supported.
			 */
			public supportsPositionedUpdate(): boolean;
			/**
			 * Determines whether there is support for a given concurrency style for the given ResultSet.
			 * @param type 
			 * @param concurrency 
			 */
			public supportsResultSetConcurrency(type: number, concurrency: number): boolean;
			/**
			 * Determines whether the supplied ResultSet holdability mode is supported.
			 * @param holdability 
			 */
			public supportsResultSetHoldability(holdability: number): boolean;
			/**
			 * Determines whether the supplied ResultSet type is supported.
			 * @param type 
			 */
			public supportsResultSetType(type: number): boolean;
			/**
			 * Determines whether savepoints for transactions are supported.
			 */
			public supportsSavepoints(): boolean;
			/**
			 * Determines whether a schema name may be used in a data manipulation statement.
			 */
			public supportsSchemasInDataManipulation(): boolean;
			/**
			 * Determines whether a schema name may be used in an index definition statement.
			 */
			public supportsSchemasInIndexDefinitions(): boolean;
			/**
			 * Determines whether a database schema name can be used in a privilege definition statement.
			 */
			public supportsSchemasInPrivilegeDefinitions(): boolean;
			/**
			 * Determines whether a procedure call statement may be contain in a schema name.
			 */
			public supportsSchemasInProcedureCalls(): boolean;
			/**
			 * Determines whether a schema name can be used in a table definition statement.
			 */
			public supportsSchemasInTableDefinitions(): boolean;
			/**
			 * Determines whether the SELECT FOR UPDATE statement is supported.
			 */
			public supportsSelectForUpdate(): boolean;
			/**
			 * Determines whether statement pooling is supported.
			 */
			public supportsStatementPooling(): boolean;
			/**
			 * Determines whether stored procedure calls using the stored procedure escape syntax is supported.
			 */
			public supportsStoredProcedures(): boolean;
			/**
			 * Determines whether subqueries in comparison expressions are supported.
			 */
			public supportsSubqueriesInComparisons(): boolean;
			/**
			 * Determines whether subqueries in EXISTS expressions are supported.
			 */
			public supportsSubqueriesInExists(): boolean;
			/**
			 * Determines whether subqueries in IN statements are supported.
			 */
			public supportsSubqueriesInIns(): boolean;
			/**
			 * Determines whether subqueries in quantified expressions are supported.
			 */
			public supportsSubqueriesInQuantifieds(): boolean;
			/**
			 * Determines whether the database has table correlation names support.
			 */
			public supportsTableCorrelationNames(): boolean;
			/**
			 * Determines whether a specified transaction isolation level is supported.
			 * @param level 
			 */
			public supportsTransactionIsolationLevel(level: number): boolean;
			/**
			 * Determines whether transactions are supported.
			 */
			public supportsTransactions(): boolean;
			/**
			 * Determines whether the SQL UNION operation is supported.
			 */
			public supportsUnion(): boolean;
			/**
			 * Determines whether the SQL UNION ALL operation is supported.
			 */
			public supportsUnionAll(): boolean;
			/**
			 * Determines whether the method ResultSet.rowUpdated can detect a visible row update for the specified ResultSet type.
			 * @param type 
			 */
			public updatesAreDetected(type: number): boolean;
			/**
			 * Determines whether this database uses a file for each table.
			 */
			public usesLocalFilePerTable(): boolean;
			/**
			 * Determines whether this database uses a local file to store tables.
			 */
			public usesLocalFiles(): boolean;
			/**
			 * Determine if a SQLException while autoCommit is true indicates that all open ResultSets are closed, even ones that are holdable
			 */
			public autoCommitFailureClosesAllResultSets(): boolean;
			/**
			 * Returns a list of the client info properties of the driver.
			 */
			public getClientInfoProperties(): java.sql.IResultSet;
			/**
			 * Returns a description according to the given catalog's system or user function parameters and return type.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param functionNamePattern 
			 * @param columnNamePattern 
			 */
			public getFunctionColumns(catalog: string, schemaPattern: string, functionNamePattern: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a description of the system and user functions available according to the given catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param functionNamePattern 
			 */
			public getFunctions(catalog: string, schemaPattern: string, functionNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the lifetime for which a RowId object remains valid if this data source supports the SQL ROWID type
			 */
			public getRowIdLifetime(): java.sql.RowIdLifetime;
			/**
			 * Returns the schema names ordered by TABLE_CATALOG and TABLE_SCHEMA.
			 * @param catalog 
			 * @param schemaPattern 
			 */
			public getSchemas(catalog: string, schemaPattern: string): java.sql.IResultSet;
			/**
			 * Determine if this database supports invoking user-defined or vendor functions using the stored procedure escape syntax.
			 */
			public supportsStoredFunctionsUsingCallSyntax(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An exception which is thrown when a JDBC driver unexpectedly truncates a data value either when reading (resulting in warning), or when writing data (resulting in an error). The SQLState error code for truncated data is 01004.
		 */
		export class DataTruncation extends java.sql.SQLWarning implements java.io.ISerializable {
			/**
			 * Creates the DataTruncation object. The reason is set to "Data truncation", the error code is set to the SQLException default value, and the other fields are set to the values supplied as arguments.
			 * @param index 
			 * @param parameter 
			 * @param read 
			 * @param dataSize 
			 * @param transferSize 
			 */
			constructor(index: number, parameter: boolean, read: boolean, dataSize: number, transferSize: number);
			/**
			 * Creates a DataTruncation. The Reason is set to "Data truncation", the error code is set to the SQLException default value and other fields are set to the values supplied on this method.
			 * @param index 
			 * @param parameter 
			 * @param read 
			 * @param dataSize 
			 * @param transferSize 
			 * @param cause 
			 */
			constructor(index: number, parameter: boolean, read: boolean, dataSize: number, transferSize: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.DataTruncation>;
			/**
			 * Gets the number of bytes of data that should have been read/written.
			 */
			public getDataSize(): number;
			/**
			 * Gets the index of the column or of the parameter that was truncated.
			 */
			public getIndex(): number;
			/**
			 * Gets whether the value truncated was a parameter value or a column value.
			 */
			public getParameter(): boolean;
			/**
			 * Gets whether the value was truncated on a read operation or a write operation
			 */
			public getRead(): boolean;
			/**
			 * Gets the number of bytes of data that was actually read or written.
			 */
			public getTransferSize(): number;
		}
		/**
		 * An exception, which is subclass of SQLException, is thrown when the connection operation that failed will not succeed when the operation is retried without the cause of the failure being corrected.
		 */
		export class SQLNonTransientConnectionException extends java.sql.SQLNonTransientException {
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLNonTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLNonTransientConnectionException>;
		}
		/**
		 * Maps SQL's XML type into Java.
		 */
		export class SQLXML implements java.sql.ISQLXML {
			constructor(implementation: java.sql.ISQLXML);
			/**
			 * Frees any resources held by this object. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing). SQLException
			 */
			public free(): void;
			/**
			 * Returns a stream that can be used to read binary data from this SQL XML object. SQLException if an error occurs accessing the data
			 */
			public getBinaryStream(): java.io.InputStream;
			/**
			 * Returns a stream that can be used to write binary data to this SQL XML object. SQLException if an error occurs accessing the data
			 */
			public setBinaryStream(): java.io.OutputStream;
			/**
			 * Returns a reader that can be used to read character data from this SQL XML object. SQLException if an error occurs accessing the data
			 */
			public getCharacterStream(): java.io.Reader;
			/**
			 * Returns a writer that can be used to write character data to this SQL XML object. SQLException if an error occurs accessing the data
			 */
			public setCharacterStream(): java.io.Writer;
			/**
			 * Returns this object's data as an XML string. SQLException if an error occurs accessing the data
			 */
			public getString(): string;
			/**
			 * Sets this object's data to the given XML string. SQLException if an error occurs accessing the data
			 */
			public setString(value: string): void;
			/**
			 * Returns a Source for reading this object's data. SQLException if an error occurs accessing the data
			 */
			public getSource<T extends javax.xml.transform.ISource>(sourceClass: java.lang.Class<T>): T;
			/**
			 * Returns a Result for writing this object's data. SQLException if an error occurs accessing the data
			 */
			public setResult<T extends javax.xml.transform.IResult>(resultClass: java.lang.Class<T>): T;
		}
		export class SQLNonTransientException extends java.sql.SQLException {
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLNonTransientException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLNonTransientException>;
		}
		interface INClob extends java.sql.IClob {
			/**
			 * Gets the value of this Clob object as an ASCII stream.
			 */
			getAsciiStream(): java.io.InputStream;
			/**
			 * Gets the data of this Clob object in a java.io.Reader.
			 */
			getCharacterStream(): java.io.Reader;
			/**
			 * Gets a copy of a specified substring in this Clob.
			 * @param pos 
			 * @param length 
			 */
			getSubString(pos: number, length: number): string;
			/**
			 * Retrieves the number of characters in this Clob object.
			 */
			length(): any;
			/**
			 * Retrieves the character position at which a specified Clob object appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			position(searchstr: java.sql.IClob, start: number): any;
			/**
			 * Retrieves the character position at which a specified substring appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			position(searchstr: string, start: number): any;
			/**
			 * Retrieves a stream which can be used to write Ascii characters to this Clob object, starting at specified position.
			 * @param pos 
			 */
			setAsciiStream(pos: number): java.io.OutputStream;
			/**
			 * Retrieves a stream which can be used to write a stream of unicode characters to this Clob object, at a specified position.
			 * @param pos 
			 */
			setCharacterStream(pos: number): java.io.Writer;
			/**
			 * Writes a given Java String to this Clob object at a specified position.
			 * @param pos 
			 * @param str 
			 */
			setString(pos: number, str: string): number;
			/**
			 * Writes len characters of a string, starting at a specified character offset, to this Clob.
			 * @param pos 
			 * @param str 
			 * @param offset 
			 * @param len 
			 */
			setString(pos: number, str: string, offset: number, len: number): number;
			/**
			 * Truncates this Clob after the specified number of characters.
			 * @param len 
			 */
			truncate(len: number): void;
			/**
			 * Frees any resources held by this clob. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing).
			 */
			free(): void;
			/**
			 * Returns a Reader that reads length characters from this clob, starting at 1-based offset {code pos}.
			 */
			getCharacterStream(pos: number, length: number): java.io.Reader;
		}
		/**
		 * Interface used for executing static SQL statements to retrieve query results. The resulting table rows are returned as ResultSets. For any given Statement object, only one ResultSet can be opened at one time. A call to any of the execution methods of Statement will cause any previously created ResultSet object for that Statement to be closed implicitly.
		 */
		interface IStatement extends java.sql.IWrapper {
			/**
			 * Adds a specified SQL command to the list of commands for this Statement.
			 * @param sql 
			 */
			addBatch(sql: string): void;
			/**
			 * Cancels this statement's execution if both the database and the JDBC driver support aborting an SQL statement in flight. This method can be used by one thread to stop a statement that is executed on another thread.
			 */
			cancel(): void;
			/**
			 * Clears the current list of SQL commands for this statement.
			 */
			clearBatch(): void;
			/**
			 * Clears all SQLWarnings from this statement.
			 */
			clearWarnings(): void;
			/**
			 * Releases this statement's database and JDBC driver resources.
			 */
			close(): void;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets.
			 * @param sql 
			 */
			execute(sql: string): boolean;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets. This method allows control of whether auto-generated Keys should be made available for retrieval, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			execute(sql: string, autoGeneratedKeys: number): boolean;
			/**
			 * Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param columnIndexes 
			 */
			execute(sql: string, columnIndexes: native.Array<number>): boolean;
			/**
			 * Submits a batch of SQL commands to the database. Returns an array of update counts, if all the commands execute successfully.
			 */
			executeBatch(): native.Array<number>;
			/**
			 * Executes a supplied SQL statement. Returns a single ResultSet.
			 * @param sql 
			 */
			executeQuery(sql: string): java.sql.IResultSet;
			/**
			 * Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.
			 * @param sql 
			 */
			executeUpdate(sql: string): number;
			/**
			 * Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			executeUpdate(sql: string, autoGeneratedKeys: number): number;
			/**
			 * Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.
			 * @param sql 
			 * @param columnIndexes 
			 */
			executeUpdate(sql: string, columnIndexes: native.Array<number>): number;
			/**
			 * Gets the Connection object which created this statement.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Gets the default direction for fetching rows for ResultSets generated from this statement.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the default number of rows for a fetch for the ResultSet objects returned from this statement.
			 */
			getFetchSize(): number;
			/**
			 * Returns auto generated keys created by executing this statement.
			 */
			getGeneratedKeys(): java.sql.IResultSet;
			/**
			 * Gets the maximum number of bytes which can be returned as values from character and binary type columns in a ResultSet derived from this statement. This limit applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR types. Any data exceeding the maximum size is abandoned without announcement.
			 */
			getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows that a ResultSet can contain when produced from this statement. If the limit is exceeded, the excess rows are discarded silently.
			 */
			getMaxRows(): number;
			/**
			 * Moves to this statement's next result. Returns true if it is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are closed implicitly.
			 */
			getMoreResults(): boolean;
			/**
			 * Moves to this statement's next result. Returns true if the next result is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are handled as indicated by a supplied Flag parameter.
			 * @param current 
			 */
			getMoreResults(current: number): boolean;
			/**
			 * Gets the timeout value for the statement's execution time. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.
			 */
			getQueryTimeout(): number;
			/**
			 * Gets the current result. Should only be called once per result.
			 */
			getResultSet(): java.sql.IResultSet;
			/**
			 * Gets the concurrency setting for ResultSet objects generated by this statement.
			 */
			getResultSetConcurrency(): number;
			/**
			 * Gets the cursor hold setting for ResultSet objects generated by this statement.
			 */
			getResultSetHoldability(): number;
			/**
			 * Gets the ResultSet type setting for ResultSets derived from this statement.
			 */
			getResultSetType(): number;
			/**
			 * Gets an update count for the current result if it is not a ResultSet.
			 */
			getUpdateCount(): number;
			/**
			 * Retrieves the first SQLWarning reported by calls on this statement. If there are multiple warnings, subsequent warnings are chained to the first one. The chain of warnings is cleared each time the statement is executed.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Sets the SQL cursor name. This name is used by subsequent statement execute methods.
			 * @param name 
			 */
			setCursorName(name: string): void;
			/**
			 * Sets Escape Processing mode.
			 * @param enable 
			 */
			setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this statement. The default fetch direction is FETCH_FORWARD.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Sets the fetch size. This is a hint to the JDBC driver about how many rows should be fetched from the database when more are required by application processing.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Sets the maximum number of bytes for ResultSet columns that contain character or binary values. This applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR fields. Any data exceeding the maximum size is abandoned without announcement.
			 * @param max 
			 */
			setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows that any ResultSet can contain. If the number of rows exceeds this value, the additional rows are silently discarded.
			 * @param max 
			 */
			setMaxRows(max: number): void;
			/**
			 * Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a statement execution. If the timeout is exceeded, the query will throw an SQLException.
			 * @param seconds 
			 */
			setQueryTimeout(seconds: number): void;
			/**
			 * Returns true if this statement has been closed, false otherwise.
			 */
			isClosed(): boolean;
			/**
			 * Hints whether this statement should be pooled. Defaults to false for Statement, but true for CallableStatement and PreparedStatement. Pool manager implementations may or may not honor this hint.
			 */
			setPoolable(poolable: boolean): void;
			/**
			 * Returns true if this statement is poolable, false otherwise.
			 */
			isPoolable(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export module IStatement {
			/**
			 * Passing this constant to #getMoreResults implies that all ResultSet objects previously kept open should be closed.
			 */
			var CLOSE_ALL_RESULTS: number;
			/**
			 * Passing this constant to #getMoreResults implies that the current ResultSet object should be closed.
			 */
			var CLOSE_CURRENT_RESULT: number;
			/**
			 * Indicates that an error was encountered during execution of a batch statement.
			 */
			var EXECUTE_FAILED: number;
			/**
			 * Passing this constant to <i>getMoreResults</i> implies that the current ResultSet object should not be closed.
			 */
			var KEEP_CURRENT_RESULT: number;
			/**
			 * Indicates that generated keys should not be accessible for retrieval.
			 */
			var NO_GENERATED_KEYS: number;
			/**
			 * Indicates that generated keys should be accessible for retrieval.
			 */
			var RETURN_GENERATED_KEYS: number;
			/**
			 * Indicates that a batch statement was executed with a successful result, but a count of the number of rows it affected is unavailable.
			 */
			var SUCCESS_NO_INFO: number;
		}
		/**
		 * A Java interface mapping for the SQL CLOB type.
		 */
		export class Clob implements java.sql.IClob {
			constructor(implementation: java.sql.IClob);
			/**
			 * Gets the value of this Clob object as an ASCII stream.
			 */
			public getAsciiStream(): java.io.InputStream;
			/**
			 * Gets the data of this Clob object in a java.io.Reader.
			 */
			public getCharacterStream(): java.io.Reader;
			/**
			 * Gets a copy of a specified substring in this Clob.
			 * @param pos 
			 * @param length 
			 */
			public getSubString(pos: number, length: number): string;
			/**
			 * Retrieves the number of characters in this Clob object.
			 */
			public length(): any;
			/**
			 * Retrieves the character position at which a specified Clob object appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			public position(searchstr: java.sql.IClob, start: number): any;
			/**
			 * Retrieves the character position at which a specified substring appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			public position(searchstr: string, start: number): any;
			/**
			 * Retrieves a stream which can be used to write Ascii characters to this Clob object, starting at specified position.
			 * @param pos 
			 */
			public setAsciiStream(pos: number): java.io.OutputStream;
			/**
			 * Retrieves a stream which can be used to write a stream of unicode characters to this Clob object, at a specified position.
			 * @param pos 
			 */
			public setCharacterStream(pos: number): java.io.Writer;
			/**
			 * Writes a given Java String to this Clob object at a specified position.
			 * @param pos 
			 * @param str 
			 */
			public setString(pos: number, str: string): number;
			/**
			 * Writes len characters of a string, starting at a specified character offset, to this Clob.
			 * @param pos 
			 * @param str 
			 * @param offset 
			 * @param len 
			 */
			public setString(pos: number, str: string, offset: number, len: number): number;
			/**
			 * Truncates this Clob after the specified number of characters.
			 * @param len 
			 */
			public truncate(len: number): void;
			/**
			 * Frees any resources held by this clob. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing).
			 */
			public free(): void;
			/**
			 * Returns a Reader that reads length characters from this clob, starting at 1-based offset {code pos}.
			 */
			public getCharacterStream(pos: number, length: number): java.io.Reader;
		}
		/**
		 * A Java interface mapping for the SQL CLOB type.
		 */
		interface IClob {
			/**
			 * Gets the value of this Clob object as an ASCII stream.
			 */
			getAsciiStream(): java.io.InputStream;
			/**
			 * Gets the data of this Clob object in a java.io.Reader.
			 */
			getCharacterStream(): java.io.Reader;
			/**
			 * Gets a copy of a specified substring in this Clob.
			 * @param pos 
			 * @param length 
			 */
			getSubString(pos: number, length: number): string;
			/**
			 * Retrieves the number of characters in this Clob object.
			 */
			length(): any;
			/**
			 * Retrieves the character position at which a specified Clob object appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			position(searchstr: java.sql.IClob, start: number): any;
			/**
			 * Retrieves the character position at which a specified substring appears in this Clob object.
			 * @param searchstr 
			 * @param start 
			 */
			position(searchstr: string, start: number): any;
			/**
			 * Retrieves a stream which can be used to write Ascii characters to this Clob object, starting at specified position.
			 * @param pos 
			 */
			setAsciiStream(pos: number): java.io.OutputStream;
			/**
			 * Retrieves a stream which can be used to write a stream of unicode characters to this Clob object, at a specified position.
			 * @param pos 
			 */
			setCharacterStream(pos: number): java.io.Writer;
			/**
			 * Writes a given Java String to this Clob object at a specified position.
			 * @param pos 
			 * @param str 
			 */
			setString(pos: number, str: string): number;
			/**
			 * Writes len characters of a string, starting at a specified character offset, to this Clob.
			 * @param pos 
			 * @param str 
			 * @param offset 
			 * @param len 
			 */
			setString(pos: number, str: string, offset: number, len: number): number;
			/**
			 * Truncates this Clob after the specified number of characters.
			 * @param len 
			 */
			truncate(len: number): void;
			/**
			 * Frees any resources held by this clob. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing).
			 */
			free(): void;
			/**
			 * Returns a Reader that reads length characters from this clob, starting at 1-based offset {code pos}.
			 */
			getCharacterStream(pos: number, length: number): java.io.Reader;
		}
		/**
		 * Maps SQL's ROWID type into Java. 1.6
		 */
		export class RowId implements java.sql.IRowId {
			constructor(implementation: java.sql.IRowId);
			public equals(obj: any): boolean;
			/**
			 * Returns an array of bytes representing the value of the corresponding SQL ROWID.
			 */
			public getBytes(): native.Array<number>;
			public toString(): string;
			public hashCode(): number;
		}
		/**
		 * The SQLInput interface defines operations which apply to a type of input stream which carries a series of values representing an instance of an SQL structured type or SQL distinct type.
		 */
		interface ISQLInput {
			/**
			 * Returns the next attribute in the stream in the form of a String.
			 */
			readString(): string;
			/**
			 * Returns the next attribute in the stream in the form of a boolean .
			 */
			readBoolean(): boolean;
			/**
			 * Returns the next attribute in the stream in the form of a byte.
			 */
			readByte(): number;
			/**
			 * Returns the next attribute in the stream in the form of a short.
			 */
			readShort(): number;
			/**
			 * Returns the next attribute in the stream in the form of an int.
			 */
			readInt(): number;
			/**
			 * Returns the next attribute in the stream in the form of a long.
			 */
			readLong(): any;
			/**
			 * Returns the next attribute in the stream in the form of a float.
			 */
			readFloat(): number;
			/**
			 * Returns the next attribute in the stream in the form of a double.
			 */
			readDouble(): any;
			/**
			 * Returns the next attribute in the stream in the form of a java.math.BigDecimal.
			 */
			readBigDecimal(): java.math.BigDecimal;
			/**
			 * Returns the next attribute in the stream in the form of a byte array.
			 */
			readBytes(): native.Array<number>;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Date.
			 */
			readDate(): java.sql.Date;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Time.
			 */
			readTime(): java.sql.Time;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Timestamp.
			 */
			readTimestamp(): java.sql.Timestamp;
			/**
			 * Returns the next attribute in the stream in the form of a Unicode character stream embodied as a java.io.Reader.
			 */
			readCharacterStream(): java.io.Reader;
			/**
			 * Returns the next attribute in the stream in the form of an ASCII character stream embodied as a java.io.InputStream.
			 */
			readAsciiStream(): java.io.InputStream;
			/**
			 * Returns the next attribute in the stream in the form of a stream of bytes embodied as a java.io.InputStream.
			 */
			readBinaryStream(): java.io.InputStream;
			/**
			 * Returns the next attribute in the stream in the form of a java.lang.Object.
			 */
			readObject(): any;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Ref.
			 */
			readRef(): java.sql.IRef;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Blob.
			 */
			readBlob(): java.sql.IBlob;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Clob.
			 */
			readClob(): java.sql.IClob;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Array.
			 */
			readArray(): java.sql.IArray;
			/**
			 * Reports whether the last value read was SQL NULL.
			 */
			wasNull(): boolean;
			/**
			 * Reads the next attribute in the stream (SQL DATALINK value) and returns it as a java.net.URL object.
			 */
			readURL(): java.net.URL;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.NClob.
			 */
			readNClob(): java.sql.INClob;
			/**
			 * Returns the next attribute in the stream in the form of a java.lang.String. Used for the NCHAR, NVARCHAR and LONGNVARCHAR types. See #readString otherwise.
			 */
			readNString(): string;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.SQLXML.
			 */
			readSQLXML(): java.sql.ISQLXML;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.RowId. Used for the ROWID type.
			 */
			readRowId(): java.sql.IRowId;
		}
		/**
		 * An interface which provides comprehensive information about the database management system and its supported features.
		 */
		interface IDatabaseMetaData extends java.sql.IWrapper {
			/**
			 * Returns whether all procedures returned by #getProcedures can be called by the current user.
			 */
			allProceduresAreCallable(): boolean;
			/**
			 * Returns whether all the tables returned by getTables can be used by the current user in a SELECT statement.
			 */
			allTablesAreSelectable(): boolean;
			/**
			 * Returns whether a data definition statement in a transaction forces a commit of the transaction.
			 */
			dataDefinitionCausesTransactionCommit(): boolean;
			/**
			 * Returns whether the database ignores data definition statements within a transaction.
			 */
			dataDefinitionIgnoredInTransactions(): boolean;
			/**
			 * Returns whether a visible row delete can be detected by calling ResultSet#rowDeleted.
			 * @param type 
			 */
			deletesAreDetected(type: number): boolean;
			/**
			 * Returns whether the return value of getMaxRowSize includes the SQL data types LONGVARCHAR and LONGVARBINARY.
			 */
			doesMaxRowSizeIncludeBlobs(): boolean;
			/**
			 * Returns a ResultSet describing a subset of the attributes of a specified SQL User Defined Type (UDT) for a specified schema and catalog. The subset is determined by restricting to those attributes whose name matches the attributeNamePattern and whose type name matches the typeNamePattern. Each row of the ResultSet describes one attribute, and the rows are ordered by the columns TYPE_SCHEM, TYPE_NAME and ORDINAL_POSITION. Inherited attributes are not included.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param typeNamePattern 
			 * @param attributeNamePattern 
			 */
			getAttributes(catalog: string, schemaPattern: string, typeNamePattern: string, attributeNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a list of a table's optimal set of columns that uniquely identify the rows. The results are ordered by SCOPE (see below).
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 * @param scope 
			 * @param nullable 
			 */
			getBestRowIdentifier(catalog: string, schema: string, table: string, scope: number, nullable: boolean): java.sql.IResultSet;
			/**
			 * Returns the set of catalog names available in this database. The set is returned ordered by catalog name.
			 */
			getCatalogs(): java.sql.IResultSet;
			/**
			 * Returns the separator that this database uses between a catalog name and table name.
			 */
			getCatalogSeparator(): string;
			/**
			 * Returns the term that the database vendor prefers term for "catalog".
			 */
			getCatalogTerm(): string;
			/**
			 * Returns a description of access rights for a table's columns. Only access rights matching the criteria for the column name are returned.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 * @param columnNamePattern 
			 */
			getColumnPrivileges(catalog: string, schema: string, table: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a description of table columns available in a specified catalog. Only descriptions meeting the specified catalog, schema, table, and column names are returned.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 * @param columnNamePattern 
			 */
			getColumns(catalog: string, schemaPattern: string, tableNamePattern: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the database connection that created this metadata.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Returns a list of foreign key columns in a given foreign key table that reference the primary key columns of a supplied primary key table. This describes how one table imports the key of another table. It would be expected to return a single foreign key - primary key pair in most cases.
			 * @param primaryCatalog 
			 * @param primarySchema 
			 * @param primaryTable 
			 * @param foreignCatalog 
			 * @param foreignSchema 
			 * @param foreignTable 
			 */
			getCrossReference(primaryCatalog: string, primarySchema: string, primaryTable: string, foreignCatalog: string, foreignSchema: string, foreignTable: string): java.sql.IResultSet;
			/**
			 * Returns the major version number of the database software.
			 */
			getDatabaseMajorVersion(): number;
			/**
			 * Returns the minor version number of the database software.
			 */
			getDatabaseMinorVersion(): number;
			/**
			 * Returns the name of the database software.
			 */
			getDatabaseProductName(): string;
			/**
			 * Returns the version number of this database software.
			 */
			getDatabaseProductVersion(): string;
			/**
			 * Returns the default transaction isolation level for this database.
			 */
			getDefaultTransactionIsolation(): number;
			/**
			 * Returns the JDBC driver's major version number.
			 */
			getDriverMajorVersion(): number;
			/**
			 * Returns the JDBC driver's minor version number.
			 */
			getDriverMinorVersion(): number;
			/**
			 * Returns the name of this JDBC driver.
			 */
			getDriverName(): string;
			/**
			 * Returns the version number of this JDBC driver.
			 */
			getDriverVersion(): string;
			/**
			 * Returns a list of the foreign key columns that reference the primary key columns of a specified table (the foreign keys exported by a table).
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			getExportedKeys(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Returns a string of characters that may be used in unquoted identifier names. The characters a-z, A-Z, 0-9 and _ are always permitted.
			 */
			getExtraNameCharacters(): string;
			/**
			 * Returns the string used to quote SQL identifiers. Returns " " (space) if identifier quoting not supported.
			 */
			getIdentifierQuoteString(): string;
			/**
			 * Returns a list columns in a table that are both primary keys and referenced by the table's foreign key columns (that is, the primary keys imported by a table).
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			getImportedKeys(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Returns a list of indices and statistics for a specified table.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 * @param unique 
			 * @param approximate 
			 */
			getIndexInfo(catalog: string, schema: string, table: string, unique: boolean, approximate: boolean): java.sql.IResultSet;
			/**
			 * Returns this driver's major JDBC version number.
			 */
			getJDBCMajorVersion(): number;
			/**
			 * Returns the minor JDBC version number for this driver.
			 */
			getJDBCMinorVersion(): number;
			/**
			 * Get the maximum number of hex characters in an in-line binary literal for this database.
			 */
			getMaxBinaryLiteralLength(): number;
			/**
			 * Returns the maximum size of a catalog name in this database.
			 */
			getMaxCatalogNameLength(): number;
			/**
			 * Returns the maximum size for a character literal in this database.
			 */
			getMaxCharLiteralLength(): number;
			/**
			 * Returns the maximum size for a Column name for this database.
			 */
			getMaxColumnNameLength(): number;
			/**
			 * Get the maximum number of columns in a GROUP BY clause for this database.
			 */
			getMaxColumnsInGroupBy(): number;
			/**
			 * Returns the maximum number of columns in an Index for this database.
			 */
			getMaxColumnsInIndex(): number;
			/**
			 * Returns the maximum number of columns in an ORDER BY clause for this database.
			 */
			getMaxColumnsInOrderBy(): number;
			/**
			 * Returns the maximum number of columns in a SELECT list for this database.
			 */
			getMaxColumnsInSelect(): number;
			/**
			 * Returns the maximum number of columns in a table for this database.
			 */
			getMaxColumnsInTable(): number;
			/**
			 * Returns the database's maximum number of concurrent connections.
			 */
			getMaxConnections(): number;
			/**
			 * Returns the maximum length of a cursor name for this database.
			 */
			getMaxCursorNameLength(): number;
			/**
			 * Returns the maximum length in bytes for an Index for this database. This covers all the parts of a composite index.
			 */
			getMaxIndexLength(): number;
			/**
			 * Returns the maximum number of characters for a procedure name in this database.
			 */
			getMaxProcedureNameLength(): number;
			/**
			 * Returns the maximum number of bytes within a single row for this database.
			 */
			getMaxRowSize(): number;
			/**
			 * Returns the maximum number of characters in a schema name for this database.
			 */
			getMaxSchemaNameLength(): number;
			/**
			 * Returns the maximum number of characters in an SQL statement for this database.
			 */
			getMaxStatementLength(): number;
			/**
			 * Get the maximum number of simultaneously open active statements for this database.
			 */
			getMaxStatements(): number;
			/**
			 * Returns the maximum size for a table name in the database.
			 */
			getMaxTableNameLength(): number;
			/**
			 * Returns the maximum number of tables permitted in a SELECT statement for the database.
			 */
			getMaxTablesInSelect(): number;
			/**
			 * Returns the maximum number of characters in a user name for the database.
			 */
			getMaxUserNameLength(): number;
			/**
			 * Returns a list of the math functions available with this database. These are used in the JDBC function escape clause and are the Open Group CLI math function names.
			 */
			getNumericFunctions(): string;
			/**
			 * Returns a list of the primary key columns of a specified table.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			getPrimaryKeys(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Returns a list of parameter and result columns for the stored procedures belonging to a specified catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param procedureNamePattern 
			 * @param columnNamePattern 
			 */
			getProcedureColumns(catalog: string, schemaPattern: string, procedureNamePattern: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a list of the stored procedures available in a specified catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param procedureNamePattern 
			 */
			getProcedures(catalog: string, schemaPattern: string, procedureNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the database vendor's preferred name for "procedure".
			 */
			getProcedureTerm(): string;
			/**
			 * Returns the result set's default holdability.
			 */
			getResultSetHoldability(): number;
			/**
			 * Returns a list of the schema names in the database. The list is returned as a ResultSet, ordered by the schema name, with one row per schema in the following format: <ol> <li>TABLE_SCHEM - String - the schema name</li> <li>TABLE_CATALOG - String - the catalog name (possibly null) </li> </ol>
			 */
			getSchemas(): java.sql.IResultSet;
			/**
			 * Returns the database vendor's preferred term for "schema".
			 */
			getSchemaTerm(): string;
			/**
			 * Returns the string that is used to escape wildcard characters. This string is used to escape the '_' and '%' wildcard characters in catalog search pattern strings. '_' is used to represent any single character while '%' is used for a sequence of zero or more characters.
			 */
			getSearchStringEscape(): string;
			/**
			 * Returns a list of all the SQL keywords that are NOT also SQL92 keywords for the database.
			 */
			getSQLKeywords(): string;
			/**
			 * States the type of SQLState value returned by SQLException.getSQLState. This can either be the X/Open (now known as Open Group) SQL CLI form or the SQL99 form.
			 */
			getSQLStateType(): number;
			/**
			 * Returns a list of string functions available with the database. These functions are used in JDBC function escape clause and follow the Open Group CLI string function names definition.
			 */
			getStringFunctions(): string;
			/**
			 * Returns a listing of the hierarchies of tables in a specified schema in the database.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 */
			getSuperTables(catalog: string, schemaPattern: string, tableNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the User Defined Type (UDT) hierarchies for a given schema. Only the immediate parent/child relationship is described. If a UDT does not have a direct supertype, it is not listed.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param typeNamePattern 
			 */
			getSuperTypes(catalog: string, schemaPattern: string, typeNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a list of system functions available with the database. These are names used in the JDBC function escape clause and are Open Group CLI function names.
			 */
			getSystemFunctions(): string;
			/**
			 * Returns a description of access rights for each table present in a catalog. Table privileges can apply to one or more columns in the table - but are not guaranteed to apply to all columns.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 */
			getTablePrivileges(catalog: string, schemaPattern: string, tableNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a description of the tables in a specified catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param tableNamePattern 
			 * @param types 
			 */
			getTables(catalog: string, schemaPattern: string, tableNamePattern: string, types: native.Array<string>): java.sql.IResultSet;
			/**
			 * Returns a list of table types supported by the database.
			 */
			getTableTypes(): java.sql.IResultSet;
			/**
			 * Returns a list of time and date functions available for the database.
			 */
			getTimeDateFunctions(): string;
			/**
			 * Get a list of the standard SQL types supported by this database. The list is returned as a ResultSet, with one row for each type, ordered by the DATA_TYPE value, where the data in each row is structured into the following columns: <ol> <li>TYPE_NAME - String : the type name</li> <li>DATA_TYPE - int : the SQL data type value as defined in java.sql.Types</li> <li>PRECISION - int - the maximum precision of the type</li> <li>LITERAL_PREFIX - String : the prefix to be used when quoting a literal value (possibly null)</li> <li>LITERAL_SUFFIX - String : the suffix to be used when quoting a literal value (possibly null)</li> <li>CREATE_PARAMS - String : params used when creating the type (possibly null)</li> <li>NULLABLE - short : shows if the value is nullable: <ul> <li>DatabaseMetaData.typeNoNulls : NULLs not permitted</li> <li>DatabaseMetaData.typeNullable : NULLs are permitted</li> <li>DatabaseMetaData.typeNullableUnknown : NULL status unknown</li> </ul> </li> <li>CASE_SENSITIVE - boolean : true if the type is case sensitive </li> <li>SEARCHABLE - short : how this type can be used with WHERE clauses: <ul> <li>DatabaseMetaData.typePredNone - WHERE clauses cannot be used</li> <li>DatabaseMetaData.typePredChar - support for WHERE...LIKE only</li> <li>DatabaseMetaData.typePredBasic - support except for WHERE...LIKE</li> <li>DatabaseMetaData.typeSearchable - support for all WHERE clauses</li> </ul> </li> <li>UNSIGNED_ATTRIBUTE - boolean - the type is unsigned or not</li> <li>FIXED_PREC_SCALE - boolean - fixed precision = it can be used as a money value</li> <li>AUTO_INCREMENT - boolean - can be used as an auto-increment value</li> <li>LOCAL_TYPE_NAME - String - a localized version of the type name (possibly null)</li> <li>MINIMUM_SCALE - short - the minimum scale supported</li> <li>MAXIMUM_SCALE - short - the maximum scale supported</li> <li>SQL_DATA_TYPE - int - not used</li> <li>SQL_DATETIME_SUB - int - not used</li> <li>NUM_PREC_RADIX - int - number radix (typically 2 or 10)</li> </ol>
			 */
			getTypeInfo(): java.sql.IResultSet;
			/**
			 * Returns a description of the User Defined Types (UDTs) defined in a given schema, which includes the types DISTINCT, STRUCT and JAVA_OBJECT.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param typeNamePattern 
			 * @param types 
			 */
			getUDTs(catalog: string, schemaPattern: string, typeNamePattern: string, types: native.Array<number>): java.sql.IResultSet;
			/**
			 * Returns the URL for this database.
			 */
			getURL(): string;
			/**
			 * Determine the user name as known by the database.
			 */
			getUserName(): string;
			/**
			 * Returns which of a table's columns are automatically updated when any value in a row is updated.
			 * @param catalog 
			 * @param schema 
			 * @param table 
			 */
			getVersionColumns(catalog: string, schema: string, table: string): java.sql.IResultSet;
			/**
			 * Determines whether a visible row insert can be detected by calling ResultSet.rowInserted.
			 * @param type 
			 */
			insertsAreDetected(type: number): boolean;
			/**
			 * Determine whether a fully qualified table name is prefixed or suffixed to a fully qualified table name.
			 */
			isCatalogAtStart(): boolean;
			/**
			 * Determines whether the database is in read-only mode.
			 */
			isReadOnly(): boolean;
			/**
			 * Determines whether updates are made to a copy of, or directly on, Large Objects (LOBs).
			 */
			locatorsUpdateCopy(): boolean;
			/**
			 * Determines whether the database handles concatenations between NULL and non-NULL values by producing a NULL output.
			 */
			nullPlusNonNullIsNull(): boolean;
			/**
			 * Determines whether NULL values are always sorted to the end of sorted results regardless of requested sort order. This means that they will appear at the end of sorted lists whatever other non-NULL values may be present.
			 */
			nullsAreSortedAtEnd(): boolean;
			/**
			 * Determines whether NULL values are always sorted at the start of the sorted list, irrespective of the sort order. This means that they appear at the start of sorted lists, whatever other values may be present.
			 */
			nullsAreSortedAtStart(): boolean;
			/**
			 * Determines whether NULL values are sorted high - i.e. they are sorted as if they are higher than any other values.
			 */
			nullsAreSortedHigh(): boolean;
			/**
			 * Determines whether NULL values are sorted low - i.e. they are sorted as if they are lower than any other values.
			 */
			nullsAreSortedLow(): boolean;
			/**
			 * Determines whether deletes made by others are visible, for a specified ResultSet type.
			 * @param type 
			 */
			othersDeletesAreVisible(type: number): boolean;
			/**
			 * Determines whether inserts made by others are visible, for a specified ResultSet type.
			 * @param type 
			 */
			othersInsertsAreVisible(type: number): boolean;
			/**
			 * Determines whether updates made by others are visible, for a specified ResultSet type.
			 * @param type 
			 */
			othersUpdatesAreVisible(type: number): boolean;
			/**
			 * Determines whether a ResultSet can see its own deletes, for a specified ResultSet type.
			 * @param type 
			 */
			ownDeletesAreVisible(type: number): boolean;
			/**
			 * Determines whether a ResultSet can see its own inserts, for a specified ResultSet type.
			 * @param type 
			 */
			ownInsertsAreVisible(type: number): boolean;
			/**
			 * Determines whether a ResultSet can see its own updates, for a specified ResultSet type.
			 * @param type 
			 */
			ownUpdatesAreVisible(type: number): boolean;
			/**
			 * Determines whether the database treats SQL identifiers that are in mixed case (and unquoted) as case insensitive. If true then the database stores them in lower case.
			 */
			storesLowerCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case quoted SQL identifiers as case insensitive and stores them in lower case.
			 */
			storesLowerCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case unquoted SQL identifiers as case insensitive and stores them in mixed case.
			 */
			storesMixedCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers identifiers as case insensitive if they are mixed case quoted SQL. The database stores them in mixed case.
			 */
			storesMixedCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case unquoted SQL identifiers as case insensitive and stores them in upper case.
			 */
			storesUpperCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case quoted SQL identifiers as case insensitive and stores them in upper case.
			 */
			storesUpperCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether the database supports ALTER TABLE operation with ADD COLUMN.
			 */
			supportsAlterTableWithAddColumn(): boolean;
			/**
			 * Determines whether the database supports ALTER TABLE operation with DROP COLUMN.
			 */
			supportsAlterTableWithDropColumn(): boolean;
			/**
			 * Determines whether the database supports the ANSI92 entry level SQL grammar.
			 */
			supportsANSI92EntryLevelSQL(): boolean;
			/**
			 * Determines whether the database supports the ANSI92 full SQL grammar.
			 */
			supportsANSI92FullSQL(): boolean;
			/**
			 * Determines whether the database supports the ANSI92 intermediate SQL Grammar.
			 */
			supportsANSI92IntermediateSQL(): boolean;
			/**
			 * Determines whether the database supports batch updates.
			 */
			supportsBatchUpdates(): boolean;
			/**
			 * Determines whether catalog names may be used in data manipulation statements.
			 */
			supportsCatalogsInDataManipulation(): boolean;
			/**
			 * Determines whether catalog names can be used in index definition statements.
			 */
			supportsCatalogsInIndexDefinitions(): boolean;
			/**
			 * Determines whether catalog names can be used in privilege definition statements.
			 */
			supportsCatalogsInPrivilegeDefinitions(): boolean;
			/**
			 * Determines whether catalog names can be used in procedure call statements.
			 */
			supportsCatalogsInProcedureCalls(): boolean;
			/**
			 * Determines whether catalog names may be used in table definition statements.
			 */
			supportsCatalogsInTableDefinitions(): boolean;
			/**
			 * Determines whether the database supports column aliasing.
			 */
			supportsColumnAliasing(): boolean;
			/**
			 * Determines whether the database supports the CONVERT operation between SQL types.
			 */
			supportsConvert(): boolean;
			/**
			 * Determines whether the database supports CONVERT operation for two supplied SQL types.
			 * @param fromType 
			 * @param toType 
			 */
			supportsConvert(fromType: number, toType: number): boolean;
			/**
			 * Determines whether the database supports the Core SQL Grammar for ODBC.
			 */
			supportsCoreSQLGrammar(): boolean;
			/**
			 * Determines whether the database supports correlated sub-queries.
			 */
			supportsCorrelatedSubqueries(): boolean;
			/**
			 * Determines whether the database allows both data definition and data manipulation statements inside a transaction.
			 */
			supportsDataDefinitionAndDataManipulationTransactions(): boolean;
			/**
			 * Determines whether the database only allows data manipulation statements inside a transaction.
			 */
			supportsDataManipulationTransactionsOnly(): boolean;
			/**
			 * Determines whether table correlation names are required to be different from the names of the tables, when they are supported.
			 */
			supportsDifferentTableCorrelationNames(): boolean;
			/**
			 * Determines whether expressions in ORDER BY lists are supported.
			 */
			supportsExpressionsInOrderBy(): boolean;
			/**
			 * Determines whether the Extended SQL Grammar for ODBC is supported.
			 */
			supportsExtendedSQLGrammar(): boolean;
			/**
			 * Determines whether the database supports full nested outer joins.
			 */
			supportsFullOuterJoins(): boolean;
			/**
			 * Determines whether auto generated keys can be returned when a statement executes.
			 */
			supportsGetGeneratedKeys(): boolean;
			/**
			 * Determines whether the database supports GROUP BY clauses.
			 */
			supportsGroupBy(): boolean;
			/**
			 * Determines whether the database supports using a column name in a GROUP BY clause not included in the SELECT statement as long as all of the columns in the SELECT statement are used in the GROUP BY clause.
			 */
			supportsGroupByBeyondSelect(): boolean;
			/**
			 * Determines whether the database supports using a column name in a GROUP BY clause that is not in the SELECT statement.
			 */
			supportsGroupByUnrelated(): boolean;
			/**
			 * Determines whether the database supports SQL Integrity Enhancement Facility.
			 */
			supportsIntegrityEnhancementFacility(): boolean;
			/**
			 * Determines whether the database supports a LIKE escape clause.
			 */
			supportsLikeEscapeClause(): boolean;
			/**
			 * Determines whether the database provides limited support for outer join operations.
			 */
			supportsLimitedOuterJoins(): boolean;
			/**
			 * Determines whether the database supports Minimum SQL Grammar for ODBC.
			 */
			supportsMinimumSQLGrammar(): boolean;
			/**
			 * Determines whether the database treats mixed case unquoted SQL identifiers as case sensitive storing them in mixed case.
			 */
			supportsMixedCaseIdentifiers(): boolean;
			/**
			 * Determines whether the database considers mixed case quoted SQL identifiers as case sensitive, storing them in mixed case.
			 */
			supportsMixedCaseQuotedIdentifiers(): boolean;
			/**
			 * Determines whether it is possible for a single CallableStatement to return multiple ResultSets simultaneously.
			 */
			supportsMultipleOpenResults(): boolean;
			/**
			 * Determines whether retrieving multiple ResultSets from a single call to the execute method is supported.
			 */
			supportsMultipleResultSets(): boolean;
			/**
			 * Determines whether multiple simultaneous transactions on different connections are supported.
			 */
			supportsMultipleTransactions(): boolean;
			/**
			 * Determines whether callable statements with named parameters is supported.
			 */
			supportsNamedParameters(): boolean;
			/**
			 * Determines whether columns in the database can be defined as non-nullable.
			 */
			supportsNonNullableColumns(): boolean;
			/**
			 * Determines whether keeping cursors open across commit operations is supported.
			 */
			supportsOpenCursorsAcrossCommit(): boolean;
			/**
			 * Determines whether the database can keep cursors open across rollback operations.
			 */
			supportsOpenCursorsAcrossRollback(): boolean;
			/**
			 * Determines whether keeping statements open across commit operations is supported.
			 */
			supportsOpenStatementsAcrossCommit(): boolean;
			/**
			 * Determines whether keeping statements open across rollback operations is supported.
			 */
			supportsOpenStatementsAcrossRollback(): boolean;
			/**
			 * Determines whether using a column in an ORDER BY clause that is not in the SELECT statement is supported.
			 */
			supportsOrderByUnrelated(): boolean;
			/**
			 * Determines whether outer join operations are supported.
			 */
			supportsOuterJoins(): boolean;
			/**
			 * Determines whether positioned DELETE statements are supported.
			 */
			supportsPositionedDelete(): boolean;
			/**
			 * Determines whether positioned UPDATE statements are supported.
			 */
			supportsPositionedUpdate(): boolean;
			/**
			 * Determines whether there is support for a given concurrency style for the given ResultSet.
			 * @param type 
			 * @param concurrency 
			 */
			supportsResultSetConcurrency(type: number, concurrency: number): boolean;
			/**
			 * Determines whether the supplied ResultSet holdability mode is supported.
			 * @param holdability 
			 */
			supportsResultSetHoldability(holdability: number): boolean;
			/**
			 * Determines whether the supplied ResultSet type is supported.
			 * @param type 
			 */
			supportsResultSetType(type: number): boolean;
			/**
			 * Determines whether savepoints for transactions are supported.
			 */
			supportsSavepoints(): boolean;
			/**
			 * Determines whether a schema name may be used in a data manipulation statement.
			 */
			supportsSchemasInDataManipulation(): boolean;
			/**
			 * Determines whether a schema name may be used in an index definition statement.
			 */
			supportsSchemasInIndexDefinitions(): boolean;
			/**
			 * Determines whether a database schema name can be used in a privilege definition statement.
			 */
			supportsSchemasInPrivilegeDefinitions(): boolean;
			/**
			 * Determines whether a procedure call statement may be contain in a schema name.
			 */
			supportsSchemasInProcedureCalls(): boolean;
			/**
			 * Determines whether a schema name can be used in a table definition statement.
			 */
			supportsSchemasInTableDefinitions(): boolean;
			/**
			 * Determines whether the SELECT FOR UPDATE statement is supported.
			 */
			supportsSelectForUpdate(): boolean;
			/**
			 * Determines whether statement pooling is supported.
			 */
			supportsStatementPooling(): boolean;
			/**
			 * Determines whether stored procedure calls using the stored procedure escape syntax is supported.
			 */
			supportsStoredProcedures(): boolean;
			/**
			 * Determines whether subqueries in comparison expressions are supported.
			 */
			supportsSubqueriesInComparisons(): boolean;
			/**
			 * Determines whether subqueries in EXISTS expressions are supported.
			 */
			supportsSubqueriesInExists(): boolean;
			/**
			 * Determines whether subqueries in IN statements are supported.
			 */
			supportsSubqueriesInIns(): boolean;
			/**
			 * Determines whether subqueries in quantified expressions are supported.
			 */
			supportsSubqueriesInQuantifieds(): boolean;
			/**
			 * Determines whether the database has table correlation names support.
			 */
			supportsTableCorrelationNames(): boolean;
			/**
			 * Determines whether a specified transaction isolation level is supported.
			 * @param level 
			 */
			supportsTransactionIsolationLevel(level: number): boolean;
			/**
			 * Determines whether transactions are supported.
			 */
			supportsTransactions(): boolean;
			/**
			 * Determines whether the SQL UNION operation is supported.
			 */
			supportsUnion(): boolean;
			/**
			 * Determines whether the SQL UNION ALL operation is supported.
			 */
			supportsUnionAll(): boolean;
			/**
			 * Determines whether the method ResultSet.rowUpdated can detect a visible row update for the specified ResultSet type.
			 * @param type 
			 */
			updatesAreDetected(type: number): boolean;
			/**
			 * Determines whether this database uses a file for each table.
			 */
			usesLocalFilePerTable(): boolean;
			/**
			 * Determines whether this database uses a local file to store tables.
			 */
			usesLocalFiles(): boolean;
			/**
			 * Determine if a SQLException while autoCommit is true indicates that all open ResultSets are closed, even ones that are holdable
			 */
			autoCommitFailureClosesAllResultSets(): boolean;
			/**
			 * Returns a list of the client info properties of the driver.
			 */
			getClientInfoProperties(): java.sql.IResultSet;
			/**
			 * Returns a description according to the given catalog's system or user function parameters and return type.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param functionNamePattern 
			 * @param columnNamePattern 
			 */
			getFunctionColumns(catalog: string, schemaPattern: string, functionNamePattern: string, columnNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns a description of the system and user functions available according to the given catalog.
			 * @param catalog 
			 * @param schemaPattern 
			 * @param functionNamePattern 
			 */
			getFunctions(catalog: string, schemaPattern: string, functionNamePattern: string): java.sql.IResultSet;
			/**
			 * Returns the lifetime for which a RowId object remains valid if this data source supports the SQL ROWID type
			 */
			getRowIdLifetime(): java.sql.RowIdLifetime;
			/**
			 * Returns the schema names ordered by TABLE_CATALOG and TABLE_SCHEMA.
			 * @param catalog 
			 * @param schemaPattern 
			 */
			getSchemas(catalog: string, schemaPattern: string): java.sql.IResultSet;
			/**
			 * Determine if this database supports invoking user-defined or vendor functions using the stored procedure escape syntax.
			 */
			supportsStoredFunctionsUsingCallSyntax(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export module IDatabaseMetaData {
			/**
			 * States that it may not be permitted to store NULL values.
			 */
			var attributeNoNulls: number;
			/**
			 * States that NULL values are definitely permitted.
			 */
			var attributeNullable: number;
			/**
			 * States that whether NULL values are permitted is unknown.
			 */
			var attributeNullableUnknown: number;
			/**
			 * States the best row identifier is <em>NOT</em> a pseudo column.
			 */
			var bestRowNotPseudo: number;
			/**
			 * States that the best row identifier is a pseudo column.
			 */
			var bestRowPseudo: number;
			/**
			 * States that the remainder of the current session is used as the scope for the best row identifier.
			 */
			var bestRowSession: number;
			/**
			 * States that best row identifier scope lasts only while the row is being used.
			 */
			var bestRowTemporary: number;
			/**
			 * States that the remainder of the current transaction is used as the scope for the best row identifier.
			 */
			var bestRowTransaction: number;
			/**
			 * States that the best row identifier may or may not be a pseudo column.
			 */
			var bestRowUnknown: number;
			/**
			 * States that the column must not allow NULL values.
			 */
			var columnNoNulls: number;
			/**
			 * States that the column definitely allows NULL values.
			 */
			var columnNullable: number;
			/**
			 * States that it is unknown whether the columns may be nulled.
			 */
			var columnNullableUnknown: number;
			/**
			 * For the column UPDATE_RULE, states that when the primary key is updated, the foreign key (imported key) is changed accordingly.
			 */
			var importedKeyCascade: number;
			/**
			 * States that the evaluation of foreign key constraints is deferred (delayed until commit).
			 */
			var importedKeyInitiallyDeferred: number;
			/**
			 * States that the evaluation of foreign key constraint is IMMEDIATE .
			 */
			var importedKeyInitiallyImmediate: number;
			/**
			 * For the columns UPDATE_RULE and DELETE_RULE, states that if the primary key has been imported, it cannot be updated or deleted.
			 */
			var importedKeyNoAction: number;
			/**
			 * States that the evaluation of foreign key constraint must not be DEFERRED.
			 */
			var importedKeyNotDeferrable: number;
			/**
			 * States that a primary key must not be updated when imported as a foreign key by some other table. Used for the column UPDATE_RULE.
			 */
			var importedKeyRestrict: number;
			/**
			 * States that when the primary key is modified (updated or deleted) the foreign (imported) key is changed to its default value. Applies to the UPDATE_RULE and DELETE_RULE columns.
			 */
			var importedKeySetDefault: number;
			/**
			 * States that when the primary key is modified (updated or deleted) the foreign (imported) key is changed to NULL. Applies to the UPDATE_RULE and DELETE_RULE columns.
			 */
			var importedKeySetNull: number;
			/**
			 * States that the column stores IN type parameters.
			 */
			var procedureColumnIn: number;
			/**
			 * States that this column stores INOUT type parameters.
			 */
			var procedureColumnInOut: number;
			/**
			 * States that this column stores OUT type parameters.
			 */
			var procedureColumnOut: number;
			/**
			 * States that the column stores results.
			 */
			var procedureColumnResult: number;
			/**
			 * States that the column stores return values.
			 */
			var procedureColumnReturn: number;
			/**
			 * States that type of the column is unknown.
			 */
			var procedureColumnUnknown: number;
			/**
			 * States that NULL values are not permitted.
			 */
			var procedureNoNulls: number;
			/**
			 * States that the procedure does not return a result.
			 */
			var procedureNoResult: number;
			/**
			 * States that NULL values are permitted.
			 */
			var procedureNullable: number;
			/**
			 * States that it is unknown whether NULL values are permitted.
			 */
			var procedureNullableUnknown: number;
			/**
			 * States that it is unknown whether or not the procedure returns a result.
			 */
			var procedureResultUnknown: number;
			/**
			 * States that the procedure returns a result.
			 */
			var procedureReturnsResult: number;
			/**
			 * States that the value is an SQL99 SQLSTATE value.
			 */
			var sqlStateSQL99: number;
			/**
			 * States that the value is an SQL CLI SQLSTATE value as defined by the X/Open standard.
			 */
			var sqlStateXOpen: number;
			/**
			 * States that this table index is a clustered index.
			 */
			var tableIndexClustered: number;
			/**
			 * States that this table index is a hashed index.
			 */
			var tableIndexHashed: number;
			/**
			 * States this table's index is neither a clustered index, not a hashed index, and not a table statistics index; i.e. it is something else.
			 */
			var tableIndexOther: number;
			/**
			 * States this column has the table's statistics, and that it is returned in conjunction with the table's index description.
			 */
			var tableIndexStatistic: number;
			/**
			 * States that a NULL value is <em>NOT</em> permitted for this data type.
			 */
			var typeNoNulls: number;
			/**
			 * States that a NULL value is permitted for this data type.
			 */
			var typeNullable: number;
			/**
			 * States that it is unknown if a NULL value is permitted for this data type.
			 */
			var typeNullableUnknown: number;
			/**
			 * States that this column shall not be used for WHERE statements with a LIKE clause.
			 */
			var typePredBasic: number;
			/**
			 * States that this column can only be used in a WHERE...LIKE statement.
			 */
			var typePredChar: number;
			/**
			 * States that this column does not support searches.
			 */
			var typePredNone: number;
			/**
			 * States that the column is searchable.
			 */
			var typeSearchable: number;
			/**
			 * States that the version column is known to be not a pseudo column.
			 */
			var versionColumnNotPseudo: number;
			/**
			 * States that this version column is known to be a pseudo column.
			 */
			var versionColumnPseudo: number;
			/**
			 * States that the version column may be a pseudo column or not.
			 */
			var versionColumnUnknown: number;
			/**
			 * States that the method DatabaseMetaData.getSQLStateType may returns an SQLSTATE value or not.
			 */
			var sqlStateSQL: number;
			/**
			 * States that the parameter or column is an IN parameter
			 */
			var functionColumnIn: number;
			/**
			 * States that the parameter or column is an INOUT parameter
			 */
			var functionColumnInOut: number;
			/**
			 * States that the parameter or column is an OUT parameter
			 */
			var functionColumnOut: number;
			/**
			 * States that the parameter or column is a return value
			 */
			var functionReturn: number;
			/**
			 * States that the parameter of function is unknown
			 */
			var functionColumnUnknown: number;
			/**
			 * States that the parameter or column is a column in a result set
			 */
			var functionColumnResult: number;
			/**
			 * States that NULL values are not allowed
			 */
			var functionNoNulls: number;
			/**
			 * States that NULL values are allowed
			 */
			var functionNullable: number;
			/**
			 * States that whether NULL values are allowed is unknown
			 */
			var functionNullableUnknown: number;
			/**
			 * States that it is not known whether the function returns a result or a table
			 */
			var functionResultUnknown: number;
			/**
			 * States that the function does not return a table
			 */
			var functionNoTable: number;
			/**
			 * States that the function returns a table.
			 */
			var functionReturnsTable: number;
		}
		/**
		 * An exception that indicates a failed JDBC operation. It provides the following information about problems encountered with database access: <ul> <li>A message string.</li> <li>A SQLState error description string following either <a href="http://en.wikipedia.org/wiki/SQL:1999">SQL 99</a> or X/OPEN SQLState conventions. DatabaseMetaData#getSQLStateType exposes the specific convention in use.</li> <li>A database-specific error code.</li> <li>The next exception in the chain.</li> </ul>
		 */
		export class SQLException extends java.lang.Exception implements java.io.ISerializable {
			/**
			 * Creates an SQLException object. The reason string is set to null, the SQLState string is set to null and the error code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLException object. The reason string is set to the given reason string, the SQLState string is set to null and the error code is set to 0.
			 * @param theReason 
			 */
			constructor(theReason: string);
			/**
			 * Creates an SQLException object. The reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the error code is set to 0.
			 * @param theReason 
			 * @param theSQLState 
			 */
			constructor(theReason: string, theSQLState: string);
			/**
			 * Creates an SQLException object. The reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the error code is set to the given error code value.
			 * @param theReason 
			 * @param theSQLState 
			 * @param theErrorCode 
			 */
			constructor(theReason: string, theSQLState: string, theErrorCode: number);
			/**
			 * Creates an SQLException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param theCause 
			 */
			constructor(theCause: java.lang.Throwable);
			/**
			 * Creates an SQLException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param theReason 
			 * @param theCause 
			 */
			constructor(theReason: string, theCause: java.lang.Throwable);
			/**
			 * Creates an SQLException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param theReason 
			 * @param theSQLState 
			 * @param theCause 
			 */
			constructor(theReason: string, theSQLState: string, theCause: java.lang.Throwable);
			/**
			 * Creates an SQLException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param theReason 
			 * @param theSQLState 
			 * @param theErrorCode 
			 * @param theCause 
			 */
			constructor(theReason: string, theSQLState: string, theErrorCode: number, theCause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLException>;
			/**
			 * Returns the integer error code for this SQLException.
			 */
			public getErrorCode(): number;
			/**
			 * Retrieves the SQLException chained to this SQLException, if any.
			 */
			public getNextException(): java.sql.SQLException;
			/**
			 * Retrieves the SQLState description string for this SQLException object.
			 */
			public getSQLState(): string;
			/**
			 * Obsolete. Appends ex to the end of this chain.
			 */
			public setNextException(ex: java.sql.SQLException): void;
			/**
			 * Obsolete. #getCause() should be used instead of this iterator. Returns an iterator over the exceptions added with #setNextException.
			 */
			public iterator(): java.util.IIterator<java.lang.Throwable>;
		}
		export module SQLException {
			export class InternalIterator extends java.lang.Object {
				static class: java.lang.Class<java.sql.SQLException.InternalIterator>;
				public hasNext(): boolean;
				public next(): java.lang.Throwable;
				public remove(): void;
			}
		}
		/**
		 * An exception, which is subclass of SQLNonTransientException, is thrown when various the JDBC driver does not support an optional JDBC feature.
		 */
		export class SQLFeatureNotSupportedException extends java.sql.SQLNonTransientException {
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLFeatureNotSupportedException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLFeatureNotSupportedException>;
		}
		export class SQLSyntaxErrorException extends java.sql.SQLNonTransientException {
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLSyntaxErrorException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLSyntaxErrorException>;
		}
		/**
		 * An enumeration to describe the life-time of RowID.
		 */
		export enum RowIdLifetime {
			ROWID_UNSUPPORTED,
			ROWID_VALID_OTHER,
			ROWID_VALID_SESSION,
			ROWID_VALID_TRANSACTION,
			ROWID_VALID_FOREVER
		}
		/**
		 * An interface to a JDBC driver.
		 */
		export class Driver implements java.sql.IDriver {
			constructor(implementation: java.sql.IDriver);
			/**
			 * Returns whether the driver thinks that it can open a connection to the given URL.
			 * @param url 
			 */
			public acceptsURL(url: string): boolean;
			/**
			 * Attempts to make a database connection to a data source specified by a supplied URL.
			 * @param url 
			 * @param info 
			 */
			public connect(url: string, info: java.util.Properties): java.sql.IConnection;
			/**
			 * Gets the driver's major version number.
			 */
			public getMajorVersion(): number;
			/**
			 * Gets the driver's minor version number.
			 */
			public getMinorVersion(): number;
			/**
			 * Gets information about possible properties for this driver.
			 * @param url 
			 * @param info 
			 */
			public getPropertyInfo(url: string, info: java.util.Properties): native.Array<java.sql.DriverPropertyInfo>;
			/**
			 * Reports whether this driver is a genuine JDBC CompliantTM driver. The driver may only return true if it passes all the JDBC compliance tests.
			 */
			public jdbcCompliant(): boolean;
		}
		/**
		 * Java representation of an SQL TIME value. Provides utilities to format and parse the time's representation as a String in JDBC escape format.
		 */
		export class Time extends java.util.Date {
			/**
			 * Constructs a Time object using the supplied values for <i>Hour</i>, <i>Minute</i> and <i>Second</i>. The <i>Year</i>, <i>Month</i> and <i>Day</i> elements of the Time object are set to the date of the Epoch (January 1, 1970).
			 * @param theHour 
			 * @param theMinute 
			 * @param theSecond 
			 */
			constructor(theHour: number, theMinute: number, theSecond: number);
			/**
			 * Constructs a Time object using a supplied time specified in milliseconds.
			 * @param theTime 
			 */
			constructor(theTime: number);
			static class: java.lang.Class<java.sql.Time>;
			/**
			 *  This method is deprecated and must not be used. An SQL Time object does not have a Date component.
			 */
			public getDate(): number;
			/**
			 *  This method is deprecated and must not be used. An SQL Time object does not have a <i>Day</i> component.
			 */
			public getDay(): number;
			/**
			 *  This method is deprecated and must not be used. An SQL Time object does not have a <i>Month</i> component.
			 */
			public getMonth(): number;
			/**
			 *  This method is deprecated and must not be used. An SQL Time object does not have a <i>Year</i> component.
			 */
			public getYear(): number;
			/**
			 *  This method is deprecated and must not be used. An SQL Time object does not have a Date component. IllegalArgumentException if this method is called.
			 */
			public setDate(i: number): void;
			/**
			 *  This method is deprecated and must not be used. An SQL Time object does not have a <i>Month</i> component. IllegalArgumentException if this method is called.
			 */
			public setMonth(i: number): void;
			/**
			 *  This method is deprecated and must not be used. An SQL Time object does not have a <i>Year</i> component. IllegalArgumentException if this method is called.
			 */
			public setYear(i: number): void;
			/**
			 * Sets the time for this Time object to the supplied milliseconds value.
			 * @param time 
			 */
			public setTime(time: number): void;
			/**
			 * Formats the Time as a String in JDBC escape format: hh:mm:ss.
			 */
			public toString(): string;
			/**
			 * Creates a Time object from a string holding a time represented in JDBC escape format: hh:mm:ss.
			 * @param timeString 
			 */
			public static valueOf(timeString: string): java.sql.Time;
		}
		/**
		 * A savepoint is an instant during the current transaction that can be utilized by a rollback via the Connection#rollback command. Rolling back to a particular savepoint means that all changes that occurred after that savepoint are undone.
		 */
		export class Savepoint implements java.sql.ISavepoint {
			constructor(implementation: java.sql.ISavepoint);
			/**
			 * Returns the constructed ID for this savepoint.
			 */
			public getSavepointId(): number;
			/**
			 * Returns the name for this savepoint.
			 */
			public getSavepointName(): string;
		}
		/**
		 * A connection represents a link from a Java application to a database. All SQL statements and results are returned within the context of a connection. Database statements that are executed within this context form a database session which forms one or more closed transactions. Especially in distributed applications, multiple concurrent connections may exist accessing the same values of the database. which may lead to the following phenomena (referred to as <i>transaction isolation levels</i>): <ul> <li><i>dirty reads</i>:<br> reading values from table rows that are not committed.</br></li> <li><i>non-repeatable reads</i>:<br> reading table rows more than once in a transaction but getting back different data because other transactions have altered the rows between the reads.</br></li> <li><i>phantom reads</i>:<br> retrieving additional "phantom" rows in the course of repeated table reads because other transactions have inserted additional rows that satisfy an SQL WHERE clause</br></li> </ul>
		 */
		interface IConnection extends java.sql.IWrapper {
			/**
			 * Discards all warnings that may have arisen for this connection. Subsequent calls to #getWarnings() will return null up until a new warning condition occurs.
			 */
			clearWarnings(): void;
			/**
			 * Causes the instant release of all database and driver connection resources associated with this object. Any subsequent invocations of this method have no effect.
			 */
			close(): void;
			/**
			 * Commits all of the changes made since the last commit or rollback of the associated transaction. All locks in the database held by this connection are also relinquished. Calling this operation on connection objects in auto-commit mode leads to an error.
			 */
			commit(): void;
			/**
			 * Returns a new instance of Statement for issuing SQL commands to the remote database.
			 */
			createStatement(): java.sql.IStatement;
			/**
			 * Returns a new instance of Statement whose associated ResultSets have the characteristics specified in the type and concurrency arguments.
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 */
			createStatement(resultSetType: number, resultSetConcurrency: number): java.sql.IStatement;
			/**
			 * Returns a new instance of Statement whose associated ResultSets will have the characteristics specified in the type, concurrency and holdability arguments.
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 * @param resultSetHoldability 
			 */
			createStatement(resultSetType: number, resultSetConcurrency: number, resultSetHoldability: number): java.sql.IStatement;
			/**
			 * Returns a boolean indicating whether or not this connection is in the auto-commit operating mode.
			 */
			getAutoCommit(): boolean;
			/**
			 * Gets this Connection object's current catalog name.
			 */
			getCatalog(): string;
			/**
			 * Returns the holdability property that any ResultSet produced by this instance will have.
			 */
			getHoldability(): number;
			/**
			 * Gets the metadata about the database referenced by this connection. The returned DatabaseMetaData describes the database topography, available stored procedures, SQL syntax and so on.
			 */
			getMetaData(): java.sql.IDatabaseMetaData;
			/**
			 * Returns the transaction isolation level for this connection.
			 */
			getTransactionIsolation(): number;
			/**
			 * Returns the type mapping associated with this Connection object. The type mapping must be set on the application level.
			 */
			getTypeMap(): java.util.IMap<string, java.lang.Class<any>>;
			/**
			 * Gets the first instance of any SQLWarning objects that may have been created in the use of this connection. If at least one warning has occurred then this operation returns the first one reported. A null indicates that no warnings have occurred.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Returns a boolean indicating whether or not this connection is in the closed state. The closed state may be entered into as a consequence of a successful invocation of the #close() method or else if an error has occurred that prevents the connection from functioning normally.
			 */
			isClosed(): boolean;
			/**
			 * Returns a boolean indicating whether or not this connection is currently in the read-only state.
			 */
			isReadOnly(): boolean;
			/**
			 * Returns a string representation of the input SQL statement sql expressed in the underlying system's native SQL syntax.
			 * @param sql 
			 */
			nativeSQL(sql: string): string;
			/**
			 * Returns a new instance of CallableStatement that may be used for making stored procedure calls to the database.
			 * @param sql 
			 */
			prepareCall(sql: string): java.sql.ICallableStatement;
			/**
			 * Returns a new instance of CallableStatement that may be used for making stored procedure calls to the database. ResultSets emitted from this CallableStatement will satisfy the specified resultSetType and resultSetConcurrency values.
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 */
			prepareCall(sql: string, resultSetType: number, resultSetConcurrency: number): java.sql.ICallableStatement;
			/**
			 * Returns a new instance of CallableStatement that may be used for making stored procedure calls to the database. ResultSets created from this CallableStatement will have characteristics determined by the specified type, concurrency and holdability arguments.
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 * @param resultSetHoldability 
			 */
			prepareCall(sql: string, resultSetType: number, resultSetConcurrency: number, resultSetHoldability: number): java.sql.ICallableStatement;
			/**
			 * Returns a new instance of PreparedStatement that may be used any number of times to execute parameterized requests on the database server.
			 * @param sql 
			 */
			prepareStatement(sql: string): java.sql.IPreparedStatement;
			/**
			 * Creates a default PreparedStatement that can retrieve automatically generated keys. Parameter autoGeneratedKeys may be used to tell the driver whether such keys should be made accessible. This is only relevant when the sql statement is an insert statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			prepareStatement(sql: string, autoGeneratedKeys: number): java.sql.IPreparedStatement;
			/**
			 * Creates a default PreparedStatement that can retrieve the auto-generated keys designated by a supplied array. If sql is an SQL INSERT statement, the parameter columnIndexes is expected to hold the index values for each column in the statement's intended database table containing the autogenerated-keys of interest. Otherwise columnIndexes is ignored.
			 * @param sql 
			 * @param columnIndexes 
			 */
			prepareStatement(sql: string, columnIndexes: native.Array<number>): java.sql.IPreparedStatement;
			/**
			 * Creates a PreparedStatement that generates ResultSets with the specified values of resultSetType and resultSetConcurrency.
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 */
			prepareStatement(sql: string, resultSetType: number, resultSetConcurrency: number): java.sql.IPreparedStatement;
			/**
			 * Creates a PreparedStatement that generates ResultSets with the specified type, concurrency and holdability
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 * @param resultSetHoldability 
			 */
			prepareStatement(sql: string, resultSetType: number, resultSetConcurrency: number, resultSetHoldability: number): java.sql.IPreparedStatement;
			/**
			 * Releases the specified savepoint from the present transaction. Once removed, the Savepoint is considered invalid and should not be referenced further.
			 * @param savepoint 
			 */
			releaseSavepoint(savepoint: java.sql.ISavepoint): void;
			/**
			 * Rolls back all updates made so far in this transaction and relinquishes all acquired database locks. It is an error to invoke this operation when in auto-commit mode.
			 */
			rollback(): void;
			/**
			 * Undoes all changes made after the supplied Savepoint object was set. This method should only be used when auto-commit mode is disabled.
			 * @param savepoint 
			 */
			rollback(savepoint: java.sql.ISavepoint): void;
			/**
			 * Sets this connection's auto-commit mode on or off.
			 * @param autoCommit 
			 */
			setAutoCommit(autoCommit: boolean): void;
			/**
			 * Sets the catalog name for this connection. This is used to select a subspace of the database for future work. If the driver does not support catalog names, this method is ignored.
			 * @param catalog 
			 */
			setCatalog(catalog: string): void;
			/**
			 * Sets the holdability of the ResultSets created by this Connection.
			 * @param holdability 
			 */
			setHoldability(holdability: number): void;
			/**
			 * Sets this connection to read-only mode.
			 * @param readOnly 
			 */
			setReadOnly(readOnly: boolean): void;
			/**
			 * Creates an unnamed Savepoint in the current transaction.
			 */
			setSavepoint(): java.sql.ISavepoint;
			/**
			 * Creates a named Savepoint in the current transaction.
			 * @param name 
			 */
			setSavepoint(name: string): java.sql.ISavepoint;
			/**
			 * Sets the transaction isolation level for this Connection.
			 * @param level 
			 */
			setTransactionIsolation(level: number): void;
			/**
			 * Sets the TypeMap for this connection. The input map should contain mappings between complex Java and SQL types.
			 * @param map 
			 */
			setTypeMap(map: java.util.IMap<string, java.lang.Class<any>>): void;
			/**
			 * Returns a new empty Clob. SQLException if this connection is closed, or there's a problem creating a new clob.
			 */
			createClob(): java.sql.IClob;
			/**
			 * Returns a new empty Blob. SQLException if this connection is closed, or there's a problem creating a new blob.
			 */
			createBlob(): java.sql.IBlob;
			/**
			 * Returns a new empty NClob. SQLException if this connection is closed, or there's a problem creating a new nclob.
			 */
			createNClob(): java.sql.INClob;
			/**
			 * Returns a new empty SQLXML. SQLException if this connection is closed, or there's a problem creating a new XML.
			 */
			createSQLXML(): java.sql.ISQLXML;
			/**
			 * Returns true if this connection is still open and valid, false otherwise.
			 * @param timeout number of seconds to wait for a response before giving up and returning false,
			 */
			isValid(timeout: number): boolean;
			/**
			 * Sets the client info property name to value. A value of null clears the client info property. SQLClientInfoException if this connection is closed, or there's a problem setting the property.
			 */
			setClientInfo(name: string, value: string): void;
			/**
			 * Replaces all client info properties with the name/value pairs from properties. All existing properties are removed. If an exception is thrown, the resulting state of this connection's client info properties is undefined. SQLClientInfoException if this connection is closed, or there's a problem setting a property.
			 */
			setClientInfo(properties: java.util.Properties): void;
			/**
			 * Returns the value corresponding to the given client info property, or null if unset. SQLClientInfoException if this connection is closed, or there's a problem getting the property.
			 */
			getClientInfo(name: string): string;
			/**
			 * Returns a Properties object containing all client info properties. SQLClientInfoException if this connection is closed, or there's a problem getting a property.
			 */
			getClientInfo(): java.util.Properties;
			/**
			 * Returns a new Array containing the given elements.
			 * @param typeName the SQL name of the type of the array elements
			 * @param elements 
			 */
			createArrayOf(typeName: string, elements: native.Array<any>): java.sql.IArray;
			/**
			 * Returns a new Struct containing the given attributes.
			 * @param typeName the SQL name of the type of the struct attributes
			 * @param attributes 
			 */
			createStruct(typeName: string, attributes: native.Array<any>): java.sql.IStruct;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export module IConnection {
			/**
			 * A constant indicating that transactions are not supported.
			 */
			var TRANSACTION_NONE: number;
			/**
			 * No <i>dirty reads</i> are permitted, therefore transactions may not read a row containing uncommitted values - but does not prevent an application from <i>non-repeatable reads</i> and <i>phantom reads</i>.
			 */
			var TRANSACTION_READ_COMMITTED: number;
			/**
			 * In the case that reading uncommitted values is allowed, the following incidents may happen which may lead to an invalid results: <ul> <li><i>dirty reads</i></li> <li><i>non-repeatable reads</i></li> <li><i>phantom reads</i></li> </ul>
			 */
			var TRANSACTION_READ_UNCOMMITTED: number;
			/**
			 * A constant indicating that <i>dirty reads</i> and <i>non-repeatable reads</i> are <b>prevented</b> but <i>phantom reads</i> can occur.
			 */
			var TRANSACTION_REPEATABLE_READ: number;
			/**
			 * The constant that indicates that the following incidents are <b>all prevented</b> (the opposite of #TRANSACTION_READ_UNCOMMITTED): <ul> <li><i>dirty reads</i></li> <li><i>non-repeatable reads</i></li> <li><i>phantom reads</i></li> </ul>
			 */
			var TRANSACTION_SERIALIZABLE: number;
		}
		/**
		 * A Java representation of the SQL ARRAY type.
		 */
		interface IArray {
			/**
			 * Retrieves the contents of the SQL ARRAY value as a Java array object.
			 */
			getArray(): any;
			/**
			 * Returns part of the SQL ARRAY associated with this array, starting at a particular index and comprising up to count successive elements of the SQL array.
			 * @param index 
			 * @param count 
			 */
			getArray(index: number, count: number): any;
			/**
			 * Returns part of the SQL ARRAY associated with this array, starting at a particular index and comprising up to count successive elements of the SQL array.
			 * @param index 
			 * @param count 
			 * @param map 
			 */
			getArray(index: number, count: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Returns the data from the underlying SQL ARRAY as a Java array.
			 * @param map 
			 */
			getArray(map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Returns the JDBC type of the entries in this array's underlying SQL array.
			 */
			getBaseType(): number;
			/**
			 * Returns the SQL type name of the entries in this array's underlying SQL array.
			 */
			getBaseTypeName(): string;
			/**
			 * Returns a ResultSet object which holds the entries of the SQL ARRAY associated with this array.
			 */
			getResultSet(): java.sql.IResultSet;
			/**
			 * Returns a ResultSet object that holds the entries of a subarray, beginning at a particular index and comprising up to count successive entries.
			 * @param index 
			 * @param count 
			 */
			getResultSet(index: number, count: number): java.sql.IResultSet;
			/**
			 * Returns a ResultSet object that holds the entries of a subarray, beginning at a particular index and comprising up to count successive entries.
			 * @param index 
			 * @param count 
			 * @param map 
			 */
			getResultSet(index: number, count: number, map: java.util.IMap<string, java.lang.Class<any>>): java.sql.IResultSet;
			/**
			 * Returns a ResultSet object which holds the entries of the SQL ARRAY associated with this array.
			 * @param map 
			 */
			getResultSet(map: java.util.IMap<string, java.lang.Class<any>>): java.sql.IResultSet;
			/**
			 * Frees any resources held by this array. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing). SQLException
			 */
			free(): void;
		}
		/**
		 * A Java representation of the SQL TIMESTAMP type. It provides the capability of representing the SQL TIMESTAMP nanosecond value, in addition to the regular date/time value which has millisecond resolution.
		 */
		export class Timestamp extends java.util.Date {
			/**
			 * Returns a Timestamp corresponding to the time specified by the supplied values for <i>Year</i>, <i>Month</i>, <i>Date</i>, <i>Hour</i>, <i>Minutes</i>, <i>Seconds</i> and <i>Nanoseconds</i>.
			 * @param theYear 
			 * @param theMonth 
			 * @param theDate 
			 * @param theHour 
			 * @param theMinute 
			 * @param theSecond 
			 * @param theNano 
			 */
			constructor(theYear: number, theMonth: number, theDate: number, theHour: number, theMinute: number, theSecond: number, theNano: number);
			/**
			 * Returns a Timestamp object corresponding to the time represented by a supplied time value.
			 * @param theTime 
			 */
			constructor(theTime: number);
			static class: java.lang.Class<java.sql.Timestamp>;
			/**
			 * Returns true if this timestamp object is later than the supplied timestamp, otherwise returns false.
			 * @param theTimestamp 
			 */
			public after(theTimestamp: java.sql.Timestamp): boolean;
			/**
			 * Returns true if this Timestamp object is earlier than the supplied timestamp, otherwise returns false.
			 * @param theTimestamp 
			 */
			public before(theTimestamp: java.sql.Timestamp): boolean;
			/**
			 * Compares this Timestamp object with a supplied Timestamp object.
			 * @param theObject 
			 */
			public compareTo(theObject: java.util.Date): number;
			/**
			 * Compares this Timestamp object with a supplied Timestamp object.
			 * @param theTimestamp 
			 */
			public compareTo(theTimestamp: java.sql.Timestamp): number;
			/**
			 * Tests to see if this timestamp is equal to a supplied object.
			 * @param theObject 
			 */
			public equals(theObject: any): boolean;
			/**
			 * Tests to see if this timestamp is equal to a supplied timestamp.
			 * @param theTimestamp 
			 */
			public equals(theTimestamp: java.sql.Timestamp): boolean;
			/**
			 * Gets this Timestamp's nanosecond value
			 */
			public getNanos(): number;
			/**
			 * Returns the time represented by this Timestamp object, as a long value containing the number of milliseconds since the Epoch (January 1 1970, 00:00:00.000 GMT).
			 */
			public getTime(): any;
			/**
			 * Sets the nanosecond value for this Timestamp.
			 * @param n 
			 */
			public setNanos(n: number): void;
			/**
			 * Sets the time represented by this Timestamp object to the supplied time, defined as the number of milliseconds since the Epoch (January 1 1970, 00:00:00.000 GMT).
			 * @param theTime 
			 */
			public setTime(theTime: number): void;
			/**
			 * Returns the timestamp formatted as a String in the JDBC Timestamp Escape format, which is "yyyy-MM-dd HH:mm:ss.nnnnnnnnn".
			 */
			public toString(): string;
			/**
			 * Creates a Timestamp object with a time value equal to the time specified by a supplied String holding the time in JDBC timestamp escape format, which is "yyyy-MM-dd HH:mm:ss.nnnnnnnnn"
			 * @param s 
			 */
			public static valueOf(s: string): java.sql.Timestamp;
			/**
			 * Returns if this Date is after the specified Date.
			 * @param date 
			 */
			after(date: java.util.Date): boolean;
			/**
			 * Returns if this Date is before the specified Date.
			 * @param date 
			 */
			before(date: java.util.Date): boolean;
		}
		/**
		 * An interface which provides facilities for manipulating an SQL structured type as a Java object. The Struct object has a value for each attribute of the SQL structured type.
		 */
		export class Struct implements java.sql.IStruct {
			constructor(implementation: java.sql.IStruct);
			/**
			 * Gets the SQL Type name of the SQL structured type that this Struct represents.
			 */
			public getSQLTypeName(): string;
			/**
			 * Gets the values of the attributes of this SQL structured type. This method uses the type map associated with the Connection for customized type mappings. Where there is no entry in the type mapping which matches this structured type, the JDBC driver uses the standard mapping.
			 */
			public getAttributes(): native.Array<any>;
			/**
			 * Gets the values of the attributes of this SQL structured type. This method uses the supplied type mapping to determine how to map SQL types to their corresponding Java objects. In the case where there is no entry in the type mapping which matches this structured type, the JDBC driver uses the default mapping. The Connection type map is <i>never</i> utilized by this method.
			 * @param theMap 
			 */
			public getAttributes(theMap: java.util.IMap<string, java.lang.Class<any>>): native.Array<any>;
		}
		/**
		 * An interface for an object which represents a database table entry, returned as the result of the query to the database.
		 */
		interface IResultSet extends java.sql.IWrapper {
			/**
			 * Moves the cursor to a specified row number in the ResultSet.
			 * @param row 
			 */
			absolute(row: number): boolean;
			/**
			 * Moves the cursor to the end of the ResultSet, after the last row.
			 */
			afterLast(): void;
			/**
			 * Moves the cursor to the start of the ResultSet, before the first row.
			 */
			beforeFirst(): void;
			/**
			 * Cancels any updates made to the current row in the ResultSet.
			 */
			cancelRowUpdates(): void;
			/**
			 * Clears all warnings related to this ResultSet.
			 */
			clearWarnings(): void;
			/**
			 * Releases this ResultSet's database and JDBC resources. You are strongly advised to use this method rather than relying on the release being done when the ResultSet's finalize method is called during garbage collection process. Note that the close() method might take some time to complete since it is dependent on the behavior of the connection to the database and the database itself.
			 */
			close(): void;
			/**
			 * Deletes the current row from the ResultSet and from the underlying database.
			 */
			deleteRow(): void;
			/**
			 * Gets the index number for a column in the ResultSet from the provided column name.
			 * @param columnName 
			 */
			findColumn(columnName: string): number;
			/**
			 * Shifts the cursor position to the first row in the ResultSet.
			 */
			first(): boolean;
			/**
			 * Gets the content of a column specified by column index in the current row of this ResultSet as a java.sql.Array.
			 * @param columnIndex 
			 */
			getArray(columnIndex: number): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Array.
			 * @param colName 
			 */
			getArray(colName: string): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column index as an ASCII character stream.
			 * @param columnIndex 
			 */
			getAsciiStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as an ASCII character stream.
			 * @param columnName 
			 */
			getAsciiStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 */
			getBigDecimal(columnIndex: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 * @param scale 
			 */
			getBigDecimal(columnIndex: number, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 */
			getBigDecimal(columnName: string): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 * @param scale 
			 */
			getBigDecimal(columnName: string, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a binary stream.
			 * @param columnIndex 
			 */
			getBinaryStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as a binary stream.
			 * @param columnName 
			 */
			getBinaryStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Blob object.
			 * @param columnIndex 
			 */
			getBlob(columnIndex: number): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Blob object.
			 * @param columnName 
			 */
			getBlob(columnName: string): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column index as a boolean .
			 * @param columnIndex 
			 */
			getBoolean(columnIndex: number): boolean;
			/**
			 * Gets the value of a column specified by column name, as a boolean .
			 * @param columnName 
			 */
			getBoolean(columnName: string): boolean;
			/**
			 * Gets the value of a column specified by column index as a byte.
			 * @param columnIndex 
			 */
			getByte(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a byte.
			 * @param columnName 
			 */
			getByte(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a byte array.
			 * @param columnIndex 
			 */
			getBytes(columnIndex: number): native.Array<number>;
			/**
			 * Gets the value of a column specified by column name as a byte array.
			 * @param columnName 
			 */
			getBytes(columnName: string): native.Array<number>;
			/**
			 * Gets the value of a column specified by column index as a java.io.Reader object.
			 * @param columnIndex 
			 */
			getCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Gets the value of a column specified by column name as a java.io.Reader object.
			 * @param columnName 
			 */
			getCharacterStream(columnName: string): java.io.Reader;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Clob.
			 * @param columnIndex 
			 */
			getClob(columnIndex: number): java.sql.IClob;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Clob.
			 * @param colName 
			 */
			getClob(colName: string): java.sql.IClob;
			/**
			 * Gets the concurrency mode of this ResultSet.
			 */
			getConcurrency(): number;
			/**
			 * Gets the name of the SQL cursor of this ResultSet.
			 */
			getCursorName(): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date.
			 * @param columnIndex 
			 */
			getDate(columnIndex: number): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date. This method uses a supplied calendar to compute the Date.
			 * @param columnIndex 
			 * @param cal 
			 */
			getDate(columnIndex: number, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Date.
			 * @param columnName 
			 */
			getDate(columnName: string): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Date object.
			 * @param columnName 
			 * @param cal 
			 */
			getDate(columnName: string, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a double value.
			 * @param columnIndex 
			 */
			getDouble(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name as a double value.
			 * @param columnName 
			 */
			getDouble(columnName: string): any;
			/**
			 * Gets the direction in which rows are fetched for this ResultSet object.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the fetch size (in number of rows) for this ResultSet.
			 */
			getFetchSize(): number;
			/**
			 * Gets the value of a column specified by column index as a float value.
			 * @param columnIndex 
			 */
			getFloat(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a float value.
			 * @param columnName 
			 */
			getFloat(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as an int value.
			 * @param columnIndex 
			 */
			getInt(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as an int value.
			 * @param columnName 
			 */
			getInt(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a long value.
			 * @param columnIndex 
			 */
			getLong(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name, as a long value.
			 * @param columnName 
			 */
			getLong(columnName: string): any;
			/**
			 * Gets the metadata for this ResultSet. This defines the number, types and properties of the columns in the ResultSet.
			 */
			getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnIndex 
			 */
			getObject(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column index as a Java Object.
			 * @param columnIndex 
			 * @param map 
			 */
			getObject(columnIndex: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnName 
			 */
			getObject(columnName: string): any;
			/**
			 * Gets the value of a column specified by column name as a Java Object.
			 * @param columnName 
			 * @param map 
			 */
			getObject(columnName: string, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a column specified by column index as a Java java.sql.Ref.
			 * @param columnIndex 
			 */
			getRef(columnIndex: number): java.sql.IRef;
			/**
			 * Gets the value of a column specified by column name as a Java java.sql.Ref.
			 * @param colName 
			 */
			getRef(colName: string): java.sql.IRef;
			/**
			 * Gets the number of the current row in the ResultSet. Row numbers start at 1 for the first row.
			 */
			getRow(): number;
			/**
			 * Gets the value of a column specified by column index as a short value.
			 * @param columnIndex 
			 */
			getShort(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as a short value.
			 * @param columnName 
			 */
			getShort(columnName: string): number;
			/**
			 * Gets the statement that produced this ResultSet. If the ResultSet was not created by a statement (i.e. because it was returned from one of the DatabaseMetaData methods), null is returned.
			 */
			getStatement(): java.sql.IStatement;
			/**
			 * Gets the value of a column specified by column index as a String.
			 * @param columnIndex 
			 */
			getString(columnIndex: number): string;
			/**
			 * Gets the value of a column specified by column name, as a String.
			 * @param columnName 
			 */
			getString(columnName: string): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value.
			 * @param columnIndex 
			 */
			getTime(columnIndex: number): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnIndex 
			 * @param cal 
			 */
			getTime(columnIndex: number, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Time value.
			 * @param columnName 
			 */
			getTime(columnName: string): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnName 
			 * @param cal 
			 */
			getTime(columnName: string, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Timestamp value.
			 * @param columnIndex 
			 */
			getTimestamp(columnIndex: number): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnIndex 
			 * @param cal 
			 */
			getTimestamp(columnIndex: number, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value.
			 * @param columnName 
			 */
			getTimestamp(columnName: string): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnName 
			 * @param cal 
			 */
			getTimestamp(columnName: string, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the type of the ResultSet.
			 */
			getType(): number;
			/**
			 * Gets the value of the column as an InputStream of unicode characters.
			 * @param columnIndex 
			 */
			getUnicodeStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of the column as an InputStream of Unicode characters.
			 * @param columnName 
			 */
			getUnicodeStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.net.URL.
			 * @param columnIndex 
			 */
			getURL(columnIndex: number): java.net.URL;
			/**
			 * Gets the value of a column specified by column name as a java.net.URL object.
			 * @param columnName 
			 */
			getURL(columnName: string): java.net.URL;
			/**
			 * Gets the first warning generated by calls on this ResultSet. Subsequent warnings on this ResultSet are chained to the first one.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Insert the insert row into the ResultSet and into the underlying database. The cursor must be set to the Insert Row before this method is invoked.
			 */
			insertRow(): void;
			/**
			 * Gets if the cursor is after the last row of the ResultSet.
			 */
			isAfterLast(): boolean;
			/**
			 * Gets if the cursor is before the first row of the ResultSet.
			 */
			isBeforeFirst(): boolean;
			/**
			 * Gets if the cursor is on the first row of the ResultSet.
			 */
			isFirst(): boolean;
			/**
			 * Gets if the cursor is on the last row of the ResultSet
			 */
			isLast(): boolean;
			/**
			 * Shifts the cursor position to the last row of the ResultSet.
			 */
			last(): boolean;
			/**
			 * Moves the cursor to the remembered position, namely the row that was the current row before a call to moveToInsertRow. This only applies if the cursor is on the Insert Row.
			 */
			moveToCurrentRow(): void;
			/**
			 * Moves the cursor position to the Insert Row. The current position is remembered and the cursor is positioned at the Insert Row. The columns in the Insert Row should be filled in with the appropriate update methods, before calling insertRow to insert the new row into the database.
			 */
			moveToInsertRow(): void;
			/**
			 * Shifts the cursor position down one row in this ResultSet object.
			 */
			next(): boolean;
			/**
			 * Relocates the cursor position to the preceding row in this ResultSet.
			 */
			previous(): boolean;
			/**
			 * Refreshes the current row with its most up to date value in the database. Must not be called when the cursor is on the Insert Row.
			 */
			refreshRow(): void;
			/**
			 * Moves the cursor position up or down by a specified number of rows. If the new position is beyond the start row (or end row), the cursor position is set before the first row (or, respectively, after the last row).
			 * @param rows 
			 */
			relative(rows: number): boolean;
			/**
			 * Indicates whether a row has been deleted. This method depends on whether the JDBC driver and database can detect deletions.
			 */
			rowDeleted(): boolean;
			/**
			 * Indicates whether the current row has had an insertion operation. This method depends on whether the JDBC driver and database can detect insertions.
			 */
			rowInserted(): boolean;
			/**
			 * Indicates whether the current row has been updated. This method depends on whether the JDBC driver and database can detect updates.
			 */
			rowUpdated(): boolean;
			/**
			 * Indicates which direction (forward/reverse) will be used to process the rows of this ResultSet object. This is treated as a hint by the JDBC driver.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Indicates the number of rows to fetch from the database when extra rows are required for this ResultSet. This used as a hint to the JDBC driver.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Array value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateArray(columnIndex: number, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Array value.
			 * @param columnName 
			 * @param x 
			 */
			updateArray(columnName: string, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column index with an ASCII stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateAsciiStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with an Ascii stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			updateAsciiStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.BigDecimal value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBigDecimal(columnIndex: number, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column name with a java.sql.BigDecimal value.
			 * @param columnName 
			 * @param x 
			 */
			updateBigDecimal(columnName: string, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column index with a binary stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateBinaryStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with a binary stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			updateBinaryStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Blob value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBlob(columnIndex: number, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Blob value.
			 * @param columnName 
			 * @param x 
			 */
			updateBlob(columnName: string, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column index with a boolean value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBoolean(columnIndex: number, x: boolean): void;
			/**
			 * Updates a column specified by a column name with a boolean value.
			 * @param columnName 
			 * @param x 
			 */
			updateBoolean(columnName: string, x: boolean): void;
			/**
			 * Updates a column specified by a column index with a byte value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateByte(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a byte value.
			 * @param columnName 
			 * @param x 
			 */
			updateByte(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a byte array value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBytes(columnIndex: number, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column name with a byte array value.
			 * @param columnName 
			 * @param x 
			 */
			updateBytes(columnName: string, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column index with a character stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column name with a character stream value.
			 * @param columnName 
			 * @param reader 
			 * @param length 
			 */
			updateCharacterStream(columnName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Clob value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateClob(columnIndex: number, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Clob value.
			 * @param columnName 
			 * @param x 
			 */
			updateClob(columnName: string, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Date value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateDate(columnIndex: number, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Date value.
			 * @param columnName 
			 * @param x 
			 */
			updateDate(columnName: string, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column index with a double value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateDouble(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a double value.
			 * @param columnName 
			 * @param x 
			 */
			updateDouble(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a float value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateFloat(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a float value.
			 * @param columnName 
			 * @param x 
			 */
			updateFloat(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with an int value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateInt(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with an int value.
			 * @param columnName 
			 * @param x 
			 */
			updateInt(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a long value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateLong(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a long value.
			 * @param columnName 
			 * @param x 
			 */
			updateLong(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a null value.
			 * @param columnIndex 
			 */
			updateNull(columnIndex: number): void;
			/**
			 * Updates a column specified by a column name with a null value.
			 * @param columnName 
			 */
			updateNull(columnName: string): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateObject(columnIndex: number, x: any): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 * @param scale 
			 */
			updateObject(columnIndex: number, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 */
			updateObject(columnName: string, x: any): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 * @param scale 
			 */
			updateObject(columnName: string, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Ref value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateRef(columnIndex: number, x: java.sql.IRef): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Ref value.
			 * @param columnName 
			 * @param x 
			 */
			updateRef(columnName: string, x: java.sql.IRef): void;
			/**
			 * Updates the database with the new contents of the current row of this ResultSet object.
			 */
			updateRow(): void;
			/**
			 * Updates a column specified by a column index with a short value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateShort(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a short value.
			 * @param columnName 
			 * @param x 
			 */
			updateShort(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a String value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateString(columnIndex: number, x: string): void;
			/**
			 * Updates a column specified by a column name with a String value.
			 * @param columnName 
			 * @param x 
			 */
			updateString(columnName: string, x: string): void;
			/**
			 * Updates a column specified by a column index with a Time value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateTime(columnIndex: number, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column name with a Time value.
			 * @param columnName 
			 * @param x 
			 */
			updateTime(columnName: string, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column index with a Timestamp value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateTimestamp(columnIndex: number, x: java.sql.Timestamp): void;
			/**
			 * Updates a column specified by column name with a Timestamp value.
			 * @param columnName 
			 * @param x 
			 */
			updateTimestamp(columnName: string, x: java.sql.Timestamp): void;
			/**
			 * Determines whether the last column read from this ResultSet contained SQL NULL.
			 */
			wasNull(): boolean;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the 1-based columnIndex. SQLException
			 */
			getRowId(columnIndex: number): java.sql.IRowId;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the named column. SQLException
			 */
			getRowId(columnLabel: string): java.sql.IRowId;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateRowId(columnIndex: number, value: java.sql.IRowId): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateRowId(columnLabel: string, value: java.sql.IRowId): void;
			/**
			 * Returns the holdability of this result set: #HOLD_CURSORS_OVER_COMMIT or #CLOSE_CURSORS_AT_COMMIT. SQLException
			 */
			getHoldability(): number;
			/**
			 * Returns true if this result set has been closed, false otherwise. SQLException
			 */
			isClosed(): boolean;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNString(columnIndex: number, nString: string): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNString(columnLabel: string, nString: string): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, nClob: java.sql.INClob): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, nClob: java.sql.INClob): void;
			/**
			 * Returns an NClob corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNClob(columnIndex: number): java.sql.INClob;
			/**
			 * Returns an NClob corresponding to the value in the named column. SQLException
			 */
			getNClob(columnLabel: string): java.sql.INClob;
			/**
			 * Returns an SQLXML corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getSQLXML(columnIndex: number): java.sql.ISQLXML;
			/**
			 * Returns an SQLXML corresponding to the value in the named column. SQLException
			 */
			getSQLXML(columnLabel: string): java.sql.ISQLXML;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateSQLXML(columnIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateSQLXML(columnLabel: string, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Returns a String corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNString(columnIndex: number): string;
			/**
			 * Returns a String corresponding to the value in the named column. SQLException
			 */
			getNString(columnLabel: string): string;
			/**
			 * Returns a Reader corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Returns a Reader corresponding to the value in the named column. SQLException
			 */
			getNCharacterStream(columnLabel: string): java.io.Reader;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnLabel: string, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateAsciiStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBinaryStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateAsciiStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBinaryStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnLabel: string, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export module IResultSet {
			/**
			 * A constant used to indicate that a ResultSet object must be closed when the method Connection.commit is invoked.
			 */
			var CLOSE_CURSORS_AT_COMMIT: number;
			/**
			 * A constant used to indicate that a ResultSet object must not be closed when the method Connection.commit is invoked.
			 */
			var HOLD_CURSORS_OVER_COMMIT: number;
			/**
			 * A constant used to indicate the concurrency mode for a ResultSet object that cannot be updated.
			 */
			var CONCUR_READ_ONLY: number;
			/**
			 * A constant used to indicate the concurrency mode for a ResultSet object that can be updated.
			 */
			var CONCUR_UPDATABLE: number;
			/**
			 * A constant used to indicate processing of the rows of a ResultSet in the forward direction, first to last.
			 */
			var FETCH_FORWARD: number;
			/**
			 * A constant used to indicate processing of the rows of a ResultSet in the reverse direction, last to first.
			 */
			var FETCH_REVERSE: number;
			/**
			 * A constant used to indicate that the order of processing of the rows of a ResultSet is unknown.
			 */
			var FETCH_UNKNOWN: number;
			/**
			 * A constant used to indicate a ResultSet object whose cursor can only move forward.
			 */
			var TYPE_FORWARD_ONLY: number;
			/**
			 * A constant used to indicate a ResultSet object which is scrollable but is insensitive to changes made by others.
			 */
			var TYPE_SCROLL_INSENSITIVE: number;
			/**
			 * A constant used to indicate a ResultSet object which is scrollable and sensitive to changes made by others.
			 */
			var TYPE_SCROLL_SENSITIVE: number;
		}
		/**
		 * An exception, which is subclass of SQLException, is thrown when various data errors arise. These errors including division by 0 and invalid arguments to functions
		 */
		export class SQLDataException extends java.sql.SQLNonTransientException {
			/**
			 * Creates an SQLDataException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLDataException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLDataException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLDataException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLDataException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLDataException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLDataException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLDataException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLDataException>;
		}
		/**
		 * An interface for the custom mapping of an SQL <i>User Defined Type</i> (UDT) to a Java class. The Java class object is added to the connection's type map paired with the SQL name of the corresponding UDT.
		 */
		export class SQLData implements java.sql.ISQLData {
			constructor(implementation: java.sql.ISQLData);
			/**
			 * Gets the SQL name of the <i>User Defined Type</i> (UDT) that this object represents. This method, usually invoked by the JDBC driver, retrieves the name of the UDT instance associated with this SQLData object.
			 */
			public getSQLTypeName(): string;
			/**
			 * Reads data from the database into this object. This method follows these steps:
			 * @param stream 
			 * @param typeName 
			 */
			public readSQL(stream: java.sql.ISQLInput, typeName: string): void;
			/**
			 * Writes the object to a supplied SQLOutput data stream, writing it out as an SQL value to the data source.
			 * @param stream 
			 */
			public writeSQL(stream: java.sql.ISQLOutput): void;
		}
		/**
		 * An interface used to call <i>Stored Procedures</i>.
		 */
		export class CallableStatement implements java.sql.IPreparedStatement, java.sql.ICallableStatement {
			constructor(implementation: java.sql.ICallableStatement);
			/**
			 * Gets the value of a specified JDBC ARRAY parameter as a java.sql.Array.
			 * @param parameterIndex 
			 */
			public getArray(parameterIndex: number): java.sql.IArray;
			/**
			 * Gets the value of a specified JDBC ARRAY parameter as a java.sql.Array.
			 * @param parameterName 
			 */
			public getArray(parameterName: string): java.sql.IArray;
			/**
			 * Returns a new BigDecimal representation of the JDBC NUMERIC parameter specified by the input index.
			 * @param parameterIndex 
			 */
			public getBigDecimal(parameterIndex: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal representation of the JDBC NUMERIC parameter specified by the input index. The number of digits after the decimal point is specified by scale.
			 * @param parameterIndex 
			 * @param scale 
			 */
			public getBigDecimal(parameterIndex: number, scale: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal representation of the JDBC NUMERIC parameter specified by the input name.
			 * @param parameterName 
			 */
			public getBigDecimal(parameterName: string): java.math.BigDecimal;
			/**
			 * Gets the value of a specified JDBC BLOB parameter as a java.sql.Blob.
			 * @param parameterIndex 
			 */
			public getBlob(parameterIndex: number): java.sql.IBlob;
			/**
			 * Gets the value of a specified JDBC BLOB parameter as a java.sql.Blob.
			 * @param parameterName 
			 */
			public getBlob(parameterName: string): java.sql.IBlob;
			/**
			 * Gets the value of a specified JDBC BIT parameter as a boolean.
			 * @param parameterIndex 
			 */
			public getBoolean(parameterIndex: number): boolean;
			/**
			 * Gets the value of a specified JDBC BIT parameter as a boolean.
			 * @param parameterName 
			 */
			public getBoolean(parameterName: string): boolean;
			/**
			 * Gets the value of a specified JDBC TINYINT parameter as a byte.
			 * @param parameterIndex 
			 */
			public getByte(parameterIndex: number): number;
			/**
			 * Gets the value of a specified JDBC TINYINT parameter as a Java byte.
			 * @param parameterName 
			 */
			public getByte(parameterName: string): number;
			/**
			 * Returns a byte array representation of the indexed JDBC BINARY or VARBINARY parameter.
			 * @param parameterIndex 
			 */
			public getBytes(parameterIndex: number): native.Array<number>;
			/**
			 * Returns a byte array representation of the named JDBC BINARY or VARBINARY parameter.
			 * @param parameterName 
			 */
			public getBytes(parameterName: string): native.Array<number>;
			/**
			 * Gets the value of a specified JDBC CLOB parameter as a java.sql.Clob.
			 * @param parameterIndex 
			 */
			public getClob(parameterIndex: number): java.sql.IClob;
			/**
			 * Gets the value of a specified JDBC CLOB parameter as a java.sql.Clob.
			 * @param parameterName 
			 */
			public getClob(parameterName: string): java.sql.IClob;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date.
			 * @param parameterIndex 
			 */
			public getDate(parameterIndex: number): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date, using the specified Calendar to construct the date.
			 * @param parameterIndex 
			 * @param cal 
			 */
			public getDate(parameterIndex: number, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date.
			 * @param parameterName 
			 */
			public getDate(parameterName: string): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date, using the specified Calendar to construct the date.
			 * @param parameterName 
			 * @param cal 
			 */
			public getDate(parameterName: string, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DOUBLE parameter as a double.
			 * @param parameterIndex 
			 */
			public getDouble(parameterIndex: number): any;
			/**
			 * Gets the value of the specified JDBC DOUBLE parameter as a double.
			 * @param parameterName 
			 */
			public getDouble(parameterName: string): any;
			/**
			 * Gets the value of the specified JDBC FLOAT parameter as a float.
			 * @param parameterIndex 
			 */
			public getFloat(parameterIndex: number): number;
			/**
			 * Gets the value of the specified JDBC FLOAT parameter as a Java float.
			 * @param parameterName 
			 */
			public getFloat(parameterName: string): number;
			/**
			 * Gets the value of the specified JDBC INTEGER parameter as an int.
			 * @param parameterIndex 
			 */
			public getInt(parameterIndex: number): number;
			/**
			 * Gets the value of the specified JDBC INTEGER parameter as an int.
			 * @param parameterName 
			 */
			public getInt(parameterName: string): number;
			/**
			 * Gets the value of the specified JDBC BIGINT parameter as a long.
			 * @param parameterIndex 
			 */
			public getLong(parameterIndex: number): any;
			/**
			 * Gets the value of the specified JDBC BIGINT parameter as a long.
			 * @param parameterName 
			 */
			public getLong(parameterName: string): any;
			/**
			 * Gets the value of the specified parameter as a Java Object.
			 * @param parameterIndex 
			 */
			public getObject(parameterIndex: number): any;
			/**
			 * Gets the value of the specified parameter as an Object. The Map gives the correspondence between SQL types and Java classes.
			 * @param parameterIndex 
			 * @param map 
			 */
			public getObject(parameterIndex: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of the specified parameter as an Object.
			 * @param parameterName 
			 */
			public getObject(parameterName: string): any;
			/**
			 * Gets the value of a specified parameter as an Object. The actual return type is determined by the Map parameter which gives the correspondence between SQL types and Java classes.
			 * @param parameterName 
			 * @param map 
			 */
			public getObject(parameterName: string, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a specified SQL REF(<structured type>) parameter as a java.sql.Ref.
			 * @param parameterIndex 
			 */
			public getRef(parameterIndex: number): java.sql.IRef;
			/**
			 * Gets the value of a specified SQL REF(<structured type>) parameter as a java.sql.Ref.
			 * @param parameterName 
			 */
			public getRef(parameterName: string): java.sql.IRef;
			/**
			 * Gets the value of a specified JDBC SMALLINT parameter as a short.
			 * @param parameterIndex 
			 */
			public getShort(parameterIndex: number): number;
			/**
			 * Gets the value of a specified JDBC SMALLINT parameter as a short.
			 * @param parameterName 
			 */
			public getShort(parameterName: string): number;
			/**
			 * Returns the indexed parameter's value as a String. The parameter value must be one of the JDBC types CHAR, VARCHAR or LONGVARCHAR.
			 * @param parameterIndex 
			 */
			public getString(parameterIndex: number): string;
			/**
			 * Returns the named parameter's value as a string. The parameter value must be one of the JDBC types CHAR, VARCHAR or LONGVARCHAR.
			 * @param parameterName 
			 */
			public getString(parameterName: string): string;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time.
			 * @param parameterIndex 
			 */
			public getTime(parameterIndex: number): java.sql.Time;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time, using the supplied Calendar to construct the time. The JDBC driver uses the calendar to handle specific timezones and locales in order to determine Time.
			 * @param parameterIndex 
			 * @param cal 
			 */
			public getTime(parameterIndex: number, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time.
			 * @param parameterName 
			 */
			public getTime(parameterName: string): java.sql.Time;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time, using the supplied Calendar to construct the time. The JDBC driver uses the calendar to handle specific timezones and locales when creating Time.
			 * @param parameterName 
			 * @param cal 
			 */
			public getTime(parameterName: string, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Returns the indexed parameter's TIMESTAMP value as a java.sql.Timestamp.
			 * @param parameterIndex 
			 */
			public getTimestamp(parameterIndex: number): java.sql.Timestamp;
			/**
			 * Returns the indexed parameter's TIMESTAMP value as a java.sql.Timestamp. The JDBC driver uses the supplied Calendar to handle specific timezones and locales when creating the result.
			 * @param parameterIndex 
			 * @param cal 
			 */
			public getTimestamp(parameterIndex: number, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Returns the named parameter's TIMESTAMP value as a java.sql.Timestamp.
			 * @param parameterName 
			 */
			public getTimestamp(parameterName: string): java.sql.Timestamp;
			/**
			 * Returns the indexed parameter's TIMESTAMP value as a java.sql.Timestamp. The JDBC driver uses the supplied Calendar to handle specific timezones and locales when creating the result.
			 * @param parameterName 
			 * @param cal 
			 */
			public getTimestamp(parameterName: string, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the value of a specified JDBC DATALINK parameter as a java.net.URL.
			 * @param parameterIndex 
			 */
			public getURL(parameterIndex: number): java.net.URL;
			/**
			 * Returns the named parameter's JDBC DATALINK value in a new Java java.net.URL.
			 * @param parameterName 
			 */
			public getURL(parameterName: string): java.net.URL;
			/**
			 * Defines the type of a specified OUT parameter. All OUT parameters must have their type defined before a stored procedure is executed.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			public registerOutParameter(parameterIndex: number, sqlType: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. All OUT parameters must have their type defined before a stored procedure is executed. This version of the registerOutParameter method, which has a scale parameter, should be used for the JDBC types NUMERIC and DECIMAL, where there is a need to specify the number of digits expected after the decimal point.
			 * @param parameterIndex 
			 * @param sqlType 
			 * @param scale 
			 */
			public registerOutParameter(parameterIndex: number, sqlType: number, scale: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. This variant of the method is designed for use with parameters that are <i>User Defined Types</i> (UDT) or a REF type, although it can be used for any type.
			 * @param paramIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			public registerOutParameter(paramIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Defines the Type of a specified OUT parameter. All OUT parameters must have their Type defined before a stored procedure is executed.
			 * @param parameterName 
			 * @param sqlType 
			 */
			public registerOutParameter(parameterName: string, sqlType: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. All OUT parameters must have their Type defined before a stored procedure is executed. This version of the registerOutParameter method, which has a scale parameter, should be used for the JDBC types NUMERIC and DECIMAL, where there is a need to specify the number of digits expected after the decimal point.
			 * @param parameterName 
			 * @param sqlType 
			 * @param scale 
			 */
			public registerOutParameter(parameterName: string, sqlType: number, scale: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. This variant of the method is designed for use with parameters that are <i>User Defined Types</i> (UDT) or a REF type, although it can be used for any type.
			 * @param parameterName 
			 * @param sqlType 
			 * @param typeName 
			 */
			public registerOutParameter(parameterName: string, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied InputStream, which has a specified number of bytes.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			public setAsciiStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.math.BigDecimal value.
			 * @param parameterName 
			 * @param theBigDecimal 
			 */
			public setBigDecimal(parameterName: string, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied binary InputStream, which has a specified number of bytes.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			public setBinaryStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied boolean value.
			 * @param parameterName 
			 * @param theBoolean 
			 */
			public setBoolean(parameterName: string, theBoolean: boolean): void;
			/**
			 * Sets the value of a specified parameter to a supplied byte value.
			 * @param parameterName 
			 * @param theByte 
			 */
			public setByte(parameterName: string, theByte: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied array of bytes. The array is mapped to VARBINARY or else LONGVARBINARY in the connected database.
			 * @param parameterName 
			 * @param theBytes 
			 */
			public setBytes(parameterName: string, theBytes: native.Array<number>): void;
			/**
			 * Sets the value of a specified parameter to the character content of a Reader object, with the specified length of character data.
			 * @param parameterName 
			 * @param reader 
			 * @param length 
			 */
			public setCharacterStream(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value.
			 * @param parameterName 
			 * @param theDate 
			 */
			public setDate(parameterName: string, theDate: java.sql.Date): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value, using a supplied calendar to map the date. The calendar allows the application to control the timezone used to compute the SQL DATE in the database. In case that no calendar is supplied, the driver uses the default timezone of the Java virtual machine.
			 * @param parameterName 
			 * @param theDate 
			 * @param cal 
			 */
			public setDate(parameterName: string, theDate: java.sql.Date, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied double value.
			 * @param parameterName 
			 * @param theDouble 
			 */
			public setDouble(parameterName: string, theDouble: number): void;
			/**
			 * Sets the value of a specified parameter to to a supplied float value.
			 * @param parameterName 
			 * @param theFloat 
			 */
			public setFloat(parameterName: string, theFloat: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied int value.
			 * @param parameterName 
			 * @param theInt 
			 */
			public setInt(parameterName: string, theInt: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied long value.
			 * @param parameterName 
			 * @param theLong 
			 */
			public setLong(parameterName: string, theLong: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. Don't use this version of setNull for <i>User Defined Types</i> (UDT) or for REF type parameters.
			 * @param parameterName 
			 * @param sqlType 
			 */
			public setNull(parameterName: string, sqlType: number): void;
			/**
			 * Sets the value of a specified parameter to be SQL NULL where the parameter type is either REF or user defined (e.g. STRUCT , JAVA_OBJECT etc).
			 * @param parameterName 
			 * @param sqlType 
			 * @param typeName 
			 */
			public setNull(parameterName: string, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter using a supplied object. Prior to issuing this request to the connected database theObject is transformed to the corresponding SQL type according to the standard Java to SQL mapping rules.
			 * @param parameterName 
			 * @param theObject 
			 */
			public setObject(parameterName: string, theObject: any): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			public setObject(parameterName: string, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			public setObject(parameterName: string, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied short value.
			 * @param parameterName 
			 * @param theShort 
			 */
			public setShort(parameterName: string, theShort: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied String.
			 * @param parameterName 
			 * @param theString 
			 */
			public setString(parameterName: string, theString: string): void;
			/**
			 * Sets the value of the parameter named parameterName to the value of the supplied java.sql.Time.
			 * @param parameterName 
			 * @param theTime 
			 */
			public setTime(parameterName: string, theTime: java.sql.Time): void;
			/**
			 * Sets the value of the parameter named parameterName to the value of the supplied java.sql.Time using the supplied calendar.
			 * @param parameterName 
			 * @param theTime 
			 * @param cal 
			 */
			public setTime(parameterName: string, theTime: java.sql.Time, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value.
			 * @param parameterName 
			 * @param theTimestamp 
			 */
			public setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value, using the supplied calendar.
			 * @param parameterName 
			 * @param theTimestamp 
			 * @param cal 
			 */
			public setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to the supplied java.net.URL.
			 * @param parameterName 
			 * @param theURL 
			 */
			public setURL(parameterName: string, theURL: java.net.URL): void;
			/**
			 * Gets whether the value of the last OUT parameter read was SQL NULL.
			 */
			public wasNull(): boolean;
			/**
			 * Gets the value of a specified ROWID parameter as a java.sql.RowId.
			 * @param parameterIndex 
			 */
			public getRowId(parameterIndex: number): java.sql.IRowId;
			/**
			 * Returns the value of the specified SQL ROWID parameter as a java.sql.RowId.
			 * @param parameterName the parameter name
			 */
			public getRowId(parameterName: string): java.sql.IRowId;
			/**
			 * Sets the named parameter to the given rowId. SQLException if a database error occurs
			 */
			public setRowId(parameterName: string, rowId: java.sql.IRowId): void;
			/**
			 * Sets the named parameter to the given string. SQLException if a database error occurs
			 */
			public setNString(parameterName: string, string: string): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			public setNCharacterStream(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the named parameter to the given nclob. SQLException if a database error occurs
			 */
			public setNClob(parameterName: string, nclob: java.sql.INClob): void;
			/**
			 * Sets the named parameter to the next length characters from the given reader. SQLException if a database error occurs
			 */
			public setClob(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the named parameter to the next length bytes from the given inputStream. SQLException if a database error occurs
			 */
			public setBlob(parameterName: string, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the named parameter to the next length characters from the given reader. SQLException if a database error occurs
			 */
			public setNClob(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Returns the value of the specified SQL NCLOB parameter as a java.sql.NClob.
			 * @param parameterIndex 
			 */
			public getNClob(parameterIndex: number): java.sql.INClob;
			/**
			 * Returns the value of the specified SQL NCLOB parameter as a java.sql.NClob.
			 * @param parameterName the parameter name
			 */
			public getNClob(parameterName: string): java.sql.INClob;
			/**
			 * Sets the named parameter to the given sqlXml. SQLException if a database error occurs
			 */
			public setSQLXML(parameterName: string, sqlXml: java.sql.ISQLXML): void;
			/**
			 * Returns the value of the specified SQL XML parameter as a java.sql.SQLXML.
			 * @param parameterIndex 
			 */
			public getSQLXML(parameterIndex: number): java.sql.ISQLXML;
			/**
			 * Returns the value of the specified SQL XML parameter as a java.sql.SQLXML.
			 * @param parameterName the parameter name
			 */
			public getSQLXML(parameterName: string): java.sql.ISQLXML;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a java.lang.String.
			 * @param parameterIndex 
			 */
			public getNString(parameterIndex: number): string;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a java.lang.String.
			 * @param parameterName the parameter name
			 */
			public getNString(parameterName: string): string;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a Reader.
			 * @param parameterIndex 
			 */
			public getNCharacterStream(parameterIndex: number): java.io.Reader;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a java.io.Reader.
			 * @param parameterName the parameter name
			 */
			public getNCharacterStream(parameterName: string): java.io.Reader;
			/**
			 * Returns the value of the specified parameter as a java.io.Reader.
			 * @param parameterIndex 
			 */
			public getCharacterStream(parameterIndex: number): java.io.Reader;
			/**
			 * Returns the value of the specified parameter as a java.io.Reader.
			 * @param parameterName the parameter name
			 */
			public getCharacterStream(parameterName: string): java.io.Reader;
			/**
			 * Sets the named parameter to the given blob. SQLException if a database error occurs
			 */
			public setBlob(parameterName: string, blob: java.sql.IBlob): void;
			/**
			 * Sets the named parameter to the given clob. SQLException if a database error occurs
			 */
			public setClob(parameterName: string, clob: java.sql.IClob): void;
			/**
			 * Sets the named parameter to the bytes from the given reader. SQLException if a database error occurs
			 */
			public setAsciiStream(parameterName: string, x: java.io.InputStream): void;
			/**
			 * Sets the named parameter to the bytes from the given reader. SQLException if a database error occurs
			 */
			public setBinaryStream(parameterName: string, x: java.io.InputStream): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			public setCharacterStream(parameterName: string, reader: java.io.Reader): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			public setNCharacterStream(parameterName: string, value: java.io.Reader): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			public setClob(parameterName: string, reader: java.io.Reader): void;
			/**
			 * Sets the named parameter to the bytes from the given inputStream. SQLException if a database error occurs
			 */
			public setBlob(parameterName: string, inputStream: java.io.InputStream): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			public setNClob(parameterName: string, reader: java.io.Reader): void;
			/**
			 * Add a set of parameters to the PreparedStatement's command batch.
			 */
			addBatch(): void;
			/**
			 * Clear the current parameter values.
			 */
			clearParameters(): void;
			/**
			 * Executes the SQL statement in this PreparedStatement.
			 */
			execute(): boolean;
			/**
			 * Executes the SQL query in the PreparedStatement and returns the ResultSet generated by the query.
			 */
			executeQuery(): java.sql.IResultSet;
			/**
			 * Invokes the SQL command contained within the prepared statement. This must be INSERT, UPDATE, DELETE, or a command that returns nothing.
			 */
			executeUpdate(): number;
			/**
			 * Returns a ResultSetMetaData describing the ResultSet that would be produced by execution of the PreparedStatement.
			 */
			getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets information about the parameters of the PreparedStatement.
			 */
			getParameterMetaData(): java.sql.IParameterMetaData;
			/**
			 * Sets the value of a specified parameter to the supplied Array.
			 * @param parameterIndex 
			 * @param theArray 
			 */
			setArray(parameterIndex: number, theArray: java.sql.IArray): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.math.BigDecimal value.
			 * @param parameterIndex 
			 * @param theBigDecimal 
			 */
			setBigDecimal(parameterIndex: number, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied binary InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Blob object.
			 * @param parameterIndex 
			 * @param theBlob 
			 */
			setBlob(parameterIndex: number, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of a specified parameter to a supplied boolean value.
			 * @param parameterIndex 
			 * @param theBoolean 
			 */
			setBoolean(parameterIndex: number, theBoolean: boolean): void;
			/**
			 * Sets the value of a specified parameter to a supplied byte value.
			 * @param parameterIndex 
			 * @param theByte 
			 */
			setByte(parameterIndex: number, theByte: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied array of bytes. The array is mapped to a VARBINARY or LONGVARBINARY in the database.
			 * @param parameterIndex 
			 * @param theBytes 
			 */
			setBytes(parameterIndex: number, theBytes: native.Array<number>): void;
			/**
			 * Sets the value of a specified parameter to the character content of a Reader object, with the specified length of character data.
			 * @param parameterIndex 
			 * @param reader 
			 * @param length 
			 */
			setCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Clob object.
			 * @param parameterIndex 
			 * @param theClob 
			 */
			setClob(parameterIndex: number, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value.
			 * @param parameterIndex 
			 * @param theDate 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value, using a supplied Calendar to map the Date. The Calendar allows the application to control the timezone used to compute the SQL DATE in the database - without the supplied Calendar, the driver uses the VM defaults. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param parameterIndex 
			 * @param theDate 
			 * @param cal 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied double value.
			 * @param parameterIndex 
			 * @param theDouble 
			 */
			setDouble(parameterIndex: number, theDouble: number): void;
			/**
			 * Sets the value of a specified parameter to to a supplied float value.
			 * @param parameterIndex 
			 * @param theFloat 
			 */
			setFloat(parameterIndex: number, theFloat: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied int value.
			 * @param parameterIndex 
			 * @param theInt 
			 */
			setInt(parameterIndex: number, theInt: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied long value.
			 * @param parameterIndex 
			 * @param theLong 
			 */
			setLong(parameterIndex: number, theLong: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. Don't use this version of setNull for <i>User Defined Types</i> (UDT) or for REF type parameters.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			setNull(parameterIndex: number, sqlType: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. This version of setNull should be used for <i>User Defined Types</i> (UDTs) and also REF types. UDTs can be STRUCT, DISTINCT, JAVA_OBJECT and named array types.
			 * @param paramIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			setNull(paramIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 */
			setObject(parameterIndex: number, theObject: any): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied REF(<structured-type>) value. This is stored as an SQL REF.
			 * @param parameterIndex 
			 * @param theRef 
			 */
			setRef(parameterIndex: number, theRef: java.sql.IRef): void;
			/**
			 * Sets the value of a specified parameter to a supplied short value.
			 * @param parameterIndex 
			 * @param theShort 
			 */
			setShort(parameterIndex: number, theShort: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			setString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value.
			 * @param parameterIndex 
			 * @param theTime 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value, using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 * @param cal 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value, using the supplied Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 * @param cal 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to the characters from a supplied InputStream, with a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setUnicodeStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.net.URL.
			 * @param parameterIndex 
			 * @param theURL 
			 */
			setURL(parameterIndex: number, theURL: java.net.URL): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.RowId.
			 * @param parameterIndex 
			 * @param theRowId 
			 */
			setRowId(parameterIndex: number, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			setNString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setNCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to value.
			 * @param parameterIndex 
			 * @param value 
			 */
			setNClob(parameterIndex: number, value: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 * @param length character count
			 */
			setBlob(parameterIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setNClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the value of xmlObject.
			 * @param parameterIndex 
			 * @param xmlObject the {@code SQLXML}
			 */
			setSQLXML(parameterIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setAsciiStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setBinaryStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setNCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setBlob(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setNClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Adds a specified SQL command to the list of commands for this Statement.
			 * @param sql 
			 */
			addBatch(sql: string): void;
			/**
			 * Cancels this statement's execution if both the database and the JDBC driver support aborting an SQL statement in flight. This method can be used by one thread to stop a statement that is executed on another thread.
			 */
			cancel(): void;
			/**
			 * Clears the current list of SQL commands for this statement.
			 */
			clearBatch(): void;
			/**
			 * Clears all SQLWarnings from this statement.
			 */
			clearWarnings(): void;
			/**
			 * Releases this statement's database and JDBC driver resources.
			 */
			close(): void;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets.
			 * @param sql 
			 */
			execute(sql: string): boolean;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets. This method allows control of whether auto-generated Keys should be made available for retrieval, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			execute(sql: string, autoGeneratedKeys: number): boolean;
			/**
			 * Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param columnIndexes 
			 */
			execute(sql: string, columnIndexes: native.Array<number>): boolean;
			/**
			 * Submits a batch of SQL commands to the database. Returns an array of update counts, if all the commands execute successfully.
			 */
			executeBatch(): native.Array<number>;
			/**
			 * Executes a supplied SQL statement. Returns a single ResultSet.
			 * @param sql 
			 */
			executeQuery(sql: string): java.sql.IResultSet;
			/**
			 * Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.
			 * @param sql 
			 */
			executeUpdate(sql: string): number;
			/**
			 * Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			executeUpdate(sql: string, autoGeneratedKeys: number): number;
			/**
			 * Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.
			 * @param sql 
			 * @param columnIndexes 
			 */
			executeUpdate(sql: string, columnIndexes: native.Array<number>): number;
			/**
			 * Gets the Connection object which created this statement.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Gets the default direction for fetching rows for ResultSets generated from this statement.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the default number of rows for a fetch for the ResultSet objects returned from this statement.
			 */
			getFetchSize(): number;
			/**
			 * Returns auto generated keys created by executing this statement.
			 */
			getGeneratedKeys(): java.sql.IResultSet;
			/**
			 * Gets the maximum number of bytes which can be returned as values from character and binary type columns in a ResultSet derived from this statement. This limit applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR types. Any data exceeding the maximum size is abandoned without announcement.
			 */
			getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows that a ResultSet can contain when produced from this statement. If the limit is exceeded, the excess rows are discarded silently.
			 */
			getMaxRows(): number;
			/**
			 * Moves to this statement's next result. Returns true if it is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are closed implicitly.
			 */
			getMoreResults(): boolean;
			/**
			 * Moves to this statement's next result. Returns true if the next result is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are handled as indicated by a supplied Flag parameter.
			 * @param current 
			 */
			getMoreResults(current: number): boolean;
			/**
			 * Gets the timeout value for the statement's execution time. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.
			 */
			getQueryTimeout(): number;
			/**
			 * Gets the current result. Should only be called once per result.
			 */
			getResultSet(): java.sql.IResultSet;
			/**
			 * Gets the concurrency setting for ResultSet objects generated by this statement.
			 */
			getResultSetConcurrency(): number;
			/**
			 * Gets the cursor hold setting for ResultSet objects generated by this statement.
			 */
			getResultSetHoldability(): number;
			/**
			 * Gets the ResultSet type setting for ResultSets derived from this statement.
			 */
			getResultSetType(): number;
			/**
			 * Gets an update count for the current result if it is not a ResultSet.
			 */
			getUpdateCount(): number;
			/**
			 * Retrieves the first SQLWarning reported by calls on this statement. If there are multiple warnings, subsequent warnings are chained to the first one. The chain of warnings is cleared each time the statement is executed.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Sets the SQL cursor name. This name is used by subsequent statement execute methods.
			 * @param name 
			 */
			setCursorName(name: string): void;
			/**
			 * Sets Escape Processing mode.
			 * @param enable 
			 */
			setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this statement. The default fetch direction is FETCH_FORWARD.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Sets the fetch size. This is a hint to the JDBC driver about how many rows should be fetched from the database when more are required by application processing.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Sets the maximum number of bytes for ResultSet columns that contain character or binary values. This applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR fields. Any data exceeding the maximum size is abandoned without announcement.
			 * @param max 
			 */
			setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows that any ResultSet can contain. If the number of rows exceeds this value, the additional rows are silently discarded.
			 * @param max 
			 */
			setMaxRows(max: number): void;
			/**
			 * Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a statement execution. If the timeout is exceeded, the query will throw an SQLException.
			 * @param seconds 
			 */
			setQueryTimeout(seconds: number): void;
			/**
			 * Returns true if this statement has been closed, false otherwise.
			 */
			isClosed(): boolean;
			/**
			 * Hints whether this statement should be pooled. Defaults to false for Statement, but true for CallableStatement and PreparedStatement. Pool manager implementations may or may not honor this hint.
			 */
			setPoolable(poolable: boolean): void;
			/**
			 * Returns true if this statement is poolable, false otherwise.
			 */
			isPoolable(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export class SQLTimeoutException extends java.sql.SQLTransientException {
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTimeoutException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLTimeoutException>;
		}
		/**
		 * An exception, which is subclass of SQLNonTransientException, is thrown when the authorization credentials presented during connection establishment are not valid.
		 */
		export class SQLInvalidAuthorizationSpecException extends java.sql.SQLNonTransientException {
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLInvalidAuthorizationSpecException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLInvalidAuthorizationSpecException>;
		}
		export class SQLTransactionRollbackException extends java.sql.SQLTransientException {
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransactionRollbackException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLTransactionRollbackException>;
		}
		/**
		 * Interface used for executing static SQL statements to retrieve query results. The resulting table rows are returned as ResultSets. For any given Statement object, only one ResultSet can be opened at one time. A call to any of the execution methods of Statement will cause any previously created ResultSet object for that Statement to be closed implicitly.
		 */
		export class Statement implements java.sql.IWrapper, java.sql.IStatement {
			constructor(implementation: java.sql.IStatement);
			/**
			 * Passing this constant to #getMoreResults implies that all ResultSet objects previously kept open should be closed.
			 */
			static CLOSE_ALL_RESULTS: number;
			/**
			 * Passing this constant to #getMoreResults implies that the current ResultSet object should be closed.
			 */
			static CLOSE_CURRENT_RESULT: number;
			/**
			 * Indicates that an error was encountered during execution of a batch statement.
			 */
			static EXECUTE_FAILED: number;
			/**
			 * Passing this constant to <i>getMoreResults</i> implies that the current ResultSet object should not be closed.
			 */
			static KEEP_CURRENT_RESULT: number;
			/**
			 * Indicates that generated keys should not be accessible for retrieval.
			 */
			static NO_GENERATED_KEYS: number;
			/**
			 * Indicates that generated keys should be accessible for retrieval.
			 */
			static RETURN_GENERATED_KEYS: number;
			/**
			 * Indicates that a batch statement was executed with a successful result, but a count of the number of rows it affected is unavailable.
			 */
			static SUCCESS_NO_INFO: number;
			/**
			 * Adds a specified SQL command to the list of commands for this Statement.
			 * @param sql 
			 */
			public addBatch(sql: string): void;
			/**
			 * Cancels this statement's execution if both the database and the JDBC driver support aborting an SQL statement in flight. This method can be used by one thread to stop a statement that is executed on another thread.
			 */
			public cancel(): void;
			/**
			 * Clears the current list of SQL commands for this statement.
			 */
			public clearBatch(): void;
			/**
			 * Clears all SQLWarnings from this statement.
			 */
			public clearWarnings(): void;
			/**
			 * Releases this statement's database and JDBC driver resources.
			 */
			public close(): void;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets.
			 * @param sql 
			 */
			public execute(sql: string): boolean;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets. This method allows control of whether auto-generated Keys should be made available for retrieval, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			public execute(sql: string, autoGeneratedKeys: number): boolean;
			/**
			 * Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param columnIndexes 
			 */
			public execute(sql: string, columnIndexes: native.Array<number>): boolean;
			/**
			 * Submits a batch of SQL commands to the database. Returns an array of update counts, if all the commands execute successfully.
			 */
			public executeBatch(): native.Array<number>;
			/**
			 * Executes a supplied SQL statement. Returns a single ResultSet.
			 * @param sql 
			 */
			public executeQuery(sql: string): java.sql.IResultSet;
			/**
			 * Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.
			 * @param sql 
			 */
			public executeUpdate(sql: string): number;
			/**
			 * Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			public executeUpdate(sql: string, autoGeneratedKeys: number): number;
			/**
			 * Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.
			 * @param sql 
			 * @param columnIndexes 
			 */
			public executeUpdate(sql: string, columnIndexes: native.Array<number>): number;
			/**
			 * Gets the Connection object which created this statement.
			 */
			public getConnection(): java.sql.IConnection;
			/**
			 * Gets the default direction for fetching rows for ResultSets generated from this statement.
			 */
			public getFetchDirection(): number;
			/**
			 * Gets the default number of rows for a fetch for the ResultSet objects returned from this statement.
			 */
			public getFetchSize(): number;
			/**
			 * Returns auto generated keys created by executing this statement.
			 */
			public getGeneratedKeys(): java.sql.IResultSet;
			/**
			 * Gets the maximum number of bytes which can be returned as values from character and binary type columns in a ResultSet derived from this statement. This limit applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR types. Any data exceeding the maximum size is abandoned without announcement.
			 */
			public getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows that a ResultSet can contain when produced from this statement. If the limit is exceeded, the excess rows are discarded silently.
			 */
			public getMaxRows(): number;
			/**
			 * Moves to this statement's next result. Returns true if it is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are closed implicitly.
			 */
			public getMoreResults(): boolean;
			/**
			 * Moves to this statement's next result. Returns true if the next result is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are handled as indicated by a supplied Flag parameter.
			 * @param current 
			 */
			public getMoreResults(current: number): boolean;
			/**
			 * Gets the timeout value for the statement's execution time. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.
			 */
			public getQueryTimeout(): number;
			/**
			 * Gets the current result. Should only be called once per result.
			 */
			public getResultSet(): java.sql.IResultSet;
			/**
			 * Gets the concurrency setting for ResultSet objects generated by this statement.
			 */
			public getResultSetConcurrency(): number;
			/**
			 * Gets the cursor hold setting for ResultSet objects generated by this statement.
			 */
			public getResultSetHoldability(): number;
			/**
			 * Gets the ResultSet type setting for ResultSets derived from this statement.
			 */
			public getResultSetType(): number;
			/**
			 * Gets an update count for the current result if it is not a ResultSet.
			 */
			public getUpdateCount(): number;
			/**
			 * Retrieves the first SQLWarning reported by calls on this statement. If there are multiple warnings, subsequent warnings are chained to the first one. The chain of warnings is cleared each time the statement is executed.
			 */
			public getWarnings(): java.sql.SQLWarning;
			/**
			 * Sets the SQL cursor name. This name is used by subsequent statement execute methods.
			 * @param name 
			 */
			public setCursorName(name: string): void;
			/**
			 * Sets Escape Processing mode.
			 * @param enable 
			 */
			public setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this statement. The default fetch direction is FETCH_FORWARD.
			 * @param direction 
			 */
			public setFetchDirection(direction: number): void;
			/**
			 * Sets the fetch size. This is a hint to the JDBC driver about how many rows should be fetched from the database when more are required by application processing.
			 * @param rows 
			 */
			public setFetchSize(rows: number): void;
			/**
			 * Sets the maximum number of bytes for ResultSet columns that contain character or binary values. This applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR fields. Any data exceeding the maximum size is abandoned without announcement.
			 * @param max 
			 */
			public setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows that any ResultSet can contain. If the number of rows exceeds this value, the additional rows are silently discarded.
			 * @param max 
			 */
			public setMaxRows(max: number): void;
			/**
			 * Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a statement execution. If the timeout is exceeded, the query will throw an SQLException.
			 * @param seconds 
			 */
			public setQueryTimeout(seconds: number): void;
			/**
			 * Returns true if this statement has been closed, false otherwise.
			 */
			public isClosed(): boolean;
			/**
			 * Hints whether this statement should be pooled. Defaults to false for Statement, but true for CallableStatement and PreparedStatement. Pool manager implementations may or may not honor this hint.
			 */
			public setPoolable(poolable: boolean): void;
			/**
			 * Returns true if this statement is poolable, false otherwise.
			 */
			public isPoolable(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * A connection represents a link from a Java application to a database. All SQL statements and results are returned within the context of a connection. Database statements that are executed within this context form a database session which forms one or more closed transactions. Especially in distributed applications, multiple concurrent connections may exist accessing the same values of the database. which may lead to the following phenomena (referred to as <i>transaction isolation levels</i>): <ul> <li><i>dirty reads</i>:<br> reading values from table rows that are not committed.</br></li> <li><i>non-repeatable reads</i>:<br> reading table rows more than once in a transaction but getting back different data because other transactions have altered the rows between the reads.</br></li> <li><i>phantom reads</i>:<br> retrieving additional "phantom" rows in the course of repeated table reads because other transactions have inserted additional rows that satisfy an SQL WHERE clause</br></li> </ul>
		 */
		export class Connection implements java.sql.IWrapper, java.sql.IConnection {
			constructor(implementation: java.sql.IConnection);
			/**
			 * A constant indicating that transactions are not supported.
			 */
			static TRANSACTION_NONE: number;
			/**
			 * No <i>dirty reads</i> are permitted, therefore transactions may not read a row containing uncommitted values - but does not prevent an application from <i>non-repeatable reads</i> and <i>phantom reads</i>.
			 */
			static TRANSACTION_READ_COMMITTED: number;
			/**
			 * In the case that reading uncommitted values is allowed, the following incidents may happen which may lead to an invalid results: <ul> <li><i>dirty reads</i></li> <li><i>non-repeatable reads</i></li> <li><i>phantom reads</i></li> </ul>
			 */
			static TRANSACTION_READ_UNCOMMITTED: number;
			/**
			 * A constant indicating that <i>dirty reads</i> and <i>non-repeatable reads</i> are <b>prevented</b> but <i>phantom reads</i> can occur.
			 */
			static TRANSACTION_REPEATABLE_READ: number;
			/**
			 * The constant that indicates that the following incidents are <b>all prevented</b> (the opposite of #TRANSACTION_READ_UNCOMMITTED): <ul> <li><i>dirty reads</i></li> <li><i>non-repeatable reads</i></li> <li><i>phantom reads</i></li> </ul>
			 */
			static TRANSACTION_SERIALIZABLE: number;
			/**
			 * Discards all warnings that may have arisen for this connection. Subsequent calls to #getWarnings() will return null up until a new warning condition occurs.
			 */
			public clearWarnings(): void;
			/**
			 * Causes the instant release of all database and driver connection resources associated with this object. Any subsequent invocations of this method have no effect.
			 */
			public close(): void;
			/**
			 * Commits all of the changes made since the last commit or rollback of the associated transaction. All locks in the database held by this connection are also relinquished. Calling this operation on connection objects in auto-commit mode leads to an error.
			 */
			public commit(): void;
			/**
			 * Returns a new instance of Statement for issuing SQL commands to the remote database.
			 */
			public createStatement(): java.sql.IStatement;
			/**
			 * Returns a new instance of Statement whose associated ResultSets have the characteristics specified in the type and concurrency arguments.
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 */
			public createStatement(resultSetType: number, resultSetConcurrency: number): java.sql.IStatement;
			/**
			 * Returns a new instance of Statement whose associated ResultSets will have the characteristics specified in the type, concurrency and holdability arguments.
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 * @param resultSetHoldability 
			 */
			public createStatement(resultSetType: number, resultSetConcurrency: number, resultSetHoldability: number): java.sql.IStatement;
			/**
			 * Returns a boolean indicating whether or not this connection is in the auto-commit operating mode.
			 */
			public getAutoCommit(): boolean;
			/**
			 * Gets this Connection object's current catalog name.
			 */
			public getCatalog(): string;
			/**
			 * Returns the holdability property that any ResultSet produced by this instance will have.
			 */
			public getHoldability(): number;
			/**
			 * Gets the metadata about the database referenced by this connection. The returned DatabaseMetaData describes the database topography, available stored procedures, SQL syntax and so on.
			 */
			public getMetaData(): java.sql.IDatabaseMetaData;
			/**
			 * Returns the transaction isolation level for this connection.
			 */
			public getTransactionIsolation(): number;
			/**
			 * Returns the type mapping associated with this Connection object. The type mapping must be set on the application level.
			 */
			public getTypeMap(): java.util.IMap<string, java.lang.Class<any>>;
			/**
			 * Gets the first instance of any SQLWarning objects that may have been created in the use of this connection. If at least one warning has occurred then this operation returns the first one reported. A null indicates that no warnings have occurred.
			 */
			public getWarnings(): java.sql.SQLWarning;
			/**
			 * Returns a boolean indicating whether or not this connection is in the closed state. The closed state may be entered into as a consequence of a successful invocation of the #close() method or else if an error has occurred that prevents the connection from functioning normally.
			 */
			public isClosed(): boolean;
			/**
			 * Returns a boolean indicating whether or not this connection is currently in the read-only state.
			 */
			public isReadOnly(): boolean;
			/**
			 * Returns a string representation of the input SQL statement sql expressed in the underlying system's native SQL syntax.
			 * @param sql 
			 */
			public nativeSQL(sql: string): string;
			/**
			 * Returns a new instance of CallableStatement that may be used for making stored procedure calls to the database.
			 * @param sql 
			 */
			public prepareCall(sql: string): java.sql.ICallableStatement;
			/**
			 * Returns a new instance of CallableStatement that may be used for making stored procedure calls to the database. ResultSets emitted from this CallableStatement will satisfy the specified resultSetType and resultSetConcurrency values.
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 */
			public prepareCall(sql: string, resultSetType: number, resultSetConcurrency: number): java.sql.ICallableStatement;
			/**
			 * Returns a new instance of CallableStatement that may be used for making stored procedure calls to the database. ResultSets created from this CallableStatement will have characteristics determined by the specified type, concurrency and holdability arguments.
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 * @param resultSetHoldability 
			 */
			public prepareCall(sql: string, resultSetType: number, resultSetConcurrency: number, resultSetHoldability: number): java.sql.ICallableStatement;
			/**
			 * Returns a new instance of PreparedStatement that may be used any number of times to execute parameterized requests on the database server.
			 * @param sql 
			 */
			public prepareStatement(sql: string): java.sql.IPreparedStatement;
			/**
			 * Creates a default PreparedStatement that can retrieve automatically generated keys. Parameter autoGeneratedKeys may be used to tell the driver whether such keys should be made accessible. This is only relevant when the sql statement is an insert statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			public prepareStatement(sql: string, autoGeneratedKeys: number): java.sql.IPreparedStatement;
			/**
			 * Creates a default PreparedStatement that can retrieve the auto-generated keys designated by a supplied array. If sql is an SQL INSERT statement, the parameter columnIndexes is expected to hold the index values for each column in the statement's intended database table containing the autogenerated-keys of interest. Otherwise columnIndexes is ignored.
			 * @param sql 
			 * @param columnIndexes 
			 */
			public prepareStatement(sql: string, columnIndexes: native.Array<number>): java.sql.IPreparedStatement;
			/**
			 * Creates a PreparedStatement that generates ResultSets with the specified values of resultSetType and resultSetConcurrency.
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 */
			public prepareStatement(sql: string, resultSetType: number, resultSetConcurrency: number): java.sql.IPreparedStatement;
			/**
			 * Creates a PreparedStatement that generates ResultSets with the specified type, concurrency and holdability
			 * @param sql 
			 * @param resultSetType 
			 * @param resultSetConcurrency 
			 * @param resultSetHoldability 
			 */
			public prepareStatement(sql: string, resultSetType: number, resultSetConcurrency: number, resultSetHoldability: number): java.sql.IPreparedStatement;
			/**
			 * Releases the specified savepoint from the present transaction. Once removed, the Savepoint is considered invalid and should not be referenced further.
			 * @param savepoint 
			 */
			public releaseSavepoint(savepoint: java.sql.ISavepoint): void;
			/**
			 * Rolls back all updates made so far in this transaction and relinquishes all acquired database locks. It is an error to invoke this operation when in auto-commit mode.
			 */
			public rollback(): void;
			/**
			 * Undoes all changes made after the supplied Savepoint object was set. This method should only be used when auto-commit mode is disabled.
			 * @param savepoint 
			 */
			public rollback(savepoint: java.sql.ISavepoint): void;
			/**
			 * Sets this connection's auto-commit mode on or off.
			 * @param autoCommit 
			 */
			public setAutoCommit(autoCommit: boolean): void;
			/**
			 * Sets the catalog name for this connection. This is used to select a subspace of the database for future work. If the driver does not support catalog names, this method is ignored.
			 * @param catalog 
			 */
			public setCatalog(catalog: string): void;
			/**
			 * Sets the holdability of the ResultSets created by this Connection.
			 * @param holdability 
			 */
			public setHoldability(holdability: number): void;
			/**
			 * Sets this connection to read-only mode.
			 * @param readOnly 
			 */
			public setReadOnly(readOnly: boolean): void;
			/**
			 * Creates an unnamed Savepoint in the current transaction.
			 */
			public setSavepoint(): java.sql.ISavepoint;
			/**
			 * Creates a named Savepoint in the current transaction.
			 * @param name 
			 */
			public setSavepoint(name: string): java.sql.ISavepoint;
			/**
			 * Sets the transaction isolation level for this Connection.
			 * @param level 
			 */
			public setTransactionIsolation(level: number): void;
			/**
			 * Sets the TypeMap for this connection. The input map should contain mappings between complex Java and SQL types.
			 * @param map 
			 */
			public setTypeMap(map: java.util.IMap<string, java.lang.Class<any>>): void;
			/**
			 * Returns a new empty Clob. SQLException if this connection is closed, or there's a problem creating a new clob.
			 */
			public createClob(): java.sql.IClob;
			/**
			 * Returns a new empty Blob. SQLException if this connection is closed, or there's a problem creating a new blob.
			 */
			public createBlob(): java.sql.IBlob;
			/**
			 * Returns a new empty NClob. SQLException if this connection is closed, or there's a problem creating a new nclob.
			 */
			public createNClob(): java.sql.INClob;
			/**
			 * Returns a new empty SQLXML. SQLException if this connection is closed, or there's a problem creating a new XML.
			 */
			public createSQLXML(): java.sql.ISQLXML;
			/**
			 * Returns true if this connection is still open and valid, false otherwise.
			 * @param timeout number of seconds to wait for a response before giving up and returning false,
			 */
			public isValid(timeout: number): boolean;
			/**
			 * Sets the client info property name to value. A value of null clears the client info property. SQLClientInfoException if this connection is closed, or there's a problem setting the property.
			 */
			public setClientInfo(name: string, value: string): void;
			/**
			 * Replaces all client info properties with the name/value pairs from properties. All existing properties are removed. If an exception is thrown, the resulting state of this connection's client info properties is undefined. SQLClientInfoException if this connection is closed, or there's a problem setting a property.
			 */
			public setClientInfo(properties: java.util.Properties): void;
			/**
			 * Returns the value corresponding to the given client info property, or null if unset. SQLClientInfoException if this connection is closed, or there's a problem getting the property.
			 */
			public getClientInfo(name: string): string;
			/**
			 * Returns a Properties object containing all client info properties. SQLClientInfoException if this connection is closed, or there's a problem getting a property.
			 */
			public getClientInfo(): java.util.Properties;
			/**
			 * Returns a new Array containing the given elements.
			 * @param typeName the SQL name of the type of the array elements
			 * @param elements 
			 */
			public createArrayOf(typeName: string, elements: native.Array<any>): java.sql.IArray;
			/**
			 * Returns a new Struct containing the given attributes.
			 * @param typeName the SQL name of the type of the struct attributes
			 * @param attributes 
			 */
			public createStruct(typeName: string, attributes: native.Array<any>): java.sql.IStruct;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface for a precompiled SQL Statement.
		 */
		export class PreparedStatement implements java.sql.IStatement, java.sql.IPreparedStatement {
			constructor(implementation: java.sql.IPreparedStatement);
			/**
			 * Add a set of parameters to the PreparedStatement's command batch.
			 */
			public addBatch(): void;
			/**
			 * Clear the current parameter values.
			 */
			public clearParameters(): void;
			/**
			 * Executes the SQL statement in this PreparedStatement.
			 */
			public execute(): boolean;
			/**
			 * Executes the SQL query in the PreparedStatement and returns the ResultSet generated by the query.
			 */
			public executeQuery(): java.sql.IResultSet;
			/**
			 * Invokes the SQL command contained within the prepared statement. This must be INSERT, UPDATE, DELETE, or a command that returns nothing.
			 */
			public executeUpdate(): number;
			/**
			 * Returns a ResultSetMetaData describing the ResultSet that would be produced by execution of the PreparedStatement.
			 */
			public getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets information about the parameters of the PreparedStatement.
			 */
			public getParameterMetaData(): java.sql.IParameterMetaData;
			/**
			 * Sets the value of a specified parameter to the supplied Array.
			 * @param parameterIndex 
			 * @param theArray 
			 */
			public setArray(parameterIndex: number, theArray: java.sql.IArray): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			public setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.math.BigDecimal value.
			 * @param parameterIndex 
			 * @param theBigDecimal 
			 */
			public setBigDecimal(parameterIndex: number, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied binary InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			public setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Blob object.
			 * @param parameterIndex 
			 * @param theBlob 
			 */
			public setBlob(parameterIndex: number, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of a specified parameter to a supplied boolean value.
			 * @param parameterIndex 
			 * @param theBoolean 
			 */
			public setBoolean(parameterIndex: number, theBoolean: boolean): void;
			/**
			 * Sets the value of a specified parameter to a supplied byte value.
			 * @param parameterIndex 
			 * @param theByte 
			 */
			public setByte(parameterIndex: number, theByte: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied array of bytes. The array is mapped to a VARBINARY or LONGVARBINARY in the database.
			 * @param parameterIndex 
			 * @param theBytes 
			 */
			public setBytes(parameterIndex: number, theBytes: native.Array<number>): void;
			/**
			 * Sets the value of a specified parameter to the character content of a Reader object, with the specified length of character data.
			 * @param parameterIndex 
			 * @param reader 
			 * @param length 
			 */
			public setCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Clob object.
			 * @param parameterIndex 
			 * @param theClob 
			 */
			public setClob(parameterIndex: number, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value.
			 * @param parameterIndex 
			 * @param theDate 
			 */
			public setDate(parameterIndex: number, theDate: java.sql.Date): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value, using a supplied Calendar to map the Date. The Calendar allows the application to control the timezone used to compute the SQL DATE in the database - without the supplied Calendar, the driver uses the VM defaults. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param parameterIndex 
			 * @param theDate 
			 * @param cal 
			 */
			public setDate(parameterIndex: number, theDate: java.sql.Date, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied double value.
			 * @param parameterIndex 
			 * @param theDouble 
			 */
			public setDouble(parameterIndex: number, theDouble: number): void;
			/**
			 * Sets the value of a specified parameter to to a supplied float value.
			 * @param parameterIndex 
			 * @param theFloat 
			 */
			public setFloat(parameterIndex: number, theFloat: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied int value.
			 * @param parameterIndex 
			 * @param theInt 
			 */
			public setInt(parameterIndex: number, theInt: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied long value.
			 * @param parameterIndex 
			 * @param theLong 
			 */
			public setLong(parameterIndex: number, theLong: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. Don't use this version of setNull for <i>User Defined Types</i> (UDT) or for REF type parameters.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			public setNull(parameterIndex: number, sqlType: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. This version of setNull should be used for <i>User Defined Types</i> (UDTs) and also REF types. UDTs can be STRUCT, DISTINCT, JAVA_OBJECT and named array types.
			 * @param paramIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			public setNull(paramIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 */
			public setObject(parameterIndex: number, theObject: any): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			public setObject(parameterIndex: number, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			public setObject(parameterIndex: number, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied REF(<structured-type>) value. This is stored as an SQL REF.
			 * @param parameterIndex 
			 * @param theRef 
			 */
			public setRef(parameterIndex: number, theRef: java.sql.IRef): void;
			/**
			 * Sets the value of a specified parameter to a supplied short value.
			 * @param parameterIndex 
			 * @param theShort 
			 */
			public setShort(parameterIndex: number, theShort: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			public setString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value.
			 * @param parameterIndex 
			 * @param theTime 
			 */
			public setTime(parameterIndex: number, theTime: java.sql.Time): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value, using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 * @param cal 
			 */
			public setTime(parameterIndex: number, theTime: java.sql.Time, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 */
			public setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value, using the supplied Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 * @param cal 
			 */
			public setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to the characters from a supplied InputStream, with a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			public setUnicodeStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.net.URL.
			 * @param parameterIndex 
			 * @param theURL 
			 */
			public setURL(parameterIndex: number, theURL: java.net.URL): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.RowId.
			 * @param parameterIndex 
			 * @param theRowId 
			 */
			public setRowId(parameterIndex: number, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			public setNString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			public setNCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to value.
			 * @param parameterIndex 
			 * @param value 
			 */
			public setNClob(parameterIndex: number, value: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			public setClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 * @param length character count
			 */
			public setBlob(parameterIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			public setNClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the value of xmlObject.
			 * @param parameterIndex 
			 * @param xmlObject the {@code SQLXML}
			 */
			public setSQLXML(parameterIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			public setAsciiStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			public setBinaryStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			public setCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			public setNCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			public setClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			public setBlob(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			public setNClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Adds a specified SQL command to the list of commands for this Statement.
			 * @param sql 
			 */
			addBatch(sql: string): void;
			/**
			 * Cancels this statement's execution if both the database and the JDBC driver support aborting an SQL statement in flight. This method can be used by one thread to stop a statement that is executed on another thread.
			 */
			cancel(): void;
			/**
			 * Clears the current list of SQL commands for this statement.
			 */
			clearBatch(): void;
			/**
			 * Clears all SQLWarnings from this statement.
			 */
			clearWarnings(): void;
			/**
			 * Releases this statement's database and JDBC driver resources.
			 */
			close(): void;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets.
			 * @param sql 
			 */
			execute(sql: string): boolean;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets. This method allows control of whether auto-generated Keys should be made available for retrieval, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			execute(sql: string, autoGeneratedKeys: number): boolean;
			/**
			 * Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param columnIndexes 
			 */
			execute(sql: string, columnIndexes: native.Array<number>): boolean;
			/**
			 * Submits a batch of SQL commands to the database. Returns an array of update counts, if all the commands execute successfully.
			 */
			executeBatch(): native.Array<number>;
			/**
			 * Executes a supplied SQL statement. Returns a single ResultSet.
			 * @param sql 
			 */
			executeQuery(sql: string): java.sql.IResultSet;
			/**
			 * Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.
			 * @param sql 
			 */
			executeUpdate(sql: string): number;
			/**
			 * Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			executeUpdate(sql: string, autoGeneratedKeys: number): number;
			/**
			 * Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.
			 * @param sql 
			 * @param columnIndexes 
			 */
			executeUpdate(sql: string, columnIndexes: native.Array<number>): number;
			/**
			 * Gets the Connection object which created this statement.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Gets the default direction for fetching rows for ResultSets generated from this statement.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the default number of rows for a fetch for the ResultSet objects returned from this statement.
			 */
			getFetchSize(): number;
			/**
			 * Returns auto generated keys created by executing this statement.
			 */
			getGeneratedKeys(): java.sql.IResultSet;
			/**
			 * Gets the maximum number of bytes which can be returned as values from character and binary type columns in a ResultSet derived from this statement. This limit applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR types. Any data exceeding the maximum size is abandoned without announcement.
			 */
			getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows that a ResultSet can contain when produced from this statement. If the limit is exceeded, the excess rows are discarded silently.
			 */
			getMaxRows(): number;
			/**
			 * Moves to this statement's next result. Returns true if it is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are closed implicitly.
			 */
			getMoreResults(): boolean;
			/**
			 * Moves to this statement's next result. Returns true if the next result is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are handled as indicated by a supplied Flag parameter.
			 * @param current 
			 */
			getMoreResults(current: number): boolean;
			/**
			 * Gets the timeout value for the statement's execution time. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.
			 */
			getQueryTimeout(): number;
			/**
			 * Gets the current result. Should only be called once per result.
			 */
			getResultSet(): java.sql.IResultSet;
			/**
			 * Gets the concurrency setting for ResultSet objects generated by this statement.
			 */
			getResultSetConcurrency(): number;
			/**
			 * Gets the cursor hold setting for ResultSet objects generated by this statement.
			 */
			getResultSetHoldability(): number;
			/**
			 * Gets the ResultSet type setting for ResultSets derived from this statement.
			 */
			getResultSetType(): number;
			/**
			 * Gets an update count for the current result if it is not a ResultSet.
			 */
			getUpdateCount(): number;
			/**
			 * Retrieves the first SQLWarning reported by calls on this statement. If there are multiple warnings, subsequent warnings are chained to the first one. The chain of warnings is cleared each time the statement is executed.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Sets the SQL cursor name. This name is used by subsequent statement execute methods.
			 * @param name 
			 */
			setCursorName(name: string): void;
			/**
			 * Sets Escape Processing mode.
			 * @param enable 
			 */
			setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this statement. The default fetch direction is FETCH_FORWARD.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Sets the fetch size. This is a hint to the JDBC driver about how many rows should be fetched from the database when more are required by application processing.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Sets the maximum number of bytes for ResultSet columns that contain character or binary values. This applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR fields. Any data exceeding the maximum size is abandoned without announcement.
			 * @param max 
			 */
			setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows that any ResultSet can contain. If the number of rows exceeds this value, the additional rows are silently discarded.
			 * @param max 
			 */
			setMaxRows(max: number): void;
			/**
			 * Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a statement execution. If the timeout is exceeded, the query will throw an SQLException.
			 * @param seconds 
			 */
			setQueryTimeout(seconds: number): void;
			/**
			 * Returns true if this statement has been closed, false otherwise.
			 */
			isClosed(): boolean;
			/**
			 * Hints whether this statement should be pooled. Defaults to false for Statement, but true for CallableStatement and PreparedStatement. Pool manager implementations may or may not honor this hint.
			 */
			setPoolable(poolable: boolean): void;
			/**
			 * Returns true if this statement is poolable, false otherwise.
			 */
			isPoolable(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface for the custom mapping of an SQL <i>User Defined Type</i> (UDT) to a Java class. The Java class object is added to the connection's type map paired with the SQL name of the corresponding UDT.
		 */
		interface ISQLData {
			/**
			 * Gets the SQL name of the <i>User Defined Type</i> (UDT) that this object represents. This method, usually invoked by the JDBC driver, retrieves the name of the UDT instance associated with this SQLData object.
			 */
			getSQLTypeName(): string;
			/**
			 * Reads data from the database into this object. This method follows these steps:
			 * @param stream 
			 * @param typeName 
			 */
			readSQL(stream: java.sql.ISQLInput, typeName: string): void;
			/**
			 * Writes the object to a supplied SQLOutput data stream, writing it out as an SQL value to the data source.
			 * @param stream 
			 */
			writeSQL(stream: java.sql.ISQLOutput): void;
		}
		/**
		 * A class which can consume and produce dates in SQL Date format.
		 */
		export class Date extends java.util.Date {
			/**
			 * Constructs a Date object corresponding to the supplied year, month and day.
			 * @param theYear 
			 * @param theMonth 
			 * @param theDay 
			 */
			constructor(theYear: number, theMonth: number, theDay: number);
			/**
			 * Creates a date which corresponds to the day determined by the supplied milliseconds time value theDate.
			 * @param theDate 
			 */
			constructor(theDate: number);
			static class: java.lang.Class<java.sql.Date>;
			/**
			 *  This method is deprecated and must not be used. SQL Date values do not have an hours component.
			 */
			public getHours(): number;
			/**
			 *  This method is deprecated and must not be used. SQL Date values do not have a minutes component.
			 */
			public getMinutes(): number;
			/**
			 *  This method is deprecated and must not be used. SQL Date values do not have a seconds component.
			 */
			public getSeconds(): number;
			/**
			 *  This method is deprecated and must not be used. SQL Date values do not have an hours component.
			 * @param theHours 
			 */
			public setHours(theHours: number): void;
			/**
			 *  This method is deprecated and must not be used. SQL Date values do not have a minutes component.
			 * @param theMinutes 
			 */
			public setMinutes(theMinutes: number): void;
			/**
			 *  This method is deprecated and must not be used. SQL Date values do not have a seconds component.
			 * @param theSeconds 
			 */
			public setSeconds(theSeconds: number): void;
			/**
			 * Sets this date to a date supplied as a milliseconds value. The date is set based on the supplied time value and rounded to zero GMT for that day.
			 * @param theTime 
			 */
			public setTime(theTime: number): void;
			/**
			 * Produces a string representation of the date in SQL format
			 */
			public toString(): string;
			/**
			 * Creates a Date from a string representation of a date in SQL format.
			 * @param dateString 
			 */
			public static valueOf(dateString: string): java.sql.Date;
		}
		/**
		 * An interface used to get information about the types and properties of parameters in a PreparedStatement.
		 */
		interface IParameterMetaData extends java.sql.IWrapper {
			/**
			 * Gets the fully-qualified name of the Java class which should be passed as a parameter to the method PreparedStatement.setObject.
			 * @param paramIndex 
			 */
			getParameterClassName(paramIndex: number): string;
			/**
			 * Gets the number of parameters in the PreparedStatement for which this ParameterMetaData contains information.
			 */
			getParameterCount(): number;
			/**
			 * Gets the mode of the specified parameter. Can be one of: <ul> <li>ParameterMetaData.parameterModeIn</li> <li>ParameterMetaData.parameterModeOut</li> <li>ParameterMetaData.parameterModeInOut</li> <li>ParameterMetaData.parameterModeUnknown</li> </ul>
			 * @param paramIndex 
			 */
			getParameterMode(paramIndex: number): number;
			/**
			 * Gets the SQL type of a specified parameter.
			 * @param paramIndex 
			 */
			getParameterType(paramIndex: number): number;
			/**
			 * Gets the database-specific type name of a specified parameter.
			 * @param paramIndex 
			 */
			getParameterTypeName(paramIndex: number): string;
			/**
			 * Gets the number of decimal digits for a specified parameter.
			 * @param paramIndex 
			 */
			getPrecision(paramIndex: number): number;
			/**
			 * Gets the number of digits after the decimal point for a specified parameter.
			 * @param paramIndex 
			 */
			getScale(paramIndex: number): number;
			/**
			 * Gets whether null values are allowed for the specified parameter. The returned value is one of: <ul> <li>ParameterMetaData.parameterNoNulls</li> <li>ParameterMetaData.parameterNullable</li> <li>ParameterMetaData.parameterNullableUnknown</li> </ul>
			 * @param paramIndex 
			 */
			isNullable(paramIndex: number): number;
			/**
			 * Gets whether values for the specified parameter can be signed numbers.
			 * @param paramIndex 
			 */
			isSigned(paramIndex: number): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export module IParameterMetaData {
			/**
			 * Indicates that the parameter mode is IN.
			 */
			var parameterModeIn: number;
			/**
			 * Indicates that the parameter mode is INOUT.
			 */
			var parameterModeInOut: number;
			/**
			 * Indicates that the parameter mode is OUT.
			 */
			var parameterModeOut: number;
			/**
			 * Indicates that the parameter mode is not known.
			 */
			var parameterModeUnknown: number;
			/**
			 * Indicates that a parameter is not permitted to be NULL.
			 */
			var parameterNoNulls: number;
			/**
			 * Indicates that a parameter is permitted to be NULL.
			 */
			var parameterNullable: number;
			/**
			 * Indicates that whether a parameter is allowed to be null or not is not known.
			 */
			var parameterNullableUnknown: number;
		}
		/**
		 * A Java representation of the SQL ARRAY type.
		 */
		export class Array implements java.sql.IArray {
			constructor(implementation: java.sql.IArray);
			/**
			 * Retrieves the contents of the SQL ARRAY value as a Java array object.
			 */
			public getArray(): any;
			/**
			 * Returns part of the SQL ARRAY associated with this array, starting at a particular index and comprising up to count successive elements of the SQL array.
			 * @param index 
			 * @param count 
			 */
			public getArray(index: number, count: number): any;
			/**
			 * Returns part of the SQL ARRAY associated with this array, starting at a particular index and comprising up to count successive elements of the SQL array.
			 * @param index 
			 * @param count 
			 * @param map 
			 */
			public getArray(index: number, count: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Returns the data from the underlying SQL ARRAY as a Java array.
			 * @param map 
			 */
			public getArray(map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Returns the JDBC type of the entries in this array's underlying SQL array.
			 */
			public getBaseType(): number;
			/**
			 * Returns the SQL type name of the entries in this array's underlying SQL array.
			 */
			public getBaseTypeName(): string;
			/**
			 * Returns a ResultSet object which holds the entries of the SQL ARRAY associated with this array.
			 */
			public getResultSet(): java.sql.IResultSet;
			/**
			 * Returns a ResultSet object that holds the entries of a subarray, beginning at a particular index and comprising up to count successive entries.
			 * @param index 
			 * @param count 
			 */
			public getResultSet(index: number, count: number): java.sql.IResultSet;
			/**
			 * Returns a ResultSet object that holds the entries of a subarray, beginning at a particular index and comprising up to count successive entries.
			 * @param index 
			 * @param count 
			 * @param map 
			 */
			public getResultSet(index: number, count: number, map: java.util.IMap<string, java.lang.Class<any>>): java.sql.IResultSet;
			/**
			 * Returns a ResultSet object which holds the entries of the SQL ARRAY associated with this array.
			 * @param map 
			 */
			public getResultSet(map: java.util.IMap<string, java.lang.Class<any>>): java.sql.IResultSet;
			/**
			 * Frees any resources held by this array. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing). SQLException
			 */
			public free(): void;
		}
		/**
		 * Maps SQL's XML type into Java.
		 */
		interface ISQLXML {
			/**
			 * Frees any resources held by this object. After free is called, calling method other than free will throw SQLException (calling free repeatedly will do nothing). SQLException
			 */
			free(): void;
			/**
			 * Returns a stream that can be used to read binary data from this SQL XML object. SQLException if an error occurs accessing the data
			 */
			getBinaryStream(): java.io.InputStream;
			/**
			 * Returns a stream that can be used to write binary data to this SQL XML object. SQLException if an error occurs accessing the data
			 */
			setBinaryStream(): java.io.OutputStream;
			/**
			 * Returns a reader that can be used to read character data from this SQL XML object. SQLException if an error occurs accessing the data
			 */
			getCharacterStream(): java.io.Reader;
			/**
			 * Returns a writer that can be used to write character data to this SQL XML object. SQLException if an error occurs accessing the data
			 */
			setCharacterStream(): java.io.Writer;
			/**
			 * Returns this object's data as an XML string. SQLException if an error occurs accessing the data
			 */
			getString(): string;
			/**
			 * Sets this object's data to the given XML string. SQLException if an error occurs accessing the data
			 */
			setString(value: string): void;
			/**
			 * Returns a Source for reading this object's data. SQLException if an error occurs accessing the data
			 */
			getSource<T extends javax.xml.transform.ISource>(sourceClass: java.lang.Class<T>): T;
			/**
			 * Returns a Result for writing this object's data. SQLException if an error occurs accessing the data
			 */
			setResult<T extends javax.xml.transform.IResult>(resultClass: java.lang.Class<T>): T;
		}
		/**
		 * The interface for an output stream used to write attributes of an SQL <i>User Defined Type</i> (UDT) to the database. This interface is used for custom mapping of types and is called by the JDBC driver. It is not intended to be used by applications.
		 */
		export class SQLOutput implements java.sql.ISQLOutput {
			constructor(implementation: java.sql.ISQLOutput);
			/**
			 * Write a String value into the output stream.
			 * @param theString 
			 */
			public writeString(theString: string): void;
			/**
			 * Write a boolean value into the output stream.
			 * @param theFlag 
			 */
			public writeBoolean(theFlag: boolean): void;
			/**
			 * Write a byte value into the output stream.
			 * @param theByte 
			 */
			public writeByte(theByte: number): void;
			/**
			 * Write a short value into the output stream.
			 * @param theShort 
			 */
			public writeShort(theShort: number): void;
			/**
			 * Write an int value into the output stream.
			 * @param theInt 
			 */
			public writeInt(theInt: number): void;
			/**
			 * Write a long value into the output stream.
			 * @param theLong 
			 */
			public writeLong(theLong: number): void;
			/**
			 * Write a float value into the output stream.
			 * @param theFloat 
			 */
			public writeFloat(theFloat: number): void;
			/**
			 * Write a double value into the output stream.
			 * @param theDouble 
			 */
			public writeDouble(theDouble: number): void;
			/**
			 * Write a java.math.BigDecimal value into the output stream.
			 * @param theBigDecimal 
			 */
			public writeBigDecimal(theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Write an array of bytes into the output stream.
			 * @param theBytes 
			 */
			public writeBytes(theBytes: native.Array<number>): void;
			/**
			 * Write a java.sql.Date value into the output stream.
			 * @param theDate 
			 */
			public writeDate(theDate: java.sql.Date): void;
			/**
			 * Write a java.sql.Time value into the output stream.
			 * @param theTime 
			 */
			public writeTime(theTime: java.sql.Time): void;
			/**
			 * Write a java.sql.Timestamp value into the output stream.
			 * @param theTimestamp 
			 */
			public writeTimestamp(theTimestamp: java.sql.Timestamp): void;
			/**
			 * Write a stream of unicode characters into the output stream.
			 * @param theStream 
			 */
			public writeCharacterStream(theStream: java.io.Reader): void;
			/**
			 * Write a stream of ASCII characters into the output stream.
			 * @param theStream 
			 */
			public writeAsciiStream(theStream: java.io.InputStream): void;
			/**
			 * Write a stream of uninterpreted bytes into the output stream.
			 * @param theStream 
			 */
			public writeBinaryStream(theStream: java.io.InputStream): void;
			/**
			 * Write an SQLData object into the output stream.
			 * @param theObject 
			 */
			public writeObject(theObject: java.sql.ISQLData): void;
			/**
			 * Write an SQL Ref value into the output stream.
			 * @param theRef 
			 */
			public writeRef(theRef: java.sql.IRef): void;
			/**
			 * Write an SQL Blob value into the output stream.
			 * @param theBlob 
			 */
			public writeBlob(theBlob: java.sql.IBlob): void;
			/**
			 * Write an SQL Clob value into the output stream.
			 * @param theClob 
			 */
			public writeClob(theClob: java.sql.IClob): void;
			/**
			 * Write an SQL Struct value into the output stream.
			 * @param theStruct 
			 */
			public writeStruct(theStruct: java.sql.IStruct): void;
			/**
			 * Write an SQL Array value into the output stream.
			 * @param theArray 
			 */
			public writeArray(theArray: java.sql.IArray): void;
			/**
			 * Write a URL into the output stream as an SQL DATALINK.
			 * @param theURL 
			 */
			public writeURL(theURL: java.net.URL): void;
			/**
			 * Write a String into the output stream as an SQL NCHAR, NVARCHAR, or LONGNVARCHAR.
			 * @param theString 
			 */
			public writeNString(theString: string): void;
			/**
			 * Write a Clob into the output stream as an SQL NCLOB.
			 * @param theNClob 
			 */
			public writeNClob(theNClob: java.sql.INClob): void;
			/**
			 * Write a RowId into the output stream as an SQL ROWID.
			 * @param theRowId 
			 */
			public writeRowId(theRowId: java.sql.IRowId): void;
			/**
			 * Write a SQLXML into the output stream as an SQL XML.
			 * @param theXml 
			 */
			public writeSQLXML(theXml: java.sql.ISQLXML): void;
		}
		export class SQLTransientConnectionException extends java.sql.SQLTransientException {
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLTransientConnectionException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLTransientConnectionException>;
		}
		/**
		 * An exception, which is subclass of SQLException, is thrown when one or more client info properties could not be set on a Connection.
		 */
		export class SQLClientInfoException extends java.sql.SQLException {
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0, and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param failedProperties 
			 */
			constructor(failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>);
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null, the cause Throwable object is set to the given cause Throwable object, and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param failedProperties 
			 * @param cause 
			 */
			constructor(failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>, cause: java.lang.Throwable);
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to reason, and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param reason 
			 * @param failedProperties 
			 */
			constructor(reason: string, failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>);
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to reason, the cause Throwable object is set to the given cause Throwable object, and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param reason 
			 * @param failedProperties 
			 * @param cause 
			 */
			constructor(reason: string, failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>, cause: java.lang.Throwable);
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to reason, the SQLState string is set to the sqlState, the Error Code is set to the vendorCode and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param failedProperties 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>);
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to reason, the SQLState string is set to the sqlState, the Error Code is set to the vendorCode the cause Throwable object is set to the given cause Throwable object, and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param failedProperties 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>, cause: java.lang.Throwable);
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to reason, the SQLState string is set to the sqlState, and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param reason 
			 * @param sqlState 
			 * @param failedProperties 
			 */
			constructor(reason: string, sqlState: string, failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>);
			/**
			 * Creates an SQLClientInfoException object. The Reason string is set to reason, the SQLState string is set to the sqlState, the Error Code is set to the vendorCode, and the Map<String,ClientInfoStatus> object is set to the failed properties.
			 * @param reason 
			 * @param sqlState 
			 * @param failedProperties 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, failedProperties: java.util.IMap<string, java.sql.ClientInfoStatus>, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLClientInfoException>;
			/**
			 * returns that the client info properties which could not be set
			 */
			public getFailedProperties(): java.util.IMap<string, java.sql.ClientInfoStatus>;
		}
		/**
		 * This interface represents an SQL Ref - a data object containing a cursor or pointer to a result table.
		 */
		export class Ref implements java.sql.IRef {
			constructor(implementation: java.sql.IRef);
			/**
			 * Gets the fully-qualified SQL name of the SQL structured type that this Ref references.
			 */
			public getBaseTypeName(): string;
			/**
			 * Gets the SQL structured type instance referenced by this Ref.
			 */
			public getObject(): any;
			/**
			 * Returns the associated object and uses the relevant mapping to convert it to a Java type.
			 * @param map 
			 */
			public getObject(map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Sets the value of the structured type that this Ref references to a supplied object.
			 * @param value 
			 */
			public setObject(value: any): void;
		}
		/**
		 * An interface used to call <i>Stored Procedures</i>.
		 */
		interface ICallableStatement extends java.sql.IPreparedStatement {
			/**
			 * Gets the value of a specified JDBC ARRAY parameter as a java.sql.Array.
			 * @param parameterIndex 
			 */
			getArray(parameterIndex: number): java.sql.IArray;
			/**
			 * Gets the value of a specified JDBC ARRAY parameter as a java.sql.Array.
			 * @param parameterName 
			 */
			getArray(parameterName: string): java.sql.IArray;
			/**
			 * Returns a new BigDecimal representation of the JDBC NUMERIC parameter specified by the input index.
			 * @param parameterIndex 
			 */
			getBigDecimal(parameterIndex: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal representation of the JDBC NUMERIC parameter specified by the input index. The number of digits after the decimal point is specified by scale.
			 * @param parameterIndex 
			 * @param scale 
			 */
			getBigDecimal(parameterIndex: number, scale: number): java.math.BigDecimal;
			/**
			 * Returns a new BigDecimal representation of the JDBC NUMERIC parameter specified by the input name.
			 * @param parameterName 
			 */
			getBigDecimal(parameterName: string): java.math.BigDecimal;
			/**
			 * Gets the value of a specified JDBC BLOB parameter as a java.sql.Blob.
			 * @param parameterIndex 
			 */
			getBlob(parameterIndex: number): java.sql.IBlob;
			/**
			 * Gets the value of a specified JDBC BLOB parameter as a java.sql.Blob.
			 * @param parameterName 
			 */
			getBlob(parameterName: string): java.sql.IBlob;
			/**
			 * Gets the value of a specified JDBC BIT parameter as a boolean.
			 * @param parameterIndex 
			 */
			getBoolean(parameterIndex: number): boolean;
			/**
			 * Gets the value of a specified JDBC BIT parameter as a boolean.
			 * @param parameterName 
			 */
			getBoolean(parameterName: string): boolean;
			/**
			 * Gets the value of a specified JDBC TINYINT parameter as a byte.
			 * @param parameterIndex 
			 */
			getByte(parameterIndex: number): number;
			/**
			 * Gets the value of a specified JDBC TINYINT parameter as a Java byte.
			 * @param parameterName 
			 */
			getByte(parameterName: string): number;
			/**
			 * Returns a byte array representation of the indexed JDBC BINARY or VARBINARY parameter.
			 * @param parameterIndex 
			 */
			getBytes(parameterIndex: number): native.Array<number>;
			/**
			 * Returns a byte array representation of the named JDBC BINARY or VARBINARY parameter.
			 * @param parameterName 
			 */
			getBytes(parameterName: string): native.Array<number>;
			/**
			 * Gets the value of a specified JDBC CLOB parameter as a java.sql.Clob.
			 * @param parameterIndex 
			 */
			getClob(parameterIndex: number): java.sql.IClob;
			/**
			 * Gets the value of a specified JDBC CLOB parameter as a java.sql.Clob.
			 * @param parameterName 
			 */
			getClob(parameterName: string): java.sql.IClob;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date.
			 * @param parameterIndex 
			 */
			getDate(parameterIndex: number): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date, using the specified Calendar to construct the date.
			 * @param parameterIndex 
			 * @param cal 
			 */
			getDate(parameterIndex: number, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date.
			 * @param parameterName 
			 */
			getDate(parameterName: string): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DATE parameter as a java.sql.Date, using the specified Calendar to construct the date.
			 * @param parameterName 
			 * @param cal 
			 */
			getDate(parameterName: string, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of the specified JDBC DOUBLE parameter as a double.
			 * @param parameterIndex 
			 */
			getDouble(parameterIndex: number): any;
			/**
			 * Gets the value of the specified JDBC DOUBLE parameter as a double.
			 * @param parameterName 
			 */
			getDouble(parameterName: string): any;
			/**
			 * Gets the value of the specified JDBC FLOAT parameter as a float.
			 * @param parameterIndex 
			 */
			getFloat(parameterIndex: number): number;
			/**
			 * Gets the value of the specified JDBC FLOAT parameter as a Java float.
			 * @param parameterName 
			 */
			getFloat(parameterName: string): number;
			/**
			 * Gets the value of the specified JDBC INTEGER parameter as an int.
			 * @param parameterIndex 
			 */
			getInt(parameterIndex: number): number;
			/**
			 * Gets the value of the specified JDBC INTEGER parameter as an int.
			 * @param parameterName 
			 */
			getInt(parameterName: string): number;
			/**
			 * Gets the value of the specified JDBC BIGINT parameter as a long.
			 * @param parameterIndex 
			 */
			getLong(parameterIndex: number): any;
			/**
			 * Gets the value of the specified JDBC BIGINT parameter as a long.
			 * @param parameterName 
			 */
			getLong(parameterName: string): any;
			/**
			 * Gets the value of the specified parameter as a Java Object.
			 * @param parameterIndex 
			 */
			getObject(parameterIndex: number): any;
			/**
			 * Gets the value of the specified parameter as an Object. The Map gives the correspondence between SQL types and Java classes.
			 * @param parameterIndex 
			 * @param map 
			 */
			getObject(parameterIndex: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of the specified parameter as an Object.
			 * @param parameterName 
			 */
			getObject(parameterName: string): any;
			/**
			 * Gets the value of a specified parameter as an Object. The actual return type is determined by the Map parameter which gives the correspondence between SQL types and Java classes.
			 * @param parameterName 
			 * @param map 
			 */
			getObject(parameterName: string, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a specified SQL REF(<structured type>) parameter as a java.sql.Ref.
			 * @param parameterIndex 
			 */
			getRef(parameterIndex: number): java.sql.IRef;
			/**
			 * Gets the value of a specified SQL REF(<structured type>) parameter as a java.sql.Ref.
			 * @param parameterName 
			 */
			getRef(parameterName: string): java.sql.IRef;
			/**
			 * Gets the value of a specified JDBC SMALLINT parameter as a short.
			 * @param parameterIndex 
			 */
			getShort(parameterIndex: number): number;
			/**
			 * Gets the value of a specified JDBC SMALLINT parameter as a short.
			 * @param parameterName 
			 */
			getShort(parameterName: string): number;
			/**
			 * Returns the indexed parameter's value as a String. The parameter value must be one of the JDBC types CHAR, VARCHAR or LONGVARCHAR.
			 * @param parameterIndex 
			 */
			getString(parameterIndex: number): string;
			/**
			 * Returns the named parameter's value as a string. The parameter value must be one of the JDBC types CHAR, VARCHAR or LONGVARCHAR.
			 * @param parameterName 
			 */
			getString(parameterName: string): string;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time.
			 * @param parameterIndex 
			 */
			getTime(parameterIndex: number): java.sql.Time;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time, using the supplied Calendar to construct the time. The JDBC driver uses the calendar to handle specific timezones and locales in order to determine Time.
			 * @param parameterIndex 
			 * @param cal 
			 */
			getTime(parameterIndex: number, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time.
			 * @param parameterName 
			 */
			getTime(parameterName: string): java.sql.Time;
			/**
			 * Gets the value of a specified JDBC TIME parameter as a java.sql.Time, using the supplied Calendar to construct the time. The JDBC driver uses the calendar to handle specific timezones and locales when creating Time.
			 * @param parameterName 
			 * @param cal 
			 */
			getTime(parameterName: string, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Returns the indexed parameter's TIMESTAMP value as a java.sql.Timestamp.
			 * @param parameterIndex 
			 */
			getTimestamp(parameterIndex: number): java.sql.Timestamp;
			/**
			 * Returns the indexed parameter's TIMESTAMP value as a java.sql.Timestamp. The JDBC driver uses the supplied Calendar to handle specific timezones and locales when creating the result.
			 * @param parameterIndex 
			 * @param cal 
			 */
			getTimestamp(parameterIndex: number, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Returns the named parameter's TIMESTAMP value as a java.sql.Timestamp.
			 * @param parameterName 
			 */
			getTimestamp(parameterName: string): java.sql.Timestamp;
			/**
			 * Returns the indexed parameter's TIMESTAMP value as a java.sql.Timestamp. The JDBC driver uses the supplied Calendar to handle specific timezones and locales when creating the result.
			 * @param parameterName 
			 * @param cal 
			 */
			getTimestamp(parameterName: string, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the value of a specified JDBC DATALINK parameter as a java.net.URL.
			 * @param parameterIndex 
			 */
			getURL(parameterIndex: number): java.net.URL;
			/**
			 * Returns the named parameter's JDBC DATALINK value in a new Java java.net.URL.
			 * @param parameterName 
			 */
			getURL(parameterName: string): java.net.URL;
			/**
			 * Defines the type of a specified OUT parameter. All OUT parameters must have their type defined before a stored procedure is executed.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			registerOutParameter(parameterIndex: number, sqlType: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. All OUT parameters must have their type defined before a stored procedure is executed. This version of the registerOutParameter method, which has a scale parameter, should be used for the JDBC types NUMERIC and DECIMAL, where there is a need to specify the number of digits expected after the decimal point.
			 * @param parameterIndex 
			 * @param sqlType 
			 * @param scale 
			 */
			registerOutParameter(parameterIndex: number, sqlType: number, scale: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. This variant of the method is designed for use with parameters that are <i>User Defined Types</i> (UDT) or a REF type, although it can be used for any type.
			 * @param paramIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			registerOutParameter(paramIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Defines the Type of a specified OUT parameter. All OUT parameters must have their Type defined before a stored procedure is executed.
			 * @param parameterName 
			 * @param sqlType 
			 */
			registerOutParameter(parameterName: string, sqlType: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. All OUT parameters must have their Type defined before a stored procedure is executed. This version of the registerOutParameter method, which has a scale parameter, should be used for the JDBC types NUMERIC and DECIMAL, where there is a need to specify the number of digits expected after the decimal point.
			 * @param parameterName 
			 * @param sqlType 
			 * @param scale 
			 */
			registerOutParameter(parameterName: string, sqlType: number, scale: number): void;
			/**
			 * Defines the Type of a specified OUT parameter. This variant of the method is designed for use with parameters that are <i>User Defined Types</i> (UDT) or a REF type, although it can be used for any type.
			 * @param parameterName 
			 * @param sqlType 
			 * @param typeName 
			 */
			registerOutParameter(parameterName: string, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied InputStream, which has a specified number of bytes.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			setAsciiStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.math.BigDecimal value.
			 * @param parameterName 
			 * @param theBigDecimal 
			 */
			setBigDecimal(parameterName: string, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied binary InputStream, which has a specified number of bytes.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			setBinaryStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied boolean value.
			 * @param parameterName 
			 * @param theBoolean 
			 */
			setBoolean(parameterName: string, theBoolean: boolean): void;
			/**
			 * Sets the value of a specified parameter to a supplied byte value.
			 * @param parameterName 
			 * @param theByte 
			 */
			setByte(parameterName: string, theByte: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied array of bytes. The array is mapped to VARBINARY or else LONGVARBINARY in the connected database.
			 * @param parameterName 
			 * @param theBytes 
			 */
			setBytes(parameterName: string, theBytes: native.Array<number>): void;
			/**
			 * Sets the value of a specified parameter to the character content of a Reader object, with the specified length of character data.
			 * @param parameterName 
			 * @param reader 
			 * @param length 
			 */
			setCharacterStream(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value.
			 * @param parameterName 
			 * @param theDate 
			 */
			setDate(parameterName: string, theDate: java.sql.Date): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value, using a supplied calendar to map the date. The calendar allows the application to control the timezone used to compute the SQL DATE in the database. In case that no calendar is supplied, the driver uses the default timezone of the Java virtual machine.
			 * @param parameterName 
			 * @param theDate 
			 * @param cal 
			 */
			setDate(parameterName: string, theDate: java.sql.Date, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied double value.
			 * @param parameterName 
			 * @param theDouble 
			 */
			setDouble(parameterName: string, theDouble: number): void;
			/**
			 * Sets the value of a specified parameter to to a supplied float value.
			 * @param parameterName 
			 * @param theFloat 
			 */
			setFloat(parameterName: string, theFloat: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied int value.
			 * @param parameterName 
			 * @param theInt 
			 */
			setInt(parameterName: string, theInt: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied long value.
			 * @param parameterName 
			 * @param theLong 
			 */
			setLong(parameterName: string, theLong: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. Don't use this version of setNull for <i>User Defined Types</i> (UDT) or for REF type parameters.
			 * @param parameterName 
			 * @param sqlType 
			 */
			setNull(parameterName: string, sqlType: number): void;
			/**
			 * Sets the value of a specified parameter to be SQL NULL where the parameter type is either REF or user defined (e.g. STRUCT , JAVA_OBJECT etc).
			 * @param parameterName 
			 * @param sqlType 
			 * @param typeName 
			 */
			setNull(parameterName: string, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter using a supplied object. Prior to issuing this request to the connected database theObject is transformed to the corresponding SQL type according to the standard Java to SQL mapping rules.
			 * @param parameterName 
			 * @param theObject 
			 */
			setObject(parameterName: string, theObject: any): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			setObject(parameterName: string, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			setObject(parameterName: string, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied short value.
			 * @param parameterName 
			 * @param theShort 
			 */
			setShort(parameterName: string, theShort: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied String.
			 * @param parameterName 
			 * @param theString 
			 */
			setString(parameterName: string, theString: string): void;
			/**
			 * Sets the value of the parameter named parameterName to the value of the supplied java.sql.Time.
			 * @param parameterName 
			 * @param theTime 
			 */
			setTime(parameterName: string, theTime: java.sql.Time): void;
			/**
			 * Sets the value of the parameter named parameterName to the value of the supplied java.sql.Time using the supplied calendar.
			 * @param parameterName 
			 * @param theTime 
			 * @param cal 
			 */
			setTime(parameterName: string, theTime: java.sql.Time, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value.
			 * @param parameterName 
			 * @param theTimestamp 
			 */
			setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value, using the supplied calendar.
			 * @param parameterName 
			 * @param theTimestamp 
			 * @param cal 
			 */
			setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to the supplied java.net.URL.
			 * @param parameterName 
			 * @param theURL 
			 */
			setURL(parameterName: string, theURL: java.net.URL): void;
			/**
			 * Gets whether the value of the last OUT parameter read was SQL NULL.
			 */
			wasNull(): boolean;
			/**
			 * Gets the value of a specified ROWID parameter as a java.sql.RowId.
			 * @param parameterIndex 
			 */
			getRowId(parameterIndex: number): java.sql.IRowId;
			/**
			 * Returns the value of the specified SQL ROWID parameter as a java.sql.RowId.
			 * @param parameterName the parameter name
			 */
			getRowId(parameterName: string): java.sql.IRowId;
			/**
			 * Sets the named parameter to the given rowId. SQLException if a database error occurs
			 */
			setRowId(parameterName: string, rowId: java.sql.IRowId): void;
			/**
			 * Sets the named parameter to the given string. SQLException if a database error occurs
			 */
			setNString(parameterName: string, string: string): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			setNCharacterStream(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the named parameter to the given nclob. SQLException if a database error occurs
			 */
			setNClob(parameterName: string, nclob: java.sql.INClob): void;
			/**
			 * Sets the named parameter to the next length characters from the given reader. SQLException if a database error occurs
			 */
			setClob(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the named parameter to the next length bytes from the given inputStream. SQLException if a database error occurs
			 */
			setBlob(parameterName: string, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the named parameter to the next length characters from the given reader. SQLException if a database error occurs
			 */
			setNClob(parameterName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Returns the value of the specified SQL NCLOB parameter as a java.sql.NClob.
			 * @param parameterIndex 
			 */
			getNClob(parameterIndex: number): java.sql.INClob;
			/**
			 * Returns the value of the specified SQL NCLOB parameter as a java.sql.NClob.
			 * @param parameterName the parameter name
			 */
			getNClob(parameterName: string): java.sql.INClob;
			/**
			 * Sets the named parameter to the given sqlXml. SQLException if a database error occurs
			 */
			setSQLXML(parameterName: string, sqlXml: java.sql.ISQLXML): void;
			/**
			 * Returns the value of the specified SQL XML parameter as a java.sql.SQLXML.
			 * @param parameterIndex 
			 */
			getSQLXML(parameterIndex: number): java.sql.ISQLXML;
			/**
			 * Returns the value of the specified SQL XML parameter as a java.sql.SQLXML.
			 * @param parameterName the parameter name
			 */
			getSQLXML(parameterName: string): java.sql.ISQLXML;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a java.lang.String.
			 * @param parameterIndex 
			 */
			getNString(parameterIndex: number): string;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a java.lang.String.
			 * @param parameterName the parameter name
			 */
			getNString(parameterName: string): string;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a Reader.
			 * @param parameterIndex 
			 */
			getNCharacterStream(parameterIndex: number): java.io.Reader;
			/**
			 * Returns the value of the specified SQL NCHAR, NVARCHAR, or LONGNVARCHAR parameter as a java.io.Reader.
			 * @param parameterName the parameter name
			 */
			getNCharacterStream(parameterName: string): java.io.Reader;
			/**
			 * Returns the value of the specified parameter as a java.io.Reader.
			 * @param parameterIndex 
			 */
			getCharacterStream(parameterIndex: number): java.io.Reader;
			/**
			 * Returns the value of the specified parameter as a java.io.Reader.
			 * @param parameterName the parameter name
			 */
			getCharacterStream(parameterName: string): java.io.Reader;
			/**
			 * Sets the named parameter to the given blob. SQLException if a database error occurs
			 */
			setBlob(parameterName: string, blob: java.sql.IBlob): void;
			/**
			 * Sets the named parameter to the given clob. SQLException if a database error occurs
			 */
			setClob(parameterName: string, clob: java.sql.IClob): void;
			/**
			 * Sets the named parameter to the bytes from the given reader. SQLException if a database error occurs
			 */
			setAsciiStream(parameterName: string, x: java.io.InputStream): void;
			/**
			 * Sets the named parameter to the bytes from the given reader. SQLException if a database error occurs
			 */
			setBinaryStream(parameterName: string, x: java.io.InputStream): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			setCharacterStream(parameterName: string, reader: java.io.Reader): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			setNCharacterStream(parameterName: string, value: java.io.Reader): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			setClob(parameterName: string, reader: java.io.Reader): void;
			/**
			 * Sets the named parameter to the bytes from the given inputStream. SQLException if a database error occurs
			 */
			setBlob(parameterName: string, inputStream: java.io.InputStream): void;
			/**
			 * Sets the named parameter to the characters from the given reader. SQLException if a database error occurs
			 */
			setNClob(parameterName: string, reader: java.io.Reader): void;
			/**
			 * Add a set of parameters to the PreparedStatement's command batch.
			 */
			addBatch(): void;
			/**
			 * Clear the current parameter values.
			 */
			clearParameters(): void;
			/**
			 * Executes the SQL statement in this PreparedStatement.
			 */
			execute(): boolean;
			/**
			 * Executes the SQL query in the PreparedStatement and returns the ResultSet generated by the query.
			 */
			executeQuery(): java.sql.IResultSet;
			/**
			 * Invokes the SQL command contained within the prepared statement. This must be INSERT, UPDATE, DELETE, or a command that returns nothing.
			 */
			executeUpdate(): number;
			/**
			 * Returns a ResultSetMetaData describing the ResultSet that would be produced by execution of the PreparedStatement.
			 */
			getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets information about the parameters of the PreparedStatement.
			 */
			getParameterMetaData(): java.sql.IParameterMetaData;
			/**
			 * Sets the value of a specified parameter to the supplied Array.
			 * @param parameterIndex 
			 * @param theArray 
			 */
			setArray(parameterIndex: number, theArray: java.sql.IArray): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.math.BigDecimal value.
			 * @param parameterIndex 
			 * @param theBigDecimal 
			 */
			setBigDecimal(parameterIndex: number, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied binary InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Blob object.
			 * @param parameterIndex 
			 * @param theBlob 
			 */
			setBlob(parameterIndex: number, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of a specified parameter to a supplied boolean value.
			 * @param parameterIndex 
			 * @param theBoolean 
			 */
			setBoolean(parameterIndex: number, theBoolean: boolean): void;
			/**
			 * Sets the value of a specified parameter to a supplied byte value.
			 * @param parameterIndex 
			 * @param theByte 
			 */
			setByte(parameterIndex: number, theByte: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied array of bytes. The array is mapped to a VARBINARY or LONGVARBINARY in the database.
			 * @param parameterIndex 
			 * @param theBytes 
			 */
			setBytes(parameterIndex: number, theBytes: native.Array<number>): void;
			/**
			 * Sets the value of a specified parameter to the character content of a Reader object, with the specified length of character data.
			 * @param parameterIndex 
			 * @param reader 
			 * @param length 
			 */
			setCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Clob object.
			 * @param parameterIndex 
			 * @param theClob 
			 */
			setClob(parameterIndex: number, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value.
			 * @param parameterIndex 
			 * @param theDate 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value, using a supplied Calendar to map the Date. The Calendar allows the application to control the timezone used to compute the SQL DATE in the database - without the supplied Calendar, the driver uses the VM defaults. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param parameterIndex 
			 * @param theDate 
			 * @param cal 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied double value.
			 * @param parameterIndex 
			 * @param theDouble 
			 */
			setDouble(parameterIndex: number, theDouble: number): void;
			/**
			 * Sets the value of a specified parameter to to a supplied float value.
			 * @param parameterIndex 
			 * @param theFloat 
			 */
			setFloat(parameterIndex: number, theFloat: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied int value.
			 * @param parameterIndex 
			 * @param theInt 
			 */
			setInt(parameterIndex: number, theInt: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied long value.
			 * @param parameterIndex 
			 * @param theLong 
			 */
			setLong(parameterIndex: number, theLong: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. Don't use this version of setNull for <i>User Defined Types</i> (UDT) or for REF type parameters.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			setNull(parameterIndex: number, sqlType: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. This version of setNull should be used for <i>User Defined Types</i> (UDTs) and also REF types. UDTs can be STRUCT, DISTINCT, JAVA_OBJECT and named array types.
			 * @param paramIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			setNull(paramIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 */
			setObject(parameterIndex: number, theObject: any): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied REF(<structured-type>) value. This is stored as an SQL REF.
			 * @param parameterIndex 
			 * @param theRef 
			 */
			setRef(parameterIndex: number, theRef: java.sql.IRef): void;
			/**
			 * Sets the value of a specified parameter to a supplied short value.
			 * @param parameterIndex 
			 * @param theShort 
			 */
			setShort(parameterIndex: number, theShort: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			setString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value.
			 * @param parameterIndex 
			 * @param theTime 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value, using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 * @param cal 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value, using the supplied Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 * @param cal 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to the characters from a supplied InputStream, with a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setUnicodeStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.net.URL.
			 * @param parameterIndex 
			 * @param theURL 
			 */
			setURL(parameterIndex: number, theURL: java.net.URL): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.RowId.
			 * @param parameterIndex 
			 * @param theRowId 
			 */
			setRowId(parameterIndex: number, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			setNString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setNCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to value.
			 * @param parameterIndex 
			 * @param value 
			 */
			setNClob(parameterIndex: number, value: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 * @param length character count
			 */
			setBlob(parameterIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setNClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the value of xmlObject.
			 * @param parameterIndex 
			 * @param xmlObject the {@code SQLXML}
			 */
			setSQLXML(parameterIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setAsciiStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setBinaryStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setNCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setBlob(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setNClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Adds a specified SQL command to the list of commands for this Statement.
			 * @param sql 
			 */
			addBatch(sql: string): void;
			/**
			 * Cancels this statement's execution if both the database and the JDBC driver support aborting an SQL statement in flight. This method can be used by one thread to stop a statement that is executed on another thread.
			 */
			cancel(): void;
			/**
			 * Clears the current list of SQL commands for this statement.
			 */
			clearBatch(): void;
			/**
			 * Clears all SQLWarnings from this statement.
			 */
			clearWarnings(): void;
			/**
			 * Releases this statement's database and JDBC driver resources.
			 */
			close(): void;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets.
			 * @param sql 
			 */
			execute(sql: string): boolean;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets. This method allows control of whether auto-generated Keys should be made available for retrieval, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			execute(sql: string, autoGeneratedKeys: number): boolean;
			/**
			 * Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param columnIndexes 
			 */
			execute(sql: string, columnIndexes: native.Array<number>): boolean;
			/**
			 * Submits a batch of SQL commands to the database. Returns an array of update counts, if all the commands execute successfully.
			 */
			executeBatch(): native.Array<number>;
			/**
			 * Executes a supplied SQL statement. Returns a single ResultSet.
			 * @param sql 
			 */
			executeQuery(sql: string): java.sql.IResultSet;
			/**
			 * Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.
			 * @param sql 
			 */
			executeUpdate(sql: string): number;
			/**
			 * Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			executeUpdate(sql: string, autoGeneratedKeys: number): number;
			/**
			 * Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.
			 * @param sql 
			 * @param columnIndexes 
			 */
			executeUpdate(sql: string, columnIndexes: native.Array<number>): number;
			/**
			 * Gets the Connection object which created this statement.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Gets the default direction for fetching rows for ResultSets generated from this statement.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the default number of rows for a fetch for the ResultSet objects returned from this statement.
			 */
			getFetchSize(): number;
			/**
			 * Returns auto generated keys created by executing this statement.
			 */
			getGeneratedKeys(): java.sql.IResultSet;
			/**
			 * Gets the maximum number of bytes which can be returned as values from character and binary type columns in a ResultSet derived from this statement. This limit applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR types. Any data exceeding the maximum size is abandoned without announcement.
			 */
			getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows that a ResultSet can contain when produced from this statement. If the limit is exceeded, the excess rows are discarded silently.
			 */
			getMaxRows(): number;
			/**
			 * Moves to this statement's next result. Returns true if it is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are closed implicitly.
			 */
			getMoreResults(): boolean;
			/**
			 * Moves to this statement's next result. Returns true if the next result is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are handled as indicated by a supplied Flag parameter.
			 * @param current 
			 */
			getMoreResults(current: number): boolean;
			/**
			 * Gets the timeout value for the statement's execution time. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.
			 */
			getQueryTimeout(): number;
			/**
			 * Gets the current result. Should only be called once per result.
			 */
			getResultSet(): java.sql.IResultSet;
			/**
			 * Gets the concurrency setting for ResultSet objects generated by this statement.
			 */
			getResultSetConcurrency(): number;
			/**
			 * Gets the cursor hold setting for ResultSet objects generated by this statement.
			 */
			getResultSetHoldability(): number;
			/**
			 * Gets the ResultSet type setting for ResultSets derived from this statement.
			 */
			getResultSetType(): number;
			/**
			 * Gets an update count for the current result if it is not a ResultSet.
			 */
			getUpdateCount(): number;
			/**
			 * Retrieves the first SQLWarning reported by calls on this statement. If there are multiple warnings, subsequent warnings are chained to the first one. The chain of warnings is cleared each time the statement is executed.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Sets the SQL cursor name. This name is used by subsequent statement execute methods.
			 * @param name 
			 */
			setCursorName(name: string): void;
			/**
			 * Sets Escape Processing mode.
			 * @param enable 
			 */
			setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this statement. The default fetch direction is FETCH_FORWARD.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Sets the fetch size. This is a hint to the JDBC driver about how many rows should be fetched from the database when more are required by application processing.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Sets the maximum number of bytes for ResultSet columns that contain character or binary values. This applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR fields. Any data exceeding the maximum size is abandoned without announcement.
			 * @param max 
			 */
			setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows that any ResultSet can contain. If the number of rows exceeds this value, the additional rows are silently discarded.
			 * @param max 
			 */
			setMaxRows(max: number): void;
			/**
			 * Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a statement execution. If the timeout is exceeded, the query will throw an SQLException.
			 * @param seconds 
			 */
			setQueryTimeout(seconds: number): void;
			/**
			 * Returns true if this statement has been closed, false otherwise.
			 */
			isClosed(): boolean;
			/**
			 * Hints whether this statement should be pooled. Defaults to false for Statement, but true for CallableStatement and PreparedStatement. Pool manager implementations may or may not honor this hint.
			 */
			setPoolable(poolable: boolean): void;
			/**
			 * Returns true if this statement is poolable, false otherwise.
			 */
			isPoolable(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * Provides information about the columns returned in a ResultSet.
		 */
		interface IResultSetMetaData extends java.sql.IWrapper {
			/**
			 * Returns the title of an indexed column's catalog.
			 * @param column 
			 */
			getCatalogName(column: number): string;
			/**
			 * Returns the fully-qualified type of the class that is produced when invoking ResultSet.getObject to recover this column's value.
			 * @param column 
			 */
			getColumnClassName(column: number): string;
			/**
			 * Returns number of columns contained in the associated result set.
			 */
			getColumnCount(): number;
			/**
			 * Returns the indexed column's standard maximum width, expressed in number of characters.
			 * @param column 
			 */
			getColumnDisplaySize(column: number): number;
			/**
			 * Returns a recommended title for the indexed column, to be used when the title needs to be displayed.
			 * @param column 
			 */
			getColumnLabel(column: number): string;
			/**
			 * Returns the title of the indexed column.
			 * @param column 
			 */
			getColumnName(column: number): string;
			/**
			 * Returns the type of the indexed column as SQL type code.
			 * @param column 
			 */
			getColumnType(column: number): number;
			/**
			 * Returns the type name of the indexed column.
			 * @param column 
			 */
			getColumnTypeName(column: number): string;
			/**
			 * Returns the decimal precision of the indexed column.
			 * @param column 
			 */
			getPrecision(column: number): number;
			/**
			 * Returns the number of digits to the right of the decimal point of the indexed column.
			 * @param column 
			 */
			getScale(column: number): number;
			/**
			 * Returns the name of the indexed columns schema.
			 * @param column 
			 */
			getSchemaName(column: number): string;
			/**
			 * Returns the title of the indexed columns table.
			 * @param column 
			 */
			getTableName(column: number): string;
			/**
			 * Returns an indication of whether the indexed column is automatically incremented and is therefore read-only.
			 * @param column 
			 */
			isAutoIncrement(column: number): boolean;
			/**
			 * Returns an indication of whether the case of the indexed column is important.
			 * @param column 
			 */
			isCaseSensitive(column: number): boolean;
			/**
			 * Returns whether the indexed column contains a monetary amount.
			 * @param column 
			 */
			isCurrency(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be successful.
			 * @param column 
			 */
			isDefinitelyWritable(column: number): boolean;
			/**
			 * Returns whether the indexed column is nullable.
			 * @param column 
			 */
			isNullable(column: number): number;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be unsuccessful.
			 * @param column 
			 */
			isReadOnly(column: number): boolean;
			/**
			 * Returns an indication of whether the indexed column is searchable.
			 * @param column 
			 */
			isSearchable(column: number): boolean;
			/**
			 * Returns an indication of whether the values contained in the indexed column are signed.
			 * @param column 
			 */
			isSigned(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is possible.
			 * @param column 
			 */
			isWritable(column: number): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		export module IResultSetMetaData {
			/**
			 * Indicates that a column cannot contain NULL values.
			 */
			var columnNoNulls: number;
			/**
			 * Indicates that a column can contain NULL values.
			 */
			var columnNullable: number;
			/**
			 * Indicates that it is unknown whether a column can contain NULLs or not.
			 */
			var columnNullableUnknown: number;
		}
		/**
		 * An exception, which is subclass of SQLNonTransientException, is thrown when various the an integrity constraint (foreign key, primary key or unique key) has been violated.
		 */
		export class SQLIntegrityConstraintViolationException extends java.sql.SQLNonTransientException {
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to null, the SQLState string is set to null and the Error Code is set to 0.
			 */
			constructor();
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to the given reason string, the SQLState string is set to null and the Error Code is set to 0.
			 * @param reason 
			 */
			constructor(reason: string);
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to 0.
			 * @param reason 
			 * @param sqlState 
			 */
			constructor(reason: string, sqlState: string);
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the Error Code is set to the given error code value.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number);
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to the null if cause == null or cause.toString() if cause!=null,and the cause Throwable object is set to the given cause Throwable object.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to the given and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param cause 
			 */
			constructor(reason: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, cause: java.lang.Throwable);
			/**
			 * Creates an SQLIntegrityConstraintViolationException object. The Reason string is set to the given reason string, the SQLState string is set to the given SQLState string , the Error Code is set to the given error code value, and the cause Throwable object is set to the given cause Throwable object.
			 * @param reason 
			 * @param sqlState 
			 * @param vendorCode 
			 * @param cause 
			 */
			constructor(reason: string, sqlState: string, vendorCode: number, cause: java.lang.Throwable);
			static class: java.lang.Class<java.sql.SQLIntegrityConstraintViolationException>;
		}
		/**
		 * An interface for a precompiled SQL Statement.
		 */
		interface IPreparedStatement extends java.sql.IStatement {
			/**
			 * Add a set of parameters to the PreparedStatement's command batch.
			 */
			addBatch(): void;
			/**
			 * Clear the current parameter values.
			 */
			clearParameters(): void;
			/**
			 * Executes the SQL statement in this PreparedStatement.
			 */
			execute(): boolean;
			/**
			 * Executes the SQL query in the PreparedStatement and returns the ResultSet generated by the query.
			 */
			executeQuery(): java.sql.IResultSet;
			/**
			 * Invokes the SQL command contained within the prepared statement. This must be INSERT, UPDATE, DELETE, or a command that returns nothing.
			 */
			executeUpdate(): number;
			/**
			 * Returns a ResultSetMetaData describing the ResultSet that would be produced by execution of the PreparedStatement.
			 */
			getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets information about the parameters of the PreparedStatement.
			 */
			getParameterMetaData(): java.sql.IParameterMetaData;
			/**
			 * Sets the value of a specified parameter to the supplied Array.
			 * @param parameterIndex 
			 * @param theArray 
			 */
			setArray(parameterIndex: number, theArray: java.sql.IArray): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.math.BigDecimal value.
			 * @param parameterIndex 
			 * @param theBigDecimal 
			 */
			setBigDecimal(parameterIndex: number, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of a specified parameter to the content of a supplied binary InputStream, which has a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Blob object.
			 * @param parameterIndex 
			 * @param theBlob 
			 */
			setBlob(parameterIndex: number, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of a specified parameter to a supplied boolean value.
			 * @param parameterIndex 
			 * @param theBoolean 
			 */
			setBoolean(parameterIndex: number, theBoolean: boolean): void;
			/**
			 * Sets the value of a specified parameter to a supplied byte value.
			 * @param parameterIndex 
			 * @param theByte 
			 */
			setByte(parameterIndex: number, theByte: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied array of bytes. The array is mapped to a VARBINARY or LONGVARBINARY in the database.
			 * @param parameterIndex 
			 * @param theBytes 
			 */
			setBytes(parameterIndex: number, theBytes: native.Array<number>): void;
			/**
			 * Sets the value of a specified parameter to the character content of a Reader object, with the specified length of character data.
			 * @param parameterIndex 
			 * @param reader 
			 * @param length 
			 */
			setCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of a specified parameter to the given Clob object.
			 * @param parameterIndex 
			 * @param theClob 
			 */
			setClob(parameterIndex: number, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value.
			 * @param parameterIndex 
			 * @param theDate 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Date value, using a supplied Calendar to map the Date. The Calendar allows the application to control the timezone used to compute the SQL DATE in the database - without the supplied Calendar, the driver uses the VM defaults. See "<a href="../util/Locale.html#default_locale">Be wary of the default locale</a>".
			 * @param parameterIndex 
			 * @param theDate 
			 * @param cal 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied double value.
			 * @param parameterIndex 
			 * @param theDouble 
			 */
			setDouble(parameterIndex: number, theDouble: number): void;
			/**
			 * Sets the value of a specified parameter to to a supplied float value.
			 * @param parameterIndex 
			 * @param theFloat 
			 */
			setFloat(parameterIndex: number, theFloat: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied int value.
			 * @param parameterIndex 
			 * @param theInt 
			 */
			setInt(parameterIndex: number, theInt: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied long value.
			 * @param parameterIndex 
			 * @param theLong 
			 */
			setLong(parameterIndex: number, theLong: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. Don't use this version of setNull for <i>User Defined Types</i> (UDT) or for REF type parameters.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			setNull(parameterIndex: number, sqlType: number): void;
			/**
			 * Sets the value of a specified parameter to SQL NULL. This version of setNull should be used for <i>User Defined Types</i> (UDTs) and also REF types. UDTs can be STRUCT, DISTINCT, JAVA_OBJECT and named array types.
			 * @param paramIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			setNull(paramIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 */
			setObject(parameterIndex: number, theObject: any): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of a specified parameter using a supplied object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied REF(<structured-type>) value. This is stored as an SQL REF.
			 * @param parameterIndex 
			 * @param theRef 
			 */
			setRef(parameterIndex: number, theRef: java.sql.IRef): void;
			/**
			 * Sets the value of a specified parameter to a supplied short value.
			 * @param parameterIndex 
			 * @param theShort 
			 */
			setShort(parameterIndex: number, theShort: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			setString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value.
			 * @param parameterIndex 
			 * @param theTime 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Time value, using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 * @param cal 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.Timestamp value, using the supplied Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 * @param cal 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp, cal: java.util.Calendar): void;
			/**
			 * Sets the value of a specified parameter to the characters from a supplied InputStream, with a specified number of bytes.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setUnicodeStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.net.URL.
			 * @param parameterIndex 
			 * @param theURL 
			 */
			setURL(parameterIndex: number, theURL: java.net.URL): void;
			/**
			 * Sets the value of a specified parameter to a supplied java.sql.RowId.
			 * @param parameterIndex 
			 * @param theRowId 
			 */
			setRowId(parameterIndex: number, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of a specified parameter to a supplied string.
			 * @param parameterIndex 
			 * @param theString 
			 */
			setNString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setNCharacterStream(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to value.
			 * @param parameterIndex 
			 * @param value 
			 */
			setNClob(parameterIndex: number, value: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 * @param length character count
			 */
			setBlob(parameterIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter to the next length characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 * @param length character count
			 */
			setNClob(parameterIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter to the value of xmlObject.
			 * @param parameterIndex 
			 * @param xmlObject the {@code SQLXML}
			 */
			setSQLXML(parameterIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setAsciiStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setBinaryStream(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setNCharacterStream(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter to the bytes from inputStream.
			 * @param parameterIndex 
			 * @param inputStream the {@code InputStream}
			 */
			setBlob(parameterIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter to the characters from reader.
			 * @param parameterIndex 
			 * @param reader the {@code Reader}
			 */
			setNClob(parameterIndex: number, reader: java.io.Reader): void;
			/**
			 * Adds a specified SQL command to the list of commands for this Statement.
			 * @param sql 
			 */
			addBatch(sql: string): void;
			/**
			 * Cancels this statement's execution if both the database and the JDBC driver support aborting an SQL statement in flight. This method can be used by one thread to stop a statement that is executed on another thread.
			 */
			cancel(): void;
			/**
			 * Clears the current list of SQL commands for this statement.
			 */
			clearBatch(): void;
			/**
			 * Clears all SQLWarnings from this statement.
			 */
			clearWarnings(): void;
			/**
			 * Releases this statement's database and JDBC driver resources.
			 */
			close(): void;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets.
			 * @param sql 
			 */
			execute(sql: string): boolean;
			/**
			 * Executes a supplied SQL statement. This may return multiple ResultSets. This method allows control of whether auto-generated Keys should be made available for retrieval, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			execute(sql: string, autoGeneratedKeys: number): boolean;
			/**
			 * Executes the supplied SQL statement. This may return multiple ResultSets. This method allows retrieval of auto generated keys specified by the supplied array of column indexes, if the SQL statement is an INSERT statement.
			 * @param sql 
			 * @param columnIndexes 
			 */
			execute(sql: string, columnIndexes: native.Array<number>): boolean;
			/**
			 * Submits a batch of SQL commands to the database. Returns an array of update counts, if all the commands execute successfully.
			 */
			executeBatch(): native.Array<number>;
			/**
			 * Executes a supplied SQL statement. Returns a single ResultSet.
			 * @param sql 
			 */
			executeQuery(sql: string): java.sql.IResultSet;
			/**
			 * Executes the supplied SQL statement. The statement may be an INSERT, UPDATE or DELETE statement or a statement which returns nothing.
			 * @param sql 
			 */
			executeUpdate(sql: string): number;
			/**
			 * Executes the supplied SQL statement. This method allows control of whether auto-generated Keys should be made available for retrieval.
			 * @param sql 
			 * @param autoGeneratedKeys 
			 */
			executeUpdate(sql: string, autoGeneratedKeys: number): number;
			/**
			 * Executes the supplied SQL statement. This method allows retrieval of auto generated keys specified by the supplied array of column indexes.
			 * @param sql 
			 * @param columnIndexes 
			 */
			executeUpdate(sql: string, columnIndexes: native.Array<number>): number;
			/**
			 * Gets the Connection object which created this statement.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Gets the default direction for fetching rows for ResultSets generated from this statement.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the default number of rows for a fetch for the ResultSet objects returned from this statement.
			 */
			getFetchSize(): number;
			/**
			 * Returns auto generated keys created by executing this statement.
			 */
			getGeneratedKeys(): java.sql.IResultSet;
			/**
			 * Gets the maximum number of bytes which can be returned as values from character and binary type columns in a ResultSet derived from this statement. This limit applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR types. Any data exceeding the maximum size is abandoned without announcement.
			 */
			getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows that a ResultSet can contain when produced from this statement. If the limit is exceeded, the excess rows are discarded silently.
			 */
			getMaxRows(): number;
			/**
			 * Moves to this statement's next result. Returns true if it is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are closed implicitly.
			 */
			getMoreResults(): boolean;
			/**
			 * Moves to this statement's next result. Returns true if the next result is a ResultSet. Any current ResultSet objects previously obtained with getResultSet() are handled as indicated by a supplied Flag parameter.
			 * @param current 
			 */
			getMoreResults(current: number): boolean;
			/**
			 * Gets the timeout value for the statement's execution time. The JDBC driver will wait up to this value for the execution to complete - after the limit is exceeded an SQL Exception is thrown.
			 */
			getQueryTimeout(): number;
			/**
			 * Gets the current result. Should only be called once per result.
			 */
			getResultSet(): java.sql.IResultSet;
			/**
			 * Gets the concurrency setting for ResultSet objects generated by this statement.
			 */
			getResultSetConcurrency(): number;
			/**
			 * Gets the cursor hold setting for ResultSet objects generated by this statement.
			 */
			getResultSetHoldability(): number;
			/**
			 * Gets the ResultSet type setting for ResultSets derived from this statement.
			 */
			getResultSetType(): number;
			/**
			 * Gets an update count for the current result if it is not a ResultSet.
			 */
			getUpdateCount(): number;
			/**
			 * Retrieves the first SQLWarning reported by calls on this statement. If there are multiple warnings, subsequent warnings are chained to the first one. The chain of warnings is cleared each time the statement is executed.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Sets the SQL cursor name. This name is used by subsequent statement execute methods.
			 * @param name 
			 */
			setCursorName(name: string): void;
			/**
			 * Sets Escape Processing mode.
			 * @param enable 
			 */
			setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the fetch direction - a hint to the JDBC driver about the direction of processing of rows in ResultSets created by this statement. The default fetch direction is FETCH_FORWARD.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Sets the fetch size. This is a hint to the JDBC driver about how many rows should be fetched from the database when more are required by application processing.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Sets the maximum number of bytes for ResultSet columns that contain character or binary values. This applies to BINARY, VARBINARY, LONGVARBINARY, CHAR, VARCHAR, and LONGVARCHAR fields. Any data exceeding the maximum size is abandoned without announcement.
			 * @param max 
			 */
			setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows that any ResultSet can contain. If the number of rows exceeds this value, the additional rows are silently discarded.
			 * @param max 
			 */
			setMaxRows(max: number): void;
			/**
			 * Sets the timeout, in seconds, for queries - how long the driver will allow for completion of a statement execution. If the timeout is exceeded, the query will throw an SQLException.
			 * @param seconds 
			 */
			setQueryTimeout(seconds: number): void;
			/**
			 * Returns true if this statement has been closed, false otherwise.
			 */
			isClosed(): boolean;
			/**
			 * Hints whether this statement should be pooled. Defaults to false for Statement, but true for CallableStatement and PreparedStatement. Pool manager implementations may or may not honor this hint.
			 */
			setPoolable(poolable: boolean): void;
			/**
			 * Returns true if this statement is poolable, false otherwise.
			 */
			isPoolable(): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface to a JDBC driver.
		 */
		interface IDriver {
			/**
			 * Returns whether the driver thinks that it can open a connection to the given URL.
			 * @param url 
			 */
			acceptsURL(url: string): boolean;
			/**
			 * Attempts to make a database connection to a data source specified by a supplied URL.
			 * @param url 
			 * @param info 
			 */
			connect(url: string, info: java.util.Properties): java.sql.IConnection;
			/**
			 * Gets the driver's major version number.
			 */
			getMajorVersion(): number;
			/**
			 * Gets the driver's minor version number.
			 */
			getMinorVersion(): number;
			/**
			 * Gets information about possible properties for this driver.
			 * @param url 
			 * @param info 
			 */
			getPropertyInfo(url: string, info: java.util.Properties): native.Array<java.sql.DriverPropertyInfo>;
			/**
			 * Reports whether this driver is a genuine JDBC CompliantTM driver. The driver may only return true if it passes all the JDBC compliance tests.
			 */
			jdbcCompliant(): boolean;
		}
		/**
		 * An interface used to get information about the types and properties of parameters in a PreparedStatement.
		 */
		export class ParameterMetaData implements java.sql.IWrapper, java.sql.IParameterMetaData {
			constructor(implementation: java.sql.IParameterMetaData);
			/**
			 * Indicates that the parameter mode is IN.
			 */
			static parameterModeIn: number;
			/**
			 * Indicates that the parameter mode is INOUT.
			 */
			static parameterModeInOut: number;
			/**
			 * Indicates that the parameter mode is OUT.
			 */
			static parameterModeOut: number;
			/**
			 * Indicates that the parameter mode is not known.
			 */
			static parameterModeUnknown: number;
			/**
			 * Indicates that a parameter is not permitted to be NULL.
			 */
			static parameterNoNulls: number;
			/**
			 * Indicates that a parameter is permitted to be NULL.
			 */
			static parameterNullable: number;
			/**
			 * Indicates that whether a parameter is allowed to be null or not is not known.
			 */
			static parameterNullableUnknown: number;
			/**
			 * Gets the fully-qualified name of the Java class which should be passed as a parameter to the method PreparedStatement.setObject.
			 * @param paramIndex 
			 */
			public getParameterClassName(paramIndex: number): string;
			/**
			 * Gets the number of parameters in the PreparedStatement for which this ParameterMetaData contains information.
			 */
			public getParameterCount(): number;
			/**
			 * Gets the mode of the specified parameter. Can be one of: <ul> <li>ParameterMetaData.parameterModeIn</li> <li>ParameterMetaData.parameterModeOut</li> <li>ParameterMetaData.parameterModeInOut</li> <li>ParameterMetaData.parameterModeUnknown</li> </ul>
			 * @param paramIndex 
			 */
			public getParameterMode(paramIndex: number): number;
			/**
			 * Gets the SQL type of a specified parameter.
			 * @param paramIndex 
			 */
			public getParameterType(paramIndex: number): number;
			/**
			 * Gets the database-specific type name of a specified parameter.
			 * @param paramIndex 
			 */
			public getParameterTypeName(paramIndex: number): string;
			/**
			 * Gets the number of decimal digits for a specified parameter.
			 * @param paramIndex 
			 */
			public getPrecision(paramIndex: number): number;
			/**
			 * Gets the number of digits after the decimal point for a specified parameter.
			 * @param paramIndex 
			 */
			public getScale(paramIndex: number): number;
			/**
			 * Gets whether null values are allowed for the specified parameter. The returned value is one of: <ul> <li>ParameterMetaData.parameterNoNulls</li> <li>ParameterMetaData.parameterNullable</li> <li>ParameterMetaData.parameterNullableUnknown</li> </ul>
			 * @param paramIndex 
			 */
			public isNullable(paramIndex: number): number;
			/**
			 * Gets whether values for the specified parameter can be signed numbers.
			 * @param paramIndex 
			 */
			public isSigned(paramIndex: number): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * A class holding information about driver properties of a database connection. This class is returned by the Driver#getPropertyInfo(String, java.util.Properties) method and allows for the advanced connection handling.
		 */
		export class DriverPropertyInfo extends java.lang.Object {
			/**
			 * Creates a DriverPropertyInfo instance with the supplied name and value. Other class members take their default values.
			 * @param name 
			 * @param value 
			 */
			constructor(name: string, value: string);
			/**
			 * If the value member can be chosen from a set of possible values, they are contained here. Otherwise choices is null.
			 */
			choices: native.Array<string>;
			/**
			 * A description of the property. May be null.
			 */
			description: string;
			/**
			 * The name of the property.
			 */
			name: string;
			/**
			 * true when the value member must be provided during Driver.connect. false otherwise.
			 */
			required: boolean;
			/**
			 * The current value associated with this property. It is depending on the data gathered by the getPropertyInfo method, the general Java environment and the driver's default values.
			 */
			value: string;
			static class: java.lang.Class<java.sql.DriverPropertyInfo>;
		}
		/**
		 * The SQLInput interface defines operations which apply to a type of input stream which carries a series of values representing an instance of an SQL structured type or SQL distinct type.
		 */
		export class SQLInput implements java.sql.ISQLInput {
			constructor(implementation: java.sql.ISQLInput);
			/**
			 * Returns the next attribute in the stream in the form of a String.
			 */
			public readString(): string;
			/**
			 * Returns the next attribute in the stream in the form of a boolean .
			 */
			public readBoolean(): boolean;
			/**
			 * Returns the next attribute in the stream in the form of a byte.
			 */
			public readByte(): number;
			/**
			 * Returns the next attribute in the stream in the form of a short.
			 */
			public readShort(): number;
			/**
			 * Returns the next attribute in the stream in the form of an int.
			 */
			public readInt(): number;
			/**
			 * Returns the next attribute in the stream in the form of a long.
			 */
			public readLong(): any;
			/**
			 * Returns the next attribute in the stream in the form of a float.
			 */
			public readFloat(): number;
			/**
			 * Returns the next attribute in the stream in the form of a double.
			 */
			public readDouble(): any;
			/**
			 * Returns the next attribute in the stream in the form of a java.math.BigDecimal.
			 */
			public readBigDecimal(): java.math.BigDecimal;
			/**
			 * Returns the next attribute in the stream in the form of a byte array.
			 */
			public readBytes(): native.Array<number>;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Date.
			 */
			public readDate(): java.sql.Date;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Time.
			 */
			public readTime(): java.sql.Time;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Timestamp.
			 */
			public readTimestamp(): java.sql.Timestamp;
			/**
			 * Returns the next attribute in the stream in the form of a Unicode character stream embodied as a java.io.Reader.
			 */
			public readCharacterStream(): java.io.Reader;
			/**
			 * Returns the next attribute in the stream in the form of an ASCII character stream embodied as a java.io.InputStream.
			 */
			public readAsciiStream(): java.io.InputStream;
			/**
			 * Returns the next attribute in the stream in the form of a stream of bytes embodied as a java.io.InputStream.
			 */
			public readBinaryStream(): java.io.InputStream;
			/**
			 * Returns the next attribute in the stream in the form of a java.lang.Object.
			 */
			public readObject(): any;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Ref.
			 */
			public readRef(): java.sql.IRef;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Blob.
			 */
			public readBlob(): java.sql.IBlob;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Clob.
			 */
			public readClob(): java.sql.IClob;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.Array.
			 */
			public readArray(): java.sql.IArray;
			/**
			 * Reports whether the last value read was SQL NULL.
			 */
			public wasNull(): boolean;
			/**
			 * Reads the next attribute in the stream (SQL DATALINK value) and returns it as a java.net.URL object.
			 */
			public readURL(): java.net.URL;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.NClob.
			 */
			public readNClob(): java.sql.INClob;
			/**
			 * Returns the next attribute in the stream in the form of a java.lang.String. Used for the NCHAR, NVARCHAR and LONGNVARCHAR types. See #readString otherwise.
			 */
			public readNString(): string;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.SQLXML.
			 */
			public readSQLXML(): java.sql.ISQLXML;
			/**
			 * Returns the next attribute in the stream in the form of a java.sql.RowId. Used for the ROWID type.
			 */
			public readRowId(): java.sql.IRowId;
		}
		/**
		 * An enumeration to describe the reason why a property cannot be set by calling Connection.setClientInfo.
		 */
		export enum ClientInfoStatus {
			REASON_UNKNOWN,
			REASON_UNKNOWN_PROPERTY,
			REASON_VALUE_INVALID,
			REASON_VALUE_TRUNCATED
		}
	}
	export module awt {
		export module font {
			/**
			 * The Class NumericShaper provides methods to convert latin character codes to unicode character codes. For tables of the character codes used, see <a href="http://www.unicode.org/Public/UNIDATA/">unicode.org</a>.
			 */
			export class NumericShaper extends java.lang.Object implements java.io.ISerializable {
				/**
				 * The Constant EUROPEAN indicates the latin and extended range, and latin decimal base.
				 */
				static EUROPEAN: number;
				/**
				 * The Constant ARABIC indicates the ARABIC range and decimal base.
				 */
				static ARABIC: number;
				/**
				 * The Constant EASTERN_ARABIC indicates the ARABIC range and ARABIC_EXTENDED decimal base.
				 */
				static EASTERN_ARABIC: number;
				/**
				 * The Constant DEVANAGARI indicates the DEVANAGARI range and decimal base.
				 */
				static DEVANAGARI: number;
				/**
				 * The Constant BENGALI indicates the BENGALI range and decimal base.
				 */
				static BENGALI: number;
				/**
				 * The Constant GURMUKHI indicates the GURMUKHI range and decimal base.
				 */
				static GURMUKHI: number;
				/**
				 * The Constant GUJARATI indicates the GUJARATI range and decimal base.
				 */
				static GUJARATI: number;
				/**
				 * The Constant ORIYA indicates the ORIYA range and decimal base.
				 */
				static ORIYA: number;
				/**
				 * The Constant TAMIL indicates the TAMIL range and decimal base.
				 */
				static TAMIL: number;
				/**
				 * The Constant TELUGU indicates the TELUGU range and decimal base.
				 */
				static TELUGU: number;
				/**
				 * The Constant KANNADA indicates the KANNADA range and decimal base.
				 */
				static KANNADA: number;
				/**
				 * The Constant MALAYALAM indicates the MALAYALAM range and decimal base.
				 */
				static MALAYALAM: number;
				/**
				 * The Constant THAI indicates the THAI range and decimal base.
				 */
				static THAI: number;
				/**
				 * The Constant LAO indicates the LAO range and decimal base.
				 */
				static LAO: number;
				/**
				 * The Constant TIBETAN indicates the TIBETAN range and decimal base.
				 */
				static TIBETAN: number;
				/**
				 * The Constant MYANMAR indicates the MYANMAR range and decimal base.
				 */
				static MYANMAR: number;
				/**
				 * The Constant ETHIOPIC indicates the ETHIOPIC range and decimal base.
				 */
				static ETHIOPIC: number;
				/**
				 * The Constant KHMER indicates the KHMER range and decimal base.
				 */
				static KHMER: number;
				/**
				 * The Constant MONGOLIAN indicates the MONGOLIAN range and decimal base.
				 */
				static MONGOLIAN: number;
				/**
				 * The Constant ALL_RANGES indicates all ranges.
				 */
				static ALL_RANGES: number;
				static class: java.lang.Class<java.awt.font.NumericShaper>;
				public hashCode(): number;
				public equals(obj: any): boolean;
				public toString(): string;
				/**
				 * Gets the NumericShaper for the specified unicode ranges and default unicode range. The defaultContext parameter is used as the starting context (which indicates the language/script being used). The OR logical operation should be used for multiple ranges: NumericShaper.DEVANAGARI | NumericShaper.BENGALI. The NumericShaper returned by this method is contextual in that it supports multiple character ranges, depending on the context.
				 * @param ranges the unicode ranges.
				 * @param defaultContext the default, starting context.
				 */
				public static getContextualShaper(ranges: number, defaultContext: number): java.awt.font.NumericShaper;
				/**
				 * Gets the NumericShaper for the specified unicode ranges. The OR logical operation should be used for multiple ranges: NumericShaper.DEVANAGARI | NumericShaper.BENGALI. The NumericShaper returned by this method is contextual in that it supports multiple character ranges, depending on the context.
				 * @param ranges the unicode ranges.
				 */
				public static getContextualShaper(ranges: number): java.awt.font.NumericShaper;
				/**
				 * Gets the masks for all of the ranges supported by this NumericShaper, packed into an int value using the logical OR logical operation for multiple ranges: NumericShaper.DEVANAGARI | NumericShaper.BENGALI.
				 */
				public getRanges(): number;
				/**
				 * Gets a NumericShaper for the specified unicode range. The NumericShaper supports only a single range and hence is not contextual.
				 * @param singleRange the specified unicode single range.
				 */
				public static getShaper(singleRange: number): java.awt.font.NumericShaper;
				/**
				 * Checks if this NumericShaper is contextual (supporting multiple script ranges) or not.
				 */
				public isContextual(): boolean;
				/**
				 * Transforms the encoding of the text, starting from the character at index start and transforming count characters, using the specified context.
				 * @param text the text to be shaped.
				 * @param start the start offset of the text.
				 * @param count the number of characters to be shaped.
				 * @param context the context to be used for shaping.
				 */
				public shape(text: native.Array<string>, start: number, count: number, context: number): void;
				/**
				 * Transforms the encoding of the text, starting from the character at index start and transforming count characters.
				 * @param text the text to be shaped.
				 * @param start the start offset of the text.
				 * @param count the number of characters to be shaped.
				 */
				public shape(text: native.Array<string>, start: number, count: number): void;
			}
			/**
			 * The TextAttribute class defines attribute keys and attribute values for text rendering. Each TextAttributes should have the following information: <ul> <li>key name;</li> <li>valid values;</li> <li>relevant constants;</li> <li>default action if the attribute is absent;</li> <li>default action's description.</li> </ul>
			 */
			export class TextAttribute extends java.text.AttributedCharacterIterator.Attribute {
				/**
				 * The BACKGROUND text attribute.
				 */
				static BACKGROUND: java.awt.font.TextAttribute;
				/**
				 * The BIDI_EMBEDDING text attribute key.
				 */
				static BIDI_EMBEDDING: java.awt.font.TextAttribute;
				/**
				 * The CHAR_REPLACEMENT text attribute key.
				 */
				static CHAR_REPLACEMENT: java.awt.font.TextAttribute;
				/**
				 * The FAMILY text attribute key.
				 */
				static FAMILY: java.awt.font.TextAttribute;
				/**
				 * The FONT text attribute key.
				 */
				static FONT: java.awt.font.TextAttribute;
				/**
				 * The FOREGROUND text attribute key.
				 */
				static FOREGROUND: java.awt.font.TextAttribute;
				/**
				 * The INPUT_METHOD_HIGHLIGHT text attribute key.
				 */
				static INPUT_METHOD_HIGHLIGHT: java.awt.font.TextAttribute;
				/**
				 * The INPUT_METHOD_UNDERLINE text attribute key.
				 */
				static INPUT_METHOD_UNDERLINE: java.awt.font.TextAttribute;
				/**
				 * The JUSTIFICATION text attribute key.
				 */
				static JUSTIFICATION: java.awt.font.TextAttribute;
				/**
				 * The Constant JUSTIFICATION_indicates the full requested width.
				 */
				static JUSTIFICATION_FULL: java.lang.Float;
				/**
				 * The Constant JUSTIFICATION_NONE indicates that line is not allowed for justification.
				 */
				static JUSTIFICATION_NONE: java.lang.Float;
				/**
				 * The KERNING text attribute key.
				 */
				static KERNING: java.awt.font.TextAttribute;
				/**
				 *  1.6
				 */
				static KERNING_ON: java.lang.Integer;
				/**
				 * The LIGATURES text attribute key.
				 */
				static LIGATURES: java.awt.font.TextAttribute;
				/**
				 *  1.6
				 */
				static LIGATURES_ON: java.lang.Integer;
				/**
				 * The NUMERIC_SHAPING text attribute.
				 */
				static NUMERIC_SHAPING: java.awt.font.TextAttribute;
				/**
				 * The POSTURE text attribute.
				 */
				static POSTURE: java.awt.font.TextAttribute;
				/**
				 * The Constant POSTURE_REGULAR indicates regular posture.
				 */
				static POSTURE_REGULAR: java.lang.Float;
				/**
				 * The Constant POSTURE_OBLIQUE indicates italic posture.
				 */
				static POSTURE_OBLIQUE: java.lang.Float;
				/**
				 * The RUN_DIRECTION text attribute.
				 */
				static RUN_DIRECTION: java.awt.font.TextAttribute;
				/**
				 * The Constant RUN_DIRECTION_LTR indicates left-to-right run direction.
				 */
				static RUN_DIRECTION_LTR: java.lang.Boolean;
				/**
				 * The Constant RUN_DIRECTION_RTL indicates right-to-left run direction.
				 */
				static RUN_DIRECTION_RTL: java.lang.Boolean;
				/**
				 * The SIZE text attribute.
				 */
				static SIZE: java.awt.font.TextAttribute;
				/**
				 * The STRIKETHROUGH text attribute.
				 */
				static STRIKETHROUGH: java.awt.font.TextAttribute;
				/**
				 * The Constant STRIKETHROUGH_ON indicates a single strikethrough.
				 */
				static STRIKETHROUGH_ON: java.lang.Boolean;
				/**
				 * The SUPERSCRIPT text attribute.
				 */
				static SUPERSCRIPT: java.awt.font.TextAttribute;
				/**
				 * The Constant SUPERSCRIPT_SUB indicates a standard subscript.
				 */
				static SUPERSCRIPT_SUB: java.lang.Integer;
				/**
				 * The Constant SUPERSCRIPT_SUPER indicates a standard superscript.
				 */
				static SUPERSCRIPT_SUPER: java.lang.Integer;
				/**
				 * The SWAP_COLORS text attribute.
				 */
				static SWAP_COLORS: java.awt.font.TextAttribute;
				/**
				 * The Constant SWAP_COLORS_ON indicates a swap of foreground and background.
				 */
				static SWAP_COLORS_ON: java.lang.Boolean;
				/**
				 * The TRACKING text attribute key.
				 */
				static TRACKING: java.awt.font.TextAttribute;
				/**
				 *  1.6
				 */
				static TRACKING_LOOSE: java.lang.Float;
				/**
				 *  1.6
				 */
				static TRACKING_TIGHT: java.lang.Float;
				/**
				 * The TRANSFORM text attribute.
				 */
				static TRANSFORM: java.awt.font.TextAttribute;
				/**
				 * The Constant UNDERLINE text attribute.
				 */
				static UNDERLINE: java.awt.font.TextAttribute;
				/**
				 * The Constant UNDERLINE_ON indicates a standard underline at the roman baseline for roman text.
				 */
				static UNDERLINE_ON: java.lang.Integer;
				/**
				 * The Constant UNDERLINE_LOW_ONE_PIXEL indicates a single pixel solid low underline.
				 */
				static UNDERLINE_LOW_ONE_PIXEL: java.lang.Integer;
				/**
				 * The Constant UNDERLINE_LOW_TWO_PIXEL indicates a double pixel solid low underline.
				 */
				static UNDERLINE_LOW_TWO_PIXEL: java.lang.Integer;
				/**
				 * The Constant UNDERLINE_LOW_DOTTED indicates a single pixel dotted low underline.
				 */
				static UNDERLINE_LOW_DOTTED: java.lang.Integer;
				/**
				 * The Constant UNDERLINE_LOW_GRAY indicates double pixel gray low underline.
				 */
				static UNDERLINE_LOW_GRAY: java.lang.Integer;
				/**
				 * The Constant UNDERLINE_LOW_DASHED indicates single pixel dashed low underline.
				 */
				static UNDERLINE_LOW_DASHED: java.lang.Integer;
				/**
				 * The WEIGHT text attribute.
				 */
				static WEIGHT: java.awt.font.TextAttribute;
				/**
				 * The Constant WEIGHT_EXTRA_LIGHT indicates the lightest predefined weight.
				 */
				static WEIGHT_EXTRA_LIGHT: java.lang.Float;
				/**
				 * The Constant WEIGHT_LIGHT indicates the standard light weight.
				 */
				static WEIGHT_LIGHT: java.lang.Float;
				/**
				 * The Constant WEIGHT_DEMILIGHT indicates an intermediate weight between LIGHT and STANDARD.
				 */
				static WEIGHT_DEMILIGHT: java.lang.Float;
				/**
				 * The Constant WEIGHT_REGULAR indicates the standart weight.
				 */
				static WEIGHT_REGULAR: java.lang.Float;
				/**
				 * The Constant WEIGHT_SEMIBOLD indicates a semi weight of REGULAR.
				 */
				static WEIGHT_SEMIBOLD: java.lang.Float;
				/**
				 * The Constant WEIGHT_MEDIUM indicates average weight between the REGULAR and BOLD.
				 */
				static WEIGHT_MEDIUM: java.lang.Float;
				/**
				 * The Constant WEIGHT_DEMIBOLD indicates a lighter weight than BOLD.
				 */
				static WEIGHT_DEMIBOLD: java.lang.Float;
				/**
				 * The Constant WEIGHT_BOLD indicates the standard bold weight.
				 */
				static WEIGHT_BOLD: java.lang.Float;
				/**
				 * The Constant WEIGHT_HEAVY indicates a heavier weight than BOLD.
				 */
				static WEIGHT_HEAVY: java.lang.Float;
				/**
				 * The Constant WEIGHT_EXTRABOLD indicates an extra heavy weight.
				 */
				static WEIGHT_EXTRABOLD: java.lang.Float;
				/**
				 * The Constant WEIGHT_ULTRABOLD indicates the heaviest predefined weight.
				 */
				static WEIGHT_ULTRABOLD: java.lang.Float;
				/**
				 * The WIDTH text attribute.
				 */
				static WIDTH: java.awt.font.TextAttribute;
				/**
				 * The Constant WIDTH_CONDENSED indicates the most condensed predefined width.
				 */
				static WIDTH_CONDENSED: java.lang.Float;
				/**
				 * The Constant WIDTH_SEMI_CONDENSED indicates a semi condensed width.
				 */
				static WIDTH_SEMI_CONDENSED: java.lang.Float;
				/**
				 * The Constant WIDTH_REGULAR indicates the standard width.
				 */
				static WIDTH_REGULAR: java.lang.Float;
				/**
				 * The Constant WIDTH_SEMI_EXTENDED indicates semi extended width.
				 */
				static WIDTH_SEMI_EXTENDED: java.lang.Float;
				/**
				 * The Constant WIDTH_EXTENDED indicates extended width.
				 */
				static WIDTH_EXTENDED: java.lang.Float;
				static class: java.lang.Class<java.awt.font.TextAttribute>;
			}
		}
	}
}
declare module native {
	export class Array<T> {
		length: number;
		[index: number]: T;
	}
}
declare module org {
	export module apache {
		export module harmony {
			export module security {
				export module pkcs7 {
					/**
					 * As defined in PKCS #7: Cryptographic Message Syntax Standard (http://www.ietf.org/rfc/rfc2315.txt): authenticatedAttributes is a set of attributes that are signed (i.e., authenticated) by the signer
					 */
					export class AuthenticatedAttributes extends java.lang.Object {
						static ASN1: org.apache.harmony.security.asn1.ASN1SetOf;
						static class: java.lang.Class<org.apache.harmony.security.pkcs7.AuthenticatedAttributes>;
						public getAttributes(): java.util.IList<org.apache.harmony.security.x501.AttributeTypeAndValue>;
						/**
						 * Returns ASN.1 encoded form of this authenticatedAttributes.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * As defined in PKCS #7: Cryptographic Message Syntax Standard (http://www.ietf.org/rfc/rfc2315.txt)
					 */
					export class SignerInfo extends java.lang.Object {
						static ISSUER_AND_SERIAL_NUMBER: org.apache.harmony.security.asn1.ASN1Sequence;
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.pkcs7.SignerInfo>;
						public getIssuer(): javax.security.auth.x500.X500Principal;
						public getSerialNumber(): java.math.BigInteger;
						public getDigestAlgorithm(): string;
						public getDigestEncryptionAlgorithm(): string;
						public getAuthenticatedAttributes(): java.util.IList<org.apache.harmony.security.x501.AttributeTypeAndValue>;
						public getEncodedAuthenticatedAttributes(): native.Array<number>;
						public getEncryptedDigest(): native.Array<number>;
						public toString(): string;
					}
					/**
					 * As defined in PKCS #7: Cryptographic Message Syntax Standard (http://www.ietf.org/rfc/rfc2315.txt)
					 */
					export class SignedData extends java.lang.Object {
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.pkcs7.SignedData>;
						public getCertificates(): java.util.IList<org.apache.harmony.security.x509.Certificate>;
						public getCRLs(): java.util.IList<org.apache.harmony.security.x509.CertificateList>;
						public getSignerInfos(): java.util.IList<org.apache.harmony.security.pkcs7.SignerInfo>;
						public getVersion(): number;
						public toString(): string;
					}
					/**
					 * As defined in PKCS #7: Cryptographic Message Syntax Standard (http://www.ietf.org/rfc/rfc2315.txt)
					 */
					export class ContentInfo extends java.lang.Object {
						static DATA: native.Array<number>;
						static SIGNED_DATA: native.Array<number>;
						static ENVELOPED_DATA: native.Array<number>;
						static SIGNED_AND_ENVELOPED_DATA: native.Array<number>;
						static DIGESTED_DATA: native.Array<number>;
						static ENCRYPTED_DATA: native.Array<number>;
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.pkcs7.ContentInfo>;
						public getSignedData(): org.apache.harmony.security.pkcs7.SignedData;
						public getContent(): any;
						public getContentType(): native.Array<number>;
						public getEncoded(): native.Array<number>;
						public toString(): string;
					}
				}
				export module x509 {
					/**
					 * CRL's Issuing Distribution Point Extension (OID = 2.5.29.28). <pre> id-ce-issuingDistributionPoint OBJECT IDENTIFIER ::= { id-ce 28 }
					 */
					export class IssuingDistributionPoint extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Constructs the object on the base of its distributionPoint and onlySomeReasons fields values.
						 */
						constructor(distributionPoint: org.apache.harmony.security.x509.DistributionPointName, onlySomeReasons: org.apache.harmony.security.x509.ReasonFlags);
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.IssuingDistributionPoint>;
						/**
						 * Creates the extension object on the base of its encoded form.
						 */
						public static decode(encoding: native.Array<number>): org.apache.harmony.security.x509.IssuingDistributionPoint;
						/**
						 * Sets the value of onlyContainsUserCerts field of the structure.
						 */
						public setOnlyContainsUserCerts(onlyContainsUserCerts: boolean): void;
						/**
						 * Sets the value of onlyContainsCACerts field of the structure.
						 */
						public setOnlyContainsCACerts(onlyContainsCACerts: boolean): void;
						/**
						 * Sets the value of indirectCRL field of the structure.
						 */
						public setIndirectCRL(indirectCRL: boolean): void;
						/**
						 * Sets the value of onlyContainsAttributeCerts field of the structure.
						 */
						public setOnlyContainsAttributeCerts(onlyContainsAttributeCerts: boolean): void;
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * CRL Entry's Invalidity Date Extension (OID = 2.5.29.24). <pre> id-ce-invalidityDate OBJECT IDENTIFIER ::= { id-ce 24 }
					 */
					export class InvalidityDate extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Constructs the object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.InvalidityDate>;
						/**
						 * Returns the invalidity date.
						 */
						public getDate(): java.util.Date;
						/**
						 * Returns ASN.1 encoded form of this X.509 InvalidityDate value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with PolicyInformation structure which is a subpart of certificatePolicies (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class PolicyInformation extends java.lang.Object {
						constructor(policyIdentifier: string);
						/**
						 * ASN.1 DER X.509 PolicyInformation encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.PolicyInformation>;
						/**
						 * Returns the value of policyIdentifier field of the structure.
						 */
						public getPolicyIdentifier(): string;
						/**
						 * Returns ASN.1 encoded form of this X.509 PolicyInformation value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * CRL Entry's CRL Number Extension (OID = 2.5.29.20). <pre> id-ce-cRLNumber OBJECT IDENTIFIER ::= { id-ce 20 }
					 */
					export class CRLNumber extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Constructs the object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.CRLNumber>;
						/**
						 * Returns the invalidity date.
						 */
						public getNumber(): java.math.BigInteger;
						/**
						 * Returns ASN.1 encoded form of this X.509 CRLNumber value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the SubjectInfoAccessSyntax and AuthorityInfoAccessSyntax which are a part of X.509 framework (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class InfoAccessSyntax extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * ASN.1 DER X.509 AuthorityInfoAccessSyntax and SubjectInfoAccessSyntax encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.InfoAccessSyntax>;
						/**
						 * Returns ASN.1 encoded form of this X.509 InfoAccessSyntax.
						 */
						public getEncoded(): native.Array<number>;
						public static decode(encoding: native.Array<number>): org.apache.harmony.security.x509.InfoAccessSyntax;
						public toString(): string;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * CRL Entry's Certificate Issuer Extension (OID = 2.5.29.29). It is a CRL entry extension and contains the GeneralNames describing the issuer of revoked certificate. Its ASN.1 notation is as follows: <pre> id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
					 */
					export class CertificateIssuer extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Creates an object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.CertificateIssuer>;
						public getIssuer(): javax.security.auth.x500.X500Principal;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * Key Usage Extension (OID = 2.5.29.15).
					 */
					export class KeyUsage extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Creates the extension object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						static class: java.lang.Class<org.apache.harmony.security.x509.KeyUsage>;
						public getKeyUsage(): native.Array<boolean>;
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * Class represents the work with the following X.509 structure: (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class Time extends java.lang.Object {
						constructor();
						static ASN1: org.apache.harmony.security.asn1.ASN1Choice;
						static class: java.lang.Class<org.apache.harmony.security.x509.Time>;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with Authority Key Identifier Extension (OID = 2.5.29.35). (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class AuthorityKeyIdentifier extends org.apache.harmony.security.x509.ExtensionValue {
						constructor(keyIdentifier: native.Array<number>, authorityCertIssuer: org.apache.harmony.security.x509.GeneralNames, authorityCertSerialNumber: java.math.BigInteger);
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.AuthorityKeyIdentifier>;
						public static decode(encoding: native.Array<number>): org.apache.harmony.security.x509.AuthorityKeyIdentifier;
						/**
						 * The key identifier for the authority.
						 */
						public getKeyIdentifier(): native.Array<number>;
						/**
						 * The GeneralNames for this authority key identifier.
						 */
						public getAuthorityCertIssuer(): org.apache.harmony.security.x509.GeneralNames;
						/**
						 * The serial number of the certificate identified by this authority key identifier.
						 */
						public getAuthorityCertSerialNumber(): java.math.BigInteger;
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the Extensions part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class Extensions extends java.lang.Object {
						/**
						 * Constructs an object representing the value of Extensions.
						 */
						constructor();
						constructor(extensions: java.util.IList<org.apache.harmony.security.x509.Extension>);
						/**
						 * Custom X.509 Extensions decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.Extensions>;
						public size(): number;
						/**
						 * Returns the list of critical extensions.
						 */
						public getCriticalExtensions(): java.util.ISet<string>;
						/**
						 * Returns the list of critical extensions.
						 */
						public getNonCriticalExtensions(): java.util.ISet<string>;
						public hasUnsupportedCritical(): boolean;
						/**
						 * Returns the values of extensions.
						 */
						public getExtensionByOID(oid: string): org.apache.harmony.security.x509.Extension;
						/**
						 * Returns the value of Key Usage extension (OID == 2.5.29.15). The ASN.1 definition of Key Usage Extension is:
						 */
						public valueOfKeyUsage(): native.Array<boolean>;
						/**
						 * Returns the value of Extended Key Usage extension (OID == 2.5.29.37). The ASN.1 definition of Extended Key Usage Extension is:
						 */
						public valueOfExtendedKeyUsage(): java.util.IList<string>;
						/**
						 * Returns the value of Basic Constraints Extension (OID = 2.5.29.19). The ASN.1 definition of Basic Constraints Extension is:
						 */
						public valueOfBasicConstrains(): number;
						/**
						 * Returns the value of Subject Alternative Name (OID = 2.5.29.17). The ASN.1 definition for Subject Alternative Name is:
						 */
						public valueOfSubjectAlternativeName(): java.util.ICollection<java.util.IList<any>>;
						/**
						 * Returns the value of Issuer Alternative Name Extension (OID = 2.5.29.18). The ASN.1 definition for Issuer Alternative Name is:
						 */
						public valueOfIssuerAlternativeName(): java.util.ICollection<java.util.IList<any>>;
						/**
						 * Returns the value of Certificate Issuer Extension (OID = 2.5.29.29). It is a CRL entry extension and contains the GeneralNames describing the issuer of revoked certificate. Its ASN.1 notation is as follows: <pre> id-ce-certificateIssuer OBJECT IDENTIFIER ::= { id-ce 29 }
						 */
						public valueOfCertificateIssuerExtension(): javax.security.auth.x500.X500Principal;
						/**
						 * Returns ASN.1 encoded form of this X.509 Extensions value.
						 */
						public getEncoded(): native.Array<number>;
						public equals(other: any): boolean;
						public hashCode(): number;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
					}
					export class X509PublicKey extends java.lang.Object implements java.security.IPublicKey {
						constructor(algorithm: string, encoded: native.Array<number>, keyBytes: native.Array<number>);
						static class: java.lang.Class<org.apache.harmony.security.x509.X509PublicKey>;
						public getAlgorithm(): string;
						public getFormat(): string;
						public getEncoded(): native.Array<number>;
						public toString(): string;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the following structure which is a part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class SubjectPublicKeyInfo extends java.lang.Object {
						constructor(algID: org.apache.harmony.security.x509.AlgorithmIdentifier, subjectPublicKey: native.Array<number>);
						constructor(algID: org.apache.harmony.security.x509.AlgorithmIdentifier, subjectPublicKey: native.Array<number>, unused: number);
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.SubjectPublicKeyInfo>;
						/**
						 * Returns the value of algorithmIdentifier field of the structure.
						 */
						public getAlgorithmIdentifier(): org.apache.harmony.security.x509.AlgorithmIdentifier;
						/**
						 * Returns the value of subjectPublicKey field of the structure.
						 */
						public getSubjectPublicKey(): native.Array<number>;
						/**
						 * Returns ASN.1 encoded form of this X.509 SubjectPublicKeyInfo value.
						 */
						public getEncoded(): native.Array<number>;
						/**
						 * Returns The PublicKey corresponding to this SubjectPublicKeyInfo instance.
						 */
						public getPublicKey(): java.security.IPublicKey;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the Algorithm Identifier which is a part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class AlgorithmIdentifier extends java.lang.Object {
						constructor(algorithm: string);
						constructor(algorithm: string, parameters: native.Array<number>);
						/**
						 * Custom AlgorithmIdentifier DER encoder/decoder
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.AlgorithmIdentifier>;
						/**
						 * Returns the value of algorithm field of the structure.
						 */
						public getAlgorithm(): string;
						/**
						 * Returns the name of the algorithm corresponding to its OID. If there is no the such correspondence, algorithm OID is returned.
						 */
						public getAlgorithmName(): string;
						/**
						 * Returns the value of parameters field of the structure.
						 */
						public getParameters(): native.Array<number>;
						/**
						 * Returns ASN.1 encoded form of this X.509 AlgorithmIdentifier value.
						 */
						public getEncoded(): native.Array<number>;
						public equals(ai: any): boolean;
						public hashCode(): number;
						public dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * Distinguished Name Parser.
					 */
					export class DNParser extends java.lang.Object {
						/**
						 * @param dn - distinguished name string to be parsed
						 */
						constructor(dn: string);
						static class: java.lang.Class<org.apache.harmony.security.x509.DNParser>;
						/**
						 * Decodes a UTF-8 char.
						 */
						protected getUTF8(): string;
						/**
						 * Parses DN
						 */
						public parse(): java.util.IList<java.util.IList<org.apache.harmony.security.x501.AttributeTypeAndValue>>;
					}
					export module tsp {
						/**
						 * Corresponds to PKIFailureInfo structure. See RFC 3161 - Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP) http://www.ietf.org/rfc/rfc3161.txt)
						 */
						export enum PKIFailureInfo {
							BAD_ALG,
							BAD_REQUEST,
							BAD_DATA_FORMAT,
							TIME_NOT_AVAILABLE,
							UNACCEPTED_POLICY,
							UNACCEPTED_EXTENSION,
							ADD_INFO_NOT_AVAILABLE,
							SYSTEM_FAILURE
						}
						export module PKIFailureInfo {
							export function getMaxValue(): number;
							/**
							 * @param value 
							 */
							export function getInstance(value: number): org.apache.harmony.security.x509.tsp.PKIFailureInfo;
						}
						/**
						 * As defined in Time-Stamp Protocol (TSP) (http://www.ietf.org/rfc/rfc3161.txt)
						 */
						export class TimeStampReq extends java.lang.Object {
							constructor(version: number, messageImprint: org.apache.harmony.security.x509.tsp.MessageImprint, reqPolicy: string, nonce: java.math.BigInteger, certReq: java.lang.Boolean, extensions: org.apache.harmony.security.x509.Extensions);
							constructor(version: number, messageImprint: org.apache.harmony.security.x509.tsp.MessageImprint, reqPolicy: string, nonce: java.math.BigInteger, certReq: boolean, extensions: org.apache.harmony.security.x509.Extensions);
							static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
							static class: java.lang.Class<org.apache.harmony.security.x509.tsp.TimeStampReq>;
							public toString(): string;
							/**
							 * Returns ASN.1 encoded form of this TimeStampReq.
							 */
							public getEncoded(): native.Array<number>;
							public getCertReq(): boolean;
							public getExtensions(): org.apache.harmony.security.x509.Extensions;
							public getMessageImprint(): org.apache.harmony.security.x509.tsp.MessageImprint;
							public getNonce(): java.math.BigInteger;
							public getReqPolicy(): string;
							public getVersion(): number;
						}
						/**
						 * As defined in Time-Stamp Protocol (TSP) (http://www.ietf.org/rfc/rfc3161.txt)
						 */
						export class TSTInfo extends java.lang.Object {
							constructor(version: number, policy: string, messageImprint: org.apache.harmony.security.x509.tsp.MessageImprint, serialNumber: java.math.BigInteger, genTime: java.util.Date, accuracy: native.Array<number>, ordering: java.lang.Boolean, nonce: java.math.BigInteger, tsa: org.apache.harmony.security.x509.GeneralName, extensions: org.apache.harmony.security.x509.Extensions);
							constructor(version: number, policy: string, messageImprint: org.apache.harmony.security.x509.tsp.MessageImprint, serialNumber: java.math.BigInteger, genTime: java.util.Date, accuracy: native.Array<number>, ordering: boolean, nonce: java.math.BigInteger, tsa: org.apache.harmony.security.x509.GeneralName, extensions: org.apache.harmony.security.x509.Extensions);
							/**
							 * Accuracy ::= SEQUENCE { seconds INTEGER OPTIONAL, millis [0] INTEGER (1..999) OPTIONAL, micros [1] INTEGER (1..999) OPTIONAL }
							 */
							static ACCURACY: org.apache.harmony.security.asn1.ASN1Sequence;
							static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
							static class: java.lang.Class<org.apache.harmony.security.x509.tsp.TSTInfo>;
							public toString(): string;
							public getAccuracy(): native.Array<number>;
							public getExtensions(): org.apache.harmony.security.x509.Extensions;
							public getGenTime(): java.util.Date;
							public getMessageImprint(): org.apache.harmony.security.x509.tsp.MessageImprint;
							public getNonce(): java.math.BigInteger;
							public getOrdering(): boolean;
							public getPolicy(): string;
							public getSerialNumber(): java.math.BigInteger;
							public getTsa(): org.apache.harmony.security.x509.GeneralName;
							public getVersion(): number;
						}
						/**
						 * Corresponds to PKIStatus structure. See RFC 3161 - Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP) http://www.ietf.org/rfc/rfc3161.txt)
						 */
						export enum PKIStatus {
							GRANTED,
							GRANTED_WITH_MODS,
							REJECTION,
							WAITING,
							REVOCATION_WARNING,
							REVOCATION_NOTIFICATION
						}
						export module PKIStatus {
							export function getInstance(status: number): org.apache.harmony.security.x509.tsp.PKIStatus;
						}
						/**
						 * As defined in Time-Stamp Protocol (TSP) (http://www.ietf.org/rfc/rfc3161.txt)
						 */
						export class PKIStatusInfo extends java.lang.Object {
							constructor(pKIStatus: org.apache.harmony.security.x509.tsp.PKIStatus, statusString: java.util.IList<any>, failInfo: org.apache.harmony.security.x509.tsp.PKIFailureInfo);
							static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
							static class: java.lang.Class<org.apache.harmony.security.x509.tsp.PKIStatusInfo>;
							public toString(): string;
							public getFailInfo(): org.apache.harmony.security.x509.tsp.PKIFailureInfo;
							public getStatus(): org.apache.harmony.security.x509.tsp.PKIStatus;
							public getStatusString(): java.util.IList<any>;
						}
						/**
						 * As defined in Time-Stamp Protocol (TSP) (http://www.ietf.org/rfc/rfc3161.txt)
						 */
						export class MessageImprint extends java.lang.Object {
							constructor(algId: org.apache.harmony.security.x509.AlgorithmIdentifier, hashedMessage: native.Array<number>);
							static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
							static class: java.lang.Class<org.apache.harmony.security.x509.tsp.MessageImprint>;
						}
						/**
						 * As defined in Time-Stamp Protocol (TSP) (http://www.ietf.org/rfc/rfc3161.txt)
						 */
						export class TimeStampResp extends java.lang.Object {
							constructor(status: org.apache.harmony.security.x509.tsp.PKIStatusInfo, timeStampToken: org.apache.harmony.security.pkcs7.ContentInfo);
							static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
							static class: java.lang.Class<org.apache.harmony.security.x509.tsp.TimeStampResp>;
							public toString(): string;
							public getStatus(): org.apache.harmony.security.x509.tsp.PKIStatusInfo;
							public getTimeStampToken(): org.apache.harmony.security.pkcs7.ContentInfo;
						}
					}
					/**
					 * Base class for extension value structures.
					 */
					export class ExtensionValue extends java.lang.Object {
						/**
						 * Default constructor.
						 */
						constructor();
						/**
						 * Creates the object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						static class: java.lang.Class<org.apache.harmony.security.x509.ExtensionValue>;
						/**
						 * Returns encoded form of the object.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						public dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with TBSCertList structure which is the part of X.509 CRL (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class TBSCertList extends java.lang.Object {
						/**
						 * X.509 TBSCertList encoder/decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.TBSCertList>;
						/**
						 * Returns the value of version field of the structure.
						 */
						public getVersion(): number;
						/**
						 * Returns the value of signature field of the structure.
						 */
						public getSignature(): org.apache.harmony.security.x509.AlgorithmIdentifier;
						/**
						 * Returns the value of issuer field of the structure.
						 */
						public getIssuer(): org.apache.harmony.security.x501.Name;
						/**
						 * Returns the value of thisUpdate field of the structure.
						 */
						public getThisUpdate(): java.util.Date;
						/**
						 * Returns the value of nextUpdate field of the structure.
						 */
						public getNextUpdate(): java.util.Date;
						/**
						 * Returns the value of revokedCertificates field of the structure.
						 */
						public getRevokedCertificates(): java.util.IList<org.apache.harmony.security.x509.TBSCertList.RevokedCertificate>;
						/**
						 * Returns the value of crlExtensions field of the structure.
						 */
						public getCrlExtensions(): org.apache.harmony.security.x509.Extensions;
						/**
						 * Returns ASN.1 encoded form of this X.509 TBSCertList value.
						 */
						public getEncoded(): native.Array<number>;
						public equals(other: any): boolean;
						public hashCode(): number;
						public dumpValue(sb: java.lang.StringBuilder): void;
					}
					export module TBSCertList {
						export class RevokedCertificate extends java.lang.Object {
							constructor(userCertificate: java.math.BigInteger, revocationDate: java.util.Date, crlEntryExtensions: org.apache.harmony.security.x509.Extensions);
							static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
							static class: java.lang.Class<org.apache.harmony.security.x509.TBSCertList.RevokedCertificate>;
							public getCrlEntryExtensions(): org.apache.harmony.security.x509.Extensions;
							public getUserCertificate(): java.math.BigInteger;
							public getRevocationDate(): java.util.Date;
							/**
							 * Returns the value of Certificate Issuer Extension, if it is presented.
							 */
							public getIssuer(): javax.security.auth.x500.X500Principal;
							public getEncoded(): native.Array<number>;
							public equals(rc: any): boolean;
							public hashCode(): number;
							public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						}
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the DistributionPoint structure which is the part of X.509 CRL (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class DistributionPoint extends java.lang.Object {
						constructor(distributionPoint: org.apache.harmony.security.x509.DistributionPointName, reasons: org.apache.harmony.security.x509.ReasonFlags, cRLIssuer: org.apache.harmony.security.x509.GeneralNames);
						/**
						 * Custom X.509 decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.DistributionPoint>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with TBSCertificate structure which is the part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class TBSCertificate extends java.lang.Object {
						constructor(version: number, serialNumber: java.math.BigInteger, signature: org.apache.harmony.security.x509.AlgorithmIdentifier, issuer: org.apache.harmony.security.x501.Name, validity: org.apache.harmony.security.x509.Validity, subject: org.apache.harmony.security.x501.Name, subjectPublicKeyInfo: org.apache.harmony.security.x509.SubjectPublicKeyInfo, issuerUniqueID: native.Array<boolean>, subjectUniqueID: native.Array<boolean>, extensions: org.apache.harmony.security.x509.Extensions);
						/**
						 * X.509 TBSCertificate encoder/decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.TBSCertificate>;
						/**
						 * Returns the value of version field of the structure.
						 */
						public getVersion(): number;
						/**
						 * Returns the value of serialNumber field of the structure.
						 */
						public getSerialNumber(): java.math.BigInteger;
						/**
						 * Returns the value of signature field of the structure.
						 */
						public getSignature(): org.apache.harmony.security.x509.AlgorithmIdentifier;
						/**
						 * Returns the value of issuer field of the structure.
						 */
						public getIssuer(): org.apache.harmony.security.x501.Name;
						/**
						 * Returns the value of validity field of the structure.
						 */
						public getValidity(): org.apache.harmony.security.x509.Validity;
						/**
						 * Returns the value of subject field of the structure.
						 */
						public getSubject(): org.apache.harmony.security.x501.Name;
						/**
						 * Returns the value of subjectPublicKeyInfo field of the structure.
						 */
						public getSubjectPublicKeyInfo(): org.apache.harmony.security.x509.SubjectPublicKeyInfo;
						/**
						 * Returns the value of issuerUniqueID field of the structure.
						 */
						public getIssuerUniqueID(): native.Array<boolean>;
						/**
						 * Returns the value of subjectUniqueID field of the structure.
						 */
						public getSubjectUniqueID(): native.Array<boolean>;
						/**
						 * Returns the value of extensions field of the structure.
						 */
						public getExtensions(): org.apache.harmony.security.x509.Extensions;
						/**
						 * Returns ASN.1 encoded form of this X.509 TBSCertificate value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * Extended Key Usage Extension (OID == 2.5.29.37).
					 */
					export class ExtendedKeyUsage extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Creates the extension object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.ExtendedKeyUsage>;
						/**
						 * Returns the list of string representation of OIDs corresponding to key purpose IDs.
						 */
						public getExtendedKeyUsage(): java.util.IList<string>;
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the following certificate extension (OID: 2.5.29.16) (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class PrivateKeyUsagePeriod extends java.lang.Object {
						constructor(notBeforeDate: java.util.Date, notAfterDate: java.util.Date);
						/**
						 * ASN.1 DER X.509 PrivateKeyUsagePeriod encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.PrivateKeyUsagePeriod>;
						/**
						 * Returns the value of notBefore field of the structure.
						 */
						public getNotBefore(): java.util.Date;
						/**
						 * Returns the value of notAfter field of the structure.
						 */
						public getNotAfter(): java.util.Date;
						/**
						 * Returns ASN.1 encoded form of this X.509 PrivateKeyUsagePeriod value.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the ORAddress structure which is a part of X.509 certificate: (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class ORAddress extends java.lang.Object {
						constructor();
						/**
						 * ASN.1 DER X.509 ORAddress encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.ORAddress>;
						/**
						 * Returns ASN.1 encoded form of this X.509 ORAddress value.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with PolicyConstraints structure which is a part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class PolicyConstraints extends org.apache.harmony.security.x509.ExtensionValue {
						constructor(requireExplicitPolicy: java.math.BigInteger, inhibitPolicyMapping: java.math.BigInteger);
						constructor(encoding: native.Array<number>);
						/**
						 * X.509 PolicyConstraints encoder/decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.PolicyConstraints>;
						/**
						 * Returns ASN.1 encoded form of this X.509 PolicyConstraints value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the following structure which is a part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class NameConstraints extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Constructs <code>NameConstrains</code> object
						 */
						constructor(permittedSubtrees: org.apache.harmony.security.x509.GeneralSubtrees, excludedSubtrees: org.apache.harmony.security.x509.GeneralSubtrees);
						/**
						 * X.509 NameConstraints encoder/decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.NameConstraints>;
						public static decode(encoding: native.Array<number>): org.apache.harmony.security.x509.NameConstraints;
						public getEncoded(): native.Array<number>;
						/**
						 * Apply the name restrictions specified by this NameConstraints instance to the subject distinguished name and subject alternative names of specified X509Certificate. Restrictions apply only if specified name form is present in the certificate. The restrictions are applied according the RFC 3280 (see 4.2.1.11 Name Constraints), excepting that restrictions are applied and to CA certificates, and to certificates which issuer and subject names the same (i.e. method does not check if it CA's certificate or not, or if the names differ or not. This check if it is needed should be done by caller before calling this method).
						 * @param cert X.509 Certificate to be checked.
						 */
						public isAcceptable(cert: java.security.cert.X509Certificate): boolean;
						/**
						 * Check if this list of names is acceptable according to this NameConstraints object.
						 */
						public isAcceptable(names: java.util.IList<org.apache.harmony.security.x509.GeneralName>): boolean;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * InhibitAnyPolicy Certificate Extension (OID = 2.5.29.54) Its ASN.1 notation is as follows: <pre> id-ce-inhibitAnyPolicy OBJECT IDENTIFIER ::= { id-ce 54 }
					 */
					export class InhibitAnyPolicy extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Creates an object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						static class: java.lang.Class<org.apache.harmony.security.x509.InhibitAnyPolicy>;
						/**
						 * Returns ASN.1 encoded form of the object.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the following part of X.509 CRL (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class ReasonFlags extends java.lang.Object {
						/**
						 * Creates the extension object corresponding to the given flags.
						 */
						constructor(flags: native.Array<boolean>);
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1BitString;
						static class: java.lang.Class<org.apache.harmony.security.x509.ReasonFlags>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with OtherName structure which is a subpart of GeneralName (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class OtherName extends java.lang.Object {
						constructor(typeID: string, value: native.Array<number>);
						/**
						 * ASN.1 DER X.509 OtherName encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.OtherName>;
						/**
						 * Returns the value of value field of the structure.
						 */
						public getValue(): native.Array<number>;
						/**
						 * Returns ASN.1 encoded form of this X.509 OtherName value.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the X.509 CRL. Its ASN notation is as follows (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class CertificateList extends java.lang.Object {
						constructor(tbsCertList: org.apache.harmony.security.x509.TBSCertList, signatureAlgorithm: org.apache.harmony.security.x509.AlgorithmIdentifier, signatureValue: native.Array<number>);
						/**
						 * X.509 CertList encoder/decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.CertificateList>;
						/**
						 * Returns the value of tbsCertList field of the structure.
						 */
						public getTbsCertList(): org.apache.harmony.security.x509.TBSCertList;
						/**
						 * Returns the value of signatureValue field of the structure.
						 */
						public getSignatureValue(): native.Array<number>;
						public toString(): string;
						/**
						 * Returns ASN.1 encoded form of this X.509 TBSCertList value.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the DistributionPointName structure which is the part of X.509 CRL (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class DistributionPointName extends java.lang.Object {
						constructor(fullName: org.apache.harmony.security.x509.GeneralNames);
						constructor(nameRelativeToCRLIssuer: org.apache.harmony.security.x501.Name);
						static ASN1: org.apache.harmony.security.asn1.ASN1Choice;
						static class: java.lang.Class<org.apache.harmony.security.x509.DistributionPointName>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the GeneralSubtrees structure which is a part of X.509 certificate: (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class GeneralSubtrees extends java.lang.Object {
						constructor(generalSubtrees: java.util.IList<org.apache.harmony.security.x509.GeneralSubtree>);
						/**
						 * ASN.1 DER X.509 GeneralSubtrees encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.GeneralSubtrees>;
						/**
						 * Returns the list of values of subtrees.
						 */
						public getSubtrees(): java.util.IList<org.apache.harmony.security.x509.GeneralSubtree>;
						/**
						 * Returns ASN.1 encoded form of this X.509 AlgorithmIdentifier value.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * /** The class encapsulates the ASN.1 DER decoding work with PolicyQualifierInfo structure (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class PolicyQualifierInfo extends java.lang.Object {
						constructor();
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.PolicyQualifierInfo>;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the following structure which is a subpart of GeneralName (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class EDIPartyName extends java.lang.Object {
						/**
						 * ASN.1 DER X.509 EDIPartyName encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.EDIPartyName>;
						/**
						 * Returns ASN.1 encoded form of this X.509 EDIPartyName value.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * Subject Key Identifier Extension (OID = 2.5.29.14).
					 */
					export class SubjectKeyIdentifier extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Creates the object on the base of the value of key identifier.
						 */
						constructor(keyIdentifier: native.Array<number>);
						static class: java.lang.Class<org.apache.harmony.security.x509.SubjectKeyIdentifier>;
						/**
						 * Creates an object on the base of its encoded form.
						 */
						public static decode(encoding: native.Array<number>): org.apache.harmony.security.x509.SubjectKeyIdentifier;
						/**
						 * The key identifier for this subject.
						 */
						public getKeyIdentifier(): native.Array<number>;
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * CRL Entry's Reason Code Extension (OID = 2.5.29.21). <pre> id-ce-cRLReason OBJECT IDENTIFIER ::= { id-ce 21 }
					 */
					export class ReasonCode extends org.apache.harmony.security.x509.ExtensionValue {
						constructor(encoding: native.Array<number>);
						static UNSPECIFIED: number;
						static KEY_COMPROMISE: number;
						static CA_COMPROMISE: number;
						static AFFILIATION_CHANGED: number;
						static SUPERSEDED: number;
						static CESSATION_OF_OPERATION: number;
						static CERTIFICATE_HOLD: number;
						static REMOVE_FROM_CRL: number;
						static PRIVILEGE_WITHDRAWN: number;
						static AA_COMPROMISE: number;
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.ReasonCode>;
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * This class implements the values of Subject Alternative Name (OID is 2.5.29.17) and Issuer Alternative Name extensions (OID is 2.5.29.18).<br> For more information about these extensions see RFC 3280 at http://www.ietf.org/rfc/rfc3280.txt
					 */
					export class AlternativeName extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Creates the extension object on the base of its encoded form.
						 * @param which specifies which alternative names are given
						 * @param encoding 
						 */
						constructor(which: boolean, encoding: native.Array<number>);
						static ISSUER: boolean;
						static SUBJECT: boolean;
						static class: java.lang.Class<org.apache.harmony.security.x509.AlternativeName>;
						/**
						 * Returns ASN.1 encoded form of this X.509 AlternativeName value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the Extension part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class Extension extends java.lang.Object {
						constructor(extnID: string, critical: boolean, extnValueObject: org.apache.harmony.security.x509.ExtensionValue);
						constructor(extnID: string, critical: boolean, extnValue: native.Array<number>);
						constructor(extnID: native.Array<number>, critical: boolean, extnValue: native.Array<number>);
						constructor(extnID: string, extnValue: native.Array<number>);
						constructor(extnID: native.Array<number>, extnValue: native.Array<number>);
						static CRITICAL: boolean;
						static NON_CRITICAL: boolean;
						/**
						 * X.509 Extension encoder/decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.Extension>;
						/**
						 * Returns the value of extnID field of the structure.
						 */
						public getExtnID(): string;
						/**
						 * Returns the value of critical field of the structure.
						 */
						public getCritical(): boolean;
						/**
						 * Returns the value of extnValue field of the structure.
						 */
						public getExtnValue(): native.Array<number>;
						/**
						 * Returns the raw (undecoded octet string) value of extnValue field of the structure.
						 */
						public getRawExtnValue(): native.Array<number>;
						/**
						 * Returns ASN.1 encoded form of this X.509 Extension value.
						 */
						public getEncoded(): native.Array<number>;
						public equals(ext: any): boolean;
						public hashCode(): number;
						public getDecodedExtensionValue(): org.apache.harmony.security.x509.ExtensionValue;
						public getKeyUsageValue(): org.apache.harmony.security.x509.KeyUsage;
						public getBasicConstraintsValue(): org.apache.harmony.security.x509.BasicConstraints;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the CRL Distribution Points which is the part of X.509 Certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class CRLDistributionPoints extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Custom X.509 decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.CRLDistributionPoints>;
						public getEncoded(): native.Array<number>;
						public static decode(encoding: native.Array<number>): org.apache.harmony.security.x509.CRLDistributionPoints;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with Validity structure which is the part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class Validity extends java.lang.Object {
						constructor(notBefore: java.util.Date, notAfter: java.util.Date);
						/**
						 * ASN.1 DER X.509 Validity encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.Validity>;
						/**
						 * Returns the value of notBefore field of the structure.
						 */
						public getNotBefore(): java.util.Date;
						/**
						 * Returns the value of notAfter field of the structure.
						 */
						public getNotAfter(): java.util.Date;
						/**
						 * Returns ASN.1 encoded form of this X.509 Validity value.
						 */
						public getEncoded(): native.Array<number>;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the GeneralNames structure which is a part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class GeneralNames extends java.lang.Object {
						constructor();
						constructor(generalNames: java.util.IList<org.apache.harmony.security.x509.GeneralName>);
						/**
						 * ASN.1 DER X.509 GeneralNames encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.GeneralNames>;
						/**
						 * Returns the list of values.
						 */
						public getNames(): java.util.IList<org.apache.harmony.security.x509.GeneralName>;
						/**
						 * Returns the collection of pairs: (Integer (tag), Object (name value))*
						 */
						public getPairsList(): java.util.ICollection<java.util.IList<any>>;
						public addName(name: org.apache.harmony.security.x509.GeneralName): void;
						/**
						 * Returns ASN.1 encoded form of this X.509 GeneralNames value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the AccessDescription which is a part of X.509 framework (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class AccessDescription extends java.lang.Object {
						/**
						 * Custom AccessDescription DER encoder/decoder
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.AccessDescription>;
						/**
						 * Returns ASN.1 encoded form of this X.509 AccessDescription.
						 */
						public getEncoded(): native.Array<number>;
						public toString(): string;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with Certificate Policies structure which is a part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class CertificatePolicies extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Constructs an object representing the value of CertificatePolicies.
						 */
						constructor();
						/**
						 * ASN.1 DER X.509 CertificatePolicies encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.CertificatePolicies>;
						public static decode(encoding: native.Array<number>): org.apache.harmony.security.x509.CertificatePolicies;
						/**
						 * Returns the values of policyInformation field of the structure.
						 */
						public getPolicyInformations(): java.util.IList<org.apache.harmony.security.x509.PolicyInformation>;
						public addPolicyInformation(policyInformation: org.apache.harmony.security.x509.PolicyInformation): org.apache.harmony.security.x509.CertificatePolicies;
						/**
						 * Returns ASN.1 encoded form of this X.509 CertificatePolicies value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the GeneralSubtree structure which is a part of X.509 certificate: (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class GeneralSubtree extends java.lang.Object {
						constructor(base: org.apache.harmony.security.x509.GeneralName, minimum: number, maximum: number);
						/**
						 * ASN.1 DER X.509 GeneralSubtree encoder/decoder class.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.GeneralSubtree>;
						/**
						 * Returns the value of base field of the structure.
						 */
						public getBase(): org.apache.harmony.security.x509.GeneralName;
						/**
						 * Returns ASN.1 encoded form of this X.509 GeneralSubtree value.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the GeneralName structure which is a part of X.509 certificate (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class GeneralName extends java.lang.Object {
						/**
						 * Makes the GeneralName object from the tag type and corresponding well established string representation of the name value. The String representation of [7] iPAddress is such as: For IP v4, as specified in RFC 791, the address must contain exactly 4 byte component. For IP v6, as specified in RFC 1883, the address must contain exactly 16 byte component. If GeneralName structure is used as a part of Name Constraints extension, to represent an address range the number of address component is doubled (to 8 and 32 bytes respectively). Note that the names: [0] otherName, [3] x400Address, [5] ediPartyName have no the string representation, so exception will be thrown. To make the GeneralName object with such names use another constructor.
						 * @param tag is an integer which value corresponds to the name type.
						 * @param name is a name value corresponding to the tag.
						 */
						constructor(tag: number, name: string);
						constructor(name: org.apache.harmony.security.x509.OtherName);
						constructor(name: org.apache.harmony.security.x509.ORAddress);
						constructor(name: org.apache.harmony.security.x501.Name);
						constructor(name: org.apache.harmony.security.x509.EDIPartyName);
						/**
						 * Constructor for type [7] iPAddress. name is an array of bytes such as: For IP v4, as specified in RFC 791, the address must contain exactly 4 byte component. For IP v6, as specified in RFC 1883, the address must contain exactly 16 byte component. If GeneralName structure is used as a part of Name Constraints extension, to represent an address range the number of address component is doubled (to 8 and 32 bytes respectively).
						 */
						constructor(name: native.Array<number>);
						/**
						 * Constructs an object representing the value of GeneralName.
						 * @param tag is an integer which value corresponds
						 * @param name is a DER encoded for of the name value
						 */
						constructor(tag: number, name: native.Array<number>);
						/**
						 * The values of the tags of fields
						 */
						static OTHER_NAME: number;
						static RFC822_NAME: number;
						static DNS_NAME: number;
						static X400_ADDR: number;
						static DIR_NAME: number;
						static EDIP_NAME: number;
						static UR_ID: number;
						static IP_ADDR: number;
						static REG_ID: number;
						static ASN1: org.apache.harmony.security.asn1.ASN1Choice;
						static class: java.lang.Class<org.apache.harmony.security.x509.GeneralName>;
						/**
						 * Returns the tag of the name in the structure
						 */
						public getTag(): number;
						public getName(): any;
						public equals(other: any): boolean;
						public hashCode(): number;
						/**
						 * Checks if the other general name is acceptable by this object. The name is acceptable if it has the same type name and its name value is equal to name value of this object. Also the name is acceptable if this general name object is a part of name constraints and the specified name is satisfied the restriction provided by this object (for more detail see section 4.2.1.11 of rfc 3280). Note that for X400Address [3] check procedure is unclear so method just checks the equality of encoded forms. For otherName [0], ediPartyName [5], and registeredID [8] the check procedure if not defined by rfc 3280 and for names of these types this method also checks only for equality of encoded forms.
						 */
						public isAcceptable(gname: org.apache.harmony.security.x509.GeneralName): boolean;
						/**
						 * Gets a list representation of this GeneralName object. The first entry of the list is an Integer object representing the type of mane (0-8), and the second entry is a value of the name: string or ASN.1 DER encoded form depending on the type as follows: rfc822Name, dNSName, uniformResourceIdentifier names are returned as Strings, using the string formats for those types (rfc 3280) IP v4 address names are returned using dotted quad notation. IP v6 address names are returned in the form "p1:p2:...:p8", where p1-p8 are hexadecimal values representing the eight 16-bit pieces of the address. registeredID name are returned as Strings represented as a series of nonnegative integers separated by periods. And directory names (distinguished names) are returned in RFC 2253 string format. otherName, X400Address, ediPartyName returned as byte arrays containing the ASN.1 DER encoded form of the name.
						 */
						public getAsList(): java.util.IList<any>;
						public toString(): string;
						/**
						 * Returns ASN.1 encoded form of this X.509 GeneralName value.
						 */
						public getEncoded(): native.Array<number>;
						public getEncodedName(): native.Array<number>;
						/**
						 * Checks the correctness of the string representation of DNS name as specified in RFC 1034 p. 10 and RFC 1123 section 2.1.
						 */
						public static checkDNS(dns: string): void;
						/**
						 * Checks the correctness of the string representation of URI name. The correctness is checked as pointed out in RFC 3280 p. 34.
						 */
						public static checkURI(uri: string): void;
						/**
						 * Converts OID into array of ints.
						 */
						public static oidStrToInts(oid: string): native.Array<number>;
						/**
						 * Returns the bytes of the given IP address or masked IP address.
						 */
						public static ipStrToBytes(ip: string): native.Array<number>;
						/**
						 * Returns the string form of the given IP address. Addresses of length 2x the canonical length are treated as a route/mask pair.
						 */
						public static ipBytesToStr(ip: native.Array<number>): string;
					}
					/**
					 * Basic Constraints Extension (OID == 2.5.29.19).
					 */
					export class BasicConstraints extends org.apache.harmony.security.x509.ExtensionValue {
						/**
						 * Creates the extension object on the base of its encoded form.
						 */
						constructor(encoding: native.Array<number>);
						/**
						 * ASN.1 Encoder/Decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.x509.BasicConstraints>;
						public getPathLenConstraint(): number;
						/**
						 * Returns the encoded form of the object.
						 */
						public getEncoded(): native.Array<number>;
						public dumpValue(sb: java.lang.StringBuilder, prefix: string): void;
						dumpValue(sb: java.lang.StringBuilder): void;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the X.509 certificate. Its ASN notation is as follows (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class Certificate extends java.lang.Object {
						constructor(tbsCertificate: org.apache.harmony.security.x509.TBSCertificate, signatureAlgorithm: org.apache.harmony.security.x509.AlgorithmIdentifier, signatureValue: native.Array<number>);
						/**
						 * X.509 Certificate encoder/decoder.
						 */
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x509.Certificate>;
						/**
						 * Returns the value of tbsCertificate field of the structure.
						 */
						public getTbsCertificate(): org.apache.harmony.security.x509.TBSCertificate;
						/**
						 * Returns the value of signatureValue field of the structure.
						 */
						public getSignatureValue(): native.Array<number>;
						public toString(): string;
						/**
						 * Returns ASN.1 encoded form of this X.509 TBSCertificate value.
						 */
						public getEncoded(): native.Array<number>;
					}
				}
				export module pkcs8 {
					/**
					 * The class implements the ASN.1 DER encoding and decoding of the PKCS#8 PrivateKeyInfo having the following ASN.1 notation:
					 */
					export class PrivateKeyInfo extends java.lang.Object {
						constructor(version: number, privateKeyAlgorithm: org.apache.harmony.security.x509.AlgorithmIdentifier, privateKey: native.Array<number>, attributes: java.util.IList<any>);
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.pkcs8.PrivateKeyInfo>;
						public getVersion(): number;
						public getAlgorithmIdentifier(): org.apache.harmony.security.x509.AlgorithmIdentifier;
						public getAttributes(): java.util.IList<any>;
						/**
						 * Returns the OCTET STRING.
						 */
						public getPrivateKey(): native.Array<number>;
						/**
						 * Returns ASN.1 encoded form of this PrivateKeyInfo.
						 */
						public getEncoded(): native.Array<number>;
					}
				}
				export module fortress {
					/**
					 * This class contains information about all registered providers and preferred implementations for all "serviceName.algName".
					 */
					export class Services extends java.lang.Object {
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.fortress.Services>;
						/**
						 * Returns a copy of the registered providers as an array.
						 */
						public static getProviders(): native.Array<java.security.Provider>;
						/**
						 * Returns a copy of the registered providers as a list.
						 */
						public static getProvidersList(): java.util.IList<java.security.Provider>;
						/**
						 * Returns the provider with the specified name.
						 */
						public static getProvider(name: string): java.security.Provider;
						/**
						 * Inserts a provider at a specified 1-based position.
						 */
						public static insertProviderAt(provider: java.security.Provider, position: number): number;
						/**
						 * Removes the provider at the specified 1-based position.
						 */
						public static removeProvider(providerNumber: number): void;
						/**
						 * Adds information about provider services into HashMap.
						 */
						public static initServiceInfo(p: java.security.Provider): void;
						/**
						 * Returns true if services contain any provider information.
						 */
						public static isEmpty(): boolean;
						/**
						 * Looks up the requested service by type and algorithm. The service key should be provided in the same format used when registering a service with a provider, for example, "KeyFactory.RSA".
						 */
						public static getService(key: string): java.security.Provider.Service;
						/**
						 * Returns the default SecureRandom service description.
						 */
						public static getSecureRandomService(): java.security.Provider.Service;
						/**
						 * In addition to being used here when the list of providers changes, this method is also used by the Provider implementation to indicate that a provides list of services has changed.
						 */
						public static setNeedRefresh(): void;
						/**
						 * Returns the current cache version. This has the possible side effect of updating the cache if needed.
						 */
						public static getCacheVersion(): number;
					}
					export class SecurityAccess implements org.apache.harmony.security.fortress.ISecurityAccess {
						constructor(implementation: org.apache.harmony.security.fortress.ISecurityAccess);
						/**
						 * Access to Security.renumProviders()
						 */
						public renumProviders(): void;
						/**
						 * Access to Service.getAliases()
						 * @param s 
						 */
						public getAliases(s: java.security.Provider.Service): java.util.IList<string>;
						/**
						 * Access to Provider.getService(String type)
						 * @param p 
						 * @param type 
						 */
						public getService(p: java.security.Provider, type: string): java.security.Provider.Service;
					}
					interface ISecurityAccess {
						/**
						 * Access to Security.renumProviders()
						 */
						renumProviders(): void;
						/**
						 * Access to Service.getAliases()
						 * @param s 
						 */
						getAliases(s: java.security.Provider.Service): java.util.IList<string>;
						/**
						 * Access to Provider.getService(String type)
						 * @param p 
						 * @param type 
						 */
						getService(p: java.security.Provider, type: string): java.security.Provider.Service;
					}
					/**
					 * This class implements common functionality for Provider supplied classes. The usage pattern is to allocate static Engine instance per service type and synchronize on that instance during calls to getInstance and retreival of the selected Provider and Service Provider Interface (SPI) results. Retreiving the results with getProvider and getSpi sets the internal Engine values to null to prevent memory leaks.
					 */
					export class Engine extends java.lang.Object {
						/**
						 * Creates a Engine object
						 * @param service 
						 */
						constructor(service: string);
						/**
						 * Access to package visible api in java.security
						 */
						static door: org.apache.harmony.security.fortress.ISecurityAccess;
						static class: java.lang.Class<org.apache.harmony.security.fortress.Engine>;
						/**
						 * Finds the appropriate service implementation and returns an SpiAndProvider instance containing a reference to SPI and its Provider
						 */
						public getInstance(algorithm: string, param: any): org.apache.harmony.security.fortress.Engine.SpiAndProvider;
						/**
						 * Finds the appropriate service implementation and returns and instance of the class that implements corresponding Service Provider Interface.
						 */
						public getInstance(algorithm: string, provider: java.security.Provider, param: any): any;
					}
					export module Engine {
						export class ServiceCacheEntry extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.security.fortress.Engine.ServiceCacheEntry>;
						}
						export class SpiAndProvider extends java.lang.Object {
							spi: any;
							provider: java.security.Provider;
							static class: java.lang.Class<org.apache.harmony.security.fortress.Engine.SpiAndProvider>;
						}
					}
				}
				export module provider {
					export module cert {
						export class DRLCertFactory extends java.security.Provider {
							/**
							 * Constructs the instance of the certificate factory provider.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.cert.DRLCertFactory>;
						}
						/**
						 * Implementation of X509CRLEntry. It wraps the instance of org.apache.harmony.security.x509.TBSCertList.RevokedCertificate obtained during the decoding of TBSCertList substructure of the CertificateList structure which is an X.509 form of CRL. (see RFC 3280 at http://www.ietf.org/rfc/rfc3280.txt) Normally the instances of this class are constructed by involving X509CRLImpl object. org.apache.harmony.security.x509.TBSCertList org.apache.harmony.security.provider.cert.X509CRLImpl java.security.cert.X509CRLEntry
						 */
						export class X509CRLEntryImpl extends java.security.cert.X509CRLEntry {
							/**
							 * Creates an instance on the base of existing <code>TBSCertList.RevokedCertificate</code> object and information about the issuer of revoked certificate. If specified issuer is null, it is supposed that issuer of the revoked certificate is the same as for involving CRL.
							 */
							constructor(rcert: org.apache.harmony.security.x509.TBSCertList.RevokedCertificate, issuer: javax.security.auth.x500.X500Principal);
							static class: java.lang.Class<org.apache.harmony.security.provider.cert.X509CRLEntryImpl>;
							/**
							 *  java.security.cert.X509CRLEntry#getEncoded() method documentation for more info
							 */
							public getEncoded(): native.Array<number>;
							/**
							 *  java.security.cert.X509CRLEntry#getSerialNumber() method documentation for more info
							 */
							public getSerialNumber(): java.math.BigInteger;
							/**
							 *  java.security.cert.X509CRLEntry#getCertificateIssuer() method documentation for more info
							 */
							public getCertificateIssuer(): javax.security.auth.x500.X500Principal;
							/**
							 *  java.security.cert.X509CRLEntry#getRevocationDate() method documentation for more info
							 */
							public getRevocationDate(): java.util.Date;
							/**
							 *  java.security.cert.X509CRLEntry#hasExtensions() method documentation for more info
							 */
							public hasExtensions(): boolean;
							/**
							 *  java.security.cert.X509CRLEntry#toString() method documentation for more info
							 */
							public toString(): string;
							/**
							 *  java.security.cert.X509Extension#getNonCriticalExtensionOIDs() method documentation for more info
							 */
							public getNonCriticalExtensionOIDs(): java.util.ISet<any>;
							/**
							 *  java.security.cert.X509Extension#getCriticalExtensionOIDs() method documentation for more info
							 */
							public getCriticalExtensionOIDs(): java.util.ISet<any>;
							/**
							 *  java.security.cert.X509Extension#getExtensionValue(String) method documentation for more info
							 */
							public getExtensionValue(oid: string): native.Array<number>;
							/**
							 *  java.security.cert.X509Extension#hasUnsupportedCriticalExtension() method documentation for more info
							 */
							public hasUnsupportedCriticalExtension(): boolean;
						}
						/**
						 * X509 Certificate Factory Service Provider Interface Implementation. It supports CRLs and Certificates in (PEM) ASN.1 DER encoded form, and Certification Paths in PkiPath and PKCS7 formats. For Certificates and CRLs factory maintains the caching mechanisms allowing to speed up repeated Certificate/CRL generation. Cache
						 */
						export class X509CertFactoryImpl extends java.security.cert.CertificateFactorySpi {
							/**
							 * Default constructor. Creates the instance of Certificate Factory SPI ready for use.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.cert.X509CertFactoryImpl>;
							/**
							 * Generates the X.509 certificate from the data in the stream. The data in the stream can be either in ASN.1 DER encoded X.509 certificate, or PEM (Base64 encoding bounded by <code>"-----BEGIN CERTIFICATE-----"</code> at the beginning and <code>"-----END CERTIFICATE-----"</code> at the end) representation of the former encoded form.
							 */
							public engineGenerateCertificate(inStream: java.io.InputStream): java.security.cert.Certificate;
							/**
							 * Generates the collection of the certificates on the base of provided via input stream encodings. java.security.cert.CertificateFactorySpi#engineGenerateCertificates(InputStream) method documentation for more info
							 */
							public engineGenerateCertificates(inStream: java.io.InputStream): java.util.ICollection<any>;
							/**
							 *  java.security.cert.CertificateFactorySpi#engineGenerateCRL(InputStream) method documentation for more info
							 */
							public engineGenerateCRL(inStream: java.io.InputStream): java.security.cert.CRL;
							/**
							 *  java.security.cert.CertificateFactorySpi#engineGenerateCRLs(InputStream) method documentation for more info
							 */
							public engineGenerateCRLs(inStream: java.io.InputStream): java.util.ICollection<any>;
							/**
							 *  java.security.cert.CertificateFactorySpi#engineGenerateCertPath(InputStream) method documentation for more info
							 */
							public engineGenerateCertPath(inStream: java.io.InputStream): java.security.cert.CertPath;
							/**
							 *  java.security.cert.CertificateFactorySpi#engineGenerateCertPath(InputStream,String) method documentation for more info
							 */
							public engineGenerateCertPath(inStream: java.io.InputStream, encoding: string): java.security.cert.CertPath;
							/**
							 *  java.security.cert.CertificateFactorySpi#engineGenerateCertPath(List) method documentation for more info
							 */
							public engineGenerateCertPath(certificates: java.util.IList<any>): java.security.cert.CertPath;
							/**
							 *  java.security.cert.CertificateFactorySpi#engineGetCertPathEncodings() method documentation for more info
							 */
							public engineGetCertPathEncodings(): java.util.IIterator<string>;
						}
						export module X509CertFactoryImpl {
							export class RestoringInputStream extends java.io.InputStream {
								/**
								 * Creates the mark supporting wrapper over the stream.
								 */
								constructor(inStream: java.io.InputStream);
								static class: java.lang.Class<org.apache.harmony.security.provider.cert.X509CertFactoryImpl.RestoringInputStream>;
								public available(): number;
								public close(): void;
								public mark(readlimit: number): void;
								public markSupported(): boolean;
								/**
								 * Reads the byte from the stream. If mark has been set up and was not invalidated byte is read from the underlying stream and saved into the buffer. If the current read position has been reset to the marked position and there are remaining bytes in the buffer, the byte is taken from it. In the other cases (if mark has been invalidated, or there are no buffered bytes) the byte is taken directly from the underlying stream and it is returned without saving to the buffer.
								 */
								public read(): number;
								public read(b: native.Array<number>, off: number, len: number): number;
								public reset(): void;
								/**
								 * Equivalent to read(buffer, 0, buffer.length).
								 */
								read(buffer: native.Array<number>): number;
							}
						}
						/**
						 * This class is an implementation of X.509 CertPath. This implementation provides ability to create the instance of X.509 Certification Path by several means:<br>
						 */
						export class X509CertPathImpl extends java.security.cert.CertPath {
							/**
							 * Creates an instance of X.509 Certification Path over the specified list of certificates. CertificateException if some of the object in the list is not an instance of subclass of X509Certificate.
							 */
							constructor(certs: java.util.IList<any>);
							static PKI_PATH: number;
							static PKCS7: number;
							/**
							 * ASN.1 DER Encoder/Decoder for PkiPath structure.
							 */
							static ASN1: org.apache.harmony.security.asn1.ASN1SequenceOf;
							static class: java.lang.Class<org.apache.harmony.security.provider.cert.X509CertPathImpl>;
							/**
							 * Generates certification path object on the base of PkiPath encoded form provided via input stream. CertificateException if some problems occurred during the decoding.
							 */
							public static getInstance(input: java.io.InputStream): org.apache.harmony.security.provider.cert.X509CertPathImpl;
							/**
							 * Generates certification path object on the base of encoding provided via input stream. The format of provided encoded form is specified by parameter <code>encoding</code>. CertificateException if specified encoding form is not supported, or some problems occurred during the decoding.
							 */
							public static getInstance(input: java.io.InputStream, encoding: string): org.apache.harmony.security.provider.cert.X509CertPathImpl;
							/**
							 * Generates certification path object on the base of PkiPath encoded form provided via array of bytes. CertificateException if some problems occurred during the decoding.
							 */
							public static getInstance(input: native.Array<number>): org.apache.harmony.security.provider.cert.X509CertPathImpl;
							/**
							 * Generates certification path object on the base of encoding provided via array of bytes. The format of provided encoded form is specified by parameter <code>encoding</code>. CertificateException if specified encoding form is not supported, or some problems occurred during the decoding.
							 */
							public static getInstance(input: native.Array<number>, encoding: string): org.apache.harmony.security.provider.cert.X509CertPathImpl;
							/**
							 *  java.security.cert.CertPath#getCertificates() method documentation for more info
							 */
							public getCertificates(): java.util.IList<any>;
							/**
							 *  java.security.cert.CertPath#getEncoded() method documentation for more info
							 */
							public getEncoded(): native.Array<number>;
							/**
							 *  java.security.cert.CertPath#getEncoded(String) method documentation for more info
							 */
							public getEncoded(encoding: string): native.Array<number>;
							/**
							 *  java.security.cert.CertPath#getEncodings() method documentation for more info
							 */
							public getEncodings(): java.util.IIterator<any>;
						}
						/**
						 * This class is an implementation of X509Certificate. It wraps the instance of org.apache.harmony.security.x509.Certificate built on the base of provided ASN.1 DER encoded form of Certificate structure (as specified in RFC 3280 http://www.ietf.org/rfc/rfc3280.txt). org.apache.harmony.security.x509.Certificate java.security.cert.X509Certificate
						 */
						export class X509CertImpl extends java.security.cert.X509Certificate {
							/**
							 * Constructs the instance on the base of ASN.1 encoded form of X.509 certificate provided via stream parameter.
							 * @param input in input stream containing ASN.1 encoded form of certificate.
							 */
							constructor(input: java.io.InputStream);
							/**
							 * Constructs the instance on the base of existing Certificate object to be wrapped.
							 */
							constructor(certificate: org.apache.harmony.security.x509.Certificate);
							/**
							 * Constructs the instance on the base of ASN.1 encoded form of X.509 certificate provided via array of bytes.
							 * @param encoding byte array containing ASN.1 encoded form of certificate.
							 */
							constructor(encoding: native.Array<number>);
							static class: java.lang.Class<org.apache.harmony.security.provider.cert.X509CertImpl>;
							public checkValidity(): void;
							public checkValidity(date: java.util.Date): void;
							public getVersion(): number;
							public getSerialNumber(): java.math.BigInteger;
							public getIssuerDN(): java.security.IPrincipal;
							public getIssuerX500Principal(): javax.security.auth.x500.X500Principal;
							public getSubjectDN(): java.security.IPrincipal;
							public getSubjectX500Principal(): javax.security.auth.x500.X500Principal;
							public getNotBefore(): java.util.Date;
							public getNotAfter(): java.util.Date;
							public getTBSCertificate(): native.Array<number>;
							public getSignature(): native.Array<number>;
							public getSigAlgName(): string;
							public getSigAlgOID(): string;
							public getSigAlgParams(): native.Array<number>;
							public getIssuerUniqueID(): native.Array<boolean>;
							public getSubjectUniqueID(): native.Array<boolean>;
							public getKeyUsage(): native.Array<boolean>;
							public getExtendedKeyUsage(): java.util.IList<string>;
							public getBasicConstraints(): number;
							public getSubjectAlternativeNames(): java.util.ICollection<java.util.IList<any>>;
							/**
							 *  java.security.cert.X509Certificate#getIssuerAlternativeNames() method documentation for more information.
							 */
							public getIssuerAlternativeNames(): java.util.ICollection<java.util.IList<any>>;
							public getEncoded(): native.Array<number>;
							public getPublicKey(): java.security.IPublicKey;
							public toString(): string;
							public verify(key: java.security.IPublicKey): void;
							public verify(key: java.security.IPublicKey, sigProvider: string): void;
							public getNonCriticalExtensionOIDs(): java.util.ISet<string>;
							public getCriticalExtensionOIDs(): java.util.ISet<string>;
							public getExtensionValue(oid: string): native.Array<number>;
							public hasUnsupportedCriticalExtension(): boolean;
						}
						/**
						 * This class is an implementation of X509CRL. It wraps the instance of org.apache.harmony.security.x509.CertificateList built on the base of provided ASN.1 DER encoded form of CertificateList structure (as specified in RFC 3280 http://www.ietf.org/rfc/rfc3280.txt). Implementation supports work with indirect CRLs. org.apache.harmony.security.x509.CertificateList java.security.cert.X509CRL
						 */
						export class X509CRLImpl extends java.security.cert.X509CRL {
							/**
							 * Creates X.509 CRL by wrapping of the specified CertificateList object.
							 */
							constructor(crl: org.apache.harmony.security.x509.CertificateList);
							/**
							 * Creates X.509 CRL on the base of ASN.1 DER encoded form of the CRL (CertificateList structure described in RFC 3280) provided via input stream. CRLException if decoding errors occur.
							 */
							constructor(input: java.io.InputStream);
							/**
							 * Creates X.509 CRL on the base of ASN.1 DER encoded form of the CRL (CertificateList structure described in RFC 3280) provided via array of bytes. IOException if decoding errors occur.
							 */
							constructor(encoding: native.Array<number>);
							static class: java.lang.Class<org.apache.harmony.security.provider.cert.X509CRLImpl>;
							/**
							 *  java.security.cert.X509CRL#getEncoded() method documentation for more info
							 */
							public getEncoded(): native.Array<number>;
							/**
							 *  java.security.cert.X509CRL#getVersion() method documentation for more info
							 */
							public getVersion(): number;
							/**
							 *  java.security.cert.X509CRL#getIssuerDN() method documentation for more info
							 */
							public getIssuerDN(): java.security.IPrincipal;
							/**
							 *  java.security.cert.X509CRL#getIssuerX500Principal() method documentation for more info
							 */
							public getIssuerX500Principal(): javax.security.auth.x500.X500Principal;
							/**
							 *  java.security.cert.X509CRL#getThisUpdate() method documentation for more info
							 */
							public getThisUpdate(): java.util.Date;
							/**
							 *  java.security.cert.X509CRL#getNextUpdate() method documentation for more info
							 */
							public getNextUpdate(): java.util.Date;
							/**
							 * Searches for certificate in CRL. This method supports indirect CRLs: if CRL is indirect method takes into account serial number and issuer of the certificate, if CRL issued by CA (i.e. it is not indirect) search is done only by serial number of the specified certificate. java.security.cert.X509CRL#getRevokedCertificate(X509Certificate) method documentation for more info
							 */
							public getRevokedCertificate(certificate: java.security.cert.X509Certificate): java.security.cert.X509CRLEntry;
							/**
							 * Method searches for CRL entry with specified serial number. The method will search only certificate issued by CRL's issuer. java.security.cert.X509CRL#getRevokedCertificate(BigInteger) method documentation for more info
							 */
							public getRevokedCertificate(serialNumber: java.math.BigInteger): java.security.cert.X509CRLEntry;
							/**
							 *  java.security.cert.X509CRL#getRevokedCertificates() method documentation for more info
							 */
							public getRevokedCertificates(): java.util.ISet<any>;
							/**
							 *  java.security.cert.X509CRL#getTBSCertList() method documentation for more info
							 */
							public getTBSCertList(): native.Array<number>;
							/**
							 *  java.security.cert.X509CRL#getSignature() method documentation for more info
							 */
							public getSignature(): native.Array<number>;
							/**
							 *  java.security.cert.X509CRL#getSigAlgName() method documentation for more info
							 */
							public getSigAlgName(): string;
							/**
							 *  java.security.cert.X509CRL#getSigAlgOID() method documentation for more info
							 */
							public getSigAlgOID(): string;
							/**
							 *  java.security.cert.X509CRL#getSigAlgParams() method documentation for more info
							 */
							public getSigAlgParams(): native.Array<number>;
							/**
							 *  java.security.cert.X509CRL#verify(PublicKey key) method documentation for more info
							 */
							public verify(key: java.security.IPublicKey): void;
							/**
							 *  java.security.cert.X509CRL#verify(PublicKey key, String sigProvider) method documentation for more info
							 */
							public verify(key: java.security.IPublicKey, sigProvider: string): void;
							/**
							 *  java.security.cert.CRL#isRevoked(Certificate) method documentation for more info
							 */
							public isRevoked(cert: java.security.cert.Certificate): boolean;
							/**
							 *  java.security.cert.CRL#toString() method documentation for more info
							 */
							public toString(): string;
							/**
							 *  java.security.cert.X509Extension#getNonCriticalExtensionOIDs() method documentation for more info
							 */
							public getNonCriticalExtensionOIDs(): java.util.ISet<any>;
							/**
							 *  java.security.cert.X509Extension#getCriticalExtensionOIDs() method documentation for more info
							 */
							public getCriticalExtensionOIDs(): java.util.ISet<any>;
							/**
							 *  java.security.cert.X509Extension#getExtensionValue(String) method documentation for more info
							 */
							public getExtensionValue(oid: string): native.Array<number>;
							/**
							 *  java.security.cert.X509Extension#hasUnsupportedCriticalExtension() method documentation for more info
							 */
							public hasUnsupportedCriticalExtension(): boolean;
						}
						/**
						 * The caching mechanism designed to speed up the process of Certificates/CRLs generation in the case of their repeated generation.
						 */
						export class Cache extends java.lang.Object {
							/**
							 * Creates the Cache object.
							 * @param pref_size specifies how many leading/trailing bytes of object's
							 * @param size capacity of the cache to be created.
							 */
							constructor(pref_size: number, size: number);
							/**
							 * Creates the Cache object of size of 9.
							 * @param pref_size specifies how many leading/trailing bytes of object's
							 */
							constructor(pref_size: number);
							/**
							 * Creates the Cache object of size of 9.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.cert.Cache>;
							/**
							 * Returns the hash code for the array. This code is used to predetermine whether the object was built on the base of the similar encoding or not (by means of <code>contains(long)</code> method), to exactly determine whether object is contained in the cache or not, and to put the object in the cache. Note: parameter array should be of length not less than specified by <code>prefix_size</code> (default 28)
							 * @param arr the byte array containing at least prefix_size leading bytes
							 */
							public getHash(arr: native.Array<number>): any;
							/**
							 * Checks if there are any object in the cache generated on the base of encoding with prefix corresponding to the specified hash code.
							 * @param prefix_hash the hash code for the prefix
							 */
							public contains(prefix_hash: number): boolean;
							/**
							 * Returns the object built on the base on the specified encoded form if it is contained in the cache and null otherwise. This method is computationally expensive and should be called only if the method <code>contains(long)</code> for the hash code returned true.
							 * @param hash the hash code for the prefix of the encoding
							 * @param encoding encoded form of the required object.
							 */
							public get(hash: number, encoding: native.Array<number>): any;
							/**
							 * Puts the object into the cache.
							 * @param hash hash code for the prefix of the encoding
							 * @param encoding the encoded form of the object
							 * @param object the object to be saved in the cache
							 */
							public put(hash: number, encoding: native.Array<number>, object: any): void;
						}
					}
					export module crypto {
						/**
						 * The static class providing access on Linux platform to system means for generating true random bits. <BR>
						 */
						export class RandomBitsSupplier extends java.lang.Object implements org.apache.harmony.security.provider.crypto.ISHA1_Data {
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.RandomBitsSupplier>;
							/**
							 * The method is called by provider to determine if a device is available.
							 */
							static isServiceAvailable(): boolean;
							/**
							 * The method returns byte array of requested length provided service is available. ProviderException gets thrown otherwise.
							 * @param numBytes 
							 */
							public static getRandomBits(numBytes: number): native.Array<number>;
						}
						/**
						 * This interface contains : <BR> - a set of constant values, H0-H4, defined in "SECURE HASH STANDARD", FIPS PUB 180-2 ;<BR> - implementation constant values to use in classes using SHA-1 algorithm. <BR>
						 */
						export class SHA1_Data implements org.apache.harmony.security.provider.crypto.ISHA1_Data {
							constructor(implementation: org.apache.harmony.security.provider.crypto.ISHA1_Data);
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							static H0: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							static H1: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							static H2: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							static H3: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							static H4: number;
							/**
							 * offset in buffer to store number of bytes in 0-15 word frame
							 */
							static BYTES_OFFSET: number;
							/**
							 * offset in buffer to store current hash value
							 */
							static HASH_OFFSET: number;
							/**
							 * # of bytes in H0-H4 words; <BR> in this implementation # is set to 20 (in general # varies from 1 to 20)
							 */
							static DIGEST_LENGTH: number;
						}
						/**
						 * This class contains methods providing SHA-1 functionality to use in classes. <BR> The methods support the algorithm described in "SECURE HASH STANDARD", FIPS PUB 180-2, <BR> "http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf" <BR> <BR> The class contains two package level access methods, - "void updateHash(int[], byte[], int, int)" and "void computeHash(int[])", - performing the following operations. <BR> <BR> The "updateHash(..)" method appends new bytes to existing ones within limit of a frame of 64 bytes (16 words). Once a length of accumulated bytes reaches the limit the "computeHash(int[])" method is invoked on the frame to compute updated hash, and the number of bytes in the frame is set to 0. Thus, after appending all bytes, the frame contain only those bytes that were not used in computing final hash value yet. <BR> <BR> The "computeHash(..)" method generates a 160 bit hash value using a 512 bit message stored in first 16 words of int[] array argument and current hash value stored in five words, beginning HASH_OFFSET, of the array argument. Computation is done according to SHA-1 algorithm. <BR> <BR> The resulting hash value replaces the previous hash value in the array; original bits of the message are not preserved.
						 */
						export class SHA1Impl extends java.lang.Object implements org.apache.harmony.security.provider.crypto.ISHA1_Data {
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.SHA1Impl>;
							/**
							 * The method generates a 160 bit hash value using a 512 bit message stored in first 16 words of int[] array argument and current hash value stored in five words, beginning OFFSET+1, of the array argument. Computation is done according to SHA-1 algorithm.
							 * @param arrW s
							 */
							static computeHash(arrW: native.Array<number>): void;
							/**
							 * The method appends new bytes to existing ones within limit of a frame of 64 bytes (16 words).
							 * @param intArray s
							 * @param byteInput s
							 * @param fromByte s
							 * @param toByte s
							 */
							static updateHash(intArray: native.Array<number>, byteInput: native.Array<number>, fromByte: number, toByte: number): void;
						}
						/**
						 * This interface contains : <BR> - a set of constant values, H0-H4, defined in "SECURE HASH STANDARD", FIPS PUB 180-2 ;<BR> - implementation constant values to use in classes using SHA-1 algorithm. <BR>
						 */
						interface ISHA1_Data {
						}
						export module ISHA1_Data {
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							var H0: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							var H1: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							var H2: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							var H3: number;
							/**
							 * constant defined in "SECURE HASH STANDARD"
							 */
							var H4: number;
							/**
							 * offset in buffer to store number of bytes in 0-15 word frame
							 */
							var BYTES_OFFSET: number;
							/**
							 * offset in buffer to store current hash value
							 */
							var HASH_OFFSET: number;
							/**
							 * # of bytes in H0-H4 words; <BR> in this implementation # is set to 20 (in general # varies from 1 to 20)
							 */
							var DIGEST_LENGTH: number;
						}
						/**
						 * This class extends the SecureRandomSpi class implementing all its abstract methods. <BR> <BR> To generate pseudo-random bits, the implementation uses technique described in the "Random Number Generator (RNG) algorithms" section, Appendix A, JavaTM Cryptography Architecture, API Specification&Reference <BR> <BR> The class implements the Serializable interface.
						 */
						export class SHA1PRNG_SecureRandomImpl extends java.security.SecureRandomSpi implements java.io.ISerializable, org.apache.harmony.security.provider.crypto.ISHA1_Data {
							/**
							 * Creates object and sets implementation variables to their initial values
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.SHA1PRNG_SecureRandomImpl>;
							/**
							 * Changes current seed by supplementing a seed argument to the current seed, if this already set; the argument is used as first seed otherwise. <BR>
							 * @param seed 
							 */
							protected engineSetSeed(seed: native.Array<number>): void;
							/**
							 * Returns a required number of random bytes. <BR>
							 * @param numBytes 
							 */
							protected engineGenerateSeed(numBytes: number): native.Array<number>;
							/**
							 * Writes random bytes into an array supplied. Bits in a byte are from left to right. <BR>
							 * @param bytes 
							 */
							protected engineNextBytes(bytes: native.Array<number>): void;
						}
						/**
						 * Implementation of Provider for SecureRandom, MessageDigest and Signature using a Secure Hash Algorithm, SHA-1; see SECURE HASH STANDARD, FIPS PUB 180-1 (http://www.itl.nist.gov/fipspubs/fip180-1.htm) <BR> <BR> The implementation supports "SHA1PRNG", "SHA-1" and "SHA1withDSA" algorithms described in JavaTM Cryptography Architecture, API Specification & Reference
						 */
						export class CryptoProvider extends java.security.Provider {
							/**
							 * Creates a Provider and puts parameters
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.CryptoProvider>;
						}
						/**
						 * The class provides DSAPrivateKey functionality by extending a class implementing PrivateKey and implementing methods defined in both interfaces, DSAKey and DSAPrivateKey
						 */
						export class DSAPrivateKeyImpl extends org.apache.harmony.security.PrivateKeyImpl implements java.security.interfaces.IDSAPrivateKey {
							/**
							 * Creates object from DSAPrivateKeySpec.
							 * @param keySpec - a DSAPrivateKeySpec object
							 */
							constructor(keySpec: java.security.spec.DSAPrivateKeySpec);
							/**
							 * Creates object from PKCS8EncodedKeySpec.
							 * @param keySpec - a XPKCS8EncodedKeySpec object
							 */
							constructor(keySpec: java.security.spec.PKCS8EncodedKeySpec);
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.DSAPrivateKeyImpl>;
							public getX(): java.math.BigInteger;
							public getParams(): java.security.interfaces.IDSAParams;
							/**
							 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
							 */
							getAlgorithm(): string;
							/**
							 * Returns the name of the format used to encode this key, or null if it can not be encoded.
							 */
							getFormat(): string;
							/**
							 * Returns the encoded form of this key, or null if encoding is not supported by this key.
							 */
							getEncoded(): native.Array<number>;
						}
						export class DSAKeyFactoryImpl extends java.security.KeyFactorySpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.DSAKeyFactoryImpl>;
							/**
							 * This method generates a DSAPrivateKey object from the provided key specification.
							 * @param keySpec 
							 */
							protected engineGeneratePrivate(keySpec: java.security.spec.IKeySpec): java.security.IPrivateKey;
							/**
							 * This method generates a DSAPublicKey object from the provided key specification.
							 * @param keySpec 
							 */
							protected engineGeneratePublic(keySpec: java.security.spec.IKeySpec): java.security.IPublicKey;
							/**
							 * This method returns a specification for the supplied key.
							 * @param key -
							 * @param keySpec -
							 */
							protected engineGetKeySpec<T extends java.security.spec.IKeySpec>(key: java.security.IKey, keySpec: java.lang.Class<T>): T;
							/**
							 * The method generates a DSAPublicKey object from the provided key.
							 * @param key 
							 */
							protected engineTranslateKey(key: java.security.IKey): java.security.IKey;
						}
						/**
						 * This class extends the MessageDigestSpi class implementing all its abstract methods; it overrides the "Object clone()" and "int engineGetDigestLength()" methods. <BR> The class implements the Cloneable interface.
						 */
						export class SHA1_MessageDigestImpl extends java.security.MessageDigestSpi implements java.lang.ICloneable, org.apache.harmony.security.provider.crypto.ISHA1_Data {
							/**
							 * The constructor creates needed buffers and sets the engine at initial state
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.SHA1_MessageDigestImpl>;
							/**
							 * Returns a "deep" copy of this SHA1MDImpl object. <BR>
							 */
							public clone(): any;
							/**
							 * Computes a message digest value. <BR>
							 */
							protected engineDigest(): native.Array<number>;
							/**
							 * Computes message digest value. Upon return, the value is stored in "buf" buffer beginning "offset" byte. <BR>
							 * @param buf 
							 * @param offset 
							 * @param len 
							 */
							protected engineDigest(buf: native.Array<number>, offset: number, len: number): number;
							/**
							 * Returns a message digest length. <BR>
							 */
							protected engineGetDigestLength(): number;
							/**
							 * Resets the engine. <BR>
							 */
							protected engineReset(): void;
							/**
							 * Supplements a byte to current message. <BR>
							 * @param input 
							 */
							protected engineUpdate(input: number): void;
							/**
							 * Updates current message. <BR>
							 * @param input 
							 * @param offset 
							 * @param len 
							 */
							protected engineUpdate(input: native.Array<number>, offset: number, len: number): void;
							/**
							 * Updates this MessageDigestSpi using the given input.
							 * @param input 
							 */
							protected engineUpdate(input: java.nio.ByteBuffer): void;
						}
						/**
						 * The auxiliary class providing means to process ASN1Sequence of three Integers. Such sequences are parts of ASN1 encoded formats for DSA private and public keys.
						 */
						export class ThreeIntegerSequence extends java.lang.Object {
							static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.ThreeIntegerSequence>;
							public getEncoded(): native.Array<number>;
						}
						export class SHA1withDSA_SignatureImpl extends java.security.Signature {
							/**
							 * The solo constructor.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.SHA1withDSA_SignatureImpl>;
							/**
							 * Deprecated method.
							 */
							protected engineGetParameter(param: string): any;
							/**
							 * Initializes this signature object with PrivateKey object passed as argument to the method.
							 * @param privateKey s
							 */
							protected engineInitSign(privateKey: java.security.IPrivateKey): void;
							/**
							 * Initializes this signature object with PublicKey object passed as argument to the method.
							 * @param publicKey s
							 */
							protected engineInitVerify(publicKey: java.security.IPublicKey): void;
							protected engineSetParameter(param: string, value: any): void;
							/**
							 * Returns signature bytes as byte array containing ASN1 representation for two BigInteger objects which is SEQUENCE of two INTEGERS. Length of sequence varies from less than 46 to 48.
							 */
							protected engineSign(): native.Array<number>;
							/**
							 * Updates data to sign or to verify.
							 * @param b s
							 */
							protected engineUpdate(b: number): void;
							/**
							 * Updates data to sign or to verify.
							 * @param b s
							 * @param off s
							 * @param len s
							 */
							protected engineUpdate(b: native.Array<number>, off: number, len: number): void;
							/**
							 * Verifies the signature bytes.
							 * @param sigBytes s
							 */
							protected engineVerify(sigBytes: native.Array<number>): boolean;
							/**
							 * Verifies the signature bytes.
							 * @param sigBytes s
							 * @param offset s
							 * @param length s
							 */
							protected engineVerify(sigBytes: native.Array<number>, offset: number, length: number): boolean;
							/**
							 * Initializes this SignatureSpi instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.
							 * @param privateKey 
							 * @param random 
							 */
							protected engineInitSign(privateKey: java.security.IPrivateKey, random: java.security.SecureRandom): void;
							/**
							 * Updates the data to be verified or to be signed, using the specified ByteBuffer.
							 * @param input 
							 */
							protected engineUpdate(input: java.nio.ByteBuffer): void;
							/**
							 * Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.
							 * @param outbuf 
							 * @param offset 
							 * @param len 
							 */
							protected engineSign(outbuf: native.Array<number>, offset: number, len: number): number;
							/**
							 * Sets the specified AlgorithmParameterSpec.
							 * @param params 
							 */
							protected engineSetParameter(params: java.security.spec.IAlgorithmParameterSpec): void;
						}
						/**
						 * The class provides DSAPublicKey functionality by extending a class implementing PublicKey and implementing methods defined in both interfaces, DSAKey and DSAPublicKey
						 */
						export class DSAPublicKeyImpl extends org.apache.harmony.security.PublicKeyImpl implements java.security.interfaces.IDSAPublicKey {
							/**
							 * Creates object from DSAPublicKeySpec.
							 * @param keySpec - a DSAPublicKeySpec object
							 */
							constructor(keySpec: java.security.spec.DSAPublicKeySpec);
							/**
							 * Creates object from X509EncodedKeySpec.
							 * @param keySpec - a X509EncodedKeySpec object
							 */
							constructor(keySpec: java.security.spec.X509EncodedKeySpec);
							static class: java.lang.Class<org.apache.harmony.security.provider.crypto.DSAPublicKeyImpl>;
							public getY(): java.math.BigInteger;
							public getParams(): java.security.interfaces.IDSAParams;
							/**
							 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
							 */
							getAlgorithm(): string;
							/**
							 * Returns the name of the format used to encode this key, or null if it can not be encoded.
							 */
							getFormat(): string;
							/**
							 * Returns the encoded form of this key, or null if encoding is not supported by this key.
							 */
							getEncoded(): native.Array<number>;
						}
					}
				}
				export module utils {
					/**
					 * Utility class for arrays
					 */
					export class Array extends java.lang.Object {
						static class: java.lang.Class<org.apache.harmony.security.utils.Array>;
						public static getBytesAsString(data: native.Array<number>): string;
						/**
						 * Represents <code>array</code> as <code>String</code> for printing. Array length can be up to 32767
						 * @param array to be represented as <code>String</code>
						 * @param prefix 
						 */
						public static toString(array: native.Array<number>, prefix: string): string;
						/**
						 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
						 */
						toString(): string;
					}
					export class JarUtils extends java.lang.Object {
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.utils.JarUtils>;
						/**
						 * This method handle all the work with PKCS7, ASN1 encoding, signature verifying, and certification path building. See also PKCS #7: Cryptographic Message Syntax Standard: http://www.ietf.org/rfc/rfc2315.txt
						 * @param signature - the input stream of signature file to be verified
						 * @param signatureBlock - the input stream of corresponding signature block file
						 */
						public static verifySignature(signature: java.io.InputStream, signatureBlock: java.io.InputStream): native.Array<java.security.cert.Certificate>;
					}
					/**
					 * Provides Algorithm Name to OID and OID to Algorithm Name mappings. Some known mappings are hardcoded. Tries to obtain additional mappings from installed providers during initialization.
					 */
					export class AlgNameMapper extends java.lang.Object {
						static class: java.lang.Class<org.apache.harmony.security.utils.AlgNameMapper>;
						/**
						 * Returns OID for algName
						 * @param algName algorithm name to be mapped
						 */
						public static map2OID(algName: string): string;
						/**
						 * Returns algName for OID
						 * @param oid OID to be mapped
						 */
						public static map2AlgName(oid: string): string;
						/**
						 * Returns Algorithm name for given algorithm alias
						 * @param algName - alias
						 */
						public static getStandardName(algName: string): string;
						/**
						 * Checks if parameter represents OID
						 * @param alias alias to be checked
						 */
						public static isOID(alias: string): boolean;
						/**
						 * Removes leading "OID." from oid String passed
						 * @param oid string that may contain leading "OID."
						 */
						public static normalize(oid: string): string;
					}
					/**
					 * Instance of this class represents ObjectIdentifier (OID).
					 */
					export class ObjectIdentifier extends java.lang.Object {
						/**
						 * Creates ObjectIdentifier(OID) from array of integers.
						 * @param oid - array of integers
						 */
						constructor(oid: native.Array<number>);
						/**
						 * Creates ObjectIdentifier(OID) from array of integers.
						 * @param oid - array of integers
						 * @param name - name of OID
						 * @param oidGroup - OID's group. Is used to separate different OID's
						 */
						constructor(oid: native.Array<number>, name: string, oidGroup: any);
						static class: java.lang.Class<org.apache.harmony.security.utils.ObjectIdentifier>;
						/**
						 * Gets OID.
						 */
						public getOid(): native.Array<number>;
						/**
						 * Gets OID's name.
						 */
						public getName(): string;
						/**
						 * Gets OID's group.
						 */
						public getGroup(): any;
						/**
						 * Compares object with OID for equality.
						 */
						public equals(o: any): boolean;
						/**
						 * Add "OID." to the beginning of string representation.
						 */
						public toOIDString(): string;
						/**
						 * Overrides Object.toString()
						 */
						public toString(): string;
						/**
						 *  java.lang.Object#hashCode()
						 */
						public hashCode(): number;
						/**
						 * Validates ObjectIdentifier (OID).
						 * @param oid - oid as array of integers
						 */
						public static validateOid(oid: native.Array<number>): void;
						/**
						 * Returns hash code for array of integers
						 * @param array oid - array of integers
						 */
						public static hashIntArray(array: native.Array<number>): number;
					}
				}
				export module asn1 {
					/**
					 * Encodes ASN.1 types with BER (X.690)
					 */
					export class BerOutputStream extends java.lang.Object {
						constructor();
						/**
						 * Encoded byte array
						 */
						encoded: native.Array<number>;
						/**
						 * Current encoded length
						 */
						length: number;
						/**
						 * Current encoded content
						 */
						content: any;
						static class: java.lang.Class<org.apache.harmony.security.asn1.BerOutputStream>;
						public encodeTag(tag: number): void;
						public encodeANY(): void;
						public encodeBitString(): void;
						public encodeBoolean(): void;
						public encodeChoice(choice: org.apache.harmony.security.asn1.ASN1Choice): void;
						public encodeExplicit(explicit: org.apache.harmony.security.asn1.ASN1Explicit): void;
						public encodeGeneralizedTime(): void;
						public encodeUTCTime(): void;
						public encodeInteger(): void;
						public encodeOctetString(): void;
						public encodeOID(): void;
						public encodeSequence(sequence: org.apache.harmony.security.asn1.ASN1Sequence): void;
						public encodeSequenceOf(sequenceOf: org.apache.harmony.security.asn1.ASN1SequenceOf): void;
						public encodeSet(set: org.apache.harmony.security.asn1.ASN1Set): void;
						public encodeSetOf(setOf: org.apache.harmony.security.asn1.ASN1SetOf): void;
						public encodeString(): void;
						public getChoiceLength(choice: org.apache.harmony.security.asn1.ASN1Choice): void;
						public getExplicitLength(sequence: org.apache.harmony.security.asn1.ASN1Explicit): void;
						public getSequenceLength(sequence: org.apache.harmony.security.asn1.ASN1Sequence): void;
						public getSequenceOfLength(sequence: org.apache.harmony.security.asn1.ASN1SequenceOf): void;
						public getSetLength(set: org.apache.harmony.security.asn1.ASN1Set): void;
						public getSetOfLength(setOf: org.apache.harmony.security.asn1.ASN1SetOf): void;
					}
					/**
					 * This class represents ASN.1 octet string type.
					 */
					export class ASN1OctetString extends org.apache.harmony.security.asn1.ASN1StringType {
						/**
						 * Constructs ASN.1 octet string type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1OctetString>;
						/**
						 * Returns ASN.1 octet string type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1OctetString;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts array of bytes from BER input stream.
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * Abstract class to represent ASN.1 time types
					 */
					export class ASN1Time extends org.apache.harmony.security.asn1.ASN1StringType {
						constructor(tagNumber: number);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Time>;
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
					}
					/**
					 * This class represents ASN.1 UTCTime type
					 */
					export class ASN1UTCTime extends org.apache.harmony.security.asn1.ASN1Time {
						/**
						 * Constructs ASN.1 UTCTime type
						 */
						constructor();
						/**
						 * Length for the pattern: YYMMDDhhmm'Z'
						 */
						static UTC_HM: number;
						/**
						 * Length for the pattern: YYMMDDhhmmss'Z'
						 */
						static UTC_HMS: number;
						/**
						 * Length for the pattern: YYMMDDhhmm('+'/'-')hhmm
						 */
						static UTC_LOCAL_HM: number;
						/**
						 * Length for the pattern: YYMMDDhhmmss('+'/'-')hhmm
						 */
						static UTC_LOCAL_HMS: number;
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1UTCTime>;
						/**
						 * Returns ASN.1 UTCTime type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1UTCTime;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 GeneralizedTime type.
					 */
					export class ASN1GeneralizedTime extends org.apache.harmony.security.asn1.ASN1Time {
						/**
						 * Constructs ASN.1 GeneralizedTime type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1GeneralizedTime>;
						/**
						 * Returns ASN.1 GeneralizedTime type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1GeneralizedTime;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 Object Identifier type.
					 */
					export class ASN1Oid extends org.apache.harmony.security.asn1.ASN1Primitive {
						/**
						 * Constructs ASN.1 Object Identifier type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Oid>;
						/**
						 * Returns ASN.1 Object Identifier type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1Oid;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts array of integers from BER input stream.
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						/**
						 * Returns ASN.1 Object Identifier type implementation
						 */
						public static getInstanceForString(): org.apache.harmony.security.asn1.ASN1Oid;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 Bitstring type.
					 */
					export class ASN1BitString extends org.apache.harmony.security.asn1.ASN1StringType {
						/**
						 * Constructs ASN.1 Bitstring type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1BitString>;
						/**
						 * Returns ASN.1 Bitstring type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1BitString;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts BitString object from BER input stream.
						 * @param input in - BER input stream
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					export module ASN1BitString {
						/**
						 * Default implementation for ASN.1 Named Bitstring type
						 */
						export class ASN1NamedBitList extends org.apache.harmony.security.asn1.ASN1BitString {
							constructor(minBits: number);
							static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1BitString.ASN1NamedBitList>;
							public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
							public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						}
					}
					/**
					 * ASN.1 and some other constants holder interface
					 */
					interface IASN1Constants {
					}
					export module IASN1Constants {
						/**
						 * Tag classes
						 */
						var CLASS_UNIVERSAL: number;
						var CLASS_APPLICATION: number;
						var CLASS_CONTEXTSPECIFIC: number;
						var CLASS_PRIVATE: number;
						/**
						 * Tag Primitive/Constructed (P/C) flag
						 */
						var PC_PRIMITIVE: number;
						var PC_CONSTRUCTED: number;
						/**
						 * Universal class tag assignments
						 */
						var TAG_BOOLEAN: number;
						var TAG_INTEGER: number;
						var TAG_BITSTRING: number;
						var TAG_OCTETSTRING: number;
						var TAG_NULL: number;
						var TAG_OID: number;
						var TAG_OBJDESCRIPTOR: number;
						var TAG_EXTERNAL: number;
						var TAG_INSTANCEOF: number;
						var TAG_REAL: number;
						var TAG_ENUM: number;
						var TAG_EMBEDDEDPDV: number;
						var TAG_UTF8STRING: number;
						var TAG_RELATIVEOID: number;
						var TAG_SEQUENCE: number;
						var TAG_SEQUENCEOF: number;
						var TAG_SET: number;
						var TAG_SETOF: number;
						var TAG_NUMERICSTRING: number;
						var TAG_PRINTABLESTRING: number;
						var TAG_TELETEXSTRING: number;
						var TAG_T61STRING: number;
						var TAG_VIDEOTEXSTRING: number;
						var TAG_IA5STRING: number;
						var TAG_UTCTIME: number;
						var TAG_GENERALIZEDTIME: number;
						var TAG_GRAPHICSTRING: number;
						var TAG_VISIBLESTRING: number;
						var TAG_ISO646STRING: number;
						var TAG_GENERALSTRING: number;
						var TAG_UNIVERSALSTRING: number;
						var TAG_BMPSTRING: number;
						var TAG_C_BITSTRING: number;
						var TAG_C_OCTETSTRING: number;
						var TAG_C_UTF8STRING: number;
						var TAG_C_SEQUENCE: number;
						var TAG_C_SEQUENCEOF: number;
						var TAG_C_SET: number;
						var TAG_C_SETOF: number;
						var TAG_C_UTCTIME: number;
						var TAG_C_GENERALIZEDTIME: number;
						/**
						 * Not from the ASN.1 specs. For implementation purposes.
						 */
						var TAG_ANY: number;
						var TAG_CHOICE: number;
					}
					/**
					 * This abstract class represents ASN.1 type that is a collection of ASN.1 types.
					 */
					export class ASN1TypeCollection extends org.apache.harmony.security.asn1.ASN1Constructed {
						type: native.Array<org.apache.harmony.security.asn1.ASN1Type>;
						OPTIONAL: native.Array<boolean>;
						DEFAULT: native.Array<any>;
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1TypeCollection>;
						/**
						 * Sets a collection component as optional
						 * @param index an index of a component
						 */
						protected setOptional(index: number): void;
						/**
						 * Sets a default value for a collection component. The component also became an optional component.
						 * @param object a component's default value
						 * @param index an index of a component
						 */
						protected setDefault(object: any, index: number): void;
						/**
						 * Provides an object's values to be encoded
						 * @param object an object to be encoded
						 * @param values an array to store an object's values to be encoded
						 */
						protected getValues(object: any, values: native.Array<any>): void;
					}
					/**
					 * Represents ASN.1 bit string value
					 */
					export class BitString extends java.lang.Object {
						/**
						 * @param bytes array of bytes that represents bit string,
						 * @param unusedBits number of unused bits
						 */
						constructor(bytes: native.Array<number>, unusedBits: number);
						constructor(values: native.Array<boolean>);
						/**
						 * Sequence of bits padded with unused bits.
						 */
						bytes: native.Array<number>;
						/**
						 * Number of unused bits in the last byte.
						 */
						unusedBits: number;
						static class: java.lang.Class<org.apache.harmony.security.asn1.BitString>;
						public getBit(bit: number): boolean;
						public setBit(bit: number, value: boolean): void;
						public toBooleanArray(): native.Array<boolean>;
					}
					/**
					 * This abstract class represents ASN.1 Choice type.
					 */
					export class ASN1Choice extends org.apache.harmony.security.asn1.ASN1Type {
						/**
						 * Constructs ASN.1 choice type.
						 * @param type -
						 */
						constructor(type: native.Array<org.apache.harmony.security.asn1.ASN1Type>);
						type: native.Array<org.apache.harmony.security.asn1.ASN1Type>;
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Choice>;
						/**
						 * Tests whether one of choice alternatives has the same identifier or not.
						 * @param identifier -
						 */
						public checkTag(identifier: number): boolean;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeASN(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public getIndex(object: any): number;
						public getObjectToEncode(object: any): any;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * Encodes ASN.1 types with DER (X.690)
					 */
					export class DerOutputStream extends org.apache.harmony.security.asn1.BerOutputStream {
						constructor(asn1: org.apache.harmony.security.asn1.ASN1Type, object: any);
						static class: java.lang.Class<org.apache.harmony.security.asn1.DerOutputStream>;
						public encodeChoice(choice: org.apache.harmony.security.asn1.ASN1Choice): void;
						public encodeExplicit(explicit: org.apache.harmony.security.asn1.ASN1Explicit): void;
						public encodeSequence(sequence: org.apache.harmony.security.asn1.ASN1Sequence): void;
						public encodeSequenceOf(sequenceOf: org.apache.harmony.security.asn1.ASN1SequenceOf): void;
						public encodeSetOf(setOf: org.apache.harmony.security.asn1.ASN1SetOf): void;
						public getChoiceLength(choice: org.apache.harmony.security.asn1.ASN1Choice): void;
						public getExplicitLength(explicit: org.apache.harmony.security.asn1.ASN1Explicit): void;
						public getSequenceLength(sequence: org.apache.harmony.security.asn1.ASN1Sequence): void;
						public getSequenceOfLength(sequence: org.apache.harmony.security.asn1.ASN1SequenceOf): void;
						public getSetOfLength(setOf: org.apache.harmony.security.asn1.ASN1SetOf): void;
					}
					/**
					 * This class represents ASN.1 Enumerated type.
					 */
					export class ASN1Enumerated extends org.apache.harmony.security.asn1.ASN1Primitive {
						/**
						 * Constructs ASN.1 Enumerated type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Enumerated>;
						/**
						 * Returns ASN.1 Enumerated type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1Enumerated;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts array of bytes from BER input stream.
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 Sequence OF type.
					 */
					export class ASN1SequenceOf extends org.apache.harmony.security.asn1.ASN1ValueCollection {
						constructor(type: org.apache.harmony.security.asn1.ASN1Type);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1SequenceOf>;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * Decodes ASN.1 types encoded with DER (X.690)
					 */
					export class DerInputStream extends org.apache.harmony.security.asn1.BerInputStream {
						constructor(encoded: native.Array<number>);
						constructor(encoded: native.Array<number>, offset: number, encodingLen: number);
						constructor(input: java.io.InputStream);
						static class: java.lang.Class<org.apache.harmony.security.asn1.DerInputStream>;
						public next(): number;
						public readBitString(): void;
						public readBoolean(): void;
						public readOctetString(): void;
						public readSequence(sequence: org.apache.harmony.security.asn1.ASN1Sequence): void;
						public readSetOf(setOf: org.apache.harmony.security.asn1.ASN1SetOf): void;
						public readString(type: org.apache.harmony.security.asn1.ASN1StringType): void;
						public readUTCTime(): void;
						public readGeneralizedTime(): void;
					}
					/**
					 * ASN.1 and some other constants holder interface
					 */
					export class ASN1Constants implements org.apache.harmony.security.asn1.IASN1Constants {
						constructor(implementation: org.apache.harmony.security.asn1.IASN1Constants);
						/**
						 * Tag classes
						 */
						static CLASS_UNIVERSAL: number;
						static CLASS_APPLICATION: number;
						static CLASS_CONTEXTSPECIFIC: number;
						static CLASS_PRIVATE: number;
						/**
						 * Tag Primitive/Constructed (P/C) flag
						 */
						static PC_PRIMITIVE: number;
						static PC_CONSTRUCTED: number;
						/**
						 * Universal class tag assignments
						 */
						static TAG_BOOLEAN: number;
						static TAG_INTEGER: number;
						static TAG_BITSTRING: number;
						static TAG_OCTETSTRING: number;
						static TAG_NULL: number;
						static TAG_OID: number;
						static TAG_OBJDESCRIPTOR: number;
						static TAG_EXTERNAL: number;
						static TAG_INSTANCEOF: number;
						static TAG_REAL: number;
						static TAG_ENUM: number;
						static TAG_EMBEDDEDPDV: number;
						static TAG_UTF8STRING: number;
						static TAG_RELATIVEOID: number;
						static TAG_SEQUENCE: number;
						static TAG_SEQUENCEOF: number;
						static TAG_SET: number;
						static TAG_SETOF: number;
						static TAG_NUMERICSTRING: number;
						static TAG_PRINTABLESTRING: number;
						static TAG_TELETEXSTRING: number;
						static TAG_T61STRING: number;
						static TAG_VIDEOTEXSTRING: number;
						static TAG_IA5STRING: number;
						static TAG_UTCTIME: number;
						static TAG_GENERALIZEDTIME: number;
						static TAG_GRAPHICSTRING: number;
						static TAG_VISIBLESTRING: number;
						static TAG_ISO646STRING: number;
						static TAG_GENERALSTRING: number;
						static TAG_UNIVERSALSTRING: number;
						static TAG_BMPSTRING: number;
						static TAG_C_BITSTRING: number;
						static TAG_C_OCTETSTRING: number;
						static TAG_C_UTF8STRING: number;
						static TAG_C_SEQUENCE: number;
						static TAG_C_SEQUENCEOF: number;
						static TAG_C_SET: number;
						static TAG_C_SETOF: number;
						static TAG_C_UTCTIME: number;
						static TAG_C_GENERALIZEDTIME: number;
						/**
						 * Not from the ASN.1 specs. For implementation purposes.
						 */
						static TAG_ANY: number;
						static TAG_CHOICE: number;
					}
					/**
					 * Decodes ASN.1 types encoded with BER (X.690)
					 */
					export class BerInputStream extends java.lang.Object {
						/**
						 * Creates stream for decoding.
						 */
						constructor(encoded: native.Array<number>);
						/**
						 * Creates stream for decoding.
						 * @param encoded bytes array to be decoded
						 * @param offset the encoding offset
						 * @param expectedLength expected length of full encoding, this includes
						 */
						constructor(encoded: native.Array<number>, offset: number, expectedLength: number);
						/**
						 * Creates stream for decoding.
						 */
						constructor(input: java.io.InputStream);
						/**
						 * Creates stream for decoding.
						 * @param input initialSize the internal buffer initial size
						 * @param initialSize 
						 */
						constructor(input: java.io.InputStream, initialSize: number);
						/**
						 * Current decoded tag
						 */
						tag: number;
						/**
						 * Current decoded content
						 */
						content: any;
						/**
						 * The last choice index
						 */
						choiceIndex: number;
						/**
						 * Keeps last decoded: year, month, day, hour, minute, second, millisecond
						 */
						times: native.Array<number>;
						oidElement: number;
						static class: java.lang.Class<org.apache.harmony.security.asn1.BerInputStream>;
						/**
						 * Resets this stream to initial state.
						 * @param encoded a new bytes array to be decoded
						 */
						public reset(encoded: native.Array<number>): void;
						/**
						 * Decodes next encoded type. Initializes tag, length, tagOffset and contentOffset variables
						 */
						public next(): number;
						/**
						 * Returns the length of the encoding
						 */
						public static getLength(encoding: native.Array<number>): number;
						/**
						 * Decodes ASN.1 bitstring type
						 */
						public readBitString(): void;
						/**
						 * Decodes ASN.1 Enumerated type
						 */
						public readEnumerated(): void;
						/**
						 * Decodes ASN.1 boolean type
						 */
						public readBoolean(): void;
						/**
						 * Decodes ASN.1 GeneralizedTime type
						 */
						public readGeneralizedTime(): void;
						/**
						 * Decodes ASN.1 UTCTime type
						 */
						public readUTCTime(): void;
						/**
						 * Decodes ASN.1 Integer type
						 */
						public readInteger(): void;
						/**
						 * Decodes ASN.1 Octetstring type
						 */
						public readOctetString(): void;
						/**
						 * Decodes ASN.1 ObjectIdentifier type
						 */
						public readOID(): void;
						/**
						 * Decodes ASN.1 Sequence type
						 */
						public readSequence(sequence: org.apache.harmony.security.asn1.ASN1Sequence): void;
						/**
						 * Decodes ASN.1 SequenceOf type
						 */
						public readSequenceOf(sequenceOf: org.apache.harmony.security.asn1.ASN1SequenceOf): void;
						/**
						 * Decodes ASN.1 Set type
						 */
						public readSet(set: org.apache.harmony.security.asn1.ASN1Set): void;
						/**
						 * Decodes ASN.1 SetOf type
						 */
						public readSetOf(setOf: org.apache.harmony.security.asn1.ASN1SetOf): void;
						/**
						 * Decodes ASN.1 String type
						 */
						public readString(type: org.apache.harmony.security.asn1.ASN1StringType): void;
						/**
						 * Returns encoded array.
						 */
						public getEncoded(): native.Array<number>;
						/**
						 * Returns internal buffer used for decoding
						 */
						public getBuffer(): native.Array<number>;
						/**
						 * Returns length of the current content for decoding
						 */
						public getLength(): number;
						/**
						 * Returns the current offset
						 */
						public getOffset(): number;
						/**
						 * Returns end offset for the current encoded type
						 */
						public getEndOffset(): number;
						/**
						 * Returns start offset for the current encoded type
						 */
						public getTagOffset(): number;
						/**
						 * Sets verify mode.
						 */
						public setVerify(): void;
						/**
						 * Reads the next encoded byte from the encoded input stream.
						 */
						protected read(): number;
						/**
						 * Reads the next encoded content from the encoded input stream. The method MUST be used for reading a primitive encoded content.
						 */
						public readContent(): void;
						/**
						 * Reallocates the buffer in order to make it exactly the size of data it contains
						 */
						public compactBuffer(): void;
						public put(key: any, entry: any): void;
						public get(key: any): any;
					}
					/**
					 * Instance of this class represents ObjectIdentifier (OID).
					 */
					export class ObjectIdentifier extends java.lang.Object {
						/**
						 * Creates ObjectIdentifier(OID) from array of integers.
						 * @param oid array of integers
						 */
						constructor(oid: native.Array<number>);
						/**
						 * Creates ObjectIdentifier(OID) from string representation.
						 * @param strOid oid string
						 */
						constructor(strOid: string);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ObjectIdentifier>;
						public equals(o: any): boolean;
						public toString(): string;
						public hashCode(): number;
						/**
						 * Validates ObjectIdentifier (OID).
						 * @param oid oid as array of integers
						 */
						public static validate(oid: native.Array<number>): void;
						/**
						 * Returns string representation of OID.
						 * @param oid oid as array of integers
						 */
						public static toString(oid: native.Array<number>): string;
						/**
						 * Gets ObjectIdentifier (OID) from string representation.
						 * @param str string representation of OID
						 */
						public static toIntArray(str: string): native.Array<number>;
						/**
						 * Returns whether the given string is a valid ObjectIdentifier (OID) representation.
						 * @param str string representation of OID
						 */
						public static isOID(str: string): boolean;
					}
					/**
					 * This class is the super class for all string ASN.1 types
					 */
					export class ASN1StringType extends org.apache.harmony.security.asn1.ASN1Type {
						constructor(tagNumber: number);
						static BMPSTRING: org.apache.harmony.security.asn1.ASN1StringType;
						static IA5STRING: org.apache.harmony.security.asn1.ASN1StringType;
						static GENERALSTRING: org.apache.harmony.security.asn1.ASN1StringType;
						static PRINTABLESTRING: org.apache.harmony.security.asn1.ASN1StringType;
						static TELETEXSTRING: org.apache.harmony.security.asn1.ASN1StringType;
						static UNIVERSALSTRING: org.apache.harmony.security.asn1.ASN1StringType;
						static UTF8STRING: org.apache.harmony.security.asn1.ASN1StringType;
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1StringType>;
						/**
						 * Tests provided identifier.
						 * @param identifier identifier to be verified
						 */
						public checkTag(identifier: number): boolean;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts String object from BER input stream.
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeASN(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 SetOf type.
					 */
					export class ASN1SetOf extends org.apache.harmony.security.asn1.ASN1ValueCollection {
						constructor(type: org.apache.harmony.security.asn1.ASN1Type);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1SetOf>;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * Implicitly tagged ASN.1 type.
					 */
					export class ASN1Implicit extends org.apache.harmony.security.asn1.ASN1Type {
						/**
						 * Constructs implicitly tagged ASN.1 type with context-specific tag class and specified tag number.
						 * @param tagNumber - ASN.1 tag number
						 * @param type - ASN.1 type to be tagged
						 */
						constructor(tagNumber: number, type: org.apache.harmony.security.asn1.ASN1Type);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Implicit>;
						public checkTag(identifier: number): boolean;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeASN(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * Thrown by decoder/encoder stream to indicate violation of encoding rules.
					 */
					export class ASN1Exception extends java.io.IOException {
						constructor(message: string);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Exception>;
					}
					/**
					 * This abstract class is the super class for all constructed ASN.1 types
					 */
					export class ASN1Constructed extends org.apache.harmony.security.asn1.ASN1Type {
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Constructed>;
						/**
						 * Tests provided identifier.
						 * @param identifier - identifier to be verified
						 */
						public checkTag(identifier: number): boolean;
						public encodeASN(out: org.apache.harmony.security.asn1.BerOutputStream): void;
					}
					/**
					 * This abstract class is the super class for all ASN.1 types
					 */
					export class ASN1Type extends java.lang.Object implements org.apache.harmony.security.asn1.IASN1Constants {
						/**
						 * Constructs a primitive, universal ASN.1 type.
						 * @param tagNumber - ASN.1 tag number
						 */
						constructor(tagNumber: number);
						/**
						 * Constructs an ASN.1 type.
						 * @param tagClass - tag class. MUST be
						 * @param tagNumber - ASN.1 tag number.
						 */
						constructor(tagClass: number, tagNumber: number);
						/**
						 * Integer representation of primitive identifier.
						 */
						id: number;
						/**
						 * Integer representation of constructed identifier.
						 */
						constrId: number;
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Type>;
						public decode(encoded: native.Array<number>): any;
						public decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						public decode(input: java.io.InputStream): any;
						public verify(encoded: native.Array<number>): void;
						public verify(input: java.io.InputStream): void;
						public encode(object: any): native.Array<number>;
						/**
						 * Decodes ASN.1 type.
						 */
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Tests provided identifier.
						 * @param identifier identifier to be verified
						 */
						public checkTag(identifier: number): boolean;
						/**
						 * Creates decoded object.
						 */
						protected getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Encodes ASN.1 type.
						 */
						public encodeASN(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public getEncodedLength(out: org.apache.harmony.security.asn1.BerOutputStream): number;
						public toString(): string;
					}
					/**
					 * This class represents ASN.1 Integer type.
					 */
					export class ASN1Integer extends org.apache.harmony.security.asn1.ASN1Primitive {
						/**
						 * Constructs ASN.1 Integer type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Integer>;
						/**
						 * Returns ASN.1 Integer type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1Integer;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts array of bytes from BER input stream.
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						/**
						 * Converts decoded ASN.1 Integer to int value. If the object represents an integer value larger than 32 bits, the high bits will be lost.
						 * @param decoded a decoded object corresponding to this type
						 */
						public static toIntValue(decoded: any): number;
						/**
						 * Converts decoded ASN.1 Integer to a BigInteger.
						 * @param decoded a decoded object corresponding to this type
						 */
						public static toBigIntegerValue(decoded: any): java.math.BigInteger;
						/**
						 * Converts primitive int value to a form most suitable for encoding.
						 * @param value primitive value to be encoded
						 */
						public static fromIntValue(value: number): any;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This abstract class represents ASN.1 collection type.
					 */
					export class ASN1ValueCollection extends org.apache.harmony.security.asn1.ASN1Constructed {
						/**
						 * Constructs ASN1 collection type.
						 */
						constructor(tagNumber: number, type: org.apache.harmony.security.asn1.ASN1Type);
						/**
						 * A value collection of this ASN.1 type
						 */
						type: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1ValueCollection>;
						/**
						 * Provides an object's values to be encoded
						 * @param object - an object to be encoded
						 */
						public getValues(object: any): java.util.ICollection<any>;
					}
					/**
					 * This class represents ASN.1 ANY type.
					 */
					export class ASN1Any extends org.apache.harmony.security.asn1.ASN1Type {
						/**
						 * Constructs ASN.1 ANY type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Any>;
						/**
						 * Returns ASN.1 ANY type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1Any;
						/**
						 * Tests provided identifier.
						 * @param identifier - identifier to be verified
						 */
						public checkTag(identifier: number): boolean;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts array of bytes that represents full encoding from BER input stream.
						 * @param input in BER input stream
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeASN(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public getEncodedLength(out: org.apache.harmony.security.asn1.BerOutputStream): number;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents explicitly tagged ASN.1 type.
					 */
					export class ASN1Explicit extends org.apache.harmony.security.asn1.ASN1Constructed {
						/**
						 * Constructs explicitly tagged ASN.1 type with context-specific tag class and specified tag number.
						 * @param tagNumber - ASN.1 tag number
						 * @param type - ASN.1 type to be tagged
						 */
						constructor(tagNumber: number, type: org.apache.harmony.security.asn1.ASN1Type);
						/**
						 * Constructs explicitly tagged ASN.1 type.
						 * @param tagClass - ASN.1 tag class.
						 * @param tagNumber - ASN.1 tag number
						 * @param type - ASN.1 type to be tagged
						 */
						constructor(tagClass: number, tagNumber: number, type: org.apache.harmony.security.asn1.ASN1Type);
						/**
						 * Tagged type
						 */
						type: org.apache.harmony.security.asn1.ASN1Type;
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Explicit>;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public toString(): string;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 Sequence type.
					 */
					export class ASN1Sequence extends org.apache.harmony.security.asn1.ASN1TypeCollection {
						constructor(type: native.Array<org.apache.harmony.security.asn1.ASN1Type>);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Sequence>;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 Set type.
					 */
					export class ASN1Set extends org.apache.harmony.security.asn1.ASN1TypeCollection {
						constructor(type: native.Array<org.apache.harmony.security.asn1.ASN1Type>);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Set>;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This class represents ASN.1 Boolean type.
					 */
					export class ASN1Boolean extends org.apache.harmony.security.asn1.ASN1Primitive {
						/**
						 * Constructs ASN.1 Boolean type
						 */
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Boolean>;
						/**
						 * Returns ASN.1 Boolean type default implementation
						 */
						public static getInstance(): org.apache.harmony.security.asn1.ASN1Boolean;
						public decode(input: org.apache.harmony.security.asn1.BerInputStream): any;
						/**
						 * Extracts Boolean object from BER input stream.
						 * @param input in - BER input stream
						 */
						public getDecodedObject(input: org.apache.harmony.security.asn1.BerInputStream): any;
						public encodeContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						public setEncodingContent(out: org.apache.harmony.security.asn1.BerOutputStream): void;
						decode(encoded: native.Array<number>): any;
						decode(encoded: native.Array<number>, offset: number, encodingLen: number): any;
						decode(input: java.io.InputStream): any;
					}
					/**
					 * This abstract class is the super class for all primitive ASN.1 types
					 */
					export class ASN1Primitive extends org.apache.harmony.security.asn1.ASN1Type {
						constructor(tagNumber: number);
						static class: java.lang.Class<org.apache.harmony.security.asn1.ASN1Primitive>;
						/**
						 * Tests provided identifier.
						 * @param identifier identifier to be verified
						 */
						public checkTag(identifier: number): boolean;
						public encodeASN(out: org.apache.harmony.security.asn1.BerOutputStream): void;
					}
				}
				/**
				 * PrivateKeyImpl
				 */
				export class PrivateKeyImpl extends java.lang.Object implements java.security.IPrivateKey {
					constructor(algorithm: string);
					static class: java.lang.Class<org.apache.harmony.security.PrivateKeyImpl>;
					public getAlgorithm(): string;
					public getFormat(): string;
					public getEncoded(): native.Array<number>;
					public setAlgorithm(algorithm: string): void;
					public setEncoding(encoding: native.Array<number>): void;
				}
				export module x501 {
					/**
					 * X.501 Attribute Value
					 */
					export class AttributeValue extends java.lang.Object {
						constructor(parsedString: string, hasQorE: boolean);
						constructor(hexString: string, encoded: native.Array<number>);
						constructor(rawString: string, encoded: native.Array<number>, tag: number);
						wasEncoded: boolean;
						escapedString: string;
						encoded: native.Array<number>;
						bytes: native.Array<number>;
						hasQE: boolean;
						rawString: string;
						static class: java.lang.Class<org.apache.harmony.security.x501.AttributeValue>;
						public getTag(): number;
						public getHexString(): string;
						public appendQEString(sb: java.lang.StringBuilder): void;
						public makeCanonical(): string;
					}
					/**
					 * AttributeTypeAndValue comparator
					 */
					export class AttributeTypeAndValueComparator extends java.lang.Object implements java.util.IComparator<any>, java.io.ISerializable {
						constructor();
						static class: java.lang.Class<org.apache.harmony.security.x501.AttributeTypeAndValueComparator>;
						/**
						 * compares two AttributeTypeAndValues
						 * @param obj1 
						 * @param obj2 
						 */
						public compare(obj1: any, obj2: any): number;
						/**
						 * Compares this Comparator with the specified Object and indicates whether they are equal. In order to be equal, object must represent the same object as this instance using a class-specific comparison.
						 * @param object 
						 */
						equals(object: any): boolean;
					}
					/**
					 * The class encapsulates the ASN.1 DER encoding/decoding work with the DirectoryString structure (as specified in RFC 3280 - Internet X.509 Public Key Infrastructure. Certificate and Certificate Revocation List (CRL) Profile. http://www.ietf.org/rfc/rfc3280.txt):
					 */
					export class DirectoryString extends java.lang.Object {
						constructor();
						static ASN1: org.apache.harmony.security.asn1.ASN1Choice;
						static class: java.lang.Class<org.apache.harmony.security.x501.DirectoryString>;
					}
					/**
					 * X.501 AttributeTypeAndValue
					 */
					export class AttributeTypeAndValue extends java.lang.Object {
						/**
						 * Creates AttributeTypeAndValue with OID and AttributeValue. Parses OID string representation
						 * @param sOid 
						 * @param value 
						 */
						constructor(sOid: string, value: org.apache.harmony.security.x501.AttributeValue);
						/**
						 * According to RFC 3280 (http://www.ietf.org/rfc/rfc3280.txt) X.501 AttributeTypeAndValue structure is defined as follows:
						 */
						static attributeValue: org.apache.harmony.security.asn1.ASN1Type;
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.x501.AttributeTypeAndValue>;
						/**
						 * Appends AttributeTypeAndValue string representation
						 * @param attrFormat - format of DN
						 * @param sb 
						 */
						public appendName(attrFormat: string, sb: java.lang.StringBuilder): void;
						/**
						 * Gets type of the AttributeTypeAndValue
						 */
						public getType(): org.apache.harmony.security.utils.ObjectIdentifier;
					}
					/**
					 * X.501 Name
					 */
					export class Name extends java.lang.Object {
						/**
						 * Creates new <code>Name</code> instance from its DER encoding
						 * @param encoding - ASN.1 DER encoding
						 */
						constructor(encoding: native.Array<number>);
						/**
						 * Creates new <code>Name</code> instance
						 * @param name - Name as String
						 */
						constructor(name: string);
						/**
						 * According to RFC 3280 (http://www.ietf.org/rfc/rfc3280.txt) X.501 Name structure is defined as follows:
						 */
						static ASN1_RDN: org.apache.harmony.security.asn1.ASN1SetOf;
						static ASN1: org.apache.harmony.security.asn1.ASN1SequenceOf;
						static class: java.lang.Class<org.apache.harmony.security.x501.Name>;
						/**
						 * Returns <code>X500Principal</code> instance corresponding to this <code>Name</code> instance
						 */
						public getX500Principal(): javax.security.auth.x500.X500Principal;
						/**
						 * Returns Relative Distinguished Name as <code>String</code> according the format requested
						 * @param format one of X500Principal.CANONICAL, X500Principal.RFC1779, or
						 */
						public getName(format: string): string;
						/**
						 * Gets encoded form of DN
						 */
						public getEncoded(): native.Array<number>;
					}
				}
				export module pkcs10 {
					/**
					 * CertificationRequestInfo ::= SEQUENCE { version Version, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo, attributes [0] IMPLICIT Attributes }
					 */
					export class CertificationRequestInfo extends java.lang.Object {
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.pkcs10.CertificationRequestInfo>;
						public getSubject(): org.apache.harmony.security.x501.Name;
						public getVersion(): number;
						/**
						 * Returns ASN.1 encoded form of this CertificationRequestInfo.
						 */
						public getEncoded(): native.Array<number>;
						public toString(): string;
					}
					/**
					 * The class implements the ASN.1 DER encoding and decoding of the PKCS#10 Certificate Signing Request (CSR). Its ASN notation is as follows:
					 */
					export class CertificationRequest extends java.lang.Object {
						constructor(info: org.apache.harmony.security.pkcs10.CertificationRequestInfo, algId: org.apache.harmony.security.x509.AlgorithmIdentifier, signature: native.Array<number>);
						static ASN1: org.apache.harmony.security.asn1.ASN1Sequence;
						static class: java.lang.Class<org.apache.harmony.security.pkcs10.CertificationRequest>;
						public getInfo(): org.apache.harmony.security.pkcs10.CertificationRequestInfo;
						public getSignature(): native.Array<number>;
						/**
						 * Returns ASN.1 encoded form of this CertificationRequest value.
						 */
						public getEncoded(): native.Array<number>;
					}
				}
				/**
				 *  java.security.IdentityScope
				 */
				export class SystemScope extends java.security.IdentityScope {
					/**
					 *  java.security.IdentityScope#IdentityScope()
					 */
					constructor();
					/**
					 *  java.security.IdentityScope#IdentityScope(String)
					 */
					constructor(name: string);
					/**
					 *  java.security.IdentityScope#IdentityScope(String, IdentityScope)
					 */
					constructor(name: string, scope: java.security.IdentityScope);
					static class: java.lang.Class<org.apache.harmony.security.SystemScope>;
					/**
					 *  java.security.IdentityScope#size()
					 */
					public size(): number;
					/**
					 *  java.security.IdentityScope#getIdentity(java.lang.String)
					 */
					public getIdentity(name: string): java.security.Identity;
					/**
					 *  java.security.IdentityScope#getIdentity(java.security.PublicKey)
					 */
					public getIdentity(key: java.security.IPublicKey): java.security.Identity;
					/**
					 *  java.security.IdentityScope#addIdentity(java.security.Identity)
					 */
					public addIdentity(identity: java.security.Identity): void;
					/**
					 *  java.security.IdentityScope#removeIdentity(java.security.Identity)
					 */
					public removeIdentity(identity: java.security.Identity): void;
					/**
					 *  java.security.IdentityScope#identities()
					 */
					public identities(): java.util.IEnumeration<any>;
					/**
					 * Returns the Identity with the name of the specified principal or null if no Identity with the name of the specified principal is present in this scope.
					 * @param principal 
					 */
					getIdentity(principal: java.security.IPrincipal): java.security.Identity;
				}
				/**
				 * PublicKeyImpl
				 */
				export class PublicKeyImpl extends java.lang.Object implements java.security.IPublicKey {
					constructor(algorithm: string);
					static class: java.lang.Class<org.apache.harmony.security.PublicKeyImpl>;
					public getAlgorithm(): string;
					public getFormat(): string;
					public getEncoded(): native.Array<number>;
					public setAlgorithm(algorithm: string): void;
					public setEncoding(encoding: native.Array<number>): void;
				}
			}
			export module xml {
				export module dom {
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class EntityImpl extends org.apache.harmony.xml.dom.NodeImpl implements org.w3c.dom.IEntity {
						static class: java.lang.Class<org.apache.harmony.xml.dom.EntityImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						public getNotationName(): string;
						public getPublicId(): string;
						public getSystemId(): string;
						public getInputEncoding(): string;
						public getXmlEncoding(): string;
						public getXmlVersion(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * A straightforward implementation of the corresponding W3C DOM node.
					 */
					export class NodeImpl extends java.lang.Object implements org.w3c.dom.INode {
						static class: java.lang.Class<org.apache.harmony.xml.dom.NodeImpl>;
						public appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						public cloneNode(deep: boolean): org.w3c.dom.INode;
						public getAttributes(): org.w3c.dom.INamedNodeMap;
						public getChildNodes(): org.w3c.dom.INodeList;
						public getFirstChild(): org.w3c.dom.INode;
						public getLastChild(): org.w3c.dom.INode;
						public getLocalName(): string;
						public getNamespaceURI(): string;
						public getNextSibling(): org.w3c.dom.INode;
						public getNodeName(): string;
						public getNodeType(): number;
						public getNodeValue(): string;
						public getOwnerDocument(): org.w3c.dom.IDocument;
						public getParentNode(): org.w3c.dom.INode;
						public getPrefix(): string;
						public getPreviousSibling(): org.w3c.dom.INode;
						public hasAttributes(): boolean;
						public hasChildNodes(): boolean;
						public insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						public isSupported(feature: string, version: string): boolean;
						public normalize(): void;
						public removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						public replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						public setNodeValue(nodeValue: string): void;
						public setPrefix(prefix: string): void;
						/**
						 * Validates the element or attribute namespace prefix on this node.
						 * @param prefix namespaceAware whether this node is namespace aware
						 * @param namespaceAware namespaceURI this node's namespace URI
						 * @param namespaceURI 
						 */
						static validatePrefix(prefix: string, namespaceAware: boolean, namespaceURI: string): string;
						/**
						 * Sets node to be namespace-aware and assigns its namespace URI and qualified name.
						 * @param node an element or attribute node.
						 * @param namespaceURI this node's namespace URI. May be null.
						 * @param qualifiedName a possibly-prefixed name like "img" or "html:img".
						 */
						static setNameNS(node: org.apache.harmony.xml.dom.NodeImpl, namespaceURI: string, qualifiedName: string): void;
						/**
						 * Sets node to be not namespace-aware and assigns its name.
						 * @param node an element or attribute node.
						 * @param name 
						 */
						static setName(node: org.apache.harmony.xml.dom.NodeImpl, name: string): void;
						public getBaseURI(): string;
						public compareDocumentPosition(other: org.w3c.dom.INode): number;
						public getTextContent(): string;
						getTextContent(buf: java.lang.StringBuilder): void;
						public setTextContent(textContent: string): void;
						public isSameNode(other: org.w3c.dom.INode): boolean;
						public lookupPrefix(namespaceURI: string): string;
						/**
						 * Returns true if the given prefix is mapped to the given URI on this element. Since child elements can redefine prefixes, this check is necessary: <foo xmlns:a="http://good"> <bar xmlns:a="http://evil"> <a:baz /> </bar> </foo>
						 * @param prefix the prefix to find. Nullable.
						 * @param uri the URI to match. Non-null.
						 */
						isPrefixMappedToUri(prefix: string, uri: string): boolean;
						public isDefaultNamespace(namespaceURI: string): boolean;
						public lookupNamespaceURI(prefix: string): string;
						public isEqualNode(arg: org.w3c.dom.INode): boolean;
						public getFeature(feature: string, version: string): any;
						public setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						public getUserData(key: string): any;
					}
					export module NodeImpl {
						export class UserData extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.xml.dom.NodeImpl.UserData>;
						}
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class NodeListImpl extends java.lang.Object implements org.w3c.dom.INodeList {
						static class: java.lang.Class<org.apache.harmony.xml.dom.NodeListImpl>;
						add(node: org.apache.harmony.xml.dom.NodeImpl): void;
						public getLength(): number;
						public item(index: number): org.w3c.dom.INode;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class EntityReferenceImpl extends org.apache.harmony.xml.dom.LeafNodeImpl implements org.w3c.dom.IEntityReference {
						static class: java.lang.Class<org.apache.harmony.xml.dom.EntityReferenceImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class DocumentTypeImpl extends org.apache.harmony.xml.dom.LeafNodeImpl implements org.w3c.dom.IDocumentType {
						constructor(document: org.apache.harmony.xml.dom.DocumentImpl, qualifiedName: string, publicId: string, systemId: string);
						static class: java.lang.Class<org.apache.harmony.xml.dom.DocumentTypeImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						public getEntities(): org.w3c.dom.INamedNodeMap;
						public getInternalSubset(): string;
						public getName(): string;
						public getNotations(): org.w3c.dom.INamedNodeMap;
						public getPublicId(): string;
						public getSystemId(): string;
						public getTextContent(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * A minimal implementation of DOMConfiguration. This implementation uses inner parameter instances to centralize each parameter's behavior.
					 */
					export class DOMConfigurationImpl extends java.lang.Object implements org.w3c.dom.IDOMConfiguration {
						constructor();
						static class: java.lang.Class<org.apache.harmony.xml.dom.DOMConfigurationImpl>;
						public canSetParameter(name: string, value: any): boolean;
						public setParameter(name: string, value: any): void;
						public getParameter(name: string): any;
						public getParameterNames(): org.w3c.dom.IDOMStringList;
						public normalize(node: org.w3c.dom.INode): void;
					}
					export module DOMConfigurationImpl {
						interface IParameter {
							get(config: org.apache.harmony.xml.dom.DOMConfigurationImpl): any;
							set(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): void;
							canSet(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): boolean;
						}
						export class FixedParameter extends java.lang.Object implements org.apache.harmony.xml.dom.DOMConfigurationImpl.IParameter {
							static class: java.lang.Class<org.apache.harmony.xml.dom.DOMConfigurationImpl.FixedParameter>;
							public get(config: org.apache.harmony.xml.dom.DOMConfigurationImpl): any;
							public set(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): void;
							public canSet(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): boolean;
						}
						export class Parameter implements org.apache.harmony.xml.dom.DOMConfigurationImpl.IParameter {
							constructor(implementation: org.apache.harmony.xml.dom.DOMConfigurationImpl.IParameter);
							public get(config: org.apache.harmony.xml.dom.DOMConfigurationImpl): any;
							public set(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): void;
							public canSet(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): boolean;
						}
						export class BooleanParameter extends java.lang.Object implements org.apache.harmony.xml.dom.DOMConfigurationImpl.IParameter {
							static class: java.lang.Class<org.apache.harmony.xml.dom.DOMConfigurationImpl.BooleanParameter>;
							public canSet(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): boolean;
							get(config: org.apache.harmony.xml.dom.DOMConfigurationImpl): any;
							set(config: org.apache.harmony.xml.dom.DOMConfigurationImpl, value: any): void;
						}
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class AttrImpl extends org.apache.harmony.xml.dom.NodeImpl implements org.w3c.dom.IAttr {
						static class: java.lang.Class<org.apache.harmony.xml.dom.AttrImpl>;
						public getLocalName(): string;
						public getName(): string;
						public getNamespaceURI(): string;
						public getNodeName(): string;
						public getNodeType(): number;
						public getNodeValue(): string;
						public getOwnerElement(): org.w3c.dom.IElement;
						public getPrefix(): string;
						public getSpecified(): boolean;
						public getValue(): string;
						public setPrefix(prefix: string): void;
						public setValue(value: string): void;
						public getSchemaTypeInfo(): org.w3c.dom.ITypeInfo;
						public isId(): boolean;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					export class DOMErrorImpl extends java.lang.Object implements org.w3c.dom.IDOMError {
						constructor(severity: number, type: string);
						static class: java.lang.Class<org.apache.harmony.xml.dom.DOMErrorImpl>;
						public getSeverity(): number;
						public getMessage(): string;
						public getType(): string;
						public getRelatedException(): any;
						public getRelatedData(): any;
						public getLocation(): org.w3c.dom.IDOMLocator;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class DocumentImpl extends org.apache.harmony.xml.dom.InnerNodeImpl implements org.w3c.dom.IDocument {
						constructor(impl: org.apache.harmony.xml.dom.DOMImplementationImpl, namespaceURI: string, qualifiedName: string, doctype: org.w3c.dom.IDocumentType, inputEncoding: string);
						static class: java.lang.Class<org.apache.harmony.xml.dom.DocumentImpl>;
						static isXMLIdentifier(s: string): boolean;
						/**
						 * Returns a copy of the given node or subtree with this document as its owner.
						 * @param operation either {@link UserDataHandler#NODE_CLONED} or
						 * @param node a node belonging to any document or DOM implementation.
						 * @param deep true to recursively copy any child nodes; false to do no such
						 */
						cloneOrImportNode(operation: number, node: org.w3c.dom.INode, deep: boolean): org.w3c.dom.INode;
						public importNode(importedNode: org.w3c.dom.INode, deep: boolean): org.w3c.dom.INode;
						/**
						 * Detaches the node from its parent (if any) and changes its document to this document. The node's subtree and attributes will remain attached, but their document will be changed to this document.
						 */
						public adoptNode(node: org.w3c.dom.INode): org.w3c.dom.INode;
						public renameNode(node: org.w3c.dom.INode, namespaceURI: string, qualifiedName: string): org.w3c.dom.INode;
						public createAttribute(name: string): org.apache.harmony.xml.dom.AttrImpl;
						public createAttributeNS(namespaceURI: string, qualifiedName: string): org.apache.harmony.xml.dom.AttrImpl;
						public createCDATASection(data: string): org.apache.harmony.xml.dom.CDATASectionImpl;
						public createComment(data: string): org.apache.harmony.xml.dom.CommentImpl;
						public createDocumentFragment(): org.apache.harmony.xml.dom.DocumentFragmentImpl;
						public createElement(tagName: string): org.apache.harmony.xml.dom.ElementImpl;
						public createElementNS(namespaceURI: string, qualifiedName: string): org.apache.harmony.xml.dom.ElementImpl;
						public createEntityReference(name: string): org.apache.harmony.xml.dom.EntityReferenceImpl;
						public createProcessingInstruction(target: string, data: string): org.apache.harmony.xml.dom.ProcessingInstructionImpl;
						public createTextNode(data: string): org.apache.harmony.xml.dom.TextImpl;
						public getDoctype(): org.w3c.dom.IDocumentType;
						public getDocumentElement(): org.w3c.dom.IElement;
						public getElementById(elementId: string): org.w3c.dom.IElement;
						public getElementsByTagName(name: string): org.w3c.dom.INodeList;
						public getElementsByTagNameNS(namespaceURI: string, localName: string): org.w3c.dom.INodeList;
						public getImplementation(): org.w3c.dom.IDOMImplementation;
						public getNodeName(): string;
						public getNodeType(): number;
						/**
						 * Document elements may have at most one root element and at most one DTD element.
						 */
						public insertChildAt(toInsert: org.w3c.dom.INode, index: number): org.w3c.dom.INode;
						public getTextContent(): string;
						public getInputEncoding(): string;
						public getXmlEncoding(): string;
						public getXmlStandalone(): boolean;
						public setXmlStandalone(xmlStandalone: boolean): void;
						public getXmlVersion(): string;
						public setXmlVersion(xmlVersion: string): void;
						public getStrictErrorChecking(): boolean;
						public setStrictErrorChecking(strictErrorChecking: boolean): void;
						public getDocumentURI(): string;
						public setDocumentURI(documentUri: string): void;
						public getDomConfig(): org.w3c.dom.IDOMConfiguration;
						public normalizeDocument(): void;
						/**
						 * Returns a map with the user data objects attached to the specified node. This map is readable and writable.
						 */
						getUserDataMap(node: org.apache.harmony.xml.dom.NodeImpl): java.util.IMap<string, org.apache.harmony.xml.dom.NodeImpl.UserData>;
						/**
						 * Returns a map with the user data objects attached to the specified node. The returned map may be read-only.
						 */
						getUserDataMapForRead(node: org.apache.harmony.xml.dom.NodeImpl): java.util.IMap<string, org.apache.harmony.xml.dom.NodeImpl.UserData>;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
						getElementsByTagName(out: org.apache.harmony.xml.dom.NodeListImpl, name: string): void;
						getElementsByTagNameNS(out: org.apache.harmony.xml.dom.NodeListImpl, namespaceURI: string, localName: string): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class TextImpl extends org.apache.harmony.xml.dom.CharacterDataImpl implements org.w3c.dom.IText {
						constructor(document: org.apache.harmony.xml.dom.DocumentImpl, data: string);
						static class: java.lang.Class<org.apache.harmony.xml.dom.TextImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						public splitText(offset: number): org.w3c.dom.IText;
						public isElementContentWhitespace(): boolean;
						public getWholeText(): string;
						public replaceWholeText(content: string): org.w3c.dom.IText;
						/**
						 * Tries to remove this node using itself and the previous node as context. If this node's text is empty, this node is removed and null is returned. If the previous node exists and is a text node, this node's text will be appended to that node's text and this node will be removed.
						 */
						public minimize(): org.apache.harmony.xml.dom.TextImpl;
						/**
						 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getData(): string;
						/**
						 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
						 */
						setData(data: string): void;
						/**
						 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
						 */
						getLength(): number;
						/**
						 * Extracts a range of data from the node.
						 * @param offset Start offset of substring to extract.
						 * @param count The number of 16-bit units to extract.
						 */
						substringData(offset: number, count: number): string;
						/**
						 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
						 * @param arg The <code>DOMString</code> to append.
						 */
						appendData(arg: string): void;
						/**
						 * Insert a string at the specified 16-bit unit offset.
						 * @param offset The character offset at which to insert.
						 * @param arg The <code>DOMString</code> to insert.
						 */
						insertData(offset: number, arg: string): void;
						/**
						 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
						 * @param offset The offset from which to start removing.
						 * @param count The number of 16-bit units to delete. If the sum of
						 */
						deleteData(offset: number, count: number): void;
						/**
						 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
						 * @param offset The offset from which to start replacing.
						 * @param count The number of 16-bit units to replace. If the sum of
						 * @param arg The <code>DOMString</code> with which the range must be
						 */
						replaceData(offset: number, count: number, arg: string): void;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class CharacterDataImpl extends org.apache.harmony.xml.dom.LeafNodeImpl implements org.w3c.dom.ICharacterData {
						static class: java.lang.Class<org.apache.harmony.xml.dom.CharacterDataImpl>;
						public appendData(arg: string): void;
						public deleteData(offset: number, count: number): void;
						public getData(): string;
						/**
						 * Appends this node's text content to the given builder.
						 */
						public appendDataTo(stringBuilder: java.lang.StringBuilder): void;
						public getLength(): number;
						public getNodeValue(): string;
						public insertData(offset: number, arg: string): void;
						public replaceData(offset: number, count: number, arg: string): void;
						public setData(data: string): void;
						public substringData(offset: number, count: number): string;
						/**
						 * The name of this node, depending on its type; see the table above.
						 */
						getNodeName(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * A code representing the type of the underlying object, as defined above.
						 */
						getNodeType(): number;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class DocumentFragmentImpl extends org.apache.harmony.xml.dom.InnerNodeImpl implements org.w3c.dom.IDocumentFragment {
						static class: java.lang.Class<org.apache.harmony.xml.dom.DocumentFragmentImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class NotationImpl extends org.apache.harmony.xml.dom.LeafNodeImpl implements org.w3c.dom.INotation {
						static class: java.lang.Class<org.apache.harmony.xml.dom.NotationImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						public getPublicId(): string;
						public getSystemId(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class ElementImpl extends org.apache.harmony.xml.dom.InnerNodeImpl implements org.w3c.dom.IElement {
						static class: java.lang.Class<org.apache.harmony.xml.dom.ElementImpl>;
						ElementAttrNamedNodeMapImpl: {
	new (): org.apache.harmony.xml.dom.ElementImpl.ElementAttrNamedNodeMapImpl;
};
						public getAttribute(name: string): string;
						public getAttributeNS(namespaceURI: string, localName: string): string;
						public getAttributeNode(name: string): org.apache.harmony.xml.dom.AttrImpl;
						public getAttributeNodeNS(namespaceURI: string, localName: string): org.apache.harmony.xml.dom.AttrImpl;
						public getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * This implementation walks the entire document looking for an element with the given ID attribute. We should consider adding an index to speed navigation of large documents.
						 */
						getElementById(name: string): org.w3c.dom.IElement;
						public getElementsByTagName(name: string): org.w3c.dom.INodeList;
						public getElementsByTagNameNS(namespaceURI: string, localName: string): org.w3c.dom.INodeList;
						public getLocalName(): string;
						public getNamespaceURI(): string;
						public getNodeName(): string;
						public getNodeType(): number;
						public getPrefix(): string;
						public getTagName(): string;
						public hasAttribute(name: string): boolean;
						public hasAttributeNS(namespaceURI: string, localName: string): boolean;
						public hasAttributes(): boolean;
						public removeAttribute(name: string): void;
						public removeAttributeNS(namespaceURI: string, localName: string): void;
						public removeAttributeNode(oldAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
						public setAttribute(name: string, value: string): void;
						public setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;
						public setAttributeNode(newAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
						public setAttributeNodeNS(newAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
						public setPrefix(prefix: string): void;
						public getSchemaTypeInfo(): org.w3c.dom.ITypeInfo;
						public setIdAttribute(name: string, isId: boolean): void;
						public setIdAttributeNS(namespaceURI: string, localName: string, isId: boolean): void;
						public setIdAttributeNode(idAttr: org.w3c.dom.IAttr, isId: boolean): void;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
						getElementsByTagName(out: org.apache.harmony.xml.dom.NodeListImpl, name: string): void;
						getElementsByTagNameNS(out: org.apache.harmony.xml.dom.NodeListImpl, namespaceURI: string, localName: string): void;
					}
					export module ElementImpl {
						export class ElementAttrNamedNodeMapImpl extends java.lang.Object implements org.w3c.dom.INamedNodeMap {
							static class: java.lang.Class<org.apache.harmony.xml.dom.ElementImpl.ElementAttrNamedNodeMapImpl>;
							public getLength(): number;
							public getNamedItem(name: string): org.w3c.dom.INode;
							public getNamedItemNS(namespaceURI: string, localName: string): org.w3c.dom.INode;
							public item(index: number): org.w3c.dom.INode;
							public removeNamedItem(name: string): org.w3c.dom.INode;
							public removeNamedItemNS(namespaceURI: string, localName: string): org.w3c.dom.INode;
							public setNamedItem(arg: org.w3c.dom.INode): org.w3c.dom.INode;
							public setNamedItemNS(arg: org.w3c.dom.INode): org.w3c.dom.INode;
						}
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class LeafNodeImpl extends org.apache.harmony.xml.dom.NodeImpl {
						static class: java.lang.Class<org.apache.harmony.xml.dom.LeafNodeImpl>;
						public getNextSibling(): org.w3c.dom.INode;
						public getParentNode(): org.w3c.dom.INode;
						public getPreviousSibling(): org.w3c.dom.INode;
						isParentOf(node: org.w3c.dom.INode): boolean;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive).
					 */
					export class InnerNodeImpl extends org.apache.harmony.xml.dom.LeafNodeImpl {
						static class: java.lang.Class<org.apache.harmony.xml.dom.InnerNodeImpl>;
						public appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						public getChildNodes(): org.w3c.dom.INodeList;
						public getFirstChild(): org.w3c.dom.INode;
						public getLastChild(): org.w3c.dom.INode;
						public getNextSibling(): org.w3c.dom.INode;
						public hasChildNodes(): boolean;
						public insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Inserts newChild at index. If it is already child of another node, it is removed from there.
						 */
						insertChildAt(newChild: org.w3c.dom.INode, index: number): org.w3c.dom.INode;
						public isParentOf(node: org.w3c.dom.INode): boolean;
						/**
						 * Normalize the text nodes within this subtree. Although named similarly, this method is unrelated to Document.normalize.
						 */
						public normalize(): void;
						public removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes oldChild and adds newChild in its place. This is not atomic.
						 */
						public replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						public getTextContent(): string;
						getTextContent(buf: java.lang.StringBuilder): void;
						hasTextContent(child: org.w3c.dom.INode): boolean;
						getElementsByTagName(out: org.apache.harmony.xml.dom.NodeListImpl, name: string): void;
						getElementsByTagNameNS(out: org.apache.harmony.xml.dom.NodeListImpl, namespaceURI: string, localName: string): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class DOMImplementationImpl extends java.lang.Object implements org.w3c.dom.IDOMImplementation {
						static class: java.lang.Class<org.apache.harmony.xml.dom.DOMImplementationImpl>;
						public createDocument(namespaceURI: string, qualifiedName: string, doctype: org.w3c.dom.IDocumentType): org.w3c.dom.IDocument;
						public createDocumentType(qualifiedName: string, publicId: string, systemId: string): org.w3c.dom.IDocumentType;
						public hasFeature(feature: string, version: string): boolean;
						/**
						 * Requests the singleton instance of the class. Creates it first, if necessary.
						 */
						public static getInstance(): org.apache.harmony.xml.dom.DOMImplementationImpl;
						public getFeature(feature: string, version: string): any;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class CommentImpl extends org.apache.harmony.xml.dom.CharacterDataImpl implements org.w3c.dom.IComment {
						static class: java.lang.Class<org.apache.harmony.xml.dom.CommentImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						/**
						 * Returns true if this comment contains the illegal character sequence "--". Such nodes may not be serialized.
						 */
						public containsDashDash(): boolean;
						/**
						 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getData(): string;
						/**
						 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
						 */
						setData(data: string): void;
						/**
						 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
						 */
						getLength(): number;
						/**
						 * Extracts a range of data from the node.
						 * @param offset Start offset of substring to extract.
						 * @param count The number of 16-bit units to extract.
						 */
						substringData(offset: number, count: number): string;
						/**
						 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
						 * @param arg The <code>DOMString</code> to append.
						 */
						appendData(arg: string): void;
						/**
						 * Insert a string at the specified 16-bit unit offset.
						 * @param offset The character offset at which to insert.
						 * @param arg The <code>DOMString</code> to insert.
						 */
						insertData(offset: number, arg: string): void;
						/**
						 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
						 * @param offset The offset from which to start removing.
						 * @param count The number of 16-bit units to delete. If the sum of
						 */
						deleteData(offset: number, count: number): void;
						/**
						 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
						 * @param offset The offset from which to start replacing.
						 * @param count The number of 16-bit units to replace. If the sum of
						 * @param arg The <code>DOMString</code> with which the range must be
						 */
						replaceData(offset: number, count: number, arg: string): void;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class ProcessingInstructionImpl extends org.apache.harmony.xml.dom.LeafNodeImpl implements org.w3c.dom.IProcessingInstruction {
						static class: java.lang.Class<org.apache.harmony.xml.dom.ProcessingInstructionImpl>;
						public getData(): string;
						public getNodeName(): string;
						public getNodeType(): number;
						public getNodeValue(): string;
						public getTarget(): string;
						public setData(data: string): void;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
					/**
					 * Provides a straightforward implementation of the corresponding W3C DOM interface. The class is used internally only, thus only notable members that are not in the original interface are documented (the W3C docs are quite extensive). Hope that's ok.
					 */
					export class CDATASectionImpl extends org.apache.harmony.xml.dom.TextImpl implements org.w3c.dom.ICDATASection {
						constructor(document: org.apache.harmony.xml.dom.DocumentImpl, data: string);
						static class: java.lang.Class<org.apache.harmony.xml.dom.CDATASectionImpl>;
						public getNodeName(): string;
						public getNodeType(): number;
						/**
						 * Splits this CDATA node into parts that do not contain a "]]>" sequence. Any newly created nodes will be inserted before this node.
						 */
						public split(): void;
						/**
						 * Returns true if this CDATA section contains the illegal character sequence "]]>". Such nodes must be #split before they are serialized.
						 */
						public needsSplitting(): boolean;
						/**
						 * Replaces this node with a semantically equivalent text node. This node will be removed from the DOM tree and the new node inserted in its place.
						 */
						public replaceWithText(): org.apache.harmony.xml.dom.TextImpl;
						/**
						 * Breaks this node into two nodes at the specified <code>offset</code>, keeping both in the tree as siblings. After being split, this node will contain all the content up to the <code>offset</code> point. A new node of the same type, which contains all the content at and after the <code>offset</code> point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the <code>offset</code> is equal to the length of this node, the new node has no data.
						 * @param offset The 16-bit unit offset at which to split, starting from
						 */
						splitText(offset: number): org.w3c.dom.IText;
						/**
						 * Returns whether this text node contains <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'> element content whitespace</a>, often abusively called "ignorable whitespace". The text node is determined to contain whitespace in element content during the load of the document or if validation occurs while using <code>Document.normalizeDocument()</code>. DOM Level 3
						 */
						isElementContentWhitespace(): boolean;
						/**
						 * Returns all text of <code>Text</code> nodes logically-adjacent text nodes to this node, concatenated in document order. <br>For instance, in the example below <code>wholeText</code> on the <code>Text</code> node that contains "bar" returns "barfoo", while on the <code>Text</code> node that contains "foo" it returns "barfoo". DOM Level 3
						 */
						getWholeText(): string;
						/**
						 * Replaces the text of the current node and all logically-adjacent text nodes with the specified text. All logically-adjacent text nodes are removed including the current node unless it was the recipient of the replacement text. <br>This method returns the node which received the replacement text. The returned node is: <ul> <li><code>null</code>, when the replacement text is the empty string; </li> <li>the current node, except when the current node is read-only; </li> <li> a new <code>Text</code> node of the same type ( <code>Text</code> or <code>CDATASection</code>) as the current node inserted at the location of the replacement. </li> </ul> <br>For instance, in the above example calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" with "yo" in argument results in the following: <br>Where the nodes to be removed are read-only descendants of an <code>EntityReference</code>, the <code>EntityReference</code> must be removed instead of the read-only nodes. If any <code>EntityReference</code> to be removed has descendants that are not <code>EntityReference</code>, <code>Text</code>, or <code>CDATASection</code> nodes, the <code>replaceWholeText</code> method must fail before performing any modification of the document, raising a <code>DOMException</code> with the code <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br>For instance, in the example below calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" fails, because the <code>EntityReference</code> node "ent" contains an <code>Element</code> node which cannot be removed.
						 * @param content The content of the replacing <code>Text</code> node.
						 */
						replaceWholeText(content: string): org.w3c.dom.IText;
						/**
						 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getData(): string;
						/**
						 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
						 */
						setData(data: string): void;
						/**
						 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
						 */
						getLength(): number;
						/**
						 * Extracts a range of data from the node.
						 * @param offset Start offset of substring to extract.
						 * @param count The number of 16-bit units to extract.
						 */
						substringData(offset: number, count: number): string;
						/**
						 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
						 * @param arg The <code>DOMString</code> to append.
						 */
						appendData(arg: string): void;
						/**
						 * Insert a string at the specified 16-bit unit offset.
						 * @param offset The character offset at which to insert.
						 * @param arg The <code>DOMString</code> to insert.
						 */
						insertData(offset: number, arg: string): void;
						/**
						 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
						 * @param offset The offset from which to start removing.
						 * @param count The number of 16-bit units to delete. If the sum of
						 */
						deleteData(offset: number, count: number): void;
						/**
						 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
						 * @param offset The offset from which to start replacing.
						 * @param count The number of 16-bit units to replace. If the sum of
						 * @param arg The <code>DOMString</code> with which the range must be
						 */
						replaceData(offset: number, count: number, arg: string): void;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
						 */
						getNodeValue(): string;
						/**
						 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
						 */
						setNodeValue(nodeValue: string): void;
						/**
						 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
						 */
						getParentNode(): org.w3c.dom.INode;
						/**
						 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
						 */
						getChildNodes(): org.w3c.dom.INodeList;
						/**
						 * The first child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getFirstChild(): org.w3c.dom.INode;
						/**
						 * The last child of this node. If there is no such node, this returns <code>null</code>.
						 */
						getLastChild(): org.w3c.dom.INode;
						/**
						 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
						 */
						getPreviousSibling(): org.w3c.dom.INode;
						/**
						 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
						 */
						getNextSibling(): org.w3c.dom.INode;
						/**
						 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
						 */
						getAttributes(): org.w3c.dom.INamedNodeMap;
						/**
						 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
						 */
						getOwnerDocument(): org.w3c.dom.IDocument;
						/**
						 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
						 * @param newChild The node to insert.
						 * @param refChild The reference node, i.e., the node before which the
						 */
						insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
						 * @param newChild The new node to put in the child list.
						 * @param oldChild The node being replaced in the list.
						 */
						replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
						 * @param oldChild The node being removed.
						 */
						removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
						 * @param newChild The node to add.If it is a
						 */
						appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
						/**
						 * Returns whether this node has any children.
						 */
						hasChildNodes(): boolean;
						/**
						 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
						 * @param deep If <code>true</code>, recursively clone the subtree under
						 */
						cloneNode(deep: boolean): org.w3c.dom.INode;
						/**
						 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
						 */
						normalize(): void;
						/**
						 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
						 * @param feature The name of the feature to test.
						 * @param version This is the version number of the feature to test.
						 */
						isSupported(feature: string, version: string): boolean;
						/**
						 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
						 */
						getNamespaceURI(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
						 */
						getPrefix(): string;
						/**
						 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
						 */
						setPrefix(prefix: string): void;
						/**
						 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
						 */
						getLocalName(): string;
						/**
						 * Returns whether this node (if it is an element) has any attributes.
						 */
						hasAttributes(): boolean;
						/**
						 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
						 */
						getBaseURI(): string;
						/**
						 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
						 * @param other The node to compare against the reference node.
						 */
						compareDocumentPosition(other: org.w3c.dom.INode): number;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
						 */
						getTextContent(): string;
						/**
						 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
						 */
						setTextContent(textContent: string): void;
						/**
						 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
						 * @param other The node to test against.
						 */
						isSameNode(other: org.w3c.dom.INode): boolean;
						/**
						 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
						 * @param namespaceURI The namespace URI to look for.
						 */
						lookupPrefix(namespaceURI: string): string;
						/**
						 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
						 * @param namespaceURI The namespace URI to look for.
						 */
						isDefaultNamespace(namespaceURI: string): boolean;
						/**
						 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
						 * @param prefix The prefix to look for. If this parameter is
						 */
						lookupNamespaceURI(prefix: string): string;
						/**
						 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
						 * @param arg The node to compare equality with.
						 */
						isEqualNode(arg: org.w3c.dom.INode): boolean;
						/**
						 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
						 * @param feature The name of the feature requested. Note that any plus
						 * @param version This is the version number of the feature to test.
						 */
						getFeature(feature: string, version: string): any;
						/**
						 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
						 * @param key The key to associate the object to.
						 * @param data The object to associate to the given key, or
						 * @param handler The handler to associate to that key, or
						 */
						setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
						/**
						 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
						 * @param key The key the object is associated to.
						 */
						getUserData(key: string): any;
						getTextContent(buf: java.lang.StringBuilder): void;
					}
				}
				/**
				 * SAX wrapper around Expat. Interns strings. Does not support validation. Does not support DTDHandler.
				 */
				export class ExpatReader extends java.lang.Object implements org.xml.sax.IXMLReader {
					constructor();
					static class: java.lang.Class<org.apache.harmony.xml.ExpatReader>;
					public getFeature(name: string): boolean;
					public setFeature(name: string, value: boolean): void;
					public getProperty(name: string): any;
					public setProperty(name: string, value: any): void;
					public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
					public getEntityResolver(): org.xml.sax.IEntityResolver;
					public setDTDHandler(dtdHandler: org.xml.sax.IDTDHandler): void;
					public getDTDHandler(): org.xml.sax.IDTDHandler;
					public setContentHandler(handler: org.xml.sax.IContentHandler): void;
					public getContentHandler(): org.xml.sax.IContentHandler;
					public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
					public getErrorHandler(): org.xml.sax.IErrorHandler;
					/**
					 * Returns the current lexical handler.
					 */
					public getLexicalHandler(): org.xml.sax.ext.ILexicalHandler;
					/**
					 * Registers a lexical event handler. Supports neither LexicalHandler#startEntity(String) nor LexicalHandler#endEntity(String).
					 * @param lexicalHandler listens for lexical events
					 */
					public setLexicalHandler(lexicalHandler: org.xml.sax.ext.ILexicalHandler): void;
					/**
					 * Returns true if this SAX parser processes namespaces.
					 */
					public isNamespaceProcessingEnabled(): boolean;
					/**
					 * Enables or disables namespace processing. Set to true by default. If you enable namespace processing, the parser will invoke ContentHandler#startPrefixMapping(String, String) and ContentHandler#endPrefixMapping(String), and it will filter out namespace declarations from element attributes.
					 */
					public setNamespaceProcessingEnabled(processNamespaces: boolean): void;
					public parse(input: org.xml.sax.InputSource): void;
					public parse(systemId: string): void;
				}
				export module ExpatReader {
					export class Feature extends java.lang.Object {
						static class: java.lang.Class<org.apache.harmony.xml.ExpatReader.Feature>;
					}
				}
				/**
				 * Used internally to propogate Expat errors. We convert these exceptions into SAXParseExceptions before propogating them to the client.
				 */
				export class ExpatException extends java.lang.Exception {
					constructor(message: string);
					static class: java.lang.Class<org.apache.harmony.xml.ExpatException>;
				}
				export module parsers {
					/**
					 * Provides a straightforward SAXParserFactory implementation based on Expat. The class is used internally only, thus only notable members that are not already in the abstract superclass are documented.
					 */
					export class SAXParserFactoryImpl extends javax.xml.parsers.SAXParserFactory {
						constructor();
						static class: java.lang.Class<org.apache.harmony.xml.parsers.SAXParserFactoryImpl>;
						public getFeature(name: string): boolean;
						public isNamespaceAware(): boolean;
						public isValidating(): boolean;
						public newSAXParser(): javax.xml.parsers.SAXParser;
						public setFeature(name: string, value: boolean): void;
						public setNamespaceAware(value: boolean): void;
						public setValidating(value: boolean): void;
					}
					/**
					 * A SAX parser based on Expat.
					 */
					export class SAXParserImpl extends javax.xml.parsers.SAXParser {
						static class: java.lang.Class<org.apache.harmony.xml.parsers.SAXParserImpl>;
						public reset(): void;
						public getParser(): org.xml.sax.IParser;
						public getProperty(name: string): any;
						public getXMLReader(): org.xml.sax.IXMLReader;
						public isNamespaceAware(): boolean;
						public isValidating(): boolean;
						public setProperty(name: string, value: any): void;
					}
					/**
					 * Provides a straightforward DocumentBuilderFactory implementation based on XMLPull/KXML. The class is used internally only, thus only notable members that are not already in the abstract superclass are documented. Hope that's ok.
					 */
					export class DocumentBuilderFactoryImpl extends javax.xml.parsers.DocumentBuilderFactory {
						constructor();
						static class: java.lang.Class<org.apache.harmony.xml.parsers.DocumentBuilderFactoryImpl>;
						public getAttribute(name: string): any;
						public getFeature(name: string): boolean;
						public newDocumentBuilder(): javax.xml.parsers.DocumentBuilder;
						public setAttribute(name: string, value: any): void;
						public setFeature(name: string, value: boolean): void;
					}
					/**
					 * Builds a DOM using KXmlParser.
					 */
					export class DocumentBuilderImpl extends javax.xml.parsers.DocumentBuilder {
						static class: java.lang.Class<org.apache.harmony.xml.parsers.DocumentBuilderImpl>;
						public reset(): void;
						public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
						public isNamespaceAware(): boolean;
						public isValidating(): boolean;
						public newDocument(): org.w3c.dom.IDocument;
						public parse(source: org.xml.sax.InputSource): org.w3c.dom.IDocument;
						public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
						public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
						/**
						 * Controls whether this DocumentBuilder ignores comments.
						 */
						public setIgnoreComments(value: boolean): void;
						public setCoalescing(value: boolean): void;
						/**
						 * Controls whether this DocumentBuilder ignores element content whitespace.
						 */
						public setIgnoreElementContentWhitespace(value: boolean): void;
						/**
						 * Controls whether this DocumentBuilder is namespace-aware.
						 */
						public setNamespaceAware(value: boolean): void;
						/**
						 * Parse the content of the given <code>InputStream</code> as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the <code>InputStream</code> is null.
						 * @param is InputStream containing the content to be parsed.
						 */
						parse(is: java.io.InputStream): org.w3c.dom.IDocument;
						/**
						 * Parse the content of the given <code>InputStream</code> as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the <code>InputStream</code> is null.
						 * @param is InputStream containing the content to be parsed.
						 * @param systemId Provide a base for resolving relative URIs.
						 */
						parse(is: java.io.InputStream, systemId: string): org.w3c.dom.IDocument;
						/**
						 * Parse the content of the given URI as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the URI is <code>null</code> null.
						 * @param uri The location of the content to be parsed.
						 */
						parse(uri: string): org.w3c.dom.IDocument;
						/**
						 * Parse the content of the given file as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the <code>File</code> is <code>null</code> null.
						 * @param f The file containing the XML to parse.
						 */
						parse(f: java.io.File): org.w3c.dom.IDocument;
					}
				}
				/**
				 * Adapts SAX API to the Expat native XML parser. Not intended for reuse across documents.
				 */
				export class ExpatParser extends java.lang.Object {
					static class: java.lang.Class<org.apache.harmony.xml.ExpatParser>;
					/**
					 * Called at the start of an element.
					 * @param uri namespace URI of element or "" if namespace processing is
					 * @param localName local name of element or "" if namespace processing is
					 * @param qName qualified name or "" if namespace processing is enabled
					 * @param attributePointer pointer to native attribute char*--we keep
					 * @param attributeCount number of attributes
					 */
					startElement(uri: string, localName: string, qName: string, attributePointer: number, attributeCount: number): void;
					endElement(uri: string, localName: string, qName: string): void;
					text(text: native.Array<string>, length: number): void;
					comment(text: native.Array<string>, length: number): void;
					startCdata(): void;
					endCdata(): void;
					startNamespace(prefix: string, uri: string): void;
					endNamespace(prefix: string): void;
					startDtd(name: string, publicId: string, systemId: string): void;
					endDtd(): void;
					processingInstruction(target: string, data: string): void;
					notationDecl(name: string, publicId: string, systemId: string): void;
					unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
					/**
					 * Handles an external entity.
					 * @param context to be passed back to Expat when we parse the entity
					 * @param publicId the publicId of the entity
					 * @param systemId the systemId of the entity
					 */
					handleExternalEntity(context: string, publicId: string, systemId: string): void;
					/**
					 * Appends part of an XML document. This parser will parse the given XML to the extent possible and dispatch to the appropriate methods.
					 * @param xml a whole or partial snippet of XML
					 */
					append(xml: string): void;
					/**
					 * Appends part of an XML document. This parser will parse the given XML to the extent possible and dispatch to the appropriate methods.
					 * @param xml a whole or partial snippet of XML
					 * @param offset into the char[]
					 * @param length of characters to use
					 */
					append(xml: native.Array<string>, offset: number, length: number): void;
					/**
					 * Appends part of an XML document. This parser will parse the given XML to the extent possible and dispatch to the appropriate methods.
					 * @param xml a whole or partial snippet of XML
					 */
					append(xml: native.Array<number>): void;
					/**
					 * Parses an XML document from the given input stream.
					 */
					parseDocument(input: java.io.InputStream): void;
					/**
					 * Parses an XML Document from the given reader.
					 */
					parseDocument(input: java.io.Reader): void;
					/**
					 * Indicate that we're finished parsing.
					 */
					finish(): void;
					protected finalize(): void;
					/**
					 * Clones the current attributes so they can be used outside of startElement().
					 */
					cloneAttributes(): org.xml.sax.IAttributes;
					/**
					 * Opens an InputStream for the given URL.
					 */
					static openUrl(url: string): java.io.InputStream;
				}
				export module ExpatParser {
					export class ExpatLocator extends java.lang.Object implements org.xml.sax.ILocator {
						static class: java.lang.Class<org.apache.harmony.xml.ExpatParser.ExpatLocator>;
						public getPublicId(): string;
						public getSystemId(): string;
						public getLineNumber(): number;
						public getColumnNumber(): number;
						public toString(): string;
					}
					/**
					 * Includes line and column in the message.
					 */
					export class ParseException extends org.xml.sax.SAXParseException {
						static class: java.lang.Class<org.apache.harmony.xml.ExpatParser.ParseException>;
					}
					/**
					 * Parses an external entity.
					 */
					export class EntityParser extends org.apache.harmony.xml.ExpatParser {
						static class: java.lang.Class<org.apache.harmony.xml.ExpatParser.EntityParser>;
						startElement(uri: string, localName: string, qName: string, attributePointer: number, attributeCount: number): void;
						endElement(uri: string, localName: string, qName: string): void;
						protected finalize(): void;
					}
					/**
					 * Used for cloned attributes.
					 */
					export class ClonedAttributes extends org.apache.harmony.xml.ExpatAttributes {
						static class: java.lang.Class<org.apache.harmony.xml.ExpatParser.ClonedAttributes>;
						public getParserPointer(): number;
						public getPointer(): number;
						public getLength(): number;
						protected finalize(): void;
					}
					/**
					 * Attributes that are only valid during startElement().
					 */
					export class CurrentAttributes extends org.apache.harmony.xml.ExpatAttributes {
						static class: java.lang.Class<org.apache.harmony.xml.ExpatParser.CurrentAttributes>;
						public getParserPointer(): number;
						public getPointer(): number;
						public getLength(): number;
					}
				}
				/**
				 * Wraps native attribute array.
				 */
				export class ExpatAttributes extends java.lang.Object implements org.xml.sax.IAttributes {
					static class: java.lang.Class<org.apache.harmony.xml.ExpatAttributes>;
					/**
					 * Gets the number of attributes.
					 */
					public getLength(): number;
					/**
					 * Gets the pointer to the parser. We need this so we can get to the interned string pool.
					 */
					getParserPointer(): number;
					/**
					 * Gets the pointer to the underlying attribute array. Can be 0 if the length is 0.
					 */
					public getPointer(): number;
					public getURI(index: number): string;
					public getLocalName(index: number): string;
					public getQName(index: number): string;
					public getType(index: number): string;
					public getValue(index: number): string;
					public getIndex(uri: string, localName: string): number;
					public getIndex(qName: string): number;
					public getType(uri: string, localName: string): string;
					public getType(qName: string): string;
					public getValue(uri: string, localName: string): string;
					public getValue(qName: string): string;
					protected freeAttributes(pointer: number): void;
				}
			}
			export module luni {
				export module internal {
					export module util {
						/**
						 * This class provides a way to add an implementation specific way to access the current timezone.
						 */
						export class TimezoneGetter extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.luni.internal.util.TimezoneGetter>;
							/**
							 * Retrieves the singleton instance of this class.
							 */
							public static getInstance(): org.apache.harmony.luni.internal.util.TimezoneGetter;
							/**
							 * Sets the singleton instance of this class.
							 * @param getter instance
							 */
							public static setInstance(getter: org.apache.harmony.luni.internal.util.TimezoneGetter): void;
							/**
							 * Retrieves the ID of the current time zone.
							 */
							public getId(): string;
						}
					}
				}
				export module util {
					/**
					 * Implements the actual DeleteOnExit mechanism. Is registered as a shutdown hook in the Runtime, once it is actually being used.
					 */
					export class DeleteOnExit extends java.lang.Thread {
						constructor();
						static class: java.lang.Class<org.apache.harmony.luni.util.DeleteOnExit>;
						/**
						 * Returns our singleton instance, creating it if necessary.
						 */
						public static getInstance(): org.apache.harmony.luni.util.DeleteOnExit;
						/**
						 * Schedules a file for deletion.
						 * @param filename The file to delete.
						 */
						public addFile(filename: string): void;
						/**
						 * Does the actual work. Note we (a) first sort the files lexicographically and then (b) delete them in reverse order. This is to make sure files get deleted before their parent directories.
						 */
						public run(): void;
					}
				}
				export module lang {
					export module reflect {
						export class ImplForArray extends java.lang.Object implements java.lang.reflect.IGenericArrayType {
							constructor(componentType: java.lang.reflect.IType);
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.ImplForArray>;
							public getGenericComponentType(): java.lang.reflect.IType;
							public toString(): string;
						}
						export class Types extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.Types>;
							public static getClonedTypeArray(types: org.apache.harmony.luni.lang.reflect.ListOfTypes): native.Array<java.lang.reflect.IType>;
							public static getType(type: java.lang.reflect.IType): java.lang.reflect.IType;
						}
						export class ListOfVariables extends java.lang.Object {
							static EMPTY: native.Array<java.lang.reflect.ITypeVariable<any>>;
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.ListOfVariables>;
							add(elem: java.lang.reflect.ITypeVariable<any>): void;
							getArray(): native.Array<java.lang.reflect.ITypeVariable<any>>;
						}
						/**
						 * Implements a parser for the generics signature attribute. Uses a top-down, recursive descent parsing approach for the following grammar: <pre> ClassSignature ::= OptFormalTypeParams SuperclassSignature {SuperinterfaceSignature}. SuperclassSignature ::= ClassTypeSignature. SuperinterfaceSignature ::= ClassTypeSignature.
						 */
						export class GenericSignatureParser extends java.lang.Object {
							constructor(loader: java.lang.ClassLoader);
							exceptionTypes: org.apache.harmony.luni.lang.reflect.ListOfTypes;
							parameterTypes: org.apache.harmony.luni.lang.reflect.ListOfTypes;
							formalTypeParameters: native.Array<java.lang.reflect.ITypeVariable<any>>;
							returnType: java.lang.reflect.IType;
							fieldType: java.lang.reflect.IType;
							interfaceTypes: org.apache.harmony.luni.lang.reflect.ListOfTypes;
							superclassType: java.lang.reflect.IType;
							loader: java.lang.ClassLoader;
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.GenericSignatureParser>;
							setInput(genericDecl: java.lang.reflect.IGenericDeclaration, input: string): void;
							/**
							 * Parses the generic signature of a class and creates the data structure representing the signature.
							 * @param genericDecl the GenericDeclaration calling this method
							 * @param signature the generic signature of the class
							 */
							public parseForClass(genericDecl: java.lang.reflect.IGenericDeclaration, signature: string): void;
							/**
							 * Parses the generic signature of a method and creates the data structure representing the signature.
							 * @param genericDecl the GenericDeclaration calling this method
							 * @param signature the generic signature of the class
							 * @param rawExceptionTypes 
							 */
							public parseForMethod(genericDecl: java.lang.reflect.IGenericDeclaration, signature: string, rawExceptionTypes: native.Array<java.lang.Class<any>>): void;
							/**
							 * Parses the generic signature of a constructor and creates the data structure representing the signature.
							 * @param genericDecl the GenericDeclaration calling this method
							 * @param signature the generic signature of the class
							 * @param rawExceptionTypes 
							 */
							public parseForConstructor(genericDecl: java.lang.reflect.IGenericDeclaration, signature: string, rawExceptionTypes: native.Array<java.lang.Class<any>>): void;
							/**
							 * Parses the generic signature of a field and creates the data structure representing the signature.
							 * @param genericDecl the GenericDeclaration calling this method
							 * @param signature the generic signature of the class
							 */
							public parseForField(genericDecl: java.lang.reflect.IGenericDeclaration, signature: string): void;
							parseClassSignature(): void;
							parseOptFormalTypeParameters(): void;
							parseFormalTypeParameter(): org.apache.harmony.luni.lang.reflect.ImplForVariable<java.lang.reflect.IGenericDeclaration>;
							parseFieldTypeSignature(): java.lang.reflect.IType;
							parseClassTypeSignature(): java.lang.reflect.IType;
							parseOptTypeArguments(): org.apache.harmony.luni.lang.reflect.ListOfTypes;
							parseTypeArgument(): java.lang.reflect.IType;
							parseTypeVariableSignature(): org.apache.harmony.luni.lang.reflect.ImplForVariable<java.lang.reflect.IGenericDeclaration>;
							parseTypeSignature(): java.lang.reflect.IType;
							/**
							 * @param rawExceptionTypes the non-generic exceptions. This is necessary
							 */
							parseMethodTypeSignature(rawExceptionTypes: native.Array<java.lang.Class<any>>): void;
							parseReturnType(): java.lang.reflect.IType;
							scanSymbol(): void;
							expect(c: string): void;
							isStopSymbol(ch: string): boolean;
							scanIdentifier(): void;
						}
						export class ListOfTypes extends java.lang.Object {
							static EMPTY: org.apache.harmony.luni.lang.reflect.ListOfTypes;
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.ListOfTypes>;
							add(type: java.lang.reflect.IType): void;
							length(): number;
							public getResolvedTypes(): native.Array<java.lang.reflect.IType>;
							public toString(): string;
						}
						export class ImplForVariable<D extends java.lang.reflect.IGenericDeclaration> extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.ImplForVariable<any>>;
							public equals(o: any): boolean;
							public hashCode(): number;
							static findFormalVar(layer: java.lang.reflect.IGenericDeclaration, name: string): java.lang.reflect.ITypeVariable<any>;
							resolve(): void;
							public getBounds(): native.Array<java.lang.reflect.IType>;
							public getGenericDeclaration(): D;
							public getName(): string;
							public toString(): string;
						}
						export class ImplForType extends java.lang.Object implements java.lang.reflect.IParameterizedType {
							constructor(ownerType: org.apache.harmony.luni.lang.reflect.ImplForType, rawTypeName: string, args: org.apache.harmony.luni.lang.reflect.ListOfTypes, loader: java.lang.ClassLoader);
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.ImplForType>;
							public getActualTypeArguments(): native.Array<java.lang.reflect.IType>;
							public getOwnerType(): java.lang.reflect.IType;
							public getRawType(): java.lang.Class<any>;
							getResolvedType(): java.lang.reflect.IType;
							public toString(): string;
						}
						export class ImplForWildcard extends java.lang.Object implements java.lang.reflect.IWildcardType {
							constructor(extendsBound: org.apache.harmony.luni.lang.reflect.ListOfTypes, superBound: org.apache.harmony.luni.lang.reflect.ListOfTypes);
							static class: java.lang.Class<org.apache.harmony.luni.lang.reflect.ImplForWildcard>;
							public getLowerBounds(): native.Array<java.lang.reflect.IType>;
							public getUpperBounds(): native.Array<java.lang.reflect.IType>;
							public equals(o: any): boolean;
							public hashCode(): number;
							public toString(): string;
						}
					}
				}
			}
			export module kernel {
				export module vm {
					/**
					 * String utility functions.
					 */
					export class StringUtils extends java.lang.Object {
						static class: java.lang.Class<org.apache.harmony.kernel.vm.StringUtils>;
						/**
						 * Combine a list of strings in an <code>Object[]</code> into a single string.
						 * @param list non-null; the strings to combine
						 */
						public static combineStrings(list: native.Array<any>): string;
					}
				}
			}
			export module dalvik {
				export module ddmc {
					/**
					 * This represents our connection to the DDM Server.
					 */
					export class DdmServer extends java.lang.Object {
						static CLIENT_PROTOCOL_VERSION: number;
						static class: java.lang.Class<org.apache.harmony.dalvik.ddmc.DdmServer>;
						/**
						 * Register an instance of the ChunkHandler class to handle a specific chunk type.
						 */
						public static registerHandler(type: number, handler: org.apache.harmony.dalvik.ddmc.ChunkHandler): void;
						/**
						 * Unregister the existing handler for the specified type.
						 */
						public static unregisterHandler(type: number): org.apache.harmony.dalvik.ddmc.ChunkHandler;
						/**
						 * The application must call here after it finishes registering handlers.
						 */
						public static registrationComplete(): void;
						/**
						 * Send a chunk of data to the DDM server. This takes the form of a JDWP "event", which does not elicit a response from the server.
						 */
						public static sendChunk(chunk: org.apache.harmony.dalvik.ddmc.Chunk): void;
					}
					/**
					 * Declarations for some VM-internal DDM stuff.
					 */
					export class DdmVmInternal extends java.lang.Object {
						static class: java.lang.Class<org.apache.harmony.dalvik.ddmc.DdmVmInternal>;
						/**
						 * Enable thread notification.
						 */
						public static threadNotify(enable: boolean): void;
						/**
						 * Enable heap info updates.
						 * @param when when to send the next HPIF chunk
						 */
						public static heapInfoNotify(when: number): boolean;
						/**
						 * Enable heap segment updates for the java (isNative == false) or native (isNative == true) heap.
						 */
						public static heapSegmentNotify(when: number, what: number, isNative: boolean): boolean;
						/**
						 * Get status info for all threads. This is for the THST chunk.
						 */
						public static getThreadStats(): native.Array<number>;
						/**
						 * Get a stack trace for the specified thread ID. The ID can be found in the data from getThreadStats.
						 */
						public static getStackTraceById(threadId: number): native.Array<java.lang.StackTraceElement>;
						/**
						 * Enable or disable "recent allocation" tracking.
						 */
						public static enableRecentAllocations(enable: boolean): void;
						public static getRecentAllocationStatus(): boolean;
						/**
						 * Fill a buffer with data on recent heap allocations.
						 */
						public static getRecentAllocations(): native.Array<number>;
					}
					/**
					 * A chunk of DDM data. This is really just meant to hold a few pieces of data together.
					 */
					export class Chunk extends java.lang.Object {
						/**
						 * Blank constructor. Fill in your own fields.
						 */
						constructor();
						/**
						 * Constructor with all fields.
						 */
						constructor(type: number, data: native.Array<number>, offset: number, length: number);
						/**
						 * Construct from a ByteBuffer. The chunk is assumed to start at offset 0 and continue to the current position.
						 */
						constructor(type: number, buf: java.nio.ByteBuffer);
						type: number;
						data: native.Array<number>;
						offset: number;
						length: number;
						static class: java.lang.Class<org.apache.harmony.dalvik.ddmc.Chunk>;
					}
					/**
					 * Handle a chunk of data sent from a DDM server.
					 */
					export class ChunkHandler extends java.lang.Object {
						constructor();
						static CHUNK_ORDER: java.nio.ByteOrder;
						static CHUNK_FAIL: number;
						static class: java.lang.Class<org.apache.harmony.dalvik.ddmc.ChunkHandler>;
						/**
						 * Called when the DDM server connects. The handler is allowed to send messages to the server.
						 */
						public connected(): void;
						/**
						 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
						 */
						public disconnected(): void;
						/**
						 * Handle a single chunk of data. "request" includes the type and the chunk payload.
						 */
						public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
						/**
						 * Create a FAIL chunk. The "handleChunk" methods can use this to return an error message when they are not able to process a chunk.
						 */
						public static createFailChunk(errorCode: number, msg: string): org.apache.harmony.dalvik.ddmc.Chunk;
						/**
						 * Utility function to wrap a ByteBuffer around a Chunk.
						 */
						public static wrapChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): java.nio.ByteBuffer;
						/**
						 * Utility function to copy a String out of a ByteBuffer.
						 */
						public static getString(buf: java.nio.ByteBuffer, len: number): string;
						/**
						 * Utility function to copy a String into a ByteBuffer.
						 */
						public static putString(buf: java.nio.ByteBuffer, str: string): void;
						/**
						 * Convert a 4-character string to a 32-bit type.
						 */
						public static type(typeName: string): number;
						/**
						 * Convert an integer type to a 4-character string.
						 */
						public static name(type: number): string;
					}
				}
				/**
				 * Methods used to test calling into native code. The methods in this class are all effectively no-ops and may be used to test the mechanisms and performance of calling native methods.
				 */
				export class NativeTestTarget extends java.lang.Object {
					static class: java.lang.Class<org.apache.harmony.dalvik.NativeTestTarget>;
					/**
					 * This is an empty native static method with no args, hooked up using JNI.
					 */
					public static emptyJniStaticMethod0(): void;
					/**
					 * This is an empty native static method with six args, hooked up using JNI.
					 */
					public static emptyJniStaticMethod6(a: number, b: number, c: number, d: number, e: number, f: number): void;
					/**
					 * This is an empty native static method with six args, hooked up using JNI. These have more complex args to show the cost of parsing the signature. All six values should be null references.
					 */
					public static emptyJniStaticMethod6L(a: string, b: native.Array<string>, c: native.Array<native.Array<number>>, d: any, e: native.Array<any>, f: native.Array<native.Array<native.Array<native.Array<any>>>>): void;
					/**
					 * This method is intended to be "inlined" by the virtual machine (e.g., given special treatment as an intrinsic).
					 */
					public static emptyInlineMethod(): void;
					/**
					 * This method is intended to be defined in native code and hooked up using the virtual machine's special fast-path native linkage (as opposed to being hooked up using JNI).
					 */
					public static emptyInternalStaticMethod(): void;
				}
			}
			export module testframework {
				export module serialization {
					/**
					 * Framework for serialization testing. Subclasses only need to override getData() method and, optionally, assertDeserialized() method. The first one returns array of objects to be de/serialized in tests, and the second compares reference and deserialized objects (needed only if tested objects do not provide specific method equals()). <br> There are two modes of test run: <b>reference generation mode </b> and <b>testing mode </b>. The actual mode is selected via <b>&quot;test.mode&quot; </b> system property. The <b>testing mode </b> is the default mode. <br> To turn on the <b>reference generation mode </b>, the test.mode property should be set to value &quot;serial.reference&quot;. In this mode, no testing is performed but golden files are produced, which contain reference serialized objects. This mode should be run on a pure Implementation classes, which are targeted for compartibility. <br> The location of golden files (in both modes) is controlled via <b>&quot;RESOURCE_DIR&quot; </b> system property.
					 */
					export class SerializationTest {
						constructor();
						/**
						 * Key to a system property defining root location of golden files.
						 */
						static GOLDEN_PATH: string;
						/**
						 * Comparator for verifying that deserialized object is the same as initial.
						 */
						static SAME_COMPARATOR: org.apache.harmony.testframework.serialization.SerializationTest.ISerializableAssert;
						/**
						 * Comparator for Throwable objects
						 */
						static THROWABLE_COMPARATOR: org.apache.harmony.testframework.serialization.SerializationTest.ISerializableAssert;
						/**
						 * Comparator for PermissionCollection objects
						 */
						static PERMISSION_COLLECTION_COMPARATOR: org.apache.harmony.testframework.serialization.SerializationTest.ISerializableAssert;
						static class: java.lang.Class<org.apache.harmony.testframework.serialization.SerializationTest>;
						/**
						 * This is the main working method of this framework. Subclasses must override it to provide actual objects for testing.
						 */
						protected getData(): native.Array<any>;
						/**
						 * Tests that data objects can be serialized and deserialized without exceptions, and that deserialization really produces deeply cloned objects.
						 */
						public testSelf(): void;
						/**
						 * Tests that data objects can be deserialized from golden files, to verify compatibility with Reference Implementation.
						 */
						public testGolden(): void;
						/**
						 * Returns golden file for an object being tested.
						 * @param index array index of tested data (as returned by
						 */
						protected getDataFile(index: number): java.io.File;
						/**
						 * Working method for files generation mode. Serializes test objects returned by #getData() getData()to golden files, each object to a separate file.
						 */
						protected produceGoldenFiles(): void;
						/**
						 * Serializes specified object to an output stream.
						 */
						public static putObjectToStream(obj: any, os: java.io.OutputStream): void;
						/**
						 * Deserializes single object from an input stream.
						 */
						public static getObjectFromStream(is: java.io.InputStream): java.io.ISerializable;
						/**
						 * Verifies that object can be smoothly serialized/deserialized.
						 * @param object - to be serialized/deserialized
						 */
						public static verifySelf(object: any): void;
						/**
						 * Verifies that object can be smoothly serialized/deserialized.
						 * @param object - object to be serialized/deserialized
						 * @param comparator - for comparing serialized/deserialized object with initial object
						 */
						public static verifySelf(object: any, comparator: org.apache.harmony.testframework.serialization.SerializationTest.ISerializableAssert): void;
						/**
						 * Verifies that that objects from array can be smoothly serialized/deserialized.
						 * @param objects - array of objects to be serialized/deserialized
						 */
						public static verifySelf(objects: native.Array<any>): void;
						/**
						 * Verifies that that objects from array can be smoothly serialized/deserialized.
						 * @param objects - array of objects to be serialized/deserialized
						 * @param comparator - for comparing serialized/deserialized object with initial object
						 */
						public static verifySelf(objects: native.Array<any>, comparator: org.apache.harmony.testframework.serialization.SerializationTest.ISerializableAssert): void;
						/**
						 * Copies an object by serializing/deserializing it.
						 * @param initial - an object to be copied
						 */
						public static copySerializable(initial: java.io.ISerializable): java.io.ISerializable;
					}
					export module SerializationTest {
						/**
						 * Interface to compare (de)serialized objects
						 */
						interface ISerializableAssert {
							/**
							 * Compares deserialized and reference objects.
							 * @param initial - initial object used for creating serialized form
							 * @param deserialized - deserialized object
							 */
							assertDeserialized(initial: java.io.ISerializable, deserialized: java.io.ISerializable): void;
						}
						/**
						 * Interface to compare (de)serialized objects
						 */
						export class SerializableAssert implements org.apache.harmony.testframework.serialization.SerializationTest.ISerializableAssert {
							constructor(implementation: org.apache.harmony.testframework.serialization.SerializationTest.ISerializableAssert);
							/**
							 * Compares deserialized and reference objects.
							 * @param initial - initial object used for creating serialized form
							 * @param deserialized - deserialized object
							 */
							public assertDeserialized(initial: java.io.ISerializable, deserialized: java.io.ISerializable): void;
						}
					}
				}
			}
			export module lang {
				export module annotation {
					/**
					 * The annotation implementation based on dynamically generated proxy instances. It conforms to all requirements stated in public APIs, see in particular java.lang.reflect.AnnotatedElement java.lang.reflect.AnnotatedElement and java.lang.annotation.Annotation java.lang.annotation.Annotation. Namely, annotation instances are immutable and serializable; they provide conforming access to annotation member values and required implementations of methods declared in Annotation interface.
					 */
					export class AnnotationFactory extends java.lang.Object implements java.lang.reflect.IInvocationHandler, java.io.ISerializable {
						static class: java.lang.Class<org.apache.harmony.lang.annotation.AnnotationFactory>;
						/**
						 * Reflects specified annotation type and returns an array of member element definitions with default values.
						 */
						public static getElementsDescription(annotationType: java.lang.Class<any>): native.Array<org.apache.harmony.lang.annotation.AnnotationMember>;
						/**
						 * Provides a new annotation instance.
						 * @param annotationType the annotation type definition
						 * @param elements name-value pairs representing elements of the annotation
						 */
						public static createAnnotation(annotationType: java.lang.Class<any>, elements: native.Array<org.apache.harmony.lang.annotation.AnnotationMember>): java.lang.annotation.IAnnotation;
						/**
						 * Returns true if the specified object represents the same annotation instance. That is, if it implements the same annotation type and returns the same element values. <br>Note, actual underlying implementation mechanism does not matter - it may differ completely from this class.
						 */
						public equals(obj: any): boolean;
						/**
						 * Returns a hash code composed as a sum of hash codes of member elements, including elements with default values. android.lang.annotation.AnnotationMember#hashCode()
						 */
						public hashCode(): number;
						/**
						 * Provides detailed description of this annotation instance, including all member name-values pairs.
						 */
						public toString(): string;
						/**
						 * Processes a method invocation request to this annotation instance. Recognizes the methods declared in the java.lang.annotation.Annotation java.lang.annotation.Annotation interface, and member-defining methods of the implemented annotation type. IllegalArgumentException If the specified method is none of the above
						 */
						public invoke(proxy: any, method: java.lang.reflect.Method, args: native.Array<any>): any;
					}
					/**
					 * This class represents member element of an annotation. It consists of name and value, supplemented with element definition information (such as declared type of element). <br>The value may be one of the following types: <ul> <li> boxed primitive <li> Class <li> enum constant <li> annotation (nested) <li> one-dimensional array of the above <li> Throwable </ul> The last type is specific for this implementation; a Throwable value means that the error occured during parsing or resolution of corresponding class-data structures and throwing is delayed until the element is requested for value.
					 */
					export class AnnotationMember extends java.lang.Object implements java.io.ISerializable {
						/**
						 * Creates a new element with specified name and value. Definition info will be provided later when this element becomes actual annotation member.
						 * @param name element name, must not be null
						 * @param val element value, should be of addmissible type,
						 */
						constructor(name: string, val: any);
						/**
						 * Creates the completely defined element.
						 * @param name element name, must not be null
						 * @param val ue element value, should be of addmissible type,
						 * @param type m element-defining method, reflected on the annotation type
						 * @param m type declared type of this element
						 */
						constructor(name: string, val: any, type: java.lang.Class<any>, m: java.lang.reflect.Method);
						static class: java.lang.Class<org.apache.harmony.lang.annotation.AnnotationMember>;
						/**
						 * Fills in element's definition info and returns this.
						 */
						protected setDefinition(copy: org.apache.harmony.lang.annotation.AnnotationMember): org.apache.harmony.lang.annotation.AnnotationMember;
						/**
						 * Returns readable description of this annotation value.
						 */
						public toString(): string;
						/**
						 * Returns true if the specified object represents equal element (equivalent name-value pair). <br> A special case is the contained Throwable value; it is considered transcendent so no other element would be equal.
						 */
						public equals(obj: any): boolean;
						/**
						 * Returns true if the contained value and a passed object are equal arrays, false otherwise. Appropriate overloaded method of Arrays.equals() is used for equality testing. java.util.Arrays#equals(java.lang.Object[], java.lang.Object[])
						 */
						public equalArrayValue(otherValue: any): boolean;
						/**
						 * Computes hash code of this element. The formula is as follows: <code> (name.hashCode() * 127) ^ value.hashCode() </code> <br>If value is an array, one of overloaded Arrays.hashCode() methods is used.
						 */
						public hashCode(): number;
						/**
						 * Throws contained error (if any) with a renewed stack trace.
						 */
						public rethrowError(): void;
						/**
						 * Validates contained value against its member definition and if ok returns the value. Otherwise, if the value type mismatches definition or the value itself describes an error, throws appropriate exception. <br> Note, this method may return null if this element was constructed with such value.
						 */
						public validateValue(): any;
						/**
						 * Provides mutation-safe access to contained value. That is, caller is free to modify the returned value, it will not affect the contained data value.
						 */
						public copyValue(): any;
					}
					export module AnnotationMember {
						export enum DefaultValues {
							NO_VALUE
						}
					}
				}
			}
			export module xnet {
				export module provider {
					export module jsse {
						export class OpenSSLDSAKeyFactory extends java.security.KeyFactorySpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLDSAKeyFactory>;
							protected engineGeneratePublic(keySpec: java.security.spec.IKeySpec): java.security.IPublicKey;
							protected engineGeneratePrivate(keySpec: java.security.spec.IKeySpec): java.security.IPrivateKey;
							protected engineGetKeySpec<T extends java.security.spec.IKeySpec>(key: java.security.IKey, keySpec: java.lang.Class<T>): T;
							protected engineTranslateKey(key: java.security.IKey): java.security.IKey;
						}
						/**
						 * This class incapsulates the constants determining the types of SSL/TLS record's content data. Constant values are taken according to the TLS v1 specification (http://www.ietf.org/rfc/rfc2246.txt).
						 */
						export class ContentType extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ContentType>;
						}
						/**
						 * This interface represents the ability of the classes to provide the chunks of data.
						 */
						export class DataStream implements org.apache.harmony.xnet.provider.jsse.IDataStream {
							constructor(implementation: org.apache.harmony.xnet.provider.jsse.IDataStream);
							/**
							 * Checks if there is data to be read.
							 */
							public hasData(): boolean;
							/**
							 * Retrieves the data of specified length from the stream. If the data size in the stream is less than specified length, method returns all the data contained in the stream.
							 */
							public getData(length: number): native.Array<number>;
						}
						/**
						 * Represents Cipher Suite as defined in TLS 1.0 spec., A.5. The CipherSuite; C. CipherSuite definitions. <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0 spec.</a>
						 */
						export class CipherSuite extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.CipherSuite>;
							/**
							 * Returns CipherSuite by name
							 */
							public static getByName(name: string): org.apache.harmony.xnet.provider.jsse.CipherSuite;
							/**
							 * Returns CipherSuite based on TLS CipherSuite code <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0 spec., A.5. The CipherSuite</a>
							 */
							public static getByCode(b1: number, b2: number): org.apache.harmony.xnet.provider.jsse.CipherSuite;
							/**
							 * Returns CipherSuite based on V2CipherSpec code as described in TLS 1.0 spec., E. Backward Compatibility With SSL
							 */
							public static getByCode(b1: number, b2: number, b3: number): org.apache.harmony.xnet.provider.jsse.CipherSuite;
							/**
							 * Returns true if cipher suite is anonymous
							 */
							public isAnonymous(): boolean;
							/**
							 * Returns array of supported CipherSuites
							 */
							public static getSupported(): native.Array<org.apache.harmony.xnet.provider.jsse.CipherSuite>;
							/**
							 * Returns array of supported cipher suites names
							 */
							public static getSupportedCipherSuiteNames(): native.Array<string>;
							/**
							 * Returns cipher suite name
							 */
							public getName(): string;
							/**
							 * Returns cipher suite code as byte array
							 */
							public toBytes(): native.Array<number>;
							/**
							 * Returns cipher suite description
							 */
							public toString(): string;
							/**
							 * Returns cipher algorithm name
							 */
							public getBulkEncryptionAlgorithm(): string;
							/**
							 * Returns cipher block size
							 */
							public getBlockSize(): number;
							/**
							 * Returns MAC algorithm name
							 */
							public getHmacName(): string;
							/**
							 * Returns hash algorithm name
							 */
							public getHashName(): string;
							/**
							 * Returns hash size
							 */
							public getMACLength(): number;
							/**
							 * Indicates whether this cipher suite is exportable
							 */
							public isExportable(): boolean;
							/**
							 * Returns key type constant suitable for calling X509KeyManager.chooseServerAlias or X509ExtendedKeyManager.chooseEngineServerAlias.
							 */
							public getServerKeyType(): string;
							/**
							 * Similar to getServerKeyType, but returns value given TLS ClientCertificateType byte values from a CertificateRequest message for use with X509KeyManager.chooseClientAlias or X509ExtendedKeyManager.chooseEngineClientAlias.
							 */
							public static getClientKeyType(keyType: number): string;
							/**
							 * Returns auth type constant suitable for calling X509TrustManager.checkServerTrusted.
							 */
							public getAuthType(emphemeral: boolean): string;
						}
						/**
						 * This is a wrapper input stream for ByteBuffer data source. Among with the read functionality it provides info about number of cunsumed bytes from the source ByteBuffer. The source ByteBuffer object can be reseted. So one instance of this wrapper can be reused for several ByteBuffer data sources.
						 */
						export class SSLBufferedInput extends org.apache.harmony.xnet.provider.jsse.SSLInputStream {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLBufferedInput>;
							/**
							 * Sets the buffer as a data source
							 */
							protected setSourceBuffer(input: java.nio.ByteBuffer): void;
							public available(): number;
							/**
							 * Returns the number of consumed bytes.
							 */
							protected consumed(): number;
							/**
							 * Reads the following byte value. If there are no bytes in the source buffer, method throws java.nio.BufferUnderflowException.
							 */
							public read(): number;
							/**
							 * Returns the vector of opaque values of specified length;
							 * @param length - the length of the vector to be read.
							 */
							read(length: number): native.Array<number>;
							read(b: native.Array<number>, off: number, len: number): number;
							/**
							 * Equivalent to read(buffer, 0, buffer.length).
							 */
							read(buffer: native.Array<number>): number;
						}
						export class TrustManagerFactoryImpl extends javax.net.ssl.TrustManagerFactorySpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl>;
							/**
							 *  javax.net.ssl.TrustManagerFactorySpi#engineInit(KeyStore)
							 */
							public engineInit(ks: java.security.KeyStore): void;
							/**
							 *  javax.net.ssl#engineInit(ManagerFactoryParameters)
							 */
							public engineInit(spec: javax.net.ssl.IManagerFactoryParameters): void;
							/**
							 *  javax.net.ssl#engineGetTrustManagers()
							 */
							public engineGetTrustManagers(): native.Array<javax.net.ssl.ITrustManager>;
						}
						export class OpenSSLKey extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLKey>;
							getPkeyContext(): number;
							getEngine(): org.apache.harmony.xnet.provider.jsse.OpenSSLEngine;
							isEngineBased(): boolean;
							getAlias(): string;
							protected finalize(): void;
							public equals(o: any): boolean;
							public hashCode(): number;
						}
						export class ProtocolVersion extends java.lang.Object {
							/**
							 * Protocols supported by this provider implementation
							 */
							static supportedProtocols: native.Array<string>;
							/**
							 * SSL 3.0 protocol version
							 */
							static SSLv3: org.apache.harmony.xnet.provider.jsse.ProtocolVersion;
							/**
							 * TLS 1.0 protocol version
							 */
							static TLSv1: org.apache.harmony.xnet.provider.jsse.ProtocolVersion;
							/**
							 * Protocol name
							 */
							name: string;
							/**
							 * Protocol version as byte array
							 */
							version: native.Array<number>;
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ProtocolVersion>;
							/**
							 * @param version 
							 */
							public static isSupported(version: native.Array<number>): boolean;
							/**
							 * Returns ProtocolVersion
							 * @param version 
							 */
							public static getByVersion(version: native.Array<number>): org.apache.harmony.xnet.provider.jsse.ProtocolVersion;
							/**
							 * Returns true if provider supports protocol version
							 * @param name 
							 */
							public static isSupported(name: string): boolean;
							/**
							 * Returns ProtocolVersion
							 * @param name 
							 */
							public static getByName(name: string): org.apache.harmony.xnet.provider.jsse.ProtocolVersion;
							/**
							 * Highest protocol version supported by provider implementation
							 * @param protocols 
							 */
							public static getLatestVersion(protocols: native.Array<string>): org.apache.harmony.xnet.provider.jsse.ProtocolVersion;
						}
						export class TrustedCertificateStoreTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.TrustedCertificateStoreTest>;
							protected setUp(): void;
							protected tearDown(): void;
							public testEmptyDirectories(): void;
							public testOneSystemOneDeleted(): void;
							public testTwoSystemTwoDeleted(): void;
							public testPartialFileIsIgnored(): void;
							public testTwoSystem(): void;
							public testTwoUser(): void;
							public testOneSystemOneUser(): void;
							public testTwoSystemSameSubject(): void;
							public testTwoUserSameSubject(): void;
							public testOneSystemOneUserSameSubject(): void;
							public testOneSystemOneUserOneDeleted(): void;
							public testOneSystemOneUserOneDeletedSameSubject(): void;
							public testUserMaskingSystem(): void;
							public testChain(): void;
							public testMissingSystemDirectory(): void;
							public testWithExistingUserDirectories(): void;
							public testIsTrustAnchorWithReissuedgetCa(): void;
							public testInstallEmpty(): void;
							public testInstallEmptySystemExists(): void;
							public testInstallEmptyDeletedSystemExists(): void;
							public testDeleteEmpty(): void;
							public testDeleteUser(): void;
							public testDeleteSystem(): void;
							public testIsUserAddedCertificate(): void;
						}
						/**
						 * Delegated Runnable task for SSLEngine
						 */
						export class DelegatedTask extends java.lang.Object implements java.lang.IRunnable {
							constructor(action: java.lang.IRunnable, handshaker: org.apache.harmony.xnet.provider.jsse.HandshakeProtocol);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.DelegatedTask>;
							public run(): void;
						}
						/**
						 * This class is used to retrieve the application data arrived for the SSLEngine.
						 */
						export class SSLEngineAppData extends java.lang.Object implements org.apache.harmony.xnet.provider.jsse.IAppendable {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLEngineAppData>;
							/**
							 * Stores received data. The source data is not cloned, just the array reference is remembered into the buffer field.
							 */
							public append(src: native.Array<number>): void;
							/**
							 * Places the data from the buffer into the array of destination ByteBuffer objects.
							 */
							protected placeTo(dsts: native.Array<java.nio.ByteBuffer>, offset: number, length: number): number;
						}
						export class TrustManagerImpl extends java.lang.Object implements javax.net.ssl.IX509TrustManager {
							/**
							 * Creates X509TrustManager based on a keystore
							 * @param keyStore ks
							 */
							constructor(keyStore: java.security.KeyStore);
							/**
							 * For testing only
							 */
							constructor(keyStore: java.security.KeyStore, manager: org.apache.harmony.xnet.provider.jsse.CertPinManager);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.TrustManagerImpl>;
							public checkClientTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
							public checkServerTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
							/**
							 * Validates whether a server is trusted. If hostname is given and non-null it also checks if chain is pinned appropriately for that host. If null, it does not check for pinned certs. The return value is a list of the certificates used for making the trust decision.
							 */
							public checkServerTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string, host: string): java.util.IList<java.security.cert.X509Certificate>;
							public handleTrustStorageUpdate(): void;
							public getAcceptedIssuers(): native.Array<java.security.cert.X509Certificate>;
						}
						/**
						 * This class is a base for all input stream classes used in protocol implementation. It extends an InputStream with some additional read methods allowing to read TLS specific data types such as uint8, uint32 etc (see TLS v 1 specification at http://www.ietf.org/rfc/rfc2246.txt).
						 */
						export class SSLInputStream extends java.io.InputStream {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLInputStream>;
							public available(): number;
							/**
							 * Reads the following byte value. Note that in the case of reaching of the end of the data this methods throws the exception, not return -1. The type of exception depends on implementation. It was done for simplifying and speeding up of processing of such cases. org.apache.harmony.xnet.provider.jsse.SSLStreamedInput#read() org.apache.harmony.xnet.provider.jsse.SSLBufferedInput#read() org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream#read()
							 */
							public read(): number;
							/**
							 * Reads and returns uint8 value.
							 */
							public readUint8(): number;
							/**
							 * Reads and returns uint16 value.
							 */
							public readUint16(): number;
							/**
							 * Reads and returns uint24 value.
							 */
							public readUint24(): number;
							/**
							 * Reads and returns uint32 value.
							 */
							public readUint32(): any;
							/**
							 * Reads and returns uint64 value.
							 */
							public readUint64(): any;
							/**
							 * Returns the vector of opaque values of specified length;
							 * @param length - the length of the vector to be read.
							 */
							public read(length: number): native.Array<number>;
							public read(b: native.Array<number>, off: number, len: number): number;
							/**
							 * Equivalent to read(buffer, 0, buffer.length).
							 */
							read(buffer: native.Array<number>): number;
						}
						/**
						 * Implementation of SSLEngine. javax.net.ssl.SSLEngine class documentation for more information.
						 */
						export class SSLEngineImpl extends javax.net.ssl.SSLEngine {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLEngineImpl>;
							/**
							 * Starts the handshake. SSLException javax.net.ssl.SSLEngine#beginHandshake() method documentation for more information
							 */
							public beginHandshake(): void;
							/**
							 * Closes inbound operations of this engine SSLException javax.net.ssl.SSLEngine#closeInbound() method documentation for more information
							 */
							public closeInbound(): void;
							/**
							 * Closes outbound operations of this engine javax.net.ssl.SSLEngine#closeOutbound() method documentation for more information
							 */
							public closeOutbound(): void;
							/**
							 * Returns handshake's delegated tasks to be run
							 */
							public getDelegatedTask(): java.lang.IRunnable;
							/**
							 * Returns names of supported cipher suites.
							 */
							public getSupportedCipherSuites(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getEnabledCipherSuites() method documentation for more information
							 */
							public getEnabledCipherSuites(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#setEnabledCipherSuites(String[]) method documentation for more information
							 */
							public setEnabledCipherSuites(suites: native.Array<string>): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getSupportedProtocols() method documentation for more information
							 */
							public getSupportedProtocols(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getEnabledProtocols() method documentation for more information
							 */
							public getEnabledProtocols(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#setEnabledProtocols(String[]) method documentation for more information
							 */
							public setEnabledProtocols(protocols: native.Array<string>): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#setUseClientMode(boolean) method documentation for more information
							 */
							public setUseClientMode(mode: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getUseClientMode() method documentation for more information
							 */
							public getUseClientMode(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#setNeedClientAuth(boolean) method documentation for more information
							 */
							public setNeedClientAuth(need: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getNeedClientAuth() method documentation for more information
							 */
							public getNeedClientAuth(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#setWantClientAuth(boolean) method documentation for more information
							 */
							public setWantClientAuth(want: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getWantClientAuth() method documentation for more information
							 */
							public getWantClientAuth(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#setEnableSessionCreation(boolean) method documentation for more information
							 */
							public setEnableSessionCreation(flag: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getEnableSessionCreation() method documentation for more information
							 */
							public getEnableSessionCreation(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getHandshakeStatus() method documentation for more information
							 */
							public getHandshakeStatus(): javax.net.ssl.SSLEngineResult.HandshakeStatus;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#getSession() method documentation for more information
							 */
							public getSession(): javax.net.ssl.ISSLSession;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#isInboundDone() method documentation for more information
							 */
							public isInboundDone(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLEngine#isOutboundDone() method documentation for more information
							 */
							public isOutboundDone(): boolean;
							/**
							 * Decodes one complete SSL/TLS record provided in the source buffer. If decoded record contained application data, this data will be placed in the destination buffers. For more information about TLS record fragmentation see TLS v 1 specification (http://www.ietf.org/rfc/rfc2246.txt) p 6.2.
							 * @param src source buffer containing SSL/TLS record.
							 * @param dsts destination buffers to place received application data.
							 * @param offset 
							 * @param length 
							 */
							public unwrap(src: java.nio.ByteBuffer, dsts: native.Array<java.nio.ByteBuffer>, offset: number, length: number): javax.net.ssl.SSLEngineResult;
							/**
							 * Encodes the application data into SSL/TLS record. If handshake status of the engine differs from NOT_HANDSHAKING the operation can work without consuming of the source data. For more information about TLS record fragmentation see TLS v 1 specification (http://www.ietf.org/rfc/rfc2246.txt) p 6.2.
							 * @param srcs the source buffers with application data to be encoded
							 * @param offset the offset in the destination buffers array pointing to
							 * @param len specifies the maximum number of buffers to be procesed.
							 * @param dst the destination buffer where encoded data will be placed.
							 */
							public wrap(srcs: native.Array<java.nio.ByteBuffer>, offset: number, len: number, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
							/**
							 * Decodes the incoming network data buffer into the application data buffer. If a handshake has not been started yet, it will automatically be started.
							 * @param src 
							 * @param dst 
							 */
							unwrap(src: java.nio.ByteBuffer, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
							/**
							 * Decodes the incoming network data buffer into the application data buffers. If a handshake has not been started yet, it will automatically be started.
							 * @param src 
							 * @param dsts 
							 */
							unwrap(src: java.nio.ByteBuffer, dsts: native.Array<java.nio.ByteBuffer>): javax.net.ssl.SSLEngineResult;
							/**
							 * Encodes the outgoing application data buffers into the network data buffer. If a handshake has not been started yet, it will automatically be started.
							 * @param srcs 
							 * @param dst 
							 */
							wrap(srcs: native.Array<java.nio.ByteBuffer>, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
							/**
							 * Encodes the outgoing application data buffer into the network data buffer. If a handshake has not been started yet, it will automatically be started.
							 * @param src 
							 * @param dst 
							 */
							wrap(src: java.nio.ByteBuffer, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
						}
						export class OpenSSLDSAKeyPairGenerator extends java.security.KeyPairGeneratorSpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLDSAKeyPairGenerator>;
							public generateKeyPair(): java.security.KeyPair;
							public initialize(keysize: number, random: java.security.SecureRandom): void;
							public initialize(params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
						}
						/**
						 * This interface represents the ability of the input stream related classes to provide additional data to be read.
						 */
						interface IAppendable {
							/**
							 * Provides the additional data to be read.
							 * @param src the source data to be appended.
							 */
							append(src: native.Array<number>): void;
						}
						export class ServerKeyExchange extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 * @param par1 rsa_modulus or dh_p
							 * @param par2 rsa_exponent or dh_g
							 * @param par3 dh_Ys for ServerDHParams; should be null for ServerRSAParams
							 * @param hash should be null for anonymous SignatureAlgorithm
							 */
							constructor(par1: java.math.BigInteger, par2: java.math.BigInteger, par3: java.math.BigInteger, hash: native.Array<number>);
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 * @param keyExchange 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number, keyExchange: number);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ServerKeyExchange>;
							/**
							 * Remove first byte if 0. Needed because BigInteger.toByteArray() sometimes returns a zero prefix.
							 */
							public static toUnsignedByteArray(bi: java.math.BigInteger): native.Array<number>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns RSAPublicKey generated using ServerRSAParams (rsa_modulus and rsa_exponent).
							 */
							public getRSAPublicKey(): java.security.interfaces.IRSAPublicKey;
							/**
							 * Returns message type
							 */
							public getType(): number;
						}
						export class Finished extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 * @param bytes 
							 */
							constructor(bytes: native.Array<number>);
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.Finished>;
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns message type
							 */
							public getType(): number;
							/**
							 * Returns verify data
							 */
							public getData(): native.Array<number>;
						}
						/**
						 * This class contains well-known primes
						 */
						export class DHParameters extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.DHParameters>;
							/**
							 * Returns prime bytes
							 */
							public static getPrime(): native.Array<number>;
						}
						/**
						 * This class encapsulates the operating environment of the TLS v1 (http://www.ietf.org/rfc/rfc2246.txt) Record Protocol and provides relating encryption/decryption functionality. The work functionality is based on the security parameters negotiated during the handshake.
						 */
						export class ConnectionStateTLS extends org.apache.harmony.xnet.provider.jsse.ConnectionState {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ConnectionStateTLS>;
							/**
							 * Creates the GenericStreamCipher or GenericBlockCipher data structure for specified data of specified type. AlertException if alert was occurred.
							 */
							protected encrypt(type: number, fragment: native.Array<number>, offset: number, len: number): native.Array<number>;
							/**
							 * Retrieves the fragment of the Plaintext structure of the specified type from the provided data representing the Generic[Stream|Block]Cipher structure. AlertException if alert was occurred.
							 */
							protected decrypt(type: number, fragment: native.Array<number>, offset: number, len: number): native.Array<number>;
							/**
							 * Creates the GenericStreamCipher or GenericBlockCipher data structure for specified data of specified type.
							 * @param type - the ContentType of the provided data
							 * @param fragment - the byte array containing the
							 */
							protected encrypt(type: number, fragment: native.Array<number>): native.Array<number>;
							/**
							 * Retrieves the fragment of the Plaintext structure of the specified type from the provided data.
							 * @param type - the ContentType of the data to be decrypted.
							 * @param fragment - the byte array containing the
							 */
							protected decrypt(type: number, fragment: native.Array<number>): native.Array<number>;
						}
						export class OpenSSLRSAKeyPairGenerator extends java.security.KeyPairGeneratorSpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLRSAKeyPairGenerator>;
							public generateKeyPair(): java.security.KeyPair;
							public initialize(keysize: number, random: java.security.SecureRandom): void;
							public initialize(params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
						}
						/**
						 * Supports SSL session caches.
						 */
						export class AbstractSessionContext extends java.lang.Object implements javax.net.ssl.ISSLSessionContext {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.AbstractSessionContext>;
							public getIds(): java.util.IEnumeration<any>;
							public getSessionCacheSize(): number;
							public getSessionTimeout(): number;
							/**
							 * Makes sure cache size is < maximumSize.
							 */
							protected trimToSize(): void;
							public setSessionTimeout(seconds: number): void;
							/**
							 * Called when a session is removed. Used by ClientSessionContext to update its host-and-port based cache.
							 */
							protected sessionRemoved(session: javax.net.ssl.ISSLSession): void;
							public setSessionCacheSize(size: number): void;
							/**
							 * Converts the given session to bytes.
							 */
							toBytes(session: javax.net.ssl.ISSLSession): native.Array<number>;
							/**
							 * Creates a session from the given bytes.
							 */
							toSession(data: native.Array<number>, host: string, port: number): javax.net.ssl.ISSLSession;
							public getSession(sessionId: native.Array<number>): javax.net.ssl.ISSLSession;
							putSession(session: javax.net.ssl.ISSLSession): void;
							static log(t: java.lang.Throwable): void;
							protected finalize(): void;
						}
						/**
						 * This class provides Input/Output data functionality for handshake layer. It provides read and write operations and accumulates all sent/received handshake's data. This class can be presented as a combination of 2 data pipes. The first data pipe is a pipe of income data: append method places the data at the beginning of the pipe, and read methods consume the data from the pipe. The second pipe is an outcoming data pipe: write operations plases the data into the pipe, and getData methods consume the data. It is important to note that work with pipe cound not be started if there is unconsumed data in another pipe. It is reasoned by the following: handshake protocol performs read and write operations consecuently. I.e. it first reads all income data and only than produces the responce and places it into the stream. The read operations of the stream presented by the methods of SSLInputStream which in its turn is an extension of InputStream. So this stream can be used as an InputStream parameter for certificate generation. Also input stream functionality supports marks. The marks help to reset the position of the stream in case of incompleate handshake records. Note that in case of exhausting of income data the EndOfBufferException is thown which implies the following: 1. the stream contains scrappy handshake record, 2. the read position should be reseted to marked, 3. and more income data is expected. The throwing of the exception (instead of returning of -1 value or incompleate filling of destination buffer) helps to speed up the process of scrappy data recognition and processing. For more information about TLS handshake process see TLS v 1 specification at http://www.ietf.org/rfc/rfc2246.txt.
						 */
						export class HandshakeIODataStream extends org.apache.harmony.xnet.provider.jsse.SSLInputStream implements org.apache.harmony.xnet.provider.jsse.IAppendable, org.apache.harmony.xnet.provider.jsse.IDataStream {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream>;
							public available(): number;
							public markSupported(): boolean;
							public mark(limit: number): void;
							public mark(): void;
							public reset(): void;
							/**
							 * Removes the data from the marked position to the current read position. The method is usefull when it is needed to delete one message from the internal buffer.
							 */
							protected removeFromMarkedPosition(): void;
							/**
							 * read an opaque value;
							 */
							public read(): number;
							/**
							 * reads vector of opaque values
							 * @param length new: long
							 */
							public read(length: number): native.Array<number>;
							public read(dst: native.Array<number>, offset: number, length: number): number;
							/**
							 * Appends the income data to be read by handshake protocol. The attempts to overflow the buffer by means of this methods seem to be futile because of: 1. The SSL protocol specifies the maximum size of the record and record protocol does not pass huge messages. (see TLS v1 specification http://www.ietf.org/rfc/rfc2246.txt , p 6.2) 2. After each call of this method, handshake protocol should start (and starts) the operations on received data and recognize the fake data if such was provided (to check the size of certificate for example).
							 */
							public append(src: native.Array<number>): void;
							protected clearBuffer(): void;
							/**
							 * Writes an opaque value
							 * @param b yte: byte
							 */
							public write(b: number): void;
							/**
							 * Writes Uint8 value
							 * @param n long: the value to be written (last byte)
							 */
							public writeUint8(n: number): void;
							/**
							 * Writes Uint16 value
							 * @param n long: the value to be written (last 2 bytes)
							 */
							public writeUint16(n: number): void;
							/**
							 * Writes Uint24 value
							 * @param n long: the value to be written (last 3 bytes)
							 */
							public writeUint24(n: number): void;
							/**
							 * Writes Uint32 value
							 * @param n long: the value to be written (last 4 bytes)
							 */
							public writeUint32(n: number): void;
							/**
							 * Writes Uint64 value
							 * @param n long: the value to be written
							 */
							public writeUint64(n: number): void;
							/**
							 * writes vector of opaque values
							 * @param vector the vector to be written
							 */
							public write(vector: native.Array<number>): void;
							public hasData(): boolean;
							/**
							 * returns the chunk of stored data with the length no more than specified.
							 * @param length : int
							 */
							public getData(length: number): native.Array<number>;
							/**
							 * Returns the MD5 digest of the data passed throught the stream
							 */
							protected getDigestMD5(): native.Array<number>;
							/**
							 * Returns the SHA-1 digest of the data passed throught the stream
							 */
							protected getDigestSHA(): native.Array<number>;
							/**
							 * Returns the MD5 digest of the data passed throught the stream except last message
							 */
							protected getDigestMD5withoutLast(): native.Array<number>;
							/**
							 * Returns the SHA-1 digest of the data passed throught the stream except last message
							 */
							protected getDigestSHAwithoutLast(): native.Array<number>;
							/**
							 * Returns all the data passed throught the stream
							 */
							protected getMessages(): native.Array<number>;
							/**
							 * Equivalent to read(buffer, 0, buffer.length).
							 */
							read(buffer: native.Array<number>): number;
						}
						/**
						 * Implementation of SSLServerSocketFactory.
						 */
						export class SSLServerSocketFactoryImpl extends javax.net.ssl.SSLServerSocketFactory {
							/**
							 * Constructor.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLServerSocketFactoryImpl>;
							/**
							 *  javax.net.ssl.SSLServerSocketFactory#getDefaultCipherSuites()
							 */
							public getDefaultCipherSuites(): native.Array<string>;
							/**
							 *  javax.net.ssl.SSLServerSocketFactory#getSupportedCipherSuites()
							 */
							public getSupportedCipherSuites(): native.Array<string>;
							/**
							 *  javax.net.ServerSocketFactory#createServerSocket()
							 */
							public createServerSocket(): java.net.ServerSocket;
							/**
							 *  javax.net.ServerSocketFactory#createServerSocket(int)
							 */
							public createServerSocket(port: number): java.net.ServerSocket;
							/**
							 *  javax.net.ServerSocketFactory#createServerSocket(int,int)
							 */
							public createServerSocket(port: number, backlog: number): java.net.ServerSocket;
							/**
							 *  javax.net.ServerSocketFactory#createServerSocket(int,int,InetAddress)
							 */
							public createServerSocket(port: number, backlog: number, iAddress: java.net.InetAddress): java.net.ServerSocket;
						}
						/**
						 * Overrides the original SSLContextImpl to provide OpenSSL-based SSLSocketFactory and SSLServerSocketFactory instances.
						 */
						export class OpenSSLContextImpl extends org.apache.harmony.xnet.provider.jsse.SSLContextImpl {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLContextImpl>;
							public engineGetSocketFactory(): javax.net.ssl.SSLSocketFactory;
							public engineGetServerSocketFactory(): javax.net.ssl.SSLServerSocketFactory;
						}
						/**
						 * A source for trusted root certificate authority (CA) certificates supporting an immutable system CA directory along with mutable directories allowing the user addition of custom CAs and user removal of system CAs. This store supports the TrustedCertificateKeyStoreSpi wrapper to allow a traditional KeyStore interface for use with javax.net.ssl.TrustManagerFactory.init.
						 */
						export class TrustedCertificateStore extends java.lang.Object {
							constructor();
							constructor(systemDir: java.io.File, addedDir: java.io.File, deletedDir: java.io.File);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.TrustedCertificateStore>;
							public static isSystem(alias: string): boolean;
							public static isUser(alias: string): boolean;
							public getCertificate(alias: string): java.security.cert.Certificate;
							public getCertificate(alias: string, includeDeletedSystem: boolean): java.security.cert.Certificate;
							public getCreationDate(alias: string): java.util.Date;
							public aliases(): java.util.ISet<string>;
							public userAliases(): java.util.ISet<string>;
							public allSystemAliases(): java.util.ISet<string>;
							public containsAlias(alias: string): boolean;
							public getCertificateAlias(c: java.security.cert.Certificate): string;
							/**
							 * Returns true to indicate that the certificate was added by the user, false otherwise.
							 */
							public isUserAddedCertificate(cert: java.security.cert.X509Certificate): boolean;
							/**
							 * This non-KeyStoreSpi public interface is used by TrustManagerImpl to locate a CA certificate with the same name and public key as the provided X509Certificate. We match on the name and public key and not the entire certificate since a CA may be reissued with the same name and PublicKey but with other differences (for example when switching signature from md2WithRSAEncryption to SHA1withRSA)
							 */
							public isTrustAnchor(c: java.security.cert.X509Certificate): boolean;
							/**
							 * This non-KeyStoreSpi public interface is used by TrustManagerImpl to locate the CA certificate that signed the provided X509Certificate.
							 */
							public findIssuer(c: java.security.cert.X509Certificate): java.security.cert.X509Certificate;
							/**
							 * Attempt to build a certificate chain from the supplied leaf argument through the chain of issuers as high up as known. If the chain can't be completed, the most complete chain available will be returned. This means that a list with only the leaf certificate is returned if no issuer certificates could be found.
							 */
							public getCertificateChain(leaf: java.security.cert.X509Certificate): java.util.IList<java.security.cert.X509Certificate>;
							/**
							 * This non-KeyStoreSpi public interface is used by the KeyChainService to install new CA certificates. It silently ignores the certificate if it already exists in the store.
							 */
							public installCertificate(cert: java.security.cert.X509Certificate): void;
							/**
							 * This could be considered the implementation of TrustedCertificateKeyStoreSpi.engineDeleteEntry but we consider TrustedCertificateKeyStoreSpi to be read only. Instead, this is used by the KeyChainService to delete CA certificates.
							 */
							public deleteCertificateEntry(alias: string): void;
						}
						export module TrustedCertificateStore {
							interface ICertSelector {
								match(cert: java.security.cert.X509Certificate): boolean;
							}
							export class CertSelector implements org.apache.harmony.xnet.provider.jsse.TrustedCertificateStore.ICertSelector {
								constructor(implementation: org.apache.harmony.xnet.provider.jsse.TrustedCertificateStore.ICertSelector);
								public match(cert: java.security.cert.X509Certificate): boolean;
							}
						}
						/**
						 * Indexes TrustAnchor instances so they can be found in O(1) time instead of O(N).
						 */
						export class TrustedCertificateIndex extends java.lang.Object {
							constructor();
							constructor(anchors: java.util.ISet<java.security.cert.TrustAnchor>);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.TrustedCertificateIndex>;
							public index(cert: java.security.cert.X509Certificate): java.security.cert.TrustAnchor;
							public index(anchor: java.security.cert.TrustAnchor): void;
							public reset(): void;
							public reset(anchors: java.util.ISet<java.security.cert.TrustAnchor>): void;
							public findByIssuerAndSignature(cert: java.security.cert.X509Certificate): java.security.cert.TrustAnchor;
							public findBySubjectAndPublicKey(cert: java.security.cert.X509Certificate): java.security.cert.TrustAnchor;
						}
						export class HelloRequest extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 */
							constructor();
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.HelloRequest>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							public length(): number;
							/**
							 * Returns message type
							 */
							public getType(): number;
						}
						/**
						 * This class provides debug logging for JSSE provider implementation TODO: Use java.util.logging
						 */
						export class Logger extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.Logger>;
							public static getStream(name: string): org.apache.harmony.xnet.provider.jsse.Logger.Stream;
						}
						export module Logger {
							export class Stream extends java.io.PrintStream {
								constructor(name: string);
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.Logger.Stream>;
								public print(msg: string): void;
								public newIndent(): void;
								public endIndent(): void;
								public println(msg: string): void;
								public print(data: native.Array<number>): void;
								public print(data: native.Array<number>, offset: number, len: number): void;
								public printAsHex(perLine: number, prefix: string, delimiter: string, data: native.Array<number>): void;
								public printAsHex(perLine: number, prefix: string, delimiter: string, data: native.Array<number>, offset: number, len: number): void;
								/**
								 * Prints the string representation of the double d.
								 */
								print(d: number): void;
								/**
								 * Prints the string representation of the Object o, or "null".
								 */
								print(o: any): void;
								/**
								 * Prints the string representation of the boolean b.
								 */
								print(b: boolean): void;
								/**
								 * Prints a newline.
								 */
								println(): void;
								/**
								 * Prints the string representation of the character array chars followed by a newline.
								 */
								println(chars: native.Array<string>): void;
								/**
								 * Prints the string representation of the double d followed by a newline.
								 */
								println(d: number): void;
								/**
								 * Prints the string representation of the Object o, or "null", followed by a newline.
								 */
								println(o: any): void;
								/**
								 * Prints the string representation of the boolean b followed by a newline.
								 */
								println(b: boolean): void;
							}
						}
						/**
						 * A persistent javax.net.ssl.SSLSession cache used by javax.net.ssl.SSLSessionContext to share server-side SSL sessions across processes. For example, this cache enables one server to resume a session started by a different server based on a session ID provided by the client.
						 */
						export class SSLServerSessionCache implements org.apache.harmony.xnet.provider.jsse.ISSLServerSessionCache {
							constructor(implementation: org.apache.harmony.xnet.provider.jsse.ISSLServerSessionCache);
							/**
							 * Gets the session data for given session ID.
							 * @param id from {@link javax.net.ssl.SSLSession#getId()}
							 */
							public getSessionData(id: native.Array<number>): native.Array<number>;
							/**
							 * Stores session data for the given session.
							 * @param session to cache data for
							 * @param sessionData to cache
							 */
							public putSessionData(session: javax.net.ssl.ISSLSession, sessionData: native.Array<number>): void;
						}
						/**
						 * Provides the Java side of our JNI glue for OpenSSL.
						 */
						export class NativeCrypto extends java.lang.Object {
							constructor();
							static RAND_SEED_LENGTH_IN_BYTES: number;
							static OPENSSL_TO_STANDARD_CIPHER_SUITES: java.util.IMap<string, string>;
							static STANDARD_TO_OPENSSL_CIPHER_SUITES: java.util.IMap<string, string>;
							/**
							 * TLS_EMPTY_RENEGOTIATION_INFO_SCSV is RFC 5746's renegotiation indication signaling cipher suite value. It is not a real cipher suite. It is just an indication in the default and supported cipher suite lists indicates that the implementation supports secure renegotiation.
							 */
							static TLS_EMPTY_RENEGOTIATION_INFO_SCSV: string;
							static EVP_PKEY_RSA: number;
							static EVP_PKEY_DSA: number;
							static EVP_PKEY_DH: number;
							static EVP_PKEY_EC: number;
							static RSA_PKCS1_PADDING: number;
							static RSA_NO_PADDING: number;
							static SSL_MODE_HANDSHAKE_CUTTHROUGH: number;
							static SSL_OP_NO_TICKET: number;
							static SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
							static SSL_OP_NO_SSLv3: number;
							static SSL_OP_NO_TLSv1: number;
							static SSL_OP_NO_TLSv1_1: number;
							static SSL_OP_NO_TLSv1_2: number;
							static SSL_VERIFY_NONE: number;
							static SSL_VERIFY_PEER: number;
							static SSL_VERIFY_FAIL_IF_NO_PEER_CERT: number;
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.NativeCrypto>;
							public static ENGINE_load_dynamic(): void;
							public static ENGINE_by_id(id: string): number;
							public static ENGINE_add(e: number): number;
							public static ENGINE_init(e: number): number;
							public static ENGINE_finish(e: number): number;
							public static ENGINE_free(e: number): number;
							public static ENGINE_load_private_key(e: number, key_id: string): number;
							public static EVP_PKEY_new_DSA(p: native.Array<number>, q: native.Array<number>, g: native.Array<number>, pub_key: native.Array<number>, priv_key: native.Array<number>): number;
							public static EVP_PKEY_new_RSA(n: native.Array<number>, e: native.Array<number>, d: native.Array<number>, p: native.Array<number>, q: native.Array<number>, dmp1: native.Array<number>, dmq1: native.Array<number>, iqmp: native.Array<number>): number;
							public static EVP_PKEY_size(pkey: number): number;
							public static EVP_PKEY_type(pkey: number): number;
							public static EVP_PKEY_free(pkey: number): void;
							public static EVP_PKEY_cmp(pkey1: number, pkey2: number): number;
							public static i2d_PKCS8_PRIV_KEY_INFO(pkey: number): native.Array<number>;
							public static d2i_PKCS8_PRIV_KEY_INFO(data: native.Array<number>): number;
							public static i2d_PUBKEY(pkey: number): native.Array<number>;
							public static d2i_PUBKEY(data: native.Array<number>): number;
							public static RSA_generate_key_ex(modulusBits: number, publicExponent: native.Array<number>): number;
							public static RSA_size(pkey: number): number;
							public static RSA_private_encrypt(flen: number, from: native.Array<number>, to: native.Array<number>, pkey: number, padding: number): number;
							public static RSA_public_decrypt(flen: number, from: native.Array<number>, to: native.Array<number>, pkey: number, padding: number): number;
							public static RSA_public_encrypt(flen: number, from: native.Array<number>, to: native.Array<number>, pkey: number, padding: number): number;
							public static RSA_private_decrypt(flen: number, from: native.Array<number>, to: native.Array<number>, pkey: number, padding: number): number;
							public static get_RSA_public_params(rsa: number): native.Array<native.Array<number>>;
							public static get_RSA_private_params(rsa: number): native.Array<native.Array<number>>;
							public static DSA_generate_key(primeBits: number, seed: native.Array<number>, g: native.Array<number>, p: native.Array<number>, q: native.Array<number>): number;
							public static get_DSA_params(dsa: number): native.Array<native.Array<number>>;
							public static i2d_RSAPublicKey(rsa: number): native.Array<number>;
							public static i2d_RSAPrivateKey(rsa: number): native.Array<number>;
							public static i2d_DSAPublicKey(dsa: number): native.Array<number>;
							public static i2d_DSAPrivateKey(dsa: number): native.Array<number>;
							public static EVP_get_digestbyname(name: string): number;
							public static EVP_MD_size(evp_md: number): number;
							public static EVP_MD_block_size(evp_md: number): number;
							public static EVP_MD_CTX_destroy(ctx: number): void;
							public static EVP_MD_CTX_copy(ctx: number): number;
							public static EVP_DigestInit(evp_md: number): number;
							public static EVP_DigestUpdate(ctx: number, buffer: native.Array<number>, offset: number, length: number): void;
							public static EVP_DigestFinal(ctx: number, hash: native.Array<number>, offset: number): number;
							public static EVP_SignInit(algorithm: string): number;
							public static EVP_SignUpdate(ctx: number, buffer: native.Array<number>, offset: number, length: number): void;
							public static EVP_SignFinal(ctx: number, signature: native.Array<number>, offset: number, key: number): number;
							public static EVP_VerifyInit(algorithm: string): number;
							public static EVP_VerifyUpdate(ctx: number, buffer: native.Array<number>, offset: number, length: number): void;
							public static EVP_VerifyFinal(ctx: number, signature: native.Array<number>, offset: number, length: number, key: number): number;
							public static EVP_get_cipherbyname(string: string): number;
							public static EVP_CipherInit_ex(cipherNid: number, key: native.Array<number>, iv: native.Array<number>, encrypting: boolean): number;
							public static EVP_CipherUpdate(ctx: number, out: native.Array<number>, outOffset: number, input: native.Array<number>, inOffset: number): number;
							public static EVP_CipherFinal_ex(ctx: number, out: native.Array<number>, outOffset: number): number;
							public static EVP_CIPHER_CTX_cleanup(ctx: number): void;
							public static RAND_seed(seed: native.Array<number>): void;
							public static RAND_load_file(filename: string, max_bytes: number): number;
							public static RAND_bytes(output: native.Array<number>): void;
							public static X509_NAME_hash(principal: javax.security.auth.x500.X500Principal): number;
							public static X509_NAME_hash_old(principal: javax.security.auth.x500.X500Principal): number;
							public static SSL_CTX_new(): number;
							public static getDefaultCipherSuites(): native.Array<string>;
							public static getSupportedCipherSuites(): native.Array<string>;
							public static SSL_CTX_free(ssl_ctx: number): void;
							public static SSL_CTX_set_session_id_context(ssl_ctx: number, sid_ctx: native.Array<number>): void;
							public static SSL_new(ssl_ctx: number): number;
							public static encodeCertificates(certificates: native.Array<java.security.cert.Certificate>): native.Array<native.Array<number>>;
							public static SSL_use_certificate(ssl: number, asn1DerEncodedCertificateChain: native.Array<native.Array<number>>): void;
							public static SSL_use_OpenSSL_PrivateKey(ssl: number, pkey: number): void;
							public static SSL_use_PrivateKey(ssl: number, pkcs8EncodedPrivateKey: native.Array<number>): void;
							public static SSL_check_private_key(ssl: number): void;
							public static encodeIssuerX509Principals(certificates: native.Array<java.security.cert.X509Certificate>): native.Array<native.Array<number>>;
							public static SSL_set_client_CA_list(ssl: number, asn1DerEncodedX500Principals: native.Array<native.Array<number>>): void;
							public static SSL_get_mode(ssl: number): any;
							public static SSL_set_mode(ssl: number, mode: number): any;
							public static SSL_clear_mode(ssl: number, mode: number): any;
							public static SSL_get_options(ssl: number): any;
							public static SSL_set_options(ssl: number, options: number): any;
							public static SSL_clear_options(ssl: number, options: number): any;
							public static getDefaultProtocols(): native.Array<string>;
							public static getSupportedProtocols(): native.Array<string>;
							public static setEnabledProtocols(ssl: number, protocols: native.Array<string>): void;
							public static checkEnabledProtocols(protocols: native.Array<string>): native.Array<string>;
							public static SSL_set_cipher_lists(ssl: number, ciphers: native.Array<string>): void;
							public static setEnabledCipherSuites(ssl: number, cipherSuites: native.Array<string>): void;
							public static checkEnabledCipherSuites(cipherSuites: native.Array<string>): native.Array<string>;
							public static SSL_set_verify(sslNativePointer: number, mode: number): void;
							public static SSL_set_session(sslNativePointer: number, sslSessionNativePointer: number): void;
							public static SSL_set_session_creation_enabled(sslNativePointer: number, creationEnabled: boolean): void;
							public static SSL_set_tlsext_host_name(sslNativePointer: number, hostname: string): void;
							public static SSL_get_servername(sslNativePointer: number): string;
							/**
							 * Enables NPN for all SSL connections in the context.
							 */
							public static SSL_CTX_enable_npn(sslCtxNativePointer: number): void;
							/**
							 * Disables NPN for all SSL connections in the context.
							 */
							public static SSL_CTX_disable_npn(sslCtxNativePointer: number): void;
							/**
							 * Returns the sslSessionNativePointer of the negotiated session
							 */
							public static SSL_do_handshake(sslNativePointer: number, fd: java.io.FileDescriptor, shc: org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks, timeoutMillis: number, client_mode: boolean, npnProtocols: native.Array<number>): number;
							public static SSL_get_npn_negotiated_protocol(sslNativePointer: number): native.Array<number>;
							/**
							 * Currently only intended for forcing renegotiation for testing. Not used within OpenSSLSocketImpl.
							 */
							public static SSL_renegotiate(sslNativePointer: number): void;
							/**
							 * Returns the local ASN.1 DER encoded X509 certificates.
							 */
							public static SSL_get_certificate(sslNativePointer: number): native.Array<native.Array<number>>;
							/**
							 * Returns the peer ASN.1 DER encoded X509 certificates.
							 */
							public static SSL_get_peer_cert_chain(sslNativePointer: number): native.Array<native.Array<number>>;
							/**
							 * Reads with the native SSL_read function from the encrypted data stream
							 */
							public static SSL_read(sslNativePointer: number, fd: java.io.FileDescriptor, shc: org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks, b: native.Array<number>, off: number, len: number, readTimeoutMillis: number): number;
							/**
							 * Writes with the native SSL_write function to the encrypted data stream.
							 */
							public static SSL_write(sslNativePointer: number, fd: java.io.FileDescriptor, shc: org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks, b: native.Array<number>, off: number, len: number, writeTimeoutMillis: number): void;
							public static SSL_interrupt(sslNativePointer: number): void;
							public static SSL_shutdown(sslNativePointer: number, fd: java.io.FileDescriptor, shc: org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks): void;
							public static SSL_free(sslNativePointer: number): void;
							public static SSL_SESSION_session_id(sslSessionNativePointer: number): native.Array<number>;
							public static SSL_SESSION_get_time(sslSessionNativePointer: number): any;
							public static SSL_SESSION_get_version(sslSessionNativePointer: number): string;
							public static SSL_SESSION_cipher(sslSessionNativePointer: number): string;
							public static SSL_SESSION_free(sslSessionNativePointer: number): void;
							public static i2d_SSL_SESSION(sslSessionNativePointer: number): native.Array<number>;
							public static d2i_SSL_SESSION(data: native.Array<number>): number;
						}
						export module NativeCrypto {
							/**
							 * A collection of callbacks from the native OpenSSL code that are related to the SSL handshake initiated by SSL_do_handshake.
							 */
							export class SSLHandshakeCallbacks implements org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks {
								constructor(implementation: org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks);
								/**
								 * Verify that we trust the certificate chain is trusted.
								 * @param asn1DerEncodedCertificateChain A chain of ASN.1 DER encoded certificates
								 * @param authMethod auth algorithm name
								 */
								public verifyCertificateChain(asn1DerEncodedCertificateChain: native.Array<native.Array<number>>, authMethod: string): void;
								/**
								 * Called on an SSL client when the server requests (or requires a certificate). The client can respond by using SSL_use_certificate and SSL_use_PrivateKey to set a certificate if has an appropriate one available, similar to how the server provides its certificate.
								 * @param keyTypes key types supported by the server,
								 * @param asn1DerEncodedX500Principals CAs known to the server
								 */
								public clientCertificateRequested(keyTypes: native.Array<number>, asn1DerEncodedX500Principals: native.Array<native.Array<number>>): void;
								/**
								 * Called when SSL handshake is completed. Note that this can be after SSL_do_handshake returns when handshake cutthrough is enabled.
								 */
								public handshakeCompleted(): void;
							}
							/**
							 * A collection of callbacks from the native OpenSSL code that are related to the SSL handshake initiated by SSL_do_handshake.
							 */
							interface ISSLHandshakeCallbacks {
								/**
								 * Verify that we trust the certificate chain is trusted.
								 * @param asn1DerEncodedCertificateChain A chain of ASN.1 DER encoded certificates
								 * @param authMethod auth algorithm name
								 */
								verifyCertificateChain(asn1DerEncodedCertificateChain: native.Array<native.Array<number>>, authMethod: string): void;
								/**
								 * Called on an SSL client when the server requests (or requires a certificate). The client can respond by using SSL_use_certificate and SSL_use_PrivateKey to set a certificate if has an appropriate one available, similar to how the server provides its certificate.
								 * @param keyTypes key types supported by the server,
								 * @param asn1DerEncodedX500Principals CAs known to the server
								 */
								clientCertificateRequested(keyTypes: native.Array<number>, asn1DerEncodedX500Principals: native.Array<native.Array<number>>): void;
								/**
								 * Called when SSL handshake is completed. Note that this can be after SSL_do_handshake returns when handshake cutthrough is enabled.
								 */
								handshakeCompleted(): void;
							}
						}
						/**
						 * Represents server/client certificate message <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0 spec., 7.4.2. Server certificate; 7.4.6. Client certificate</a>
						 */
						export class CertificateMessage extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							/**
							 * Creates outbound message
							 * @param certs 
							 */
							constructor(certs: native.Array<java.security.cert.X509Certificate>);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.CertificateMessage>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							public getAuthType(): string;
							/**
							 * Returns message type
							 */
							public getType(): number;
						}
						/**
						 * This class wraps the SSL fuctionality over existing conneted socket.
						 */
						export class SSLSocketWrapper extends org.apache.harmony.xnet.provider.jsse.SSLSocketImpl {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLSocketWrapper>;
							protected initTransportLayer(): void;
							protected closeTransportLayer(): void;
							public connect(sockaddr: java.net.SocketAddress, timeout: number): void;
							public connect(sockaddr: java.net.SocketAddress): void;
							public bind(sockaddr: java.net.SocketAddress): void;
							public getRemoteSocketAddress(): java.net.SocketAddress;
							public getLocalSocketAddress(): java.net.SocketAddress;
							public getLocalAddress(): java.net.InetAddress;
							public getInetAddress(): java.net.InetAddress;
							public toString(): string;
							public setSoLinger(on: boolean, linger: number): void;
							public setTcpNoDelay(on: boolean): void;
							public setReuseAddress(on: boolean): void;
							public setKeepAlive(on: boolean): void;
							public setTrafficClass(tos: number): void;
							public setSoTimeout(to: number): void;
							public setSendBufferSize(size: number): void;
							public setReceiveBufferSize(size: number): void;
							public getTcpNoDelay(): boolean;
							public getReuseAddress(): boolean;
							public getOOBInline(): boolean;
							public getKeepAlive(): boolean;
							public getTrafficClass(): number;
							public getSoTimeout(): number;
							public getSoLinger(): number;
							public getSendBufferSize(): number;
							public getReceiveBufferSize(): number;
							public isConnected(): boolean;
							public isClosed(): boolean;
							public isBound(): boolean;
							public isOutputShutdown(): boolean;
							public isInputShutdown(): boolean;
							public getPort(): number;
							public getLocalPort(): number;
							public getFileDescriptor$(): java.io.FileDescriptor;
						}
						/**
						 * Implementation of SSLSocketFactory.
						 */
						export class SSLSocketFactoryImpl extends javax.net.ssl.SSLSocketFactory {
							/**
							 * Constructor.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLSocketFactoryImpl>;
							/**
							 *  javax.net.ssl.SSLSocketFactory#getDefaultCipherSuites()
							 */
							public getDefaultCipherSuites(): native.Array<string>;
							/**
							 *  javax.net.ssl.SSLSocketFactory#getSupportedCipherSuites()
							 */
							public getSupportedCipherSuites(): native.Array<string>;
							/**
							 *  javax.net.ssl.SSLSocketFactory#createSocket(Socket,String,int,boolean)
							 */
							public createSocket(s: java.net.Socket, host: string, port: number, autoClose: boolean): java.net.Socket;
							/**
							 *  javax.net.SocketFactory#createSocket()
							 */
							public createSocket(): java.net.Socket;
							/**
							 *  javax.net.SocketFactory#createSocket(String,int)
							 */
							public createSocket(host: string, port: number): java.net.Socket;
							/**
							 *  javax.net.SocketFactory#createSocket(String,int,InetAddress,int)
							 */
							public createSocket(host: string, port: number, localHost: java.net.InetAddress, localPort: number): java.net.Socket;
							/**
							 *  javax.net.SocketFactory#createSocket(InetAddress,int)
							 */
							public createSocket(host: java.net.InetAddress, port: number): java.net.Socket;
							/**
							 *  javax.net.SocketFactory#createSocket(InetAddress,int,InetAddress,int)
							 */
							public createSocket(address: java.net.InetAddress, port: number, localAddress: java.net.InetAddress, localPort: number): java.net.Socket;
						}
						export class OpenSSLRSAPublicKey extends java.lang.Object implements java.security.interfaces.IRSAPublicKey {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLRSAPublicKey>;
							getOpenSSLKey(): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							static getInstance(rsaPublicKey: java.security.interfaces.IRSAPublicKey): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							public getAlgorithm(): string;
							public getFormat(): string;
							public getEncoded(): native.Array<number>;
							public getModulus(): java.math.BigInteger;
							public getPublicExponent(): java.math.BigInteger;
							public equals(o: any): boolean;
							public hashCode(): number;
							public toString(): string;
						}
						export class OpenSSLRandom extends java.security.SecureRandomSpi implements java.io.ISerializable {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLRandom>;
							protected engineSetSeed(seed: native.Array<number>): void;
							protected engineNextBytes(bytes: native.Array<number>): void;
							protected engineGenerateSeed(numBytes: number): native.Array<number>;
						}
						export class CertificateRequest extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 * @param certificate_types 
							 * @param accepted - array of certificate authority certificates
							 */
							constructor(certificate_types: native.Array<number>, accepted: native.Array<java.security.cert.X509Certificate>);
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.CertificateRequest>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns message type
							 */
							public getType(): number;
							/**
							 * Returns requested certificate types as array of strings
							 */
							public getTypesAsString(): native.Array<string>;
						}
						export class OpenSSLProvider extends java.security.Provider {
							constructor();
							static PROVIDER_NAME: string;
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLProvider>;
						}
						/**
						 * A persistent javax.net.ssl.SSLSession cache used by javax.net.ssl.SSLSessionContext to share client-side SSL sessions across processes. For example, this cache enables applications to persist and reuse sessions across restarts.
						 */
						interface ISSLClientSessionCache {
							/**
							 * Gets data from a pre-existing session for a given server host and port.
							 * @param host from {@link javax.net.ssl.SSLSession#getPeerHost()}
							 * @param port from {@link javax.net.ssl.SSLSession#getPeerPort()}
							 */
							getSessionData(host: string, port: number): native.Array<number>;
							/**
							 * Stores session data for the given session.
							 * @param session to cache data for
							 * @param sessionData to cache
							 */
							putSessionData(session: javax.net.ssl.ISSLSession, sessionData: native.Array<number>): void;
						}
						export class OpenSSLEngine extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLEngine>;
							public static getInstance(engine: string): org.apache.harmony.xnet.provider.jsse.OpenSSLEngine;
							public getPrivateKeyById(id: string): java.security.IPrivateKey;
							getEngineContext(): number;
							protected finalize(): void;
							public equals(o: any): boolean;
							public hashCode(): number;
						}
						/**
						 * Implements the subset of the JDK Signature interface needed for signature verification using OpenSSL.
						 */
						export class OpenSSLSignature extends java.security.Signature {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignature>;
							protected engineUpdate(input: number): void;
							protected engineUpdate(input: native.Array<number>, offset: number, len: number): void;
							protected engineGetParameter(param: string): any;
							protected engineInitSign(privateKey: java.security.IPrivateKey): void;
							protected engineInitVerify(publicKey: java.security.IPublicKey): void;
							protected engineSetParameter(param: string, value: any): void;
							protected engineSign(): native.Array<number>;
							protected engineVerify(sigBytes: native.Array<number>): boolean;
							protected finalize(): void;
							/**
							 * Initializes this SignatureSpi instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.
							 * @param privateKey 
							 * @param random 
							 */
							protected engineInitSign(privateKey: java.security.IPrivateKey, random: java.security.SecureRandom): void;
							/**
							 * Updates the data to be verified or to be signed, using the specified ByteBuffer.
							 * @param input 
							 */
							protected engineUpdate(input: java.nio.ByteBuffer): void;
							/**
							 * Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.
							 * @param outbuf 
							 * @param offset 
							 * @param len 
							 */
							protected engineSign(outbuf: native.Array<number>, offset: number, len: number): number;
							/**
							 * Indicates whether the given sigBytes starting at index offset with length bytes can be verified using the public key or a certificate of the signer.
							 * @param sigBytes 
							 * @param offset 
							 * @param length 
							 */
							protected engineVerify(sigBytes: native.Array<number>, offset: number, length: number): boolean;
							/**
							 * Sets the specified AlgorithmParameterSpec.
							 * @param params 
							 */
							protected engineSetParameter(params: java.security.spec.IAlgorithmParameterSpec): void;
						}
						export module OpenSSLSignature {
							export class SHA1DSA extends org.apache.harmony.xnet.provider.jsse.OpenSSLSignature {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignature.SHA1DSA>;
							}
							export class SHA512RSA extends org.apache.harmony.xnet.provider.jsse.OpenSSLSignature {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignature.SHA512RSA>;
							}
							export class SHA384RSA extends org.apache.harmony.xnet.provider.jsse.OpenSSLSignature {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignature.SHA384RSA>;
							}
							export class SHA1RSA extends org.apache.harmony.xnet.provider.jsse.OpenSSLSignature {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignature.SHA1RSA>;
							}
							export class SHA256RSA extends org.apache.harmony.xnet.provider.jsse.OpenSSLSignature {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignature.SHA256RSA>;
							}
							export enum EngineType {
								RSA,
								DSA
							}
							export class MD5RSA extends org.apache.harmony.xnet.provider.jsse.OpenSSLSignature {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignature.MD5RSA>;
							}
						}
						/**
						 * Represents Client Hello message <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0 spec., 7.4.1.2. Client hello</a>
						 */
						export class ClientHello extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 * @param sr 
							 * @param version 
							 * @param ses_id 
							 * @param cipher_suite 
							 */
							constructor(sr: java.security.SecureRandom, version: native.Array<number>, ses_id: native.Array<number>, cipher_suite: native.Array<org.apache.harmony.xnet.provider.jsse.CipherSuite>);
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							/**
							 * Parse V2ClientHello
							 * @param input in
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ClientHello>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns client random
							 */
							public getRandom(): native.Array<number>;
							/**
							 * Returns message type
							 */
							public getType(): number;
						}
						export class SSLSessionImpl extends java.lang.Object implements javax.net.ssl.ISSLSession, java.lang.ICloneable {
							constructor(cipher_suite: org.apache.harmony.xnet.provider.jsse.CipherSuite, secureRandom: java.security.SecureRandom);
							constructor(secureRandom: java.security.SecureRandom);
							/**
							 * Session object reporting an invalid cipher suite of "SSL_NULL_WITH_NULL_NULL"
							 */
							static NULL_SESSION: org.apache.harmony.xnet.provider.jsse.SSLSessionImpl;
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLSessionImpl>;
							public getApplicationBufferSize(): number;
							public getCipherSuite(): string;
							public getCreationTime(): any;
							public getId(): native.Array<number>;
							public getLastAccessedTime(): any;
							public getLocalCertificates(): native.Array<java.security.cert.Certificate>;
							public getLocalPrincipal(): java.security.IPrincipal;
							public getPacketBufferSize(): number;
							public getPeerCertificateChain(): native.Array<javax.security.cert.X509Certificate>;
							public getPeerCertificates(): native.Array<java.security.cert.Certificate>;
							public getPeerHost(): string;
							public getPeerPort(): number;
							public getPeerPrincipal(): java.security.IPrincipal;
							public getProtocol(): string;
							public getSessionContext(): javax.net.ssl.ISSLSessionContext;
							public getValue(name: string): any;
							public getValueNames(): native.Array<string>;
							public invalidate(): void;
							public isValid(): boolean;
							public putValue(name: string, value: any): void;
							public removeValue(name: string): void;
							public clone(): any;
							setPeer(peerHost: string, peerPort: number): void;
						}
						export class PinFailureLogger extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.PinFailureLogger>;
							public static log(cn: string, chainContainsUserCert: boolean, pinIsEnforcing: boolean, chain: java.util.IList<java.security.cert.X509Certificate>): void;
							protected static writeToLog(cn: string, chainContainsUserCert: boolean, pinIsEnforcing: boolean, chain: java.util.IList<java.security.cert.X509Certificate>): void;
							protected static timeToLog(): boolean;
						}
						/**
						 * This exception indicates that data could not be read from the stream because the underlying input stream reached its end.
						 */
						export class EndOfBufferException extends java.io.IOException {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.EndOfBufferException>;
						}
						/**
						 * Implementation of the class OpenSSLSessionImpl based on OpenSSL.
						 */
						export class OpenSSLSessionImpl extends java.lang.Object implements javax.net.ssl.ISSLSession {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSessionImpl>;
							/**
							 * Gets the identifier of the actual SSL session
							 */
							public getId(): native.Array<number>;
							/**
							 * Reset the id field to the current value found in the native SSL_SESSION. It can change during the lifetime of the session because while a session is created during initial handshake, with handshake_cutthrough, the SSL_do_handshake may return before we have read the session ticket from the server side and therefore have computed no id based on the SHA of the ticket.
							 */
							resetId(): void;
							/**
							 * Get the session object in DER format. This allows saving the session data or sharing it with other processes.
							 */
							getEncoded(): native.Array<number>;
							/**
							 * Gets the creation time of the SSL session.
							 */
							public getCreationTime(): any;
							/**
							 * Returns the last time this concrete SSL session was accessed. Accessing here is to mean that a new connection with the same SSL context data was established.
							 */
							public getLastAccessedTime(): any;
							/**
							 * Returns the largest buffer size for the application's data bound to this concrete SSL session.
							 */
							public getApplicationBufferSize(): number;
							/**
							 * Returns the largest SSL/TLS packet size one can expect for this concrete SSL session.
							 */
							public getPacketBufferSize(): number;
							/**
							 * Returns the principal (subject) of this concrete SSL session used in the handshaking phase of the connection.
							 */
							public getLocalPrincipal(): java.security.IPrincipal;
							/**
							 * Returns the certificate(s) of the principal (subject) of this concrete SSL session used in the handshaking phase of the connection. The OpenSSL native method supports only RSA certificates.
							 */
							public getLocalCertificates(): native.Array<java.security.cert.Certificate>;
							/**
							 * Returns the certificate(s) of the peer in this SSL session used in the handshaking phase of the connection. Please notice hat this method is superseded by <code>getPeerCertificates()</code>.
							 */
							public getPeerCertificateChain(): native.Array<javax.security.cert.X509Certificate>;
							/**
							 * Return the identity of the peer in this SSL session determined via certificate(s).
							 */
							public getPeerCertificates(): native.Array<java.security.cert.Certificate>;
							/**
							 * The identity of the principal that was used by the peer during the SSL handshake phase is returned by this method.
							 */
							public getPeerPrincipal(): java.security.IPrincipal;
							/**
							 * The peer's host name used in this SSL session is returned. It is the host name of the client for the server; and that of the server for the client. It is not a reliable way to get a fully qualified host name: it is mainly used internally to implement links for a temporary cache of SSL sessions.
							 */
							public getPeerHost(): string;
							/**
							 * Returns the peer's port number for the actual SSL session. It is the port number of the client for the server; and that of the server for the client. It is not a reliable way to get a peer's port number: it is mainly used internally to implement links for a temporary cache of SSL sessions.
							 */
							public getPeerPort(): number;
							/**
							 * Returns a string identifier of the crypto tools used in the actual SSL session. For example AES_256_WITH_MD5.
							 */
							public getCipherSuite(): string;
							/**
							 * Returns the standard version name of the SSL protocol used in all connections pertaining to this SSL session.
							 */
							public getProtocol(): string;
							/**
							 * Returns the context to which the actual SSL session is bound. A SSL context consists of (1) a possible delegate, (2) a provider and (3) a protocol.
							 */
							public getSessionContext(): javax.net.ssl.ISSLSessionContext;
							/**
							 * Returns a boolean flag signaling whether a SSL session is valid and available for resuming or joining or not.
							 */
							public isValid(): boolean;
							/**
							 * It invalidates a SSL session forbidding any resumption.
							 */
							public invalidate(): void;
							/**
							 * Returns the object which is bound to the the input parameter name. This name is a sort of link to the data of the SSL session's application layer, if any exists.
							 * @param name the name of the binding to find.
							 */
							public getValue(name: string): any;
							/**
							 * Returns an array with the names (sort of links) of all the data objects of the application layer bound into the SSL session.
							 */
							public getValueNames(): native.Array<string>;
							/**
							 * A link (name) with the specified value object of the SSL session's application layer data is created or replaced. If the new (or existing) value object implements the <code>SSLSessionBindingListener</code> interface, that object will be notified in due course.
							 * @param name the name of the link (no null are
							 * @param value data object that shall be bound to
							 */
							public putValue(name: string, value: any): void;
							/**
							 * Removes a link (name) with the specified value object of the SSL session's application layer data.
							 * @param name the name of the link (no null are
							 */
							public removeValue(name: string): void;
							protected finalize(): void;
						}
						/**
						 * The instances of this class encapsulate all the info about enabled cipher suites and protocols, as well as the information about client/server mode of ssl socket, whether it require/want client authentication or not, and controls whether new SSL sessions may be established by this socket or not.
						 */
						export class SSLParametersImpl extends java.lang.Object implements java.lang.ICloneable {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLParametersImpl>;
							protected getEnabledCipherSuitesMember(): native.Array<org.apache.harmony.xnet.provider.jsse.CipherSuite>;
							protected static getDefault(): org.apache.harmony.xnet.provider.jsse.SSLParametersImpl;
							protected getServerSessionContext(): org.apache.harmony.xnet.provider.jsse.ServerSessionContext;
							protected getClientSessionContext(): org.apache.harmony.xnet.provider.jsse.ClientSessionContext;
							protected getKeyManager(): javax.net.ssl.IX509KeyManager;
							protected getTrustManager(): javax.net.ssl.IX509TrustManager;
							protected getSecureRandom(): java.security.SecureRandom;
							protected getSecureRandomMember(): java.security.SecureRandom;
							protected getEnabledCipherSuites(): native.Array<string>;
							/**
							 * Sets the set of available cipher suites for use in SSL connection.
							 * @param suites : String[]
							 */
							protected setEnabledCipherSuites(suites: native.Array<string>): void;
							protected getEnabledProtocols(): native.Array<string>;
							/**
							 * Sets the set of available protocols for use in SSL connection.
							 * @param protocols String[]
							 */
							protected setEnabledProtocols(protocols: native.Array<string>): void;
							/**
							 * Tunes the peer holding this parameters to work in client mode.
							 * @param mode if the peer is configured to work in client mode
							 */
							protected setUseClientMode(mode: boolean): void;
							/**
							 * Returns the value indicating if the parameters configured to work in client mode.
							 */
							protected getUseClientMode(): boolean;
							/**
							 * Tunes the peer holding this parameters to require client authentication
							 */
							protected setNeedClientAuth(need: boolean): void;
							/**
							 * Returns the value indicating if the peer with this parameters tuned to require client authentication
							 */
							protected getNeedClientAuth(): boolean;
							/**
							 * Tunes the peer holding this parameters to request client authentication
							 */
							protected setWantClientAuth(want: boolean): void;
							/**
							 * Returns the value indicating if the peer with this parameters tuned to request client authentication
							 */
							protected getWantClientAuth(): boolean;
							/**
							 * Allows/disallows the peer holding this parameters to create new SSL session
							 */
							protected setEnableSessionCreation(flag: boolean): void;
							/**
							 * Returns the value indicating if the peer with this parameters allowed to cteate new SSL session
							 */
							protected getEnableSessionCreation(): boolean;
							/**
							 * Returns the clone of this object.
							 */
							protected clone(): any;
							/**
							 * Gets the default trust manager.
							 */
							public static getDefaultTrustManager(): javax.net.ssl.IX509TrustManager;
						}
						export class NativeCryptoTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.NativeCryptoTest>;
							public static assertEqualSessions(expected: number, actual: number): void;
							public static assertEqualByteArrays(expected: native.Array<number>, actual: native.Array<number>): void;
							public static assertEqualPrincipals(expected: native.Array<native.Array<number>>, actual: native.Array<native.Array<number>>): void;
							public static assertEqualCertificateChains(expected: native.Array<native.Array<number>>, actual: native.Array<native.Array<number>>): void;
							public test_EVP_PKEY_cmp(): void;
							public test_SSL_CTX_new(): void;
							public test_SSL_CTX_free(): void;
							public test_SSL_CTX_set_session_id_context(): void;
							public test_SSL_new(): void;
							public test_SSL_use_certificate(): void;
							public test_SSL_use_PrivateKey(): void;
							public test_SSL_check_private_key_null(): void;
							public test_SSL_check_private_key_no_key_no_cert(): void;
							public test_SSL_check_private_key_cert_then_key(): void;
							public test_SSL_check_private_key_key_then_cert(): void;
							public test_SSL_get_mode(): void;
							public test_SSL_set_mode_and_clear_mode(): void;
							public test_SSL_get_options(): void;
							public test_SSL_set_options(): void;
							public test_SSL_clear_options(): void;
							public test_SSL_set_cipher_lists(): void;
							public test_SSL_set_verify(): void;
							public static handshake(listener: java.net.ServerSocket, timeout: number, client: boolean, hooks: org.apache.harmony.xnet.provider.jsse.NativeCryptoTest.Hooks, npnProtocols: native.Array<number>): java.util.concurrent.IFuture<org.apache.harmony.xnet.provider.jsse.NativeCryptoTest.TestSSLHandshakeCallbacks>;
							public test_SSL_do_handshake_NULL_SSL(): void;
							public test_SSL_do_handshake_null_args(): void;
							public test_SSL_do_handshake_normal(): void;
							public test_SSL_do_handshake_optional_client_certificate(): void;
							public test_SSL_do_handshake_missing_required_certificate(): void;
							/**
							 * Usually if a RuntimeException is thrown by the clientCertificateRequestedCalled callback, the caller sees it during the call to NativeCrypto_SSL_do_handshake. However, IIS does not request client certs until after the initial handshake. It does an SSL renegotiation, which means we need to be able to deliver the callback's exception in cases like SSL_read, SSL_write, and SSL_shutdown.
							 */
							public test_SSL_do_handshake_clientCertificateRequested_throws_after_renegotiate(): void;
							public test_SSL_do_handshake_client_timeout(): void;
							public test_SSL_do_handshake_server_timeout(): void;
							public test_SSL_set_session(): void;
							public test_SSL_set_session_creation_enabled(): void;
							public test_SSL_set_tlsext_host_name(): void;
							public test_SSL_NpnNegotiateSuccess(): void;
							public test_SSL_get_servername_null(): void;
							public test_SSL_renegotiate(): void;
							public test_SSL_get_certificate(): void;
							public test_SSL_get_peer_cert_chain(): void;
							public test_SSL_read(): void;
							public test_SSL_write(): void;
							public test_SSL_interrupt(): void;
							public test_SSL_shutdown(): void;
							public test_SSL_free(): void;
							public test_SSL_SESSION_session_id(): void;
							public test_SSL_SESSION_get_time(): void;
							public test_SSL_SESSION_get_version(): void;
							public test_SSL_SESSION_cipher(): void;
							public test_SSL_SESSION_free(): void;
							public test_i2d_SSL_SESSION(): void;
							public test_d2i_SSL_SESSION(): void;
							public test_X509_NAME_hashes(): void;
							public test_ENGINE_by_id_Failure(): void;
							public test_RAND_bytes_Success(): void;
							public test_RAND_bytes_Null_Failure(): void;
						}
						export module NativeCryptoTest {
							export class ServerHooks extends org.apache.harmony.xnet.provider.jsse.NativeCryptoTest.Hooks {
								constructor(privateKey: native.Array<number>, certificates: native.Array<native.Array<number>>);
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.NativeCryptoTest.ServerHooks>;
								public beforeHandshake(c: number): number;
								public clientCertificateRequested(s: number): void;
							}
							export class TestSSLHandshakeCallbacks extends java.lang.Object implements org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks {
								constructor(socket: java.net.Socket, sslNativePointer: number, hooks: org.apache.harmony.xnet.provider.jsse.NativeCryptoTest.Hooks);
								asn1DerEncodedCertificateChain: native.Array<native.Array<number>>;
								authMethod: string;
								verifyCertificateChainCalled: boolean;
								keyTypes: native.Array<number>;
								asn1DerEncodedX500Principals: native.Array<native.Array<number>>;
								clientCertificateRequestedCalled: boolean;
								handshakeCompletedCalled: boolean;
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.NativeCryptoTest.TestSSLHandshakeCallbacks>;
								public verifyCertificateChain(asn1DerEncodedCertificateChain: native.Array<native.Array<number>>, authMethod: string): void;
								public clientCertificateRequested(keyTypes: native.Array<number>, asn1DerEncodedX500Principals: native.Array<native.Array<number>>): void;
								public handshakeCompleted(): void;
								public getSocket(): java.net.Socket;
							}
							export class Hooks extends java.lang.Object {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.NativeCryptoTest.Hooks>;
								public getContext(): number;
								public beforeHandshake(context: number): number;
								public clientCertificateRequested(s: number): void;
								public afterHandshake(session: number, ssl: number, context: number, socket: java.net.Socket, fd: java.io.FileDescriptor, callback: org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks): void;
							}
						}
						/**
						 * SSLServerSocket implementation javax.net.ssl.SSLServerSocket class documentation for more information.
						 */
						export class SSLServerSocketImpl extends javax.net.ssl.SSLServerSocket {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLServerSocketImpl>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getSupportedCipherSuites() method documentation for more information
							 */
							public getSupportedCipherSuites(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getEnabledCipherSuites() method documentation for more information
							 */
							public getEnabledCipherSuites(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#setEnabledCipherSuites(String[]) method documentation for more information
							 */
							public setEnabledCipherSuites(suites: native.Array<string>): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getSupportedProtocols() method documentation for more information
							 */
							public getSupportedProtocols(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getEnabledProtocols() method documentation for more information
							 */
							public getEnabledProtocols(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#setEnabledProtocols(String[]) method documentation for more information
							 */
							public setEnabledProtocols(protocols: native.Array<string>): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#setUseClientMode(boolean) method documentation for more information
							 */
							public setUseClientMode(mode: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getUseClientMode() method documentation for more information
							 */
							public getUseClientMode(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#setNeedClientAuth(boolean) method documentation for more information
							 */
							public setNeedClientAuth(need: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getNeedClientAuth() method documentation for more information
							 */
							public getNeedClientAuth(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#setWantClientAuth(boolean) method documentation for more information
							 */
							public setWantClientAuth(want: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getWantClientAuth() method documentation for more information
							 */
							public getWantClientAuth(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#setEnableSessionCreation(boolean) method documentation for more information
							 */
							public setEnableSessionCreation(flag: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLServerSocket#getEnableSessionCreation() method documentation for more information
							 */
							public getEnableSessionCreation(): boolean;
							/**
							 * This method works according to the specification of implemented class. java.net.ServerSocket#accept() method documentation for more information
							 */
							public accept(): java.net.Socket;
							/**
							 * Returns the string representation of the object.
							 */
							public toString(): string;
						}
						export class OpenSSLSocketFactoryImpl extends javax.net.ssl.SSLSocketFactory {
							constructor();
							constructor(sslParameters: org.apache.harmony.xnet.provider.jsse.SSLParametersImpl);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSocketFactoryImpl>;
							public getDefaultCipherSuites(): native.Array<string>;
							public getSupportedCipherSuites(): native.Array<string>;
							public createSocket(): java.net.Socket;
							public createSocket(host: string, port: number): java.net.Socket;
							public createSocket(host: string, port: number, localHost: java.net.InetAddress, localPort: number): java.net.Socket;
							public createSocket(host: java.net.InetAddress, port: number): java.net.Socket;
							public createSocket(address: java.net.InetAddress, port: number, localAddress: java.net.InetAddress, localPort: number): java.net.Socket;
							public createSocket(s: java.net.Socket, host: string, port: number, autoClose: boolean): java.net.Socket;
						}
						/**
						 * This class encapsulates the operating environment of the SSL v3 (http://wp.netscape.com/eng/ssl3) Record Protocol and provides relating encryption/decryption functionality. The work functionality is based on the security parameters negotiated during the handshake.
						 */
						export class ConnectionStateSSLv3 extends org.apache.harmony.xnet.provider.jsse.ConnectionState {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ConnectionStateSSLv3>;
							/**
							 * Creates the GenericStreamCipher or GenericBlockCipher data structure for specified data of specified type. AlertException if alert was occurred.
							 */
							protected encrypt(type: number, fragment: native.Array<number>, offset: number, len: number): native.Array<number>;
							/**
							 * Retrieves the fragment of the Plaintext structure of the specified type from the provided data. AlertException if alert was occured.
							 */
							protected decrypt(type: number, fragment: native.Array<number>, offset: number, len: number): native.Array<number>;
							/**
							 * Shutdown the protocol. It will be impossible to use the instance after the calling of this method.
							 */
							protected shutdown(): void;
							/**
							 * Creates the GenericStreamCipher or GenericBlockCipher data structure for specified data of specified type.
							 * @param type - the ContentType of the provided data
							 * @param fragment - the byte array containing the
							 */
							protected encrypt(type: number, fragment: native.Array<number>): native.Array<number>;
							/**
							 * Retrieves the fragment of the Plaintext structure of the specified type from the provided data.
							 * @param type - the ContentType of the data to be decrypted.
							 * @param fragment - the byte array containing the
							 */
							protected decrypt(type: number, fragment: native.Array<number>): native.Array<number>;
						}
						export class FileClientSessionCacheTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.FileClientSessionCacheTest>;
							public testMaxSize(): void;
						}
						/**
						 * This class performs functionality dedicated to SSL record layer. It unpacks and routes income data to the appropriate client protocol (handshake, alert, application data protocols) and packages outcome data into SSL/TLS records. Initially created object has null connection state and does not perform any cryptography computations over the income/outcome data. After handshake protocol agreed upon security parameters they are placed into SSLSessionImpl object and available for record protocol as pending session. The order of setting up of the pending session as an active session differs for client and server modes. So for client mode the parameters are provided by handshake protocol during retrieving of change_cipher_spec message to be sent (by calling of getChangeCipherSpecMesage method). For server side mode record protocol retrieves the parameters from handshake protocol after receiving of client's change_cipher_spec message. After the pending session has been set up as a current session, new connection state object is created and used for encryption/decryption of the messages. Among with base functionality this class provides the information about constrains on the data length, and information about correspondence of plain and encrypted data lengths. For more information on TLS v1 see http://www.ietf.org/rfc/rfc2246.txt, on SSL v3 see http://wp.netscape.com/eng/ssl3, on SSL v2 see http://wp.netscape.com/eng/security/SSL_2.html.
						 */
						export class SSLRecordProtocol extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLRecordProtocol>;
							/**
							 * Returns the session obtained during the handshake negotiation. If the handshake process was not completed, method returns null.
							 */
							protected getSession(): org.apache.harmony.xnet.provider.jsse.SSLSessionImpl;
							/**
							 * Returns the minimum possible length of the SSL record.
							 */
							protected getMinRecordSize(): number;
							/**
							 * Returns the record length for the specified incoming data length. If actual resulting record length is greater than MAX_CIPHERED_DATA_LENGTH, MAX_CIPHERED_DATA_LENGTH is returned.
							 */
							protected getRecordSize(data_size: number): number;
							/**
							 * Returns the upper bound of length of data containing in the record with specified length. If the provided record_size is greater or equal to MAX_CIPHERED_DATA_LENGTH the returned value will be MAX_DATA_LENGTH counted as for data with MAX_CIPHERED_DATA_LENGTH length.
							 */
							protected getDataSize(record_size: number): number;
							/**
							 * Depending on the Connection State (Session) encrypts and compress the provided data, and packs it into TLSCiphertext structure.
							 * @param content_type : int
							 * @param dataStream 
							 */
							protected wrap(content_type: number, dataStream: org.apache.harmony.xnet.provider.jsse.IDataStream): native.Array<number>;
							/**
							 * Depending on the Connection State (Session) encrypts and compress the provided data, and packs it into TLSCiphertext structure.
							 * @param content_type : int
							 * @param fragment : byte[]
							 * @param offset 
							 * @param len 
							 */
							protected wrap(content_type: number, fragment: native.Array<number>, offset: number, len: number): native.Array<number>;
							/**
							 * Returns the change cipher spec message to be sent to another peer. The pending connection state will be built on the base of provided session object The calling of this method triggers pending write connection state to be active.
							 */
							protected getChangeCipherSpecMesage(session: org.apache.harmony.xnet.provider.jsse.SSLSessionImpl): native.Array<number>;
							/**
							 * Retrieves the fragment field of TLSCiphertext, and than depending on the established Connection State decrypts and decompresses it. The following structure is expected on the input at the moment of the call:
							 */
							protected unwrap(): number;
							/**
							 * Passes the alert information to the alert protocol.
							 * @param level : byte
							 * @param description : byte
							 */
							protected alert(level: number, description: number): void;
							/**
							 * Sets up the SSL version used in this connection. This method is calling from the handshake protocol after it becomes known which protocol version will be used.
							 * @param ver : byte[]
							 */
							protected setVersion(ver: native.Array<number>): void;
							/**
							 * Shuts down the protocol. It will be impossible to use the instance after the calling of this method.
							 */
							protected shutdown(): void;
						}
						export class Handshake extends java.lang.Object {
							constructor();
							static HELLO_REQUEST: number;
							static CLIENT_HELLO: number;
							static SERVER_HELLO: number;
							static CERTIFICATE: number;
							static SERVER_KEY_EXCHANGE: number;
							static CERTIFICATE_REQUEST: number;
							static SERVER_HELLO_DONE: number;
							static CERTIFICATE_VERIFY: number;
							static CLIENT_KEY_EXCHANGE: number;
							static FINISHED: number;
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.Handshake>;
						}
						/**
						 * OpenSSL-based implementation of server sockets.
						 */
						export class OpenSSLServerSocketImpl extends javax.net.ssl.SSLServerSocket {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLServerSocketImpl>;
							public getEnableSessionCreation(): boolean;
							public setEnableSessionCreation(flag: boolean): void;
							/**
							 * The names of the protocols' versions that may be used on this SSL connection.
							 */
							public getSupportedProtocols(): native.Array<string>;
							/**
							 * The names of the protocols' versions that in use on this SSL connection.
							 */
							public getEnabledProtocols(): native.Array<string>;
							/**
							 * This method enables the protocols' versions listed by getSupportedProtocols().
							 * @param protocols names of all the protocols to enable.
							 */
							public setEnabledProtocols(protocols: native.Array<string>): void;
							public getSupportedCipherSuites(): native.Array<string>;
							public getEnabledCipherSuites(): native.Array<string>;
							/**
							 * This method enables the cipher suites listed by getSupportedCipherSuites().
							 * @param suites the names of all the cipher suites to enable
							 */
							public setEnabledCipherSuites(suites: native.Array<string>): void;
							public getWantClientAuth(): boolean;
							public setWantClientAuth(want: boolean): void;
							public getNeedClientAuth(): boolean;
							public setNeedClientAuth(need: boolean): void;
							public setUseClientMode(mode: boolean): void;
							public getUseClientMode(): boolean;
							public accept(): java.net.Socket;
						}
						/**
						 * Implementation of SSLContext service provider interface.
						 */
						export class SSLContextImpl extends javax.net.ssl.SSLContextSpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLContextImpl>;
							/**
							 * Initializes this SSLContext instance. All of the arguments are optional, and the security providers will be searched for the required implementations of the needed algorithms.
							 * @param kms the key sources or {@code null}
							 * @param tms the trust decision sources or {@code null}
							 * @param sr the randomness source or {@code null}
							 */
							public engineInit(kms: native.Array<javax.net.ssl.IKeyManager>, tms: native.Array<javax.net.ssl.ITrustManager>, sr: java.security.SecureRandom): void;
							public engineGetSocketFactory(): javax.net.ssl.SSLSocketFactory;
							public engineGetServerSocketFactory(): javax.net.ssl.SSLServerSocketFactory;
							public engineCreateSSLEngine(host: string, port: number): javax.net.ssl.SSLEngine;
							public engineCreateSSLEngine(): javax.net.ssl.SSLEngine;
							public engineGetServerSessionContext(): org.apache.harmony.xnet.provider.jsse.ServerSessionContext;
							public engineGetClientSessionContext(): org.apache.harmony.xnet.provider.jsse.ClientSessionContext;
						}
						/**
						 * A KeyStoreSpi wrapper for the TrustedCertificateStore.
						 */
						export class TrustedCertificateKeyStoreSpi extends java.security.KeyStoreSpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.TrustedCertificateKeyStoreSpi>;
							public engineGetKey(alias: string, password: native.Array<string>): java.security.IKey;
							public engineGetCertificateChain(alias: string): native.Array<java.security.cert.Certificate>;
							public engineGetCertificate(alias: string): java.security.cert.Certificate;
							public engineGetCreationDate(alias: string): java.util.Date;
							public engineSetKeyEntry(alias: string, key: java.security.IKey, password: native.Array<string>, chain: native.Array<java.security.cert.Certificate>): void;
							public engineSetKeyEntry(alias: string, key: native.Array<number>, chain: native.Array<java.security.cert.Certificate>): void;
							public engineSetCertificateEntry(alias: string, cert: java.security.cert.Certificate): void;
							public engineDeleteEntry(alias: string): void;
							public engineAliases(): java.util.IEnumeration<string>;
							public engineContainsAlias(alias: string): boolean;
							public engineSize(): number;
							public engineIsKeyEntry(alias: string): boolean;
							public engineIsCertificateEntry(alias: string): boolean;
							public engineGetCertificateAlias(c: java.security.cert.Certificate): string;
							public engineStore(stream: java.io.OutputStream, password: native.Array<string>): void;
							public engineLoad(stream: java.io.InputStream, password: native.Array<string>): void;
							/**
							 * Stores this KeyStoreSpi using the specified LoadStoreParameter.
							 * @param param 
							 */
							engineStore(param: java.security.KeyStore.ILoadStoreParameter): void;
							/**
							 * Loads this KeyStoreSpi using the specified LoadStoreParameter.
							 * @param param 
							 */
							engineLoad(param: java.security.KeyStore.ILoadStoreParameter): void;
						}
						export class OpenSSLCipherRSA extends javax.crypto.CipherSpi {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLCipherRSA>;
							protected engineSetMode(mode: string): void;
							protected engineSetPadding(padding: string): void;
							protected engineGetBlockSize(): number;
							protected engineGetOutputSize(inputLen: number): number;
							protected engineGetIV(): native.Array<number>;
							protected engineGetParameters(): java.security.AlgorithmParameters;
							protected engineInit(opmode: number, key: java.security.IKey, random: java.security.SecureRandom): void;
							protected engineInit(opmode: number, key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
							protected engineInit(opmode: number, key: java.security.IKey, params: java.security.AlgorithmParameters, random: java.security.SecureRandom): void;
							protected engineUpdate(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
							protected engineUpdate(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
							protected engineDoFinal(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
							protected engineDoFinal(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
							protected engineWrap(key: java.security.IKey): native.Array<number>;
							protected engineUnwrap(wrappedKey: native.Array<number>, wrappedKeyAlgorithm: string, wrappedKeyType: number): java.security.IKey;
							/**
							 * Continues a multi-part transformation (encryption or decryption). The input.remaining() bytes starting at input.position() are transformed and stored in the output buffer.
							 * @param input 
							 * @param output 
							 */
							protected engineUpdate(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
							/**
							 * Finishes a multi-part transformation (encryption or decryption).
							 * @param input 
							 * @param output 
							 */
							protected engineDoFinal(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
						}
						export module OpenSSLCipherRSA {
							export class Raw extends org.apache.harmony.xnet.provider.jsse.OpenSSLCipherRSA {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLCipherRSA.Raw>;
							}
							export class PKCS1 extends org.apache.harmony.xnet.provider.jsse.OpenSSLCipherRSA {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLCipherRSA.PKCS1>;
							}
						}
						/**
						 * This class provides functionality for computation of PRF values for TLS (http://www.ietf.org/rfc/rfc2246.txt) and SSL v3 (http://wp.netscape.com/eng/ssl3) protocols.
						 */
						export class PRF extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.PRF>;
							/**
							 * Computes the value of SSLv3 pseudo random function.
							 * @param out : the buffer to fill up with the value of the function.
							 * @param secret : the buffer containing the secret value to generate prf.
							 * @param seed : the seed to be used.
							 */
							static computePRF_SSLv3(out: native.Array<number>, secret: native.Array<number>, seed: native.Array<number>): void;
							/**
							 * Computes the value of TLS pseudo random function.
							 * @param out : the buffer to fill up with the value of the function.
							 * @param secret : the buffer containing the secret value to generate prf.
							 * @param str_byts str_bytes: the label bytes to be used.
							 * @param seed : the seed to be used.
							 */
							static computePRF(out: native.Array<number>, secret: native.Array<number>, str_byts: native.Array<number>, seed: native.Array<number>): void;
						}
						export class PinManagerException extends java.lang.Exception {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.PinManagerException>;
						}
						/**
						 * A persistent javax.net.ssl.SSLSession cache used by javax.net.ssl.SSLSessionContext to share server-side SSL sessions across processes. For example, this cache enables one server to resume a session started by a different server based on a session ID provided by the client.
						 */
						interface ISSLServerSessionCache {
							/**
							 * Gets the session data for given session ID.
							 * @param id from {@link javax.net.ssl.SSLSession#getId()}
							 */
							getSessionData(id: native.Array<number>): native.Array<number>;
							/**
							 * Stores session data for the given session.
							 * @param session to cache data for
							 * @param sessionData to cache
							 */
							putSessionData(session: javax.net.ssl.ISSLSession, sessionData: native.Array<number>): void;
						}
						/**
						 * Represents certificate verify message <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0 spec., 7.4.8. Certificate verify</a>
						 */
						export class CertificateVerify extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 * @param hash 
							 */
							constructor(hash: native.Array<number>);
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.CertificateVerify>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns message type
							 */
							public getType(): number;
						}
						/**
						 * This class represents a single entry in the pin file.
						 */
						export class PinListEntry extends java.lang.Object {
							constructor(entry: string, store: org.apache.harmony.xnet.provider.jsse.TrustedCertificateStore);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.PinListEntry>;
							public getCommonName(): string;
							public getEnforcing(): boolean;
							/**
							 * Checks the given chain against the pin list corresponding to this entry.
							 */
							public chainIsNotPinned(chain: java.util.IList<java.security.cert.X509Certificate>): boolean;
						}
						export class SSLv3Constants extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLv3Constants>;
						}
						/**
						 * Byte array wrapper for hashtable use. Implements equals() and hashCode().
						 */
						export class ByteArray extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ByteArray>;
							public hashCode(): number;
							public equals(o: any): boolean;
						}
						/**
						 * This is a application data output stream used in SSLSocket implementation. The written bytes are encrypted, packed into the records, and then sent to the peer host.
						 */
						export class SSLSocketOutputStream extends java.io.OutputStream {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLSocketOutputStream>;
							public write(b: number): void;
							public write(b: native.Array<number>, off: number, len: number): void;
							/**
							 * Equivalent to write(buffer, 0, buffer.length).
							 */
							write(buffer: native.Array<number>): void;
						}
						/**
						 * SSLSocket implementation. javax.net.ssl.SSLSocket class documentation for more information.
						 */
						export class SSLSocketImpl extends javax.net.ssl.SSLSocket {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLSocketImpl>;
							/**
							 * Initialize the SSL socket.
							 */
							protected init(): void;
							/**
							 * Initialize the transport data streams.
							 */
							protected initTransportLayer(): void;
							/**
							 * Closes the transport data streams.
							 */
							protected closeTransportLayer(): void;
							getWrappedHostName(): string;
							getWrappedPort(): number;
							getPeerHostName(): string;
							getPeerPort(): number;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getSupportedCipherSuites() method documentation for more information
							 */
							public getSupportedCipherSuites(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getEnabledCipherSuites() method documentation for more information
							 */
							public getEnabledCipherSuites(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#setEnabledCipherSuites(String[]) method documentation for more information
							 */
							public setEnabledCipherSuites(suites: native.Array<string>): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getSupportedProtocols() method documentation for more information
							 */
							public getSupportedProtocols(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getEnabledProtocols() method documentation for more information
							 */
							public getEnabledProtocols(): native.Array<string>;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#setEnabledProtocols(String[]) method documentation for more information
							 */
							public setEnabledProtocols(protocols: native.Array<string>): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#setUseClientMode(boolean) method documentation for more information
							 */
							public setUseClientMode(mode: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getUseClientMode() method documentation for more information
							 */
							public getUseClientMode(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#setNeedClientAuth(boolean) method documentation for more information
							 */
							public setNeedClientAuth(need: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getNeedClientAuth() method documentation for more information
							 */
							public getNeedClientAuth(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#setWantClientAuth(boolean) method documentation for more information
							 */
							public setWantClientAuth(want: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getWantClientAuth() method documentation for more information
							 */
							public getWantClientAuth(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#setEnableSessionCreation(boolean) method documentation for more information
							 */
							public setEnableSessionCreation(flag: boolean): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getEnableSessionCreation() method documentation for more information
							 */
							public getEnableSessionCreation(): boolean;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getSession() method documentation for more information
							 */
							public getSession(): javax.net.ssl.ISSLSession;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#addHandshakeCompletedListener(HandshakeCompletedListener) method documentation for more information
							 */
							public addHandshakeCompletedListener(listener: javax.net.ssl.IHandshakeCompletedListener): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#removeHandshakeCompletedListener(HandshakeCompletedListener) method documentation for more information
							 */
							public removeHandshakeCompletedListener(listener: javax.net.ssl.IHandshakeCompletedListener): void;
							/**
							 * Performs the handshake process over the SSL/TLS connection as described in rfc 2246, TLS v1 specification http://www.ietf.org/rfc/rfc2246.txt. If the initial handshake has been already done, this method initiates rehandshake. This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#startHandshake() method documentation for more information
							 */
							public startHandshake(): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getInputStream() method documentation for more information
							 */
							public getInputStream(): java.io.InputStream;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#getOutputStream() method documentation for more information
							 */
							public getOutputStream(): java.io.OutputStream;
							/**
							 * This method works according to the specification of implemented class. java.net.Socket#connect(SocketAddress) method documentation for more information
							 */
							public connect(endpoint: java.net.SocketAddress): void;
							/**
							 * This method works according to the specification of implemented class. java.net.Socket#connect(SocketAddress,int) method documentation for more information
							 */
							public connect(endpoint: java.net.SocketAddress, timeout: number): void;
							/**
							 * This method works according to the specification of implemented class. javax.net.ssl.SSLSocket#close() method documentation for more information
							 */
							public close(): void;
							/**
							 * This method is not supported for SSLSocket implementation.
							 */
							public sendUrgentData(data: number): void;
							/**
							 * This method is not supported for SSLSocket implementation.
							 */
							public setOOBInline(on: boolean): void;
							/**
							 * This method is called by SSLSocketInputStream class when client application tries to read application data from the stream, but there is no data in its underlying buffer. IOException
							 */
							protected needAppData(): void;
							/**
							 * This method is called by SSLSocketOutputStream when a client application tries to send the data over ssl protocol.
							 */
							protected writeAppData(data: native.Array<number>, offset: number, len: number): void;
						}
						export class ClientSessionContextTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ClientSessionContextTest>;
							public testGetSessionById(): void;
							public testTrimToSize(): void;
						}
						export module ClientSessionContextTest {
							export class ValidSSLSession {
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ClientSessionContextTest.ValidSSLSession>;
								public isValid(): boolean;
							}
						}
						/**
						 * Implementation of the class OpenSSLSocketImpl based on OpenSSL.
						 */
						export class OpenSSLSocketImpl extends javax.net.ssl.SSLSocket implements org.apache.harmony.xnet.provider.jsse.NativeCrypto.ISSLHandshakeCallbacks {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl>;
							/**
							 * Starts a TLS/SSL handshake on this connection using some native methods from the OpenSSL library. It can negotiate new encryption keys, change cipher suites, or initiate a new session. The certificate chain is verified if the correspondent property in java.Security is set. All listeners are notified at the end of the TLS/SSL handshake.
							 */
							public startHandshake(): void;
							getPeerHostName(): string;
							getPeerPort(): number;
							public clientCertificateRequested(keyTypeBytes: native.Array<number>, asn1DerEncodedPrincipals: native.Array<native.Array<number>>): void;
							public handshakeCompleted(): void;
							public verifyCertificateChain(bytes: native.Array<native.Array<number>>, authMethod: string): void;
							public getInputStream(): java.io.InputStream;
							public getOutputStream(): java.io.OutputStream;
							public getSession(): javax.net.ssl.ISSLSession;
							public addHandshakeCompletedListener(listener: javax.net.ssl.IHandshakeCompletedListener): void;
							public removeHandshakeCompletedListener(listener: javax.net.ssl.IHandshakeCompletedListener): void;
							public getEnableSessionCreation(): boolean;
							public setEnableSessionCreation(flag: boolean): void;
							public getSupportedCipherSuites(): native.Array<string>;
							public getEnabledCipherSuites(): native.Array<string>;
							public setEnabledCipherSuites(suites: native.Array<string>): void;
							public getSupportedProtocols(): native.Array<string>;
							public getEnabledProtocols(): native.Array<string>;
							public setEnabledProtocols(protocols: native.Array<string>): void;
							/**
							 * This method enables session ticket support.
							 * @param useSessionTickets True to enable session tickets
							 */
							public setUseSessionTickets(useSessionTickets: boolean): void;
							/**
							 * This method enables Server Name Indication
							 * @param hostname the desired SNI hostname, or null to disable
							 */
							public setHostname(hostname: string): void;
							public getUseClientMode(): boolean;
							public setUseClientMode(mode: boolean): void;
							public getWantClientAuth(): boolean;
							public getNeedClientAuth(): boolean;
							public setNeedClientAuth(need: boolean): void;
							public setWantClientAuth(want: boolean): void;
							public sendUrgentData(data: number): void;
							public setOOBInline(on: boolean): void;
							public setSoTimeout(readTimeoutMilliseconds: number): void;
							public getSoTimeout(): number;
							/**
							 * Note write timeouts are not part of the javax.net.ssl.SSLSocket API
							 */
							public setSoWriteTimeout(writeTimeoutMilliseconds: number): void;
							/**
							 * Note write timeouts are not part of the javax.net.ssl.SSLSocket API
							 */
							public getSoWriteTimeout(): number;
							/**
							 * Set the handshake timeout on this socket. This timeout is specified in milliseconds and will be used only during the handshake process.
							 */
							public setHandshakeTimeout(handshakeTimeoutMilliseconds: number): void;
							public close(): void;
							protected finalize(): void;
							public getFileDescriptor$(): java.io.FileDescriptor;
							/**
							 * Returns the protocol agreed upon by client and server, or null if no protocol was agreed upon.
							 */
							public getNpnSelectedProtocol(): native.Array<number>;
							/**
							 * Sets the list of protocols this peer is interested in. If null no protocols will be used.
							 * @param npnProtocols a non-empty array of protocol names. From
							 */
							public setNpnProtocols(npnProtocols: native.Array<number>): void;
						}
						export module OpenSSLSocketImpl {
							/**
							 * This inner class provides input data stream functionality for the OpenSSL native implementation. It is used to read data received via SSL protocol.
							 */
							export class SSLInputStream extends java.io.InputStream {
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.SSLInputStream>;
								/**
								 * Reads one byte. If there is no data in the underlying buffer, this operation can block until the data will be available.
								 */
								public read(): number;
								/**
								 * Method acts as described in spec for superclass. java.io.InputStream#read(byte[],int,int)
								 */
								public read(buf: native.Array<number>, offset: number, byteCount: number): number;
								/**
								 * Equivalent to read(buffer, 0, buffer.length).
								 */
								read(buffer: native.Array<number>): number;
							}
							/**
							 * This inner class provides output data stream functionality for the OpenSSL native implementation. It is used to write data according to the encryption parameters given in SSL context.
							 */
							export class SSLOutputStream extends java.io.OutputStream {
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.SSLOutputStream>;
								/**
								 * Method acts as described in spec for superclass. java.io.OutputStream#write(int)
								 */
								public write(oneByte: number): void;
								/**
								 * Method acts as described in spec for superclass. java.io.OutputStream#write(byte[],int,int)
								 */
								public write(buf: native.Array<number>, offset: number, byteCount: number): void;
								/**
								 * Equivalent to write(buffer, 0, buffer.length).
								 */
								write(buffer: native.Array<number>): void;
							}
						}
						/**
						 * This class provides input data stream functionality for SSLSocket. It accumulates the application data received by SSL protocol.
						 */
						export class SSLSocketInputStream extends java.io.InputStream {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLSocketInputStream>;
							/**
							 * Tells to the stream that the end of the income data has been reached.
							 */
							protected setEnd(): void;
							/**
							 * Returns the number of bytes available for reading without blocking.
							 */
							public available(): number;
							/**
							 * Closes the stream IOException
							 */
							public close(): void;
							/**
							 * Reads one byte. If there is no data in the underlying buffer, this operation can block until the data will be available.
							 */
							public read(): number;
							public read(b: native.Array<number>, off: number, len: number): number;
							/**
							 * Equivalent to read(buffer, 0, buffer.length).
							 */
							read(buffer: native.Array<number>): number;
						}
						export module SSLSocketInputStream {
							export class Adapter extends java.lang.Object implements org.apache.harmony.xnet.provider.jsse.IAppendable {
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLSocketInputStream.Adapter>;
								/**
								 * Appends the data to the stream. This method could be implemented in the outer class itself, but it could be insecure.
								 */
								public append(src: native.Array<number>): void;
							}
						}
						/**
						 * Caches server sessions. Indexes by session ID. Users typically look up sessions using the ID provided by an SSL client.
						 */
						export class ServerSessionContext extends org.apache.harmony.xnet.provider.jsse.AbstractSessionContext {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ServerSessionContext>;
							public setPersistentCache(persistentCache: org.apache.harmony.xnet.provider.jsse.ISSLServerSessionCache): void;
							protected sessionRemoved(session: javax.net.ssl.ISSLSession): void;
							public getSession(sessionId: native.Array<number>): javax.net.ssl.ISSLSession;
							putSession(session: javax.net.ssl.ISSLSession): void;
						}
						/**
						 * This class provides the DataStream functionality implemented over the array of ByteBuffer instances. Among with the data chunks read functionality it provides the info about amount of consumed data. The source ByteBuffer objects can be replaced by other. So one instance of this wrapper can be reused for several data sources.
						 */
						export class SSLEngineDataStream extends java.lang.Object implements org.apache.harmony.xnet.provider.jsse.IDataStream {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLEngineDataStream>;
							protected setSourceBuffers(srcs: native.Array<java.nio.ByteBuffer>, offset: number, length: number): void;
							public available(): number;
							public hasData(): boolean;
							public getData(length: number): native.Array<number>;
							protected consumed(): number;
						}
						export class OpenSSLDSAPublicKey extends java.lang.Object implements java.security.interfaces.IDSAPublicKey {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLDSAPublicKey>;
							getOpenSSLKey(): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							static getInstance(dsaPublicKey: java.security.interfaces.IDSAPublicKey): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							public getParams(): java.security.interfaces.IDSAParams;
							public getAlgorithm(): string;
							public getFormat(): string;
							public getEncoded(): native.Array<number>;
							public getY(): java.math.BigInteger;
							public equals(o: any): boolean;
							public hashCode(): number;
							public toString(): string;
						}
						/**
						 * KeyManagerFactory implementation. javax.net.ssl.KeyManagerFactorySpi
						 */
						export class KeyManagerFactoryImpl extends javax.net.ssl.KeyManagerFactorySpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl>;
							/**
							 *  javax.net.ssl.KeyManagerFactorySpi#engineInit(KeyStore ks, char[] password)
							 */
							public engineInit(ks: java.security.KeyStore, password: native.Array<string>): void;
							/**
							 *  javax.net.ssl.KeyManagerFactorySpi#engineInit(ManagerFactoryParameters spec)
							 */
							public engineInit(spec: javax.net.ssl.IManagerFactoryParameters): void;
							/**
							 *  javax.net.ssl.KeyManagerFactorySpi#engineGetKeyManagers()
							 */
							public engineGetKeyManagers(): native.Array<javax.net.ssl.IKeyManager>;
						}
						/**
						 * Base class for ClientHandshakeImpl and ServerHandshakeImpl classes. <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0 spec., 7.4. Handshake protocol</a>
						 */
						export class HandshakeProtocol extends java.lang.Object {
							/**
							 * Handshake status NEED_UNWRAP - HandshakeProtocol needs to receive data
							 */
							static NEED_UNWRAP: number;
							/**
							 * Handshake status NOT_HANDSHAKING - is not currently handshaking
							 */
							static NOT_HANDSHAKING: number;
							/**
							 * Handshake status FINISHED - HandshakeProtocol has just finished
							 */
							static FINISHED: number;
							/**
							 * Handshake status NEED_TASK - HandshakeProtocol needs the results of delegated task
							 */
							static NEED_TASK: number;
							/**
							 * SSLEngine owning this HandshakeProtocol
							 */
							engineOwner: org.apache.harmony.xnet.provider.jsse.SSLEngineImpl;
							/**
							 * SSLSocket owning this HandshakeProtocol
							 */
							socketOwner: org.apache.harmony.xnet.provider.jsse.SSLSocketImpl;
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.HandshakeProtocol>;
							/**
							 * Sets SSL Record Protocol
							 * @param recordProtocol 
							 */
							public setRecordProtocol(recordProtocol: org.apache.harmony.xnet.provider.jsse.SSLRecordProtocol): void;
							/**
							 * Start session negotiation
							 */
							public start(): void;
							/**
							 * Stops the current session renegotiation process. Such functionality is needed when it is session renegotiation process and no_renegotiation alert message is received from another peer.
							 */
							protected stop(): void;
							/**
							 * Returns handshake status
							 */
							public getStatus(): javax.net.ssl.SSLEngineResult.HandshakeStatus;
							/**
							 * Returns pending session
							 */
							public getSession(): org.apache.harmony.xnet.provider.jsse.SSLSessionImpl;
							protected sendChangeCipherSpec(): void;
							protected sendHelloRequest(): void;
							/**
							 * Proceses inbound ChangeCipherSpec message
							 */
							receiveChangeCipherSpec(): void;
							/**
							 * Creates and sends finished message
							 */
							makeFinished(): void;
							/**
							 * Proceses inbound handshake messages
							 * @param bytes 
							 */
							public unwrap(bytes: native.Array<number>): void;
							/**
							 * Processes SSLv2 Hello message
							 * @param bytes 
							 */
							public unwrapSSLv2(bytes: native.Array<number>): void;
							/**
							 * Proceses outbound handshake messages
							 */
							public wrap(): native.Array<number>;
							/**
							 * Sends fatal alert, breaks execution
							 * @param description 
							 */
							protected sendWarningAlert(description: number): void;
							/**
							 * Sends fatal alert, breaks execution
							 * @param description 
							 * @param reason 
							 */
							protected fatalAlert(description: number, reason: string): void;
							/**
							 * Sends fatal alert, breaks execution
							 * @param description 
							 * @param reason 
							 * @param cause 
							 */
							protected fatalAlert(description: number, reason: string, cause: java.lang.Exception): void;
							/**
							 * Sends fatal alert, breaks execution
							 * @param description 
							 * @param cause 
							 */
							protected fatalAlert(description: number, cause: javax.net.ssl.SSLException): void;
							/**
							 * Computers reference TLS verify_data that is used to verify finished message <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS spec. 7.4.9. Finished</a>
							 * @param label 
							 */
							protected computerReferenceVerifyDataTLS(label: string): void;
							/**
							 * Computer TLS verify_data <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS spec. 7.4.9. Finished</a>
							 * @param label 
							 * @param buf 
							 */
							protected computerVerifyDataTLS(label: string, buf: native.Array<number>): void;
							/**
							 * Computer reference SSLv3 verify_data that is used to verify finished message "SSLv3 spec. 7.6.9. Finished"
							 * @param sender label
							 */
							protected computerReferenceVerifyDataSSLv3(sender: native.Array<number>): void;
							/**
							 * Computer SSLv3 verify_data "SSLv3 spec. 7.6.9. Finished"
							 * @param sender label
							 * @param buf 
							 */
							protected computerVerifyDataSSLv3(sender: native.Array<number>, buf: native.Array<number>): void;
							/**
							 * Verifies finished data
							 * @param data 
							 */
							protected verifyFinished(data: native.Array<number>): void;
							/**
							 * Sends fatal alert "UNEXPECTED MESSAGE"
							 */
							protected unexpectedMessage(): void;
							/**
							 * Writes message to HandshakeIODataStream
							 * @param message 
							 */
							public send(message: org.apache.harmony.xnet.provider.jsse.Message): void;
							/**
							 * Computers master secret
							 */
							public computerMasterSecret(): void;
							/**
							 * Returns a delegated task.
							 */
							public getTask(): java.lang.IRunnable;
							/**
							 * Clears previously sent and received handshake messages
							 */
							protected clearMessages(): void;
							/**
							 * Returns RSA key length
							 * @param pk 
							 */
							protected static getRSAKeyLength(pk: java.security.IPublicKey): number;
							/**
							 * Shuts down the protocol. It will be impossible to use the instance after calling this method.
							 */
							protected shutdown(): void;
						}
						export class OpenSSLRSAPrivateCrtKey extends org.apache.harmony.xnet.provider.jsse.OpenSSLRSAPrivateKey implements java.security.interfaces.IRSAPrivateCrtKey {
							constructor(rsaKeySpec: java.security.spec.RSAPrivateCrtKeySpec);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLRSAPrivateCrtKey>;
							static getInstance(rsaPrivateKey: java.security.interfaces.IRSAPrivateCrtKey): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							readParams(params: native.Array<native.Array<number>>): void;
							public getPublicExponent(): java.math.BigInteger;
							public getPrimeP(): java.math.BigInteger;
							public getPrimeQ(): java.math.BigInteger;
							public getPrimeExponentP(): java.math.BigInteger;
							public getPrimeExponentQ(): java.math.BigInteger;
							public getCrtCoefficient(): java.math.BigInteger;
							public equals(o: any): boolean;
							public hashCode(): number;
							public toString(): string;
							/**
							 * Returns the private exponent d.
							 */
							getPrivateExponent(): java.math.BigInteger;
							/**
							 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
							 */
							getAlgorithm(): string;
							/**
							 * Returns the name of the format used to encode this key, or null if it can not be encoded.
							 */
							getFormat(): string;
							/**
							 * Returns the encoded form of this key, or null if encoding is not supported by this key.
							 */
							getEncoded(): native.Array<number>;
							/**
							 * Returns the modulus.
							 */
							getModulus(): java.math.BigInteger;
							static getInstance(key: org.apache.harmony.xnet.provider.jsse.OpenSSLKey): org.apache.harmony.xnet.provider.jsse.OpenSSLRSAPrivateKey;
							static getInstance(rsaPrivateKey: java.security.interfaces.IRSAPrivateKey): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
						}
						/**
						 * File-based cache implementation. Only one process should access the underlying directory at a time.
						 */
						export class FileClientSessionCache extends java.lang.Object {
							static MAX_SIZE: number;
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.FileClientSessionCache>;
							/**
							 * Returns a cache backed by the given directory. Creates the directory (including parent directories) if necessary. This cache should have exclusive access to the given directory.
							 * @param directory to store files in
							 */
							public static usingDirectory(directory: java.io.File): org.apache.harmony.xnet.provider.jsse.ISSLClientSessionCache;
							/**
							 * For testing.
							 */
							static reset(): void;
						}
						export module FileClientSessionCache {
							/**
							 * This cache creates one file per SSL session using "host.port" for the file name. Files are created or replaced when session data is put in the cache (see #putSessionData). Files are read on cache hits, but not on cache misses.
							 */
							export class Impl extends java.lang.Object implements org.apache.harmony.xnet.provider.jsse.ISSLClientSessionCache {
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.FileClientSessionCache.Impl>;
								public getSessionData(host: string, port: number): native.Array<number>;
								static logReadError(host: string, file: java.io.File, t: java.lang.Throwable): void;
								public putSessionData(session: javax.net.ssl.ISSLSession, sessionData: native.Array<number>): void;
								static logWriteError(host: string, file: java.io.File, t: java.lang.Throwable): void;
							}
							/**
							 * A file containing a piece of cached data.
							 */
							export class CacheFile extends java.io.File {
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.FileClientSessionCache.CacheFile>;
								public lastModified(): any;
								public compareTo(another: java.io.File): number;
							}
						}
						/**
						 * Represents client key exchange message <a href="http://www.ietf.org/rfc/rfc2246.txt">TLS 1.0 spec., 7.4.7. Client key exchange message</a>
						 */
						export class ClientKeyExchange extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 * @param encrypted_pre_master_secret 
							 * @param isTLS 
							 */
							constructor(encrypted_pre_master_secret: native.Array<number>, isTLS: boolean);
							/**
							 * Creates outbound message
							 * @param dh_Yc 
							 */
							constructor(dh_Yc: java.math.BigInteger);
							/**
							 * Creates empty message
							 */
							constructor();
							/**
							 * Creates inbound message
							 * @param input length
							 * @param length isTLS
							 * @param isTLS isRSA
							 * @param isRSA 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number, isTLS: boolean, isRSA: boolean);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ClientKeyExchange>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns message type
							 */
							public getType(): number;
							/**
							 * Returns true if the message is empty (in case of implicit DH Yc)
							 */
							public isEmpty(): boolean;
						}
						export class OpenSSLDSAParams extends java.lang.Object implements java.security.interfaces.IDSAParams, java.security.spec.IAlgorithmParameterSpec {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLDSAParams>;
							getOpenSSLKey(): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							public getG(): java.math.BigInteger;
							public getP(): java.math.BigInteger;
							public getQ(): java.math.BigInteger;
							getY(): java.math.BigInteger;
							getX(): java.math.BigInteger;
							public equals(o: any): boolean;
							public hashCode(): number;
							public toString(): string;
						}
						/**
						 * This abstract class is a base for Record Protocol operating environmet of different SSL protocol versions.
						 */
						export class ConnectionState extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ConnectionState>;
							/**
							 * Returns the minimal possible size of the Generic[Stream|Generic]Cipher structure under this connection state.
							 */
							protected getMinFragmentSize(): number;
							/**
							 * Returns the size of the Generic[Stream|Generic]Cipher structure corresponding to the content data of specified size.
							 */
							protected getFragmentSize(content_size: number): number;
							/**
							 * Returns the minimal upper bound of the content size enclosed into the Generic[Stream|Generic]Cipher structure of specified size. For stream ciphers the returned value will be exact value.
							 */
							protected getContentSize(generic_cipher_size: number): number;
							/**
							 * Returns the number of bytes of padding required to round the content up to the required block size. Assumes power of two block size.
							 */
							protected getPaddingSize(content_size: number): number;
							/**
							 * Creates the GenericStreamCipher or GenericBlockCipher data structure for specified data of specified type.
							 * @param type - the ContentType of the provided data
							 * @param fragment - the byte array containing the
							 */
							protected encrypt(type: number, fragment: native.Array<number>): native.Array<number>;
							/**
							 * Creates the GenericStreamCipher or GenericBlockCipher data structure for specified data of specified type.
							 * @param type - the ContentType of the provided data
							 * @param fragment - the byte array containing the
							 * @param offset - the offset from which the data begins with.
							 * @param len - the length of the data.
							 */
							protected encrypt(type: number, fragment: native.Array<number>, offset: number, len: number): native.Array<number>;
							/**
							 * Retrieves the fragment of the Plaintext structure of the specified type from the provided data.
							 * @param type - the ContentType of the data to be decrypted.
							 * @param fragment - the byte array containing the
							 */
							protected decrypt(type: number, fragment: native.Array<number>): native.Array<number>;
							/**
							 * Retrieves the fragment of the Plaintext structure of the specified type from the provided data.
							 * @param type - the ContentType of the data to be decrypted.
							 * @param fragment - the byte array containing the
							 * @param offset - the offset from which the data begins with.
							 * @param len - the length of the data.
							 */
							protected decrypt(type: number, fragment: native.Array<number>, offset: number, len: number): native.Array<number>;
							/**
							 * Increments the sequence number.
							 */
							protected static incSequenceNumber(seq_num: native.Array<number>): void;
							/**
							 * Shutdownes the protocol. It will be impossiblke to use the instance after the calling of this method.
							 */
							protected shutdown(): void;
						}
						export class CipherSuiteTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.CipherSuiteTest>;
							public test_getByName(): void;
							public test_getByCode(): void;
							public test_getSupported(): void;
							public test_getSupportedCipherSuiteNames(): void;
							public test_getClientKeyType(): void;
						}
						export class OpenSSLServerSocketFactoryImpl extends javax.net.ssl.SSLServerSocketFactory {
							constructor();
							constructor(sslParameters: org.apache.harmony.xnet.provider.jsse.SSLParametersImpl);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLServerSocketFactoryImpl>;
							public getDefaultCipherSuites(): native.Array<string>;
							public getSupportedCipherSuites(): native.Array<string>;
							public createServerSocket(): java.net.ServerSocket;
							public createServerSocket(port: number): java.net.ServerSocket;
							public createServerSocket(port: number, backlog: number): java.net.ServerSocket;
							public createServerSocket(port: number, backlog: number, iAddress: java.net.InetAddress): java.net.ServerSocket;
						}
						/**
						 * This class wraps the SSL functionality over an existing connected socket.
						 */
						export class OpenSSLSocketImplWrapper extends org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImplWrapper>;
							public connect(sockaddr: java.net.SocketAddress, timeout: number): void;
							public connect(sockaddr: java.net.SocketAddress): void;
							public bind(sockaddr: java.net.SocketAddress): void;
							public getRemoteSocketAddress(): java.net.SocketAddress;
							public getLocalSocketAddress(): java.net.SocketAddress;
							public getLocalAddress(): java.net.InetAddress;
							public getInetAddress(): java.net.InetAddress;
							public toString(): string;
							public setSoLinger(on: boolean, linger: number): void;
							public setTcpNoDelay(on: boolean): void;
							public setReuseAddress(on: boolean): void;
							public setKeepAlive(on: boolean): void;
							public setTrafficClass(tos: number): void;
							public setSoTimeout(to: number): void;
							public setSendBufferSize(size: number): void;
							public setReceiveBufferSize(size: number): void;
							public getTcpNoDelay(): boolean;
							public getReuseAddress(): boolean;
							public getOOBInline(): boolean;
							public getKeepAlive(): boolean;
							public getTrafficClass(): number;
							public getSoTimeout(): number;
							public getSoLinger(): number;
							public getSendBufferSize(): number;
							public getReceiveBufferSize(): number;
							public isConnected(): boolean;
							public isClosed(): boolean;
							public isBound(): boolean;
							public isOutputShutdown(): boolean;
							public isInputShutdown(): boolean;
							public getPort(): number;
							public getLocalPort(): number;
						}
						export class Message extends java.lang.Object {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.Message>;
							/**
							 * Returns message type
							 */
							getType(): number;
							/**
							 * Returns message length
							 */
							public length(): number;
							/**
							 * Sends message
							 * @param out 
							 */
							send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Sends fatal alert
							 * @param description 
							 * @param reason 
							 */
							protected fatalAlert(description: number, reason: string): void;
							/**
							 * Sends fatal alert
							 * @param description 
							 * @param reason 
							 * @param cause 
							 */
							protected fatalAlert(description: number, reason: string, cause: java.lang.Throwable): void;
						}
						export class PinEntryException extends java.lang.Exception {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.PinEntryException>;
						}
						/**
						 * This interface represents the ability of the input stream related classes to provide additional data to be read.
						 */
						export class Appendable implements org.apache.harmony.xnet.provider.jsse.IAppendable {
							constructor(implementation: org.apache.harmony.xnet.provider.jsse.IAppendable);
							/**
							 * Provides the additional data to be read.
							 * @param src the source data to be appended.
							 */
							public append(src: native.Array<number>): void;
						}
						export class ServerHello extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 * @param sr 
							 * @param server_version 
							 * @param session_id 
							 * @param cipher_suite 
							 * @param compression_method 
							 */
							constructor(sr: java.security.SecureRandom, server_version: native.Array<number>, session_id: native.Array<number>, cipher_suite: org.apache.harmony.xnet.provider.jsse.CipherSuite, compression_method: number);
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ServerHello>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns server random
							 */
							public getRandom(): native.Array<number>;
							/**
							 * Returns message type
							 */
							public getType(): number;
						}
						export class OpenSSLDSAPrivateKey extends java.lang.Object implements java.security.interfaces.IDSAPrivateKey {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLDSAPrivateKey>;
							getOpenSSLKey(): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							static getInstance(dsaPrivateKey: java.security.interfaces.IDSAPrivateKey): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							public getParams(): java.security.interfaces.IDSAParams;
							public getAlgorithm(): string;
							public getFormat(): string;
							public getEncoded(): native.Array<number>;
							public getX(): java.math.BigInteger;
							public getPkeyContext(): number;
							public getPkeyAlias(): string;
							public equals(o: any): boolean;
							public hashCode(): number;
							public toString(): string;
						}
						/**
						 * This class acts like a filtered input stream: it takes the bytes from another InputStream.
						 */
						export class SSLStreamedInput extends org.apache.harmony.xnet.provider.jsse.SSLInputStream {
							constructor(input: java.io.InputStream);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.SSLStreamedInput>;
							public available(): number;
							/**
							 * Read an opaque value from the stream.
							 */
							public read(): number;
							/**
							 * Returns the vector of opaque values of specified length;
							 * @param length - the length of the vector to be read.
							 */
							read(length: number): native.Array<number>;
							read(b: native.Array<number>, off: number, len: number): number;
							/**
							 * Equivalent to read(buffer, 0, buffer.length).
							 */
							read(buffer: native.Array<number>): number;
						}
						/**
						 * Implements the JDK Signature interface needed for RAW RSA signature generation and verification using OpenSSL.
						 */
						export class OpenSSLSignatureRawRSA extends java.security.Signature {
							/**
							 * Creates a new OpenSSLSignature instance for the given algorithm name.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignatureRawRSA>;
							protected engineUpdate(input: number): void;
							protected engineUpdate(input: native.Array<number>, offset: number, len: number): void;
							protected engineGetParameter(param: string): any;
							protected engineInitSign(privateKey: java.security.IPrivateKey): void;
							protected engineInitVerify(publicKey: java.security.IPublicKey): void;
							protected engineSetParameter(param: string, value: any): void;
							protected engineSign(): native.Array<number>;
							protected engineVerify(sigBytes: native.Array<number>): boolean;
							/**
							 * Initializes this SignatureSpi instance for signing, using the private key of the identity whose signature is going to be generated and the specified source of randomness.
							 * @param privateKey 
							 * @param random 
							 */
							protected engineInitSign(privateKey: java.security.IPrivateKey, random: java.security.SecureRandom): void;
							/**
							 * Updates the data to be verified or to be signed, using the specified ByteBuffer.
							 * @param input 
							 */
							protected engineUpdate(input: java.nio.ByteBuffer): void;
							/**
							 * Generates and stores the signature of all updated data in the provided byte[] at the specified position with the specified length.
							 * @param outbuf 
							 * @param offset 
							 * @param len 
							 */
							protected engineSign(outbuf: native.Array<number>, offset: number, len: number): number;
							/**
							 * Indicates whether the given sigBytes starting at index offset with length bytes can be verified using the public key or a certificate of the signer.
							 * @param sigBytes 
							 * @param offset 
							 * @param length 
							 */
							protected engineVerify(sigBytes: native.Array<number>, offset: number, length: number): boolean;
							/**
							 * Sets the specified AlgorithmParameterSpec.
							 * @param params 
							 */
							protected engineSetParameter(params: java.security.spec.IAlgorithmParameterSpec): void;
						}
						/**
						 * JSSE Provider implementation.
						 */
						export class JSSEProvider extends java.security.Provider {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.JSSEProvider>;
						}
						/**
						 * Caches client sessions. Indexes by host and port. Users are typically looking to reuse any session for a given host and port.
						 */
						export class ClientSessionContext extends org.apache.harmony.xnet.provider.jsse.AbstractSessionContext {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ClientSessionContext>;
							public size(): number;
							public setPersistentCache(persistentCache: org.apache.harmony.xnet.provider.jsse.ISSLClientSessionCache): void;
							protected sessionRemoved(session: javax.net.ssl.ISSLSession): void;
							/**
							 * Finds a cached session for the given host name and port.
							 * @param host of server
							 * @param port of server
							 */
							public getSession(host: string, port: number): javax.net.ssl.ISSLSession;
							public putSession(session: javax.net.ssl.ISSLSession): void;
							getSession(sessionId: native.Array<number>): javax.net.ssl.ISSLSession;
						}
						export module ClientSessionContext {
							export class HostAndPort extends java.lang.Object {
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ClientSessionContext.HostAndPort>;
								public hashCode(): number;
								public equals(o: any): boolean;
							}
						}
						/**
						 * This interface represents the ability of the classes to provide the chunks of data.
						 */
						interface IDataStream {
							/**
							 * Checks if there is data to be read.
							 */
							hasData(): boolean;
							/**
							 * Retrieves the data of specified length from the stream. If the data size in the stream is less than specified length, method returns all the data contained in the stream.
							 */
							getData(length: number): native.Array<number>;
						}
						export class CertPinManagerTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.CertPinManagerTest>;
							public setUp(): void;
							public tearDown(): void;
							public testPinFileMaximumLookup(): void;
							public testPinEntryMalformedEntry(): void;
							public testPinEntryNull(): void;
							public testPinEntryEmpty(): void;
							public testPinEntryPinFailure(): void;
							public testPinEntryPinSuccess(): void;
							public testPinEntryNonEnforcing(): void;
						}
						export class TrustManagerImplTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.TrustManagerImplTest>;
							public tearDown(): void;
							/**
							 * Ensure that our non-standard behavior of learning to trust new intermediate CAs does not regress. http://b/3404902
							 */
							public testLearnIntermediate(): void;
							public testGetFullChain(): void;
							public testCertPinning(): void;
						}
						/**
						 * Implements the JDK MessageDigest interface using OpenSSL's EVP API.
						 */
						export class OpenSSLMessageDigestJDK extends java.security.MessageDigest implements java.lang.ICloneable {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK>;
							protected engineReset(): void;
							protected engineGetDigestLength(): number;
							protected engineUpdate(input: number): void;
							protected engineUpdate(input: native.Array<number>, offset: number, len: number): void;
							protected engineDigest(): native.Array<number>;
							public clone(): any;
							protected finalize(): void;
							/**
							 * Updates this MessageDigestSpi using the given input.
							 * @param input 
							 */
							protected engineUpdate(input: java.nio.ByteBuffer): void;
							/**
							 * Computes and stores the final hash value for this MessageDigestSpi. After the digest is computed the receiver is reset.
							 * @param buf 
							 * @param offset 
							 * @param len 
							 */
							protected engineDigest(buf: native.Array<number>, offset: number, len: number): number;
						}
						export module OpenSSLMessageDigestJDK {
							export class SHA256 extends org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK.SHA256>;
							}
							export class SHA1 extends org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK.SHA1>;
							}
							export class SHA384 extends org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK.SHA384>;
							}
							export class SHA512 extends org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK.SHA512>;
							}
							export class MD5 extends org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK {
								constructor();
								static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK.MD5>;
							}
						}
						export class ServerHelloDone extends org.apache.harmony.xnet.provider.jsse.Message {
							/**
							 * Creates outbound message
							 */
							constructor();
							/**
							 * Creates inbound message
							 * @param input in
							 * @param length 
							 */
							constructor(input: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream, length: number);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.ServerHelloDone>;
							/**
							 * Sends message
							 * @param out 
							 */
							public send(out: org.apache.harmony.xnet.provider.jsse.HandshakeIODataStream): void;
							/**
							 * Returns message length
							 */
							public length(): number;
							/**
							 * Returns message type
							 */
							public getType(): number;
						}
						/**
						 * A persistent javax.net.ssl.SSLSession cache used by javax.net.ssl.SSLSessionContext to share client-side SSL sessions across processes. For example, this cache enables applications to persist and reuse sessions across restarts.
						 */
						export class SSLClientSessionCache implements org.apache.harmony.xnet.provider.jsse.ISSLClientSessionCache {
							constructor(implementation: org.apache.harmony.xnet.provider.jsse.ISSLClientSessionCache);
							/**
							 * Gets data from a pre-existing session for a given server host and port.
							 * @param host from {@link javax.net.ssl.SSLSession#getPeerHost()}
							 * @param port from {@link javax.net.ssl.SSLSession#getPeerPort()}
							 */
							public getSessionData(host: string, port: number): native.Array<number>;
							/**
							 * Stores session data for the given session.
							 * @param session to cache data for
							 * @param sessionData to cache
							 */
							public putSessionData(session: javax.net.ssl.ISSLSession, sessionData: native.Array<number>): void;
						}
						/**
						 * Support class for this package.
						 */
						export class DefaultSSLContextImpl extends org.apache.harmony.xnet.provider.jsse.OpenSSLContextImpl {
							/**
							 * DefaultSSLContextImpl delegates the work to the super class since there is no way to put a synchronized around both the call to super and the rest of this constructor to guarantee that we don't have races in creating the state shared between all default SSLContexts.
							 */
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.DefaultSSLContextImpl>;
							getKeyManagers(): native.Array<javax.net.ssl.IKeyManager>;
							getTrustManagers(): native.Array<javax.net.ssl.ITrustManager>;
							public engineInit(kms: native.Array<javax.net.ssl.IKeyManager>, tms: native.Array<javax.net.ssl.ITrustManager>, sr: java.security.SecureRandom): void;
						}
						/**
						 * This class represents Signature type, as described in TLS v 1.0 Protocol specification, 7.4.3. It allow to init, update and sign hash. Hash algorithm depends on SignatureAlgorithm.
						 */
						export class DigitalSignature extends java.lang.Object {
							/**
							 * Create Signature type
							 * @param authType keyExchange
							 */
							constructor(authType: string);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.DigitalSignature>;
							/**
							 * Initiate Signature type by private key
							 * @param key 
							 */
							public init(key: java.security.IPrivateKey): void;
							/**
							 * Initiate Signature type by certificate
							 * @param cert 
							 */
							public init(cert: java.security.cert.Certificate): void;
							/**
							 * Update Signature hash
							 * @param data 
							 */
							public update(data: native.Array<number>): void;
							/**
							 * Sets MD5 hash
							 * @param data 
							 */
							public setMD5(data: native.Array<number>): void;
							/**
							 * Sets SHA hash
							 * @param data 
							 */
							public setSHA(data: native.Array<number>): void;
							/**
							 * Sign hash
							 */
							public sign(): native.Array<number>;
							/**
							 * Verifies the signature data.
							 * @param data - the signature bytes
							 */
							public verifySignature(data: native.Array<number>): boolean;
						}
						export class OpenSSLRSAKeyFactory<T, S> extends java.security.KeyFactorySpi {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLRSAKeyFactory<any, any>>;
							protected engineGeneratePublic(keySpec: java.security.spec.IKeySpec): java.security.IPublicKey;
							protected engineGeneratePrivate(keySpec: java.security.spec.IKeySpec): java.security.IPrivateKey;
							protected engineGetKeySpec<T extends java.security.spec.IKeySpec>(key: java.security.IKey, keySpec: java.lang.Class<T>): T;
							protected engineTranslateKey(key: java.security.IKey): java.security.IKey;
						}
						export class OpenSSLSignatureTest {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLSignatureTest>;
							public test_getInstance(): void;
						}
						/**
						 * KeyManager implementation.
						 */
						export class KeyManagerImpl extends javax.net.ssl.X509ExtendedKeyManager {
							/**
							 * Creates Key manager
							 * @param keyStore 
							 * @param pwd 
							 */
							constructor(keyStore: java.security.KeyStore, pwd: native.Array<string>);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.KeyManagerImpl>;
							public chooseClientAlias(keyTypes: native.Array<string>, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
							public chooseServerAlias(keyType: string, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
							public getCertificateChain(alias: string): native.Array<java.security.cert.X509Certificate>;
							public getClientAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
							public getServerAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
							public getPrivateKey(alias: string): java.security.IPrivateKey;
							public chooseEngineClientAlias(keyTypes: native.Array<string>, issuers: native.Array<java.security.IPrincipal>, engine: javax.net.ssl.SSLEngine): string;
							public chooseEngineServerAlias(keyType: string, issuers: native.Array<java.security.IPrincipal>, engine: javax.net.ssl.SSLEngine): string;
						}
						/**
						 * This exception indicates that data could not be read from the buffered stream because underlying data buffer was exhausted.
						 */
						export class EndOfSourceException extends java.io.IOException {
							constructor();
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.EndOfSourceException>;
						}
						export class OpenSSLRSAPrivateKey extends java.lang.Object implements java.security.interfaces.IRSAPrivateKey {
							constructor(rsaKeySpec: java.security.spec.RSAPrivateKeySpec);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.OpenSSLRSAPrivateKey>;
							getOpenSSLKey(): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							static getInstance(key: org.apache.harmony.xnet.provider.jsse.OpenSSLKey): org.apache.harmony.xnet.provider.jsse.OpenSSLRSAPrivateKey;
							static getInstance(rsaPrivateKey: java.security.interfaces.IRSAPrivateKey): org.apache.harmony.xnet.provider.jsse.OpenSSLKey;
							ensureReadParams(): void;
							readParams(params: native.Array<native.Array<number>>): void;
							public getPrivateExponent(): java.math.BigInteger;
							public getModulus(): java.math.BigInteger;
							public getEncoded(): native.Array<number>;
							public getFormat(): string;
							public getAlgorithm(): string;
							public getPkeyContext(): number;
							public getPkeyAlias(): string;
							public equals(o: any): boolean;
							public hashCode(): number;
							public toString(): string;
						}
						/**
						 * This class encapsulates the functionality of Alert Protocol. Constant values are taken according to the TLS v1 specification (http://www.ietf.org/rfc/rfc2246.txt), p 7.2.
						 */
						export class AlertProtocol extends java.lang.Object {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.AlertProtocol>;
							/**
							 * Sets up the record protocol to be used by this allert protocol.
							 */
							protected setRecordProtocol(recordProtocol: org.apache.harmony.xnet.provider.jsse.SSLRecordProtocol): void;
							/**
							 * Reports an alert to be sent/received by transport. This method is usually called during processing of the income TSL record: if it contains alert message from another peer, or if warning alert occured during the processing of the message and this warning should be sent to another peer.
							 * @param level : alert level code
							 * @param description : alert description code
							 */
							protected alert(level: number, description: number): void;
							/**
							 * Returns the description code of alert or -100 if there is no alert.
							 */
							protected getDescriptionCode(): number;
							/**
							 * Resets the protocol to be in "no alert" state. This method shoud be called after processing of the reported alert.
							 */
							protected setProcessed(): void;
							/**
							 * Checks if any alert has occured.
							 */
							protected hasAlert(): boolean;
							/**
							 * Checks if occured alert is fatal alert.
							 */
							protected isFatalAlert(): boolean;
							/**
							 * Returns the string representation of occured alert. If no alert has occured null is returned.
							 */
							protected getAlertDescription(): string;
							/**
							 * Returns the record with reported alert message. The returned array of bytes is ready to be sent to another peer. Note, that this method does not automatically set the state of alert protocol in "no alert" state, so after wrapping the method setProcessed should be called.
							 */
							protected wrap(): native.Array<number>;
							/**
							 * Shutdown the protocol. It will be impossible to use the instance after the calling of this method.
							 */
							protected shutdown(): void;
						}
						/**
						 * This class provides a simple interface for cert pinning.
						 */
						export class CertPinManager extends java.lang.Object {
							constructor(store: org.apache.harmony.xnet.provider.jsse.TrustedCertificateStore);
							/**
							 * Test only
							 */
							constructor(path: string, store: org.apache.harmony.xnet.provider.jsse.TrustedCertificateStore);
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.CertPinManager>;
							/**
							 * This is the public interface for cert pinning.
							 */
							public chainIsNotPinned(hostname: string, chain: java.util.IList<java.security.cert.X509Certificate>): boolean;
						}
						/**
						 * This exception is used to signal that a fatal alert has occurred while working through the protocol.
						 */
						export class AlertException extends java.lang.RuntimeException {
							static class: java.lang.Class<org.apache.harmony.xnet.provider.jsse.AlertException>;
							/**
							 * Returns the reason of alert. This reason should be rethrown after alert processing.
							 */
							protected getReason(): javax.net.ssl.SSLException;
							/**
							 * Returns alert's description code.
							 */
							protected getDescriptionCode(): number;
						}
					}
				}
			}
			export module crypto {
				export module internal {
					/**
					 * CipherSpi implementation for javax.crypto.NullCipher
					 */
					export class NullCipherSpi extends javax.crypto.CipherSpi {
						constructor();
						static class: java.lang.Class<org.apache.harmony.crypto.internal.NullCipherSpi>;
						public engineSetMode(arg0: string): void;
						public engineSetPadding(arg0: string): void;
						public engineGetBlockSize(): number;
						public engineGetOutputSize(inputLen: number): number;
						public engineGetIV(): native.Array<number>;
						public engineGetParameters(): java.security.AlgorithmParameters;
						public engineInit(opmode: number, key: java.security.IKey, random: java.security.SecureRandom): void;
						public engineInit(opmode: number, key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
						public engineInit(opmode: number, key: java.security.IKey, params: java.security.AlgorithmParameters, random: java.security.SecureRandom): void;
						public engineUpdate(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
						public engineUpdate(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
						public engineUpdate(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
						public engineDoFinal(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
						public engineDoFinal(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
						public engineDoFinal(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
						public engineWrap(key: java.security.IKey): native.Array<number>;
						public engineUnwrap(wrappedKey: native.Array<number>, wrappedKeyAlgorithm: string, wrappedKeyType: number): java.security.IKey;
						public engineGetKeySize(key: java.security.IKey): number;
					}
				}
			}
		}
	}
	export module w3c {
		export module dom {
			/**
			 * This interface represents a known entity, either parsed or unparsed, in an XML document. Note that this models the entity itself <em>not</em> the entity declaration.
			 */
			export class Entity implements org.w3c.dom.INode, org.w3c.dom.IEntity {
				constructor(implementation: org.w3c.dom.IEntity);
				/**
				 * The public identifier associated with the entity if specified, and <code>null</code> otherwise.
				 */
				public getPublicId(): string;
				/**
				 * The system identifier associated with the entity if specified, and <code>null</code> otherwise. This may be an absolute URI or not.
				 */
				public getSystemId(): string;
				/**
				 * For unparsed entities, the name of the notation for the entity. For parsed entities, this is <code>null</code>.
				 */
				public getNotationName(): string;
				/**
				 * An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity. This is <code>null</code> if it an entity from the internal subset or if it is not known. DOM Level 3
				 */
				public getInputEncoding(): string;
				/**
				 * An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity. This is <code>null</code> otherwise. DOM Level 3
				 */
				public getXmlEncoding(): string;
				/**
				 * An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity. This is <code>null</code> otherwise. DOM Level 3
				 */
				public getXmlVersion(): string;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * Each <code>Document</code> has a <code>doctype</code> attribute whose value is either <code>null</code> or a <code>DocumentType</code> object. The <code>DocumentType</code> interface in the DOM Core provides an interface to the list of entities that are defined for the document, and little else because the effect of namespaces and the various XML schema efforts on DTD representation are not clearly understood as of this writing.
			 */
			interface IDocumentType extends org.w3c.dom.INode {
				/**
				 * The name of DTD; i.e., the name immediately following the <code>DOCTYPE</code> keyword.
				 */
				getName(): string;
				/**
				 * A <code>NamedNodeMap</code> containing the general entities, both external and internal, declared in the DTD. Parameter entities are not contained. Duplicates are discarded. For example in: <pre>&lt;!DOCTYPE ex SYSTEM "ex.dtd" [ &lt;!ENTITY foo "foo"&gt; &lt;!ENTITY bar "bar"&gt; &lt;!ENTITY bar "bar2"&gt; &lt;!ENTITY % baz "baz"&gt; ]&gt; &lt;ex/&gt;</pre> the interface provides access to <code>foo</code> and the first declaration of <code>bar</code> but not the second declaration of <code>bar</code> or <code>baz</code>. Every node in this map also implements the <code>Entity</code> interface. <br>The DOM Level 2 does not support editing entities, therefore <code>entities</code> cannot be altered in any way.
				 */
				getEntities(): org.w3c.dom.INamedNodeMap;
				/**
				 * A <code>NamedNodeMap</code> containing the notations declared in the DTD. Duplicates are discarded. Every node in this map also implements the <code>Notation</code> interface. <br>The DOM Level 2 does not support editing notations, therefore <code>notations</code> cannot be altered in any way.
				 */
				getNotations(): org.w3c.dom.INamedNodeMap;
				/**
				 * The public identifier of the external subset. DOM Level 2
				 */
				getPublicId(): string;
				/**
				 * The system identifier of the external subset. This may be an absolute URI or not. DOM Level 2
				 */
				getSystemId(): string;
				/**
				 * The internal subset as a string, or <code>null</code> if there is none. This is does not contain the delimiting square brackets. <p ><b>Note:</b> The actual content returned depends on how much information is available to the implementation. This may vary depending on various parameters, including the XML processor used to build the document. DOM Level 2
				 */
				getInternalSubset(): string;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>Node</code> interface is the primary datatype for the entire Document Object Model. It represents a single node in the document tree. While all objects implementing the <code>Node</code> interface expose methods for dealing with children, not all objects implementing the <code>Node</code> interface may have children. For example, <code>Text</code> nodes may not have children, and adding children to such nodes results in a <code>DOMException</code> being raised.
			 */
			export class Node implements org.w3c.dom.INode {
				constructor(implementation: org.w3c.dom.INode);
				/**
				 * The node is an <code>Element</code>.
				 */
				static ELEMENT_NODE: number;
				/**
				 * The node is an <code>Attr</code>.
				 */
				static ATTRIBUTE_NODE: number;
				/**
				 * The node is a <code>Text</code> node.
				 */
				static TEXT_NODE: number;
				/**
				 * The node is a <code>CDATASection</code>.
				 */
				static CDATA_SECTION_NODE: number;
				/**
				 * The node is an <code>EntityReference</code>.
				 */
				static ENTITY_REFERENCE_NODE: number;
				/**
				 * The node is an <code>Entity</code>.
				 */
				static ENTITY_NODE: number;
				/**
				 * The node is a <code>ProcessingInstruction</code>.
				 */
				static PROCESSING_INSTRUCTION_NODE: number;
				/**
				 * The node is a <code>Comment</code>.
				 */
				static COMMENT_NODE: number;
				/**
				 * The node is a <code>Document</code>.
				 */
				static DOCUMENT_NODE: number;
				/**
				 * The node is a <code>DocumentType</code>.
				 */
				static DOCUMENT_TYPE_NODE: number;
				/**
				 * The node is a <code>DocumentFragment</code>.
				 */
				static DOCUMENT_FRAGMENT_NODE: number;
				/**
				 * The node is a <code>Notation</code>.
				 */
				static NOTATION_NODE: number;
				/**
				 * The two nodes are disconnected. Order between disconnected nodes is always implementation-specific.
				 */
				static DOCUMENT_POSITION_DISCONNECTED: number;
				/**
				 * The second node precedes the reference node.
				 */
				static DOCUMENT_POSITION_PRECEDING: number;
				/**
				 * The node follows the reference node.
				 */
				static DOCUMENT_POSITION_FOLLOWING: number;
				/**
				 * The node contains the reference node. A node which contains is always preceding, too.
				 */
				static DOCUMENT_POSITION_CONTAINS: number;
				/**
				 * The node is contained by the reference node. A node which is contained is always following, too.
				 */
				static DOCUMENT_POSITION_CONTAINED_BY: number;
				/**
				 * The determination of preceding versus following is implementation-specific.
				 */
				static DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				public getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				public getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				public setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				public getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				public getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				public getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				public getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				public getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				public getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				public getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				public getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				public getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				public insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				public replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				public removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				public appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				public hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				public cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				public normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				public isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				public getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				public getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				public setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				public getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				public hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				public getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				public compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				public getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				public setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				public isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				public lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				public isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				public lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				public isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				public getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				public setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				public getUserData(key: string): any;
			}
			export module ls {
				/**
				 * <code>LSResourceResolver</code> provides a way for applications to redirect references to external resources.
				 */
				interface ILSResourceResolver {
					/**
					 * Allow the application to resolve external resources. <br> The <code>LSParser</code> will call this method before opening any external resource, including the external DTD subset, external entities referenced within the DTD, and external entities referenced within the document element (however, the top-level document entity is not passed to this method). The application may then request that the <code>LSParser</code> resolve the external resource itself, that it use an alternative URI, or that it use an entirely different input source. <br> Application writers can use this method to redirect external system identifiers to secure and/or local URI, to look up public identifiers in a catalogue, or to read an entity from a database or other input source (including, for example, a dialog box).
					 * @param type The type of the resource being resolved. For XML [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] resources
					 * @param namespaceURI The namespace of the resource being resolved,
					 * @param publicId The public identifier of the external entity being
					 * @param systemId The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], of the
					 * @param baseURI The absolute base URI of the resource being parsed, or
					 */
					resolveResource(type: string, namespaceURI: string, publicId: string, systemId: string, baseURI: string): org.w3c.dom.ls.ILSInput;
				}
				/**
				 * <code>LSParserFilter</code>s provide applications the ability to examine nodes as they are being constructed while parsing. As each node is examined, it may be modified or removed, or the entire parse may be terminated early.
				 */
				export class LSParserFilter implements org.w3c.dom.ls.ILSParserFilter {
					constructor(implementation: org.w3c.dom.ls.ILSParserFilter);
					/**
					 * Accept the node.
					 */
					static FILTER_ACCEPT: number;
					/**
					 * Reject the node and its children.
					 */
					static FILTER_REJECT: number;
					/**
					 * Skip this single node. The children of this node will still be considered.
					 */
					static FILTER_SKIP: number;
					/**
					 * Interrupt the normal processing of the document.
					 */
					static FILTER_INTERRUPT: number;
					/**
					 * The parser will call this method after each <code>Element</code> start tag has been scanned, but before the remainder of the <code>Element</code> is processed. The intent is to allow the element, including any children, to be efficiently skipped. Note that only element nodes are passed to the <code>startElement</code> function. <br>The element node passed to <code>startElement</code> for filtering will include all of the Element's attributes, but none of the children nodes. The Element may not yet be in place in the document being constructed (it may not have a parent node.) <br>A <code>startElement</code> filter function may access or change the attributes for the Element. Changing Namespace declarations will have no effect on namespace resolution by the parser. <br>For efficiency, the Element node passed to the filter may not be the same one as is actually placed in the tree if the node is accepted. And the actual node (node object identity) may be reused during the process of reading in and filtering a document.
					 * @param elementArg The newly encountered element. At the time this
					 */
					public startElement(elementArg: org.w3c.dom.IElement): number;
					/**
					 * This method will be called by the parser at the completion of the parsing of each node. The node and all of its descendants will exist and be complete. The parent node will also exist, although it may be incomplete, i.e. it may have additional children that have not yet been parsed. Attribute nodes are never passed to this function. <br>From within this method, the new node may be freely modified - children may be added or removed, text nodes modified, etc. The state of the rest of the document outside this node is not defined, and the affect of any attempt to navigate to, or to modify any other part of the document is undefined. <br>For validating parsers, the checks are made on the original document, before any modification by the filter. No validity checks are made on any document modifications made by the filter. <br>If this new node is rejected, the parser might reuse the new node and any of its descendants.
					 * @param nodeArg The newly constructed element. At the time this method
					 */
					public acceptNode(nodeArg: org.w3c.dom.INode): number;
					/**
					 * Tells the <code>LSParser</code> what types of nodes to show to the method <code>LSParserFilter.acceptNode</code>. If a node is not shown to the filter using this attribute, it is automatically included in the DOM document being built. See <code>NodeFilter</code> for definition of the constants. The constants <code>SHOW_ATTRIBUTE</code> , <code>SHOW_DOCUMENT</code>, <code>SHOW_DOCUMENT_TYPE</code>, <code>SHOW_NOTATION</code>, <code>SHOW_ENTITY</code>, and <code>SHOW_DOCUMENT_FRAGMENT</code> are meaningless here. Those nodes will never be passed to <code>LSParserFilter.acceptNode</code>. <br> The constants used here are defined in [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal and Range</a>] .
					 */
					public getWhatToShow(): number;
				}
				/**
				 * <code>DOMImplementationLS</code> contains the factory methods for creating Load and Save objects.
				 */
				export class DOMImplementationLS implements org.w3c.dom.ls.IDOMImplementationLS {
					constructor(implementation: org.w3c.dom.ls.IDOMImplementationLS);
					/**
					 * Create a synchronous <code>LSParser</code>.
					 */
					static MODE_SYNCHRONOUS: number;
					/**
					 * Create an asynchronous <code>LSParser</code>.
					 */
					static MODE_ASYNCHRONOUS: number;
					/**
					 * Create a new <code>LSParser</code>. The newly constructed parser may then be configured by means of its <code>DOMConfiguration</code> object, and used to parse documents by means of its <code>parse</code> method.
					 * @param mode The <code>mode</code> argument is either
					 * @param schemaType An absolute URI representing the type of the schema
					 */
					public createLSParser(mode: number, schemaType: string): org.w3c.dom.ls.ILSParser;
					/**
					 * Create a new <code>LSSerializer</code> object.
					 */
					public createLSSerializer(): org.w3c.dom.ls.ILSSerializer;
					/**
					 * Create a new empty input source object where <code>LSInput.characterStream</code>, <code>LSInput.byteStream</code> , <code>LSInput.stringData</code> <code>LSInput.systemId</code>, <code>LSInput.publicId</code>, <code>LSInput.baseURI</code>, and <code>LSInput.encoding</code> are null, and <code>LSInput.certifiedText</code> is false.
					 */
					public createLSInput(): org.w3c.dom.ls.ILSInput;
					/**
					 * Create a new empty output destination object where <code>LSOutput.characterStream</code>, <code>LSOutput.byteStream</code>, <code>LSOutput.systemId</code>, <code>LSOutput.encoding</code> are null.
					 */
					public createLSOutput(): org.w3c.dom.ls.ILSOutput;
				}
				/**
				 * An interface to an object that is able to build, or augment, a DOM tree from various input sources.
				 */
				export class LSParser implements org.w3c.dom.ls.ILSParser {
					constructor(implementation: org.w3c.dom.ls.ILSParser);
					/**
					 * Append the result of the parse operation as children of the context node. For this action to work, the context node must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					static ACTION_APPEND_AS_CHILDREN: number;
					/**
					 * Replace all the children of the context node with the result of the parse operation. For this action to work, the context node must be an <code>Element</code>, a <code>Document</code>, or a <code>DocumentFragment</code>.
					 */
					static ACTION_REPLACE_CHILDREN: number;
					/**
					 * Insert the result of the parse operation as the immediately preceding sibling of the context node. For this action to work the context node's parent must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					static ACTION_INSERT_BEFORE: number;
					/**
					 * Insert the result of the parse operation as the immediately following sibling of the context node. For this action to work the context node's parent must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					static ACTION_INSERT_AFTER: number;
					/**
					 * Replace the context node with the result of the parse operation. For this action to work, the context node must have a parent, and the parent must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					static ACTION_REPLACE: number;
					/**
					 * The <code>DOMConfiguration</code> object used when parsing an input source. This <code>DOMConfiguration</code> is specific to the parse operation. No parameter values from this <code>DOMConfiguration</code> object are passed automatically to the <code>DOMConfiguration</code> object on the <code>Document</code> that is created, or used, by the parse operation. The DOM application is responsible for passing any needed parameter values from this <code>DOMConfiguration</code> object to the <code>DOMConfiguration</code> object referenced by the <code>Document</code> object. <br> In addition to the parameters recognized in on the <a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration'> DOMConfiguration</a> interface defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the <code>DOMConfiguration</code> objects for <code>LSParser</code> add or modify the following parameters: <dl> <dt> <code>"charset-overrides-xml-encoding"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>optional</em>] (<em>default</em>) If a higher level protocol such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>] provides an indication of the character encoding of the input stream being processed, that will override any encoding specified in the XML declaration or the Text declaration (see also section 4.3.3, "Character Encoding in Entities", in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]). Explicitly setting an encoding in the <code>LSInput</code> overrides any encoding from the protocol. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] The parser ignores any character set encoding information from higher-level protocols. </dd> </dl></dd> <dt><code>"disallow-doctype"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>optional</em>] Throw a fatal <b>"doctype-not-allowed"</b> error if a doctype node is found while parsing the document. This is useful when dealing with things like SOAP envelopes where doctype nodes are not allowed. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Allow doctype nodes in the document. </dd> </dl></dd> <dt> <code>"ignore-unknown-character-denormalizations"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) If, while verifying full normalization when [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] is supported, a processor encounters characters for which it cannot determine the normalization properties, then the processor will ignore any possible denormalizations caused by these characters. This parameter is ignored for [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. </dd> <dt> <code>false</code></dt> <dd>[<em>optional</em>] Report an fatal <b>"unknown-character-denormalization"</b> error if a character is encountered for which the processor cannot determine the normalization properties. </dd> </dl></dd> <dt><code>"infoset"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , this parameter will default to <code>true</code> for <code>LSParser</code>. </dd> <dt><code>"namespaces"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) Perform the namespace processing as defined in [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] and [<a href='http://www.w3.org/TR/2004/REC-xml-names11-20040204/'>XML Namespaces 1.1</a>] . </dd> <dt><code>false</code></dt> <dd>[<em>optional</em>] Do not perform the namespace processing. </dd> </dl></dd> <dt> <code>"resource-resolver"</code></dt> <dd>[<em>required</em>] A reference to a <code>LSResourceResolver</code> object, or null. If the value of this parameter is not null when an external resource (such as an external XML entity or an XML schema location) is encountered, the implementation will request that the <code>LSResourceResolver</code> referenced in this parameter resolves the resource. </dd> <dt><code>"supported-media-types-only"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>optional</em>] Check that the media type of the parsed resource is a supported media type. If an unsupported media type is encountered, a fatal error of type <b>"unsupported-media-type"</b> will be raised. The media types defined in [<a href='http://www.ietf.org/rfc/rfc3023.txt'>IETF RFC 3023</a>] must always be accepted. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Accept any media type. </dd> </dl></dd> <dt><code>"validate"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the processing of the internal subset is always accomplished, even if this parameter is set to <code>false</code>. </dd> <dt> <code>"validate-if-schema"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the processing of the internal subset is always accomplished, even if this parameter is set to <code>false</code>. </dd> <dt> <code>"well-formed"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , this parameter cannot be set to <code>false</code>. </dd> </dl>
					 */
					public getDomConfig(): org.w3c.dom.IDOMConfiguration;
					/**
					 * When a filter is provided, the implementation will call out to the filter as it is constructing the DOM tree structure. The filter can choose to remove elements from the document being constructed, or to terminate the parsing early. <br> The filter is invoked after the operations requested by the <code>DOMConfiguration</code> parameters have been applied. For example, if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'> validate</a>" is set to <code>true</code>, the validation is done before invoking the filter.
					 */
					public getFilter(): org.w3c.dom.ls.ILSParserFilter;
					/**
					 * When a filter is provided, the implementation will call out to the filter as it is constructing the DOM tree structure. The filter can choose to remove elements from the document being constructed, or to terminate the parsing early. <br> The filter is invoked after the operations requested by the <code>DOMConfiguration</code> parameters have been applied. For example, if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'> validate</a>" is set to <code>true</code>, the validation is done before invoking the filter.
					 */
					public setFilter(filter: org.w3c.dom.ls.ILSParserFilter): void;
					/**
					 * <code>true</code> if the <code>LSParser</code> is asynchronous, <code>false</code> if it is synchronous.
					 */
					public getAsync(): boolean;
					/**
					 * <code>true</code> if the <code>LSParser</code> is currently busy loading a document, otherwise <code>false</code>.
					 */
					public getBusy(): boolean;
					/**
					 * Parse an XML document from a resource identified by a <code>LSInput</code>.
					 * @param input The <code>LSInput</code> from which the source of the
					 */
					public parse(input: org.w3c.dom.ls.ILSInput): org.w3c.dom.IDocument;
					/**
					 * Parse an XML document from a location identified by a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]. If the URI contains a fragment identifier (see section 4.1 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the behavior is not defined by this specification, future versions of this specification may define the behavior.
					 * @param uri The location of the XML document to be read.
					 */
					public parseURI(uri: string): org.w3c.dom.IDocument;
					/**
					 * Parse an XML fragment from a resource identified by a <code>LSInput</code> and insert the content into an existing document at the position specified with the <code>context</code> and <code>action</code> arguments. When parsing the input stream, the context node (or its parent, depending on where the result will be inserted) is used for resolving unbound namespace prefixes. The context node's <code>ownerDocument</code> node (or the node itself if the node of type <code>DOCUMENT_NODE</code>) is used to resolve default attributes and entity references. <br> As the new data is inserted into the document, at least one mutation event is fired per new immediate child or sibling of the context node. <br> If the context node is a <code>Document</code> node and the action is <code>ACTION_REPLACE_CHILDREN</code>, then the document that is passed as the context node will be changed such that its <code>xmlEncoding</code>, <code>documentURI</code>, <code>xmlVersion</code>, <code>inputEncoding</code>, <code>xmlStandalone</code>, and all other such attributes are set to what they would be set to if the input source was parsed using <code>LSParser.parse()</code>. <br> This method is always synchronous, even if the <code>LSParser</code> is asynchronous (<code>LSParser.async</code> is <code>true</code>). <br> If an error occurs while parsing, the caller is notified through the <code>ErrorHandler</code> instance associated with the "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'> error-handler</a>" parameter of the <code>DOMConfiguration</code>. <br> When calling <code>parseWithContext</code>, the values of the following configuration parameters will be ignored and their default values will always be used instead: "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'> validate</a>", "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate-if-schema'> validate-if-schema</a>", and "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-element-content-whitespace'> element-content-whitespace</a>". Other parameters will be treated normally, and the parser is expected to call the <code>LSParserFilter</code> just as if a whole document was parsed.
					 * @param input The <code>LSInput</code> from which the source document
					 * @param contextArg The node that is used as the context for the data
					 * @param action This parameter describes which action should be taken
					 */
					public parseWithContext(input: org.w3c.dom.ls.ILSInput, contextArg: org.w3c.dom.INode, action: number): org.w3c.dom.INode;
					/**
					 * Abort the loading of the document that is currently being loaded by the <code>LSParser</code>. If the <code>LSParser</code> is currently not busy, a call to this method does nothing.
					 */
					public abort(): void;
				}
				/**
				 * A <code>LSSerializer</code> provides an API for serializing (writing) a DOM document out into XML. The XML data is written to a string or an output stream. Any changes or fixups made during the serialization affect only the serialized data. The <code>Document</code> object and its children are never altered by the serialization operation.
				 */
				export class LSSerializer implements org.w3c.dom.ls.ILSSerializer {
					constructor(implementation: org.w3c.dom.ls.ILSSerializer);
					/**
					 * The <code>DOMConfiguration</code> object used by the <code>LSSerializer</code> when serializing a DOM node. <br> In addition to the parameters recognized by the <a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration'> DOMConfiguration</a> interface defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the <code>DOMConfiguration</code> objects for <code>LSSerializer</code> adds, or modifies, the following parameters: <dl> <dt><code>"canonical-form"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>optional</em>] Writes the document according to the rules specified in [<a href='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'>Canonical XML</a>]. In addition to the behavior described in "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-canonical-form'> canonical-form</a>" [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , setting this parameter to <code>true</code> will set the parameters "format-pretty-print", "discard-default-content", and "xml-declaration ", to <code>false</code>. Setting one of those parameters to <code>true</code> will set this parameter to <code>false</code>. Serializing an XML 1.1 document when "canonical-form" is <code>true</code> will generate a fatal error. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Do not canonicalize the output. </dd> </dl></dd> <dt><code>"discard-default-content"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) Use the <code>Attr.specified</code> attribute to decide what attributes should be discarded. Note that some implementations might use whatever information available to the implementation (i.e. XML schema, DTD, the <code>Attr.specified</code> attribute, and so on) to determine what attributes and content to discard if this parameter is set to <code>true</code>. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>]Keep all attributes and all content.</dd> </dl></dd> <dt><code>"format-pretty-print"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>optional</em>] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Pretty-printing changes the content of the document and may affect the validity of the document, validating implementations should preserve validity. </dd> <dt> <code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Don't pretty-print the result. </dd> </dl></dd> <dt> <code>"ignore-unknown-character-denormalizations"</code> </dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) If, while verifying full normalization when [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] is supported, a character is encountered for which the normalization properties cannot be determined, then raise a <code>"unknown-character-denormalization"</code> warning (instead of raising an error, if this parameter is not set) and ignore any possible denormalizations caused by these characters. </dd> <dt> <code>false</code></dt> <dd>[<em>optional</em>] Report a fatal error if a character is encountered for which the processor cannot determine the normalization properties. </dd> </dl></dd> <dt> <code>"normalize-characters"</code></dt> <dd> This parameter is equivalent to the one defined by <code>DOMConfiguration</code> in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] . Unlike in the Core, the default value for this parameter is <code>true</code>. While DOM implementations are not required to support <a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>fully normalizing</a> the characters in the document according to appendix E of [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], this parameter must be activated by default if supported. </dd> <dt> <code>"xml-declaration"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) If a <code>Document</code>, <code>Element</code>, or <code>Entity</code> node is serialized, the XML declaration, or text declaration, should be included. The version (<code>Document.xmlVersion</code> if the document is a Level 3 document and the version is non-null, otherwise use the value "1.0"), and the output encoding (see <code>LSSerializer.write</code> for details on how to find the output encoding) are specified in the serialized XML declaration. </dd> <dt> <code>false</code></dt> <dd>[<em>required</em>] Do not serialize the XML and text declarations. Report a <code>"xml-declaration-needed"</code> warning if this will cause problems (i.e. the serialized data is of an XML version other than [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], or an encoding would be needed to be able to re-parse the serialized data). </dd> </dl></dd> </dl>
					 */
					public getDomConfig(): org.w3c.dom.IDOMConfiguration;
					/**
					 * The end-of-line sequence of characters to be used in the XML being written out. Any string is supported, but XML treats only a certain set of characters sequence as end-of-line (See section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], if the serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], if the serialized content is XML 1.1). Using other character sequences than the recommended ones can result in a document that is either not serializable or not well-formed). <br> On retrieval, the default value of this attribute is the implementation specific default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by XML 1.0 or XML 1.1, depending on the serialized content. Setting this attribute to <code>null</code> will reset its value to the default value. <br>
					 */
					public getNewLine(): string;
					/**
					 * The end-of-line sequence of characters to be used in the XML being written out. Any string is supported, but XML treats only a certain set of characters sequence as end-of-line (See section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], if the serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], if the serialized content is XML 1.1). Using other character sequences than the recommended ones can result in a document that is either not serializable or not well-formed). <br> On retrieval, the default value of this attribute is the implementation specific default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by XML 1.0 or XML 1.1, depending on the serialized content. Setting this attribute to <code>null</code> will reset its value to the default value. <br>
					 */
					public setNewLine(newLine: string): void;
					/**
					 * Serialize the specified node as described above in the general description of the <code>LSSerializer</code> interface. The output is written to the supplied <code>LSOutput</code>. <br> When writing to a <code>LSOutput</code>, the encoding is found by looking at the encoding information that is reachable through the <code>LSOutput</code> and the item to be written (or its owner document) in this order: <ol> <li> <code>LSOutput.encoding</code>, </li> <li> <code>Document.inputEncoding</code>, </li> <li> <code>Document.xmlEncoding</code>. </li> </ol> <br> If no encoding is reachable through the above properties, a default encoding of "UTF-8" will be used. If the specified encoding is not supported an "unsupported-encoding" fatal error is raised. <br> If no output is specified in the <code>LSOutput</code>, a "no-output-specified" fatal error is raised. <br> The implementation is responsible of associating the appropriate media type with the serialized data. <br> When writing to a HTTP URI, a HTTP PUT is performed. When writing to other types of URIs, the mechanism for writing the data to the URI is implementation dependent.
					 * @param nodeArg The node to serialize.
					 * @param destination The destination for the serialized DOM.
					 */
					public write(nodeArg: org.w3c.dom.INode, destination: org.w3c.dom.ls.ILSOutput): boolean;
					/**
					 * A convenience method that acts as if <code>LSSerializer.write</code> was called with a <code>LSOutput</code> with no encoding specified and <code>LSOutput.systemId</code> set to the <code>uri</code> argument.
					 * @param nodeArg The node to serialize.
					 * @param uri The URI to write to.
					 */
					public writeToURI(nodeArg: org.w3c.dom.INode, uri: string): boolean;
					/**
					 * Serialize the specified node as described above in the general description of the <code>LSSerializer</code> interface. The output is written to a <code>DOMString</code> that is returned to the caller. The encoding used is the encoding of the <code>DOMString</code> type, i.e. UTF-16. Note that no Byte Order Mark is generated in a <code>DOMString</code> object.
					 * @param nodeArg The node to serialize.
					 */
					public writeToString(nodeArg: org.w3c.dom.INode): string;
				}
				/**
				 * This interface represents an output destination for data.
				 */
				interface ILSOutput {
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream to which 16-bit units can be output.
					 */
					getCharacterStream(): java.io.Writer;
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream to which 16-bit units can be output.
					 */
					setCharacterStream(characterStream: java.io.Writer): void;
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream of bytes.
					 */
					getByteStream(): java.io.OutputStream;
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream of bytes.
					 */
					setByteStream(byteStream: java.io.OutputStream): void;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this output destination. <br> If the system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the behavior is implementation dependent.
					 */
					getSystemId(): string;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this output destination. <br> If the system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the behavior is implementation dependent.
					 */
					setSystemId(systemId: string): void;
					/**
					 * The character encoding to use for the output. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"), it is recommended that character encodings registered (as charsets) with the Internet Assigned Numbers Authority [<a href='ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets'>IANA-CHARSETS</a>] should be referred to using their registered names.
					 */
					getEncoding(): string;
					/**
					 * The character encoding to use for the output. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"), it is recommended that character encodings registered (as charsets) with the Internet Assigned Numbers Authority [<a href='ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets'>IANA-CHARSETS</a>] should be referred to using their registered names.
					 */
					setEncoding(encoding: string): void;
				}
				/**
				 * <code>LSParserFilter</code>s provide applications the ability to examine nodes as they are being constructed while parsing. As each node is examined, it may be modified or removed, or the entire parse may be terminated early.
				 */
				interface ILSParserFilter {
					/**
					 * The parser will call this method after each <code>Element</code> start tag has been scanned, but before the remainder of the <code>Element</code> is processed. The intent is to allow the element, including any children, to be efficiently skipped. Note that only element nodes are passed to the <code>startElement</code> function. <br>The element node passed to <code>startElement</code> for filtering will include all of the Element's attributes, but none of the children nodes. The Element may not yet be in place in the document being constructed (it may not have a parent node.) <br>A <code>startElement</code> filter function may access or change the attributes for the Element. Changing Namespace declarations will have no effect on namespace resolution by the parser. <br>For efficiency, the Element node passed to the filter may not be the same one as is actually placed in the tree if the node is accepted. And the actual node (node object identity) may be reused during the process of reading in and filtering a document.
					 * @param elementArg The newly encountered element. At the time this
					 */
					startElement(elementArg: org.w3c.dom.IElement): number;
					/**
					 * This method will be called by the parser at the completion of the parsing of each node. The node and all of its descendants will exist and be complete. The parent node will also exist, although it may be incomplete, i.e. it may have additional children that have not yet been parsed. Attribute nodes are never passed to this function. <br>From within this method, the new node may be freely modified - children may be added or removed, text nodes modified, etc. The state of the rest of the document outside this node is not defined, and the affect of any attempt to navigate to, or to modify any other part of the document is undefined. <br>For validating parsers, the checks are made on the original document, before any modification by the filter. No validity checks are made on any document modifications made by the filter. <br>If this new node is rejected, the parser might reuse the new node and any of its descendants.
					 * @param nodeArg The newly constructed element. At the time this method
					 */
					acceptNode(nodeArg: org.w3c.dom.INode): number;
					/**
					 * Tells the <code>LSParser</code> what types of nodes to show to the method <code>LSParserFilter.acceptNode</code>. If a node is not shown to the filter using this attribute, it is automatically included in the DOM document being built. See <code>NodeFilter</code> for definition of the constants. The constants <code>SHOW_ATTRIBUTE</code> , <code>SHOW_DOCUMENT</code>, <code>SHOW_DOCUMENT_TYPE</code>, <code>SHOW_NOTATION</code>, <code>SHOW_ENTITY</code>, and <code>SHOW_DOCUMENT_FRAGMENT</code> are meaningless here. Those nodes will never be passed to <code>LSParserFilter.acceptNode</code>. <br> The constants used here are defined in [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal and Range</a>] .
					 */
					getWhatToShow(): number;
				}
				export module ILSParserFilter {
					/**
					 * Accept the node.
					 */
					var FILTER_ACCEPT: number;
					/**
					 * Reject the node and its children.
					 */
					var FILTER_REJECT: number;
					/**
					 * Skip this single node. The children of this node will still be considered.
					 */
					var FILTER_SKIP: number;
					/**
					 * Interrupt the normal processing of the document.
					 */
					var FILTER_INTERRUPT: number;
				}
				/**
				 * A <code>LSSerializer</code> provides an API for serializing (writing) a DOM document out into XML. The XML data is written to a string or an output stream. Any changes or fixups made during the serialization affect only the serialized data. The <code>Document</code> object and its children are never altered by the serialization operation.
				 */
				interface ILSSerializer {
					/**
					 * The <code>DOMConfiguration</code> object used by the <code>LSSerializer</code> when serializing a DOM node. <br> In addition to the parameters recognized by the <a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration'> DOMConfiguration</a> interface defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the <code>DOMConfiguration</code> objects for <code>LSSerializer</code> adds, or modifies, the following parameters: <dl> <dt><code>"canonical-form"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>optional</em>] Writes the document according to the rules specified in [<a href='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'>Canonical XML</a>]. In addition to the behavior described in "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-canonical-form'> canonical-form</a>" [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , setting this parameter to <code>true</code> will set the parameters "format-pretty-print", "discard-default-content", and "xml-declaration ", to <code>false</code>. Setting one of those parameters to <code>true</code> will set this parameter to <code>false</code>. Serializing an XML 1.1 document when "canonical-form" is <code>true</code> will generate a fatal error. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Do not canonicalize the output. </dd> </dl></dd> <dt><code>"discard-default-content"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) Use the <code>Attr.specified</code> attribute to decide what attributes should be discarded. Note that some implementations might use whatever information available to the implementation (i.e. XML schema, DTD, the <code>Attr.specified</code> attribute, and so on) to determine what attributes and content to discard if this parameter is set to <code>true</code>. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>]Keep all attributes and all content.</dd> </dl></dd> <dt><code>"format-pretty-print"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>optional</em>] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Pretty-printing changes the content of the document and may affect the validity of the document, validating implementations should preserve validity. </dd> <dt> <code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Don't pretty-print the result. </dd> </dl></dd> <dt> <code>"ignore-unknown-character-denormalizations"</code> </dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) If, while verifying full normalization when [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] is supported, a character is encountered for which the normalization properties cannot be determined, then raise a <code>"unknown-character-denormalization"</code> warning (instead of raising an error, if this parameter is not set) and ignore any possible denormalizations caused by these characters. </dd> <dt> <code>false</code></dt> <dd>[<em>optional</em>] Report a fatal error if a character is encountered for which the processor cannot determine the normalization properties. </dd> </dl></dd> <dt> <code>"normalize-characters"</code></dt> <dd> This parameter is equivalent to the one defined by <code>DOMConfiguration</code> in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] . Unlike in the Core, the default value for this parameter is <code>true</code>. While DOM implementations are not required to support <a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>fully normalizing</a> the characters in the document according to appendix E of [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], this parameter must be activated by default if supported. </dd> <dt> <code>"xml-declaration"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) If a <code>Document</code>, <code>Element</code>, or <code>Entity</code> node is serialized, the XML declaration, or text declaration, should be included. The version (<code>Document.xmlVersion</code> if the document is a Level 3 document and the version is non-null, otherwise use the value "1.0"), and the output encoding (see <code>LSSerializer.write</code> for details on how to find the output encoding) are specified in the serialized XML declaration. </dd> <dt> <code>false</code></dt> <dd>[<em>required</em>] Do not serialize the XML and text declarations. Report a <code>"xml-declaration-needed"</code> warning if this will cause problems (i.e. the serialized data is of an XML version other than [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], or an encoding would be needed to be able to re-parse the serialized data). </dd> </dl></dd> </dl>
					 */
					getDomConfig(): org.w3c.dom.IDOMConfiguration;
					/**
					 * The end-of-line sequence of characters to be used in the XML being written out. Any string is supported, but XML treats only a certain set of characters sequence as end-of-line (See section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], if the serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], if the serialized content is XML 1.1). Using other character sequences than the recommended ones can result in a document that is either not serializable or not well-formed). <br> On retrieval, the default value of this attribute is the implementation specific default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by XML 1.0 or XML 1.1, depending on the serialized content. Setting this attribute to <code>null</code> will reset its value to the default value. <br>
					 */
					getNewLine(): string;
					/**
					 * The end-of-line sequence of characters to be used in the XML being written out. Any string is supported, but XML treats only a certain set of characters sequence as end-of-line (See section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], if the serialized content is XML 1.0 or section 2.11, "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], if the serialized content is XML 1.1). Using other character sequences than the recommended ones can result in a document that is either not serializable or not well-formed). <br> On retrieval, the default value of this attribute is the implementation specific default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by XML 1.0 or XML 1.1, depending on the serialized content. Setting this attribute to <code>null</code> will reset its value to the default value. <br>
					 */
					setNewLine(newLine: string): void;
					/**
					 * Serialize the specified node as described above in the general description of the <code>LSSerializer</code> interface. The output is written to the supplied <code>LSOutput</code>. <br> When writing to a <code>LSOutput</code>, the encoding is found by looking at the encoding information that is reachable through the <code>LSOutput</code> and the item to be written (or its owner document) in this order: <ol> <li> <code>LSOutput.encoding</code>, </li> <li> <code>Document.inputEncoding</code>, </li> <li> <code>Document.xmlEncoding</code>. </li> </ol> <br> If no encoding is reachable through the above properties, a default encoding of "UTF-8" will be used. If the specified encoding is not supported an "unsupported-encoding" fatal error is raised. <br> If no output is specified in the <code>LSOutput</code>, a "no-output-specified" fatal error is raised. <br> The implementation is responsible of associating the appropriate media type with the serialized data. <br> When writing to a HTTP URI, a HTTP PUT is performed. When writing to other types of URIs, the mechanism for writing the data to the URI is implementation dependent.
					 * @param nodeArg The node to serialize.
					 * @param destination The destination for the serialized DOM.
					 */
					write(nodeArg: org.w3c.dom.INode, destination: org.w3c.dom.ls.ILSOutput): boolean;
					/**
					 * A convenience method that acts as if <code>LSSerializer.write</code> was called with a <code>LSOutput</code> with no encoding specified and <code>LSOutput.systemId</code> set to the <code>uri</code> argument.
					 * @param nodeArg The node to serialize.
					 * @param uri The URI to write to.
					 */
					writeToURI(nodeArg: org.w3c.dom.INode, uri: string): boolean;
					/**
					 * Serialize the specified node as described above in the general description of the <code>LSSerializer</code> interface. The output is written to a <code>DOMString</code> that is returned to the caller. The encoding used is the encoding of the <code>DOMString</code> type, i.e. UTF-16. Note that no Byte Order Mark is generated in a <code>DOMString</code> object.
					 * @param nodeArg The node to serialize.
					 */
					writeToString(nodeArg: org.w3c.dom.INode): string;
				}
				/**
				 * <code>DOMImplementationLS</code> contains the factory methods for creating Load and Save objects.
				 */
				interface IDOMImplementationLS {
					/**
					 * Create a new <code>LSParser</code>. The newly constructed parser may then be configured by means of its <code>DOMConfiguration</code> object, and used to parse documents by means of its <code>parse</code> method.
					 * @param mode The <code>mode</code> argument is either
					 * @param schemaType An absolute URI representing the type of the schema
					 */
					createLSParser(mode: number, schemaType: string): org.w3c.dom.ls.ILSParser;
					/**
					 * Create a new <code>LSSerializer</code> object.
					 */
					createLSSerializer(): org.w3c.dom.ls.ILSSerializer;
					/**
					 * Create a new empty input source object where <code>LSInput.characterStream</code>, <code>LSInput.byteStream</code> , <code>LSInput.stringData</code> <code>LSInput.systemId</code>, <code>LSInput.publicId</code>, <code>LSInput.baseURI</code>, and <code>LSInput.encoding</code> are null, and <code>LSInput.certifiedText</code> is false.
					 */
					createLSInput(): org.w3c.dom.ls.ILSInput;
					/**
					 * Create a new empty output destination object where <code>LSOutput.characterStream</code>, <code>LSOutput.byteStream</code>, <code>LSOutput.systemId</code>, <code>LSOutput.encoding</code> are null.
					 */
					createLSOutput(): org.w3c.dom.ls.ILSOutput;
				}
				export module IDOMImplementationLS {
					/**
					 * Create a synchronous <code>LSParser</code>.
					 */
					var MODE_SYNCHRONOUS: number;
					/**
					 * Create an asynchronous <code>LSParser</code>.
					 */
					var MODE_ASYNCHRONOUS: number;
				}
				/**
				 * This interface represents an input source for data.
				 */
				interface ILSInput {
					/**
					 * An attribute of a language and binding dependent type that represents a stream of 16-bit units. The application must encode the stream using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when using character streams. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					getCharacterStream(): java.io.Reader;
					/**
					 * An attribute of a language and binding dependent type that represents a stream of 16-bit units. The application must encode the stream using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when using character streams. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					setCharacterStream(characterStream: java.io.Reader): void;
					/**
					 * An attribute of a language and binding dependent type that represents a stream of bytes. <br> If the application knows the character encoding of the byte stream, it should set the encoding attribute. Setting the encoding in this way will override any encoding specified in an XML declaration in the data.
					 */
					getByteStream(): java.io.InputStream;
					/**
					 * An attribute of a language and binding dependent type that represents a stream of bytes. <br> If the application knows the character encoding of the byte stream, it should set the encoding attribute. Setting the encoding in this way will override any encoding specified in an XML declaration in the data.
					 */
					setByteStream(byteStream: java.io.InputStream): void;
					/**
					 * String data to parse. If provided, this will always be treated as a sequence of 16-bit units (UTF-16 encoded characters). It is not a requirement to have an XML declaration when using <code>stringData</code>. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					getStringData(): string;
					/**
					 * String data to parse. If provided, this will always be treated as a sequence of 16-bit units (UTF-16 encoded characters). It is not a requirement to have an XML declaration when using <code>stringData</code>. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					setStringData(stringData: string): void;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this input source. The system identifier is optional if there is a byte stream, a character stream, or string data. It is still useful to provide one, since the application will use it to resolve any relative URIs and can include it in error messages and warnings. (The LSParser will only attempt to fetch the resource identified by the URI reference if there is no other input available in the input source.) <br> If the application knows the character encoding of the object pointed to by the system identifier, it can set the encoding using the <code>encoding</code> attribute. <br> If the specified system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the DOM implementation will attempt to resolve the relative URI with the <code>baseURI</code> as the base, if that fails, the behavior is implementation dependent.
					 */
					getSystemId(): string;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this input source. The system identifier is optional if there is a byte stream, a character stream, or string data. It is still useful to provide one, since the application will use it to resolve any relative URIs and can include it in error messages and warnings. (The LSParser will only attempt to fetch the resource identified by the URI reference if there is no other input available in the input source.) <br> If the application knows the character encoding of the object pointed to by the system identifier, it can set the encoding using the <code>encoding</code> attribute. <br> If the specified system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the DOM implementation will attempt to resolve the relative URI with the <code>baseURI</code> as the base, if that fails, the behavior is implementation dependent.
					 */
					setSystemId(systemId: string): void;
					/**
					 * The public identifier for this input source. This may be mapped to an input source using an implementation dependent mechanism (such as catalogues or other mappings). The public identifier, if specified, may also be reported as part of the location information when errors are reported.
					 */
					getPublicId(): string;
					/**
					 * The public identifier for this input source. This may be mapped to an input source using an implementation dependent mechanism (such as catalogues or other mappings). The public identifier, if specified, may also be reported as part of the location information when errors are reported.
					 */
					setPublicId(publicId: string): void;
					/**
					 * The base URI to be used (see section 5.1.4 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]) for resolving a relative <code>systemId</code> to an absolute URI. <br> If, when used, the base URI is itself a relative URI, an empty string, or null, the behavior is implementation dependent.
					 */
					getBaseURI(): string;
					/**
					 * The base URI to be used (see section 5.1.4 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]) for resolving a relative <code>systemId</code> to an absolute URI. <br> If, when used, the base URI is itself a relative URI, an empty string, or null, the behavior is implementation dependent.
					 */
					setBaseURI(baseURI: string): void;
					/**
					 * The character encoding, if known. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"). <br> This attribute has no effect when the application provides a character stream or string data. For other sources of input, an encoding specified by means of this attribute will override any encoding specified in the XML declaration or the Text declaration, or an encoding obtained from a higher level protocol, such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>].
					 */
					getEncoding(): string;
					/**
					 * The character encoding, if known. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"). <br> This attribute has no effect when the application provides a character stream or string data. For other sources of input, an encoding specified by means of this attribute will override any encoding specified in the XML declaration or the Text declaration, or an encoding obtained from a higher level protocol, such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>].
					 */
					setEncoding(encoding: string): void;
					/**
					 * If set to true, assume that the input is certified (see section 2.13 in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]) when parsing [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>].
					 */
					getCertifiedText(): boolean;
					/**
					 * If set to true, assume that the input is certified (see section 2.13 in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]) when parsing [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>].
					 */
					setCertifiedText(certifiedText: boolean): void;
				}
				/**
				 * <code>LSResourceResolver</code> provides a way for applications to redirect references to external resources.
				 */
				export class LSResourceResolver implements org.w3c.dom.ls.ILSResourceResolver {
					constructor(implementation: org.w3c.dom.ls.ILSResourceResolver);
					/**
					 * Allow the application to resolve external resources. <br> The <code>LSParser</code> will call this method before opening any external resource, including the external DTD subset, external entities referenced within the DTD, and external entities referenced within the document element (however, the top-level document entity is not passed to this method). The application may then request that the <code>LSParser</code> resolve the external resource itself, that it use an alternative URI, or that it use an entirely different input source. <br> Application writers can use this method to redirect external system identifiers to secure and/or local URI, to look up public identifiers in a catalogue, or to read an entity from a database or other input source (including, for example, a dialog box).
					 * @param type The type of the resource being resolved. For XML [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] resources
					 * @param namespaceURI The namespace of the resource being resolved,
					 * @param publicId The public identifier of the external entity being
					 * @param systemId The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], of the
					 * @param baseURI The absolute base URI of the resource being parsed, or
					 */
					public resolveResource(type: string, namespaceURI: string, publicId: string, systemId: string, baseURI: string): org.w3c.dom.ls.ILSInput;
				}
				/**
				 * This interface represents an input source for data.
				 */
				export class LSInput implements org.w3c.dom.ls.ILSInput {
					constructor(implementation: org.w3c.dom.ls.ILSInput);
					/**
					 * An attribute of a language and binding dependent type that represents a stream of 16-bit units. The application must encode the stream using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when using character streams. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					public getCharacterStream(): java.io.Reader;
					/**
					 * An attribute of a language and binding dependent type that represents a stream of 16-bit units. The application must encode the stream using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when using character streams. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					public setCharacterStream(characterStream: java.io.Reader): void;
					/**
					 * An attribute of a language and binding dependent type that represents a stream of bytes. <br> If the application knows the character encoding of the byte stream, it should set the encoding attribute. Setting the encoding in this way will override any encoding specified in an XML declaration in the data.
					 */
					public getByteStream(): java.io.InputStream;
					/**
					 * An attribute of a language and binding dependent type that represents a stream of bytes. <br> If the application knows the character encoding of the byte stream, it should set the encoding attribute. Setting the encoding in this way will override any encoding specified in an XML declaration in the data.
					 */
					public setByteStream(byteStream: java.io.InputStream): void;
					/**
					 * String data to parse. If provided, this will always be treated as a sequence of 16-bit units (UTF-16 encoded characters). It is not a requirement to have an XML declaration when using <code>stringData</code>. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					public getStringData(): string;
					/**
					 * String data to parse. If provided, this will always be treated as a sequence of 16-bit units (UTF-16 encoded characters). It is not a requirement to have an XML declaration when using <code>stringData</code>. If an XML declaration is present, the value of the encoding attribute will be ignored.
					 */
					public setStringData(stringData: string): void;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this input source. The system identifier is optional if there is a byte stream, a character stream, or string data. It is still useful to provide one, since the application will use it to resolve any relative URIs and can include it in error messages and warnings. (The LSParser will only attempt to fetch the resource identified by the URI reference if there is no other input available in the input source.) <br> If the application knows the character encoding of the object pointed to by the system identifier, it can set the encoding using the <code>encoding</code> attribute. <br> If the specified system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the DOM implementation will attempt to resolve the relative URI with the <code>baseURI</code> as the base, if that fails, the behavior is implementation dependent.
					 */
					public getSystemId(): string;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this input source. The system identifier is optional if there is a byte stream, a character stream, or string data. It is still useful to provide one, since the application will use it to resolve any relative URIs and can include it in error messages and warnings. (The LSParser will only attempt to fetch the resource identified by the URI reference if there is no other input available in the input source.) <br> If the application knows the character encoding of the object pointed to by the system identifier, it can set the encoding using the <code>encoding</code> attribute. <br> If the specified system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the DOM implementation will attempt to resolve the relative URI with the <code>baseURI</code> as the base, if that fails, the behavior is implementation dependent.
					 */
					public setSystemId(systemId: string): void;
					/**
					 * The public identifier for this input source. This may be mapped to an input source using an implementation dependent mechanism (such as catalogues or other mappings). The public identifier, if specified, may also be reported as part of the location information when errors are reported.
					 */
					public getPublicId(): string;
					/**
					 * The public identifier for this input source. This may be mapped to an input source using an implementation dependent mechanism (such as catalogues or other mappings). The public identifier, if specified, may also be reported as part of the location information when errors are reported.
					 */
					public setPublicId(publicId: string): void;
					/**
					 * The base URI to be used (see section 5.1.4 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]) for resolving a relative <code>systemId</code> to an absolute URI. <br> If, when used, the base URI is itself a relative URI, an empty string, or null, the behavior is implementation dependent.
					 */
					public getBaseURI(): string;
					/**
					 * The base URI to be used (see section 5.1.4 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]) for resolving a relative <code>systemId</code> to an absolute URI. <br> If, when used, the base URI is itself a relative URI, an empty string, or null, the behavior is implementation dependent.
					 */
					public setBaseURI(baseURI: string): void;
					/**
					 * The character encoding, if known. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"). <br> This attribute has no effect when the application provides a character stream or string data. For other sources of input, an encoding specified by means of this attribute will override any encoding specified in the XML declaration or the Text declaration, or an encoding obtained from a higher level protocol, such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>].
					 */
					public getEncoding(): string;
					/**
					 * The character encoding, if known. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"). <br> This attribute has no effect when the application provides a character stream or string data. For other sources of input, an encoding specified by means of this attribute will override any encoding specified in the XML declaration or the Text declaration, or an encoding obtained from a higher level protocol, such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>].
					 */
					public setEncoding(encoding: string): void;
					/**
					 * If set to true, assume that the input is certified (see section 2.13 in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]) when parsing [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>].
					 */
					public getCertifiedText(): boolean;
					/**
					 * If set to true, assume that the input is certified (see section 2.13 in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]) when parsing [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>].
					 */
					public setCertifiedText(certifiedText: boolean): void;
				}
				/**
				 * This interface represents an output destination for data.
				 */
				export class LSOutput implements org.w3c.dom.ls.ILSOutput {
					constructor(implementation: org.w3c.dom.ls.ILSOutput);
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream to which 16-bit units can be output.
					 */
					public getCharacterStream(): java.io.Writer;
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream to which 16-bit units can be output.
					 */
					public setCharacterStream(characterStream: java.io.Writer): void;
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream of bytes.
					 */
					public getByteStream(): java.io.OutputStream;
					/**
					 * An attribute of a language and binding dependent type that represents a writable stream of bytes.
					 */
					public setByteStream(byteStream: java.io.OutputStream): void;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this output destination. <br> If the system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the behavior is implementation dependent.
					 */
					public getSystemId(): string;
					/**
					 * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this output destination. <br> If the system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the behavior is implementation dependent.
					 */
					public setSystemId(systemId: string): void;
					/**
					 * The character encoding to use for the output. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"), it is recommended that character encodings registered (as charsets) with the Internet Assigned Numbers Authority [<a href='ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets'>IANA-CHARSETS</a>] should be referred to using their registered names.
					 */
					public getEncoding(): string;
					/**
					 * The character encoding to use for the output. The encoding must be a string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section 4.3.3 "Character Encoding in Entities"), it is recommended that character encodings registered (as charsets) with the Internet Assigned Numbers Authority [<a href='ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets'>IANA-CHARSETS</a>] should be referred to using their registered names.
					 */
					public setEncoding(encoding: string): void;
				}
				/**
				 * An interface to an object that is able to build, or augment, a DOM tree from various input sources.
				 */
				interface ILSParser {
					/**
					 * The <code>DOMConfiguration</code> object used when parsing an input source. This <code>DOMConfiguration</code> is specific to the parse operation. No parameter values from this <code>DOMConfiguration</code> object are passed automatically to the <code>DOMConfiguration</code> object on the <code>Document</code> that is created, or used, by the parse operation. The DOM application is responsible for passing any needed parameter values from this <code>DOMConfiguration</code> object to the <code>DOMConfiguration</code> object referenced by the <code>Document</code> object. <br> In addition to the parameters recognized in on the <a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration'> DOMConfiguration</a> interface defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the <code>DOMConfiguration</code> objects for <code>LSParser</code> add or modify the following parameters: <dl> <dt> <code>"charset-overrides-xml-encoding"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>optional</em>] (<em>default</em>) If a higher level protocol such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>] provides an indication of the character encoding of the input stream being processed, that will override any encoding specified in the XML declaration or the Text declaration (see also section 4.3.3, "Character Encoding in Entities", in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]). Explicitly setting an encoding in the <code>LSInput</code> overrides any encoding from the protocol. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] The parser ignores any character set encoding information from higher-level protocols. </dd> </dl></dd> <dt><code>"disallow-doctype"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>optional</em>] Throw a fatal <b>"doctype-not-allowed"</b> error if a doctype node is found while parsing the document. This is useful when dealing with things like SOAP envelopes where doctype nodes are not allowed. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Allow doctype nodes in the document. </dd> </dl></dd> <dt> <code>"ignore-unknown-character-denormalizations"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) If, while verifying full normalization when [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] is supported, a processor encounters characters for which it cannot determine the normalization properties, then the processor will ignore any possible denormalizations caused by these characters. This parameter is ignored for [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. </dd> <dt> <code>false</code></dt> <dd>[<em>optional</em>] Report an fatal <b>"unknown-character-denormalization"</b> error if a character is encountered for which the processor cannot determine the normalization properties. </dd> </dl></dd> <dt><code>"infoset"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , this parameter will default to <code>true</code> for <code>LSParser</code>. </dd> <dt><code>"namespaces"</code></dt> <dd> <dl> <dt><code>true</code></dt> <dd>[<em>required</em>] (<em>default</em>) Perform the namespace processing as defined in [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] and [<a href='http://www.w3.org/TR/2004/REC-xml-names11-20040204/'>XML Namespaces 1.1</a>] . </dd> <dt><code>false</code></dt> <dd>[<em>optional</em>] Do not perform the namespace processing. </dd> </dl></dd> <dt> <code>"resource-resolver"</code></dt> <dd>[<em>required</em>] A reference to a <code>LSResourceResolver</code> object, or null. If the value of this parameter is not null when an external resource (such as an external XML entity or an XML schema location) is encountered, the implementation will request that the <code>LSResourceResolver</code> referenced in this parameter resolves the resource. </dd> <dt><code>"supported-media-types-only"</code></dt> <dd> <dl> <dt> <code>true</code></dt> <dd>[<em>optional</em>] Check that the media type of the parsed resource is a supported media type. If an unsupported media type is encountered, a fatal error of type <b>"unsupported-media-type"</b> will be raised. The media types defined in [<a href='http://www.ietf.org/rfc/rfc3023.txt'>IETF RFC 3023</a>] must always be accepted. </dd> <dt><code>false</code></dt> <dd>[<em>required</em>] (<em>default</em>) Accept any media type. </dd> </dl></dd> <dt><code>"validate"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the processing of the internal subset is always accomplished, even if this parameter is set to <code>false</code>. </dd> <dt> <code>"validate-if-schema"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , the processing of the internal subset is always accomplished, even if this parameter is set to <code>false</code>. </dd> <dt> <code>"well-formed"</code></dt> <dd> See the definition of <code>DOMConfiguration</code> for a description of this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>] , this parameter cannot be set to <code>false</code>. </dd> </dl>
					 */
					getDomConfig(): org.w3c.dom.IDOMConfiguration;
					/**
					 * When a filter is provided, the implementation will call out to the filter as it is constructing the DOM tree structure. The filter can choose to remove elements from the document being constructed, or to terminate the parsing early. <br> The filter is invoked after the operations requested by the <code>DOMConfiguration</code> parameters have been applied. For example, if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'> validate</a>" is set to <code>true</code>, the validation is done before invoking the filter.
					 */
					getFilter(): org.w3c.dom.ls.ILSParserFilter;
					/**
					 * When a filter is provided, the implementation will call out to the filter as it is constructing the DOM tree structure. The filter can choose to remove elements from the document being constructed, or to terminate the parsing early. <br> The filter is invoked after the operations requested by the <code>DOMConfiguration</code> parameters have been applied. For example, if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'> validate</a>" is set to <code>true</code>, the validation is done before invoking the filter.
					 */
					setFilter(filter: org.w3c.dom.ls.ILSParserFilter): void;
					/**
					 * <code>true</code> if the <code>LSParser</code> is asynchronous, <code>false</code> if it is synchronous.
					 */
					getAsync(): boolean;
					/**
					 * <code>true</code> if the <code>LSParser</code> is currently busy loading a document, otherwise <code>false</code>.
					 */
					getBusy(): boolean;
					/**
					 * Parse an XML document from a resource identified by a <code>LSInput</code>.
					 * @param input The <code>LSInput</code> from which the source of the
					 */
					parse(input: org.w3c.dom.ls.ILSInput): org.w3c.dom.IDocument;
					/**
					 * Parse an XML document from a location identified by a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]. If the URI contains a fragment identifier (see section 4.1 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the behavior is not defined by this specification, future versions of this specification may define the behavior.
					 * @param uri The location of the XML document to be read.
					 */
					parseURI(uri: string): org.w3c.dom.IDocument;
					/**
					 * Parse an XML fragment from a resource identified by a <code>LSInput</code> and insert the content into an existing document at the position specified with the <code>context</code> and <code>action</code> arguments. When parsing the input stream, the context node (or its parent, depending on where the result will be inserted) is used for resolving unbound namespace prefixes. The context node's <code>ownerDocument</code> node (or the node itself if the node of type <code>DOCUMENT_NODE</code>) is used to resolve default attributes and entity references. <br> As the new data is inserted into the document, at least one mutation event is fired per new immediate child or sibling of the context node. <br> If the context node is a <code>Document</code> node and the action is <code>ACTION_REPLACE_CHILDREN</code>, then the document that is passed as the context node will be changed such that its <code>xmlEncoding</code>, <code>documentURI</code>, <code>xmlVersion</code>, <code>inputEncoding</code>, <code>xmlStandalone</code>, and all other such attributes are set to what they would be set to if the input source was parsed using <code>LSParser.parse()</code>. <br> This method is always synchronous, even if the <code>LSParser</code> is asynchronous (<code>LSParser.async</code> is <code>true</code>). <br> If an error occurs while parsing, the caller is notified through the <code>ErrorHandler</code> instance associated with the "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'> error-handler</a>" parameter of the <code>DOMConfiguration</code>. <br> When calling <code>parseWithContext</code>, the values of the following configuration parameters will be ignored and their default values will always be used instead: "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'> validate</a>", "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate-if-schema'> validate-if-schema</a>", and "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-element-content-whitespace'> element-content-whitespace</a>". Other parameters will be treated normally, and the parser is expected to call the <code>LSParserFilter</code> just as if a whole document was parsed.
					 * @param input The <code>LSInput</code> from which the source document
					 * @param contextArg The node that is used as the context for the data
					 * @param action This parameter describes which action should be taken
					 */
					parseWithContext(input: org.w3c.dom.ls.ILSInput, contextArg: org.w3c.dom.INode, action: number): org.w3c.dom.INode;
					/**
					 * Abort the loading of the document that is currently being loaded by the <code>LSParser</code>. If the <code>LSParser</code> is currently not busy, a call to this method does nothing.
					 */
					abort(): void;
				}
				export module ILSParser {
					/**
					 * Append the result of the parse operation as children of the context node. For this action to work, the context node must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					var ACTION_APPEND_AS_CHILDREN: number;
					/**
					 * Replace all the children of the context node with the result of the parse operation. For this action to work, the context node must be an <code>Element</code>, a <code>Document</code>, or a <code>DocumentFragment</code>.
					 */
					var ACTION_REPLACE_CHILDREN: number;
					/**
					 * Insert the result of the parse operation as the immediately preceding sibling of the context node. For this action to work the context node's parent must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					var ACTION_INSERT_BEFORE: number;
					/**
					 * Insert the result of the parse operation as the immediately following sibling of the context node. For this action to work the context node's parent must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					var ACTION_INSERT_AFTER: number;
					/**
					 * Replace the context node with the result of the parse operation. For this action to work, the context node must have a parent, and the parent must be an <code>Element</code> or a <code>DocumentFragment</code>.
					 */
					var ACTION_REPLACE: number;
				}
				/**
				 * Parser or write operations may throw an <code>LSException</code> if the processing is stopped. The processing can be stopped due to a <code>DOMError</code> with a severity of <code>DOMError.SEVERITY_FATAL_ERROR</code> or a non recovered <code>DOMError.SEVERITY_ERROR</code>, or if <code>DOMErrorHandler.handleError()</code> returned <code>false</code>. <p ><b>Note:</b> As suggested in the definition of the constants in the <code>DOMError</code> interface, a DOM implementation may choose to continue after a fatal error, but the resulting DOM tree is then implementation dependent.
				 */
				export class LSException extends java.lang.RuntimeException {
					constructor(code: number, message: string);
					code: number;
					/**
					 * If an attempt was made to load a document, or an XML Fragment, using <code>LSParser</code> and the processing has been stopped.
					 */
					static PARSE_ERR: number;
					/**
					 * If an attempt was made to serialize a <code>Node</code> using <code>LSSerializer</code> and the processing has been stopped.
					 */
					static SERIALIZE_ERR: number;
					static class: java.lang.Class<org.w3c.dom.ls.LSException>;
				}
			}
			/**
			 * CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. The only delimiter that is recognized in a CDATA section is the "]]&gt;" string that ends the CDATA section. CDATA sections cannot be nested. Their primary purpose is for including material such as XML fragments, without needing to escape all the delimiters.
			 */
			interface ICDATASection extends org.w3c.dom.IText {
				/**
				 * Breaks this node into two nodes at the specified <code>offset</code>, keeping both in the tree as siblings. After being split, this node will contain all the content up to the <code>offset</code> point. A new node of the same type, which contains all the content at and after the <code>offset</code> point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the <code>offset</code> is equal to the length of this node, the new node has no data.
				 * @param offset The 16-bit unit offset at which to split, starting from
				 */
				splitText(offset: number): org.w3c.dom.IText;
				/**
				 * Returns whether this text node contains <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'> element content whitespace</a>, often abusively called "ignorable whitespace". The text node is determined to contain whitespace in element content during the load of the document or if validation occurs while using <code>Document.normalizeDocument()</code>. DOM Level 3
				 */
				isElementContentWhitespace(): boolean;
				/**
				 * Returns all text of <code>Text</code> nodes logically-adjacent text nodes to this node, concatenated in document order. <br>For instance, in the example below <code>wholeText</code> on the <code>Text</code> node that contains "bar" returns "barfoo", while on the <code>Text</code> node that contains "foo" it returns "barfoo". DOM Level 3
				 */
				getWholeText(): string;
				/**
				 * Replaces the text of the current node and all logically-adjacent text nodes with the specified text. All logically-adjacent text nodes are removed including the current node unless it was the recipient of the replacement text. <br>This method returns the node which received the replacement text. The returned node is: <ul> <li><code>null</code>, when the replacement text is the empty string; </li> <li>the current node, except when the current node is read-only; </li> <li> a new <code>Text</code> node of the same type ( <code>Text</code> or <code>CDATASection</code>) as the current node inserted at the location of the replacement. </li> </ul> <br>For instance, in the above example calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" with "yo" in argument results in the following: <br>Where the nodes to be removed are read-only descendants of an <code>EntityReference</code>, the <code>EntityReference</code> must be removed instead of the read-only nodes. If any <code>EntityReference</code> to be removed has descendants that are not <code>EntityReference</code>, <code>Text</code>, or <code>CDATASection</code> nodes, the <code>replaceWholeText</code> method must fail before performing any modification of the document, raising a <code>DOMException</code> with the code <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br>For instance, in the example below calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" fails, because the <code>EntityReference</code> node "ent" contains an <code>Element</code> node which cannot be removed.
				 * @param content The content of the replacing <code>Text</code> node.
				 */
				replaceWholeText(content: string): org.w3c.dom.IText;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * <code>DOMError</code> is an interface that describes an error.
			 */
			interface IDOMError {
				/**
				 * The severity of the error, either <code>SEVERITY_WARNING</code>, <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.
				 */
				getSeverity(): number;
				/**
				 * An implementation specific string describing the error that occurred.
				 */
				getMessage(): string;
				/**
				 * A <code>DOMString</code> indicating which related data is expected in <code>relatedData</code>. Users should refer to the specification of the error in order to find its <code>DOMString</code> type and <code>relatedData</code> definitions if any. <p ><b>Note:</b> As an example, <code>Document.normalizeDocument()</code> does generate warnings when the "split-cdata-sections" parameter is in use. Therefore, the method generates a <code>SEVERITY_WARNING</code> with <code>type</code> <code>"cdata-sections-splitted"</code> and the first <code>CDATASection</code> node in document order resulting from the split is returned by the <code>relatedData</code> attribute.
				 */
				getType(): string;
				/**
				 * The related platform dependent exception if any.
				 */
				getRelatedException(): any;
				/**
				 * The related <code>DOMError.type</code> dependent data if any.
				 */
				getRelatedData(): any;
				/**
				 * The location of the error.
				 */
				getLocation(): org.w3c.dom.IDOMLocator;
			}
			export module IDOMError {
				/**
				 * The severity of the error described by the <code>DOMError</code> is warning. A <code>SEVERITY_WARNING</code> will not cause the processing to stop, unless <code>DOMErrorHandler.handleError()</code> returns <code>false</code>.
				 */
				var SEVERITY_WARNING: number;
				/**
				 * The severity of the error described by the <code>DOMError</code> is error. A <code>SEVERITY_ERROR</code> may not cause the processing to stop if the error can be recovered, unless <code>DOMErrorHandler.handleError()</code> returns <code>false</code>.
				 */
				var SEVERITY_ERROR: number;
				/**
				 * The severity of the error described by the <code>DOMError</code> is fatal error. A <code>SEVERITY_FATAL_ERROR</code> will cause the normal processing to stop. The return value of <code>DOMErrorHandler.handleError()</code> is ignored unless the implementation chooses to continue, in which case the behavior becomes undefined.
				 */
				var SEVERITY_FATAL_ERROR: number;
			}
			/**
			 * The <code>DOMConfiguration</code> interface represents the configuration of a document and maintains a table of recognized parameters. Using the configuration, it is possible to change <code>Document.normalizeDocument()</code> behavior, such as replacing the <code>CDATASection</code> nodes with <code>Text</code> nodes or specifying the type of the schema that must be used when the validation of the <code>Document</code> is requested. <code>DOMConfiguration</code> objects are also used in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>DOM Level 3 Load and Save</a>] in the <code>DOMParser</code> and <code>DOMSerializer</code> interfaces.
			 */
			export class DOMConfiguration implements org.w3c.dom.IDOMConfiguration {
				constructor(implementation: org.w3c.dom.IDOMConfiguration);
				/**
				 * Set the value of a parameter.
				 * @param name The name of the parameter to set.
				 * @param value The new value or <code>null</code> if the user wishes to
				 */
				public setParameter(name: string, value: any): void;
				/**
				 * Return the value of a parameter if known.
				 * @param name The name of the parameter.
				 */
				public getParameter(name: string): any;
				/**
				 * Check if setting a parameter to a specific value is supported.
				 * @param name The name of the parameter to check.
				 * @param value An object. if <code>null</code>, the returned value is
				 */
				public canSetParameter(name: string, value: any): boolean;
				/**
				 * The list of the parameters supported by this <code>DOMConfiguration</code> object and for which at least one value can be set by the application. Note that this list can also contain parameter names defined outside this specification.
				 */
				public getParameterNames(): org.w3c.dom.IDOMStringList;
			}
			/**
			 * The <code>Document</code> interface represents the entire HTML or XML document. Conceptually, it is the root of the document tree, and provides the primary access to the document's data.
			 */
			export class Document implements org.w3c.dom.INode, org.w3c.dom.IDocument {
				constructor(implementation: org.w3c.dom.IDocument);
				/**
				 * The Document Type Declaration (see <code>DocumentType</code>) associated with this document. For XML documents without a document type declaration this returns <code>null</code>. For HTML documents, a <code>DocumentType</code> object may be returned, independently of the presence or absence of document type declaration in the HTML document. <br>This provides direct access to the <code>DocumentType</code> node, child node of this <code>Document</code>. This node can be set at document creation time and later changed through the use of child nodes manipulation methods, such as <code>Node.insertBefore</code>, or <code>Node.replaceChild</code>. Note, however, that while some implementations may instantiate different types of <code>Document</code> objects supporting additional features than the "Core", such as "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , based on the <code>DocumentType</code> specified at creation time, changing it afterwards is very unlikely to result in a change of the features supported. DOM Level 3
				 */
				public getDoctype(): org.w3c.dom.IDocumentType;
				/**
				 * The <code>DOMImplementation</code> object that handles this document. A DOM application may use objects from multiple implementations.
				 */
				public getImplementation(): org.w3c.dom.IDOMImplementation;
				/**
				 * This is a convenience attribute that allows direct access to the child node that is the document element of the document.
				 */
				public getDocumentElement(): org.w3c.dom.IElement;
				/**
				 * Creates an element of the type specified. Note that the instance returned implements the <code>Element</code> interface, so attributes can be specified directly on the returned object. <br>In addition, if there are known attributes with default values, <code>Attr</code> nodes representing them are automatically created and attached to the element. <br>To create an element with a qualified name and namespace URI, use the <code>createElementNS</code> method.
				 * @param tagName The name of the element type to instantiate. For XML,
				 */
				public createElement(tagName: string): org.w3c.dom.IElement;
				/**
				 * Creates an empty <code>DocumentFragment</code> object.
				 */
				public createDocumentFragment(): org.w3c.dom.IDocumentFragment;
				/**
				 * Creates a <code>Text</code> node given the specified string.
				 * @param data The data for the node.
				 */
				public createTextNode(data: string): org.w3c.dom.IText;
				/**
				 * Creates a <code>Comment</code> node given the specified string.
				 * @param data The data for the node.
				 */
				public createComment(data: string): org.w3c.dom.IComment;
				/**
				 * Creates a <code>CDATASection</code> node whose value is the specified string.
				 * @param data The data for the <code>CDATASection</code> contents.
				 */
				public createCDATASection(data: string): org.w3c.dom.ICDATASection;
				/**
				 * Creates a <code>ProcessingInstruction</code> node given the specified name and data strings.
				 * @param target The target part of the processing instruction.Unlike
				 * @param data The data for the node.
				 */
				public createProcessingInstruction(target: string, data: string): org.w3c.dom.IProcessingInstruction;
				/**
				 * Creates an <code>Attr</code> of the given name. Note that the <code>Attr</code> instance can then be set on an <code>Element</code> using the <code>setAttributeNode</code> method. <br>To create an attribute with a qualified name and namespace URI, use the <code>createAttributeNS</code> method.
				 * @param name The name of the attribute.
				 */
				public createAttribute(name: string): org.w3c.dom.IAttr;
				/**
				 * Creates an <code>EntityReference</code> object. In addition, if the referenced entity is known, the child list of the <code>EntityReference</code> node is made the same as that of the corresponding <code>Entity</code> node. <p ><b>Note:</b> If any descendant of the <code>Entity</code> node has an unbound namespace prefix, the corresponding descendant of the created <code>EntityReference</code> node is also unbound; (its <code>namespaceURI</code> is <code>null</code>). The DOM Level 2 and 3 do not support any mechanism to resolve namespace prefixes in this case.
				 * @param name The name of the entity to reference.Unlike
				 */
				public createEntityReference(name: string): org.w3c.dom.IEntityReference;
				/**
				 * Returns a <code>NodeList</code> of all the <code>Elements</code> in document order with a given tag name and are contained in the document.
				 * @param tagname The name of the tag to match on. The special value "*"
				 */
				public getElementsByTagName(tagname: string): org.w3c.dom.INodeList;
				/**
				 * Imports a node from another document to this document, without altering or removing the source node from the original document; this method creates a new copy of the source node. The returned node has no parent; (<code>parentNode</code> is <code>null</code>). <br>For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's <code>nodeName</code> and <code>nodeType</code>, plus the attributes related to namespaces (<code>prefix</code>, <code>localName</code>, and <code>namespaceURI</code>). As in the <code>cloneNode</code> operation, the source node is not altered. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Additional information is copied as appropriate to the <code>nodeType</code>, attempting to mirror the behavior expected if a fragment of XML or HTML source was copied from one document to another, recognizing that the two documents may have different DTDs in the XML case. The following list describes the specifics for each type of node. <dl> <dt>ATTRIBUTE_NODE</dt> <dd>The <code>ownerElement</code> attribute is set to <code>null</code> and the <code>specified</code> flag is set to <code>true</code> on the generated <code>Attr</code>. The descendants of the source <code>Attr</code> are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Note that the <code>deep</code> parameter has no effect on <code>Attr</code> nodes; they always carry their children with them when imported.</dd> <dt>DOCUMENT_FRAGMENT_NODE</dt> <dd>If the <code>deep</code> option was set to <code>true</code>, the descendants of the source <code>DocumentFragment</code> are recursively imported and the resulting nodes reassembled under the imported <code>DocumentFragment</code> to form the corresponding subtree. Otherwise, this simply generates an empty <code>DocumentFragment</code>.</dd> <dt>DOCUMENT_NODE</dt> <dd><code>Document</code> nodes cannot be imported.</dd> <dt>DOCUMENT_TYPE_NODE</dt> <dd><code>DocumentType</code> nodes cannot be imported.</dd> <dt>ELEMENT_NODE</dt> <dd><em>Specified</em> attribute nodes of the source element are imported, and the generated <code>Attr</code> nodes are attached to the generated <code>Element</code>. Default attributes are <em>not</em> copied, though if the document being imported into defines default attributes for this element name, those are assigned. If the <code>importNode</code> <code>deep</code> parameter was set to <code>true</code>, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree.</dd> <dt>ENTITY_NODE</dt> <dd><code>Entity</code> nodes can be imported, however in the current release of the DOM the <code>DocumentType</code> is readonly. Ability to add these imported nodes to a <code>DocumentType</code> will be considered for addition to a future release of the DOM.On import, the <code>publicId</code>, <code>systemId</code>, and <code>notationName</code> attributes are copied. If a <code>deep</code> import is requested, the descendants of the the source <code>Entity</code> are recursively imported and the resulting nodes reassembled to form the corresponding subtree.</dd> <dt> ENTITY_REFERENCE_NODE</dt> <dd>Only the <code>EntityReference</code> itself is copied, even if a <code>deep</code> import is requested, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.</dd> <dt>NOTATION_NODE</dt> <dd> <code>Notation</code> nodes can be imported, however in the current release of the DOM the <code>DocumentType</code> is readonly. Ability to add these imported nodes to a <code>DocumentType</code> will be considered for addition to a future release of the DOM.On import, the <code>publicId</code> and <code>systemId</code> attributes are copied. Note that the <code>deep</code> parameter has no effect on this type of nodes since they cannot have any children.</dd> <dt> PROCESSING_INSTRUCTION_NODE</dt> <dd>The imported node copies its <code>target</code> and <code>data</code> values from those of the source node.Note that the <code>deep</code> parameter has no effect on this type of nodes since they cannot have any children.</dd> <dt>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</dt> <dd>These three types of nodes inheriting from <code>CharacterData</code> copy their <code>data</code> and <code>length</code> attributes from those of the source node.Note that the <code>deep</code> parameter has no effect on these types of nodes since they cannot have any children.</dd> </dl>
				 * @param importedNode The node to import.
				 * @param deep If <code>true</code>, recursively import the subtree under
				 */
				public importNode(importedNode: org.w3c.dom.INode, deep: boolean): org.w3c.dom.INode;
				/**
				 * Creates an element of the given qualified name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the element to create.
				 * @param qualifiedName The qualified name of the element type to
				 */
				public createElementNS(namespaceURI: string, qualifiedName: string): org.w3c.dom.IElement;
				/**
				 * Creates an attribute of the given qualified name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to create.
				 * @param qualifiedName The qualified name of the attribute to
				 */
				public createAttributeNS(namespaceURI: string, qualifiedName: string): org.w3c.dom.IAttr;
				/**
				 * Returns a <code>NodeList</code> of all the <code>Elements</code> with a given local name and namespace URI in document order.
				 * @param namespaceURI The namespace URI of the elements to match on. The
				 * @param localName The local name of the elements to match on. The
				 */
				public getElementsByTagNameNS(namespaceURI: string, localName: string): org.w3c.dom.INodeList;
				/**
				 * Returns the <code>Element</code> that has an ID attribute with the given value. If no such element exists, this returns <code>null</code> . If more than one element has an ID attribute with that value, what is returned is undefined. <br> The DOM implementation is expected to use the attribute <code>Attr.isId</code> to determine if an attribute is of type ID. <p ><b>Note:</b> Attributes with the name "ID" or "id" are not of type ID unless so defined.
				 * @param elementId The unique <code>id</code> value for an element.
				 */
				public getElementById(elementId: string): org.w3c.dom.IElement;
				/**
				 * An attribute specifying the encoding used for this document at the time of the parsing. This is <code>null</code> when it is not known, such as when the <code>Document</code> was created in memory. DOM Level 3
				 */
				public getInputEncoding(): string;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the encoding of this document. This is <code>null</code> when unspecified or when it is not known, such as when the <code>Document</code> was created in memory. DOM Level 3
				 */
				public getXmlEncoding(): string;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, whether this document is standalone. This is <code>false</code> when unspecified. <p ><b>Note:</b> No verification is done on the value when setting this attribute. Applications should use <code>Document.normalizeDocument()</code> with the "validate" parameter to verify if the value matches the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-rmd'>validity constraint for standalone document declaration</a> as defined in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM Level 3
				 */
				public getXmlStandalone(): boolean;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, whether this document is standalone. This is <code>false</code> when unspecified. <p ><b>Note:</b> No verification is done on the value when setting this attribute. Applications should use <code>Document.normalizeDocument()</code> with the "validate" parameter to verify if the value matches the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-rmd'>validity constraint for standalone document declaration</a> as defined in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOMException NOT_SUPPORTED_ERR: Raised if this document does not support the "XML" feature. DOM Level 3
				 */
				public setXmlStandalone(xmlStandalone: boolean): void;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is <code>"1.0"</code>. If this document does not support the "XML" feature, the value is always <code>null</code>. Changing this attribute will affect methods that check for invalid characters in XML names. Application should invoke <code>Document.normalizeDocument()</code> in order to check for invalid characters in the <code>Node</code>s that are already part of this <code>Document</code>. <br> DOM applications may use the <code>DOMImplementation.hasFeature(feature, version)</code> method with parameter values "XMLVersion" and "1.0" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM applications may use the same method with parameter values "XMLVersion" and "1.1" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. In both cases, in order to support XML, an implementation must also support the "XML" feature defined in this specification. <code>Document</code> objects supporting a version of the "XMLVersion" feature must not raise a <code>NOT_SUPPORTED_ERR</code> exception for the same version number when using <code>Document.xmlVersion</code>. DOM Level 3
				 */
				public getXmlVersion(): string;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is <code>"1.0"</code>. If this document does not support the "XML" feature, the value is always <code>null</code>. Changing this attribute will affect methods that check for invalid characters in XML names. Application should invoke <code>Document.normalizeDocument()</code> in order to check for invalid characters in the <code>Node</code>s that are already part of this <code>Document</code>. <br> DOM applications may use the <code>DOMImplementation.hasFeature(feature, version)</code> method with parameter values "XMLVersion" and "1.0" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM applications may use the same method with parameter values "XMLVersion" and "1.1" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. In both cases, in order to support XML, an implementation must also support the "XML" feature defined in this specification. <code>Document</code> objects supporting a version of the "XMLVersion" feature must not raise a <code>NOT_SUPPORTED_ERR</code> exception for the same version number when using <code>Document.xmlVersion</code>. DOMException NOT_SUPPORTED_ERR: Raised if the version is set to a value that is not supported by this <code>Document</code> or if this document does not support the "XML" feature. DOM Level 3
				 */
				public setXmlVersion(xmlVersion: string): void;
				/**
				 * An attribute specifying whether error checking is enforced or not. When set to <code>false</code>, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any <code>DOMException</code> on DOM operations or report errors while using <code>Document.normalizeDocument()</code>. In case of error, the behavior is undefined. This attribute is <code>true</code> by default. DOM Level 3
				 */
				public getStrictErrorChecking(): boolean;
				/**
				 * An attribute specifying whether error checking is enforced or not. When set to <code>false</code>, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any <code>DOMException</code> on DOM operations or report errors while using <code>Document.normalizeDocument()</code>. In case of error, the behavior is undefined. This attribute is <code>true</code> by default. DOM Level 3
				 */
				public setStrictErrorChecking(strictErrorChecking: boolean): void;
				/**
				 * The location of the document or <code>null</code> if undefined or if the <code>Document</code> was created using <code>DOMImplementation.createDocument</code>. No lexical checking is performed when setting this attribute; this could result in a <code>null</code> value returned when using <code>Node.baseURI</code> . <br> Beware that when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the href attribute of the HTML BASE element takes precedence over this attribute when computing <code>Node.baseURI</code>. DOM Level 3
				 */
				public getDocumentURI(): string;
				/**
				 * The location of the document or <code>null</code> if undefined or if the <code>Document</code> was created using <code>DOMImplementation.createDocument</code>. No lexical checking is performed when setting this attribute; this could result in a <code>null</code> value returned when using <code>Node.baseURI</code> . <br> Beware that when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the href attribute of the HTML BASE element takes precedence over this attribute when computing <code>Node.baseURI</code>. DOM Level 3
				 */
				public setDocumentURI(documentURI: string): void;
				/**
				 * Attempts to adopt a node from another document to this document. If supported, it changes the <code>ownerDocument</code> of the source node, its children, as well as the attached attribute nodes if there are any. If the source node has a parent it is first removed from the child list of its parent. This effectively allows moving a subtree from one document to another (unlike <code>importNode()</code> which create a copy of the source node instead of moving it). When it fails, applications should use <code>Document.importNode()</code> instead. Note that if the adopted node is already part of this document (i.e. the source and target document are the same), this method still has the effect of removing the source node from the child list of its parent, if any. The following list describes the specifics for each type of node. <dl> <dt>ATTRIBUTE_NODE</dt> <dd>The <code>ownerElement</code> attribute is set to <code>null</code> and the <code>specified</code> flag is set to <code>true</code> on the adopted <code>Attr</code>. The descendants of the source <code>Attr</code> are recursively adopted.</dd> <dt>DOCUMENT_FRAGMENT_NODE</dt> <dd>The descendants of the source node are recursively adopted.</dd> <dt>DOCUMENT_NODE</dt> <dd> <code>Document</code> nodes cannot be adopted.</dd> <dt>DOCUMENT_TYPE_NODE</dt> <dd> <code>DocumentType</code> nodes cannot be adopted.</dd> <dt>ELEMENT_NODE</dt> <dd><em>Specified</em> attribute nodes of the source element are adopted. Default attributes are discarded, though if the document being adopted into defines default attributes for this element name, those are assigned. The descendants of the source element are recursively adopted.</dd> <dt>ENTITY_NODE</dt> <dd> <code>Entity</code> nodes cannot be adopted.</dd> <dt>ENTITY_REFERENCE_NODE</dt> <dd>Only the <code>EntityReference</code> node itself is adopted, the descendants are discarded, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.</dd> <dt>NOTATION_NODE</dt> <dd><code>Notation</code> nodes cannot be adopted.</dd> <dt>PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</dt> <dd>These nodes can all be adopted. No specifics.</dd> </dl> <p ><b>Note:</b> Since it does not create new nodes unlike the <code>Document.importNode()</code> method, this method does not raise an <code>INVALID_CHARACTER_ERR</code> exception, and applications should use the <code>Document.normalizeDocument()</code> method to check if an imported name is not an XML name according to the XML version in use.
				 * @param source The node to move into this document.
				 */
				public adoptNode(source: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * The configuration used when <code>Document.normalizeDocument()</code> is invoked. DOM Level 3
				 */
				public getDomConfig(): org.w3c.dom.IDOMConfiguration;
				/**
				 * This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form. As a consequence, this method updates the replacement tree of <code>EntityReference</code> nodes and normalizes <code>Text</code> nodes, as defined in the method <code>Node.normalize()</code>. <br> Otherwise, the actual result depends on the features being set on the <code>Document.domConfig</code> object and governing what operations actually take place. Noticeably this method could also make the document namespace well-formed according to the algorithm described in , check the character normalization, remove the <code>CDATASection</code> nodes, etc. See <code>DOMConfiguration</code> for details. <pre>// Keep in the document the information defined // in the XML Information Set (Java example) DOMConfiguration docConfig = myDocument.getDomConfig(); docConfig.setParameter("infoset", Boolean.TRUE); myDocument.normalizeDocument();</pre>
				 */
				public normalizeDocument(): void;
				/**
				 * Rename an existing node of type <code>ELEMENT_NODE</code> or <code>ATTRIBUTE_NODE</code>. <br>When possible this simply changes the name of the given node, otherwise this creates a new node with the specified name and replaces the existing node with the new node as described below. <br>If simply changing the name of the given node is not possible, the following operations are performed: a new node is created, any registered event listener is registered on the new node, any user data attached to the old node is removed from that node, the old node is removed from its parent if it has one, the children are moved to the new node, if the renamed node is an <code>Element</code> its attributes are moved to the new node, the new node is inserted at the position the old node used to have in its parent's child nodes list if it has one, the user data that was attached to the old node is attached to the new node. <br>When the node being renamed is an <code>Element</code> only the specified attributes are moved, default attributes originated from the DTD are updated according to the new element name. In addition, the implementation may update default attributes from other schemas. Applications should use <code>Document.normalizeDocument()</code> to guarantee these attributes are up-to-date. <br>When the node being renamed is an <code>Attr</code> that is attached to an <code>Element</code>, the node is first removed from the <code>Element</code> attributes map. Then, once renamed, either by modifying the existing node or creating a new one as described above, it is put back. <br>In addition, <ul> <li> a user data event <code>NODE_RENAMED</code> is fired, </li> <li> when the implementation supports the feature "MutationNameEvents", each mutation operation involved in this method fires the appropriate event, and in the end the event { <code>http://www.w3.org/2001/xml-events</code>, <code>DOMElementNameChanged</code>} or { <code>http://www.w3.org/2001/xml-events</code>, <code>DOMAttributeNameChanged</code>} is fired. </li> </ul>
				 * @param n The node to rename.
				 * @param namespaceURI The new namespace URI.
				 * @param qualifiedName The new qualified name.
				 */
				public renameNode(n: org.w3c.dom.INode, namespaceURI: string, qualifiedName: string): org.w3c.dom.INode;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>CharacterData</code> interface extends Node with a set of attributes and methods for accessing character data in the DOM. For clarity this set is defined here rather than on each object that uses these attributes and methods. No DOM objects correspond directly to <code>CharacterData</code>, though <code>Text</code> and others do inherit the interface from it. All <code>offsets</code> in this interface start from <code>0</code>.
			 */
			interface ICharacterData extends org.w3c.dom.INode {
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>Attr</code> interface represents an attribute in an <code>Element</code> object. Typically the allowable values for the attribute are defined in a schema associated with the document.
			 */
			export class Attr implements org.w3c.dom.INode, org.w3c.dom.IAttr {
				constructor(implementation: org.w3c.dom.IAttr);
				/**
				 * Returns the name of this attribute. If <code>Node.localName</code> is different from <code>null</code>, this attribute is a qualified name.
				 */
				public getName(): string;
				/**
				 * <code>True</code> if this attribute was explicitly given a value in the instance document, <code>false</code> otherwise. If the application changed the value of this attribute node (even if it ends up having the same value as the default value) then it is set to <code>true</code>. The implementation may handle attributes with default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date.
				 */
				public getSpecified(): boolean;
				/**
				 * On retrieval, the value of the attribute is returned as a string. Character and general entity references are replaced with their values. See also the method <code>getAttribute</code> on the <code>Element</code> interface. <br>On setting, this creates a <code>Text</code> node with the unparsed contents of the string, i.e. any characters that an XML processor would recognize as markup are instead treated as literal text. See also the method <code>Element.setAttribute()</code>. <br> Some specialized implementations, such as some [<a href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'>SVG 1.1</a>] implementations, may do normalization automatically, even after mutation; in such case, the value on retrieval may differ from the value on setting.
				 */
				public getValue(): string;
				/**
				 * On retrieval, the value of the attribute is returned as a string. Character and general entity references are replaced with their values. See also the method <code>getAttribute</code> on the <code>Element</code> interface. <br>On setting, this creates a <code>Text</code> node with the unparsed contents of the string, i.e. any characters that an XML processor would recognize as markup are instead treated as literal text. See also the method <code>Element.setAttribute()</code>. <br> Some specialized implementations, such as some [<a href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'>SVG 1.1</a>] implementations, may do normalization automatically, even after mutation; in such case, the value on retrieval may differ from the value on setting. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				public setValue(value: string): void;
				/**
				 * The <code>Element</code> node this attribute is attached to or <code>null</code> if this attribute is not in use. DOM Level 2
				 */
				public getOwnerElement(): org.w3c.dom.IElement;
				/**
				 * The type information associated with this attribute. While the type information contained in this attribute is guarantee to be correct after loading the document or invoking <code>Document.normalizeDocument()</code>, <code>schemaTypeInfo</code> may not be reliable if the node was moved. DOM Level 3
				 */
				public getSchemaTypeInfo(): org.w3c.dom.ITypeInfo;
				/**
				 * Returns whether this attribute is known to be of type ID (i.e. to contain an identifier for its owner element) or not. When it is and its value is unique, the <code>ownerElement</code> of this attribute can be retrieved using the method <code>Document.getElementById</code> . The implementation could use several ways to determine if an attribute node is known to contain an identifier: <ul> <li> If validation occurred using an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] while loading the document or while invoking <code>Document.normalizeDocument()</code>, the post-schema-validation infoset contributions (PSVI contributions) values are used to determine if this attribute is a schema-determined ID attribute using the <a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/#term-sdi'> schema-determined ID</a> definition in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] . </li> <li> If validation occurred using a DTD while loading the document or while invoking <code>Document.normalizeDocument()</code>, the infoset <b>[type definition]</b> value is used to determine if this attribute is a DTD-determined ID attribute using the <a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/#term-ddi'> DTD-determined ID</a> definition in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] . </li> <li> from the use of the methods <code>Element.setIdAttribute()</code>, <code>Element.setIdAttributeNS()</code>, or <code>Element.setIdAttributeNode()</code>, i.e. it is an user-determined ID attribute; <p ><b>Note:</b> XPointer framework (see section 3.2 in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] ) consider the DOM user-determined ID attribute as being part of the XPointer externally-determined ID definition. </li> <li> using mechanisms that are outside the scope of this specification, it is then an externally-determined ID attribute. This includes using schema languages different from XML schema and DTD. </li> </ul> <br> If validation occurred while invoking <code>Document.normalizeDocument()</code>, all user-determined ID attributes are reset and all attribute nodes ID information are then reevaluated in accordance to the schema used. As a consequence, if the <code>Attr.schemaTypeInfo</code> attribute contains an ID type, <code>isId</code> will always return true. DOM Level 3
				 */
				public isId(): boolean;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * <code>DocumentFragment</code> is a "lightweight" or "minimal" <code>Document</code> object. It is very common to want to be able to extract a portion of a document's tree or to create a new fragment of a document. Imagine implementing a user command like cut or rearranging a document by moving fragments around. It is desirable to have an object which can hold such fragments and it is quite natural to use a Node for this purpose. While it is true that a <code>Document</code> object could fulfill this role, a <code>Document</code> object can potentially be a heavyweight object, depending on the underlying implementation. What is really needed for this is a very lightweight object. <code>DocumentFragment</code> is such an object.
			 */
			interface IDocumentFragment extends org.w3c.dom.INode {
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. The only delimiter that is recognized in a CDATA section is the "]]&gt;" string that ends the CDATA section. CDATA sections cannot be nested. Their primary purpose is for including material such as XML fragments, without needing to escape all the delimiters.
			 */
			export class CDATASection implements org.w3c.dom.IText, org.w3c.dom.ICDATASection {
				constructor(implementation: org.w3c.dom.ICDATASection);
				/**
				 * Breaks this node into two nodes at the specified <code>offset</code>, keeping both in the tree as siblings. After being split, this node will contain all the content up to the <code>offset</code> point. A new node of the same type, which contains all the content at and after the <code>offset</code> point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the <code>offset</code> is equal to the length of this node, the new node has no data.
				 * @param offset The 16-bit unit offset at which to split, starting from
				 */
				splitText(offset: number): org.w3c.dom.IText;
				/**
				 * Returns whether this text node contains <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'> element content whitespace</a>, often abusively called "ignorable whitespace". The text node is determined to contain whitespace in element content during the load of the document or if validation occurs while using <code>Document.normalizeDocument()</code>. DOM Level 3
				 */
				isElementContentWhitespace(): boolean;
				/**
				 * Returns all text of <code>Text</code> nodes logically-adjacent text nodes to this node, concatenated in document order. <br>For instance, in the example below <code>wholeText</code> on the <code>Text</code> node that contains "bar" returns "barfoo", while on the <code>Text</code> node that contains "foo" it returns "barfoo". DOM Level 3
				 */
				getWholeText(): string;
				/**
				 * Replaces the text of the current node and all logically-adjacent text nodes with the specified text. All logically-adjacent text nodes are removed including the current node unless it was the recipient of the replacement text. <br>This method returns the node which received the replacement text. The returned node is: <ul> <li><code>null</code>, when the replacement text is the empty string; </li> <li>the current node, except when the current node is read-only; </li> <li> a new <code>Text</code> node of the same type ( <code>Text</code> or <code>CDATASection</code>) as the current node inserted at the location of the replacement. </li> </ul> <br>For instance, in the above example calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" with "yo" in argument results in the following: <br>Where the nodes to be removed are read-only descendants of an <code>EntityReference</code>, the <code>EntityReference</code> must be removed instead of the read-only nodes. If any <code>EntityReference</code> to be removed has descendants that are not <code>EntityReference</code>, <code>Text</code>, or <code>CDATASection</code> nodes, the <code>replaceWholeText</code> method must fail before performing any modification of the document, raising a <code>DOMException</code> with the code <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br>For instance, in the example below calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" fails, because the <code>EntityReference</code> node "ent" contains an <code>Element</code> node which cannot be removed.
				 * @param content The content of the replacing <code>Text</code> node.
				 */
				replaceWholeText(content: string): org.w3c.dom.IText;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * This interface permits a DOM implementer to supply one or more implementations, based upon requested features and versions, as specified in . Each implemented <code>DOMImplementationSource</code> object is listed in the binding-specific list of available sources so that its <code>DOMImplementation</code> objects are made available.
			 */
			interface IDOMImplementationSource {
				/**
				 * A method to request the first DOM implementation that supports the specified features.
				 * @param features A string that specifies which features and versions
				 */
				getDOMImplementation(features: string): org.w3c.dom.IDOMImplementation;
				/**
				 * A method to request a list of DOM implementations that support the specified features and versions, as specified in .
				 * @param features A string that specifies which features and versions
				 */
				getDOMImplementationList(features: string): org.w3c.dom.IDOMImplementationList;
			}
			/**
			 * This interface represents a notation declared in the DTD. A notation either declares, by name, the format of an unparsed entity (see <a href='http://www.w3.org/TR/2004/REC-xml-20040204#Notations'>section 4.7</a> of the XML 1.0 specification [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]), or is used for formal declaration of processing instruction targets (see <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-pi'>section 2.6</a> of the XML 1.0 specification [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]). The <code>nodeName</code> attribute inherited from <code>Node</code> is set to the declared name of the notation.
			 */
			interface INotation extends org.w3c.dom.INode {
				/**
				 * The public identifier of this notation. If the public identifier was not specified, this is <code>null</code>.
				 */
				getPublicId(): string;
				/**
				 * The system identifier of this notation. If the system identifier was not specified, this is <code>null</code>. This may be an absolute URI or not.
				 */
				getSystemId(): string;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>DOMImplementation</code> interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.
			 */
			interface IDOMImplementation {
				/**
				 * Test if the DOM implementation implements a specific feature and version, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				hasFeature(feature: string, version: string): boolean;
				/**
				 * Creates an empty <code>DocumentType</code> node. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur..
				 * @param qualifiedName The qualified name of the document type to be
				 * @param publicId The external subset public identifier.
				 * @param systemId The external subset system identifier.
				 */
				createDocumentType(qualifiedName: string, publicId: string, systemId: string): org.w3c.dom.IDocumentType;
				/**
				 * Creates a DOM Document object of the specified type with its document element. <br>Note that based on the <code>DocumentType</code> given to create the document, the implementation may instantiate specialized <code>Document</code> objects that support additional features than the "Core", such as "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] . On the other hand, setting the <code>DocumentType</code> after the document was created makes this very unlikely to happen. Alternatively, specialized <code>Document</code> creation methods, such as <code>createHTMLDocument</code> [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , can be used to obtain specific types of <code>Document</code> objects.
				 * @param namespaceURI The namespace URI of the document element to
				 * @param qualifiedName The qualified name of the document element to be
				 * @param doctype The type of document to be created or <code>null</code>.
				 */
				createDocument(namespaceURI: string, qualifiedName: string, doctype: org.w3c.dom.IDocumentType): org.w3c.dom.IDocument;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>DOMImplementation</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
			}
			/**
			 * When associating an object to a key on a node using <code>Node.setUserData()</code> the application can provide a handler that gets called when the node the object is associated to is being cloned, imported, or renamed. This can be used by the application to implement various behaviors regarding the data it associates to the DOM nodes. This interface defines that handler.
			 */
			interface IUserDataHandler {
				/**
				 * This method is called whenever the node for which this handler is registered is imported or cloned. <br> DOM applications must not raise exceptions in a <code>UserDataHandler</code>. The effect of throwing exceptions from the handler is DOM implementation dependent.
				 * @param operation Specifies the type of operation that is being
				 * @param key Specifies the key for which this handler is being called.
				 * @param data Specifies the data for which this handler is being called.
				 * @param src Specifies the node being cloned, adopted, imported, or
				 * @param dst Specifies the node newly created if any, or
				 */
				handle(operation: number, key: string, data: any, src: org.w3c.dom.INode, dst: org.w3c.dom.INode): void;
			}
			export module IUserDataHandler {
				/**
				 * The node is cloned, using <code>Node.cloneNode()</code>.
				 */
				var NODE_CLONED: number;
				/**
				 * The node is imported, using <code>Document.importNode()</code>.
				 */
				var NODE_IMPORTED: number;
				/**
				 * The node is deleted. <p ><b>Note:</b> This may not be supported or may not be reliable in certain environments, such as Java, where the implementation has no real control over when objects are actually deleted.
				 */
				var NODE_DELETED: number;
				/**
				 * The node is renamed, using <code>Document.renameNode()</code>.
				 */
				var NODE_RENAMED: number;
				/**
				 * The node is adopted, using <code>Document.adoptNode()</code>.
				 */
				var NODE_ADOPTED: number;
			}
			/**
			 * The <code>Element</code> interface represents an element in an HTML or XML document. Elements may have attributes associated with them; since the <code>Element</code> interface inherits from <code>Node</code>, the generic <code>Node</code> interface attribute <code>attributes</code> may be used to retrieve the set of all attributes for an element. There are methods on the <code>Element</code> interface to retrieve either an <code>Attr</code> object by name or an attribute value by name. In XML, where an attribute value may contain entity references, an <code>Attr</code> object should be retrieved to examine the possibly fairly complex sub-tree representing the attribute value. On the other hand, in HTML, where all attributes have simple string values, methods to directly access an attribute value can safely be used as a convenience. <p ><b>Note:</b> In DOM Level 2, the method <code>normalize</code> is inherited from the <code>Node</code> interface where it was moved.
			 */
			interface IElement extends org.w3c.dom.INode {
				/**
				 * The name of the element. If <code>Node.localName</code> is different from <code>null</code>, this attribute is a qualified name. For example, in: <pre> &lt;elementExample id="demo"&gt; ... &lt;/elementExample&gt; , </pre> <code>tagName</code> has the value <code>"elementExample"</code>. Note that this is case-preserving in XML, as are all of the operations of the DOM. The HTML DOM returns the <code>tagName</code> of an HTML element in the canonical uppercase form, regardless of the case in the source HTML document.
				 */
				getTagName(): string;
				/**
				 * Retrieves an attribute value by name.
				 * @param name The name of the attribute to retrieve.
				 */
				getAttribute(name: string): string;
				/**
				 * Adds a new attribute. If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string; it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an <code>Attr</code> node plus any <code>Text</code> and <code>EntityReference</code> nodes, build the appropriate subtree, and use <code>setAttributeNode</code> to assign it as the value of an attribute. <br>To set an attribute with a qualified name and namespace URI, use the <code>setAttributeNS</code> method.
				 * @param name The name of the attribute to create or alter.
				 * @param value Value to set in string form.
				 */
				setAttribute(name: string, value: string): void;
				/**
				 * Removes an attribute by name. If a default value for the removed attribute is defined in the DTD, a new attribute immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date. <br>If no attribute with this name is found, this method has no effect. <br>To remove an attribute by local name and namespace URI, use the <code>removeAttributeNS</code> method.
				 * @param name The name of the attribute to remove.
				 */
				removeAttribute(name: string): void;
				/**
				 * Retrieves an attribute node by name. <br>To retrieve an attribute node by qualified name and namespace URI, use the <code>getAttributeNodeNS</code> method.
				 * @param name The name (<code>nodeName</code>) of the attribute to
				 */
				getAttributeNode(name: string): org.w3c.dom.IAttr;
				/**
				 * Adds a new attribute node. If an attribute with that name ( <code>nodeName</code>) is already present in the element, it is replaced by the new one. Replacing an attribute node by itself has no effect. <br>To add a new attribute node with a qualified name and namespace URI, use the <code>setAttributeNodeNS</code> method.
				 * @param newAttr The <code>Attr</code> node to add to the attribute list.
				 */
				setAttributeNode(newAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
				/**
				 * Removes the specified attribute node. If a default value for the removed <code>Attr</code> node is defined in the DTD, a new node immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date.
				 * @param oldAttr The <code>Attr</code> node to remove from the attribute
				 */
				removeAttributeNode(oldAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
				/**
				 * Returns a <code>NodeList</code> of all descendant <code>Elements</code> with a given tag name, in document order.
				 * @param name The name of the tag to match on. The special value "*"
				 */
				getElementsByTagName(name: string): org.w3c.dom.INodeList;
				/**
				 * Retrieves an attribute value by local name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to retrieve.
				 * @param localName The local name of the attribute to retrieve.
				 */
				getAttributeNS(namespaceURI: string, localName: string): string;
				/**
				 * Adds a new attribute. If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the <code>qualifiedName</code>, and its value is changed to be the <code>value</code> parameter. This value is a simple string; it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an <code>Attr</code> node plus any <code>Text</code> and <code>EntityReference</code> nodes, build the appropriate subtree, and use <code>setAttributeNodeNS</code> or <code>setAttributeNode</code> to assign it as the value of an attribute. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to create or
				 * @param qualifiedName The qualified name of the attribute to create or
				 * @param value The value to set in string form.
				 */
				setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;
				/**
				 * Removes an attribute by local name and namespace URI. If a default value for the removed attribute is defined in the DTD, a new attribute immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date. <br>If no attribute with this local name and namespace URI is found, this method has no effect. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to remove.
				 * @param localName The local name of the attribute to remove.
				 */
				removeAttributeNS(namespaceURI: string, localName: string): void;
				/**
				 * Retrieves an <code>Attr</code> node by local name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to retrieve.
				 * @param localName The local name of the attribute to retrieve.
				 */
				getAttributeNodeNS(namespaceURI: string, localName: string): org.w3c.dom.IAttr;
				/**
				 * Adds a new attribute. If an attribute with that local name and that namespace URI is already present in the element, it is replaced by the new one. Replacing an attribute node by itself has no effect. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param newAttr The <code>Attr</code> node to add to the attribute list.
				 */
				setAttributeNodeNS(newAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
				/**
				 * Returns a <code>NodeList</code> of all the descendant <code>Elements</code> with a given local name and namespace URI in document order.
				 * @param namespaceURI The namespace URI of the elements to match on. The
				 * @param localName The local name of the elements to match on. The
				 */
				getElementsByTagNameNS(namespaceURI: string, localName: string): org.w3c.dom.INodeList;
				/**
				 * Returns <code>true</code> when an attribute with a given name is specified on this element or has a default value, <code>false</code> otherwise.
				 * @param name The name of the attribute to look for.
				 */
				hasAttribute(name: string): boolean;
				/**
				 * Returns <code>true</code> when an attribute with a given local name and namespace URI is specified on this element or has a default value, <code>false</code> otherwise. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to look for.
				 * @param localName The local name of the attribute to look for.
				 */
				hasAttributeNS(namespaceURI: string, localName: string): boolean;
				/**
				 * The type information associated with this element. DOM Level 3
				 */
				getSchemaTypeInfo(): org.w3c.dom.ITypeInfo;
				/**
				 * If the parameter <code>isId</code> is <code>true</code>, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of <code>Attr.isId</code> and the behavior of <code>Document.getElementById</code>, but does not change any schema that may be in use, in particular this does not affect the <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code> node. Use the value <code>false</code> for the parameter <code>isId</code> to undeclare an attribute for being a user-determined ID attribute. <br> To specify an attribute by local name and namespace URI, use the <code>setIdAttributeNS</code> method.
				 * @param name The name of the attribute.
				 * @param isId Whether the attribute is a of type ID.
				 */
				setIdAttribute(name: string, isId: boolean): void;
				/**
				 * If the parameter <code>isId</code> is <code>true</code>, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of <code>Attr.isId</code> and the behavior of <code>Document.getElementById</code>, but does not change any schema that may be in use, in particular this does not affect the <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code> node. Use the value <code>false</code> for the parameter <code>isId</code> to undeclare an attribute for being a user-determined ID attribute.
				 * @param namespaceURI The namespace URI of the attribute.
				 * @param localName The local name of the attribute.
				 * @param isId Whether the attribute is a of type ID.
				 */
				setIdAttributeNS(namespaceURI: string, localName: string, isId: boolean): void;
				/**
				 * If the parameter <code>isId</code> is <code>true</code>, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of <code>Attr.isId</code> and the behavior of <code>Document.getElementById</code>, but does not change any schema that may be in use, in particular this does not affect the <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code> node. Use the value <code>false</code> for the parameter <code>isId</code> to undeclare an attribute for being a user-determined ID attribute.
				 * @param idAttr The attribute node.
				 * @param isId Whether the attribute is a of type ID.
				 */
				setIdAttributeNode(idAttr: org.w3c.dom.IAttr, isId: boolean): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * This interface represents a known entity, either parsed or unparsed, in an XML document. Note that this models the entity itself <em>not</em> the entity declaration.
			 */
			interface IEntity extends org.w3c.dom.INode {
				/**
				 * The public identifier associated with the entity if specified, and <code>null</code> otherwise.
				 */
				getPublicId(): string;
				/**
				 * The system identifier associated with the entity if specified, and <code>null</code> otherwise. This may be an absolute URI or not.
				 */
				getSystemId(): string;
				/**
				 * For unparsed entities, the name of the notation for the entity. For parsed entities, this is <code>null</code>.
				 */
				getNotationName(): string;
				/**
				 * An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity. This is <code>null</code> if it an entity from the internal subset or if it is not known. DOM Level 3
				 */
				getInputEncoding(): string;
				/**
				 * An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity. This is <code>null</code> otherwise. DOM Level 3
				 */
				getXmlEncoding(): string;
				/**
				 * An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity. This is <code>null</code> otherwise. DOM Level 3
				 */
				getXmlVersion(): string;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>NodeList</code> interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. <code>NodeList</code> objects in the DOM are live.
			 */
			export class NodeList implements org.w3c.dom.INodeList {
				constructor(implementation: org.w3c.dom.INodeList);
				/**
				 * Returns the <code>index</code>th item in the collection. If <code>index</code> is greater than or equal to the number of nodes in the list, this returns <code>null</code>.
				 * @param index Index into the collection.
				 */
				public item(index: number): org.w3c.dom.INode;
				/**
				 * The number of nodes in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				public getLength(): number;
			}
			/**
			 * <code>DOMLocator</code> is an interface that describes a location (e.g. where an error occurred).
			 */
			export class DOMLocator implements org.w3c.dom.IDOMLocator {
				constructor(implementation: org.w3c.dom.IDOMLocator);
				/**
				 * The line number this locator is pointing to, or <code>-1</code> if there is no column number available.
				 */
				public getLineNumber(): number;
				/**
				 * The column number this locator is pointing to, or <code>-1</code> if there is no column number available.
				 */
				public getColumnNumber(): number;
				/**
				 * The byte offset into the input source this locator is pointing to or <code>-1</code> if there is no byte offset available.
				 */
				public getByteOffset(): number;
				/**
				 * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], offset into the input source this locator is pointing to or <code>-1</code> if there is no UTF-16 offset available.
				 */
				public getUtf16Offset(): number;
				/**
				 * The node this locator is pointing to, or <code>null</code> if no node is available.
				 */
				public getRelatedNode(): org.w3c.dom.INode;
				/**
				 * The URI this locator is pointing to, or <code>null</code> if no URI is available.
				 */
				public getUri(): string;
			}
			/**
			 * The <code>TypeInfo</code> interface represents a type referenced from <code>Element</code> or <code>Attr</code> nodes, specified in the schemas associated with the document. The type is a pair of a namespace URI and name properties, and depends on the document's schema.
			 */
			export class TypeInfo implements org.w3c.dom.ITypeInfo {
				constructor(implementation: org.w3c.dom.ITypeInfo);
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the derivation by <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-typeRestriction'> restriction</a> if complex types are involved, or a <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-restriction'> restriction</a> if simple types are involved. <br> The reference type definition is derived by restriction from the other type definition if the other type definition is the same as the reference type definition, or if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and all the <em>derivation methods</em> involved are restriction.
				 */
				static DERIVATION_RESTRICTION: number;
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the derivation by <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-typeExtension'> extension</a>. <br> The reference type definition is derived by extension from the other type definition if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and at least one of the <em>derivation methods</em> involved is an extension.
				 */
				static DERIVATION_EXTENSION: number;
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-union'> union</a> if simple types are involved. <br> The reference type definition is derived by union from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by <code>DERIVATION_RESTRICTION</code> or <code>DERIVATION_EXTENSION</code>, T2 is derived from the other type definition by <code>DERIVATION_RESTRICTION</code>, T1 has {variety} <em>union</em>, and one of the {member type definitions} is T2. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.
				 */
				static DERIVATION_UNION: number;
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-list'>list</a>. <br> The reference type definition is derived by list from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by <code>DERIVATION_RESTRICTION</code> or <code>DERIVATION_EXTENSION</code>, T2 is derived from the other type definition by <code>DERIVATION_RESTRICTION</code>, T1 has {variety} <em>list</em>, and T2 is the {item type definition}. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.
				 */
				static DERIVATION_LIST: number;
				/**
				 * The name of a type declared for the associated element or attribute, or <code>null</code> if unknown.
				 */
				public getTypeName(): string;
				/**
				 * The namespace of the type declared for the associated element or attribute or <code>null</code> if the element does not have declaration or if no namespace information is available.
				 */
				public getTypeNamespace(): string;
				/**
				 * This method returns if there is a derivation between the reference type definition, i.e. the <code>TypeInfo</code> on which the method is being called, and the other type definition, i.e. the one passed as parameters.
				 * @param typeNamespaceArg the namespace of the other type definition.
				 * @param typeNameArg the name of the other type definition.
				 * @param derivationMethod the type of derivation and conditions applied
				 */
				public isDerivedFrom(typeNamespaceArg: string, typeNameArg: string, derivationMethod: number): boolean;
			}
			/**
			 * The <code>CharacterData</code> interface extends Node with a set of attributes and methods for accessing character data in the DOM. For clarity this set is defined here rather than on each object that uses these attributes and methods. No DOM objects correspond directly to <code>CharacterData</code>, though <code>Text</code> and others do inherit the interface from it. All <code>offsets</code> in this interface start from <code>0</code>.
			 */
			export class CharacterData implements org.w3c.dom.INode, org.w3c.dom.ICharacterData {
				constructor(implementation: org.w3c.dom.ICharacterData);
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				public getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				public setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				public getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				public substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				public appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				public insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				public deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				public replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>ProcessingInstruction</code> interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document.
			 */
			interface IProcessingInstruction extends org.w3c.dom.INode {
				/**
				 * The target of this processing instruction. XML defines this as being the first token following the markup that begins the processing instruction.
				 */
				getTarget(): string;
				/**
				 * The content of this processing instruction. This is from the first non white space character after the target to the character immediately preceding the <code>?&gt;</code>.
				 */
				getData(): string;
				/**
				 * The content of this processing instruction. This is from the first non white space character after the target to the character immediately preceding the <code>?&gt;</code>. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>DOMImplementationList</code> interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. The items in the <code>DOMImplementationList</code> are accessible via an integral index, starting from 0.
			 */
			interface IDOMImplementationList {
				/**
				 * Returns the <code>index</code>th item in the collection. If <code>index</code> is greater than or equal to the number of <code>DOMImplementation</code>s in the list, this returns <code>null</code>.
				 * @param index Index into the collection.
				 */
				item(index: number): org.w3c.dom.IDOMImplementation;
				/**
				 * The number of <code>DOMImplementation</code>s in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				getLength(): number;
			}
			/**
			 * The <code>Text</code> interface inherits from <code>CharacterData</code> and represents the textual content (termed <a href='http://www.w3.org/TR/2004/REC-xml-20040204#syntax'>character data</a> in XML) of an <code>Element</code> or <code>Attr</code>. If there is no markup inside an element's content, the text is contained in a single object implementing the <code>Text</code> interface that is the only child of the element. If there is markup, it is parsed into the information items (elements, comments, etc.) and <code>Text</code> nodes that form the list of children of the element.
			 */
			interface IText extends org.w3c.dom.ICharacterData {
				/**
				 * Breaks this node into two nodes at the specified <code>offset</code>, keeping both in the tree as siblings. After being split, this node will contain all the content up to the <code>offset</code> point. A new node of the same type, which contains all the content at and after the <code>offset</code> point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the <code>offset</code> is equal to the length of this node, the new node has no data.
				 * @param offset The 16-bit unit offset at which to split, starting from
				 */
				splitText(offset: number): org.w3c.dom.IText;
				/**
				 * Returns whether this text node contains <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'> element content whitespace</a>, often abusively called "ignorable whitespace". The text node is determined to contain whitespace in element content during the load of the document or if validation occurs while using <code>Document.normalizeDocument()</code>. DOM Level 3
				 */
				isElementContentWhitespace(): boolean;
				/**
				 * Returns all text of <code>Text</code> nodes logically-adjacent text nodes to this node, concatenated in document order. <br>For instance, in the example below <code>wholeText</code> on the <code>Text</code> node that contains "bar" returns "barfoo", while on the <code>Text</code> node that contains "foo" it returns "barfoo". DOM Level 3
				 */
				getWholeText(): string;
				/**
				 * Replaces the text of the current node and all logically-adjacent text nodes with the specified text. All logically-adjacent text nodes are removed including the current node unless it was the recipient of the replacement text. <br>This method returns the node which received the replacement text. The returned node is: <ul> <li><code>null</code>, when the replacement text is the empty string; </li> <li>the current node, except when the current node is read-only; </li> <li> a new <code>Text</code> node of the same type ( <code>Text</code> or <code>CDATASection</code>) as the current node inserted at the location of the replacement. </li> </ul> <br>For instance, in the above example calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" with "yo" in argument results in the following: <br>Where the nodes to be removed are read-only descendants of an <code>EntityReference</code>, the <code>EntityReference</code> must be removed instead of the read-only nodes. If any <code>EntityReference</code> to be removed has descendants that are not <code>EntityReference</code>, <code>Text</code>, or <code>CDATASection</code> nodes, the <code>replaceWholeText</code> method must fail before performing any modification of the document, raising a <code>DOMException</code> with the code <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br>For instance, in the example below calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" fails, because the <code>EntityReference</code> node "ent" contains an <code>Element</code> node which cannot be removed.
				 * @param content The content of the replacing <code>Text</code> node.
				 */
				replaceWholeText(content: string): org.w3c.dom.IText;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>DOMImplementationList</code> interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. The items in the <code>DOMImplementationList</code> are accessible via an integral index, starting from 0.
			 */
			export class DOMImplementationList implements org.w3c.dom.IDOMImplementationList {
				constructor(implementation: org.w3c.dom.IDOMImplementationList);
				/**
				 * Returns the <code>index</code>th item in the collection. If <code>index</code> is greater than or equal to the number of <code>DOMImplementation</code>s in the list, this returns <code>null</code>.
				 * @param index Index into the collection.
				 */
				public item(index: number): org.w3c.dom.IDOMImplementation;
				/**
				 * The number of <code>DOMImplementation</code>s in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				public getLength(): number;
			}
			/**
			 * The <code>NameList</code> interface provides the abstraction of an ordered collection of parallel pairs of name and namespace values (which could be null values), without defining or constraining how this collection is implemented. The items in the <code>NameList</code> are accessible via an integral index, starting from 0.
			 */
			interface INameList {
				/**
				 * Returns the <code>index</code>th name item in the collection.
				 * @param index Index into the collection.
				 */
				getName(index: number): string;
				/**
				 * Returns the <code>index</code>th namespaceURI item in the collection.
				 * @param index Index into the collection.
				 */
				getNamespaceURI(index: number): string;
				/**
				 * The number of pairs (name and namespaceURI) in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				getLength(): number;
				/**
				 * Test if a name is part of this <code>NameList</code>.
				 * @param str The name to look for.
				 */
				contains(str: string): boolean;
				/**
				 * Test if the pair namespaceURI/name is part of this <code>NameList</code>.
				 * @param namespaceURI The namespace URI to look for.
				 * @param name The name to look for.
				 */
				containsNS(namespaceURI: string, name: string): boolean;
			}
			/**
			 * The <code>Document</code> interface represents the entire HTML or XML document. Conceptually, it is the root of the document tree, and provides the primary access to the document's data.
			 */
			interface IDocument extends org.w3c.dom.INode {
				/**
				 * The Document Type Declaration (see <code>DocumentType</code>) associated with this document. For XML documents without a document type declaration this returns <code>null</code>. For HTML documents, a <code>DocumentType</code> object may be returned, independently of the presence or absence of document type declaration in the HTML document. <br>This provides direct access to the <code>DocumentType</code> node, child node of this <code>Document</code>. This node can be set at document creation time and later changed through the use of child nodes manipulation methods, such as <code>Node.insertBefore</code>, or <code>Node.replaceChild</code>. Note, however, that while some implementations may instantiate different types of <code>Document</code> objects supporting additional features than the "Core", such as "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , based on the <code>DocumentType</code> specified at creation time, changing it afterwards is very unlikely to result in a change of the features supported. DOM Level 3
				 */
				getDoctype(): org.w3c.dom.IDocumentType;
				/**
				 * The <code>DOMImplementation</code> object that handles this document. A DOM application may use objects from multiple implementations.
				 */
				getImplementation(): org.w3c.dom.IDOMImplementation;
				/**
				 * This is a convenience attribute that allows direct access to the child node that is the document element of the document.
				 */
				getDocumentElement(): org.w3c.dom.IElement;
				/**
				 * Creates an element of the type specified. Note that the instance returned implements the <code>Element</code> interface, so attributes can be specified directly on the returned object. <br>In addition, if there are known attributes with default values, <code>Attr</code> nodes representing them are automatically created and attached to the element. <br>To create an element with a qualified name and namespace URI, use the <code>createElementNS</code> method.
				 * @param tagName The name of the element type to instantiate. For XML,
				 */
				createElement(tagName: string): org.w3c.dom.IElement;
				/**
				 * Creates an empty <code>DocumentFragment</code> object.
				 */
				createDocumentFragment(): org.w3c.dom.IDocumentFragment;
				/**
				 * Creates a <code>Text</code> node given the specified string.
				 * @param data The data for the node.
				 */
				createTextNode(data: string): org.w3c.dom.IText;
				/**
				 * Creates a <code>Comment</code> node given the specified string.
				 * @param data The data for the node.
				 */
				createComment(data: string): org.w3c.dom.IComment;
				/**
				 * Creates a <code>CDATASection</code> node whose value is the specified string.
				 * @param data The data for the <code>CDATASection</code> contents.
				 */
				createCDATASection(data: string): org.w3c.dom.ICDATASection;
				/**
				 * Creates a <code>ProcessingInstruction</code> node given the specified name and data strings.
				 * @param target The target part of the processing instruction.Unlike
				 * @param data The data for the node.
				 */
				createProcessingInstruction(target: string, data: string): org.w3c.dom.IProcessingInstruction;
				/**
				 * Creates an <code>Attr</code> of the given name. Note that the <code>Attr</code> instance can then be set on an <code>Element</code> using the <code>setAttributeNode</code> method. <br>To create an attribute with a qualified name and namespace URI, use the <code>createAttributeNS</code> method.
				 * @param name The name of the attribute.
				 */
				createAttribute(name: string): org.w3c.dom.IAttr;
				/**
				 * Creates an <code>EntityReference</code> object. In addition, if the referenced entity is known, the child list of the <code>EntityReference</code> node is made the same as that of the corresponding <code>Entity</code> node. <p ><b>Note:</b> If any descendant of the <code>Entity</code> node has an unbound namespace prefix, the corresponding descendant of the created <code>EntityReference</code> node is also unbound; (its <code>namespaceURI</code> is <code>null</code>). The DOM Level 2 and 3 do not support any mechanism to resolve namespace prefixes in this case.
				 * @param name The name of the entity to reference.Unlike
				 */
				createEntityReference(name: string): org.w3c.dom.IEntityReference;
				/**
				 * Returns a <code>NodeList</code> of all the <code>Elements</code> in document order with a given tag name and are contained in the document.
				 * @param tagname The name of the tag to match on. The special value "*"
				 */
				getElementsByTagName(tagname: string): org.w3c.dom.INodeList;
				/**
				 * Imports a node from another document to this document, without altering or removing the source node from the original document; this method creates a new copy of the source node. The returned node has no parent; (<code>parentNode</code> is <code>null</code>). <br>For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's <code>nodeName</code> and <code>nodeType</code>, plus the attributes related to namespaces (<code>prefix</code>, <code>localName</code>, and <code>namespaceURI</code>). As in the <code>cloneNode</code> operation, the source node is not altered. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Additional information is copied as appropriate to the <code>nodeType</code>, attempting to mirror the behavior expected if a fragment of XML or HTML source was copied from one document to another, recognizing that the two documents may have different DTDs in the XML case. The following list describes the specifics for each type of node. <dl> <dt>ATTRIBUTE_NODE</dt> <dd>The <code>ownerElement</code> attribute is set to <code>null</code> and the <code>specified</code> flag is set to <code>true</code> on the generated <code>Attr</code>. The descendants of the source <code>Attr</code> are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Note that the <code>deep</code> parameter has no effect on <code>Attr</code> nodes; they always carry their children with them when imported.</dd> <dt>DOCUMENT_FRAGMENT_NODE</dt> <dd>If the <code>deep</code> option was set to <code>true</code>, the descendants of the source <code>DocumentFragment</code> are recursively imported and the resulting nodes reassembled under the imported <code>DocumentFragment</code> to form the corresponding subtree. Otherwise, this simply generates an empty <code>DocumentFragment</code>.</dd> <dt>DOCUMENT_NODE</dt> <dd><code>Document</code> nodes cannot be imported.</dd> <dt>DOCUMENT_TYPE_NODE</dt> <dd><code>DocumentType</code> nodes cannot be imported.</dd> <dt>ELEMENT_NODE</dt> <dd><em>Specified</em> attribute nodes of the source element are imported, and the generated <code>Attr</code> nodes are attached to the generated <code>Element</code>. Default attributes are <em>not</em> copied, though if the document being imported into defines default attributes for this element name, those are assigned. If the <code>importNode</code> <code>deep</code> parameter was set to <code>true</code>, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree.</dd> <dt>ENTITY_NODE</dt> <dd><code>Entity</code> nodes can be imported, however in the current release of the DOM the <code>DocumentType</code> is readonly. Ability to add these imported nodes to a <code>DocumentType</code> will be considered for addition to a future release of the DOM.On import, the <code>publicId</code>, <code>systemId</code>, and <code>notationName</code> attributes are copied. If a <code>deep</code> import is requested, the descendants of the the source <code>Entity</code> are recursively imported and the resulting nodes reassembled to form the corresponding subtree.</dd> <dt> ENTITY_REFERENCE_NODE</dt> <dd>Only the <code>EntityReference</code> itself is copied, even if a <code>deep</code> import is requested, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.</dd> <dt>NOTATION_NODE</dt> <dd> <code>Notation</code> nodes can be imported, however in the current release of the DOM the <code>DocumentType</code> is readonly. Ability to add these imported nodes to a <code>DocumentType</code> will be considered for addition to a future release of the DOM.On import, the <code>publicId</code> and <code>systemId</code> attributes are copied. Note that the <code>deep</code> parameter has no effect on this type of nodes since they cannot have any children.</dd> <dt> PROCESSING_INSTRUCTION_NODE</dt> <dd>The imported node copies its <code>target</code> and <code>data</code> values from those of the source node.Note that the <code>deep</code> parameter has no effect on this type of nodes since they cannot have any children.</dd> <dt>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</dt> <dd>These three types of nodes inheriting from <code>CharacterData</code> copy their <code>data</code> and <code>length</code> attributes from those of the source node.Note that the <code>deep</code> parameter has no effect on these types of nodes since they cannot have any children.</dd> </dl>
				 * @param importedNode The node to import.
				 * @param deep If <code>true</code>, recursively import the subtree under
				 */
				importNode(importedNode: org.w3c.dom.INode, deep: boolean): org.w3c.dom.INode;
				/**
				 * Creates an element of the given qualified name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the element to create.
				 * @param qualifiedName The qualified name of the element type to
				 */
				createElementNS(namespaceURI: string, qualifiedName: string): org.w3c.dom.IElement;
				/**
				 * Creates an attribute of the given qualified name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to create.
				 * @param qualifiedName The qualified name of the attribute to
				 */
				createAttributeNS(namespaceURI: string, qualifiedName: string): org.w3c.dom.IAttr;
				/**
				 * Returns a <code>NodeList</code> of all the <code>Elements</code> with a given local name and namespace URI in document order.
				 * @param namespaceURI The namespace URI of the elements to match on. The
				 * @param localName The local name of the elements to match on. The
				 */
				getElementsByTagNameNS(namespaceURI: string, localName: string): org.w3c.dom.INodeList;
				/**
				 * Returns the <code>Element</code> that has an ID attribute with the given value. If no such element exists, this returns <code>null</code> . If more than one element has an ID attribute with that value, what is returned is undefined. <br> The DOM implementation is expected to use the attribute <code>Attr.isId</code> to determine if an attribute is of type ID. <p ><b>Note:</b> Attributes with the name "ID" or "id" are not of type ID unless so defined.
				 * @param elementId The unique <code>id</code> value for an element.
				 */
				getElementById(elementId: string): org.w3c.dom.IElement;
				/**
				 * An attribute specifying the encoding used for this document at the time of the parsing. This is <code>null</code> when it is not known, such as when the <code>Document</code> was created in memory. DOM Level 3
				 */
				getInputEncoding(): string;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the encoding of this document. This is <code>null</code> when unspecified or when it is not known, such as when the <code>Document</code> was created in memory. DOM Level 3
				 */
				getXmlEncoding(): string;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, whether this document is standalone. This is <code>false</code> when unspecified. <p ><b>Note:</b> No verification is done on the value when setting this attribute. Applications should use <code>Document.normalizeDocument()</code> with the "validate" parameter to verify if the value matches the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-rmd'>validity constraint for standalone document declaration</a> as defined in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM Level 3
				 */
				getXmlStandalone(): boolean;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, whether this document is standalone. This is <code>false</code> when unspecified. <p ><b>Note:</b> No verification is done on the value when setting this attribute. Applications should use <code>Document.normalizeDocument()</code> with the "validate" parameter to verify if the value matches the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-rmd'>validity constraint for standalone document declaration</a> as defined in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOMException NOT_SUPPORTED_ERR: Raised if this document does not support the "XML" feature. DOM Level 3
				 */
				setXmlStandalone(xmlStandalone: boolean): void;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is <code>"1.0"</code>. If this document does not support the "XML" feature, the value is always <code>null</code>. Changing this attribute will affect methods that check for invalid characters in XML names. Application should invoke <code>Document.normalizeDocument()</code> in order to check for invalid characters in the <code>Node</code>s that are already part of this <code>Document</code>. <br> DOM applications may use the <code>DOMImplementation.hasFeature(feature, version)</code> method with parameter values "XMLVersion" and "1.0" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM applications may use the same method with parameter values "XMLVersion" and "1.1" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. In both cases, in order to support XML, an implementation must also support the "XML" feature defined in this specification. <code>Document</code> objects supporting a version of the "XMLVersion" feature must not raise a <code>NOT_SUPPORTED_ERR</code> exception for the same version number when using <code>Document.xmlVersion</code>. DOM Level 3
				 */
				getXmlVersion(): string;
				/**
				 * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is <code>"1.0"</code>. If this document does not support the "XML" feature, the value is always <code>null</code>. Changing this attribute will affect methods that check for invalid characters in XML names. Application should invoke <code>Document.normalizeDocument()</code> in order to check for invalid characters in the <code>Node</code>s that are already part of this <code>Document</code>. <br> DOM applications may use the <code>DOMImplementation.hasFeature(feature, version)</code> method with parameter values "XMLVersion" and "1.0" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM applications may use the same method with parameter values "XMLVersion" and "1.1" (respectively) to determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. In both cases, in order to support XML, an implementation must also support the "XML" feature defined in this specification. <code>Document</code> objects supporting a version of the "XMLVersion" feature must not raise a <code>NOT_SUPPORTED_ERR</code> exception for the same version number when using <code>Document.xmlVersion</code>. DOMException NOT_SUPPORTED_ERR: Raised if the version is set to a value that is not supported by this <code>Document</code> or if this document does not support the "XML" feature. DOM Level 3
				 */
				setXmlVersion(xmlVersion: string): void;
				/**
				 * An attribute specifying whether error checking is enforced or not. When set to <code>false</code>, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any <code>DOMException</code> on DOM operations or report errors while using <code>Document.normalizeDocument()</code>. In case of error, the behavior is undefined. This attribute is <code>true</code> by default. DOM Level 3
				 */
				getStrictErrorChecking(): boolean;
				/**
				 * An attribute specifying whether error checking is enforced or not. When set to <code>false</code>, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any <code>DOMException</code> on DOM operations or report errors while using <code>Document.normalizeDocument()</code>. In case of error, the behavior is undefined. This attribute is <code>true</code> by default. DOM Level 3
				 */
				setStrictErrorChecking(strictErrorChecking: boolean): void;
				/**
				 * The location of the document or <code>null</code> if undefined or if the <code>Document</code> was created using <code>DOMImplementation.createDocument</code>. No lexical checking is performed when setting this attribute; this could result in a <code>null</code> value returned when using <code>Node.baseURI</code> . <br> Beware that when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the href attribute of the HTML BASE element takes precedence over this attribute when computing <code>Node.baseURI</code>. DOM Level 3
				 */
				getDocumentURI(): string;
				/**
				 * The location of the document or <code>null</code> if undefined or if the <code>Document</code> was created using <code>DOMImplementation.createDocument</code>. No lexical checking is performed when setting this attribute; this could result in a <code>null</code> value returned when using <code>Node.baseURI</code> . <br> Beware that when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the href attribute of the HTML BASE element takes precedence over this attribute when computing <code>Node.baseURI</code>. DOM Level 3
				 */
				setDocumentURI(documentURI: string): void;
				/**
				 * Attempts to adopt a node from another document to this document. If supported, it changes the <code>ownerDocument</code> of the source node, its children, as well as the attached attribute nodes if there are any. If the source node has a parent it is first removed from the child list of its parent. This effectively allows moving a subtree from one document to another (unlike <code>importNode()</code> which create a copy of the source node instead of moving it). When it fails, applications should use <code>Document.importNode()</code> instead. Note that if the adopted node is already part of this document (i.e. the source and target document are the same), this method still has the effect of removing the source node from the child list of its parent, if any. The following list describes the specifics for each type of node. <dl> <dt>ATTRIBUTE_NODE</dt> <dd>The <code>ownerElement</code> attribute is set to <code>null</code> and the <code>specified</code> flag is set to <code>true</code> on the adopted <code>Attr</code>. The descendants of the source <code>Attr</code> are recursively adopted.</dd> <dt>DOCUMENT_FRAGMENT_NODE</dt> <dd>The descendants of the source node are recursively adopted.</dd> <dt>DOCUMENT_NODE</dt> <dd> <code>Document</code> nodes cannot be adopted.</dd> <dt>DOCUMENT_TYPE_NODE</dt> <dd> <code>DocumentType</code> nodes cannot be adopted.</dd> <dt>ELEMENT_NODE</dt> <dd><em>Specified</em> attribute nodes of the source element are adopted. Default attributes are discarded, though if the document being adopted into defines default attributes for this element name, those are assigned. The descendants of the source element are recursively adopted.</dd> <dt>ENTITY_NODE</dt> <dd> <code>Entity</code> nodes cannot be adopted.</dd> <dt>ENTITY_REFERENCE_NODE</dt> <dd>Only the <code>EntityReference</code> node itself is adopted, the descendants are discarded, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.</dd> <dt>NOTATION_NODE</dt> <dd><code>Notation</code> nodes cannot be adopted.</dd> <dt>PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE</dt> <dd>These nodes can all be adopted. No specifics.</dd> </dl> <p ><b>Note:</b> Since it does not create new nodes unlike the <code>Document.importNode()</code> method, this method does not raise an <code>INVALID_CHARACTER_ERR</code> exception, and applications should use the <code>Document.normalizeDocument()</code> method to check if an imported name is not an XML name according to the XML version in use.
				 * @param source The node to move into this document.
				 */
				adoptNode(source: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * The configuration used when <code>Document.normalizeDocument()</code> is invoked. DOM Level 3
				 */
				getDomConfig(): org.w3c.dom.IDOMConfiguration;
				/**
				 * This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form. As a consequence, this method updates the replacement tree of <code>EntityReference</code> nodes and normalizes <code>Text</code> nodes, as defined in the method <code>Node.normalize()</code>. <br> Otherwise, the actual result depends on the features being set on the <code>Document.domConfig</code> object and governing what operations actually take place. Noticeably this method could also make the document namespace well-formed according to the algorithm described in , check the character normalization, remove the <code>CDATASection</code> nodes, etc. See <code>DOMConfiguration</code> for details. <pre>// Keep in the document the information defined // in the XML Information Set (Java example) DOMConfiguration docConfig = myDocument.getDomConfig(); docConfig.setParameter("infoset", Boolean.TRUE); myDocument.normalizeDocument();</pre>
				 */
				normalizeDocument(): void;
				/**
				 * Rename an existing node of type <code>ELEMENT_NODE</code> or <code>ATTRIBUTE_NODE</code>. <br>When possible this simply changes the name of the given node, otherwise this creates a new node with the specified name and replaces the existing node with the new node as described below. <br>If simply changing the name of the given node is not possible, the following operations are performed: a new node is created, any registered event listener is registered on the new node, any user data attached to the old node is removed from that node, the old node is removed from its parent if it has one, the children are moved to the new node, if the renamed node is an <code>Element</code> its attributes are moved to the new node, the new node is inserted at the position the old node used to have in its parent's child nodes list if it has one, the user data that was attached to the old node is attached to the new node. <br>When the node being renamed is an <code>Element</code> only the specified attributes are moved, default attributes originated from the DTD are updated according to the new element name. In addition, the implementation may update default attributes from other schemas. Applications should use <code>Document.normalizeDocument()</code> to guarantee these attributes are up-to-date. <br>When the node being renamed is an <code>Attr</code> that is attached to an <code>Element</code>, the node is first removed from the <code>Element</code> attributes map. Then, once renamed, either by modifying the existing node or creating a new one as described above, it is put back. <br>In addition, <ul> <li> a user data event <code>NODE_RENAMED</code> is fired, </li> <li> when the implementation supports the feature "MutationNameEvents", each mutation operation involved in this method fires the appropriate event, and in the end the event { <code>http://www.w3.org/2001/xml-events</code>, <code>DOMElementNameChanged</code>} or { <code>http://www.w3.org/2001/xml-events</code>, <code>DOMAttributeNameChanged</code>} is fired. </li> </ul>
				 * @param n The node to rename.
				 * @param namespaceURI The new namespace URI.
				 * @param qualifiedName The new qualified name.
				 */
				renameNode(n: org.w3c.dom.INode, namespaceURI: string, qualifiedName: string): org.w3c.dom.INode;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>ProcessingInstruction</code> interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document.
			 */
			export class ProcessingInstruction implements org.w3c.dom.INode, org.w3c.dom.IProcessingInstruction {
				constructor(implementation: org.w3c.dom.IProcessingInstruction);
				/**
				 * The target of this processing instruction. XML defines this as being the first token following the markup that begins the processing instruction.
				 */
				public getTarget(): string;
				/**
				 * The content of this processing instruction. This is from the first non white space character after the target to the character immediately preceding the <code>?&gt;</code>.
				 */
				public getData(): string;
				/**
				 * The content of this processing instruction. This is from the first non white space character after the target to the character immediately preceding the <code>?&gt;</code>. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				public setData(data: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>Node</code> interface is the primary datatype for the entire Document Object Model. It represents a single node in the document tree. While all objects implementing the <code>Node</code> interface expose methods for dealing with children, not all objects implementing the <code>Node</code> interface may have children. For example, <code>Text</code> nodes may not have children, and adding children to such nodes results in a <code>DOMException</code> being raised.
			 */
			interface INode {
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			export module INode {
				/**
				 * The node is an <code>Element</code>.
				 */
				var ELEMENT_NODE: number;
				/**
				 * The node is an <code>Attr</code>.
				 */
				var ATTRIBUTE_NODE: number;
				/**
				 * The node is a <code>Text</code> node.
				 */
				var TEXT_NODE: number;
				/**
				 * The node is a <code>CDATASection</code>.
				 */
				var CDATA_SECTION_NODE: number;
				/**
				 * The node is an <code>EntityReference</code>.
				 */
				var ENTITY_REFERENCE_NODE: number;
				/**
				 * The node is an <code>Entity</code>.
				 */
				var ENTITY_NODE: number;
				/**
				 * The node is a <code>ProcessingInstruction</code>.
				 */
				var PROCESSING_INSTRUCTION_NODE: number;
				/**
				 * The node is a <code>Comment</code>.
				 */
				var COMMENT_NODE: number;
				/**
				 * The node is a <code>Document</code>.
				 */
				var DOCUMENT_NODE: number;
				/**
				 * The node is a <code>DocumentType</code>.
				 */
				var DOCUMENT_TYPE_NODE: number;
				/**
				 * The node is a <code>DocumentFragment</code>.
				 */
				var DOCUMENT_FRAGMENT_NODE: number;
				/**
				 * The node is a <code>Notation</code>.
				 */
				var NOTATION_NODE: number;
				/**
				 * The two nodes are disconnected. Order between disconnected nodes is always implementation-specific.
				 */
				var DOCUMENT_POSITION_DISCONNECTED: number;
				/**
				 * The second node precedes the reference node.
				 */
				var DOCUMENT_POSITION_PRECEDING: number;
				/**
				 * The node follows the reference node.
				 */
				var DOCUMENT_POSITION_FOLLOWING: number;
				/**
				 * The node contains the reference node. A node which contains is always preceding, too.
				 */
				var DOCUMENT_POSITION_CONTAINS: number;
				/**
				 * The node is contained by the reference node. A node which is contained is always following, too.
				 */
				var DOCUMENT_POSITION_CONTAINED_BY: number;
				/**
				 * The determination of preceding versus following is implementation-specific.
				 */
				var DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
			}
			/**
			 * This interface inherits from <code>CharacterData</code> and represents the content of a comment, i.e., all the characters between the starting ' <code>&lt;!--</code>' and ending '<code>--&gt;</code>'. Note that this is the definition of a comment in XML, and, in practice, HTML, although some HTML tools may implement the full SGML comment structure.
			 */
			interface IComment extends org.w3c.dom.ICharacterData {
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * This interface permits a DOM implementer to supply one or more implementations, based upon requested features and versions, as specified in . Each implemented <code>DOMImplementationSource</code> object is listed in the binding-specific list of available sources so that its <code>DOMImplementation</code> objects are made available.
			 */
			export class DOMImplementationSource implements org.w3c.dom.IDOMImplementationSource {
				constructor(implementation: org.w3c.dom.IDOMImplementationSource);
				/**
				 * A method to request the first DOM implementation that supports the specified features.
				 * @param features A string that specifies which features and versions
				 */
				public getDOMImplementation(features: string): org.w3c.dom.IDOMImplementation;
				/**
				 * A method to request a list of DOM implementations that support the specified features and versions, as specified in .
				 * @param features A string that specifies which features and versions
				 */
				public getDOMImplementationList(features: string): org.w3c.dom.IDOMImplementationList;
			}
			/**
			 * <code>DOMError</code> is an interface that describes an error.
			 */
			export class DOMError implements org.w3c.dom.IDOMError {
				constructor(implementation: org.w3c.dom.IDOMError);
				/**
				 * The severity of the error described by the <code>DOMError</code> is warning. A <code>SEVERITY_WARNING</code> will not cause the processing to stop, unless <code>DOMErrorHandler.handleError()</code> returns <code>false</code>.
				 */
				static SEVERITY_WARNING: number;
				/**
				 * The severity of the error described by the <code>DOMError</code> is error. A <code>SEVERITY_ERROR</code> may not cause the processing to stop if the error can be recovered, unless <code>DOMErrorHandler.handleError()</code> returns <code>false</code>.
				 */
				static SEVERITY_ERROR: number;
				/**
				 * The severity of the error described by the <code>DOMError</code> is fatal error. A <code>SEVERITY_FATAL_ERROR</code> will cause the normal processing to stop. The return value of <code>DOMErrorHandler.handleError()</code> is ignored unless the implementation chooses to continue, in which case the behavior becomes undefined.
				 */
				static SEVERITY_FATAL_ERROR: number;
				/**
				 * The severity of the error, either <code>SEVERITY_WARNING</code>, <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.
				 */
				public getSeverity(): number;
				/**
				 * An implementation specific string describing the error that occurred.
				 */
				public getMessage(): string;
				/**
				 * A <code>DOMString</code> indicating which related data is expected in <code>relatedData</code>. Users should refer to the specification of the error in order to find its <code>DOMString</code> type and <code>relatedData</code> definitions if any. <p ><b>Note:</b> As an example, <code>Document.normalizeDocument()</code> does generate warnings when the "split-cdata-sections" parameter is in use. Therefore, the method generates a <code>SEVERITY_WARNING</code> with <code>type</code> <code>"cdata-sections-splitted"</code> and the first <code>CDATASection</code> node in document order resulting from the split is returned by the <code>relatedData</code> attribute.
				 */
				public getType(): string;
				/**
				 * The related platform dependent exception if any.
				 */
				public getRelatedException(): any;
				/**
				 * The related <code>DOMError.type</code> dependent data if any.
				 */
				public getRelatedData(): any;
				/**
				 * The location of the error.
				 */
				public getLocation(): org.w3c.dom.IDOMLocator;
			}
			/**
			 * The <code>Element</code> interface represents an element in an HTML or XML document. Elements may have attributes associated with them; since the <code>Element</code> interface inherits from <code>Node</code>, the generic <code>Node</code> interface attribute <code>attributes</code> may be used to retrieve the set of all attributes for an element. There are methods on the <code>Element</code> interface to retrieve either an <code>Attr</code> object by name or an attribute value by name. In XML, where an attribute value may contain entity references, an <code>Attr</code> object should be retrieved to examine the possibly fairly complex sub-tree representing the attribute value. On the other hand, in HTML, where all attributes have simple string values, methods to directly access an attribute value can safely be used as a convenience. <p ><b>Note:</b> In DOM Level 2, the method <code>normalize</code> is inherited from the <code>Node</code> interface where it was moved.
			 */
			export class Element implements org.w3c.dom.INode, org.w3c.dom.IElement {
				constructor(implementation: org.w3c.dom.IElement);
				/**
				 * The name of the element. If <code>Node.localName</code> is different from <code>null</code>, this attribute is a qualified name. For example, in: <pre> &lt;elementExample id="demo"&gt; ... &lt;/elementExample&gt; , </pre> <code>tagName</code> has the value <code>"elementExample"</code>. Note that this is case-preserving in XML, as are all of the operations of the DOM. The HTML DOM returns the <code>tagName</code> of an HTML element in the canonical uppercase form, regardless of the case in the source HTML document.
				 */
				public getTagName(): string;
				/**
				 * Retrieves an attribute value by name.
				 * @param name The name of the attribute to retrieve.
				 */
				public getAttribute(name: string): string;
				/**
				 * Adds a new attribute. If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string; it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an <code>Attr</code> node plus any <code>Text</code> and <code>EntityReference</code> nodes, build the appropriate subtree, and use <code>setAttributeNode</code> to assign it as the value of an attribute. <br>To set an attribute with a qualified name and namespace URI, use the <code>setAttributeNS</code> method.
				 * @param name The name of the attribute to create or alter.
				 * @param value Value to set in string form.
				 */
				public setAttribute(name: string, value: string): void;
				/**
				 * Removes an attribute by name. If a default value for the removed attribute is defined in the DTD, a new attribute immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date. <br>If no attribute with this name is found, this method has no effect. <br>To remove an attribute by local name and namespace URI, use the <code>removeAttributeNS</code> method.
				 * @param name The name of the attribute to remove.
				 */
				public removeAttribute(name: string): void;
				/**
				 * Retrieves an attribute node by name. <br>To retrieve an attribute node by qualified name and namespace URI, use the <code>getAttributeNodeNS</code> method.
				 * @param name The name (<code>nodeName</code>) of the attribute to
				 */
				public getAttributeNode(name: string): org.w3c.dom.IAttr;
				/**
				 * Adds a new attribute node. If an attribute with that name ( <code>nodeName</code>) is already present in the element, it is replaced by the new one. Replacing an attribute node by itself has no effect. <br>To add a new attribute node with a qualified name and namespace URI, use the <code>setAttributeNodeNS</code> method.
				 * @param newAttr The <code>Attr</code> node to add to the attribute list.
				 */
				public setAttributeNode(newAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
				/**
				 * Removes the specified attribute node. If a default value for the removed <code>Attr</code> node is defined in the DTD, a new node immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date.
				 * @param oldAttr The <code>Attr</code> node to remove from the attribute
				 */
				public removeAttributeNode(oldAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
				/**
				 * Returns a <code>NodeList</code> of all descendant <code>Elements</code> with a given tag name, in document order.
				 * @param name The name of the tag to match on. The special value "*"
				 */
				public getElementsByTagName(name: string): org.w3c.dom.INodeList;
				/**
				 * Retrieves an attribute value by local name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to retrieve.
				 * @param localName The local name of the attribute to retrieve.
				 */
				public getAttributeNS(namespaceURI: string, localName: string): string;
				/**
				 * Adds a new attribute. If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the <code>qualifiedName</code>, and its value is changed to be the <code>value</code> parameter. This value is a simple string; it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an <code>Attr</code> node plus any <code>Text</code> and <code>EntityReference</code> nodes, build the appropriate subtree, and use <code>setAttributeNodeNS</code> or <code>setAttributeNode</code> to assign it as the value of an attribute. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to create or
				 * @param qualifiedName The qualified name of the attribute to create or
				 * @param value The value to set in string form.
				 */
				public setAttributeNS(namespaceURI: string, qualifiedName: string, value: string): void;
				/**
				 * Removes an attribute by local name and namespace URI. If a default value for the removed attribute is defined in the DTD, a new attribute immediately appears with the default value as well as the corresponding namespace URI, local name, and prefix when applicable. The implementation may handle default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date. <br>If no attribute with this local name and namespace URI is found, this method has no effect. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to remove.
				 * @param localName The local name of the attribute to remove.
				 */
				public removeAttributeNS(namespaceURI: string, localName: string): void;
				/**
				 * Retrieves an <code>Attr</code> node by local name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to retrieve.
				 * @param localName The local name of the attribute to retrieve.
				 */
				public getAttributeNodeNS(namespaceURI: string, localName: string): org.w3c.dom.IAttr;
				/**
				 * Adds a new attribute. If an attribute with that local name and that namespace URI is already present in the element, it is replaced by the new one. Replacing an attribute node by itself has no effect. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param newAttr The <code>Attr</code> node to add to the attribute list.
				 */
				public setAttributeNodeNS(newAttr: org.w3c.dom.IAttr): org.w3c.dom.IAttr;
				/**
				 * Returns a <code>NodeList</code> of all the descendant <code>Elements</code> with a given local name and namespace URI in document order.
				 * @param namespaceURI The namespace URI of the elements to match on. The
				 * @param localName The local name of the elements to match on. The
				 */
				public getElementsByTagNameNS(namespaceURI: string, localName: string): org.w3c.dom.INodeList;
				/**
				 * Returns <code>true</code> when an attribute with a given name is specified on this element or has a default value, <code>false</code> otherwise.
				 * @param name The name of the attribute to look for.
				 */
				public hasAttribute(name: string): boolean;
				/**
				 * Returns <code>true</code> when an attribute with a given local name and namespace URI is specified on this element or has a default value, <code>false</code> otherwise. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value <code>null</code> as the <code>namespaceURI</code> parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the attribute to look for.
				 * @param localName The local name of the attribute to look for.
				 */
				public hasAttributeNS(namespaceURI: string, localName: string): boolean;
				/**
				 * The type information associated with this element. DOM Level 3
				 */
				public getSchemaTypeInfo(): org.w3c.dom.ITypeInfo;
				/**
				 * If the parameter <code>isId</code> is <code>true</code>, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of <code>Attr.isId</code> and the behavior of <code>Document.getElementById</code>, but does not change any schema that may be in use, in particular this does not affect the <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code> node. Use the value <code>false</code> for the parameter <code>isId</code> to undeclare an attribute for being a user-determined ID attribute. <br> To specify an attribute by local name and namespace URI, use the <code>setIdAttributeNS</code> method.
				 * @param name The name of the attribute.
				 * @param isId Whether the attribute is a of type ID.
				 */
				public setIdAttribute(name: string, isId: boolean): void;
				/**
				 * If the parameter <code>isId</code> is <code>true</code>, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of <code>Attr.isId</code> and the behavior of <code>Document.getElementById</code>, but does not change any schema that may be in use, in particular this does not affect the <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code> node. Use the value <code>false</code> for the parameter <code>isId</code> to undeclare an attribute for being a user-determined ID attribute.
				 * @param namespaceURI The namespace URI of the attribute.
				 * @param localName The local name of the attribute.
				 * @param isId Whether the attribute is a of type ID.
				 */
				public setIdAttributeNS(namespaceURI: string, localName: string, isId: boolean): void;
				/**
				 * If the parameter <code>isId</code> is <code>true</code>, this method declares the specified attribute to be a user-determined ID attribute . This affects the value of <code>Attr.isId</code> and the behavior of <code>Document.getElementById</code>, but does not change any schema that may be in use, in particular this does not affect the <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code> node. Use the value <code>false</code> for the parameter <code>isId</code> to undeclare an attribute for being a user-determined ID attribute.
				 * @param idAttr The attribute node.
				 * @param isId Whether the attribute is a of type ID.
				 */
				public setIdAttributeNode(idAttr: org.w3c.dom.IAttr, isId: boolean): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>DOMImplementation</code> interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.
			 */
			export class DOMImplementation implements org.w3c.dom.IDOMImplementation {
				constructor(implementation: org.w3c.dom.IDOMImplementation);
				/**
				 * Test if the DOM implementation implements a specific feature and version, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				public hasFeature(feature: string, version: string): boolean;
				/**
				 * Creates an empty <code>DocumentType</code> node. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur..
				 * @param qualifiedName The qualified name of the document type to be
				 * @param publicId The external subset public identifier.
				 * @param systemId The external subset system identifier.
				 */
				public createDocumentType(qualifiedName: string, publicId: string, systemId: string): org.w3c.dom.IDocumentType;
				/**
				 * Creates a DOM Document object of the specified type with its document element. <br>Note that based on the <code>DocumentType</code> given to create the document, the implementation may instantiate specialized <code>Document</code> objects that support additional features than the "Core", such as "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] . On the other hand, setting the <code>DocumentType</code> after the document was created makes this very unlikely to happen. Alternatively, specialized <code>Document</code> creation methods, such as <code>createHTMLDocument</code> [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , can be used to obtain specific types of <code>Document</code> objects.
				 * @param namespaceURI The namespace URI of the document element to
				 * @param qualifiedName The qualified name of the document element to be
				 * @param doctype The type of document to be created or <code>null</code>.
				 */
				public createDocument(namespaceURI: string, qualifiedName: string, doctype: org.w3c.dom.IDocumentType): org.w3c.dom.IDocument;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>DOMImplementation</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				public getFeature(feature: string, version: string): any;
			}
			/**
			 * This interface represents a notation declared in the DTD. A notation either declares, by name, the format of an unparsed entity (see <a href='http://www.w3.org/TR/2004/REC-xml-20040204#Notations'>section 4.7</a> of the XML 1.0 specification [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]), or is used for formal declaration of processing instruction targets (see <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-pi'>section 2.6</a> of the XML 1.0 specification [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]). The <code>nodeName</code> attribute inherited from <code>Node</code> is set to the declared name of the notation.
			 */
			export class Notation implements org.w3c.dom.INode, org.w3c.dom.INotation {
				constructor(implementation: org.w3c.dom.INotation);
				/**
				 * The public identifier of this notation. If the public identifier was not specified, this is <code>null</code>.
				 */
				public getPublicId(): string;
				/**
				 * The system identifier of this notation. If the system identifier was not specified, this is <code>null</code>. This may be an absolute URI or not.
				 */
				public getSystemId(): string;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>DOMConfiguration</code> interface represents the configuration of a document and maintains a table of recognized parameters. Using the configuration, it is possible to change <code>Document.normalizeDocument()</code> behavior, such as replacing the <code>CDATASection</code> nodes with <code>Text</code> nodes or specifying the type of the schema that must be used when the validation of the <code>Document</code> is requested. <code>DOMConfiguration</code> objects are also used in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>DOM Level 3 Load and Save</a>] in the <code>DOMParser</code> and <code>DOMSerializer</code> interfaces.
			 */
			interface IDOMConfiguration {
				/**
				 * Set the value of a parameter.
				 * @param name The name of the parameter to set.
				 * @param value The new value or <code>null</code> if the user wishes to
				 */
				setParameter(name: string, value: any): void;
				/**
				 * Return the value of a parameter if known.
				 * @param name The name of the parameter.
				 */
				getParameter(name: string): any;
				/**
				 * Check if setting a parameter to a specific value is supported.
				 * @param name The name of the parameter to check.
				 * @param value An object. if <code>null</code>, the returned value is
				 */
				canSetParameter(name: string, value: any): boolean;
				/**
				 * The list of the parameters supported by this <code>DOMConfiguration</code> object and for which at least one value can be set by the application. Note that this list can also contain parameter names defined outside this specification.
				 */
				getParameterNames(): org.w3c.dom.IDOMStringList;
			}
			/**
			 * DOM operations only raise exceptions in "exceptional" circumstances, i.e., when an operation is impossible to perform (either for logical reasons, because data is lost, or because the implementation has become unstable). In general, DOM methods return specific error values in ordinary processing situations, such as out-of-bound errors when using <code>NodeList</code>.
			 */
			export class DOMException extends java.lang.RuntimeException {
				constructor(code: number, message: string);
				code: number;
				/**
				 * If index or size is negative, or greater than the allowed value.
				 */
				static INDEX_SIZE_ERR: number;
				/**
				 * If the specified range of text does not fit into a <code>DOMString</code>.
				 */
				static DOMSTRING_SIZE_ERR: number;
				/**
				 * If any <code>Node</code> is inserted somewhere it doesn't belong.
				 */
				static HIERARCHY_REQUEST_ERR: number;
				/**
				 * If a <code>Node</code> is used in a different document than the one that created it (that doesn't support it).
				 */
				static WRONG_DOCUMENT_ERR: number;
				/**
				 * If an invalid or illegal character is specified, such as in an XML name.
				 */
				static INVALID_CHARACTER_ERR: number;
				/**
				 * If data is specified for a <code>Node</code> which does not support data.
				 */
				static NO_DATA_ALLOWED_ERR: number;
				/**
				 * If an attempt is made to modify an object where modifications are not allowed.
				 */
				static NO_MODIFICATION_ALLOWED_ERR: number;
				/**
				 * If an attempt is made to reference a <code>Node</code> in a context where it does not exist.
				 */
				static NOT_FOUND_ERR: number;
				/**
				 * If the implementation does not support the requested type of object or operation.
				 */
				static NOT_SUPPORTED_ERR: number;
				/**
				 * If an attempt is made to add an attribute that is already in use elsewhere.
				 */
				static INUSE_ATTRIBUTE_ERR: number;
				/**
				 * If an attempt is made to use an object that is not, or is no longer, usable. DOM Level 2
				 */
				static INVALID_STATE_ERR: number;
				/**
				 * If an invalid or illegal string is specified. DOM Level 2
				 */
				static SYNTAX_ERR: number;
				/**
				 * If an attempt is made to modify the type of the underlying object. DOM Level 2
				 */
				static INVALID_MODIFICATION_ERR: number;
				/**
				 * If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces. DOM Level 2
				 */
				static NAMESPACE_ERR: number;
				/**
				 * If a parameter or an operation is not supported by the underlying object. DOM Level 2
				 */
				static INVALID_ACCESS_ERR: number;
				/**
				 * If a call to a method such as <code>insertBefore</code> or <code>removeChild</code> would make the <code>Node</code> invalid with respect to "partial validity", this exception would be raised and the operation would not be done. This code is used in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Val-20040127/'>DOM Level 3 Validation</a>] . Refer to this specification for further information. DOM Level 3
				 */
				static VALIDATION_ERR: number;
				/**
				 * If the type of an object is incompatible with the expected type of the parameter associated to the object. DOM Level 3
				 */
				static TYPE_MISMATCH_ERR: number;
				static class: java.lang.Class<org.w3c.dom.DOMException>;
			}
			/**
			 * <code>EntityReference</code> nodes may be used to represent an entity reference in the tree. Note that character references and references to predefined entities are considered to be expanded by the HTML or XML processor so that characters are represented by their Unicode equivalent rather than by an entity reference. Moreover, the XML processor may completely expand references to entities while building the <code>Document</code>, instead of providing <code>EntityReference</code> nodes. If it does provide such nodes, then for an <code>EntityReference</code> node that represents a reference to a known entity an <code>Entity</code> exists, and the subtree of the <code>EntityReference</code> node is a copy of the <code>Entity</code> node subtree. However, the latter may not be true when an entity contains an unbound namespace prefix. In such a case, because the namespace prefix resolution depends on where the entity reference is, the descendants of the <code>EntityReference</code> node may be bound to different namespace URIs. When an <code>EntityReference</code> node represents a reference to an unknown entity, the node has no children and its replacement value, when used by <code>Attr.value</code> for example, is empty.
			 */
			export class EntityReference implements org.w3c.dom.INode, org.w3c.dom.IEntityReference {
				constructor(implementation: org.w3c.dom.IEntityReference);
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>DOMStringList</code> interface provides the abstraction of an ordered collection of <code>DOMString</code> values, without defining or constraining how this collection is implemented. The items in the <code>DOMStringList</code> are accessible via an integral index, starting from 0.
			 */
			interface IDOMStringList {
				/**
				 * Returns the <code>index</code>th item in the collection. If <code>index</code> is greater than or equal to the number of <code>DOMString</code>s in the list, this returns <code>null</code>.
				 * @param index Index into the collection.
				 */
				item(index: number): string;
				/**
				 * The number of <code>DOMString</code>s in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				getLength(): number;
				/**
				 * Test if a string is part of this <code>DOMStringList</code>.
				 * @param str The string to look for.
				 */
				contains(str: string): boolean;
			}
			/**
			 * <code>DocumentFragment</code> is a "lightweight" or "minimal" <code>Document</code> object. It is very common to want to be able to extract a portion of a document's tree or to create a new fragment of a document. Imagine implementing a user command like cut or rearranging a document by moving fragments around. It is desirable to have an object which can hold such fragments and it is quite natural to use a Node for this purpose. While it is true that a <code>Document</code> object could fulfill this role, a <code>Document</code> object can potentially be a heavyweight object, depending on the underlying implementation. What is really needed for this is a very lightweight object. <code>DocumentFragment</code> is such an object.
			 */
			export class DocumentFragment implements org.w3c.dom.INode, org.w3c.dom.IDocumentFragment {
				constructor(implementation: org.w3c.dom.IDocumentFragment);
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * <code>DOMErrorHandler</code> is a callback interface that the DOM implementation can call when reporting errors that happens while processing XML data, or when doing some other processing (e.g. validating a document). A <code>DOMErrorHandler</code> object can be attached to a <code>Document</code> using the "error-handler" on the <code>DOMConfiguration</code> interface. If more than one error needs to be reported during an operation, the sequence and numbers of the errors passed to the error handler are implementation dependent.
			 */
			export class DOMErrorHandler implements org.w3c.dom.IDOMErrorHandler {
				constructor(implementation: org.w3c.dom.IDOMErrorHandler);
				/**
				 * This method is called on the error handler when an error occurs. <br> If an exception is thrown from this method, it is considered to be equivalent of returning <code>true</code>.
				 * @param error The error object that describes the error. This object
				 */
				public handleError(error: org.w3c.dom.IDOMError): boolean;
			}
			/**
			 * When associating an object to a key on a node using <code>Node.setUserData()</code> the application can provide a handler that gets called when the node the object is associated to is being cloned, imported, or renamed. This can be used by the application to implement various behaviors regarding the data it associates to the DOM nodes. This interface defines that handler.
			 */
			export class UserDataHandler implements org.w3c.dom.IUserDataHandler {
				constructor(implementation: org.w3c.dom.IUserDataHandler);
				/**
				 * The node is cloned, using <code>Node.cloneNode()</code>.
				 */
				static NODE_CLONED: number;
				/**
				 * The node is imported, using <code>Document.importNode()</code>.
				 */
				static NODE_IMPORTED: number;
				/**
				 * The node is deleted. <p ><b>Note:</b> This may not be supported or may not be reliable in certain environments, such as Java, where the implementation has no real control over when objects are actually deleted.
				 */
				static NODE_DELETED: number;
				/**
				 * The node is renamed, using <code>Document.renameNode()</code>.
				 */
				static NODE_RENAMED: number;
				/**
				 * The node is adopted, using <code>Document.adoptNode()</code>.
				 */
				static NODE_ADOPTED: number;
				/**
				 * This method is called whenever the node for which this handler is registered is imported or cloned. <br> DOM applications must not raise exceptions in a <code>UserDataHandler</code>. The effect of throwing exceptions from the handler is DOM implementation dependent.
				 * @param operation Specifies the type of operation that is being
				 * @param key Specifies the key for which this handler is being called.
				 * @param data Specifies the data for which this handler is being called.
				 * @param src Specifies the node being cloned, adopted, imported, or
				 * @param dst Specifies the node newly created if any, or
				 */
				public handle(operation: number, key: string, data: any, src: org.w3c.dom.INode, dst: org.w3c.dom.INode): void;
			}
			/**
			 * This interface inherits from <code>CharacterData</code> and represents the content of a comment, i.e., all the characters between the starting ' <code>&lt;!--</code>' and ending '<code>--&gt;</code>'. Note that this is the definition of a comment in XML, and, in practice, HTML, although some HTML tools may implement the full SGML comment structure.
			 */
			export class Comment implements org.w3c.dom.ICharacterData, org.w3c.dom.IComment {
				constructor(implementation: org.w3c.dom.IComment);
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>NameList</code> interface provides the abstraction of an ordered collection of parallel pairs of name and namespace values (which could be null values), without defining or constraining how this collection is implemented. The items in the <code>NameList</code> are accessible via an integral index, starting from 0.
			 */
			export class NameList implements org.w3c.dom.INameList {
				constructor(implementation: org.w3c.dom.INameList);
				/**
				 * Returns the <code>index</code>th name item in the collection.
				 * @param index Index into the collection.
				 */
				public getName(index: number): string;
				/**
				 * Returns the <code>index</code>th namespaceURI item in the collection.
				 * @param index Index into the collection.
				 */
				public getNamespaceURI(index: number): string;
				/**
				 * The number of pairs (name and namespaceURI) in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				public getLength(): number;
				/**
				 * Test if a name is part of this <code>NameList</code>.
				 * @param str The name to look for.
				 */
				public contains(str: string): boolean;
				/**
				 * Test if the pair namespaceURI/name is part of this <code>NameList</code>.
				 * @param namespaceURI The namespace URI to look for.
				 * @param name The name to look for.
				 */
				public containsNS(namespaceURI: string, name: string): boolean;
			}
			/**
			 * The <code>NodeList</code> interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. <code>NodeList</code> objects in the DOM are live.
			 */
			interface INodeList {
				/**
				 * Returns the <code>index</code>th item in the collection. If <code>index</code> is greater than or equal to the number of nodes in the list, this returns <code>null</code>.
				 * @param index Index into the collection.
				 */
				item(index: number): org.w3c.dom.INode;
				/**
				 * The number of nodes in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				getLength(): number;
			}
			/**
			 * Objects implementing the <code>NamedNodeMap</code> interface are used to represent collections of nodes that can be accessed by name. Note that <code>NamedNodeMap</code> does not inherit from <code>NodeList</code>; <code>NamedNodeMaps</code> are not maintained in any particular order. Objects contained in an object implementing <code>NamedNodeMap</code> may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a <code>NamedNodeMap</code>, and does not imply that the DOM specifies an order to these Nodes.
			 */
			export class NamedNodeMap implements org.w3c.dom.INamedNodeMap {
				constructor(implementation: org.w3c.dom.INamedNodeMap);
				/**
				 * Retrieves a node specified by name.
				 * @param name The <code>nodeName</code> of a node to retrieve.
				 */
				public getNamedItem(name: string): org.w3c.dom.INode;
				/**
				 * Adds a node using its <code>nodeName</code> attribute. If a node with that name is already present in this map, it is replaced by the new one. Replacing a node by itself has no effect. <br>As the <code>nodeName</code> attribute is used to derive the name which the node must be stored under, multiple nodes of certain types (those that have a "special" string value) cannot be stored as the names would clash. This is seen as preferable to allowing nodes to be aliased.
				 * @param arg A node to store in this map. The node will later be
				 */
				public setNamedItem(arg: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes a node specified by name. When this map contains the attributes attached to an element, if the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable.
				 * @param name The <code>nodeName</code> of the node to remove.
				 */
				public removeNamedItem(name: string): org.w3c.dom.INode;
				/**
				 * Returns the <code>index</code>th item in the map. If <code>index</code> is greater than or equal to the number of nodes in this map, this returns <code>null</code>.
				 * @param index Index into this map.
				 */
				public item(index: number): org.w3c.dom.INode;
				/**
				 * The number of nodes in this map. The range of valid child node indices is <code>0</code> to <code>length-1</code> inclusive.
				 */
				public getLength(): number;
				/**
				 * Retrieves a node specified by local name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value null as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the node to retrieve.
				 * @param localName The local name of the node to retrieve.
				 */
				public getNamedItemNS(namespaceURI: string, localName: string): org.w3c.dom.INode;
				/**
				 * Adds a node using its <code>namespaceURI</code> and <code>localName</code>. If a node with that namespace URI and that local name is already present in this map, it is replaced by the new one. Replacing a node by itself has no effect. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value null as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param arg A node to store in this map. The node will later be
				 */
				public setNamedItemNS(arg: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes a node specified by local name and namespace URI. A removed attribute may be known to have a default value when this map contains the attributes attached to an element, as returned by the attributes attribute of the <code>Node</code> interface. If so, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value null as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the node to remove.
				 * @param localName The local name of the node to remove.
				 */
				public removeNamedItemNS(namespaceURI: string, localName: string): org.w3c.dom.INode;
			}
			/**
			 * <code>DOMErrorHandler</code> is a callback interface that the DOM implementation can call when reporting errors that happens while processing XML data, or when doing some other processing (e.g. validating a document). A <code>DOMErrorHandler</code> object can be attached to a <code>Document</code> using the "error-handler" on the <code>DOMConfiguration</code> interface. If more than one error needs to be reported during an operation, the sequence and numbers of the errors passed to the error handler are implementation dependent.
			 */
			interface IDOMErrorHandler {
				/**
				 * This method is called on the error handler when an error occurs. <br> If an exception is thrown from this method, it is considered to be equivalent of returning <code>true</code>.
				 * @param error The error object that describes the error. This object
				 */
				handleError(error: org.w3c.dom.IDOMError): boolean;
			}
			/**
			 * The <code>DOMStringList</code> interface provides the abstraction of an ordered collection of <code>DOMString</code> values, without defining or constraining how this collection is implemented. The items in the <code>DOMStringList</code> are accessible via an integral index, starting from 0.
			 */
			export class DOMStringList implements org.w3c.dom.IDOMStringList {
				constructor(implementation: org.w3c.dom.IDOMStringList);
				/**
				 * Returns the <code>index</code>th item in the collection. If <code>index</code> is greater than or equal to the number of <code>DOMString</code>s in the list, this returns <code>null</code>.
				 * @param index Index into the collection.
				 */
				public item(index: number): string;
				/**
				 * The number of <code>DOMString</code>s in the list. The range of valid child node indices is 0 to <code>length-1</code> inclusive.
				 */
				public getLength(): number;
				/**
				 * Test if a string is part of this <code>DOMStringList</code>.
				 * @param str The string to look for.
				 */
				public contains(str: string): boolean;
			}
			/**
			 * Each <code>Document</code> has a <code>doctype</code> attribute whose value is either <code>null</code> or a <code>DocumentType</code> object. The <code>DocumentType</code> interface in the DOM Core provides an interface to the list of entities that are defined for the document, and little else because the effect of namespaces and the various XML schema efforts on DTD representation are not clearly understood as of this writing.
			 */
			export class DocumentType implements org.w3c.dom.INode, org.w3c.dom.IDocumentType {
				constructor(implementation: org.w3c.dom.IDocumentType);
				/**
				 * The name of DTD; i.e., the name immediately following the <code>DOCTYPE</code> keyword.
				 */
				public getName(): string;
				/**
				 * A <code>NamedNodeMap</code> containing the general entities, both external and internal, declared in the DTD. Parameter entities are not contained. Duplicates are discarded. For example in: <pre>&lt;!DOCTYPE ex SYSTEM "ex.dtd" [ &lt;!ENTITY foo "foo"&gt; &lt;!ENTITY bar "bar"&gt; &lt;!ENTITY bar "bar2"&gt; &lt;!ENTITY % baz "baz"&gt; ]&gt; &lt;ex/&gt;</pre> the interface provides access to <code>foo</code> and the first declaration of <code>bar</code> but not the second declaration of <code>bar</code> or <code>baz</code>. Every node in this map also implements the <code>Entity</code> interface. <br>The DOM Level 2 does not support editing entities, therefore <code>entities</code> cannot be altered in any way.
				 */
				public getEntities(): org.w3c.dom.INamedNodeMap;
				/**
				 * A <code>NamedNodeMap</code> containing the notations declared in the DTD. Duplicates are discarded. Every node in this map also implements the <code>Notation</code> interface. <br>The DOM Level 2 does not support editing notations, therefore <code>notations</code> cannot be altered in any way.
				 */
				public getNotations(): org.w3c.dom.INamedNodeMap;
				/**
				 * The public identifier of the external subset. DOM Level 2
				 */
				public getPublicId(): string;
				/**
				 * The system identifier of the external subset. This may be an absolute URI or not. DOM Level 2
				 */
				public getSystemId(): string;
				/**
				 * The internal subset as a string, or <code>null</code> if there is none. This is does not contain the delimiting square brackets. <p ><b>Note:</b> The actual content returned depends on how much information is available to the implementation. This may vary depending on various parameters, including the XML processor used to build the document. DOM Level 2
				 */
				public getInternalSubset(): string;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>Text</code> interface inherits from <code>CharacterData</code> and represents the textual content (termed <a href='http://www.w3.org/TR/2004/REC-xml-20040204#syntax'>character data</a> in XML) of an <code>Element</code> or <code>Attr</code>. If there is no markup inside an element's content, the text is contained in a single object implementing the <code>Text</code> interface that is the only child of the element. If there is markup, it is parsed into the information items (elements, comments, etc.) and <code>Text</code> nodes that form the list of children of the element.
			 */
			export class Text implements org.w3c.dom.ICharacterData, org.w3c.dom.IText {
				constructor(implementation: org.w3c.dom.IText);
				/**
				 * Breaks this node into two nodes at the specified <code>offset</code>, keeping both in the tree as siblings. After being split, this node will contain all the content up to the <code>offset</code> point. A new node of the same type, which contains all the content at and after the <code>offset</code> point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the <code>offset</code> is equal to the length of this node, the new node has no data.
				 * @param offset The 16-bit unit offset at which to split, starting from
				 */
				public splitText(offset: number): org.w3c.dom.IText;
				/**
				 * Returns whether this text node contains <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'> element content whitespace</a>, often abusively called "ignorable whitespace". The text node is determined to contain whitespace in element content during the load of the document or if validation occurs while using <code>Document.normalizeDocument()</code>. DOM Level 3
				 */
				public isElementContentWhitespace(): boolean;
				/**
				 * Returns all text of <code>Text</code> nodes logically-adjacent text nodes to this node, concatenated in document order. <br>For instance, in the example below <code>wholeText</code> on the <code>Text</code> node that contains "bar" returns "barfoo", while on the <code>Text</code> node that contains "foo" it returns "barfoo". DOM Level 3
				 */
				public getWholeText(): string;
				/**
				 * Replaces the text of the current node and all logically-adjacent text nodes with the specified text. All logically-adjacent text nodes are removed including the current node unless it was the recipient of the replacement text. <br>This method returns the node which received the replacement text. The returned node is: <ul> <li><code>null</code>, when the replacement text is the empty string; </li> <li>the current node, except when the current node is read-only; </li> <li> a new <code>Text</code> node of the same type ( <code>Text</code> or <code>CDATASection</code>) as the current node inserted at the location of the replacement. </li> </ul> <br>For instance, in the above example calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" with "yo" in argument results in the following: <br>Where the nodes to be removed are read-only descendants of an <code>EntityReference</code>, the <code>EntityReference</code> must be removed instead of the read-only nodes. If any <code>EntityReference</code> to be removed has descendants that are not <code>EntityReference</code>, <code>Text</code>, or <code>CDATASection</code> nodes, the <code>replaceWholeText</code> method must fail before performing any modification of the document, raising a <code>DOMException</code> with the code <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br>For instance, in the example below calling <code>replaceWholeText</code> on the <code>Text</code> node that contains "bar" fails, because the <code>EntityReference</code> node "ent" contains an <code>Element</code> node which cannot be removed.
				 * @param content The content of the replacing <code>Text</code> node.
				 */
				public replaceWholeText(content: string): org.w3c.dom.IText;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getData(): string;
				/**
				 * The character data of the node that implements this interface. The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a <code>CharacterData</code> node. However, implementation limits may mean that the entirety of a node's data may not fit into a single <code>DOMString</code>. In such cases, the user may call <code>substringData</code> to retrieve the data in appropriately sized pieces. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setData(data: string): void;
				/**
				 * The number of 16-bit units that are available through <code>data</code> and the <code>substringData</code> method below. This may have the value zero, i.e., <code>CharacterData</code> nodes may be empty.
				 */
				getLength(): number;
				/**
				 * Extracts a range of data from the node.
				 * @param offset Start offset of substring to extract.
				 * @param count The number of 16-bit units to extract.
				 */
				substringData(offset: number, count: number): string;
				/**
				 * Append the string to the end of the character data of the node. Upon success, <code>data</code> provides access to the concatenation of <code>data</code> and the <code>DOMString</code> specified.
				 * @param arg The <code>DOMString</code> to append.
				 */
				appendData(arg: string): void;
				/**
				 * Insert a string at the specified 16-bit unit offset.
				 * @param offset The character offset at which to insert.
				 * @param arg The <code>DOMString</code> to insert.
				 */
				insertData(offset: number, arg: string): void;
				/**
				 * Remove a range of 16-bit units from the node. Upon success, <code>data</code> and <code>length</code> reflect the change.
				 * @param offset The offset from which to start removing.
				 * @param count The number of 16-bit units to delete. If the sum of
				 */
				deleteData(offset: number, count: number): void;
				/**
				 * Replace the characters starting at the specified 16-bit unit offset with the specified string.
				 * @param offset The offset from which to start replacing.
				 * @param count The number of 16-bit units to replace. If the sum of
				 * @param arg The <code>DOMString</code> with which the range must be
				 */
				replaceData(offset: number, count: number, arg: string): void;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * <code>DOMLocator</code> is an interface that describes a location (e.g. where an error occurred).
			 */
			interface IDOMLocator {
				/**
				 * The line number this locator is pointing to, or <code>-1</code> if there is no column number available.
				 */
				getLineNumber(): number;
				/**
				 * The column number this locator is pointing to, or <code>-1</code> if there is no column number available.
				 */
				getColumnNumber(): number;
				/**
				 * The byte offset into the input source this locator is pointing to or <code>-1</code> if there is no byte offset available.
				 */
				getByteOffset(): number;
				/**
				 * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], offset into the input source this locator is pointing to or <code>-1</code> if there is no UTF-16 offset available.
				 */
				getUtf16Offset(): number;
				/**
				 * The node this locator is pointing to, or <code>null</code> if no node is available.
				 */
				getRelatedNode(): org.w3c.dom.INode;
				/**
				 * The URI this locator is pointing to, or <code>null</code> if no URI is available.
				 */
				getUri(): string;
			}
			/**
			 * Objects implementing the <code>NamedNodeMap</code> interface are used to represent collections of nodes that can be accessed by name. Note that <code>NamedNodeMap</code> does not inherit from <code>NodeList</code>; <code>NamedNodeMaps</code> are not maintained in any particular order. Objects contained in an object implementing <code>NamedNodeMap</code> may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a <code>NamedNodeMap</code>, and does not imply that the DOM specifies an order to these Nodes.
			 */
			interface INamedNodeMap {
				/**
				 * Retrieves a node specified by name.
				 * @param name The <code>nodeName</code> of a node to retrieve.
				 */
				getNamedItem(name: string): org.w3c.dom.INode;
				/**
				 * Adds a node using its <code>nodeName</code> attribute. If a node with that name is already present in this map, it is replaced by the new one. Replacing a node by itself has no effect. <br>As the <code>nodeName</code> attribute is used to derive the name which the node must be stored under, multiple nodes of certain types (those that have a "special" string value) cannot be stored as the names would clash. This is seen as preferable to allowing nodes to be aliased.
				 * @param arg A node to store in this map. The node will later be
				 */
				setNamedItem(arg: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes a node specified by name. When this map contains the attributes attached to an element, if the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable.
				 * @param name The <code>nodeName</code> of the node to remove.
				 */
				removeNamedItem(name: string): org.w3c.dom.INode;
				/**
				 * Returns the <code>index</code>th item in the map. If <code>index</code> is greater than or equal to the number of nodes in this map, this returns <code>null</code>.
				 * @param index Index into this map.
				 */
				item(index: number): org.w3c.dom.INode;
				/**
				 * The number of nodes in this map. The range of valid child node indices is <code>0</code> to <code>length-1</code> inclusive.
				 */
				getLength(): number;
				/**
				 * Retrieves a node specified by local name and namespace URI. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value null as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the node to retrieve.
				 * @param localName The local name of the node to retrieve.
				 */
				getNamedItemNS(namespaceURI: string, localName: string): org.w3c.dom.INode;
				/**
				 * Adds a node using its <code>namespaceURI</code> and <code>localName</code>. If a node with that namespace URI and that local name is already present in this map, it is replaced by the new one. Replacing a node by itself has no effect. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value null as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param arg A node to store in this map. The node will later be
				 */
				setNamedItemNS(arg: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes a node specified by local name and namespace URI. A removed attribute may be known to have a default value when this map contains the attributes attached to an element, as returned by the attributes attribute of the <code>Node</code> interface. If so, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable. <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] , applications must use the value null as the namespaceURI parameter for methods if they wish to have no namespace.
				 * @param namespaceURI The namespace URI of the node to remove.
				 * @param localName The local name of the node to remove.
				 */
				removeNamedItemNS(namespaceURI: string, localName: string): org.w3c.dom.INode;
			}
			/**
			 * <code>EntityReference</code> nodes may be used to represent an entity reference in the tree. Note that character references and references to predefined entities are considered to be expanded by the HTML or XML processor so that characters are represented by their Unicode equivalent rather than by an entity reference. Moreover, the XML processor may completely expand references to entities while building the <code>Document</code>, instead of providing <code>EntityReference</code> nodes. If it does provide such nodes, then for an <code>EntityReference</code> node that represents a reference to a known entity an <code>Entity</code> exists, and the subtree of the <code>EntityReference</code> node is a copy of the <code>Entity</code> node subtree. However, the latter may not be true when an entity contains an unbound namespace prefix. In such a case, because the namespace prefix resolution depends on where the entity reference is, the descendants of the <code>EntityReference</code> node may be bound to different namespace URIs. When an <code>EntityReference</code> node represents a reference to an unknown entity, the node has no children and its replacement value, when used by <code>Attr.value</code> for example, is empty.
			 */
			interface IEntityReference extends org.w3c.dom.INode {
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
			/**
			 * The <code>TypeInfo</code> interface represents a type referenced from <code>Element</code> or <code>Attr</code> nodes, specified in the schemas associated with the document. The type is a pair of a namespace URI and name properties, and depends on the document's schema.
			 */
			interface ITypeInfo {
				/**
				 * The name of a type declared for the associated element or attribute, or <code>null</code> if unknown.
				 */
				getTypeName(): string;
				/**
				 * The namespace of the type declared for the associated element or attribute or <code>null</code> if the element does not have declaration or if no namespace information is available.
				 */
				getTypeNamespace(): string;
				/**
				 * This method returns if there is a derivation between the reference type definition, i.e. the <code>TypeInfo</code> on which the method is being called, and the other type definition, i.e. the one passed as parameters.
				 * @param typeNamespaceArg the namespace of the other type definition.
				 * @param typeNameArg the name of the other type definition.
				 * @param derivationMethod the type of derivation and conditions applied
				 */
				isDerivedFrom(typeNamespaceArg: string, typeNameArg: string, derivationMethod: number): boolean;
			}
			export module ITypeInfo {
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the derivation by <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-typeRestriction'> restriction</a> if complex types are involved, or a <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-restriction'> restriction</a> if simple types are involved. <br> The reference type definition is derived by restriction from the other type definition if the other type definition is the same as the reference type definition, or if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and all the <em>derivation methods</em> involved are restriction.
				 */
				var DERIVATION_RESTRICTION: number;
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the derivation by <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-typeExtension'> extension</a>. <br> The reference type definition is derived by extension from the other type definition if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and at least one of the <em>derivation methods</em> involved is an extension.
				 */
				var DERIVATION_EXTENSION: number;
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-union'> union</a> if simple types are involved. <br> The reference type definition is derived by union from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by <code>DERIVATION_RESTRICTION</code> or <code>DERIVATION_EXTENSION</code>, T2 is derived from the other type definition by <code>DERIVATION_RESTRICTION</code>, T1 has {variety} <em>union</em>, and one of the {member type definitions} is T2. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.
				 */
				var DERIVATION_UNION: number;
				/**
				 * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] , this constant represents the <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-list'>list</a>. <br> The reference type definition is derived by list from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by <code>DERIVATION_RESTRICTION</code> or <code>DERIVATION_EXTENSION</code>, T2 is derived from the other type definition by <code>DERIVATION_RESTRICTION</code>, T1 has {variety} <em>list</em>, and T2 is the {item type definition}. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.
				 */
				var DERIVATION_LIST: number;
			}
			/**
			 * The <code>Attr</code> interface represents an attribute in an <code>Element</code> object. Typically the allowable values for the attribute are defined in a schema associated with the document.
			 */
			interface IAttr extends org.w3c.dom.INode {
				/**
				 * Returns the name of this attribute. If <code>Node.localName</code> is different from <code>null</code>, this attribute is a qualified name.
				 */
				getName(): string;
				/**
				 * <code>True</code> if this attribute was explicitly given a value in the instance document, <code>false</code> otherwise. If the application changed the value of this attribute node (even if it ends up having the same value as the default value) then it is set to <code>true</code>. The implementation may handle attributes with default values from other schemas similarly but applications should use <code>Document.normalizeDocument()</code> to guarantee this information is up-to-date.
				 */
				getSpecified(): boolean;
				/**
				 * On retrieval, the value of the attribute is returned as a string. Character and general entity references are replaced with their values. See also the method <code>getAttribute</code> on the <code>Element</code> interface. <br>On setting, this creates a <code>Text</code> node with the unparsed contents of the string, i.e. any characters that an XML processor would recognize as markup are instead treated as literal text. See also the method <code>Element.setAttribute()</code>. <br> Some specialized implementations, such as some [<a href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'>SVG 1.1</a>] implementations, may do normalization automatically, even after mutation; in such case, the value on retrieval may differ from the value on setting.
				 */
				getValue(): string;
				/**
				 * On retrieval, the value of the attribute is returned as a string. Character and general entity references are replaced with their values. See also the method <code>getAttribute</code> on the <code>Element</code> interface. <br>On setting, this creates a <code>Text</code> node with the unparsed contents of the string, i.e. any characters that an XML processor would recognize as markup are instead treated as literal text. See also the method <code>Element.setAttribute()</code>. <br> Some specialized implementations, such as some [<a href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'>SVG 1.1</a>] implementations, may do normalization automatically, even after mutation; in such case, the value on retrieval may differ from the value on setting. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
				 */
				setValue(value: string): void;
				/**
				 * The <code>Element</code> node this attribute is attached to or <code>null</code> if this attribute is not in use. DOM Level 2
				 */
				getOwnerElement(): org.w3c.dom.IElement;
				/**
				 * The type information associated with this attribute. While the type information contained in this attribute is guarantee to be correct after loading the document or invoking <code>Document.normalizeDocument()</code>, <code>schemaTypeInfo</code> may not be reliable if the node was moved. DOM Level 3
				 */
				getSchemaTypeInfo(): org.w3c.dom.ITypeInfo;
				/**
				 * Returns whether this attribute is known to be of type ID (i.e. to contain an identifier for its owner element) or not. When it is and its value is unique, the <code>ownerElement</code> of this attribute can be retrieved using the method <code>Document.getElementById</code> . The implementation could use several ways to determine if an attribute node is known to contain an identifier: <ul> <li> If validation occurred using an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>] while loading the document or while invoking <code>Document.normalizeDocument()</code>, the post-schema-validation infoset contributions (PSVI contributions) values are used to determine if this attribute is a schema-determined ID attribute using the <a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/#term-sdi'> schema-determined ID</a> definition in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] . </li> <li> If validation occurred using a DTD while loading the document or while invoking <code>Document.normalizeDocument()</code>, the infoset <b>[type definition]</b> value is used to determine if this attribute is a DTD-determined ID attribute using the <a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/#term-ddi'> DTD-determined ID</a> definition in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] . </li> <li> from the use of the methods <code>Element.setIdAttribute()</code>, <code>Element.setIdAttributeNS()</code>, or <code>Element.setIdAttributeNode()</code>, i.e. it is an user-determined ID attribute; <p ><b>Note:</b> XPointer framework (see section 3.2 in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] ) consider the DOM user-determined ID attribute as being part of the XPointer externally-determined ID definition. </li> <li> using mechanisms that are outside the scope of this specification, it is then an externally-determined ID attribute. This includes using schema languages different from XML schema and DTD. </li> </ul> <br> If validation occurred while invoking <code>Document.normalizeDocument()</code>, all user-determined ID attributes are reset and all attribute nodes ID information are then reevaluated in accordance to the schema used. As a consequence, if the <code>Attr.schemaTypeInfo</code> attribute contains an ID type, <code>isId</code> will always return true. DOM Level 3
				 */
				isId(): boolean;
				/**
				 * The name of this node, depending on its type; see the table above.
				 */
				getNodeName(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform.
				 */
				getNodeValue(): string;
				/**
				 * The value of this node, depending on its type; see the table above. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if it is not defined to be <code>null</code>.
				 */
				setNodeValue(nodeValue: string): void;
				/**
				 * A code representing the type of the underlying object, as defined above.
				 */
				getNodeType(): number;
				/**
				 * The parent of this node. All nodes, except <code>Attr</code>, <code>Document</code>, <code>DocumentFragment</code>, <code>Entity</code>, and <code>Notation</code> may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, this is <code>null</code>.
				 */
				getParentNode(): org.w3c.dom.INode;
				/**
				 * A <code>NodeList</code> that contains all children of this node. If there are no children, this is a <code>NodeList</code> containing no nodes.
				 */
				getChildNodes(): org.w3c.dom.INodeList;
				/**
				 * The first child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getFirstChild(): org.w3c.dom.INode;
				/**
				 * The last child of this node. If there is no such node, this returns <code>null</code>.
				 */
				getLastChild(): org.w3c.dom.INode;
				/**
				 * The node immediately preceding this node. If there is no such node, this returns <code>null</code>.
				 */
				getPreviousSibling(): org.w3c.dom.INode;
				/**
				 * The node immediately following this node. If there is no such node, this returns <code>null</code>.
				 */
				getNextSibling(): org.w3c.dom.INode;
				/**
				 * A <code>NamedNodeMap</code> containing the attributes of this node (if it is an <code>Element</code>) or <code>null</code> otherwise.
				 */
				getAttributes(): org.w3c.dom.INamedNodeMap;
				/**
				 * The <code>Document</code> object associated with this node. This is also the <code>Document</code> object used to create new nodes. When this node is a <code>Document</code> or a <code>DocumentType</code> which is not used with any <code>Document</code> yet, this is <code>null</code>. DOM Level 2
				 */
				getOwnerDocument(): org.w3c.dom.IDocument;
				/**
				 * Inserts the node <code>newChild</code> before the existing child node <code>refChild</code>. If <code>refChild</code> is <code>null</code>, insert <code>newChild</code> at the end of the list of children. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, all of its children are inserted, in the same order, before <code>refChild</code>. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Inserting a node before itself is implementation dependent.
				 * @param newChild The node to insert.
				 * @param refChild The reference node, i.e., the node before which the
				 */
				insertBefore(newChild: org.w3c.dom.INode, refChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Replaces the child node <code>oldChild</code> with <code>newChild</code> in the list of children, and returns the <code>oldChild</code> node. <br>If <code>newChild</code> is a <code>DocumentFragment</code> object, <code>oldChild</code> is replaced by all of the <code>DocumentFragment</code> children, which are inserted in the same order. If the <code>newChild</code> is already in the tree, it is first removed. <p ><b>Note:</b> Replacing a node with itself is implementation dependent.
				 * @param newChild The new node to put in the child list.
				 * @param oldChild The node being replaced in the list.
				 */
				replaceChild(newChild: org.w3c.dom.INode, oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Removes the child node indicated by <code>oldChild</code> from the list of children, and returns it.
				 * @param oldChild The node being removed.
				 */
				removeChild(oldChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Adds the node <code>newChild</code> to the end of the list of children of this node. If the <code>newChild</code> is already in the tree, it is first removed.
				 * @param newChild The node to add.If it is a
				 */
				appendChild(newChild: org.w3c.dom.INode): org.w3c.dom.INode;
				/**
				 * Returns whether this node has any children.
				 */
				hasChildNodes(): boolean;
				/**
				 * Returns a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent ( <code>parentNode</code> is <code>null</code>) and no user data. User data associated to the imported node is not carried over. However, if any <code>UserDataHandlers</code> has been specified along with the associated data these handlers will be called with the appropriate parameters before this method returns. <br>Cloning an <code>Element</code> copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any children it contains unless it is a deep clone. This includes text contained in an the <code>Element</code> since the text is contained in a child <code>Text</code> node. Cloning an <code>Attr</code> directly, as opposed to be cloned as part of an <code>Element</code> cloning operation, returns a specified attribute (<code>specified</code> is <code>true</code>). Cloning an <code>Attr</code> always clones its children, since they represent its value, no matter whether this is a deep clone or not. Cloning an <code>EntityReference</code> automatically constructs its subtree if a corresponding <code>Entity</code> is available, no matter whether this is a deep clone or not. Cloning any other type of node simply returns a copy of this node. <br>Note that cloning an immutable subtree results in a mutable copy, but the children of an <code>EntityReference</code> clone are readonly . In addition, clones of unspecified <code>Attr</code> nodes are specified. And, cloning <code>Document</code>, <code>DocumentType</code>, <code>Entity</code>, and <code>Notation</code> nodes is implementation dependent.
				 * @param deep If <code>true</code>, recursively clone the subtree under
				 */
				cloneNode(deep: boolean): org.w3c.dom.INode;
				/**
				 * Puts all <code>Text</code> nodes in the full depth of the sub-tree underneath this <code>Node</code>, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates <code>Text</code> nodes, i.e., there are neither adjacent <code>Text</code> nodes nor empty <code>Text</code> nodes. This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>] lookups) that depend on a particular document tree structure are to be used. If the parameter "normalize-characters" of the <code>DOMConfiguration</code> object attached to the <code>Node.ownerDocument</code> is <code>true</code>, this method will also fully normalize the characters of the <code>Text</code> nodes. <p ><b>Note:</b> In cases where the document contains <code>CDATASections</code>, the normalize operation alone may not be sufficient, since XPointers do not differentiate between <code>Text</code> nodes and <code>CDATASection</code> nodes. DOM Level 3
				 */
				normalize(): void;
				/**
				 * Tests whether the DOM implementation implements a specific feature and that feature is supported by this node, as specified in .
				 * @param feature The name of the feature to test.
				 * @param version This is the version number of the feature to test.
				 */
				isSupported(feature: string, version: string): boolean;
				/**
				 * The namespace URI of this node, or <code>null</code> if it is unspecified (see ). <br>This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] an attribute does not inherit its namespace from the element it is attached to. If an attribute is not explicitly given a namespace, it simply has no namespace. DOM Level 2
				 */
				getNamespaceURI(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOM Level 2
				 */
				getPrefix(): string;
				/**
				 * The namespace prefix of this node, or <code>null</code> if it is unspecified. When it is defined to be <code>null</code>, setting it has no effect, including if the node is read-only. <br>Note that setting this attribute, when permitted, changes the <code>nodeName</code> attribute, which holds the qualified name, as well as the <code>tagName</code> and <code>name</code> attributes of the <code>Element</code> and <code>Attr</code> interfaces, when applicable. <br>Setting the prefix to <code>null</code> makes it unspecified, setting it to an empty string is implementation dependent. <br>Note also that changing the prefix of an attribute that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the <code>namespaceURI</code> and <code>localName</code> do not change. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>createElement</code> from the <code>Document</code> interface, this is always <code>null</code>. DOMException INVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character according to the XML version in use specified in the <code>Document.xmlVersion</code> attribute. <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly. <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is malformed per the Namespaces in XML specification, if the <code>namespaceURI</code> of this node is <code>null</code>, if the specified prefix is "xml" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/XML/1998/namespace'> http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>] . DOM Level 2
				 */
				setPrefix(prefix: string): void;
				/**
				 * Returns the local part of the qualified name of this node. <br>For nodes of any type other than <code>ELEMENT_NODE</code> and <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1 method, such as <code>Document.createElement()</code>, this is always <code>null</code>. DOM Level 2
				 */
				getLocalName(): string;
				/**
				 * Returns whether this node (if it is an element) has any attributes.
				 */
				hasAttributes(): boolean;
				/**
				 * The absolute base URI of this node or <code>null</code> if the implementation wasn't able to obtain an absolute URI. This value is computed as described in . However, when the <code>Document</code> supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>] , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the <code>documentURI</code> attribute from the <code>Document</code> interface otherwise. DOM Level 3
				 */
				getBaseURI(): string;
				/**
				 * Compares the reference node, i.e. the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.
				 * @param other The node to compare against the reference node.
				 */
				compareDocumentPosition(other: org.w3c.dom.INode): number;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a <code>DOMString</code> variable on the implementation platform. DOM Level 3
				 */
				getTextContent(): string;
				/**
				 * This attribute returns the text content of this node and its descendants. When it is defined to be <code>null</code>, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or <code>null</code>, replaced by a single <code>Text</code> node containing the string this attribute is set to. <br> On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute <code>Text.isElementContentWhitespace</code>). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content. <br>The string returned is made of the text content of this node depending on its type, as defined below: <table border='1' cellpadding='3'> <tr> <th>Node type</th> <th>Content</th> </tr> <tr> <td valign='top' rowspan='1' colspan='1'> ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE</td> <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code> attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.</td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE</td> <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td> </tr> <tr> <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE</td> <td valign='top' rowspan='1' colspan='1'><em>null</em></td> </tr> </table> DOMException NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. DOM Level 3
				 */
				setTextContent(textContent: string): void;
				/**
				 * Returns whether this node is the same node as the given one. <br>This method provides a way to determine whether two <code>Node</code> references returned by the implementation reference the same object. When two <code>Node</code> references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.
				 * @param other The node to test against.
				 */
				isSameNode(other: org.w3c.dom.INode): boolean;
				/**
				 * Look up the prefix associated to the given namespace URI, starting from this node. The default namespace declarations are ignored by this method. <br>See for details on the algorithm used by this method.
				 * @param namespaceURI The namespace URI to look for.
				 */
				lookupPrefix(namespaceURI: string): string;
				/**
				 * This method checks if the specified <code>namespaceURI</code> is the default namespace or not.
				 * @param namespaceURI The namespace URI to look for.
				 */
				isDefaultNamespace(namespaceURI: string): boolean;
				/**
				 * Look up the namespace URI associated to the given prefix, starting from this node. <br>See for details on the algorithm used by this method.
				 * @param prefix The prefix to look for. If this parameter is
				 */
				lookupNamespaceURI(prefix: string): string;
				/**
				 * Tests whether two nodes are equal. <br>This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested with <code>Node.isSameNode()</code>. All nodes that are the same will also be equal, though the reverse may not be true. <br>Two nodes are equal if and only if the following conditions are satisfied: <ul> <li>The two nodes are of the same type. </li> <li>The following string attributes are equal: <code>nodeName</code>, <code>localName</code>, <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code> . This is: they are both <code>null</code>, or they have the same length and are character for character identical. </li> <li>The <code>attributes</code> <code>NamedNodeMaps</code> are equal. This is: they are both <code>null</code>, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index. </li> <li>The <code>childNodes</code> <code>NodeLists</code> are equal. This is: they are both <code>null</code>, or they have the same length and contain equal nodes at the same index. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared. </li> </ul> <br>For two <code>DocumentType</code> nodes to be equal, the following conditions must also be satisfied: <ul> <li>The following string attributes are equal: <code>publicId</code>, <code>systemId</code>, <code>internalSubset</code>. </li> <li>The <code>entities</code> <code>NamedNodeMaps</code> are equal. </li> <li>The <code>notations</code> <code>NamedNodeMaps</code> are equal. </li> </ul> <br>On the other hand, the following do not affect equality: the <code>ownerDocument</code>, <code>baseURI</code>, and <code>parentNode</code> attributes, the <code>specified</code> attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code> attribute for <code>Attr</code> and <code>Element</code> nodes, the <code>Text.isElementContentWhitespace</code> attribute for <code>Text</code> nodes, as well as any user data or event listeners registered on the nodes. <p ><b>Note:</b> As a general rule, anything not mentioned in the description above is not significant in consideration of equality checking. Note that future versions of this specification may take into account more attributes and implementations conform to this specification are expected to be updated accordingly.
				 * @param arg The node to compare equality with.
				 */
				isEqualNode(arg: org.w3c.dom.INode): boolean;
				/**
				 * This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in . The specialized object may also be obtained by using binding-specific casting methods but is not necessarily expected to, as discussed in . This method also allow the implementation to provide specialized objects which do not support the <code>Node</code> interface.
				 * @param feature The name of the feature requested. Note that any plus
				 * @param version This is the version number of the feature to test.
				 */
				getFeature(feature: string, version: string): any;
				/**
				 * Associate an object to a key on this node. The object can later be retrieved from this node by calling <code>getUserData</code> with the same key.
				 * @param key The key to associate the object to.
				 * @param data The object to associate to the given key, or
				 * @param handler The handler to associate to that key, or
				 */
				setUserData(key: string, data: any, handler: org.w3c.dom.IUserDataHandler): any;
				/**
				 * Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling <code>setUserData</code> with the same key.
				 * @param key The key the object is associated to.
				 */
				getUserData(key: string): any;
			}
		}
		export module domts {
			/**
			 * This class implements the generic parser and configuation abstract class for the DOM implementation of Batik.
			 */
			export class BatikTestDocumentBuilderFactory extends org.w3c.domts.DOMTestDocumentBuilderFactory {
				/**
				 * Creates a Batik implementation of DOMTestDocumentBuilderFactory.
				 * @param settings array of settings, may be null.
				 */
				constructor(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.BatikTestDocumentBuilderFactory>;
				/**
				 * Create new instance of document builder factory reflecting specified settings.
				 * @param newSettings new settings
				 */
				public newInstance(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				/**
				 * Loads specified URL.
				 * @param url url to load
				 */
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				/**
				 * Gets DOMImplementation.
				 */
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				/**
				 * Determines if the implementation supports the specified feature.
				 * @param feature Feature
				 * @param version Version
				 */
				public hasFeature(feature: string, version: string): boolean;
				/**
				 * Adds any specialized extension required by the implementation.
				 * @param testFileName file name from test
				 */
				public addExtension(testFileName: string): string;
				/**
				 * Indicates whether the implementation combines text and cdata nodes.
				 */
				public isCoalescing(): boolean;
				/**
				 * Indicates whether the implementation expands entity references.
				 */
				public isExpandEntityReferences(): boolean;
				/**
				 * Indicates whether the implementation ignores element content whitespace.
				 */
				public isIgnoringElementContentWhitespace(): boolean;
				/**
				 * Indicates whether the implementation is namespace aware.
				 */
				public isNamespaceAware(): boolean;
				/**
				 * Indicates whether the implementation is validating.
				 */
				public isValidating(): boolean;
				/**
				 * Gets content type.
				 */
				public getContentType(): string;
			}
			/**
			 * This class implements the generic parser and configuation abstract class for the DOM L3 implementations
			 */
			export class LSDocumentBuilderFactory extends org.w3c.domts.DOMTestDocumentBuilderFactory {
				/**
				 * Creates a LS implementation of DOMTestDocumentBuilderFactory.
				 * @param settings array of settings, may be null.
				 */
				constructor(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.LSDocumentBuilderFactory>;
				/**
				 * Create new instance of document builder factory reflecting specified settings
				 * @param newSettings new settings
				 */
				public newInstance(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				/**
				 * Loads specified URL
				 * @param url url to load
				 */
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				/**
				 * Gets DOMImplementation
				 */
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				/**
				 * Determines if the implementation supports the specified feature
				 * @param feature Feature
				 * @param version Version
				 */
				public hasFeature(feature: string, version: string): boolean;
				/**
				 * Indicates whether the implementation combines text and cdata nodes.
				 */
				public isCoalescing(): boolean;
				/**
				 * Indicates whether the implementation expands entity references.
				 */
				public isExpandEntityReferences(): boolean;
				/**
				 * Indicates whether the implementation ignores element content whitespace.
				 */
				public isIgnoringElementContentWhitespace(): boolean;
				/**
				 * Indicates whether the implementation is namespace aware.
				 */
				public isNamespaceAware(): boolean;
				/**
				 * Indicates whether the implementation is validating.
				 */
				public isValidating(): boolean;
			}
			export module LSDocumentBuilderFactory {
				/**
				 * A strategy for the validation settings which require two DOMConfigurure parameters being set, 'validate' and 'schema-type'
				 */
				export class LSValidateStrategy extends org.w3c.domts.LSDocumentBuilderFactory.LSParameterStrategy {
					/**
					 * Constructor
					 * @param schemaType schema type
					 */
					constructor(schemaType: string);
					static class: java.lang.Class<org.w3c.domts.LSDocumentBuilderFactory.LSValidateStrategy>;
					/**
					 * Apply setting
					 */
					public applySetting(setting: org.w3c.domts.DocumentBuilderSetting, parser: any): void;
					/**
					 * Get setting value
					 */
					public hasSetting(parser: any): boolean;
				}
				export class LSStrategy extends java.lang.Object {
					static class: java.lang.Class<org.w3c.domts.LSDocumentBuilderFactory.LSStrategy>;
					/**
					 * Applies setting to LSParser
					 * @param setting setting
					 * @param parser parser
					 */
					public applySetting(setting: org.w3c.domts.DocumentBuilderSetting, parser: any): void;
					/**
					 * Gets state of setting for parser
					 * @param parser parser
					 */
					public hasSetting(parser: any): boolean;
				}
				/**
				 * A strategy for a setting that can be applied by setting a DOMConfiguration parameter.
				 */
				export class LSParameterStrategy extends org.w3c.domts.LSDocumentBuilderFactory.LSStrategy {
					/**
					 * Constructor
					 * @param lsParameter corresponding DOMConfiguration parameter
					 * @param inverse if true, DOMConfiguration value is the inverse
					 */
					constructor(lsParameter: string, inverse: boolean);
					static class: java.lang.Class<org.w3c.domts.LSDocumentBuilderFactory.LSParameterStrategy>;
					protected static setParameter(setting: org.w3c.domts.DocumentBuilderSetting, parser: any, parameter: string, value: any): void;
					protected static getParameter(parser: any, parameter: string): any;
					/**
					 * Apply setting
					 */
					public applySetting(setting: org.w3c.domts.DocumentBuilderSetting, parser: any): void;
					/**
					 * Get value of setting
					 */
					public hasSetting(parser: any): boolean;
				}
				/**
				 * Represents a fixed setting, for example, all Java implementations supported signed values.
				 */
				export class LSFixedStrategy extends org.w3c.domts.LSDocumentBuilderFactory.LSStrategy {
					/**
					 * Constructor
					 * @param fixedValue settingName setting name
					 */
					constructor(fixedValue: boolean);
					static class: java.lang.Class<org.w3c.domts.LSDocumentBuilderFactory.LSFixedStrategy>;
					/**
					 * Apply setting. Throws exception if requested setting does not match fixed value.
					 */
					public applySetting(setting: org.w3c.domts.DocumentBuilderSetting, parser: any): void;
					/**
					 * Gets fixed value for setting
					 */
					public hasSetting(parser: any): boolean;
				}
			}
			/**
			 * This class captures the parameters to one invocation of UserDataHandler.handle.
			 */
			export class UserDataNotification extends java.lang.Object {
				/**
				 * Public constructor
				 */
				constructor(operation: number, key: string, data: any, src: org.w3c.dom.INode, dst: org.w3c.dom.INode);
				static class: java.lang.Class<org.w3c.domts.UserDataNotification>;
				/**
				 * Get value of operation parameter
				 */
				public getOperation(): number;
				/**
				 * Gets value of key parameter
				 */
				public getKey(): string;
				/**
				 * Gets value of data parameter
				 */
				public getData(): any;
				/**
				 * Gets value of src parameter
				 */
				public getSrc(): org.w3c.dom.INode;
				/**
				 * Gets value of dst parameter
				 */
				public getDst(): org.w3c.dom.INode;
			}
			/**
			 * Encapsulates a concrete load exception such as a SAX exception Curt Arnold 2 Feb 2002
			 */
			export class DOMTestLoadException extends java.lang.Exception {
				/**
				 * Constructor
				 * @param innerException should not be null
				 */
				constructor(innerException: java.lang.Throwable);
				static class: java.lang.Class<org.w3c.domts.DOMTestLoadException>;
				public toString(): string;
			}
			/**
			 * Abstract base class for all test suites (that is any collection of DOMTest's)
			 */
			export class DOMTestSuite extends org.w3c.domts.DOMTest {
				static class: java.lang.Class<org.w3c.domts.DOMTestSuite>;
				/**
				 * Adds a test to the test suite. This method can only be run after the test suite has been attached to a test framework since each framework implements test suites in different manners.
				 */
				public build(sink: org.w3c.domts.IDOMTestSink): void;
			}
			/**
			 * This interface provides services typically provided by a test framework
			 */
			export class DOMTestFramework implements org.w3c.domts.IDOMTestFramework {
				constructor(implementation: org.w3c.domts.IDOMTestFramework);
				public hasFeature(docBuilder: javax.xml.parsers.DocumentBuilder, feature: string, version: string): boolean;
				public wait(millisecond: number): void;
				public fail(test: org.w3c.domts.DOMTestCase, assertID: string): void;
				public assertTrue(test: org.w3c.domts.DOMTestCase, assertID: string, actual: boolean): void;
				public assertFalse(test: org.w3c.domts.DOMTestCase, assertID: string, actual: boolean): void;
				public assertNull(test: org.w3c.domts.DOMTestCase, assertID: string, actual: any): void;
				public assertNotNull(test: org.w3c.domts.DOMTestCase, assertID: string, actual: any): void;
				public assertSame(test: org.w3c.domts.DOMTestCase, assertID: string, expected: any, actual: any): void;
				public assertInstanceOf(test: org.w3c.domts.DOMTestCase, assertID: string, obj: any, cls: java.lang.Class<any>): void;
				public assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: org.w3c.dom.INodeList): void;
				public assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: org.w3c.dom.INamedNodeMap): void;
				public assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: java.util.ICollection<any>): void;
				public assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				public assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.IList<any>, actual: java.util.IList<any>): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: number, actual: number): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: boolean, actual: boolean): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				public assertNotEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: number, actual: number): void;
				public assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: boolean, actual: boolean): void;
				public same(expected: any, actual: any): boolean;
				public equalsIgnoreCase(expected: string, actual: string): boolean;
				public equalsIgnoreCase(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				public equalsIgnoreCase(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				public equals(expected: string, actual: string): boolean;
				public equals(expected: number, actual: number): boolean;
				public equals(expected: boolean, actual: boolean): boolean;
				public equals(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				public equals(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				public size(collection: java.util.ICollection<any>): number;
				public size(collection: org.w3c.dom.INamedNodeMap): number;
				public size(collection: org.w3c.dom.INodeList): number;
			}
			/**
			 * This class implements the generic parser and configuation abstract class for JAXP supporting parsers.
			 */
			export class JAXPDOMTestDocumentBuilderFactory extends org.w3c.domts.DOMTestDocumentBuilderFactory {
				/**
				 * Creates a JAXP implementation of DOMTestDocumentBuilderFactory.
				 * @param baseFactory factory null for default JAXP provider. If not null,
				 * @param settings array of settings, may be null.
				 */
				constructor(baseFactory: javax.xml.parsers.DocumentBuilderFactory, settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.JAXPDOMTestDocumentBuilderFactory>;
				LoadErrorHandler: {
	new (): org.w3c.domts.JAXPDOMTestDocumentBuilderFactory.LoadErrorHandler;
};
				protected createInstance(newFactory: javax.xml.parsers.DocumentBuilderFactory, mergedSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public newInstance(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				public hasFeature(feature: string, version: string): boolean;
				public isCoalescing(): boolean;
				public isExpandEntityReferences(): boolean;
				public isIgnoringElementContentWhitespace(): boolean;
				public isNamespaceAware(): boolean;
				public isValidating(): boolean;
				public static getConfiguration1(): native.Array<org.w3c.domts.DocumentBuilderSetting>;
				public static getConfiguration2(): native.Array<org.w3c.domts.DocumentBuilderSetting>;
			}
			export module JAXPDOMTestDocumentBuilderFactory {
				export class LoadErrorHandler extends java.lang.Object implements org.xml.sax.IErrorHandler {
					static class: java.lang.Class<org.w3c.domts.JAXPDOMTestDocumentBuilderFactory.LoadErrorHandler>;
					public error(ex: org.xml.sax.SAXParseException): void;
					public warning(ex: org.xml.sax.SAXParseException): void;
					public fatalError(ex: org.xml.sax.SAXParseException): void;
					public getFirstException(): org.xml.sax.SAXException;
				}
			}
			/**
			 * Wrapper class to make the W3C DOM test work as JUnit test cases. Note this file has been generated, so the method names may be cryptic and also be longer than 80 characters per line.
			 */
			export class JunitTestCases {
				constructor();
				static class: java.lang.Class<org.w3c.domts.JunitTestCases>;
				public test_level1_core_attrcreatedocumentfragment(): void;
				public test_level1_core_attrcreatetextnode(): void;
				public test_level1_core_attrcreatetextnode2(): void;
				public test_level1_core_attreffectivevalue(): void;
				public test_level1_core_attrname(): void;
				public test_level1_core_attrnextsiblingnull(): void;
				public test_level1_core_attrparentnodenull(): void;
				public test_level1_core_attrprevioussiblingnull(): void;
				public test_level1_core_attrspecifiedvalue(): void;
				public test_level1_core_attrspecifiedvaluechanged(): void;
				public test_level1_core_cdatasectiongetdata(): void;
				public test_level1_core_characterdataappenddata(): void;
				public test_level1_core_characterdataappenddatagetdata(): void;
				public test_level1_core_characterdatadeletedatabegining(): void;
				public test_level1_core_characterdatadeletedataend(): void;
				public test_level1_core_characterdatadeletedataexceedslength(): void;
				public test_level1_core_characterdatadeletedatagetlengthanddata(): void;
				public test_level1_core_characterdatadeletedatamiddle(): void;
				public test_level1_core_characterdatagetdata(): void;
				public test_level1_core_characterdatagetlength(): void;
				public test_level1_core_characterdatainsertdatabeginning(): void;
				public test_level1_core_characterdatainsertdataend(): void;
				public test_level1_core_characterdatainsertdatamiddle(): void;
				public test_level1_core_characterdatareplacedatabegining(): void;
				public test_level1_core_characterdatareplacedataend(): void;
				public test_level1_core_characterdatareplacedataexceedslengthofarg(): void;
				public test_level1_core_characterdatareplacedataexceedslengthofdata(): void;
				public test_level1_core_characterdatareplacedatamiddle(): void;
				public test_level1_core_characterdatasubstringvalue(): void;
				public test_level1_core_commentgetcomment(): void;
				public test_level1_core_documentcreatecdatasection(): void;
				public test_level1_core_documentcreatecomment(): void;
				public test_level1_core_documentcreatedocumentfragment(): void;
				public test_level1_core_documentcreateelement(): void;
				public test_level1_core_documentcreateelementcasesensitive(): void;
				public test_level1_core_documentcreateentityreference(): void;
				public test_level1_core_documentcreateprocessinginstruction(): void;
				public test_level1_core_documentcreatetextnode(): void;
				public test_level1_core_documentgetdoctype(): void;
				public test_level1_core_documentgetdoctypenodtd(): void;
				public test_level1_core_documentgetelementsbytagnamelength(): void;
				public test_level1_core_documentgetelementsbytagnamevalue(): void;
				public test_level1_core_documentgetimplementation(): void;
				public test_level1_core_documentgetrootnode(): void;
				public test_level1_core_documentinvalidcharacterexceptioncreateattribute(): void;
				public test_level1_core_documentinvalidcharacterexceptioncreateelement(): void;
				public test_level1_core_documenttypegetdoctype(): void;
				public test_level1_core_domimplementationfeaturenoversion(): void;
				public test_level1_core_domimplementationfeaturenull(): void;
				public test_level1_core_domimplementationfeaturexml(): void;
				public test_level1_core_elementaddnewattribute(): void;
				public test_level1_core_elementassociatedattribute(): void;
				public test_level1_core_elementchangeattributevalue(): void;
				public test_level1_core_elementgetattributenode(): void;
				public test_level1_core_elementgetattributenodenull(): void;
				public test_level1_core_elementgetelementsbytagname(): void;
				public test_level1_core_elementgetelementsbytagnameaccessnodelist(): void;
				public test_level1_core_elementgetelementsbytagnamenomatch(): void;
				public test_level1_core_elementgettagname(): void;
				public test_level1_core_elementinuseattributeerr(): void;
				public test_level1_core_elementinvalidcharacterexception(): void;
				public test_level1_core_elementnormalize(): void;
				public test_level1_core_elementnotfounderr(): void;
				public test_level1_core_elementremoveattributeaftercreate(): void;
				public test_level1_core_elementremoveattributenode(): void;
				public test_level1_core_elementreplaceexistingattributegevalue(): void;
				public test_level1_core_elementretrieveattrvalue(): void;
				public test_level1_core_elementretrievetagname(): void;
				public test_level1_core_elementsetattributenodenull(): void;
				public test_level1_core_elementwrongdocumenterr(): void;
				public test_level1_core_namednodemapchildnoderange(): void;
				public test_level1_core_namednodemapgetnameditem(): void;
				public test_level1_core_namednodemapinuseattributeerr(): void;
				public test_level1_core_namednodemapnotfounderr(): void;
				public test_level1_core_namednodemapnumberofnodes(): void;
				public test_level1_core_namednodemapremovenameditemreturnnodevalue(): void;
				public test_level1_core_namednodemapreturnattrnode(): void;
				public test_level1_core_namednodemapreturnfirstitem(): void;
				public test_level1_core_namednodemapreturnlastitem(): void;
				public test_level1_core_namednodemapreturnnull(): void;
				public test_level1_core_namednodemapsetnameditem(): void;
				public test_level1_core_namednodemapsetnameditemreturnvalue(): void;
				public test_level1_core_namednodemapsetnameditemwithnewvalue(): void;
				public test_level1_core_namednodemapwrongdocumenterr(): void;
				public test_level1_core_nodeappendchild(): void;
				public test_level1_core_nodeappendchildgetnodename(): void;
				public test_level1_core_nodeappendchildnewchilddiffdocument(): void;
				public test_level1_core_nodeappendchildnodeancestor(): void;
				public test_level1_core_nodeattributenodeattribute(): void;
				public test_level1_core_nodeattributenodename(): void;
				public test_level1_core_nodeattributenodetype(): void;
				public test_level1_core_nodeattributenodevalue(): void;
				public test_level1_core_nodecdatasectionnodeattribute(): void;
				public test_level1_core_nodecdatasectionnodename(): void;
				public test_level1_core_nodecdatasectionnodetype(): void;
				public test_level1_core_nodecdatasectionnodevalue(): void;
				public test_level1_core_nodechildnodes(): void;
				public test_level1_core_nodechildnodesempty(): void;
				public test_level1_core_nodecommentnodeattributes(): void;
				public test_level1_core_nodecommentnodename(): void;
				public test_level1_core_nodecommentnodetype(): void;
				public test_level1_core_nodecommentnodevalue(): void;
				public test_level1_core_nodedocumentfragmentnodename(): void;
				public test_level1_core_nodedocumentfragmentnodetype(): void;
				public test_level1_core_nodedocumentfragmentnodevalue(): void;
				public test_level1_core_nodedocumentnodeattribute(): void;
				public test_level1_core_nodedocumentnodename(): void;
				public test_level1_core_nodedocumentnodetype(): void;
				public test_level1_core_nodedocumentnodevalue(): void;
				public test_level1_core_nodedocumenttypenodename(): void;
				public test_level1_core_nodedocumenttypenodetype(): void;
				public test_level1_core_nodedocumenttypenodevalue(): void;
				public test_level1_core_nodeelementnodeattributes(): void;
				public test_level1_core_nodeelementnodename(): void;
				public test_level1_core_nodeelementnodetype(): void;
				public test_level1_core_nodeelementnodevalue(): void;
				public test_level1_core_nodeentityreferencenodeattributes(): void;
				public test_level1_core_nodeentityreferencenodename(): void;
				public test_level1_core_nodeentityreferencenodetype(): void;
				public test_level1_core_nodeentityreferencenodevalue(): void;
				public test_level1_core_nodegetfirstchild(): void;
				public test_level1_core_nodegetfirstchildnull(): void;
				public test_level1_core_nodegetlastchild(): void;
				public test_level1_core_nodegetlastchildnull(): void;
				public test_level1_core_nodegetnextsibling(): void;
				public test_level1_core_nodegetnextsiblingnull(): void;
				public test_level1_core_nodegetownerdocument(): void;
				public test_level1_core_nodegetownerdocumentnull(): void;
				public test_level1_core_nodegetprevioussibling(): void;
				public test_level1_core_nodegetprevioussiblingnull(): void;
				public test_level1_core_nodehaschildnodes(): void;
				public test_level1_core_nodehaschildnodesfalse(): void;
				public test_level1_core_nodeinsertbeforenewchilddiffdocument(): void;
				public test_level1_core_nodeinsertbeforenewchildexists(): void;
				public test_level1_core_nodeinsertbeforenodeancestor(): void;
				public test_level1_core_nodeinsertbeforenodename(): void;
				public test_level1_core_nodelistindexequalzero(): void;
				public test_level1_core_nodelistindexgetlength(): void;
				public test_level1_core_nodelistindexgetlengthofemptylist(): void;
				public test_level1_core_nodelistindexnotzero(): void;
				public test_level1_core_nodelistreturnfirstitem(): void;
				public test_level1_core_nodelistreturnlastitem(): void;
				public test_level1_core_nodelisttraverselist(): void;
				public test_level1_core_nodeparentnode(): void;
				public test_level1_core_nodeparentnodenull(): void;
				public test_level1_core_nodeprocessinginstructionnodeattributes(): void;
				public test_level1_core_nodeprocessinginstructionnodename(): void;
				public test_level1_core_nodeprocessinginstructionnodetype(): void;
				public test_level1_core_nodeprocessinginstructionnodevalue(): void;
				public test_level1_core_noderemovechild(): void;
				public test_level1_core_noderemovechildgetnodename(): void;
				public test_level1_core_nodereplacechildnewchilddiffdocument(): void;
				public test_level1_core_nodereplacechildnodeancestor(): void;
				public test_level1_core_nodereplacechildnodename(): void;
				public test_level1_core_nodetextnodeattribute(): void;
				public test_level1_core_nodetextnodename(): void;
				public test_level1_core_nodetextnodetype(): void;
				public test_level1_core_nodetextnodevalue(): void;
				public test_level1_core_processinginstructiongetdata(): void;
				public test_level1_core_processinginstructiongettarget(): void;
				public test_level1_core_textsplittextfour(): void;
				public test_level1_core_textsplittextone(): void;
				public test_level1_core_textsplittextthree(): void;
				public test_level1_core_textwithnomarkup(): void;
				public test_level1_core_nodevalue01(): void;
				public test_level1_core_nodevalue03(): void;
				public test_level1_core_nodevalue04(): void;
				public test_level1_core_nodevalue05(): void;
				public test_level1_core_nodevalue06(): void;
				public test_level1_core_hc_attrcreatedocumentfragment(): void;
				public test_level1_core_hc_attrcreatetextnode(): void;
				public test_level1_core_hc_attrcreatetextnode2(): void;
				public test_level1_core_hc_attreffectivevalue(): void;
				public test_level1_core_hc_attrname(): void;
				public test_level1_core_hc_attrnextsiblingnull(): void;
				public test_level1_core_hc_attrparentnodenull(): void;
				public test_level1_core_hc_attrprevioussiblingnull(): void;
				public test_level1_core_hc_attrspecifiedvalue(): void;
				public test_level1_core_hc_attrspecifiedvaluechanged(): void;
				public test_level1_core_hc_characterdataappenddata(): void;
				public test_level1_core_hc_characterdataappenddatagetdata(): void;
				public test_level1_core_hc_characterdatadeletedatabegining(): void;
				public test_level1_core_hc_characterdatadeletedataend(): void;
				public test_level1_core_hc_characterdatadeletedataexceedslength(): void;
				public test_level1_core_hc_characterdatadeletedatagetlengthanddata(): void;
				public test_level1_core_hc_characterdatadeletedatamiddle(): void;
				public test_level1_core_hc_characterdatagetdata(): void;
				public test_level1_core_hc_characterdatagetlength(): void;
				public test_level1_core_hc_characterdatainsertdatabeginning(): void;
				public test_level1_core_hc_characterdatainsertdataend(): void;
				public test_level1_core_hc_characterdatainsertdatamiddle(): void;
				public test_level1_core_hc_characterdatareplacedatabegining(): void;
				public test_level1_core_hc_characterdatareplacedataend(): void;
				public test_level1_core_hc_characterdatareplacedataexceedslengthofarg(): void;
				public test_level1_core_hc_characterdatareplacedataexceedslengthofdata(): void;
				public test_level1_core_hc_characterdatareplacedatamiddle(): void;
				public test_level1_core_hc_characterdatasubstringvalue(): void;
				public test_level1_core_hc_commentgetcomment(): void;
				public test_level1_core_hc_documentcreatecomment(): void;
				public test_level1_core_hc_documentcreatedocumentfragment(): void;
				public test_level1_core_hc_documentcreateelement(): void;
				public test_level1_core_hc_documentcreateelementcasesensitive(): void;
				public test_level1_core_hc_documentcreatetextnode(): void;
				public test_level1_core_hc_documentgetdoctype(): void;
				public test_level1_core_hc_documentgetelementsbytagnamelength(): void;
				public test_level1_core_hc_documentgetelementsbytagnametotallength(): void;
				public test_level1_core_hc_documentgetelementsbytagnamevalue(): void;
				public test_level1_core_hc_documentgetimplementation(): void;
				public test_level1_core_hc_documentgetrootnode(): void;
				public test_level1_core_hc_documentinvalidcharacterexceptioncreateattribute(): void;
				public test_level1_core_hc_documentinvalidcharacterexceptioncreateattribute1(): void;
				public test_level1_core_hc_documentinvalidcharacterexceptioncreateelement(): void;
				public test_level1_core_hc_documentinvalidcharacterexceptioncreateelement1(): void;
				public test_level1_core_hc_domimplementationfeaturenoversion(): void;
				public test_level1_core_hc_domimplementationfeaturenull(): void;
				public test_level1_core_hc_domimplementationfeaturexml(): void;
				public test_level1_core_hc_elementaddnewattribute(): void;
				public test_level1_core_hc_elementassociatedattribute(): void;
				public test_level1_core_hc_elementchangeattributevalue(): void;
				public test_level1_core_hc_elementgetattributenode(): void;
				public test_level1_core_hc_elementgetattributenodenull(): void;
				public test_level1_core_hc_elementgetelementsbytagname(): void;
				public test_level1_core_hc_elementgetelementsbytagnameaccessnodelist(): void;
				public test_level1_core_hc_elementgetelementsbytagnamenomatch(): void;
				public test_level1_core_hc_elementgettagname(): void;
				public test_level1_core_hc_elementinuseattributeerr(): void;
				public test_level1_core_hc_elementinvalidcharacterexception(): void;
				public test_level1_core_hc_elementinvalidcharacterexception1(): void;
				public test_level1_core_hc_elementnormalize(): void;
				public test_level1_core_hc_elementnotfounderr(): void;
				public test_level1_core_hc_elementremoveattribute(): void;
				public test_level1_core_hc_elementremoveattributeaftercreate(): void;
				public test_level1_core_hc_elementremoveattributenode(): void;
				public test_level1_core_hc_elementreplaceexistingattributegevalue(): void;
				public test_level1_core_hc_elementretrieveattrvalue(): void;
				public test_level1_core_hc_elementretrievetagname(): void;
				public test_level1_core_hc_elementsetattributenodenull(): void;
				public test_level1_core_hc_elementwrongdocumenterr(): void;
				public test_level1_core_hc_namednodemapgetnameditem(): void;
				public test_level1_core_hc_namednodemapinuseattributeerr(): void;
				public test_level1_core_hc_namednodemapnotfounderr(): void;
				public test_level1_core_hc_namednodemapremovenameditem(): void;
				public test_level1_core_hc_namednodemapreturnattrnode(): void;
				public test_level1_core_hc_namednodemapreturnnull(): void;
				public test_level1_core_hc_namednodemapsetnameditem(): void;
				public test_level1_core_hc_namednodemapsetnameditemreturnvalue(): void;
				public test_level1_core_hc_namednodemapsetnameditemwithnewvalue(): void;
				public test_level1_core_hc_namednodemapwrongdocumenterr(): void;
				public test_level1_core_hc_nodeappendchild(): void;
				public test_level1_core_hc_nodeappendchildgetnodename(): void;
				public test_level1_core_hc_nodeappendchildnewchilddiffdocument(): void;
				public test_level1_core_hc_nodeappendchildnodeancestor(): void;
				public test_level1_core_hc_nodeattributenodeattribute(): void;
				public test_level1_core_hc_nodeattributenodename(): void;
				public test_level1_core_hc_nodeattributenodetype(): void;
				public test_level1_core_hc_nodeattributenodevalue(): void;
				public test_level1_core_hc_nodechildnodes(): void;
				public test_level1_core_hc_nodechildnodesempty(): void;
				public test_level1_core_hc_nodecommentnodeattributes(): void;
				public test_level1_core_hc_nodecommentnodename(): void;
				public test_level1_core_hc_nodecommentnodetype(): void;
				public test_level1_core_hc_nodecommentnodevalue(): void;
				public test_level1_core_hc_nodedocumentfragmentnodename(): void;
				public test_level1_core_hc_nodedocumentfragmentnodetype(): void;
				public test_level1_core_hc_nodedocumentfragmentnodevalue(): void;
				public test_level1_core_hc_nodedocumentnodeattribute(): void;
				public test_level1_core_hc_nodedocumentnodename(): void;
				public test_level1_core_hc_nodedocumentnodetype(): void;
				public test_level1_core_hc_nodedocumentnodevalue(): void;
				public test_level1_core_hc_nodeelementnodename(): void;
				public test_level1_core_hc_nodeelementnodetype(): void;
				public test_level1_core_hc_nodeelementnodevalue(): void;
				public test_level1_core_hc_nodegetfirstchild(): void;
				public test_level1_core_hc_nodegetfirstchildnull(): void;
				public test_level1_core_hc_nodegetlastchild(): void;
				public test_level1_core_hc_nodegetlastchildnull(): void;
				public test_level1_core_hc_nodegetnextsibling(): void;
				public test_level1_core_hc_nodegetnextsiblingnull(): void;
				public test_level1_core_hc_nodegetownerdocument(): void;
				public test_level1_core_hc_nodegetownerdocumentnull(): void;
				public test_level1_core_hc_nodegetprevioussibling(): void;
				public test_level1_core_hc_nodegetprevioussiblingnull(): void;
				public test_level1_core_hc_nodehaschildnodes(): void;
				public test_level1_core_hc_nodehaschildnodesfalse(): void;
				public test_level1_core_hc_nodeinsertbeforenewchilddiffdocument(): void;
				public test_level1_core_hc_nodeinsertbeforenodeancestor(): void;
				public test_level1_core_hc_nodeinsertbeforenodename(): void;
				public test_level1_core_hc_nodelistindexequalzero(): void;
				public test_level1_core_hc_nodelistindexgetlength(): void;
				public test_level1_core_hc_nodelistindexgetlengthofemptylist(): void;
				public test_level1_core_hc_nodelistindexnotzero(): void;
				public test_level1_core_hc_nodelistreturnfirstitem(): void;
				public test_level1_core_hc_nodelistreturnlastitem(): void;
				public test_level1_core_hc_nodelisttraverselist(): void;
				public test_level1_core_hc_nodeparentnode(): void;
				public test_level1_core_hc_nodeparentnodenull(): void;
				public test_level1_core_hc_noderemovechild(): void;
				public test_level1_core_hc_noderemovechildgetnodename(): void;
				public test_level1_core_hc_nodereplacechildnewchilddiffdocument(): void;
				public test_level1_core_hc_nodereplacechildnodeancestor(): void;
				public test_level1_core_hc_nodereplacechildnodename(): void;
				public test_level1_core_hc_nodetextnodeattribute(): void;
				public test_level1_core_hc_nodetextnodename(): void;
				public test_level1_core_hc_nodetextnodetype(): void;
				public test_level1_core_hc_nodetextnodevalue(): void;
				public test_level1_core_hc_nodevalue01(): void;
				public test_level1_core_hc_nodevalue03(): void;
				public test_level1_core_hc_nodevalue04(): void;
				public test_level1_core_hc_nodevalue05(): void;
				public test_level1_core_hc_nodevalue06(): void;
				public test_level1_core_hc_textsplittextfour(): void;
				public test_level1_core_hc_textsplittextone(): void;
				public test_level1_core_hc_textsplittextthree(): void;
				public test_level1_core_hc_textwithnomarkup(): void;
				public test_level1_core_hc_attrappendchild2(): void;
				public test_level1_core_hc_attrappendchild4(): void;
				public test_level1_core_hc_attrinsertbefore5(): void;
				public test_level1_core_hc_attrinsertbefore7(): void;
				public test_level2_core_attrgetownerelement02(): void;
				public test_level2_core_attrgetownerelement03(): void;
				public test_level2_core_attrgetownerelement04(): void;
				public test_level2_core_attrgetownerelement05(): void;
				public test_level2_core_createAttributeNS01(): void;
				public test_level2_core_createAttributeNS02(): void;
				public test_level2_core_createAttributeNS03(): void;
				public test_level2_core_createAttributeNS04(): void;
				public test_level2_core_createAttributeNS05(): void;
				public test_level2_core_createDocument01(): void;
				public test_level2_core_createDocument02(): void;
				public test_level2_core_createDocument05(): void;
				public test_level2_core_createDocument06(): void;
				public test_level2_core_createDocument07(): void;
				public test_level2_core_createDocumentType01(): void;
				public test_level2_core_createDocumentType02(): void;
				public test_level2_core_createDocumentType03(): void;
				public test_level2_core_createElementNS01(): void;
				public test_level2_core_createElementNS02(): void;
				public test_level2_core_createElementNS03(): void;
				public test_level2_core_createElementNS04(): void;
				public test_level2_core_createElementNS05(): void;
				public test_level2_core_documentcreateattributeNS01(): void;
				public test_level2_core_documentcreateattributeNS02(): void;
				public test_level2_core_documentcreateattributeNS03(): void;
				public test_level2_core_documentcreateattributeNS04(): void;
				public test_level2_core_documentcreateattributeNS05(): void;
				public test_level2_core_documentcreateattributeNS06(): void;
				public test_level2_core_documentcreateattributeNS07(): void;
				public test_level2_core_documentcreateelementNS01(): void;
				public test_level2_core_documentcreateelementNS02(): void;
				public test_level2_core_documentcreateelementNS05(): void;
				public test_level2_core_documentcreateelementNS06(): void;
				public test_level2_core_documentgetelementbyid01(): void;
				public test_level2_core_documentgetelementsbytagnameNS01(): void;
				public test_level2_core_documentgetelementsbytagnameNS02(): void;
				public test_level2_core_documentgetelementsbytagnameNS03(): void;
				public test_level2_core_documentgetelementsbytagnameNS04(): void;
				public test_level2_core_documentgetelementsbytagnameNS05(): void;
				public test_level2_core_documentimportnode02(): void;
				public test_level2_core_documentimportnode05(): void;
				public test_level2_core_documentimportnode06(): void;
				public test_level2_core_documentimportnode07(): void;
				public test_level2_core_documentimportnode08(): void;
				public test_level2_core_documentimportnode09(): void;
				public test_level2_core_documentimportnode10(): void;
				public test_level2_core_documentimportnode11(): void;
				public test_level2_core_documentimportnode12(): void;
				public test_level2_core_documentimportnode13(): void;
				public test_level2_core_documentimportnode15(): void;
				public test_level2_core_documentimportnode17(): void;
				public test_level2_core_documentimportnode18(): void;
				public test_level2_core_documenttypeinternalSubset01(): void;
				public test_level2_core_documenttypepublicid01(): void;
				public test_level2_core_documenttypesystemid01(): void;
				public test_level2_core_domimplementationcreatedocument03(): void;
				public test_level2_core_domimplementationcreatedocument04(): void;
				public test_level2_core_domimplementationcreatedocument05(): void;
				public test_level2_core_domimplementationcreatedocument07(): void;
				public test_level2_core_domimplementationcreatedocumenttype01(): void;
				public test_level2_core_domimplementationcreatedocumenttype02(): void;
				public test_level2_core_domimplementationcreatedocumenttype04(): void;
				public test_level2_core_domimplementationfeaturecore(): void;
				public test_level2_core_domimplementationfeaturexmlversion2(): void;
				public test_level2_core_domimplementationhasfeature01(): void;
				public test_level2_core_domimplementationhasfeature02(): void;
				public test_level2_core_elementgetattributenodens01(): void;
				public test_level2_core_elementgetattributenodens02(): void;
				public test_level2_core_elementgetelementsbytagnamens02(): void;
				public test_level2_core_elementgetelementsbytagnamens04(): void;
				public test_level2_core_elementgetelementsbytagnamens05(): void;
				public test_level2_core_elementhasattribute01(): void;
				public test_level2_core_elementhasattribute03(): void;
				public test_level2_core_elementhasattribute04(): void;
				public test_level2_core_elementhasattributens02(): void;
				public test_level2_core_elementhasattributens03(): void;
				public test_level2_core_elementremoveattributens01(): void;
				public test_level2_core_elementsetattributenodens01(): void;
				public test_level2_core_elementsetattributenodens02(): void;
				public test_level2_core_elementsetattributenodens03(): void;
				public test_level2_core_elementsetattributenodens04(): void;
				public test_level2_core_elementsetattributenodens05(): void;
				public test_level2_core_elementsetattributens01(): void;
				public test_level2_core_elementsetattributens02(): void;
				public test_level2_core_elementsetattributens03(): void;
				public test_level2_core_elementsetattributens04(): void;
				public test_level2_core_elementsetattributens05(): void;
				public test_level2_core_elementsetattributens08(): void;
				public test_level2_core_elementsetattributensurinull(): void;
				public test_level2_core_getAttributeNS02(): void;
				public test_level2_core_getAttributeNS03(): void;
				public test_level2_core_getAttributeNS04(): void;
				public test_level2_core_getAttributeNS05(): void;
				public test_level2_core_getAttributeNodeNS01(): void;
				public test_level2_core_getAttributeNodeNS02(): void;
				public test_level2_core_getElementById02(): void;
				public test_level2_core_getElementsByTagNameNS02(): void;
				public test_level2_core_getElementsByTagNameNS03(): void;
				public test_level2_core_getElementsByTagNameNS04(): void;
				public test_level2_core_getElementsByTagNameNS05(): void;
				public test_level2_core_getElementsByTagNameNS06(): void;
				public test_level2_core_getElementsByTagNameNS07(): void;
				public test_level2_core_getElementsByTagNameNS08(): void;
				public test_level2_core_getElementsByTagNameNS09(): void;
				public test_level2_core_getElementsByTagNameNS10(): void;
				public test_level2_core_getElementsByTagNameNS11(): void;
				public test_level2_core_getElementsByTagNameNS12(): void;
				public test_level2_core_getElementsByTagNameNS13(): void;
				public test_level2_core_getElementsByTagNameNS14(): void;
				public test_level2_core_getNamedItemNS01(): void;
				public test_level2_core_getNamedItemNS02(): void;
				public test_level2_core_hasAttribute01(): void;
				public test_level2_core_hasAttribute03(): void;
				public test_level2_core_hasAttributeNS01(): void;
				public test_level2_core_hasAttributeNS02(): void;
				public test_level2_core_hasAttributeNS03(): void;
				public test_level2_core_hasAttributeNS05(): void;
				public test_level2_core_hasAttributes01(): void;
				public test_level2_core_hasAttributes02(): void;
				public test_level2_core_hc_namednodemapinvalidtype1(): void;
				public test_level2_core_hc_nodedocumentfragmentnormalize1(): void;
				public test_level2_core_hc_nodedocumentfragmentnormalize2(): void;
				public test_level2_core_importNode02(): void;
				public test_level2_core_importNode03(): void;
				public test_level2_core_importNode04(): void;
				public test_level2_core_importNode08(): void;
				public test_level2_core_importNode10(): void;
				public test_level2_core_importNode14(): void;
				public test_level2_core_importNode15(): void;
				public test_level2_core_importNode16(): void;
				public test_level2_core_importNode17(): void;
				public test_level2_core_internalSubset01(): void;
				public test_level2_core_isSupported01(): void;
				public test_level2_core_isSupported02(): void;
				public test_level2_core_isSupported04(): void;
				public test_level2_core_isSupported05(): void;
				public test_level2_core_isSupported06(): void;
				public test_level2_core_isSupported07(): void;
				public test_level2_core_isSupported09(): void;
				public test_level2_core_isSupported10(): void;
				public test_level2_core_isSupported11(): void;
				public test_level2_core_isSupported12(): void;
				public test_level2_core_isSupported13(): void;
				public test_level2_core_isSupported14(): void;
				public test_level2_core_localName01(): void;
				public test_level2_core_localName02(): void;
				public test_level2_core_localName03(): void;
				public test_level2_core_localName04(): void;
				public test_level2_core_namednodemapgetnameditemns02(): void;
				public test_level2_core_namednodemapgetnameditemns03(): void;
				public test_level2_core_namednodemapgetnameditemns04(): void;
				public test_level2_core_namednodemapgetnameditemns05(): void;
				public test_level2_core_namednodemapgetnameditemns06(): void;
				public test_level2_core_namednodemapremovenameditemns01(): void;
				public test_level2_core_namednodemapremovenameditemns03(): void;
				public test_level2_core_namednodemapremovenameditemns06(): void;
				public test_level2_core_namednodemapremovenameditemns07(): void;
				public test_level2_core_namednodemapremovenameditemns08(): void;
				public test_level2_core_namednodemapremovenameditemns09(): void;
				public test_level2_core_namednodemapsetnameditemns01(): void;
				public test_level2_core_namednodemapsetnameditemns02(): void;
				public test_level2_core_namednodemapsetnameditemns03(): void;
				public test_level2_core_namednodemapsetnameditemns04(): void;
				public test_level2_core_namednodemapsetnameditemns06(): void;
				public test_level2_core_namednodemapsetnameditemns07(): void;
				public test_level2_core_namednodemapsetnameditemns08(): void;
				public test_level2_core_namespaceURI02(): void;
				public test_level2_core_namespaceURI03(): void;
				public test_level2_core_namespaceURI04(): void;
				public test_level2_core_nodegetlocalname03(): void;
				public test_level2_core_nodegetnamespaceuri03(): void;
				public test_level2_core_nodegetownerdocument01(): void;
				public test_level2_core_nodegetownerdocument02(): void;
				public test_level2_core_nodegetprefix03(): void;
				public test_level2_core_nodehasattributes01(): void;
				public test_level2_core_nodehasattributes02(): void;
				public test_level2_core_nodehasattributes03(): void;
				public test_level2_core_nodehasattributes04(): void;
				public test_level2_core_nodeissupported01(): void;
				public test_level2_core_nodeissupported02(): void;
				public test_level2_core_nodeissupported03(): void;
				public test_level2_core_nodeissupported04(): void;
				public test_level2_core_nodeissupported05(): void;
				public test_level2_core_nodenormalize01(): void;
				public test_level2_core_nodesetprefix01(): void;
				public test_level2_core_nodesetprefix02(): void;
				public test_level2_core_nodesetprefix03(): void;
				public test_level2_core_nodesetprefix05(): void;
				public test_level2_core_nodesetprefix06(): void;
				public test_level2_core_nodesetprefix07(): void;
				public test_level2_core_nodesetprefix08(): void;
				public test_level2_core_normalize01(): void;
				public test_level2_core_ownerDocument01(): void;
				public test_level2_core_ownerElement01(): void;
				public test_level2_core_ownerElement02(): void;
				public test_level2_core_prefix01(): void;
				public test_level2_core_prefix02(): void;
				public test_level2_core_prefix03(): void;
				public test_level2_core_prefix04(): void;
				public test_level2_core_prefix05(): void;
				public test_level2_core_prefix07(): void;
				public test_level2_core_prefix10(): void;
				public test_level2_core_prefix11(): void;
				public test_level2_core_publicId01(): void;
				public test_level2_core_removeNamedItemNS01(): void;
				public test_level2_core_removeNamedItemNS02(): void;
				public test_level2_core_setAttributeNS01(): void;
				public test_level2_core_setAttributeNS02(): void;
				public test_level2_core_setAttributeNS04(): void;
				public test_level2_core_setAttributeNS05(): void;
				public test_level2_core_setAttributeNS06(): void;
				public test_level2_core_setAttributeNS07(): void;
				public test_level2_core_setAttributeNS09(): void;
				public test_level2_core_setAttributeNodeNS01(): void;
				public test_level2_core_setAttributeNodeNS03(): void;
				public test_level2_core_setAttributeNodeNS04(): void;
				public test_level2_core_setAttributeNodeNS05(): void;
				public test_level2_core_setNamedItemNS01(): void;
				public test_level2_core_setNamedItemNS02(): void;
				public test_level2_core_setNamedItemNS03(): void;
				public test_level2_core_systemId01(): void;
			}
			/**
			 * This is an abstract base class for generated DOM tests
			 */
			export class DOMTest extends java.lang.Object {
				/**
				 * This is the appropriate constructor for tests that make no requirements on the parser configuration.
				 * @param factory 
				 */
				constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
				/**
				 * This constructor is used by tests that must create a modified document factory to meet requirements on the parser configuration. setFactory should be called within the test's constructor.
				 */
				constructor();
				static class: java.lang.Class<org.w3c.domts.DOMTest>;
				/**
				 * Should only be called in the constructor of a derived type.
				 */
				protected setFactory(factory: org.w3c.domts.DOMTestDocumentBuilderFactory): void;
				public hasFeature(feature: string, version: string): boolean;
				public hasSetting(setting: org.w3c.domts.DocumentBuilderSetting): boolean;
				protected getFactory(): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public getImplementation(): org.w3c.dom.IDOMImplementation;
				public getResourceURI(href: string, scheme: string, contentType: string): string;
				public createTempURI(scheme: string): string;
				public load(docURI: string, willBeModified: boolean): org.w3c.dom.IDocument;
				public preload(contentType: string, docURI: string, willBeModified: boolean): void;
				public createXPathEvaluator(doc: org.w3c.dom.IDocument): any;
				public createStream(bytes: string): java.io.InputStream;
				public getTargetURI(): string;
				public isCoalescing(): boolean;
				public isExpandEntityReferences(): boolean;
				public isIgnoringElementContentWhitespace(): boolean;
				public isNamespaceAware(): boolean;
				public isValidating(): boolean;
				public isSigned(): boolean;
				public isHasNullString(): boolean;
				public getContentType(): string;
				/**
				 * Implementation of EventListener.handleEvent
				 */
				public getMutationCount(): number;
			}
			/**
			 * This is an abstract base class for generated DOM tests
			 */
			export class DOMTestCase extends org.w3c.domts.DOMTest {
				/**
				 * This constructor is for DOMTestCase's that make specific demands for parser configuration. setFactory should be called before the end of the tests constructor to set the factory.
				 */
				constructor();
				/**
				 * This constructor is for DOMTestCase's that do not add any requirements for parser configuration.
				 * @param factory 
				 */
				constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
				static class: java.lang.Class<org.w3c.domts.DOMTestCase>;
				/**
				 * This method is called by the main() for each test and locates the appropriate test framework and runs the specified test
				 * @param testClass 
				 * @param args 
				 */
				public static doMain(testClass: java.lang.Class<any>, args: native.Array<string>): void;
				/**
				 * Body of test
				 */
				public runTest(): void;
				/**
				 * Sets test framework to be used by test.
				 * @param framework 
				 */
				public setFramework(framework: org.w3c.domts.IDOMTestFramework): void;
				/**
				 * Wait
				 * @param millisecond 
				 */
				public wait(millisecond: number): void;
				/**
				 * Fail test
				 * @param assertID 
				 */
				public fail(assertID: string): void;
				/**
				 * Asserts that actual==true
				 * @param assertID 
				 * @param actual 
				 */
				public assertTrue(assertID: string, actual: boolean): void;
				/**
				 * Asserts that actual==true
				 * @param assertID 
				 * @param actual 
				 */
				public assertTrue(assertID: string, actual: any): void;
				/**
				 * Asserts that actual==false
				 * @param assertID 
				 * @param actual 
				 */
				public assertFalse(assertID: string, actual: boolean): void;
				/**
				 * Asserts that actual==false
				 * @param assertID 
				 * @param actual 
				 */
				public assertFalse(assertID: string, actual: any): void;
				/**
				 * Asserts that actual == null
				 * @param assertID 
				 * @param actual 
				 */
				public assertNull(assertID: string, actual: any): void;
				/**
				 * Asserts that actual != null
				 * @param assertID 
				 * @param actual 
				 */
				public assertNotNull(assertID: string, actual: any): void;
				/**
				 * Asserts that actual and expected are the same object
				 * @param assertID 
				 * @param expected actual
				 * @param actual 
				 */
				public assertSame(assertID: string, expected: any, actual: any): void;
				/**
				 * Asserts that obj is an instance of cls
				 * @param assertID 
				 * @param cls obj
				 * @param obj cls
				 */
				public assertInstanceOf(assertID: string, cls: java.lang.Class<any>, obj: any): void;
				/**
				 * Asserts that the length of the collection is the expected size.
				 * @param assertID 
				 * @param expectedSize 
				 * @param collection 
				 */
				public assertSize(assertID: string, expectedSize: number, collection: org.w3c.dom.INodeList): void;
				/**
				 * Asserts that the length of the collection is the expected size.
				 * @param assertID 
				 * @param expectedSize 
				 * @param collection 
				 */
				public assertSize(assertID: string, expectedSize: number, collection: org.w3c.dom.INamedNodeMap): void;
				/**
				 * Asserts that the length of the collection is the expected size.
				 * @param assertID 
				 * @param expectedSize 
				 * @param collection 
				 */
				public assertSize(assertID: string, expectedSize: number, collection: java.util.ICollection<any>): void;
				/**
				 * Asserts that expected.equalsIgnoreCase(actual) is true
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEqualsIgnoreCase(assertID: string, expected: string, actual: string): void;
				/**
				 * Asserts that each entry in actual is matched with an entry in expected that only differs by case. Order is not significant.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEqualsIgnoreCase(assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				/**
				 * Asserts that each entry in actual is matched with an entry in expected that only differs by case. Order is significant.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEqualsIgnoreCase(assertID: string, expected: java.util.IList<any>, actual: java.util.IList<any>): void;
				/**
				 * Asserts that expected.equalsIgnoreCase(actual) is true
				 * @param context assertID
				 * @param assertID actual
				 * @param expected 
				 * @param actual 
				 */
				public assertEqualsAutoCase(context: string, assertID: string, expected: string, actual: string): void;
				/**
				 * Asserts that each entry in actual is matched with an entry in expected that only differs by case. Order is not significant.
				 * @param context assertID
				 * @param assertID actual
				 * @param expected 
				 * @param actual 
				 */
				public assertEqualAutoCase(context: string, assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				/**
				 * Asserts that each entry in actual is matched with an entry in expected that only differs by case. Order is significant.
				 * @param context assertID
				 * @param assertID actual
				 * @param expected 
				 * @param actual 
				 */
				public assertEqualsAutoCase(context: string, assertID: string, expected: java.util.IList<any>, actual: java.util.IList<any>): void;
				/**
				 * Asserts that expected.equals(actual) is true
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEquals(assertID: string, expected: string, actual: string): void;
				/**
				 * Asserts that values of expected and actual are equal.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEquals(assertID: string, expected: number, actual: number): void;
				/**
				 * Asserts that values of expected and actual are equal.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEquals(assertID: string, expected: boolean, actual: boolean): void;
				/**
				 * Asserts that each entry in actual exactly matches with an entry in expected. Order is not significant.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEquals(assertID: string, expected: java.util.ICollection<any>, actual: org.w3c.dom.INodeList): void;
				/**
				 * Asserts that each entry in actual exactly matches with an entry in expected. Order is not significant.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertEquals(assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				/**
				 * Asserts that expected.equalsIgnoreCase(actual) is false
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertNotEqualsIgnoreCase(assertID: string, expected: string, actual: string): void;
				/**
				 * Asserts that expected.equalsIgnoreCase(actual) is false
				 * @param context assertID
				 * @param assertID actual
				 * @param expected 
				 * @param actual 
				 */
				public assertNotEqualsAutoCase(context: string, assertID: string, expected: string, actual: string): void;
				/**
				 * Asserts that values of expected and actual are not equal.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertNotEquals(assertID: string, expected: string, actual: string): void;
				/**
				 * Asserts that values of expected and actual are not equal.
				 * @param assertID 
				 * @param expected actual
				 * @param actual expected
				 */
				public assertNotEquals(assertID: string, expected: number, actual: number): void;
				/**
				 * Asserts aspects of a URI
				 * @param assertID 
				 * @param scheme 
				 * @param path 
				 * @param host 
				 * @param file 
				 * @param name 
				 * @param query name
				 * @param fragment isAbsolute
				 * @param isAbsolute actual
				 * @param actual 
				 */
				public assertURIEquals(assertID: string, scheme: string, path: string, host: string, file: string, name: string, query: string, fragment: string, isAbsolute: java.lang.Boolean, actual: string): void;
				/**
				 * Asserts aspects of a URI
				 * @param assertID 
				 * @param scheme 
				 * @param path 
				 * @param host 
				 * @param file 
				 * @param name 
				 * @param query name
				 * @param fragment isAbsolute
				 * @param isAbsolute actual
				 * @param actual 
				 */
				public assertURIEquals(assertID: string, scheme: string, path: string, host: string, file: string, name: string, query: string, fragment: string, isAbsolute: boolean, actual: string): void;
				/**
				 * Compares the identity of actual and expected.
				 * @param expected 
				 * @param actual 
				 */
				public same(expected: any, actual: any): boolean;
				/**
				 * Compares the value of actual and expected ignoring case.
				 * @param expected 
				 * @param actual 
				 */
				public equalsIgnoreCase(expected: string, actual: string): boolean;
				/**
				 * Compares the values in actual and expected ignoring case and order.
				 * @param expected 
				 * @param actual 
				 */
				public equalsIgnoreCase(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				/**
				 * Compares the values in actual and expected ignoring case.
				 * @param expected 
				 * @param actual 
				 */
				public equalsIgnoreCase(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				/**
				 * Compares the value of actual and expected ignoring case.
				 * @param context expected
				 * @param expected actual
				 * @param actual 
				 */
				public equalsAutoCase(context: string, expected: string, actual: string): boolean;
				/**
				 * Compares the values in actual and expected ignoring case and order.
				 * @param context expected
				 * @param expected actual
				 * @param actual 
				 */
				public equalsAutoCase(context: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				/**
				 * Compares the values in actual and expected ignoring case.
				 * @param context expected
				 * @param expected actual
				 * @param actual 
				 */
				public equalsAutoCase(context: string, expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				/**
				 * Compares the values of actual and expected.
				 * @param expected 
				 * @param actual 
				 */
				public equals(expected: string, actual: string): boolean;
				/**
				 * Compares the values of actual and expected.
				 * @param expected 
				 * @param actual 
				 */
				public equals(expected: number, actual: number): boolean;
				/**
				 * Compares the values in actual and expected ignoring order.
				 * @param expected 
				 * @param actual 
				 */
				public equals(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				/**
				 * Compares the values in actual and expected.
				 * @param expected 
				 * @param actual 
				 */
				public equals(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				/**
				 * Gets the size of the collection
				 * @param collection 
				 */
				public size(collection: java.util.ICollection<any>): number;
				/**
				 * Gets the size of the collection
				 * @param collection 
				 */
				public size(collection: org.w3c.dom.INamedNodeMap): number;
				/**
				 * Gets the size of the collection
				 * @param collection 
				 */
				public size(collection: org.w3c.dom.INodeList): number;
				/**
				 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.
				 * @param o 
				 */
				equals(o: any): boolean;
				/**
				 * Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object. This method can only be invoked by a thread which owns this object's monitor; see #notify() on how a thread can become the owner of a monitor.
				 */
				wait(): void;
				/**
				 * Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the specified timeout expires. This method can only be invoked by a thread that owns this object's monitor; see #notify() on how a thread can become the owner of a monitor.
				 * @param millis 
				 * @param nanos 
				 */
				wait(millis: number, nanos: number): void;
			}
			/**
			 * This class provides access to DOMTestCase methods (like assertEquals) for inner classes
			 */
			export class DOMTestInnerClass extends java.lang.Object {
				constructor(test: org.w3c.domts.DOMTestCase);
				static class: java.lang.Class<org.w3c.domts.DOMTestInnerClass>;
				public wait(millisecond: number): void;
				public assertTrue(assertID: string, actual: boolean): void;
				public assertFalse(assertID: string, actual: boolean): void;
				public assertNull(assertID: string, actual: any): void;
				public assertNotNull(assertID: string, actual: any): void;
				public assertSame(assertID: string, expected: any, actual: any): void;
				public assertInstanceOf(assertID: string, cls: java.lang.Class<any>, obj: any): void;
				public assertSize(assertID: string, expectedSize: number, collection: org.w3c.dom.INodeList): void;
				public assertSize(assertID: string, expectedSize: number, collection: org.w3c.dom.INamedNodeMap): void;
				public assertSize(assertID: string, expectedSize: number, collection: java.util.ICollection<any>): void;
				public assertEqualsIgnoreCase(assertID: string, expected: string, actual: string): void;
				public assertEqualsIgnoreCase(assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				public assertEqualsIgnoreCase(assertID: string, expected: java.util.IList<any>, actual: java.util.IList<any>): void;
				public assertEquals(assertID: string, expected: string, actual: string): void;
				public assertEquals(assertID: string, expected: number, actual: number): void;
				public assertEquals(assertID: string, expected: boolean, actual: boolean): void;
				public assertEquals(assertID: string, expected: java.util.ICollection<any>, actual: org.w3c.dom.INodeList): void;
				public assertEquals(assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				public assertNotEqualsIgnoreCase(assertID: string, expected: string, actual: string): void;
				public assertNotEquals(assertID: string, expected: string, actual: string): void;
				public assertNotEquals(assertID: string, expected: number, actual: number): void;
				public assertURIEquals(assertID: string, scheme: string, path: string, host: string, file: string, name: string, query: string, fragment: string, isAbsolute: java.lang.Boolean, actual: string): void;
				public assertURIEquals(assertID: string, scheme: string, path: string, host: string, file: string, name: string, query: string, fragment: string, isAbsolute: boolean, actual: string): void;
				public same(expected: any, actual: any): boolean;
				public equalsIgnoreCase(expected: string, actual: string): boolean;
				public equalsIgnoreCase(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				public equalsIgnoreCase(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				public equals(expected: string, actual: string): boolean;
				public equals(expected: number, actual: number): boolean;
				public equals(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				public equals(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				public size(collection: java.util.ICollection<any>): number;
				public size(collection: org.w3c.dom.INamedNodeMap): number;
				public size(collection: org.w3c.dom.INodeList): number;
				public getImplementation(): org.w3c.dom.IDOMImplementation;
				/**
				 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.
				 * @param o 
				 */
				equals(o: any): boolean;
				/**
				 * Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object. This method can only be invoked by a thread which owns this object's monitor; see #notify() on how a thread can become the owner of a monitor.
				 */
				wait(): void;
				/**
				 * Causes the calling thread to wait until another thread calls the notify() or notifyAll() method of this object or until the specified timeout expires. This method can only be invoked by a thread that owns this object's monitor; see #notify() on how a thread can become the owner of a monitor.
				 * @param millis 
				 * @param nanos 
				 */
				wait(millis: number, nanos: number): void;
			}
			export class JUnitTestSuiteAdapter implements org.w3c.domts.IDOMTestSink {
				constructor(test: org.w3c.domts.DOMTestSuite);
				static class: java.lang.Class<org.w3c.domts.JUnitTestSuiteAdapter>;
				public addTest(testclass: java.lang.Class<any>): void;
			}
			/**
			 * This class implements the generic parser builder for JTidy (http://sf.net/projects/JTidy) which reads HTML and supports the fundamental DOM interfaces but not either HTML L1 DOM or HTML L2 DOM
			 */
			export class JTidyDocumentBuilderFactory extends org.w3c.domts.DOMTestDocumentBuilderFactory {
				/**
				 * Creates a implementation of DOMTestDocumentBuilderFactory using JTidy's HTML parser and DOM implementation
				 * @param settings array of settings, may be null.
				 */
				constructor(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.JTidyDocumentBuilderFactory>;
				public newInstance(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				public hasFeature(feature: string, version: string): boolean;
				public getContentType(): string;
				public isCoalescing(): boolean;
				public isExpandEntityReferences(): boolean;
				public isIgnoringElementContentWhitespace(): boolean;
				public isNamespaceAware(): boolean;
				public isValidating(): boolean;
			}
			/**
			 * This is a utility implementation of EventListener that captures all events and provides access to lists of all events by mode
			 */
			export class DOMErrorMonitor extends java.lang.Object implements org.w3c.dom.IDOMErrorHandler {
				/**
				 * Public constructor
				 */
				constructor();
				static class: java.lang.Class<org.w3c.domts.DOMErrorMonitor>;
				/**
				 * Implementation of DOMErrorHandler.handleError that adds copy of error to list for later retrieval.
				 */
				public handleError(error: org.w3c.dom.IDOMError): boolean;
				/**
				 * Gets list of errors
				 */
				public getAllErrors(): java.util.IList<any>;
				public assertLowerSeverity(testCase: org.w3c.domts.DOMTestCase, id: string, severity: number): void;
			}
			/**
			 * This interface provides services typically provided by a test framework
			 */
			interface IDOMTestFramework {
				hasFeature(docBuilder: javax.xml.parsers.DocumentBuilder, feature: string, version: string): boolean;
				wait(millisecond: number): void;
				fail(test: org.w3c.domts.DOMTestCase, assertID: string): void;
				assertTrue(test: org.w3c.domts.DOMTestCase, assertID: string, actual: boolean): void;
				assertFalse(test: org.w3c.domts.DOMTestCase, assertID: string, actual: boolean): void;
				assertNull(test: org.w3c.domts.DOMTestCase, assertID: string, actual: any): void;
				assertNotNull(test: org.w3c.domts.DOMTestCase, assertID: string, actual: any): void;
				assertSame(test: org.w3c.domts.DOMTestCase, assertID: string, expected: any, actual: any): void;
				assertInstanceOf(test: org.w3c.domts.DOMTestCase, assertID: string, obj: any, cls: java.lang.Class<any>): void;
				assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: org.w3c.dom.INodeList): void;
				assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: org.w3c.dom.INamedNodeMap): void;
				assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: java.util.ICollection<any>): void;
				assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.IList<any>, actual: java.util.IList<any>): void;
				assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: number, actual: number): void;
				assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: boolean, actual: boolean): void;
				assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				assertNotEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: number, actual: number): void;
				assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: boolean, actual: boolean): void;
				same(expected: any, actual: any): boolean;
				equalsIgnoreCase(expected: string, actual: string): boolean;
				equalsIgnoreCase(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				equalsIgnoreCase(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				equals(expected: string, actual: string): boolean;
				equals(expected: number, actual: number): boolean;
				equals(expected: boolean, actual: boolean): boolean;
				equals(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				equals(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				size(collection: java.util.ICollection<any>): number;
				size(collection: org.w3c.dom.INamedNodeMap): number;
				size(collection: org.w3c.dom.INodeList): number;
			}
			/**
			 * This class implements the generic parser and configuation class for the HTML DOM L2 implementation in Xerces-J
			 */
			export class XercesHTML2DocumentBuilderFactory extends org.w3c.domts.DOMTestDocumentBuilderFactory {
				/**
				 * Creates a implementation of DOMTestDocumentBuilderFactory using org.apache.html.dom.HTMLBuilder
				 * @param settings array of settings, may be null.
				 */
				constructor(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.XercesHTML2DocumentBuilderFactory>;
				HTMLHandler: {
	new (htmlBuilderConstructor: java.lang.reflect.Constructor<any>, getHTMLDocumentMethod: java.lang.reflect.Method): org.w3c.domts.XercesHTML2DocumentBuilderFactory.HTMLHandler;
};
				public newInstance(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				public hasFeature(feature: string, version: string): boolean;
				public isCoalescing(): boolean;
				public isExpandEntityReferences(): boolean;
				public isIgnoringElementContentWhitespace(): boolean;
				public isNamespaceAware(): boolean;
				public isValidating(): boolean;
				public static getConfiguration1(): native.Array<org.w3c.domts.DocumentBuilderSetting>;
				public static getConfiguration2(): native.Array<org.w3c.domts.DocumentBuilderSetting>;
			}
			export module XercesHTML2DocumentBuilderFactory {
				export class HTMLHandler extends org.xml.sax.helpers.DefaultHandler implements org.xml.sax.IAttributeList {
					static class: java.lang.Class<org.w3c.domts.XercesHTML2DocumentBuilderFactory.HTMLHandler>;
					public startDocument(): void;
					public endDocument(): void;
					public startElement(uri: string, localName: string, qName: string, attributes: org.xml.sax.IAttributes): void;
					public endElement(uri: string, localName: string, qName: string): void;
					public characters(ch: native.Array<string>, start: number, length: number): void;
					public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					public processingInstruction(target: string, data: string): void;
					public getHTMLDocument(): org.w3c.dom.IDocument;
					public getLength(): number;
					public getName(i: number): string;
					public getType(i: number): string;
					public getValue(i: number): string;
					public getType(name: string): string;
					public getValue(name: string): string;
				}
			}
			/**
			 * Implementation of DOMLocator
			 */
			export class DOMLocatorImpl extends java.lang.Object implements org.w3c.dom.IDOMLocator {
				constructor(src: org.w3c.dom.IDOMLocator);
				static class: java.lang.Class<org.w3c.domts.DOMLocatorImpl>;
				public getLineNumber(): number;
				public getColumnNumber(): number;
				public getByteOffset(): number;
				public getUtf16Offset(): number;
				public getRelatedNode(): org.w3c.dom.INode;
				public getUri(): string;
			}
			/**
			 * This class is a strategy that provides the mapping from an abstract setting (such as DocumentBuilderSetting.validating) to a specific DOM implementation
			 */
			export class DocumentBuilderSettingStrategy extends java.lang.Object {
				static coalescing: org.w3c.domts.DocumentBuilderSettingStrategy;
				static expandEntityReferences: org.w3c.domts.DocumentBuilderSettingStrategy;
				static ignoringElementContentWhitespace: org.w3c.domts.DocumentBuilderSettingStrategy;
				static ignoringComments: org.w3c.domts.DocumentBuilderSettingStrategy;
				static namespaceAware: org.w3c.domts.DocumentBuilderSettingStrategy;
				static validating: org.w3c.domts.DocumentBuilderSettingStrategy;
				static signed: org.w3c.domts.DocumentBuilderSettingStrategy;
				static hasNullString: org.w3c.domts.DocumentBuilderSettingStrategy;
				static schemaValidating: org.w3c.domts.DocumentBuilderSettingStrategy;
				static class: java.lang.Class<org.w3c.domts.DocumentBuilderSettingStrategy>;
				public hasConflict(other: org.w3c.domts.DocumentBuilderSettingStrategy): boolean;
				public applySetting(factory: javax.xml.parsers.DocumentBuilderFactory, value: boolean): void;
				public hasSetting(factory: org.w3c.domts.DOMTestDocumentBuilderFactory): boolean;
			}
			/**
			 * This class implements the generic parser and configuation abstract class for JAXP supporting parsers.
			 */
			export class DOM4JTestDocumentBuilderFactory extends org.w3c.domts.DOMTestDocumentBuilderFactory {
				/**
				 * Creates a JAXP implementation of DOMTestDocumentBuilderFactory.
				 * @param settings factory null for default JAXP provider. If not null,
				 */
				constructor(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.DOM4JTestDocumentBuilderFactory>;
				public newInstance(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				public hasFeature(feature: string, version: string): boolean;
				public isCoalescing(): boolean;
				public isExpandEntityReferences(): boolean;
				public isIgnoringElementContentWhitespace(): boolean;
				public isNamespaceAware(): boolean;
				public isValidating(): boolean;
			}
			/**
			 * This exception represents a mismatch between the requirements of the test (for example, entity preserving) and the capabilities of the parser under test. Curt Arnold
			 */
			export class DOMTestIncompatibleException extends java.lang.Exception {
				/**
				 * Constructor from a ParserConfigurationException or reflection exception
				 */
				constructor(ex: java.lang.Throwable, setting: org.w3c.domts.DocumentBuilderSetting);
				static class: java.lang.Class<org.w3c.domts.DOMTestIncompatibleException>;
				public static incompatibleFeature(feature: string, version: string): org.w3c.domts.DOMTestIncompatibleException;
				public static incompatibleLoad(href: string, contentType: string): org.w3c.domts.DOMTestIncompatibleException;
				public toString(): string;
			}
			/**
			 * This class implements the generic parser and configuation abstract class the HTML DOM implementation in Xerces-J
			 */
			export class XercesHTMLDocumentBuilderFactory extends org.w3c.domts.DOMTestDocumentBuilderFactory {
				/**
				 * Creates a implementation of DOMTestDocumentBuilderFactory using org.apache.html.dom.HTMLBuilder
				 * @param settings array of settings, may be null.
				 */
				constructor(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.XercesHTMLDocumentBuilderFactory>;
				HTMLHandler: {
	new (htmlBuilderConstructor: java.lang.reflect.Constructor<any>, getHTMLDocumentMethod: java.lang.reflect.Method): org.w3c.domts.XercesHTMLDocumentBuilderFactory.HTMLHandler;
};
				public newInstance(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				public hasFeature(feature: string, version: string): boolean;
				public isCoalescing(): boolean;
				public isExpandEntityReferences(): boolean;
				public isIgnoringElementContentWhitespace(): boolean;
				public isNamespaceAware(): boolean;
				public isValidating(): boolean;
				public static getConfiguration1(): native.Array<org.w3c.domts.DocumentBuilderSetting>;
				public static getConfiguration2(): native.Array<org.w3c.domts.DocumentBuilderSetting>;
			}
			export module XercesHTMLDocumentBuilderFactory {
				export class HTMLHandler extends org.xml.sax.helpers.DefaultHandler implements org.xml.sax.IAttributeList {
					static class: java.lang.Class<org.w3c.domts.XercesHTMLDocumentBuilderFactory.HTMLHandler>;
					public startDocument(): void;
					public endDocument(): void;
					public startElement(uri: string, localName: string, qName: string, attributes: org.xml.sax.IAttributes): void;
					public endElement(uri: string, localName: string, qName: string): void;
					public characters(ch: native.Array<string>, start: number, length: number): void;
					public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					public processingInstruction(target: string, data: string): void;
					public getHTMLDocument(): org.w3c.dom.IDocument;
					public getLength(): number;
					public getName(i: number): string;
					public getType(i: number): string;
					public getValue(i: number): string;
					public getType(name: string): string;
					public getValue(name: string): string;
				}
			}
			/**
			 * This class is an parser setting, such as non-validating or entity-expanding.
			 */
			export class DocumentBuilderSetting extends java.lang.Object {
				/**
				 * coalescing = true.
				 */
				static coalescing: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * coalescing = false.
				 */
				static notCoalescing: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * expandEntityReferences = false.
				 */
				static expandEntityReferences: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * expandEntityReferences = true.
				 */
				static notExpandEntityReferences: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * ignoringElementContentWhitespace = true.
				 */
				static ignoringElementContentWhitespace: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * ignoringElementContentWhitespace = false.
				 */
				static notIgnoringElementContentWhitespace: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * namespaceAware = true.
				 */
				static namespaceAware: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * namespaceAware = false.
				 */
				static notNamespaceAware: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * validating = true.
				 */
				static validating: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * validating = false.
				 */
				static notValidating: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * signed = true.
				 */
				static signed: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * signed = false.
				 */
				static notSigned: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * hasNullString = true.
				 */
				static hasNullString: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * hasNullString = false.
				 */
				static notHasNullString: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * Schema validating enabled.
				 */
				static schemaValidating: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * Schema validating disabled.
				 */
				static notSchemaValidating: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * Comments ignored.
				 */
				static ignoringComments: org.w3c.domts.DocumentBuilderSetting;
				/**
				 * Comments preserved.
				 */
				static notIgnoringComments: org.w3c.domts.DocumentBuilderSetting;
				static class: java.lang.Class<org.w3c.domts.DocumentBuilderSetting>;
				/**
				 * Returns true if the settings have a conflict or are identical.
				 * @param other 
				 */
				public hasConflict(other: org.w3c.domts.DocumentBuilderSetting): boolean;
				/**
				 * Determines current value of setting.
				 * @param factory DOMTestDocumentBuilderFactory factory
				 */
				public hasSetting(factory: org.w3c.domts.DOMTestDocumentBuilderFactory): boolean;
				/**
				 * Attempts to change builder to have this setting.
				 * @param factory DocumentBuilderFactory Factory for DOM builders
				 */
				public applySetting(factory: javax.xml.parsers.DocumentBuilderFactory): void;
				/**
				 * Gets the property name.
				 */
				public getProperty(): string;
				/**
				 * Gets the property value.
				 */
				public getValue(): boolean;
				/**
				 * Gets a string representation of the setting.
				 */
				public toString(): string;
			}
			/**
			 * This is a utility implementation of EventListener that captures all events and provides access to lists of all events by mode
			 */
			export class DOMErrorImpl extends java.lang.Object implements org.w3c.dom.IDOMError {
				/**
				 * Public constructor
				 */
				constructor(src: org.w3c.dom.IDOMError);
				static class: java.lang.Class<org.w3c.domts.DOMErrorImpl>;
				public getSeverity(): number;
				public getMessage(): string;
				public getType(): string;
				public getRelatedException(): any;
				public getRelatedData(): any;
				public getLocation(): org.w3c.dom.IDOMLocator;
			}
			/**
			 * This class represents a particular parser and configuration (such as entity-expanding, non-validating, whitespace ignoring) for a test session. Individual tests or suites within a session can override the session properties on a call to createBuilderFactory.
			 */
			export class DOMTestDocumentBuilderFactory extends java.lang.Object {
				/**
				 * Constructor
				 * @param settings properties Array of parser settings, may be null.
				 */
				constructor(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.DOMTestDocumentBuilderFactory>;
				/**
				 * Returns an instance of DOMTestDocumentBuilderFactory with the settings from the argument list and any non-revoked settings from the current object.
				 * @param settings array of settings, may be null.
				 */
				public newInstance(settings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				public hasFeature(feature: string, version: string): boolean;
				public load(url: java.net.URL): org.w3c.dom.IDocument;
				/**
				 * Creates XPath evaluator
				 * @param doc DOM document, may not be null
				 */
				public createXPathEvaluator(doc: org.w3c.dom.IDocument): any;
				/**
				 * Merges the settings from the specific test case or suite with the existing (typically session) settings.
				 * @param newSettings settings new settings, may be null which will
				 */
				protected mergeSettings(newSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): native.Array<org.w3c.domts.DocumentBuilderSetting>;
				public addExtension(testFileName: string): string;
				public isCoalescing(): boolean;
				public isExpandEntityReferences(): boolean;
				public isIgnoringElementContentWhitespace(): boolean;
				public isNamespaceAware(): boolean;
				public isValidating(): boolean;
				public getContentType(): string;
				/**
				 * Creates an array of all determinable settings for the DocumentBuilder including those at implementation defaults.
				 */
				public getActualSettings(): native.Array<org.w3c.domts.DocumentBuilderSetting>;
			}
			export class JUnitTestCaseAdapter implements org.w3c.domts.IDOMTestFramework {
				constructor(test: org.w3c.domts.DOMTestCase);
				constructor();
				static class: java.lang.Class<org.w3c.domts.JUnitTestCaseAdapter>;
				public setName(name: string): void;
				protected runTest(): void;
				public hasFeature(docBuilder: javax.xml.parsers.DocumentBuilder, feature: string, version: string): boolean;
				public wait(millisecond: number): void;
				public fail(test: org.w3c.domts.DOMTestCase, assertID: string): void;
				public assertTrue(test: org.w3c.domts.DOMTestCase, assertID: string, actual: boolean): void;
				public assertFalse(test: org.w3c.domts.DOMTestCase, assertID: string, actual: boolean): void;
				public assertNull(test: org.w3c.domts.DOMTestCase, assertID: string, actual: any): void;
				public assertNotNull(test: org.w3c.domts.DOMTestCase, assertID: string, actual: any): void;
				public assertSame(test: org.w3c.domts.DOMTestCase, assertID: string, expected: any, actual: any): void;
				public assertInstanceOf(test: org.w3c.domts.DOMTestCase, assertID: string, obj: any, cls: java.lang.Class<any>): void;
				public assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: org.w3c.dom.INodeList): void;
				public assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: org.w3c.dom.INamedNodeMap): void;
				public assertSize(test: org.w3c.domts.DOMTestCase, assertID: string, expectedSize: number, collection: java.util.ICollection<any>): void;
				public assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				public assertEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.IList<any>, actual: java.util.IList<any>): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: number, actual: number): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: boolean, actual: boolean): void;
				public assertEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): void;
				public assertNotEqualsIgnoreCase(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: string, actual: string): void;
				public assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: number, actual: number): void;
				public assertNotEquals(test: org.w3c.domts.DOMTestCase, assertID: string, expected: boolean, actual: boolean): void;
				public same(expected: any, actual: any): boolean;
				public equalsIgnoreCase(expected: string, actual: string): boolean;
				public equalsIgnoreCase(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				public equalsIgnoreCase(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				public equals(expected: string, actual: string): boolean;
				public equals(expected: number, actual: number): boolean;
				public equals(expected: boolean, actual: boolean): boolean;
				public equals(expected: java.util.ICollection<any>, actual: java.util.ICollection<any>): boolean;
				public equals(expected: java.util.IList<any>, actual: java.util.IList<any>): boolean;
				public size(collection: java.util.ICollection<any>): number;
				public size(collection: org.w3c.dom.INamedNodeMap): number;
				public size(collection: org.w3c.dom.INodeList): number;
			}
			export class XalanDOMTestDocumentBuilderFactory extends org.w3c.domts.JAXPDOMTestDocumentBuilderFactory {
				/**
				 * Creates a JAXP implementation of DOMTestDocumentBuilderFactory.
				 * @param baseFactory factory null for default JAXP provider. If not null,
				 * @param settings array of settings, may be null.
				 */
				constructor(baseFactory: javax.xml.parsers.DocumentBuilderFactory, settings: native.Array<org.w3c.domts.DocumentBuilderSetting>);
				static class: java.lang.Class<org.w3c.domts.XalanDOMTestDocumentBuilderFactory>;
				protected createInstance(newFactory: javax.xml.parsers.DocumentBuilderFactory, mergedSettings: native.Array<org.w3c.domts.DocumentBuilderSetting>): org.w3c.domts.DOMTestDocumentBuilderFactory;
				/**
				 * Creates XPath evaluator
				 * @param doc DOM document, may not be null
				 */
				public createXPathEvaluator(doc: org.w3c.dom.IDocument): any;
			}
			interface IDOMTestSink {
				addTest(test: java.lang.Class<any>): void;
			}
			export class DOMTestSink implements org.w3c.domts.IDOMTestSink {
				constructor(implementation: org.w3c.domts.IDOMTestSink);
				public addTest(test: java.lang.Class<any>): void;
			}
			/**
			 * JTidy does not implement DOMImplementation we do it here to keep the test exclusion logic from falling apart.
			 */
			export class JTidyDOMImplementation extends java.lang.Object implements org.w3c.dom.IDOMImplementation {
				constructor();
				static class: java.lang.Class<org.w3c.domts.JTidyDOMImplementation>;
				/**
				 * Test if the DOM implementation implements a specific feature.
				 * @param feature The name of the feature to test (case-insensitive). The
				 * @param version This is the version number of the feature to test. In
				 */
				public hasFeature(feature: string, version: string): boolean;
				/**
				 * Creates an empty <code>DocumentType</code> node. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur. It is expected that a future version of the DOM will provide a way for populating a <code>DocumentType</code>.
				 * @param qualifiedName The qualified name of the document type to be
				 * @param publicId The external subset public identifier.
				 * @param systemId The external subset system identifier.
				 */
				public createDocumentType(qualifiedName: string, publicId: string, systemId: string): org.w3c.dom.IDocumentType;
				/**
				 * Creates a DOM Document object of the specified type with its document element.
				 * @param namespaceURI The namespace URI of the document element to
				 * @param qualifiedName The qualified name of the document element to be
				 * @param doctype The type of document to be created or <code>null</code>.
				 */
				public createDocument(namespaceURI: string, qualifiedName: string, doctype: org.w3c.dom.IDocumentType): org.w3c.dom.IDocument;
				public getInterface(feature: string): org.w3c.dom.IDOMImplementation;
				public getFeature(feature: string, version: string): any;
			}
			export module level1 {
				export module core {
					/**
					 * Retrieve the notation named "notation1" and access its public identifier. The string "notation1File" should be returned. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-54F2B4D0">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-54F2B4D0</a>
					 */
					export class notationgetpublicid extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.notationgetpublicid>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for an EntityReference Node is null. Retrieve the first Entity Reference node from the last child of the second employee and check the string returned by the "getNodeValue()" method. It should be equal to null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodeentityreferencenodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentityreferencenodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Text Node is the content of the Text node. Retrieve the Text node from the last child of the first employee and check the string returned by the "getNodeValue()" method. It should be equal to "1230 North Ave. Dallas, Texas 98551". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodetextnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodetextnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method raises an "WRONG_DOCUMENT_ERR DOMException if the "newAttr" was created from a different document than the one that created this document. Retrieve the last employee and attempt to set a new attribute node for its "employee" element. The new attribute was created from a document other than the one that created this element, therefore a WRONG_DOCUMENT_ERR DOMException should be raised. This test uses the "createAttribute(newAttr)" method from the Document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-887236154')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_elementwrongdocumenterr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementwrongdocumenterr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName()" method returns a NodeList of all descendant elements with a given tagName. Invoke the "getElementsByTagName()" method and create a NodeList of "position" elements. Retrieve the second "position" element in the list and return the NodeName. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815</a>
					 */
					export class elementretrievetagname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementretrievetagname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a DocumentFragment Node is null. Retrieve the DOM document and invoke the "createDocumentFragment()" method and check the string returned by the "getNodeValue()" method. It should be equal to null. NIST Mary Brady Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class nodedocumentfragmentnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumentfragmentnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNotations()" method creates a NamedNodeMap that contains all the notations declared in the DTD. Retrieve the Document Type for this document and create a NamedNodeMap object of all the notations. There should be two items in the list (notation1 and notation2). NIST Mary Brady Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF</a>
					 */
					export class documenttypegetnotations extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documenttypegetnotations>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeChild(oldChild)" method raises a NOT_FOUND_ERR DOMException if the old child is not a child of this node. Retrieve the second employee and attempt to remove a node that is not one of its children. An attempt to remove such a node should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1734834066')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_noderemovechildoldchildnonexistent extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_noderemovechildoldchildnonexistent>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeChild(oldChild)" method removes the child node indicated by "oldChild" from the list of children and returns it. Remove the first employee by invoking the "removeChild(oldChild)" method an checking the node returned by the "getParentNode()" method. It should be set to null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_noderemovechild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_noderemovechild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create and populate a new DocumentFragment object and append it to the second employee. After the "appendChild(newChild)" method is invoked retrieve the new nodes at the end of the list, they should be the two Element nodes from the DocumentFragment. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class nodeappendchilddocfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchilddocfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttribute(tagName)" method raises an INVALID_CHARACTER_ERR DOMException if the specified tagName contains an invalid character. Retrieve the entire DOM document and invoke its "createAttribute(tagName)" method with the tagName equal to the string "invalid^Name". Due to the invalid character the desired EXCEPTION should be raised. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1084891198')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class documentinvalidcharacterexceptioncreateattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentinvalidcharacterexceptioncreateattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Creating an attribute with an empty name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1084891198')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class hc_documentinvalidcharacterexceptioncreateattribute1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentinvalidcharacterexceptioncreateattribute1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the node to be added by the "setNamedItem(arg)" method already exists in the NamedNodeMap, it is replaced by the new one. Retrieve the second employee and create a NamedNodeMap object from the attributes of the last child by invoking the "getAttributes()" method. Once the list is created an invocation of the "setNamedItem(arg)" method is done with arg=newAttr, where newAttr is a new Attr Node previously created and whose node name already exists in the map. The "setNamedItem(arg)" method should replace the already existing node with the new one. This node is then retrieved using the "getNamedItem(name)" method. This test uses the "createAttribute(name)" method from the document interface NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapsetnameditemthatexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapsetnameditemthatexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add remove an entity should result in a NO_MODIFICATION_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a>
					 */
					export class hc_entitiesremovenameditem1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_entitiesremovenameditem1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Duplicate entities are to be discarded. Retrieve the Document Type for this document and create a NamedNodeMap of all its entities. The entity named "ent1" is defined twice and therefore that last occurrance should be discarded. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630</a>
					 */
					export class documenttypegetentitieslength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documenttypegetentitieslength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getParentNode()" method returns the parent of this node. Retrieve the second employee and invoke the "getParentNode()" method on this node. It should be set to "staff". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class nodeparentnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeparentnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Load a document and invoke its "getImplementation()" method. This should create a DOMImplementation object whose "hasFeature(feature, version)" method is invoked with version equal to null. If the version is not specified, supporting any version feature will cause the method to return "true". Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7</a> <a href="http://www.w3.org/2000/11/DOM-Level-2-errata#core-14">http://www.w3.org/2000/11/DOM-Level-2-errata#core-14</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=245">http://www.w3.org/Bugs/Public/show_bug.cgi?id=245</a>
					 */
					export class hc_domimplementationfeaturenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_domimplementationfeaturenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not any markup inside an Element or Attr node content, then the text is contained in a single object implementing the Text interface that is the only child of the element. Retrieve the textual data from the second child of the third employee. That Text node contains a block of multiple text lines without markup, so they should be treated as a single Text node. The "getNodeValue()" method should contain the combination of the two lines. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class hc_textwithnomarkup extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textwithnomarkup>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestOracleAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestOracleAltConfig>;
					}
					/**
					 * Replaces a text node of an attribute and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class hc_attrreplacechild1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrreplacechild1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Replaces a text node of an attribute with a document fragment and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class hc_attrreplacechild2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrreplacechild2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for an Attribute Node returns the constant value 2. Retrieve the first attribute from the last child of the first employee and invoke the "getNodeType()" method. The method should return 2. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodeattributenodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeattributenodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the first Element Node(Root Node) of the DOM object and check the string returned by the "getNodeName()" method. It should be equal to its tagName. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class hc_nodeelementnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeelementnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestJTidy {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestJTidy>;
					}
					/**
					 * Checks that Node.lastChild for an attribute node contains the expected text node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB</a>
					 */
					export class hc_attrlastchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrlastchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is already in the tree, the "insertBefore(newChild,refChild)" method must first remove it before the insertion takes place. Insert a node Element ("employeeId") that is already present in the tree. The existing node should be removed first and the new one inserted. The node is inserted at a different position in the tree to assure that it was indeed inserted. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class nodeinsertbeforenewchildexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforenewchildexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method removes a range of characters from the node. Delete data at the end of the character data. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=30 and count=5. The method should delete the characters from position 30 thru position 35. The new value of the character data should be "1230 North Ave. Dallas, Texas". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class characterdatadeletedataend extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatadeletedataend>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified count is negative. Retrieve the character data of the last child of the first employee and invoke its "substringData(offset,count) method with offset=10 and count=-3. It should raise the desired exception since the count is negative. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class hc_characterdataindexsizeerrsubstringcountnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrsubstringcountnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The desired exception should be raised since the offset is a negative number. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-38853C1D')/raises/exception[
					 */
					export class textindexsizeerrnegativeoffset extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textindexsizeerrnegativeoffset>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method removes a range of characters from the node. Delete data at the beginning of the character data. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=0 and count=16. The method should delete the characters from position 0 thru position 16. The new value of the character data should be "Dallas, Texas 98551". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class hc_characterdatadeletedatabegining extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatadeletedatabegining>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the entire DOM document and invoke its "getImplementation()" method. If contentType="text/html", DOMImplementation.hasFeature("HTML","1.0") should be true. Otherwise, DOMImplementation.hasFeature("XML", "1.0") should be true. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1B793EBA">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1B793EBA</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=245">http://www.w3.org/Bugs/Public/show_bug.cgi?id=245</a>
					 */
					export class hc_documentgetimplementation extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentgetimplementation>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an ent4 entity reference and the "appendChild(newChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeappendchildnomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeappendchildnomodificationallowederr.xml</a>
					 */
					export class nodeappendchildnomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchildnomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNextSibling()" method for an Attr node should return null. Retrieve the attribute named "domestic" from the last child of of the first employee and examine its NextSibling node. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class attrnextsiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrnextsiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create an ent3 entity reference and call replaceData on a text child, should thrown a NO_MODIFICATION_ALLOWED_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-E5CBA7FB')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatareplacedatanomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatareplacedatanomodificationallowederr.xml</a>
					 */
					export class characterdatareplacedatanomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatareplacedatanomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Text Node returns null. Retrieve the Text node from the last child of the first employee and invoke the "getAttributes()" method on the Text Node. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772</a>
					 */
					export class nodetextnodeattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodetextnodeattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for an Element Node is null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodeelementnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeelementnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method removes the specified attribute. Retrieve the last child of the third employee, add a new "district" node to it and then try to remove it. To verify that the node was removed use the "getNamedItem(name)" method from the NamedNodeMap interface. It also uses the "getAttributes()" method from the Node interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a>
					 */
					export class elementremoveattributeaftercreate extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattributeaftercreate>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestCrimson {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestCrimson>;
					}
					/**
					 * The "appendChild(newChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if this node is of a type that does not allow children of the type "newChild" to be inserted. Retrieve the root node and attempt to append a newly created Attr node. An Element node cannot have children of the "Attr" type, therefore the desired exception should be raised. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_nodeappendchildinvalidnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeappendchildinvalidnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestGNUJAXP {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestGNUJAXP>;
					}
					/**
					 * The "getNodeType()" method for a CDATASection Node returns the constant value 4. Retrieve the CDATASection node contained inside the second child of the second employee and invoke the "getNodeType()" method. The method should return 4. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212</a>
					 */
					export class nodecdatasectionnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecdatasectionnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method removes the specified attribute node and restores any default values. Retrieve the last child of the third employeed and remove its "street" Attr node. Since this node has a default value defined in the DTD file, that default should immediately be the new value. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class elementremoveattributerestoredefaultvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattributerestoredefaultvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItem(arg)" method raises a WRONG_DOCUMENT_ERR DOMException if "arg" was created from a different document than the one that created the NamedNodeMap. Create a NamedNodeMap object from the attributes of the last child of the third employee and attempt to add another Attr node to it that was created from a different DOM document. This should raise the desired exception. This method uses the "createAttribute(name)" method from the Document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1025163788')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_namednodemapwrongdocumenterr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapwrongdocumenterr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the sum of the offset and count used in the "deleteData(offset,count) method is greater than the length of the character data then all the characters from the offset to the end of the data are deleted. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=4 and count=50. The method should delete the characters from position 4 to the end of the data since the offset+count(50+4) is greater than the length of the character data(35). The new value of the character data should be "1230". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class hc_characterdatadeletedataexceedslength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatadeletedataexceedslength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLength()" method returns the number of characters stored in this nodes data. Retrieve the character data from the second child of the first employee and examine the value returned by the getLength() method. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C</a>
					 */
					export class hc_characterdatagetlength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatagetlength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if the node to put in is one of this node's ancestors. Retrieve the second employee and attempt to replace one of its children with an ancestor node(root node). An attempt to make such a replacement should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class hc_nodereplacechildnodeancestor extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodereplacechildnodeancestor>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is already in the tree, it is first removed before the new one is added. Retrieve the second "p" and replace "acronym" with its "em". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodereplacechildnewchildexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodereplacechildnewchildexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPublicId()" method of an Entity node contains the public identifier associated with the entity, if one was specified. Retrieve the entity named "ent5" and access its public identifier. The string "entityURI" should be returned. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D7303025">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D7303025</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6ABAEB38">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6ABAEB38</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D7C29F3E">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D7C29F3E</a>
					 */
					export class entitygetpublicid extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.entitygetpublicid>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create an ent3 reference and execute the "splitText(offset)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-38853C1D')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/textsplittextnomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/textsplittextnomodificationallowederr.xml</a>
					 */
					export class textsplittextnomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textsplittextnomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for an Element Node returns the constant value 1. Retrieve the root node and invoke the "getNodeType()" method. The method should return 1. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodeelementnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeelementnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the entire DOM document and invoke its "createAttribute(name)" method. It should create a new Attribute node with the given name. The name, value and type of the newly created object are retrieved and output. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_documentcreateattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentcreateattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an ent4 entity reference and and execute the "insertBefore(newChild,refChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeinsertbeforenomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodeinsertbeforenomodificationallowederr.xml</a>
					 */
					export class nodeinsertbeforenomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforenomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createEntityReference(name)" method creates an EntityReference node. In addition, if the referenced entity is known, the child list of the "EntityReference" node is the same as the corresponding "Entity" node. Retrieve the entire DOM document and invoke its "createEntityReference(name)" method. It should create a new EntityReference node for the Entity with the given name. The referenced entity is known, therefore the child list of the "EntityReference" node is the same as the corresponding "Entity" node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE</a>
					 */
					export class documentcreateentityreferenceknown extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreateentityreferenceknown>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Calling Element.setAttribute with an empty name will cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-F68F082')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class hc_elementinvalidcharacterexception1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementinvalidcharacterexception1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "item(index)" method returns the indexth item in the map(test for last item). Retrieve the second "acronym" and get the attribute name. Since the DOM does not specify an order of these nodes the contents of the LAST node can contain either "title" or "class". The test should return "true" if the LAST node is either of these values. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=184">http://www.w3.org/Bugs/Public/show_bug.cgi?id=184</a>
					 */
					export class hc_namednodemapreturnlastitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapreturnlastitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test for replacement in the middle of the data. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=5 and count=5 and arg="South". The method should replace characters five thru 9 of the character data with "South". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class characterdatareplacedatabegining extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatareplacedatabegining>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItem(arg)" method raises a INUSE_ATTRIBUTE_ERR DOMException if "arg" is an Attr that is already in an attribute of another Element. Create a NamedNodeMap object from the attributes of the last child of the third employee and attempt to add an attribute that is already being used by the first employee. This should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1025163788')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_namednodemapinuseattributeerr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapinuseattributeerr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method adds a new attribute to the Element Retrieve the last child of the last employee, then add an attribute to it by invoking the "setAttribute(name,value)" method. It should create a "name" attribute with an assigned value equal to "value". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a>
					 */
					export class elementaddnewattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementaddnewattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "replaceChild(newChild,oldChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class nodereplacechildnomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildnomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestGNUJAXPAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestGNUJAXPAltConfig>;
					}
					/**
					 * The "removeChild(oldChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "removeChild(oldChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1734834066')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a>
					 */
					export class noderemovechildnomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.noderemovechildnomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerDocument()" method returns null if the target node itself is a document. Invoke the "getOwnerDocument()" method on the master document. The Document returned should be null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc</a>
					 */
					export class hc_nodegetownerdocumentnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetownerdocumentnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a NOT_FOUND_ERR DOMException if the reference child is not a child of this node. Retrieve the second employee and attempt to insert a new node before a reference node that is not a child of this node. An attempt to insert before a non child node should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodeinsertbeforerefchildnonexistent extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforerefchildnonexistent>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 *  The "getChildNodes()" method returns a NodeList that contains all children of this node. Retrieve the second employee and check the NodeList returned by the "getChildNodes()" method. The length of the list should be 13. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodechildnodes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodechildnodes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "cloneNode(deep)" method returns a copy of the node only if deep=false. Retrieve the second employee and invoke the "cloneNode(deep)" method with deep=false. The method should only clone this node. The NodeName and length of the NodeList are checked. The "getNodeName()" method should return "employee" and the "getLength()" method should return 0. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class nodeclonenodefalse extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeclonenodefalse>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "setNamedItem(arg)" method replaces an already existing node with the same name then the already existing node is returned. Retrieve the third employee and create a NamedNodeMap object from the attributes of the last child by invoking the "getAttributes()" method. Once the list is created an invocation of the "setNamedItem(arg)" method is done with arg=newAttr, where newAttr is a new Attr Node previously created and whose node name already exists in the map. The "setNamedItem(arg)" method should replace the already existing node with the new one and return the existing node. This test uses the "createAttribute(name)" method from the document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapsetnameditemreturnvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapsetnameditemreturnvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method raises a NO_MODIFICATION_ALLOWED_ERR DOMException if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "replaceData(offset,count,arg)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-E5CBA7FB')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class characterdatareplacedatanomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatareplacedatanomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a WRONG_DOCUMENT_ERR DOMException if the "newChild" was created from a different document than the one that created this node. Retrieve the second employee and attempt to insert a new child that was created from a different document than the one that created the second employee. An attempt to insert such a child should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeinsertbeforenewchilddiffdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforenewchilddiffdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method adds the node "newChild" to the end of the list of children of the node. Retrieve the second employee and append a new Element node to the list of children. The last node in the list is then retrieved and its NodeName examined. The "getNodeName()" method should return "newChild". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class nodeappendchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its "deleteData(offset,count)" method with offset=-5 and count=3. It should raise the desired exception since the offset is negative. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class hc_characterdataindexsizeerrdeletedataoffsetnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrdeletedataoffsetnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Get this last child of the third employee using NodeList.item(NodeList.length - 1) and check that it is either a Text element (with whitespace) or an address element. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a>
					 */
					export class nodelistreturnlastitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodelistreturnlastitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Invoke the "getTagName()" method one the root node. The value returned should be "html" or "svg". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class hc_elementgettagname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgettagname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a NOT_FOUND_ERR DOMException if the reference child is not a child of this node. Retrieve the second employee and attempt to insert a new node before a reference node that is not a child of this node. An attempt to insert before a non child node should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_nodeinsertbeforerefchildnonexistent extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforerefchildnonexistent>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An processing instruction is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1004215813">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1004215813</a>
					 */
					export class nodevalue09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Comment Node is the content of the comment. Retrieve the comment in the XML file and check the string returned by the "getNodeValue()" method. It should be equal to "This is comment number 1". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=248">http://www.w3.org/Bugs/Public/show_bug.cgi?id=248</a>
					 */
					export class hc_nodecommentnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodecommentnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater that the number of characters in the string. Retrieve the character data of the last child of the first employee and invoke its "deleteData(offset,count)" method with offset=40 and count=3. It should raise the desired exception since the offset is greater than the number of characters in the string. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class characterdataindexsizeerrdeletedataoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrdeletedataoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * A document fragment is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a>
					 */
					export class nodevalue05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getTagName()" method returns the tagName of an element. Invoke the "getTagName()" method one the root node. The value returned should be "staff". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class elementgettagname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgettagname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An document is accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a>
					 */
					export class nodevalue06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLastChild()" method returns the last child of this node. Retrieve the second employee and invoke the "getLastChild()" method. The NodeName returned should be "#text". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB</a>
					 */
					export class hc_nodegetlastchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetlastchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An Entity is accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2</a>
					 */
					export class nodevalue07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method removes a range of characters from the node. Delete data at the end of the character data. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=30 and count=5. The method should delete the characters from position 30 thru position 35. The new value of the character data should be "1230 North Ave. Dallas, Texas". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class hc_characterdatadeletedataend extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatadeletedataend>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An notation is accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5431D1B9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5431D1B9</a>
					 */
					export class nodevalue08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to remove the "domestic" attribute from the entity reference by executing the "removeAttributeNode(oldAttr)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-D589198')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a>
					 */
					export class elementremoveattributenodenomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattributenodenomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An element is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a>
					 */
					export class nodevalue01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An comment is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a>
					 */
					export class nodevalue02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its "replaceData(offset,count,arg) method with offset=-5 and count=3 and arg="ABC". It should raise the desired exception since the offset is negative. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-E5CBA7FB')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class hc_characterdataindexsizeerrreplacedataoffsetnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrreplacedataoffsetnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An entity reference is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490</a>
					 */
					export class nodevalue03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Access Document.doctype for hc_staff, if not text/html should return DocumentType node. HTML implementations may return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31</a>
					 */
					export class hc_documentgetdoctype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentgetdoctype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An document type accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31</a>
					 */
					export class nodevalue04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodevalue04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Document Node returns null. Retrieve the DOM Document and invoke the "getAttributes()" method on the Document Node. It should return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a>
					 */
					export class hc_nodedocumentnodeattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodedocumentnodeattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * On successful invocation of the "appendData(arg)" method the "getData()" method provides access to the concatentation of data and the specified string. Retrieve the character data from the second child of the first employee. The appendData(arg) method is called with arg=", Esquire". The method should append the specified data to the already existing character data. The new value return by the "getData()" method should be "Margaret Martin, Esquire". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a>
					 */
					export class characterdataappenddatagetdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataappenddatagetdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the sum of the offset and count exceeds the length then all the characters to the end of the data are replaced. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=0 and count=50 and arg="2600". The method should replace all the characters with "2600". This is because the sum of the offset and count exceeds the length of the character data. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class hc_characterdatareplacedataexceedslengthofdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatareplacedataexceedslengthofdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method returns the specified string. Retrieve the character data from the second child of the first employee and access part of the data by using the substringData(offset,count) method. The method should return the specified substring starting at position "offset" and extract "count" characters. The method should return the string "Margaret". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a>
					 */
					export class hc_characterdatasubstringvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatasubstringvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a list of all the children elements of the third employee and access its last child by invoking the "item(index)" method with an index=length-1. This should result in node with nodeName="#text" or acronym. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodelistreturnlastitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodelistreturnlastitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for an Element Node returns the constant value 1. Retrieve the root node and invoke the "getNodeType()" method. The method should return 1. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class hc_nodeelementnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeelementnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a first child then the "getFirstChild()" method returns null. Retrieve the text of the first "em" element and invoke the "getFirstChild()" method. It should return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodegetfirstchildnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetfirstchildnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeChild(oldChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an entity reference and execute the "removeChild(oldChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1734834066')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/noderemovechildnomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/noderemovechildnomodificationallowederr.xml</a>
					 */
					export class noderemovechildnomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.noderemovechildnomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "cloneNode(deep)" method does not copy text unless it is deep cloned.(Test for deep=false) Retrieve the fourth child of the second employee and the "cloneNode(deep)" method with deep=false. The duplicate node returned by the method should not copy any text data contained in this node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class nodeclonefalsenocopytext extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeclonefalsenocopytext>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Comment Node returns null. Find any comment that is an immediate child of the root and assert that Node.attributes is null. Then create a new comment node (in case they had been omitted) and make the assertion. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=248">http://www.w3.org/Bugs/Public/show_bug.cgi?id=248</a>
					 */
					export class nodecommentnodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecommentnodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add an element to the named node map returned by entities should result in a NO_MODIFICATION_ERR or HIERARCHY_REQUEST_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a>
					 */
					export class hc_entitiessetnameditem1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_entitiessetnameditem1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttribute(name)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to remove the "domestic" attribute from the entity reference by executing the "removeAttribute(name)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6D6AC0F9')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9</a>
					 */
					export class elementremoveattributenomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattributenomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on an EntityReference Node returns null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class nodeentityreferencenodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentityreferencenodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * On successful invocation of the "deleteData(offset,count)" method, the "getData()" and "getLength()" methods reflect the changes. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=30 and count=5. The method should delete the characters from position 30 thru position 35. The new value of the character data should be "1230 North Ave. Dallas, Texas" which is returned by the "getData()" method and "getLength()" method should return 30". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class hc_characterdatadeletedatagetlengthanddata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatadeletedatagetlengthanddata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is a DocumentFragment object then all its content is added to the child list of this node. Create and populate a new DocumentFragment object and append it to the second employee. After the "appendChild(newChild)" method is invoked retrieve the new nodes at the end of the list, they should be the two Element nodes from the DocumentFragment. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeappendchilddocfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeappendchilddocfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setValue()" method for an attribute creates a Text node with the unparsed content of the string. Retrieve the attribute named "street" from the last child of of the fourth employee and assign the "Y&ent1;" string to its value attribute. This value is not yet parsed and therefore should still be the same upon retrieval. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html</a>
					 */
					export class attrcreatetextnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrcreatetextnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "item(index)" method returns the indexth item in the map(test for last item). Retrieve the second employee and create a NamedNodeMap listing of the attributes of the last child. Since the DOM does not specify an order of these nodes the contents of the LAST node can contain either "domestic" or "street". The test should return "true" if the LAST node is either of these values. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapreturnlastitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapreturnlastitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Processing Instruction Node is the target. Retrieve the Processing Instruction Node in the XML file and check the string returned by the "getNodeName()" method. It should be equal to "XML-STYLE". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodeprocessinginstructionnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeprocessinginstructionnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getParentNode()" method for an Attr node should return null. Retrieve the attribute named "domestic" from the last child of the first employee and examine its parentNode attribute. This test also uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class hc_attrparentnodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrparentnodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createEntityReference(tagName)" method raises an INVALID_CHARACTER_ERR DOMException if the specified tagName contains an invalid character. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-392B75AE')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class documentinvalidcharacterexceptioncreateentref extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentinvalidcharacterexceptioncreateentref>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is already in the tree, it is first removed before the new one is appended. Retrieve the first child of the second employee and append the first child to the end of the list. After the "appendChild(newChild)" method is invoked the first child should be the one that was second and the last child should be the one that was first. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class nodeappendchildchildexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchildchildexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method inserts the node "newChild" before the node "refChild". Insert a newly created Element node before the second sup element in the document and check the "newChild" and "refChild" after insertion for correct placement. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=261">http://www.w3.org/Bugs/Public/show_bug.cgi?id=261</a>
					 */
					export class hc_nodeinsertbefore extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbefore>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createCDATASection(data)" method creates a new CDATASection node whose value is the specified string. Retrieve the entire DOM document and invoke its "createCDATASection(data)" method. It should create a new CDATASection node whose "data" is the specified string. The content, name and type are retrieved and output. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D26C0AF8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D26C0AF8</a>
					 */
					export class documentcreatecdatasection extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreatecdatasection>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLength()" method returns the number of nodes in the list should be 6 (no whitespace) or 13. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337</a>
					 */
					export class nodelistindexgetlength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodelistindexgetlength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a Document Node returns the constant value 9. Retrieve the document and invoke the "getNodeType()" method. The method should return 9. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodedocumentnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumentnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The nodeName attribute that is inherited from Node contains the name of the entity. Retrieve the entity named "ent1" and access its name by invoking the "getNodeName()" method inherited from the Node interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class entitygetentityname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.entitygetentityname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * After the "splitText(offset)" method breaks the Text node into two Text nodes, the new Text node contains all the content at and after the offset point. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The new Text node should contain all the content at and after the offset point. The "getNodeValue()" method is called to check that the new node now contains the characters at and after position seven. (Starting count at 0) Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class hc_textsplittextthree extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textsplittextthree>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the number of characters in the string. Retrieve the character data of the last child of the first employee and invoke its "substringData(offset,count) method with offset=40 and count=3. It should raise the desired exception since the offsets value is greater than the length. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_characterdataindexsizeerrsubstringoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrsubstringoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The range of valid child node indices is 0 thru length -1 Create a list of all the children elements of the third employee and traverse the list from index=0 thru length -1. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodelisttraverselist extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodelisttraverselist>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNode(name)" method retrieves an attribute node by name. It should return null if the "name" attribute does not exist. Retrieve the last child of the first employee and attempt to retrieve a non-existing attribute. The method should return "null". The non-existing attribute to be used is "invalidAttribute". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8</a>
					 */
					export class elementgetattributenodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgetattributenodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a Text Node returns the constant value 3. Retrieve the Text node from the last child of the first employee and invoke the "getNodeType()" method. The method should return 3. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class hc_nodetextnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodetextnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for an Element Node is its tagName. Retrieve the first Element Node(Root Node) of the DOM object and check the string returned by the "getNodeName()" method. It should be equal to its tagName. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class nodeelementnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeelementnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a DocumentFragment Node returns the constant value 11. Invoke the "createDocumentFragment()" method and examine the NodeType of the document fragment returned by the "getNodeType()" method. The method should return 11. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a>
					 */
					export class nodedocumentfragmentnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumentfragmentnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to remove the "domestic" attribute from the entity reference by executing the "setAttributeNode(newAttr)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-887236154')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a>
					 */
					export class elementsetattributenodenomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementsetattributenodenomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The NodeList returned by the "getChildNodes()" method is live. Changes on the node's children are immediately reflected on the nodes returned in the NodeList. Create a NodeList of the children of the second employee and then add a newly created element that was created by the "createElement()" method(Document Interface) to the second employee by using the "appendChild()" method. The length of the NodeList should reflect this new addition to the child list. It should return the value 14. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodechildnodesappendchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodechildnodesappendchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The tagName parameter in the "createElement(tagName)" method is case-sensitive for XML documents. Retrieve the entire DOM document and invoke its "createElement(tagName)" method twice. Once for tagName equal to "acronym" and once for tagName equal to "ACRONYM" Each call should create a distinct Element node. The newly created Elements are then assigned attributes that are retrieved. Modified on 27 June 2003 to avoid setting an invalid style values and checked the node names to see if they matched expectations. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_documentcreateelementcasesensitive extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentcreateelementcasesensitive>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the number of characters in the Text node. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The desired exception should be raised since the offset is a greater than the number of characters in the Text node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-38853C1D')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_textindexsizeerroffsetoutofbounds extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textindexsizeerroffsetoutofbounds>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is a DocumentFragment object then all its children are inserted in the same order before the the "refChild". Create a DocumentFragment object and populate it with two Element nodes. Retrieve the second employee and insert the newly created DocumentFragment before its fourth child. The second employee should now have two extra children("newChild1" and "newChild2") at positions fourth and fifth respectively. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeinsertbeforedocfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforedocfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the number of characters in the Text node. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The desired exception should be raised since the offset is a greater than the number of characters in the Text node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-38853C1D')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class textindexsizeerroffsetoutofbounds extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textindexsizeerroffsetoutofbounds>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLength()" method returns the number of characters stored in this nodes data. Retrieve the character data from the second child of the first employee and examine the value returned by the getLength() method. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C</a>
					 */
					export class characterdatagetlength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatagetlength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getValue()" method will return the value of the attribute as a string. The general entity references are replaced with their values. Retrieve the attribute named "street" from the last child of of the fourth employee and examine the string returned by the "getValue()" method. The value should be set to "Yes" after the EntityReference is replaced with its value. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a>
					 */
					export class attrentityreplacement extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrentityreplacement>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNodeValue(nodeValue)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the SECOND item from the entity reference and execute the "setNodeValue(nodeValue)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-F68D080')/setraises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodesetnodevaluenomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodesetnodevaluenomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElement(tagName)" method creates an Element of the type specified. Retrieve the entire DOM document and invoke its "createElement(tagName)" method with tagName="address". The method should create an instance of an Element node whose tagName is "address". The NodeName, NodeType and NodeValue are returned. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a>
					 */
					export class documentcreateelement extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreateelement>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElement(tagName)" method creates an Element of the type specified. In addition, if there are known attributes with default values, Attr nodes representing them are automatically created and attached to the element. Retrieve the entire DOM document and invoke its "createElement(tagName)" method with tagName="address". The method should create an instance of an Element node whose tagName is "address". The tagName "address" has an attribute with default values, therefore the newly created element will have them. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class documentcreateelementdefaultattr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreateelementdefaultattr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Text Node is "#text". Retrieve the Text Node from the last child of the first employee and check the string returned by the "getNodeName()" method. It should be equal to "#text". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodetextnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodetextnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second "p" element and create a NamedNodeMap listing of the attributes of the last child. Once the list is created an invocation of the "getNamedItem(name)" method is done with name="title". This should result in the title Attr node being returned. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a>
					 */
					export class hc_namednodemapgetnameditem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapgetnameditem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a CDATASection Node is #cdata-section". Retrieve the CDATASection node inside the second child of the second employee and check the string returned by the "getNodeName()" method. It should be equal to "#cdata-section". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212</a>
					 */
					export class nodecdatasectionnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecdatasectionnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite that runs all DOM L1 Core tests using the Default LS parser in default configuration. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestDefaultLS>;
					}
					/**
					 * The "replaceData(offset,count,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the length of the string. Retrieve the character data of the last child of the first employee and invoke its "replaceData(offset,count,arg) method with offset=40 and count=3 and arg="ABC". It should raise the desired exception since the offset is greater than the length of the string. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=242">http://www.w3.org/Bugs/Public/show_bug.cgi?id=242</a>
					 */
					export class hc_characterdataindexsizeerrreplacedataoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrreplacedataoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNextSibling()" method returns the node immediately following this node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F</a>
					 */
					export class nodegetnextsibling extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetnextsibling>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method breaks the Text node into two Text nodes at the specified offset keeping each node as siblings in the tree. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The method splits the Text node into two new sibling Text nodes keeping both of them in the tree. This test checks the "nextSibling()" method of the original node to ensure that the two nodes are indeed siblings. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class textsplittextone extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textsplittextone>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Adjacent CDATASection nodes cannot be merged together by use of the "normalize()" method from the Element interface. Retrieve second child of the second employee and invoke the "normalize()" method. The Element under contains two CDATASection nodes that should not be merged together by the "normalize()" method. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083</a>
					 */
					export class cdatasectionnormalize extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.cdatasectionnormalize>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the attribute named class from the last child of of the second "p" element and examine its NodeName. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a>
					 */
					export class hc_attrname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Appends a text node to an attribute, normalizes the attribute and checks for a single child node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083</a>
					 */
					export class hc_attrnormalize extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrnormalize>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the entire DOM document and invoke its "getElementsByTagName(tagName)" method with tagName equal to "*". The method should return a NodeList that contains all the elements of the document. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class hc_documentgetelementsbytagnametotallength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentgetelementsbytagnametotallength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method raises an "INUSE_ATTRIBUTE_ERR DOMException if the "newAttr" is already an attribute of another element. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-887236154')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=244">http://www.w3.org/Bugs/Public/show_bug.cgi?id=244</a>
					 */
					export class hc_elementinuseattributeerr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementinuseattributeerr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is a DocumentFragment object then all its children are inserted in the same order before the the "refChild". Create a DocumentFragment object and populate it with two Element nodes. Retrieve the second employee and insert the newly created DocumentFragment before its fourth child. The second employee should now have two extra children("newChild1" and "newChild2") at positions fourth and fifth respectively. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class nodeinsertbeforedocfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforedocfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "setNamedItem(arg)" method does not replace an existing node with the same name then it returns null. Retrieve the third employee and create a NamedNodeMap object from the attributes of the last child. Once the list is created the "setNamedItem(arg)" method is invoked with arg=newAttr, where newAttr is a newly created Attr Node and whose node name already exists in the map. The "setNamedItem(arg)" method should add the new node and return null. This test uses the "createAttribute(name)" method from the document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapsetnameditemwithnewvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapsetnameditemwithnewvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttribute(name)" method creates an Attribute node of the given name. Retrieve the entire DOM document and invoke its "createAttribute(name)" method. It should create a new Attribute node with the given name. The name, value and type of the newly created object are retrieved and output. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a>
					 */
					export class documentcreateattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreateattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * After the "splitText(offset)" method breaks the Text node into two Text nodes, the original node contains all the content up to the offset point. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The original Text node should contain all the content up to the offset point. The "getNodeValue()" method is called to check that the original node now contains the first five characters. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class hc_textsplittexttwo extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textsplittexttwo>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPreviousSibling()" method for an Attr node should return null. Retrieve the attribute named "domestic" from the last child of of the first employee and examine its PreviousSibling node. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class attrprevioussiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrprevioussiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method returns the null value if no previously existing Attr node with the same name was replaced. Retrieve the last child of the third employee and add a new attribute to it. The new attribute node added is "district", which is not part of this Element. The method should return the null value. This test uses the "createAttribute(name)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a>
					 */
					export class elementsetattributenodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementsetattributenodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method adds a new attribute to the Element. Retrieve first address element and add a new attribute node to it by invoking its "setAttributeNode(newAttr)" method. This test makes use of the "createAttribute(name)" method from the Document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_elementcreatenewattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementcreatenewattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its "substringData(offset,count) method with offset=-5 and count=3. It should raise the desired exception since the offset is negative. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class characterdataindexsizeerrsubstringnegativeoffset extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrsubstringnegativeoffset>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestBatik {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestBatik>;
					}
					/**
					 * The "getNodeType()" method for a DocumentFragment Node returns the constant value 11. Invoke the "createDocumentFragment()" method and examine the NodeType of the document fragment returned by the "getNodeType()" method. The method should return 11. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a>
					 */
					export class hc_nodedocumentfragmentnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodedocumentfragmentnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getData()" method returns the content of the processing instruction. It starts at the first non white character following the target and ends at the character immediately preceding the "?>". Retrieve the ProcessingInstruction node located immediately after the prolog. Create a nodelist of the child nodes of this document. Invoke the "getData()" method on the first child in the list. This should return the content of the ProcessingInstruction. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393</a>
					 */
					export class processinginstructiongetdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.processinginstructiongetdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test the situation where the length of the arg string is greater than the specified offset. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=0 and count=4 and arg="260030". The method should replace characters one thru four with "260030". Note that the length of the specified string is greater that the specified offset. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class characterdatareplacedataexceedslengthofarg extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatareplacedataexceedslengthofarg>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a Text Node returns the constant value 3. Retrieve the Text node from the last child of the first employee and invoke the "getNodeType()" method. The method should return 3. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodetextnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodetextnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method breaks the Text node into two Text nodes at the specified offset keeping each node as siblings in the tree. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The method splits the Text node into two new sibling Text nodes keeping both of them in the tree. This test checks the "nextSibling()" method of the original node to ensure that the two nodes are indeed siblings. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class hc_textsplittextone extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textsplittextone>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The desired exception should be raised since the offset is a negative number. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-38853C1D')/raises/exception[
					 */
					export class hc_textindexsizeerrnegativeoffset extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textindexsizeerrnegativeoffset>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttribute(name)" method returns an empty string if no value was assigned to an attribute and no default value was given in the DTD file. Retrieve the last child of the last employee, then invoke "getAttribute(name)" method, where "strong" is an attribute without a specified or DTD default value. The "getAttribute(name)" method should return the empty string. This method makes use of the "createAttribute(newAttr)" method from the Document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_elementgetelementempty extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgetelementempty>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * hasFeature("xml", "1.0") should return true for implementations that can read staff documents. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7</a>
					 */
					export class domimplementationfeaturexml extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.domimplementationfeaturexml>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a Comment Node returns the constant value 8. Retrieve the nodes from the document and check for a comment node and invoke the "getNodeType()" method. This should return 8. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=248">http://www.w3.org/Bugs/Public/show_bug.cgi?id=248</a>
					 */
					export class hc_nodecommentnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodecommentnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on an Entity Node returns null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class nodeentitynodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentitynodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Text Node is the content of the Text node. Retrieve the Text node from the last child of the first employee and check the string returned by the "getNodeValue()" method. It should be equal to "1230 North Ave. Dallas, Texas 98551". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class hc_nodetextnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodetextnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItem(arg)" method raises a WRONG_DOCUMENT_ERR DOMException if "arg" was created from a different document than the one that created the NamedNodeMap. Create a NamedNodeMap object from the attributes of the last child of the third employee and attempt to add another Attr node to it that was created from a different DOM document. This should raise the desired exception. This method uses the "createAttribute(name)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1025163788')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class namednodemapwrongdocumenterr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapwrongdocumenterr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName()" method returns a NodeList of all descendant elements with a given tagName. Invoke the "getElementsByTagName()" method and create a NodeList of "code" elements. Retrieve the second "code" element in the list and return the NodeName. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-104682815</a>
					 */
					export class hc_elementretrievetagname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementretrievetagname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its insertData"(offset,arg)" method with offset=-5 and arg="ABC". It should raise the desired exception since the offset is negative. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-E5CBA7FB')/raises/exception[
					 */
					export class characterdataindexsizeerrinsertdataoffsetnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrinsertdataoffsetnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a last child then the "getLastChild()" method returns null. Retrieve the text of the first "em" element and invoke the "getFirstChild()" method. It should return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodegetlastchildnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetlastchildnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Creating an entity reference with an empty name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-392B75AE')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class documentinvalidcharacterexceptioncreateentref1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentinvalidcharacterexceptioncreateentref1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * After the "splitText(offset)" method breaks the Text node into two Text nodes, the original node contains all the content up to the offset point. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The original Text node should contain all the content up to the offset point. The "getNodeValue()" method is called to check that the original node now contains the first five characters. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class textsplittexttwo extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textsplittexttwo>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not an explicit value assigned to an attribute and there is a declaration for this attribute and that declaration includes a default value, then that default value is the attributes default value. Retrieve the attribute named "street" from the last child of of the first employee and examine its value. That value should be the value given the attribute in the DTD file. The test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class attrdefaultvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrdefaultvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * A comment is all the characters between the starting '<!--' and ending '-->' Retrieve the nodes of the DOM document. Search for a comment node and the content is its value. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class commentgetcomment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.commentgetcomment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttribute(name)" method returns an attribute value by name. Retrieve the second address element, then invoke the 'getAttribute("street")' method. This should return the value of the attribute("No"). NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9</a>
					 */
					export class elementretrieveattrvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementretrieveattrvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for an Attribute Node is the name of the Attribute. Retrieve the Attribute named "domestic" from the last child of the first employee and check the string returned by the "getNodeName()" method. It should be equal to "domestic". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodeattributenodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeattributenodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method raises a NO_MODIFICATION_ALLOWED_ERR DOMException if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "insertData(offset,arg)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-3EDB695F')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a>
					 */
					export class characterdatainsertdatanomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatainsertdatanomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method removes a range of characters from the node. Delete data at the beginning of the character data. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=0 and count=16. The method should delete the characters from position 0 thru position 16. The new value of the character data should be "Dallas, Texas 98551". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class characterdatadeletedatabegining extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatadeletedatabegining>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Add an empty text node to an existing attribute node, normalize the containing element and check that the attribute node has eliminated the empty text. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=482">http://www.w3.org/Bugs/Public/show_bug.cgi?id=482</a>
					 */
					export class hc_elementnormalize2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementnormalize2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Creates an new attribute node and appends a text node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class hc_attrappendchild6 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrappendchild6>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attempt to append a node from another document to an attribute which should result in a WRONG_DOCUMENT_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class hc_attrappendchild5 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrappendchild5>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "appendChild(newChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class nodeappendchildnomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchildnomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attempt to append a CDATASection to an attribute which should result in a HIERARCHY_REQUEST_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class hc_attrappendchild4 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrappendchild4>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Appends a document fragment to an attribute and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class hc_attrappendchild3 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrappendchild3>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attempts to append an element to the child nodes of an attribute. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class hc_attrappendchild2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrappendchild2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestDefaultParserAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestDefaultParserAltConfig>;
					}
					/**
					 * Appends a text node to an attribute and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class hc_attrappendchild1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrappendchild1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method removes a range of characters from the node. Delete data in the middle of the character data. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=16 and count=8. The method should delete the characters from position 16 thru position 24. The new value of the character data should be "1230 North Ave. Texas 98551". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class hc_characterdatadeletedatamiddle extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatadeletedatamiddle>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test the situation where the length of the arg string is greater than the specified offset. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=0 and count=4 and arg="260030". The method should replace characters one thru four with "260030". Note that the length of the specified string is greater that the specified offset. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class hc_characterdatareplacedataexceedslengthofarg extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatareplacedataexceedslengthofarg>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getData()" method retrieves the character data currently stored in the node. Retrieve the character data from the second child of the first employee and invoke the "getData()" method. The method returns the character data string. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a>
					 */
					export class characterdatagetdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatagetdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method adds a new attribute to the Element. If the "newAttr" Attr node is already present in this element, it should replace the existing one. Retrieve the last child of the third employee and add a new attribute node by invoking the "setAttributeNode(new Attr)" method. The new attribute node to be added is "street", which is already present in this element. The method should replace the existing Attr node with the new one. This test uses the "createAttribute(name)" method from the Document interface. NIST Mary Brady
					 */
					export class elementreplaceexistingattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementreplaceexistingattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "item(index)" method returns the indexth item in the map(test for first item). Retrieve the second "acronym" get the NamedNodeMap of the attributes. Since the DOM does not specify an order of these nodes the contents of the FIRST node can contain either "title", "class" or "dir". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=184">http://www.w3.org/Bugs/Public/show_bug.cgi?id=184</a>
					 */
					export class hc_namednodemapreturnfirstitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapreturnfirstitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 *  DOM Test Suite Project
					 */
					export class alltests extends org.w3c.domts.DOMTestSuite {
						/**
						 * Constructor
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.alltests>;
						/**
						 * Build test suite by adding each test to the test sink
						 * @param sink test sink
						 */
						public build(sink: org.w3c.domts.IDOMTestSink): void;
						/**
						 * Gets URI that identifies the test suite
						 */
						public getTargetURI(): string;
						/**
						 * Runs individual test
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the last CDATASection node located inside the second child of the second employee and examine its content. Since the CDATASection interface inherits from the CharacterData interface(via the Text node), the "getData()" method can be used to access the CDATA content. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a>
					 */
					export class cdatasectiongetdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.cdatasectiongetdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createTextNode(data)" method creates a Text node given the specfied string. Retrieve the entire DOM document and invoke its "createTextNode(data)" method. It should create a new Text node whose "data" is the specified string. The NodeName and NodeType are also checked. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1975348127">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1975348127</a>
					 */
					export class hc_documentcreatetextnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentcreatetextnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method raises a NO_MODIFICATION_ALLOWED_ERR DOMException if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the element content of the FIRST Text Node of the entity reference and execute the "splitText(offset)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-38853C1D')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class textsplittextnomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textsplittextnomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Setting the nodeValue should change the value returned by nodeValue and ProcessingInstruction.getData. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1004215813">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1004215813</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=181">http://www.w3.org/Bugs/Public/show_bug.cgi?id=181</a>
					 */
					export class nodeprocessinginstructionsetnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeprocessinginstructionsetnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamedItem(name)" method returns null of the specified name did not identify any node in the map. Retrieve the second employee and create a NamedNodeMap listing of the attributes of the last child. Once the list is created an invocation of the "getNamedItem(name)" method is done with name="lang". This name does not match any names in the list therefore the method should return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_namednodemapreturnnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapreturnnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An entity reference is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490</a>
					 */
					export class hc_nodevalue03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An document type accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31</a>
					 */
					export class hc_nodevalue04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An element is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a>
					 */
					export class hc_nodevalue01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a NOT_FOUND_ERR DOMException if the old child is not a child of this node. Retrieve the second employee and attempt to replace a node that is not one of its children. An attempt to replace such a node should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodereplacechildoldchildnonexistent extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildoldchildnonexistent>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An comment is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a>
					 */
					export class hc_nodevalue02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setValue()" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an entity reference using document.createEntityReference() Get the "domestic" attribute from the entity reference and execute the "setValue()" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#ID-221662474">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#ID-221662474</a> <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#xpointer(id('ID-221662474')/setraises/exception[ <a href="http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html">http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/attrsetvaluenomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/attrsetvaluenomodificationallowederr.xml</a>
					 */
					export class attrsetvaluenomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrsetvaluenomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test for replacement in the middle of the data. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=5 and count=5 and arg="South". The method should replace characters five thru 9 of the character data with "South". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class hc_characterdatareplacedatamiddle extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatareplacedatamiddle>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamedItem(name)" method retrieves a node specified by name. Retrieve the second employee and create a NamedNodeMap listing of the attributes of the last child. Once the list is created an invocation of the "getNamedItem(name)" method is done with name="domestic". This should result in the domestic Attr node being returned. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapgetnameditem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapgetnameditem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Checks Node.childNodes for an attribute with multiple child nodes. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a>
					 */
					export class hc_attrchildnodes2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrchildnodes2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a DocumentFragment Node is "#document-frament". Retrieve the DOM document and invoke the "createDocumentFragment()" method and check the string returned by the "getNodeName()" method. It should be equal to "#document-fragment". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a>
					 */
					export class nodedocumentfragmentnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumentfragmentnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second "p" element and evaluate Node.attributes.length. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=250">http://www.w3.org/Bugs/Public/show_bug.cgi?id=250</a>
					 */
					export class hc_namednodemapnumberofnodes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapnumberofnodes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getSystemId()" method of a Notation node contains the system identifier associated with the notation, if one was specified. Retrieve the notation named "notation2" and access its system identifier. The string "notation2File" should be returned. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E8AAB1D0">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E8AAB1D0</a>
					 */
					export class notationgetsystemid extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.notationgetsystemid>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLength()" method returns the number of nodes in the list. Create a list of all the children elements of the third employee and invoke the "getLength()" method. It should contain the value 13. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodelistindexgetlength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodelistindexgetlength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An Entity is accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2</a>
					 */
					export class hc_nodevalue07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test for replacement in the middle of the data. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=5 and count=5 and arg="South". The method should replace characters five thru 9 of the character data with "South". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class characterdatareplacedatamiddle extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatareplacedatamiddle>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getSpecified()" method for an Attr node should be set to true if the attribute was explicitly given a value. Retrieve the attribute named "domestic" from the last child of of the first employee and examine the value returned by the "getSpecified()" method. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273</a>
					 */
					export class attrspecifiedvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrspecifiedvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Checks that Node.childNodes for an attribute node contains the expected text node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a>
					 */
					export class hc_attrchildnodes1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrchildnodes1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An notation is accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5431D1B9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5431D1B9</a>
					 */
					export class hc_nodevalue08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItem(name)" method raises a NOT_FOUND_ERR DOMException if there is not a node named "strong" in the map. Create a NamedNodeMap object from the attributes of the last child of the third employee and attempt to remove the "lang" attribute. There is not a node named "lang" in the list and therefore the desired exception should be raised. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-D58B193')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_namednodemapnotfounderr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapnotfounderr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * A document fragment is created, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a>
					 */
					export class hc_nodevalue05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An document is accessed, setNodeValue is called with a non-null argument, but getNodeValue should still return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a>
					 */
					export class hc_nodevalue06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodevalue06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the sum of the "offset" and "count" exceeds the "length" then the "substringData(offset,count)" method returns all the characters to the end of the data. Retrieve the character data from the second child of the first employee and access part of the data by using the substringData(offset,count) method with offset=9 and count=10. The method should return the substring "Martin" since offset+count > length (19 > 15). Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a>
					 */
					export class hc_characterdatasubstringexceedsvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatasubstringexceedsvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocumentFragment()" method creates an empty DocumentFragment object. Retrieve the entire DOM document and invoke its "createDocumentFragment()" method. The content, name, type and value of the newly created object are output. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5</a>
					 */
					export class documentcreatedocumentfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreatedocumentfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its "substringData(offset,count) method with offset=-5 and count=3. It should raise the desired exception since the offset is negative. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class hc_characterdataindexsizeerrsubstringnegativeoffset extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrsubstringnegativeoffset>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the entire DOM document, invoke getElementsByTagName("*") and check the length of the NodeList. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094</a>
					 */
					export class documentgetelementsbytagnametotallength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentgetelementsbytagnametotallength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for an Notation Node returns the constant value 12. Retrieve the Notation declaration in the DocumentType node and invoke the "getNodeType()" method. The method should return 12. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodenotationnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodenotationnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestCrimsonAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestCrimsonAltConfig>;
					}
					/**
					 * The "cloneNode(deep)" method returns a copy of the node only if deep=false. Retrieve the second employee and invoke the "cloneNode(deep)" method with deep=false. The method should only clone this node. The NodeName and length of the NodeList are checked. The "getNodeName()" method should return "employee" and the "getLength()" method should return 0. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class hc_nodeclonenodefalse extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeclonenodefalse>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method returns the specified string. Retrieve the character data from the second child of the first employee and access part of the data by using the substringData(offset,count) method. The method should return the specified substring starting at position "offset" and extract "count" characters. The method should return the string "Margaret". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a>
					 */
					export class characterdatasubstringvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatasubstringvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second p element and create a NamedNodeMap listing of the attributes of the last child. Once the list is created an invocation of the "getNamedItem(name)" method is done with name="class". This should result in the method returning an Attr node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a>
					 */
					export class hc_namednodemapreturnattrnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapreturnattrnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(tagName)" method returns a NodeList of all the Elements with a given tagName in a pre-order traversal of the tree. Retrieve the entire DOM document and invoke its "getElementsByTagName(tagName)" method with tagName equal to "name". The method should return a NodeList that contains 5 elements. The FOURTH item in the list is retrieved and output. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094</a>
					 */
					export class documentgetelementsbytagnamevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentgetelementsbytagnamevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasChildNodes()" method returns false if the node does not have any children. Retrieve the Text node inside the first child of the second employee and invoke the "hasChildNodes()" method. It should return the boolean value "false". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187</a>
					 */
					export class nodehaschildnodesfalse extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodehaschildnodesfalse>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified count is negative. Retrieve the character data of the last child of the first employee and invoke its "replaceData(offset,count,arg) method with offset=10 and count=-3 and arg="ABC". It should raise the desired exception since the count is negative. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class characterdataindexsizeerrreplacedatacountnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrreplacedatacountnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getDoctype()" method returns the Document Type Declaration associated with this document. Retrieve the entire DOM document and invoke its "getDoctype()" method. The name of the document type should be returned. The "getName()" method should be equal to "staff" or "svg". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class documentgetdoctype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentgetdoctype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "refChild" is null then the "insertBefore(newChild,refChild)" method inserts the node "newChild" at the end of the list of children. Retrieve the second employee and invoke the "insertBefore(newChild,refChild)" method with refChild=null. Since "refChild" is null the "newChild" should be added to the end of the list. The last item in the list is checked after insertion. The last Element node of the list should be "newChild". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeinsertbeforerefchildnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforerefchildnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attempts to remove a freshly created text node which should result in a NOT_FOUND_ERR exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a>
					 */
					export class hc_attrremovechild2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrremovechild2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Removes the child node of an attribute and checks that the value is empty. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a>
					 */
					export class hc_attrremovechild1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrremovechild1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create an ent3 entity reference and call setData on a text child, should thrown a NO_MODIFICATION_ALLOWED_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-72AB8359')/setraises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatasetdatanomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatasetdatanomodificationallowederr.xml</a>
					 */
					export class characterdatasetdatanomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatasetdatanomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendData(arg)" method raises a NO_MODIFICATION_ALLOWED_ERR DOMException if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "appendData(arg)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-32791A2F')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a>
					 */
					export class characterdataappenddatanomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataappenddatanomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Add an element and check that the previously retrieved childNodes NodeList is live. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class nodechildnodesappendchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodechildnodesappendchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeChild(oldChild)" method removes the child node indicated by "oldChild" from the list of children and returns it. Remove the first employee by invoking the "removeChild(oldChild)" method an checking the node returned by the "getParentNode()" method. It should be set to null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a>
					 */
					export class noderemovechild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.noderemovechild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLength()" method returns the number of nodes in the map. Retrieve the second employee and create a NamedNodeMap listing of the attributes of the last child. Once the list is created an invocation of the "getLength()" method is executed. The number of nodes should be 2. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E</a>
					 */
					export class namednodemapnumberofnodes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapnumberofnodes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its "deleteData(offset,count)" method with offset=-5 and count=3. It should raise the desired exception since the offset is negative. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class characterdataindexsizeerrdeletedataoffsetnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrdeletedataoffsetnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method will insert a string at the specified character offset. Insert the data in the middle of the character data. Retrieve the character data from the second child of the first employee. The "insertData(offset,arg)" method is then called with offset=9 and arg="Ann". The method should insert the string "Ann" at position 9. The new value of the character data should be "Margaret Ann Martin". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a>
					 */
					export class hc_characterdatainsertdatamiddle extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatainsertdatamiddle>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamedItem(name)" method returns a node of any type specified by name. Retrieve the second employee and create a NamedNodeMap listing of the attributes of the last child. Once the list is created an invocation of the "getNamedItem(name)" method is done with name="street". This should result in the method returning an Attr node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403</a>
					 */
					export class namednodemapreturnattrnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapreturnattrnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNextSibling()" method for an Attr node should return null. Retrieve the attribute named "domestic" from the last child of of the first employee and examine its NextSibling node. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class hc_attrnextsiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrnextsiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getParentNode()" method invoked on a node that has just been created and not yet added to the tree is null. Create a new "employee" Element node using the "createElement(name)" method from the Document interface. Since this new node has not yet been added to the tree, the "getParentNode()" method will return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317</a>
					 */
					export class nodeparentnodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeparentnodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the first attribute from the last child of the first employee and invoke the "getSpecified()" method. This test is only intended to show that Elements can actually have attributes. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class hc_elementassociatedattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementassociatedattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified count is negative. Retrieve the character data of the last child of the first employee and invoke its "deleteData(offset,count)" method with offset=10 and count=-3. It should raise the desired exception since the count is negative. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class hc_characterdataindexsizeerrdeletedatacountnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrdeletedatacountnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a list of all the children elements of the third employee and access its fourth child by using an index of 3. This should result in "name" being selected. Further we evaluate its content(by using the "getNodeName()" method) to ensure the proper element was accessed. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a>
					 */
					export class nodelistindexnotzero extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodelistindexnotzero>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a node immediately following this node the "getNextSibling()" method returns null. Retrieve the first child of the second employee and invoke the "getNextSibling()" method. It should be set to null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F</a>
					 */
					export class hc_nodegetnextsiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetnextsiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the textual data from the last child of the second employee. That node is composed of two EntityReference nodes and two Text nodes. After the content node is parsed, the "address" Element should contain four children with each one of the EntityReferences containing one child. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-745549614">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-745549614</a>
					 */
					export class textparseintolistofelements extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textparseintolistofelements>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItem(name)" method raises a NOT_FOUND_ERR DOMException if there is not a node named "name" in the map. Create a NamedNodeMap object from the attributes of the last child of the third employee and attempt to remove the "district" attribute. There is not a node named "district" in the list and therefore the desired exception should be raised. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-D58B193')/raises/exception[
					 */
					export class namednodemapnotfounderr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapnotfounderr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the sum of the offset and count exceeds the length then all the characters to the end of the data are replaced. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=0 and count=50 and arg="2600". The method should replace all the characters with "2600". This is because the sum of the offset and count exceeds the length of the character data. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class characterdatareplacedataexceedslengthofdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatareplacedataexceedslengthofdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamedItem(name)" method returns null of the specified name did not identify any node in the map. Retrieve the second employee and create a NamedNodeMap listing of the attributes of the last child. Once the list is created an invocation of the "getNamedItem(name)" method is done with name="district". This name does not match any names in the list therefore the method should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a>
					 */
					export class namednodemapreturnnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapreturnnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method raises a WRONG_DOCUMENT_ERR DOMException if the "newChild" was created from a different document than the one that created this node. Retrieve the second employee and attempt to append a node created from a different document. An attempt to make such a replacement should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodeappendchildnewchilddiffdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchildnewchilddiffdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "setNamedItem(arg)" method replaces an already existing node with the same name then the already existing node is returned. Retrieve the third employee and create a NamedNodeMap object from the attributes of the last child by invoking the "getAttributes()" method. Once the list is created an invocation of the "setNamedItem(arg)" method is done with arg=newAttr, where newAttr is a new Attr Node previously created and whose node name already exists in the map. The "setNamedItem(arg)" method should replace the already existing node with the new one and return the existing node. This test uses the "createAttribute(name)" method from the document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class hc_namednodemapsetnameditemreturnvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapsetnameditemreturnvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * This test calls setAttributeNode to replace an attribute with itself. Since the node is not an attribute of another Element, it would be inappropriate to throw an INUSE_ATTRIBUTE_ERR. This test was derived from elementinuserattributeerr which inadvertanly made this test. Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a>
					 */
					export class hc_elementreplaceattributewithself extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementreplaceattributewithself>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified count is negative. Retrieve the character data of the last child of the first employee and invoke its "deleteData(offset,count)" method with offset=10 and count=-3. It should raise the desired exception since the count is negative. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class characterdataindexsizeerrdeletedatacountnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrdeletedatacountnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "setAttributeNode(newAttr)" method replaces an existing Attr node with the same name, then it should return the previously existing Attr node. Retrieve the last child of the third employee and add a new attribute node. The new attribute node is "street", which is already present in this Element. The method should return the existing Attr node(old "street" Attr). This test uses the "createAttribute(name)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a>
					 */
					export class elementreplaceexistingattributegevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementreplaceexistingattributegevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "cloneNode(deep)" method does not copy text unless it is deep cloned.(Test for deep=false) Retrieve the fourth child of the second employee and the "cloneNode(deep)" method with deep=false. The duplicate node returned by the method should not copy any text data contained in this node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class hc_nodeclonefalsenocopytext extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeclonefalsenocopytext>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add an element to the named node map returned by notations should result in a NO_MODIFICATION_ERR or HIERARCHY_REQUEST_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a>
					 */
					export class hc_notationssetnameditem1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_notationssetnameditem1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createComment(data)" method creates a new Comment node given the specified string. Retrieve the entire DOM document and invoke its "createComment(data)" method. It should create a new Comment node whose "data" is the specified string. The content, name and type are retrieved and output. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328</a>
					 */
					export class documentcreatecomment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreatecomment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second employee and replace its TWELFTH child(address) with its SECOND child(employeeId). After the replacement the second child should now be the one that used to be at the third position and the TWELFTH child should be the one that used to be at the SECOND position. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class nodereplacechildnewchildexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildnewchildexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * hasFeature("XML", null) should return true for implementations that can read staff documents. NIST Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7</a> <a href="http://www.w3.org/2000/11/DOM-Level-2-errata#core-14">http://www.w3.org/2000/11/DOM-Level-2-errata#core-14</a>
					 */
					export class domimplementationfeaturenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.domimplementationfeaturenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPreviousSibling()" method for an Attr node should return null. Retrieve the attribute named "domestic" from the last child of of the first employee and examine its PreviousSibling node. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class hc_attrprevioussiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrprevioussiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestXercesAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestXercesAltConfig>;
					}
					/**
					 * Retrieve the notation named "notation1" and access its name by invoking the "getNodeName()" method inherited from the Node interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5431D1B9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5431D1B9</a>
					 */
					export class notationgetnotationname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.notationgetnotationname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for an Element Node is null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class hc_nodeelementnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeelementnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "cloneNode(deep)" method returns a copy of the node and the subtree under it if deep=true. Retrieve the second employee and invoke the "cloneNode(deep)" method with deep=true. The method should clone this node and the subtree under it. The NodeName of each child in the returned node is checked to insure the entire subtree under the second employee was cloned. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class nodeclonenodetrue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeclonenodetrue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Add an ent4 reference to the children of the THIRD "gender" element. Try to remove the "domestic" attribute from the entity reference by executing the "setAttribute(name,value)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-F68F082')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementsetattributenomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementsetattributenomodificationallowederr.xml</a>
					 */
					export class elementsetattributenomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementsetattributenomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If an Attr is explicitly assigned any value, then that value is the attributes effective value. Retrieve the attribute named "domestic" from the last child of of the first employee and examine its nodeValue attribute. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a>
					 */
					export class attreffectivevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attreffectivevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Replace the second Element of the second employee with a newly created node Element and check the NodeName returned by the "replaceChild(newChild,oldChild)" method. The returned node should have a NodeName equal to "employeeId". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class nodereplacechildnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestDefaultParser {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestDefaultParser>;
					}
					/**
					 * The "setNamedItem(arg)" method raises a INUSE_ATTRIBUTE_ERR DOMException if "arg" is an Attr that is already in an attribute of another Element. Create a NamedNodeMap object from the attributes of the last child of the third employee and attempt to add an attribute that is already being used by the first employee. This should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1025163788')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class namednodemapinuseattributeerr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapinuseattributeerr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method raises an "INUSE_ATTRIBUTE_ERR DOMException if the "newAttr" is already an attribute of another element. Retrieve the last child of the second employee and append a newly created element. The "createAttribute(name)" and "setAttributeNode(newAttr)" methods are invoked to create and add a new attribute to the newly created Element. The "setAttributeNode(newAttr)" method is once again called to add the new attribute causing an exception to be raised since the attribute is already an attribute of another element. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-887236154')/raises/exception[
					 */
					export class elementinuseattributeerr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementinuseattributeerr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "insertBefore(newChild,refChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class nodeinsertbeforenomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforenomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestOracle {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestOracle>;
					}
					/**
					 * The "getAttribute(name)" method returns an empty string if no value was assigned to an attribute and no default value was given in the DTD file. Retrieve the last child of the last employee, then invoke "getAttribute(name)" method, where "name" is an attribute without a specified or DTD default value. The "getAttribute(name)" method should return the empty string. This method makes use of the "createAttribute(newAttr)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9</a>
					 */
					export class elementgetelementempty extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgetelementempty>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the entire DOM document and invoke its "getImplementation()" method. This should create a DOMImplementation object whose "hasFeature(feature, version)" method is invoked with "feature" equal to "html" or "xml". The method should return a boolean "true". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=245">http://www.w3.org/Bugs/Public/show_bug.cgi?id=245</a>
					 */
					export class hc_domimplementationfeaturexml extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_domimplementationfeaturexml>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not any markup inside an Element or Attr node content, then the text is contained in a single object implementing the Text interface that is the only child of the element. Retrieve the textual data from the second child of the third employee. That Text node contains a block of multiple text lines without markup, so they should be treated as a single Text node. The "getNodeValue()" method should contain the combination of the two lines. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class textwithnomarkup extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textwithnomarkup>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create an ent3 entity reference and call insertData on a text child, should thrown a NO_MODIFICATION_ALLOWED_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-3EDB695F')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatainsertdatanomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatainsertdatanomodificationallowederr.xml</a>
					 */
					export class characterdatainsertdatanomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatainsertdatanomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an entity reference execute the "replaceChild(newChild,oldChild)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodereplacechildnomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodereplacechildnomodificationallowederr.xml</a>
					 */
					export class nodereplacechildnomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildnomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its "replaceData(offset,count,arg) method with offset=-5 and count=3 and arg="ABC". It should raise the desired exception since the offset is negative. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-E5CBA7FB')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class characterdataindexsizeerrreplacedataoffsetnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrreplacedataoffsetnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the sum of the offset and count used in the "deleteData(offset,count) method is greater than the length of the character data then all the characters from the offset to the end of the data are deleted. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=4 and count=50. The method should delete the characters from position 4 to the end of the data since the offset+count(50+4) is greater than the length of the character data(35). The new value of the character data should be "1230". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class characterdatadeletedataexceedslength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatadeletedataexceedslength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the textual data from the last child of the second employee. That node is composed of two EntityReference nodes and two Text nodes. After the content node is parsed, the "acronym" Element should contain four children with each one of the EntityReferences containing one child. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-11C98490</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-745549614">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-745549614</a>
					 */
					export class hc_textparseintolistofelements extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textparseintolistofelements>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a WRONG_DOCUMENT_ERR DOMException if the "newChild" was created from a different document than the one that created this node. Retrieve the second employee and attempt to insert a new child that was created from a different document than the one that created the second employee. An attempt to insert such a child should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class nodeinsertbeforenewchilddiffdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforenewchilddiffdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to remove the "domestic" attribute from the entity reference by executing the "setAttribute(name,value)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-F68F082')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a>
					 */
					export class elementsetattributenomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementsetattributenomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "cloneNode(deep)" method does not copy text unless it is deep cloned.(Test for deep=true) Retrieve the eighth child of the second employee and the "cloneNode(deep)" method with deep=true. The duplicate node returned by the method should copy any text data contained in this node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodeclonetruecopytext extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeclonetruecopytext>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Sets Attr.value on an attribute that only has a simple value. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a>
					 */
					export class hc_attrsetvalue1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrsetvalue1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createTextNode(data)" method creates a Text node given the specfied string. Retrieve the entire DOM document and invoke its "createTextNode(data)" method. It should create a new Text node whose "data" is the specified string. The NodeName and NodeType are also checked. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1975348127">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1975348127</a>
					 */
					export class documentcreatetextnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreatetextnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Sets Attr.value on an attribute that should contain multiple child nodes. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a>
					 */
					export class hc_attrsetvalue2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrsetvalue2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNodeValue()" method for an attribute creates a Text node with the unparsed content of the string. Retrieve the attribute named "street" from the last child of of the fourth employee and assign the "Y&ent1;" string to its value attribute. This value is not yet parsed and therefore should still be the same upon retrieval. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html</a>
					 */
					export class attrcreatetextnode2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrcreatetextnode2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(tagName)" method returns a NodeList of all the Elements with a given tagName in a pre-order traversal of the tree. Retrieve the entire DOM document and invoke its "getElementsByTagName(tagName)" method with tagName equal to "strong". The method should return a NodeList that contains 5 elements. The FOURTH item in the list is retrieved and output. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094</a>
					 */
					export class hc_documentgetelementsbytagnamevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentgetelementsbytagnamevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Elements may have attributes associated with them. Retrieve the first attribute from the last child of the first employee and invoke the "getSpecified()" method. This test is only intended to show that Elements can actually have attributes. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class elementassociatedattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementassociatedattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a Document Node returns the constant value 9. Retrieve the document and invoke the "getNodeType()" method. The method should return 9. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class hc_nodedocumentnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodedocumentnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElement(tagName)" method creates an Element of the type specified. Retrieve the entire DOM document and invoke its "createElement(tagName)" method with tagName="acronym". The method should create an instance of an Element node whose tagName is "acronym". The NodeName, NodeType and NodeValue are returned. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a>
					 */
					export class hc_documentcreateelement extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentcreateelement>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a node immediately preceding this node the "getPreviousSibling()" method returns null. Retrieve the first child of the second employee and invoke the "getPreviousSibling()" method. It should be set to null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8</a>
					 */
					export class hc_nodegetprevioussiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetprevioussiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for an Attribute Node is the value of the Attribute. Retrieve the Attribute named "domestic" from the last child of the first employee and check the string returned by the "getNodeValue()" method. It should be equal to "Yes". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodeattributenodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeattributenodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is negative. Retrieve the character data of the last child of the first employee and invoke its insertData"(offset,arg)" method with offset=-5 and arg="ABC". It should raise the desired exception since the offset is negative. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-E5CBA7FB')/raises/exception[
					 */
					export class hc_characterdataindexsizeerrinsertdataoffsetnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrinsertdataoffsetnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setValue()" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the "domestic" attribute from the entity reference and execute the "setValue()" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#ID-221662474">http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#ID-221662474</a> <a href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-core#xpointer(id('ID-221662474')/setraises/exception[ <a href="http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html">http://www.w3.org/DOM/updates/REC-DOM-Level-1-19981001-errata.html</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a>
					 */
					export class attrsetvaluenomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrsetvaluenomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Every node in the map returned by the "getEntities()" method implements the Entity interface. Retrieve the Document Type for this document and create a NamedNodeMap of all its entities. Traverse the entire list and examine the NodeType of each node in the list. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630</a>
					 */
					export class documenttypegetentitiestype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documenttypegetentitiestype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method will insert a string at the specified character offset. Insert the data at the beginning of the character data. Retrieve the character data from the second child of the first employee. The "insertData(offset,arg)" method is then called with offset=0 and arg="Mss.". The method should insert the string "Mss." at position 0. The new value of the character data should be "Mss. Margaret Martin". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a>
					 */
					export class hc_characterdatainsertdatabeginning extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatainsertdatabeginning>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a node immediately following this node the "getNextSibling()" method returns null. Retrieve the first child of the second employee and invoke the "getNextSibling()" method. It should be set to null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F</a>
					 */
					export class nodegetnextsiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetnextsiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second "p" and append a "br" Element node to the list of children. The last node in the list is then retrieved and its NodeName examined. The "getNodeName()" method should return "br". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeappendchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeappendchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method returns the null value if no previously existing Attr node with the same name was replaced. Retrieve the last child of the third employee and add a new attribute to it. The new attribute node added is "lang", which is not part of this Element. The method should return the null value. This test uses the "createAttribute(name)" method from the Document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_elementsetattributenodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementsetattributenodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getChildNodes()" method returns a NodeList that contains all children of this node. If there are not any children, this is a NodeList that does not contain any nodes. Retrieve the character data of the second "em" node and invoke the "getChildNodes()" method. The NodeList returned should not have any nodes. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodechildnodesempty extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodechildnodesempty>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttribute(name)" method returns an attribute value by name. Retrieve the second address element, then invoke the 'getAttribute("class")' method. This should return the value of the attribute("No"). Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-666EE0F9</a>
					 */
					export class hc_elementretrieveattrvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementretrieveattrvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasChildNodes()" method returns true if the node has children. Retrieve the root node("staff") and invoke the "hasChildNodes()" method. It should return the boolean value "true". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187</a>
					 */
					export class hc_nodehaschildnodes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodehaschildnodes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a DocumentFragment Node is null. Retrieve the DOM document and invoke the "createDocumentFragment()" method and check the string returned by the "getNodeValue()" method. It should be equal to null. Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class hc_nodedocumentfragmentnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodedocumentfragmentnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if this node is of a type that does not allow children of the type "newChild" to be inserted. Retrieve the root node and attempt to insert a newly created Attr node. An Element node cannot have children of the "Attr" type, therefore the desired exception should be raised. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodeinsertbeforeinvalidnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforeinvalidnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Comment Node is "#comment". Retrieve the Comment node in the XML file and check the string returned by the "getNodeName()" method. It should be equal to "#comment". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a>
					 */
					export class nodecommentnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecommentnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test for replacement at the end of the data. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=30 and count=5 and arg="98665". The method should replace characters 30 thru 34 of the character data with "98665". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class characterdatareplacedataend extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatareplacedataend>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method raises a NOT_FOUND_ERR DOMException if the "oldAttr" attribute is not an attribute of the element. Retrieve the last employee and attempt to remove a non existing attribute node. This should cause the intended exception to be raised. This test makes use of the "createAttribute(name)" method from the Document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-D589198')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_elementnotfounderr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementnotfounderr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Comment Node is "#comment". Retrieve the Comment node in the XML file and check the string returned by the "getNodeName()" method. It should be equal to "#comment". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=248">http://www.w3.org/Bugs/Public/show_bug.cgi?id=248</a>
					 */
					export class hc_nodecommentnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodecommentnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a NamedNodeMap object from the attributes of the last child of the third "p" element and traverse the list from index 0 thru length -1. All indices should be valid. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=250">http://www.w3.org/Bugs/Public/show_bug.cgi?id=250</a>
					 */
					export class hc_namednodemapchildnoderange extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapchildnoderange>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getChildNodes()" method returns a NodeList that contains all children of this node. If there are not any children, this is a NodeList that does not contain any nodes. Retrieve the Text node from the second child of the second employee and invoke the "getChildNodes()" method. The NodeList returned should not have any nodes. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a>
					 */
					export class nodechildnodesempty extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodechildnodesempty>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestDOM4J {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestDOM4J>;
					}
					/**
					 * The "setNodeValue()" method changes the character data currently stored in the node. Retrieve the character data from the second child of the first employee and invoke the "setNodeValue()" method, call "getData()" and compare. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a>
					 */
					export class characterdatasetnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatasetnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method adds a new attribute to the Element. Retrieve first address element and add a new attribute node to it by invoking its "setAttributeNode(newAttr)" method. This test makes use of the "createAttribute(name)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a>
					 */
					export class elementcreatenewattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementcreatenewattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if the node to be inserted is one of this nodes ancestors. Retrieve the second employee and attempt to insert a node that is one of its ancestors(root node). An attempt to insert such a node should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_nodeinsertbeforenodeancestor extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforenodeancestor>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPreviousSibling()" method returns the node immediately preceding this node. Retrieve the second child of the second employee and invoke the "getPreviousSibling()" method. It should return a node with a NodeName of "#text". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8</a>
					 */
					export class hc_nodegetprevioussibling extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetprevioussibling>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Creating an element with an empty name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-2141741547')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class hc_documentinvalidcharacterexceptioncreateelement1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentinvalidcharacterexceptioncreateelement1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method returns the node being replaced. Replace the second Element of the second employee with a newly created node Element and check the NodeName returned by the "replaceChild(newChild,oldChild)" method. The returned node should have a NodeName equal to "em". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodereplacechildnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodereplacechildnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method adds a new attribute to the Element. If the "name" is already present, then its value should be changed to the new one that is in the "value" parameter. Retrieve the last child of the fourth employee, then add an attribute to it by invoking the "setAttribute(name,value)" method. Since the name of the used attribute("street") is already present in this element, then its value should be changed to the new one of the "value" parameter. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a>
					 */
					export class elementchangeattributevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementchangeattributevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(name)" method returns a list of all descendant Elements with the given tag name. Create a NodeList of all the descendant elements using the string "employee" as the tagName. The method should return a NodeList whose length is "5". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a>
					 */
					export class hc_elementgetelementsbytagnamenomatch extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgetelementsbytagnamenomatch>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Check the nodeName of the entity returned by DocumentType.entities.getNamedItem("ent1"). NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodeentitynodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentitynodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method adds a new attribute to the Element. If the "newAttr" Attr node is already present in this element, it should replace the existing one. Retrieve the last child of the third employee and add a new attribute node by invoking the "setAttributeNode(new Attr)" method. The new attribute node to be added is "class", which is already present in this element. The method should replace the existing Attr node with the new one. This test uses the "createAttribute(name)" method from the Document interface. Curt Arnold
					 */
					export class hc_elementreplaceexistingattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementreplaceexistingattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The range of valid child node indices is 0 to Length -1. Create a NamedNodeMap object from the attributes of the last child of the third employee and traverse the list from index 0 thru length -1. All indices should be valid. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D0FB19E</a>
					 */
					export class namednodemapchildnoderange extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapchildnoderange>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for an Attribute Node returns the constant value 2. Retrieve the first attribute from the last child of the first employee and invoke the "getNodeType()" method. The method should return 2. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class hc_nodeattributenodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeattributenodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Creating a processing instruction with an empty target should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-135944439">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-135944439</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-135944439')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class documentinvalidcharacterexceptioncreatepi1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentinvalidcharacterexceptioncreatepi1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createProcessingInstruction(target,data)" method creates a new ProcessingInstruction node with the specified name and data string. Retrieve the entire DOM document and invoke its "createProcessingInstruction(target,data)" method. It should create a new PI node with the specified target and data. The target, data and type are retrieved and output. NIST Mary Brady Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2001Apr/0020.html">http://lists.w3.org/Archives/Public/www-dom-ts/2001Apr/0020.html</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-135944439">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-135944439</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class documentcreateprocessinginstruction extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreateprocessinginstruction>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if the node to append is one of this node's ancestors. Retrieve the second employee and attempt to append an ancestor node(root node) to it. An attempt to make such an addition should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodeappendchildnodeancestor extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchildnodeancestor>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Notation Node is the name of the notation. Retrieve the Notation declaration inside the DocumentType node and check the string returned by the "getNodeName()" method. It should be equal to "notation1". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodenotationnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodenotationnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method will insert a string at the specified character offset. Insert the data at the beginning of the character data. Retrieve the character data from the second child of the first employee. The "insertData(offset,arg)" method is then called with offset=0 and arg="Mss.". The method should insert the string "Mss." at position 0. The new value of the character data should be "Mss. Margaret Martin". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a>
					 */
					export class characterdatainsertdatabeginning extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatainsertdatabeginning>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Text Node returns null. Retrieve the Text node from the last child of the first employee and invoke the "getAttributes()" method on the Text Node. It should return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1312295772</a>
					 */
					export class hc_nodetextnodeattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodetextnodeattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Load a document and invoke its "getDocumentElement()" method. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-87CD092">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-87CD092</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class hc_documentgetrootnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentgetrootnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the Attribute named "title" from the last child of the first p element and check the string returned by the "getNodeName()" method. It should be equal to "title". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a>
					 */
					export class hc_nodeattributenodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeattributenodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(name)" method returns a list of all descendant Elements with the given tag name. Test for an empty list. Create a NodeList of all the descendant elements using the string "noMatch" as the tagName. The method should return a NodeList whose length is "0" since there are not any descendant elements that match the given tag name. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a>
					 */
					export class elementgetelementsbytagname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgetelementsbytagname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createComment(data)" method creates a new Comment node given the specified string. Retrieve the entire DOM document and invoke its "createComment(data)" method. It should create a new Comment node whose "data" is the specified string. The content, name and type are retrieved and output. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328</a>
					 */
					export class hc_documentcreatecomment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentcreatecomment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Notation Node is null. Retrieve the Notation declaration inside the DocumentType node and check the string returned by the "getNodeValue()" method. It should be equal to null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodenotationnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodenotationnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Comment Node returns null. Find any comment that is an immediate child of the root and assert that Node.attributes is null. Then create a new comment node (in case they had been omitted) and make the assertion. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=248">http://www.w3.org/Bugs/Public/show_bug.cgi?id=248</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=263">http://www.w3.org/Bugs/Public/show_bug.cgi?id=263</a>
					 */
					export class hc_nodecommentnodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodecommentnodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the DOCTYPE declaration from the XML file and check the string returned by the "getNodeName()" method. It should be equal to "staff" or "svg". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodedocumenttypenodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumenttypenodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItem(name)" method removes a node specified by name. Retrieve the third employee and create a NamedNodeMap object of the attributes of the last child. Once the list is created invoke the "removeNamedItem(name)" method with name="street". This should result in the removal of the specified attribute and the "getSpecified()" method should return false. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class namednodemapremovenameditem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapremovenameditem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocumentFragment()" method creates an empty DocumentFragment object. Retrieve the entire DOM document and invoke its "createDocumentFragment()" method. The content, name, type and value of the newly created object are output. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5</a>
					 */
					export class hc_documentcreatedocumentfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentcreatedocumentfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasChildNodes()" method returns false if the node does not have any children. Retrieve the text of the first "em" element and invoke the "hasChildNodes()" method. It should return false. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodehaschildnodesfalse extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodehaschildnodesfalse>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getDoctype()" method returns null for XML documents without a document type declaration. Retrieve the XML document without a DTD and invoke the "getDoctype()" method. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31</a>
					 */
					export class documentgetdoctypenodtd extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentgetdoctypenodtd>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method returns the new Text node. Retrieve the textual data from the last child of the first employee and invoke the "splitText(offset)" method. The method should return the new Text node. The offset value used for this test is 30. The "getNodeValue()" method is called to check that the new node now contains the characters at and after position 30. (Starting count at 0) Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class hc_textsplittextfour extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_textsplittextfour>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create an ent3 entity reference and call appendData on a text child, should thrown a NO_MODIFICATION_ALLOWED_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-32791A2F')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdataappenddatanomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdataappenddatanomodificationallowederr.xml</a>
					 */
					export class characterdataappenddatanomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataappenddatanomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "setAttributeNode(newAttr)" method replaces an existing Attr node with the same name, then it should return the previously existing Attr node. Retrieve the last child of the third employee and add a new attribute node. The new attribute node is "class", which is already present in this Element. The method should return the existing Attr node(old "class" Attr). This test uses the "createAttribute(name)" method from the Document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a>
					 */
					export class hc_elementreplaceexistingattributegevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementreplaceexistingattributegevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Append a couple of text nodes to the first sup element, normalize the document element and check that the element has been normalized. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=546">http://www.w3.org/Bugs/Public/show_bug.cgi?id=546</a>
					 */
					export class hc_elementnormalize extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementnormalize>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a CDATASection Node returns null. Retrieve the CDATASection node contained inside the second child of the second employee and invoke the "getAttributes()" method on the CDATASection node. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212</a>
					 */
					export class nodecdatasectionnodeattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecdatasectionnodeattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerDocument()" method returns the Document object associated with this node. Retrieve the second employee and examine Document returned by the "getOwnerDocument()" method. Invoke the "getDocumentElement()" on the Document which will return an Element that is equal to "staff". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class nodegetownerdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetownerdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Load a document and invoke its "getImplementation()" method. This should create a DOMImplementation object whose "hasFeature(feature, version)" method is invoked with version equal to "". If the version is not specified, supporting any version feature will cause the method to return "true". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7</a> <a href="http://www.w3.org/2000/11/DOM-Level-2-errata#core-14">http://www.w3.org/2000/11/DOM-Level-2-errata#core-14</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=245">http://www.w3.org/Bugs/Public/show_bug.cgi?id=245</a>
					 */
					export class hc_domimplementationfeaturenoversion extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_domimplementationfeaturenoversion>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attr nodes may be associated with Element nodes contained within a DocumentFragment. Create a new DocumentFragment and add a newly created Element node(with one attribute). Once the element is added, its attribute should be available as an attribute associated with an Element within a DocumentFragment. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a>
					 */
					export class attrcreatedocumentfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrcreatedocumentfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Appends a text node to an attribute and clones the node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class hc_attrclonenode1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrclonenode1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if this node is of a type that does not allow children of the type "newChild" to be inserted. Retrieve the root node and attempt to replace one of its children with a newly created Attr node. An Element node cannot have children of the "Attr" type, therefore the desired exception should be raised. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodereplacechildinvalidnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildinvalidnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a DocumentType Node is null. NIST Mary Brady
					 */
					export class nodedocumenttypenodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumenttypenodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(name)" method returns a list of all descendant Elements with the given tag name. Test for an empty list. Create a NodeList of all the descendant elements using the string "noMatch" as the tagName. The method should return a NodeList whose length is "0" since there are not any descendant elements that match the given tag name. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a>
					 */
					export class hc_elementgetelementsbytagname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgetelementsbytagname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The items in the list are accessible via an integral index starting from zero. (Index not equal 0) Create a list of all the children elements of the third employee and access its fourth child by using an index of 3 and calling getNodeName() which should return "strong" (no whitespace) or "#text" (with whitespace). Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodelistindexnotzero extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodelistindexnotzero>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method inserts the node "newChild" before the node "refChild". Insert a newly created Element node before the eigth child of the second employee and check the "newChild" and "refChild" after insertion for correct placement. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class nodeinsertbefore extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbefore>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeChild(oldChild)" method raises a NOT_FOUND_ERR DOMException if the old child is not a child of this node. Retrieve the second employee and attempt to remove a node that is not one of its children. An attempt to remove such a node should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1734834066')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class noderemovechildoldchildnonexistent extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.noderemovechildoldchildnonexistent>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLength()" method returns the number of nodes in the list.(Test for EMPTY list) Create a list of all the children of the Text node inside the first child of the third employee and invoke the "getLength()" method. It should contain the value 0. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337</a>
					 */
					export class nodelistindexgetlengthofemptylist extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodelistindexgetlengthofemptylist>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the node to be added by the "setNamedItem(arg)" method already exists in the NamedNodeMap, it is replaced by the new one. Retrieve the second employee and create a NamedNodeMap object from the attributes of the last child by invoking the "getAttributes()" method. Once the list is created an invocation of the "setNamedItem(arg)" method is done with arg=newAttr, where newAttr is a new Attr Node previously created and whose node name already exists in the map. The "setNamedItem(arg)" method should replace the already existing node with the new one. This node is then retrieved using the "getNamedItem(name)" method. This test uses the "createAttribute(name)" method from the document interface Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class hc_namednodemapsetnameditemthatexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapsetnameditemthatexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNode(name)" method retrieves an attribute node by name. It should return null if the "strong" attribute does not exist. Retrieve the last child of the first employee and attempt to retrieve a non-existing attribute. The method should return "null". The non-existing attribute to be used is "invalidAttribute". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8</a>
					 */
					export class hc_elementgetattributenodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgetattributenodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if this node is of a type that does not allow children of the type "newChild" to be inserted. Retrieve the root node and attempt to insert a newly created Attr node. An Element node cannot have children of the "Attr" type, therefore the desired exception should be raised. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=406">http://www.w3.org/Bugs/Public/show_bug.cgi?id=406</a>
					 */
					export class hc_nodeinsertbeforeinvalidnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforeinvalidnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second acronym element and invoke the cloneNode method. The duplicate node returned by the method should copy the attributes associated with this node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=184">http://www.w3.org/Bugs/Public/show_bug.cgi?id=184</a>
					 */
					export class hc_nodecloneattributescopied extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodecloneattributescopied>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Notation Node returns null. Retrieve the Notation declaration inside the DocumentType node and invoke the "getAttributes()" method on the Notation Node. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class nodenotationnodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodenotationnodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNodeValue()" method for an attribute creates a Text node with the unparsed content of the string. Retrieve the attribute named "class" from the last child of of the fourth employee and assign the "Y&ent1;" string to its value attribute. This value is not yet parsed and therefore should still be the same upon retrieval. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html</a>
					 */
					export class hc_attrcreatetextnode2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrcreatetextnode2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Removing a child node from an attribute in an entity reference should result in an NO_MODIFICATION_ALLOWED_ERR DOMException. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1734834066')/raises/exception[
					 */
					export class attrremovechild1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrremovechild1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getData()" method retrieves the character data currently stored in the node. Retrieve the character data from the second child of the first employee and invoke the "getData()" method. The method returns the character data string. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a>
					 */
					export class hc_characterdatagetdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatagetdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createProcessingInstruction(target,data) method raises an INVALID_CHARACTER_ERR DOMException if the specified tagName contains an invalid character. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-135944439">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-135944439</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-135944439')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class documentinvalidcharacterexceptioncreatepi extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentinvalidcharacterexceptioncreatepi>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerDocument()" method returns null if the target node itself is a document. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc</a>
					 */
					export class nodegetownerdocumentnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetownerdocumentnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a new DocumentFragment and add a newly created Element node(with one attribute). Once the element is added, its attribute should be available as an attribute associated with an Element within a DocumentFragment. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-35CB04B5</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=184">http://www.w3.org/Bugs/Public/show_bug.cgi?id=184</a>
					 */
					export class hc_attrcreatedocumentfragment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrcreatedocumentfragment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getName()" method contains the name of the DTD. Retrieve the Document Type for this document and examine the string returned by the "getName()" method. It should be set to "staff". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A31</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1844763134">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1844763134</a>
					 */
					export class documenttypegetdoctype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documenttypegetdoctype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Remove the first child of the second employee and check the NodeName returned by the "removeChild(oldChild)" method. The returned node should have a NodeName equal to "#text" or employeeId depending on whitespace. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a>
					 */
					export class noderemovechildgetnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.noderemovechildgetnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "item(index)" method returns the indexth item in the map(test for first item). Retrieve the second employee and create a NamedNodeMap listing of the attributes of the last child. Since the DOM does not specify an order of these nodes the contents of the FIRST node can contain either "domestic" or "street". The test should return "true" if the FIRST node is either of these values. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapreturnfirstitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapreturnfirstitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItem(arg)" method adds a node using its nodeName attribute. Retrieve the second employee and create a NamedNodeMap object from the attributes of the last child by invoking the "getAttributes()" method. Once the list is created an invocation of the "setNamedItem(arg)" method is done with arg=newAttr, where newAttr is a new Attr Node previously created. The "setNamedItem(arg)" method should add then new node to the NamedNodeItem object by using its "nodeName" attribute("district'). This node is then retrieved using the "getNamedItem(name)" method. This test uses the "createAttribute(name)" method from the document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapsetnameditem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapsetnameditem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Checks that Node.firstChild for an attribute node contains the expected text node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388</a>
					 */
					export class hc_attrfirstchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrfirstchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a DocumentFragment Node is "#document-frament". Retrieve the DOM document and invoke the "createDocumentFragment()" method and check the string returned by the "getNodeName()" method. It should be equal to "#document-fragment". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63ED1A3</a>
					 */
					export class hc_nodedocumentfragmentnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodedocumentfragmentnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method removes a range of characters from the node. Delete data in the middle of the character data. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=16 and count=8. The method should delete the characters from position 16 thru position 24. The new value of the character data should be "1230 North Ave. Texas 98551". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class characterdatadeletedatamiddle extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatadeletedatamiddle>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getSpecified()" method for an Attr node should return true if the value of the attribute is changed. Retrieve the attribute named "street" from the last child of of the THIRD employee and change its value to "Yes"(which is the default DTD value). This should cause the "getSpecified()" method to be true. This test uses the "setAttribute(name,value)" method from the Element interface and the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273</a>
					 */
					export class attrspecifiedvaluechanged extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrspecifiedvaluechanged>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Element.getElementsByTagName("employee") should return a NodeList whose length is "5" in the order the children were encountered. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a>
					 */
					export class elementgetelementsbytagnameaccessnodelist extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgetelementsbytagnameaccessnodelist>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * A comment is all the characters between the starting '<!--' and ending '-->' Retrieve the nodes of the DOM document. Search for a comment node and the content is its value. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1334481328</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=509">http://www.w3.org/Bugs/Public/show_bug.cgi?id=509</a>
					 */
					export class hc_commentgetcomment extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_commentgetcomment>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the number of characters in the string. Retrieve the character data of the last child of the first employee and invoke its "substringData(offset,count) method with offset=40 and count=3. It should raise the desired exception since the offsets value is greater than the length. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class characterdataindexsizeerrsubstringoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrsubstringoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItem(name)" method returns the node removed from the map. Retrieve the third employee and create a NamedNodeMap object of the attributes of the last child. Once the list is created invoke the "removeNamedItem(name)" method with name="street". The "removeNamedItem(name)" method should remove the existing "street" attribute and return it. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a>
					 */
					export class namednodemapremovenameditemreturnnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapremovenameditemreturnnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElement(tagName)" method raises an INVALID_CHARACTER_ERR DOMException if the specified tagName contains an invalid character. Retrieve the entire DOM document and invoke its "createElement(tagName)" method with the tagName equal to the string "invalid^Name". Due to the invalid character the desired EXCEPTION should be raised. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-2141741547')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class documentinvalidcharacterexceptioncreateelement extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentinvalidcharacterexceptioncreateelement>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The getNodeName() method of an Attribute node. Retrieve the attribute named street from the last child of of the second employee and examine its NodeName. This test uses the getNamedItem(name) method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1112119403</a>
					 */
					export class attrname extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrname>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeChild(oldChild)" method returns the node being removed. Remove the first child of the second employee and check the NodeName returned by the "removeChild(oldChild)" method. The returned node should have a NodeName equal to "#text". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_noderemovechildgetnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_noderemovechildgetnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an entity reference and add to the THIRD "gender" element. The elements content is an entity reference. Try to remove the "domestic" attribute from the entity reference by executing the "setAttributeNode(newAttr)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-887236154')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementsetattributenodenomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementsetattributenodenomodificationallowederr.xml</a>
					 */
					export class elementsetattributenodenomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementsetattributenodenomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second employee and remove its first child. After the removal, the second employee should have five or twelve children and the first child should now be the child that used to be at the second position in the list. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a>
					 */
					export class noderemovechildnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.noderemovechildnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a CDATASection Node is the content of the CDATASection. Retrieve the CDATASection node inside the second child of the second employee and check the string returned by the "getNodeValue()" method. It should be equal to "This is a CDATA Section with EntityReference number 2 &ent2;". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-667469212</a>
					 */
					export class nodecdatasectionnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecdatasectionnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the sum of the "offset" and "count" exceeds the "length" then the "substringData(offset,count)" method returns all the characters to the end of the data. Retrieve the character data from the second child of the first employee and access part of the data by using the substringData(offset,count) method with offset=9 and count=10. The method should return the substring "Martin" since offset+count > length (19 > 15). NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a>
					 */
					export class characterdatasubstringexceedsvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatasubstringexceedsvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(tagName)" method returns a NodeList of all the Elements with a given tagName. Retrieve the entire DOM document and invoke its "getElementsByTagName(tagName)" method with tagName equal to "name". The method should return a NodeList that contains 5 elements. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094</a>
					 */
					export class documentgetelementsbytagnamelength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentgetelementsbytagnamelength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "refChild" is null then the "insertBefore(newChild,refChild)" method inserts the node "newChild" at the end of the list of children. Retrieve the second employee and invoke the "insertBefore(newChild,refChild)" method with refChild=null. Since "refChild" is null the "newChild" should be added to the end of the list. The last item in the list is checked after insertion. The last Element node of the list should be "newChild". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class nodeinsertbeforerefchildnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforerefchildnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an entity reference and add it to the children of the THIRD "gender" element. Try to remove the "domestic" attribute from the entity reference by executing the "removeAttributeNode(oldAttr)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-D589198')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementremoveattributenodenomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementremoveattributenodenomodificationallowederr.xml</a>
					 */
					export class elementremoveattributenodenomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattributenodenomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getTarget()" method returns the target of the processing instruction. It is the first token following the markup that begins the processing instruction. Retrieve the ProcessingInstruction node located immediately after the prolog. Create a nodelist of the child nodes of this document. Invoke the "getTarget()" method on the first child in the list. This should return the target of the ProcessingInstruction. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1478689192">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1478689192</a>
					 */
					export class processinginstructiongettarget extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.processinginstructiongettarget>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendData(arg)" method appends a string to the end of the character data of the node. Retrieve the character data from the second child of the first employee. The appendData(arg) method is called with arg=", Esquire". The method should append the specified data to the already existing character data. The new value return by the "getLength()" method should be 24. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a>
					 */
					export class characterdataappenddata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataappenddata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getParentNode()" method for an Attr node should return null. Retrieve the attribute named "domestic" from the last child of the first employee and examine its parentNode attribute. This test also uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class attrparentnodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrparentnodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getParentNode()" method returns the parent of this node. Retrieve the second employee and invoke the "getParentNode()" method on this node. It should be set to "body". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317</a>
					 */
					export class hc_nodeparentnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeparentnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setValue()" method for an attribute creates a Text node with the unparsed content of the string. Retrieve the attribute named "class" from the last child of of the fourth employee and assign the "Y&ent1;" string to its value attribute. This value is not yet parsed and therefore should still be the same upon retrieval. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0057.html</a>
					 */
					export class hc_attrcreatetextnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrcreatetextnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the node removed by the "removeNamedItem(name)" method is an Attr node with a default value it is immediately replaced. Retrieve the third employee and create a NamedNodeMap object of the attributes of the last child. Once the list is created invoke the "removeNamedItem(name)" method with name="street". The "removeNamedItem(name)" method should remove the "street" attribute and since it has a default value of "Yes", that value should immediately be the attributes value. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class namednodemapremovenameditemgetvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.namednodemapremovenameditemgetvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getFirstChild()" method returns the first child of this node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388</a>
					 */
					export class nodegetfirstchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetfirstchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a list of all the attributes of the last child of the first "p" element by using the "getAttributes()" method. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=184">http://www.w3.org/Bugs/Public/show_bug.cgi?id=184</a>
					 */
					export class hc_elementretrieveallattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementretrieveallattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method adds a new attribute to the Element Retrieve the last child of the last employee, then add an attribute to it by invoking the "setAttribute(name,value)" method. It should create a "strong" attribute with an assigned value equal to "value". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_elementaddnewattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementaddnewattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(name)" method returns a list of all descendant Elements in the order the children were encountered in a pre order traversal of the element tree. Create a NodeList of all the descendant elements using the string "p" as the tagName. The method should return a NodeList whose length is "5" in the order the children were encountered. Access the FOURTH element in the NodeList. The FOURTH element, the first or second should be an "em" node with the content "EMP0004". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_elementgetelementsbytagnameaccessnodelist extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgetelementsbytagnameaccessnodelist>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(name)" method returns a list of all descendant Elements with the given tag name. Create a NodeList of all the descendant elements using the string "employee" as the tagName. The method should return a NodeList whose length is "5". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a>
					 */
					export class elementgetelementsbytagnamenomatch extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgetelementsbytagnamenomatch>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLength()" method returns the number of nodes in the list.(Test for EMPTY list) Create a list of all the children of the Text node inside the first child of the third employee and invoke the "getLength()" method. It should contain the value 0. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodelistindexgetlengthofemptylist extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodelistindexgetlengthofemptylist>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getImplementation()" method returns the DOMImplementation object that handles this document. Retrieve the entire DOM document and invoke its "getImplementation()" method. It should return a DOMImplementation whose "hasFeature("XML","1.0") method returns the boolean value "true". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1B793EBA">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1B793EBA</a>
					 */
					export class documentgetimplementation extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentgetimplementation>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if the node to be inserted is one of this nodes ancestors. Retrieve the second employee and attempt to insert a node that is one of its ancestors(root node). An attempt to insert such a node should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-952280727')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodeinsertbeforenodeancestor extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforenodeancestor>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNodeValue()" method changes the character data currently stored in the node. Retrieve the character data from the second child of the first employee and invoke the "setNodeValue()" method, call "getData()" and compare. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a>
					 */
					export class hc_characterdatasetnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatasetnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setData(data)" method raises a NO_MODIFICATION_ALLOWED_ERR DOMException if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "setData(data)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-72AB8359')/setraises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a>
					 */
					export class characterdatasetdatanomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatasetdatanomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for an Attribute Node is the value of the Attribute. Retrieve the Attribute named "title" from the last child of the first "p" and check the string returned by the "getNodeValue()" method. It should be equal to "Yes". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class hc_nodeattributenodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeattributenodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Document Node is null. Retrieve the DOM Document and check the string returned by the "getNodeValue()" method. It should be equal to null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodedocumentnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumentnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a list of all the children elements of the third employee and access its first child by using an index of 0. This should result in the whitspace before "em" being selected (em when ignoring whitespace). Further we evaluate its content(by using the "getNodeName()" method) to ensure the proper element was accessed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodelistindexequalzero extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodelistindexequalzero>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setData(data)" method for a processing instruction causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an ent4 entity reference and add to document of the THIRD "gender" element. The elements content is an entity reference. Try to remove the "domestic" attribute from the entity reference by executing the "setData(data)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-837822393')/setraises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0053.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Apr/0053.html</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/processinginstructionsetdatanomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/processinginstructionsetdatanomodificationallowederr.xml</a>
					 */
					export class processinginstructionsetdatanomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.processinginstructionsetdatanomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * After the "splitText(offset)" method breaks the Text node into two Text nodes, the new Text node contains all the content at and after the offset point. Retrieve the textual data from the second child of the third employee and invoke the "splitText(offset)" method. The new Text node should contain all the content at and after the offset point. The "getNodeValue()" method is called to check that the new node now contains the characters at and after position seven. (Starting count at 0) NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class textsplittextthree extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textsplittextthree>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method returns the node added. Append a newly created node to the child list of the second employee and check the NodeName returned. The "getNodeName()" method should return "br". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeappendchildgetnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeappendchildgetnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * hasFeature("XML", "") should return true for implementations that can read staff files. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-5CED94D7</a> <a href="http://www.w3.org/2000/11/DOM-Level-2-errata#core-14">http://www.w3.org/2000/11/DOM-Level-2-errata#core-14</a>
					 */
					export class domimplementationfeaturenoversion extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.domimplementationfeaturenoversion>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add remove an notation should result in a NO_MODIFICATION_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a>
					 */
					export class hc_notationsremovenameditem1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_notationsremovenameditem1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a WRONG_DOCUMENT_ERR DOMException if the "newChild" was created from a different document than the one that created this node. Retrieve the second employee and attempt to replace one of its children with a node created from a different document. An attempt to make such a replacement should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodereplacechildnewchilddiffdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodereplacechildnewchilddiffdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a last child then the "getLastChild()" method returns null. Retrieve the Text node from the second child of the first employee and invoke the "getLastChild()" method. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB</a>
					 */
					export class nodegetlastchildnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetlastchildnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a list of all the children elements of the third employee and access its first child by invoking the "item(index)" method with an index=0. This should result in node with a nodeName of "#text" or "em". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodelistreturnfirstitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodelistreturnfirstitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method will insert a string at the specified character offset. Insert the data at the end of the character data. Retrieve the character data from the second child of the first employee. The "insertData(offset,arg)" method is then called with offset=15 and arg=", Esquire". The method should insert the string ", Esquire" at position 15. The new value of the character data should be "Margaret Martin, Esquire". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a>
					 */
					export class hc_characterdatainsertdataend extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatainsertdataend>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getParentNode()" method invoked on a node that has just been created and not yet added to the tree is null. Create a new "employee" Element node using the "createElement(name)" method from the Document interface. Since this new node has not yet been added to the tree, the "getParentNode()" method will return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1060184317</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeparentnodenull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeparentnodenull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is already in the tree, it is first removed before the new one is appended. Retrieve the "em" second employee and append the first child to the end of the list. After the "appendChild(newChild)" method is invoked the first child should be the one that was second and the last child should be the one that was first. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodeappendchildchildexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeappendchildchildexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for an Entity Node is null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodeentitynodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentitynodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Prepends a document fragment to an attribute and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_attrinsertbefore4 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrinsertbefore4>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method raises an "INVALID_CHARACTER_ERR DOMException if the specified name contains an invalid character. Retrieve the last child of the first employee and call its "setAttribute(name,value)" method with "strong" containing an invalid character. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-F68F082')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_elementinvalidcharacterexception extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementinvalidcharacterexception>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getEntities()" method is a NamedNodeMap that contains the general entities for this document. Retrieve the Document Type for this document and create a NamedNodeMap of all its entities. The entire map is traversed and the names of the entities are retrieved. There should be 5 entities. Duplicates should be ignored. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1788794630</a>
					 */
					export class documenttypegetentities extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documenttypegetentities>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeChild(oldChild)" method removes the node indicated by "oldChild". Retrieve the second p element and remove its first child. After the removal, the second p element should have 5 element children and the first child should now be the child that used to be at the second position in the list. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1734834066</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_noderemovechildnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_noderemovechildnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Appends a document fragment to an attribute and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_attrinsertbefore3 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrinsertbefore3>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Prepends a text node to an attribute and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_attrinsertbefore2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrinsertbefore2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Appends a text node to an attribute and checks if the value of the attribute is changed. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_attrinsertbefore1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrinsertbefore1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Replacing a child node from an attribute in an entity reference should result in an NO_MODIFICATION_ALLOWED_ERR DOMException. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[
					 */
					export class attrreplacechild1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrreplacechild1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Appends a document fragment containing a CDATASection to an attribute. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_attrinsertbefore7 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrinsertbefore7>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attempt to append a text node from another document to an attribute which should result in a WRONG_DOCUMENT_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_attrinsertbefore6 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrinsertbefore6>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendData(arg)" method appends a string to the end of the character data of the node. Retrieve the character data from the second child of the first employee. The appendData(arg) method is called with arg=", Esquire". The method should append the specified data to the already existing character data. The new value return by the "getLength()" method should be 24. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a>
					 */
					export class hc_characterdataappenddata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataappenddata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater that the number of characters in the string. Retrieve the character data of the last child of the first employee and invoke its "deleteData(offset,count)" method with offset=40 and count=3. It should raise the desired exception since the offset is greater than the number of characters in the string. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_characterdataindexsizeerrdeletedataoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrdeletedataoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attempt to append a CDATASection to an attribute which should result in a HIERARCHY_REQUEST_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class hc_attrinsertbefore5 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrinsertbefore5>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPublicId()" method of a Notation node contains the public identifier associated with the notation, if one was not specified a null value should be returned. Retrieve the notation named "notation2" and access its public identifier. Since a public identifier was not specified for this notation, the "getPublicId()" method should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-54F2B4D0">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-54F2B4D0</a>
					 */
					export class notationgetpublicidnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.notationgetpublicidnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if this node is of a type that does not allow children of the type "newChild" to be inserted. Retrieve the root node and attempt to replace one of its children with a newly created Attr node. An Element node cannot have children of the "Attr" type, therefore the desired exception should be raised. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=406">http://www.w3.org/Bugs/Public/show_bug.cgi?id=406</a>
					 */
					export class hc_nodereplacechildinvalidnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodereplacechildinvalidnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Document Node is "#document". Retrieve the DOM document and check the string returned by the "getNodeName()" method. It should be equal to "#document". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodedocumentnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumentnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method removes the specified attribute. Retrieve the last child of the third employee, add a new "lang" attribute to it and then try to remove it. To verify that the node was removed use the "getNamedItem(name)" method from the NamedNodeMap interface. It also uses the "getAttributes()" method from the Node interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_elementremoveattributeaftercreate extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementremoveattributeaftercreate>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Every node in the map returned by the "getNotations()" method implements the Notation interface. Retrieve the Document Type for this document and create a NamedNodeMap object of all the notations. Traverse the entire list and examine the NodeType of each node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D46829EF</a>
					 */
					export class documenttypegetnotationstype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documenttypegetnotationstype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createEntityReference(name)" method creates an EntityReferrence node. Retrieve the entire DOM document and invoke its "createEntityReference(name)" method. It should create a new EntityReference node for the Entity with the given name. The name, value and type are retrieved and output. NIST Mary Brady Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-392B75AE</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class documentcreateentityreference extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreateentityreference>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a WRONG_DOCUMENT_ERR DOMException if the "newChild" was created from a different document than the one that created this node. Retrieve the second employee and attempt to replace one of its children with a node created from a different document. An attempt to make such a replacement should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class nodereplacechildnewchilddiffdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildnewchilddiffdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "newChild" is already in the tree, the "insertBefore(newChild,refChild)" method must first remove it before the insertion takes place. Insert a node Element ("em") that is already present in the tree. The existing node should be removed first and the new one inserted. The node is inserted at a different position in the tree to assure that it was indeed inserted. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodeinsertbeforenewchildexists extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforenewchildexists>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if this node is of a type that does not allow children of the type "newChild" to be inserted. Retrieve the root node and attempt to append a newly created Attr node. An Element node cannot have children of the "Attr" type, therefore the desired exception should be raised. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodeappendchildinvalidnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchildinvalidnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * On successful invocation of the "deleteData(offset,count)" method, the "getData()" and "getLength()" methods reflect the changes. Retrieve the character data from the last child of the first employee. The "deleteData(offset,count)" method is then called with offset=30 and count=5. The method should delete the characters from position 30 thru position 35. The new value of the character data should be "1230 North Ave. Dallas, Texas" which is returned by the "getData()" method and "getLength()" method should return 30". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7D61178C</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class characterdatadeletedatagetlengthanddata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatadeletedatagetlengthanddata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method replaces the node "oldChild" with the node "newChild". Replace the first element of the second employee with a newly created Element node. Check the first position after the replacement operation is completed. The new Element should be "newChild". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a>
					 */
					export class nodereplacechild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for an Entity Node returns the constant value 6. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodeentitynodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentitynodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setData(data)" method for a processing instruction causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to remove the "domestic" attribute from the entity reference by executing the "setData(data)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-837822393')/setraises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-837822393</a>
					 */
					export class processinginstructionsetdatanomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.processinginstructionsetdatanomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the notation named "notation1" and access its system identifier. Since a system identifier was not specified for this notation, the "getSystemId()" method should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E8AAB1D0">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E8AAB1D0</a>
					 */
					export class notationgetsystemidnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.notationgetsystemidnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method(Node Interface) may be used to retrieve the set of all attributes of an element. Create a list of all the attributes of the last child of the first employee by using the "getAttributes()" method. Examine the length of the attribute list. This test uses the "getLength()" method from the NameNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class elementretrieveallattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementretrieveallattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasChildNodes()" method returns true if the node has children. Retrieve the root node("staff") and invoke the "hasChildNodes()" method. It should return the boolean value "true". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187</a>
					 */
					export class nodehaschildnodes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodehaschildnodes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Document Node is null. Retrieve the DOM Document and check the string returned by the "getNodeValue()" method. It should be equal to null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class hc_nodedocumentnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodedocumentnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method adds a new attribute to the Element. If the "strong" is already present, then its value should be changed to the new one that is in the "value" parameter. Retrieve the last child of the fourth employee, then add an attribute to it by invoking the "setAttribute(name,value)" method. Since the name of the used attribute("class") is already present in this element, then its value should be changed to the new one of the "value" parameter. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a>
					 */
					export class hc_elementchangeattributevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementchangeattributevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Processing Instruction Node returns null. Retrieve the Processing Instruction node and invoke the "getAttributes()" method. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class nodeprocessinginstructionnodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeprocessinginstructionnodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * To respecify the attribute to its default value from the DTD, the attribute must be deleted. This will then make a new attribute available with the "getSpecified()" method value set to false. Retrieve the attribute named "street" from the last child of of the THIRD employee and delete it. This should then create a new attribute with its default value and also cause the "getSpecified()" method to return false. This test uses the "removeAttribute(name)" method from the Element interface and the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class attrspecifiedvalueremove extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrspecifiedvalueremove>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the number of characters in the string. Retrieve the character data of the last child of the first employee and invoke its insertData"(offset,arg)" method with offset=40 and arg="ABC". It should raise the desired exception since the offset is greater than the number of characters in the string. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_characterdataindexsizeerrinsertdataoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrinsertdataoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNextSibling()" method returns the node immediately following this node. Retrieve the first child of the second employee and invoke the "getNextSibling()" method. It should return a node with the NodeName of "#text". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6AC54C2F</a>
					 */
					export class hc_nodegetnextsibling extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetnextsibling>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a NOT_FOUND_ERR DOMException if the old child is not a child of this node. Retrieve the second employee and attempt to replace a node that is not one of its children. An attempt to replace such a node should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodereplacechildoldchildnonexistent extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodereplacechildoldchildnonexistent>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Document Node is "#document". Retrieve the DOM document and check the string returned by the "getNodeName()" method. It should be equal to "#document". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class hc_nodedocumentnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodedocumentnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method will insert a string at the specified character offset. Insert the data in the middle of the character data. Retrieve the character data from the second child of the first employee. The "insertData(offset,arg)" method is then called with offset=9 and arg="Ann". The method should insert the string "Ann" at position 9. The new value of the character data should be "Margaret Ann Martin". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a>
					 */
					export class characterdatainsertdatamiddle extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatainsertdatamiddle>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method raises an "WRONG_DOCUMENT_ERR DOMException if the "newAttr" was created from a different document than the one that created this document. Retrieve the last employee and attempt to set a new attribute node for its "employee" element. The new attribute was created from a document other than the one that created this element, therefore a WRONG_DOCUMENT_ERR DOMException should be raised. This test uses the "createAttribute(newAttr)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-887236154')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class elementwrongdocumenterr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementwrongdocumenterr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for an EntityReference Node returns the constant value 5. Retrieve the EntityReference node from the last child of the second employee and invoke the "getNodeType()" method. The method should return 5. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodeentityreferencenodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentityreferencenodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the "setNamedItem(arg)" method does not replace an existing node with the same name then it returns null. Retrieve the third employee and create a NamedNodeMap object from the attributes of the last child. Once the list is created the "setNamedItem(arg)" method is invoked with arg=newAttr, where newAttr is a newly created Attr Node and whose node name already exists in the map. The "setNamedItem(arg)" method should add the new node and return null. This test uses the "createAttribute(name)" method from the document interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_namednodemapsetnameditemwithnewvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapsetnameditemwithnewvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the number of characters in the string. Retrieve the character data of the last child of the first employee and invoke its insertData"(offset,arg)" method with offset=40 and arg="ABC". It should raise the desired exception since the offset is greater than the number of characters in the string. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class characterdataindexsizeerrinsertdataoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrinsertdataoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "cloneNode(deep)" method returns a copy of the node and the subtree under it if deep=true. Retrieve the second employee and invoke the "cloneNode(deep)" method with deep=true. The method should clone this node and the subtree under it. The NodeName of each child in the returned node is checked to insure the entire subtree under the second employee was cloned. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodeclonenodetrue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeclonenodetrue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method raises a WRONG_DOCUMENT_ERR DOMException if the "newChild" was created from a different document than the one that created this node. Retrieve the second employee and attempt to append a node created from a different document. An attempt to make such a replacement should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeappendchildnewchilddiffdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeappendchildnewchilddiffdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElement(tagName)" method raises an INVALID_CHARACTER_ERR DOMException if the specified tagName contains an invalid character. Retrieve the entire DOM document and invoke its "createElement(tagName)" method with the tagName equal to the string "invalid^Name". Due to the invalid character the desired EXCEPTION should be raised. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-2141741547')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_documentinvalidcharacterexceptioncreateelement extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentinvalidcharacterexceptioncreateelement>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if the node to put in is one of this node's ancestors. Retrieve the second employee and attempt to replace one of its children with an ancestor node(root node). An attempt to make such a replacement should raise the desired exception. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-785887307')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class nodereplacechildnodeancestor extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodereplacechildnodeancestor>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Processing Instruction Node is the content of the Processing Instruction(exclude the target). Retrieve the Processing Instruction node in the XML file and check the string returned by the "getNodeValue()" method. It should be equal to "PIDATA". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a>
					 */
					export class nodeprocessinginstructionnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeprocessinginstructionnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for a Text Node is "#text". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class hc_nodetextnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodetextnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The duplicate node returned by the "cloneNode(deep)" method does not have a ParentNode. Retrieve the second employee and invoke the "cloneNode(deep)" method with deep=false. The duplicate node returned should return null when the "getParentNode()" is invoked. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class nodeclonegetparentnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeclonegetparentnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test for replacement in the middle of the data. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=5 and count=5 and arg="South". The method should replace characters five thru 9 of the character data with "South". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class hc_characterdatareplacedatabegining extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatareplacedatabegining>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getFirstChild()" method returns the first child of this node. Retrieve the second employee and invoke the "getFirstChild()" method. The NodeName returned should be "#text" or "EM". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=246">http://www.w3.org/Bugs/Public/show_bug.cgi?id=246</a>
					 */
					export class hc_nodegetfirstchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetfirstchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttribute(name,value)" method raises an "INVALID_CHARACTER_ERR DOMException if the specified name contains an invalid character. Retrieve the last child of the first employee and call its "setAttribute(name,value)" method with "name" containing an invalid character. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68F082</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-F68F082')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class elementinvalidcharacterexception extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementinvalidcharacterexception>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified offset is greater than the length of the string. Retrieve the character data of the last child of the first employee and invoke its "replaceData(offset,count,arg) method with offset=40 and count=3 and arg="ABC". It should raise the desired exception since the offset is greater than the length of the string. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class characterdataindexsizeerrreplacedataoffsetgreater extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrreplacedataoffsetgreater>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "deleteData(offset,count)" method raises a NO_MODIFICATION_ALLOWED_ERR DOMException if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "deleteData(offset,count)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a>
					 */
					export class characterdatadeletedatanomodificationallowederr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatadeletedatanomodificationallowederr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getSpecified()" method for an Attr node should return true if the value of the attribute is changed. Retrieve the attribute named "class" from the last child of of the THIRD employee and change its value to "Yes"(which is the default DTD value). This should cause the "getSpecified()" method to be true. This test uses the "setAttribute(name,value)" method from the Element interface and the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273</a>
					 */
					export class hc_attrspecifiedvaluechanged extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrspecifiedvaluechanged>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * On successful invocation of the "appendData(arg)" method the "getData()" method provides access to the concatentation of data and the specified string. Retrieve the character data from the second child of the first employee. The appendData(arg) method is called with arg=", Esquire". The method should append the specified data to the already existing character data. The new value return by the "getData()" method should be "Margaret Martin, Esquire". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-32791A2F</a>
					 */
					export class hc_characterdataappenddatagetdata extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataappenddatagetdata>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refchild)" method returns the node being inserted. Insert an Element node before the fourth child of the second employee and check the node returned from the "insertBefore(newChild,refChild)" method. The node returned should be "newChild". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a>
					 */
					export class nodeinsertbeforenodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeinsertbeforenodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "substringData(offset,count)" method raises an INDEX_SIZE_ERR DOMException if the specified count is negative. Retrieve the character data of the last child of the first employee and invoke its "substringData(offset,count) method with offset=10 and count=-3. It should raise the desired exception since the count is negative. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class characterdataindexsizeerrsubstringcountnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdataindexsizeerrsubstringcountnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNode(name)" method retrieves an attribute node by name. Retrieve the attribute "domestic" from the last child of the first employee. Since the method returns an Attr object, the "name" can be examined to ensure the proper attribute was retrieved. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8</a>
					 */
					export class elementgetattributenode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgetattributenode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttribute(name)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Create an reference the entity ent4 and add it to the THIRD "gender" element. Try to remove the "domestic" attribute from the entity reference by executing the "removeAttribute(name)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6D6AC0F9')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementremoveattributenomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/elementremoveattributenomodificationallowederr.xml</a>
					 */
					export class elementremoveattributenomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattributenomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second "p" element and create a NamedNodeMap object from the attributes of the last child by invoking the "getAttributes()" method. Once the list is created an invocation of the "setNamedItem(arg)" method is done with arg=newAttr, where newAttr is a new Attr Node previously created. The "setNamedItem(arg)" method should add then new node to the NamedNodeItem object by using its "nodeName" attribute("lang'). This node is then retrieved using the "getNamedItem(name)" method. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=243">http://www.w3.org/Bugs/Public/show_bug.cgi?id=243</a>
					 */
					export class hc_namednodemapsetnameditem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapsetnameditem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttribute(name)" removes an attribute by name. If the attribute has a default value, it is immediately replaced. Retrieve the attribute named "street" from the last child of the fourth employee, then remove the "street" attribute by invoking the "removeAttribute(name)" method. The "street" attribute has a default value defined in the DTD file, that value should immediately replace the old value. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class elementremoveattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The tagName parameter in the "createElement(tagName)" method is case-sensitive for XML documents. Retrieve the entire DOM document and invoke its "createElement(tagName)" method twice. Once for tagName equal to "address" and once for tagName equal to "ADDRESS" Each call should create a distinct Element node. The newly created Elements are then assigned attributes that are retrieved. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141741547</a>
					 */
					export class documentcreateelementcasesensitive extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentcreateelementcasesensitive>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create an ent3 entity reference and call deleteData on a text child, should thrown a NO_MODIFICATION_ALLOWED_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-7C603781')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-7C603781</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatadeletedatanomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/characterdatadeletedatanomodificationallowederr.xml</a>
					 */
					export class characterdatadeletedatanomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatadeletedatanomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on an Element Node returns a NamedNodeMap containing the attributes of this node. Retrieve the last child of the third employee and invoke the "getAttributes()" method. It should return a NamedNodeMap containing the attributes of the Element node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class nodeelementnodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeelementnodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite that runs all DOM L1 Core tests using the Default LS parser in an alternate configuration. Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestDefaultLSAltConfig>;
					}
					/**
					 * The "getPublicId()" method of an Entity node contains the public identifier associated with the entity, if one was not specified a null value should be returned. Retrieve the entity named "ent1" and access its public identifier. Since a public identifier was not specified for this entity, the "getPublicId()" method should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D7303025">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D7303025</a>
					 */
					export class entitygetpublicidnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.entitygetpublicidnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method replaces the characters starting at the specified offset with the specified string. Test for replacement at the end of the data. Retrieve the character data from the last child of the first employee. The "replaceData(offset,count,arg)" method is then called with offset=30 and count=5 and arg="98665". The method should replace characters 30 thru 34 of the character data with "98665". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-E5CBA7FB</a>
					 */
					export class hc_characterdatareplacedataend extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdatareplacedataend>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertBefore(newChild,refchild)" method returns the node being inserted. Insert an Element node before the fourth child of the second employee and check the node returned from the "insertBefore(newChild,refChild)" method. The node returned should be "newChild". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-952280727</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodeinsertbeforenodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeinsertbeforenodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "splitText(offset)" method returns the new Text node. Retrieve the textual data from the last child of the first employee and invoke the "splitText(offset)" method. The method should return the new Text node. The offset value used for this test is 30. The "getNodeValue()" method is called to check that the new node now contains the characters at and after position 30. (Starting count at 0) NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-38853C1D</a>
					 */
					export class textsplittextfour extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.textsplittextfour>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "insertData(offset,arg)" method will insert a string at the specified character offset. Insert the data at the end of the character data. Retrieve the character data from the second child of the first employee. The "insertData(offset,arg)" method is then called with offset=15 and arg=", Esquire". The method should insert the string ", Esquire" at position 15. The new value of the character data should be "Margaret Martin, Esquire". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-72AB8359</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3EDB695F</a>
					 */
					export class characterdatainsertdataend extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.characterdatainsertdataend>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method returns the node added. Append a newly created node to the child list of the second employee and check the NodeName returned. The "getNodeName()" method should return "newChild". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class nodeappendchildgetnodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeappendchildgetnodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeName()" method for an EntityReference Node is the name of the entity referenced. Retrieve the first Entity Reference node from the last child of the second employee and check the string returned by the "getNodeName()" method. It should be equal to "ent2". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D095</a>
					 */
					export class nodeentityreferencenodename extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentityreferencenodename>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "normalize()" method puts all the nodes in the full depth of the sub-tree underneath this element into a "normal" form. Retrieve the third employee and access its second child. This child contains a block of text that is spread across multiple lines. The content of the "name" child should be parsed and treated as a single Text node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-162CF083</a>
					 */
					export class elementnormalize extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementnormalize>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The range of valid child node indices is 0 thru length -1 Create a list of all the children elements of the third employee and traverse the list from index=0 thru length -1. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-203510337</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a>
					 */
					export class nodelisttraverselist extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodelisttraverselist>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItem(name)" method removes a node specified by name. Retrieve the third employee and create a NamedNodeMap object of the attributes of the last child. Once the list is created invoke the "removeNamedItem(name)" method with name="class". This should result in the removal of the specified attribute. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D58B193</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-349467F9</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class hc_namednodemapremovenameditem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_namednodemapremovenameditem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceData(offset,count,arg)" method raises an INDEX_SIZE_ERR DOMException if the specified count is negative. Retrieve the character data of the last child of the first employee and invoke its "replaceData(offset,count,arg) method with offset=10 and count=-3 and arg="ABC". It should raise the desired exception since the count is negative. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6531BCCF</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-6531BCCF')/raises/exception[
					 */
					export class hc_characterdataindexsizeerrreplacedatacountnegative extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_characterdataindexsizeerrreplacedatacountnegative>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the third "acronym" element and evaluate Node.attributes. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=184">http://www.w3.org/Bugs/Public/show_bug.cgi?id=184</a>
					 */
					export class hc_nodeelementnodeattributes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeelementnodeattributes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method returns the node that was removed. Retrieve the last child of the third employee and remove its "class" Attr node. The method should return the old attribute node. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a>
					 */
					export class hc_elementremoveattributenode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementremoveattributenode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Evaluate Node.ownerDocument on the second "p" element. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#node-ownerDoc</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class hc_nodegetownerdocument extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodegetownerdocument>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If an Attr is explicitly assigned any value, then that value is the attributes effective value. Retrieve the attribute named "domestic" from the last child of of the first employee and examine its nodeValue attribute. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1074577549</a>
					 */
					export class hc_attreffectivevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attreffectivevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a Comment Node returns the constant value 8. Retrieve the nodes from the document and check for a comment node and invoke the "getNodeType()" method. This should return 8. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a>
					 */
					export class nodecommentnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecommentnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getDocumentElement()" method provides direct access to the child node that is the root element of the document. Retrieve the entire DOM document and invoke its "getDocumentElement()" method. It should return an Element node whose NodeName is "staff" (or "svg"). NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-87CD092">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-87CD092</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=251">http://www.w3.org/Bugs/Public/show_bug.cgi?id=251</a>
					 */
					export class documentgetrootnode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.documentgetrootnode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on a Document Node returns null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#i-Document</a>
					 */
					export class nodedocumentnodeattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumentnodeattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * This test calls setAttributeNode to replace an attribute with itself. Since the node is not an attribute of another Element, it would be inappropriate to throw an INUSE_ATTRIBUTE_ERR. This test was derived from elementinuserattributeerr which inadvertanly made this test. Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-887236154</a>
					 */
					export class elementreplaceattributewithself extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementreplaceattributewithself>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Collect the element names from Node.childNodes and check against expectations. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1451460987</a>
					 */
					export class nodechildnodes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodechildnodes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(tagName)" method returns a NodeList of all the Elements with a given tagName. Retrieve the entire DOM document and invoke its "getElementsByTagName(tagName)" method with tagName equal to "strong". The method should return a NodeList that contains 5 elements. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-A6C9094</a>
					 */
					export class hc_documentgetelementsbytagnamelength extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentgetelementsbytagnamelength>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttribute(name)" removes an attribute by name. If the attribute has a default value, it is immediately replaced. However, there is no default values in the HTML compatible tests, so its value is "". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-6D6AC0F9</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class hc_elementremoveattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementremoveattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The duplicate node returned by the "cloneNode(deep)" method does not have a ParentNode. Retrieve the second employee and invoke the "cloneNode(deep)" method with deep=false. The duplicate node returned should return null when the "getParentNode()" is invoked. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class hc_nodeclonegetparentnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeclonegetparentnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(name)" method may use the special value "*" to match all tags in the element tree. Create a NodeList of all the descendant elements of the last employee by using the special value "*". The method should return all the descendant children(6) in the order the children were encountered. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a>
					 */
					export class hc_elementgetelementsbytagnamespecialvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgetelementsbytagnamespecialvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on an Attribute Node returns null. Retrieve the first attribute from the last child of the first employee and invoke the "getAttributes()" method on the Attribute Node. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class nodeattributenodeattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeattributenodeattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "replaceChild(newChild,oldChild)" method replaces the node "oldChild" with the node "newChild". Replace the first element of the second employee with a newly created Element node. Check the first position after the replacement operation is completed. The new Element should be "newChild". Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-785887307</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=247">http://www.w3.org/Bugs/Public/show_bug.cgi?id=247</a>
					 */
					export class hc_nodereplacechild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodereplacechild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "appendChild(newChild)" method raises a HIERARCHY_REQUEST_ERR DOMException if the node to append is one of this node's ancestors. Retrieve the second employee and attempt to append an ancestor node(root node) to it. An attempt to make such an addition should raise the desired exception. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-184E7107')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-184E7107</a>
					 */
					export class hc_nodeappendchildnodeancestor extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeappendchildnodeancestor>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Checks that Node.hasChildNodes() is true for an attribute with content. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-810594187</a>
					 */
					export class hc_attrhaschildnodes extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrhaschildnodes>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttribute(tagName)" method raises an INVALID_CHARACTER_ERR DOMException if the specified tagName contains an invalid character. Retrieve the entire DOM document and invoke its "createAttribute(tagName)" method with the tagName equal to the string "invalid^Name". Due to the invalid character the desired EXCEPTION should be raised. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-1084891198')/raises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1084891198</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class hc_documentinvalidcharacterexceptioncreateattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_documentinvalidcharacterexceptioncreateattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getSpecified()" method for an Attr node should be set to true if the attribute was explicitly given a value. Retrieve the attribute named "domestic" from the last child of of the first employee and examine the value returned by the "getSpecified()" method. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273</a>
					 */
					export class hc_attrspecifiedvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrspecifiedvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Get the first child of the third employee using NodeList.item(0) which will either be a Text node (whitespace) or employeeId element. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a>
					 */
					export class nodelistreturnfirstitem extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodelistreturnfirstitem>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the attribute "title" from the last child of the first "p" element and check its node name. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-217A91B8</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=236">http://www.w3.org/Bugs/Public/show_bug.cgi?id=236</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html">http://lists.w3.org/Archives/Public/www-dom-ts/2003Jun/0011.html</a>
					 */
					export class hc_elementgetattributenode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_elementgetattributenode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Checks the value of an attribute that contains entity references. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a>
					 */
					export class hc_attrgetvalue2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrgetvalue2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Checks the value of an attribute that contains entity references. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-221662474</a>
					 */
					export class hc_attrgetvalue1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_attrgetvalue1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestXerces {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.core.TestXerces>;
					}
					/**
					 * The "getLastChild()" method returns the last child of this node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-61AD09FB</a>
					 */
					export class nodegetlastchild extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetlastchild>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retrieve the second salary and the "cloneNode(deep)" method with deep=true. The duplicate node returned by the method should copy any text data contained in this node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-3A0ED0A4</a>
					 */
					export class nodeclonetruecopytext extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeclonetruecopytext>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for a Comment Node is the content of the comment. Retrieve the comment in the XML file and check the string returned by the "getNodeValue()" method. It should be equal to "This is comment number 1". NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1728279322</a>
					 */
					export class nodecommentnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecommentnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagName(name)" method may use the special value "*" to match all tags in the element tree. Create a NodeList of all the descendant elements of the last employee by using the special value "*". The method should return all the descendant children(6) in the order the children were encountered. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1938918D</a>
					 */
					export class elementgetelementsbytagnamespecialvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementgetelementsbytagnamespecialvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a DocumentType Node returns the constant value 10. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodedocumenttypenodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodedocumenttypenodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create an entity reference and execute the "setNodeValue(nodeValue)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-F68D080')/setraises/exception[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodesetnodevaluenomodificationallowederr.xml">http://www.w3.org/2001/DOM-Test-Suite/level1/core/nodesetnodevaluenomodificationallowederr.xml</a>
					 */
					export class nodesetnodevaluenomodificationallowederrEE extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodesetnodevaluenomodificationallowederrEE>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method returns the node that was removed. Retrieve the last child of the third employee and remove its "street" Attr node. The method should return the old attribute node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a>
					 */
					export class elementremoveattributenode extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementremoveattributenode>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The string returned by the "getNodeValue()" method for an Entity Node is always null and "setNodeValue" should have no effect. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-527DCFF2</a>
					 */
					export class nodeentitysetnodevalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeentitysetnodevalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a list of all the children elements of the third employee and access its first child by using an index of 0. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-844377136</a>
					 */
					export class nodelistindexequalzero extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodelistindexequalzero>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributes()" method invoked on an Attribute Node returns null. Retrieve the first attribute from the last child of the first employee and invoke the "getAttributes()" method on the Attribute Node. It should return null. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-637646024</a>
					 */
					export class hc_nodeattributenodeattribute extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.hc_nodeattributenodeattribute>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a first child then the "getFirstChild()" method returns null. Retrieve the Text node form the second child of the first employee and invoke the "getFirstChild()" method. It should return null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-169727388</a>
					 */
					export class nodegetfirstchildnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetfirstchildnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If the cloneNode method is used to clone an Element node, all the attributes of the Element are copied along with their values. Retrieve the last child of the second employee and invoke the cloneNode method. The duplicate node returned by the method should copy the attributes associated with this node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-84CF096</a>
					 */
					export class nodecloneattributescopied extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodecloneattributescopied>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNode(oldAttr)" method raises a NOT_FOUND_ERR DOMException if the "oldAttr" attribute is not an attribute of the element. Retrieve the last employee and attempt to remove a non existing attribute node. This should cause the intended exception to be raised. This test makes use of the "createAttribute(name)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-D589198</a> <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-D589198')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249">http://www.w3.org/Bugs/Public/show_bug.cgi?id=249</a>
					 */
					export class elementnotfounderr extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.elementnotfounderr>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPreviousSibling()" method returns the node immediately preceding this node. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8</a>
					 */
					export class nodegetprevioussibling extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetprevioussibling>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNodeType()" method for a Processing Instruction node returns the constant value 7. Retrieve a NodeList of child elements from the document. Retrieve the first child and invoke the "getNodeType()" method. The method should return 7. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-111237558</a>
					 */
					export class nodeprocessinginstructionnodetype extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodeprocessinginstructionnodetype>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * If there is not a node immediately preceding this node the "getPreviousSibling()" method returns null. Retrieve the first child of the second employee and invoke the "getPreviousSibling()" method. It should be set to null. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-640FB3C8</a>
					 */
					export class nodegetprevioussiblingnull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.nodegetprevioussiblingnull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getSpecified()" method for an Attr node should be set to false if the attribute was not explicitly given a value. Retrieve the attribute named "street" from the last child of of the first employee and examine the value returned by the "getSpecified()" method. This test uses the "getNamedItem(name)" method from the NamedNodeMap interface. NIST Mary Brady <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-862529273</a> <a href="http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html">http://lists.w3.org/Archives/Public/www-dom-ts/2002Mar/0002.html</a>
					 */
					export class attrnotspecifiedvalue extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level1.core.attrnotspecifiedvalue>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
				}
				export module html {
					/**
					 * Test suite that runs all DOM L1 HTML tests using the Default LS parser in an alternate configuration. Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.html.TestDefaultLSAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L1 HTML tests using the Default LS parser in default configuration. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.html.TestDefaultLS>;
					}
					export class TestXercesHTML {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level1.html.TestXercesHTML>;
					}
				}
			}
			export module level3 {
				export module core {
					/**
					 * Test suite that runs all DOM L3 Core tests using a parser provided by DOM L3 Core bootstrapping in alternative configuration Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestDefaultLSAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L3 Core tests using the Oracle Parser for Java in an alternative configuration. Curt Arnold 
					 */
					export class TestOracleAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestOracleAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L3 Core tests using the Oracle Parser for Java in default configuration. Curt Arnold 
					 */
					export class TestOracle {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestOracle>;
					}
					/**
					 * Test suite that runs all DOM L3 Core tests using the a parser provided by DOM L3 Core bootstrapping. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestDefaultLS>;
					}
					/**
					 * Test suite using the default JAXP parser in the default configuration 
					 */
					export class TestDefaultParser {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestDefaultParser>;
					}
					/**
					 * Test suite that runs all DOM L3 Core tests using the Xerces-J in an alternative configuration. Curt Arnold 
					 */
					export class TestXercesAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestXercesAltConfig>;
					}
					/**
					 * Test suite using the default JAXP parser in the alternative configuration 
					 */
					export class TestDefaultParserAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestDefaultParserAltConfig>;
					}
					/**
					 *  Runs test suite using Batik SVG. 
					 */
					export class TestBatik {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestBatik>;
					}
					/**
					 * Test suite that runs all DOM L3 Core tests using the Xerces-J in default configuration. Curt Arnold 
					 */
					export class TestXerces {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.core.TestXerces>;
					}
				}
				export module xpath {
					/**
					 * Test suite that runs all DOM L3 XPath tests using a parser provided by DOM L3 XPath bootstrapping in alternative configuration Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.xpath.TestDefaultLSAltConfig>;
					}
					export class TestXalan {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.xpath.TestXalan>;
					}
					/**
					 * Test suite that runs all DOM L3 XPath tests using the a parser provided by DOM L3 Core bootstrapping. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.xpath.TestDefaultLS>;
					}
					/**
					 * Test suite using the default JAXP parser in the default configuration 
					 */
					export class TestDefaultParser {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.xpath.TestDefaultParser>;
					}
					/**
					 * Test suite using the default JAXP parser in the alternative configuration 
					 */
					export class TestDefaultParserAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.xpath.TestDefaultParserAltConfig>;
					}
					export class TestXalanAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.xpath.TestXalanAltConfig>;
					}
					/**
					 *  Runs test suite using Batik SVG. 
					 */
					export class TestBatik {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.xpath.TestBatik>;
					}
				}
				export module ls {
					/**
					 * A JUnit test suite that will run all Load and Save tests using the Oracle XML Parser for Java Curt Arnold
					 */
					export class TestOracle {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.ls.TestOracle>;
					}
					/**
					 * Test suite that runs all DOM L3 Core tests using the a parser provided by DOM L3 Core bootstrapping. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.ls.TestDefaultLS>;
					}
					/**
					 * Test suite using the default JAXP parser in the default configuration 
					 */
					export class TestDefaultParser {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.ls.TestDefaultParser>;
					}
					/**
					 *  Runs test suite using Batik SVG. 
					 */
					export class TestBatik {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.ls.TestBatik>;
					}
					/**
					 * A JUnit test suite that will run all Load and Save tests using Xerces-J Curt Arnold
					 */
					export class TestXerces {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.ls.TestXerces>;
					}
				}
				export module validation {
					/**
					 * Test suite that runs all DOM L3 Validation tests using a parser provided by DOM L3 Core bootstrapping in alternative configuration Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.validation.TestDefaultLSAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L3 Validation tests using the Oracle Parser for Java in an alternative configuration. Curt Arnold 
					 */
					export class TestOracleAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.validation.TestOracleAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L3 Validation tests using the Oracle Parser for Java in default configuration. Curt Arnold 
					 */
					export class TestOracle {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.validation.TestOracle>;
					}
					/**
					 * Test suite that runs all DOM L3 Validation tests using the a parser provided by DOM L3 Core bootstrapping. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.validation.TestDefaultLS>;
					}
					/**
					 * Test suite using the default JAXP parser in the default configuration 
					 */
					export class TestDefaultParser {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.validation.TestDefaultParser>;
					}
					/**
					 * Test suite using the default JAXP parser in the alternative configuration 
					 */
					export class TestDefaultParserAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.validation.TestDefaultParserAltConfig>;
					}
					/**
					 *  Runs test suite using Batik SVG. 
					 */
					export class TestBatik {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level3.validation.TestBatik>;
					}
				}
			}
			export module level2 {
				export module core {
					/**
					 * The "getOwnerElement()" will return the Element node this attribute is attached to or null if this attribute is not in use. Retreive an element and its attributes. Then remove the element and check the name of the ownerElement of attribute of the attribute "street". IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement">http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class attrgetownerelement05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.attrgetownerelement05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. XXX is NOT a legal value for the feature parameter. The method should return "false" since XXX is not a valid feature. Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "XXX" and version to "1.0". The method should return a boolean "false" since XXX is not a valid feature. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerElement()" will return the Element node this attribute is attached to or null if this attribute is not in use. Import an attribute node to another document. If an Attr node is imported, its ownerElement attribute should be set to null. Verify if the ownerElement has been set to null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement">http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement</a>
					 */
					export class attrgetownerelement04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.attrgetownerelement04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. XML is a legal value for the feature parameter. The method should return "false" since 9.0 is not a valid version. Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "XML" and version to "9.0". The method should return a boolean "false" since 9.0 is not a valid version. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerElement()" will return the Element node this attribute is attached to or null if this attribute is not in use. Create a new attribute node for this document node. Since the newly attribute is not it use its owner element should be null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement">http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement</a>
					 */
					export class attrgetownerelement03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.attrgetownerelement03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerElement()" will return the Element node this attribute is attached to or null if this attribute is not in use. Create a new element and attribute node, attach the attribute to the element. Check the value of owner element of the new attribute node IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement">http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement</a>
					 */
					export class attrgetownerelement02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.attrgetownerelement02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite that runs all DOM L2 Core tests using the Oracle Parser for Java in default configuration.
					 */
					export class TestOracle {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestOracle>;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. XML is a legal value for the feature parameter (Test for XML, upper case). Legal values for the version parameter are 1.0 and 2.0 (Test for 1.0). Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "XML" and the version equal to 1.0. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. XML is a legal value for the feature parameter (Test for xml, lower case). Legal values for the version parameter are 1.0 and 2.0 (Test for 1.0). Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "xml" and the version equal to 1.0. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Using the method getNamedItemNS, retreive the entity "ent1" and notation "notation1" from a NamedNodeMap of this DocumentTypes entities and notations. Both should be null since entities and notations are not namespaced. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=407">http://www.w3.org/Bugs/Public/show_bug.cgi?id=407</a> <a href="http://lists.w3.org/Archives/Member/w3c-dom-ig/2003Nov/0016.html">http://lists.w3.org/Archives/Member/w3c-dom-ig/2003Nov/0016.html</a>
					 */
					export class namednodemapgetnameditemns01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapgetnameditemns01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. Core is a legal value for the feature parameter (Test for core, lower case). Legal values for the version parameter are 1.0 and 2.0 (Test for 2.0). Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "core" and the version equal to 2.0. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. XML is a legal value for the feature parameter (Test for xml, lower case). Legal values for the version parameter are 1.0 and 2.0 (Test for 2.0). Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "xml" and the version equal to 2.0. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getNamedItemNS retrieves a node specified by local name and namespace URI. Create a new Element node and add 2 new attribute nodes having the same local name but different namespace names and namespace prefixes to it. Using the getNamedItemNS retreive the second attribute node. Verify if the attr node has been retreived successfully by checking its nodeName atttribute. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a>
					 */
					export class namednodemapgetnameditemns03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapgetnameditemns03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. XML is a legal value for the feature parameter (Test for XML). If the version is not specified, supporting any version of the method to return true. Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "XML" and the version equal blank. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getNamedItemNS retrieves a node specified by local name and namespace URI. Using the method getNamedItemNS, retreive an attribute node having namespaceURI=http://www.nist.gov and localName=domestic, from a NamedNodeMap of attribute nodes, for the second element whose namespaceURI=http://www.nist.gov and localName=address. Verify if the attr node has been retreived successfully by checking its nodeName atttribute. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a>
					 */
					export class namednodemapgetnameditemns02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapgetnameditemns02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add remove an notation using removeNamedItemNS should result in a NO_MODIFICATION_ERR or a NOT_FOUND_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D46829EF">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D46829EF</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS</a>
					 */
					export class hc_notationsremovenameditemns1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hc_notationsremovenameditemns1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test the setAttributeNodeNS method. Retreive the street attribute from the second address element node. Clone it and add it to the first address node. The INUSE_ATTRIBUTE_ERR exception should not be thrown. Check the name and value of the newly added node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class elementsetattributenodens02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributenodens02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Testing Element.setAttributeNodeNS: If an attribute with that local name and that namespace URI is already present in the element, it is replaced by the new one. Create a new element and two new attribute nodes (in the same namespace and same localNames). Add the two new attribute nodes to the element node using the setAttributeNodeNS method. Check that only one attribute is added, check the value of this attribute. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a>
					 */
					export class elementsetattributenodens01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributenodens01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttributeNS returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise. Create a new element and attribute node that belong to the same namespace. Add the attribute node to the element node. Check if the newly created element node has an attribute by invoking the hasAttributeNS method with appropriate values for the namespaceURI and localName parameters. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a>
					 */
					export class elementhasattributens02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementhasattributens02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method for a Document should return a new NodeList of all Elements that have a namespace when local name is specified as ' '. Invoke method getElementsByTagNameNS(namespaceURI,localName) on this document with namespaceURI and localName as " ". Method should return a new NodeList of 37 elements. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class getElementsByTagNameNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttributeNS returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise. Retreive the first employee element node. Invoke the hasAttributeNS method to check if it has the xmlns attribute that belongs to the namespace http://www.w3.org/2000/xmlns/. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a>
					 */
					export class elementhasattributens01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementhasattributens01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttributeNS returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise. Create a new element and an attribute node that has an empty namespace. Add the attribute node to the element node. Check if the newly created element node has an attribute by invoking the hasAttributeNS method with appropriate values for the namespaceURI and localName parameters. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class elementhasattributens03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementhasattributens03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the special value " " as the namespaceURI and "address" as the localName. The method should return a NodeList of Elements that have "address" as the local name. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class getElementsByTagNameNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the "http://www.nist.gov" as the namespaceURI and "nomatch" as the localName. The method should return a NodeList whose length is "0". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class getElementsByTagNameNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method for a Document should return a new NodeList of all Elements with a given localName and namespaceURI in the order they were encountered in a preorder traversal of the document tree. Invoke method getElementsByTagNameNS(namespaceURI,localName) on this document with namespaceURI being " " and localName is "employee". Method should return a new NodeList containing five Elements. Retrieve the FOURTH element whose name should be "emp:employee". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class getElementsByTagNameNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the "http://www.nist.gov" as the namespaceURI and the special value " " as the localName. The method should return a NodeList of elements that have "http://www.nist.gov as a namespace URI. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class getElementsByTagNameNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Element.getElementsByTagNameNS('*','*') should return all child elements. There is some contention on whether this should match unqualified elements, this test reflects the interpretation that '*' should match elements in all namespaces and unqualified elements. Derived from getElementsByTagNameNS01 which tests similar functionality on the Document interface. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D</a>
					 */
					export class getElementsByTagNameNS08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerElement()" will return the Element node this attribute is attached to or null if this attribute is not in use. Retreive the default attribute defaultAttr and check its owner element. Verify if the name the nodeName of the returned ownerElement is emp:employee. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement">http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class attrgetownerelement01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.attrgetownerelement01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method for a Element should return a new NodeList of all descendant Elements with a given localName and namespaceURI in the order they were encountered in a preorder traversal of the document tree. Invoke method getElementsByTagNameNS(namespaceURI,localName) on the document element with namespaceURI being "*" and localName is "employee". Method should return a new NodeList containing five Elements. Retrieve the FOURTH element whose name should be "emp:employee". Derived from getElementsByTagNameNS02 and reflects its interpretation that namespace="*" matches namespace unqualified tagnames. Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D</a>
					 */
					export class getElementsByTagNameNS09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the "http://www.nomatch.com" as the namespaceURI and "address" as the localName. The method should return a NodeList whose length is "0". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class getElementsByTagNameNS06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNS(namespaceURI,localName)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to remove an attribute from the entity reference by executing the "removeAttributeNS(namespaceURI,localName)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElRemAtNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElRemAtNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElRemAtNS')/raises/exception[
					 */
					export class removeAttributeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.removeAttributeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the string "http://www.nist.gov" as the namespaceURI and "address" as the localName. The method should return a NodeList whose length is "3". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class getElementsByTagNameNS07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeAttributeNS(namespaceURI,localName)" removes an attribute by local name and namespace URI. If the removed attribute has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix. Retrieve the attribute named "emp:local" from emp:address node, then remove the "emp:local" attribute by invoking the "removeAttributeNS(namespaceURI,localName)" method. The "emp:local" attribute has a default value defined in the DTD file, that value should immediately replace the old value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElRemAtNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElRemAtNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=238">http://www.w3.org/Bugs/Public/show_bug.cgi?id=238</a>
					 */
					export class removeAttributeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.removeAttributeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite that runs all DOM L2 Core tests using the Oracle Parser for Java in default configuration.
					 */
					export class TestOracleAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestOracleAltConfig>;
					}
					export class TestJTidy {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestJTidy>;
					}
					/**
					 * Element.setAttributeNS with an empty qualified name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAttrNS')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class setAttributeNS10 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS10>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,qualifiedName,value)" method adds a new attribute. If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the "qualifiedName", and its vale is changed to be the "value" paramter. null value if no previously existing Attr node with the same name was replaced. Add a new attribute to the "emp:address" element. Check to see if the new attribute has been successfully added to the document by getting the attributes value, namespace URI, local Name and prefix. The prefix will be changed to the prefix part of the "qualifiedName" and its value changed to the "value" parameter. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#">http://www.w3.org/TR/DOM-Level-2-Core/core#</a>
					 */
					export class setAttributeNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,qualifiedName,value)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to set an attribute in the entity reference by executing the "setAttributeNS(namespaceURI,qualifiedName,value)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAttrNS')/raises/exception[
					 */
					export class setAttributeNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,qualifiedName,value)" method raises a NAMESPACE_ERR DOMException if the specified qualifiedName if malformed. Attempt to add a new attribute on the second employee node. An exception should be raised since the "qualifiedName" is malformed. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAttrNS')/raises/exception[
					 */
					export class setAttributeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,qualifiedName,Value)" method raises a INVALID_CHARACTER_ERR DOMException if the specified prefix contains an illegal character. Attempt to add a new attribute on the first employee node. An exception should be raised since the "qualifiedName" has an invalid character. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAttrNS')/raises/exception[
					 */
					export class setAttributeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the special value "*" as the namespaceURI and "address" as the localName. The method should return a NodeList of Elements that have "address" as the local name. This test is derived from getElementsByTagNameNS04 Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D</a>
					 */
					export class getElementsByTagNameNS11 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS11>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the "http://www.nist.gov" as the namespaceURI and "nomatch" as the localName. The method should return a NodeList whose length is "0". This test is a modification of getElementsByTagName05 Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D</a>
					 */
					export class getElementsByTagNameNS12 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS12>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,localName,value)" method raises a NAMESPACE_ERR DOMException if the "qualifiedName" has a value of "xmlns" and the namespaceURI is different from http://www.w3.org/2000/xmlns. Attempt to add an attribute with a "qualifiedName" of "xmlns" as the on the first employee node. An exception should be raised since the namespaceURI of this node is not http://www.w3.org/2000/xmlns. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAttrNS')/raises/exception[
					 */
					export class setAttributeNS07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,localName,value)" method raises a NAMESPACE_ERR DOMException if the "qualifiedName" has a prefix of "xml" and the namespaceURI is different from http://www.w3.org/XML/1998/namespace. Attempt to add an attribute with a prefix of "xml" as the on the first employee node. An exception should be raised since the namespaceURI of this node is not http://www.w3.org/XML/1998/namespace. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAttrNS')/raises/exception[
					 */
					export class setAttributeNS06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements of the document element using the "http://www.nist.gov" as the namespaceURI and the special value "*" as the localName. The method should return a NodeList of elements that have "http://www.nist.gov as a namespace URI. Derived from getElementsByTagNameNS03 Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D</a>
					 */
					export class getElementsByTagNameNS10 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS10>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,qualifiedName,value)" method adds a new attribute. If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the "qualifiedName", and its vale is changed to be the "value" paramter. null value if no previously existing Attr node with the same name was replaced. Add a new attribute to the "emp:address" element. Check to see if the new attribute has been successfully added to the document. The new attribute "<newValue>" contains markup and therefore is escaped by the implementation. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS</a>
					 */
					export class setAttributeNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "normalize" puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes. Create a dom tree consisting of elements, comments, processing instructions, CDATA sections, and entity references nodes seperated by text nodes. Check the length of the node list of each before and after normalize has been called. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-normalize">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-normalize</a>
					 */
					export class nodenormalize01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodenormalize01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the "http://www.nomatch.com" as the namespaceURI and "address" as the localName. The method should return a NodeList whose length is "0". Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D</a>
					 */
					export class getElementsByTagNameNS13 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS13>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementsByTagNameNS(namespaceURI,localName)" method returns a NodeList of all descendant Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of this Element tree. Create a NodeList of all the descendant elements using the string "http://www.nist.gov" as the namespaceURI and "address" as the localName. The method should return a NodeList whose length is "3". Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1938918D</a>
					 */
					export class getElementsByTagNameNS14 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementsByTagNameNS14>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,qualifiedName,value)" method adds a new attribute. If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the "qualifiedName", and its vale is changed to be the "value" paramter. null value if no previously existing Attr node with the same name was replaced. Add a new attribute to the "emp:address" element. Check to see if the new attribute has been successfully added to the document by getting the attributes value, namespace URI, local Name and prefix. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a>
					 */
					export class setAttributeNS09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNS09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Attempt to insert an element into an attribute list, should raise a HIERARCHY_REQUEST_ERR. Curt Arnold <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788">http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-1025163788</a> <a href="http://www.w3.org/2000/11/DOM-Level-2-errata#core-4">http://www.w3.org/2000/11/DOM-Level-2-errata#core-4</a>
					 */
					export class hc_namednodemapinvalidtype1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hc_namednodemapinvalidtype1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a DOMImplementation should raise INVALID_CHARACTER_ERR DOMException if parameter qualifiedName contains an illegal character. Invoke method createDocument(namespaceURI,qualifiedName,doctype) on this domimplementation with namespaceURI equals "http://www.ecommerce.org/schema", doctype is null and qualifiedName contains an illegal character from illegalChars[]. Method should raise INVALID_CHARACTER_ERR DOMException for all characters in illegalChars[]. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#">http://www.w3.org/TR/DOM-Level-2-Core/core#</a>
					 */
					export class createDocument05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a DOMImplementation should raise NAMESPACE_ERR DOMException if qualifiedName has the "xml" prefix and namespaceURI different from "http://www.w3.org/XML/1998/namespace" Invoke method createDocument(namespaceURI,qualifiedName,doctype) on this domimplementation with qualifiedName "xml:local" and namespaceURI as the string "http://www.ecommerce.org/schema" (which is different from the required "http://www.w3.org/XML/1998/namespace"). Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocument')/raises/exception[
					 */
					export class createDocument06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestCrimson {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestCrimson>;
					}
					/**
					 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a DOMImplementation should return a new xml Document object of the specified type with its document element given that all parameters are valid and correctly formed. Invoke method createDocument(namespaceURI,qualifiedName,doctype) on this domimplementation. namespaceURI is "http://www.ecommerce.org/schema" qualifiedName is "y:x" and doctype is null. Method should return a new xml Document as specified by the listed parameters. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a>
					 */
					export class createDocument07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * DOMImplementation.createDocument with an empty qualified name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#">http://www.w3.org/TR/DOM-Level-2-Core/core#</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class createDocument08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestGNUJAXP {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestGNUJAXP>;
					}
					/**
					 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a DOMImplementation should raise NAMESPACE_ERR DOMException if parameter qualifiedName is malformed. Retrieve the DOMImplementation on the XMLNS Document. Invoke method createDocument(namespaceURI,qualifiedName,doctype) on the retrieved DOMImplementation with namespaceURI being the literal string "http://www.ecommerce.org/", qualifiedName as "prefix::local", and doctype as null. Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocument')/raises/exception[
					 */
					export class createDocument01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a DOMImplementation should raise NAMESPACE_ERR DOMException if qualifiedName has a prefix and namespaceURI is null. Invoke method createDocument(namespaceURI,qualifiedName,doctype) on this domimplementation with namespaceURI being null and qualifiedName equals "k:local". Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocument')/raises/exception[
					 */
					export class createDocument02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a DOMImplementation should raise WRONG_DOCUMENT_ERR DOMException if parameter doctype has been used with a different document. Invoke method createDocument(namespaceURI,qualifiedName,doctype) on this domimplementation where doctype is the type of this document. Method should raise WRONG_DOCUMENT_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocument')/raises/exception[
					 */
					export class createDocument03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocument(namespaceURI,qualifiedName,doctype)" method for a DOMImplementation should raise WRONG_DOCUMENT_ERR DOMException if parameter doctype was created from a different implementation. Invoke method createDocument(namespaceURI,qualifiedName,doctype) on a domimplementation that is different from this domimplementation. Doctype is the type of this document. Method should raise WRONG_DOCUMENT_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocument')/raises/exception[
					 */
					export class createDocument04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocument04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName and raises a HIERARCHY_REQUEST_ERR if an attempt is made to add a node doesn't belong in this NamedNodeMap. Attempt to add an entity to a NamedNodeMap of attribute nodes, Since nodes of this type cannot be added to the attribute node map a HIERARCHY_REQUEST_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class namednodemapsetnameditemns10 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns10>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestDOM4J {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestDOM4J>;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName and raises a HIERARCHY_REQUEST_ERR if an attempt is made to add a node doesn't belong in this NamedNodeMap. Attempt to add a notation node to a NamedNodeMap of attribute nodes, Since notations nodes do not belong in the attribute node map a HIERARCHY_REQUEST_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class namednodemapsetnameditemns11 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns11>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. XML is a legal value for the feature parameter (Test for XML, upper case). Legal values for the version parameter are 1.0 and 2.0 (Test for 2.0). Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "XML" and the version equal to 2.0. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported11 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported11>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. CORE is a legal value for the feature parameter (Test for CORE, upper case). Legal values for the version parameter are 1.0 and 2.0 (Test for 1.0). Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "CORE" and the version equal to 1.0. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported12 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported12>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Calls isSupported("Core","") should return true for all implementations (by extension of core-14). Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a> <a href="http://www.w3.org/2000/11/DOM-Level-2-errata#core-14">http://www.w3.org/2000/11/DOM-Level-2-errata#core-14</a>
					 */
					export class isSupported13 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported13>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Calls isSupported("Core",null) should return true for all implementations (by extension of core-14). Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a> <a href="http://www.w3.org/2000/11/DOM-Level-2-errata#core-14">http://www.w3.org/2000/11/DOM-Level-2-errata#core-14</a>
					 */
					export class isSupported14 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported14>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the isSupported(feature,version)" method is the name of the feature and the version is the version number of the feature to test. CORE is a legal value for the feature parameter (Test for CORE, upper case). Legal values for the version parameter are 1.0 and 2.0 (Test for 2.0). Retrieve the root node of the DOM document by invoking the "getDocumentElement()" method. This should create a node object on which the "isSupported(feature,version)" method is invoked with "feature" equal to "CORE" and the version equal to 2.0. The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class isSupported10 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.isSupported10>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestGNUJAXPAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestGNUJAXPAltConfig>;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Attr. The ownerElement is set to null. Specified flag is set to true. Children is imported. Create a new attribute whose name is "elem:attr1" in a different document. Create a child Text node with value "importedText" for the attribute node above. Invoke method importNode(importedNode,deep) on this document with importedNode being the newly created attribute. Method should return a node whose name matches "elem:attr1" and a child node whose value equals "importedText". The returned node should belong to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type CData_Section. Create a CDATASection node with value being the string "this is CDATASection data" in a different document. Invoke method importNode(importedNode,deep) on this document. Method should return a CDATASection node whose value matches the above string. The returned node should belong to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Comment. Create a comment node with value being the string "this is a comment" in a different document. Invoke method importNode(importedNode,deep) on this document. Method should return a comment node whose value matches the above string. The returned node should belong to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Document_Fragment. Create a DocumentFragment in a different document. Create a Comment child node for the Document Fragment. Invoke method importNode(importedNode,deep) on this document with importedNode being the newly created DocumentFragment. Method should return a node of type DocumentFragment whose child has comment value "descendant1". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Element. Retrieve element "emp:address" from staffNS.xml document. Invoke method importNode(importedNode,deep) on this document with importedNode being the element from above and deep is false. Method should return an element node whose name matches "emp:address" and whose children are not imported. The returned node should belong to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Element. Retrieve element "emp:address" from staffNS.xml document. Invoke method importNode(importedNode,deep) on this document with importedNode being the element from above and deep is true. Method should return an element node whose name matches "emp:address" and whose descendant is imported. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Element. If this document defines default attributes for this element name (importedNode), those default attributes are assigned. Create an element whose name is "emp:employee" in a different document. Invoke method importNode(importedNode,deep) on this document which defines default attribute for the element name "emp:employee". Method should return an the imported element with an assigned default attribute. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=238">http://www.w3.org/Bugs/Public/show_bug.cgi?id=238</a>
					 */
					export class importNode07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Document_Fragment. Create a DocumentFragment in a different document. Invoke method importNode(importedNode,deep) on this document with importedNode being the newly created DocumentFragment. Method should return an empty DocumentFragment that belongs to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-systemId">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-systemId</a>
					 */
					export class importNode08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamespaceURI()" method for a Node returns the namespace URI of this node, or null if unspecified. Retrieve the first employee node and invoke the "getNamespaceURI()" method. The method should return "http://www.nist.gov". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname</a>
					 */
					export class namespaceURI03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namespaceURI03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix sets the namespace prefix of this node. Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as well as the tagName and name attributes of the Element and Attr interfaces, when applicable. Create a new element node with a namespace prefix. Add it to a new DocumentFragment Node without a prefix. Call setPrefix on the elemen node. Check if the prefix was set correctly on the element. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamespaceURI()" method for a Node returns the namespace URI of this node, or null if unspecified. Retrieve the second employee node and invoke the "getNamespaceURI()" method. The method should return "null". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname</a>
					 */
					export class namespaceURI04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namespaceURI04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamespaceURI()" method for an Attribute returns the namespace URI of this node, or null if unspecified. Retrieve the first "emp:address" node which has an attribute of "emp:district" that is specified in the DTD. Invoke the "getNamespaceURI()" method on the attribute. The method should return "http://www.nist.gov". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=238">http://www.w3.org/Bugs/Public/show_bug.cgi?id=238</a>
					 */
					export class namespaceURI01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namespaceURI01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix raises a NAMESPACE_ERR if the namespaceURI of this node is null. Create a new element node without a namespace prefix. Call setPrefix on the newly created elemenent node. Check if a NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamespaceURI()" method for an Attribute returns the namespace URI of this node, or null if unspecified. Retrieve the first emp:address node and get the emp:domestic attribute. Invoke the "getNamespaceURI()" method on the attribute. The method should return "http://www.nist.gov". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname</a>
					 */
					export class namespaceURI02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namespaceURI02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix sets the namespace prefix of this node. Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as well as the tagName and name attributes of the Element and Attr interfaces, when applicable. Create a new attribute node and add it to an element node with an existing attribute having the same localName as this attribute but different namespaceURI. Change the prefix of the newly created attribute using setPrefix. Check if the new attribute nodeName has changed and the existing attribute is the same. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix raises a NAMESPACE_ERR if the specified prefix is malformed. Create a new namespace aware element node and call the setPrefix method on it with several malformed prefix values. Check if a NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix raises a NAMESPACE_ERR if the namespaceURI of this node is null. Retreive the a default Attribute node which does not have a namespace prefix. Call the setPrefix method on it. Check if a NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class nodesetprefix04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix raises a NAMESPACE_ERR if this node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/". Create a new attribute node whose namespaceURI is different form "http://www.w3.org/2000/xmlns/" and node prefix is "xmlns". Check if the NAMESPACE_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Entity. Retrieve entity "ent6" from staffNS.xml document. Invoke method importNode(importedNode,deep) on this document. Method should return a node of type Entity whose publicId, systemId and notationName attributes are copied. The returned node should belong to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttribute returns true when an attribute with a given name is specified on this element or has a default value, false otherwise Invoke the hasAttribute method to check if the documentElement has attributres. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class elementhasattribute01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementhasattribute01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix raises a NAMESPACE_ERR if the specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace". Invoke the setPrefix method on this Element object with namespaceURI that is different from http://www..w3.org/xml/1998/namespace and a prefix whose values is xml. Check if the NAMESPACE_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix raises a INVALID_CHARACTER_ERR if the specified prefix contains an illegal character. Create a new namespace aware element node and call the setPrefix method on it with a prefix having an invalid character. Check if a NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setPrefix raises a NAMESPACE_ERR if this node is an attribute and the qualifiedName of this node is "xmlns Retreive an attribute node whose qualifiedName is xmlns. Try setting a prefix on this node. Check if the NAMESPACE_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodesetprefix08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodesetprefix08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNS adds a new attribute. Retrieve an existing element node with attributes and add a new attribute node to it using the setAttributeNS method. Check if the attribute was correctly set by invoking the getAttributeNodeNS method and checking the nodeName and nodeValue of the returned nodes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a>
					 */
					export class elementsetattributens02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributens02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNS adds a new attribute. Create a new element and add a new attribute node to it using the setAttributeNS method. Check if the attribute was correctly set by invoking the getAttributeNodeNS method and checking the nodeName and nodeValue of the returned nodes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a>
					 */
					export class elementsetattributens01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributens01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNS adds a new attribute and raises a INVALID_CHARACTER_ERR if the specified qualified name contains an illegal character. Invoke the setAttributeNS method on this Element object with a valid value for namespaceURI, and qualifiedNames that contain illegal characters. Check if the an INVALID_CHARACTER_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a>
					 */
					export class elementsetattributens04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributens04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNS adds a new attribute. Retreive an existing element node with a default attribute node and add two new attribute nodes that have the same local name as the default attribute but different namespaceURI to it using the setAttributeNS method. Check if the attribute was correctly set by invoking the getAttributeNodeNS method and checking the nodeName and nodeValue of the returned nodes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a>
					 */
					export class elementsetattributens03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributens03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Entity. Retrieve entity "ent4" from staffNS.xml document. Invoke method importNode(importedNode,deep) on this document with deep as false. Method should return a node of type Entity whose descendant is copied. The returned node should belong to this document whose systemId is "staffNS.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode12 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode12>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Notation. Retrieve notation named "notation1" from document staffNS.xml. Invoke method importNode(importedNode,deep) where importedNode contains the retrieved notation and deep is false. Method should return a node of type notation whose name is "notation1". The returned node should belong to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode13 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode13>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNodeNS(namespaceURI,localName)" method retrieves an attribute node by local name and NamespaceURI. Retrieve the first emp:address element node. The getAttributeNodeNS method returns an Attr node, the "value" can be examined to ensure the proper attribute node was retrieved. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a>
					 */
					export class getAttributeNodeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getAttributeNodeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Processing Instruction. Create a processing instruction with target as "target1" and data as "data1" in a different document. Invoke method importNode(importedNode,deep) on this document. Method should return a processing instruction whose target and data match the given parameters. The returned PI should belong to this document whose systemId is "staff.dtd". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode14 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode14>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNodeNS(namespaceURI,localName)" method retrieves an attribute node by local name and NamespaceURI. Retrieve the first emp:address element node. The getAttributeNodeNS method returns an Attr node, the "value" can be examined to ensure the proper attribute node was retrieved. This attribute value should be null since there is no such attribute. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS</a>
					 */
					export class getAttributeNodeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getAttributeNodeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Text. Create a text node with value being the string "this is text data" in a different document. Invoke method importNode(importedNode,deep) on this document. Method should return a text node whose value matches the above string. The returned node should belong to this document whose systemId is "staff.dtd" NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode15 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode15>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should raise NOT_SUPPORTED_ERR DOMException if the type of node being imported is DocumentType. Retrieve document staff.xml and get its type. Invoke method importNode(importedNode,deep) where importedNode contains the document type of the staff.xml. Method should raise NOT_SUPPORT_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Core-Document-importNode')/raises/exception[
					 */
					export class importNode16 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode16>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The createDocument method should throw a NAMESPACE_ERR if the qualifiedName has a prefix that is xml and the namespaceURI is different from http://www..w3.org/XML/1998/namespace. Call the createDocument on this DOMImplementation with namespaceURI that is http://www.w3.org/xml/1998/namespace and a qualifiedName that has the prefix xml Check if the NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a>
					 */
					export class domimplementationcreatedocument05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationcreatedocument05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should raise NOT_SUPPORTED_ERR DOMException if the type of node being imported is Document. Retrieve staff.xml document. Invoke method importNode(importedNode,deep) where importedNode contains staff.xml and deep is true. Method should raise NOT_SUPPORTED_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Core-Document-importNode')/raises/exception[
					 */
					export class importNode17 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode17>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The createDocument method should raise a NAMESPACE_ERR if the qualifiedName is malformed Invoke the createDocument method on this DOMImplementation object with null values for namespaceURI and docType and a malformed qualifiedName. The NAMESPACE_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a>
					 */
					export class domimplementationcreatedocument07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationcreatedocument07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "isSupported(feature,version)" Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. Call the isSupported method specifying empty strings for feature and version on a docType Node. Check if the value returned value was false. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class nodeissupported03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodeissupported03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "isSupported(feature,version)" Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. Call the isSupported method on a new attribute node with a combination of features versions and versions as below. Valid feature names are case insensitive and versions "2.0", "1.0" and if the version is not specified, supporting any version of the feature should return true. Check if the value returned value was true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class nodeissupported02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodeissupported02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "isSupported(feature,version)" Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. Call the isSupported method specifying bad values for feature and version on a new Processing Instruction node. Check if the value returned from this method value was false. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class nodeissupported05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodeissupported05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "isSupported(feature,version)" Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. Call the isSupported method specifying empty strings for feature and version on a new EntityReference node. Check if the value returned value was false. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class nodeissupported04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodeissupported04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItemNS(namespaceURI,localName)" method for a NamedNodeMap should raise NO_MODIFICATION_ALLOWED_ERR DOMException if this map is readonly. Retrieve a list of "gender" elements. Get access to the THIRD element which contains an ENTITY_REFERENCE child node. Try to remove the attribute in the node's map with method removeNamedItemNS(namespaceURI,localName). This should result in NO_MODIFICATION_ALLOWED_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-removeNamedItemNS')/raises/exception[
					 */
					export class removeNamedItemNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.removeNamedItemNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add remove an entity using removeNamedItemNS should result in a NO_MODIFICATION_ERR or a NOT_FOUND_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1788794630">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1788794630</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS</a>
					 */
					export class hc_entitiesremovenameditemns1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hc_entitiesremovenameditemns1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Entity_Reference. Only the EntityReference is copied, regardless of deep's value. Create an entity reference whose name is "entRef1" in a different document. Give it value "entRef1Value". Invoke method importNode(importedNode,deep) on this document with importedNode being "entRef1". Method should return a node of type Entity_Reference (whose value is null) that belongs to this document whose systemId is "staff.dtd". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode10 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode10>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getLocalName returns the local part of the qualified name of this node. Ceate two new element nodes and atribute nodes, with and without namespace prefixes. Retreive the local part of their qualified names using getLocalName and verrify if it is correct. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN</a>
					 */
					export class nodegetlocalname03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodegetlocalname03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "isSupported(feature,version)" Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. Call the isSupported method on the document element node with a combination of features versions and versions as below. Valid feature names are case insensitive and versions "2.0", "1.0" and if the version is not specified, supporting any version of the feature should return true. Check if the value returned value was true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-Node-supports</a>
					 */
					export class nodeissupported01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodeissupported01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "importNode(importedNode,deep)" method for a Document should import the given importedNode into that Document. The importedNode is of type Entity_Reference. Only the EntityReference is copied, regardless of deep's value. If the Document provides a definition for the entity name, its value is assigned. Create an entity reference whose name is "ent3" in a different document. Invoke method importNode(importedNode,deep) on this document with importedNode being "ent3". Method should return a node of type Entity_Reference whose first child's value is "Texas" as defined in this document. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class importNode11 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.importNode11>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItemNS(namespaceURI,localName)" method for a NamedNodeMap should raise NOT_FOUND_ERR DOMException if there is no node with the specified namespaceURI and localName in this map. Retrieve a list of elements with tag name "address". Access the second element from the list and get its attributes. Try to remove an attribute node with local name "domest" and namespace uri "http://www.usa.com" with method removeNamedItemNS(namespaceURI,localName). This should raise NOT_FOUND_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-removeNamedItemNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-removeNamedItemNS')/raises/exception[
					 */
					export class removeNamedItemNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.removeNamedItemNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "removeNamedItemNS(namespaceURI,localName)" method for a NamedNodeMap should remove a node specified by localName and namespaceURI. Retrieve a list of elements with tag name "address". Access the second element from the list and get its attributes. Try to remove the attribute node with local name "domestic" and namespace uri "http://www.usa.com" with method removeNamedItemNS(namespaceURI,localName). Check to see if the node has been removed. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1074577549">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1074577549</a>
					 */
					export class removeNamedItemNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.removeNamedItemNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 *  The "getElementById(elementId)" method for a Document should return null if elementId does not identify any elements in this document. Invoke method getElementById(elementId) on this document with elementId equals "Cancun". Method should return null. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBId">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBId</a>
					 */
					export class getElementById02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementById02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The createDocument method with valid arguments, should create a DOM Document of the specified type. Call the createDocument on this DOMImplementation with createDocument ("http://www.w3.org/DOMTest/L2",see the array below for valid QNames,null). Check if the returned Document object is is empty with no Document Element. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a>
					 */
					export class domimplementationcreatedocument03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationcreatedocument03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getElementById(elementId)" method for a Document should return an element whose ID matches elementId. Invoke method getElementById(elementId) on this document with elementId equals "CANADA". Method should return an element whose tag name is "emp:address". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-104682815">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-104682815</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=383">http://www.w3.org/Bugs/Public/show_bug.cgi?id=383</a>
					 */
					export class getElementById01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getElementById01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The createDocument method should throw a NAMESPACE_ERR if the qualifiedName has a prefix and the namespaceURI is null. Call the createDocument on this DOMImplementation with null namespaceURI and a qualifiedName that has a namespace prefix using this DOMImplementation. Check if the NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a>
					 */
					export class domimplementationcreatedocument04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationcreatedocument04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getPrefix returns the namespace prefix of this node, or null if it is unspecified. Ceate two new element nodes and atribute nodes, with and without namespace prefixes. Retreive the prefix part of their qualified names using getPrefix and verify if it is correct. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class nodegetprefix03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodegetprefix03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNodeNS(namespaceURI,qualifiedName,value)" method for an attribute causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Try to set an attribute in the entity reference by executing the "setAttributeNodeNS(newAttr)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAtNodeNS')/raises/exception[
					 */
					export class setAttributeNodeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNodeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNode(newAttr)" method raises an "INUSE_ATTRIBUTE_ERR DOMException if the "newAttr" is already an attribute of another element. Retrieve the first emp:address and append a newly created element. The "createAttributeNS(namespaceURI,qualifiedName)" and "setAttributeNodeNS(newAttr)" methods are invoked to create and add a new attribute to the newly created Element. The "setAttributeNodeNS(newAttr)" method is once again called to add the new attribute causing an exception to be raised since the attribute is already an attribute of another element. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAtNodeNS')/raises/exception[
					 */
					export class setAttributeNodeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNodeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNodeNS(newAttr)" method raises an "WRONG_DOCUMENT_ERR DOMException if the "newAttr" was created from a different document than the one that created this document. Retrieve the first emp:address and attempt to set a new attribute node. The new attribute was created from a document other than the one that created this element, therefore a WRONG_DOCUMENT_ERR DOMException should be raised. This test uses the "createAttributeNS(newAttr)" method from the Document interface. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAtNodeNS')/raises/exception[
					 */
					export class setAttributeNodeNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNodeNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNodeNS(newAttr)" adds a new attribute. If an attribute with that local name and that namespaceURI is already present in the element, it is replaced by the new one. Retrieve the first emp:address element and add a new attribute to the element. Since an attribute with the same local name and namespaceURI already exists, it is replaced by the new one and returns the replaced "Attr" node. This test uses the "createAttributeNS(namespaceURI,localName) method from the Document interface to create the new attribute to add. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a>
					 */
					export class setAttributeNodeNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNodeNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNodeNS(newAttr)" adds a new attribute. If an attribute with that local name and that namespaceURI is already present in the element, it is replaced by the new one. Retrieve the first emp:address element and add a new attribute to the element. Since an attribute with the same local name and namespaceURI as the newly created attribute does not exist the value "null" is returned. This test uses the "createAttributeNS(namespaceURI,localName) method from the Document interface to create the new attribute to add. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a>
					 */
					export class setAttributeNodeNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setAttributeNodeNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItemNS(arg)" method for a NamedNodeMap should replace an existing node n1 found in the map with arg if n1 has the same namespaceURI and localName as arg and return n1. Create an attribute node in with namespaceURI "http://www.usa.com" and qualifiedName "dmstc:domestic" whose value is "newVal". Invoke method setNamedItemNS(arg) on the map of the first "address" element. Method should return the old attribute node identified by namespaceURI and qualifiedName from above,whose value is "Yes". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a>
					 */
					export class setNamedItemNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setNamedItemNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerDocument()" method returns null if the target node itself is a DocumentType which is not used with any document yet. Invoke the "getOwnerDocument()" method on the master document. The DocumentType returned should be null. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#node-ownerDoc">http://www.w3.org/TR/DOM-Level-2-Core/core#node-ownerDoc</a>
					 */
					export class ownerDocument01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.ownerDocument01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItemNS(arg)" method for a NamedNodeMap should add a node using its namespaceURI and localName given that there is no existing node with the same namespaceURI and localName in the map. Create an attr node with namespaceURI "http://www.nist.gov",qualifiedName "prefix:newAttr" and value "newValue". Invoke method setNamedItemNS(arg) on the map of the first "address" element where arg is identified by the namespaceURI and qualifiedName from above. Method should return the newly added attr node. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D080">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D080</a>
					 */
					export class setNamedItemNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setNamedItemNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItemNS(arg)" method for a NamedNodeMap should raise NO_MODIFICATION_ALLOWED_ERR DOMException if this map is readonly. Retrieve a list of "gender" elements. Get access to the THIRD element which contains an ENTITY_REFERENCE child node. Get access to the node's map. Try to add an attribute node specified by arg with method setNamedItemNS(arg). This should result in NO_MODIFICATION_ALLOWED_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-setNamedItemNS')/raises/exception[
					 */
					export class setNamedItemNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setNamedItemNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItemNS(arg)" method for a NamedNodeMap should raise INUSE_ATTRIBUTE_ERR DOMException if arg is an Attr that is already an attribute of another Element object. Retrieve an attr node from the third "address" element whose local name is "domestic" and namespaceURI is "http://www.netzero.com". Invoke method setNamedItemNS(arg) on the map of the first "address" element with arg being the attr node from above. Method should raise INUSE_ATTRIBUTE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-setNamedItemNS')/raises/exception[
					 */
					export class setNamedItemNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setNamedItemNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setNamedItemNS(arg)" method for a NamedNodeMap should raise WRONG_DOCUMENT_ERR DOMException if arg was created from a different document than the one that created this map. Create an attr node in a different document with qualifiedName equals "dmstc:domestic" and namespaceURI is "http://www.usa.com". Access the namednodemap of the first "address" element in this document. Invoke method setNamedItemNS(arg) with arg being the attr node from above. Method should raise WRONG_DOCUMENT_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-setNamedItemNS')/raises/exception[
					 */
					export class setNamedItemNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.setNamedItemNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttribute returns true when an attribute with a given name is specified on this element or has a default value, false otherwise. Create an element Node and an attribute Node and add the attribute node to the element. Invoke the hasAttribute method on the element and verify if the method returns true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class elementhasattribute04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementhasattribute04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttribute returns true when an attribute with a given name is specified on this element or has a default value, false otherwise. Create an element Node and an attribute Node. Invoke hasAttribute method to verify that there is no attribute. Append the attribute node to the element node. Invoke the hasAttribute method on the element and verify if it returns true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class elementhasattribute03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementhasattribute03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttribute returns true when an attribute with a given name is specified on this element or has a default value, false otherwise Invoke the hasAttribute method to on an element with default attributes and verify if it returns true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class elementhasattribute02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementhasattribute02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getNamedItemNS retrieves a node specified by local name and namespace URI. Retreieve the second address element and its attribute into a named node map. Try retreiving the street attribute from the namednodemap using the default namespace uri and the street attribute name. Since the default namespace doesnot apply to attributes this should return null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a>
					 */
					export class namednodemapgetnameditemns05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapgetnameditemns05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "hasFeature(feature,version)" tests if the DOMImplementation implements a specific feature and if not returns false. Call the hasFeature method on this DOMImplementation with a unfimiliar values for feature and version. Check if the value returned was false. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7</a>
					 */
					export class domimplementationhasfeature02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationhasfeature02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getNamedItemNS retrieves a node specified by local name and namespace URI. Retreive the second address element node having localName=adrress. Create a new attribute node having the same name as an existing node but different namespaceURI and add it to this element. Using the getNamedItemNS retreive the newly created attribute node from a nodemap of attributes of the retreive element node. Verify if the attr node has been retreived successfully by checking its nodeName atttribute. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a>
					 */
					export class namednodemapgetnameditemns04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapgetnameditemns04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method "hasFeature(feature,version)" tests if the DOMImplementation implements a specific feature and if so returns true. Call the hasFeature method on this DOMImplementation with a combination of features versions as below. Valid feature names are case insensitive and versions "2.0", "1.0" and if the version is not specified, supporting any version of the feature should return true. Check if the value returned value was true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7</a>
					 */
					export class domimplementationhasfeature01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationhasfeature01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retreive the second address element node having localName=adrress. Retreive the attributes of this element into 2 nodemaps. Create a new attribute node and add it to this element. Since NamedNodeMaps are live each one should get updated, using the getNamedItemNS retreive the newly created attribute from each node map. Verify if the attr node has been retreived successfully by checking its nodeName atttribute. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a>
					 */
					export class namednodemapgetnameditemns06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapgetnameditemns06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite that runs all DOM L2 Core tests using the Default LS parser in default configuration. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestDefaultLS>;
					}
					/**
					 * The method getInternalSubset() returns the public identifier of the external subset. Create a new DocumentType node with the value "PUB" for its publicId. Check the value of the publicId attribute using getPublicId(). IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-publicId">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-publicId</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class documenttypepublicid01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documenttypepublicid01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setPrefix(prefix)" method raises a NAMESPACE_ERR DOMException if the specified prefix is set on a node with a namespaceURI that is null. Attempt to insert a new namespace prefix on the second employee node. An exception should be raised since the namespace prefix is set on a node whose namespaceURI is null. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#">http://www.w3.org/TR/DOM-Level-2-Core/core#</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('')/setraises/exception[
					 */
					export class prefix11 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix11>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=false, import a newly created DocumentFragment node with the first address element from this Document appended to it into this document. Since deep=true, a DocumentFragment with its child should be returned IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode10 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode10>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=false, import this Document's documentElement node. Verify if the node has been imported correctly by its nodeName atttribute and if the original document is not altered by checking if hasChildNodes returns false. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode11 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode11>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, import the first address element node of this Document. Verify if the node has been imported correctly by checking the length of the this elements childNode list before and after the import. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode12 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode12>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getAttributeNS retrieves an attribute value by local name and namespace URI. Using the getAttributeNodeNS, retreive and verify the value of the default attribute node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class elementgetattributens02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementgetattributens02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setPrefix(prefix)" method raises a NAMESPACE_ERR DOMException if the specified prefix is xml and the namespaceURI is different from http://www.w3.org/XML/1998/namespace. Attempt to insert "xml" as the new namespace prefix on the first employee node. An exception should be raised since the namespaceURI of this node is not http://www.w3.org/XML/1998/namespace. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-NodeNSPrefix')/setraises/exception[
					 */
					export class prefix10 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix10>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=false, import the first employee element node of this Document. Verify if the node has been imported correctly by checking the length of the this elements childNode list before and after the import. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode13 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode13>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Using the method importNode with deep=true, import the fourth employee element node of this Document. Verify if the node has been imported correctly by checking if the default attribute present on this node has not been imported and an explicit attribute has been imported. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=402">http://www.w3.org/Bugs/Public/show_bug.cgi?id=402</a>
					 */
					export class documentimportnode14 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode14>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, import a newly created Text node for this Document. Verify if the node has been imported correctly by checking the value of the imported text node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode15 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode15>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, import a newly created Comment node for this Document. Verify if the node has been imported correctly by checking the value of the imported Comment node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode17 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode17>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, import a newly created PI node for this Document. Verify if the node has been imported correctly by checking the PITarget and PIData values of the imported PI node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode18 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode18>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true/false, import a entity nodes ent2 and ent6 from this document to a new document object. Verify if the nodes have been imported correctly by checking the nodeNames of the imported nodes and public and system ids. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode19 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode19>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPublicId()" method of a documenttype node contains the public identifier associated with the external subset. Retrieve the documenttype. Apply the "getPublicId()" method. The string "STAFF" should be returned. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-publicId">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-publicId</a>
					 */
					export class publicId01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.publicId01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestBatik {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestBatik>;
					}
					/**
					 * The "getPrefix()" method for a Node returns the namespace prefix of the node, and for nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, this is null. Create an new Element with the createElement() method. Invoke the "getPrefix()" method on the newly created element node will cause "null" to be returned. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class prefix01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, import the attribute, "street" of the second element node, from a list of nodes whose local names are "address" and namespaceURI "http://www.nist.gov" into the same document. Check the parentNode, nodeName, nodeType and nodeValue of the imported node to verify if it has been imported correctly. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=false, import the attribute, "emp:zone" of the element node which is retreived by its elementId="CANADA", into the another document. Check the parentNode, nodeName, nodeType and nodeValue of the imported node to verify if it has been imported correctly. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPrefix()" method for a node returns the namespace prefix of this node, or null if it is unspecified. Retrieve the first employee node and invoke the getPrefix() method." The method should return "null". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class prefix04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=false, import the default Attribute attribute, "defaultAttr" of the second element node whose namespaceURI="http://www.nist.gov" and localName="defaultAttr", into the same document. Check the parentNode, nodeName, nodeType and nodeValue of the imported node to verify if it has been imported correctly. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setPrefix(prefix)" method raises a NAMESPACE_ERR DOMException if the specified node is an attribute and the specified prefix is xmlns and the namespaceURI is different from http://www.w3.org/2000/xmlns. Attempt to insert "xmlns" as the new namespace prefix on the emp:domestic attribute within the emp:address node. An exception should be raised since the namespaceURI of this node is not http://www.w3.org/2000/xmlns. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-NodeNSPrefix')/setraises/exception[
					 */
					export class prefix05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getElementById returns the element whose ID is given by elementId. If not such element exists, returns null. Invoke the getElementById method on this Document object with an invalid elementId. This should return a null element. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBId">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBId</a>
					 */
					export class documentgetelementbyid01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentgetelementbyid01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, import the default Attribute attribute, "defaultAttr" of the second element node whose namespaceURI="http://www.nist.gov" and localName="defaultAttr", into a new document. Check the parentNode, nodeName, nodeType and nodeValue of the imported node to verify if it has been imported correctly. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPrefix()" method returns the namespace prefix of this node, or null if unspecified. For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE, this is always null. Retrieve the first emp:employeeId node and get the first child of this node. Since the first child is Text node invoking the "getPrefix()" method will cause "null" to be returned. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class prefix02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=false, import a newly created attribute node, into the another document. Check the nodeName, nodeType and nodeValue namespaceURI of the imported node to verify if it has been imported correctly. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getPrefix()" method for a node returns the namespace prefix of this node, or null if it is unspecified. Retrieve the first emp:employee node and invoke the getPrefix() method." The method should return "emp". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a>
					 */
					export class prefix03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. A NOT_SUPPORTED_ERR is raised if the type of node being imported is not supported Using the method importNode with deep=false, try to import this document object to itself. Since Document nodes cannot be imported, a NOT_SUPPORTED_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setPrefix(prefix)" method causes the DOMException NO_MODIFICATION_ALLOWED_ERR to be raised if the node is readonly. Obtain the children of the THIRD "gender" element. The elements content is an entity reference. Get the FIRST item from the entity reference and execute the "setPrefix(prefix)" method. This causes a NO_MODIFICATION_ALLOWED_ERR DOMException to be thrown. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-NodeNSPrefix')/raises/exception[
					 */
					export class prefix08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. A NOT_SUPPORTED_ERR is raised if the type of node being imported is not supported Using the method importNode with deep=true, try to import this Document's DocumentType object. Since DocumentType nodes cannot be imported, a NOT_SUPPORTED_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setPrefix(prefix)" method raises a NAMESPACE_ERR DOMException if the specified node is an attribute and the qualifiedName of this node is xmlns. Attempt to set the prefix on the xmlns attribute within the fourth address element. An exception should be raised since the qualifiedName of this attribute is "xmlns". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-NodeNSPrefix')/setraises/exception[
					 */
					export class prefix09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. A NOT_SUPPORTED_ERR is raised if the type of node being imported is not supported Using the method importNode with deep=true, try to import a newly created DOcumentType node. Since DocumentType nodes cannot be imported, a NOT_SUPPORTED_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class documentimportnode08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setPrefix(prefix)" method raises a INVALID_CHARACTER_ERR DOMException if the specified prefix contains an illegal character. Attempt to insert a new namespace prefix on the first employee node. An exception should be raised since the namespace prefix has an invalid character. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-NodeNSPrefix')/setraises/exception[
					 */
					export class prefix06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=false, import a newly created DocumentFragment node with the first address element from this Document appended to it into this document. Since deep=false, an empty DocumentFragment should be returned IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setPrefix(prefix)" method raises a NAMESPACE_ERR DOMException if the specified prefix if malformed. Attempt to insert a new namespace prefix on the second employee node. An exception should be raised since the namespace prefix is malformed. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSPrefix</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-NodeNSPrefix')/setraises/exception[
					 */
					export class prefix07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.prefix07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "normalize()" method puts all the nodes in the full depth of the sub-tree underneath this element into a "normal" form. Retrieve the third employee and access its second child. This child contains a block of text that is spread across multiple lines. The content of the "name" child should be parsed and treated as a single Text node. This appears to be a duplicate of elementnormalize.xml in DOM L1 Test Suite NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-normalize">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-normalize</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-72AB8359">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-72AB8359</a>
					 */
					export class normalize01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.normalize01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttributes returns whether this node (if it is an element) has any attributes. Create a new Document, Element and Attr node. Add the Attr to the Element and append the Element to the Document. Retreive the newly created element node from the document and check if it has attributes using hasAttributes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class nodehasattributes04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodehasattributes04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttributes returns whether this node (if it is an element) has any attributes. Retreive an element node with a default attributes. Verify if hasAttributes returns true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class nodehasattributes03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodehasattributes03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttributes returns whether this node (if it is an element) has any attributes. Retrieve the docType node. Since this is not an element node check if hasAttributes returns null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class nodehasattributes02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodehasattributes02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method hasAttributes returns whether this node (if it is an element) has any attributes. Retreive an element node without attributes. Verify if hasAttributes returns false. Retreive another element node with attributes. Verify if hasAttributes returns true. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class nodehasattributes01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodehasattributes01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createDocumentType should raise a INVALID_CHARACTER_ERR if the qualifiedName contains an illegal characters. Invoke createDocument on this DOMImplementation with qualifiedNames having illegal characters. Check if an INVALID_CHARACTER_ERR is raised in each case. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType</a>
					 */
					export class domimplementationcreatedocumenttype04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationcreatedocumenttype04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createAttributeNS raises a NAMESPACE_ERR if the qualifiedName has a prefix and the namespaceURI is null. Invoke the createAttributeNS method on a new Document object with a null value for namespaceURI, and a valid qualifiedName. Check if a NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a>
					 */
					export class documentcreateattributeNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateattributeNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createAttributeNS raises a NAMESPACE_ERR if the specified qualified name is malformed. Invoke the createAttributeNS method on this Document object with a valid value for namespaceURI, and malformed qualifiedNames. Check if the a NAMESPACE_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a>
					 */
					export class documentcreateattributeNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateattributeNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createAttributeNS raises an INVALID_CHARACTER_ERR if the specified qualified name contains an illegal character Invoke the createAttributeNS method on this Document object with a valid value for namespaceURI, and qualifiedNames that contain illegal characters. Check if the an INVALID_CHARACTER_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a>
					 */
					export class documentcreateattributeNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateattributeNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createDocumentType with valid values for qualifiedName, publicId and systemId should create an empty DocumentType node. Invoke createDocument on this DOMImplementation with a valid qualifiedName and different publicIds and systemIds. Check if the the DocumentType node was created with its ownerDocument attribute set to null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocument</a>
					 */
					export class domimplementationcreatedocumenttype01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationcreatedocumenttype01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createAttributeNS creates an attribute of the given qualified name and namespace URI Invoke the createAttributeNS method on this Document object with a valid values for namespaceURI, and a qualifiedName as below. This should return a valid Attr node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a>
					 */
					export class documentcreateattributeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateattributeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createDocumentType with valid values for qualifiedName, publicId and systemId should create an empty DocumentType node. Invoke createDocument on this DOMImplementation with a different valid qualifiedNames and a valid publicId and systemId. Check if the the DocumentType node was created with its ownerDocument attribute set to null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType</a>
					 */
					export class domimplementationcreatedocumenttype02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationcreatedocumenttype02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createAttributeNS creates an attribute of the given qualified name and namespace URI Invoke the createAttributeNS method on this Document object with a null namespaceURI, and a qualifiedName without a prefix. This should return a valid Attr node object. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a>
					 */
					export class documentcreateattributeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateattributeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getOwnerDocument returns the Document object associated with this node Create a new DocumentType node. Since this node is not used with any Document yet verify if the ownerDocument is null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#node-ownerDoc">http://www.w3.org/TR/DOM-Level-2-Core/core#node-ownerDoc</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class nodegetownerdocument01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodegetownerdocument01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a document fragment with two adjacent text nodes, normalize and see if the text nodes were combined. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3</a>
					 */
					export class hc_nodedocumentfragmentnormalize1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hc_nodedocumentfragmentnormalize1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Create a document fragment with an empty text node, after normalization there should be no child nodes. were combined. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3</a>
					 */
					export class hc_nodedocumentfragmentnormalize2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hc_nodedocumentfragmentnormalize2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createAttributeNS raises a NAMESPACE_ERR if the qualifiedName is xmlns and the namespaceURI is different from http://www.w3.org/2000/xmlns Invoke the createAttributeNS method on this DOMImplementation object with the qualifiedName as xmlns and namespaceURI as http://www.W3.org/2000/xmlns. Check if the NAMESPACE_ERR exception is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a>
					 */
					export class documentcreateattributeNS07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateattributeNS07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getOwnerDocument returns the Document object associated with this node Create a new Document node. Since this node is not used with any Document yet verify if the ownerDocument is null. Create a new element Node on the new Document object. Check the ownerDocument of the new element node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#node-ownerDoc">http://www.w3.org/TR/DOM-Level-2-Core/core#node-ownerDoc</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class nodegetownerdocument02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodegetownerdocument02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createAttributeNS raises a NAMESPACE_ERR if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from "http://www.w3.org/XML/1998/namespace". Invoke the createAttributeNS method on a new DOMImplementation object with the qualifiedName as xml:root and namespaceURI as http://www.w3.org/XML/1998 /namespace. Check if the NAMESPACE_ERR exception is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a>
					 */
					export class documentcreateattributeNS06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateattributeNS06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeAttributeNS removes an attribute by local name and namespace URI. Create a new element and add a new attribute node to it. Remove the attribute node using the removeAttributeNodeNS method. Check if the attribute was remove by invoking the hasAttributeNS method on the element and check if it returns false. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElRemAtNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElRemAtNS</a>
					 */
					export class elementremoveattributens01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementremoveattributens01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getInternalSubset() returns the public identifier of the external subset. Create a new DocumentType node with the value "SYS" for its systemId and PUB for its publicId. Check the value of the systemId and pbulicId attributes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-systemId">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-systemId</a>
					 */
					export class documenttypesystemid01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documenttypesystemid01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite using the default JAXP parser in the alternative configuration 
					 */
					export class TestDefaultParserAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestDefaultParserAltConfig>;
					}
					/**
					 * The "createDocumentType(qualifiedName,publicId,systemId)" method for a DOMImplementation should raise INVALID_CHARACTER_ERR DOMException if qualifiedName contains an illegal character. Invoke method createDocumentType(qualifiedName,publicId,systemId) on this domimplementation with qualifiedName containing an illegal character from illegalChars[]. Method should raise INVALID_CHARACTER_ERR DOMException for all characters in illegalChars[]. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocType')/raises/exception[
					 */
					export class createDocumentType02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocumentType02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocumentType(qualifiedName,publicId,systemId)" method for a DOMImplementation should raise NAMESPACE_ERR DOMException if qualifiedName is malformed. Retrieve the DOMImplementation on the XMLNS Document. Invoke method createDocumentType(qualifiedName,publicId,systemId) on the retrieved DOMImplementation with qualifiedName being the literal string "prefix::local", publicId as "STAFF", and systemId as "staff". Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocType')/raises/exception[
					 */
					export class createDocumentType01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocumentType01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * DOMImplementation.createDocumentType with an empty name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('Level-2-Core-DOM-createDocType')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class createDocumentType04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocumentType04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createDocumentType(qualifiedName,publicId,systemId)" method for a DOMImplementation should return a new DocumentType node given that qualifiedName is valid and correctly formed. Invoke method createDocumentType(qualifiedName,publicId,systemId) on this domimplementation with qualifiedName "prefix:myDoc". Method should return a new DocumentType node. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType">http://www.w3.org/TR/DOM-Level-2-Core/core#Level-2-Core-DOM-createDocType</a>
					 */
					export class createDocumentType03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createDocumentType03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add an element to the named node map returned by entities should result in a NO_MODIFICATION_ERR or HIERARCHY_REQUEST_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1788794630">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1788794630</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a>
					 */
					export class hc_entitiessetnameditemns1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hc_entitiessetnameditemns1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "setAttributeNS(namespaceURI,qualifiedName,value)" method raises a NAMESPACE_ERR DOMException if the specified qualifiedName has a prefix and the namespaceURI is null. Attempt to add a new attribute on the first employee node. An exception should be raised since the "qualifiedName" has a prefix and the namespaceURI is null. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-ElSetAttrNS')/raises/exception[
					 */
					export class elementsetattributensurinull extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributensurinull>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, import a entity node ent4 from this document to a new document object. The replacement text of this entity is an element node, a cdata node and a pi. Verify if the nodes have been imported correctly by checking the nodeNames of the imported element node, the data for the cdata nodes and the PItarget and PIData for the pi nodes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode20 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode20>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true, retreive the entity refs present in the second element node whose tagName is address and import these nodes into another document. Verify if the nodes have been imported correctly by checking the nodeNames of the imported nodes, since they are imported into a new document which doesnot have thes defined, the imported nodes should not have any children. Now import the entityRef nodes into the same document and verify if the nodes have been imported correctly by checking the nodeNames of the imported nodes, and by checking the value of the replacement text of the imported nodes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode21 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode21>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNS adds a new attribute and raises a NAMESPACE_ERR if the qualifiedName has a prefix and the namespaceURI is null. Invoke the setAttributeNS method on a new Element object with null namespaceURI and a qualifiedName that has a namespace prefix. Check if the NAMESPACE_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class elementsetattributens05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributens05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The importNode method imports a node from another document to this document. The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document but a new copy of the source node is created. Using the method importNode with deep=true/false, import two notaiton nodes into the same and different documnet objects. In each case check if valid public and systemids are returned if any and if none, check if a null value was returned. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode">http://www.w3.org/TR/DOM-Level-2-Core/core#Core-Document-importNode</a>
					 */
					export class documentimportnode22 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentimportnode22>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNS adds a new attribute and raises a NAMESPACE_ERR if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/". Invoke the setAttributeNS method on a new Element object with namespaceURI that is http://www.w3.org/DOMTest/level2 and a qualifiedName that has the prefix xmlns and once again with a qualifiedName that is xmlns. Check if the NAMESPACE_ERR was thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAttrNS</a>
					 */
					export class elementsetattributens08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributens08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getNamespaceURI returns the namespace URI of this node, or null if it is unspecified For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the Document interface, this is always null. Ceate two new element nodes and atribute nodes, with and without namespace prefixes. Retreive their namespaceURI's using getNamespaceURI and verrify if it is correct. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSname</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class nodegetnamespaceuri03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.nodegetnamespaceuri03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getSystemId()" method of a documenttype node contains the system identifier associated with the external subset. Retrieve the documenttype. Apply the "getSystemId()" method. The string "staffNS.dtd" should be returned. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-systemId">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-systemId</a>
					 */
					export class systemId01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.systemId01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttributes()" method for a node should return false if the node does not have an attribute. Retrieve the first "name" node and invoke the "hasAttributes()" method. The method should return false since the node does not have an attribute. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class hasAttributes01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttributes01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttributes()" method for a node should return true if the node has attributes. Retrieve the first address node and the "hasAttributes()" method should return true since the node has "domestic" as an attribute. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeHasAttrs</a>
					 */
					export class hasAttributes02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttributes02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 *  DOM Test Suite Project
					 */
					export class alltests extends org.w3c.domts.DOMTestSuite {
						/**
						 * Constructor
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.alltests>;
						/**
						 * Build test suite by adding each test to the test sink
						 * @param sink test sink
						 */
						public build(sink: org.w3c.domts.IDOMTestSink): void;
						/**
						 * Gets URI that identifies the test suite
						 */
						public getTargetURI(): string;
						/**
						 * Runs individual test
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * An attempt to add an element to the named node map returned by notations should result in a NO_MODIFICATION_ERR or HIERARCHY_REQUEST_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D46829EF">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D46829EF</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a>
					 */
					export class hc_notationssetnameditemns1 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hc_notationssetnameditemns1>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNS(namespaceURI,localName)" method retrieves an attribute value by local name and NamespaceURI. Retrieve the first emp:address element node and retrieve the emp:domestic attribute. The method returns an Attr value as a string, the "value" can be examined to ensure the proper attribute value was retrieved. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS</a>
					 */
					export class getAttributeNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getAttributeNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNS(namespaceURI,localName)" method retrieves an attribute value by local name and NamespaceURI. Retrieve the first "emp:address" element. Create a new attribute with the "createAttributeNS()" method. Add the new attribute with the "setAttributeNS()" method. The value returned by the "getAttributeNS()" method should be the empty string since the attribute does not have a default value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS</a>
					 */
					export class getAttributeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getAttributeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNS(namespaceURI,localName)" method retrieves an attribute value by local name and NamespaceURI. Retrieve the first "emp:address" element. The value returned by the "getAttributeNS()" method should be the value "DISTRICT" since the attribute has a default value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=238">http://www.w3.org/Bugs/Public/show_bug.cgi?id=238</a>
					 */
					export class getAttributeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getAttributeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNS(namespaceURI,localName)" method retrieves an attribute value by local name and NamespaceURI. Retrieve the first "emp:address" element. Create a new attribute with the "createAttributeNS()" method. Add the new attribute and value with the "setAttributeNS()" method. The value returned by the "getAttributeNS()" method should be the string "NewValue" since the attribute had a specified value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS</a>
					 */
					export class getAttributeNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getAttributeNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getAttributeNS(namespaceURI,localName)" method retrieves an attribute value by local name and NamespaceURI. Retrieve the first "emp:address" element. The value returned by the "getAttributeNS()" method for the emp:domestic attribute should be the empty string since the attribute does not have a specified value because it was removed by the "removeAttributeNS()" method. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAttrNS</a>
					 */
					export class getAttributeNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getAttributeNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Create a new element node ('root') and append three newly created child nodes (all have local name 'child' and defined in different namespaces). Test 1: invoke getElementsByTagNameNS to retrieve one of the children. Test 2: invoke getElementsByTagNameNS with the value of namespace equals to '*', and verify that the node list has length of 3. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class elementgetelementsbytagnamens04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementgetelementsbytagnamens04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Invoke getElementsByTagNameNS on the documentElement with the following values: namespaceURI: 'http://www.altavista.com' localName: '*'. Verify if this returns a nodeList of 1 elements. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class elementgetelementsbytagnamens05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementgetelementsbytagnamens05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getElementsByTagNameNS returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Invoke getElementsByTagNameNS on the documentElement with values for namespaceURI '*' and localName '*'. Verify if this returns a nodeList of 0 elements. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class elementgetelementsbytagnamens02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementgetelementsbytagnamens02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElementNS(namespaceURI,qualifiedName)" method for a Document should raise NAMESPACE_ERR DOMException if qualifiedName is malformed. Invoke method createElementNS(namespaceURI,qualifiedName) on the XMLNS Document with namespaceURI being the literal string "http://www.ecommerce.org/", and qualifiedName as "prefix::local". Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrElNS')/raises/exception[
					 */
					export class createElementNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createElementNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite that runs all DOM L2 Core tests using the Default LS parser in an alternate configuration Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestDefaultLSAltConfig>;
					}
					/**
					 * The "createElementNS(namespaceURI,qualifiedName)" method for a Document should raise NAMESPACE_ERR DOMException if qualifiedName has a prefix and namespaceURI is null. Invoke method createElementNS(namespaceURI,qualifiedName) on this document with namespaceURI being null and qualifiedName being "elem:attr1". Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrElNS')/raises/exception[
					 */
					export class createElementNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createElementNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamedItemNS(namespaceURI,localName)" method for a NamedNodeMap should return a node specified by localName and namespaceURI Retrieve a list of elements with tag name "address". Access the second element from the list and get its attributes. Try to retrieve the attribute node with local name "domestic" and namespace uri "http://www.usa.com" with method getNamedItemNS(namespaceURI,localName). NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a>
					 */
					export class getNamedItemNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getNamedItemNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getNamedItemNS(namespaceURI,localName)" method for a NamedNodeMap should return null if parameters do not identify any node in this map. Retrieve a list of elements with tag name "address". Access the second element from the list and get its attributes. Try to retrieve an attribute node with local name "domest" and namespace uri "http://www.usa.com" with method getNamedItemNS(namespaceURI,localName). This should return null because "domest" does not match any local names in this map. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a>
					 */
					export class getNamedItemNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getNamedItemNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Entity nodes are not namespaced and should not be retrievable using getNamedItemNS. Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class getNamedItemNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getNamedItemNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Notation nodes are not namespaced and should not be retrievable using getNamedItemNS. Curt Arnold Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class getNamedItemNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.getNamedItemNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeNamedItemNS removes a node using its namespaceURI and localName and raises a NOT_FOUND_ERR if there is no node with the specified namespaceURI and localName in this map Retreive an attribute node from a namednodemap. Remove the attribute node from the document object. Since NamedNodeMaps are live it should also automatically get removed from the node map. And so if an attempt is made to remove it using removeAttributeNS, this should raise a NOT_FOUND_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a>
					 */
					export class namednodemapremovenameditemns08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeNamedItemNS removes a node using its namespaceURI and localName and raises a NOT_FOUND_ERR if there is no node with the specified namespaceURI and localName in this map Retreive an attribute node. Remove the attribute node from the node map. Check the element object to ensure that the attribute node has been removed from it. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a>
					 */
					export class namednodemapremovenameditemns09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElementNS(namespaceURI,qualifiedName)" method for a Document should return a new Element object given that all parameters are valid and correctly formed. Invoke method createElementNS(namespaceURI,qualifiedName on this document with namespaceURI as "http://www.nist.gov" and qualifiedName as "gov:faculty". Method should return a new Element object whose name is "gov:faculty". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-104682815">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-104682815</a>
					 */
					export class createElementNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createElementNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeNamedItemNS removes a node using its namespaceURI and localName and raises a NOT_FOUND_ERR if there is no node with the specified namespaceURI and localName in this map Retreive an attribute node into a namednodemap. While removing it from the map specify an incorrect namespaceURI. This should raise a NOT_FOUND_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a>
					 */
					export class namednodemapremovenameditemns06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Document.createElementNS with an empty qualified name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrElNS')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class createElementNS06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createElementNS06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestCrimsonAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestCrimsonAltConfig>;
					}
					/**
					 * The method removeNamedItemNS removes a node using its namespaceURI and localName and raises a NOT_FOUND_ERR if there is no node with the specified namespaceURI and localName in this map Retreive an attribute node from a namednodemap. While removing it from the map specify an incorrect localName. This should raise a NOT_FOUND_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a>
					 */
					export class namednodemapremovenameditemns07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElementNS(namespaceURI,qualifiedName)" method for a Document should raise INVALID_CHARACTER_ERR DOMException if qualifiedName contains an illegal character. Invoke method createElementNS(namespaceURI,qualifiedName) on this document with qualifiedName containing an illegal character from illegalChars[]. Method should raise INVALID_CHARACTER_ERR DOMException for all characters in illegalChars[]. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrElNS')/raises/exception[
					 */
					export class createElementNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createElementNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeNamedItemNS removes a node specified by local name and namespace Attempt to remove the xmlns and dmstc attributes of the first element node with the localName employee. Verify if the 2 attributes were successfully removed. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a>
					 */
					export class namednodemapremovenameditemns04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createElementNS raises a NAMESPACE_ERR if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from http://www.w3.org/XML/1998/namespace Invoke the createElementNS method on this DOMImplementation object with the qualifiedName as xml:root and namespaceURI as http://www.w3.org/xml/1998/namespace Check if the NAMESPACE_ERR exception is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a>
					 */
					export class documentcreateelementNS06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateelementNS06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getInternalSubset() returns the internal subset as a string. Create a new DocumentType node with null values for publicId and systemId. Verify that its internal subset is null. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-internalSubset">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-internalSubset</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class documenttypeinternalSubset01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documenttypeinternalSubset01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createElementNS(namespaceURI,qualifiedName") method for a Document should raise NAMESPACE_ERR DOMException if the qualifiedName has an "xml" prefix and the namespaceURI is different from http://www.w3.org/XML/1998/namespace". Invoke method createElementNS(namespaceURI,qualifiedName) on this document with qualifiedName being "xml:element1" and namespaceURI equals the string "http://www.w3.org/XML/1997/namespace" (which differs from the required string "http://www.w3.org/XML/1998/namespace"). Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrElNS')/raises/exception[
					 */
					export class createElementNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createElementNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retreive an entity and notation node and remove the first notation from the entity node map and first entity node from the notation map. Since both these maps are readonly, a NO_MODIFICATION_ALLOWED_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=407">http://www.w3.org/Bugs/Public/show_bug.cgi?id=407</a> <a href="http://lists.w3.org/Archives/Member/w3c-dom-ig/2003Nov/0016.html">http://lists.w3.org/Archives/Member/w3c-dom-ig/2003Nov/0016.html</a>
					 */
					export class namednodemapremovenameditemns05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createElementNS raises a NAMESPACE_ERR if the qualifiedName has a prefix and the namespaceURI is null. Invoke the createElementNS method on a new Document object with a null value for namespaceURI, and a valid qualifiedName. Check if a NAMESPACE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a>
					 */
					export class documentcreateelementNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateelementNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName and raises a INUSE_ATTRIBUTE_ERR Raised if arg is an Attr that is already an attribute of another Element object. Retreieve the attributes of first element whose localName is address into a named node map. Retreive the attribute whose namespaceURI=http://www.usa.com and localName=domestic from the NamedNodeMap. Retreieve the attributes of second element whose localName is address into a named node map. Call the setNamedItemNS method on the second nodemap with the domestic attribute that was retreived and removed from the first nodeMap as an argument. Assuming that when an attribute is removed from a nodemap, it still remains in the domtree his should raise an INUSE_ATTRIBIUTE_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a>
					 */
					export class namednodemapsetnameditemns07 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns07>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeNamedItemNS removes a node specified by local name and namespace A removed attribute may be known to have a default value when this map contains the attributes attached to an element, as returned by the attributes attribute of the Node interface. If so, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable. Retreive a default attribute node. Remove it from the NodeMap. Check if a new one immediately appears containing the default value. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class namednodemapremovenameditemns02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retreieve the first element whose localName is address and its attributes into a named node map. Retreiving the domestic attribute from the namednodemap. Retreieve the second element whose localName is address and its attributes into a named node map. Invoke setNamedItemNS on the second NamedNodeMap specifying the first domestic attribute from the first map. This should raise an INUSE_ATTRIBIUTE_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a>
					 */
					export class namednodemapsetnameditemns06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeNamedItemNS removes a node specified by local name and namespace Create a new element node and add 2 new attribute nodes to it that have the same localName but different namespaceURI's. Remove the first attribute node from the namedNodeMap of the new element node and check to see that the second attribute still exists. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a>
					 */
					export class namednodemapremovenameditemns03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Retreive an entity and notation node and add the first notation to the notation node map and first entity node to the entity map. Since both these maps are for readonly node, a NO_MODIFICATION_ALLOWED_ERR should be raised. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=407">http://www.w3.org/Bugs/Public/show_bug.cgi?id=407</a> <a href="http://lists.w3.org/Archives/Member/w3c-dom-ig/2003Nov/0016.html">http://lists.w3.org/Archives/Member/w3c-dom-ig/2003Nov/0016.html</a>
					 */
					export class namednodemapsetnameditemns05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createElementNS creates an element of the given valid qualifiedName and NamespaceURI. Invoke the createElementNS method on this Document object with null values for namespaceURI, and a qualifiedName with an invalid character and check if an INVALID_CHARACTER_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a>
					 */
					export class documentcreateelementNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateelementNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName and raises a WRONG_DOCUMENT_ERR if arg was created from a different document than the one that created this map. Retreieve the second element whose local name is address and its attribute into a named node map. Create a new document and a new attribute node in it. Call the setNamedItemNS using the first namedNodeMap and the new attribute node attribute of the new document. This should raise a WRONG_DOCUMENT_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class namednodemapsetnameditemns04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method removeNamedItemNS removes a node specified by local name and namespace Retreive an attribute node and then remove from the NamedNodeMap. Verify if the attribute node was actually remove from the node map. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-D58B193</a>
					 */
					export class namednodemapremovenameditemns01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapremovenameditemns01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method createElementNS creates an element of the given valid qualifiedName and NamespaceURI. Invoke the createElementNS method on this Document object with a valid namespaceURI and qualifiedName. Check if a valid Element object is returned with the same node attributes. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrElNS</a>
					 */
					export class documentcreateelementNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentcreateelementNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName and raises a WRONG_DOCUMENT_ERR if arg was created from a different document than the one that created this map. Retreieve the second element whose local name is address and its attribute into a named node map. Do the same for another document and retreive its street attribute. Call the setNamedItemNS using the first namedNodeMap and the retreive street attribute of the second. This should raise a WRONG_DOCUMENT_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=408">http://www.w3.org/Bugs/Public/show_bug.cgi?id=408</a>
					 */
					export class namednodemapsetnameditemns03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName. If a node with that namespace URI and that local name is already present in this map, it is replaced by the new one. Create a new element and attribute Node and add the newly created attribute node to the elements NamedNodeMap. Verify if the new attr node has been successfully added to the map by checking the nodeName of the retreived atttribute from the list of attribute nodes in this map. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a>
					 */
					export class namednodemapsetnameditemns02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName. If a node with that namespace URI and that local name is already present in this map, it is replaced by the new one. Retreive the first element whose localName is address and namespaceURI http://www.nist.gov", and put its attributes into a named node map. Create a new attribute node and add it to this map. Verify if the attr node was successfully added by checking the nodeName of the retreived atttribute. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getNamedItemNS</a>
					 */
					export class namednodemapsetnameditemns01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setNamedItemNS adds a node using its namespaceURI and localName and raises a NO_MODIFICATION_ALLOWED_ERR if this map is readonly. Create a new attribute node and attempt to add it to the nodemap of entities and notations for this documenttype. This should reaise a NO_MODIFICATION_ALLOWED_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a>
					 */
					export class namednodemapsetnameditemns09 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns09>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * raises a INUSE_ATTRIBUTE_ERR Raised if arg is an Attr that is already an attribute of another Element object. Retreieve the first element whose localName is address and its attributes into a named node map. Retreiving the domestic attribute from the namednodemap. Retreieve the second element whose localName is address and its attributes into a named node map. Invoke setNamedItemNS on the second NamedNodeMap specifying the attribute from the first map. This should raise an INUSE_ATTRIBIUTE_ERR. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-setNamedItemNS</a>
					 */
					export class namednodemapsetnameditemns08 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.namednodemapsetnameditemns08>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getElementsByTagNameNS returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Invoke the getElementsByTagNameNS method on a new Document object with the values of namespaceURI=* and localName=*. This should return a nodeList of 1 item. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class documentgetelementsbytagnameNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentgetelementsbytagnameNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getElementsByTagNameNS returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Create a new element having a local name="employeeId" belonging to the namespace "test" and append it to this document. Invoke the getElementsByTagNameNS method on a this Document object with the values of namespaceURI=* and localName="elementId". This should return a nodeList of 6 item. Check the length of the nodeList returned. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class documentgetelementsbytagnameNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentgetelementsbytagnameNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttributeNS(namespaceURI,qualifiedName)" method for a Document should raise NAMESPACE_ERR DOMException if qualifiedName has the "xml" prefix and namespaceURI is different from "http://www.w3.org/XML/1998/namespace". Invoke method createAttributeNS(namespaceURI,qualifiedName) on this document with qualifiedName being "xml:attr1 and namespaceURI equals the string "http://www.w3.org/XML/1998/namespaces" (which differs from the required string "http://www.w3.org/XML/1998/namespace"). Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrAttrNS')/raises/exception[
					 */
					export class createAttributeNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createAttributeNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getElementsByTagNameNS returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Invoke the getElementsByTagNameNS method on a new Document object with the values of namespaceURI=** and localName=**. This should return a nodeList of 0 items. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class documentgetelementsbytagnameNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentgetelementsbytagnameNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttributeNS(namespaceURI,qualifiedName)" method for a Document should raise INVALID_CHARACTER_ERR DOMException if qualifiedName contains an illegal character. Invoke method createAttributeNS(namespaceURI,qualifiedName) on this document with qualifiedName containing an illegal character from illegalChars[]. Method should raise INVALID_CHARACTER_ERR DOMException for all characters in illegalChars[]. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrAttrNS')/raises/exception[
					 */
					export class createAttributeNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createAttributeNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getElementsByTagNameNS returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Invoke the getElementsByTagNameNS method on a new Document object with the values of namespaceURI="null" and localName="0". This should return a nodeList of 0 items. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class documentgetelementsbytagnameNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentgetelementsbytagnameNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Document.createAttributeNS with an empty qualified name should cause an INVALID_CHARACTER_ERR. Curt Arnold <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrAttrNS')/raises/exception[ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=525">http://www.w3.org/Bugs/Public/show_bug.cgi?id=525</a>
					 */
					export class createAttributeNS06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createAttributeNS06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getElementsByTagNameNS returns a NodeList of all the Elements with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the Document tree. Invoke the getElementsByTagNameNS method on a this Document object with the values of namespaceURI=null and localName="elementId". This should return a nodeList of 0 item. Check the length of the nodeList returned. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core">http://www.w3.org/TR/DOM-Level-2-Core/core</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-getElBTNNS</a>
					 */
					export class documentgetelementsbytagnameNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.documentgetelementsbytagnameNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttributeNS(namespaceURI,qualifiedName)" method for a Document should return a new Attr object given that all parameters are valid and correctly formed. Invoke method createAttributeNS(namespaceURI,qualifiedName) on this document with parameters equal "http://www.ecommerce.org/" and "ecom:local" respectively. Method should return a new Attr object whose name is "ecom:local". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1112119403">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-1112119403</a>
					 */
					export class createAttributeNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createAttributeNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttributeNS(namespaceURI,qualifiedName)" method for a Document should raise NAMESPACE_ERR DOMException if qualifiedName has a prefix and namespaceURI is null. Invoke method createAttributeNS(namespaceURI,qualifiedName) on this document with namespaceURI being null and qualifiedName contains the prefix "person". Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrAttrNS')/raises/exception[
					 */
					export class createAttributeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createAttributeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "feature" parameter in the "hasFeature(feature,version)" method is the package name of the feature. Legal values are XML and HTML and CORE. (Test for feature core, lower case) Retrieve the entire DOM document and invoke its "getImplementation()" method. This should create a DOMImplementation object whose "hasFeature(feature, version)" method is invoked with feature equal to "core". The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7</a>
					 */
					export class domimplementationfeaturecore extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationfeaturecore>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "createAttributeNS(namespaceURI,qualifiedName)" method for a Document should raise NAMESPACE_ERR DOMException if qualifiedName is malformed. Invoke method createAttributeNS(namespaceURI,qualifiedName) on the XMLNS Document with namespaceURI being "http://www.ecommerce.org/", qualifiedName as "prefix::local". Method should raise NAMESPACE_ERR DOMException. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-258A00AF')/constant[ <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-DocCrAttrNS</a> <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#xpointer(id('ID-DocCrAttrNS')/raises/exception[
					 */
					export class createAttributeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.createAttributeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerElement()" will return the Element node this attribute is attached to or null if this attribute is not in use. Create a new attribute. Apply the "getOwnerElement()" method to get the Element associated with the attribute. The value returned should be "null" since this attribute is not in use. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement">http://www.w3.org/TR/DOM-Level-2-Core/core#Attr-ownerElement</a>
					 */
					export class ownerElement02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.ownerElement02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getOwnerElement()" will return the Element node this attribute is attached to or null if this attribute is not in use. Get the "domestic" attribute from the first "address" node. Apply the "getOwnerElement()" method to get the Element associated with the attribute. The value returned should be "address". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a>
					 */
					export class ownerElement01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.ownerElement01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttribute()" method for an Element should return false if the element does not have an attribute with the given name. Retrieve the first "address" element and the "hasAttribute()" method should return false since the element does not have "nomatch" as an attribute. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr</a>
					 */
					export class hasAttribute03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttribute03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttribute()" method for an Element should return true if the element has an attribute with the given name. Retrieve the first "address" element and the "hasAttribute()" method should return true since the attribute "street" has a default value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=238">http://www.w3.org/Bugs/Public/show_bug.cgi?id=238</a>
					 */
					export class hasAttribute02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttribute02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getInternalSubset()" method returns the internal subset as a string or null if there is none. This does not contain the delimiting brackets. Retrieve the documenttype. Apply the "getInternalSubset()" method. Null is returned since there is not an internal subset. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-internalSubset">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-Core-DocType-internalSubset</a>
					 */
					export class internalSubset01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.internalSubset01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getAttributeNodeNS retrieves an Attr node by local name and namespace URI. Using the getAttributeNodeNS, retrieve and verify the value of the default attribute node. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=259">http://www.w3.org/Bugs/Public/show_bug.cgi?id=259</a>
					 */
					export class elementgetattributenodens03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementgetattributenodens03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttribute()" method for an Element should return true if the element has an attribute with the given name. Retrieve the first "address" element and the "hasAttribute()" method should return true since the element has "domestic" as an attribute. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr</a> <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=238">http://www.w3.org/Bugs/Public/show_bug.cgi?id=238</a>
					 */
					export class hasAttribute04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttribute04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getAttributeNodeNS retrieves an Attr node by local name and namespace URI. Create a new element node and add a new attribute node to it. Using the getAttributeNodeNS, retrieve the newly added attribute node and check its value. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS</a>
					 */
					export class elementgetattributenodens02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementgetattributenodens02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method getAttributeNodeNS retrieves an Attr node by local name and namespace URI. Create a new element node and add 2 new attribute nodes to it that have the same local name but different namespaceURIs and prefixes. Retrieve an attribute using namespace and localname and check its value, name and namespaceURI. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElGetAtNodeNS</a>
					 */
					export class elementgetattributenodens01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementgetattributenodens01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttribute()" method for an Element should return true if the element has an attribute with the given name. Retrieve the first "address" element and the "hasAttribute()" method should return false since the element does not have a default value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttr</a>
					 */
					export class hasAttribute01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttribute01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestXerces {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestXerces>;
					}
					/**
					 * The "feature" parameter in the "hasFeature(feature,version)" method is the package name of the feature. Legal values are XML and HTML. (Test for feature "xml" and version "2.0") Retrieve the entire DOM document and invoke its "getImplementation()" method. This should create a DOMImplementation object whose "hasFeature(feature, version)" method is invoked with "feature" equal to "xml". The method should return a boolean "true". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-5CED94D7</a>
					 */
					export class domimplementationfeaturexmlversion2 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.domimplementationfeaturexmlversion2>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttributeNS()" method for an Element should return true if the attribute with the given local name and namespace URI has a default value. Retrieve the first "emp:address" element. The boolean value returned by the "hasAttributeNS()" should be true since the attribute has a default value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a>
					 */
					export class hasAttributeNS04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttributeNS04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					export class TestXercesAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestXercesAltConfig>;
					}
					/**
					 * The "hasAttributeNS()" method for an Element should return false if the element does not have an attribute with the given local name and/or namespace URI specified on this element or does not have a default value. Retrieve the first "emp:address" element. The boolean value returned by the "hasAttributeNS()" should be false since the attribute does not have a default value. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a>
					 */
					export class hasAttributeNS03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttributeNS03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttributeNS()" method for an Element should return false if the element does not have an attribute with the given local name and/or namespace URI specified on this element or does not have a default value. Retrieve the first "address" element and the "hasAttributeNS()" method should return false since the element has "domestic" as the local name and "http://www.nomatch.com" as the namespace URI. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a>
					 */
					export class hasAttributeNS02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttributeNS02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 *  The "hasAttributeNS()" method for an Element should return false if the element does not have an attribute with the given local name and/or a namespace URI specified on this element or does not have a default value. Retrieve the first "address" element and the "hasAttributeNS()" method should return false since the element has "nomatch" as the local name and "http://www.usa.com" as the namespace URI. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a>
					 */
					export class hasAttributeNS01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttributeNS01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNodeNS Adds a new attribute and raises an INUSE_ATTRIBUTE_ERR if newAttr is already an attribute of another Element object. Create two new element nodes and a new attribute node. Attempt to add the same attribute node to the same two element nodes. Check if an INUSE_ATTRIBUTE_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a>
					 */
					export class elementsetattributenodens04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributenodens04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNodeNS adds a new attribute and raises the INUSE_ATTRIBUTE_ERR exception if the newAttr is already an attribute of another Element object. Retreive an attribute node of an existing element node. Attempt to add it to an another element node. Check if the INUSE_ATTRIBUTE_ERR exception is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a>
					 */
					export class elementsetattributenodens03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributenodens03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNodeNS Adds a new attribute and raises an WRONG_DOCUMENT_ERR if this node is readonly. Attempt to add an attribute node to an element node which is part of the replacement text of a read-only EntityReference node. Check if a NO_MODIFICATION_ALLOWED_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a>
					 */
					export class elementsetattributenodens06 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributenodens06>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "hasAttributeNS()" method for an Element should return true if the element has an attribute with the given local name and the namespace URI is specified on this element or has a default value. Retrieve the first "address" element and the "hasAttributeNS()" method should return true since the element has "domestic" as the local name and "http://www.usa.com" as the namespace URI. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElHasAttrNS</a>
					 */
					export class hasAttributeNS05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.hasAttributeNS05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The method setAttributeNodeNS Adds a new attribute and raises an WRONG_DOCUMENT_ERR if newAttr was created from a different document than the one that created the element. Create new element and attribute nodes in different documents. Attempt to add the attribute node to the element node. Check if an WRONG_DOCUMENT_ERR is thrown. IBM Neil Delima <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-ElSetAtNodeNS</a>
					 */
					export class elementsetattributenodens05 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.elementsetattributenodens05>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLocalName()" method for a Node returns the local part of the qualified name of this node, and for nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, this is null. Retrieve the first emp:address node and get the attributes of this node." Then apply the getLocalName() method to the emp:domestic attribute. The method should return "domestic". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN</a>
					 */
					export class localName01 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.localName01>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * Test suite using the default JAXP parser in the default configuration 
					 */
					export class TestDefaultParser {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.core.TestDefaultParser>;
					}
					/**
					 * The "getLocalName()" method for a Node returns the local part of the qualified name of this node, and for nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, this is null. Retrieve the first employeeId node and get the first child of this node. Since the first child is Text node invoking the "getLocalName()" method will cause "null" to be returned. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN</a>
					 */
					export class localName03 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.localName03>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLocalName()" method for a Node returns the local part of the qualified name of this node, and for nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, this is null. Create an new Element with the createElement() method. Invoke the "getLocalName()" method on the newly created element node will cause "null" to be returned. NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN</a>
					 */
					export class localName02 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.localName02>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
					/**
					 * The "getLocalName()" method for a Node returns the local part of the qualified name of this node, and for nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, this is null. Retrieve the first employee node and invoke the "getLocalName()" method. The method should return "employee". NIST Mary Brady <a href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-NodeNSLocalN</a>
					 */
					export class localName04 extends org.w3c.domts.DOMTestCase {
						/**
						 * Constructor.
						 * @param factory document factory, may not be null
						 */
						constructor(factory: org.w3c.domts.DOMTestDocumentBuilderFactory);
						static class: java.lang.Class<org.w3c.domts.level2.core.localName04>;
						/**
						 * Runs the test case. Throwable Any uncaught exception causes test to fail
						 */
						public runTest(): void;
						/**
						 * Gets URI that identifies the test.
						 */
						public getTargetURI(): string;
						/**
						 * Runs this test from the command line.
						 * @param args command line arguments
						 */
						public static main(args: native.Array<string>): void;
					}
				}
				export module html {
					/**
					 * Test suite that runs all DOM L2 HTML tests using the Default LS parser in an alternative configuration. Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.html.TestDefaultLSAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L2 HTML tests using the Default LS parser in default configuration. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.html.TestDefaultLS>;
					}
					export class TestXercesHTML {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.html.TestXercesHTML>;
					}
				}
				export module events {
					/**
					 * Test suite that runs all DOM L2 Events tests using the Default LS parser in an alternate configuration Curt Arnold 
					 */
					export class TestDefaultLSAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestDefaultLSAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L2 Events tests using the Oracle Parser for Java in an alternative configuration.
					 */
					export class TestOracleAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestOracleAltConfig>;
					}
					/**
					 * Test suite that runs all DOM L2 Events tests using the Oracle Parser for Java in default configuration.
					 */
					export class TestOracle {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestOracle>;
					}
					export class TestDefaultParser {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestDefaultParser>;
					}
					/**
					 * Test suite that runs all DOM L2 Events tests using the Default LS parser in default configuration. Curt Arnold 
					 */
					export class TestDefaultLS {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestDefaultLS>;
					}
					export class TestXercesAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestXercesAltConfig>;
					}
					export class TestDefaultParserAltConfig {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestDefaultParserAltConfig>;
					}
					export class TestBatik {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestBatik>;
					}
					export class TestXerces {
						constructor();
						static class: java.lang.Class<org.w3c.domts.level2.events.TestXerces>;
					}
				}
			}
			/**
			 * This is a utility implementation of UserDataHandler that captures all notifications
			 */
			export class UserDataMonitor extends java.lang.Object implements org.w3c.dom.IUserDataHandler {
				/**
				 * Public constructor
				 */
				constructor();
				static class: java.lang.Class<org.w3c.domts.UserDataMonitor>;
				/**
				 * Implementation of UserDataHandler.handle. Creates a UserDataNotification for later testing
				 * @param operation 
				 * @param key 
				 * @param data 
				 * @param src 
				 * @param dst 
				 */
				public handle(operation: number, key: string, data: any, src: org.w3c.dom.INode, dst: org.w3c.dom.INode): void;
				/**
				 * Gets list of notifications
				 */
				public getAllNotifications(): java.util.IList<any>;
			}
		}
	}
	export module xml {
		export module sax {
			export module helpers {
				/**
				 * Adapt a SAX1 Parser as a SAX2 XMLReader.
				 */
				export class ParserAdapter extends java.lang.Object implements org.xml.sax.IXMLReader, org.xml.sax.IDocumentHandler {
					/**
					 * Construct a new parser adapter.
					 */
					constructor();
					/**
					 * Construct a new parser adapter.
					 * @param parser The SAX1 parser to embed.
					 */
					constructor(parser: org.xml.sax.IParser);
					static class: java.lang.Class<org.xml.sax.helpers.ParserAdapter>;
					/**
					 * Set a feature flag for the parser.
					 * @param name The feature name, as a complete URI.
					 * @param value The requested feature value.
					 */
					public setFeature(name: string, value: boolean): void;
					/**
					 * Check a parser feature flag.
					 * @param name The feature name, as a complete URI.
					 */
					public getFeature(name: string): boolean;
					/**
					 * Set a parser property.
					 * @param name The property name.
					 * @param value The property value.
					 */
					public setProperty(name: string, value: any): void;
					/**
					 * Get a parser property.
					 * @param name The property name.
					 */
					public getProperty(name: string): any;
					/**
					 * Set the entity resolver.
					 * @param resolver The new entity resolver.
					 */
					public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
					/**
					 * Return the current entity resolver.
					 */
					public getEntityResolver(): org.xml.sax.IEntityResolver;
					/**
					 * Set the DTD handler.
					 * @param handler the new DTD handler
					 */
					public setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
					/**
					 * Return the current DTD handler.
					 */
					public getDTDHandler(): org.xml.sax.IDTDHandler;
					/**
					 * Set the content handler.
					 * @param handler the new content handler
					 */
					public setContentHandler(handler: org.xml.sax.IContentHandler): void;
					/**
					 * Return the current content handler.
					 */
					public getContentHandler(): org.xml.sax.IContentHandler;
					/**
					 * Set the error handler.
					 * @param handler The new error handler.
					 */
					public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
					/**
					 * Return the current error handler.
					 */
					public getErrorHandler(): org.xml.sax.IErrorHandler;
					/**
					 * Parse an XML document.
					 * @param systemId The absolute URL of the document.
					 */
					public parse(systemId: string): void;
					/**
					 * Parse an XML document.
					 * @param input An input source for the document.
					 */
					public parse(input: org.xml.sax.InputSource): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 document locator event.
					 * @param locator A document locator.
					 */
					public setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 start document event.
					 */
					public startDocument(): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 end document event.
					 */
					public endDocument(): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 startElement event.
					 * @param qName The qualified (prefixed) name.
					 * @param qAtts The XML attribute list (with qnames).
					 */
					public startElement(qName: string, qAtts: org.xml.sax.IAttributeList): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 end element event.
					 * @param qName The qualified (prefixed) name.
					 */
					public endElement(qName: string): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 characters event.
					 * @param ch An array of characters.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use.
					 */
					public characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 ignorable whitespace event.
					 * @param ch An array of characters.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use.
					 */
					public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Adapter implementation method; do not call. Adapt a SAX1 processing instruction event.
					 * @param target The processing instruction target.
					 * @param data The remainder of the processing instruction
					 */
					public processingInstruction(target: string, data: string): void;
					/**
					 * Report a non-fatal error.
					 * @param message The error message.
					 */
					reportError(message: string): void;
				}
				export module ParserAdapter {
					/**
					 * Adapt a SAX1 AttributeList as a SAX2 Attributes object.
					 */
					export class AttributeListAdapter extends java.lang.Object implements org.xml.sax.IAttributes {
						static class: java.lang.Class<org.xml.sax.helpers.ParserAdapter.AttributeListAdapter>;
						/**
						 * Set the embedded AttributeList.
						 * @param qAtts The SAX1 attribute list (with qnames).
						 */
						setAttributeList(qAtts: org.xml.sax.IAttributeList): void;
						/**
						 * Return the length of the attribute list.
						 */
						public getLength(): number;
						/**
						 * Return the Namespace URI of the specified attribute.
						 * @param i The attribute's index.
						 */
						public getURI(i: number): string;
						/**
						 * Return the local name of the specified attribute.
						 * @param i The attribute's index.
						 */
						public getLocalName(i: number): string;
						/**
						 * Return the qualified (prefixed) name of the specified attribute.
						 * @param i The attribute's index.
						 */
						public getQName(i: number): string;
						/**
						 * Return the type of the specified attribute.
						 * @param i The attribute's index.
						 */
						public getType(i: number): string;
						/**
						 * Return the value of the specified attribute.
						 * @param i The attribute's index.
						 */
						public getValue(i: number): string;
						/**
						 * Look up an attribute index by Namespace name.
						 * @param uri The Namespace URI or the empty string.
						 * @param localName The local name.
						 */
						public getIndex(uri: string, localName: string): number;
						/**
						 * Look up an attribute index by qualified (prefixed) name.
						 * @param qName The qualified name.
						 */
						public getIndex(qName: string): number;
						/**
						 * Look up the type of an attribute by Namespace name.
						 * @param uri The Namespace URI
						 * @param localName The local name.
						 */
						public getType(uri: string, localName: string): string;
						/**
						 * Look up the type of an attribute by qualified (prefixed) name.
						 * @param qName The qualified name.
						 */
						public getType(qName: string): string;
						/**
						 * Look up the value of an attribute by Namespace name.
						 * @param uri The Namespace URI
						 * @param localName The local name.
						 */
						public getValue(uri: string, localName: string): string;
						/**
						 * Look up the value of an attribute by qualified (prefixed) name.
						 * @param qName The qualified name.
						 */
						public getValue(qName: string): string;
					}
				}
				/**
				 * Default implementation of the Attributes interface.
				 */
				export class AttributesImpl extends java.lang.Object implements org.xml.sax.IAttributes {
					/**
					 * Construct a new, empty AttributesImpl object.
					 */
					constructor();
					/**
					 * Copy an existing Attributes object.
					 * @param atts The existing Attributes object.
					 */
					constructor(atts: org.xml.sax.IAttributes);
					static class: java.lang.Class<org.xml.sax.helpers.AttributesImpl>;
					/**
					 * Return the number of attributes in the list.
					 */
					public getLength(): number;
					/**
					 * Return an attribute's Namespace URI.
					 * @param index The attribute's index (zero-based).
					 */
					public getURI(index: number): string;
					/**
					 * Return an attribute's local name.
					 * @param index The attribute's index (zero-based).
					 */
					public getLocalName(index: number): string;
					/**
					 * Return an attribute's qualified (prefixed) name.
					 * @param index The attribute's index (zero-based).
					 */
					public getQName(index: number): string;
					/**
					 * Return an attribute's type by index.
					 * @param index The attribute's index (zero-based).
					 */
					public getType(index: number): string;
					/**
					 * Return an attribute's value by index.
					 * @param index The attribute's index (zero-based).
					 */
					public getValue(index: number): string;
					/**
					 * Look up an attribute's index by Namespace name.
					 * @param uri The attribute's Namespace URI, or the empty
					 * @param localName The attribute's local name.
					 */
					public getIndex(uri: string, localName: string): number;
					/**
					 * Look up an attribute's index by qualified (prefixed) name.
					 * @param qName The qualified name.
					 */
					public getIndex(qName: string): number;
					/**
					 * Look up an attribute's type by Namespace-qualified name.
					 * @param uri The Namespace URI, or the empty string for a name
					 * @param localName The local name.
					 */
					public getType(uri: string, localName: string): string;
					/**
					 * Look up an attribute's type by qualified (prefixed) name.
					 * @param qName The qualified name.
					 */
					public getType(qName: string): string;
					/**
					 * Look up an attribute's value by Namespace-qualified name.
					 * @param uri The Namespace URI, or the empty string for a name
					 * @param localName The local name.
					 */
					public getValue(uri: string, localName: string): string;
					/**
					 * Look up an attribute's value by qualified (prefixed) name.
					 * @param qName The qualified name.
					 */
					public getValue(qName: string): string;
					/**
					 * Clear the attribute list for reuse.
					 */
					public clear(): void;
					/**
					 * Copy an entire Attributes object.
					 * @param atts The attributes to copy.
					 */
					public setAttributes(atts: org.xml.sax.IAttributes): void;
					/**
					 * Add an attribute to the end of the list.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The local name, or the empty string if
					 * @param qName The qualified (prefixed) name, or the empty string
					 * @param type The attribute type as a string.
					 * @param value The attribute value.
					 */
					public addAttribute(uri: string, localName: string, qName: string, type: string, value: string): void;
					/**
					 * Set an attribute in the list.
					 * @param index The index of the attribute (zero-based).
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The local name, or the empty string if
					 * @param qName The qualified name, or the empty string
					 * @param type The attribute type as a string.
					 * @param value The attribute value.
					 */
					public setAttribute(index: number, uri: string, localName: string, qName: string, type: string, value: string): void;
					/**
					 * Remove an attribute from the list.
					 * @param index The index of the attribute (zero-based).
					 */
					public removeAttribute(index: number): void;
					/**
					 * Set the Namespace URI of a specific attribute.
					 * @param index The index of the attribute (zero-based).
					 * @param uri The attribute's Namespace URI, or the empty
					 */
					public setURI(index: number, uri: string): void;
					/**
					 * Set the local name of a specific attribute.
					 * @param index The index of the attribute (zero-based).
					 * @param localName The attribute's local name, or the empty
					 */
					public setLocalName(index: number, localName: string): void;
					/**
					 * Set the qualified name of a specific attribute.
					 * @param index The index of the attribute (zero-based).
					 * @param qName The attribute's qualified name, or the empty
					 */
					public setQName(index: number, qName: string): void;
					/**
					 * Set the type of a specific attribute.
					 * @param index The index of the attribute (zero-based).
					 * @param type The attribute's type.
					 */
					public setType(index: number, type: string): void;
					/**
					 * Set the value of a specific attribute.
					 * @param index The index of the attribute (zero-based).
					 * @param value The attribute's value.
					 */
					public setValue(index: number, value: string): void;
				}
				/**
				 * Default implementation for AttributeList.
				 */
				export class AttributeListImpl extends java.lang.Object implements org.xml.sax.IAttributeList {
					/**
					 * Create an empty attribute list.
					 */
					constructor();
					/**
					 * Construct a persistent copy of an existing attribute list.
					 * @param atts The attribute list to copy
					 */
					constructor(atts: org.xml.sax.IAttributeList);
					static class: java.lang.Class<org.xml.sax.helpers.AttributeListImpl>;
					/**
					 * Set the attribute list, discarding previous contents.
					 * @param atts The attribute list to copy.
					 */
					public setAttributeList(atts: org.xml.sax.IAttributeList): void;
					/**
					 * Add an attribute to an attribute list.
					 * @param name The attribute name.
					 * @param type The attribute type ("NMTOKEN" for an enumeration).
					 * @param value The attribute value (must not be null).
					 */
					public addAttribute(name: string, type: string, value: string): void;
					/**
					 * Remove an attribute from the list.
					 * @param name The attribute name.
					 */
					public removeAttribute(name: string): void;
					/**
					 * Clear the attribute list.
					 */
					public clear(): void;
					/**
					 * Return the number of attributes in the list.
					 */
					public getLength(): number;
					/**
					 * Get the name of an attribute (by position).
					 * @param i The position of the attribute in the list.
					 */
					public getName(i: number): string;
					/**
					 * Get the type of an attribute (by position).
					 * @param i The position of the attribute in the list.
					 */
					public getType(i: number): string;
					/**
					 * Get the value of an attribute (by position).
					 * @param i The position of the attribute in the list.
					 */
					public getValue(i: number): string;
					/**
					 * Get the type of an attribute (by name).
					 * @param name The attribute name.
					 */
					public getType(name: string): string;
					/**
					 * Get the value of an attribute (by name).
					 * @param name The attribute name.
					 */
					public getValue(name: string): string;
				}
				/**
				 * Base class for deriving an XML filter.
				 */
				export class XMLFilterImpl extends java.lang.Object implements org.xml.sax.IXMLFilter, org.xml.sax.IEntityResolver, org.xml.sax.IDTDHandler, org.xml.sax.IContentHandler, org.xml.sax.IErrorHandler {
					/**
					 * Construct an empty XML filter, with no parent.
					 */
					constructor();
					/**
					 * Construct an XML filter with the specified parent.
					 * @param parent the XML reader from which this filter receives its events.
					 */
					constructor(parent: org.xml.sax.IXMLReader);
					static class: java.lang.Class<org.xml.sax.helpers.XMLFilterImpl>;
					/**
					 * Set the parent reader.
					 * @param parent The parent XML reader.
					 */
					public setParent(parent: org.xml.sax.IXMLReader): void;
					/**
					 * Get the parent reader.
					 */
					public getParent(): org.xml.sax.IXMLReader;
					/**
					 * Set the value of a feature.
					 * @param name The feature name.
					 * @param value The requested feature value.
					 */
					public setFeature(name: string, value: boolean): void;
					/**
					 * Look up the value of a feature.
					 * @param name The feature name.
					 */
					public getFeature(name: string): boolean;
					/**
					 * Set the value of a property.
					 * @param name The property name.
					 * @param value The requested property value.
					 */
					public setProperty(name: string, value: any): void;
					/**
					 * Look up the value of a property.
					 * @param name The property name.
					 */
					public getProperty(name: string): any;
					/**
					 * Set the entity resolver.
					 * @param resolver The new entity resolver.
					 */
					public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
					/**
					 * Get the current entity resolver.
					 */
					public getEntityResolver(): org.xml.sax.IEntityResolver;
					/**
					 * Set the DTD event handler.
					 * @param handler the new DTD handler
					 */
					public setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
					/**
					 * Get the current DTD event handler.
					 */
					public getDTDHandler(): org.xml.sax.IDTDHandler;
					/**
					 * Set the content event handler.
					 * @param handler the new content handler
					 */
					public setContentHandler(handler: org.xml.sax.IContentHandler): void;
					/**
					 * Get the content event handler.
					 */
					public getContentHandler(): org.xml.sax.IContentHandler;
					/**
					 * Set the error event handler.
					 * @param handler the new error handler
					 */
					public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
					/**
					 * Get the current error event handler.
					 */
					public getErrorHandler(): org.xml.sax.IErrorHandler;
					/**
					 * Parse a document.
					 * @param input The input source for the document entity.
					 */
					public parse(input: org.xml.sax.InputSource): void;
					/**
					 * Parse a document.
					 * @param systemId The system identifier as a fully-qualified URI.
					 */
					public parse(systemId: string): void;
					/**
					 * Filter an external entity resolution.
					 * @param publicId The entity's public identifier, or null.
					 * @param systemId The entity's system identifier.
					 */
					public resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
					/**
					 * Filter a notation declaration event.
					 * @param name The notation name.
					 * @param publicId The notation's public identifier, or null.
					 * @param systemId The notation's system identifier, or null.
					 */
					public notationDecl(name: string, publicId: string, systemId: string): void;
					/**
					 * Filter an unparsed entity declaration event.
					 * @param name The entity name.
					 * @param publicId The entity's public identifier, or null.
					 * @param systemId The entity's system identifier, or null.
					 * @param notationName The name of the associated notation.
					 */
					public unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
					/**
					 * Filter a new document locator event.
					 * @param locator The document locator.
					 */
					public setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Filter a start document event.
					 */
					public startDocument(): void;
					/**
					 * Filter an end document event.
					 */
					public endDocument(): void;
					/**
					 * Filter a start Namespace prefix mapping event.
					 * @param prefix The Namespace prefix.
					 * @param uri The Namespace URI.
					 */
					public startPrefixMapping(prefix: string, uri: string): void;
					/**
					 * Filter an end Namespace prefix mapping event.
					 * @param prefix The Namespace prefix.
					 */
					public endPrefixMapping(prefix: string): void;
					/**
					 * Filter a start element event.
					 * @param uri The element's Namespace URI, or the empty string.
					 * @param localName The element's local name, or the empty string.
					 * @param qName The element's qualified (prefixed) name, or the empty
					 * @param atts The element's attributes.
					 */
					public startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
					/**
					 * Filter an end element event.
					 * @param uri The element's Namespace URI, or the empty string.
					 * @param localName The element's local name, or the empty string.
					 * @param qName The element's qualified (prefixed) name, or the empty
					 */
					public endElement(uri: string, localName: string, qName: string): void;
					/**
					 * Filter a character data event.
					 * @param ch An array of characters.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use from the array.
					 */
					public characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Filter an ignorable whitespace event.
					 * @param ch An array of characters.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use from the array.
					 */
					public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Filter a processing instruction event.
					 * @param target The processing instruction target.
					 * @param data The text following the target.
					 */
					public processingInstruction(target: string, data: string): void;
					/**
					 * Filter a skipped entity event.
					 * @param name The name of the skipped entity.
					 */
					public skippedEntity(name: string): void;
					/**
					 * Filter a warning event.
					 * @param e The warning as an exception.
					 */
					public warning(e: org.xml.sax.SAXParseException): void;
					/**
					 * Filter an error event.
					 * @param e The error as an exception.
					 */
					public error(e: org.xml.sax.SAXParseException): void;
					/**
					 * Filter a fatal error event.
					 * @param e The error as an exception.
					 */
					public fatalError(e: org.xml.sax.SAXParseException): void;
				}
				/**
				 * Adapt a SAX2 XMLReader as a SAX1 Parser.
				 */
				export class XMLReaderAdapter extends java.lang.Object implements org.xml.sax.IParser, org.xml.sax.IContentHandler {
					/**
					 * Create a new adapter.
					 */
					constructor();
					/**
					 * Create a new adapter.
					 * @param xmlReader The SAX2 XMLReader to wrap.
					 */
					constructor(xmlReader: org.xml.sax.IXMLReader);
					static class: java.lang.Class<org.xml.sax.helpers.XMLReaderAdapter>;
					/**
					 * Set the locale for error reporting.
					 * @param locale the locale for error reporting.
					 */
					public setLocale(locale: java.util.Locale): void;
					/**
					 * Register the entity resolver.
					 * @param resolver The new resolver.
					 */
					public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
					/**
					 * Register the DTD event handler.
					 * @param handler The new DTD event handler.
					 */
					public setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
					/**
					 * Register the SAX1 document event handler.
					 * @param handler The new SAX1 document event handler.
					 */
					public setDocumentHandler(handler: org.xml.sax.IDocumentHandler): void;
					/**
					 * Register the error event handler.
					 * @param handler The new error event handler.
					 */
					public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
					/**
					 * Parse the document.
					 * @param systemId The absolute URL of the document.
					 */
					public parse(systemId: string): void;
					/**
					 * Parse the document.
					 * @param input An input source for the document.
					 */
					public parse(input: org.xml.sax.InputSource): void;
					/**
					 * Set a document locator.
					 * @param locator The document locator.
					 */
					public setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Start document event.
					 */
					public startDocument(): void;
					/**
					 * End document event.
					 */
					public endDocument(): void;
					/**
					 * Adapt a SAX2 start prefix mapping event.
					 * @param prefix The prefix being mapped.
					 * @param uri The Namespace URI being mapped to.
					 */
					public startPrefixMapping(prefix: string, uri: string): void;
					/**
					 * Adapt a SAX2 end prefix mapping event.
					 * @param prefix The prefix being mapped.
					 */
					public endPrefixMapping(prefix: string): void;
					/**
					 * Adapt a SAX2 start element event.
					 * @param uri The Namespace URI.
					 * @param localName The Namespace local name.
					 * @param qName The qualified (prefixed) name.
					 * @param atts The SAX2 attributes.
					 */
					public startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
					/**
					 * Adapt a SAX2 end element event.
					 * @param uri The Namespace URI.
					 * @param localName The Namespace local name.
					 * @param qName The qualified (prefixed) name.
					 */
					public endElement(uri: string, localName: string, qName: string): void;
					/**
					 * Adapt a SAX2 characters event.
					 * @param ch An array of characters.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use.
					 */
					public characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Adapt a SAX2 ignorable whitespace event.
					 * @param ch An array of characters.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use.
					 */
					public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Adapt a SAX2 processing instruction event.
					 * @param target The processing instruction target.
					 * @param data The remainder of the processing instruction
					 */
					public processingInstruction(target: string, data: string): void;
					/**
					 * Adapt a SAX2 skipped entity event.
					 * @param name The name of the skipped entity.
					 */
					public skippedEntity(name: string): void;
				}
				export module XMLReaderAdapter {
					/**
					 * Internal class to wrap a SAX2 Attributes object for SAX1.
					 */
					export class AttributesAdapter extends java.lang.Object implements org.xml.sax.IAttributeList {
						static class: java.lang.Class<org.xml.sax.helpers.XMLReaderAdapter.AttributesAdapter>;
						/**
						 * Set the embedded Attributes object.
						 * @param attributes The embedded SAX2 Attributes.
						 */
						setAttributes(attributes: org.xml.sax.IAttributes): void;
						/**
						 * Return the number of attributes.
						 */
						public getLength(): number;
						/**
						 * Return the qualified (prefixed) name of an attribute by position.
						 */
						public getName(i: number): string;
						/**
						 * Return the type of an attribute by position.
						 */
						public getType(i: number): string;
						/**
						 * Return the value of an attribute by position.
						 */
						public getValue(i: number): string;
						/**
						 * Return the type of an attribute by qualified (prefixed) name.
						 */
						public getType(qName: string): string;
						/**
						 * Return the value of an attribute by qualified (prefixed) name.
						 */
						public getValue(qName: string): string;
					}
				}
				/**
				 * Encapsulate Namespace logic for use by applications using SAX, or internally by SAX drivers.
				 */
				export class NamespaceSupport extends java.lang.Object {
					/**
					 * Create a new Namespace support object.
					 */
					constructor();
					/**
					 * The XML Namespace URI as a constant. The value is <code>http://www.w3.org/XML/1998/namespace</code> as defined in the "Namespaces in XML" * recommendation.
					 */
					static XMLNS: string;
					/**
					 * The namespace declaration URI as a constant. The value is <code>http://www.w3.org/xmlns/2000/</code>, as defined in a backwards-incompatible erratum to the "Namespaces in XML" recommendation. Because that erratum postdated SAX2, SAX2 defaults to the original recommendation, and does not normally use this URI.
					 */
					static NSDECL: string;
					static class: java.lang.Class<org.xml.sax.helpers.NamespaceSupport>;
					/**
					 * Reset this Namespace support object for reuse.
					 */
					public reset(): void;
					/**
					 * Start a new Namespace context. The new context will automatically inherit the declarations of its parent context, but it will also keep track of which declarations were made within this context.
					 */
					public pushContext(): void;
					/**
					 * Revert to the previous Namespace context.
					 */
					public popContext(): void;
					/**
					 * Declare a Namespace prefix. All prefixes must be declared before they are referenced. For example, a SAX driver (parser) would scan an element's attributes in two passes: first for namespace declarations, then a second pass using #processName processName() to interpret prefixes against (potentially redefined) prefixes.
					 * @param prefix The prefix to declare, or the empty string to
					 * @param uri The Namespace URI to associate with the prefix.
					 */
					public declarePrefix(prefix: string, uri: string): boolean;
					/**
					 * Process a raw XML qualified name, after all declarations in the current context have been handled by #declarePrefix declarePrefix().
					 * @param qName The XML qualified name to be processed.
					 * @param parts An array supplied by the caller, capable of
					 * @param isAttribute A flag indicating whether this is an
					 */
					public processName(qName: string, parts: native.Array<string>, isAttribute: boolean): native.Array<string>;
					/**
					 * Look up a prefix and get the currently-mapped Namespace URI.
					 * @param prefix The prefix to look up.
					 */
					public getURI(prefix: string): string;
					/**
					 * Return an enumeration of all prefixes whose declarations are active in the current context. This includes declarations from parent contexts that have not been overridden.
					 */
					public getPrefixes(): java.util.IEnumeration<any>;
					/**
					 * Return one of the prefixes mapped to a Namespace URI.
					 * @param uri the namespace URI
					 */
					public getPrefix(uri: string): string;
					/**
					 * Return an enumeration of all prefixes for a given URI whose declarations are active in the current context. This includes declarations from parent contexts that have not been overridden.
					 * @param uri The Namespace URI.
					 */
					public getPrefixes(uri: string): java.util.IEnumeration<any>;
					/**
					 * Return an enumeration of all prefixes declared in this context.
					 */
					public getDeclaredPrefixes(): java.util.IEnumeration<any>;
					/**
					 * Controls whether namespace declaration attributes are placed into the #NSDECL NSDECL namespace by #processName processName(). This may only be changed before any contexts have been pushed.
					 * @param value the namespace declaration attribute state. A value of true
					 */
					public setNamespaceDeclUris(value: boolean): void;
					/**
					 * Returns true if namespace declaration attributes are placed into a namespace. This behavior is not the default.
					 */
					public isNamespaceDeclUris(): boolean;
				}
				export module NamespaceSupport {
					/**
					 * Internal class for a single Namespace context.
					 */
					export class Context extends java.lang.Object {
						static class: java.lang.Class<org.xml.sax.helpers.NamespaceSupport.Context>;
						/**
						 * (Re)set the parent of this Namespace context. The context must either have been freshly constructed, or must have been cleared.
						 * @param parent context The parent Namespace context object.
						 */
						setParent(parent: org.xml.sax.helpers.NamespaceSupport.Context): void;
						/**
						 * Makes associated state become collectible, invalidating this context. #setParent must be called before this context may be used again.
						 */
						clear(): void;
						/**
						 * Declare a Namespace prefix for this context.
						 * @param prefix The prefix to declare.
						 * @param uri The associated Namespace URI.
						 */
						declarePrefix(prefix: string, uri: string): void;
						/**
						 * Process an XML qualified name in this context.
						 * @param qName The XML qualified name.
						 * @param isAttribute true if this is an attribute name.
						 */
						processName(qName: string, isAttribute: boolean): native.Array<string>;
						/**
						 * Look up the URI associated with a prefix in this context.
						 * @param prefix The prefix to look up.
						 */
						getURI(prefix: string): string;
						/**
						 * Look up one of the prefixes associated with a URI in this context.
						 * @param uri The URI to look up.
						 */
						getPrefix(uri: string): string;
						/**
						 * Return an enumeration of prefixes declared in this context.
						 */
						getDeclaredPrefixes(): java.util.IEnumeration<any>;
						/**
						 * Return an enumeration of all prefixes currently in force.
						 */
						getPrefixes(): java.util.IEnumeration<any>;
					}
				}
				/**
				 * Provide an optional convenience implementation of Locator.
				 */
				export class LocatorImpl extends java.lang.Object implements org.xml.sax.ILocator {
					/**
					 * Zero-argument constructor.
					 */
					constructor();
					/**
					 * Copy constructor.
					 * @param locator The locator to copy.
					 */
					constructor(locator: org.xml.sax.ILocator);
					static class: java.lang.Class<org.xml.sax.helpers.LocatorImpl>;
					/**
					 * Return the saved public identifier.
					 */
					public getPublicId(): string;
					/**
					 * Return the saved system identifier.
					 */
					public getSystemId(): string;
					/**
					 * Return the saved line number (1-based).
					 */
					public getLineNumber(): number;
					/**
					 * Return the saved column number (1-based).
					 */
					public getColumnNumber(): number;
					/**
					 * Set the public identifier for this locator.
					 * @param publicId The new public identifier, or null
					 */
					public setPublicId(publicId: string): void;
					/**
					 * Set the system identifier for this locator.
					 * @param systemId The new system identifier, or null
					 */
					public setSystemId(systemId: string): void;
					/**
					 * Set the line number for this locator (1-based).
					 * @param lineNumber The line number, or -1 if none is available.
					 */
					public setLineNumber(lineNumber: number): void;
					/**
					 * Set the column number for this locator (1-based).
					 * @param columnNumber The column number, or -1 if none is available.
					 */
					public setColumnNumber(columnNumber: number): void;
				}
				/**
				 * Factory for creating an XML reader.
				 */
				export class XMLReaderFactory extends java.lang.Object {
					static class: java.lang.Class<org.xml.sax.helpers.XMLReaderFactory>;
					/**
					 * Attempt to create an XMLReader from system defaults. In environments which can support it, the name of the XMLReader class is determined by trying each these options in order, and using the first one which succeeds:</p> <ul>
					 */
					public static createXMLReader(): org.xml.sax.IXMLReader;
					/**
					 * Attempt to create an XML reader from a class name.
					 * @param className the name of the class that should be instantiated.
					 */
					public static createXMLReader(className: string): org.xml.sax.IXMLReader;
				}
				/**
				 * Java-specific class for dynamically loading SAX parsers.
				 */
				export class ParserFactory extends java.lang.Object {
					static class: java.lang.Class<org.xml.sax.helpers.ParserFactory>;
					/**
					 * Create a new SAX parser using the `org.xml.sax.parser' system property.
					 */
					public static makeParser(): org.xml.sax.IParser;
					/**
					 * Create a new SAX parser object using the class name provided.
					 * @param className A string containing the name of the
					 */
					public static makeParser(className: string): org.xml.sax.IParser;
				}
				/**
				 * Create a new instance of a class by name.
				 */
				export class NewInstance extends java.lang.Object {
					static class: java.lang.Class<org.xml.sax.helpers.NewInstance>;
					/**
					 * Creates a new instance of the specified class name
					 */
					static newInstance(classLoader: java.lang.ClassLoader, className: string): any;
					/**
					 * Figure out which ClassLoader to use. For JDK 1.2 and later use the context ClassLoader.
					 */
					static getClassLoader(): java.lang.ClassLoader;
				}
				/**
				 * Default base class for SAX2 event handlers.
				 */
				export class DefaultHandler extends java.lang.Object implements org.xml.sax.IEntityResolver, org.xml.sax.IDTDHandler, org.xml.sax.IContentHandler, org.xml.sax.IErrorHandler {
					constructor();
					static class: java.lang.Class<org.xml.sax.helpers.DefaultHandler>;
					/**
					 * Resolve an external entity.
					 * @param publicId The public identifer, or null if none is
					 * @param systemId The system identifier provided in the XML
					 */
					public resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
					/**
					 * Receive notification of a notation declaration.
					 * @param name The notation name.
					 * @param publicId The notation public identifier, or null if not
					 * @param systemId The notation system identifier.
					 */
					public notationDecl(name: string, publicId: string, systemId: string): void;
					/**
					 * Receive notification of an unparsed entity declaration.
					 * @param name The entity name.
					 * @param publicId The entity public identifier, or null if not
					 * @param systemId The entity system identifier.
					 * @param notationName The name of the associated notation.
					 */
					public unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
					/**
					 * Receive a Locator object for document events.
					 * @param locator A locator for all SAX document events.
					 */
					public setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Receive notification of the beginning of the document.
					 */
					public startDocument(): void;
					/**
					 * Receive notification of the end of the document.
					 */
					public endDocument(): void;
					/**
					 * Receive notification of the start of a Namespace mapping.
					 * @param prefix The Namespace prefix being declared.
					 * @param uri The Namespace URI mapped to the prefix.
					 */
					public startPrefixMapping(prefix: string, uri: string): void;
					/**
					 * Receive notification of the end of a Namespace mapping.
					 * @param prefix The Namespace prefix being declared.
					 */
					public endPrefixMapping(prefix: string): void;
					/**
					 * Receive notification of the start of an element.
					 * @param uri The Namespace URI, or the empty string if the
					 * @param localName The local name (without prefix), or the
					 * @param qName The qualified name (with prefix), or the
					 * @param attributes The attributes attached to the element. If
					 */
					public startElement(uri: string, localName: string, qName: string, attributes: org.xml.sax.IAttributes): void;
					/**
					 * Receive notification of the end of an element.
					 * @param uri The Namespace URI, or the empty string if the
					 * @param localName The local name (without prefix), or the
					 * @param qName The qualified name (with prefix), or the
					 */
					public endElement(uri: string, localName: string, qName: string): void;
					/**
					 * Receive notification of character data inside an element.
					 * @param ch The characters.
					 * @param start The start position in the character array.
					 * @param length The number of characters to use from the
					 */
					public characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of ignorable whitespace in element content.
					 * @param ch The whitespace characters.
					 * @param start The start position in the character array.
					 * @param length The number of characters to use from the
					 */
					public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of a processing instruction.
					 * @param target The processing instruction target.
					 * @param data The processing instruction data, or null if
					 */
					public processingInstruction(target: string, data: string): void;
					/**
					 * Receive notification of a skipped entity.
					 * @param name The name of the skipped entity.
					 */
					public skippedEntity(name: string): void;
					/**
					 * Receive notification of a parser warning.
					 * @param e The warning information encoded as an exception.
					 */
					public warning(e: org.xml.sax.SAXParseException): void;
					/**
					 * Receive notification of a recoverable parser error.
					 * @param e The warning information encoded as an exception.
					 */
					public error(e: org.xml.sax.SAXParseException): void;
					/**
					 * Report a fatal XML parsing error.
					 * @param e The error information encoded as an exception.
					 */
					public fatalError(e: org.xml.sax.SAXParseException): void;
				}
			}
			/**
			 * A single input source for an XML entity.
			 */
			export class InputSource extends java.lang.Object {
				/**
				 * Zero-argument default constructor.
				 */
				constructor();
				/**
				 * Create a new input source with a system identifier.
				 * @param systemId The system identifier (URI).
				 */
				constructor(systemId: string);
				/**
				 * Create a new input source with a byte stream.
				 * @param byteStream The raw byte stream containing the document.
				 */
				constructor(byteStream: java.io.InputStream);
				/**
				 * Create a new input source with a character stream.
				 * @param characterStream The raw character stream containing the document.
				 */
				constructor(characterStream: java.io.Reader);
				static class: java.lang.Class<org.xml.sax.InputSource>;
				/**
				 * Set the public identifier for this input source.
				 * @param publicId The public identifier as a string.
				 */
				public setPublicId(publicId: string): void;
				/**
				 * Get the public identifier for this input source.
				 */
				public getPublicId(): string;
				/**
				 * Set the system identifier for this input source.
				 * @param systemId The system identifier as a string.
				 */
				public setSystemId(systemId: string): void;
				/**
				 * Get the system identifier for this input source.
				 */
				public getSystemId(): string;
				/**
				 * Set the byte stream for this input source.
				 * @param byteStream A byte stream containing an XML document or
				 */
				public setByteStream(byteStream: java.io.InputStream): void;
				/**
				 * Get the byte stream for this input source.
				 */
				public getByteStream(): java.io.InputStream;
				/**
				 * Set the character encoding, if known.
				 * @param encoding A string describing the character encoding.
				 */
				public setEncoding(encoding: string): void;
				/**
				 * Get the character encoding for a byte stream or URI. This value will be ignored when the application provides a character stream.
				 */
				public getEncoding(): string;
				/**
				 * Set the character stream for this input source.
				 * @param characterStream The character stream containing the
				 */
				public setCharacterStream(characterStream: java.io.Reader): void;
				/**
				 * Get the character stream for this input source.
				 */
				public getCharacterStream(): java.io.Reader;
			}
			/**
			 * Interface for reading an XML document using callbacks.
			 */
			interface IXMLReader {
				/**
				 * Look up the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 */
				getFeature(name: string): boolean;
				/**
				 * Set the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 * @param value The requested value of the feature (true or false).
				 */
				setFeature(name: string, value: boolean): void;
				/**
				 * Look up the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 */
				getProperty(name: string): any;
				/**
				 * Set the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 * @param value The requested value for the property.
				 */
				setProperty(name: string, value: any): void;
				/**
				 * Allow an application to register an entity resolver.
				 * @param resolver The entity resolver.
				 */
				setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
				/**
				 * Return the current entity resolver.
				 */
				getEntityResolver(): org.xml.sax.IEntityResolver;
				/**
				 * Allow an application to register a DTD event handler.
				 * @param handler The DTD handler.
				 */
				setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
				/**
				 * Return the current DTD handler.
				 */
				getDTDHandler(): org.xml.sax.IDTDHandler;
				/**
				 * Allow an application to register a content event handler.
				 * @param handler The content handler.
				 */
				setContentHandler(handler: org.xml.sax.IContentHandler): void;
				/**
				 * Return the current content handler.
				 */
				getContentHandler(): org.xml.sax.IContentHandler;
				/**
				 * Allow an application to register an error event handler.
				 * @param handler The error handler.
				 */
				setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
				/**
				 * Return the current error handler.
				 */
				getErrorHandler(): org.xml.sax.IErrorHandler;
				/**
				 * Parse an XML document.
				 * @param input The input source for the top-level of the
				 */
				parse(input: org.xml.sax.InputSource): void;
				/**
				 * Parse an XML document from a system identifier (URI).
				 * @param systemId The system identifier (URI).
				 */
				parse(systemId: string): void;
			}
			/**
			 * Interface for an element's attribute specifications.
			 */
			export class AttributeList implements org.xml.sax.IAttributeList {
				constructor(implementation: org.xml.sax.IAttributeList);
				/**
				 * Return the number of attributes in this list.
				 */
				public getLength(): number;
				/**
				 * Return the name of an attribute in this list (by position).
				 * @param i The index of the attribute in the list (starting at 0).
				 */
				public getName(i: number): string;
				/**
				 * Return the type of an attribute in the list (by position).
				 * @param i The index of the attribute in the list (starting at 0).
				 */
				public getType(i: number): string;
				/**
				 * Return the value of an attribute in the list (by position).
				 * @param i The index of the attribute in the list (starting at 0).
				 */
				public getValue(i: number): string;
				/**
				 * Return the type of an attribute in the list (by name).
				 * @param name The name of the attribute.
				 */
				public getType(name: string): string;
				/**
				 * Return the value of an attribute in the list (by name).
				 * @param name the name of the attribute to return
				 */
				public getValue(name: string): string;
			}
			/**
			 * Interface for an XML filter.
			 */
			export class XMLFilter implements org.xml.sax.IXMLReader, org.xml.sax.IXMLFilter {
				constructor(implementation: org.xml.sax.IXMLFilter);
				/**
				 * Set the parent reader.
				 * @param parent The parent reader.
				 */
				public setParent(parent: org.xml.sax.IXMLReader): void;
				/**
				 * Get the parent reader.
				 */
				public getParent(): org.xml.sax.IXMLReader;
				/**
				 * Look up the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 */
				getFeature(name: string): boolean;
				/**
				 * Set the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 * @param value The requested value of the feature (true or false).
				 */
				setFeature(name: string, value: boolean): void;
				/**
				 * Look up the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 */
				getProperty(name: string): any;
				/**
				 * Set the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 * @param value The requested value for the property.
				 */
				setProperty(name: string, value: any): void;
				/**
				 * Allow an application to register an entity resolver.
				 * @param resolver The entity resolver.
				 */
				setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
				/**
				 * Return the current entity resolver.
				 */
				getEntityResolver(): org.xml.sax.IEntityResolver;
				/**
				 * Allow an application to register a DTD event handler.
				 * @param handler The DTD handler.
				 */
				setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
				/**
				 * Return the current DTD handler.
				 */
				getDTDHandler(): org.xml.sax.IDTDHandler;
				/**
				 * Allow an application to register a content event handler.
				 * @param handler The content handler.
				 */
				setContentHandler(handler: org.xml.sax.IContentHandler): void;
				/**
				 * Return the current content handler.
				 */
				getContentHandler(): org.xml.sax.IContentHandler;
				/**
				 * Allow an application to register an error event handler.
				 * @param handler The error handler.
				 */
				setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
				/**
				 * Return the current error handler.
				 */
				getErrorHandler(): org.xml.sax.IErrorHandler;
				/**
				 * Parse an XML document.
				 * @param input The input source for the top-level of the
				 */
				parse(input: org.xml.sax.InputSource): void;
				/**
				 * Parse an XML document from a system identifier (URI).
				 * @param systemId The system identifier (URI).
				 */
				parse(systemId: string): void;
			}
			/**
			 * Interface for a list of XML attributes.
			 */
			export class Attributes implements org.xml.sax.IAttributes {
				constructor(implementation: org.xml.sax.IAttributes);
				/**
				 * Return the number of attributes in the list.
				 */
				public getLength(): number;
				/**
				 * Look up an attribute's Namespace URI by index.
				 * @param index The attribute index (zero-based).
				 */
				public getURI(index: number): string;
				/**
				 * Look up an attribute's local name by index.
				 * @param index The attribute index (zero-based).
				 */
				public getLocalName(index: number): string;
				/**
				 * Look up an attribute's XML qualified (prefixed) name by index.
				 * @param index The attribute index (zero-based).
				 */
				public getQName(index: number): string;
				/**
				 * Look up an attribute's type by index.
				 * @param index The attribute index (zero-based).
				 */
				public getType(index: number): string;
				/**
				 * Look up an attribute's value by index.
				 * @param index The attribute index (zero-based).
				 */
				public getValue(index: number): string;
				/**
				 * Look up the index of an attribute by Namespace name.
				 * @param uri The Namespace URI, or the empty string if
				 * @param localName The attribute's local name.
				 */
				public getIndex(uri: string, localName: string): number;
				/**
				 * Look up the index of an attribute by XML qualified (prefixed) name.
				 * @param qName The qualified (prefixed) name.
				 */
				public getIndex(qName: string): number;
				/**
				 * Look up an attribute's type by Namespace name.
				 * @param uri The Namespace URI, or the empty String if the
				 * @param localName The local name of the attribute.
				 */
				public getType(uri: string, localName: string): string;
				/**
				 * Look up an attribute's type by XML qualified (prefixed) name.
				 * @param qName The XML qualified name.
				 */
				public getType(qName: string): string;
				/**
				 * Look up an attribute's value by Namespace name.
				 * @param uri The Namespace URI, or the empty String if the
				 * @param localName The local name of the attribute.
				 */
				public getValue(uri: string, localName: string): string;
				/**
				 * Look up an attribute's value by XML qualified (prefixed) name.
				 * @param qName The XML qualified name.
				 */
				public getValue(qName: string): string;
			}
			/**
			 * Exception class for an unrecognized identifier.
			 */
			export class SAXNotRecognizedException extends org.xml.sax.SAXException {
				/**
				 * Default constructor.
				 */
				constructor();
				/**
				 * Construct a new exception with the given message.
				 * @param message The text message of the exception.
				 */
				constructor(message: string);
				static class: java.lang.Class<org.xml.sax.SAXNotRecognizedException>;
			}
			/**
			 * Basic interface for SAX error handlers.
			 */
			interface IErrorHandler {
				/**
				 * Receive notification of a warning.
				 * @param exception The warning information encapsulated in a
				 */
				warning(exception: org.xml.sax.SAXParseException): void;
				/**
				 * Receive notification of a recoverable error.
				 * @param exception The error information encapsulated in a
				 */
				error(exception: org.xml.sax.SAXParseException): void;
				/**
				 * Receive notification of a non-recoverable error.
				 * @param exception The error information encapsulated in a
				 */
				fatalError(exception: org.xml.sax.SAXParseException): void;
			}
			/**
			 * Receive notification of the logical content of a document.
			 */
			export class ContentHandler implements org.xml.sax.IContentHandler {
				constructor(implementation: org.xml.sax.IContentHandler);
				/**
				 * Receive an object for locating the origin of SAX document events.
				 * @param locator an object that can return the location of
				 */
				public setDocumentLocator(locator: org.xml.sax.ILocator): void;
				/**
				 * Receive notification of the beginning of a document.
				 */
				public startDocument(): void;
				/**
				 * Receive notification of the end of a document.
				 */
				public endDocument(): void;
				/**
				 * Begin the scope of a prefix-URI Namespace mapping.
				 * @param prefix the Namespace prefix being declared.
				 * @param uri the Namespace URI the prefix is mapped to
				 */
				public startPrefixMapping(prefix: string, uri: string): void;
				/**
				 * End the scope of a prefix-URI mapping.
				 * @param prefix the prefix that was being mapped.
				 */
				public endPrefixMapping(prefix: string): void;
				/**
				 * Receive notification of the beginning of an element.
				 * @param uri the Namespace URI, or the empty string if the
				 * @param localName the local name (without prefix), or the
				 * @param qName the qualified name (with prefix), or the
				 * @param atts the attributes attached to the element. If
				 */
				public startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
				/**
				 * Receive notification of the end of an element.
				 * @param uri the Namespace URI, or the empty string if the
				 * @param localName the local name (without prefix), or the
				 * @param qName the qualified XML name (with prefix), or the
				 */
				public endElement(uri: string, localName: string, qName: string): void;
				/**
				 * Receive notification of character data.
				 * @param ch the characters from the XML document
				 * @param start the start position in the array
				 * @param length the number of characters to read from the array
				 */
				public characters(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of ignorable whitespace in element content.
				 * @param ch the characters from the XML document
				 * @param start the start position in the array
				 * @param length the number of characters to read from the array
				 */
				public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of a processing instruction.
				 * @param target the processing instruction target
				 * @param data the processing instruction data, or null if
				 */
				public processingInstruction(target: string, data: string): void;
				/**
				 * Receive notification of a skipped entity. This is not called for entity references within markup constructs such as element start tags or markup declarations. (The XML recommendation requires reporting skipped external entities. SAX also reports internal entity expansion/non-expansion, except within markup constructs.)
				 * @param name the name of the skipped entity. If it is a
				 */
				public skippedEntity(name: string): void;
			}
			/**
			 * Encapsulate a general SAX error or warning.
			 */
			export class SAXException extends java.lang.Exception {
				/**
				 * Create a new SAXException.
				 */
				constructor();
				/**
				 * Create a new SAXException.
				 * @param message The error or warning message.
				 */
				constructor(message: string);
				/**
				 * Create a new SAXException wrapping an existing exception.
				 * @param e The exception to be wrapped in a SAXException.
				 */
				constructor(e: java.lang.Exception);
				/**
				 * Create a new SAXException from an existing exception.
				 * @param message The detail message.
				 * @param e The exception to be wrapped in a SAXException.
				 */
				constructor(message: string, e: java.lang.Exception);
				static class: java.lang.Class<org.xml.sax.SAXException>;
				/**
				 * Return a detail message for this exception.
				 */
				public getMessage(): string;
				/**
				 * Return the embedded exception, if any.
				 */
				public getException(): java.lang.Exception;
				/**
				 * Override toString to pick up any embedded exception.
				 */
				public toString(): string;
			}
			/**
			 * Interface for associating a SAX event with a document location.
			 */
			export class Locator implements org.xml.sax.ILocator {
				constructor(implementation: org.xml.sax.ILocator);
				/**
				 * Return the public identifier for the current document event.
				 */
				public getPublicId(): string;
				/**
				 * Return the system identifier for the current document event.
				 */
				public getSystemId(): string;
				/**
				 * Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.
				 */
				public getLineNumber(): number;
				/**
				 * Return the column number where the current document event ends. This is one-based number of Java <code>char</code> values since the last line end.
				 */
				public getColumnNumber(): number;
			}
			/**
			 * Receive notification of general document events.
			 */
			interface IDocumentHandler {
				/**
				 * Receive an object for locating the origin of SAX document events.
				 * @param locator An object that can return the location of
				 */
				setDocumentLocator(locator: org.xml.sax.ILocator): void;
				/**
				 * Receive notification of the beginning of a document.
				 */
				startDocument(): void;
				/**
				 * Receive notification of the end of a document.
				 */
				endDocument(): void;
				/**
				 * Receive notification of the beginning of an element.
				 * @param name The element type name.
				 * @param atts The attributes attached to the element, if any.
				 */
				startElement(name: string, atts: org.xml.sax.IAttributeList): void;
				/**
				 * Receive notification of the end of an element.
				 * @param name The element type name
				 */
				endElement(name: string): void;
				/**
				 * Receive notification of character data.
				 * @param ch The characters from the XML document.
				 * @param start The start position in the array.
				 * @param length The number of characters to read from the array.
				 */
				characters(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of ignorable whitespace in element content.
				 * @param ch The characters from the XML document.
				 * @param start The start position in the array.
				 * @param length The number of characters to read from the array.
				 */
				ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of a processing instruction.
				 * @param target The processing instruction target.
				 * @param data The processing instruction data, or null if
				 */
				processingInstruction(target: string, data: string): void;
			}
			/**
			 * Receive notification of general document events.
			 */
			export class DocumentHandler implements org.xml.sax.IDocumentHandler {
				constructor(implementation: org.xml.sax.IDocumentHandler);
				/**
				 * Receive an object for locating the origin of SAX document events.
				 * @param locator An object that can return the location of
				 */
				public setDocumentLocator(locator: org.xml.sax.ILocator): void;
				/**
				 * Receive notification of the beginning of a document.
				 */
				public startDocument(): void;
				/**
				 * Receive notification of the end of a document.
				 */
				public endDocument(): void;
				/**
				 * Receive notification of the beginning of an element.
				 * @param name The element type name.
				 * @param atts The attributes attached to the element, if any.
				 */
				public startElement(name: string, atts: org.xml.sax.IAttributeList): void;
				/**
				 * Receive notification of the end of an element.
				 * @param name The element type name
				 */
				public endElement(name: string): void;
				/**
				 * Receive notification of character data.
				 * @param ch The characters from the XML document.
				 * @param start The start position in the array.
				 * @param length The number of characters to read from the array.
				 */
				public characters(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of ignorable whitespace in element content.
				 * @param ch The characters from the XML document.
				 * @param start The start position in the array.
				 * @param length The number of characters to read from the array.
				 */
				public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of a processing instruction.
				 * @param target The processing instruction target.
				 * @param data The processing instruction data, or null if
				 */
				public processingInstruction(target: string, data: string): void;
			}
			/**
			 * Encapsulate an XML parse error or warning.
			 */
			export class SAXParseException extends org.xml.sax.SAXException {
				/**
				 * Create a new SAXParseException from a message and a Locator.
				 * @param message The error or warning message.
				 * @param locator The locator object for the error or warning (may be
				 */
				constructor(message: string, locator: org.xml.sax.ILocator);
				/**
				 * Wrap an existing exception in a SAXParseException.
				 * @param message The error or warning message, or null to
				 * @param locator The locator object for the error or warning (may be
				 * @param e Any exception.
				 */
				constructor(message: string, locator: org.xml.sax.ILocator, e: java.lang.Exception);
				/**
				 * Create a new SAXParseException.
				 * @param message The error or warning message.
				 * @param publicId The public identifier of the entity that generated
				 * @param systemId The system identifier of the entity that generated
				 * @param lineNumber The line number of the end of the text that
				 * @param columnNumber The column number of the end of the text that
				 */
				constructor(message: string, publicId: string, systemId: string, lineNumber: number, columnNumber: number);
				/**
				 * Create a new SAXParseException with an embedded exception.
				 * @param message The error or warning message, or null to use
				 * @param publicId The public identifier of the entity that generated
				 * @param systemId The system identifier of the entity that generated
				 * @param lineNumber The line number of the end of the text that
				 * @param columnNumber The column number of the end of the text that
				 * @param e Another exception to embed in this one.
				 */
				constructor(message: string, publicId: string, systemId: string, lineNumber: number, columnNumber: number, e: java.lang.Exception);
				static class: java.lang.Class<org.xml.sax.SAXParseException>;
				/**
				 * Get the public identifier of the entity where the exception occurred.
				 */
				public getPublicId(): string;
				/**
				 * Get the system identifier of the entity where the exception occurred.
				 */
				public getSystemId(): string;
				/**
				 * The line number of the end of the text where the exception occurred.
				 */
				public getLineNumber(): number;
				/**
				 * The column number of the end of the text where the exception occurred.
				 */
				public getColumnNumber(): number;
			}
			/**
			 * Interface for associating a SAX event with a document location.
			 */
			interface ILocator {
				/**
				 * Return the public identifier for the current document event.
				 */
				getPublicId(): string;
				/**
				 * Return the system identifier for the current document event.
				 */
				getSystemId(): string;
				/**
				 * Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.
				 */
				getLineNumber(): number;
				/**
				 * Return the column number where the current document event ends. This is one-based number of Java <code>char</code> values since the last line end.
				 */
				getColumnNumber(): number;
			}
			/**
			 * Interface for reading an XML document using callbacks.
			 */
			export class XMLReader implements org.xml.sax.IXMLReader {
				constructor(implementation: org.xml.sax.IXMLReader);
				/**
				 * Look up the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Set the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 * @param value The requested value of the feature (true or false).
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * Look up the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 */
				public getProperty(name: string): any;
				/**
				 * Set the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 * @param value The requested value for the property.
				 */
				public setProperty(name: string, value: any): void;
				/**
				 * Allow an application to register an entity resolver.
				 * @param resolver The entity resolver.
				 */
				public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
				/**
				 * Return the current entity resolver.
				 */
				public getEntityResolver(): org.xml.sax.IEntityResolver;
				/**
				 * Allow an application to register a DTD event handler.
				 * @param handler The DTD handler.
				 */
				public setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
				/**
				 * Return the current DTD handler.
				 */
				public getDTDHandler(): org.xml.sax.IDTDHandler;
				/**
				 * Allow an application to register a content event handler.
				 * @param handler The content handler.
				 */
				public setContentHandler(handler: org.xml.sax.IContentHandler): void;
				/**
				 * Return the current content handler.
				 */
				public getContentHandler(): org.xml.sax.IContentHandler;
				/**
				 * Allow an application to register an error event handler.
				 * @param handler The error handler.
				 */
				public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
				/**
				 * Return the current error handler.
				 */
				public getErrorHandler(): org.xml.sax.IErrorHandler;
				/**
				 * Parse an XML document.
				 * @param input The input source for the top-level of the
				 */
				public parse(input: org.xml.sax.InputSource): void;
				/**
				 * Parse an XML document from a system identifier (URI).
				 * @param systemId The system identifier (URI).
				 */
				public parse(systemId: string): void;
			}
			/**
			 * Interface for an XML filter.
			 */
			interface IXMLFilter extends org.xml.sax.IXMLReader {
				/**
				 * Set the parent reader.
				 * @param parent The parent reader.
				 */
				setParent(parent: org.xml.sax.IXMLReader): void;
				/**
				 * Get the parent reader.
				 */
				getParent(): org.xml.sax.IXMLReader;
				/**
				 * Look up the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 */
				getFeature(name: string): boolean;
				/**
				 * Set the value of a feature flag.
				 * @param name The feature name, which is a fully-qualified URI.
				 * @param value The requested value of the feature (true or false).
				 */
				setFeature(name: string, value: boolean): void;
				/**
				 * Look up the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 */
				getProperty(name: string): any;
				/**
				 * Set the value of a property.
				 * @param name The property name, which is a fully-qualified URI.
				 * @param value The requested value for the property.
				 */
				setProperty(name: string, value: any): void;
				/**
				 * Allow an application to register an entity resolver.
				 * @param resolver The entity resolver.
				 */
				setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
				/**
				 * Return the current entity resolver.
				 */
				getEntityResolver(): org.xml.sax.IEntityResolver;
				/**
				 * Allow an application to register a DTD event handler.
				 * @param handler The DTD handler.
				 */
				setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
				/**
				 * Return the current DTD handler.
				 */
				getDTDHandler(): org.xml.sax.IDTDHandler;
				/**
				 * Allow an application to register a content event handler.
				 * @param handler The content handler.
				 */
				setContentHandler(handler: org.xml.sax.IContentHandler): void;
				/**
				 * Return the current content handler.
				 */
				getContentHandler(): org.xml.sax.IContentHandler;
				/**
				 * Allow an application to register an error event handler.
				 * @param handler The error handler.
				 */
				setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
				/**
				 * Return the current error handler.
				 */
				getErrorHandler(): org.xml.sax.IErrorHandler;
				/**
				 * Parse an XML document.
				 * @param input The input source for the top-level of the
				 */
				parse(input: org.xml.sax.InputSource): void;
				/**
				 * Parse an XML document from a system identifier (URI).
				 * @param systemId The system identifier (URI).
				 */
				parse(systemId: string): void;
			}
			export module ext {
				/**
				 * This class extends the SAX2 base handler class to support the SAX2 LexicalHandler, DeclHandler, and EntityResolver2 extensions. Except for overriding the original SAX1 DefaultHandler#resolveEntity resolveEntity() method the added handler methods just return. Subclassers may override everything on a method-by-method basis.
				 */
				export class DefaultHandler2 extends org.xml.sax.helpers.DefaultHandler implements org.xml.sax.ext.ILexicalHandler, org.xml.sax.ext.IDeclHandler, org.xml.sax.ext.IEntityResolver2 {
					/**
					 * Constructs a handler which ignores all parsing events.
					 */
					constructor();
					static class: java.lang.Class<org.xml.sax.ext.DefaultHandler2>;
					public startCDATA(): void;
					public endCDATA(): void;
					public startDTD(name: string, publicId: string, systemId: string): void;
					public endDTD(): void;
					public startEntity(name: string): void;
					public endEntity(name: string): void;
					public comment(ch: native.Array<string>, start: number, length: number): void;
					public attributeDecl(eName: string, aName: string, type: string, mode: string, value: string): void;
					public elementDecl(name: string, model: string): void;
					public externalEntityDecl(name: string, publicId: string, systemId: string): void;
					public internalEntityDecl(name: string, value: string): void;
					/**
					 * Tells the parser that if no external subset has been declared in the document text, none should be used.
					 * @param name Identifies the document root element. This name comes
					 * @param baseURI The document's base URI, serving as an additional
					 */
					public getExternalSubset(name: string, baseURI: string): org.xml.sax.InputSource;
					/**
					 * Tells the parser to resolve the systemId against the baseURI and read the entity text from that resulting absolute URI. Note that because the older DefaultHandler#resolveEntity DefaultHandler.resolveEntity(), method is overridden to call this one, this method may sometimes be invoked with null <em>name</em> and <em>baseURI</em>, and with the <em>systemId</em> already absolutized.
					 * @param name Identifies the external entity being resolved.
					 * @param publicId The public identifier of the external entity being
					 * @param baseURI The URI with respect to which relative systemIDs
					 * @param systemId The system identifier of the external entity
					 */
					public resolveEntity(name: string, publicId: string, baseURI: string, systemId: string): org.xml.sax.InputSource;
					/**
					 * Invokes EntityResolver2#resolveEntity EntityResolver2.resolveEntity() with null entity name and base URI. You only need to override that method to use this class.
					 * @param publicId The public identifier of the external entity being
					 * @param systemId The system identifier of the external entity
					 */
					public resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
				}
				/**
				 * SAX2 extension helper for additional Attributes information, implementing the Attributes2 interface.
				 */
				export class Attributes2Impl extends org.xml.sax.helpers.AttributesImpl implements org.xml.sax.ext.IAttributes2 {
					/**
					 * Construct a new, empty Attributes2Impl object.
					 */
					constructor();
					/**
					 * Copy an existing Attributes or Attributes2 object. If the object implements Attributes2, values of the <em>specified</em> and <em>declared</em> flags for each attribute are copied. Otherwise the flag values are defaulted to assume no DTD was used, unless there is evidence to the contrary (such as attributes with type other than CDATA, which must have been <em>declared</em>).
					 * @param atts The existing Attributes object.
					 */
					constructor(atts: org.xml.sax.IAttributes);
					static class: java.lang.Class<org.xml.sax.ext.Attributes2Impl>;
					public isDeclared(index: number): boolean;
					public isDeclared(uri: string, localName: string): boolean;
					public isDeclared(qName: string): boolean;
					/**
					 * Returns the current value of an attribute's "specified" flag.
					 * @param index The attribute index (zero-based).
					 */
					public isSpecified(index: number): boolean;
					/**
					 * Returns the current value of an attribute's "specified" flag.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					public isSpecified(uri: string, localName: string): boolean;
					/**
					 * Returns the current value of an attribute's "specified" flag.
					 * @param qName The XML qualified (prefixed) name.
					 */
					public isSpecified(qName: string): boolean;
					/**
					 * Copy an entire Attributes object. The "specified" flags are assigned as true, and "declared" flags as false (except when an attribute's type is not CDATA), unless the object is an Attributes2 object. In that case those flag values are all copied.
					 * @param atts The attributes to copy.
					 */
					public setAttributes(atts: org.xml.sax.IAttributes): void;
					/**
					 * Add an attribute to the end of the list, setting its "specified" flag to true. To set that flag's value to false, use #setSpecified.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The local name, or the empty string if
					 * @param qName The qualified (prefixed) name, or the empty string
					 * @param type The attribute type as a string.
					 * @param value The attribute value.
					 */
					public addAttribute(uri: string, localName: string, qName: string, type: string, value: string): void;
					public removeAttribute(index: number): void;
					/**
					 * Assign a value to the "declared" flag of a specific attribute. This is normally needed only for attributes of type CDATA, including attributes whose type is changed to or from CDATA.
					 * @param index The index of the attribute (zero-based).
					 * @param value The desired flag value.
					 */
					public setDeclared(index: number, value: boolean): void;
					/**
					 * Assign a value to the "specified" flag of a specific attribute. This is the only way this flag can be cleared, except clearing by initialization with the copy constructor.
					 * @param index The index of the attribute (zero-based).
					 * @param value The desired flag value.
					 */
					public setSpecified(index: number, value: boolean): void;
					/**
					 * Return the number of attributes in the list.
					 */
					getLength(): number;
					/**
					 * Look up an attribute's Namespace URI by index.
					 * @param index The attribute index (zero-based).
					 */
					getURI(index: number): string;
					/**
					 * Look up an attribute's local name by index.
					 * @param index The attribute index (zero-based).
					 */
					getLocalName(index: number): string;
					/**
					 * Look up an attribute's XML qualified (prefixed) name by index.
					 * @param index The attribute index (zero-based).
					 */
					getQName(index: number): string;
					/**
					 * Look up an attribute's type by index.
					 * @param index The attribute index (zero-based).
					 */
					getType(index: number): string;
					/**
					 * Look up an attribute's value by index.
					 * @param index The attribute index (zero-based).
					 */
					getValue(index: number): string;
					/**
					 * Look up the index of an attribute by Namespace name.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					getIndex(uri: string, localName: string): number;
					/**
					 * Look up the index of an attribute by XML qualified (prefixed) name.
					 * @param qName The qualified (prefixed) name.
					 */
					getIndex(qName: string): number;
					/**
					 * Look up an attribute's type by Namespace name.
					 * @param uri The Namespace URI, or the empty String if the
					 * @param localName The local name of the attribute.
					 */
					getType(uri: string, localName: string): string;
					/**
					 * Look up an attribute's type by XML qualified (prefixed) name.
					 * @param qName The XML qualified name.
					 */
					getType(qName: string): string;
					/**
					 * Look up an attribute's value by Namespace name.
					 * @param uri The Namespace URI, or the empty String if the
					 * @param localName The local name of the attribute.
					 */
					getValue(uri: string, localName: string): string;
					/**
					 * Look up an attribute's value by XML qualified (prefixed) name.
					 * @param qName The XML qualified name.
					 */
					getValue(qName: string): string;
				}
				/**
				 * SAX2 extension to augment the entity information provided though a Locator. If an implementation supports this extension, the Locator provided in org.xml.sax.ContentHandler#setDocumentLocator ContentHandler.setDocumentLocator() will implement this interface, and the <em>http://xml.org/sax/features/use-locator2</em> feature flag will have the value <em>true</em>.
				 */
				interface ILocator2 extends org.xml.sax.ILocator {
					/**
					 * Returns the version of XML used for the entity. This will normally be the identifier from the current entity's <em>&lt;?xml&nbsp;version='...'&nbsp;...?&gt;</em> declaration, or be defaulted by the parser.
					 */
					getXMLVersion(): string;
					/**
					 * Returns the name of the character encoding for the entity. If the encoding was declared externally (for example, in a MIME Content-Type header), that will be the name returned. Else if there was an <em>&lt;?xml&nbsp;...encoding='...'?&gt;</em> declaration at the start of the document, that encoding name will be returned. Otherwise the encoding will been inferred (normally to be UTF-8, or some UTF-16 variant), and that inferred name will be returned.
					 */
					getEncoding(): string;
					/**
					 * Return the public identifier for the current document event.
					 */
					getPublicId(): string;
					/**
					 * Return the system identifier for the current document event.
					 */
					getSystemId(): string;
					/**
					 * Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.
					 */
					getLineNumber(): number;
					/**
					 * Return the column number where the current document event ends. This is one-based number of Java <code>char</code> values since the last line end.
					 */
					getColumnNumber(): number;
				}
				/**
				 * SAX2 extension handler for lexical events.
				 */
				interface ILexicalHandler {
					/**
					 * Report the start of DTD declarations, if any.
					 * @param name The document type name.
					 * @param publicId The declared public identifier for the
					 * @param systemId The declared system identifier for the
					 */
					startDTD(name: string, publicId: string, systemId: string): void;
					/**
					 * Report the end of DTD declarations.
					 */
					endDTD(): void;
					/**
					 * Report the beginning of some internal and external XML entities.
					 * @param name The name of the entity. If it is a parameter
					 */
					startEntity(name: string): void;
					/**
					 * Report the end of an entity.
					 * @param name The name of the entity that is ending.
					 */
					endEntity(name: string): void;
					/**
					 * Report the start of a CDATA section.
					 */
					startCDATA(): void;
					/**
					 * Report the end of a CDATA section.
					 */
					endCDATA(): void;
					/**
					 * Report an XML comment anywhere in the document.
					 * @param ch An array holding the characters in the comment.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use from the array.
					 */
					comment(ch: native.Array<string>, start: number, length: number): void;
				}
				/**
				 * SAX2 extension to augment the per-attribute information provided though Attributes. If an implementation supports this extension, the attributes provided in org.xml.sax.ContentHandler#startElement ContentHandler.startElement() will implement this interface, and the <em>http://xml.org/sax/features/use-attributes2</em> feature flag will have the value <em>true</em>.
				 */
				export class Attributes2 implements org.xml.sax.IAttributes, org.xml.sax.ext.IAttributes2 {
					constructor(implementation: org.xml.sax.ext.IAttributes2);
					/**
					 * Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
					 * @param index The attribute index (zero-based).
					 */
					public isDeclared(index: number): boolean;
					/**
					 * Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
					 * @param qName The XML qualified (prefixed) name.
					 */
					public isDeclared(qName: string): boolean;
					/**
					 * Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					public isDeclared(uri: string, localName: string): boolean;
					/**
					 * Returns true unless the attribute value was provided by DTD defaulting.
					 * @param index The attribute index (zero-based).
					 */
					public isSpecified(index: number): boolean;
					/**
					 * Returns true unless the attribute value was provided by DTD defaulting.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					public isSpecified(uri: string, localName: string): boolean;
					/**
					 * Returns true unless the attribute value was provided by DTD defaulting.
					 * @param qName The XML qualified (prefixed) name.
					 */
					public isSpecified(qName: string): boolean;
					/**
					 * Return the number of attributes in the list.
					 */
					getLength(): number;
					/**
					 * Look up an attribute's Namespace URI by index.
					 * @param index The attribute index (zero-based).
					 */
					getURI(index: number): string;
					/**
					 * Look up an attribute's local name by index.
					 * @param index The attribute index (zero-based).
					 */
					getLocalName(index: number): string;
					/**
					 * Look up an attribute's XML qualified (prefixed) name by index.
					 * @param index The attribute index (zero-based).
					 */
					getQName(index: number): string;
					/**
					 * Look up an attribute's type by index.
					 * @param index The attribute index (zero-based).
					 */
					getType(index: number): string;
					/**
					 * Look up an attribute's value by index.
					 * @param index The attribute index (zero-based).
					 */
					getValue(index: number): string;
					/**
					 * Look up the index of an attribute by Namespace name.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					getIndex(uri: string, localName: string): number;
					/**
					 * Look up the index of an attribute by XML qualified (prefixed) name.
					 * @param qName The qualified (prefixed) name.
					 */
					getIndex(qName: string): number;
					/**
					 * Look up an attribute's type by Namespace name.
					 * @param uri The Namespace URI, or the empty String if the
					 * @param localName The local name of the attribute.
					 */
					getType(uri: string, localName: string): string;
					/**
					 * Look up an attribute's type by XML qualified (prefixed) name.
					 * @param qName The XML qualified name.
					 */
					getType(qName: string): string;
					/**
					 * Look up an attribute's value by Namespace name.
					 * @param uri The Namespace URI, or the empty String if the
					 * @param localName The local name of the attribute.
					 */
					getValue(uri: string, localName: string): string;
					/**
					 * Look up an attribute's value by XML qualified (prefixed) name.
					 * @param qName The XML qualified name.
					 */
					getValue(qName: string): string;
				}
				/**
				 * SAX2 extension to augment the per-attribute information provided though Attributes. If an implementation supports this extension, the attributes provided in org.xml.sax.ContentHandler#startElement ContentHandler.startElement() will implement this interface, and the <em>http://xml.org/sax/features/use-attributes2</em> feature flag will have the value <em>true</em>.
				 */
				interface IAttributes2 extends org.xml.sax.IAttributes {
					/**
					 * Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
					 * @param index The attribute index (zero-based).
					 */
					isDeclared(index: number): boolean;
					/**
					 * Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
					 * @param qName The XML qualified (prefixed) name.
					 */
					isDeclared(qName: string): boolean;
					/**
					 * Returns false unless the attribute was declared in the DTD. This helps distinguish two kinds of attributes that SAX reports as CDATA: ones that were declared (and hence are usually valid), and those that were not (and which are never valid).
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					isDeclared(uri: string, localName: string): boolean;
					/**
					 * Returns true unless the attribute value was provided by DTD defaulting.
					 * @param index The attribute index (zero-based).
					 */
					isSpecified(index: number): boolean;
					/**
					 * Returns true unless the attribute value was provided by DTD defaulting.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					isSpecified(uri: string, localName: string): boolean;
					/**
					 * Returns true unless the attribute value was provided by DTD defaulting.
					 * @param qName The XML qualified (prefixed) name.
					 */
					isSpecified(qName: string): boolean;
					/**
					 * Return the number of attributes in the list.
					 */
					getLength(): number;
					/**
					 * Look up an attribute's Namespace URI by index.
					 * @param index The attribute index (zero-based).
					 */
					getURI(index: number): string;
					/**
					 * Look up an attribute's local name by index.
					 * @param index The attribute index (zero-based).
					 */
					getLocalName(index: number): string;
					/**
					 * Look up an attribute's XML qualified (prefixed) name by index.
					 * @param index The attribute index (zero-based).
					 */
					getQName(index: number): string;
					/**
					 * Look up an attribute's type by index.
					 * @param index The attribute index (zero-based).
					 */
					getType(index: number): string;
					/**
					 * Look up an attribute's value by index.
					 * @param index The attribute index (zero-based).
					 */
					getValue(index: number): string;
					/**
					 * Look up the index of an attribute by Namespace name.
					 * @param uri The Namespace URI, or the empty string if
					 * @param localName The attribute's local name.
					 */
					getIndex(uri: string, localName: string): number;
					/**
					 * Look up the index of an attribute by XML qualified (prefixed) name.
					 * @param qName The qualified (prefixed) name.
					 */
					getIndex(qName: string): number;
					/**
					 * Look up an attribute's type by Namespace name.
					 * @param uri The Namespace URI, or the empty String if the
					 * @param localName The local name of the attribute.
					 */
					getType(uri: string, localName: string): string;
					/**
					 * Look up an attribute's type by XML qualified (prefixed) name.
					 * @param qName The XML qualified name.
					 */
					getType(qName: string): string;
					/**
					 * Look up an attribute's value by Namespace name.
					 * @param uri The Namespace URI, or the empty String if the
					 * @param localName The local name of the attribute.
					 */
					getValue(uri: string, localName: string): string;
					/**
					 * Look up an attribute's value by XML qualified (prefixed) name.
					 * @param qName The XML qualified name.
					 */
					getValue(qName: string): string;
				}
				/**
				 * SAX2 extension handler for DTD declaration events.
				 */
				interface IDeclHandler {
					/**
					 * Report an element type declaration.
					 * @param name The element type name.
					 * @param model The content model as a normalized string.
					 */
					elementDecl(name: string, model: string): void;
					/**
					 * Report an attribute type declaration.
					 * @param eName The name of the associated element.
					 * @param aName The name of the attribute.
					 * @param type A string representing the attribute type.
					 * @param mode A string representing the attribute defaulting mode
					 * @param value A string representing the attribute's default value,
					 */
					attributeDecl(eName: string, aName: string, type: string, mode: string, value: string): void;
					/**
					 * Report an internal entity declaration.
					 * @param name The name of the entity. If it is a parameter
					 * @param value The replacement text of the entity.
					 */
					internalEntityDecl(name: string, value: string): void;
					/**
					 * Report a parsed external entity declaration.
					 * @param name The name of the entity. If it is a parameter
					 * @param publicId The entity's public identifier, or null if none
					 * @param systemId The entity's system identifier.
					 */
					externalEntityDecl(name: string, publicId: string, systemId: string): void;
				}
				/**
				 * Extended interface for mapping external entity references to input sources, or providing a missing external subset. The XMLReader#setEntityResolver XMLReader.setEntityResolver() method is used to provide implementations of this interface to parsers. When a parser uses the methods in this interface, the EntityResolver2#resolveEntity EntityResolver2.resolveEntity() method (in this interface) is used <em>instead of</em> the older (SAX 1.0) EntityResolver#resolveEntity EntityResolver.resolveEntity() method.
				 */
				export class EntityResolver2 implements org.xml.sax.IEntityResolver, org.xml.sax.ext.IEntityResolver2 {
					constructor(implementation: org.xml.sax.ext.IEntityResolver2);
					/**
					 * Allows applications to provide an external subset for documents that don't explicitly define one. Documents with DOCTYPE declarations that omit an external subset can thus augment the declarations available for validation, entity processing, and attribute processing (normalization, defaulting, and reporting types including ID). This augmentation is reported through the LexicalHandler#startDTD startDTD() method as if the document text had originally included the external subset; this callback is made before any internal subset data or errors are reported.</p>
					 * @param name Identifies the document root element. This name comes
					 * @param baseURI The document's base URI, serving as an additional
					 */
					public getExternalSubset(name: string, baseURI: string): org.xml.sax.InputSource;
					/**
					 * Allows applications to map references to external entities into input sources, or tell the parser it should use conventional URI resolution. This method is only called for external entities which have been properly declared. This method provides more flexibility than the EntityResolver interface, supporting implementations of more complex catalogue schemes such as the one defined by the <a href= "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html" >OASIS XML Catalogs</a> specification.</p>
					 * @param name Identifies the external entity being resolved.
					 * @param publicId The public identifier of the external entity being
					 * @param baseURI The URI with respect to which relative systemIDs
					 * @param systemId The system identifier of the external entity
					 */
					public resolveEntity(name: string, publicId: string, baseURI: string, systemId: string): org.xml.sax.InputSource;
					/**
					 * Allow the application to resolve external entities.
					 * @param publicId The public identifier of the external entity
					 * @param systemId The system identifier of the external entity
					 */
					resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
				}
				/**
				 * SAX2 extension handler for DTD declaration events.
				 */
				export class DeclHandler implements org.xml.sax.ext.IDeclHandler {
					constructor(implementation: org.xml.sax.ext.IDeclHandler);
					/**
					 * Report an element type declaration.
					 * @param name The element type name.
					 * @param model The content model as a normalized string.
					 */
					public elementDecl(name: string, model: string): void;
					/**
					 * Report an attribute type declaration.
					 * @param eName The name of the associated element.
					 * @param aName The name of the attribute.
					 * @param type A string representing the attribute type.
					 * @param mode A string representing the attribute defaulting mode
					 * @param value A string representing the attribute's default value,
					 */
					public attributeDecl(eName: string, aName: string, type: string, mode: string, value: string): void;
					/**
					 * Report an internal entity declaration.
					 * @param name The name of the entity. If it is a parameter
					 * @param value The replacement text of the entity.
					 */
					public internalEntityDecl(name: string, value: string): void;
					/**
					 * Report a parsed external entity declaration.
					 * @param name The name of the entity. If it is a parameter
					 * @param publicId The entity's public identifier, or null if none
					 * @param systemId The entity's system identifier.
					 */
					public externalEntityDecl(name: string, publicId: string, systemId: string): void;
				}
				/**
				 * SAX2 extension handler for lexical events.
				 */
				export class LexicalHandler implements org.xml.sax.ext.ILexicalHandler {
					constructor(implementation: org.xml.sax.ext.ILexicalHandler);
					/**
					 * Report the start of DTD declarations, if any.
					 * @param name The document type name.
					 * @param publicId The declared public identifier for the
					 * @param systemId The declared system identifier for the
					 */
					public startDTD(name: string, publicId: string, systemId: string): void;
					/**
					 * Report the end of DTD declarations.
					 */
					public endDTD(): void;
					/**
					 * Report the beginning of some internal and external XML entities.
					 * @param name The name of the entity. If it is a parameter
					 */
					public startEntity(name: string): void;
					/**
					 * Report the end of an entity.
					 * @param name The name of the entity that is ending.
					 */
					public endEntity(name: string): void;
					/**
					 * Report the start of a CDATA section.
					 */
					public startCDATA(): void;
					/**
					 * Report the end of a CDATA section.
					 */
					public endCDATA(): void;
					/**
					 * Report an XML comment anywhere in the document.
					 * @param ch An array holding the characters in the comment.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use from the array.
					 */
					public comment(ch: native.Array<string>, start: number, length: number): void;
				}
				/**
				 * SAX2 extension to augment the entity information provided though a Locator. If an implementation supports this extension, the Locator provided in org.xml.sax.ContentHandler#setDocumentLocator ContentHandler.setDocumentLocator() will implement this interface, and the <em>http://xml.org/sax/features/use-locator2</em> feature flag will have the value <em>true</em>.
				 */
				export class Locator2 implements org.xml.sax.ILocator, org.xml.sax.ext.ILocator2 {
					constructor(implementation: org.xml.sax.ext.ILocator2);
					/**
					 * Returns the version of XML used for the entity. This will normally be the identifier from the current entity's <em>&lt;?xml&nbsp;version='...'&nbsp;...?&gt;</em> declaration, or be defaulted by the parser.
					 */
					public getXMLVersion(): string;
					/**
					 * Returns the name of the character encoding for the entity. If the encoding was declared externally (for example, in a MIME Content-Type header), that will be the name returned. Else if there was an <em>&lt;?xml&nbsp;...encoding='...'?&gt;</em> declaration at the start of the document, that encoding name will be returned. Otherwise the encoding will been inferred (normally to be UTF-8, or some UTF-16 variant), and that inferred name will be returned.
					 */
					public getEncoding(): string;
					/**
					 * Return the public identifier for the current document event.
					 */
					getPublicId(): string;
					/**
					 * Return the system identifier for the current document event.
					 */
					getSystemId(): string;
					/**
					 * Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.
					 */
					getLineNumber(): number;
					/**
					 * Return the column number where the current document event ends. This is one-based number of Java <code>char</code> values since the last line end.
					 */
					getColumnNumber(): number;
				}
				/**
				 * Extended interface for mapping external entity references to input sources, or providing a missing external subset. The XMLReader#setEntityResolver XMLReader.setEntityResolver() method is used to provide implementations of this interface to parsers. When a parser uses the methods in this interface, the EntityResolver2#resolveEntity EntityResolver2.resolveEntity() method (in this interface) is used <em>instead of</em> the older (SAX 1.0) EntityResolver#resolveEntity EntityResolver.resolveEntity() method.
				 */
				interface IEntityResolver2 extends org.xml.sax.IEntityResolver {
					/**
					 * Allows applications to provide an external subset for documents that don't explicitly define one. Documents with DOCTYPE declarations that omit an external subset can thus augment the declarations available for validation, entity processing, and attribute processing (normalization, defaulting, and reporting types including ID). This augmentation is reported through the LexicalHandler#startDTD startDTD() method as if the document text had originally included the external subset; this callback is made before any internal subset data or errors are reported.</p>
					 * @param name Identifies the document root element. This name comes
					 * @param baseURI The document's base URI, serving as an additional
					 */
					getExternalSubset(name: string, baseURI: string): org.xml.sax.InputSource;
					/**
					 * Allows applications to map references to external entities into input sources, or tell the parser it should use conventional URI resolution. This method is only called for external entities which have been properly declared. This method provides more flexibility than the EntityResolver interface, supporting implementations of more complex catalogue schemes such as the one defined by the <a href= "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html" >OASIS XML Catalogs</a> specification.</p>
					 * @param name Identifies the external entity being resolved.
					 * @param publicId The public identifier of the external entity being
					 * @param baseURI The URI with respect to which relative systemIDs
					 * @param systemId The system identifier of the external entity
					 */
					resolveEntity(name: string, publicId: string, baseURI: string, systemId: string): org.xml.sax.InputSource;
					/**
					 * Allow the application to resolve external entities.
					 * @param publicId The public identifier of the external entity
					 * @param systemId The system identifier of the external entity
					 */
					resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
				}
				/**
				 * SAX2 extension helper for holding additional Entity information, implementing the Locator2 interface.
				 */
				export class Locator2Impl extends org.xml.sax.helpers.LocatorImpl implements org.xml.sax.ext.ILocator2 {
					/**
					 * Construct a new, empty Locator2Impl object. This will not normally be useful, since the main purpose of this class is to make a snapshot of an existing Locator.
					 */
					constructor();
					/**
					 * Copy an existing Locator or Locator2 object. If the object implements Locator2, values of the <em>encoding</em> and <em>version</em>strings are copied, otherwise they set to <em>null</em>.
					 * @param locator The existing Locator object.
					 */
					constructor(locator: org.xml.sax.ILocator);
					static class: java.lang.Class<org.xml.sax.ext.Locator2Impl>;
					/**
					 * Returns the current value of the version property.
					 */
					public getXMLVersion(): string;
					/**
					 * Returns the current value of the encoding property.
					 */
					public getEncoding(): string;
					/**
					 * Assigns the current value of the version property.
					 * @param version the new "version" value
					 */
					public setXMLVersion(version: string): void;
					/**
					 * Assigns the current value of the encoding property.
					 * @param encoding the new "encoding" value
					 */
					public setEncoding(encoding: string): void;
					/**
					 * Return the public identifier for the current document event.
					 */
					getPublicId(): string;
					/**
					 * Return the system identifier for the current document event.
					 */
					getSystemId(): string;
					/**
					 * Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.
					 */
					getLineNumber(): number;
					/**
					 * Return the column number where the current document event ends. This is one-based number of Java <code>char</code> values since the last line end.
					 */
					getColumnNumber(): number;
				}
			}
			/**
			 * Basic interface for SAX error handlers.
			 */
			export class ErrorHandler implements org.xml.sax.IErrorHandler {
				constructor(implementation: org.xml.sax.IErrorHandler);
				/**
				 * Receive notification of a warning.
				 * @param exception The warning information encapsulated in a
				 */
				public warning(exception: org.xml.sax.SAXParseException): void;
				/**
				 * Receive notification of a recoverable error.
				 * @param exception The error information encapsulated in a
				 */
				public error(exception: org.xml.sax.SAXParseException): void;
				/**
				 * Receive notification of a non-recoverable error.
				 * @param exception The error information encapsulated in a
				 */
				public fatalError(exception: org.xml.sax.SAXParseException): void;
			}
			/**
			 * Basic interface for resolving entities.
			 */
			interface IEntityResolver {
				/**
				 * Allow the application to resolve external entities.
				 * @param publicId The public identifier of the external entity
				 * @param systemId The system identifier of the external entity
				 */
				resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
			}
			/**
			 * Receive notification of the logical content of a document.
			 */
			interface IContentHandler {
				/**
				 * Receive an object for locating the origin of SAX document events.
				 * @param locator an object that can return the location of
				 */
				setDocumentLocator(locator: org.xml.sax.ILocator): void;
				/**
				 * Receive notification of the beginning of a document.
				 */
				startDocument(): void;
				/**
				 * Receive notification of the end of a document.
				 */
				endDocument(): void;
				/**
				 * Begin the scope of a prefix-URI Namespace mapping.
				 * @param prefix the Namespace prefix being declared.
				 * @param uri the Namespace URI the prefix is mapped to
				 */
				startPrefixMapping(prefix: string, uri: string): void;
				/**
				 * End the scope of a prefix-URI mapping.
				 * @param prefix the prefix that was being mapped.
				 */
				endPrefixMapping(prefix: string): void;
				/**
				 * Receive notification of the beginning of an element.
				 * @param uri the Namespace URI, or the empty string if the
				 * @param localName the local name (without prefix), or the
				 * @param qName the qualified name (with prefix), or the
				 * @param atts the attributes attached to the element. If
				 */
				startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
				/**
				 * Receive notification of the end of an element.
				 * @param uri the Namespace URI, or the empty string if the
				 * @param localName the local name (without prefix), or the
				 * @param qName the qualified XML name (with prefix), or the
				 */
				endElement(uri: string, localName: string, qName: string): void;
				/**
				 * Receive notification of character data.
				 * @param ch the characters from the XML document
				 * @param start the start position in the array
				 * @param length the number of characters to read from the array
				 */
				characters(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of ignorable whitespace in element content.
				 * @param ch the characters from the XML document
				 * @param start the start position in the array
				 * @param length the number of characters to read from the array
				 */
				ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of a processing instruction.
				 * @param target the processing instruction target
				 * @param data the processing instruction data, or null if
				 */
				processingInstruction(target: string, data: string): void;
				/**
				 * Receive notification of a skipped entity. This is not called for entity references within markup constructs such as element start tags or markup declarations. (The XML recommendation requires reporting skipped external entities. SAX also reports internal entity expansion/non-expansion, except within markup constructs.)
				 * @param name the name of the skipped entity. If it is a
				 */
				skippedEntity(name: string): void;
			}
			/**
			 * Interface for an element's attribute specifications.
			 */
			interface IAttributeList {
				/**
				 * Return the number of attributes in this list.
				 */
				getLength(): number;
				/**
				 * Return the name of an attribute in this list (by position).
				 * @param i The index of the attribute in the list (starting at 0).
				 */
				getName(i: number): string;
				/**
				 * Return the type of an attribute in the list (by position).
				 * @param i The index of the attribute in the list (starting at 0).
				 */
				getType(i: number): string;
				/**
				 * Return the value of an attribute in the list (by position).
				 * @param i The index of the attribute in the list (starting at 0).
				 */
				getValue(i: number): string;
				/**
				 * Return the type of an attribute in the list (by name).
				 * @param name The name of the attribute.
				 */
				getType(name: string): string;
				/**
				 * Return the value of an attribute in the list (by name).
				 * @param name the name of the attribute to return
				 */
				getValue(name: string): string;
			}
			/**
			 * Basic interface for resolving entities.
			 */
			export class EntityResolver implements org.xml.sax.IEntityResolver {
				constructor(implementation: org.xml.sax.IEntityResolver);
				/**
				 * Allow the application to resolve external entities.
				 * @param publicId The public identifier of the external entity
				 * @param systemId The system identifier of the external entity
				 */
				public resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
			}
			/**
			 * Basic interface for SAX (Simple API for XML) parsers.
			 */
			export class Parser implements org.xml.sax.IParser {
				constructor(implementation: org.xml.sax.IParser);
				/**
				 * Allow an application to request a locale for errors and warnings.
				 * @param locale A Java Locale object.
				 */
				public setLocale(locale: java.util.Locale): void;
				/**
				 * Allow an application to register a custom entity resolver.
				 * @param resolver The object for resolving entities.
				 */
				public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
				/**
				 * Allow an application to register a DTD event handler.
				 * @param handler The DTD handler.
				 */
				public setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
				/**
				 * Allow an application to register a document event handler.
				 * @param handler The document handler.
				 */
				public setDocumentHandler(handler: org.xml.sax.IDocumentHandler): void;
				/**
				 * Allow an application to register an error event handler.
				 * @param handler The error handler.
				 */
				public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
				/**
				 * Parse an XML document.
				 * @param source The input source for the top-level of the
				 */
				public parse(source: org.xml.sax.InputSource): void;
				/**
				 * Parse an XML document from a system identifier (URI).
				 * @param systemId The system identifier (URI).
				 */
				public parse(systemId: string): void;
			}
			/**
			 * Exception class for an unsupported operation.
			 */
			export class SAXNotSupportedException extends org.xml.sax.SAXException {
				/**
				 * Construct a new exception with no message.
				 */
				constructor();
				/**
				 * Construct a new exception with the given message.
				 * @param message The text message of the exception.
				 */
				constructor(message: string);
				static class: java.lang.Class<org.xml.sax.SAXNotSupportedException>;
			}
			/**
			 * Interface for a list of XML attributes.
			 */
			interface IAttributes {
				/**
				 * Return the number of attributes in the list.
				 */
				getLength(): number;
				/**
				 * Look up an attribute's Namespace URI by index.
				 * @param index The attribute index (zero-based).
				 */
				getURI(index: number): string;
				/**
				 * Look up an attribute's local name by index.
				 * @param index The attribute index (zero-based).
				 */
				getLocalName(index: number): string;
				/**
				 * Look up an attribute's XML qualified (prefixed) name by index.
				 * @param index The attribute index (zero-based).
				 */
				getQName(index: number): string;
				/**
				 * Look up an attribute's type by index.
				 * @param index The attribute index (zero-based).
				 */
				getType(index: number): string;
				/**
				 * Look up an attribute's value by index.
				 * @param index The attribute index (zero-based).
				 */
				getValue(index: number): string;
				/**
				 * Look up the index of an attribute by Namespace name.
				 * @param uri The Namespace URI, or the empty string if
				 * @param localName The attribute's local name.
				 */
				getIndex(uri: string, localName: string): number;
				/**
				 * Look up the index of an attribute by XML qualified (prefixed) name.
				 * @param qName The qualified (prefixed) name.
				 */
				getIndex(qName: string): number;
				/**
				 * Look up an attribute's type by Namespace name.
				 * @param uri The Namespace URI, or the empty String if the
				 * @param localName The local name of the attribute.
				 */
				getType(uri: string, localName: string): string;
				/**
				 * Look up an attribute's type by XML qualified (prefixed) name.
				 * @param qName The XML qualified name.
				 */
				getType(qName: string): string;
				/**
				 * Look up an attribute's value by Namespace name.
				 * @param uri The Namespace URI, or the empty String if the
				 * @param localName The local name of the attribute.
				 */
				getValue(uri: string, localName: string): string;
				/**
				 * Look up an attribute's value by XML qualified (prefixed) name.
				 * @param qName The XML qualified name.
				 */
				getValue(qName: string): string;
			}
			/**
			 * Default base class for handlers.
			 */
			export class HandlerBase extends java.lang.Object implements org.xml.sax.IEntityResolver, org.xml.sax.IDTDHandler, org.xml.sax.IDocumentHandler, org.xml.sax.IErrorHandler {
				constructor();
				static class: java.lang.Class<org.xml.sax.HandlerBase>;
				/**
				 * Resolve an external entity.
				 * @param publicId The public identifer, or null if none is
				 * @param systemId The system identifier provided in the XML
				 */
				public resolveEntity(publicId: string, systemId: string): org.xml.sax.InputSource;
				/**
				 * Receive notification of a notation declaration.
				 * @param name The notation name.
				 * @param publicId The notation public identifier, or null if not
				 * @param systemId The notation system identifier.
				 */
				public notationDecl(name: string, publicId: string, systemId: string): void;
				/**
				 * Receive notification of an unparsed entity declaration.
				 * @param name The entity name.
				 * @param publicId The entity public identifier, or null if not
				 * @param systemId The entity system identifier.
				 * @param notationName The name of the associated notation.
				 */
				public unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
				/**
				 * Receive a Locator object for document events.
				 * @param locator A locator for all SAX document events.
				 */
				public setDocumentLocator(locator: org.xml.sax.ILocator): void;
				/**
				 * Receive notification of the beginning of the document.
				 */
				public startDocument(): void;
				/**
				 * Receive notification of the end of the document.
				 */
				public endDocument(): void;
				/**
				 * Receive notification of the start of an element.
				 * @param name The element type name.
				 * @param attributes The specified or defaulted attributes.
				 */
				public startElement(name: string, attributes: org.xml.sax.IAttributeList): void;
				/**
				 * Receive notification of the end of an element.
				 * @param name the element name
				 */
				public endElement(name: string): void;
				/**
				 * Receive notification of character data inside an element.
				 * @param ch The characters.
				 * @param start The start position in the character array.
				 * @param length The number of characters to use from the
				 */
				public characters(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of ignorable whitespace in element content.
				 * @param ch The whitespace characters.
				 * @param start The start position in the character array.
				 * @param length The number of characters to use from the
				 */
				public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of a processing instruction.
				 * @param target The processing instruction target.
				 * @param data The processing instruction data, or null if
				 */
				public processingInstruction(target: string, data: string): void;
				/**
				 * Receive notification of a parser warning.
				 * @param e The warning information encoded as an exception.
				 */
				public warning(e: org.xml.sax.SAXParseException): void;
				/**
				 * Receive notification of a recoverable parser error.
				 * @param e The warning information encoded as an exception.
				 */
				public error(e: org.xml.sax.SAXParseException): void;
				/**
				 * Report a fatal XML parsing error.
				 * @param e The error information encoded as an exception.
				 */
				public fatalError(e: org.xml.sax.SAXParseException): void;
			}
			/**
			 * Receive notification of basic DTD-related events.
			 */
			export class DTDHandler implements org.xml.sax.IDTDHandler {
				constructor(implementation: org.xml.sax.IDTDHandler);
				/**
				 * Receive notification of a notation declaration event.
				 * @param name The notation name.
				 * @param publicId The notation's public identifier, or null if
				 * @param systemId The notation's system identifier, or null if
				 */
				public notationDecl(name: string, publicId: string, systemId: string): void;
				/**
				 * Receive notification of an unparsed entity declaration event.
				 * @param name The unparsed entity's name.
				 * @param publicId The entity's public identifier, or null if none
				 * @param systemId The entity's system identifier.
				 * @param notationName The name of the associated notation.
				 */
				public unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
			}
			/**
			 * Receive notification of basic DTD-related events.
			 */
			interface IDTDHandler {
				/**
				 * Receive notification of a notation declaration event.
				 * @param name The notation name.
				 * @param publicId The notation's public identifier, or null if
				 * @param systemId The notation's system identifier, or null if
				 */
				notationDecl(name: string, publicId: string, systemId: string): void;
				/**
				 * Receive notification of an unparsed entity declaration event.
				 * @param name The unparsed entity's name.
				 * @param publicId The entity's public identifier, or null if none
				 * @param systemId The entity's system identifier.
				 * @param notationName The name of the associated notation.
				 */
				unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
			}
			/**
			 * Basic interface for SAX (Simple API for XML) parsers.
			 */
			interface IParser {
				/**
				 * Allow an application to request a locale for errors and warnings.
				 * @param locale A Java Locale object.
				 */
				setLocale(locale: java.util.Locale): void;
				/**
				 * Allow an application to register a custom entity resolver.
				 * @param resolver The object for resolving entities.
				 */
				setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
				/**
				 * Allow an application to register a DTD event handler.
				 * @param handler The DTD handler.
				 */
				setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
				/**
				 * Allow an application to register a document event handler.
				 * @param handler The document handler.
				 */
				setDocumentHandler(handler: org.xml.sax.IDocumentHandler): void;
				/**
				 * Allow an application to register an error event handler.
				 * @param handler The error handler.
				 */
				setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
				/**
				 * Parse an XML document.
				 * @param source The input source for the top-level of the
				 */
				parse(source: org.xml.sax.InputSource): void;
				/**
				 * Parse an XML document from a system identifier (URI).
				 * @param systemId The system identifier (URI).
				 */
				parse(systemId: string): void;
			}
		}
	}
	export module json {
		export class ParsingTest {
			constructor();
			static class: java.lang.Class<org.json.ParsingTest>;
			public testParsingNoObjects(): void;
			public testParsingLiterals(): void;
			public testParsingQuotedStrings(): void;
			public testParsingSingleQuotedStrings(): void;
			public testParsingUnquotedStrings(): void;
			/**
			 * Unfortunately the original implementation attempts to figure out what Java number type best suits an input value.
			 */
			public testParsingNumbersThatAreBestRepresentedAsLongs(): void;
			public testParsingNumbersThatAreBestRepresentedAsIntegers(): void;
			public testParsingNegativeZero(): void;
			public testParsingIntegersWithAdditionalPrecisionYieldDoubles(): void;
			public testParsingNumbersThatAreBestRepresentedAsDoubles(): void;
			public testParsingOctalNumbers(): void;
			public testParsingHexNumbers(): void;
			public testParsingLargeHexValues(): void;
			public test64BitHexValues(): void;
			public testParsingWithCommentsAndWhitespace(): void;
			public testParsingArrays(): void;
			public testParsingObjects(): void;
			public testSyntaxProblemUnterminatedObject(): void;
			public testSyntaxProblemEmptyString(): void;
			public testSyntaxProblemUnterminatedArray(): void;
			public testSyntaxProblemMalformedObject(): void;
		}
		/**
		 * Parses a JSON (<a href="http://www.ietf.org/rfc/rfc4627.txt">RFC 4627</a>) encoded string into the corresponding object. Most clients of this class will use only need the #JSONTokener(String) constructor and #nextValue method. Example usage: <pre> String json = "{" + " \"query\": \"Pizza\", " + " \"locations\": [ 94043, 90210 ] " + "}";
		 */
		export class JSONTokener extends java.lang.Object {
			/**
			 * @param input in JSON encoded string. Null is not permitted and will yield a
			 */
			constructor(input: string);
			static class: java.lang.Class<org.json.JSONTokener>;
			/**
			 * Returns the next value from the input.
			 */
			public nextValue(): any;
			/**
			 * Returns the string up to but not including quote, unescaping any character escape sequences encountered along the way. The opening quote should have already been read. This consumes the closing quote, but does not include it in the returned string.
			 * @param quote either ' or ".
			 */
			public nextString(quote: string): string;
			/**
			 * Returns an exception containing the given message plus the current position and the entire input string.
			 */
			public syntaxError(message: string): org.json.JSONException;
			/**
			 * Returns the current position and the entire input string.
			 */
			public toString(): string;
			/**
			 * Returns true until the input has been exhausted.
			 */
			public more(): boolean;
			/**
			 * Returns the next available character, or the null character '\0' if all input has been exhausted. The return value of this method is ambiguous for JSON strings that contain the character '\0'.
			 */
			public next(): string;
			/**
			 * Returns the next available character if it equals c. Otherwise an exception is thrown.
			 */
			public next(c: string): string;
			/**
			 * Returns the next character that is not whitespace and does not belong to a comment. If the input is exhausted before such a character can be found, the null character '\0' is returned. The return value of this method is ambiguous for JSON strings that contain the character '\0'.
			 */
			public nextClean(): string;
			/**
			 * Returns the next length characters of the input.
			 */
			public next(length: number): string;
			/**
			 * Returns the String#trim trimmed string holding the characters up to but not including the first of: <ul> <li>any character in excluded <li>a newline character '\n' <li>a carriage return '\r' </ul>
			 */
			public nextTo(excluded: string): string;
			/**
			 * Advances past all input up to and including the next occurrence of thru. If the remaining input doesn't contain thru, the input is exhausted.
			 */
			public skipPast(thru: string): void;
			/**
			 * Advances past all input up to but not including the next occurrence of to. If the remaining input doesn't contain to, the input is unchanged.
			 */
			public skipTo(to: string): string;
			/**
			 * Unreads the most recent character of input. If no input characters have been read, the input is unchanged.
			 */
			public back(): void;
			/**
			 * Returns the integer [0..15] value for the given hex character, or -1 for non-hex input.
			 * @param hex a character in the ranges [0-9], [A-F] or [a-f]. Any other
			 */
			public static dehexchar(hex: string): number;
		}
		/**
		 * These tests checks self use calls. For the most part we doesn't attempt to cover self-use, except in those cases where our clean room implementation does it.
		 */
		export class SelfUseTest {
			constructor();
			static class: java.lang.Class<org.json.SelfUseTest>;
			public testObjectPut(): void;
			public testObjectAccumulate(): void;
			public testObjectGetBoolean(): void;
			public testObjectOptType(): void;
			public testToJSONArray(): void;
			public testPutAtIndex(): void;
			public testIsNull(): void;
			public testArrayGetType(): void;
			public testArrayOptType(): void;
			public testToJSONObject(): void;
			public testNextExpecting(): void;
			public testNextValue(): void;
		}
		/**
		 * A modifiable set of name/value mappings. Names are unique, non-null strings. Values may be any mix of JSONObject JSONObjects, JSONArray JSONArrays, Strings, Booleans, Integers, Longs, Doubles or #NULL. Values may not be null, Double#isNaN() NaNs, Double#isInfinite() infinities, or of any type not listed here.
		 */
		export class JSONObject extends java.lang.Object {
			/**
			 * Creates a JSONObject with no name/value mappings.
			 */
			constructor();
			/**
			 * Creates a new JSONObject by copying all name/value mappings from the given map.
			 * @param copyFrom a map whose keys are of type {@link String} and whose
			 */
			constructor(copyFrom: java.util.IMap<any, any>);
			/**
			 * Creates a new JSONObject with name/value mappings from the next object in the tokener.
			 * @param readFrom a tokener whose nextValue() method will yield a
			 */
			constructor(readFrom: org.json.JSONTokener);
			/**
			 * Creates a new JSONObject with name/value mappings from the JSON string.
			 * @param json a JSON-encoded string containing an object.
			 */
			constructor(json: string);
			/**
			 * Creates a new JSONObject by copying mappings for the listed names from the given object. Names that aren't present in copyFrom will be skipped.
			 */
			constructor(copyFrom: org.json.JSONObject, names: native.Array<string>);
			/**
			 * A sentinel value used to explicitly define a name with no value. Unlike null, names with this value: <ul> <li>show up in the #names array <li>show up in the #keys iterator <li>return true for #has(String) <li>do not throw on #get(String) <li>are included in the encoded JSON string. </ul>
			 */
			static NULL: any;
			static class: java.lang.Class<org.json.JSONObject>;
			/**
			 * Returns the number of name/value mappings in this object.
			 */
			public length(): number;
			/**
			 * Maps name to value, clobbering any existing name/value mapping with the same name.
			 */
			public put(name: string, value: boolean): org.json.JSONObject;
			/**
			 * Maps name to value, clobbering any existing name/value mapping with the same name.
			 * @param name value a finite value. May not be {@link Double#isNaN() NaNs} or
			 * @param value 
			 */
			public put(name: string, value: number): org.json.JSONObject;
			/**
			 * Maps name to value, clobbering any existing name/value mapping with the same name. If the value is null, any existing mapping for name is removed.
			 * @param name value a {@link JSONObject}, {@link JSONArray}, String, Boolean,
			 * @param value 
			 */
			public put(name: string, value: any): org.json.JSONObject;
			/**
			 * Equivalent to put(name, value) when both parameters are non-null; does nothing otherwise.
			 */
			public putOpt(name: string, value: any): org.json.JSONObject;
			/**
			 * Appends value to the array already mapped to name. If this object has no mapping for name, this inserts a new mapping. If the mapping exists but its value is not an array, the existing and new values are inserted in order into a new array which is itself mapped to name. In aggregate, this allows values to be added to a mapping one at a time.
			 * @param name value a {@link JSONObject}, {@link JSONArray}, String, Boolean,
			 * @param value 
			 */
			public accumulate(name: string, value: any): org.json.JSONObject;
			checkName(name: string): string;
			/**
			 * Removes the named mapping if it exists; does nothing otherwise.
			 */
			public remove(name: string): any;
			/**
			 * Returns true if this object has no mapping for name or if it has a mapping whose value is #NULL.
			 */
			public isNull(name: string): boolean;
			/**
			 * Returns true if this object has a mapping for name. The mapping may be #NULL.
			 */
			public has(name: string): boolean;
			/**
			 * Returns the value mapped by name.
			 */
			public get(name: string): any;
			/**
			 * Returns the value mapped by name, or null if no such mapping exists.
			 */
			public opt(name: string): any;
			/**
			 * Returns the value mapped by name if it exists and is a boolean or can be coerced to a boolean.
			 */
			public getBoolean(name: string): boolean;
			/**
			 * Returns the value mapped by name if it exists and is a boolean or can be coerced to a boolean. Returns false otherwise.
			 */
			public optBoolean(name: string): boolean;
			/**
			 * Returns the value mapped by name if it exists and is a boolean or can be coerced to a boolean. Returns fallback otherwise.
			 */
			public optBoolean(name: string, fallback: boolean): boolean;
			/**
			 * Returns the value mapped by name if it exists and is a double or can be coerced to a double.
			 */
			public getDouble(name: string): any;
			/**
			 * Returns the value mapped by name if it exists and is a double or can be coerced to a double. Returns NaN otherwise.
			 */
			public optDouble(name: string): any;
			/**
			 * Returns the value mapped by name if it exists and is a double or can be coerced to a double. Returns fallback otherwise.
			 */
			public optDouble(name: string, fallback: number): any;
			/**
			 * Returns the value mapped by name if it exists and is an int or can be coerced to an int.
			 */
			public getInt(name: string): number;
			/**
			 * Returns the value mapped by name if it exists and is an int or can be coerced to an int. Returns 0 otherwise.
			 */
			public optInt(name: string): number;
			/**
			 * Returns the value mapped by name if it exists and is an int or can be coerced to an int. Returns fallback otherwise.
			 */
			public optInt(name: string, fallback: number): number;
			/**
			 * Returns the value mapped by name if it exists and is a long or can be coerced to a long.
			 */
			public getLong(name: string): any;
			/**
			 * Returns the value mapped by name if it exists and is a long or can be coerced to a long. Returns 0 otherwise.
			 */
			public optLong(name: string): any;
			/**
			 * Returns the value mapped by name if it exists and is a long or can be coerced to a long. Returns fallback otherwise.
			 */
			public optLong(name: string, fallback: number): any;
			/**
			 * Returns the value mapped by name if it exists, coercing it if necessary.
			 */
			public getString(name: string): string;
			/**
			 * Returns the value mapped by name if it exists, coercing it if necessary. Returns the empty string if no such mapping exists.
			 */
			public optString(name: string): string;
			/**
			 * Returns the value mapped by name if it exists, coercing it if necessary. Returns fallback if no such mapping exists.
			 */
			public optString(name: string, fallback: string): string;
			/**
			 * Returns the value mapped by name if it exists and is a JSONArray.
			 */
			public getJSONArray(name: string): org.json.JSONArray;
			/**
			 * Returns the value mapped by name if it exists and is a JSONArray. Returns null otherwise.
			 */
			public optJSONArray(name: string): org.json.JSONArray;
			/**
			 * Returns the value mapped by name if it exists and is a JSONObject.
			 */
			public getJSONObject(name: string): org.json.JSONObject;
			/**
			 * Returns the value mapped by name if it exists and is a JSONObject. Returns null otherwise.
			 */
			public optJSONObject(name: string): org.json.JSONObject;
			/**
			 * Returns an array with the values corresponding to names. The array contains null for names that aren't mapped. This method returns null if names is either null or empty.
			 */
			public toJSONArray(names: org.json.JSONArray): org.json.JSONArray;
			/**
			 * Returns an iterator of the String names in this object. The returned iterator supports Iterator#remove() remove, which will remove the corresponding mapping from this object. If this object is modified after the iterator is returned, the iterator's behavior is undefined. The order of the keys is undefined.
			 */
			public keys(): java.util.IIterator<any>;
			/**
			 * Returns an array containing the string names in this object. This method returns null if this object contains no mappings.
			 */
			public names(): org.json.JSONArray;
			/**
			 * Encodes this object as a compact JSON string, such as: <pre>{"query":"Pizza","locations":[94043,90210]}</pre>
			 */
			public toString(): string;
			/**
			 * Encodes this object as a human readable JSON string for debugging, such as: <pre> { "query": "Pizza", "locations": [ 94043, 90210 ] }</pre>
			 * @param indentSpaces the number of spaces to indent for each level of
			 */
			public toString(indentSpaces: number): string;
			writeTo(stringer: org.json.JSONStringer): void;
			/**
			 * Encodes the number as a JSON string.
			 * @param number a finite value. May not be {@link Double#isNaN() NaNs} or
			 */
			public static numberToString(number: java.lang.Number): string;
			/**
			 * Encodes data as a JSON string. This applies quotes and any necessary character escaping.
			 * @param data the string to encode. Null will be interpreted as an empty
			 */
			public static quote(data: string): string;
		}
		/**
		 * A dense indexed sequence of values. Values may be any mix of JSONObject JSONObjects, other JSONArray JSONArrays, Strings, Booleans, Integers, Longs, Doubles, null or JSONObject#NULL. Values may not be Double#isNaN() NaNs, Double#isInfinite() infinities, or of any type not listed here.
		 */
		export class JSONArray extends java.lang.Object {
			/**
			 * Creates a JSONArray with no values.
			 */
			constructor();
			/**
			 * Creates a new JSONArray by copying all values from the given collection.
			 * @param copyFrom a collection whose values are of supported types.
			 */
			constructor(copyFrom: java.util.ICollection<any>);
			/**
			 * Creates a new JSONArray with values from the next array in the tokener.
			 * @param readFrom a tokener whose nextValue() method will yield a
			 */
			constructor(readFrom: org.json.JSONTokener);
			/**
			 * Creates a new JSONArray with values from the JSON string.
			 * @param json a JSON-encoded string containing an array.
			 */
			constructor(json: string);
			static class: java.lang.Class<org.json.JSONArray>;
			/**
			 * Returns the number of values in this array.
			 */
			public length(): number;
			/**
			 * Appends value to the end of this array.
			 */
			public put(value: boolean): org.json.JSONArray;
			/**
			 * Appends value to the end of this array.
			 * @param value a finite value. May not be {@link Double#isNaN() NaNs} or
			 */
			public put(value: number): org.json.JSONArray;
			/**
			 * Appends value to the end of this array.
			 * @param value a {@link JSONObject}, {@link JSONArray}, String, Boolean,
			 */
			public put(value: any): org.json.JSONArray;
			/**
			 * Sets the value at index to value, null padding this array to the required length if necessary. If a value already exists at index, it will be replaced.
			 */
			public put(index: number, value: boolean): org.json.JSONArray;
			/**
			 * Sets the value at index to value, null padding this array to the required length if necessary. If a value already exists at index, it will be replaced.
			 * @param index value a finite value. May not be {@link Double#isNaN() NaNs} or
			 * @param value 
			 */
			public put(index: number, value: number): org.json.JSONArray;
			/**
			 * Sets the value at index to value, null padding this array to the required length if necessary. If a value already exists at index, it will be replaced.
			 * @param index value a {@link JSONObject}, {@link JSONArray}, String, Boolean,
			 * @param value 
			 */
			public put(index: number, value: any): org.json.JSONArray;
			/**
			 * Returns true if this array has no value at index, or if its value is the null reference or JSONObject#NULL.
			 */
			public isNull(index: number): boolean;
			/**
			 * Returns the value at index.
			 */
			public get(index: number): any;
			/**
			 * Returns the value at index, or null if the array has no value at index.
			 */
			public opt(index: number): any;
			/**
			 * Returns the value at index if it exists and is a boolean or can be coerced to a boolean.
			 */
			public getBoolean(index: number): boolean;
			/**
			 * Returns the value at index if it exists and is a boolean or can be coerced to a boolean. Returns false otherwise.
			 */
			public optBoolean(index: number): boolean;
			/**
			 * Returns the value at index if it exists and is a boolean or can be coerced to a boolean. Returns fallback otherwise.
			 */
			public optBoolean(index: number, fallback: boolean): boolean;
			/**
			 * Returns the value at index if it exists and is a double or can be coerced to a double.
			 */
			public getDouble(index: number): any;
			/**
			 * Returns the value at index if it exists and is a double or can be coerced to a double. Returns NaN otherwise.
			 */
			public optDouble(index: number): any;
			/**
			 * Returns the value at index if it exists and is a double or can be coerced to a double. Returns fallback otherwise.
			 */
			public optDouble(index: number, fallback: number): any;
			/**
			 * Returns the value at index if it exists and is an int or can be coerced to an int.
			 */
			public getInt(index: number): number;
			/**
			 * Returns the value at index if it exists and is an int or can be coerced to an int. Returns 0 otherwise.
			 */
			public optInt(index: number): number;
			/**
			 * Returns the value at index if it exists and is an int or can be coerced to an int. Returns fallback otherwise.
			 */
			public optInt(index: number, fallback: number): number;
			/**
			 * Returns the value at index if it exists and is a long or can be coerced to a long.
			 */
			public getLong(index: number): any;
			/**
			 * Returns the value at index if it exists and is a long or can be coerced to a long. Returns 0 otherwise.
			 */
			public optLong(index: number): any;
			/**
			 * Returns the value at index if it exists and is a long or can be coerced to a long. Returns fallback otherwise.
			 */
			public optLong(index: number, fallback: number): any;
			/**
			 * Returns the value at index if it exists, coercing it if necessary.
			 */
			public getString(index: number): string;
			/**
			 * Returns the value at index if it exists, coercing it if necessary. Returns the empty string if no such value exists.
			 */
			public optString(index: number): string;
			/**
			 * Returns the value at index if it exists, coercing it if necessary. Returns fallback if no such value exists.
			 */
			public optString(index: number, fallback: string): string;
			/**
			 * Returns the value at index if it exists and is a JSONArray.
			 */
			public getJSONArray(index: number): org.json.JSONArray;
			/**
			 * Returns the value at index if it exists and is a JSONArray. Returns null otherwise.
			 */
			public optJSONArray(index: number): org.json.JSONArray;
			/**
			 * Returns the value at index if it exists and is a JSONObject.
			 */
			public getJSONObject(index: number): org.json.JSONObject;
			/**
			 * Returns the value at index if it exists and is a JSONObject. Returns null otherwise.
			 */
			public optJSONObject(index: number): org.json.JSONObject;
			/**
			 * Returns a new object whose values are the values in this array, and whose names are the values in names. Names and values are paired up by index from 0 through to the shorter array's length. Names that are not strings will be coerced to strings. This method returns null if either array is empty.
			 */
			public toJSONObject(names: org.json.JSONArray): org.json.JSONObject;
			/**
			 * Returns a new string by alternating this array's values with separator. This array's string values are quoted and have their special characters escaped. For example, the array containing the strings '12" pizza', 'taco' and 'soda' joined on '+' returns this: <pre>"12\" pizza"+"taco"+"soda"</pre>
			 */
			public join(separator: string): string;
			/**
			 * Encodes this array as a compact JSON string, such as: <pre>[94043,90210]</pre>
			 */
			public toString(): string;
			/**
			 * Encodes this array as a human readable JSON string for debugging, such as: <pre> [ 94043, 90210 ]</pre>
			 * @param indentSpaces the number of spaces to indent for each level of
			 */
			public toString(indentSpaces: number): string;
			writeTo(stringer: org.json.JSONStringer): void;
			public equals(o: any): boolean;
			public hashCode(): number;
		}
		/**
		 * This black box test was written without inspecting the non-free org.json sourcecode.
		 */
		export class JSONObjectTest {
			constructor();
			static class: java.lang.Class<org.json.JSONObjectTest>;
			public testEmptyObject(): void;
			public testEqualsAndHashCode(): void;
			public testGet(): void;
			public testPut(): void;
			public testPutNullRemoves(): void;
			public testPutOpt(): void;
			public testPutOptUnsupportedNumbers(): void;
			public testRemove(): void;
			public testBooleans(): void;
			public testCoerceStringToBoolean(): void;
			public testNumbers(): void;
			public testFloats(): void;
			public testOtherNumbers(): void;
			public testForeignObjects(): void;
			public testNullKeys(): void;
			public testStrings(): void;
			public testJSONObjects(): void;
			public testNullCoercionToString(): void;
			public testArrayCoercion(): void;
			public testObjectCoercion(): void;
			public testAccumulateValueChecking(): void;
			public testToJSONArray(): void;
			public testToJSONArrayMissingNames(): void;
			public testToJSONArrayNull(): void;
			public testToJSONArrayEndsUpEmpty(): void;
			public testToJSONArrayNonString(): void;
			public testPutUnsupportedNumbers(): void;
			public testPutUnsupportedNumbersAsObjects(): void;
			/**
			 * Although JSONObject is usually defensive about which numbers it accepts, it doesn't check inputs in its constructor.
			 */
			public testCreateWithUnsupportedNumbers(): void;
			public testToStringWithUnsupportedNumbers(): void;
			public testMapConstructorCopiesContents(): void;
			public testMapConstructorWithBogusEntries(): void;
			public testTokenerConstructor(): void;
			public testTokenerConstructorWrongType(): void;
			public testTokenerConstructorNull(): void;
			public testTokenerConstructorParseFail(): void;
			public testStringConstructor(): void;
			public testStringConstructorWrongType(): void;
			public testStringConstructorNull(): void;
			public testStringonstructorParseFail(): void;
			public testCopyConstructor(): void;
			public testCopyConstructorMissingName(): void;
			public testAccumulateMutatesInPlace(): void;
			public testAccumulateExistingArray(): void;
			public testAccumulatePutArray(): void;
			public testAccumulateNull(): void;
			public testEmptyStringKey(): void;
			public testNullValue(): void;
			public testHas(): void;
			public testOptNull(): void;
			public testToStringWithIndentFactor(): void;
			public testNames(): void;
			public testKeysEmptyObject(): void;
			public testKeys(): void;
			public testMutatingKeysMutatesObject(): void;
			public testQuote(): void;
			public testQuoteNull(): void;
			public testNumberToString(): void;
		}
		/**
		 * Thrown to indicate a problem with the JSON API. Such problems include: <ul> <li>Attempts to parse or construct malformed documents <li>Use of null as a name <li>Use of numeric types not available to JSON, such as Double#isNaN() NaNs or Double#isInfinite() infinities. <li>Lookups using an out of range index or nonexistent name <li>Type mismatches on lookups </ul>
		 */
		export class JSONException extends java.lang.Exception {
			constructor(s: string);
			static class: java.lang.Class<org.json.JSONException>;
		}
		export class JSON extends java.lang.Object {
			static class: java.lang.Class<org.json.JSON>;
			/**
			 * Returns the input if it is a JSON-permissible value; throws otherwise.
			 */
			static checkDouble(d: number): any;
			static toBoolean(value: any): boolean;
			static toDouble(value: any): java.lang.Double;
			static toInteger(value: any): java.lang.Integer;
			static toLong(value: any): java.lang.Long;
			static toString(value: any): string;
			public static typeMismatch(indexOrName: any, actual: any, requiredType: string): org.json.JSONException;
			public static typeMismatch(actual: any, requiredType: string): org.json.JSONException;
			/**
			 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
			 */
			toString(): string;
		}
		/**
		 * This black box test was written without inspecting the non-free org.json sourcecode.
		 */
		export class JSONArrayTest {
			constructor();
			static class: java.lang.Class<org.json.JSONArrayTest>;
			public testEmptyArray(): void;
			public testEqualsAndHashCode(): void;
			public testBooleans(): void;
			public testCoerceStringToBoolean(): void;
			public testNulls(): void;
			/**
			 * Our behaviour is questioned by this bug: http://code.google.com/p/android/issues/detail?id=7257
			 */
			public testParseNullYieldsJSONObjectNull(): void;
			public testNumbers(): void;
			public testStrings(): void;
			public testJoin(): void;
			public testJoinWithNull(): void;
			public testJoinWithSpecialCharacters(): void;
			public testToJSONObject(): void;
			public testToJSONObjectWithNulls(): void;
			public testToJSONObjectMoreNamesThanValues(): void;
			public testToJSONObjectMoreValuesThanNames(): void;
			public testToJSONObjectNullKey(): void;
			public testPutUnsupportedNumbers(): void;
			public testPutUnsupportedNumbersAsObject(): void;
			/**
			 * Although JSONArray is usually defensive about which numbers it accepts, it doesn't check inputs in its constructor.
			 */
			public testCreateWithUnsupportedNumbers(): void;
			public testToStringWithUnsupportedNumbers(): void;
			public testListConstructorCopiesContents(): void;
			public testTokenerConstructor(): void;
			public testTokenerConstructorWrongType(): void;
			public testTokenerConstructorNull(): void;
			public testTokenerConstructorParseFail(): void;
			public testStringConstructor(): void;
			public testStringConstructorWrongType(): void;
			public testStringConstructorNull(): void;
			public testStringConstructorParseFail(): void;
			public testCreate(): void;
			public testAccessOutOfBounds(): void;
		}
		/**
		 * Implements JSONObject#toString and JSONArray#toString. Most application developers should use those methods directly and disregard this API. For example:<pre> JSONObject object = ... String json = object.toString();</pre>
		 */
		export class JSONStringer extends java.lang.Object {
			constructor();
			static class: java.lang.Class<org.json.JSONStringer>;
			/**
			 * Begins encoding a new array. Each call to this method must be paired with a call to #endArray.
			 */
			public array(): org.json.JSONStringer;
			/**
			 * Ends encoding the current array.
			 */
			public endArray(): org.json.JSONStringer;
			/**
			 * Begins encoding a new object. Each call to this method must be paired with a call to #endObject.
			 */
			public object(): org.json.JSONStringer;
			/**
			 * Ends encoding the current object.
			 */
			public endObject(): org.json.JSONStringer;
			/**
			 * Enters a new scope by appending any necessary whitespace and the given bracket.
			 */
			open(empty: org.json.JSONStringer.Scope, openBracket: string): org.json.JSONStringer;
			/**
			 * Closes the current scope by appending any necessary whitespace and the given bracket.
			 */
			close(empty: org.json.JSONStringer.Scope, nonempty: org.json.JSONStringer.Scope, closeBracket: string): org.json.JSONStringer;
			/**
			 * Encodes value.
			 * @param value a {@link JSONObject}, {@link JSONArray}, String, Boolean,
			 */
			public value(value: any): org.json.JSONStringer;
			/**
			 * Encodes value to this stringer.
			 */
			public value(value: boolean): org.json.JSONStringer;
			/**
			 * Encodes value to this stringer.
			 * @param value a finite value. May not be {@link Double#isNaN() NaNs} or
			 */
			public value(value: number): org.json.JSONStringer;
			/**
			 * Encodes the key (property name) to this stringer.
			 * @param name the name of the forthcoming value. May not be null.
			 */
			public key(name: string): org.json.JSONStringer;
			/**
			 * Returns the encoded JSON string.
			 */
			public toString(): string;
		}
		export module JSONStringer {
			/**
			 * Lexical scoping elements within this stringer, necessary to insert the appropriate separator characters (ie. commas and colons) and to detect nesting errors.
			 */
			export enum Scope {
				EMPTY_ARRAY,
				NONEMPTY_ARRAY,
				EMPTY_OBJECT,
				DANGLING_KEY,
				NONEMPTY_OBJECT,
				NULL
			}
		}
		/**
		 * This black box test was written without inspecting the non-free org.json sourcecode.
		 */
		export class JSONStringerTest {
			constructor();
			static class: java.lang.Class<org.json.JSONStringerTest>;
			public testEmptyStringer(): void;
			public testValueJSONNull(): void;
			public testEmptyObject(): void;
			public testEmptyArray(): void;
			public testArray(): void;
			public testValueObjectMethods(): void;
			public testKeyValue(): void;
			/**
			 * Test what happens when extreme values are emitted. Such values are likely to be rounded during parsing.
			 */
			public testNumericRepresentations(): void;
			public testWeirdNumbers(): void;
			public testMismatchedScopes(): void;
			public testNullKey(): void;
			public testRepeatedKey(): void;
			public testEmptyKey(): void;
			public testEscaping(): void;
			public testJSONArrayAsValue(): void;
			public testJSONObjectAsValue(): void;
			public testArrayNestingMaxDepthSupports20(): void;
			public testObjectNestingMaxDepthSupports20(): void;
			public testMixedMaxDepthSupports20(): void;
			public testMaxDepthWithArrayValue(): void;
			public testMaxDepthWithObjectValue(): void;
			public testMultipleRoots(): void;
		}
		/**
		 * This black box test was written without inspecting the non-free org.json sourcecode.
		 */
		export class JSONTokenerTest {
			constructor();
			static class: java.lang.Class<org.json.JSONTokenerTest>;
			public testNulls(): void;
			public testEmptyString(): void;
			public testCharacterNavigation(): void;
			public testBackNextAndMore(): void;
			public testNextMatching(): void;
			public testNextN(): void;
			public testNextNWithAllRemaining(): void;
			public testNext0(): void;
			public testNextCleanComments(): void;
			public testNextCleanNestedCStyleComments(): void;
			/**
			 * Some applications rely on parsing '#' to lead an end-of-line comment. http://b/2571423
			 */
			public testNextCleanHashComments(): void;
			public testNextCleanCommentsTrailingSingleSlash(): void;
			public testNextCleanTrailingOpenComment(): void;
			public testNextCleanNewlineDelimiters(): void;
			public testNextCleanSkippedWhitespace(): void;
			/**
			 * Tests which characters tokener treats as ignorable whitespace. See Kevin Bourrillion's <a href="https://spreadsheets.google.com/pub?key=pd8dAQyHbdewRsnE5x5GzKQ">list of whitespace characters</a>.
			 */
			public testNextCleanRetainedWhitespace(): void;
			public testNextString(): void;
			public testNextStringNoDelimiter(): void;
			public testNextStringEscapedQuote(): void;
			public testNextStringUnicodeEscaped(): void;
			public testNextStringNonQuote(): void;
			public testNextTo(): void;
			public testNextToTrimming(): void;
			public testNextToTrailing(): void;
			public testNextToDoesntStopOnNull(): void;
			public testNextToConsumesNull(): void;
			public testSkipPast(): void;
			public testSkipTo(): void;
			public testSkipToStopsOnNull(): void;
			public testBomIgnoredAsFirstCharacterOfDocument(): void;
			public testBomTreatedAsCharacterInRestOfDocument(): void;
			public testDehexchar(): void;
		}
	}
	export module kxml2 {
		export module io {
			/**
			 * An XML pull parser with limited support for parsing internal DTDs.
			 */
			export class KXmlParser extends java.lang.Object implements org.xmlpull.v1.IXmlPullParser, java.io.ICloseable {
				constructor();
				static class: java.lang.Class<org.kxml2.io.KXmlParser>;
				/**
				 * Retains namespace attributes like xmlns="http://foo" or xmlns:foo="http:foo" in pulled elements. Most applications will only be interested in the effective namespaces of their elements, so these attributes aren't useful. But for structure preserving wrappers like DOM, it is necessary to keep the namespace data around.
				 */
				public keepNamespaceAttributes(): void;
				public next(): number;
				public nextToken(): number;
				public setInput(reader: java.io.Reader): void;
				public setInput(is: java.io.InputStream, charset: string): void;
				public close(): void;
				public getFeature(feature: string): boolean;
				public getInputEncoding(): string;
				public defineEntityReplacementText(entity: string, value: string): void;
				public getProperty(property: string): any;
				/**
				 * Returns the root element's name if it was declared in the DTD. This equals the first tag's name for valid documents.
				 */
				public getRootElementName(): string;
				/**
				 * Returns the document's system ID if it was declared. This is typically a string like http://www.w3.org/TR/html4/strict.dtd.
				 */
				public getSystemId(): string;
				/**
				 * Returns the document's public ID if it was declared. This is typically a string like -//W3C//DTD HTML 4.01//EN.
				 */
				public getPublicId(): string;
				public getNamespaceCount(depth: number): number;
				public getNamespacePrefix(pos: number): string;
				public getNamespaceUri(pos: number): string;
				public getNamespace(prefix: string): string;
				public getDepth(): number;
				public getPositionDescription(): string;
				public getLineNumber(): number;
				public getColumnNumber(): number;
				public isWhitespace(): boolean;
				public getText(): string;
				public getTextCharacters(poslen: native.Array<number>): native.Array<string>;
				public getNamespace(): string;
				public getName(): string;
				public getPrefix(): string;
				public isEmptyElementTag(): boolean;
				public getAttributeCount(): number;
				public getAttributeType(index: number): string;
				public isAttributeDefault(index: number): boolean;
				public getAttributeNamespace(index: number): string;
				public getAttributeName(index: number): string;
				public getAttributePrefix(index: number): string;
				public getAttributeValue(index: number): string;
				public getAttributeValue(namespace: string, name: string): string;
				public getEventType(): number;
				public nextTag(): number;
				public require(type: number, namespace: string, name: string): void;
				public nextText(): string;
				public setFeature(feature: string, value: boolean): void;
				public setProperty(property: string, value: any): void;
			}
			export module KXmlParser {
				/**
				 * Where a value is found impacts how that value is interpreted. For example, in attributes, "\n" must be replaced with a space character. In text, "]]>" is forbidden. In entity declarations, named references are not resolved.
				 */
				export enum ValueContext {
					ATTRIBUTE,
					TEXT,
					ENTITY_DECLARATION
				}
				/**
				 * A chain of buffers containing XML content. Each content source contains the parser's primary read buffer or the characters of entities actively being parsed.
				 */
				export class ContentSource extends java.lang.Object {
					static class: java.lang.Class<org.kxml2.io.KXmlParser.ContentSource>;
				}
			}
			export class KXmlSerializer extends java.lang.Object implements org.xmlpull.v1.IXmlSerializer {
				constructor();
				static class: java.lang.Class<org.kxml2.io.KXmlSerializer>;
				public docdecl(dd: string): void;
				public endDocument(): void;
				public entityRef(name: string): void;
				public getFeature(name: string): boolean;
				public getPrefix(namespace: string, create: boolean): string;
				public getProperty(name: string): any;
				public ignorableWhitespace(s: string): void;
				public setFeature(name: string, value: boolean): void;
				public setProperty(name: string, value: any): void;
				public setPrefix(prefix: string, namespace: string): void;
				public setOutput(writer: java.io.Writer): void;
				public setOutput(os: java.io.OutputStream, encoding: string): void;
				public startDocument(encoding: string, standalone: java.lang.Boolean): void;
				public startDocument(encoding: string, standalone: boolean): void;
				public startTag(namespace: string, name: string): org.xmlpull.v1.IXmlSerializer;
				public attribute(namespace: string, name: string, value: string): org.xmlpull.v1.IXmlSerializer;
				public flush(): void;
				public endTag(namespace: string, name: string): org.xmlpull.v1.IXmlSerializer;
				public getNamespace(): string;
				public getName(): string;
				public getDepth(): number;
				public text(text: string): org.xmlpull.v1.IXmlSerializer;
				public text(text: native.Array<string>, start: number, len: number): org.xmlpull.v1.IXmlSerializer;
				public cdsect(data: string): void;
				public comment(comment: string): void;
				public processingInstruction(pi: string): void;
			}
		}
	}
	export module xmlpull {
		export module v1 {
			/**
			 * XML Pull Parser is an interface that defines parsing functionality provided in <a href="http://www.xmlpull.org/">XMLPULL V1 API</a> (visit this website to learn more about API and its implementations).
			 */
			interface IXmlPullParser {
				/**
				 * Use this call to change the general behaviour of the parser, such as namespace processing or doctype declaration handling. This method must be called before the first call to next or nextToken. Otherwise, an exception is thrown.
				 */
				setFeature(name: string, state: boolean): void;
				/**
				 * Returns the current value of the given feature.
				 * @param name The name of feature to be retrieved.
				 */
				getFeature(name: string): boolean;
				/**
				 * Set the value of a property.
				 */
				setProperty(name: string, value: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The name of property to be retrieved.
				 */
				getProperty(name: string): any;
				/**
				 * Set the input source for parser to the given reader and resets the parser. The event type is set to the initial value START_DOCUMENT. Setting the reader to null will just stop parsing and reset parser state, allowing the parser to free internal resources such as parsing buffers.
				 */
				setInput(input: java.io.Reader): void;
				/**
				 * Sets the input stream the parser is going to process. This call resets the parser state and sets the event type to the initial value START_DOCUMENT.
				 * @param inputStream contains a raw byte input stream of possibly
				 * @param inputEncoding if not null it MUST be used as encoding for inputStream
				 */
				setInput(inputStream: java.io.InputStream, inputEncoding: string): void;
				/**
				 * Returns the input encoding if known, null otherwise. If setInput(InputStream, inputEncoding) was called with an inputEncoding value other than null, this value must be returned from this method. Otherwise, if inputEncoding is null and the parser supports the encoding detection feature (http://xmlpull.org/v1/doc/features.html#detect-encoding), it must return the detected encoding. If setInput(Reader) was called, null is returned. After first call to next if XML declaration was present this method will return encoding declared.
				 */
				getInputEncoding(): string;
				/**
				 * Set new value for entity replacement text as defined in <a href="http://www.w3.org/TR/REC-xml#intern-replacement">XML 1.0 Section 4.5 Construction of Internal Entity Replacement Text</a>. If FEATURE_PROCESS_DOCDECL or FEATURE_VALIDATION are set, calling this function will result in an exception -- when processing of DOCDECL is enabled, there is no need to the entity replacement text manually.
				 */
				defineEntityReplacementText(entityName: string, replacementText: string): void;
				/**
				 * Returns the numbers of elements in the namespace stack for the given depth. If namespaces are not enabled, 0 is returned.
				 */
				getNamespaceCount(depth: number): number;
				/**
				 * Returns the namespace prefix for the given position in the namespace stack. Default namespace declaration (xmlns='...') will have null as prefix. If the given index is out of range, an exception is thrown.
				 */
				getNamespacePrefix(pos: number): string;
				/**
				 * Returns the namespace URI for the given position in the namespace stack If the position is out of range, an exception is thrown.
				 */
				getNamespaceUri(pos: number): string;
				/**
				 * Returns the URI corresponding to the given prefix, depending on current state of the parser.
				 */
				getNamespace(prefix: string): string;
				/**
				 * Returns the current depth of the element. Outside the root element, the depth is 0. The depth is incremented by 1 when a start tag is reached. The depth is decremented AFTER the end tag event was observed.
				 */
				getDepth(): number;
				/**
				 * Returns a short text describing the current parser state, including the position, a description of the current event and the data source if known. This method is especially useful to provide meaningful error messages and for debugging purposes.
				 */
				getPositionDescription(): string;
				/**
				 * Returns the current line number, starting from 1. When the parser does not know the current line number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				getLineNumber(): number;
				/**
				 * Returns the current column number, starting from 0. When the parser does not know the current column number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				getColumnNumber(): number;
				/**
				 * Checks whether the current TEXT event contains only whitespace characters. For IGNORABLE_WHITESPACE, this is always true. For TEXT and CDSECT, false is returned when the current event text contains at least one non-white space character. For any other event type an exception is thrown.
				 */
				isWhitespace(): boolean;
				/**
				 * Returns the text content of the current event as String. The value returned depends on current event type, for example for TEXT event it is element content (this is typical case when next() is used).
				 */
				getText(): string;
				/**
				 * Returns the buffer that contains the text of the current event, as well as the start offset and length relevant for the current event. See getText(), next() and nextToken() for description of possible returned values.
				 * @param holderForStartAndLength Must hold an 2-element int array
				 */
				getTextCharacters(holderForStartAndLength: native.Array<number>): native.Array<string>;
				/**
				 * Returns the namespace URI of the current element. The default namespace is represented as empty string. If namespaces are not enabled, an empty String ("") is always returned. The current event must be START_TAG or END_TAG; otherwise, null is returned.
				 */
				getNamespace(): string;
				/**
				 * For START_TAG or END_TAG events, the (local) name of the current element is returned when namespaces are enabled. When namespace processing is disabled, the raw name is returned. For ENTITY_REF events, the entity name is returned. If the current event is not START_TAG, END_TAG, or ENTITY_REF, null is returned.
				 */
				getName(): string;
				/**
				 * Returns the prefix of the current element. If the element is in the default namespace (has no prefix), null is returned. If namespaces are not enabled, or the current event is not START_TAG or END_TAG, null is returned.
				 */
				getPrefix(): string;
				/**
				 * Returns true if the current event is START_TAG and the tag is degenerated (e.g. &lt;foobar/&gt;).
				 */
				isEmptyElementTag(): boolean;
				/**
				 * Returns the number of attributes of the current start tag, or -1 if the current event type is not START_TAG
				 */
				getAttributeCount(): number;
				/**
				 * Returns the namespace URI of the attribute with the given index (starts from 0). Returns an empty string ("") if namespaces are not enabled or the attribute has no namespace. Throws an IndexOutOfBoundsException if the index is out of range or the current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeNamespace(index: number): string;
				/**
				 * Returns the local name of the specified attribute if namespaces are enabled or just attribute name if namespaces are disabled. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeName(index: number): string;
				/**
				 * Returns the prefix of the specified attribute Returns null if the element has no prefix. If namespaces are disabled it will always return null. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributePrefix(index: number): string;
				/**
				 * Returns the type of the specified attribute If parser is non-validating it MUST return CDATA.
				 * @param index zero-based index of attribute
				 */
				getAttributeType(index: number): string;
				/**
				 * Returns if the specified attribute was not in input was declared in XML. If parser is non-validating it MUST always return false. This information is part of XML infoset:
				 * @param index zero-based index of attribute
				 */
				isAttributeDefault(index: number): boolean;
				/**
				 * Returns the given attributes value. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeValue(index: number): string;
				/**
				 * Returns the attributes value identified by namespace URI and namespace localName. If namespaces are disabled namespace must be null. If current event type is not START_TAG then IndexOutOfBoundsException will be thrown.
				 * @param namespace Namespace of the attribute if namespaces are enabled otherwise must be null
				 * @param name If namespaces enabled local name of attribute otherwise just attribute name
				 */
				getAttributeValue(namespace: string, name: string): string;
				/**
				 * Returns the type of the current event (START_TAG, END_TAG, TEXT, etc.)
				 */
				getEventType(): number;
				/**
				 * Get next parsing event - element content wil be coalesced and only one TEXT event must be returned for whole element content (comments and processing instructions will be ignored and entity references must be expanded or exception mus be thrown if entity reference can not be expanded). If element content is empty (content is "") then no TEXT event will be reported.
				 */
				next(): number;
				/**
				 * This method works similarly to next() but will expose additional event types (COMMENT, CDSECT, DOCDECL, ENTITY_REF, PROCESSING_INSTRUCTION, or IGNORABLE_WHITESPACE) if they are available in input.
				 */
				nextToken(): number;
				/**
				 * Test if the current event is of the given type and if the namespace and name do match. null will match any namespace and any name. If the test is not passed, an exception is thrown. The exception text indicates the parser position, the expected event and the current event that is not meeting the requirement.
				 */
				require(type: number, namespace: string, name: string): void;
				/**
				 * If current event is START_TAG then if next element is TEXT then element content is returned or if next event is END_TAG then empty string is returned, otherwise exception is thrown. After calling this function successfully parser will be positioned on END_TAG. 
				 */
				nextText(): string;
				/**
				 * Call next() and return event if it is START_TAG or END_TAG otherwise throw an exception. It will skip whitespace TEXT before actual tag if any.
				 */
				nextTag(): number;
			}
			export module IXmlPullParser {
				/**
				 * This constant represents the default namespace (empty string "")
				 */
				var NO_NAMESPACE: string;
				/**
				 * Signalize that parser is at the very beginning of the document and nothing was read yet. This event type can only be observed by calling getEvent() before the first call to next(), nextToken, or nextTag()</a>).
				 */
				var START_DOCUMENT: number;
				/**
				 * Logical end of the xml document. Returned from getEventType, next() and nextToken() when the end of the input document has been reached.
				 */
				var END_DOCUMENT: number;
				/**
				 * Returned from getEventType(), <a href="#next()">next()</a>, <a href="#nextToken()">nextToken()</a> when a start tag was read. The name of start tag is available from getName(), its namespace and prefix are available from getNamespace() and getPrefix() if <a href='#FEATURE_PROCESS_NAMESPACES'>namespaces are enabled</a>. See getAttribute* methods to retrieve element attributes. See getNamespace* methods to retrieve newly declared namespaces.
				 */
				var START_TAG: number;
				/**
				 * Returned from getEventType(), <a href="#next()">next()</a>, or <a href="#nextToken()">nextToken()</a> when an end tag was read. The name of start tag is available from getName(), its namespace and prefix are available from getNamespace() and getPrefix().
				 */
				var END_TAG: number;
				/**
				 * Character data was read and will is available by calling getText().
				 */
				var TEXT: number;
				/**
				 * A CDATA sections was just read; this token is available only from calls to <a href="#nextToken()">nextToken()</a>. A call to next() will accumulate various text events into a single event of type TEXT. The text contained in the CDATA section is available by calling getText().
				 */
				var CDSECT: number;
				/**
				 * An entity reference was just read; this token is available from <a href="#nextToken()">nextToken()</a> only. The entity name is available by calling getName(). If available, the replacement text can be obtained by calling getText(); otherwise, the user is responsible for resolving the entity reference. This event type is never returned from next(); next() will accumulate the replacement text and other text events to a single TEXT event.
				 */
				var ENTITY_REF: number;
				/**
				 * Ignorable whitespace was just read. This token is available only from <a href="#nextToken()">nextToken()</a>). For non-validating parsers, this event is only reported by nextToken() when outside the root element. Validating parsers may be able to detect ignorable whitespace at other locations. The ignorable whitespace string is available by calling getText()
				 */
				var IGNORABLE_WHITESPACE: number;
				/**
				 * An XML processing instruction declaration was just read. This event type is available only via <a href="#nextToken()">nextToken()</a>. getText() will return text that is inside the processing instruction. Calls to next() will skip processing instructions automatically. #nextToken #getText
				 */
				var PROCESSING_INSTRUCTION: number;
				/**
				 * An XML comment was just read. This event type is this token is available via <a href="#nextToken()">nextToken()</a> only; calls to next() will skip comments automatically. The content of the comment can be accessed using the getText() method.
				 */
				var COMMENT: number;
				/**
				 * An XML document type declaration was just read. This token is available from <a href="#nextToken()">nextToken()</a> only. The unparsed text inside the doctype is available via the getText() method.
				 */
				var DOCDECL: number;
				/**
				 * This array can be used to convert the event type integer constants such as START_TAG or TEXT to to a string. For example, the value of TYPES[START_TAG] is the string "START_TAG".
				 */
				var TYPES: native.Array<string>;
				/**
				 * This feature determines whether the parser processes namespaces. As for all features, the default value is false.
				 */
				var FEATURE_PROCESS_NAMESPACES: string;
				/**
				 * This feature determines whether namespace attributes are exposed via the attribute access methods. Like all features, the default value is false. This feature cannot be changed during parsing.
				 */
				var FEATURE_REPORT_NAMESPACE_ATTRIBUTES: string;
				/**
				 * This feature determines whether the document declaration is processed. If set to false, the DOCDECL event type is reported by nextToken() and ignored by next().
				 */
				var FEATURE_PROCESS_DOCDECL: string;
				/**
				 * If this feature is activated, all validation errors as defined in the XML 1.0 specification are reported. This implies that FEATURE_PROCESS_DOCDECL is true and both, the internal and external document type declaration will be processed.
				 */
				var FEATURE_VALIDATION: string;
			}
			/**
			 * This class is used to create implementations of XML Pull Parser defined in XMPULL V1 API. The name of actual factory class will be determined based on several parameters. It works similar to JAXP but tailored to work in J2ME environments (no access to system properties or file system) so name of parser class factory to use and its class used for loading (no class loader - on J2ME no access to context class loaders) must be passed explicitly. If no name of parser factory was passed (or is null) it will try to find name by searching in CLASSPATH for META-INF/services/org.xmlpull.v1.XmlPullParserFactory resource that should contain a comma separated list of class names of factories or parsers to try (in order from left to the right). If none found, it will throw an exception.
			 */
			export class XmlPullParserFactory extends java.lang.Object {
				/**
				 * Name of the system or midlet property that should be used for a system property containing a comma separated list of factory or parser class names (value: org.xmlpull.v1.XmlPullParserFactory).
				 */
				static PROPERTY_NAME: string;
				static class: java.lang.Class<org.xmlpull.v1.XmlPullParserFactory>;
				/**
				 * Set the features to be set when XML Pull Parser is created by this factory.
				 * @param name string with URI identifying feature
				 * @param state if true feature will be set; if false will be ignored
				 */
				public setFeature(name: string, state: boolean): void;
				/**
				 * Return the current value of the feature with given name.
				 * @param name The name of feature to be retrieved.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Specifies that the parser produced by this factory will provide support for XML namespaces. By default the value of this is set to false.
				 * @param awareness true if the parser produced by this code
				 */
				public setNamespaceAware(awareness: boolean): void;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which are namespace aware (it simply set feature XmlPullParser.FEATURE_PROCESS_NAMESPACES to true or false).
				 */
				public isNamespaceAware(): boolean;
				/**
				 * Specifies that the parser produced by this factory will be validating (it simply set feature XmlPullParser.FEATURE_VALIDATION to true or false).
				 * @param validating - if true the parsers created by this factory must be validating.
				 */
				public setValidating(validating: boolean): void;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which validate the XML content during parse.
				 */
				public isValidating(): boolean;
				/**
				 * Creates a new instance of a XML Pull Parser using the currently configured factory features.
				 */
				public newPullParser(): org.xmlpull.v1.IXmlPullParser;
				/**
				 * Creates a new instance of a XML Serializer.
				 */
				public newSerializer(): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Create a new instance of a PullParserFactory that can be used to create XML pull parsers (see class description for more details).
				 */
				public static newInstance(): org.xmlpull.v1.XmlPullParserFactory;
				public static newInstance(classNames: string, context: java.lang.Class<any>): org.xmlpull.v1.XmlPullParserFactory;
			}
			/**
			 * Define an interface to serialization of XML Infoset. This interface abstracts away if serialized XML is XML 1.0 compatible text or other formats of XML 1.0 serializations (such as binary XML for example with WBXML).
			 */
			interface IXmlSerializer {
				/**
				 * Set feature identified by name (recommended to be URI for uniqueness). Some well known optional features are defined in <a href="http://www.xmlpull.org/v1/doc/features.html"> http://www.xmlpull.org/v1/doc/features.html</a>.
				 */
				setFeature(name: string, state: boolean): void;
				/**
				 * Return the current value of the feature with given name.
				 * @param name The name of feature to be retrieved.
				 */
				getFeature(name: string): boolean;
				/**
				 * Set the value of a property. (the property name is recommended to be URI for uniqueness). Some well known optional properties are defined in <a href="http://www.xmlpull.org/v1/doc/properties.html"> http://www.xmlpull.org/v1/doc/properties.html</a>.
				 */
				setProperty(name: string, value: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The name of property to be retrieved.
				 */
				getProperty(name: string): any;
				/**
				 * Set to use binary output stream with given encoding.
				 */
				setOutput(os: java.io.OutputStream, encoding: string): void;
				/**
				 * Set the output to the given writer.
				 */
				setOutput(writer: java.io.Writer): void;
				/**
				 * Write &lt;&#63;xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null) This method can only be called just after setOutput.
				 */
				startDocument(encoding: string, standalone: boolean): void;
				/**
				 * Finish writing. All unclosed start tags will be closed and output will be flushed. After calling this method no more output can be serialized until next call to setOutput()
				 */
				endDocument(): void;
				/**
				 * Binds the given prefix to the given namespace. This call is valid for the next element including child elements. The prefix and namespace MUST be always declared even if prefix is not used in element (startTag() or attribute()) - for XML 1.0 it must result in declaring <code>xmlns:prefix='namespace'</code> (or <code>xmlns:prefix="namespace"</code> depending what character is used to quote attribute value).
				 * @param prefix must be not null (or IllegalArgumentException is thrown)
				 * @param namespace must be not null
				 */
				setPrefix(prefix: string, namespace: string): void;
				/**
				 * Return namespace that corresponds to given prefix If there is no prefix bound to this namespace return null but if generatePrefix is false then return generated prefix.
				 */
				getPrefix(namespace: string, generatePrefix: boolean): string;
				/**
				 * Returns the current depth of the element. Outside the root element, the depth is 0. The depth is incremented by 1 when startTag() is called. The depth is decremented after the call to endTag() event was observed.
				 */
				getDepth(): number;
				/**
				 * Returns the namespace URI of the current element as set by startTag().
				 */
				getNamespace(): string;
				/**
				 * Returns the name of the current element as set by startTag(). It can only be null before first call to startTag() or when last endTag() is called to close first startTag().
				 */
				getName(): string;
				/**
				 * Writes a start tag with the given namespace and name. If there is no prefix defined for the given namespace, a prefix will be defined automatically. The explicit prefixes for namespaces can be established by calling setPrefix() immediately before this method. If namespace is null no namespace prefix is printed but just name. If namespace is empty string then serializer will make sure that default empty namespace is declared (in XML 1.0 xmlns='') or throw IllegalStateException if default namespace is already bound to non-empty string.
				 */
				startTag(namespace: string, name: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Write an attribute. Calls to attribute() MUST follow a call to startTag() immediately. If there is no prefix defined for the given namespace, a prefix will be defined automatically. If namespace is null or empty string no namespace prefix is printed but just name.
				 */
				attribute(namespace: string, name: string, value: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Write end tag. Repetition of namespace and name is just for avoiding errors.
				 */
				endTag(namespace: string, name: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Writes text, where special XML chars are escaped automatically
				 */
				text(text: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Writes text, where special XML chars are escaped automatically
				 */
				text(buf: native.Array<string>, start: number, len: number): org.xmlpull.v1.IXmlSerializer;
				cdsect(text: string): void;
				entityRef(text: string): void;
				processingInstruction(text: string): void;
				comment(text: string): void;
				docdecl(text: string): void;
				ignorableWhitespace(text: string): void;
				/**
				 * Write all pending output to the stream. If method startTag() or attribute() was called then start tag is closed (final &gt;) before flush() is called on underlying output stream.
				 */
				flush(): void;
			}
			/**
			 * XML Pull Parser is an interface that defines parsing functionality provided in <a href="http://www.xmlpull.org/">XMLPULL V1 API</a> (visit this website to learn more about API and its implementations).
			 */
			export class XmlPullParser implements org.xmlpull.v1.IXmlPullParser {
				constructor(implementation: org.xmlpull.v1.IXmlPullParser);
				/**
				 * This constant represents the default namespace (empty string "")
				 */
				static NO_NAMESPACE: string;
				/**
				 * Signalize that parser is at the very beginning of the document and nothing was read yet. This event type can only be observed by calling getEvent() before the first call to next(), nextToken, or nextTag()</a>).
				 */
				static START_DOCUMENT: number;
				/**
				 * Logical end of the xml document. Returned from getEventType, next() and nextToken() when the end of the input document has been reached.
				 */
				static END_DOCUMENT: number;
				/**
				 * Returned from getEventType(), <a href="#next()">next()</a>, <a href="#nextToken()">nextToken()</a> when a start tag was read. The name of start tag is available from getName(), its namespace and prefix are available from getNamespace() and getPrefix() if <a href='#FEATURE_PROCESS_NAMESPACES'>namespaces are enabled</a>. See getAttribute* methods to retrieve element attributes. See getNamespace* methods to retrieve newly declared namespaces.
				 */
				static START_TAG: number;
				/**
				 * Returned from getEventType(), <a href="#next()">next()</a>, or <a href="#nextToken()">nextToken()</a> when an end tag was read. The name of start tag is available from getName(), its namespace and prefix are available from getNamespace() and getPrefix().
				 */
				static END_TAG: number;
				/**
				 * Character data was read and will is available by calling getText().
				 */
				static TEXT: number;
				/**
				 * A CDATA sections was just read; this token is available only from calls to <a href="#nextToken()">nextToken()</a>. A call to next() will accumulate various text events into a single event of type TEXT. The text contained in the CDATA section is available by calling getText().
				 */
				static CDSECT: number;
				/**
				 * An entity reference was just read; this token is available from <a href="#nextToken()">nextToken()</a> only. The entity name is available by calling getName(). If available, the replacement text can be obtained by calling getText(); otherwise, the user is responsible for resolving the entity reference. This event type is never returned from next(); next() will accumulate the replacement text and other text events to a single TEXT event.
				 */
				static ENTITY_REF: number;
				/**
				 * Ignorable whitespace was just read. This token is available only from <a href="#nextToken()">nextToken()</a>). For non-validating parsers, this event is only reported by nextToken() when outside the root element. Validating parsers may be able to detect ignorable whitespace at other locations. The ignorable whitespace string is available by calling getText()
				 */
				static IGNORABLE_WHITESPACE: number;
				/**
				 * An XML processing instruction declaration was just read. This event type is available only via <a href="#nextToken()">nextToken()</a>. getText() will return text that is inside the processing instruction. Calls to next() will skip processing instructions automatically. #nextToken #getText
				 */
				static PROCESSING_INSTRUCTION: number;
				/**
				 * An XML comment was just read. This event type is this token is available via <a href="#nextToken()">nextToken()</a> only; calls to next() will skip comments automatically. The content of the comment can be accessed using the getText() method.
				 */
				static COMMENT: number;
				/**
				 * An XML document type declaration was just read. This token is available from <a href="#nextToken()">nextToken()</a> only. The unparsed text inside the doctype is available via the getText() method.
				 */
				static DOCDECL: number;
				/**
				 * This array can be used to convert the event type integer constants such as START_TAG or TEXT to to a string. For example, the value of TYPES[START_TAG] is the string "START_TAG".
				 */
				static TYPES: native.Array<string>;
				/**
				 * This feature determines whether the parser processes namespaces. As for all features, the default value is false.
				 */
				static FEATURE_PROCESS_NAMESPACES: string;
				/**
				 * This feature determines whether namespace attributes are exposed via the attribute access methods. Like all features, the default value is false. This feature cannot be changed during parsing.
				 */
				static FEATURE_REPORT_NAMESPACE_ATTRIBUTES: string;
				/**
				 * This feature determines whether the document declaration is processed. If set to false, the DOCDECL event type is reported by nextToken() and ignored by next().
				 */
				static FEATURE_PROCESS_DOCDECL: string;
				/**
				 * If this feature is activated, all validation errors as defined in the XML 1.0 specification are reported. This implies that FEATURE_PROCESS_DOCDECL is true and both, the internal and external document type declaration will be processed.
				 */
				static FEATURE_VALIDATION: string;
				/**
				 * Use this call to change the general behaviour of the parser, such as namespace processing or doctype declaration handling. This method must be called before the first call to next or nextToken. Otherwise, an exception is thrown.
				 */
				public setFeature(name: string, state: boolean): void;
				/**
				 * Returns the current value of the given feature.
				 * @param name The name of feature to be retrieved.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Set the value of a property.
				 */
				public setProperty(name: string, value: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The name of property to be retrieved.
				 */
				public getProperty(name: string): any;
				/**
				 * Set the input source for parser to the given reader and resets the parser. The event type is set to the initial value START_DOCUMENT. Setting the reader to null will just stop parsing and reset parser state, allowing the parser to free internal resources such as parsing buffers.
				 */
				public setInput(input: java.io.Reader): void;
				/**
				 * Sets the input stream the parser is going to process. This call resets the parser state and sets the event type to the initial value START_DOCUMENT.
				 * @param inputStream contains a raw byte input stream of possibly
				 * @param inputEncoding if not null it MUST be used as encoding for inputStream
				 */
				public setInput(inputStream: java.io.InputStream, inputEncoding: string): void;
				/**
				 * Returns the input encoding if known, null otherwise. If setInput(InputStream, inputEncoding) was called with an inputEncoding value other than null, this value must be returned from this method. Otherwise, if inputEncoding is null and the parser supports the encoding detection feature (http://xmlpull.org/v1/doc/features.html#detect-encoding), it must return the detected encoding. If setInput(Reader) was called, null is returned. After first call to next if XML declaration was present this method will return encoding declared.
				 */
				public getInputEncoding(): string;
				/**
				 * Set new value for entity replacement text as defined in <a href="http://www.w3.org/TR/REC-xml#intern-replacement">XML 1.0 Section 4.5 Construction of Internal Entity Replacement Text</a>. If FEATURE_PROCESS_DOCDECL or FEATURE_VALIDATION are set, calling this function will result in an exception -- when processing of DOCDECL is enabled, there is no need to the entity replacement text manually.
				 */
				public defineEntityReplacementText(entityName: string, replacementText: string): void;
				/**
				 * Returns the numbers of elements in the namespace stack for the given depth. If namespaces are not enabled, 0 is returned.
				 */
				public getNamespaceCount(depth: number): number;
				/**
				 * Returns the namespace prefix for the given position in the namespace stack. Default namespace declaration (xmlns='...') will have null as prefix. If the given index is out of range, an exception is thrown.
				 */
				public getNamespacePrefix(pos: number): string;
				/**
				 * Returns the namespace URI for the given position in the namespace stack If the position is out of range, an exception is thrown.
				 */
				public getNamespaceUri(pos: number): string;
				/**
				 * Returns the URI corresponding to the given prefix, depending on current state of the parser.
				 */
				public getNamespace(prefix: string): string;
				/**
				 * Returns the current depth of the element. Outside the root element, the depth is 0. The depth is incremented by 1 when a start tag is reached. The depth is decremented AFTER the end tag event was observed.
				 */
				public getDepth(): number;
				/**
				 * Returns a short text describing the current parser state, including the position, a description of the current event and the data source if known. This method is especially useful to provide meaningful error messages and for debugging purposes.
				 */
				public getPositionDescription(): string;
				/**
				 * Returns the current line number, starting from 1. When the parser does not know the current line number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				public getLineNumber(): number;
				/**
				 * Returns the current column number, starting from 0. When the parser does not know the current column number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				public getColumnNumber(): number;
				/**
				 * Checks whether the current TEXT event contains only whitespace characters. For IGNORABLE_WHITESPACE, this is always true. For TEXT and CDSECT, false is returned when the current event text contains at least one non-white space character. For any other event type an exception is thrown.
				 */
				public isWhitespace(): boolean;
				/**
				 * Returns the text content of the current event as String. The value returned depends on current event type, for example for TEXT event it is element content (this is typical case when next() is used).
				 */
				public getText(): string;
				/**
				 * Returns the buffer that contains the text of the current event, as well as the start offset and length relevant for the current event. See getText(), next() and nextToken() for description of possible returned values.
				 * @param holderForStartAndLength Must hold an 2-element int array
				 */
				public getTextCharacters(holderForStartAndLength: native.Array<number>): native.Array<string>;
				/**
				 * Returns the namespace URI of the current element. The default namespace is represented as empty string. If namespaces are not enabled, an empty String ("") is always returned. The current event must be START_TAG or END_TAG; otherwise, null is returned.
				 */
				public getNamespace(): string;
				/**
				 * For START_TAG or END_TAG events, the (local) name of the current element is returned when namespaces are enabled. When namespace processing is disabled, the raw name is returned. For ENTITY_REF events, the entity name is returned. If the current event is not START_TAG, END_TAG, or ENTITY_REF, null is returned.
				 */
				public getName(): string;
				/**
				 * Returns the prefix of the current element. If the element is in the default namespace (has no prefix), null is returned. If namespaces are not enabled, or the current event is not START_TAG or END_TAG, null is returned.
				 */
				public getPrefix(): string;
				/**
				 * Returns true if the current event is START_TAG and the tag is degenerated (e.g. &lt;foobar/&gt;).
				 */
				public isEmptyElementTag(): boolean;
				/**
				 * Returns the number of attributes of the current start tag, or -1 if the current event type is not START_TAG
				 */
				public getAttributeCount(): number;
				/**
				 * Returns the namespace URI of the attribute with the given index (starts from 0). Returns an empty string ("") if namespaces are not enabled or the attribute has no namespace. Throws an IndexOutOfBoundsException if the index is out of range or the current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				public getAttributeNamespace(index: number): string;
				/**
				 * Returns the local name of the specified attribute if namespaces are enabled or just attribute name if namespaces are disabled. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				public getAttributeName(index: number): string;
				/**
				 * Returns the prefix of the specified attribute Returns null if the element has no prefix. If namespaces are disabled it will always return null. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				public getAttributePrefix(index: number): string;
				/**
				 * Returns the type of the specified attribute If parser is non-validating it MUST return CDATA.
				 * @param index zero-based index of attribute
				 */
				public getAttributeType(index: number): string;
				/**
				 * Returns if the specified attribute was not in input was declared in XML. If parser is non-validating it MUST always return false. This information is part of XML infoset:
				 * @param index zero-based index of attribute
				 */
				public isAttributeDefault(index: number): boolean;
				/**
				 * Returns the given attributes value. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				public getAttributeValue(index: number): string;
				/**
				 * Returns the attributes value identified by namespace URI and namespace localName. If namespaces are disabled namespace must be null. If current event type is not START_TAG then IndexOutOfBoundsException will be thrown.
				 * @param namespace Namespace of the attribute if namespaces are enabled otherwise must be null
				 * @param name If namespaces enabled local name of attribute otherwise just attribute name
				 */
				public getAttributeValue(namespace: string, name: string): string;
				/**
				 * Returns the type of the current event (START_TAG, END_TAG, TEXT, etc.)
				 */
				public getEventType(): number;
				/**
				 * Get next parsing event - element content wil be coalesced and only one TEXT event must be returned for whole element content (comments and processing instructions will be ignored and entity references must be expanded or exception mus be thrown if entity reference can not be expanded). If element content is empty (content is "") then no TEXT event will be reported.
				 */
				public next(): number;
				/**
				 * This method works similarly to next() but will expose additional event types (COMMENT, CDSECT, DOCDECL, ENTITY_REF, PROCESSING_INSTRUCTION, or IGNORABLE_WHITESPACE) if they are available in input.
				 */
				public nextToken(): number;
				/**
				 * Test if the current event is of the given type and if the namespace and name do match. null will match any namespace and any name. If the test is not passed, an exception is thrown. The exception text indicates the parser position, the expected event and the current event that is not meeting the requirement.
				 */
				public require(type: number, namespace: string, name: string): void;
				/**
				 * If current event is START_TAG then if next element is TEXT then element content is returned or if next event is END_TAG then empty string is returned, otherwise exception is thrown. After calling this function successfully parser will be positioned on END_TAG. 
				 */
				public nextText(): string;
				/**
				 * Call next() and return event if it is START_TAG or END_TAG otherwise throw an exception. It will skip whitespace TEXT before actual tag if any.
				 */
				public nextTag(): number;
			}
			/**
			 * This exception is thrown to signal XML Pull Parser related faults.
			 */
			export class XmlPullParserException extends java.lang.Exception {
				constructor(s: string);
				constructor(msg: string, parser: org.xmlpull.v1.IXmlPullParser, chain: java.lang.Throwable);
				static class: java.lang.Class<org.xmlpull.v1.XmlPullParserException>;
				public getDetail(): java.lang.Throwable;
				public getLineNumber(): number;
				public getColumnNumber(): number;
				public printStackTrace(): void;
				/**
				 * Writes a printable representation of this Throwable's stack trace to the specified print stream. If the Throwable contains a #getCause() cause, the method will be invoked recursively for the nested Throwable.
				 * @param err 
				 */
				printStackTrace(err: java.io.PrintStream): void;
				/**
				 * Writes a printable representation of this Throwable's stack trace to the specified print writer. If the Throwable contains a #getCause() cause, the method will be invoked recursively for the nested Throwable.
				 * @param err 
				 */
				printStackTrace(err: java.io.PrintWriter): void;
			}
			export module sax2 {
				/**
				 * SAX2 Driver that pulls events from XmlPullParser and comverts them into SAX2 callbacks.
				 */
				export class Driver extends java.lang.Object implements org.xml.sax.ILocator, org.xml.sax.IXMLReader, org.xml.sax.IAttributes {
					constructor();
					constructor(pp: org.xmlpull.v1.IXmlPullParser);
					static class: java.lang.Class<org.xmlpull.v1.sax2.Driver>;
					public getLength(): number;
					public getURI(index: number): string;
					public getLocalName(index: number): string;
					public getQName(index: number): string;
					public getType(index: number): string;
					public getValue(index: number): string;
					public getIndex(uri: string, localName: string): number;
					public getIndex(qName: string): number;
					public getType(uri: string, localName: string): string;
					public getType(qName: string): string;
					public getValue(uri: string, localName: string): string;
					public getValue(qName: string): string;
					public getPublicId(): string;
					public getSystemId(): string;
					public getLineNumber(): number;
					public getColumnNumber(): number;
					public getFeature(name: string): boolean;
					public setFeature(name: string, value: boolean): void;
					public getProperty(name: string): any;
					public setProperty(name: string, value: any): void;
					public setEntityResolver(resolver: org.xml.sax.IEntityResolver): void;
					public getEntityResolver(): org.xml.sax.IEntityResolver;
					public setDTDHandler(handler: org.xml.sax.IDTDHandler): void;
					public getDTDHandler(): org.xml.sax.IDTDHandler;
					public setContentHandler(handler: org.xml.sax.IContentHandler): void;
					public getContentHandler(): org.xml.sax.IContentHandler;
					public setErrorHandler(handler: org.xml.sax.IErrorHandler): void;
					public getErrorHandler(): org.xml.sax.IErrorHandler;
					public parse(source: org.xml.sax.InputSource): void;
					public parse(systemId: string): void;
					public parseSubTree(pp: org.xmlpull.v1.IXmlPullParser): void;
					/**
					 * Calls ContentHandler#startElement(String, String, String, Attributes) startElement on the <code>ContentHandler</code> with <code>this</code> driver object as the Attributes implementation. In default implementation Attributes object is valid only during this method call and may not be stored. Sub-classes can overwrite this method to cache attributes.
					 */
					protected startElement(namespace: string, localName: string, qName: string): void;
				}
			}
			/**
			 * Define an interface to serialization of XML Infoset. This interface abstracts away if serialized XML is XML 1.0 compatible text or other formats of XML 1.0 serializations (such as binary XML for example with WBXML).
			 */
			export class XmlSerializer implements org.xmlpull.v1.IXmlSerializer {
				constructor(implementation: org.xmlpull.v1.IXmlSerializer);
				/**
				 * Set feature identified by name (recommended to be URI for uniqueness). Some well known optional features are defined in <a href="http://www.xmlpull.org/v1/doc/features.html"> http://www.xmlpull.org/v1/doc/features.html</a>.
				 */
				public setFeature(name: string, state: boolean): void;
				/**
				 * Return the current value of the feature with given name.
				 * @param name The name of feature to be retrieved.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Set the value of a property. (the property name is recommended to be URI for uniqueness). Some well known optional properties are defined in <a href="http://www.xmlpull.org/v1/doc/properties.html"> http://www.xmlpull.org/v1/doc/properties.html</a>.
				 */
				public setProperty(name: string, value: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The name of property to be retrieved.
				 */
				public getProperty(name: string): any;
				/**
				 * Set to use binary output stream with given encoding.
				 */
				public setOutput(os: java.io.OutputStream, encoding: string): void;
				/**
				 * Set the output to the given writer.
				 */
				public setOutput(writer: java.io.Writer): void;
				/**
				 * Write &lt;&#63;xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null) This method can only be called just after setOutput.
				 */
				public startDocument(encoding: string, standalone: java.lang.Boolean): void;
				/**
				 * Write &lt;&#63;xml declaration with encoding (if encoding not null) and standalone flag (if standalone not null) This method can only be called just after setOutput.
				 */
				public startDocument(encoding: string, standalone: boolean): void;
				/**
				 * Finish writing. All unclosed start tags will be closed and output will be flushed. After calling this method no more output can be serialized until next call to setOutput()
				 */
				public endDocument(): void;
				/**
				 * Binds the given prefix to the given namespace. This call is valid for the next element including child elements. The prefix and namespace MUST be always declared even if prefix is not used in element (startTag() or attribute()) - for XML 1.0 it must result in declaring <code>xmlns:prefix='namespace'</code> (or <code>xmlns:prefix="namespace"</code> depending what character is used to quote attribute value).
				 * @param prefix must be not null (or IllegalArgumentException is thrown)
				 * @param namespace must be not null
				 */
				public setPrefix(prefix: string, namespace: string): void;
				/**
				 * Return namespace that corresponds to given prefix If there is no prefix bound to this namespace return null but if generatePrefix is false then return generated prefix.
				 */
				public getPrefix(namespace: string, generatePrefix: boolean): string;
				/**
				 * Returns the current depth of the element. Outside the root element, the depth is 0. The depth is incremented by 1 when startTag() is called. The depth is decremented after the call to endTag() event was observed.
				 */
				public getDepth(): number;
				/**
				 * Returns the namespace URI of the current element as set by startTag().
				 */
				public getNamespace(): string;
				/**
				 * Returns the name of the current element as set by startTag(). It can only be null before first call to startTag() or when last endTag() is called to close first startTag().
				 */
				public getName(): string;
				/**
				 * Writes a start tag with the given namespace and name. If there is no prefix defined for the given namespace, a prefix will be defined automatically. The explicit prefixes for namespaces can be established by calling setPrefix() immediately before this method. If namespace is null no namespace prefix is printed but just name. If namespace is empty string then serializer will make sure that default empty namespace is declared (in XML 1.0 xmlns='') or throw IllegalStateException if default namespace is already bound to non-empty string.
				 */
				public startTag(namespace: string, name: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Write an attribute. Calls to attribute() MUST follow a call to startTag() immediately. If there is no prefix defined for the given namespace, a prefix will be defined automatically. If namespace is null or empty string no namespace prefix is printed but just name.
				 */
				public attribute(namespace: string, name: string, value: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Write end tag. Repetition of namespace and name is just for avoiding errors.
				 */
				public endTag(namespace: string, name: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Writes text, where special XML chars are escaped automatically
				 */
				public text(text: string): org.xmlpull.v1.IXmlSerializer;
				/**
				 * Writes text, where special XML chars are escaped automatically
				 */
				public text(buf: native.Array<string>, start: number, len: number): org.xmlpull.v1.IXmlSerializer;
				public cdsect(text: string): void;
				public entityRef(text: string): void;
				public processingInstruction(text: string): void;
				public comment(text: string): void;
				public docdecl(text: string): void;
				public ignorableWhitespace(text: string): void;
				/**
				 * Write all pending output to the stream. If method startTag() or attribute() was called then start tag is closed (final &gt;) before flush() is called on underlying output stream.
				 */
				public flush(): void;
			}
		}
	}
}
declare module javax {
	export module microedition {
		export module khronos {
			export module opengles {
				export class GL11 implements javax.microedition.khronos.opengles.IGL10, javax.microedition.khronos.opengles.IGL11 {
					constructor(implementation: javax.microedition.khronos.opengles.IGL11);
					static GL_ACTIVE_TEXTURE: number;
					static GL_ADD_SIGNED: number;
					static GL_ALPHA_SCALE: number;
					static GL_ALPHA_TEST_FUNC: number;
					static GL_ALPHA_TEST_REF: number;
					static GL_ARRAY_BUFFER: number;
					static GL_ARRAY_BUFFER_BINDING: number;
					static GL_BLEND_DST: number;
					static GL_BLEND_SRC: number;
					static GL_BUFFER_ACCESS: number;
					static GL_BUFFER_SIZE: number;
					static GL_BUFFER_USAGE: number;
					static GL_CLIENT_ACTIVE_TEXTURE: number;
					static GL_CLIP_PLANE0: number;
					static GL_CLIP_PLANE1: number;
					static GL_CLIP_PLANE2: number;
					static GL_CLIP_PLANE3: number;
					static GL_CLIP_PLANE4: number;
					static GL_CLIP_PLANE5: number;
					static GL_COLOR_ARRAY_BUFFER_BINDING: number;
					static GL_COLOR_ARRAY_POINTER: number;
					static GL_COLOR_ARRAY_SIZE: number;
					static GL_COLOR_ARRAY_STRIDE: number;
					static GL_COLOR_ARRAY_TYPE: number;
					static GL_COLOR_CLEAR_VALUE: number;
					static GL_COLOR_WRITEMASK: number;
					static GL_COMBINE: number;
					static GL_COMBINE_ALPHA: number;
					static GL_COMBINE_RGB: number;
					static GL_CONSTANT: number;
					static GL_COORD_REPLACE_OES: number;
					static GL_CULL_FACE_MODE: number;
					static GL_CURRENT_COLOR: number;
					static GL_CURRENT_NORMAL: number;
					static GL_CURRENT_TEXTURE_COORDS: number;
					static GL_DEPTH_CLEAR_VALUE: number;
					static GL_DEPTH_FUNC: number;
					static GL_DEPTH_RANGE: number;
					static GL_DEPTH_WRITEMASK: number;
					static GL_DOT3_RGB: number;
					static GL_DOT3_RGBA: number;
					static GL_DYNAMIC_DRAW: number;
					static GL_ELEMENT_ARRAY_BUFFER: number;
					static GL_ELEMENT_ARRAY_BUFFER_BINDING: number;
					static GL_FRONT_FACE: number;
					static GL_GENERATE_MIPMAP: number;
					static GL_GENERATE_MIPMAP_HINT: number;
					static GL_INTERPOLATE: number;
					static GL_LINE_WIDTH: number;
					static GL_LOGIC_OP_MODE: number;
					static GL_MATRIX_MODE: number;
					static GL_MAX_CLIP_PLANES: number;
					static GL_MODELVIEW_MATRIX: number;
					static GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: number;
					static GL_MODELVIEW_STACK_DEPTH: number;
					static GL_NORMAL_ARRAY_BUFFER_BINDING: number;
					static GL_NORMAL_ARRAY_POINTER: number;
					static GL_NORMAL_ARRAY_STRIDE: number;
					static GL_NORMAL_ARRAY_TYPE: number;
					static GL_OPERAND0_ALPHA: number;
					static GL_OPERAND0_RGB: number;
					static GL_OPERAND1_ALPHA: number;
					static GL_OPERAND1_RGB: number;
					static GL_OPERAND2_ALPHA: number;
					static GL_OPERAND2_RGB: number;
					static GL_POINT_DISTANCE_ATTENUATION: number;
					static GL_POINT_FADE_THRESHOLD_SIZE: number;
					static GL_POINT_SIZE: number;
					static GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: number;
					static GL_POINT_SIZE_ARRAY_OES: number;
					static GL_POINT_SIZE_ARRAY_POINTER_OES: number;
					static GL_POINT_SIZE_ARRAY_STRIDE_OES: number;
					static GL_POINT_SIZE_ARRAY_TYPE_OES: number;
					static GL_POINT_SIZE_MAX: number;
					static GL_POINT_SIZE_MIN: number;
					static GL_POINT_SPRITE_OES: number;
					static GL_POLYGON_OFFSET_FACTOR: number;
					static GL_POLYGON_OFFSET_UNITS: number;
					static GL_PREVIOUS: number;
					static GL_PRIMARY_COLOR: number;
					static GL_PROJECTION_MATRIX: number;
					static GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: number;
					static GL_PROJECTION_STACK_DEPTH: number;
					static GL_RGB_SCALE: number;
					static GL_SAMPLE_BUFFERS: number;
					static GL_SAMPLE_COVERAGE_INVERT: number;
					static GL_SAMPLE_COVERAGE_VALUE: number;
					static GL_SAMPLES: number;
					static GL_SCISSOR_BOX: number;
					static GL_SHADE_MODEL: number;
					static GL_SRC0_ALPHA: number;
					static GL_SRC0_RGB: number;
					static GL_SRC1_ALPHA: number;
					static GL_SRC1_RGB: number;
					static GL_SRC2_ALPHA: number;
					static GL_SRC2_RGB: number;
					static GL_STATIC_DRAW: number;
					static GL_STENCIL_CLEAR_VALUE: number;
					static GL_STENCIL_FAIL: number;
					static GL_STENCIL_FUNC: number;
					static GL_STENCIL_PASS_DEPTH_FAIL: number;
					static GL_STENCIL_PASS_DEPTH_PASS: number;
					static GL_STENCIL_REF: number;
					static GL_STENCIL_VALUE_MASK: number;
					static GL_STENCIL_WRITEMASK: number;
					static GL_SUBTRACT: number;
					static GL_TEXTURE_BINDING_2D: number;
					static GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: number;
					static GL_TEXTURE_COORD_ARRAY_POINTER: number;
					static GL_TEXTURE_COORD_ARRAY_SIZE: number;
					static GL_TEXTURE_COORD_ARRAY_STRIDE: number;
					static GL_TEXTURE_COORD_ARRAY_TYPE: number;
					static GL_TEXTURE_MATRIX: number;
					static GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: number;
					static GL_TEXTURE_STACK_DEPTH: number;
					static GL_VERTEX_ARRAY_BUFFER_BINDING: number;
					static GL_VERTEX_ARRAY_POINTER: number;
					static GL_VERTEX_ARRAY_SIZE: number;
					static GL_VERTEX_ARRAY_STRIDE: number;
					static GL_VERTEX_ARRAY_TYPE: number;
					static GL_VIEWPORT: number;
					static GL_WRITE_ONLY: number;
					public glGetPointerv(pname: number, params: native.Array<java.nio.Buffer>): void;
					public glBindBuffer(target: number, buffer: number): void;
					public glBufferData(target: number, size: number, data: java.nio.Buffer, usage: number): void;
					public glBufferSubData(target: number, offset: number, size: number, data: java.nio.Buffer): void;
					public glClipPlanef(plane: number, equation: native.Array<number>, offset: number): void;
					public glClipPlanef(plane: number, equation: java.nio.FloatBuffer): void;
					public glClipPlanex(plane: number, equation: native.Array<number>, offset: number): void;
					public glClipPlanex(plane: number, equation: java.nio.IntBuffer): void;
					public glColor4ub(red: number, green: number, blue: number, alpha: number): void;
					public glColorPointer(size: number, type: number, stride: number, offset: number): void;
					public glDeleteBuffers(n: number, buffers: native.Array<number>, offset: number): void;
					public glDeleteBuffers(n: number, buffers: java.nio.IntBuffer): void;
					public glDrawElements(mode: number, count: number, type: number, offset: number): void;
					public glGenBuffers(n: number, buffers: native.Array<number>, offset: number): void;
					public glGenBuffers(n: number, buffers: java.nio.IntBuffer): void;
					public glGetBooleanv(pname: number, params: native.Array<boolean>, offset: number): void;
					public glGetBooleanv(pname: number, params: java.nio.IntBuffer): void;
					public glGetBufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetBufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetClipPlanef(pname: number, eqn: native.Array<number>, offset: number): void;
					public glGetClipPlanef(pname: number, eqn: java.nio.FloatBuffer): void;
					public glGetClipPlanex(pname: number, eqn: native.Array<number>, offset: number): void;
					public glGetClipPlanex(pname: number, eqn: java.nio.IntBuffer): void;
					public glGetFixedv(pname: number, params: native.Array<number>, offset: number): void;
					public glGetFixedv(pname: number, params: java.nio.IntBuffer): void;
					public glGetFloatv(pname: number, params: native.Array<number>, offset: number): void;
					public glGetFloatv(pname: number, params: java.nio.FloatBuffer): void;
					public glGetLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
					public glGetLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
					public glGetMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetTexEnviv(env: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexEnviv(env: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetTexEnvxv(env: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexEnvxv(env: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					public glGetTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glIsBuffer(buffer: number): boolean;
					public glIsEnabled(cap: number): boolean;
					public glIsTexture(texture: number): boolean;
					public glNormalPointer(type: number, stride: number, offset: number): void;
					public glPointParameterf(pname: number, param: number): void;
					public glPointParameterfv(pname: number, params: native.Array<number>, offset: number): void;
					public glPointParameterfv(pname: number, params: java.nio.FloatBuffer): void;
					public glPointParameterx(pname: number, param: number): void;
					public glPointParameterxv(pname: number, params: native.Array<number>, offset: number): void;
					public glPointParameterxv(pname: number, params: java.nio.IntBuffer): void;
					public glPointSizePointerOES(type: number, stride: number, pointer: java.nio.Buffer): void;
					public glTexCoordPointer(size: number, type: number, stride: number, offset: number): void;
					public glTexEnvi(target: number, pname: number, param: number): void;
					public glTexEnviv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexEnviv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					public glTexParameteri(target: number, pname: number, param: number): void;
					public glTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glVertexPointer(size: number, type: number, stride: number, offset: number): void;
					glActiveTexture(texture: number): void;
					glAlphaFunc(func: number, ref: number): void;
					glAlphaFuncx(func: number, ref: number): void;
					glBindTexture(target: number, texture: number): void;
					glBlendFunc(sfactor: number, dfactor: number): void;
					glClear(mask: number): void;
					glClearColor(red: number, green: number, blue: number, alpha: number): void;
					glClearColorx(red: number, green: number, blue: number, alpha: number): void;
					glClearDepthf(depth: number): void;
					glClearDepthx(depth: number): void;
					glClearStencil(s: number): void;
					glClientActiveTexture(texture: number): void;
					glColor4f(red: number, green: number, blue: number, alpha: number): void;
					glColor4x(red: number, green: number, blue: number, alpha: number): void;
					glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
					glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
					glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
					glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
					glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
					glCullFace(mode: number): void;
					glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
					glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
					glDepthFunc(func: number): void;
					glDepthMask(flag: boolean): void;
					glDepthRangef(zNear: number, zFar: number): void;
					glDepthRangex(zNear: number, zFar: number): void;
					glDisable(cap: number): void;
					glDisableClientState(array: number): void;
					glDrawArrays(mode: number, first: number, count: number): void;
					glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
					glEnable(cap: number): void;
					glEnableClientState(array: number): void;
					glFinish(): void;
					glFlush(): void;
					glFogf(pname: number, param: number): void;
					glFogfv(pname: number, params: native.Array<number>, offset: number): void;
					glFogfv(pname: number, params: java.nio.FloatBuffer): void;
					glFogx(pname: number, param: number): void;
					glFogxv(pname: number, params: native.Array<number>, offset: number): void;
					glFogxv(pname: number, params: java.nio.IntBuffer): void;
					glFrontFace(mode: number): void;
					glFrustumf(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glFrustumx(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
					glGenTextures(n: number, textures: java.nio.IntBuffer): void;
					glGetError(): number;
					glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
					glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
					glGetString(name: number): string;
					glHint(target: number, mode: number): void;
					glLightModelf(pname: number, param: number): void;
					glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
					glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
					glLightModelx(pname: number, param: number): void;
					glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
					glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
					glLightf(light: number, pname: number, param: number): void;
					glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
					glLightx(light: number, pname: number, param: number): void;
					glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
					glLineWidth(width: number): void;
					glLineWidthx(width: number): void;
					glLoadIdentity(): void;
					glLoadMatrixf(m: native.Array<number>, offset: number): void;
					glLoadMatrixf(m: java.nio.FloatBuffer): void;
					glLoadMatrixx(m: native.Array<number>, offset: number): void;
					glLoadMatrixx(m: java.nio.IntBuffer): void;
					glLogicOp(opcode: number): void;
					glMaterialf(face: number, pname: number, param: number): void;
					glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
					glMaterialx(face: number, pname: number, param: number): void;
					glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
					glMatrixMode(mode: number): void;
					glMultMatrixf(m: native.Array<number>, offset: number): void;
					glMultMatrixf(m: java.nio.FloatBuffer): void;
					glMultMatrixx(m: native.Array<number>, offset: number): void;
					glMultMatrixx(m: java.nio.IntBuffer): void;
					glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
					glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
					glNormal3f(nx: number, ny: number, nz: number): void;
					glNormal3x(nx: number, ny: number, nz: number): void;
					glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
					glOrthof(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glOrthox(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glPixelStorei(pname: number, param: number): void;
					glPointSize(size: number): void;
					glPointSizex(size: number): void;
					glPolygonOffset(factor: number, units: number): void;
					glPolygonOffsetx(factor: number, units: number): void;
					glPopMatrix(): void;
					glPushMatrix(): void;
					glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glRotatef(angle: number, x: number, y: number, z: number): void;
					glRotatex(angle: number, x: number, y: number, z: number): void;
					glSampleCoverage(value: number, invert: boolean): void;
					glSampleCoveragex(value: number, invert: boolean): void;
					glScalef(x: number, y: number, z: number): void;
					glScalex(x: number, y: number, z: number): void;
					glScissor(x: number, y: number, width: number, height: number): void;
					glShadeModel(mode: number): void;
					glStencilFunc(func: number, ref: number, mask: number): void;
					glStencilMask(mask: number): void;
					glStencilOp(fail: number, zfail: number, zpass: number): void;
					glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glTexEnvf(target: number, pname: number, param: number): void;
					glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					glTexEnvx(target: number, pname: number, param: number): void;
					glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glTexParameterf(target: number, pname: number, param: number): void;
					glTexParameterx(target: number, pname: number, param: number): void;
					glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glTranslatef(x: number, y: number, z: number): void;
					glTranslatex(x: number, y: number, z: number): void;
					glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glViewport(x: number, y: number, width: number, height: number): void;
				}
				export class GL implements javax.microedition.khronos.opengles.IGL {
					constructor(implementation: javax.microedition.khronos.opengles.IGL);
				}
				export class GL10 implements javax.microedition.khronos.opengles.IGL, javax.microedition.khronos.opengles.IGL10 {
					constructor(implementation: javax.microedition.khronos.opengles.IGL10);
					static GL_ADD: number;
					static GL_ALIASED_LINE_WIDTH_RANGE: number;
					static GL_ALIASED_POINT_SIZE_RANGE: number;
					static GL_ALPHA: number;
					static GL_ALPHA_BITS: number;
					static GL_ALPHA_TEST: number;
					static GL_ALWAYS: number;
					static GL_AMBIENT: number;
					static GL_AMBIENT_AND_DIFFUSE: number;
					static GL_AND: number;
					static GL_AND_INVERTED: number;
					static GL_AND_REVERSE: number;
					static GL_BACK: number;
					static GL_BLEND: number;
					static GL_BLUE_BITS: number;
					static GL_BYTE: number;
					static GL_CCW: number;
					static GL_CLAMP_TO_EDGE: number;
					static GL_CLEAR: number;
					static GL_COLOR_ARRAY: number;
					static GL_COLOR_BUFFER_BIT: number;
					static GL_COLOR_LOGIC_OP: number;
					static GL_COLOR_MATERIAL: number;
					static GL_COMPRESSED_TEXTURE_FORMATS: number;
					static GL_CONSTANT_ATTENUATION: number;
					static GL_COPY: number;
					static GL_COPY_INVERTED: number;
					static GL_CULL_FACE: number;
					static GL_CW: number;
					static GL_DECAL: number;
					static GL_DECR: number;
					static GL_DEPTH_BITS: number;
					static GL_DEPTH_BUFFER_BIT: number;
					static GL_DEPTH_TEST: number;
					static GL_DIFFUSE: number;
					static GL_DITHER: number;
					static GL_DONT_CARE: number;
					static GL_DST_ALPHA: number;
					static GL_DST_COLOR: number;
					static GL_EMISSION: number;
					static GL_EQUAL: number;
					static GL_EQUIV: number;
					static GL_EXP: number;
					static GL_EXP2: number;
					static GL_EXTENSIONS: number;
					static GL_FALSE: number;
					static GL_FASTEST: number;
					static GL_FIXED: number;
					static GL_FLAT: number;
					static GL_FLOAT: number;
					static GL_FOG: number;
					static GL_FOG_COLOR: number;
					static GL_FOG_DENSITY: number;
					static GL_FOG_END: number;
					static GL_FOG_HINT: number;
					static GL_FOG_MODE: number;
					static GL_FOG_START: number;
					static GL_FRONT: number;
					static GL_FRONT_AND_BACK: number;
					static GL_GEQUAL: number;
					static GL_GREATER: number;
					static GL_GREEN_BITS: number;
					static GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: number;
					static GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: number;
					static GL_INCR: number;
					static GL_INVALID_ENUM: number;
					static GL_INVALID_OPERATION: number;
					static GL_INVALID_VALUE: number;
					static GL_INVERT: number;
					static GL_KEEP: number;
					static GL_LEQUAL: number;
					static GL_LESS: number;
					static GL_LIGHT_MODEL_AMBIENT: number;
					static GL_LIGHT_MODEL_TWO_SIDE: number;
					static GL_LIGHT0: number;
					static GL_LIGHT1: number;
					static GL_LIGHT2: number;
					static GL_LIGHT3: number;
					static GL_LIGHT4: number;
					static GL_LIGHT5: number;
					static GL_LIGHT6: number;
					static GL_LIGHT7: number;
					static GL_LIGHTING: number;
					static GL_LINE_LOOP: number;
					static GL_LINE_SMOOTH: number;
					static GL_LINE_SMOOTH_HINT: number;
					static GL_LINE_STRIP: number;
					static GL_LINEAR: number;
					static GL_LINEAR_ATTENUATION: number;
					static GL_LINEAR_MIPMAP_LINEAR: number;
					static GL_LINEAR_MIPMAP_NEAREST: number;
					static GL_LINES: number;
					static GL_LUMINANCE: number;
					static GL_LUMINANCE_ALPHA: number;
					static GL_MAX_ELEMENTS_INDICES: number;
					static GL_MAX_ELEMENTS_VERTICES: number;
					static GL_MAX_LIGHTS: number;
					static GL_MAX_MODELVIEW_STACK_DEPTH: number;
					static GL_MAX_PROJECTION_STACK_DEPTH: number;
					static GL_MAX_TEXTURE_SIZE: number;
					static GL_MAX_TEXTURE_STACK_DEPTH: number;
					static GL_MAX_TEXTURE_UNITS: number;
					static GL_MAX_VIEWPORT_DIMS: number;
					static GL_MODELVIEW: number;
					static GL_MODULATE: number;
					static GL_MULTISAMPLE: number;
					static GL_NAND: number;
					static GL_NEAREST: number;
					static GL_NEAREST_MIPMAP_LINEAR: number;
					static GL_NEAREST_MIPMAP_NEAREST: number;
					static GL_NEVER: number;
					static GL_NICEST: number;
					static GL_NO_ERROR: number;
					static GL_NOOP: number;
					static GL_NOR: number;
					static GL_NORMAL_ARRAY: number;
					static GL_NORMALIZE: number;
					static GL_NOTEQUAL: number;
					static GL_NUM_COMPRESSED_TEXTURE_FORMATS: number;
					static GL_ONE: number;
					static GL_ONE_MINUS_DST_ALPHA: number;
					static GL_ONE_MINUS_DST_COLOR: number;
					static GL_ONE_MINUS_SRC_ALPHA: number;
					static GL_ONE_MINUS_SRC_COLOR: number;
					static GL_OR: number;
					static GL_OR_INVERTED: number;
					static GL_OR_REVERSE: number;
					static GL_OUT_OF_MEMORY: number;
					static GL_PACK_ALIGNMENT: number;
					static GL_PALETTE4_R5_G6_B5_OES: number;
					static GL_PALETTE4_RGB5_A1_OES: number;
					static GL_PALETTE4_RGB8_OES: number;
					static GL_PALETTE4_RGBA4_OES: number;
					static GL_PALETTE4_RGBA8_OES: number;
					static GL_PALETTE8_R5_G6_B5_OES: number;
					static GL_PALETTE8_RGB5_A1_OES: number;
					static GL_PALETTE8_RGB8_OES: number;
					static GL_PALETTE8_RGBA4_OES: number;
					static GL_PALETTE8_RGBA8_OES: number;
					static GL_PERSPECTIVE_CORRECTION_HINT: number;
					static GL_POINT_SMOOTH: number;
					static GL_POINT_SMOOTH_HINT: number;
					static GL_POINTS: number;
					static GL_POINT_FADE_THRESHOLD_SIZE: number;
					static GL_POINT_SIZE: number;
					static GL_POLYGON_OFFSET_FILL: number;
					static GL_POLYGON_SMOOTH_HINT: number;
					static GL_POSITION: number;
					static GL_PROJECTION: number;
					static GL_QUADRATIC_ATTENUATION: number;
					static GL_RED_BITS: number;
					static GL_RENDERER: number;
					static GL_REPEAT: number;
					static GL_REPLACE: number;
					static GL_RESCALE_NORMAL: number;
					static GL_RGB: number;
					static GL_RGBA: number;
					static GL_SAMPLE_ALPHA_TO_COVERAGE: number;
					static GL_SAMPLE_ALPHA_TO_ONE: number;
					static GL_SAMPLE_COVERAGE: number;
					static GL_SCISSOR_TEST: number;
					static GL_SET: number;
					static GL_SHININESS: number;
					static GL_SHORT: number;
					static GL_SMOOTH: number;
					static GL_SMOOTH_LINE_WIDTH_RANGE: number;
					static GL_SMOOTH_POINT_SIZE_RANGE: number;
					static GL_SPECULAR: number;
					static GL_SPOT_CUTOFF: number;
					static GL_SPOT_DIRECTION: number;
					static GL_SPOT_EXPONENT: number;
					static GL_SRC_ALPHA: number;
					static GL_SRC_ALPHA_SATURATE: number;
					static GL_SRC_COLOR: number;
					static GL_STACK_OVERFLOW: number;
					static GL_STACK_UNDERFLOW: number;
					static GL_STENCIL_BITS: number;
					static GL_STENCIL_BUFFER_BIT: number;
					static GL_STENCIL_TEST: number;
					static GL_SUBPIXEL_BITS: number;
					static GL_TEXTURE: number;
					static GL_TEXTURE_2D: number;
					static GL_TEXTURE_COORD_ARRAY: number;
					static GL_TEXTURE_ENV: number;
					static GL_TEXTURE_ENV_COLOR: number;
					static GL_TEXTURE_ENV_MODE: number;
					static GL_TEXTURE_MAG_FILTER: number;
					static GL_TEXTURE_MIN_FILTER: number;
					static GL_TEXTURE_WRAP_S: number;
					static GL_TEXTURE_WRAP_T: number;
					static GL_TEXTURE0: number;
					static GL_TEXTURE1: number;
					static GL_TEXTURE2: number;
					static GL_TEXTURE3: number;
					static GL_TEXTURE4: number;
					static GL_TEXTURE5: number;
					static GL_TEXTURE6: number;
					static GL_TEXTURE7: number;
					static GL_TEXTURE8: number;
					static GL_TEXTURE9: number;
					static GL_TEXTURE10: number;
					static GL_TEXTURE11: number;
					static GL_TEXTURE12: number;
					static GL_TEXTURE13: number;
					static GL_TEXTURE14: number;
					static GL_TEXTURE15: number;
					static GL_TEXTURE16: number;
					static GL_TEXTURE17: number;
					static GL_TEXTURE18: number;
					static GL_TEXTURE19: number;
					static GL_TEXTURE20: number;
					static GL_TEXTURE21: number;
					static GL_TEXTURE22: number;
					static GL_TEXTURE23: number;
					static GL_TEXTURE24: number;
					static GL_TEXTURE25: number;
					static GL_TEXTURE26: number;
					static GL_TEXTURE27: number;
					static GL_TEXTURE28: number;
					static GL_TEXTURE29: number;
					static GL_TEXTURE30: number;
					static GL_TEXTURE31: number;
					static GL_TRIANGLE_FAN: number;
					static GL_TRIANGLE_STRIP: number;
					static GL_TRIANGLES: number;
					static GL_TRUE: number;
					static GL_UNPACK_ALIGNMENT: number;
					static GL_UNSIGNED_BYTE: number;
					static GL_UNSIGNED_SHORT: number;
					static GL_UNSIGNED_SHORT_4_4_4_4: number;
					static GL_UNSIGNED_SHORT_5_5_5_1: number;
					static GL_UNSIGNED_SHORT_5_6_5: number;
					static GL_VENDOR: number;
					static GL_VERSION: number;
					static GL_VERTEX_ARRAY: number;
					static GL_XOR: number;
					static GL_ZERO: number;
					public glActiveTexture(texture: number): void;
					public glAlphaFunc(func: number, ref: number): void;
					public glAlphaFuncx(func: number, ref: number): void;
					public glBindTexture(target: number, texture: number): void;
					public glBlendFunc(sfactor: number, dfactor: number): void;
					public glClear(mask: number): void;
					public glClearColor(red: number, green: number, blue: number, alpha: number): void;
					public glClearColorx(red: number, green: number, blue: number, alpha: number): void;
					public glClearDepthf(depth: number): void;
					public glClearDepthx(depth: number): void;
					public glClearStencil(s: number): void;
					public glClientActiveTexture(texture: number): void;
					public glColor4f(red: number, green: number, blue: number, alpha: number): void;
					public glColor4x(red: number, green: number, blue: number, alpha: number): void;
					public glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
					public glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					public glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
					public glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
					public glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
					public glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
					public glCullFace(mode: number): void;
					public glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
					public glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
					public glDepthFunc(func: number): void;
					public glDepthMask(flag: boolean): void;
					public glDepthRangef(zNear: number, zFar: number): void;
					public glDepthRangex(zNear: number, zFar: number): void;
					public glDisable(cap: number): void;
					public glDisableClientState(array: number): void;
					public glDrawArrays(mode: number, first: number, count: number): void;
					public glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
					public glEnable(cap: number): void;
					public glEnableClientState(array: number): void;
					public glFinish(): void;
					public glFlush(): void;
					public glFogf(pname: number, param: number): void;
					public glFogfv(pname: number, params: native.Array<number>, offset: number): void;
					public glFogfv(pname: number, params: java.nio.FloatBuffer): void;
					public glFogx(pname: number, param: number): void;
					public glFogxv(pname: number, params: native.Array<number>, offset: number): void;
					public glFogxv(pname: number, params: java.nio.IntBuffer): void;
					public glFrontFace(mode: number): void;
					public glFrustumf(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					public glFrustumx(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					public glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
					public glGenTextures(n: number, textures: java.nio.IntBuffer): void;
					public glGetError(): number;
					public glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
					public glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
					public glGetString(name: number): string;
					public glHint(target: number, mode: number): void;
					public glLightModelf(pname: number, param: number): void;
					public glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
					public glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
					public glLightModelx(pname: number, param: number): void;
					public glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
					public glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
					public glLightf(light: number, pname: number, param: number): void;
					public glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					public glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
					public glLightx(light: number, pname: number, param: number): void;
					public glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					public glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
					public glLineWidth(width: number): void;
					public glLineWidthx(width: number): void;
					public glLoadIdentity(): void;
					public glLoadMatrixf(m: native.Array<number>, offset: number): void;
					public glLoadMatrixf(m: java.nio.FloatBuffer): void;
					public glLoadMatrixx(m: native.Array<number>, offset: number): void;
					public glLoadMatrixx(m: java.nio.IntBuffer): void;
					public glLogicOp(opcode: number): void;
					public glMaterialf(face: number, pname: number, param: number): void;
					public glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					public glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
					public glMaterialx(face: number, pname: number, param: number): void;
					public glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					public glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
					public glMatrixMode(mode: number): void;
					public glMultMatrixf(m: native.Array<number>, offset: number): void;
					public glMultMatrixf(m: java.nio.FloatBuffer): void;
					public glMultMatrixx(m: native.Array<number>, offset: number): void;
					public glMultMatrixx(m: java.nio.IntBuffer): void;
					public glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
					public glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
					public glNormal3f(nx: number, ny: number, nz: number): void;
					public glNormal3x(nx: number, ny: number, nz: number): void;
					public glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
					public glOrthof(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					public glOrthox(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					public glPixelStorei(pname: number, param: number): void;
					public glPointSize(size: number): void;
					public glPointSizex(size: number): void;
					public glPolygonOffset(factor: number, units: number): void;
					public glPolygonOffsetx(factor: number, units: number): void;
					public glPopMatrix(): void;
					public glPushMatrix(): void;
					public glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					public glRotatef(angle: number, x: number, y: number, z: number): void;
					public glRotatex(angle: number, x: number, y: number, z: number): void;
					public glSampleCoverage(value: number, invert: boolean): void;
					public glSampleCoveragex(value: number, invert: boolean): void;
					public glScalef(x: number, y: number, z: number): void;
					public glScalex(x: number, y: number, z: number): void;
					public glScissor(x: number, y: number, width: number, height: number): void;
					public glShadeModel(mode: number): void;
					public glStencilFunc(func: number, ref: number, mask: number): void;
					public glStencilMask(mask: number): void;
					public glStencilOp(fail: number, zfail: number, zpass: number): void;
					public glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					public glTexEnvf(target: number, pname: number, param: number): void;
					public glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					public glTexEnvx(target: number, pname: number, param: number): void;
					public glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
					public glTexParameterf(target: number, pname: number, param: number): void;
					public glTexParameterx(target: number, pname: number, param: number): void;
					public glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					public glTranslatef(x: number, y: number, z: number): void;
					public glTranslatex(x: number, y: number, z: number): void;
					public glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					public glViewport(x: number, y: number, width: number, height: number): void;
				}
				interface IGL11 extends javax.microedition.khronos.opengles.IGL10 {
					glGetPointerv(pname: number, params: native.Array<java.nio.Buffer>): void;
					glBindBuffer(target: number, buffer: number): void;
					glBufferData(target: number, size: number, data: java.nio.Buffer, usage: number): void;
					glBufferSubData(target: number, offset: number, size: number, data: java.nio.Buffer): void;
					glClipPlanef(plane: number, equation: native.Array<number>, offset: number): void;
					glClipPlanef(plane: number, equation: java.nio.FloatBuffer): void;
					glClipPlanex(plane: number, equation: native.Array<number>, offset: number): void;
					glClipPlanex(plane: number, equation: java.nio.IntBuffer): void;
					glColor4ub(red: number, green: number, blue: number, alpha: number): void;
					glColorPointer(size: number, type: number, stride: number, offset: number): void;
					glDeleteBuffers(n: number, buffers: native.Array<number>, offset: number): void;
					glDeleteBuffers(n: number, buffers: java.nio.IntBuffer): void;
					glDrawElements(mode: number, count: number, type: number, offset: number): void;
					glGenBuffers(n: number, buffers: native.Array<number>, offset: number): void;
					glGenBuffers(n: number, buffers: java.nio.IntBuffer): void;
					glGetBooleanv(pname: number, params: native.Array<boolean>, offset: number): void;
					glGetBooleanv(pname: number, params: java.nio.IntBuffer): void;
					glGetBufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetBufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glGetClipPlanef(pname: number, eqn: native.Array<number>, offset: number): void;
					glGetClipPlanef(pname: number, eqn: java.nio.FloatBuffer): void;
					glGetClipPlanex(pname: number, eqn: native.Array<number>, offset: number): void;
					glGetClipPlanex(pname: number, eqn: java.nio.IntBuffer): void;
					glGetFixedv(pname: number, params: native.Array<number>, offset: number): void;
					glGetFixedv(pname: number, params: java.nio.IntBuffer): void;
					glGetFloatv(pname: number, params: native.Array<number>, offset: number): void;
					glGetFloatv(pname: number, params: java.nio.FloatBuffer): void;
					glGetLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
					glGetLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
					glGetMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
					glGetMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
					glGetTexEnviv(env: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexEnviv(env: number, pname: number, params: java.nio.IntBuffer): void;
					glGetTexEnvxv(env: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexEnvxv(env: number, pname: number, params: java.nio.IntBuffer): void;
					glGetTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					glGetTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glGetTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glIsBuffer(buffer: number): boolean;
					glIsEnabled(cap: number): boolean;
					glIsTexture(texture: number): boolean;
					glNormalPointer(type: number, stride: number, offset: number): void;
					glPointParameterf(pname: number, param: number): void;
					glPointParameterfv(pname: number, params: native.Array<number>, offset: number): void;
					glPointParameterfv(pname: number, params: java.nio.FloatBuffer): void;
					glPointParameterx(pname: number, param: number): void;
					glPointParameterxv(pname: number, params: native.Array<number>, offset: number): void;
					glPointParameterxv(pname: number, params: java.nio.IntBuffer): void;
					glPointSizePointerOES(type: number, stride: number, pointer: java.nio.Buffer): void;
					glTexCoordPointer(size: number, type: number, stride: number, offset: number): void;
					glTexEnvi(target: number, pname: number, param: number): void;
					glTexEnviv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnviv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					glTexParameteri(target: number, pname: number, param: number): void;
					glTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glVertexPointer(size: number, type: number, stride: number, offset: number): void;
					glActiveTexture(texture: number): void;
					glAlphaFunc(func: number, ref: number): void;
					glAlphaFuncx(func: number, ref: number): void;
					glBindTexture(target: number, texture: number): void;
					glBlendFunc(sfactor: number, dfactor: number): void;
					glClear(mask: number): void;
					glClearColor(red: number, green: number, blue: number, alpha: number): void;
					glClearColorx(red: number, green: number, blue: number, alpha: number): void;
					glClearDepthf(depth: number): void;
					glClearDepthx(depth: number): void;
					glClearStencil(s: number): void;
					glClientActiveTexture(texture: number): void;
					glColor4f(red: number, green: number, blue: number, alpha: number): void;
					glColor4x(red: number, green: number, blue: number, alpha: number): void;
					glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
					glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
					glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
					glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
					glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
					glCullFace(mode: number): void;
					glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
					glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
					glDepthFunc(func: number): void;
					glDepthMask(flag: boolean): void;
					glDepthRangef(zNear: number, zFar: number): void;
					glDepthRangex(zNear: number, zFar: number): void;
					glDisable(cap: number): void;
					glDisableClientState(array: number): void;
					glDrawArrays(mode: number, first: number, count: number): void;
					glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
					glEnable(cap: number): void;
					glEnableClientState(array: number): void;
					glFinish(): void;
					glFlush(): void;
					glFogf(pname: number, param: number): void;
					glFogfv(pname: number, params: native.Array<number>, offset: number): void;
					glFogfv(pname: number, params: java.nio.FloatBuffer): void;
					glFogx(pname: number, param: number): void;
					glFogxv(pname: number, params: native.Array<number>, offset: number): void;
					glFogxv(pname: number, params: java.nio.IntBuffer): void;
					glFrontFace(mode: number): void;
					glFrustumf(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glFrustumx(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
					glGenTextures(n: number, textures: java.nio.IntBuffer): void;
					glGetError(): number;
					glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
					glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
					glGetString(name: number): string;
					glHint(target: number, mode: number): void;
					glLightModelf(pname: number, param: number): void;
					glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
					glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
					glLightModelx(pname: number, param: number): void;
					glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
					glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
					glLightf(light: number, pname: number, param: number): void;
					glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
					glLightx(light: number, pname: number, param: number): void;
					glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
					glLineWidth(width: number): void;
					glLineWidthx(width: number): void;
					glLoadIdentity(): void;
					glLoadMatrixf(m: native.Array<number>, offset: number): void;
					glLoadMatrixf(m: java.nio.FloatBuffer): void;
					glLoadMatrixx(m: native.Array<number>, offset: number): void;
					glLoadMatrixx(m: java.nio.IntBuffer): void;
					glLogicOp(opcode: number): void;
					glMaterialf(face: number, pname: number, param: number): void;
					glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
					glMaterialx(face: number, pname: number, param: number): void;
					glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
					glMatrixMode(mode: number): void;
					glMultMatrixf(m: native.Array<number>, offset: number): void;
					glMultMatrixf(m: java.nio.FloatBuffer): void;
					glMultMatrixx(m: native.Array<number>, offset: number): void;
					glMultMatrixx(m: java.nio.IntBuffer): void;
					glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
					glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
					glNormal3f(nx: number, ny: number, nz: number): void;
					glNormal3x(nx: number, ny: number, nz: number): void;
					glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
					glOrthof(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glOrthox(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glPixelStorei(pname: number, param: number): void;
					glPointSize(size: number): void;
					glPointSizex(size: number): void;
					glPolygonOffset(factor: number, units: number): void;
					glPolygonOffsetx(factor: number, units: number): void;
					glPopMatrix(): void;
					glPushMatrix(): void;
					glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glRotatef(angle: number, x: number, y: number, z: number): void;
					glRotatex(angle: number, x: number, y: number, z: number): void;
					glSampleCoverage(value: number, invert: boolean): void;
					glSampleCoveragex(value: number, invert: boolean): void;
					glScalef(x: number, y: number, z: number): void;
					glScalex(x: number, y: number, z: number): void;
					glScissor(x: number, y: number, width: number, height: number): void;
					glShadeModel(mode: number): void;
					glStencilFunc(func: number, ref: number, mask: number): void;
					glStencilMask(mask: number): void;
					glStencilOp(fail: number, zfail: number, zpass: number): void;
					glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glTexEnvf(target: number, pname: number, param: number): void;
					glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					glTexEnvx(target: number, pname: number, param: number): void;
					glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glTexParameterf(target: number, pname: number, param: number): void;
					glTexParameterx(target: number, pname: number, param: number): void;
					glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glTranslatef(x: number, y: number, z: number): void;
					glTranslatex(x: number, y: number, z: number): void;
					glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glViewport(x: number, y: number, width: number, height: number): void;
				}
				export module IGL11 {
					var GL_ACTIVE_TEXTURE: number;
					var GL_ADD_SIGNED: number;
					var GL_ALPHA_SCALE: number;
					var GL_ALPHA_TEST_FUNC: number;
					var GL_ALPHA_TEST_REF: number;
					var GL_ARRAY_BUFFER: number;
					var GL_ARRAY_BUFFER_BINDING: number;
					var GL_BLEND_DST: number;
					var GL_BLEND_SRC: number;
					var GL_BUFFER_ACCESS: number;
					var GL_BUFFER_SIZE: number;
					var GL_BUFFER_USAGE: number;
					var GL_CLIENT_ACTIVE_TEXTURE: number;
					var GL_CLIP_PLANE0: number;
					var GL_CLIP_PLANE1: number;
					var GL_CLIP_PLANE2: number;
					var GL_CLIP_PLANE3: number;
					var GL_CLIP_PLANE4: number;
					var GL_CLIP_PLANE5: number;
					var GL_COLOR_ARRAY_BUFFER_BINDING: number;
					var GL_COLOR_ARRAY_POINTER: number;
					var GL_COLOR_ARRAY_SIZE: number;
					var GL_COLOR_ARRAY_STRIDE: number;
					var GL_COLOR_ARRAY_TYPE: number;
					var GL_COLOR_CLEAR_VALUE: number;
					var GL_COLOR_WRITEMASK: number;
					var GL_COMBINE: number;
					var GL_COMBINE_ALPHA: number;
					var GL_COMBINE_RGB: number;
					var GL_CONSTANT: number;
					var GL_COORD_REPLACE_OES: number;
					var GL_CULL_FACE_MODE: number;
					var GL_CURRENT_COLOR: number;
					var GL_CURRENT_NORMAL: number;
					var GL_CURRENT_TEXTURE_COORDS: number;
					var GL_DEPTH_CLEAR_VALUE: number;
					var GL_DEPTH_FUNC: number;
					var GL_DEPTH_RANGE: number;
					var GL_DEPTH_WRITEMASK: number;
					var GL_DOT3_RGB: number;
					var GL_DOT3_RGBA: number;
					var GL_DYNAMIC_DRAW: number;
					var GL_ELEMENT_ARRAY_BUFFER: number;
					var GL_ELEMENT_ARRAY_BUFFER_BINDING: number;
					var GL_FRONT_FACE: number;
					var GL_GENERATE_MIPMAP: number;
					var GL_GENERATE_MIPMAP_HINT: number;
					var GL_INTERPOLATE: number;
					var GL_LINE_WIDTH: number;
					var GL_LOGIC_OP_MODE: number;
					var GL_MATRIX_MODE: number;
					var GL_MAX_CLIP_PLANES: number;
					var GL_MODELVIEW_MATRIX: number;
					var GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: number;
					var GL_MODELVIEW_STACK_DEPTH: number;
					var GL_NORMAL_ARRAY_BUFFER_BINDING: number;
					var GL_NORMAL_ARRAY_POINTER: number;
					var GL_NORMAL_ARRAY_STRIDE: number;
					var GL_NORMAL_ARRAY_TYPE: number;
					var GL_OPERAND0_ALPHA: number;
					var GL_OPERAND0_RGB: number;
					var GL_OPERAND1_ALPHA: number;
					var GL_OPERAND1_RGB: number;
					var GL_OPERAND2_ALPHA: number;
					var GL_OPERAND2_RGB: number;
					var GL_POINT_DISTANCE_ATTENUATION: number;
					var GL_POINT_FADE_THRESHOLD_SIZE: number;
					var GL_POINT_SIZE: number;
					var GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: number;
					var GL_POINT_SIZE_ARRAY_OES: number;
					var GL_POINT_SIZE_ARRAY_POINTER_OES: number;
					var GL_POINT_SIZE_ARRAY_STRIDE_OES: number;
					var GL_POINT_SIZE_ARRAY_TYPE_OES: number;
					var GL_POINT_SIZE_MAX: number;
					var GL_POINT_SIZE_MIN: number;
					var GL_POINT_SPRITE_OES: number;
					var GL_POLYGON_OFFSET_FACTOR: number;
					var GL_POLYGON_OFFSET_UNITS: number;
					var GL_PREVIOUS: number;
					var GL_PRIMARY_COLOR: number;
					var GL_PROJECTION_MATRIX: number;
					var GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: number;
					var GL_PROJECTION_STACK_DEPTH: number;
					var GL_RGB_SCALE: number;
					var GL_SAMPLE_BUFFERS: number;
					var GL_SAMPLE_COVERAGE_INVERT: number;
					var GL_SAMPLE_COVERAGE_VALUE: number;
					var GL_SAMPLES: number;
					var GL_SCISSOR_BOX: number;
					var GL_SHADE_MODEL: number;
					var GL_SRC0_ALPHA: number;
					var GL_SRC0_RGB: number;
					var GL_SRC1_ALPHA: number;
					var GL_SRC1_RGB: number;
					var GL_SRC2_ALPHA: number;
					var GL_SRC2_RGB: number;
					var GL_STATIC_DRAW: number;
					var GL_STENCIL_CLEAR_VALUE: number;
					var GL_STENCIL_FAIL: number;
					var GL_STENCIL_FUNC: number;
					var GL_STENCIL_PASS_DEPTH_FAIL: number;
					var GL_STENCIL_PASS_DEPTH_PASS: number;
					var GL_STENCIL_REF: number;
					var GL_STENCIL_VALUE_MASK: number;
					var GL_STENCIL_WRITEMASK: number;
					var GL_SUBTRACT: number;
					var GL_TEXTURE_BINDING_2D: number;
					var GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: number;
					var GL_TEXTURE_COORD_ARRAY_POINTER: number;
					var GL_TEXTURE_COORD_ARRAY_SIZE: number;
					var GL_TEXTURE_COORD_ARRAY_STRIDE: number;
					var GL_TEXTURE_COORD_ARRAY_TYPE: number;
					var GL_TEXTURE_MATRIX: number;
					var GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: number;
					var GL_TEXTURE_STACK_DEPTH: number;
					var GL_VERTEX_ARRAY_BUFFER_BINDING: number;
					var GL_VERTEX_ARRAY_POINTER: number;
					var GL_VERTEX_ARRAY_SIZE: number;
					var GL_VERTEX_ARRAY_STRIDE: number;
					var GL_VERTEX_ARRAY_TYPE: number;
					var GL_VIEWPORT: number;
					var GL_WRITE_ONLY: number;
				}
				export class GL11Ext implements javax.microedition.khronos.opengles.IGL, javax.microedition.khronos.opengles.IGL11Ext {
					constructor(implementation: javax.microedition.khronos.opengles.IGL11Ext);
					static GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: number;
					static GL_MATRIX_INDEX_ARRAY_OES: number;
					static GL_MATRIX_INDEX_ARRAY_POINTER_OES: number;
					static GL_MATRIX_INDEX_ARRAY_SIZE_OES: number;
					static GL_MATRIX_INDEX_ARRAY_STRIDE_OES: number;
					static GL_MATRIX_INDEX_ARRAY_TYPE_OES: number;
					static GL_MATRIX_PALETTE_OES: number;
					static GL_MAX_PALETTE_MATRICES_OES: number;
					static GL_MAX_VERTEX_UNITS_OES: number;
					static GL_TEXTURE_CROP_RECT_OES: number;
					static GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: number;
					static GL_WEIGHT_ARRAY_OES: number;
					static GL_WEIGHT_ARRAY_POINTER_OES: number;
					static GL_WEIGHT_ARRAY_SIZE_OES: number;
					static GL_WEIGHT_ARRAY_STRIDE_OES: number;
					static GL_WEIGHT_ARRAY_TYPE_OES: number;
					public glTexParameterfv(target: number, pname: number, param: native.Array<number>, offset: number): void;
					public glCurrentPaletteMatrixOES(matrixpaletteindex: number): void;
					public glDrawTexfOES(x: number, y: number, z: number, width: number, height: number): void;
					public glDrawTexfvOES(coords: native.Array<number>, offset: number): void;
					public glDrawTexfvOES(coords: java.nio.FloatBuffer): void;
					public glDrawTexiOES(x: number, y: number, z: number, width: number, height: number): void;
					public glDrawTexivOES(coords: native.Array<number>, offset: number): void;
					public glDrawTexivOES(coords: java.nio.IntBuffer): void;
					public glDrawTexsOES(x: number, y: number, z: number, width: number, height: number): void;
					public glDrawTexsvOES(coords: native.Array<number>, offset: number): void;
					public glDrawTexsvOES(coords: java.nio.ShortBuffer): void;
					public glDrawTexxOES(x: number, y: number, z: number, width: number, height: number): void;
					public glDrawTexxvOES(coords: native.Array<number>, offset: number): void;
					public glDrawTexxvOES(coords: java.nio.IntBuffer): void;
					public glEnable(cap: number): void;
					public glEnableClientState(array: number): void;
					public glLoadPaletteFromModelViewMatrixOES(): void;
					public glMatrixIndexPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					public glMatrixIndexPointerOES(size: number, type: number, stride: number, offset: number): void;
					public glWeightPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					public glWeightPointerOES(size: number, type: number, stride: number, offset: number): void;
				}
				interface IGL11ExtensionPack extends javax.microedition.khronos.opengles.IGL {
					glBindFramebufferOES(target: number, framebuffer: number): void;
					glBindRenderbufferOES(target: number, renderbuffer: number): void;
					glBindTexture(target: number, texture: number): void;
					glBlendEquation(mode: number): void;
					glBlendEquationSeparate(modeRGB: number, modeAlpha: number): void;
					glBlendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
					glCheckFramebufferStatusOES(target: number): number;
					glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
					glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
					glDeleteFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
					glDeleteFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
					glDeleteRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
					glDeleteRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
					glEnable(cap: number): void;
					glFramebufferRenderbufferOES(target: number, attachment: number, renderbuffertarget: number, renderbuffer: number): void;
					glFramebufferTexture2DOES(target: number, attachment: number, textarget: number, texture: number, level: number): void;
					glGenerateMipmapOES(target: number): void;
					glGenFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
					glGenFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
					glGenRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
					glGenRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
					glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: java.nio.IntBuffer): void;
					glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
					glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
					glGetRenderbufferParameterivOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetRenderbufferParameterivOES(target: number, pname: number, params: java.nio.IntBuffer): void;
					glGetTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
					glGetTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					glGetTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					glGetTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					glIsFramebufferOES(framebuffer: number): boolean;
					glIsRenderbufferOES(renderbuffer: number): boolean;
					glRenderbufferStorageOES(target: number, internalformat: number, width: number, height: number): void;
					glStencilOp(fail: number, zfail: number, zpass: number): void;
					glTexEnvf(target: number, pname: number, param: number): void;
					glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					glTexEnvx(target: number, pname: number, param: number): void;
					glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glTexGenf(coord: number, pname: number, param: number): void;
					glTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
					glTexGeni(coord: number, pname: number, param: number): void;
					glTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					glTexGenx(coord: number, pname: number, param: number): void;
					glTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					glTexParameterf(target: number, pname: number, param: number): void;
				}
				export module IGL11ExtensionPack {
					var GL_BLEND_DST_ALPHA: number;
					var GL_BLEND_DST_RGB: number;
					var GL_BLEND_EQUATION: number;
					var GL_BLEND_EQUATION_ALPHA: number;
					var GL_BLEND_EQUATION_RGB: number;
					var GL_BLEND_SRC_ALPHA: number;
					var GL_BLEND_SRC_RGB: number;
					var GL_COLOR_ATTACHMENT0_OES: number;
					var GL_COLOR_ATTACHMENT1_OES: number;
					var GL_COLOR_ATTACHMENT2_OES: number;
					var GL_COLOR_ATTACHMENT3_OES: number;
					var GL_COLOR_ATTACHMENT4_OES: number;
					var GL_COLOR_ATTACHMENT5_OES: number;
					var GL_COLOR_ATTACHMENT6_OES: number;
					var GL_COLOR_ATTACHMENT7_OES: number;
					var GL_COLOR_ATTACHMENT8_OES: number;
					var GL_COLOR_ATTACHMENT9_OES: number;
					var GL_COLOR_ATTACHMENT10_OES: number;
					var GL_COLOR_ATTACHMENT11_OES: number;
					var GL_COLOR_ATTACHMENT12_OES: number;
					var GL_COLOR_ATTACHMENT13_OES: number;
					var GL_COLOR_ATTACHMENT14_OES: number;
					var GL_COLOR_ATTACHMENT15_OES: number;
					var GL_DECR_WRAP: number;
					var GL_DEPTH_ATTACHMENT_OES: number;
					var GL_DEPTH_COMPONENT: number;
					var GL_DEPTH_COMPONENT16: number;
					var GL_DEPTH_COMPONENT24: number;
					var GL_DEPTH_COMPONENT32: number;
					var GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES: number;
					var GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES: number;
					var GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES: number;
					var GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES: number;
					var GL_FRAMEBUFFER_BINDING_OES: number;
					var GL_FRAMEBUFFER_COMPLETE_OES: number;
					var GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES: number;
					var GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES: number;
					var GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES: number;
					var GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES: number;
					var GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES: number;
					var GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES: number;
					var GL_FRAMEBUFFER_OES: number;
					var GL_FRAMEBUFFER_UNSUPPORTED_OES: number;
					var GL_FUNC_ADD: number;
					var GL_FUNC_REVERSE_SUBTRACT: number;
					var GL_FUNC_SUBTRACT: number;
					var GL_INCR_WRAP: number;
					var GL_INVALID_FRAMEBUFFER_OPERATION_OES: number;
					var GL_MAX_COLOR_ATTACHMENTS_OES: number;
					var GL_MAX_CUBE_MAP_TEXTURE_SIZE: number;
					var GL_MAX_RENDERBUFFER_SIZE_OES: number;
					var GL_MIRRORED_REPEAT: number;
					var GL_NORMAL_MAP: number;
					var GL_REFLECTION_MAP: number;
					var GL_RENDERBUFFER_ALPHA_SIZE_OES: number;
					var GL_RENDERBUFFER_BINDING_OES: number;
					var GL_RENDERBUFFER_BLUE_SIZE_OES: number;
					var GL_RENDERBUFFER_DEPTH_SIZE_OES: number;
					var GL_RENDERBUFFER_GREEN_SIZE_OES: number;
					var GL_RENDERBUFFER_HEIGHT_OES: number;
					var GL_RENDERBUFFER_INTERNAL_FORMAT_OES: number;
					var GL_RENDERBUFFER_OES: number;
					var GL_RENDERBUFFER_RED_SIZE_OES: number;
					var GL_RENDERBUFFER_STENCIL_SIZE_OES: number;
					var GL_RENDERBUFFER_WIDTH_OES: number;
					var GL_RGB5_A1: number;
					var GL_RGB565_OES: number;
					var GL_RGB8: number;
					var GL_RGBA4: number;
					var GL_RGBA8: number;
					var GL_STENCIL_ATTACHMENT_OES: number;
					var GL_STENCIL_INDEX: number;
					var GL_STENCIL_INDEX1_OES: number;
					var GL_STENCIL_INDEX4_OES: number;
					var GL_STENCIL_INDEX8_OES: number;
					var GL_STR: number;
					var GL_TEXTURE_BINDING_CUBE_MAP: number;
					var GL_TEXTURE_CUBE_MAP: number;
					var GL_TEXTURE_CUBE_MAP_NEGATIVE_X: number;
					var GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: number;
					var GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: number;
					var GL_TEXTURE_CUBE_MAP_POSITIVE_X: number;
					var GL_TEXTURE_CUBE_MAP_POSITIVE_Y: number;
					var GL_TEXTURE_CUBE_MAP_POSITIVE_Z: number;
					var GL_TEXTURE_GEN_MODE: number;
					var GL_TEXTURE_GEN_STR: number;
				}
				interface IGL11Ext extends javax.microedition.khronos.opengles.IGL {
					glTexParameterfv(target: number, pname: number, param: native.Array<number>, offset: number): void;
					glCurrentPaletteMatrixOES(matrixpaletteindex: number): void;
					glDrawTexfOES(x: number, y: number, z: number, width: number, height: number): void;
					glDrawTexfvOES(coords: native.Array<number>, offset: number): void;
					glDrawTexfvOES(coords: java.nio.FloatBuffer): void;
					glDrawTexiOES(x: number, y: number, z: number, width: number, height: number): void;
					glDrawTexivOES(coords: native.Array<number>, offset: number): void;
					glDrawTexivOES(coords: java.nio.IntBuffer): void;
					glDrawTexsOES(x: number, y: number, z: number, width: number, height: number): void;
					glDrawTexsvOES(coords: native.Array<number>, offset: number): void;
					glDrawTexsvOES(coords: java.nio.ShortBuffer): void;
					glDrawTexxOES(x: number, y: number, z: number, width: number, height: number): void;
					glDrawTexxvOES(coords: native.Array<number>, offset: number): void;
					glDrawTexxvOES(coords: java.nio.IntBuffer): void;
					glEnable(cap: number): void;
					glEnableClientState(array: number): void;
					glLoadPaletteFromModelViewMatrixOES(): void;
					glMatrixIndexPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glMatrixIndexPointerOES(size: number, type: number, stride: number, offset: number): void;
					glWeightPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glWeightPointerOES(size: number, type: number, stride: number, offset: number): void;
				}
				export module IGL11Ext {
					var GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: number;
					var GL_MATRIX_INDEX_ARRAY_OES: number;
					var GL_MATRIX_INDEX_ARRAY_POINTER_OES: number;
					var GL_MATRIX_INDEX_ARRAY_SIZE_OES: number;
					var GL_MATRIX_INDEX_ARRAY_STRIDE_OES: number;
					var GL_MATRIX_INDEX_ARRAY_TYPE_OES: number;
					var GL_MATRIX_PALETTE_OES: number;
					var GL_MAX_PALETTE_MATRICES_OES: number;
					var GL_MAX_VERTEX_UNITS_OES: number;
					var GL_TEXTURE_CROP_RECT_OES: number;
					var GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: number;
					var GL_WEIGHT_ARRAY_OES: number;
					var GL_WEIGHT_ARRAY_POINTER_OES: number;
					var GL_WEIGHT_ARRAY_SIZE_OES: number;
					var GL_WEIGHT_ARRAY_STRIDE_OES: number;
					var GL_WEIGHT_ARRAY_TYPE_OES: number;
				}
				export class GL10Ext implements javax.microedition.khronos.opengles.IGL, javax.microedition.khronos.opengles.IGL10Ext {
					constructor(implementation: javax.microedition.khronos.opengles.IGL10Ext);
					public glQueryMatrixxOES(mantissa: native.Array<number>, mantissaOffset: number, exponent: native.Array<number>, exponentOffset: number): number;
					public glQueryMatrixxOES(mantissa: java.nio.IntBuffer, exponent: java.nio.IntBuffer): number;
				}
				export class GL11ExtensionPack implements javax.microedition.khronos.opengles.IGL, javax.microedition.khronos.opengles.IGL11ExtensionPack {
					constructor(implementation: javax.microedition.khronos.opengles.IGL11ExtensionPack);
					static GL_BLEND_DST_ALPHA: number;
					static GL_BLEND_DST_RGB: number;
					static GL_BLEND_EQUATION: number;
					static GL_BLEND_EQUATION_ALPHA: number;
					static GL_BLEND_EQUATION_RGB: number;
					static GL_BLEND_SRC_ALPHA: number;
					static GL_BLEND_SRC_RGB: number;
					static GL_COLOR_ATTACHMENT0_OES: number;
					static GL_COLOR_ATTACHMENT1_OES: number;
					static GL_COLOR_ATTACHMENT2_OES: number;
					static GL_COLOR_ATTACHMENT3_OES: number;
					static GL_COLOR_ATTACHMENT4_OES: number;
					static GL_COLOR_ATTACHMENT5_OES: number;
					static GL_COLOR_ATTACHMENT6_OES: number;
					static GL_COLOR_ATTACHMENT7_OES: number;
					static GL_COLOR_ATTACHMENT8_OES: number;
					static GL_COLOR_ATTACHMENT9_OES: number;
					static GL_COLOR_ATTACHMENT10_OES: number;
					static GL_COLOR_ATTACHMENT11_OES: number;
					static GL_COLOR_ATTACHMENT12_OES: number;
					static GL_COLOR_ATTACHMENT13_OES: number;
					static GL_COLOR_ATTACHMENT14_OES: number;
					static GL_COLOR_ATTACHMENT15_OES: number;
					static GL_DECR_WRAP: number;
					static GL_DEPTH_ATTACHMENT_OES: number;
					static GL_DEPTH_COMPONENT: number;
					static GL_DEPTH_COMPONENT16: number;
					static GL_DEPTH_COMPONENT24: number;
					static GL_DEPTH_COMPONENT32: number;
					static GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES: number;
					static GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES: number;
					static GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES: number;
					static GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES: number;
					static GL_FRAMEBUFFER_BINDING_OES: number;
					static GL_FRAMEBUFFER_COMPLETE_OES: number;
					static GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES: number;
					static GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES: number;
					static GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES: number;
					static GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES: number;
					static GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES: number;
					static GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES: number;
					static GL_FRAMEBUFFER_OES: number;
					static GL_FRAMEBUFFER_UNSUPPORTED_OES: number;
					static GL_FUNC_ADD: number;
					static GL_FUNC_REVERSE_SUBTRACT: number;
					static GL_FUNC_SUBTRACT: number;
					static GL_INCR_WRAP: number;
					static GL_INVALID_FRAMEBUFFER_OPERATION_OES: number;
					static GL_MAX_COLOR_ATTACHMENTS_OES: number;
					static GL_MAX_CUBE_MAP_TEXTURE_SIZE: number;
					static GL_MAX_RENDERBUFFER_SIZE_OES: number;
					static GL_MIRRORED_REPEAT: number;
					static GL_NORMAL_MAP: number;
					static GL_REFLECTION_MAP: number;
					static GL_RENDERBUFFER_ALPHA_SIZE_OES: number;
					static GL_RENDERBUFFER_BINDING_OES: number;
					static GL_RENDERBUFFER_BLUE_SIZE_OES: number;
					static GL_RENDERBUFFER_DEPTH_SIZE_OES: number;
					static GL_RENDERBUFFER_GREEN_SIZE_OES: number;
					static GL_RENDERBUFFER_HEIGHT_OES: number;
					static GL_RENDERBUFFER_INTERNAL_FORMAT_OES: number;
					static GL_RENDERBUFFER_OES: number;
					static GL_RENDERBUFFER_RED_SIZE_OES: number;
					static GL_RENDERBUFFER_STENCIL_SIZE_OES: number;
					static GL_RENDERBUFFER_WIDTH_OES: number;
					static GL_RGB5_A1: number;
					static GL_RGB565_OES: number;
					static GL_RGB8: number;
					static GL_RGBA4: number;
					static GL_RGBA8: number;
					static GL_STENCIL_ATTACHMENT_OES: number;
					static GL_STENCIL_INDEX: number;
					static GL_STENCIL_INDEX1_OES: number;
					static GL_STENCIL_INDEX4_OES: number;
					static GL_STENCIL_INDEX8_OES: number;
					static GL_STR: number;
					static GL_TEXTURE_BINDING_CUBE_MAP: number;
					static GL_TEXTURE_CUBE_MAP: number;
					static GL_TEXTURE_CUBE_MAP_NEGATIVE_X: number;
					static GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: number;
					static GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: number;
					static GL_TEXTURE_CUBE_MAP_POSITIVE_X: number;
					static GL_TEXTURE_CUBE_MAP_POSITIVE_Y: number;
					static GL_TEXTURE_CUBE_MAP_POSITIVE_Z: number;
					static GL_TEXTURE_GEN_MODE: number;
					static GL_TEXTURE_GEN_STR: number;
					public glBindFramebufferOES(target: number, framebuffer: number): void;
					public glBindRenderbufferOES(target: number, renderbuffer: number): void;
					public glBindTexture(target: number, texture: number): void;
					public glBlendEquation(mode: number): void;
					public glBlendEquationSeparate(modeRGB: number, modeAlpha: number): void;
					public glBlendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
					public glCheckFramebufferStatusOES(target: number): number;
					public glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
					public glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
					public glDeleteFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
					public glDeleteFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
					public glDeleteRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
					public glDeleteRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
					public glEnable(cap: number): void;
					public glFramebufferRenderbufferOES(target: number, attachment: number, renderbuffertarget: number, renderbuffer: number): void;
					public glFramebufferTexture2DOES(target: number, attachment: number, textarget: number, texture: number, level: number): void;
					public glGenerateMipmapOES(target: number): void;
					public glGenFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
					public glGenFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
					public glGenRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
					public glGenRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
					public glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
					public glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
					public glGetRenderbufferParameterivOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetRenderbufferParameterivOES(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
					public glGetTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					public glGetTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					public glGetTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					public glIsFramebufferOES(framebuffer: number): boolean;
					public glIsRenderbufferOES(renderbuffer: number): boolean;
					public glRenderbufferStorageOES(target: number, internalformat: number, width: number, height: number): void;
					public glStencilOp(fail: number, zfail: number, zpass: number): void;
					public glTexEnvf(target: number, pname: number, param: number): void;
					public glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					public glTexEnvx(target: number, pname: number, param: number): void;
					public glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					public glTexGenf(coord: number, pname: number, param: number): void;
					public glTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
					public glTexGeni(coord: number, pname: number, param: number): void;
					public glTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					public glTexGenx(coord: number, pname: number, param: number): void;
					public glTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
					public glTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
					public glTexParameterf(target: number, pname: number, param: number): void;
				}
				interface IGL10 extends javax.microedition.khronos.opengles.IGL {
					glActiveTexture(texture: number): void;
					glAlphaFunc(func: number, ref: number): void;
					glAlphaFuncx(func: number, ref: number): void;
					glBindTexture(target: number, texture: number): void;
					glBlendFunc(sfactor: number, dfactor: number): void;
					glClear(mask: number): void;
					glClearColor(red: number, green: number, blue: number, alpha: number): void;
					glClearColorx(red: number, green: number, blue: number, alpha: number): void;
					glClearDepthf(depth: number): void;
					glClearDepthx(depth: number): void;
					glClearStencil(s: number): void;
					glClientActiveTexture(texture: number): void;
					glColor4f(red: number, green: number, blue: number, alpha: number): void;
					glColor4x(red: number, green: number, blue: number, alpha: number): void;
					glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
					glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
					glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
					glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
					glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
					glCullFace(mode: number): void;
					glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
					glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
					glDepthFunc(func: number): void;
					glDepthMask(flag: boolean): void;
					glDepthRangef(zNear: number, zFar: number): void;
					glDepthRangex(zNear: number, zFar: number): void;
					glDisable(cap: number): void;
					glDisableClientState(array: number): void;
					glDrawArrays(mode: number, first: number, count: number): void;
					glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
					glEnable(cap: number): void;
					glEnableClientState(array: number): void;
					glFinish(): void;
					glFlush(): void;
					glFogf(pname: number, param: number): void;
					glFogfv(pname: number, params: native.Array<number>, offset: number): void;
					glFogfv(pname: number, params: java.nio.FloatBuffer): void;
					glFogx(pname: number, param: number): void;
					glFogxv(pname: number, params: native.Array<number>, offset: number): void;
					glFogxv(pname: number, params: java.nio.IntBuffer): void;
					glFrontFace(mode: number): void;
					glFrustumf(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glFrustumx(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
					glGenTextures(n: number, textures: java.nio.IntBuffer): void;
					glGetError(): number;
					glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
					glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
					glGetString(name: number): string;
					glHint(target: number, mode: number): void;
					glLightModelf(pname: number, param: number): void;
					glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
					glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
					glLightModelx(pname: number, param: number): void;
					glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
					glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
					glLightf(light: number, pname: number, param: number): void;
					glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
					glLightx(light: number, pname: number, param: number): void;
					glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
					glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
					glLineWidth(width: number): void;
					glLineWidthx(width: number): void;
					glLoadIdentity(): void;
					glLoadMatrixf(m: native.Array<number>, offset: number): void;
					glLoadMatrixf(m: java.nio.FloatBuffer): void;
					glLoadMatrixx(m: native.Array<number>, offset: number): void;
					glLoadMatrixx(m: java.nio.IntBuffer): void;
					glLogicOp(opcode: number): void;
					glMaterialf(face: number, pname: number, param: number): void;
					glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
					glMaterialx(face: number, pname: number, param: number): void;
					glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
					glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
					glMatrixMode(mode: number): void;
					glMultMatrixf(m: native.Array<number>, offset: number): void;
					glMultMatrixf(m: java.nio.FloatBuffer): void;
					glMultMatrixx(m: native.Array<number>, offset: number): void;
					glMultMatrixx(m: java.nio.IntBuffer): void;
					glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
					glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
					glNormal3f(nx: number, ny: number, nz: number): void;
					glNormal3x(nx: number, ny: number, nz: number): void;
					glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
					glOrthof(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glOrthox(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
					glPixelStorei(pname: number, param: number): void;
					glPointSize(size: number): void;
					glPointSizex(size: number): void;
					glPolygonOffset(factor: number, units: number): void;
					glPolygonOffsetx(factor: number, units: number): void;
					glPopMatrix(): void;
					glPushMatrix(): void;
					glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glRotatef(angle: number, x: number, y: number, z: number): void;
					glRotatex(angle: number, x: number, y: number, z: number): void;
					glSampleCoverage(value: number, invert: boolean): void;
					glSampleCoveragex(value: number, invert: boolean): void;
					glScalef(x: number, y: number, z: number): void;
					glScalex(x: number, y: number, z: number): void;
					glScissor(x: number, y: number, width: number, height: number): void;
					glShadeModel(mode: number): void;
					glStencilFunc(func: number, ref: number, mask: number): void;
					glStencilMask(mask: number): void;
					glStencilOp(fail: number, zfail: number, zpass: number): void;
					glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glTexEnvf(target: number, pname: number, param: number): void;
					glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
					glTexEnvx(target: number, pname: number, param: number): void;
					glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
					glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
					glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glTexParameterf(target: number, pname: number, param: number): void;
					glTexParameterx(target: number, pname: number, param: number): void;
					glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
					glTranslatef(x: number, y: number, z: number): void;
					glTranslatex(x: number, y: number, z: number): void;
					glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
					glViewport(x: number, y: number, width: number, height: number): void;
				}
				export module IGL10 {
					var GL_ADD: number;
					var GL_ALIASED_LINE_WIDTH_RANGE: number;
					var GL_ALIASED_POINT_SIZE_RANGE: number;
					var GL_ALPHA: number;
					var GL_ALPHA_BITS: number;
					var GL_ALPHA_TEST: number;
					var GL_ALWAYS: number;
					var GL_AMBIENT: number;
					var GL_AMBIENT_AND_DIFFUSE: number;
					var GL_AND: number;
					var GL_AND_INVERTED: number;
					var GL_AND_REVERSE: number;
					var GL_BACK: number;
					var GL_BLEND: number;
					var GL_BLUE_BITS: number;
					var GL_BYTE: number;
					var GL_CCW: number;
					var GL_CLAMP_TO_EDGE: number;
					var GL_CLEAR: number;
					var GL_COLOR_ARRAY: number;
					var GL_COLOR_BUFFER_BIT: number;
					var GL_COLOR_LOGIC_OP: number;
					var GL_COLOR_MATERIAL: number;
					var GL_COMPRESSED_TEXTURE_FORMATS: number;
					var GL_CONSTANT_ATTENUATION: number;
					var GL_COPY: number;
					var GL_COPY_INVERTED: number;
					var GL_CULL_FACE: number;
					var GL_CW: number;
					var GL_DECAL: number;
					var GL_DECR: number;
					var GL_DEPTH_BITS: number;
					var GL_DEPTH_BUFFER_BIT: number;
					var GL_DEPTH_TEST: number;
					var GL_DIFFUSE: number;
					var GL_DITHER: number;
					var GL_DONT_CARE: number;
					var GL_DST_ALPHA: number;
					var GL_DST_COLOR: number;
					var GL_EMISSION: number;
					var GL_EQUAL: number;
					var GL_EQUIV: number;
					var GL_EXP: number;
					var GL_EXP2: number;
					var GL_EXTENSIONS: number;
					var GL_FALSE: number;
					var GL_FASTEST: number;
					var GL_FIXED: number;
					var GL_FLAT: number;
					var GL_FLOAT: number;
					var GL_FOG: number;
					var GL_FOG_COLOR: number;
					var GL_FOG_DENSITY: number;
					var GL_FOG_END: number;
					var GL_FOG_HINT: number;
					var GL_FOG_MODE: number;
					var GL_FOG_START: number;
					var GL_FRONT: number;
					var GL_FRONT_AND_BACK: number;
					var GL_GEQUAL: number;
					var GL_GREATER: number;
					var GL_GREEN_BITS: number;
					var GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: number;
					var GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: number;
					var GL_INCR: number;
					var GL_INVALID_ENUM: number;
					var GL_INVALID_OPERATION: number;
					var GL_INVALID_VALUE: number;
					var GL_INVERT: number;
					var GL_KEEP: number;
					var GL_LEQUAL: number;
					var GL_LESS: number;
					var GL_LIGHT_MODEL_AMBIENT: number;
					var GL_LIGHT_MODEL_TWO_SIDE: number;
					var GL_LIGHT0: number;
					var GL_LIGHT1: number;
					var GL_LIGHT2: number;
					var GL_LIGHT3: number;
					var GL_LIGHT4: number;
					var GL_LIGHT5: number;
					var GL_LIGHT6: number;
					var GL_LIGHT7: number;
					var GL_LIGHTING: number;
					var GL_LINE_LOOP: number;
					var GL_LINE_SMOOTH: number;
					var GL_LINE_SMOOTH_HINT: number;
					var GL_LINE_STRIP: number;
					var GL_LINEAR: number;
					var GL_LINEAR_ATTENUATION: number;
					var GL_LINEAR_MIPMAP_LINEAR: number;
					var GL_LINEAR_MIPMAP_NEAREST: number;
					var GL_LINES: number;
					var GL_LUMINANCE: number;
					var GL_LUMINANCE_ALPHA: number;
					var GL_MAX_ELEMENTS_INDICES: number;
					var GL_MAX_ELEMENTS_VERTICES: number;
					var GL_MAX_LIGHTS: number;
					var GL_MAX_MODELVIEW_STACK_DEPTH: number;
					var GL_MAX_PROJECTION_STACK_DEPTH: number;
					var GL_MAX_TEXTURE_SIZE: number;
					var GL_MAX_TEXTURE_STACK_DEPTH: number;
					var GL_MAX_TEXTURE_UNITS: number;
					var GL_MAX_VIEWPORT_DIMS: number;
					var GL_MODELVIEW: number;
					var GL_MODULATE: number;
					var GL_MULTISAMPLE: number;
					var GL_NAND: number;
					var GL_NEAREST: number;
					var GL_NEAREST_MIPMAP_LINEAR: number;
					var GL_NEAREST_MIPMAP_NEAREST: number;
					var GL_NEVER: number;
					var GL_NICEST: number;
					var GL_NO_ERROR: number;
					var GL_NOOP: number;
					var GL_NOR: number;
					var GL_NORMAL_ARRAY: number;
					var GL_NORMALIZE: number;
					var GL_NOTEQUAL: number;
					var GL_NUM_COMPRESSED_TEXTURE_FORMATS: number;
					var GL_ONE: number;
					var GL_ONE_MINUS_DST_ALPHA: number;
					var GL_ONE_MINUS_DST_COLOR: number;
					var GL_ONE_MINUS_SRC_ALPHA: number;
					var GL_ONE_MINUS_SRC_COLOR: number;
					var GL_OR: number;
					var GL_OR_INVERTED: number;
					var GL_OR_REVERSE: number;
					var GL_OUT_OF_MEMORY: number;
					var GL_PACK_ALIGNMENT: number;
					var GL_PALETTE4_R5_G6_B5_OES: number;
					var GL_PALETTE4_RGB5_A1_OES: number;
					var GL_PALETTE4_RGB8_OES: number;
					var GL_PALETTE4_RGBA4_OES: number;
					var GL_PALETTE4_RGBA8_OES: number;
					var GL_PALETTE8_R5_G6_B5_OES: number;
					var GL_PALETTE8_RGB5_A1_OES: number;
					var GL_PALETTE8_RGB8_OES: number;
					var GL_PALETTE8_RGBA4_OES: number;
					var GL_PALETTE8_RGBA8_OES: number;
					var GL_PERSPECTIVE_CORRECTION_HINT: number;
					var GL_POINT_SMOOTH: number;
					var GL_POINT_SMOOTH_HINT: number;
					var GL_POINTS: number;
					var GL_POINT_FADE_THRESHOLD_SIZE: number;
					var GL_POINT_SIZE: number;
					var GL_POLYGON_OFFSET_FILL: number;
					var GL_POLYGON_SMOOTH_HINT: number;
					var GL_POSITION: number;
					var GL_PROJECTION: number;
					var GL_QUADRATIC_ATTENUATION: number;
					var GL_RED_BITS: number;
					var GL_RENDERER: number;
					var GL_REPEAT: number;
					var GL_REPLACE: number;
					var GL_RESCALE_NORMAL: number;
					var GL_RGB: number;
					var GL_RGBA: number;
					var GL_SAMPLE_ALPHA_TO_COVERAGE: number;
					var GL_SAMPLE_ALPHA_TO_ONE: number;
					var GL_SAMPLE_COVERAGE: number;
					var GL_SCISSOR_TEST: number;
					var GL_SET: number;
					var GL_SHININESS: number;
					var GL_SHORT: number;
					var GL_SMOOTH: number;
					var GL_SMOOTH_LINE_WIDTH_RANGE: number;
					var GL_SMOOTH_POINT_SIZE_RANGE: number;
					var GL_SPECULAR: number;
					var GL_SPOT_CUTOFF: number;
					var GL_SPOT_DIRECTION: number;
					var GL_SPOT_EXPONENT: number;
					var GL_SRC_ALPHA: number;
					var GL_SRC_ALPHA_SATURATE: number;
					var GL_SRC_COLOR: number;
					var GL_STACK_OVERFLOW: number;
					var GL_STACK_UNDERFLOW: number;
					var GL_STENCIL_BITS: number;
					var GL_STENCIL_BUFFER_BIT: number;
					var GL_STENCIL_TEST: number;
					var GL_SUBPIXEL_BITS: number;
					var GL_TEXTURE: number;
					var GL_TEXTURE_2D: number;
					var GL_TEXTURE_COORD_ARRAY: number;
					var GL_TEXTURE_ENV: number;
					var GL_TEXTURE_ENV_COLOR: number;
					var GL_TEXTURE_ENV_MODE: number;
					var GL_TEXTURE_MAG_FILTER: number;
					var GL_TEXTURE_MIN_FILTER: number;
					var GL_TEXTURE_WRAP_S: number;
					var GL_TEXTURE_WRAP_T: number;
					var GL_TEXTURE0: number;
					var GL_TEXTURE1: number;
					var GL_TEXTURE2: number;
					var GL_TEXTURE3: number;
					var GL_TEXTURE4: number;
					var GL_TEXTURE5: number;
					var GL_TEXTURE6: number;
					var GL_TEXTURE7: number;
					var GL_TEXTURE8: number;
					var GL_TEXTURE9: number;
					var GL_TEXTURE10: number;
					var GL_TEXTURE11: number;
					var GL_TEXTURE12: number;
					var GL_TEXTURE13: number;
					var GL_TEXTURE14: number;
					var GL_TEXTURE15: number;
					var GL_TEXTURE16: number;
					var GL_TEXTURE17: number;
					var GL_TEXTURE18: number;
					var GL_TEXTURE19: number;
					var GL_TEXTURE20: number;
					var GL_TEXTURE21: number;
					var GL_TEXTURE22: number;
					var GL_TEXTURE23: number;
					var GL_TEXTURE24: number;
					var GL_TEXTURE25: number;
					var GL_TEXTURE26: number;
					var GL_TEXTURE27: number;
					var GL_TEXTURE28: number;
					var GL_TEXTURE29: number;
					var GL_TEXTURE30: number;
					var GL_TEXTURE31: number;
					var GL_TRIANGLE_FAN: number;
					var GL_TRIANGLE_STRIP: number;
					var GL_TRIANGLES: number;
					var GL_TRUE: number;
					var GL_UNPACK_ALIGNMENT: number;
					var GL_UNSIGNED_BYTE: number;
					var GL_UNSIGNED_SHORT: number;
					var GL_UNSIGNED_SHORT_4_4_4_4: number;
					var GL_UNSIGNED_SHORT_5_5_5_1: number;
					var GL_UNSIGNED_SHORT_5_6_5: number;
					var GL_VENDOR: number;
					var GL_VERSION: number;
					var GL_VERTEX_ARRAY: number;
					var GL_XOR: number;
					var GL_ZERO: number;
				}
				interface IGL10Ext extends javax.microedition.khronos.opengles.IGL {
					glQueryMatrixxOES(mantissa: native.Array<number>, mantissaOffset: number, exponent: native.Array<number>, exponentOffset: number): number;
					glQueryMatrixxOES(mantissa: java.nio.IntBuffer, exponent: java.nio.IntBuffer): number;
				}
				interface IGL {
					__javax_microedition_khronos_opengles_IGL?: any;
				}
			}
			export module egl {
				export class EGLSurface extends java.lang.Object {
					constructor();
					static class: java.lang.Class<javax.microedition.khronos.egl.EGLSurface>;
				}
				interface IEGL {
					__javax_microedition_khronos_egl_IEGL?: any;
				}
				export class EGL10 implements javax.microedition.khronos.egl.IEGL, javax.microedition.khronos.egl.IEGL10 {
					constructor(implementation: javax.microedition.khronos.egl.IEGL10);
					static EGL_SUCCESS: number;
					static EGL_NOT_INITIALIZED: number;
					static EGL_BAD_ACCESS: number;
					static EGL_BAD_ALLOC: number;
					static EGL_BAD_ATTRIBUTE: number;
					static EGL_BAD_CONFIG: number;
					static EGL_BAD_CONTEXT: number;
					static EGL_BAD_CURRENT_SURFACE: number;
					static EGL_BAD_DISPLAY: number;
					static EGL_BAD_MATCH: number;
					static EGL_BAD_NATIVE_PIXMAP: number;
					static EGL_BAD_NATIVE_WINDOW: number;
					static EGL_BAD_PARAMETER: number;
					static EGL_BAD_SURFACE: number;
					static EGL_BUFFER_SIZE: number;
					static EGL_ALPHA_SIZE: number;
					static EGL_BLUE_SIZE: number;
					static EGL_GREEN_SIZE: number;
					static EGL_RED_SIZE: number;
					static EGL_DEPTH_SIZE: number;
					static EGL_STENCIL_SIZE: number;
					static EGL_CONFIG_CAVEAT: number;
					static EGL_CONFIG_ID: number;
					static EGL_LEVEL: number;
					static EGL_MAX_PBUFFER_HEIGHT: number;
					static EGL_MAX_PBUFFER_PIXELS: number;
					static EGL_MAX_PBUFFER_WIDTH: number;
					static EGL_NATIVE_RENDERABLE: number;
					static EGL_NATIVE_VISUAL_ID: number;
					static EGL_NATIVE_VISUAL_TYPE: number;
					static EGL_SAMPLES: number;
					static EGL_SAMPLE_BUFFERS: number;
					static EGL_SURFACE_TYPE: number;
					static EGL_TRANSPARENT_TYPE: number;
					static EGL_TRANSPARENT_BLUE_VALUE: number;
					static EGL_TRANSPARENT_GREEN_VALUE: number;
					static EGL_TRANSPARENT_RED_VALUE: number;
					static EGL_NONE: number;
					static EGL_LUMINANCE_SIZE: number;
					static EGL_ALPHA_MASK_SIZE: number;
					static EGL_COLOR_BUFFER_TYPE: number;
					static EGL_RENDERABLE_TYPE: number;
					static EGL_SLOW_CONFIG: number;
					static EGL_NON_CONFORMANT_CONFIG: number;
					static EGL_TRANSPARENT_RGB: number;
					static EGL_RGB_BUFFER: number;
					static EGL_LUMINANCE_BUFFER: number;
					static EGL_VENDOR: number;
					static EGL_VERSION: number;
					static EGL_EXTENSIONS: number;
					static EGL_HEIGHT: number;
					static EGL_WIDTH: number;
					static EGL_LARGEST_PBUFFER: number;
					static EGL_RENDER_BUFFER: number;
					static EGL_COLORSPACE: number;
					static EGL_ALPHA_FORMAT: number;
					static EGL_HORIZONTAL_RESOLUTION: number;
					static EGL_VERTICAL_RESOLUTION: number;
					static EGL_PIXEL_ASPECT_RATIO: number;
					static EGL_SINGLE_BUFFER: number;
					static EGL_CORE_NATIVE_ENGINE: number;
					static EGL_DRAW: number;
					static EGL_READ: number;
					static EGL_DONT_CARE: number;
					static EGL_PBUFFER_BIT: number;
					static EGL_PIXMAP_BIT: number;
					static EGL_WINDOW_BIT: number;
					static EGL_DEFAULT_DISPLAY: any;
					static EGL_NO_DISPLAY: javax.microedition.khronos.egl.EGLDisplay;
					static EGL_NO_CONTEXT: javax.microedition.khronos.egl.EGLContext;
					static EGL_NO_SURFACE: javax.microedition.khronos.egl.EGLSurface;
					public eglChooseConfig(display: javax.microedition.khronos.egl.EGLDisplay, attrib_list: native.Array<number>, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					public eglCopyBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, native_pixmap: any): boolean;
					public eglCreateContext(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, share_context: javax.microedition.khronos.egl.EGLContext, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLContext;
					public eglCreatePbufferSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					public eglCreatePixmapSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_pixmap: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					public eglCreateWindowSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_window: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					public eglDestroyContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): boolean;
					public eglDestroySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					public eglGetConfigAttrib(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attribute: number, value: native.Array<number>): boolean;
					public eglGetConfigs(display: javax.microedition.khronos.egl.EGLDisplay, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					public eglGetCurrentContext(): javax.microedition.khronos.egl.EGLContext;
					public eglGetCurrentDisplay(): javax.microedition.khronos.egl.EGLDisplay;
					public eglGetCurrentSurface(readdraw: number): javax.microedition.khronos.egl.EGLSurface;
					public eglGetDisplay(native_display: any): javax.microedition.khronos.egl.EGLDisplay;
					public eglGetError(): number;
					public eglInitialize(display: javax.microedition.khronos.egl.EGLDisplay, major_minor: native.Array<number>): boolean;
					public eglMakeCurrent(display: javax.microedition.khronos.egl.EGLDisplay, draw: javax.microedition.khronos.egl.EGLSurface, read: javax.microedition.khronos.egl.EGLSurface, context: javax.microedition.khronos.egl.EGLContext): boolean;
					public eglQueryContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext, attribute: number, value: native.Array<number>): boolean;
					public eglQueryString(display: javax.microedition.khronos.egl.EGLDisplay, name: number): string;
					public eglQuerySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, attribute: number, value: native.Array<number>): boolean;
					public eglSwapBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					public eglTerminate(display: javax.microedition.khronos.egl.EGLDisplay): boolean;
					public eglWaitGL(): boolean;
					public eglWaitNative(engine: number, bindTarget: any): boolean;
				}
				export class EGLDisplay extends java.lang.Object {
					constructor();
					static class: java.lang.Class<javax.microedition.khronos.egl.EGLDisplay>;
				}
				export class EGL11 implements javax.microedition.khronos.egl.IEGL10, javax.microedition.khronos.egl.IEGL11 {
					constructor(implementation: javax.microedition.khronos.egl.IEGL11);
					static EGL_CONTEXT_LOST: number;
					eglChooseConfig(display: javax.microedition.khronos.egl.EGLDisplay, attrib_list: native.Array<number>, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					eglCopyBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, native_pixmap: any): boolean;
					eglCreateContext(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, share_context: javax.microedition.khronos.egl.EGLContext, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLContext;
					eglCreatePbufferSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglCreatePixmapSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_pixmap: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglCreateWindowSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_window: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglDestroyContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): boolean;
					eglDestroySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					eglGetConfigAttrib(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attribute: number, value: native.Array<number>): boolean;
					eglGetConfigs(display: javax.microedition.khronos.egl.EGLDisplay, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					eglGetCurrentContext(): javax.microedition.khronos.egl.EGLContext;
					eglGetCurrentDisplay(): javax.microedition.khronos.egl.EGLDisplay;
					eglGetCurrentSurface(readdraw: number): javax.microedition.khronos.egl.EGLSurface;
					eglGetDisplay(native_display: any): javax.microedition.khronos.egl.EGLDisplay;
					eglGetError(): number;
					eglInitialize(display: javax.microedition.khronos.egl.EGLDisplay, major_minor: native.Array<number>): boolean;
					eglMakeCurrent(display: javax.microedition.khronos.egl.EGLDisplay, draw: javax.microedition.khronos.egl.EGLSurface, read: javax.microedition.khronos.egl.EGLSurface, context: javax.microedition.khronos.egl.EGLContext): boolean;
					eglQueryContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext, attribute: number, value: native.Array<number>): boolean;
					eglQueryString(display: javax.microedition.khronos.egl.EGLDisplay, name: number): string;
					eglQuerySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, attribute: number, value: native.Array<number>): boolean;
					eglSwapBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					eglTerminate(display: javax.microedition.khronos.egl.EGLDisplay): boolean;
					eglWaitGL(): boolean;
					eglWaitNative(engine: number, bindTarget: any): boolean;
				}
				export class EGLContext extends java.lang.Object {
					constructor();
					static class: java.lang.Class<javax.microedition.khronos.egl.EGLContext>;
					public static getEGL(): javax.microedition.khronos.egl.IEGL;
					public getGL(): javax.microedition.khronos.opengles.IGL;
				}
				export class EGL implements javax.microedition.khronos.egl.IEGL {
					constructor(implementation: javax.microedition.khronos.egl.IEGL);
				}
				interface IEGL11 extends javax.microedition.khronos.egl.IEGL10 {
					eglChooseConfig(display: javax.microedition.khronos.egl.EGLDisplay, attrib_list: native.Array<number>, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					eglCopyBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, native_pixmap: any): boolean;
					eglCreateContext(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, share_context: javax.microedition.khronos.egl.EGLContext, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLContext;
					eglCreatePbufferSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglCreatePixmapSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_pixmap: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglCreateWindowSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_window: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglDestroyContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): boolean;
					eglDestroySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					eglGetConfigAttrib(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attribute: number, value: native.Array<number>): boolean;
					eglGetConfigs(display: javax.microedition.khronos.egl.EGLDisplay, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					eglGetCurrentContext(): javax.microedition.khronos.egl.EGLContext;
					eglGetCurrentDisplay(): javax.microedition.khronos.egl.EGLDisplay;
					eglGetCurrentSurface(readdraw: number): javax.microedition.khronos.egl.EGLSurface;
					eglGetDisplay(native_display: any): javax.microedition.khronos.egl.EGLDisplay;
					eglGetError(): number;
					eglInitialize(display: javax.microedition.khronos.egl.EGLDisplay, major_minor: native.Array<number>): boolean;
					eglMakeCurrent(display: javax.microedition.khronos.egl.EGLDisplay, draw: javax.microedition.khronos.egl.EGLSurface, read: javax.microedition.khronos.egl.EGLSurface, context: javax.microedition.khronos.egl.EGLContext): boolean;
					eglQueryContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext, attribute: number, value: native.Array<number>): boolean;
					eglQueryString(display: javax.microedition.khronos.egl.EGLDisplay, name: number): string;
					eglQuerySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, attribute: number, value: native.Array<number>): boolean;
					eglSwapBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					eglTerminate(display: javax.microedition.khronos.egl.EGLDisplay): boolean;
					eglWaitGL(): boolean;
					eglWaitNative(engine: number, bindTarget: any): boolean;
				}
				export module IEGL11 {
					var EGL_CONTEXT_LOST: number;
				}
				interface IEGL10 extends javax.microedition.khronos.egl.IEGL {
					eglChooseConfig(display: javax.microedition.khronos.egl.EGLDisplay, attrib_list: native.Array<number>, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					eglCopyBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, native_pixmap: any): boolean;
					eglCreateContext(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, share_context: javax.microedition.khronos.egl.EGLContext, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLContext;
					eglCreatePbufferSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglCreatePixmapSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_pixmap: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglCreateWindowSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_window: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
					eglDestroyContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): boolean;
					eglDestroySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					eglGetConfigAttrib(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attribute: number, value: native.Array<number>): boolean;
					eglGetConfigs(display: javax.microedition.khronos.egl.EGLDisplay, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
					eglGetCurrentContext(): javax.microedition.khronos.egl.EGLContext;
					eglGetCurrentDisplay(): javax.microedition.khronos.egl.EGLDisplay;
					eglGetCurrentSurface(readdraw: number): javax.microedition.khronos.egl.EGLSurface;
					eglGetDisplay(native_display: any): javax.microedition.khronos.egl.EGLDisplay;
					eglGetError(): number;
					eglInitialize(display: javax.microedition.khronos.egl.EGLDisplay, major_minor: native.Array<number>): boolean;
					eglMakeCurrent(display: javax.microedition.khronos.egl.EGLDisplay, draw: javax.microedition.khronos.egl.EGLSurface, read: javax.microedition.khronos.egl.EGLSurface, context: javax.microedition.khronos.egl.EGLContext): boolean;
					eglQueryContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext, attribute: number, value: native.Array<number>): boolean;
					eglQueryString(display: javax.microedition.khronos.egl.EGLDisplay, name: number): string;
					eglQuerySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, attribute: number, value: native.Array<number>): boolean;
					eglSwapBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
					eglTerminate(display: javax.microedition.khronos.egl.EGLDisplay): boolean;
					eglWaitGL(): boolean;
					eglWaitNative(engine: number, bindTarget: any): boolean;
				}
				export module IEGL10 {
					var EGL_SUCCESS: number;
					var EGL_NOT_INITIALIZED: number;
					var EGL_BAD_ACCESS: number;
					var EGL_BAD_ALLOC: number;
					var EGL_BAD_ATTRIBUTE: number;
					var EGL_BAD_CONFIG: number;
					var EGL_BAD_CONTEXT: number;
					var EGL_BAD_CURRENT_SURFACE: number;
					var EGL_BAD_DISPLAY: number;
					var EGL_BAD_MATCH: number;
					var EGL_BAD_NATIVE_PIXMAP: number;
					var EGL_BAD_NATIVE_WINDOW: number;
					var EGL_BAD_PARAMETER: number;
					var EGL_BAD_SURFACE: number;
					var EGL_BUFFER_SIZE: number;
					var EGL_ALPHA_SIZE: number;
					var EGL_BLUE_SIZE: number;
					var EGL_GREEN_SIZE: number;
					var EGL_RED_SIZE: number;
					var EGL_DEPTH_SIZE: number;
					var EGL_STENCIL_SIZE: number;
					var EGL_CONFIG_CAVEAT: number;
					var EGL_CONFIG_ID: number;
					var EGL_LEVEL: number;
					var EGL_MAX_PBUFFER_HEIGHT: number;
					var EGL_MAX_PBUFFER_PIXELS: number;
					var EGL_MAX_PBUFFER_WIDTH: number;
					var EGL_NATIVE_RENDERABLE: number;
					var EGL_NATIVE_VISUAL_ID: number;
					var EGL_NATIVE_VISUAL_TYPE: number;
					var EGL_SAMPLES: number;
					var EGL_SAMPLE_BUFFERS: number;
					var EGL_SURFACE_TYPE: number;
					var EGL_TRANSPARENT_TYPE: number;
					var EGL_TRANSPARENT_BLUE_VALUE: number;
					var EGL_TRANSPARENT_GREEN_VALUE: number;
					var EGL_TRANSPARENT_RED_VALUE: number;
					var EGL_NONE: number;
					var EGL_LUMINANCE_SIZE: number;
					var EGL_ALPHA_MASK_SIZE: number;
					var EGL_COLOR_BUFFER_TYPE: number;
					var EGL_RENDERABLE_TYPE: number;
					var EGL_SLOW_CONFIG: number;
					var EGL_NON_CONFORMANT_CONFIG: number;
					var EGL_TRANSPARENT_RGB: number;
					var EGL_RGB_BUFFER: number;
					var EGL_LUMINANCE_BUFFER: number;
					var EGL_VENDOR: number;
					var EGL_VERSION: number;
					var EGL_EXTENSIONS: number;
					var EGL_HEIGHT: number;
					var EGL_WIDTH: number;
					var EGL_LARGEST_PBUFFER: number;
					var EGL_RENDER_BUFFER: number;
					var EGL_COLORSPACE: number;
					var EGL_ALPHA_FORMAT: number;
					var EGL_HORIZONTAL_RESOLUTION: number;
					var EGL_VERTICAL_RESOLUTION: number;
					var EGL_PIXEL_ASPECT_RATIO: number;
					var EGL_SINGLE_BUFFER: number;
					var EGL_CORE_NATIVE_ENGINE: number;
					var EGL_DRAW: number;
					var EGL_READ: number;
					var EGL_DONT_CARE: number;
					var EGL_PBUFFER_BIT: number;
					var EGL_PIXMAP_BIT: number;
					var EGL_WINDOW_BIT: number;
					var EGL_DEFAULT_DISPLAY: any;
					var EGL_NO_DISPLAY: javax.microedition.khronos.egl.EGLDisplay;
					var EGL_NO_CONTEXT: javax.microedition.khronos.egl.EGLContext;
					var EGL_NO_SURFACE: javax.microedition.khronos.egl.EGLSurface;
				}
				export class EGLConfig extends java.lang.Object {
					constructor();
					static class: java.lang.Class<javax.microedition.khronos.egl.EGLConfig>;
				}
			}
		}
	}
	export module security {
		export module auth {
			/**
			 * Signals that the Destroyable#destroy() method failed.
			 */
			export class DestroyFailedException extends java.lang.Exception {
				/**
				 * Creates an exception of type DestroyFailedException.
				 */
				constructor();
				/**
				 * Creates an exception of type DestroyFailedException.
				 * @param message 
				 */
				constructor(message: string);
				static class: java.lang.Class<javax.security.auth.DestroyFailedException>;
			}
			/**
			 * Allows for special treatment of sensitive information, when it comes to destroying or clearing of the data.
			 */
			export class Destroyable implements javax.security.auth.IDestroyable {
				constructor(implementation: javax.security.auth.IDestroyable);
				/**
				 * Erases the sensitive information. Once an object is destroyed any calls to its methods will throw an IllegalStateException. If it does not succeed a DestroyFailedException is thrown.
				 */
				public destroy(): void;
				/**
				 * Returns true once an object has been safely destroyed.
				 */
				public isDestroyed(): boolean;
			}
			/**
			 * Allows for special treatment of sensitive information, when it comes to destroying or clearing of the data.
			 */
			interface IDestroyable {
				/**
				 * Erases the sensitive information. Once an object is destroyed any calls to its methods will throw an IllegalStateException. If it does not succeed a DestroyFailedException is thrown.
				 */
				destroy(): void;
				/**
				 * Returns true once an object has been safely destroyed.
				 */
				isDestroyed(): boolean;
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class AuthPermission extends java.security.BasicPermission {
				constructor(name: string);
				constructor(name: string, actions: string);
				static class: java.lang.Class<javax.security.auth.AuthPermission>;
				public getActions(): string;
				public implies(permission: java.security.Permission): boolean;
			}
			export module callback {
				/**
				 * Needs to be implemented by classes that want to handle authentication Callbacks. A single method #handle(Callback[]) must be provided that checks the type of the incoming Callbacks and reacts accordingly. CallbackHandlers can be installed per application. It is also possible to configure a system-default CallbackHandler by setting the auth.login.defaultCallbackHandler property in the standard security.properties file.
				 */
				export class CallbackHandler implements javax.security.auth.callback.ICallbackHandler {
					constructor(implementation: javax.security.auth.callback.ICallbackHandler);
					/**
					 * Handles the actual Callback. A CallbackHandler needs to implement this method. In the method, it is free to select which Callbacks it actually wants to handle and in which way. For example, a console-based CallbackHandler might choose to sequentially ask the user for login and password, if it implements these Callback s, whereas a GUI-based one might open a single dialog window for both values. If a CallbackHandler is not able to handle a specific Callback, it needs to throw an UnsupportedCallbackException.
					 * @param callbacks 
					 */
					public handle(callbacks: native.Array<javax.security.auth.callback.ICallback>): void;
				}
				/**
				 * Needs to be implemented by classes that want to handle authentication Callbacks. A single method #handle(Callback[]) must be provided that checks the type of the incoming Callbacks and reacts accordingly. CallbackHandlers can be installed per application. It is also possible to configure a system-default CallbackHandler by setting the auth.login.defaultCallbackHandler property in the standard security.properties file.
				 */
				interface ICallbackHandler {
					/**
					 * Handles the actual Callback. A CallbackHandler needs to implement this method. In the method, it is free to select which Callbacks it actually wants to handle and in which way. For example, a console-based CallbackHandler might choose to sequentially ask the user for login and password, if it implements these Callback s, whereas a GUI-based one might open a single dialog window for both values. If a CallbackHandler is not able to handle a specific Callback, it needs to throw an UnsupportedCallbackException.
					 * @param callbacks 
					 */
					handle(callbacks: native.Array<javax.security.auth.callback.ICallback>): void;
				}
				/**
				 * Defines an empty base interface for all Callbacks used during authentication.
				 */
				export class Callback implements javax.security.auth.callback.ICallback {
					constructor(implementation: javax.security.auth.callback.ICallback);
				}
				/**
				 * Defines an empty base interface for all Callbacks used during authentication.
				 */
				interface ICallback {
				}
				/**
				 * Used in conjunction with a CallbackHandler to retrieve a password when needed.
				 */
				export class PasswordCallback extends java.lang.Object implements javax.security.auth.callback.ICallback, java.io.ISerializable {
					/**
					 * Creates a new PasswordCallback instance.
					 * @param prompt 
					 * @param echoOn 
					 */
					constructor(prompt: string, echoOn: boolean);
					static class: java.lang.Class<javax.security.auth.callback.PasswordCallback>;
					/**
					 * Returns the prompt that was specified when creating this PasswordCallback
					 */
					public getPrompt(): string;
					/**
					 * Queries whether this PasswordCallback expects user input to be echoed, which is specified during the creation of the object.
					 */
					public isEchoOn(): boolean;
					/**
					 * Sets the password. The CallbackHandler that performs the actual provisioning or input of the password needs to call this method to hand back the password to the security service that requested it.
					 * @param password 
					 */
					public setPassword(password: native.Array<string>): void;
					/**
					 * Returns the password. The security service that needs the password usually calls this method once the CallbackHandler has finished its work.
					 */
					public getPassword(): native.Array<string>;
					/**
					 * Clears the password stored in this PasswordCallback.
					 */
					public clearPassword(): void;
				}
				/**
				 * Thrown when a CallbackHandler does not support a particular Callback.
				 */
				export class UnsupportedCallbackException extends java.lang.Exception {
					/**
					 * Creates a new exception instance and initializes it with just the unsupported Callback, but no error message.
					 * @param callback 
					 */
					constructor(callback: javax.security.auth.callback.ICallback);
					/**
					 * Creates a new exception instance and initializes it with both the unsupported Callback and an error message.
					 * @param callback 
					 * @param message 
					 */
					constructor(callback: javax.security.auth.callback.ICallback, message: string);
					static class: java.lang.Class<javax.security.auth.callback.UnsupportedCallbackException>;
					/**
					 * Returns the unsupported Callback that triggered this exception.
					 */
					public getCallback(): javax.security.auth.callback.ICallback;
				}
			}
			export module x500 {
				/**
				 * Represents an X.500 principal, which holds the distinguished name of some network entity. An example of a distinguished name is "O=SomeOrg, OU=SomeOrgUnit, C=US". The class can be instantiated from a byte representation of an object identifier (OID), an ASN.1 DER-encoded version, or a simple string holding the distinguished name. The representations must follow either RFC 2253, RFC 1779, or RFC2459.
				 */
				export class X500Principal extends java.lang.Object implements java.io.ISerializable, java.security.IPrincipal {
					/**
					 * Creates a new X500Principal from a given ASN.1 DER encoding of a distinguished name.
					 * @param name 
					 */
					constructor(name: native.Array<number>);
					/**
					 * Creates a new X500Principal from a given ASN.1 DER encoding of a distinguished name.
					 * @param input in
					 */
					constructor(input: java.io.InputStream);
					/**
					 * Creates a new X500Principal from a string representation of a distinguished name.
					 * @param name 
					 */
					constructor(name: string);
					constructor(name: string, keywordMap: java.util.IMap<string, string>);
					/**
					 * Defines a constant for the canonical string format of distinguished names.
					 */
					static CANONICAL: string;
					/**
					 * Defines a constant for the RFC 1779 string format of distinguished names.
					 */
					static RFC1779: string;
					/**
					 * Defines a constant for the RFC 2253 string format of distinguished names.
					 */
					static RFC2253: string;
					static class: java.lang.Class<javax.security.auth.x500.X500Principal>;
					public equals(o: any): boolean;
					/**
					 * Returns an ASN.1 DER-encoded representation of the distinguished name contained in this X.500 principal.
					 */
					public getEncoded(): native.Array<number>;
					/**
					 * Returns a human-readable string representation of the distinguished name contained in this X.500 principal.
					 */
					public getName(): string;
					/**
					 * Returns a string representation of the distinguished name contained in this X.500 principal. The format of the representation can be chosen. Valid arguments are #RFC1779, #RFC2253, and #CANONICAL. The representations are specified in RFC 1779 and RFC 2253, respectively. The canonical form is based on RFC 2253, but adds some canonicalizing operations like removing leading and trailing whitespace, lower-casing the whole name, and bringing it into a normalized Unicode representation.
					 * @param format 
					 */
					public getName(format: string): string;
					public getName(format: string, oidMap: java.util.IMap<string, string>): string;
					public hashCode(): number;
					public toString(): string;
				}
			}
			export module login {
				/**
				 * Base class for exceptions that are thrown when a login error occurs.
				 */
				export class LoginException extends java.security.GeneralSecurityException {
					/**
					 * Creates a new exception instance and initializes it with default values.
					 */
					constructor();
					/**
					 * Creates a new exception instance and initializes it with a given message.
					 * @param message the error message
					 */
					constructor(message: string);
					static class: java.lang.Class<javax.security.auth.login.LoginException>;
				}
			}
			/**
			 * The central class of the javax.security.auth package representing an authenticated user or entity (both referred to as "subject"). IT defines also the static methods that allow code to be run, and do modifications according to the subject's permissions.
			 */
			export class Subject extends java.lang.Object implements java.io.ISerializable {
				/**
				 * The default constructor initializing the sets of public and private credentials and principals with the empty set.
				 */
				constructor();
				/**
				 * The constructor for the subject, setting its public and private credentials and principals according to the arguments.
				 * @param readOnly 
				 * @param subjPrincipals 
				 * @param pubCredentials 
				 * @param privCredentials 
				 */
				constructor(readOnly: boolean, subjPrincipals: java.util.ISet<any>, pubCredentials: java.util.ISet<any>, privCredentials: java.util.ISet<any>);
				static class: java.lang.Class<javax.security.auth.Subject>;
				/**
				 * Runs the code defined by action using the permissions granted to the Subject itself and to the code as well.
				 * @param subject 
				 * @param action 
				 */
				public static doAs<T>(subject: javax.security.auth.Subject, action: java.security.IPrivilegedAction<T>): T;
				/**
				 * Run the code defined by action using the permissions granted to the Subject and to the code itself, additionally providing a more specific context.
				 * @param subject 
				 * @param action 
				 * @param context 
				 */
				public static doAsPrivileged<T>(subject: javax.security.auth.Subject, action: java.security.IPrivilegedAction<T>, context: java.security.AccessControlContext): T;
				/**
				 * Runs the code defined by action using the permissions granted to the subject and to the code itself.
				 * @param subject 
				 * @param action 
				 */
				public static doAs<T>(subject: javax.security.auth.Subject, action: java.security.IPrivilegedExceptionAction<T>): T;
				/**
				 * Runs the code defined by action using the permissions granted to the subject and to the code itself, additionally providing a more specific context.
				 * @param subject 
				 * @param action 
				 * @param context 
				 */
				public static doAsPrivileged<T>(subject: javax.security.auth.Subject, action: java.security.IPrivilegedExceptionAction<T>, context: java.security.AccessControlContext): T;
				/**
				 * Checks two Subjects for equality. More specifically if the principals, public and private credentials are equal, equality for two Subjects is implied.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns this Subject's Principal.
				 */
				public getPrincipals(): java.util.ISet<java.security.IPrincipal>;
				/**
				 * Returns this Subject's Principal which is a subclass of the Class provided.
				 * @param c 
				 */
				public getPrincipals<T extends java.security.IPrincipal>(c: java.lang.Class<T>): java.util.ISet<T>;
				/**
				 * Returns the private credentials associated with this Subject.
				 */
				public getPrivateCredentials(): java.util.ISet<any>;
				/**
				 * Returns this Subject's private credentials which are a subclass of the Class provided.
				 * @param c 
				 */
				public getPrivateCredentials<T>(c: java.lang.Class<T>): java.util.ISet<T>;
				/**
				 * Returns the public credentials associated with this Subject.
				 */
				public getPublicCredentials(): java.util.ISet<any>;
				/**
				 * Returns this Subject's public credentials which are a subclass of the Class provided.
				 * @param c 
				 */
				public getPublicCredentials<T>(c: java.lang.Class<T>): java.util.ISet<T>;
				/**
				 * Returns a hash code of this Subject.
				 */
				public hashCode(): number;
				/**
				 * Prevents from modifications being done to the credentials and Principal sets. After setting it to read-only this Subject can not be made writable again. The destroy method on the credentials still works though.
				 */
				public setReadOnly(): void;
				/**
				 * Returns whether this Subject is read-only or not.
				 */
				public isReadOnly(): boolean;
				/**
				 * Returns a String representation of this Subject.
				 */
				public toString(): string;
				/**
				 * Returns the Subject that was last associated with the context provided as argument.
				 * @param context 
				 */
				public static getSubject(context: java.security.AccessControlContext): javax.security.auth.Subject;
			}
			export module Subject {
				export class SecureSet<SST> extends java.util.AbstractSet<SST> implements java.io.ISerializable {
					static class: java.lang.Class<javax.security.auth.Subject.SecureSet<any>>;
					public add(o: SST): boolean;
					public iterator(): java.util.IIterator<SST>;
					public retainAll(c: java.util.ICollection<any>): boolean;
					public size(): number;
					/**
					 * return set with elements that are instances or subclasses of the specified class
					 */
					protected get<E>(c: java.lang.Class<E>): java.util.ISet<E>;
				}
				export module SecureSet {
					/**
					 * Represents iterator for subject's secure set
					 */
					export class SecureIterator extends java.lang.Object {
						static class: java.lang.Class<javax.security.auth.Subject.SecureSet.SecureIterator>;
						public hasNext(): boolean;
						public next(): any;
						/**
						 * checks set state, and security permission to modify set before removing current element
						 */
						public remove(): void;
					}
				}
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class SubjectDomainCombiner extends java.lang.Object implements java.security.IDomainCombiner {
				constructor(subject: javax.security.auth.Subject);
				static class: java.lang.Class<javax.security.auth.SubjectDomainCombiner>;
				public getSubject(): javax.security.auth.Subject;
				public combine(currentDomains: native.Array<java.security.ProtectionDomain>, assignedDomains: native.Array<java.security.ProtectionDomain>): native.Array<java.security.ProtectionDomain>;
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class PrivateCredentialPermission extends java.security.Permission {
				constructor(name: string, action: string);
				static class: java.lang.Class<javax.security.auth.PrivateCredentialPermission>;
				public getPrincipals(): native.Array<native.Array<string>>;
				public getCredentialClass(): string;
				public getActions(): string;
				public implies(permission: java.security.Permission): boolean;
			}
		}
		export module cert {
			/**
			 * The exception that is thrown when a Certificate is not yet valid.
			 */
			export class CertificateNotYetValidException extends javax.security.cert.CertificateException {
				/**
				 * Creates a new CertificateNotYetValidException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateNotYetValidException.
				 */
				constructor();
				static class: java.lang.Class<javax.security.cert.CertificateNotYetValidException>;
			}
			/**
			 * The exception that is thrown when a Certificate can not be parsed.
			 */
			export class CertificateParsingException extends javax.security.cert.CertificateException {
				/**
				 * Creates a new CertificateParsingException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateParsingException.
				 */
				constructor();
				static class: java.lang.Class<javax.security.cert.CertificateParsingException>;
			}
			/**
			 * The exception that is thrown when a Certificate has expired.
			 */
			export class CertificateExpiredException extends javax.security.cert.CertificateException {
				/**
				 * Creates a new CertificateExpiredException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateExpiredException.
				 */
				constructor();
				static class: java.lang.Class<javax.security.cert.CertificateExpiredException>;
			}
			/**
			 * The base class for all Certificate related exceptions.
			 */
			export class CertificateException extends java.lang.Exception {
				/**
				 * Creates a new CertificateException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateException.
				 */
				constructor();
				static class: java.lang.Class<javax.security.cert.CertificateException>;
			}
			/**
			 * The exception that is thrown when an error occurs while a Certificate is being encoded.
			 */
			export class CertificateEncodingException extends javax.security.cert.CertificateException {
				/**
				 * Creates a new CertificateEncodingException with the specified message.
				 * @param msg 
				 */
				constructor(msg: string);
				/**
				 * Creates a new CertificateEncodingException.
				 */
				constructor();
				static class: java.lang.Class<javax.security.cert.CertificateEncodingException>;
			}
			/**
			 * Abstract base class for X.509 certificates.
			 */
			export class X509Certificate extends javax.security.cert.Certificate {
				/**
				 * Creates a new X509Certificate.
				 */
				constructor();
				static class: java.lang.Class<javax.security.cert.X509Certificate>;
				/**
				 * Creates a new X509Certificate and initializes it from the specified input stream.
				 * @param inStream 
				 */
				public static getInstance(inStream: java.io.InputStream): javax.security.cert.X509Certificate;
				/**
				 * Creates a new X509Certificate and initializes it from the specified byte array.
				 * @param certData 
				 */
				public static getInstance(certData: native.Array<number>): javax.security.cert.X509Certificate;
				/**
				 * Checks whether the certificate is currently valid.
				 */
				public checkValidity(): void;
				/**
				 * Checks whether the certificate is valid at the specified date.
				 * @param date 
				 */
				public checkValidity(date: java.util.Date): void;
				/**
				 * Returns the certificates version (version number).
				 */
				public getVersion(): number;
				/**
				 * Returns the serialNumber of the certificate.
				 */
				public getSerialNumber(): java.math.BigInteger;
				/**
				 * Returns the issuer (issuer distinguished name) as an implementation specific Principal object.
				 */
				public getIssuerDN(): java.security.IPrincipal;
				/**
				 * Returns the subject (subject distinguished name) as an implementation specific Principal object.
				 */
				public getSubjectDN(): java.security.IPrincipal;
				/**
				 * Returns the notBefore date from the validity period of the certificate.
				 */
				public getNotBefore(): java.util.Date;
				/**
				 * Returns the notAfter date of the validity period of the certificate.
				 */
				public getNotAfter(): java.util.Date;
				/**
				 * Returns the name of the algorithm for the certificate signature.
				 */
				public getSigAlgName(): string;
				/**
				 * Returns the OID of the signature algorithm from the certificate.
				 */
				public getSigAlgOID(): string;
				/**
				 * Returns the parameters of the signature algorithm in DER-encoded format.
				 */
				public getSigAlgParams(): native.Array<number>;
			}
			/**
			 * Abstract class to represent identity certificates. It represents a way to verify the binding of a Principal and its public key. Examples are X.509, PGP, and SDSI.
			 */
			export class Certificate extends java.lang.Object {
				/**
				 * Creates a new Certificate.
				 */
				constructor();
				static class: java.lang.Class<javax.security.cert.Certificate>;
				/**
				 * Compares the argument to this Certificate. If both have the same bytes they are assumed to be equal.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns an integer hash code for the receiver. Any two objects which return <code>true</code> when passed to <code>equals</code> must answer the same value for this method.
				 */
				public hashCode(): number;
				/**
				 * Returns the encoded representation for this certificate.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Verifies that this certificate was signed with the given public key.
				 * @param key 
				 */
				public verify(key: java.security.IPublicKey): void;
				/**
				 * Verifies that this certificate was signed with the given public key. Uses the signature algorithm given by the provider.
				 * @param key 
				 * @param sigProvider 
				 */
				public verify(key: java.security.IPublicKey, sigProvider: string): void;
				/**
				 * Returns a string containing a concise, human-readable description of the receiver.
				 */
				public toString(): string;
				/**
				 * Returns the public key corresponding to this certificate.
				 */
				public getPublicKey(): java.security.IPublicKey;
			}
		}
	}
	export module xml {
		export module xpath {
			export class XPath implements javax.xml.xpath.IXPath {
				constructor(implementation: javax.xml.xpath.IXPath);
				public reset(): void;
				/**
				 * @param resolver Variable resolver.
				 */
				public setXPathVariableResolver(resolver: javax.xml.xpath.IXPathVariableResolver): void;
				public getXPathVariableResolver(): javax.xml.xpath.IXPathVariableResolver;
				/**
				 * @param resolver XPath function resolver.
				 */
				public setXPathFunctionResolver(resolver: javax.xml.xpath.IXPathFunctionResolver): void;
				public getXPathFunctionResolver(): javax.xml.xpath.IXPathFunctionResolver;
				/**
				 * @param nsContext Namespace context to use.
				 */
				public setNamespaceContext(nsContext: javax.xml.namespace.INamespaceContext): void;
				public getNamespaceContext(): javax.xml.namespace.INamespaceContext;
				/**
				 * @param expression The XPath expression.
				 */
				public compile(expression: string): javax.xml.xpath.IXPathExpression;
				/**
				 * @param expression The XPath expression.
				 * @param item The starting context (node or node list, for example).
				 * @param returnType The desired return type.
				 */
				public evaluate(expression: string, item: any, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param expression The XPath expression.
				 * @param item The starting context (node or node list, for example).
				 */
				public evaluate(expression: string, item: any): string;
				/**
				 * @param expression The XPath expression.
				 * @param source The input source of the document to evaluate over.
				 * @param returnType The desired return type.
				 */
				public evaluate(expression: string, source: org.xml.sax.InputSource, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param expression The XPath expression.
				 * @param source The <code>InputSource</code> of the document to evaluate over.
				 */
				public evaluate(expression: string, source: org.xml.sax.InputSource): string;
			}
			export class XPathExpression implements javax.xml.xpath.IXPathExpression {
				constructor(implementation: javax.xml.xpath.IXPathExpression);
				/**
				 * @param item The starting context (node or node list, for example).
				 * @param returnType The desired return type.
				 */
				public evaluate(item: any, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param item The starting context (node or node list, for example).
				 */
				public evaluate(item: any): string;
				/**
				 * @param source The <code>InputSource</code> of the document to evaluate over.
				 * @param returnType The desired return type.
				 */
				public evaluate(source: org.xml.sax.InputSource, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param source The <code>InputSource</code> of the document to evaluate over.
				 */
				public evaluate(source: org.xml.sax.InputSource): string;
			}
			interface IXPathExpression {
				/**
				 * @param item The starting context (node or node list, for example).
				 * @param returnType The desired return type.
				 */
				evaluate(item: any, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param item The starting context (node or node list, for example).
				 */
				evaluate(item: any): string;
				/**
				 * @param source The <code>InputSource</code> of the document to evaluate over.
				 * @param returnType The desired return type.
				 */
				evaluate(source: org.xml.sax.InputSource, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param source The <code>InputSource</code> of the document to evaluate over.
				 */
				evaluate(source: org.xml.sax.InputSource): string;
			}
			interface IXPathVariableResolver {
				/**
				 * @param variableName The <code>QName</code> of the variable name.
				 */
				resolveVariable(variableName: javax.xml.namespace.QName): any;
			}
			/**
			 * <code>XPathException</code> represents a generic XPath exception.</p>
			 */
			export class XPathException extends java.lang.Exception {
				/**
				 * @param message The detail message.
				 */
				constructor(message: string);
				/**
				 * @param cause The cause.
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<javax.xml.xpath.XPathException>;
				public getCause(): java.lang.Throwable;
				public printStackTrace(s: java.io.PrintStream): void;
				public printStackTrace(): void;
				public printStackTrace(s: java.io.PrintWriter): void;
			}
			export class XPathFunction implements javax.xml.xpath.IXPathFunction {
				constructor(implementation: javax.xml.xpath.IXPathFunction);
				/**
				 * @param args The arguments, <code>null</code> is a valid value.
				 */
				public evaluate(args: java.util.IList<any>): any;
			}
			/**
			 * <code>XPathExpressionException</code> represents an error in an XPath expression.</p>
			 */
			export class XPathExpressionException extends javax.xml.xpath.XPathException {
				/**
				 * @param message The detail message.
				 */
				constructor(message: string);
				/**
				 * @param cause The cause.
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<javax.xml.xpath.XPathExpressionException>;
			}
			/**
			 * Implementation of XPathFactory#newInstance(String).
			 */
			export class XPathFactoryFinder extends java.lang.Object {
				/**
				 * @param loader 
				 */
				constructor(loader: java.lang.ClassLoader);
				static class: java.lang.Class<javax.xml.xpath.XPathFactoryFinder>;
				/**
				 * @param uri 
				 */
				public newFactory(uri: string): javax.xml.xpath.XPathFactory;
				/**
				 * @param className 
				 */
				createInstance(className: string): javax.xml.xpath.XPathFactory;
			}
			export class XPathVariableResolver implements javax.xml.xpath.IXPathVariableResolver {
				constructor(implementation: javax.xml.xpath.IXPathVariableResolver);
				/**
				 * @param variableName The <code>QName</code> of the variable name.
				 */
				public resolveVariable(variableName: javax.xml.namespace.QName): any;
			}
			export class XPathConstants extends java.lang.Object {
				static NUMBER: javax.xml.namespace.QName;
				static STRING: javax.xml.namespace.QName;
				static BOOLEAN: javax.xml.namespace.QName;
				static NODESET: javax.xml.namespace.QName;
				static NODE: javax.xml.namespace.QName;
				static DOM_OBJECT_MODEL: string;
				static class: java.lang.Class<javax.xml.xpath.XPathConstants>;
			}
			export class XPathFactory extends java.lang.Object {
				static DEFAULT_PROPERTY_NAME: string;
				static DEFAULT_OBJECT_MODEL_URI: string;
				static class: java.lang.Class<javax.xml.xpath.XPathFactory>;
				public static newInstance(): javax.xml.xpath.XPathFactory;
				/**
				 * @param uri Identifies the underlying object model.
				 */
				public static newInstance(uri: string): javax.xml.xpath.XPathFactory;
				public static newInstance(uri: string, factoryClassName: string, classLoader: java.lang.ClassLoader): javax.xml.xpath.XPathFactory;
				/**
				 * @param objectModel Specifies the object model which the returned <code>XPathFactory</code> will understand.
				 */
				public isObjectModelSupported(objectModel: string): boolean;
				/**
				 * @param name Feature name.
				 * @param value Is feature state <code>true</code> or <code>false</code>.
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * @param name Feature name.
				 */
				public getFeature(name: string): boolean;
				/**
				 * @param resolver Variable resolver.
				 */
				public setXPathVariableResolver(resolver: javax.xml.xpath.IXPathVariableResolver): void;
				/**
				 * @param resolver XPath function resolver.
				 */
				public setXPathFunctionResolver(resolver: javax.xml.xpath.IXPathFunctionResolver): void;
				public newXPath(): javax.xml.xpath.IXPath;
			}
			/**
			 * <code>XPathFunctionException</code> represents an error with an XPath function.</p>
			 */
			export class XPathFunctionException extends javax.xml.xpath.XPathExpressionException {
				/**
				 * @param message The detail message.
				 */
				constructor(message: string);
				/**
				 * @param cause The cause.
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<javax.xml.xpath.XPathFunctionException>;
			}
			interface IXPathFunctionResolver {
				/**
				 * @param functionName The function name.
				 * @param arity The number of arguments that the returned function must accept.
				 */
				resolveFunction(functionName: javax.xml.namespace.QName, arity: number): javax.xml.xpath.IXPathFunction;
			}
			export class XPathFunctionResolver implements javax.xml.xpath.IXPathFunctionResolver {
				constructor(implementation: javax.xml.xpath.IXPathFunctionResolver);
				/**
				 * @param functionName The function name.
				 * @param arity The number of arguments that the returned function must accept.
				 */
				public resolveFunction(functionName: javax.xml.namespace.QName, arity: number): javax.xml.xpath.IXPathFunction;
			}
			/**
			 * <code>XPathFactoryConfigurationException</code> represents a configuration error in a <code>XPathFactory</code> environment.</p>
			 */
			export class XPathFactoryConfigurationException extends javax.xml.xpath.XPathException {
				/**
				 * @param message The detail message.
				 */
				constructor(message: string);
				/**
				 * @param cause The cause.
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<javax.xml.xpath.XPathFactoryConfigurationException>;
			}
			interface IXPath {
				reset(): void;
				/**
				 * @param resolver Variable resolver.
				 */
				setXPathVariableResolver(resolver: javax.xml.xpath.IXPathVariableResolver): void;
				getXPathVariableResolver(): javax.xml.xpath.IXPathVariableResolver;
				/**
				 * @param resolver XPath function resolver.
				 */
				setXPathFunctionResolver(resolver: javax.xml.xpath.IXPathFunctionResolver): void;
				getXPathFunctionResolver(): javax.xml.xpath.IXPathFunctionResolver;
				/**
				 * @param nsContext Namespace context to use.
				 */
				setNamespaceContext(nsContext: javax.xml.namespace.INamespaceContext): void;
				getNamespaceContext(): javax.xml.namespace.INamespaceContext;
				/**
				 * @param expression The XPath expression.
				 */
				compile(expression: string): javax.xml.xpath.IXPathExpression;
				/**
				 * @param expression The XPath expression.
				 * @param item The starting context (node or node list, for example).
				 * @param returnType The desired return type.
				 */
				evaluate(expression: string, item: any, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param expression The XPath expression.
				 * @param item The starting context (node or node list, for example).
				 */
				evaluate(expression: string, item: any): string;
				/**
				 * @param expression The XPath expression.
				 * @param source The input source of the document to evaluate over.
				 * @param returnType The desired return type.
				 */
				evaluate(expression: string, source: org.xml.sax.InputSource, returnType: javax.xml.namespace.QName): any;
				/**
				 * @param expression The XPath expression.
				 * @param source The <code>InputSource</code> of the document to evaluate over.
				 */
				evaluate(expression: string, source: org.xml.sax.InputSource): string;
			}
			interface IXPathFunction {
				/**
				 * @param args The arguments, <code>null</code> is a valid value.
				 */
				evaluate(args: java.util.IList<any>): any;
			}
		}
		export module transform {
			/**
			 * Thrown when a problem with configuration with the Transformer Factories exists. This error will typically be thrown when the class of a transformation factory specified in the system properties cannot be found or instantiated.
			 */
			export class TransformerFactoryConfigurationError extends java.lang.Error {
				/**
				 * Create a new <code>TransformerFactoryConfigurationError</code> with no detail message.
				 */
				constructor();
				/**
				 * Create a new <code>TransformerFactoryConfigurationError</code> with the <code>String</code> specified as an error message.
				 * @param msg The error message for the exception.
				 */
				constructor(msg: string);
				/**
				 * Create a new <code>TransformerFactoryConfigurationError</code> with a given <code>Exception</code> base cause of the error.
				 * @param e The exception to be encapsulated in a
				 */
				constructor(e: java.lang.Exception);
				/**
				 * Create a new <code>TransformerFactoryConfigurationError</code> with the given <code>Exception</code> base cause and detail message.
				 * @param e The exception to be encapsulated in a
				 * @param msg The detail message.
				 */
				constructor(e: java.lang.Exception, msg: string);
				static class: java.lang.Class<javax.xml.transform.TransformerFactoryConfigurationError>;
				/**
				 * Return the message (if any) for this error . If there is no message for the exception and there is an encapsulated exception then the message of that exception will be returned.
				 */
				public getMessage(): string;
				/**
				 * Return the actual exception (if any) that caused this exception to be raised.
				 */
				public getException(): java.lang.Exception;
			}
			export module dom {
				export class DOMSource extends java.lang.Object implements javax.xml.transform.ISource {
					constructor();
					/**
					 * Create a new input source with a DOM node. The operation will be applied to the subtree rooted at this node. In XSLT, a "/" pattern still means the root of the tree (not the subtree), and the evaluation of global variables and parameters is done from the root node also.
					 * @param n The DOM node that will contain the Source tree.
					 */
					constructor(n: org.w3c.dom.INode);
					/**
					 * Create a new input source with a DOM node, and with the system ID also passed in as the base URI.
					 * @param node The DOM node that will contain the Source tree.
					 * @param systemID Specifies the base URI associated with node.
					 */
					constructor(node: org.w3c.dom.INode, systemID: string);
					/**
					 * If javax.xml.transform.TransformerFactory#getFeature returns true when passed this value as an argument, the Transformer supports Source input of this type.
					 */
					static FEATURE: string;
					static class: java.lang.Class<javax.xml.transform.dom.DOMSource>;
					/**
					 * Set the node that will represents a Source DOM tree.
					 * @param node The node that is to be transformed.
					 */
					public setNode(node: org.w3c.dom.INode): void;
					/**
					 * Get the node that represents a Source DOM tree.
					 */
					public getNode(): org.w3c.dom.INode;
					/**
					 * Set the base ID (URL or system ID) from where URLs will be resolved.
					 * @param systemID Base URL for this DOM tree.
					 */
					public setSystemId(systemID: string): void;
					/**
					 * Get the base ID (URL or system ID) from where URLs will be resolved.
					 */
					public getSystemId(): string;
				}
				export class DOMResult extends java.lang.Object implements javax.xml.transform.IResult {
					constructor();
					/**
					 * @param node The DOM node that will contain the result tree.
					 */
					constructor(node: org.w3c.dom.INode);
					/**
					 * @param node The DOM node that will contain the result tree.
					 * @param systemId The system identifier which may be used in association with this node.
					 */
					constructor(node: org.w3c.dom.INode, systemId: string);
					/**
					 * @param node The DOM node that will contain the result tree.
					 * @param nextSibling The child node where the result nodes should be inserted before.
					 */
					constructor(node: org.w3c.dom.INode, nextSibling: org.w3c.dom.INode);
					/**
					 * @param node The DOM node that will contain the result tree.
					 * @param nextSibling The child node where the result nodes should be inserted before.
					 * @param systemId The system identifier which may be used in association with this node.
					 */
					constructor(node: org.w3c.dom.INode, nextSibling: org.w3c.dom.INode, systemId: string);
					static FEATURE: string;
					static class: java.lang.Class<javax.xml.transform.dom.DOMResult>;
					/**
					 * @param node The node to which the transformation will be appended.
					 */
					public setNode(node: org.w3c.dom.INode): void;
					public getNode(): org.w3c.dom.INode;
					/**
					 * @param nextSibling The child node before which the result nodes will be inserted.
					 */
					public setNextSibling(nextSibling: org.w3c.dom.INode): void;
					public getNextSibling(): org.w3c.dom.INode;
					/**
					 * @param systemId The system identifier as a URI string.
					 */
					public setSystemId(systemId: string): void;
					public getSystemId(): string;
				}
				/**
				 * Indicates the position of a node in a source DOM, intended primarily for error reporting. To use a DOMLocator, the receiver of an error must downcast the javax.xml.transform.SourceLocator object returned by an exception. A javax.xml.transform.Transformer may use this object for purposes other than error reporting, for instance, to indicate the source node that originated a result node.
				 */
				interface IDOMLocator extends javax.xml.transform.ISourceLocator {
					/**
					 * Return the node where the event occurred.
					 */
					getOriginatingNode(): org.w3c.dom.INode;
					/**
					 * Return the public identifier for the current document event.
					 */
					getPublicId(): string;
					/**
					 * Return the system identifier for the current document event.
					 */
					getSystemId(): string;
					/**
					 * Return the line number where the current document event ends.
					 */
					getLineNumber(): number;
					/**
					 * Return the character position where the current document event ends.
					 */
					getColumnNumber(): number;
				}
				/**
				 * Indicates the position of a node in a source DOM, intended primarily for error reporting. To use a DOMLocator, the receiver of an error must downcast the javax.xml.transform.SourceLocator object returned by an exception. A javax.xml.transform.Transformer may use this object for purposes other than error reporting, for instance, to indicate the source node that originated a result node.
				 */
				export class DOMLocator implements javax.xml.transform.ISourceLocator, javax.xml.transform.dom.IDOMLocator {
					constructor(implementation: javax.xml.transform.dom.IDOMLocator);
					/**
					 * Return the node where the event occurred.
					 */
					public getOriginatingNode(): org.w3c.dom.INode;
					/**
					 * Return the public identifier for the current document event.
					 */
					getPublicId(): string;
					/**
					 * Return the system identifier for the current document event.
					 */
					getSystemId(): string;
					/**
					 * Return the line number where the current document event ends.
					 */
					getLineNumber(): number;
					/**
					 * Return the character position where the current document event ends.
					 */
					getColumnNumber(): number;
				}
			}
			export class TransformerFactory extends java.lang.Object {
				static class: java.lang.Class<javax.xml.transform.TransformerFactory>;
				/**
				 * Returns Android's implementation of TransformerFactory. Unlike other Java implementations, this method does not consult system properties, properties files, or the services API.
				 */
				public static newInstance(): javax.xml.transform.TransformerFactory;
				/**
				 * Returns an instance of the named implementation of TransformerFactory.
				 */
				public static newInstance(factoryClassName: string, classLoader: java.lang.ClassLoader): javax.xml.transform.TransformerFactory;
				/**
				 * @param source <code>Source </code> of XSLT document used to create
				 */
				public newTransformer(source: javax.xml.transform.ISource): javax.xml.transform.Transformer;
				public newTransformer(): javax.xml.transform.Transformer;
				/**
				 * Process the Source into a Templates object, which is a a compiled representation of the source. This Templates object may then be used concurrently across multiple threads. Creating a Templates object allows the TransformerFactory to do detailed performance optimization of transformation instructions, without penalizing runtime transformation.
				 * @param source An object that holds a URL, input stream, etc.
				 */
				public newTemplates(source: javax.xml.transform.ISource): javax.xml.transform.ITemplates;
				/**
				 * @param source The XML source document.
				 * @param media The media attribute to be matched. May be null, in which
				 * @param title The value of the title attribute to match. May be null.
				 * @param charset The value of the charset attribute to match. May be null.
				 */
				public getAssociatedStylesheet(source: javax.xml.transform.ISource, media: string, title: string, charset: string): javax.xml.transform.ISource;
				/**
				 * Set an object that is used by default during the transformation to resolve URIs used in document(), xsl:import, or xsl:include.
				 * @param resolver An object that implements the URIResolver interface,
				 */
				public setURIResolver(resolver: javax.xml.transform.IURIResolver): void;
				/**
				 * Get the object that is used by default during the transformation to resolve URIs used in document(), xsl:import, or xsl:include.
				 */
				public getURIResolver(): javax.xml.transform.IURIResolver;
				/**
				 * @param name Feature name.
				 * @param value Is feature state <code>true</code> or <code>false</code>.
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * Look up the value of a feature.
				 * @param name Feature name.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Allows the user to set specific attributes on the underlying implementation. An attribute in this context is defined to be an option that the implementation provides. An <code>IllegalArgumentException</code> is thrown if the underlying implementation doesn't recognize the attribute.
				 * @param name The name of the attribute.
				 * @param value The value of the attribute.
				 */
				public setAttribute(name: string, value: any): void;
				/**
				 * Allows the user to retrieve specific attributes on the underlying implementation. An <code>IllegalArgumentException</code> is thrown if the underlying implementation doesn't recognize the attribute.
				 * @param name The name of the attribute.
				 */
				public getAttribute(name: string): any;
				/**
				 * Set the error event listener for the TransformerFactory, which is used for the processing of transformation instructions, and not for the transformation itself. An <code>IllegalArgumentException</code> is thrown if the <code>ErrorListener</code> listener is <code>null</code>.
				 * @param listener The new error listener.
				 */
				public setErrorListener(listener: javax.xml.transform.IErrorListener): void;
				/**
				 * Get the error event handler for the TransformerFactory.
				 */
				public getErrorListener(): javax.xml.transform.IErrorListener;
			}
			/**
			 * An instance of this abstract class can transform a source tree into a result tree.
			 */
			export class Transformer extends java.lang.Object {
				static class: java.lang.Class<javax.xml.transform.Transformer>;
				public reset(): void;
				/**
				 * @param xmlSource The XML input to transform.
				 * @param outputTarget The <code>Result</code> of transforming the
				 */
				public transform(xmlSource: javax.xml.transform.ISource, outputTarget: javax.xml.transform.IResult): void;
				/**
				 * Add a parameter for the transformation.
				 * @param name The name of the parameter, which may begin with a
				 * @param value The value object. This can be any valid Java object. It is
				 */
				public setParameter(name: string, value: any): void;
				/**
				 * Get a parameter that was explicitly set with setParameter.
				 * @param name of <code>Object</code> to get
				 */
				public getParameter(name: string): any;
				/**
				 * Clear all parameters set with setParameter.
				 */
				public clearParameters(): void;
				/**
				 * Set an object that will be used to resolve URIs used in document().
				 * @param resolver An object that implements the URIResolver interface,
				 */
				public setURIResolver(resolver: javax.xml.transform.IURIResolver): void;
				/**
				 * Get an object that will be used to resolve URIs used in document().
				 */
				public getURIResolver(): javax.xml.transform.IURIResolver;
				/**
				 * Set the output properties for the transformation. These properties will override properties set in the Templates with xsl:output.
				 * @param oformat A set of output properties that will be
				 */
				public setOutputProperties(oformat: java.util.Properties): void;
				public getOutputProperties(): java.util.Properties;
				/**
				 * Set an output property that will be in effect for the transformation.
				 * @param name A non-null String that specifies an output
				 * @param value The non-null string value of the output property.
				 */
				public setOutputProperty(name: string, value: string): void;
				/**
				 * Get an output property that is in effect for the transformer. The property specified may be a property that was set with setOutputProperty, or it may be a property specified in the stylesheet.
				 * @param name A non-null String that specifies an output
				 */
				public getOutputProperty(name: string): string;
				/**
				 * Set the error event listener in effect for the transformation.
				 * @param listener The new error listener.
				 */
				public setErrorListener(listener: javax.xml.transform.IErrorListener): void;
				/**
				 * Get the error event handler in effect for the transformation. Implementations must provide a default error listener.
				 */
				public getErrorListener(): javax.xml.transform.IErrorListener;
			}
			/**
			 * Indicates a serious configuration error.
			 */
			export class TransformerConfigurationException extends javax.xml.transform.TransformerException {
				/**
				 * Create a new <code>TransformerConfigurationException</code> with no detail message.
				 */
				constructor();
				/**
				 * Create a new <code>TransformerConfigurationException</code> with the <code>String </code> specified as an error message.
				 * @param msg The error message for the exception.
				 */
				constructor(msg: string);
				/**
				 * Create a new <code>TransformerConfigurationException</code> with a given <code>Exception</code> base cause of the error.
				 * @param e The exception to be encapsulated in a
				 */
				constructor(e: java.lang.Throwable);
				/**
				 * Create a new <code>TransformerConfigurationException</code> with the given <code>Exception</code> base cause and detail message.
				 * @param msg e The exception to be encapsulated in a
				 * @param e msg The detail message.
				 */
				constructor(msg: string, e: java.lang.Throwable);
				/**
				 * Create a new TransformerConfigurationException from a message and a Locator.
				 * @param message The error or warning message.
				 * @param locator The locator object for the error or warning.
				 */
				constructor(message: string, locator: javax.xml.transform.ISourceLocator);
				/**
				 * Wrap an existing exception in a TransformerConfigurationException.
				 * @param message The error or warning message, or null to
				 * @param locator The locator object for the error or warning.
				 * @param e Any exception.
				 */
				constructor(message: string, locator: javax.xml.transform.ISourceLocator, e: java.lang.Throwable);
				static class: java.lang.Class<javax.xml.transform.TransformerConfigurationException>;
			}
			/**
			 * An object that implements this interface is the runtime representation of processed transformation instructions.
			 */
			export class Templates implements javax.xml.transform.ITemplates {
				constructor(implementation: javax.xml.transform.ITemplates);
				/**
				 * Create a new transformation context for this Templates object.
				 */
				public newTransformer(): javax.xml.transform.Transformer;
				/**
				 * Get the properties corresponding to the effective xsl:output element. The object returned will be a clone of the internal values. Accordingly, it can be mutated without mutating the Templates object, and then handed in to javax.xml.transform.Transformer#setOutputProperties.
				 */
				public getOutputProperties(): java.util.Properties;
			}
			export class URIResolver implements javax.xml.transform.IURIResolver {
				constructor(implementation: javax.xml.transform.IURIResolver);
				/**
				 * Called by the processor when it encounters an xsl:include, xsl:import, or document() function.
				 * @param href An href attribute, which may be relative or absolute.
				 * @param base The base URI against which the first argument will be made
				 */
				public resolve(href: string, base: string): javax.xml.transform.ISource;
			}
			interface IURIResolver {
				/**
				 * Called by the processor when it encounters an xsl:include, xsl:import, or document() function.
				 * @param href An href attribute, which may be relative or absolute.
				 * @param base The base URI against which the first argument will be made
				 */
				resolve(href: string, base: string): javax.xml.transform.ISource;
			}
			export module sax {
				/**
				 * A SAX ContentHandler that may be used to process SAX parse events (parsing transformation instructions) into a Templates object.
				 */
				interface ITemplatesHandler extends org.xml.sax.IContentHandler {
					/**
					 * When a TemplatesHandler object is used as a ContentHandler for the parsing of transformation instructions, it creates a Templates object, which the caller can get once the SAX events have been completed.
					 */
					getTemplates(): javax.xml.transform.ITemplates;
					/**
					 * Set the base ID (URI or system ID) for the Templates object created by this builder. This must be set in order to resolve relative URIs in the stylesheet. This must be called before the startDocument event.
					 * @param systemID Base URI for this stylesheet.
					 */
					setSystemId(systemID: string): void;
					/**
					 * Get the base ID (URI or system ID) from where relative URLs will be resolved.
					 */
					getSystemId(): string;
					/**
					 * Receive an object for locating the origin of SAX document events.
					 * @param locator an object that can return the location of
					 */
					setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Receive notification of the beginning of a document.
					 */
					startDocument(): void;
					/**
					 * Receive notification of the end of a document.
					 */
					endDocument(): void;
					/**
					 * Begin the scope of a prefix-URI Namespace mapping.
					 * @param prefix the Namespace prefix being declared.
					 * @param uri the Namespace URI the prefix is mapped to
					 */
					startPrefixMapping(prefix: string, uri: string): void;
					/**
					 * End the scope of a prefix-URI mapping.
					 * @param prefix the prefix that was being mapped.
					 */
					endPrefixMapping(prefix: string): void;
					/**
					 * Receive notification of the beginning of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified name (with prefix), or the
					 * @param atts the attributes attached to the element. If
					 */
					startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
					/**
					 * Receive notification of the end of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified XML name (with prefix), or the
					 */
					endElement(uri: string, localName: string, qName: string): void;
					/**
					 * Receive notification of character data.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of ignorable whitespace in element content.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of a processing instruction.
					 * @param target the processing instruction target
					 * @param data the processing instruction data, or null if
					 */
					processingInstruction(target: string, data: string): void;
					/**
					 * Receive notification of a skipped entity. This is not called for entity references within markup constructs such as element start tags or markup declarations. (The XML recommendation requires reporting skipped external entities. SAX also reports internal entity expansion/non-expansion, except within markup constructs.)
					 * @param name the name of the skipped entity. If it is a
					 */
					skippedEntity(name: string): void;
				}
				/**
				 * A TransformerHandler listens for SAX ContentHandler parse events and transforms them to a Result.
				 */
				export class TransformerHandler implements org.xml.sax.IContentHandler, org.xml.sax.ext.ILexicalHandler, org.xml.sax.IDTDHandler, javax.xml.transform.sax.ITransformerHandler {
					constructor(implementation: javax.xml.transform.sax.ITransformerHandler);
					/**
					 * @param result A <code>Result</code> instance, should not be
					 */
					public setResult(result: javax.xml.transform.IResult): void;
					/**
					 * Set the base ID (URI or system ID) from where relative URLs will be resolved.
					 * @param systemID Base URI for the source tree.
					 */
					public setSystemId(systemID: string): void;
					/**
					 * Get the base ID (URI or system ID) from where relative URLs will be resolved.
					 */
					public getSystemId(): string;
					public getTransformer(): javax.xml.transform.Transformer;
					/**
					 * Receive an object for locating the origin of SAX document events.
					 * @param locator an object that can return the location of
					 */
					setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Receive notification of the beginning of a document.
					 */
					startDocument(): void;
					/**
					 * Receive notification of the end of a document.
					 */
					endDocument(): void;
					/**
					 * Begin the scope of a prefix-URI Namespace mapping.
					 * @param prefix the Namespace prefix being declared.
					 * @param uri the Namespace URI the prefix is mapped to
					 */
					startPrefixMapping(prefix: string, uri: string): void;
					/**
					 * End the scope of a prefix-URI mapping.
					 * @param prefix the prefix that was being mapped.
					 */
					endPrefixMapping(prefix: string): void;
					/**
					 * Receive notification of the beginning of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified name (with prefix), or the
					 * @param atts the attributes attached to the element. If
					 */
					startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
					/**
					 * Receive notification of the end of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified XML name (with prefix), or the
					 */
					endElement(uri: string, localName: string, qName: string): void;
					/**
					 * Receive notification of character data.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of ignorable whitespace in element content.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of a processing instruction.
					 * @param target the processing instruction target
					 * @param data the processing instruction data, or null if
					 */
					processingInstruction(target: string, data: string): void;
					/**
					 * Receive notification of a skipped entity. This is not called for entity references within markup constructs such as element start tags or markup declarations. (The XML recommendation requires reporting skipped external entities. SAX also reports internal entity expansion/non-expansion, except within markup constructs.)
					 * @param name the name of the skipped entity. If it is a
					 */
					skippedEntity(name: string): void;
					/**
					 * Report the start of DTD declarations, if any.
					 * @param name The document type name.
					 * @param publicId The declared public identifier for the
					 * @param systemId The declared system identifier for the
					 */
					startDTD(name: string, publicId: string, systemId: string): void;
					/**
					 * Report the end of DTD declarations.
					 */
					endDTD(): void;
					/**
					 * Report the beginning of some internal and external XML entities.
					 * @param name The name of the entity. If it is a parameter
					 */
					startEntity(name: string): void;
					/**
					 * Report the end of an entity.
					 * @param name The name of the entity that is ending.
					 */
					endEntity(name: string): void;
					/**
					 * Report the start of a CDATA section.
					 */
					startCDATA(): void;
					/**
					 * Report the end of a CDATA section.
					 */
					endCDATA(): void;
					/**
					 * Report an XML comment anywhere in the document.
					 * @param ch An array holding the characters in the comment.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use from the array.
					 */
					comment(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of a notation declaration event.
					 * @param name The notation name.
					 * @param publicId The notation's public identifier, or null if
					 * @param systemId The notation's system identifier, or null if
					 */
					notationDecl(name: string, publicId: string, systemId: string): void;
					/**
					 * Receive notification of an unparsed entity declaration event.
					 * @param name The unparsed entity's name.
					 * @param publicId The entity's public identifier, or null if none
					 * @param systemId The entity's system identifier.
					 * @param notationName The name of the associated notation.
					 */
					unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
				}
				/**
				 * A TransformerHandler listens for SAX ContentHandler parse events and transforms them to a Result.
				 */
				interface ITransformerHandler extends org.xml.sax.IContentHandler, org.xml.sax.ext.ILexicalHandler, org.xml.sax.IDTDHandler {
					/**
					 * @param result A <code>Result</code> instance, should not be
					 */
					setResult(result: javax.xml.transform.IResult): void;
					/**
					 * Set the base ID (URI or system ID) from where relative URLs will be resolved.
					 * @param systemID Base URI for the source tree.
					 */
					setSystemId(systemID: string): void;
					/**
					 * Get the base ID (URI or system ID) from where relative URLs will be resolved.
					 */
					getSystemId(): string;
					getTransformer(): javax.xml.transform.Transformer;
					/**
					 * Receive an object for locating the origin of SAX document events.
					 * @param locator an object that can return the location of
					 */
					setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Receive notification of the beginning of a document.
					 */
					startDocument(): void;
					/**
					 * Receive notification of the end of a document.
					 */
					endDocument(): void;
					/**
					 * Begin the scope of a prefix-URI Namespace mapping.
					 * @param prefix the Namespace prefix being declared.
					 * @param uri the Namespace URI the prefix is mapped to
					 */
					startPrefixMapping(prefix: string, uri: string): void;
					/**
					 * End the scope of a prefix-URI mapping.
					 * @param prefix the prefix that was being mapped.
					 */
					endPrefixMapping(prefix: string): void;
					/**
					 * Receive notification of the beginning of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified name (with prefix), or the
					 * @param atts the attributes attached to the element. If
					 */
					startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
					/**
					 * Receive notification of the end of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified XML name (with prefix), or the
					 */
					endElement(uri: string, localName: string, qName: string): void;
					/**
					 * Receive notification of character data.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of ignorable whitespace in element content.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of a processing instruction.
					 * @param target the processing instruction target
					 * @param data the processing instruction data, or null if
					 */
					processingInstruction(target: string, data: string): void;
					/**
					 * Receive notification of a skipped entity. This is not called for entity references within markup constructs such as element start tags or markup declarations. (The XML recommendation requires reporting skipped external entities. SAX also reports internal entity expansion/non-expansion, except within markup constructs.)
					 * @param name the name of the skipped entity. If it is a
					 */
					skippedEntity(name: string): void;
					/**
					 * Report the start of DTD declarations, if any.
					 * @param name The document type name.
					 * @param publicId The declared public identifier for the
					 * @param systemId The declared system identifier for the
					 */
					startDTD(name: string, publicId: string, systemId: string): void;
					/**
					 * Report the end of DTD declarations.
					 */
					endDTD(): void;
					/**
					 * Report the beginning of some internal and external XML entities.
					 * @param name The name of the entity. If it is a parameter
					 */
					startEntity(name: string): void;
					/**
					 * Report the end of an entity.
					 * @param name The name of the entity that is ending.
					 */
					endEntity(name: string): void;
					/**
					 * Report the start of a CDATA section.
					 */
					startCDATA(): void;
					/**
					 * Report the end of a CDATA section.
					 */
					endCDATA(): void;
					/**
					 * Report an XML comment anywhere in the document.
					 * @param ch An array holding the characters in the comment.
					 * @param start The starting position in the array.
					 * @param length The number of characters to use from the array.
					 */
					comment(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of a notation declaration event.
					 * @param name The notation name.
					 * @param publicId The notation's public identifier, or null if
					 * @param systemId The notation's system identifier, or null if
					 */
					notationDecl(name: string, publicId: string, systemId: string): void;
					/**
					 * Receive notification of an unparsed entity declaration event.
					 * @param name The unparsed entity's name.
					 * @param publicId The entity's public identifier, or null if none
					 * @param systemId The entity's system identifier.
					 * @param notationName The name of the associated notation.
					 */
					unparsedEntityDecl(name: string, publicId: string, systemId: string, notationName: string): void;
				}
				export class SAXSource extends java.lang.Object implements javax.xml.transform.ISource {
					constructor();
					/**
					 * Create a <code>SAXSource</code>, using an org.xml.sax.XMLReader and a SAX InputSource. The javax.xml.transform.Transformer or javax.xml.transform.sax.SAXTransformerFactory will set itself to be the reader's org.xml.sax.ContentHandler, and then will call reader.parse(inputSource).
					 * @param reader An XMLReader to be used for the parse.
					 * @param inputSource A SAX input source reference that must be non-null
					 */
					constructor(reader: org.xml.sax.IXMLReader, inputSource: org.xml.sax.InputSource);
					/**
					 * Create a <code>SAXSource</code>, using a SAX <code>InputSource</code>. The javax.xml.transform.Transformer or javax.xml.transform.sax.SAXTransformerFactory creates a reader via org.xml.sax.helpers.XMLReaderFactory (if setXMLReader is not used), sets itself as the reader's org.xml.sax.ContentHandler, and calls reader.parse(inputSource).
					 * @param inputSource An input source reference that must be non-null
					 */
					constructor(inputSource: org.xml.sax.InputSource);
					/**
					 * If javax.xml.transform.TransformerFactory#getFeature returns true when passed this value as an argument, the Transformer supports Source input of this type.
					 */
					static FEATURE: string;
					static class: java.lang.Class<javax.xml.transform.sax.SAXSource>;
					/**
					 * Set the XMLReader to be used for the Source.
					 * @param reader A valid XMLReader or XMLFilter reference.
					 */
					public setXMLReader(reader: org.xml.sax.IXMLReader): void;
					/**
					 * Get the XMLReader to be used for the Source.
					 */
					public getXMLReader(): org.xml.sax.IXMLReader;
					/**
					 * Set the SAX InputSource to be used for the Source.
					 * @param inputSource A valid InputSource reference.
					 */
					public setInputSource(inputSource: org.xml.sax.InputSource): void;
					/**
					 * Get the SAX InputSource to be used for the Source.
					 */
					public getInputSource(): org.xml.sax.InputSource;
					/**
					 * Set the system identifier for this Source. If an input source has already been set, it will set the system ID or that input source, otherwise it will create a new input source.
					 * @param systemId The system identifier as a URI string.
					 */
					public setSystemId(systemId: string): void;
					public getSystemId(): string;
					/**
					 * Attempt to obtain a SAX InputSource object from a Source object.
					 * @param source Must be a non-null Source reference.
					 */
					public static sourceToInputSource(source: javax.xml.transform.ISource): org.xml.sax.InputSource;
				}
				export class SAXResult extends java.lang.Object implements javax.xml.transform.IResult {
					/**
					 * Zero-argument default constructor.
					 */
					constructor();
					/**
					 * Create a SAXResult that targets a SAX2 org.xml.sax.ContentHandler.
					 * @param handler Must be a non-null ContentHandler reference.
					 */
					constructor(handler: org.xml.sax.IContentHandler);
					/**
					 * If javax.xml.transform.TransformerFactory#getFeature returns true when passed this value as an argument, the Transformer supports Result output of this type.
					 */
					static FEATURE: string;
					static class: java.lang.Class<javax.xml.transform.sax.SAXResult>;
					/**
					 * Set the target to be a SAX2 org.xml.sax.ContentHandler.
					 * @param handler Must be a non-null ContentHandler reference.
					 */
					public setHandler(handler: org.xml.sax.IContentHandler): void;
					/**
					 * Get the org.xml.sax.ContentHandler that is the Result.
					 */
					public getHandler(): org.xml.sax.IContentHandler;
					/**
					 * Set the SAX2 org.xml.sax.ext.LexicalHandler for the output.
					 * @param handler A non-null <code>LexicalHandler</code> for
					 */
					public setLexicalHandler(handler: org.xml.sax.ext.ILexicalHandler): void;
					/**
					 * Get a SAX2 org.xml.sax.ext.LexicalHandler for the output.
					 */
					public getLexicalHandler(): org.xml.sax.ext.ILexicalHandler;
					/**
					 * Method setSystemId Set the systemID that may be used in association with the org.xml.sax.ContentHandler.
					 * @param systemId The system identifier as a URI string.
					 */
					public setSystemId(systemId: string): void;
					/**
					 * Get the system identifier that was set with setSystemId.
					 */
					public getSystemId(): string;
				}
				/**
				 * This class extends TransformerFactory to provide SAX-specific factory methods. It provides two types of ContentHandlers, one for creating Transformers, the other for creating Templates objects.
				 */
				export class SAXTransformerFactory extends javax.xml.transform.TransformerFactory {
					/**
					 * If javax.xml.transform.TransformerFactory#getFeature returns true when passed this value as an argument, the TransformerFactory returned from javax.xml.transform.TransformerFactory#newInstance may be safely cast to a SAXTransformerFactory.
					 */
					static FEATURE: string;
					/**
					 * If javax.xml.transform.TransformerFactory#getFeature returns true when passed this value as an argument, the #newXMLFilter(Source src) and #newXMLFilter(Templates templates) methods are supported.
					 */
					static FEATURE_XMLFILTER: string;
					static class: java.lang.Class<javax.xml.transform.sax.SAXTransformerFactory>;
					/**
					 * Get a TransformerHandler object that can process SAX ContentHandler events into a Result, based on the transformation instructions specified by the argument.
					 * @param src The Source of the transformation instructions.
					 */
					public newTransformerHandler(src: javax.xml.transform.ISource): javax.xml.transform.sax.ITransformerHandler;
					/**
					 * Get a TransformerHandler object that can process SAX ContentHandler events into a Result, based on the Templates argument.
					 * @param templates The compiled transformation instructions.
					 */
					public newTransformerHandler(templates: javax.xml.transform.ITemplates): javax.xml.transform.sax.ITransformerHandler;
					/**
					 * Get a TransformerHandler object that can process SAX ContentHandler events into a Result. The transformation is defined as an identity (or copy) transformation, for example to copy a series of SAX parse events into a DOM tree.
					 */
					public newTransformerHandler(): javax.xml.transform.sax.ITransformerHandler;
					/**
					 * Get a TemplatesHandler object that can process SAX ContentHandler events into a Templates object.
					 */
					public newTemplatesHandler(): javax.xml.transform.sax.ITemplatesHandler;
					/**
					 * Create an XMLFilter that uses the given Source as the transformation instructions.
					 * @param src The Source of the transformation instructions.
					 */
					public newXMLFilter(src: javax.xml.transform.ISource): org.xml.sax.IXMLFilter;
					/**
					 * Create an XMLFilter, based on the Templates argument..
					 * @param templates The compiled transformation instructions.
					 */
					public newXMLFilter(templates: javax.xml.transform.ITemplates): org.xml.sax.IXMLFilter;
				}
				/**
				 * A SAX ContentHandler that may be used to process SAX parse events (parsing transformation instructions) into a Templates object.
				 */
				export class TemplatesHandler implements org.xml.sax.IContentHandler, javax.xml.transform.sax.ITemplatesHandler {
					constructor(implementation: javax.xml.transform.sax.ITemplatesHandler);
					/**
					 * When a TemplatesHandler object is used as a ContentHandler for the parsing of transformation instructions, it creates a Templates object, which the caller can get once the SAX events have been completed.
					 */
					public getTemplates(): javax.xml.transform.ITemplates;
					/**
					 * Set the base ID (URI or system ID) for the Templates object created by this builder. This must be set in order to resolve relative URIs in the stylesheet. This must be called before the startDocument event.
					 * @param systemID Base URI for this stylesheet.
					 */
					public setSystemId(systemID: string): void;
					/**
					 * Get the base ID (URI or system ID) from where relative URLs will be resolved.
					 */
					public getSystemId(): string;
					/**
					 * Receive an object for locating the origin of SAX document events.
					 * @param locator an object that can return the location of
					 */
					setDocumentLocator(locator: org.xml.sax.ILocator): void;
					/**
					 * Receive notification of the beginning of a document.
					 */
					startDocument(): void;
					/**
					 * Receive notification of the end of a document.
					 */
					endDocument(): void;
					/**
					 * Begin the scope of a prefix-URI Namespace mapping.
					 * @param prefix the Namespace prefix being declared.
					 * @param uri the Namespace URI the prefix is mapped to
					 */
					startPrefixMapping(prefix: string, uri: string): void;
					/**
					 * End the scope of a prefix-URI mapping.
					 * @param prefix the prefix that was being mapped.
					 */
					endPrefixMapping(prefix: string): void;
					/**
					 * Receive notification of the beginning of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified name (with prefix), or the
					 * @param atts the attributes attached to the element. If
					 */
					startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
					/**
					 * Receive notification of the end of an element.
					 * @param uri the Namespace URI, or the empty string if the
					 * @param localName the local name (without prefix), or the
					 * @param qName the qualified XML name (with prefix), or the
					 */
					endElement(uri: string, localName: string, qName: string): void;
					/**
					 * Receive notification of character data.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					characters(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of ignorable whitespace in element content.
					 * @param ch the characters from the XML document
					 * @param start the start position in the array
					 * @param length the number of characters to read from the array
					 */
					ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
					/**
					 * Receive notification of a processing instruction.
					 * @param target the processing instruction target
					 * @param data the processing instruction data, or null if
					 */
					processingInstruction(target: string, data: string): void;
					/**
					 * Receive notification of a skipped entity. This is not called for entity references within markup constructs such as element start tags or markup declarations. (The XML recommendation requires reporting skipped external entities. SAX also reports internal entity expansion/non-expansion, except within markup constructs.)
					 * @param name the name of the skipped entity. If it is a
					 */
					skippedEntity(name: string): void;
				}
			}
			/**
			 * An object that implements this interface contains the information needed to act as source input (XML source or transformation instructions).
			 */
			export class Source implements javax.xml.transform.ISource {
				constructor(implementation: javax.xml.transform.ISource);
				/**
				 * Set the system identifier for this Source.
				 * @param systemId The system identifier as a URL string.
				 */
				public setSystemId(systemId: string): void;
				/**
				 * Get the system identifier that was set with setSystemId.
				 */
				public getSystemId(): string;
			}
			export class Result implements javax.xml.transform.IResult {
				constructor(implementation: javax.xml.transform.IResult);
				/**
				 * The name of the processing instruction that is sent if the result tree disables output escaping.
				 */
				static PI_DISABLE_OUTPUT_ESCAPING: string;
				/**
				 * The name of the processing instruction that is sent if the result tree enables output escaping at some point after having received a PI_DISABLE_OUTPUT_ESCAPING processing instruction.
				 */
				static PI_ENABLE_OUTPUT_ESCAPING: string;
				/**
				 * Set the system identifier for this Result.
				 * @param systemId The system identifier as a URI string.
				 */
				public setSystemId(systemId: string): void;
				/**
				 * Get the system identifier that was set with setSystemId.
				 */
				public getSystemId(): string;
			}
			export class ErrorListener implements javax.xml.transform.IErrorListener {
				constructor(implementation: javax.xml.transform.IErrorListener);
				/**
				 * Receive notification of a warning.
				 * @param exception The warning information encapsulated in a
				 */
				public warning(exception: javax.xml.transform.TransformerException): void;
				/**
				 * Receive notification of a recoverable error.
				 * @param exception The error information encapsulated in a
				 */
				public error(exception: javax.xml.transform.TransformerException): void;
				/**
				 * @param exception The error information encapsulated in a
				 */
				public fatalError(exception: javax.xml.transform.TransformerException): void;
			}
			/**
			 * An object that implements this interface is the runtime representation of processed transformation instructions.
			 */
			interface ITemplates {
				/**
				 * Create a new transformation context for this Templates object.
				 */
				newTransformer(): javax.xml.transform.Transformer;
				/**
				 * Get the properties corresponding to the effective xsl:output element. The object returned will be a clone of the internal values. Accordingly, it can be mutated without mutating the Templates object, and then handed in to javax.xml.transform.Transformer#setOutputProperties.
				 */
				getOutputProperties(): java.util.Properties;
			}
			/**
			 * Provides string constants that can be used to set output properties for a Transformer, or to retrieve output properties from a Transformer or Templates object.
			 */
			export class OutputKeys extends java.lang.Object {
				/**
				 * method = "xml" | "html" | "text" | <var>expanded name</var>.
				 */
				static METHOD: string;
				/**
				 * version = <var>nmtoken</var>.
				 */
				static VERSION: string;
				/**
				 * encoding = <var>string</var>.
				 */
				static ENCODING: string;
				/**
				 * omit-xml-declaration = "yes" | "no".
				 */
				static OMIT_XML_DECLARATION: string;
				/**
				 * standalone = "yes" | "no".
				 */
				static STANDALONE: string;
				/**
				 * doctype-public = <var>string</var>.
				 */
				static DOCTYPE_PUBLIC: string;
				/**
				 * doctype-system = <var>string</var>.
				 */
				static DOCTYPE_SYSTEM: string;
				/**
				 * cdata-section-elements = <var>expanded names</var>.
				 */
				static CDATA_SECTION_ELEMENTS: string;
				/**
				 * indent = "yes" | "no".
				 */
				static INDENT: string;
				/**
				 * media-type = <var>string</var>.
				 */
				static MEDIA_TYPE: string;
				static class: java.lang.Class<javax.xml.transform.OutputKeys>;
			}
			export module stream {
				export class StreamResult extends java.lang.Object implements javax.xml.transform.IResult {
					/**
					 * Zero-argument default constructor.
					 */
					constructor();
					/**
					 * Construct a StreamResult from a byte stream. Normally, a stream should be used rather than a reader, so that the transformer may use instructions contained in the transformation instructions to control the encoding.
					 * @param outputStream A valid OutputStream reference.
					 */
					constructor(outputStream: java.io.OutputStream);
					/**
					 * Construct a StreamResult from a character stream. Normally, a stream should be used rather than a reader, so that the transformer may use instructions contained in the transformation instructions to control the encoding. However, there are times when it is useful to write to a character stream, such as when using a StringWriter.
					 * @param writer A valid Writer reference.
					 */
					constructor(writer: java.io.Writer);
					/**
					 * Construct a StreamResult from a URL.
					 * @param systemId Must be a String that conforms to the URI syntax.
					 */
					constructor(systemId: string);
					/**
					 * Construct a StreamResult from a File.
					 * @param f Must a non-null File reference.
					 */
					constructor(f: java.io.File);
					/**
					 * If javax.xml.transform.TransformerFactory#getFeature returns true when passed this value as an argument, the Transformer supports Result output of this type.
					 */
					static FEATURE: string;
					static class: java.lang.Class<javax.xml.transform.stream.StreamResult>;
					/**
					 * Set the ByteStream that is to be written to. Normally, a stream should be used rather than a reader, so that the transformer may use instructions contained in the transformation instructions to control the encoding.
					 * @param outputStream A valid OutputStream reference.
					 */
					public setOutputStream(outputStream: java.io.OutputStream): void;
					/**
					 * Get the byte stream that was set with setOutputStream.
					 */
					public getOutputStream(): java.io.OutputStream;
					/**
					 * Set the writer that is to receive the result. Normally, a stream should be used rather than a writer, so that the transformer may use instructions contained in the transformation instructions to control the encoding. However, there are times when it is useful to write to a writer, such as when using a StringWriter.
					 * @param writer A valid Writer reference.
					 */
					public setWriter(writer: java.io.Writer): void;
					/**
					 * Get the character stream that was set with setWriter.
					 */
					public getWriter(): java.io.Writer;
					/**
					 * Set the systemID that may be used in association with the byte or character stream, or, if neither is set, use this value as a writeable URI (probably a file name).
					 * @param systemId The system identifier as a URI string.
					 */
					public setSystemId(systemId: string): void;
					/**
					 * @param f Must a non-null File reference.
					 */
					public setSystemId(f: java.io.File): void;
					/**
					 * Get the system identifier that was set with setSystemId.
					 */
					public getSystemId(): string;
				}
				export class StreamSource extends java.lang.Object implements javax.xml.transform.ISource {
					constructor();
					/**
					 * Construct a StreamSource from a byte stream. Normally, a stream should be used rather than a reader, so the XML parser can resolve character encoding specified by the XML declaration.
					 * @param inputStream A valid InputStream reference to an XML stream.
					 */
					constructor(inputStream: java.io.InputStream);
					/**
					 * Construct a StreamSource from a byte stream. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration.
					 * @param inputStream A valid InputStream reference to an XML stream.
					 * @param systemId Must be a String that conforms to the URI syntax.
					 */
					constructor(inputStream: java.io.InputStream, systemId: string);
					/**
					 * Construct a StreamSource from a character reader. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration. However, in many cases the encoding of the input stream is already resolved, as in the case of reading XML from a StringReader.
					 * @param reader A valid Reader reference to an XML character stream.
					 */
					constructor(reader: java.io.Reader);
					/**
					 * Construct a StreamSource from a character reader. Normally, a stream should be used rather than a reader, so that the XML parser may resolve character encoding specified by the XML declaration. However, in many cases the encoding of the input stream is already resolved, as in the case of reading XML from a StringReader.
					 * @param reader A valid Reader reference to an XML character stream.
					 * @param systemId Must be a String that conforms to the URI syntax.
					 */
					constructor(reader: java.io.Reader, systemId: string);
					/**
					 * Construct a StreamSource from a URL.
					 * @param systemId Must be a String that conforms to the URI syntax.
					 */
					constructor(systemId: string);
					/**
					 * Construct a StreamSource from a File.
					 * @param f Must a non-null File reference.
					 */
					constructor(f: java.io.File);
					/**
					 * If javax.xml.transform.TransformerFactory#getFeature returns true when passed this value as an argument, the Transformer supports Source input of this type.
					 */
					static FEATURE: string;
					static class: java.lang.Class<javax.xml.transform.stream.StreamSource>;
					/**
					 * Set the byte stream to be used as input. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration.
					 * @param inputStream A valid InputStream reference to an XML stream.
					 */
					public setInputStream(inputStream: java.io.InputStream): void;
					/**
					 * Get the byte stream that was set with setByteStream.
					 */
					public getInputStream(): java.io.InputStream;
					/**
					 * Set the input to be a character reader. Normally, a stream should be used rather than a reader, so that the XML parser can resolve character encoding specified by the XML declaration. However, in many cases the encoding of the input stream is already resolved, as in the case of reading XML from a StringReader.
					 * @param reader A valid Reader reference to an XML CharacterStream.
					 */
					public setReader(reader: java.io.Reader): void;
					/**
					 * Get the character stream that was set with setReader.
					 */
					public getReader(): java.io.Reader;
					/**
					 * Set the public identifier for this Source.
					 * @param publicId The public identifier as a string.
					 */
					public setPublicId(publicId: string): void;
					/**
					 * Get the public identifier that was set with setPublicId.
					 */
					public getPublicId(): string;
					/**
					 * Set the system identifier for this Source.
					 * @param systemId The system identifier as a URL string.
					 */
					public setSystemId(systemId: string): void;
					/**
					 * Get the system identifier that was set with setSystemId.
					 */
					public getSystemId(): string;
					/**
					 * Set the system ID from a File reference.
					 * @param f Must a non-null File reference.
					 */
					public setSystemId(f: java.io.File): void;
				}
				export class FilePathToURI extends java.lang.Object {
					static class: java.lang.Class<javax.xml.transform.stream.FilePathToURI>;
					public static filepath2URI(path: string): string;
				}
			}
			/**
			 * This interface is primarily for the purposes of reporting where an error occurred in the XML source or transformation instructions.
			 */
			export class SourceLocator implements javax.xml.transform.ISourceLocator {
				constructor(implementation: javax.xml.transform.ISourceLocator);
				/**
				 * Return the public identifier for the current document event.
				 */
				public getPublicId(): string;
				/**
				 * Return the system identifier for the current document event.
				 */
				public getSystemId(): string;
				/**
				 * Return the line number where the current document event ends.
				 */
				public getLineNumber(): number;
				/**
				 * Return the character position where the current document event ends.
				 */
				public getColumnNumber(): number;
			}
			/**
			 * An object that implements this interface contains the information needed to act as source input (XML source or transformation instructions).
			 */
			interface ISource {
				/**
				 * Set the system identifier for this Source.
				 * @param systemId The system identifier as a URL string.
				 */
				setSystemId(systemId: string): void;
				/**
				 * Get the system identifier that was set with setSystemId.
				 */
				getSystemId(): string;
			}
			interface IErrorListener {
				/**
				 * Receive notification of a warning.
				 * @param exception The warning information encapsulated in a
				 */
				warning(exception: javax.xml.transform.TransformerException): void;
				/**
				 * Receive notification of a recoverable error.
				 * @param exception The error information encapsulated in a
				 */
				error(exception: javax.xml.transform.TransformerException): void;
				/**
				 * @param exception The error information encapsulated in a
				 */
				fatalError(exception: javax.xml.transform.TransformerException): void;
			}
			/**
			 * This interface is primarily for the purposes of reporting where an error occurred in the XML source or transformation instructions.
			 */
			interface ISourceLocator {
				/**
				 * Return the public identifier for the current document event.
				 */
				getPublicId(): string;
				/**
				 * Return the system identifier for the current document event.
				 */
				getSystemId(): string;
				/**
				 * Return the line number where the current document event ends.
				 */
				getLineNumber(): number;
				/**
				 * Return the character position where the current document event ends.
				 */
				getColumnNumber(): number;
			}
			/**
			 * This class specifies an exceptional condition that occurred during the transformation process.
			 */
			export class TransformerException extends java.lang.Exception {
				/**
				 * Create a new TransformerException.
				 * @param message The error or warning message.
				 */
				constructor(message: string);
				/**
				 * Create a new TransformerException wrapping an existing exception.
				 * @param e The exception to be wrapped.
				 */
				constructor(e: java.lang.Throwable);
				/**
				 * Wrap an existing exception in a TransformerException.
				 * @param message The error or warning message, or null to
				 * @param e Any exception
				 */
				constructor(message: string, e: java.lang.Throwable);
				/**
				 * Create a new TransformerException from a message and a Locator.
				 * @param message The error or warning message.
				 * @param locator The locator object for the error or warning.
				 */
				constructor(message: string, locator: javax.xml.transform.ISourceLocator);
				/**
				 * Wrap an existing exception in a TransformerException.
				 * @param message The error or warning message, or null to
				 * @param locator The locator object for the error or warning.
				 * @param e Any exception
				 */
				constructor(message: string, locator: javax.xml.transform.ISourceLocator, e: java.lang.Throwable);
				static class: java.lang.Class<javax.xml.transform.TransformerException>;
				/**
				 * Method getLocator retrieves an instance of a SourceLocator object that specifies where an error occurred.
				 */
				public getLocator(): javax.xml.transform.ISourceLocator;
				/**
				 * Method setLocator sets an instance of a SourceLocator object that specifies where an error occurred.
				 * @param location A SourceLocator object, or null to clear the location.
				 */
				public setLocator(location: javax.xml.transform.ISourceLocator): void;
				/**
				 * This method retrieves an exception that this exception wraps.
				 */
				public getException(): java.lang.Throwable;
				/**
				 * Returns the cause of this throwable or <code>null</code> if the cause is nonexistent or unknown. (The cause is the throwable that caused this throwable to get thrown.)
				 */
				public getCause(): java.lang.Throwable;
				/**
				 * Initializes the <i>cause</i> of this throwable to the specified value. (The cause is the throwable that caused this throwable to get thrown.)
				 * @param cause the cause (which is saved for later retrieval by the
				 */
				public initCause(cause: java.lang.Throwable): java.lang.Throwable;
				/**
				 * Get the error message with location information appended.
				 */
				public getMessageAndLocation(): string;
				/**
				 * Get the location information as a string.
				 */
				public getLocationAsString(): string;
				/**
				 * Print the the trace of methods from where the error originated. This will trace all nested exception objects, as well as this object.
				 */
				public printStackTrace(): void;
				/**
				 * Print the the trace of methods from where the error originated. This will trace all nested exception objects, as well as this object.
				 * @param s The stream where the dump will be sent to.
				 */
				public printStackTrace(s: java.io.PrintStream): void;
				/**
				 * Print the the trace of methods from where the error originated. This will trace all nested exception objects, as well as this object.
				 * @param s The writer where the dump will be sent to.
				 */
				public printStackTrace(s: java.io.PrintWriter): void;
			}
			interface IResult {
				/**
				 * Set the system identifier for this Result.
				 * @param systemId The system identifier as a URI string.
				 */
				setSystemId(systemId: string): void;
				/**
				 * Get the system identifier that was set with setSystemId.
				 */
				getSystemId(): string;
			}
			export module IResult {
				/**
				 * The name of the processing instruction that is sent if the result tree disables output escaping.
				 */
				var PI_DISABLE_OUTPUT_ESCAPING: string;
				/**
				 * The name of the processing instruction that is sent if the result tree enables output escaping at some point after having received a PI_DISABLE_OUTPUT_ESCAPING processing instruction.
				 */
				var PI_ENABLE_OUTPUT_ESCAPING: string;
			}
		}
		export module datatype {
			export class DatatypeConfigurationException extends java.lang.Exception {
				constructor();
				/**
				 * @param message The detail message.
				 */
				constructor(message: string);
				/**
				 * @param message The detail message.
				 * @param cause The cause. A <code>null</code> value is permitted, and indicates that the cause is nonexistent or unknown.
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * @param cause The cause. A <code>null</code> value is permitted, and indicates that the cause is nonexistent or unknown.
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<javax.xml.datatype.DatatypeConfigurationException>;
				/**
				 * Print the the trace of methods from where the error originated. This will trace all nested exception objects, as well as this object.
				 */
				public printStackTrace(): void;
				/**
				 * Print the the trace of methods from where the error originated. This will trace all nested exception objects, as well as this object.
				 * @param s The stream where the dump will be sent to.
				 */
				public printStackTrace(s: java.io.PrintStream): void;
				/**
				 * Print the the trace of methods from where the error originated. This will trace all nested exception objects, as well as this object.
				 * @param s The writer where the dump will be sent to.
				 */
				public printStackTrace(s: java.io.PrintWriter): void;
			}
			export class XMLGregorianCalendar extends java.lang.Object implements java.lang.ICloneable {
				constructor();
				static class: java.lang.Class<javax.xml.datatype.XMLGregorianCalendar>;
				public clear(): void;
				public reset(): void;
				/**
				 * @param year value constraints summarized in <a href="#datetimefield-year">year field of date/time field mapping table</a>.
				 */
				public setYear(year: java.math.BigInteger): void;
				/**
				 * @param year value constraints are summarized in <a href="#datetimefield-year">year field of date/time field mapping table</a>.
				 */
				public setYear(year: number): void;
				/**
				 * @param month value constraints summarized in <a href="#datetimefield-month">month field of date/time field mapping table</a>.
				 */
				public setMonth(month: number): void;
				/**
				 * @param day value constraints summarized in <a href="#datetimefield-day">day field of date/time field mapping table</a>.
				 */
				public setDay(day: number): void;
				/**
				 * @param offset value constraints summarized in <a href="#datetimefield-timezone">
				 */
				public setTimezone(offset: number): void;
				/**
				 * @param hour value constraints are summarized in
				 * @param minute value constraints are summarized in
				 * @param second value constraints are summarized in
				 */
				public setTime(hour: number, minute: number, second: number): void;
				/**
				 * @param hour value constraints summarized in <a href="#datetimefield-hour">hour field of date/time field mapping table</a>.
				 */
				public setHour(hour: number): void;
				/**
				 * @param minute value constraints summarized in <a href="#datetimefield-minute">minute field of date/time field mapping table</a>.
				 */
				public setMinute(minute: number): void;
				/**
				 * @param second value constraints summarized in <a href="#datetimefield-second">second field of date/time field mapping table</a>.
				 */
				public setSecond(second: number): void;
				/**
				 * @param millisecond value constraints summarized in
				 */
				public setMillisecond(millisecond: number): void;
				/**
				 * @param fractional value constraints summarized in
				 */
				public setFractionalSecond(fractional: java.math.BigDecimal): void;
				/**
				 * @param hour value constraints are summarized in
				 * @param minute value constraints are summarized in
				 * @param second value constraints are summarized in
				 * @param fractional value of <code>null</code> indicates this optional
				 */
				public setTime(hour: number, minute: number, second: number, fractional: java.math.BigDecimal): void;
				/**
				 * @param hour value constraints are summarized in
				 * @param minute value constraints are summarized in
				 * @param second value constraints are summarized in
				 * @param millisecond value of {@link DatatypeConstants#FIELD_UNDEFINED} indicates this
				 */
				public setTime(hour: number, minute: number, second: number, millisecond: number): void;
				public getEon(): java.math.BigInteger;
				public getYear(): number;
				public getEonAndYear(): java.math.BigInteger;
				public getMonth(): number;
				/**
				 * Return day in month or DatatypeConstants#FIELD_UNDEFINED.</p>
				 */
				public getDay(): number;
				/**
				 * Return timezone offset in minutes or DatatypeConstants#FIELD_UNDEFINED if this optional field is not defined.
				 */
				public getTimezone(): number;
				/**
				 * Return hours or DatatypeConstants#FIELD_UNDEFINED. Returns DatatypeConstants#FIELD_UNDEFINED if this field is not defined.
				 */
				public getHour(): number;
				/**
				 * Return minutes or DatatypeConstants#FIELD_UNDEFINED.</p> Returns DatatypeConstants#FIELD_UNDEFINED if this field is not defined.
				 */
				public getMinute(): number;
				public getSecond(): number;
				public getMillisecond(): number;
				public getFractionalSecond(): java.math.BigDecimal;
				/**
				 * @param xmlGregorianCalendar Instance of <code>XMLGregorianCalendar</code> to compare
				 */
				public compare(xmlGregorianCalendar: javax.xml.datatype.XMLGregorianCalendar): number;
				public normalize(): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param obj to compare.
				 */
				public equals(obj: any): boolean;
				public hashCode(): number;
				public toXMLFormat(): string;
				public getXMLSchemaType(): javax.xml.namespace.QName;
				public toString(): string;
				/**
				 * Validate instance by <code>getXMLSchemaType()</code> constraints.
				 */
				public isValid(): boolean;
				/**
				 * @param duration Duration to add to this <code>XMLGregorianCalendar</code>.
				 */
				public add(duration: javax.xml.datatype.Duration): void;
				public toGregorianCalendar(): java.util.GregorianCalendar;
				/**
				 * @param timezone provide Timezone. <code>null</code> is a legal value.
				 * @param aLocale provide explicit Locale. Use default GregorianCalendar locale if
				 * @param defaults provide default field values to use when corresponding
				 */
				public toGregorianCalendar(timezone: java.util.TimeZone, aLocale: java.util.Locale, defaults: javax.xml.datatype.XMLGregorianCalendar): java.util.GregorianCalendar;
				/**
				 * @param defaultZoneoffset default zoneoffset if this zoneoffset is
				 */
				public getTimeZone(defaultZoneoffset: number): java.util.TimeZone;
				public clone(): any;
			}
			export class DatatypeFactory extends java.lang.Object {
				static DATATYPEFACTORY_PROPERTY: string;
				static DATATYPEFACTORY_IMPLEMENTATION_CLASS: string;
				static class: java.lang.Class<javax.xml.datatype.DatatypeFactory>;
				public static newInstance(): javax.xml.datatype.DatatypeFactory;
				/**
				 * Returns an instance of the named implementation of DatatypeFactory.
				 */
				public static newInstance(factoryClassName: string, classLoader: java.lang.ClassLoader): javax.xml.datatype.DatatypeFactory;
				/**
				 * @param lexicalRepresentation <code>String</code> representation of a <code>Duration</code>.
				 */
				public newDuration(lexicalRepresentation: string): javax.xml.datatype.Duration;
				/**
				 * @param durationInMilliSeconds Duration in milliseconds to create.
				 */
				public newDuration(durationInMilliSeconds: number): javax.xml.datatype.Duration;
				/**
				 * @param isPositive Set to <code>false</code> to create a negative duration. When the length
				 * @param years of this <code>Duration</code>
				 * @param months of this <code>Duration</code>
				 * @param days of this <code>Duration</code>
				 * @param hours of this <code>Duration</code>
				 * @param minutes of this <code>Duration</code>
				 * @param seconds of this <code>Duration</code>
				 */
				public newDuration(isPositive: boolean, years: java.math.BigInteger, months: java.math.BigInteger, days: java.math.BigInteger, hours: java.math.BigInteger, minutes: java.math.BigInteger, seconds: java.math.BigDecimal): javax.xml.datatype.Duration;
				/**
				 * @param isPositive Set to <code>false</code> to create a negative duration. When the length
				 * @param years of this <code>Duration</code>
				 * @param months of this <code>Duration</code>
				 * @param days of this <code>Duration</code>
				 * @param hours of this <code>Duration</code>
				 * @param minutes of this <code>Duration</code>
				 * @param seconds of this <code>Duration</code>
				 */
				public newDuration(isPositive: boolean, years: number, months: number, days: number, hours: number, minutes: number, seconds: number): javax.xml.datatype.Duration;
				/**
				 * @param lexicalRepresentation Lexical representation of a duration.
				 */
				public newDurationDayTime(lexicalRepresentation: string): javax.xml.datatype.Duration;
				/**
				 * @param durationInMilliseconds Milliseconds of <code>Duration</code> to create.
				 */
				public newDurationDayTime(durationInMilliseconds: number): javax.xml.datatype.Duration;
				/**
				 * @param isPositive Set to <code>false</code> to create a negative duration. When the length
				 * @param day Day of <code>Duration</code>.
				 * @param hour Hour of <code>Duration</code>.
				 * @param minute Minute of <code>Duration</code>.
				 * @param second Second of <code>Duration</code>.
				 */
				public newDurationDayTime(isPositive: boolean, day: java.math.BigInteger, hour: java.math.BigInteger, minute: java.math.BigInteger, second: java.math.BigInteger): javax.xml.datatype.Duration;
				/**
				 * @param isPositive Set to <code>false</code> to create a negative duration. When the length
				 * @param day Day of <code>Duration</code>.
				 * @param hour Hour of <code>Duration</code>.
				 * @param minute Minute of <code>Duration</code>.
				 * @param second Second of <code>Duration</code>.
				 */
				public newDurationDayTime(isPositive: boolean, day: number, hour: number, minute: number, second: number): javax.xml.datatype.Duration;
				/**
				 * @param lexicalRepresentation Lexical representation of a duration.
				 */
				public newDurationYearMonth(lexicalRepresentation: string): javax.xml.datatype.Duration;
				/**
				 * @param durationInMilliseconds Milliseconds of <code>Duration</code> to create.
				 */
				public newDurationYearMonth(durationInMilliseconds: number): javax.xml.datatype.Duration;
				/**
				 * @param isPositive Set to <code>false</code> to create a negative duration. When the length
				 * @param year Year of <code>Duration</code>.
				 * @param month Month of <code>Duration</code>.
				 */
				public newDurationYearMonth(isPositive: boolean, year: java.math.BigInteger, month: java.math.BigInteger): javax.xml.datatype.Duration;
				/**
				 * @param isPositive Set to <code>false</code> to create a negative duration. When the length
				 * @param year Year of <code>Duration</code>.
				 * @param month Month of <code>Duration</code>.
				 */
				public newDurationYearMonth(isPositive: boolean, year: number, month: number): javax.xml.datatype.Duration;
				public newXMLGregorianCalendar(): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param lexicalRepresentation Lexical representation of one the eight XML Schema date/time datatypes.
				 */
				public newXMLGregorianCalendar(lexicalRepresentation: string): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param cal <code>java.util.GregorianCalendar</code> used to create <code>XMLGregorianCalendar</code>
				 */
				public newXMLGregorianCalendar(cal: java.util.GregorianCalendar): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param year of <code>XMLGregorianCalendar</code> to be created.
				 * @param month of <code>XMLGregorianCalendar</code> to be created.
				 * @param day of <code>XMLGregorianCalendar</code> to be created.
				 * @param hour of <code>XMLGregorianCalendar</code> to be created.
				 * @param minute of <code>XMLGregorianCalendar</code> to be created.
				 * @param second of <code>XMLGregorianCalendar</code> to be created.
				 * @param fractionalSecond of <code>XMLGregorianCalendar</code> to be created.
				 * @param timezone of <code>XMLGregorianCalendar</code> to be created.
				 */
				public newXMLGregorianCalendar(year: java.math.BigInteger, month: number, day: number, hour: number, minute: number, second: number, fractionalSecond: java.math.BigDecimal, timezone: number): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param year of <code>XMLGregorianCalendar</code> to be created.
				 * @param month of <code>XMLGregorianCalendar</code> to be created.
				 * @param day of <code>XMLGregorianCalendar</code> to be created.
				 * @param hour of <code>XMLGregorianCalendar</code> to be created.
				 * @param minute of <code>XMLGregorianCalendar</code> to be created.
				 * @param second of <code>XMLGregorianCalendar</code> to be created.
				 * @param millisecond of <code>XMLGregorianCalendar</code> to be created.
				 * @param timezone of <code>XMLGregorianCalendar</code> to be created.
				 */
				public newXMLGregorianCalendar(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number, timezone: number): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param year of <code>XMLGregorianCalendar</code> to be created.
				 * @param month of <code>XMLGregorianCalendar</code> to be created.
				 * @param day of <code>XMLGregorianCalendar</code> to be created.
				 * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
				 */
				public newXMLGregorianCalendarDate(year: number, month: number, day: number, timezone: number): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param hours number of hours
				 * @param minutes number of minutes
				 * @param seconds number of seconds
				 * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
				 */
				public newXMLGregorianCalendarTime(hours: number, minutes: number, seconds: number, timezone: number): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param hours number of hours
				 * @param minutes number of minutes
				 * @param seconds number of seconds
				 * @param fractionalSecond value of <code>null</code> indicates that this optional field is not set.
				 * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
				 */
				public newXMLGregorianCalendarTime(hours: number, minutes: number, seconds: number, fractionalSecond: java.math.BigDecimal, timezone: number): javax.xml.datatype.XMLGregorianCalendar;
				/**
				 * @param hours number of hours
				 * @param minutes number of minutes
				 * @param seconds number of seconds
				 * @param milliseconds number of milliseconds
				 * @param timezone offset in minutes. {@link DatatypeConstants#FIELD_UNDEFINED} indicates optional field is not set.
				 */
				public newXMLGregorianCalendarTime(hours: number, minutes: number, seconds: number, milliseconds: number, timezone: number): javax.xml.datatype.XMLGregorianCalendar;
			}
			export class DatatypeConstants extends java.lang.Object {
				/**
				 * Value for first month of year.
				 */
				static JANUARY: number;
				/**
				 * Value for second month of year.
				 */
				static FEBRUARY: number;
				/**
				 * Value for third month of year.
				 */
				static MARCH: number;
				/**
				 * Value for fourth month of year.
				 */
				static APRIL: number;
				/**
				 * Value for fifth month of year.
				 */
				static MAY: number;
				/**
				 * Value for sixth month of year.
				 */
				static JUNE: number;
				/**
				 * Value for seventh month of year.
				 */
				static JULY: number;
				/**
				 * Value for eighth month of year.
				 */
				static AUGUST: number;
				/**
				 * Value for ninth month of year.
				 */
				static SEPTEMBER: number;
				/**
				 * Value for tenth month of year.
				 */
				static OCTOBER: number;
				/**
				 * Value for eleven month of year.
				 */
				static NOVEMBER: number;
				/**
				 * Value for twelve month of year.
				 */
				static DECEMBER: number;
				static LESSER: number;
				static EQUAL: number;
				static GREATER: number;
				static INDETERMINATE: number;
				/**
				 * Designation that an "int" field is not set.
				 */
				static FIELD_UNDEFINED: number;
				static YEARS: javax.xml.datatype.DatatypeConstants.Field;
				static MONTHS: javax.xml.datatype.DatatypeConstants.Field;
				static DAYS: javax.xml.datatype.DatatypeConstants.Field;
				static HOURS: javax.xml.datatype.DatatypeConstants.Field;
				static MINUTES: javax.xml.datatype.DatatypeConstants.Field;
				static SECONDS: javax.xml.datatype.DatatypeConstants.Field;
				static DATETIME: javax.xml.namespace.QName;
				static TIME: javax.xml.namespace.QName;
				static DATE: javax.xml.namespace.QName;
				static GYEARMONTH: javax.xml.namespace.QName;
				static GMONTHDAY: javax.xml.namespace.QName;
				static GYEAR: javax.xml.namespace.QName;
				static GMONTH: javax.xml.namespace.QName;
				static GDAY: javax.xml.namespace.QName;
				static DURATION: javax.xml.namespace.QName;
				static DURATION_DAYTIME: javax.xml.namespace.QName;
				static DURATION_YEARMONTH: javax.xml.namespace.QName;
				/**
				 * W3C XML Schema max timezone offset is -14:00. Zone offset is in minutes.
				 */
				static MAX_TIMEZONE_OFFSET: number;
				/**
				 * W3C XML Schema min timezone offset is +14:00. Zone offset is in minutes.
				 */
				static MIN_TIMEZONE_OFFSET: number;
				static class: java.lang.Class<javax.xml.datatype.DatatypeConstants>;
			}
			export module DatatypeConstants {
				/**
				 * Type-safe enum class that represents six fields of the Duration class.
				 */
				export class Field extends java.lang.Object {
					static class: java.lang.Class<javax.xml.datatype.DatatypeConstants.Field>;
					/**
					 * Returns a field name in English. This method is intended to be used for debugging/diagnosis and not for display to end-users.
					 */
					public toString(): string;
					public getId(): number;
				}
			}
			export class Duration extends java.lang.Object {
				constructor();
				static class: java.lang.Class<javax.xml.datatype.Duration>;
				public getXMLSchemaType(): javax.xml.namespace.QName;
				/**
				 * Returns the sign of this duration in -1,0, or 1.
				 */
				public getSign(): number;
				public getYears(): number;
				/**
				 * Obtains the value of the MONTHS field as an integer value, or 0 if not present.
				 */
				public getMonths(): number;
				/**
				 * Obtains the value of the DAYS field as an integer value, or 0 if not present.
				 */
				public getDays(): number;
				/**
				 * Obtains the value of the HOURS field as an integer value, or 0 if not present.
				 */
				public getHours(): number;
				/**
				 * Obtains the value of the MINUTES field as an integer value, or 0 if not present.
				 */
				public getMinutes(): number;
				/**
				 * Obtains the value of the SECONDS field as an integer value, or 0 if not present.
				 */
				public getSeconds(): number;
				/**
				 * @param startInstant 
				 */
				public getTimeInMillis(startInstant: java.util.Calendar): any;
				/**
				 * @param startInstant 
				 */
				public getTimeInMillis(startInstant: java.util.Date): any;
				/**
				 * Gets the value of a field.
				 * @param field 
				 */
				public getField(field: javax.xml.datatype.DatatypeConstants.Field): java.lang.Number;
				/**
				 * Checks if a field is set.
				 * @param field 
				 */
				public isSet(field: javax.xml.datatype.DatatypeConstants.Field): boolean;
				/**
				 * @param rhs <code>Duration</code> to add to this <code>Duration</code>
				 */
				public add(rhs: javax.xml.datatype.Duration): javax.xml.datatype.Duration;
				/**
				 * Adds this duration to a Calendar object.
				 * @param calendar 
				 */
				public addTo(calendar: java.util.Calendar): void;
				/**
				 * Adds this duration to a Date object.
				 * @param date 
				 */
				public addTo(date: java.util.Date): void;
				/**
				 * @param rhs <code>Duration</code> to subtract from this <code>Duration</code>.
				 */
				public subtract(rhs: javax.xml.datatype.Duration): javax.xml.datatype.Duration;
				/**
				 * @param factor Factor times longer of new <code>Duration</code> to create.
				 */
				public multiply(factor: number): javax.xml.datatype.Duration;
				/**
				 * Computes a new duration whose value is <code>factor</code> times longer than the value of this duration.
				 * @param factor to multiply by
				 */
				public multiply(factor: java.math.BigDecimal): javax.xml.datatype.Duration;
				/**
				 * Returns a new <code>Duration</code> object whose value is <code>-this</code>.
				 */
				public negate(): javax.xml.datatype.Duration;
				/**
				 * @param startTimeInstant <code>Calendar</code> reference point.
				 */
				public normalizeWith(startTimeInstant: java.util.Calendar): javax.xml.datatype.Duration;
				/**
				 * @param duration to compare
				 */
				public compare(duration: javax.xml.datatype.Duration): number;
				/**
				 * @param duration <code>Duration</code> to test this <code>Duration</code> against.
				 */
				public isLongerThan(duration: javax.xml.datatype.Duration): boolean;
				/**
				 * @param duration <code>Duration</code> to test this <code>Duration</code> against.
				 */
				public isShorterThan(duration: javax.xml.datatype.Duration): boolean;
				/**
				 * @param duration 
				 */
				public equals(duration: any): boolean;
				/**
				 * Returns a hash code consistent with the definition of the equals method.
				 */
				public hashCode(): number;
				public toString(): string;
			}
			export class FactoryFinder extends java.lang.Object {
				static class: java.lang.Class<javax.xml.datatype.FactoryFinder>;
				/**
				 * @param className Name of class to create.
				 * @param classLoader ClassLoader to use to create named class.
				 */
				static newInstance(className: string, classLoader: java.lang.ClassLoader): any;
				/**
				 * Finds the implementation Class object in the specified order. Main entry point. Package private so this code can be shared.
				 * @param factoryId Name of the factory to find, same as a property name
				 * @param fallbackClassName Implementation class name, if nothing else is found. Use null to mean no fallback.
				 */
				static find(factoryId: string, fallbackClassName: string): any;
			}
			export module FactoryFinder {
				export class ConfigurationError extends java.lang.Error {
					static class: java.lang.Class<javax.xml.datatype.FactoryFinder.ConfigurationError>;
					getException(): java.lang.Exception;
				}
			}
		}
		export class XMLConstants extends java.lang.Object {
			static NULL_NS_URI: string;
			static DEFAULT_NS_PREFIX: string;
			static XML_NS_URI: string;
			static XML_NS_PREFIX: string;
			static XMLNS_ATTRIBUTE_NS_URI: string;
			static XMLNS_ATTRIBUTE: string;
			static W3C_XML_SCHEMA_NS_URI: string;
			static W3C_XML_SCHEMA_INSTANCE_NS_URI: string;
			static W3C_XPATH_DATATYPE_NS_URI: string;
			static XML_DTD_NS_URI: string;
			static RELAXNG_NS_URI: string;
			static FEATURE_SECURE_PROCESSING: string;
			static class: java.lang.Class<javax.xml.XMLConstants>;
		}
		export module namespace {
			export class QName extends java.lang.Object implements java.io.ISerializable {
				/**
				 * @param namespaceURI Namespace URI of the <code>QName</code>
				 * @param localPart local part of the <code>QName</code>
				 */
				constructor(namespaceURI: string, localPart: string);
				/**
				 * @param namespaceURI Namespace URI of the <code>QName</code>
				 * @param localPart local part of the <code>QName</code>
				 * @param prefix prefix of the <code>QName</code>
				 */
				constructor(namespaceURI: string, localPart: string, prefix: string);
				/**
				 * @param localPart local part of the <code>QName</code>
				 */
				constructor(localPart: string);
				static class: java.lang.Class<javax.xml.namespace.QName>;
				public getNamespaceURI(): string;
				public getLocalPart(): string;
				public getPrefix(): string;
				/**
				 * @param objectToTest the <code>Object</code> to test for
				 */
				public equals(objectToTest: any): boolean;
				public hashCode(): number;
				public toString(): string;
				/**
				 * @param qNameAsString <code>String</code> representation
				 */
				public static valueOf(qNameAsString: string): javax.xml.namespace.QName;
			}
			export class NamespaceContext implements javax.xml.namespace.INamespaceContext {
				constructor(implementation: javax.xml.namespace.INamespaceContext);
				/**
				 * @param prefix prefix to look up
				 */
				public getNamespaceURI(prefix: string): string;
				/**
				 * @param namespaceURI URI of Namespace to lookup
				 */
				public getPrefix(namespaceURI: string): string;
				/**
				 * @param namespaceURI URI of Namespace to lookup
				 */
				public getPrefixes(namespaceURI: string): java.util.IIterator<any>;
			}
			interface INamespaceContext {
				/**
				 * @param prefix prefix to look up
				 */
				getNamespaceURI(prefix: string): string;
				/**
				 * @param namespaceURI URI of Namespace to lookup
				 */
				getPrefix(namespaceURI: string): string;
				/**
				 * @param namespaceURI URI of Namespace to lookup
				 */
				getPrefixes(namespaceURI: string): java.util.IIterator<any>;
			}
		}
		export module parsers {
			/**
			 * Defines a factory API that enables applications to obtain a parser that produces DOM object trees from XML documents.
			 */
			export class DocumentBuilderFactory extends java.lang.Object {
				static class: java.lang.Class<javax.xml.parsers.DocumentBuilderFactory>;
				/**
				 * Returns Android's implementation of DocumentBuilderFactory. Unlike other Java implementations, this method does not consult system properties, property files, or the services API.
				 */
				public static newInstance(): javax.xml.parsers.DocumentBuilderFactory;
				/**
				 * Returns an instance of the named implementation of DocumentBuilderFactory.
				 */
				public static newInstance(factoryClassName: string, classLoader: java.lang.ClassLoader): javax.xml.parsers.DocumentBuilderFactory;
				/**
				 * Creates a new instance of a javax.xml.parsers.DocumentBuilder using the currently configured parameters.
				 */
				public newDocumentBuilder(): javax.xml.parsers.DocumentBuilder;
				/**
				 * Specifies that the parser produced by this code will provide support for XML namespaces. By default the value of this is set to <code>false</code>
				 * @param awareness true if the parser produced will provide support
				 */
				public setNamespaceAware(awareness: boolean): void;
				/**
				 * Specifies that the parser produced by this code will validate documents as they are parsed. By default the value of this is set to <code>false</code>.
				 * @param validating true if the parser produced will validate documents
				 */
				public setValidating(validating: boolean): void;
				/**
				 * Specifies that the parsers created by this factory must eliminate whitespace in element content (sometimes known loosely as 'ignorable whitespace') when parsing XML documents (see XML Rec 2.10). Note that only whitespace which is directly contained within element content that has an element only content model (see XML Rec 3.2.1) will be eliminated. Due to reliance on the content model this setting requires the parser to be in validating mode. By default the value of this is set to <code>false</code>.
				 * @param whitespace true if the parser created must eliminate whitespace
				 */
				public setIgnoringElementContentWhitespace(whitespace: boolean): void;
				/**
				 * Specifies that the parser produced by this code will expand entity reference nodes. By default the value of this is set to <code>true</code>
				 * @param expandEntityRef true if the parser produced will expand entity
				 */
				public setExpandEntityReferences(expandEntityRef: boolean): void;
				/**
				 * @param ignoreComments <code>boolean</code> value to ignore comments during processing
				 */
				public setIgnoringComments(ignoreComments: boolean): void;
				/**
				 * Specifies that the parser produced by this code will convert CDATA nodes to Text nodes and append it to the adjacent (if any) text node. By default the value of this is set to <code>false</code>
				 * @param coalescing true if the parser produced will convert CDATA nodes
				 */
				public setCoalescing(coalescing: boolean): void;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which are namespace aware.
				 */
				public isNamespaceAware(): boolean;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which validate the XML content during parse.
				 */
				public isValidating(): boolean;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which ignore ignorable whitespace in element content.
				 */
				public isIgnoringElementContentWhitespace(): boolean;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which expand entity reference nodes.
				 */
				public isExpandEntityReferences(): boolean;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which ignores comments.
				 */
				public isIgnoringComments(): boolean;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which converts CDATA nodes to Text nodes and appends it to the adjacent (if any) Text node.
				 */
				public isCoalescing(): boolean;
				/**
				 * Allows the user to set specific attributes on the underlying implementation.
				 * @param name The name of the attribute.
				 * @param value The value of the attribute.
				 */
				public setAttribute(name: string, value: any): void;
				/**
				 * Allows the user to retrieve specific attributes on the underlying implementation.
				 * @param name The name of the attribute.
				 */
				public getAttribute(name: string): any;
				/**
				 * @param name Feature name.
				 * @param value Is feature state <code>true</code> or <code>false</code>.
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * @param name Feature name.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Gets the Schema object specified through the #setSchema(Schema schema) method.
				 */
				public getSchema(): javax.xml.validation.Schema;
				/**
				 * @param schema <code>Schema</code> to use or <code>null</code> to remove a schema.
				 */
				public setSchema(schema: javax.xml.validation.Schema): void;
				/**
				 * @param state Set XInclude processing to <code>true</code> or
				 */
				public setXIncludeAware(state: boolean): void;
				public isXIncludeAware(): boolean;
			}
			/**
			 * Defines the API to obtain DOM Document instances from an XML document. Using this class, an application programmer can obtain a
			 */
			export class DocumentBuilder extends java.lang.Object {
				static class: java.lang.Class<javax.xml.parsers.DocumentBuilder>;
				public reset(): void;
				/**
				 * Parse the content of the given <code>InputStream</code> as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the <code>InputStream</code> is null.
				 * @param is InputStream containing the content to be parsed.
				 */
				public parse(is: java.io.InputStream): org.w3c.dom.IDocument;
				/**
				 * Parse the content of the given <code>InputStream</code> as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the <code>InputStream</code> is null.
				 * @param is InputStream containing the content to be parsed.
				 * @param systemId Provide a base for resolving relative URIs.
				 */
				public parse(is: java.io.InputStream, systemId: string): org.w3c.dom.IDocument;
				/**
				 * Parse the content of the given URI as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the URI is <code>null</code> null.
				 * @param uri The location of the content to be parsed.
				 */
				public parse(uri: string): org.w3c.dom.IDocument;
				/**
				 * Parse the content of the given file as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the <code>File</code> is <code>null</code> null.
				 * @param f The file containing the XML to parse.
				 */
				public parse(f: java.io.File): org.w3c.dom.IDocument;
				/**
				 * Parse the content of the given input source as an XML document and return a new DOM Document object. An <code>IllegalArgumentException</code> is thrown if the <code>InputSource</code> is <code>null</code> null.
				 * @param is InputSource containing the content to be parsed.
				 */
				public parse(is: org.xml.sax.InputSource): org.w3c.dom.IDocument;
				/**
				 * Indicates whether or not this parser is configured to understand namespaces.
				 */
				public isNamespaceAware(): boolean;
				/**
				 * Indicates whether or not this parser is configured to validate XML documents.
				 */
				public isValidating(): boolean;
				/**
				 * Specify the EntityResolver to be used to resolve entities present in the XML document to be parsed. Setting this to <code>null</code> will result in the underlying implementation using it's own default implementation and behavior.
				 * @param er The <code>EntityResolver</code> to be used to resolve entities
				 */
				public setEntityResolver(er: org.xml.sax.IEntityResolver): void;
				/**
				 * Specify the ErrorHandler to be used by the parser. Setting this to <code>null</code> will result in the underlying implementation using it's own default implementation and behavior.
				 * @param eh The <code>ErrorHandler</code> to be used by the parser.
				 */
				public setErrorHandler(eh: org.xml.sax.IErrorHandler): void;
				/**
				 * Obtain a new instance of a DOM Document object to build a DOM tree with.
				 */
				public newDocument(): org.w3c.dom.IDocument;
				/**
				 * Obtain an instance of a DOMImplementation object.
				 */
				public getDOMImplementation(): org.w3c.dom.IDOMImplementation;
				public getSchema(): javax.xml.validation.Schema;
				public isXIncludeAware(): boolean;
			}
			export class FilePathToURI extends java.lang.Object {
				static class: java.lang.Class<javax.xml.parsers.FilePathToURI>;
				public static filepath2URI(path: string): string;
			}
			/**
			 * Defines the API that wraps an org.xml.sax.XMLReader implementation class. In JAXP 1.0, this class wrapped the org.xml.sax.Parser interface, however this interface was replaced by the org.xml.sax.XMLReader. For ease of transition, this class continues to support the same name and interface as well as supporting new methods.
			 */
			export class SAXParser extends java.lang.Object {
				static class: java.lang.Class<javax.xml.parsers.SAXParser>;
				public reset(): void;
				/**
				 * @param is InputStream containing the content to be parsed.
				 * @param hb The SAX HandlerBase to use.
				 */
				public parse(is: java.io.InputStream, hb: org.xml.sax.HandlerBase): void;
				/**
				 * @param is InputStream containing the content to be parsed.
				 * @param hb The SAX HandlerBase to use.
				 * @param systemId The systemId which is needed for resolving relative URIs.
				 */
				public parse(is: java.io.InputStream, hb: org.xml.sax.HandlerBase, systemId: string): void;
				/**
				 * Parse the content of the given java.io.InputStream instance as XML using the specified org.xml.sax.helpers.DefaultHandler.
				 * @param is InputStream containing the content to be parsed.
				 * @param dh The SAX DefaultHandler to use.
				 */
				public parse(is: java.io.InputStream, dh: org.xml.sax.helpers.DefaultHandler): void;
				/**
				 * Parse the content of the given java.io.InputStream instance as XML using the specified org.xml.sax.helpers.DefaultHandler.
				 * @param is InputStream containing the content to be parsed.
				 * @param dh The SAX DefaultHandler to use.
				 * @param systemId The systemId which is needed for resolving relative URIs.
				 */
				public parse(is: java.io.InputStream, dh: org.xml.sax.helpers.DefaultHandler, systemId: string): void;
				/**
				 * Parse the content described by the giving Uniform Resource Identifier (URI) as XML using the specified org.xml.sax.HandlerBase. <i> Use of the DefaultHandler version of this method is recommended as the <code>HandlerBase</code> class has been deprecated in SAX 2.0</i>
				 * @param uri The location of the content to be parsed.
				 * @param hb The SAX HandlerBase to use.
				 */
				public parse(uri: string, hb: org.xml.sax.HandlerBase): void;
				/**
				 * Parse the content described by the giving Uniform Resource Identifier (URI) as XML using the specified org.xml.sax.helpers.DefaultHandler.
				 * @param uri The location of the content to be parsed.
				 * @param dh The SAX DefaultHandler to use.
				 */
				public parse(uri: string, dh: org.xml.sax.helpers.DefaultHandler): void;
				/**
				 * Parse the content of the file specified as XML using the specified org.xml.sax.HandlerBase. <i> Use of the DefaultHandler version of this method is recommended as the HandlerBase class has been deprecated in SAX 2.0</i>
				 * @param f The file containing the XML to parse
				 * @param hb The SAX HandlerBase to use.
				 */
				public parse(f: java.io.File, hb: org.xml.sax.HandlerBase): void;
				/**
				 * Parse the content of the file specified as XML using the specified org.xml.sax.helpers.DefaultHandler.
				 * @param f The file containing the XML to parse
				 * @param dh The SAX DefaultHandler to use.
				 */
				public parse(f: java.io.File, dh: org.xml.sax.helpers.DefaultHandler): void;
				/**
				 * Parse the content given org.xml.sax.InputSource as XML using the specified org.xml.sax.HandlerBase. <i> Use of the DefaultHandler version of this method is recommended as the HandlerBase class has been deprecated in SAX 2.0</i>
				 * @param is The InputSource containing the content to be parsed.
				 * @param hb The SAX HandlerBase to use.
				 */
				public parse(is: org.xml.sax.InputSource, hb: org.xml.sax.HandlerBase): void;
				/**
				 * Parse the content given org.xml.sax.InputSource as XML using the specified org.xml.sax.helpers.DefaultHandler.
				 * @param is The InputSource containing the content to be parsed.
				 * @param dh The SAX DefaultHandler to use.
				 */
				public parse(is: org.xml.sax.InputSource, dh: org.xml.sax.helpers.DefaultHandler): void;
				/**
				 * Returns the SAX parser that is encapsulated by the implementation of this class.
				 */
				public getParser(): org.xml.sax.IParser;
				/**
				 * Returns the org.xml.sax.XMLReader that is encapsulated by the implementation of this class.
				 */
				public getXMLReader(): org.xml.sax.IXMLReader;
				/**
				 * Indicates whether or not this parser is configured to understand namespaces.
				 */
				public isNamespaceAware(): boolean;
				/**
				 * Indicates whether or not this parser is configured to validate XML documents.
				 */
				public isValidating(): boolean;
				/**
				 * @param name The name of the property to be set.
				 * @param value The value of the property to be set.
				 */
				public setProperty(name: string, value: any): void;
				/**
				 * @param name The name of the property to be retrieved.
				 */
				public getProperty(name: string): any;
				public getSchema(): javax.xml.validation.Schema;
				public isXIncludeAware(): boolean;
			}
			/**
			 * Indicates a serious configuration error.
			 */
			export class ParserConfigurationException extends java.lang.Exception {
				/**
				 * Create a new <code>ParserConfigurationException</code> with no detail message.
				 */
				constructor();
				/**
				 * Create a new <code>ParserConfigurationException</code> with the <code>String</code> specified as an error message.
				 * @param msg The error message for the exception.
				 */
				constructor(msg: string);
				static class: java.lang.Class<javax.xml.parsers.ParserConfigurationException>;
			}
			/**
			 * Thrown when a problem with configuration with the Parser Factories exists. This error will typically be thrown when the class of a parser factory specified in the system properties cannot be found or instantiated.
			 */
			export class FactoryConfigurationError extends java.lang.Error {
				/**
				 * Create a new <code>FactoryConfigurationError</code> with no detail message.
				 */
				constructor();
				/**
				 * Create a new <code>FactoryConfigurationError</code> with the <code>String </code> specified as an error message.
				 * @param msg The error message for the exception.
				 */
				constructor(msg: string);
				/**
				 * Create a new <code>FactoryConfigurationError</code> with a given <code>Exception</code> base cause of the error.
				 * @param e The exception to be encapsulated in a
				 */
				constructor(e: java.lang.Exception);
				/**
				 * Create a new <code>FactoryConfigurationError</code> with the given <code>Exception</code> base cause and detail message.
				 * @param e The exception to be encapsulated in a
				 * @param msg The detail message.
				 */
				constructor(e: java.lang.Exception, msg: string);
				static class: java.lang.Class<javax.xml.parsers.FactoryConfigurationError>;
				/**
				 * Return the message (if any) for this error . If there is no message for the exception and there is an encapsulated exception then the message of that exception, if it exists will be returned. Else the name of the encapsulated exception will be returned.
				 */
				public getMessage(): string;
				/**
				 * Return the actual exception (if any) that caused this exception to be raised.
				 */
				public getException(): java.lang.Exception;
			}
			/**
			 * Defines a factory API that enables applications to configure and obtain a SAX based parser to parse XML documents.
			 */
			export class SAXParserFactory extends java.lang.Object {
				static class: java.lang.Class<javax.xml.parsers.SAXParserFactory>;
				/**
				 * Returns Android's implementation of SAXParserFactory. Unlike other Java implementations, this method does not consult system properties, property files, or the services API.
				 */
				public static newInstance(): javax.xml.parsers.SAXParserFactory;
				/**
				 * Returns an instance of the named implementation of SAXParserFactory.
				 */
				public static newInstance(factoryClassName: string, classLoader: java.lang.ClassLoader): javax.xml.parsers.SAXParserFactory;
				public newSAXParser(): javax.xml.parsers.SAXParser;
				/**
				 * Specifies that the parser produced by this code will provide support for XML namespaces. By default the value of this is set to <code>false</code>.
				 * @param awareness true if the parser produced by this code will
				 */
				public setNamespaceAware(awareness: boolean): void;
				/**
				 * Specifies that the parser produced by this code will validate documents as they are parsed. By default the value of this is set to <code>false</code>.
				 * @param validating true if the parser produced by this code will
				 */
				public setValidating(validating: boolean): void;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which are namespace aware.
				 */
				public isNamespaceAware(): boolean;
				/**
				 * Indicates whether or not the factory is configured to produce parsers which validate the XML content during parse.
				 */
				public isValidating(): boolean;
				/**
				 * @param name The name of the feature to be set.
				 * @param value The value of the feature to be set.
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * @param name The name of the property to be retrieved.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Gets the Schema object specified through the #setSchema(Schema schema) method.
				 */
				public getSchema(): javax.xml.validation.Schema;
				/**
				 * @param schema <code>Schema</code> to use, <code>null</code> to remove a schema.
				 */
				public setSchema(schema: javax.xml.validation.Schema): void;
				/**
				 * @param state Set XInclude processing to <code>true</code> or
				 */
				public setXIncludeAware(state: boolean): void;
				public isXIncludeAware(): boolean;
			}
		}
		export module validation {
			/**
			 * Factory that creates Schema objects&#x2E; Entry-point to the validation API.
			 */
			export class SchemaFactory extends java.lang.Object {
				static class: java.lang.Class<javax.xml.validation.SchemaFactory>;
				/**
				 * @param schemaLanguage 
				 */
				public static newInstance(schemaLanguage: string): javax.xml.validation.SchemaFactory;
				/**
				 * Returns an instance of the named implementation of SchemaFactory.
				 */
				public static newInstance(schemaLanguage: string, factoryClassName: string, classLoader: java.lang.ClassLoader): javax.xml.validation.SchemaFactory;
				/**
				 * @param schemaLanguage Specifies the schema language which the returned <code>SchemaFactory</code> will understand.
				 */
				public isSchemaLanguageSupported(schemaLanguage: string): boolean;
				/**
				 * Look up the value of a feature flag.
				 * @param name The feature name, which is a non-null fully-qualified URI.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Set the value of a feature flag.
				 * @param name The feature name, which is a non-null fully-qualified URI.
				 * @param value The requested value of the feature (true or false).
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * Set the value of a property.
				 * @param name The property name, which is a non-null fully-qualified URI.
				 * @param object The requested value for the property.
				 */
				public setProperty(name: string, object: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The property name, which is a non-null fully-qualified URI.
				 */
				public getProperty(name: string): any;
				/**
				 * Sets the ErrorHandler to receive errors encountered during the <code>newSchema</code> method invocation.
				 * @param errorHandler 
				 */
				public setErrorHandler(errorHandler: org.xml.sax.IErrorHandler): void;
				/**
				 * Gets the current ErrorHandler set to this SchemaFactory.
				 */
				public getErrorHandler(): org.xml.sax.IErrorHandler;
				/**
				 * Sets the LSResourceResolver to customize resource resolution when parsing schemas.
				 * @param resourceResolver 
				 */
				public setResourceResolver(resourceResolver: org.w3c.dom.ls.ILSResourceResolver): void;
				/**
				 * Gets the current LSResourceResolver set to this SchemaFactory.
				 */
				public getResourceResolver(): org.w3c.dom.ls.ILSResourceResolver;
				/**
				 * @param schema Source that represents a schema.
				 */
				public newSchema(schema: javax.xml.transform.ISource): javax.xml.validation.Schema;
				/**
				 * @param schema File that represents a schema.
				 */
				public newSchema(schema: java.io.File): javax.xml.validation.Schema;
				/**
				 * @param schema <code>URL</code> that represents a schema.
				 */
				public newSchema(schema: java.net.URL): javax.xml.validation.Schema;
				/**
				 * Parses the specified source(s) as a schema and returns it as a schema.
				 * @param schemas 
				 */
				public newSchema(schemas: native.Array<javax.xml.transform.ISource>): javax.xml.validation.Schema;
				/**
				 * Creates a special Schema object.
				 */
				public newSchema(): javax.xml.validation.Schema;
			}
			/**
			 * Streaming validator that works on SAX stream.
			 */
			export class ValidatorHandler extends java.lang.Object implements org.xml.sax.IContentHandler {
				static class: java.lang.Class<javax.xml.validation.ValidatorHandler>;
				/**
				 * Sets the ContentHandler which receives the augmented validation result.
				 * @param receiver 
				 */
				public setContentHandler(receiver: org.xml.sax.IContentHandler): void;
				/**
				 * Gets the ContentHandler which receives the augmented validation result.
				 */
				public getContentHandler(): org.xml.sax.IContentHandler;
				/**
				 * Sets the ErrorHandler to receive errors encountered during the validation.
				 * @param errorHandler 
				 */
				public setErrorHandler(errorHandler: org.xml.sax.IErrorHandler): void;
				/**
				 * Gets the current ErrorHandler set to this ValidatorHandler.
				 */
				public getErrorHandler(): org.xml.sax.IErrorHandler;
				/**
				 * Sets the LSResourceResolver to customize resource resolution while in a validation episode.
				 * @param resourceResolver 
				 */
				public setResourceResolver(resourceResolver: org.w3c.dom.ls.ILSResourceResolver): void;
				/**
				 * Gets the current LSResourceResolver set to this ValidatorHandler.
				 */
				public getResourceResolver(): org.w3c.dom.ls.ILSResourceResolver;
				/**
				 * Obtains the TypeInfoProvider implementation of this ValidatorHandler.
				 */
				public getTypeInfoProvider(): javax.xml.validation.TypeInfoProvider;
				/**
				 * Look up the value of a feature flag.
				 * @param name The feature name, which is a non-null fully-qualified URI.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Set the value of a feature flag.
				 * @param name The feature name, which is a non-null fully-qualified URI.
				 * @param value The requested value of the feature (true or false).
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * Set the value of a property.
				 * @param name The property name, which is a non-null fully-qualified URI.
				 * @param object The requested value for the property.
				 */
				public setProperty(name: string, object: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The property name, which is a non-null fully-qualified URI.
				 */
				public getProperty(name: string): any;
				/**
				 * Receive an object for locating the origin of SAX document events.
				 * @param locator an object that can return the location of
				 */
				setDocumentLocator(locator: org.xml.sax.ILocator): void;
				/**
				 * Receive notification of the beginning of a document.
				 */
				startDocument(): void;
				/**
				 * Receive notification of the end of a document.
				 */
				endDocument(): void;
				/**
				 * Begin the scope of a prefix-URI Namespace mapping.
				 * @param prefix the Namespace prefix being declared.
				 * @param uri the Namespace URI the prefix is mapped to
				 */
				startPrefixMapping(prefix: string, uri: string): void;
				/**
				 * End the scope of a prefix-URI mapping.
				 * @param prefix the prefix that was being mapped.
				 */
				endPrefixMapping(prefix: string): void;
				/**
				 * Receive notification of the beginning of an element.
				 * @param uri the Namespace URI, or the empty string if the
				 * @param localName the local name (without prefix), or the
				 * @param qName the qualified name (with prefix), or the
				 * @param atts the attributes attached to the element. If
				 */
				startElement(uri: string, localName: string, qName: string, atts: org.xml.sax.IAttributes): void;
				/**
				 * Receive notification of the end of an element.
				 * @param uri the Namespace URI, or the empty string if the
				 * @param localName the local name (without prefix), or the
				 * @param qName the qualified XML name (with prefix), or the
				 */
				endElement(uri: string, localName: string, qName: string): void;
				/**
				 * Receive notification of character data.
				 * @param ch the characters from the XML document
				 * @param start the start position in the array
				 * @param length the number of characters to read from the array
				 */
				characters(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of ignorable whitespace in element content.
				 * @param ch the characters from the XML document
				 * @param start the start position in the array
				 * @param length the number of characters to read from the array
				 */
				ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
				/**
				 * Receive notification of a processing instruction.
				 * @param target the processing instruction target
				 * @param data the processing instruction data, or null if
				 */
				processingInstruction(target: string, data: string): void;
				/**
				 * Receive notification of a skipped entity. This is not called for entity references within markup constructs such as element start tags or markup declarations. (The XML recommendation requires reporting skipped external entities. SAX also reports internal entity expansion/non-expansion, except within markup constructs.)
				 * @param name the name of the skipped entity. If it is a
				 */
				skippedEntity(name: string): void;
			}
			/**
			 * Implementation of SchemaFactory#newInstance(String).
			 */
			export class SchemaFactoryFinder extends java.lang.Object {
				/**
				 * @param loader 
				 */
				constructor(loader: java.lang.ClassLoader);
				static class: java.lang.Class<javax.xml.validation.SchemaFactoryFinder>;
				/**
				 * @param schemaLanguage 
				 */
				public newFactory(schemaLanguage: string): javax.xml.validation.SchemaFactory;
				/**
				 * @param className 
				 */
				createInstance(className: string): javax.xml.validation.SchemaFactory;
			}
			/**
			 * Immutable in-memory representation of grammar.
			 */
			export class Schema extends java.lang.Object {
				static class: java.lang.Class<javax.xml.validation.Schema>;
				/**
				 * Creates a new Validator for this Schema.
				 */
				public newValidator(): javax.xml.validation.Validator;
				/**
				 * Creates a new ValidatorHandler for this Schema.
				 */
				public newValidatorHandler(): javax.xml.validation.ValidatorHandler;
			}
			export class SchemaFactoryLoader extends java.lang.Object {
				static class: java.lang.Class<javax.xml.validation.SchemaFactoryLoader>;
				public newFactory(schemaLanguage: string): javax.xml.validation.SchemaFactory;
			}
			export class Validator extends java.lang.Object {
				static class: java.lang.Class<javax.xml.validation.Validator>;
				public reset(): void;
				/**
				 * Validates the specified input.
				 */
				public validate(source: javax.xml.transform.ISource): void;
				/**
				 * Validates the specified input and send the augmented validation result to the specified output.
				 * @param source 
				 * @param result 
				 */
				public validate(source: javax.xml.transform.ISource, result: javax.xml.transform.IResult): void;
				/**
				 * Sets the ErrorHandler to receive errors encountered during the <code>validate</code> method invocation.
				 * @param errorHandler 
				 */
				public setErrorHandler(errorHandler: org.xml.sax.IErrorHandler): void;
				/**
				 * Gets the current ErrorHandler set to this Validator.
				 */
				public getErrorHandler(): org.xml.sax.IErrorHandler;
				/**
				 * Sets the LSResourceResolver to customize resource resolution while in a validation episode.
				 * @param resourceResolver 
				 */
				public setResourceResolver(resourceResolver: org.w3c.dom.ls.ILSResourceResolver): void;
				/**
				 * Gets the current LSResourceResolver set to this Validator.
				 */
				public getResourceResolver(): org.w3c.dom.ls.ILSResourceResolver;
				/**
				 * Look up the value of a feature flag.
				 * @param name The feature name, which is a non-null fully-qualified URI.
				 */
				public getFeature(name: string): boolean;
				/**
				 * Set the value of a feature flag.
				 * @param name The feature name, which is a non-null fully-qualified URI.
				 * @param value The requested value of the feature (true or false).
				 */
				public setFeature(name: string, value: boolean): void;
				/**
				 * Set the value of a property.
				 * @param name The property name, which is a non-null fully-qualified URI.
				 * @param object The requested value for the property.
				 */
				public setProperty(name: string, object: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The property name, which is a non-null fully-qualified URI.
				 */
				public getProperty(name: string): any;
			}
			/**
			 * This class provides access to the type information determined by ValidatorHandler.
			 */
			export class TypeInfoProvider extends java.lang.Object {
				static class: java.lang.Class<javax.xml.validation.TypeInfoProvider>;
				public getElementTypeInfo(): org.w3c.dom.ITypeInfo;
				/**
				 * Returns the immutable TypeInfo object for the specified attribute of the current element.
				 * @param index 
				 */
				public getAttributeTypeInfo(index: number): org.w3c.dom.ITypeInfo;
				/**
				 * Returns <tt>true</tt> if the specified attribute is determined to be ID.
				 * @param index 
				 */
				public isIdAttribute(index: number): boolean;
				/**
				 * Returns <tt>false</tt> if the attribute was added by the validator.
				 * @param index 
				 */
				public isSpecified(index: number): boolean;
			}
		}
	}
	export module net {
		export class DefaultServerSocketFactory extends javax.net.ServerSocketFactory {
			static class: java.lang.Class<javax.net.DefaultServerSocketFactory>;
			public createServerSocket(): java.net.ServerSocket;
			public createServerSocket(port: number): java.net.ServerSocket;
			public createServerSocket(port: number, backlog: number): java.net.ServerSocket;
			public createServerSocket(port: number, backlog: number, iAddress: java.net.InetAddress): java.net.ServerSocket;
		}
		/**
		 * This abstract class defines methods to create sockets. It can be subclassed to create specific socket types with additional socket-level functionality.
		 */
		export class SocketFactory extends java.lang.Object {
			static class: java.lang.Class<javax.net.SocketFactory>;
			/**
			 * Gets the default socket factory of the system which can be used to create new sockets without creating a subclass of this factory.
			 */
			public static getDefault(): javax.net.SocketFactory;
			/**
			 * Creates a new socket which is not connected to any remote host. This method has to be overridden by a subclass otherwise a SocketException is thrown.
			 */
			public createSocket(): java.net.Socket;
			/**
			 * Creates a new socket which is connected to the remote host specified by the parameters host and port. The socket is bound to any available local address and port.
			 * @param host 
			 * @param port 
			 */
			public createSocket(host: string, port: number): java.net.Socket;
			/**
			 * Creates a new socket which is connected to the remote host specified by the parameters host and port. The socket is bound to the local network interface specified by the InetAddress localHost on port localPort.
			 * @param host 
			 * @param port 
			 * @param localHost 
			 * @param localPort 
			 */
			public createSocket(host: string, port: number, localHost: java.net.InetAddress, localPort: number): java.net.Socket;
			/**
			 * Creates a new socket which is connected to the remote host specified by the InetAddress host. The socket is bound to any available local address and port.
			 * @param host 
			 * @param port 
			 */
			public createSocket(host: java.net.InetAddress, port: number): java.net.Socket;
			/**
			 * Creates a new socket which is connected to the remote host specified by the InetAddress address. The socket is bound to the local network interface specified by the InetAddress localHost on port localPort.
			 * @param address 
			 * @param port 
			 * @param localAddress 
			 * @param localPort 
			 */
			public createSocket(address: java.net.InetAddress, port: number, localAddress: java.net.InetAddress, localPort: number): java.net.Socket;
		}
		/**
		 * This abstract class defines methods to create server sockets. It can be subclassed to create specific server socket types.
		 */
		export class ServerSocketFactory extends java.lang.Object {
			static class: java.lang.Class<javax.net.ServerSocketFactory>;
			/**
			 * Gets the default server socket factory of the system which can be used to create new server sockets without creating a subclass of this factory.
			 */
			public static getDefault(): javax.net.ServerSocketFactory;
			/**
			 * Creates a new server socket which is not bound to any local address. This method has to be overridden by a subclass otherwise a SocketException is thrown.
			 */
			public createServerSocket(): java.net.ServerSocket;
			/**
			 * Creates a new server socket which is bound to the given port with a maximum backlog of 50 unaccepted connections.
			 * @param port the port on which the created socket has to listen.
			 */
			public createServerSocket(port: number): java.net.ServerSocket;
			/**
			 * Creates a new server socket which is bound to the given port and configures its maximum of queued connections.
			 * @param port the port on which the created socket has to listen.
			 * @param backlog the maximum number of unaccepted connections. Passing 0 or
			 */
			public createServerSocket(port: number, backlog: number): java.net.ServerSocket;
			/**
			 * Creates a new server socket which is bound to the given address on the specified port and configures its maximum of queued connections.
			 * @param port the port on which the created socket has to listen.
			 * @param backlog the maximum number of unaccepted connections. Passing 0 or
			 * @param iAddress the address of the network interface which is used by the
			 */
			public createServerSocket(port: number, backlog: number, iAddress: java.net.InetAddress): java.net.ServerSocket;
		}
		/**
		 * Default implementation of javax.net.SocketFactory
		 */
		export class DefaultSocketFactory extends javax.net.SocketFactory {
			static class: java.lang.Class<javax.net.DefaultSocketFactory>;
			public createSocket(): java.net.Socket;
			public createSocket(host: string, port: number): java.net.Socket;
			public createSocket(host: string, port: number, localHost: java.net.InetAddress, localPort: number): java.net.Socket;
			public createSocket(host: java.net.InetAddress, port: number): java.net.Socket;
			public createSocket(address: java.net.InetAddress, port: number, localAddress: java.net.InetAddress, localPort: number): java.net.Socket;
		}
		export module ssl {
			/**
			 * A Key Manager for X509 certificate-based key pairs.
			 */
			interface IX509KeyManager extends javax.net.ssl.IKeyManager {
				/**
				 * Chooses an alias for the client side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param socket 
				 */
				chooseClientAlias(keyType: native.Array<string>, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
				/**
				 * Chooses an alias for the server side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param socket 
				 */
				chooseServerAlias(keyType: string, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
				/**
				 * Returns the certificate chain for the specified alias.
				 * @param alias 
				 */
				getCertificateChain(alias: string): native.Array<java.security.cert.X509Certificate>;
				/**
				 * Returns the client aliases for the specified public key type and list of certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 */
				getClientAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
				/**
				 * Returns the server aliases for the specified public key type and list of certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 */
				getServerAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
				/**
				 * Returns the private key for the specified alias.
				 * @param alias 
				 */
				getPrivateKey(alias: string): java.security.IPrivateKey;
			}
			/**
			 * Default inoperative implementation of javax.net.ssl.SSLSocketFactory
			 */
			export class DefaultSSLSocketFactory extends javax.net.ssl.SSLSocketFactory {
				static class: java.lang.Class<javax.net.ssl.DefaultSSLSocketFactory>;
				public getDefaultCipherSuites(): native.Array<string>;
				public getSupportedCipherSuites(): native.Array<string>;
				public createSocket(s: java.net.Socket, host: string, port: number, autoClose: boolean): java.net.Socket;
				public createSocket(host: string, port: number): java.net.Socket;
				public createSocket(host: string, port: number, localHost: java.net.InetAddress, localPort: number): java.net.Socket;
				public createSocket(host: java.net.InetAddress, port: number): java.net.Socket;
				public createSocket(address: java.net.InetAddress, port: number, localAddress: java.net.InetAddress, localPort: number): java.net.Socket;
				/**
				 * Creates a new socket which is not connected to any remote host. This method has to be overridden by a subclass otherwise a SocketException is thrown.
				 */
				createSocket(): java.net.Socket;
			}
			/**
			 * The interface to be used to provide hostname verification functionality.
			 */
			interface IHostnameVerifier {
				/**
				 * Verifies that the specified hostname is allowed within the specified SSL session.
				 * @param hostname 
				 * @param session 
				 */
				verify(hostname: string, session: javax.net.ssl.ISSLSession): boolean;
			}
			/**
			 * The abstract implementation of secure communications using SSL, TLS, or other protocols. It includes the setup, handshake, and encrypt/decrypt functionality needed to create a secure connection.
			 */
			export class SSLEngine extends java.lang.Object {
				static class: java.lang.Class<javax.net.ssl.SSLEngine>;
				/**
				 * Returns the name of the peer host.
				 */
				public getPeerHost(): string;
				/**
				 * Returns the port number of the peer host.
				 */
				public getPeerPort(): number;
				/**
				 * Initiates a handshake on this engine.
				 */
				public beginHandshake(): void;
				/**
				 * Notifies this engine instance that no more inbound network data will be sent to this engine.
				 */
				public closeInbound(): void;
				/**
				 * Notifies this engine instance that no more outbound application data will be sent to this engine.
				 */
				public closeOutbound(): void;
				/**
				 * Returns a delegate task for this engine instance. Some engine operations may require the results of blocking or long running operations, and the SSLEngineResult instances returned by this engine may indicate that a delegated task result is needed. In this case the Runnable#run() run method of the returned Runnable delegated task must be called.
				 */
				public getDelegatedTask(): java.lang.IRunnable;
				/**
				 * Returns the SSL cipher suite names that are enabled in this engine instance.
				 */
				public getEnabledCipherSuites(): native.Array<string>;
				/**
				 * Returns the protocol version names that are enabled in this engine instance.
				 */
				public getEnabledProtocols(): native.Array<string>;
				/**
				 * Returns whether new SSL sessions may be established by this engine.
				 */
				public getEnableSessionCreation(): boolean;
				/**
				 * Returns the status of the handshake of this engine instance.
				 */
				public getHandshakeStatus(): javax.net.ssl.SSLEngineResult.HandshakeStatus;
				/**
				 * Returns whether this engine instance will require client authentication.
				 */
				public getNeedClientAuth(): boolean;
				/**
				 * Returns the SSL session for this engine instance.
				 */
				public getSession(): javax.net.ssl.ISSLSession;
				/**
				 * Returns the SSL cipher suite names that are supported by this engine. These cipher suites can be enabled using #setEnabledCipherSuites(String[]).
				 */
				public getSupportedCipherSuites(): native.Array<string>;
				/**
				 * Returns the protocol names that are supported by this engine. These protocols can be enables using #setEnabledProtocols(String[]).
				 */
				public getSupportedProtocols(): native.Array<string>;
				/**
				 * Returns whether this engine is set to act in client mode when handshaking.
				 */
				public getUseClientMode(): boolean;
				/**
				 * Returns whether this engine will request client authentication.
				 */
				public getWantClientAuth(): boolean;
				/**
				 * Returns whether no more inbound data will be accepted by this engine.
				 */
				public isInboundDone(): boolean;
				/**
				 * Returns whether no more outbound data will be produced by this engine.
				 */
				public isOutboundDone(): boolean;
				/**
				 * Sets the SSL cipher suite names that should be enabled in this engine instance. Only cipher suites listed by getSupportedCipherSuites() are allowed.
				 * @param suites 
				 */
				public setEnabledCipherSuites(suites: native.Array<string>): void;
				/**
				 * Sets the protocol version names that should be enabled in this engine instance. Only protocols listed by getSupportedProtocols() are allowed.
				 * @param protocols 
				 */
				public setEnabledProtocols(protocols: native.Array<string>): void;
				/**
				 * Sets whether new SSL sessions may be established by this engine instance.
				 * @param flag 
				 */
				public setEnableSessionCreation(flag: boolean): void;
				/**
				 * Sets whether this engine must require client authentication. The client authentication is one of: <ul> <li>authentication required</li> <li>authentication requested</li> <li>no authentication needed</li> </ul> This method overrides the setting of #setWantClientAuth(boolean).
				 * @param need 
				 */
				public setNeedClientAuth(need: boolean): void;
				/**
				 * Sets whether this engine should act in client (or server) mode when handshaking.
				 * @param mode 
				 */
				public setUseClientMode(mode: boolean): void;
				/**
				 * Sets whether this engine should request client authentication. The client authentication is one of the following: <ul> <li>authentication required</li> <li>authentication requested</li> <li>no authentication needed</li> </ul> This method overrides the setting of #setNeedClientAuth(boolean).
				 * @param want 
				 */
				public setWantClientAuth(want: boolean): void;
				/**
				 * Decodes the incoming network data buffer into application data buffers. If a handshake has not been started yet, it will automatically be started.
				 * @param src 
				 * @param dsts 
				 * @param offset 
				 * @param length 
				 */
				public unwrap(src: java.nio.ByteBuffer, dsts: native.Array<java.nio.ByteBuffer>, offset: number, length: number): javax.net.ssl.SSLEngineResult;
				/**
				 * Encodes the outgoing application data buffers into the network data buffer. If a handshake has not been started yet, it will automatically be started.
				 * @param srcs 
				 * @param offset 
				 * @param length 
				 * @param dst 
				 */
				public wrap(srcs: native.Array<java.nio.ByteBuffer>, offset: number, length: number, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
				/**
				 * Decodes the incoming network data buffer into the application data buffer. If a handshake has not been started yet, it will automatically be started.
				 * @param src 
				 * @param dst 
				 */
				public unwrap(src: java.nio.ByteBuffer, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
				/**
				 * Decodes the incoming network data buffer into the application data buffers. If a handshake has not been started yet, it will automatically be started.
				 * @param src 
				 * @param dsts 
				 */
				public unwrap(src: java.nio.ByteBuffer, dsts: native.Array<java.nio.ByteBuffer>): javax.net.ssl.SSLEngineResult;
				/**
				 * Encodes the outgoing application data buffers into the network data buffer. If a handshake has not been started yet, it will automatically be started.
				 * @param srcs 
				 * @param dst 
				 */
				public wrap(srcs: native.Array<java.nio.ByteBuffer>, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
				/**
				 * Encodes the outgoing application data buffer into the network data buffer. If a handshake has not been started yet, it will automatically be started.
				 * @param src 
				 * @param dst 
				 */
				public wrap(src: java.nio.ByteBuffer, dst: java.nio.ByteBuffer): javax.net.ssl.SSLEngineResult;
				/**
				 * Returns a new SSLParameters based on this SSLSocket's current cipher suites, protocols, and client authentication settings.
				 */
				public getSSLParameters(): javax.net.ssl.SSLParameters;
				/**
				 * Sets various SSL handshake parameters based on the SSLParameter argument. Specifically, sets the SSLEngine's enabled cipher suites if the parameter's cipher suites are non-null. Similarly sets the enabled protocols. If the parameters specify the want or need for client authentication, those requirements are set on the SSLEngine, otherwise both are set to false. 1.6
				 */
				public setSSLParameters(p: javax.net.ssl.SSLParameters): void;
			}
			/**
			 * The extension of Socket providing secure protocols like SSL (Secure Sockets Layer) or TLS (Transport Layer Security).
			 */
			export class SSLSocket extends java.net.Socket {
				static class: java.lang.Class<javax.net.ssl.SSLSocket>;
				/**
				 * Unsupported for SSL because reading from an SSL socket may require writing to the network.
				 */
				public shutdownInput(): void;
				/**
				 * Unsupported for SSL because writing to an SSL socket may require reading from the network.
				 */
				public shutdownOutput(): void;
				/**
				 * Returns the names of the supported cipher suites.
				 */
				public getSupportedCipherSuites(): native.Array<string>;
				/**
				 * Returns the names of the enabled cipher suites.
				 */
				public getEnabledCipherSuites(): native.Array<string>;
				/**
				 * Sets the names of the cipher suites to be enabled. Only cipher suites returned by #getSupportedCipherSuites() are allowed.
				 * @param suites 
				 */
				public setEnabledCipherSuites(suites: native.Array<string>): void;
				/**
				 * Returns the names of the supported protocols.
				 */
				public getSupportedProtocols(): native.Array<string>;
				/**
				 * Returns the names of the enabled protocols.
				 */
				public getEnabledProtocols(): native.Array<string>;
				/**
				 * Sets the names of the protocols to be enabled. Only protocols returned by #getSupportedProtocols() are allowed.
				 * @param protocols 
				 */
				public setEnabledProtocols(protocols: native.Array<string>): void;
				/**
				 * Returns the SSLSession for this connection. If necessary, a handshake will be initiated, in which case this method will block until the handshake has been established. If the handshake fails, an invalid session object will be returned.
				 */
				public getSession(): javax.net.ssl.ISSLSession;
				/**
				 * Registers the specified listener to receive notification on completion of a handshake on this connection.
				 * @param listener 
				 */
				public addHandshakeCompletedListener(listener: javax.net.ssl.IHandshakeCompletedListener): void;
				/**
				 * Removes the specified handshake completion listener.
				 * @param listener 
				 */
				public removeHandshakeCompletedListener(listener: javax.net.ssl.IHandshakeCompletedListener): void;
				/**
				 * Starts a new SSL handshake on this connection.
				 */
				public startHandshake(): void;
				/**
				 * Sets whether this connection should act in client mode when handshaking.
				 * @param mode 
				 */
				public setUseClientMode(mode: boolean): void;
				/**
				 * Returns true if this connection will act in client mode when handshaking.
				 */
				public getUseClientMode(): boolean;
				/**
				 * Sets whether the server should require client authentication. This does not apply to sockets in #getUseClientMode() client mode. Client authentication is one of the following: <ul> <li>authentication required</li> <li>authentication requested</li> <li>no authentication needed</li> </ul> This method overrides the setting of #setWantClientAuth(boolean).
				 */
				public setNeedClientAuth(need: boolean): void;
				/**
				 * Sets whether the server should request client authentication. Unlike #setNeedClientAuth this won't stop the negotiation if the client doesn't authenticate. This does not apply to sockets in #getUseClientMode() client mode.The client authentication is one of: <ul> <li>authentication required</li> <li>authentication requested</li> <li>no authentication needed</li> </ul> This method overrides the setting of #setNeedClientAuth(boolean).
				 */
				public setWantClientAuth(want: boolean): void;
				/**
				 * Returns true if the server socket should require client authentication. This does not apply to sockets in #getUseClientMode() client mode.
				 */
				public getNeedClientAuth(): boolean;
				/**
				 * Returns true if the server should request client authentication. This does not apply to sockets in #getUseClientMode() client mode.
				 */
				public getWantClientAuth(): boolean;
				/**
				 * Sets whether new SSL sessions may be created by this socket or if existing sessions must be reused. If flag is false and there are no sessions to resume, handshaking will fail.
				 * @param flag {@code true} if new sessions may be created.
				 */
				public setEnableSessionCreation(flag: boolean): void;
				/**
				 * Returns whether new SSL sessions may be created by this socket or if existing sessions must be reused.
				 */
				public getEnableSessionCreation(): boolean;
				/**
				 * Returns a new SSLParameters based on this SSLSocket's current cipher suites, protocols, and client authentication settings.
				 */
				public getSSLParameters(): javax.net.ssl.SSLParameters;
				/**
				 * Sets various SSL handshake parameters based on the SSLParameter argument. Specifically, sets the SSLSocket's enabled cipher suites if the parameter's cipher suites are non-null. Similarly sets the enabled protocols. If the parameters specify the want or need for client authentication, those requirements are set on the SSLSocket, otherwise both are set to false. 1.6
				 */
				public setSSLParameters(p: javax.net.ssl.SSLParameters): void;
			}
			/**
			 * Certification path parameters to provide to certification path based TrustManager.
			 */
			export class CertPathTrustManagerParameters extends java.lang.Object implements javax.net.ssl.IManagerFactoryParameters {
				/**
				 * Creates a new CertPathTrustManagerParameters with the specified certification path parameters.
				 * @param parameters 
				 */
				constructor(parameters: java.security.cert.ICertPathParameters);
				static class: java.lang.Class<javax.net.ssl.CertPathTrustManagerParameters>;
				/**
				 * Returns a copy of the certification path parameters.
				 */
				public getParameters(): java.security.cert.ICertPathParameters;
			}
			/**
			 * The listener to be implemented to receive event notifications on completion of SSL handshake on an SSL connection.
			 */
			interface IHandshakeCompletedListener extends java.util.IEventListener {
				/**
				 * The callback method that is invoked when a SSL handshake is completed.
				 * @param event 
				 */
				handshakeCompleted(event: javax.net.ssl.HandshakeCompletedEvent): void;
			}
			/**
			 * The marker interface for JSSE trust managers. The purpose is to group trust managers. The responsibility a trust manager is to handle the trust data used to make trust decisions for deciding whether credentials of a peer should be accepted, TrustManagerFactory
			 */
			interface ITrustManager {
			}
			/**
			 * The interface representing an SSL session.
			 */
			interface ISSLSession {
				/**
				 * Returns the maximum size that an application buffer can be for this session.
				 */
				getApplicationBufferSize(): number;
				/**
				 * Returns the name of the cipher suite used in this session.
				 */
				getCipherSuite(): string;
				/**
				 * Returns the time this session was created, in milliseconds since midnight January 1st 1970 UTC.
				 */
				getCreationTime(): any;
				/**
				 * Returns this sessions identifier.
				 */
				getId(): native.Array<number>;
				/**
				 * Returns the time this session was last accessed, in milliseconds since midnight January 1st 1970 UTC.
				 */
				getLastAccessedTime(): any;
				/**
				 * Returns the list of certificates that were used to identify the local side to the peer during the handshake.
				 */
				getLocalCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Returns the principal used to identify the local side to the peer during the handshake.
				 */
				getLocalPrincipal(): java.security.IPrincipal;
				/**
				 * Returns the maximum size that a network buffer can be for this session.
				 */
				getPacketBufferSize(): number;
				/**
				 * Returns the list of certificates the peer used to identify itself during the handshake.
				 */
				getPeerCertificateChain(): native.Array<javax.security.cert.X509Certificate>;
				/**
				 * Returns the list of certificates the peer used to identify itself during the handshake.
				 */
				getPeerCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Returns the host name of the peer of this session. The host name is not authenticated.
				 */
				getPeerHost(): string;
				/**
				 * Returns the port number of the peer of this session. The port number is not authenticated.
				 */
				getPeerPort(): number;
				/**
				 * Returns the principal identifying the peer during the handshake.
				 */
				getPeerPrincipal(): java.security.IPrincipal;
				/**
				 * Returns the protocol name that is used for all connections in this session.
				 */
				getProtocol(): string;
				/**
				 * Returns the context of this session, or null if no context is available.
				 */
				getSessionContext(): javax.net.ssl.ISSLSessionContext;
				/**
				 * Returns the object bound to the specified name in this session's application layer data.
				 * @param name 
				 */
				getValue(name: string): any;
				/**
				 * Returns the list of the object names bound to this session's application layer data..
				 */
				getValueNames(): native.Array<string>;
				/**
				 * Invalidates this session.
				 */
				invalidate(): void;
				/**
				 * Returns whether this session is valid.
				 */
				isValid(): boolean;
				/**
				 * Binds the specified object under the specified name in this session's application layer data.
				 * @param name 
				 * @param value 
				 */
				putValue(name: string, value: any): void;
				/**
				 * Removes the binding for the specified name in this session's application layer data. If the existing binding implements the SSLSessionBindingListener interface the object will be notified.
				 * @param name 
				 */
				removeValue(name: string): void;
			}
			/**
			 * The abstract extension for the X509KeyManager interface.
			 */
			export class X509ExtendedKeyManager extends java.lang.Object implements javax.net.ssl.IX509KeyManager {
				static class: java.lang.Class<javax.net.ssl.X509ExtendedKeyManager>;
				/**
				 * Chooses an alias for the client side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param engine 
				 */
				public chooseEngineClientAlias(keyType: native.Array<string>, issuers: native.Array<java.security.IPrincipal>, engine: javax.net.ssl.SSLEngine): string;
				/**
				 * Chooses an alias for the server side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param engine 
				 */
				public chooseEngineServerAlias(keyType: string, issuers: native.Array<java.security.IPrincipal>, engine: javax.net.ssl.SSLEngine): string;
				/**
				 * Chooses an alias for the client side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param socket 
				 */
				chooseClientAlias(keyType: native.Array<string>, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
				/**
				 * Chooses an alias for the server side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param socket 
				 */
				chooseServerAlias(keyType: string, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
				/**
				 * Returns the certificate chain for the specified alias.
				 * @param alias 
				 */
				getCertificateChain(alias: string): native.Array<java.security.cert.X509Certificate>;
				/**
				 * Returns the client aliases for the specified public key type and list of certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 */
				getClientAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
				/**
				 * Returns the server aliases for the specified public key type and list of certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 */
				getServerAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
				/**
				 * Returns the private key for the specified alias.
				 * @param alias 
				 */
				getPrivateKey(alias: string): java.security.IPrivateKey;
			}
			/**
			 * The exception that is thrown when an invalid SSL key is encountered.
			 */
			export class SSLKeyException extends javax.net.ssl.SSLException {
				/**
				 * Creates a new SSLKeyException with the specified message.
				 * @param reason 
				 */
				constructor(reason: string);
				static class: java.lang.Class<javax.net.ssl.SSLKeyException>;
			}
			/**
			 * The base class for all SSL related exceptions.
			 */
			export class SSLException extends java.io.IOException {
				/**
				 * Creates a new SSLException with the specified reason.
				 * @param reason 
				 */
				constructor(reason: string);
				/**
				 * Creates a new SSLException with the specified message and cause.
				 * @param message 
				 * @param cause 
				 */
				constructor(message: string, cause: java.lang.Throwable);
				/**
				 * Creates a new SSLException with the specified cause.
				 * @param cause 
				 */
				constructor(cause: java.lang.Throwable);
				static class: java.lang.Class<javax.net.ssl.SSLException>;
			}
			/**
			 * The exception that is thrown when a handshake could not be completed successfully.
			 */
			export class SSLHandshakeException extends javax.net.ssl.SSLException {
				/**
				 * Constructs a new instance with the given detail message.
				 */
				constructor(reason: string);
				static class: java.lang.Class<javax.net.ssl.SSLHandshakeException>;
			}
			/**
			 * The exception that is thrown when an error in the operation of the SSL protocol is encountered.
			 */
			export class SSLProtocolException extends javax.net.ssl.SSLException {
				/**
				 * Creates a new SSLProtocolException with the specified message.
				 * @param reason 
				 */
				constructor(reason: string);
				static class: java.lang.Class<javax.net.ssl.SSLProtocolException>;
			}
			/**
			 * SSL handshake parameters that include protocols, cipher suites, and client authentication requirements. 1.6
			 */
			export class SSLParameters extends java.lang.Object {
				/**
				 * The default SSLParameters constructor. Cipher suites and protocols are initialized to null and client authentication options are initialized to false.
				 */
				constructor();
				/**
				 * A SSLParameters constructor that allows the values for the initial cipher suites array to be provided. Other values default as specified in #SSLParameters().
				 * @param cipherSuites An array of cipherSuites that is cloned for
				 */
				constructor(cipherSuites: native.Array<string>);
				/**
				 * A SSLParameters constructor that allows the values for initial cipher suites and protocols arrays to be provided. Other values default as specified in #SSLParameters().
				 * @param cipherSuites An array of cipher names that is cloned for
				 * @param protocols An array of protocol names that is cloned for
				 */
				constructor(cipherSuites: native.Array<string>, protocols: native.Array<string>);
				static class: java.lang.Class<javax.net.ssl.SSLParameters>;
				/**
				 * Returns a copy of the cipher suites, or null if none have been specified.
				 */
				public getCipherSuites(): native.Array<string>;
				/**
				 * Sets the cipher suites to a copy of the input, or null
				 */
				public setCipherSuites(cipherSuites: native.Array<string>): void;
				/**
				 * Returns a copy of the protocols, or null if none have been specified.
				 */
				public getProtocols(): native.Array<string>;
				/**
				 * Sets the protocols to a copy of the input, or null
				 */
				public setProtocols(protocols: native.Array<string>): void;
				/**
				 * Returns true if a server requires authentication from a client during handshaking. If this returns true, #getWantClientAuth will return false.
				 */
				public getNeedClientAuth(): boolean;
				/**
				 * Sets whether or not to a server needs client authentication. After calling this, #getWantClientAuth() will return false.
				 */
				public setNeedClientAuth(needClientAuth: boolean): void;
				/**
				 * Returns true if a server optionally wants to authenticate a client during handshaking. If this returns true, #getNeedClientAuth will return false.
				 */
				public getWantClientAuth(): boolean;
				/**
				 * Sets whether or not to a server wants client authentication. After calling this, #getNeedClientAuth() will return false.
				 */
				public setWantClientAuth(wantClientAuth: boolean): void;
			}
			/**
			 * The event object encapsulating the information about a completed SSL handshake on a SSL connection.
			 */
			export class HandshakeCompletedEvent extends java.util.EventObject {
				/**
				 * Creates a new HandshakeCompletedEvent with the specified SSL socket and SSL session.
				 * @param sock 
				 * @param s 
				 */
				constructor(sock: javax.net.ssl.SSLSocket, s: javax.net.ssl.ISSLSession);
				static class: java.lang.Class<javax.net.ssl.HandshakeCompletedEvent>;
				/**
				 * Returns the SSL session associated with this event.
				 */
				public getSession(): javax.net.ssl.ISSLSession;
				/**
				 * Returns the name of the cipher suite negotiated during this handshake.
				 */
				public getCipherSuite(): string;
				/**
				 * Returns the list of local certificates used during the handshake. These certificates were sent to the peer.
				 */
				public getLocalCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Return the list of certificates identifying the peer during the handshake.
				 */
				public getPeerCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Returns the list of certificates identifying the peer. The peer's identity certificate is followed by the validated certificate authority certificates.
				 */
				public getPeerCertificateChain(): native.Array<javax.security.cert.X509Certificate>;
				/**
				 * Returns the Principal identifying the peer.
				 */
				public getPeerPrincipal(): java.security.IPrincipal;
				/**
				 * Returns the Principal used to identify during the handshake.
				 */
				public getLocalPrincipal(): java.security.IPrincipal;
				/**
				 * Returns the SSL socket that produced this event.
				 */
				public getSocket(): javax.net.ssl.SSLSocket;
			}
			/**
			 * The <i>Service Provider Interface</i> (SPI) for the SSLContext class.
			 */
			export class SSLContextSpi extends java.lang.Object {
				/**
				 * Creates a new SSLContextSpi instance.
				 */
				constructor();
				static class: java.lang.Class<javax.net.ssl.SSLContextSpi>;
				/**
				 * Initializes this SSLContext instance. All of the arguments are optional, and the security providers will be searched for the required implementations of the needed algorithms.
				 * @param km 
				 * @param tm 
				 * @param sr 
				 */
				protected engineInit(km: native.Array<javax.net.ssl.IKeyManager>, tm: native.Array<javax.net.ssl.ITrustManager>, sr: java.security.SecureRandom): void;
				/**
				 * Returns a socket factory for this instance.
				 */
				protected engineGetSocketFactory(): javax.net.ssl.SSLSocketFactory;
				/**
				 * Returns a server socket factory for this instance.
				 */
				protected engineGetServerSocketFactory(): javax.net.ssl.SSLServerSocketFactory;
				/**
				 * Creates an SSLEngine instance from this context with the specified hostname and port.
				 * @param host 
				 * @param port 
				 */
				protected engineCreateSSLEngine(host: string, port: number): javax.net.ssl.SSLEngine;
				/**
				 * Creates an SSLEngine instance from this context.
				 */
				protected engineCreateSSLEngine(): javax.net.ssl.SSLEngine;
				/**
				 * Returns the SSL session context that encapsulates the set of SSL sessions that can be used for the server side of the SSL handshake.
				 */
				protected engineGetServerSessionContext(): javax.net.ssl.ISSLSessionContext;
				/**
				 * Returns the SSL session context that encapsulates the set of SSL sessions that can be used for the client side of the SSL handshake.
				 */
				protected engineGetClientSessionContext(): javax.net.ssl.ISSLSessionContext;
				/**
				 * Returns a new SSLParameters instance that includes the default SSL handshake parameters values including cipher suites, protocols, and client authentication.
				 */
				protected engineGetDefaultSSLParameters(): javax.net.ssl.SSLParameters;
				/**
				 * Returns a new SSLParameters instance that includes all supported cipher suites and protocols.
				 */
				protected engineGetSupportedSSLParameters(): javax.net.ssl.SSLParameters;
			}
			/**
			 * A Key Manager for X509 certificate-based key pairs.
			 */
			export class X509KeyManager implements javax.net.ssl.IKeyManager, javax.net.ssl.IX509KeyManager {
				constructor(implementation: javax.net.ssl.IX509KeyManager);
				/**
				 * Chooses an alias for the client side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param socket 
				 */
				public chooseClientAlias(keyType: native.Array<string>, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
				/**
				 * Chooses an alias for the server side of an SSL connection to authenticate it with the specified public key type and certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 * @param socket 
				 */
				public chooseServerAlias(keyType: string, issuers: native.Array<java.security.IPrincipal>, socket: java.net.Socket): string;
				/**
				 * Returns the certificate chain for the specified alias.
				 * @param alias 
				 */
				public getCertificateChain(alias: string): native.Array<java.security.cert.X509Certificate>;
				/**
				 * Returns the client aliases for the specified public key type and list of certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 */
				public getClientAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
				/**
				 * Returns the server aliases for the specified public key type and list of certificate issuers.
				 * @param keyType 
				 * @param issuers 
				 */
				public getServerAliases(keyType: string, issuers: native.Array<java.security.IPrincipal>): native.Array<string>;
				/**
				 * Returns the private key for the specified alias.
				 * @param alias 
				 */
				public getPrivateKey(alias: string): java.security.IPrivateKey;
			}
			/**
			 * The factory for SSL server sockets.
			 */
			export class SSLServerSocketFactory extends javax.net.ServerSocketFactory {
				static class: java.lang.Class<javax.net.ssl.SSLServerSocketFactory>;
				/**
				 * Returns the default SSLServerSocketFactory instance. The default implementation is defined by the security property "ssl.ServerSocketFactory.provider".
				 */
				public static getDefault(): javax.net.ServerSocketFactory;
				/**
				 * Returns the names of the cipher suites that are enabled by default.
				 */
				public getDefaultCipherSuites(): native.Array<string>;
				/**
				 * Returns the list of supported cipher suites that could be enabled for an SSL connection created by this factory.
				 */
				public getSupportedCipherSuites(): native.Array<string>;
			}
			/**
			 * The interface to be implemented by any object that requires notification when data objects are bound to (or unbound from) an SSLSession.
			 */
			export class SSLSessionBindingListener implements java.util.IEventListener, javax.net.ssl.ISSLSessionBindingListener {
				constructor(implementation: javax.net.ssl.ISSLSessionBindingListener);
				/**
				 * Notifies this listener when a value is bound to an SSLSession.
				 * @param event 
				 */
				public valueBound(event: javax.net.ssl.SSLSessionBindingEvent): void;
				/**
				 * Notifies this listener when a value is unbound from an SSLSession.
				 * @param event 
				 */
				public valueUnbound(event: javax.net.ssl.SSLSessionBindingEvent): void;
			}
			/**
			 * The abstract factory implementation to create SSLSockets.
			 */
			export class SSLSocketFactory extends javax.net.SocketFactory {
				/**
				 * Creates a new SSLSocketFactory.
				 */
				constructor();
				static class: java.lang.Class<javax.net.ssl.SSLSocketFactory>;
				/**
				 * Returns the default SSLSocketFactory instance. The default is defined by the security property 'ssl.SocketFactory.provider'.
				 */
				public static getDefault(): javax.net.SocketFactory;
				/**
				 * Returns the names of the cipher suites that are enabled by default.
				 */
				public getDefaultCipherSuites(): native.Array<string>;
				/**
				 * Returns the names of the cipher suites that are supported and could be enabled for an SSL connection.
				 */
				public getSupportedCipherSuites(): native.Array<string>;
				/**
				 * Creates an SSLSocket over the specified socket that is connected to the specified host at the specified port.
				 * @param s 
				 * @param host 
				 * @param port 
				 * @param autoClose 
				 */
				public createSocket(s: java.net.Socket, host: string, port: number, autoClose: boolean): java.net.Socket;
				/**
				 * Creates a new socket which is not connected to any remote host. This method has to be overridden by a subclass otherwise a SocketException is thrown.
				 */
				createSocket(): java.net.Socket;
				/**
				 * Creates a new socket which is connected to the remote host specified by the parameters host and port. The socket is bound to any available local address and port.
				 * @param host 
				 * @param port 
				 */
				createSocket(host: string, port: number): java.net.Socket;
				/**
				 * Creates a new socket which is connected to the remote host specified by the parameters host and port. The socket is bound to the local network interface specified by the InetAddress localHost on port localPort.
				 * @param host 
				 * @param port 
				 * @param localHost 
				 * @param localPort 
				 */
				createSocket(host: string, port: number, localHost: java.net.InetAddress, localPort: number): java.net.Socket;
				/**
				 * Creates a new socket which is connected to the remote host specified by the InetAddress host. The socket is bound to any available local address and port.
				 * @param host 
				 * @param port 
				 */
				createSocket(host: java.net.InetAddress, port: number): java.net.Socket;
				/**
				 * Creates a new socket which is connected to the remote host specified by the InetAddress address. The socket is bound to the local network interface specified by the InetAddress localHost on port localPort.
				 * @param address 
				 * @param port 
				 * @param localAddress 
				 * @param localPort 
				 */
				createSocket(address: java.net.InetAddress, port: number, localAddress: java.net.InetAddress, localPort: number): java.net.Socket;
			}
			/**
			 * This is the interface to implement in order to mark a class as a JSSE key managers so that key managers can be easily grouped. The key managers are responsible for handling the keys used to authenticate the local side to its peer,
			 */
			interface IKeyManager {
			}
			/**
			 * This is the interface to implement in order to mark a class as a JSSE key managers so that key managers can be easily grouped. The key managers are responsible for handling the keys used to authenticate the local side to its peer,
			 */
			export class KeyManager implements javax.net.ssl.IKeyManager {
				constructor(implementation: javax.net.ssl.IKeyManager);
			}
			/**
			 * A collection of SSLSessions.
			 */
			export class SSLSessionContext implements javax.net.ssl.ISSLSessionContext {
				constructor(implementation: javax.net.ssl.ISSLSessionContext);
				/**
				 * Returns an iterable of all session identifiers in this session context.
				 */
				public getIds(): java.util.IEnumeration<native.Array<number>>;
				/**
				 * Returns the session for the specified session identifier.
				 * @param sessionId 
				 */
				public getSession(sessionId: native.Array<number>): javax.net.ssl.ISSLSession;
				/**
				 * Returns the size of the session cache for this session context.
				 */
				public getSessionCacheSize(): number;
				/**
				 * Returns the timeout for sessions in this session context. Sessions exceeding the timeout are invalidated.
				 */
				public getSessionTimeout(): number;
				/**
				 * Sets the size of the session cache for this session context.
				 * @param size 
				 */
				public setSessionCacheSize(size: number): void;
				/**
				 * Sets the timeout for sessions in this context. Sessions exceeding the timeout are invalidated.
				 * @param seconds 
				 */
				public setSessionTimeout(seconds: number): void;
			}
			/**
			 * The parameters for KeyManagers. The parameters are a list of KeyStore.Builders.
			 */
			export class KeyStoreBuilderParameters extends java.lang.Object implements javax.net.ssl.IManagerFactoryParameters {
				/**
				 * Creates a new KeyStoreBuilderParameters with the specified key store builder.
				 * @param builder 
				 */
				constructor(builder: java.security.KeyStore.Builder);
				/**
				 * Creates a new KeyStoreBuilderParameters with the specified list of KeyStore.Builders.
				 * @param parameters 
				 */
				constructor(parameters: java.util.IList<java.security.KeyStore.Builder>);
				static class: java.lang.Class<javax.net.ssl.KeyStoreBuilderParameters>;
				/**
				 * Returns the unmodifiable list of KeyStore.Builders associated with this parameters instance.
				 */
				public getParameters(): java.util.IList<java.security.KeyStore.Builder>;
			}
			/**
			 * A collection of SSLSessions.
			 */
			interface ISSLSessionContext {
				/**
				 * Returns an iterable of all session identifiers in this session context.
				 */
				getIds(): java.util.IEnumeration<native.Array<number>>;
				/**
				 * Returns the session for the specified session identifier.
				 * @param sessionId 
				 */
				getSession(sessionId: native.Array<number>): javax.net.ssl.ISSLSession;
				/**
				 * Returns the size of the session cache for this session context.
				 */
				getSessionCacheSize(): number;
				/**
				 * Returns the timeout for sessions in this session context. Sessions exceeding the timeout are invalidated.
				 */
				getSessionTimeout(): number;
				/**
				 * Sets the size of the session cache for this session context.
				 * @param size 
				 */
				setSessionCacheSize(size: number): void;
				/**
				 * Sets the timeout for sessions in this context. Sessions exceeding the timeout are invalidated.
				 * @param seconds 
				 */
				setSessionTimeout(seconds: number): void;
			}
			/**
			 * The exception that is thrown when the identity of a peer has not beed verified.
			 */
			export class SSLPeerUnverifiedException extends javax.net.ssl.SSLException {
				/**
				 * Creates a new SSLPeerUnverifiedException with the specified message.
				 * @param reason 
				 */
				constructor(reason: string);
				static class: java.lang.Class<javax.net.ssl.SSLPeerUnverifiedException>;
			}
			/**
			 * The interface to be implemented by any object that requires notification when data objects are bound to (or unbound from) an SSLSession.
			 */
			interface ISSLSessionBindingListener extends java.util.IEventListener {
				/**
				 * Notifies this listener when a value is bound to an SSLSession.
				 * @param event 
				 */
				valueBound(event: javax.net.ssl.SSLSessionBindingEvent): void;
				/**
				 * Notifies this listener when a value is unbound from an SSLSession.
				 * @param event 
				 */
				valueUnbound(event: javax.net.ssl.SSLSessionBindingEvent): void;
			}
			/**
			 * The interface representing an SSL session.
			 */
			export class SSLSession implements javax.net.ssl.ISSLSession {
				constructor(implementation: javax.net.ssl.ISSLSession);
				/**
				 * Returns the maximum size that an application buffer can be for this session.
				 */
				public getApplicationBufferSize(): number;
				/**
				 * Returns the name of the cipher suite used in this session.
				 */
				public getCipherSuite(): string;
				/**
				 * Returns the time this session was created, in milliseconds since midnight January 1st 1970 UTC.
				 */
				public getCreationTime(): any;
				/**
				 * Returns this sessions identifier.
				 */
				public getId(): native.Array<number>;
				/**
				 * Returns the time this session was last accessed, in milliseconds since midnight January 1st 1970 UTC.
				 */
				public getLastAccessedTime(): any;
				/**
				 * Returns the list of certificates that were used to identify the local side to the peer during the handshake.
				 */
				public getLocalCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Returns the principal used to identify the local side to the peer during the handshake.
				 */
				public getLocalPrincipal(): java.security.IPrincipal;
				/**
				 * Returns the maximum size that a network buffer can be for this session.
				 */
				public getPacketBufferSize(): number;
				/**
				 * Returns the list of certificates the peer used to identify itself during the handshake.
				 */
				public getPeerCertificateChain(): native.Array<javax.security.cert.X509Certificate>;
				/**
				 * Returns the list of certificates the peer used to identify itself during the handshake.
				 */
				public getPeerCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Returns the host name of the peer of this session. The host name is not authenticated.
				 */
				public getPeerHost(): string;
				/**
				 * Returns the port number of the peer of this session. The port number is not authenticated.
				 */
				public getPeerPort(): number;
				/**
				 * Returns the principal identifying the peer during the handshake.
				 */
				public getPeerPrincipal(): java.security.IPrincipal;
				/**
				 * Returns the protocol name that is used for all connections in this session.
				 */
				public getProtocol(): string;
				/**
				 * Returns the context of this session, or null if no context is available.
				 */
				public getSessionContext(): javax.net.ssl.ISSLSessionContext;
				/**
				 * Returns the object bound to the specified name in this session's application layer data.
				 * @param name 
				 */
				public getValue(name: string): any;
				/**
				 * Returns the list of the object names bound to this session's application layer data..
				 */
				public getValueNames(): native.Array<string>;
				/**
				 * Invalidates this session.
				 */
				public invalidate(): void;
				/**
				 * Returns whether this session is valid.
				 */
				public isValid(): boolean;
				/**
				 * Binds the specified object under the specified name in this session's application layer data.
				 * @param name 
				 * @param value 
				 */
				public putValue(name: string, value: any): void;
				/**
				 * Removes the binding for the specified name in this session's application layer data. If the existing binding implements the SSLSessionBindingListener interface the object will be notified.
				 * @param name 
				 */
				public removeValue(name: string): void;
			}
			/**
			 * The public API for secure socket protocol implementations. It acts as factory for SSLSocketFactory's and SSLEngines.
			 */
			export class SSLContext extends java.lang.Object {
				static class: java.lang.Class<javax.net.ssl.SSLContext>;
				/**
				 * Returns the default SSLContext.
				 */
				public static getDefault(): javax.net.ssl.SSLContext;
				/**
				 * Sets the default SSLContext instance as returned by #getDefault() to a non-null initialized value.
				 */
				public static setDefault(sslContext: javax.net.ssl.SSLContext): void;
				/**
				 * Creates a new SSLContext instance for the specified protocol.
				 * @param protocol 
				 */
				public static getInstance(protocol: string): javax.net.ssl.SSLContext;
				/**
				 * Creates a new SSLContext instance for the specified protocol from the specified provider.
				 * @param protocol 
				 * @param provider 
				 */
				public static getInstance(protocol: string, provider: string): javax.net.ssl.SSLContext;
				/**
				 * Creates a new SSLContext instance for the specified protocol from the specified provider.
				 * @param protocol 
				 * @param provider 
				 */
				public static getInstance(protocol: string, provider: java.security.Provider): javax.net.ssl.SSLContext;
				/**
				 * Returns the name of the secure socket protocol of this instance.
				 */
				public getProtocol(): string;
				/**
				 * Returns the provider of this SSLContext instance.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Initializes this SSLContext instance. All of the arguments are optional, and the security providers will be searched for the required implementations of the needed algorithms.
				 * @param km 
				 * @param tm 
				 * @param sr 
				 */
				public init(km: native.Array<javax.net.ssl.IKeyManager>, tm: native.Array<javax.net.ssl.ITrustManager>, sr: java.security.SecureRandom): void;
				/**
				 * Returns a socket factory for this instance.
				 */
				public getSocketFactory(): javax.net.ssl.SSLSocketFactory;
				/**
				 * Returns a server socket factory for this instance.
				 */
				public getServerSocketFactory(): javax.net.ssl.SSLServerSocketFactory;
				/**
				 * Creates an SSLEngine instance from this context.
				 */
				public createSSLEngine(): javax.net.ssl.SSLEngine;
				/**
				 * Creates an SSLEngine instance from this context with the specified hostname and port.
				 * @param peerHost 
				 * @param peerPort 
				 */
				public createSSLEngine(peerHost: string, peerPort: number): javax.net.ssl.SSLEngine;
				/**
				 * Returns the SSL session context that encapsulates the set of SSL sessions that can be used for handshake of server-side SSL sockets.
				 */
				public getServerSessionContext(): javax.net.ssl.ISSLSessionContext;
				/**
				 * Returns the SSL session context that encapsulates the set of SSL sessions that can be used for handshake of client-side SSL sockets.
				 */
				public getClientSessionContext(): javax.net.ssl.ISSLSessionContext;
				/**
				 * Returns the default SSL handshake parameters for SSLSockets created by this SSLContext.
				 */
				public getDefaultSSLParameters(): javax.net.ssl.SSLParameters;
				/**
				 * Returns SSL handshake parameters for SSLSockets that includes all supported cipher suites and protocols.
				 */
				public getSupportedSSLParameters(): javax.net.ssl.SSLParameters;
			}
			/**
			 * Legacy security code; do not use.
			 */
			export class SSLPermission extends java.security.BasicPermission {
				constructor(name: string);
				constructor(name: string, actions: string);
				static class: java.lang.Class<javax.net.ssl.SSLPermission>;
				public getActions(): string;
				public implies(permission: java.security.Permission): boolean;
			}
			/**
			 * The <i>Service Provider Interface</i> (SPI) for the KeyManagerFactory class.
			 */
			export class KeyManagerFactorySpi extends java.lang.Object {
				/**
				 * Creates a new KeyManagerFactorySpi instance.
				 */
				constructor();
				static class: java.lang.Class<javax.net.ssl.KeyManagerFactorySpi>;
				/**
				 * Initializes this instance with the specified key store and password.
				 * @param ks 
				 * @param password 
				 */
				protected engineInit(ks: java.security.KeyStore, password: native.Array<string>): void;
				/**
				 * Initializes this instance with the specified factory parameters.
				 * @param spec 
				 */
				protected engineInit(spec: javax.net.ssl.IManagerFactoryParameters): void;
				/**
				 * Returns a list of key managers, one instance for each type of key in the key store.
				 */
				protected engineGetKeyManagers(): native.Array<javax.net.ssl.IKeyManager>;
			}
			/**
			 * The extension of ServerSocket which provides secure server sockets based on protocols like SSL, TLS, or others.
			 */
			export class SSLServerSocket extends java.net.ServerSocket {
				static class: java.lang.Class<javax.net.ssl.SSLServerSocket>;
				/**
				 * Returns the names of the enabled cipher suites to be used for new connections.
				 */
				public getEnabledCipherSuites(): native.Array<string>;
				/**
				 * Sets the names of the cipher suites to be enabled for new connections. Only cipher suites returned by #getSupportedCipherSuites() are allowed.
				 * @param suites 
				 */
				public setEnabledCipherSuites(suites: native.Array<string>): void;
				/**
				 * Returns the names of the supported cipher suites.
				 */
				public getSupportedCipherSuites(): native.Array<string>;
				/**
				 * Returns the names of the supported protocols.
				 */
				public getSupportedProtocols(): native.Array<string>;
				/**
				 * Returns the names of the enabled protocols to be used for new connections.
				 */
				public getEnabledProtocols(): native.Array<string>;
				/**
				 * Sets the names of the protocols to be enabled for new connections. Only protocols returned by #getSupportedProtocols() are allowed.
				 * @param protocols 
				 */
				public setEnabledProtocols(protocols: native.Array<string>): void;
				/**
				 * Sets whether server-mode connections will be configured to require client authentication. The client authentication is one of the following: <ul> <li>authentication required</li> <li>authentication requested</li> <li>no authentication needed</li> </ul> This method overrides the setting of #setWantClientAuth(boolean).
				 * @param need 
				 */
				public setNeedClientAuth(need: boolean): void;
				/**
				 * Returns whether server-mode connections will be configured to require client authentication.
				 */
				public getNeedClientAuth(): boolean;
				/**
				 * Sets whether server-mode connections will be configured to request client authentication. The client authentication is one of the following: <ul> <li>authentication required</li> <li>authentication requested</li> <li>no authentication needed</li> </ul> This method overrides the setting of #setNeedClientAuth(boolean).
				 * @param want 
				 */
				public setWantClientAuth(want: boolean): void;
				/**
				 * Returns whether server-mode connections will be configured to request client authentication.
				 */
				public getWantClientAuth(): boolean;
				/**
				 * Sets whether new connections should act in client mode when handshaking.
				 * @param mode 
				 */
				public setUseClientMode(mode: boolean): void;
				/**
				 * Returns whether new connection will act in client mode when handshaking.
				 */
				public getUseClientMode(): boolean;
				/**
				 * Sets whether new SSL sessions may be established for new connections.
				 * @param flag 
				 */
				public setEnableSessionCreation(flag: boolean): void;
				/**
				 * Returns whether new SSL sessions may be established for new connections.
				 */
				public getEnableSessionCreation(): boolean;
			}
			/**
			 * The public API for KeyManagerFactory implementations.
			 */
			export class KeyManagerFactory extends java.lang.Object {
				static class: java.lang.Class<javax.net.ssl.KeyManagerFactory>;
				/**
				 * Returns the default key manager factory algorithm name.
				 */
				public static getDefaultAlgorithm(): string;
				/**
				 * Creates a new KeyManagerFactory instance for the specified key management algorithm.
				 * @param algorithm 
				 */
				public static getInstance(algorithm: string): javax.net.ssl.KeyManagerFactory;
				/**
				 * Creates a new KeyManagerFactory instance for the specified key management algorithm from the specified provider.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: string): javax.net.ssl.KeyManagerFactory;
				/**
				 * Creates a new KeyManagerFactory instance for the specified key management algorithm from the specified provider.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: java.security.Provider): javax.net.ssl.KeyManagerFactory;
				/**
				 * Returns the name of the key management algorithm.
				 */
				public getAlgorithm(): string;
				/**
				 * Returns the provider for this KeyManagerFactory instance.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Initializes this instance with the specified key store and password.
				 * @param ks 
				 * @param password 
				 */
				public init(ks: java.security.KeyStore, password: native.Array<string>): void;
				/**
				 * Initializes this instance with the specified factory parameters.
				 * @param spec 
				 */
				public init(spec: javax.net.ssl.IManagerFactoryParameters): void;
				/**
				 * Returns a list of key managers, one instance for each type of key in the key store.
				 */
				public getKeyManagers(): native.Array<javax.net.ssl.IKeyManager>;
			}
			/**
			 * The marker interface for JSSE trust managers. The purpose is to group trust managers. The responsibility a trust manager is to handle the trust data used to make trust decisions for deciding whether credentials of a peer should be accepted, TrustManagerFactory
			 */
			export class TrustManager implements javax.net.ssl.ITrustManager {
				constructor(implementation: javax.net.ssl.ITrustManager);
			}
			/**
			 * The interface to be used to provide hostname verification functionality.
			 */
			export class HostnameVerifier implements javax.net.ssl.IHostnameVerifier {
				constructor(implementation: javax.net.ssl.IHostnameVerifier);
				/**
				 * Verifies that the specified hostname is allowed within the specified SSL session.
				 * @param hostname 
				 * @param session 
				 */
				public verify(hostname: string, session: javax.net.ssl.ISSLSession): boolean;
			}
			/**
			 * The marker interface for key manager factory parameters. Its purpose is to group key manager factory parameters objects.
			 */
			interface IManagerFactoryParameters {
			}
			/**
			 * The listener to be implemented to receive event notifications on completion of SSL handshake on an SSL connection.
			 */
			export class HandshakeCompletedListener implements java.util.IEventListener, javax.net.ssl.IHandshakeCompletedListener {
				constructor(implementation: javax.net.ssl.IHandshakeCompletedListener);
				/**
				 * The callback method that is invoked when a SSL handshake is completed.
				 * @param event 
				 */
				public handshakeCompleted(event: javax.net.ssl.HandshakeCompletedEvent): void;
			}
			/**
			 * The result object describing the state of the SSLEngine produced by the wrap() and unwrap() operations.
			 */
			export class SSLEngineResult extends java.lang.Object {
				/**
				 * Creates a new SSLEngineResult instance with the specified state values.
				 * @param status 
				 * @param handshakeStatus 
				 * @param bytesConsumed 
				 * @param bytesProduced 
				 */
				constructor(status: javax.net.ssl.SSLEngineResult.Status, handshakeStatus: javax.net.ssl.SSLEngineResult.HandshakeStatus, bytesConsumed: number, bytesProduced: number);
				static class: java.lang.Class<javax.net.ssl.SSLEngineResult>;
				/**
				 * Returns the return value of the SSLEngine operation.
				 */
				public getStatus(): javax.net.ssl.SSLEngineResult.Status;
				/**
				 * Returns the status of the current handshake.
				 */
				public getHandshakeStatus(): javax.net.ssl.SSLEngineResult.HandshakeStatus;
				/**
				 * Returns the number of bytes retrieved from the source buffer(s).
				 */
				public bytesConsumed(): number;
				/**
				 * Returns the number of bytes transferred to the destination buffer(s).
				 */
				public bytesProduced(): number;
				public toString(): string;
			}
			export module SSLEngineResult {
				/**
				 * The enum describing the result of the SSLEngine operation.
				 */
				export enum Status {
					BUFFER_OVERFLOW,
					BUFFER_UNDERFLOW,
					CLOSED,
					OK
				}
				/**
				 * The enum describing the state of the current handshake.
				 */
				export enum HandshakeStatus {
					NOT_HANDSHAKING,
					FINISHED,
					NEED_TASK,
					NEED_WRAP,
					NEED_UNWRAP
				}
			}
			/**
			 * Default inoperative implementation of javax.net.ssl.SSLServerSocketFactory
			 */
			export class DefaultSSLServerSocketFactory extends javax.net.ssl.SSLServerSocketFactory {
				static class: java.lang.Class<javax.net.ssl.DefaultSSLServerSocketFactory>;
				public getDefaultCipherSuites(): native.Array<string>;
				public getSupportedCipherSuites(): native.Array<string>;
				public createServerSocket(port: number): java.net.ServerSocket;
				public createServerSocket(port: number, backlog: number): java.net.ServerSocket;
				public createServerSocket(port: number, backlog: number, iAddress: java.net.InetAddress): java.net.ServerSocket;
				/**
				 * Creates a new server socket which is not bound to any local address. This method has to be overridden by a subclass otherwise a SocketException is thrown.
				 */
				createServerSocket(): java.net.ServerSocket;
			}
			/**
			 * The event sent to an SSLSessionBindingListener when the listener object is bound (SSLSession#putValue(String, Object)) or unbound (SSLSession#removeValue(String)) to an SSLSession.
			 */
			export class SSLSessionBindingEvent extends java.util.EventObject {
				/**
				 * Creates a new SSLSessionBindingEvent for the specified session indicating a binding event for the specified name.
				 * @param session 
				 * @param name 
				 */
				constructor(session: javax.net.ssl.ISSLSession, name: string);
				static class: java.lang.Class<javax.net.ssl.SSLSessionBindingEvent>;
				/**
				 * Returns the name of the binding being added or removed.
				 */
				public getName(): string;
				/**
				 * Returns the session to which the binding is added or from which it is removed.
				 */
				public getSession(): javax.net.ssl.ISSLSession;
			}
			/**
			 * The trust manager for X509 certificates to be used to perform authentication for secure sockets.
			 */
			export class X509TrustManager implements javax.net.ssl.ITrustManager, javax.net.ssl.IX509TrustManager {
				constructor(implementation: javax.net.ssl.IX509TrustManager);
				/**
				 * Checks whether the specified certificate chain (partial or complete) can be validated and is trusted for client authentication for the specified authentication type.
				 * @param chain 
				 * @param authType 
				 */
				public checkClientTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
				/**
				 * Checks whether the specified certificate chain (partial or complete) can be validated and is trusted for server authentication for the specified key exchange algorithm.
				 * @param chain 
				 * @param authType 
				 */
				public checkServerTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
				/**
				 * Returns the list of certificate issuer authorities which are trusted for authentication of peers.
				 */
				public getAcceptedIssuers(): native.Array<java.security.cert.X509Certificate>;
			}
			/**
			 * The <i>Service Provider Interface</i> (SPI) for the TrustManagerFactory class.
			 */
			export class TrustManagerFactorySpi extends java.lang.Object {
				/**
				 * Creates a new TrustManagerFactorySpi instance.
				 */
				constructor();
				static class: java.lang.Class<javax.net.ssl.TrustManagerFactorySpi>;
				/**
				 * Initializes this factory instance with the specified keystore as source of certificate authorities and trust material.
				 * @param ks 
				 */
				protected engineInit(ks: java.security.KeyStore): void;
				/**
				 * Initializes this factory instance with the specified provider-specific parameters for a source of trust material.
				 * @param spec 
				 */
				protected engineInit(spec: javax.net.ssl.IManagerFactoryParameters): void;
				/**
				 * Returns the list of TrustManagers with one entry for each type of trust material.
				 */
				protected engineGetTrustManagers(): native.Array<javax.net.ssl.ITrustManager>;
			}
			/**
			 * The factory for TrustManagers based on KeyStore or provider specific implementation.
			 */
			export class TrustManagerFactory extends java.lang.Object {
				static class: java.lang.Class<javax.net.ssl.TrustManagerFactory>;
				/**
				 * Returns the default algorithm name for the TrustManagerFactory. The default algorithm name is specified by the security property 'ssl.TrustManagerFactory.algorithm'.
				 */
				public static getDefaultAlgorithm(): string;
				/**
				 * Creates a new TrustManagerFactory instance for the specified trust management algorithm.
				 * @param algorithm 
				 */
				public static getInstance(algorithm: string): javax.net.ssl.TrustManagerFactory;
				/**
				 * Creates a new TrustManagerFactory instance for the specified trust management algorithm from the specified provider.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: string): javax.net.ssl.TrustManagerFactory;
				/**
				 * Creates a new TrustManagerFactory instance for the specified trust management algorithm from the specified provider.
				 * @param algorithm 
				 * @param provider 
				 */
				public static getInstance(algorithm: string, provider: java.security.Provider): javax.net.ssl.TrustManagerFactory;
				/**
				 * Returns the name of this TrustManagerFactory algorithm implementation.
				 */
				public getAlgorithm(): string;
				/**
				 * Returns the provider for this TrustManagerFactory instance.
				 */
				public getProvider(): java.security.Provider;
				/**
				 * Initializes this factory instance with the specified keystore as source of certificate authorities and trust material.
				 * @param ks 
				 */
				public init(ks: java.security.KeyStore): void;
				/**
				 * Initializes this factory instance with the specified provider-specific parameters for a source of trust material.
				 * @param spec 
				 */
				public init(spec: javax.net.ssl.IManagerFactoryParameters): void;
				/**
				 * Returns the list of TrustManagers with one entry for each type of trust material.
				 */
				public getTrustManagers(): native.Array<javax.net.ssl.ITrustManager>;
			}
			/**
			 * The trust manager for X509 certificates to be used to perform authentication for secure sockets.
			 */
			interface IX509TrustManager extends javax.net.ssl.ITrustManager {
				/**
				 * Checks whether the specified certificate chain (partial or complete) can be validated and is trusted for client authentication for the specified authentication type.
				 * @param chain 
				 * @param authType 
				 */
				checkClientTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
				/**
				 * Checks whether the specified certificate chain (partial or complete) can be validated and is trusted for server authentication for the specified key exchange algorithm.
				 * @param chain 
				 * @param authType 
				 */
				checkServerTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
				/**
				 * Returns the list of certificate issuer authorities which are trusted for authentication of peers.
				 */
				getAcceptedIssuers(): native.Array<java.security.cert.X509Certificate>;
			}
			/**
			 * The marker interface for key manager factory parameters. Its purpose is to group key manager factory parameters objects.
			 */
			export class ManagerFactoryParameters implements javax.net.ssl.IManagerFactoryParameters {
				constructor(implementation: javax.net.ssl.IManagerFactoryParameters);
			}
			/**
			 * An HttpURLConnection for HTTPS (<a href="http://tools.ietf.org/html/rfc2818">RFC 2818</a>). A connected HttpsURLConnection allows access to the negotiated cipher suite, the server certificate chain, and the client certificate chain if any.
			 */
			export class HttpsURLConnection extends java.net.HttpURLConnection {
				static class: java.lang.Class<javax.net.ssl.HttpsURLConnection>;
				/**
				 * Sets the default hostname verifier to be used by new instances.
				 * @param v 
				 */
				public static setDefaultHostnameVerifier(v: javax.net.ssl.IHostnameVerifier): void;
				/**
				 * Returns the default hostname verifier.
				 */
				public static getDefaultHostnameVerifier(): javax.net.ssl.IHostnameVerifier;
				/**
				 * Sets the default SSL socket factory to be used by new instances.
				 * @param sf 
				 */
				public static setDefaultSSLSocketFactory(sf: javax.net.ssl.SSLSocketFactory): void;
				/**
				 * Returns the default SSL socket factory for new instances.
				 */
				public static getDefaultSSLSocketFactory(): javax.net.ssl.SSLSocketFactory;
				/**
				 * Returns the name of the cipher suite negotiated during the SSL handshake.
				 */
				public getCipherSuite(): string;
				/**
				 * Returns the list of local certificates used during the handshake. These certificates were sent to the peer.
				 */
				public getLocalCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Return the list of certificates identifying the peer during the handshake.
				 */
				public getServerCertificates(): native.Array<java.security.cert.Certificate>;
				/**
				 * Returns the Principal identifying the peer.
				 */
				public getPeerPrincipal(): java.security.IPrincipal;
				/**
				 * Returns the Principal used to identify the local host during the handshake.
				 */
				public getLocalPrincipal(): java.security.IPrincipal;
				/**
				 * Sets the hostname verifier for this instance.
				 * @param v 
				 */
				public setHostnameVerifier(v: javax.net.ssl.IHostnameVerifier): void;
				/**
				 * Returns the hostname verifier used by this instance.
				 */
				public getHostnameVerifier(): javax.net.ssl.IHostnameVerifier;
				/**
				 * Sets the SSL socket factory for this instance.
				 * @param sf 
				 */
				public setSSLSocketFactory(sf: javax.net.ssl.SSLSocketFactory): void;
				/**
				 * Returns the SSL socket factory used by this instance.
				 */
				public getSSLSocketFactory(): javax.net.ssl.SSLSocketFactory;
			}
		}
	}
	export module crypto {
		/**
		 * The <i>Service Provider Interface</i> (<b>SPI</b>) definition for the ExemptionMechanism class.
		 */
		export class ExemptionMechanismSpi extends java.lang.Object {
			/**
			 * Creates a new ExemptionMechanismSpi instance.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.ExemptionMechanismSpi>;
			/**
			 * Generates the result key blob for this exemption mechanism.
			 */
			protected engineGenExemptionBlob(): native.Array<number>;
			/**
			 * Generates the result key blob for this exemption mechanism and stores it into the output buffer at offset outputOffset.
			 * @param output 
			 * @param outputOffset 
			 */
			protected engineGenExemptionBlob(output: native.Array<number>, outputOffset: number): number;
			/**
			 * Returns the size in bytes for the output buffer needed to hold the output of the next #engineGenExemptionBlob call, given the specified inputLen (in bytes).
			 * @param inputLen 
			 */
			protected engineGetOutputSize(inputLen: number): number;
			/**
			 * Initializes this ExemptionMechanism instance with the specified key.
			 * @param key 
			 */
			protected engineInit(key: java.security.IKey): void;
			/**
			 * Initializes this ExemptionMechanism instance with the specified key and algorithm parameters.
			 * @param key 
			 * @param params 
			 */
			protected engineInit(key: java.security.IKey, params: java.security.AlgorithmParameters): void;
			/**
			 * Initializes this ExemptionMechanism instance with the specified key and algorithm parameters.
			 * @param key 
			 * @param params 
			 */
			protected engineInit(key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec): void;
		}
		/**
		 * This class wraps an output stream and a cipher so that write methods send the data through the cipher before writing them to the underlying output stream.
		 */
		export class CipherOutputStream extends java.io.FilterOutputStream {
			/**
			 * Creates a new CipherOutputStream instance for an OutputStream and a Cipher.
			 * @param os 
			 * @param c 
			 */
			constructor(os: java.io.OutputStream, c: javax.crypto.Cipher);
			static class: java.lang.Class<javax.crypto.CipherOutputStream>;
			/**
			 * Writes the single byte to this cipher output stream.
			 * @param b 
			 */
			public write(b: number): void;
			/**
			 * Writes the len bytes from buffer b starting at offset off to this cipher output stream.
			 * @param b 
			 * @param off 
			 * @param len 
			 */
			public write(b: native.Array<number>, off: number, len: number): void;
			/**
			 * Flushes this cipher output stream.
			 */
			public flush(): void;
			/**
			 * Close this cipher output stream.
			 */
			public close(): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * This class provides an identity cipher that does not transform the input data in any way. The <i>encrypted</i> data is identical to the <i>plain text</i>.
		 */
		export class NullCipher extends javax.crypto.Cipher {
			/**
			 * Creates a new NullCipher instance.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.NullCipher>;
		}
		/**
		 * A cryptographic secret (symmetric) key.
		 */
		interface ISecretKey extends java.security.IKey {
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			getEncoded(): native.Array<number>;
		}
		export module ISecretKey {
			/**
			 * The serialization version identifier.
			 */
			var serialVersionUID: number;
		}
		/**
		 * The exception, that is thrown when the data length provided to a block cipher does not match the block size of the cipher.
		 */
		export class IllegalBlockSizeException extends java.security.GeneralSecurityException {
			/**
			 * Creates a new IllegalBlockSizeException with the specified message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Creates a new IllegalBlockSizeException.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.IllegalBlockSizeException>;
		}
		/**
		 * The exception that is thrown when a padding mechanism is expected for the input data, but the input data does not have the proper padding bytes.
		 */
		export class BadPaddingException extends java.security.GeneralSecurityException {
			/**
			 * Creates a new instance of BadPaddingException with a message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Creates a new instance of BadPaddingException with no message.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.BadPaddingException>;
		}
		export module spec {
			/**
			 * The key specification for a <i>password based encryption</i> key.
			 */
			export class PBEKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new <code>PBEKeySpec</code> with the specified password.
				 * @param password 
				 */
				constructor(password: native.Array<string>);
				/**
				 * Creates a new <code>PBEKeySpec</code> with the specified password, salt, iteration count and the desired length of the derived key.
				 * @param password 
				 * @param salt 
				 * @param iterationCount 
				 * @param keyLength 
				 */
				constructor(password: native.Array<string>, salt: native.Array<number>, iterationCount: number, keyLength: number);
				/**
				 * Creates a new <code>PBEKeySpec</code> with the specified password, salt and iteration count.
				 * @param password 
				 * @param salt 
				 * @param iterationCount 
				 */
				constructor(password: native.Array<string>, salt: native.Array<number>, iterationCount: number);
				static class: java.lang.Class<javax.crypto.spec.PBEKeySpec>;
				/**
				 * Clears the password by overwriting it.
				 */
				public clearPassword(): void;
				/**
				 * Returns a copy of the password of this key specification.
				 */
				public getPassword(): native.Array<string>;
				/**
				 * Returns a copy of the salt of this key specification.
				 */
				public getSalt(): native.Array<number>;
				/**
				 * Returns the iteration count of this key specification.
				 */
				public getIterationCount(): number;
				/**
				 * Returns the desired key length of the derived key.
				 */
				public getKeyLength(): number;
			}
			/**
			 * The algorithm parameter specification for generating Diffie-Hellman parameters used in Diffie-Hellman key agreement.
			 */
			export class DHGenParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new <code>DHGenParameterSpec</code> instance with the specified parameters.
				 * @param primeSize 
				 * @param exponentSize 
				 */
				constructor(primeSize: number, exponentSize: number);
				static class: java.lang.Class<javax.crypto.spec.DHGenParameterSpec>;
				/**
				 * Returns the size of the <i>prime modulus</i> in bits.
				 */
				public getPrimeSize(): number;
				/**
				 * Returns the size of the <i>random exponent</i> in bits.
				 */
				public getExponentSize(): number;
			}
			/**
			 * The algorithm parameter specification for the Diffie-Hellman algorithm.
			 */
			export class DHParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new <code>DHParameterSpec</code> instance with the specified <i>prime modulus</i> and <i>base generator</i>.
				 * @param p 
				 * @param g 
				 */
				constructor(p: java.math.BigInteger, g: java.math.BigInteger);
				/**
				 * Creates a new <code>DHParameterSpec</code> instance with the specified <i>prime modulus</i>, <i>base generator</i> and size (in bits) of the <i>random exponent</i>.
				 * @param p 
				 * @param g 
				 * @param l 
				 */
				constructor(p: java.math.BigInteger, g: java.math.BigInteger, l: number);
				static class: java.lang.Class<javax.crypto.spec.DHParameterSpec>;
				/**
				 * Returns the <i>prime modulus</i> of this parameter specification.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns the <i>base generator</i> of this parameter specification.
				 */
				public getG(): java.math.BigInteger;
				/**
				 * Returns the size (in bits) of the <i>random exponent</i>.
				 */
				public getL(): number;
			}
			/**
			 * The source of the label <code>L</code> as specified in <a href="http://www.ietf.org/rfc/rfc3447.txt"> PKCS #1</a>.
			 */
			export class PSource extends java.lang.Object {
				static class: java.lang.Class<javax.crypto.spec.PSource>;
				/**
				 * Returns the source algorithm identifier.
				 */
				public getAlgorithm(): string;
			}
			export module PSource {
				/**
				 * The explicit specification of the parameter <code>P</code> used in the source algorithm.
				 */
				export class PSpecified extends javax.crypto.spec.PSource {
					/**
					 * Creates a new instance of <code>PSpecified</code> with the specified parameter <code>P</code>.
					 * @param p 
					 */
					constructor(p: native.Array<number>);
					/**
					 * The instance of <code>PSpecified</code> with the default value <code>byte[0]</code> for <code>P</code>
					 */
					static DEFAULT: javax.crypto.spec.PSource.PSpecified;
					static class: java.lang.Class<javax.crypto.spec.PSource.PSpecified>;
					/**
					 * Returns a copy of the value of the parameter <code>P</code>.
					 */
					public getValue(): native.Array<number>;
				}
			}
			/**
			 * The algorithm parameter specification for the <i>OAEP Padding</i> algorithm.
			 */
			export class OAEPParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new <code>OAEPParameterSpec</code> instance with the specified <i>message digest</i> algorithm name, <i>mask generation function</i> (<i>mgf</i>) algorithm name, <i>parameters</i> for the <i>mgf</i> algorithm and the <i>source of the label <code>L</code></i>.
				 * @param mdName 
				 * @param mgfName 
				 * @param mgfSpec 
				 * @param pSrc 
				 */
				constructor(mdName: string, mgfName: string, mgfSpec: java.security.spec.IAlgorithmParameterSpec, pSrc: javax.crypto.spec.PSource);
				/**
				 * The algorithm parameter instance with default values.
				 */
				static DEFAULT: javax.crypto.spec.OAEPParameterSpec;
				static class: java.lang.Class<javax.crypto.spec.OAEPParameterSpec>;
				/**
				 * Returns the algorithm name of the <i>message digest</i>.
				 */
				public getDigestAlgorithm(): string;
				/**
				 * Returns the algorithm name of the <i>mask generation function</i>.
				 */
				public getMGFAlgorithm(): string;
				/**
				 * Returns the algorithm parameter specification for the mask generation function algorithm.
				 */
				public getMGFParameters(): java.security.spec.IAlgorithmParameterSpec;
				/**
				 * Returns the source of the label <code>L</code>.
				 */
				public getPSource(): javax.crypto.spec.PSource;
			}
			/**
			 * The algorithm parameter specification for the <a href="http://www.ietf.org/rfc/rfc2040.txt">RC5</a> algorithm.
			 */
			export class RC5ParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new <code>RC5ParameterSpec</code> instance with the specified version, round count an word size (in bits).
				 * @param version 
				 * @param rounds 
				 * @param wordSize 
				 */
				constructor(version: number, rounds: number, wordSize: number);
				/**
				 * Creates a new <code>RC5ParameterSpec</code> instance with the specified version, round count, word size (in bits) and an <i>initialization vector</i>.
				 * @param version 
				 * @param rounds 
				 * @param wordSize 
				 * @param iv 
				 */
				constructor(version: number, rounds: number, wordSize: number, iv: native.Array<number>);
				/**
				 * Creates a new <code>RC5ParameterSpec</code> instance with the specified version, round count, wordSize (in bits), an <i>initialization vector</i> and an offset.
				 * @param version 
				 * @param rounds 
				 * @param wordSize 
				 * @param iv 
				 * @param offset 
				 */
				constructor(version: number, rounds: number, wordSize: number, iv: native.Array<number>, offset: number);
				static class: java.lang.Class<javax.crypto.spec.RC5ParameterSpec>;
				/**
				 * Returns the version.
				 */
				public getVersion(): number;
				/**
				 * Returns the round count.
				 */
				public getRounds(): number;
				/**
				 * Returns the word size (in bits).
				 */
				public getWordSize(): number;
				/**
				 * Returns a copy of the initialization vector.
				 */
				public getIV(): native.Array<number>;
				/**
				 * Compares the specified object with this <code>RC5ParameterSpec</code> instance.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns the hash code of this <code>RC5ParameterSpec</code> instance.
				 */
				public hashCode(): number;
			}
			/**
			 * The key specification for a Diffie-Hellman private key.
			 */
			export class DHPrivateKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new <code>DHPrivateKeySpec</code> with the specified <i>private value</i> <code>x</code>. <i>prime modulus</i> <code>p</code> and <i>base generator</i> <code>g</code>.
				 * @param x 
				 * @param p 
				 * @param g 
				 */
				constructor(x: java.math.BigInteger, p: java.math.BigInteger, g: java.math.BigInteger);
				static class: java.lang.Class<javax.crypto.spec.DHPrivateKeySpec>;
				/**
				 * Returns the <i>private value</i> <code>x</code>.
				 */
				public getX(): java.math.BigInteger;
				/**
				 * Returns the <i>prime modulus</i> <code>p</code>.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns the <i>base generator</i> <code>g</code>.
				 */
				public getG(): java.math.BigInteger;
			}
			/**
			 * A key specification for a <code>SecretKey</code> and also a secret key implementation that is provider-independent. It can be used for raw secret keys that can be specified as <code>byte[]</code>.
			 */
			export class SecretKeySpec extends java.lang.Object implements javax.crypto.ISecretKey, java.security.spec.IKeySpec, java.io.ISerializable {
				/**
				 * Creates a new <code>SecretKeySpec</code> for the specified key data and algorithm name.
				 * @param key 
				 * @param algorithm 
				 */
				constructor(key: native.Array<number>, algorithm: string);
				/**
				 * Creates a new <code>SecretKeySpec</code> for the key data from the specified buffer <code>key</code> starting at <code>offset</code> with length <code>len</code> and the specified <code>algorithm</code> name.
				 * @param key 
				 * @param offset 
				 * @param len 
				 * @param algorithm 
				 */
				constructor(key: native.Array<number>, offset: number, len: number, algorithm: string);
				static class: java.lang.Class<javax.crypto.spec.SecretKeySpec>;
				/**
				 * Returns the algorithm name.
				 */
				public getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode the key.
				 */
				public getFormat(): string;
				/**
				 * Returns the encoded form of this secret key.
				 */
				public getEncoded(): native.Array<number>;
				/**
				 * Returns the hash code of this <code>SecretKeySpec</code> object.
				 */
				public hashCode(): number;
				/**
				 * Compares the specified object with this <code>SecretKeySpec</code> instance.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
			}
			/**
			 * The key specification for a triple-DES (DES-EDE) key.
			 */
			export class DESedeKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new <code>DESedeKeySpec</code> instance from the first 24 ( #DES_EDE_KEY_LEN) bytes of the specified key data.
				 * @param key 
				 */
				constructor(key: native.Array<number>);
				/**
				 * Creates a new <code>DESedeKeySpec</code> instance from the first 24 ( #DES_EDE_KEY_LEN ) bytes of the specified key data starting at <code>offset</code>.
				 * @param key 
				 * @param offset 
				 */
				constructor(key: native.Array<number>, offset: number);
				/**
				 * The length of a DES-EDE key in bytes.
				 */
				static DES_EDE_KEY_LEN: number;
				static class: java.lang.Class<javax.crypto.spec.DESedeKeySpec>;
				/**
				 * Returns a copy of the key.
				 */
				public getKey(): native.Array<number>;
				/**
				 * Returns whether the specified key data starting at <code>offset</code> is <i>parity-adjusted</i>.
				 * @param key 
				 * @param offset 
				 */
				public static isParityAdjusted(key: native.Array<number>, offset: number): boolean;
			}
			/**
			 * The algorithm parameter specification for an <i>initialization vector</i>.
			 */
			export class IvParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new <code>IvParameterSpec</code> instance with the bytes from the specified buffer <i>iv</i> used as <i>initialization vector</i>.
				 * @param iv 
				 */
				constructor(iv: native.Array<number>);
				/**
				 * Creates a new <code>IvParameterSpec</code> instance with <code>byteCount</code> bytes from the specified buffer <code>iv</code> starting at <code>offset</code>.
				 */
				constructor(iv: native.Array<number>, offset: number, byteCount: number);
				static class: java.lang.Class<javax.crypto.spec.IvParameterSpec>;
				/**
				 * Returns a copy of the <i>initialization vector</i> data.
				 */
				public getIV(): native.Array<number>;
			}
			/**
			 * The key specification for a DES key.
			 */
			export class DESKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new <code>DESKeySpec</code> from the first 8 bytes of the specified key data.
				 * @param key 
				 */
				constructor(key: native.Array<number>);
				/**
				 * Creates a new <code>DESKeySpec</code> from the first 8 bytes of the specified key data starting at <code>offset</code>.
				 * @param key 
				 * @param offset 
				 */
				constructor(key: native.Array<number>, offset: number);
				/**
				 * The length of a DES key in bytes.
				 */
				static DES_KEY_LEN: number;
				static class: java.lang.Class<javax.crypto.spec.DESKeySpec>;
				/**
				 * Returns a copy of the key.
				 */
				public getKey(): native.Array<number>;
				/**
				 * Returns whether the specified key data starting at <code>offset</code> is <i>parity-adjusted</i>.
				 * @param key 
				 * @param offset 
				 */
				public static isParityAdjusted(key: native.Array<number>, offset: number): boolean;
				/**
				 * Returns whether the specified key data starting at <code>offset</code> is weak or semi-weak.
				 * @param key 
				 * @param offset 
				 */
				public static isWeak(key: native.Array<number>, offset: number): boolean;
			}
			/**
			 * The algorithm parameter specification for the <a href="http://www.ietf.org/rfc/rfc2268.txt">RC2</a> algorithm.
			 */
			export class RC2ParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new <code>RC2ParameterSpec</code> instance with the specified effective key length (in bits),
				 * @param effectiveKeyBits 
				 */
				constructor(effectiveKeyBits: number);
				/**
				 * Creates a new <code>RC2ParameterSpec</code> instance with the specified effective key length (in bits) and <i>initialization vector</i>.
				 * @param effectiveKeyBits 
				 * @param iv 
				 */
				constructor(effectiveKeyBits: number, iv: native.Array<number>);
				/**
				 * Creates a new <code>RC2ParameterSpec</code> instance with the specified effective key length (in bits) and <i>initialization vector<i>.
				 * @param effectiveKeyBits 
				 * @param iv 
				 * @param offset 
				 */
				constructor(effectiveKeyBits: number, iv: native.Array<number>, offset: number);
				static class: java.lang.Class<javax.crypto.spec.RC2ParameterSpec>;
				/**
				 * Returns the effective key length (in bits).
				 */
				public getEffectiveKeyBits(): number;
				/**
				 * Returns a copy of the initialization vector.
				 */
				public getIV(): native.Array<number>;
				/**
				 * Compares the specified object to this <code>RC2ParameterSpec</code> instance.
				 * @param obj 
				 */
				public equals(obj: any): boolean;
				/**
				 * Returns the hash code of this <code>RC2ParameterSpec</code> instance.
				 */
				public hashCode(): number;
			}
			/**
			 * The key specification for a Diffie-Hellman public key.
			 */
			export class DHPublicKeySpec extends java.lang.Object implements java.security.spec.IKeySpec {
				/**
				 * Creates a new <code>DHPublicKeySpec</code> instance with the specified <i>public value</i> <code>y</code>, the <i>prime modulus</i> <code>p</code> and the <i>base generator</i> <code>g</code>.
				 * @param y 
				 * @param p 
				 * @param g 
				 */
				constructor(y: java.math.BigInteger, p: java.math.BigInteger, g: java.math.BigInteger);
				static class: java.lang.Class<javax.crypto.spec.DHPublicKeySpec>;
				/**
				 * Returns the <i>public value</i> <code>y</code>.
				 */
				public getY(): java.math.BigInteger;
				/**
				 * Returns the <i>prime modulus</i> <code>p</code>.
				 */
				public getP(): java.math.BigInteger;
				/**
				 * Returns the <i>base generator</i> <code>g</code>;
				 */
				public getG(): java.math.BigInteger;
			}
			/**
			 * The algorithm parameter specification for a <i>password based encryption</i> algorithm.
			 */
			export class PBEParameterSpec extends java.lang.Object implements java.security.spec.IAlgorithmParameterSpec {
				/**
				 * Creates a new <code>PBEParameterSpec</code> with the specified salt and iteration count.
				 * @param salt 
				 * @param iterationCount 
				 */
				constructor(salt: native.Array<number>, iterationCount: number);
				static class: java.lang.Class<javax.crypto.spec.PBEParameterSpec>;
				/**
				 * Returns a copy to the salt.
				 */
				public getSalt(): native.Array<number>;
				/**
				 * Returns the iteration count.
				 */
				public getIterationCount(): number;
			}
		}
		/**
		 * The <i>Service-Provider Interface</i> (<b>SPI</b>) definition for the Mac class.
		 */
		export class MacSpi extends java.lang.Object {
			/**
			 * Creates a new MacSpi instance.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.MacSpi>;
			/**
			 * Returns the length of this MAC (in bytes).
			 */
			protected engineGetMacLength(): number;
			/**
			 * Initializes this MacSpi instance with the specified key and algorithm parameters.
			 * @param key 
			 * @param params 
			 */
			protected engineInit(key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Updates this MacSpi instance with the specified byte.
			 * @param input 
			 */
			protected engineUpdate(input: number): void;
			/**
			 * Updates this MacSpi instance with the data from the specified buffer input from the specified offset and length len.
			 * @param input 
			 * @param offset 
			 * @param len 
			 */
			protected engineUpdate(input: native.Array<number>, offset: number, len: number): void;
			/**
			 * Updates this MacSpi instance with the data from the specified buffer, starting at ByteBuffer#position(), including the next ByteBuffer#remaining() bytes.
			 * @param input 
			 */
			protected engineUpdate(input: java.nio.ByteBuffer): void;
			/**
			 * Computes the digest of this MAC based on the data previously specified in #engineUpdate calls.
			 */
			protected engineDoFinal(): native.Array<number>;
			/**
			 * Resets this MacSpi instance to its initial state.
			 */
			protected engineReset(): void;
			/**
			 * Clones this MacSpi instance.
			 */
			public clone(): any;
		}
		/**
		 * This class provides the functionality for a key exchange protocol. This enables two or more parties to agree on a secret key for symmetric cryptography.
		 */
		export class KeyAgreement extends java.lang.Object {
			static class: java.lang.Class<javax.crypto.KeyAgreement>;
			/**
			 * Returns the name of the key agreement algorithm.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns the provider for this KeyAgreement instance.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Creates a new KeyAgreement for the specified algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): javax.crypto.KeyAgreement;
			/**
			 * Creates a new KeyAgreement for the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): javax.crypto.KeyAgreement;
			/**
			 * Create a new KeyAgreement for the specified algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): javax.crypto.KeyAgreement;
			/**
			 * Initializes this KeyAgreement with the specified key.
			 * @param key 
			 */
			public init(key: java.security.IKey): void;
			/**
			 * Initializes this KeyAgreement with the specified key and the specified randomness source.
			 * @param key 
			 * @param random 
			 */
			public init(key: java.security.IKey, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyAgreement with the specified key and the algorithm parameters.
			 * @param key 
			 * @param params 
			 */
			public init(key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Initializes this KeyAgreement with the specified key, algorithm parameters and randomness source.
			 * @param key 
			 * @param params 
			 * @param random 
			 */
			public init(key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
			/**
			 * Does the next (or the last) phase of the key agreement, using the specified key.
			 * @param key 
			 * @param lastPhase 
			 */
			public doPhase(key: java.security.IKey, lastPhase: boolean): java.security.IKey;
			/**
			 * Generates the shared secret.
			 */
			public generateSecret(): native.Array<number>;
			/**
			 * Generates the shared secret and stores it into the buffer sharedSecred at offset.
			 * @param sharedSecret 
			 * @param offset 
			 */
			public generateSecret(sharedSecret: native.Array<number>, offset: number): number;
			/**
			 * Generates the shared secret.
			 * @param algorithm 
			 */
			public generateSecret(algorithm: string): javax.crypto.ISecretKey;
		}
		/**
		 * This class provides the public API for generating symmetric cryptographic keys.
		 */
		export class KeyGenerator extends java.lang.Object {
			static class: java.lang.Class<javax.crypto.KeyGenerator>;
			/**
			 * Returns the name of the key generation algorithm.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns the provider of this KeyGenerator instance.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Creates a new KeyGenerator instance that provides the specified key algorithm,
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): javax.crypto.KeyGenerator;
			/**
			 * Creates a new KeyGenerator instance that provides the specified key algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): javax.crypto.KeyGenerator;
			/**
			 * Creates a new KeyGenerator instance that provides the specified key algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): javax.crypto.KeyGenerator;
			/**
			 * Generates a secret key.
			 */
			public generateKey(): javax.crypto.ISecretKey;
			/**
			 * Initializes this KeyGenerator instance with the specified algorithm parameters.
			 * @param params 
			 */
			public init(params: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Initializes this KeyGenerator instance with the specified algorithm parameters and randomness source.
			 * @param params 
			 * @param random 
			 */
			public init(params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyGenerator instance for the specified key size (in bits).
			 * @param keysize 
			 */
			public init(keysize: number): void;
			/**
			 * Initializes this KeyGenerator instance for the specified key size (in bits) using the specified randomness source.
			 * @param keysize 
			 * @param random 
			 */
			public init(keysize: number, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyGenerator with the specified randomness source.
			 * @param random 
			 */
			public init(random: java.security.SecureRandom): void;
		}
		/**
		 * The public API for SecretKeyFactory implementations.
		 */
		export class SecretKeyFactory extends java.lang.Object {
			static class: java.lang.Class<javax.crypto.SecretKeyFactory>;
			/**
			 * Returns the name of the secret key algorithm.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns the provider for this SecretKeyFactory instance.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Creates a new SecretKeyFactory instance for the specified key algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): javax.crypto.SecretKeyFactory;
			/**
			 * Creates a new SecretKeyFactory instance for the specified key algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): javax.crypto.SecretKeyFactory;
			/**
			 * Creates a new SecretKeyFactory instance for the specified key algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): javax.crypto.SecretKeyFactory;
			/**
			 * Generate a secret key from the specified key specification.
			 * @param keySpec 
			 */
			public generateSecret(keySpec: java.security.spec.IKeySpec): javax.crypto.ISecretKey;
			/**
			 * Returns the key specification of the specified secret key.
			 * @param key 
			 * @param keySpec 
			 */
			public getKeySpec(key: javax.crypto.ISecretKey, keySpec: java.lang.Class<any>): java.security.spec.IKeySpec;
			/**
			 * Translates the specified secret key into an instance of the corresponding key from the provider of this key factory.
			 * @param key 
			 */
			public translateKey(key: javax.crypto.ISecretKey): javax.crypto.ISecretKey;
		}
		export module interfaces {
			/**
			 * The interface for a private key in the Diffie-Hellman key exchange protocol.
			 */
			export class DHPrivateKey implements javax.crypto.interfaces.IDHKey, java.security.IPrivateKey, javax.crypto.interfaces.IDHPrivateKey {
				constructor(implementation: javax.crypto.interfaces.IDHPrivateKey);
				/**
				 * The serialization version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns this key's private value x.
				 */
				public getX(): java.math.BigInteger;
				/**
				 * Returns the parameters for this key.
				 */
				getParams(): javax.crypto.spec.DHParameterSpec;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			/**
			 * The interface for a Diffie-Hellman key.
			 */
			interface IDHKey {
				/**
				 * Returns the parameters for this key.
				 */
				getParams(): javax.crypto.spec.DHParameterSpec;
			}
			/**
			 * The interface for a public key in the Diffie-Hellman key exchange protocol.
			 */
			export class DHPublicKey implements javax.crypto.interfaces.IDHKey, java.security.IPublicKey, javax.crypto.interfaces.IDHPublicKey {
				constructor(implementation: javax.crypto.interfaces.IDHPublicKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns this key's public value Y.
				 */
				public getY(): java.math.BigInteger;
				/**
				 * Returns the parameters for this key.
				 */
				getParams(): javax.crypto.spec.DHParameterSpec;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			/**
			 * The interface for a public key in the Diffie-Hellman key exchange protocol.
			 */
			interface IDHPublicKey extends javax.crypto.interfaces.IDHKey, java.security.IPublicKey {
				/**
				 * Returns this key's public value Y.
				 */
				getY(): java.math.BigInteger;
				/**
				 * Returns the parameters for this key.
				 */
				getParams(): javax.crypto.spec.DHParameterSpec;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			export module IDHPublicKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface for a private key in the Diffie-Hellman key exchange protocol.
			 */
			interface IDHPrivateKey extends javax.crypto.interfaces.IDHKey, java.security.IPrivateKey {
				/**
				 * Returns this key's private value x.
				 */
				getX(): java.math.BigInteger;
				/**
				 * Returns the parameters for this key.
				 */
				getParams(): javax.crypto.spec.DHParameterSpec;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			export module IDHPrivateKey {
				/**
				 * The serialization version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface to a <i>password-based-encryption</i> key.
			 */
			interface IPBEKey extends javax.crypto.ISecretKey {
				/**
				 * Returns the iteration count, 0 if not specified.
				 */
				getIterationCount(): number;
				/**
				 * Returns a copy of the salt data or null if not specified.
				 */
				getSalt(): native.Array<number>;
				/**
				 * Returns a copy to the password.
				 */
				getPassword(): native.Array<string>;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			export module IPBEKey {
				/**
				 * The serial version identifier.
				 */
				var serialVersionUID: number;
			}
			/**
			 * The interface to a <i>password-based-encryption</i> key.
			 */
			export class PBEKey implements javax.crypto.ISecretKey, javax.crypto.interfaces.IPBEKey {
				constructor(implementation: javax.crypto.interfaces.IPBEKey);
				/**
				 * The serial version identifier.
				 */
				static serialVersionUID: number;
				/**
				 * Returns the iteration count, 0 if not specified.
				 */
				public getIterationCount(): number;
				/**
				 * Returns a copy of the salt data or null if not specified.
				 */
				public getSalt(): native.Array<number>;
				/**
				 * Returns a copy to the password.
				 */
				public getPassword(): native.Array<string>;
				/**
				 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
				 */
				getAlgorithm(): string;
				/**
				 * Returns the name of the format used to encode this key, or null if it can not be encoded.
				 */
				getFormat(): string;
				/**
				 * Returns the encoded form of this key, or null if encoding is not supported by this key.
				 */
				getEncoded(): native.Array<number>;
			}
			/**
			 * The interface for a Diffie-Hellman key.
			 */
			export class DHKey implements javax.crypto.interfaces.IDHKey {
				constructor(implementation: javax.crypto.interfaces.IDHKey);
				/**
				 * Returns the parameters for this key.
				 */
				public getParams(): javax.crypto.spec.DHParameterSpec;
			}
		}
		/**
		 * The <i>Service Provider Interface</i> (<b>SPI</b>) definition for the KeyAgreement class.
		 */
		export class KeyAgreementSpi extends java.lang.Object {
			/**
			 * Creates a new KeyAgreementSpi instance.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.KeyAgreementSpi>;
			/**
			 * Does the next (or the last) phase of the key agreement, using the specified key.
			 * @param key 
			 * @param lastPhase 
			 */
			protected engineDoPhase(key: java.security.IKey, lastPhase: boolean): java.security.IKey;
			/**
			 * Generates the shared secret.
			 */
			protected engineGenerateSecret(): native.Array<number>;
			/**
			 * Generates the shared secret and stores it into the buffer sharedSecred at offset.
			 * @param sharedSecret 
			 * @param offset 
			 */
			protected engineGenerateSecret(sharedSecret: native.Array<number>, offset: number): number;
			/**
			 * Generates the shared secret.
			 * @param algorithm 
			 */
			protected engineGenerateSecret(algorithm: string): javax.crypto.ISecretKey;
			/**
			 * Initializes this KeyAgreementSpi with the specified key and the specified randomness source.
			 * @param key 
			 * @param random 
			 */
			protected engineInit(key: java.security.IKey, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyAgreementSpi with the specified key, algorithm parameters and randomness source.
			 * @param key 
			 * @param params 
			 * @param random 
			 */
			protected engineInit(key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
		}
		/**
		 * This class wraps an InputStream and a cipher so that read() methods return data that are read from the underlying InputStream and processed by the cipher.
		 */
		export class CipherInputStream extends java.io.FilterInputStream {
			/**
			 * Creates a new CipherInputStream instance for an InputStream and a cipher.
			 * @param is 
			 * @param c 
			 */
			constructor(is: java.io.InputStream, c: javax.crypto.Cipher);
			static class: java.lang.Class<javax.crypto.CipherInputStream>;
			/**
			 * Reads the next byte from this cipher input stream.
			 */
			public read(): number;
			/**
			 * Reads the next len bytes from this input stream into buffer buf starting at offset off.
			 */
			public read(buf: native.Array<number>, off: number, len: number): number;
			public skip(byteCount: number): any;
			public available(): number;
			/**
			 * Closes this CipherInputStream, also closes the underlying input stream and call doFinal on the cipher object.
			 */
			public close(): void;
			/**
			 * Returns whether this input stream supports mark and reset, which it does not.
			 */
			public markSupported(): boolean;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * The exception that is thrown when the requested padding mechanism is not supported.
		 */
		export class NoSuchPaddingException extends java.security.GeneralSecurityException {
			/**
			 * Creates a new NoSuchPaddingException with the specified message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Creates a new NoSuchPaddingException.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.NoSuchPaddingException>;
		}
		/**
		 * A SealedObject is a wrapper around a serializable object instance and encrypts it using a cryptographic cipher.
		 */
		export class SealedObject extends java.lang.Object implements java.io.ISerializable {
			/**
			 * Creates a new SealedObject instance wrapping the specified object and sealing it using the specified cipher.
			 * @param object 
			 * @param c 
			 */
			constructor(object: java.io.ISerializable, c: javax.crypto.Cipher);
			static class: java.lang.Class<javax.crypto.SealedObject>;
			/**
			 * Returns the algorithm this object was sealed with.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns the wrapped object, decrypting it using the specified key.
			 * @param key 
			 */
			public getObject(key: java.security.IKey): any;
			/**
			 * Returns the wrapped object, decrypting it using the specified cipher.
			 * @param c 
			 */
			public getObject(c: javax.crypto.Cipher): any;
			/**
			 * Returns the wrapped object, decrypting it using the specified key. The specified provider is used to retrieve the cipher algorithm.
			 * @param key 
			 * @param provider 
			 */
			public getObject(key: java.security.IKey, provider: string): any;
		}
		/**
		 * This class provides the public API for <i>Message Authentication Code</i> (MAC) algorithms.
		 */
		export class Mac extends java.lang.Object implements java.lang.ICloneable {
			static class: java.lang.Class<javax.crypto.Mac>;
			/**
			 * Returns the name of the MAC algorithm.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns the provider of this Mac instance.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Creates a new Mac instance that provides the specified MAC algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): javax.crypto.Mac;
			/**
			 * Creates a new Mac instance that provides the specified MAC algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): javax.crypto.Mac;
			/**
			 * Creates a new Mac instance that provides the specified MAC algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): javax.crypto.Mac;
			/**
			 * Returns the length of this MAC (in bytes).
			 */
			public getMacLength(): number;
			/**
			 * Initializes this Mac instance with the specified key and algorithm parameters.
			 * @param key 
			 * @param params 
			 */
			public init(key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Initializes this Mac instance with the specified key.
			 * @param key 
			 */
			public init(key: java.security.IKey): void;
			/**
			 * Updates this Mac instance with the specified byte.
			 * @param input 
			 */
			public update(input: number): void;
			/**
			 * Updates this Mac instance with the data from the specified buffer input from the specified offset and length len.
			 * @param input 
			 * @param offset 
			 * @param len 
			 */
			public update(input: native.Array<number>, offset: number, len: number): void;
			/**
			 * Copies the buffer provided as input for further processing.
			 * @param input 
			 */
			public update(input: native.Array<number>): void;
			/**
			 * Updates this Mac instance with the data from the specified buffer, starting at ByteBuffer#position(), including the next ByteBuffer#remaining() bytes.
			 * @param input 
			 */
			public update(input: java.nio.ByteBuffer): void;
			/**
			 * Computes the digest of this MAC based on the data previously specified in #update calls.
			 */
			public doFinal(): native.Array<number>;
			/**
			 * Computes the digest of this MAC based on the data previously specified in #update calls and stores the digest in the specified output buffer at offset outOffset.
			 * @param output 
			 * @param outOffset 
			 */
			public doFinal(output: native.Array<number>, outOffset: number): void;
			/**
			 * Computes the digest of this MAC based on the data previously specified on #update calls and on the final bytes specified by input (or based on those bytes only).
			 * @param input 
			 */
			public doFinal(input: native.Array<number>): native.Array<number>;
			/**
			 * Resets this Mac instance to its initial state.
			 */
			public reset(): void;
			/**
			 * Clones this Mac instance and the underlying implementation.
			 */
			public clone(): any;
		}
		/**
		 * This class implements the functionality of an exemption mechanism such as <i>key recovery</i>, <i>key weakening</i>, or <i>key escrow</i>.
		 */
		export class ExemptionMechanism extends java.lang.Object {
			static class: java.lang.Class<javax.crypto.ExemptionMechanism>;
			/**
			 * Returns the name of this ExemptionMechanism.
			 */
			public getName(): string;
			/**
			 * Returns a new ExemptionMechanism instance that provides the specified exemption mechanism algorithm.
			 * @param algorithm 
			 */
			public static getInstance(algorithm: string): javax.crypto.ExemptionMechanism;
			/**
			 * Returns a new ExemptionMechansm instance that provides the specified exemption mechanism algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: string): javax.crypto.ExemptionMechanism;
			/**
			 * Returns a new ExemptionMechanism instance that provides the specified exemption mechanism algorithm from the specified provider.
			 * @param algorithm 
			 * @param provider 
			 */
			public static getInstance(algorithm: string, provider: java.security.Provider): javax.crypto.ExemptionMechanism;
			/**
			 * Returns the provider of this ExemptionMechanism instance.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns whether the result blob for this ExemptionMechanism instance has been generated successfully and that the specified key is the same as the one that was used to initialize and generate.
			 * @param key 
			 */
			public isCryptoAllowed(key: java.security.IKey): boolean;
			/**
			 * Returns the size in bytes for the output buffer needed to hold the output of the next #genExemptionBlob call, given the specified inputLen (in bytes).
			 * @param inputLen 
			 */
			public getOutputSize(inputLen: number): number;
			/**
			 * Initializes this ExemptionMechanism instance with the specified key.
			 * @param key 
			 */
			public init(key: java.security.IKey): void;
			/**
			 * Initializes this ExemptionMechanism instance with the specified key and algorithm parameters.
			 * @param key 
			 * @param param 
			 */
			public init(key: java.security.IKey, param: java.security.AlgorithmParameters): void;
			/**
			 * Initializes this ExemptionMechanism instance with the specified key and algorithm parameters.
			 * @param key 
			 * @param param 
			 */
			public init(key: java.security.IKey, param: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Generates the result key blob for this exemption mechanism.
			 */
			public genExemptionBlob(): native.Array<number>;
			/**
			 * Generates the result key blob for this exemption mechanism and stores it into the output buffer.
			 * @param output 
			 */
			public genExemptionBlob(output: native.Array<number>): number;
			/**
			 * Generates the result key blob for this exemption mechanism and stores it into the output buffer at offset outputOffset.
			 * @param output 
			 * @param outputOffset 
			 */
			public genExemptionBlob(output: native.Array<number>, outputOffset: number): number;
			/**
			 * Override to clear any key state in the instance.
			 */
			protected finalize(): void;
		}
		/**
		 * The <i>Service Provider Interface</i> (<b>SPI</b>) definition for the KeyGenerator class.
		 */
		export class KeyGeneratorSpi extends java.lang.Object {
			/**
			 * Creates a new KeyGeneratorSpi instance.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.KeyGeneratorSpi>;
			/**
			 * Generates a secret key.
			 */
			protected engineGenerateKey(): javax.crypto.ISecretKey;
			/**
			 * Initializes this KeyGeneratorSpi instance with the specified algorithm parameters and randomness source.
			 * @param params 
			 * @param random 
			 */
			protected engineInit(params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyGenerator instance for the specified key size (in bits) using the specified randomness source.
			 * @param keysize 
			 * @param random 
			 */
			protected engineInit(keysize: number, random: java.security.SecureRandom): void;
			/**
			 * Initializes this KeyGenerator with the specified randomness source.
			 * @param random 
			 */
			protected engineInit(random: java.security.SecureRandom): void;
		}
		/**
		 * A cryptographic secret (symmetric) key.
		 */
		export class SecretKey implements java.security.IKey, javax.crypto.ISecretKey {
			constructor(implementation: javax.crypto.ISecretKey);
			/**
			 * The serialization version identifier.
			 */
			static serialVersionUID: number;
			/**
			 * Returns the name of the algorithm of this key. If the algorithm is unknown, null is returned.
			 */
			getAlgorithm(): string;
			/**
			 * Returns the name of the format used to encode this key, or null if it can not be encoded.
			 */
			getFormat(): string;
			/**
			 * Returns the encoded form of this key, or null if encoding is not supported by this key.
			 */
			getEncoded(): native.Array<number>;
		}
		/**
		 * The <i>Service Provider Interface</i> (<b>SPI</b>) definition for the SecretKeyFactory class.
		 */
		export class SecretKeyFactorySpi extends java.lang.Object {
			/**
			 * Creates a new SecretKeyFactorySpi instance.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.SecretKeyFactorySpi>;
			/**
			 * Generate a secret key from the specified key specification.
			 * @param keySpec 
			 */
			protected engineGenerateSecret(keySpec: java.security.spec.IKeySpec): javax.crypto.ISecretKey;
			/**
			 * Returns the key specification of the specified secret key.
			 * @param key 
			 * @param keySpec 
			 */
			protected engineGetKeySpec(key: javax.crypto.ISecretKey, keySpec: java.lang.Class<any>): java.security.spec.IKeySpec;
			/**
			 * Translates the specified secret key into an instance of the corresponding key from the provider of this key factory.
			 * @param key 
			 */
			protected engineTranslateKey(key: javax.crypto.ISecretKey): javax.crypto.ISecretKey;
		}
		/**
		 * The exception that is thrown when the result of an operation is attempted to store in a user provided buffer that is too small.
		 */
		export class ShortBufferException extends java.security.GeneralSecurityException {
			/**
			 * Creates a new instance of ShortBufferException with the specified message
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Creates a new instance of ShortBufferException.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.ShortBufferException>;
		}
		/**
		 * This class implements the EncryptedPrivateKeyInfo ASN.1 type as specified in <a href="http://www.ietf.org/rfc/rfc5208.txt">PKCS #8 - Private-Key Information Syntax Standard</a>.
		 */
		export class EncryptedPrivateKeyInfo extends java.lang.Object {
			/**
			 * Creates an EncryptedPrivateKeyInfo instance from its encoded representation by parsing it.
			 * @param encoded 
			 */
			constructor(encoded: native.Array<number>);
			/**
			 * Creates an EncryptedPrivateKeyInfo instance from an algorithm name and its encrypted data.
			 * @param encryptionAlgorithmName 
			 * @param encryptedData 
			 */
			constructor(encryptionAlgorithmName: string, encryptedData: native.Array<number>);
			/**
			 * Creates an EncryptedPrivateKeyInfo instance from the encryption algorithm parameters an its encrypted data.
			 * @param algParams 
			 * @param encryptedData 
			 */
			constructor(algParams: java.security.AlgorithmParameters, encryptedData: native.Array<number>);
			static class: java.lang.Class<javax.crypto.EncryptedPrivateKeyInfo>;
			/**
			 * Returns the name of the encryption algorithm.
			 */
			public getAlgName(): string;
			/**
			 * Returns the parameters used by the encryption algorithm.
			 */
			public getAlgParameters(): java.security.AlgorithmParameters;
			/**
			 * Returns the encrypted data of this key.
			 */
			public getEncryptedData(): native.Array<number>;
			/**
			 * Returns the PKCS8EncodedKeySpec object extracted from the encrypted data.
			 * @param cipher 
			 */
			public getKeySpec(cipher: javax.crypto.Cipher): java.security.spec.PKCS8EncodedKeySpec;
			/**
			 * Returns the PKCS8EncodedKeySpec object extracted from the encrypted data.
			 * @param decryptKey 
			 */
			public getKeySpec(decryptKey: java.security.IKey): java.security.spec.PKCS8EncodedKeySpec;
			/**
			 * Returns the PKCS8EncodedKeySpec object extracted from the encrypted data.
			 * @param decryptKey 
			 * @param providerName 
			 */
			public getKeySpec(decryptKey: java.security.IKey, providerName: string): java.security.spec.PKCS8EncodedKeySpec;
			/**
			 * Returns the PKCS8EncodedKeySpec object extracted from the encrypted data.
			 * @param decryptKey 
			 * @param provider 
			 */
			public getKeySpec(decryptKey: java.security.IKey, provider: java.security.Provider): java.security.spec.PKCS8EncodedKeySpec;
			/**
			 * Returns the ASN.1 encoded representation of this object.
			 */
			public getEncoded(): native.Array<number>;
		}
		/**
		 * This class provides access to implementations of cryptographic ciphers for encryption and decryption. Cipher classes can not be instantiated directly, one has to call the Cipher's getInstance method with the name of a requested transformation, optionally with a provider. A transformation specifies an operation (or a set of operations) as a string in the form: <ul> <li><i>"algorithm/mode/padding"</i></li> or <li><i>"algorithm"</i></li> </ul> <i>algorithm</i> is the name of a cryptographic algorithm, <i>mode</i> is the name of a feedback mode and <i>padding</i> is the name of a padding scheme. If <i>mode</i> and/or <i>padding</i> values are omitted, provider specific default values will be used.
		 */
		export class Cipher extends java.lang.Object {
			/**
			 * Constant for decryption operation mode.
			 */
			static DECRYPT_MODE: number;
			/**
			 * Constant for encryption operation mode.
			 */
			static ENCRYPT_MODE: number;
			/**
			 * Constant indicating that the key to be unwrapped is a private key.
			 */
			static PRIVATE_KEY: number;
			/**
			 * Constant indicating that the key to be unwrapped is a public key.
			 */
			static PUBLIC_KEY: number;
			/**
			 * Constant indicating that the key to be unwrapped is a secret key.
			 */
			static SECRET_KEY: number;
			/**
			 * Constant for key unwrapping operation mode.
			 */
			static UNWRAP_MODE: number;
			/**
			 * Constant for key wrapping operation mode.
			 */
			static WRAP_MODE: number;
			static class: java.lang.Class<javax.crypto.Cipher>;
			/**
			 * Creates a new Cipher for the specified transformation. The installed providers are searched in order for an implementation of the specified transformation. The first found provider providing the transformation is used to create the cipher. If no provider is found an exception is thrown.
			 * @param transformation 
			 */
			public static getInstance(transformation: string): javax.crypto.Cipher;
			/**
			 * Creates a new cipher for the specified transformation provided by the specified provider.
			 * @param transformation 
			 * @param provider 
			 */
			public static getInstance(transformation: string, provider: string): javax.crypto.Cipher;
			/**
			 * Creates a new cipher for the specified transformation.
			 * @param transformation 
			 * @param provider 
			 */
			public static getInstance(transformation: string, provider: java.security.Provider): javax.crypto.Cipher;
			/**
			 * Returns the provider of this cipher instance.
			 */
			public getProvider(): java.security.Provider;
			/**
			 * Returns the name of the algorithm of this cipher instance.
			 */
			public getAlgorithm(): string;
			/**
			 * Returns this ciphers block size (in bytes).
			 */
			public getBlockSize(): number;
			/**
			 * Returns the length in bytes an output buffer needs to be when this cipher is updated with inputLen bytes.
			 * @param inputLen 
			 */
			public getOutputSize(inputLen: number): number;
			/**
			 * Returns the <i>initialization vector</i> for this cipher instance.
			 */
			public getIV(): native.Array<number>;
			/**
			 * Returns the parameters that where used to create this cipher instance.
			 */
			public getParameters(): java.security.AlgorithmParameters;
			/**
			 * Returns the exemption mechanism associated with this cipher.
			 */
			public getExemptionMechanism(): javax.crypto.ExemptionMechanism;
			/**
			 * Initializes this cipher instance with the specified key.
			 * @param opmode 
			 * @param key 
			 */
			public init(opmode: number, key: java.security.IKey): void;
			/**
			 * Initializes this cipher instance with the specified key and a source of randomness.
			 * @param opmode 
			 * @param key 
			 * @param random 
			 */
			public init(opmode: number, key: java.security.IKey, random: java.security.SecureRandom): void;
			/**
			 * Initializes this cipher instance with the specified key and algorithm parameters.
			 * @param opmode 
			 * @param key 
			 * @param params 
			 */
			public init(opmode: number, key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec): void;
			/**
			 * Initializes this cipher instance with the specified key, algorithm parameters and a source of randomness.
			 * @param opmode 
			 * @param key 
			 * @param params 
			 * @param random 
			 */
			public init(opmode: number, key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
			/**
			 * Initializes this cipher instance with the specified key and algorithm parameters.
			 * @param opmode 
			 * @param key 
			 * @param params 
			 */
			public init(opmode: number, key: java.security.IKey, params: java.security.AlgorithmParameters): void;
			/**
			 * Initializes this cipher instance with the specified key, algorithm parameters and a source of randomness.
			 * @param opmode 
			 * @param key 
			 * @param params 
			 * @param random 
			 */
			public init(opmode: number, key: java.security.IKey, params: java.security.AlgorithmParameters, random: java.security.SecureRandom): void;
			/**
			 * Initializes this cipher instance with the public key from the specified certificate.
			 * @param opmode 
			 * @param certificate 
			 */
			public init(opmode: number, certificate: java.security.cert.Certificate): void;
			/**
			 * Initializes this cipher instance with the public key from the specified certificate and a source of randomness.
			 * @param opmode 
			 * @param certificate 
			 * @param random 
			 */
			public init(opmode: number, certificate: java.security.cert.Certificate, random: java.security.SecureRandom): void;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The transformed bytes are returned.
			 * @param input 
			 */
			public update(input: native.Array<number>): native.Array<number>;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The transformed bytes are returned.
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 */
			public update(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The transformed bytes are stored in the output buffer.
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 * @param output 
			 */
			public update(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>): number;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The transformed bytes are stored in the output buffer.
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 * @param output 
			 * @param outputOffset 
			 */
			public update(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The input.remaining() bytes starting at input.position() are transformed and stored in the output buffer.
			 * @param input 
			 * @param output 
			 */
			public update(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 */
			public doFinal(): native.Array<number>;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param output 
			 * @param outputOffset 
			 */
			public doFinal(output: native.Array<number>, outputOffset: number): number;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 */
			public doFinal(input: native.Array<number>): native.Array<number>;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 */
			public doFinal(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 * @param output 
			 */
			public doFinal(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>): number;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 * @param output 
			 * @param outputOffset 
			 */
			public doFinal(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 * @param output 
			 */
			public doFinal(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
			/**
			 * Wraps a key using this cipher instance.
			 * @param key 
			 */
			public wrap(key: java.security.IKey): native.Array<number>;
			/**
			 * Unwraps a key using this cipher instance.
			 * @param wrappedKey 
			 * @param wrappedKeyAlgorithm 
			 * @param wrappedKeyType 
			 */
			public unwrap(wrappedKey: native.Array<number>, wrappedKeyAlgorithm: string, wrappedKeyType: number): java.security.IKey;
			/**
			 * Returns the maximum key length for the specified transformation.
			 * @param transformation 
			 */
			public static getMaxAllowedKeyLength(transformation: string): number;
			/**
			 * Returns the maximum cipher parameter value for the specified transformation. If there is no maximum limit, null is returned.
			 * @param transformation 
			 */
			public static getMaxAllowedParameterSpec(transformation: string): java.security.spec.IAlgorithmParameterSpec;
		}
		/**
		 * This class defines the <i>Service Provider Interface</i> (<b>SPI</b>) for cryptographic ciphers.
		 */
		export class CipherSpi extends java.lang.Object {
			/**
			 * Creates a new CipherSpi instance.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.CipherSpi>;
			/**
			 * Sets the mode for this cipher.
			 * @param mode 
			 */
			protected engineSetMode(mode: string): void;
			/**
			 * Sets the padding method for this cipher.
			 * @param padding 
			 */
			protected engineSetPadding(padding: string): void;
			/**
			 * Returns the block size of this cipher (in bytes)
			 */
			protected engineGetBlockSize(): number;
			/**
			 * Returns the size for a buffer (in bytes), that the next call to update of doFinal would return, taking into account any buffered data from previous update calls and padding.
			 * @param inputLen 
			 */
			protected engineGetOutputSize(inputLen: number): number;
			/**
			 * Returns the Initialization Vector (IV) that was used to initialize this cipher or null if none was used.
			 */
			protected engineGetIV(): native.Array<number>;
			/**
			 * Returns the parameters that where used to create this cipher instance.
			 */
			protected engineGetParameters(): java.security.AlgorithmParameters;
			/**
			 * Initializes this cipher instance with the specified key and a source of randomness.
			 * @param opmode 
			 * @param key 
			 * @param random 
			 */
			protected engineInit(opmode: number, key: java.security.IKey, random: java.security.SecureRandom): void;
			/**
			 * Initializes this cipher instance with the specified key, algorithm parameters and a source of randomness.
			 * @param opmode 
			 * @param key 
			 * @param params 
			 * @param random 
			 */
			protected engineInit(opmode: number, key: java.security.IKey, params: java.security.spec.IAlgorithmParameterSpec, random: java.security.SecureRandom): void;
			/**
			 * Initializes this cipher instance with the specified key, algorithm parameters and a source of randomness.
			 * @param opmode 
			 * @param key 
			 * @param params 
			 * @param random 
			 */
			protected engineInit(opmode: number, key: java.security.IKey, params: java.security.AlgorithmParameters, random: java.security.SecureRandom): void;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The transformed bytes are returned.
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 */
			protected engineUpdate(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The transformed bytes are stored in the output buffer.
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 * @param output 
			 * @param outputOffset 
			 */
			protected engineUpdate(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
			/**
			 * Continues a multi-part transformation (encryption or decryption). The input.remaining() bytes starting at input.position() are transformed and stored in the output buffer.
			 * @param input 
			 * @param output 
			 */
			protected engineUpdate(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 */
			protected engineDoFinal(input: native.Array<number>, inputOffset: number, inputLen: number): native.Array<number>;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 * @param inputOffset 
			 * @param inputLen 
			 * @param output 
			 * @param outputOffset 
			 */
			protected engineDoFinal(input: native.Array<number>, inputOffset: number, inputLen: number, output: native.Array<number>, outputOffset: number): number;
			/**
			 * Finishes a multi-part transformation (encryption or decryption).
			 * @param input 
			 * @param output 
			 */
			protected engineDoFinal(input: java.nio.ByteBuffer, output: java.nio.ByteBuffer): number;
			/**
			 * Wraps a key using this cipher instance. This method has been added to this class (for backwards compatibility, it cannot be abstract). If this method is not overridden, it throws an UnsupportedOperationException.
			 * @param key 
			 */
			protected engineWrap(key: java.security.IKey): native.Array<number>;
			/**
			 * Unwraps a key using this cipher instance.
			 * @param wrappedKey 
			 * @param wrappedKeyAlgorithm 
			 * @param wrappedKeyType 
			 */
			protected engineUnwrap(wrappedKey: native.Array<number>, wrappedKeyAlgorithm: string, wrappedKeyType: number): java.security.IKey;
			/**
			 * Returns the size of a specified key object in bits. This method has been added to this class (for backwards compatibility, it cannot be abstract). If this method is not overridden, it throws an UnsupportedOperationException.
			 * @param key 
			 */
			protected engineGetKeySize(key: java.security.IKey): number;
		}
		/**
		 * This is the base class for ExemptionMechanismException.
		 */
		export class ExemptionMechanismException extends java.security.GeneralSecurityException {
			/**
			 * Creates a new ExemptionMechanismException with the specified message.
			 * @param msg 
			 */
			constructor(msg: string);
			/**
			 * Creates a new ExemptionMechanismException with no message.
			 */
			constructor();
			static class: java.lang.Class<javax.crypto.ExemptionMechanismException>;
		}
	}
	export module sql {
		/**
		 * A statement event that a PreparedStatement is closed
		 */
		export class StatementEvent extends java.util.EventObject {
			/**
			 * the constructor
			 * @param con 
			 * @param statement 
			 * @param exception 
			 */
			constructor(con: javax.sql.IPooledConnection, statement: java.sql.IPreparedStatement, exception: java.sql.SQLException);
			/**
			 * the constructor with null exception
			 * @param con 
			 * @param statement 
			 */
			constructor(con: javax.sql.IPooledConnection, statement: java.sql.IPreparedStatement);
			static class: java.lang.Class<javax.sql.StatementEvent>;
			/**
			 * Returns the statement of this event
			 */
			public getStatement(): java.sql.IPreparedStatement;
			/**
			 * Returns the exception to be thrown
			 */
			public getSQLException(): java.sql.SQLException;
		}
		/**
		 * An interface used to receive events generated by a PooledConnection.
		 */
		interface IConnectionEventListener extends java.util.IEventListener {
			/**
			 * Notifies the ConnectionEventListener that an application has called the close method on a pooled connection.
			 * @param theEvent 
			 */
			connectionClosed(theEvent: javax.sql.ConnectionEvent): void;
			/**
			 * Notifies the ConnectionEventListener that an error has occurred on a PooledConnection. This notification is triggered <i>before</i> the SQLException, which is available through the event argument, is thrown.
			 * @param theEvent 
			 */
			connectionErrorOccurred(theEvent: javax.sql.ConnectionEvent): void;
		}
		/**
		 * An event which is sent when specific events happen to a RowSet object. The events are sent to inform registered listeners that changes have occurred to the RowSet. The events covered are: <ol> <li>A single row in the RowSet changes.</li> <li>The whole set of data in the RowSet changes.</li> <li>The RowSet cursor position changes.</li> </ol>
		 */
		export class RowSetEvent extends java.util.EventObject implements java.io.ISerializable {
			/**
			 * Creates a RowSetEvent object containing a reference to the RowSet object that generated the event. Information about the changes that have occurred to the RowSet can be extracted from the RowSet using one or more of the query methods available on the RowSet.
			 * @param theSource 
			 */
			constructor(theSource: javax.sql.IRowSet);
			static class: java.lang.Class<javax.sql.RowSetEvent>;
		}
		/**
		 * An object that registers to be notified of events that occur on PreparedStatements that are in the Statement pool.
		 */
		interface IStatementEventListener extends java.util.IEventListener {
			/**
			 * The driver calls this method on all StatementEventListeners registered on the connection when it detects that a PreparedStatement is closed.
			 * @param event 
			 */
			statementClosed(event: javax.sql.StatementEvent): void;
			/**
			 * The driver calls this method on all StatementEventListeners registered on the connection when it detects that a PreparedStatement is invalid, before a SQLException is thrown
			 * @param event 
			 */
			statementErrorOccurred(event: javax.sql.StatementEvent): void;
		}
		/**
		 * An interface which provides means to access data which persists on a database. It extends the functionality of java.sql.ResultSet ResultSet into a form that it can be used as a JavaBean component, suited for a visual programming environment.
		 */
		export class RowSet implements java.sql.IResultSet, javax.sql.IRowSet {
			constructor(implementation: javax.sql.IRowSet);
			/**
			 * Registers the supplied RowSetListener with this RowSet. Once registered, the RowSetListener is notified of events generated by the RowSet.
			 * @param theListener 
			 */
			public addRowSetListener(theListener: javax.sql.IRowSetListener): void;
			/**
			 * Clears the parameters previously set for this RowSet.
			 */
			public clearParameters(): void;
			/**
			 * Fetches data for this RowSet from the database. If successful, any existing data for the RowSet is discarded and its metadata is overwritten.
			 */
			public execute(): void;
			/**
			 * Gets the RowSet's command property.
			 */
			public getCommand(): string;
			/**
			 * Gets the ODBC Data Source Name property associated with this RowSet. The database name can be used to find a DataSource which has been registered with a naming service - the DataSource can then be used to create a connection to the database.
			 */
			public getDataSourceName(): string;
			/**
			 * Reports if escape processing is enabled for this RowSet. If escape processing is on, the driver performs a substitution of the escape syntax with the applicable code before sending an SQL command to the database. The default value for escape processing is true.
			 */
			public getEscapeProcessing(): boolean;
			/**
			 * Gets the maximum number of bytes that can be returned for column values which are of type BINARY, VARBINARY, LONGVARBINARYBINARY, CHAR, VARCHAR, or LONGVARCHAR. Excess data is silently discarded if the number is exceeded.
			 */
			public getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows for this RowSet. Excess rows are discarded silently if the limit is exceeded.
			 */
			public getMaxRows(): number;
			/**
			 * Gets the value of the password property for this RowSet. This property is used when a connection to the database is established. Therefore it should be set prior to invoking the #execute method.
			 */
			public getPassword(): string;
			/**
			 * Gets the timeout for the driver when a query operation is executed. If a query takes longer than the timeout then a SQLException is thrown.
			 */
			public getQueryTimeout(): number;
			/**
			 * Gets the transaction isolation level property set for this RowSet. The transaction isolation level defines the policy implemented on the database for maintaining the data values consistent.
			 */
			public getTransactionIsolation(): number;
			/**
			 * Gets the custom mapping of SQL User-Defined Types (UDTs) and Java classes for this RowSet, if applicable.
			 */
			public getTypeMap(): java.util.IMap<string, java.lang.Class<any>>;
			/**
			 * Gets the URL property value for this RowSet. If there is no DataSource object specified, the RowSet uses the URL to establish a connection to the database. The default value for the URL is null.
			 */
			public getUrl(): string;
			/**
			 * Gets the value of the username property for this RowSet. The username is used when establishing a connection to the database and should be set before the execute method is invoked.
			 */
			public getUsername(): string;
			/**
			 * Indicates if this RowSet is read-only.
			 */
			public isReadOnly(): boolean;
			/**
			 * Removes a specified RowSetListener object from the set of listeners which will be notified of events by this RowSet.
			 * @param theListener 
			 */
			public removeRowSetListener(theListener: javax.sql.IRowSetListener): void;
			/**
			 * Sets the specified ARRAY parameter in the RowSet command with the supplied java.sql.Array value.
			 * @param parameterIndex 
			 * @param theArray 
			 */
			public setArray(parameterIndex: number, theArray: java.sql.IArray): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			public setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 */
			public setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 */
			public setAsciiStream(parameterName: string, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			public setAsciiStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified SQL NUMERIC parameter in the RowSet command with the data in the supplied java.math.BigDecimal value.
			 * @param parameterIndex 
			 * @param theBigDecimal 
			 */
			public setBigDecimal(parameterIndex: number, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of the specified SQL NUMERIC parameter in the RowSet command with the data in the supplied java.math.BigDecimal value.
			 * @param parameterName 
			 * @param theBigDecimal 
			 */
			public setBigDecimal(parameterName: string, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the binary data in the supplied input stream. Data is read from the input stream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			public setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the binary data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 */
			public setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the binary data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 */
			public setBinaryStream(parameterName: string, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the binary data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			public setBinaryStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied Blob value.
			 * @param parameterIndex 
			 * @param theBlob 
			 */
			public setBlob(parameterIndex: number, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 */
			public setBlob(parameterIndex: number, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			public setBlob(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 */
			public setBlob(parameterName: string, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			public setBlob(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Blob.
			 * @param parameterName 
			 * @param theBlob 
			 */
			public setBlob(parameterName: string, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied boolean.
			 * @param parameterIndex 
			 * @param theBoolean 
			 */
			public setBoolean(parameterIndex: number, theBoolean: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied boolean.
			 * @param parameterName 
			 * @param theBoolean 
			 */
			public setBoolean(parameterName: string, theBoolean: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte value.
			 * @param parameterIndex 
			 * @param theByte 
			 */
			public setByte(parameterIndex: number, theByte: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte value.
			 * @param parameterName 
			 * @param theByte 
			 */
			public setByte(parameterName: string, theByte: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte array value.
			 * @param parameterIndex 
			 * @param theByteArray 
			 */
			public setBytes(parameterIndex: number, theByteArray: native.Array<number>): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte array value.
			 * @param parameterName 
			 * @param theByteArray 
			 */
			public setBytes(parameterName: string, theByteArray: native.Array<number>): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			public setCharacterStream(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			public setCharacterStream(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			public setCharacterStream(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			public setCharacterStream(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Clob.
			 * @param parameterIndex 
			 * @param theClob 
			 */
			public setClob(parameterIndex: number, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			public setClob(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			public setClob(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Clob.
			 * @param parameterName 
			 * @param theClob 
			 */
			public setClob(parameterName: string, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			public setClob(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			public setClob(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the Command property for this RowSet - the command is an SQL query which runs when the execute method is invoked. This property is optional for databases that do not support commands.
			 * @param cmd 
			 */
			public setCommand(cmd: string): void;
			/**
			 * Sets the concurrency property of this RowSet. The default value is ResultSet.CONCUR_READ_ONLY.
			 * @param concurrency 
			 */
			public setConcurrency(concurrency: number): void;
			/**
			 * Sets the database name property for the RowSet.
			 * @param name 
			 */
			public setDataSourceName(name: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date.
			 * @param parameterIndex 
			 * @param theDate 
			 */
			public setDate(parameterIndex: number, theDate: java.sql.Date): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date, where the conversion of the date to an SQL DATE value is calculated using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theDate 
			 * @param theCalendar 
			 */
			public setDate(parameterIndex: number, theDate: java.sql.Date, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date, where the conversion of the Date to an SQL DATE value is calculated using a supplied Calendar.
			 * @param parameterName 
			 * @param theDate 
			 */
			public setDate(parameterName: string, theDate: java.sql.Date): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date, where the conversion of the Date to an SQL DATE value is calculated using a supplied Calendar.
			 * @param parameterName 
			 * @param theDate 
			 * @param theCalendar 
			 */
			public setDate(parameterName: string, theDate: java.sql.Date, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied double.
			 * @param parameterIndex 
			 * @param theDouble 
			 */
			public setDouble(parameterIndex: number, theDouble: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied double.
			 * @param parameterName 
			 * @param theDouble 
			 */
			public setDouble(parameterName: string, theDouble: number): void;
			/**
			 * Sets the escape processing status for this RowSet. If escape processing is on, the driver performs a substitution of the escape syntax with the applicable code before sending an SQL command to the database. The default value for escape processing is true.
			 * @param enable 
			 */
			public setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied float.
			 * @param parameterIndex 
			 * @param theFloat 
			 */
			public setFloat(parameterIndex: number, theFloat: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied float.
			 * @param parameterName 
			 * @param theFloat 
			 */
			public setFloat(parameterName: string, theFloat: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied integer.
			 * @param parameterIndex 
			 * @param theInteger 
			 */
			public setInt(parameterIndex: number, theInteger: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied integer.
			 * @param parameterName 
			 * @param theInteger 
			 */
			public setInt(parameterName: string, theInteger: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied long.
			 * @param parameterIndex 
			 * @param theLong 
			 */
			public setLong(parameterIndex: number, theLong: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied long.
			 * @param parameterName 
			 * @param theLong 
			 */
			public setLong(parameterName: string, theLong: number): void;
			/**
			 * Sets the maximum number of bytes which can be returned for a column value where the column type is one of BINARY, VARBINARY, LONGVARBINARYBINARY, CHAR, VARCHAR, or LONGVARCHAR. Data which exceeds this limit is silently discarded. For portability, a value greater than 256 is recommended.
			 * @param max 
			 */
			public setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows which can be held by the RowSet. Any additional rows are silently discarded.
			 * @param max 
			 */
			public setMaxRows(max: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			public setNCharacterStream(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			public setNCharacterStream(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			public setNCharacterStream(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			public setNCharacterStream(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.NClob.
			 * @param parameterIndex 
			 * @param theNClob 
			 */
			public setNClob(parameterIndex: number, theNClob: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			public setNClob(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			public setNClob(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.NClob.
			 * @param parameterName 
			 * @param theNClob 
			 */
			public setNClob(parameterName: string, theNClob: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			public setNClob(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			public setNClob(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied NString
			 * @param parameterIndex 
			 * @param theNString 
			 */
			public setNString(parameterIndex: number, theNString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied NString.
			 * @param parameterName 
			 * @param theNString 
			 */
			public setNString(parameterName: string, theNString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			public setNull(parameterIndex: number, sqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL. This form of the setNull method should be used for User Defined Types and REF parameters.
			 * @param parameterIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			public setNull(parameterIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL. This form of the <code>setNull</code> method should be used for User Defined Types and REF parameters.
			 * @param parameterName 
			 * @param sqlType 
			 */
			public setNull(parameterName: string, sqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL. This form of the <code>setNull</code> method should be used for User Defined Types and REF parameters.
			 * @param parameterName 
			 * @param sqlType 
			 * @param typeName 
			 */
			public setNull(parameterName: string, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterIndex 
			 * @param theObject 
			 */
			public setObject(parameterIndex: number, theObject: any): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			public setObject(parameterIndex: number, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			public setObject(parameterIndex: number, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterName 
			 * @param theObject 
			 */
			public setObject(parameterName: string, theObject: any): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			public setObject(parameterName: string, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			public setObject(parameterName: string, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the database Password for this RowSet. This property is used when a connection to the database is established. Therefore it should be set prior to invoking the #execute method.
			 * @param password 
			 */
			public setPassword(password: string): void;
			/**
			 * Gets the timeout for the driver when a query operation is executed. If a query takes longer than the timeout, a SQLException is thrown.
			 * @param seconds 
			 */
			public setQueryTimeout(seconds: number): void;
			/**
			 * Sets whether the RowSet is read-only or updatable.
			 * @param readOnly 
			 */
			public setReadOnly(readOnly: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Ref. This is sent to the database as an SQL REF value.
			 * @param parameterIndex 
			 * @param theRef 
			 */
			public setRef(parameterIndex: number, theRef: java.sql.IRef): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied short integer.
			 * @param parameterIndex 
			 * @param theShort 
			 */
			public setShort(parameterIndex: number, theShort: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied short integer.
			 * @param parameterName 
			 * @param theShort 
			 */
			public setShort(parameterName: string, theShort: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied String. The string is placed into the database as a VARCHAR or LONGVARCHAR SQL value, depending on the database limits for the length of VARCHAR values.
			 * @param parameterIndex 
			 * @param theString 
			 */
			public setString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied String. The String is placed into the database as a VARCHAR or LONGVARCHAR SQL value, depending on the database limits for the length of VARCHAR values.
			 * @param parameterName 
			 * @param theString 
			 */
			public setString(parameterName: string, theString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied RowId
			 * @param parameterIndex 
			 * @param theRowId 
			 */
			public setRowId(parameterIndex: number, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied RowId.
			 * @param parameterName 
			 * @param theRowId 
			 */
			public setRowId(parameterName: string, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied SQLXML
			 * @param parameterIndex 
			 * @param theSQLXML 
			 */
			public setSQLXML(parameterIndex: number, theSQLXML: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied SQLXML.
			 * @param parameterName 
			 * @param theSQLXML 
			 */
			public setSQLXML(parameterName: string, theSQLXML: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting it to an SQL TIME value using the system default Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 */
			public setTime(parameterIndex: number, theTime: java.sql.Time): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting it to an SQL TIME value using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 * @param theCalendar 
			 */
			public setTime(parameterIndex: number, theTime: java.sql.Time, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting to an SQL TIME value using a supplied Calendar.
			 * @param parameterName 
			 * @param theTime 
			 */
			public setTime(parameterName: string, theTime: java.sql.Time): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting to an SQL TIME value using a supplied Calendar.
			 * @param parameterName 
			 * @param theTime 
			 * @param theCalendar 
			 */
			public setTime(parameterName: string, theTime: java.sql.Time, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp, converting it to an SQL TIMESTAMP value using the system default Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 */
			public setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp, converting it to an SQL TIMESTAMP value using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 * @param theCalendar 
			 */
			public setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp converting to an SQL TIMESTAMP value using the system default Calendar.
			 * @param parameterName 
			 * @param theTimestamp 
			 */
			public setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp converting to an SQL TIMESTAMP value using a supplied Calendar.
			 * @param parameterName 
			 * @param theTimestamp 
			 * @param theCalendar 
			 */
			public setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the target instance's transaction isolation level to one of a discrete set of possible values. The transaction isolation level defines the policy implemented on the database for maintaining the data values consistent.
			 * @param level 
			 */
			public setTransactionIsolation(level: number): void;
			/**
			 * Sets the type of this RowSet. By default, the type is non-scrollable.
			 * @param type 
			 */
			public setType(type: number): void;
			/**
			 * Sets the mapping of SQL User Defined Types (UDTs) to Java classes. The Java classes must all implement the java.sql.SQLData SQLData interface.
			 * @param theTypeMap 
			 */
			public setTypeMap(theTypeMap: java.util.IMap<string, java.lang.Class<any>>): void;
			/**
			 * Sets the URL used by this RowSet to access the database via a DriverManager. The URL is optional - an alternative is to use a database name to create a connection.
			 * @param theURL 
			 */
			public setUrl(theURL: string): void;
			/**
			 * Sets the URL used by this RowSet to access the database via a <code>DriverManager</code>. The URL is optional - an alternative is to use a Data Source Name to create a connection.
			 * @param parameterIndex 
			 * @param theURL 
			 */
			public setURL(parameterIndex: number, theURL: java.net.URL): void;
			/**
			 * Sets the Username property for the RowSet, used to authenticate a connection to the database.
			 * @param theUsername 
			 */
			public setUsername(theUsername: string): void;
			/**
			 * Moves the cursor to a specified row number in the ResultSet.
			 * @param row 
			 */
			absolute(row: number): boolean;
			/**
			 * Moves the cursor to the end of the ResultSet, after the last row.
			 */
			afterLast(): void;
			/**
			 * Moves the cursor to the start of the ResultSet, before the first row.
			 */
			beforeFirst(): void;
			/**
			 * Cancels any updates made to the current row in the ResultSet.
			 */
			cancelRowUpdates(): void;
			/**
			 * Clears all warnings related to this ResultSet.
			 */
			clearWarnings(): void;
			/**
			 * Releases this ResultSet's database and JDBC resources. You are strongly advised to use this method rather than relying on the release being done when the ResultSet's finalize method is called during garbage collection process. Note that the close() method might take some time to complete since it is dependent on the behavior of the connection to the database and the database itself.
			 */
			close(): void;
			/**
			 * Deletes the current row from the ResultSet and from the underlying database.
			 */
			deleteRow(): void;
			/**
			 * Gets the index number for a column in the ResultSet from the provided column name.
			 * @param columnName 
			 */
			findColumn(columnName: string): number;
			/**
			 * Shifts the cursor position to the first row in the ResultSet.
			 */
			first(): boolean;
			/**
			 * Gets the content of a column specified by column index in the current row of this ResultSet as a java.sql.Array.
			 * @param columnIndex 
			 */
			getArray(columnIndex: number): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Array.
			 * @param colName 
			 */
			getArray(colName: string): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column index as an ASCII character stream.
			 * @param columnIndex 
			 */
			getAsciiStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as an ASCII character stream.
			 * @param columnName 
			 */
			getAsciiStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 */
			getBigDecimal(columnIndex: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 * @param scale 
			 */
			getBigDecimal(columnIndex: number, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 */
			getBigDecimal(columnName: string): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 * @param scale 
			 */
			getBigDecimal(columnName: string, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a binary stream.
			 * @param columnIndex 
			 */
			getBinaryStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as a binary stream.
			 * @param columnName 
			 */
			getBinaryStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Blob object.
			 * @param columnIndex 
			 */
			getBlob(columnIndex: number): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Blob object.
			 * @param columnName 
			 */
			getBlob(columnName: string): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column index as a boolean .
			 * @param columnIndex 
			 */
			getBoolean(columnIndex: number): boolean;
			/**
			 * Gets the value of a column specified by column name, as a boolean .
			 * @param columnName 
			 */
			getBoolean(columnName: string): boolean;
			/**
			 * Gets the value of a column specified by column index as a byte.
			 * @param columnIndex 
			 */
			getByte(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a byte.
			 * @param columnName 
			 */
			getByte(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a byte array.
			 * @param columnIndex 
			 */
			getBytes(columnIndex: number): native.Array<number>;
			/**
			 * Gets the value of a column specified by column name as a byte array.
			 * @param columnName 
			 */
			getBytes(columnName: string): native.Array<number>;
			/**
			 * Gets the value of a column specified by column index as a java.io.Reader object.
			 * @param columnIndex 
			 */
			getCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Gets the value of a column specified by column name as a java.io.Reader object.
			 * @param columnName 
			 */
			getCharacterStream(columnName: string): java.io.Reader;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Clob.
			 * @param columnIndex 
			 */
			getClob(columnIndex: number): java.sql.IClob;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Clob.
			 * @param colName 
			 */
			getClob(colName: string): java.sql.IClob;
			/**
			 * Gets the concurrency mode of this ResultSet.
			 */
			getConcurrency(): number;
			/**
			 * Gets the name of the SQL cursor of this ResultSet.
			 */
			getCursorName(): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date.
			 * @param columnIndex 
			 */
			getDate(columnIndex: number): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date. This method uses a supplied calendar to compute the Date.
			 * @param columnIndex 
			 * @param cal 
			 */
			getDate(columnIndex: number, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Date.
			 * @param columnName 
			 */
			getDate(columnName: string): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Date object.
			 * @param columnName 
			 * @param cal 
			 */
			getDate(columnName: string, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a double value.
			 * @param columnIndex 
			 */
			getDouble(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name as a double value.
			 * @param columnName 
			 */
			getDouble(columnName: string): any;
			/**
			 * Gets the direction in which rows are fetched for this ResultSet object.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the fetch size (in number of rows) for this ResultSet.
			 */
			getFetchSize(): number;
			/**
			 * Gets the value of a column specified by column index as a float value.
			 * @param columnIndex 
			 */
			getFloat(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a float value.
			 * @param columnName 
			 */
			getFloat(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as an int value.
			 * @param columnIndex 
			 */
			getInt(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as an int value.
			 * @param columnName 
			 */
			getInt(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a long value.
			 * @param columnIndex 
			 */
			getLong(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name, as a long value.
			 * @param columnName 
			 */
			getLong(columnName: string): any;
			/**
			 * Gets the metadata for this ResultSet. This defines the number, types and properties of the columns in the ResultSet.
			 */
			getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnIndex 
			 */
			getObject(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column index as a Java Object.
			 * @param columnIndex 
			 * @param map 
			 */
			getObject(columnIndex: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnName 
			 */
			getObject(columnName: string): any;
			/**
			 * Gets the value of a column specified by column name as a Java Object.
			 * @param columnName 
			 * @param map 
			 */
			getObject(columnName: string, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a column specified by column index as a Java java.sql.Ref.
			 * @param columnIndex 
			 */
			getRef(columnIndex: number): java.sql.IRef;
			/**
			 * Gets the value of a column specified by column name as a Java java.sql.Ref.
			 * @param colName 
			 */
			getRef(colName: string): java.sql.IRef;
			/**
			 * Gets the number of the current row in the ResultSet. Row numbers start at 1 for the first row.
			 */
			getRow(): number;
			/**
			 * Gets the value of a column specified by column index as a short value.
			 * @param columnIndex 
			 */
			getShort(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as a short value.
			 * @param columnName 
			 */
			getShort(columnName: string): number;
			/**
			 * Gets the statement that produced this ResultSet. If the ResultSet was not created by a statement (i.e. because it was returned from one of the DatabaseMetaData methods), null is returned.
			 */
			getStatement(): java.sql.IStatement;
			/**
			 * Gets the value of a column specified by column index as a String.
			 * @param columnIndex 
			 */
			getString(columnIndex: number): string;
			/**
			 * Gets the value of a column specified by column name, as a String.
			 * @param columnName 
			 */
			getString(columnName: string): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value.
			 * @param columnIndex 
			 */
			getTime(columnIndex: number): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnIndex 
			 * @param cal 
			 */
			getTime(columnIndex: number, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Time value.
			 * @param columnName 
			 */
			getTime(columnName: string): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnName 
			 * @param cal 
			 */
			getTime(columnName: string, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Timestamp value.
			 * @param columnIndex 
			 */
			getTimestamp(columnIndex: number): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnIndex 
			 * @param cal 
			 */
			getTimestamp(columnIndex: number, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value.
			 * @param columnName 
			 */
			getTimestamp(columnName: string): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnName 
			 * @param cal 
			 */
			getTimestamp(columnName: string, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the type of the ResultSet.
			 */
			getType(): number;
			/**
			 * Gets the value of the column as an InputStream of unicode characters.
			 * @param columnIndex 
			 */
			getUnicodeStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of the column as an InputStream of Unicode characters.
			 * @param columnName 
			 */
			getUnicodeStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.net.URL.
			 * @param columnIndex 
			 */
			getURL(columnIndex: number): java.net.URL;
			/**
			 * Gets the value of a column specified by column name as a java.net.URL object.
			 * @param columnName 
			 */
			getURL(columnName: string): java.net.URL;
			/**
			 * Gets the first warning generated by calls on this ResultSet. Subsequent warnings on this ResultSet are chained to the first one.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Insert the insert row into the ResultSet and into the underlying database. The cursor must be set to the Insert Row before this method is invoked.
			 */
			insertRow(): void;
			/**
			 * Gets if the cursor is after the last row of the ResultSet.
			 */
			isAfterLast(): boolean;
			/**
			 * Gets if the cursor is before the first row of the ResultSet.
			 */
			isBeforeFirst(): boolean;
			/**
			 * Gets if the cursor is on the first row of the ResultSet.
			 */
			isFirst(): boolean;
			/**
			 * Gets if the cursor is on the last row of the ResultSet
			 */
			isLast(): boolean;
			/**
			 * Shifts the cursor position to the last row of the ResultSet.
			 */
			last(): boolean;
			/**
			 * Moves the cursor to the remembered position, namely the row that was the current row before a call to moveToInsertRow. This only applies if the cursor is on the Insert Row.
			 */
			moveToCurrentRow(): void;
			/**
			 * Moves the cursor position to the Insert Row. The current position is remembered and the cursor is positioned at the Insert Row. The columns in the Insert Row should be filled in with the appropriate update methods, before calling insertRow to insert the new row into the database.
			 */
			moveToInsertRow(): void;
			/**
			 * Shifts the cursor position down one row in this ResultSet object.
			 */
			next(): boolean;
			/**
			 * Relocates the cursor position to the preceding row in this ResultSet.
			 */
			previous(): boolean;
			/**
			 * Refreshes the current row with its most up to date value in the database. Must not be called when the cursor is on the Insert Row.
			 */
			refreshRow(): void;
			/**
			 * Moves the cursor position up or down by a specified number of rows. If the new position is beyond the start row (or end row), the cursor position is set before the first row (or, respectively, after the last row).
			 * @param rows 
			 */
			relative(rows: number): boolean;
			/**
			 * Indicates whether a row has been deleted. This method depends on whether the JDBC driver and database can detect deletions.
			 */
			rowDeleted(): boolean;
			/**
			 * Indicates whether the current row has had an insertion operation. This method depends on whether the JDBC driver and database can detect insertions.
			 */
			rowInserted(): boolean;
			/**
			 * Indicates whether the current row has been updated. This method depends on whether the JDBC driver and database can detect updates.
			 */
			rowUpdated(): boolean;
			/**
			 * Indicates which direction (forward/reverse) will be used to process the rows of this ResultSet object. This is treated as a hint by the JDBC driver.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Indicates the number of rows to fetch from the database when extra rows are required for this ResultSet. This used as a hint to the JDBC driver.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Array value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateArray(columnIndex: number, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Array value.
			 * @param columnName 
			 * @param x 
			 */
			updateArray(columnName: string, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column index with an ASCII stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateAsciiStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with an Ascii stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			updateAsciiStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.BigDecimal value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBigDecimal(columnIndex: number, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column name with a java.sql.BigDecimal value.
			 * @param columnName 
			 * @param x 
			 */
			updateBigDecimal(columnName: string, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column index with a binary stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateBinaryStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with a binary stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			updateBinaryStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Blob value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBlob(columnIndex: number, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Blob value.
			 * @param columnName 
			 * @param x 
			 */
			updateBlob(columnName: string, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column index with a boolean value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBoolean(columnIndex: number, x: boolean): void;
			/**
			 * Updates a column specified by a column name with a boolean value.
			 * @param columnName 
			 * @param x 
			 */
			updateBoolean(columnName: string, x: boolean): void;
			/**
			 * Updates a column specified by a column index with a byte value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateByte(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a byte value.
			 * @param columnName 
			 * @param x 
			 */
			updateByte(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a byte array value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBytes(columnIndex: number, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column name with a byte array value.
			 * @param columnName 
			 * @param x 
			 */
			updateBytes(columnName: string, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column index with a character stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column name with a character stream value.
			 * @param columnName 
			 * @param reader 
			 * @param length 
			 */
			updateCharacterStream(columnName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Clob value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateClob(columnIndex: number, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Clob value.
			 * @param columnName 
			 * @param x 
			 */
			updateClob(columnName: string, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Date value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateDate(columnIndex: number, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Date value.
			 * @param columnName 
			 * @param x 
			 */
			updateDate(columnName: string, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column index with a double value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateDouble(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a double value.
			 * @param columnName 
			 * @param x 
			 */
			updateDouble(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a float value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateFloat(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a float value.
			 * @param columnName 
			 * @param x 
			 */
			updateFloat(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with an int value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateInt(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with an int value.
			 * @param columnName 
			 * @param x 
			 */
			updateInt(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a long value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateLong(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a long value.
			 * @param columnName 
			 * @param x 
			 */
			updateLong(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a null value.
			 * @param columnIndex 
			 */
			updateNull(columnIndex: number): void;
			/**
			 * Updates a column specified by a column name with a null value.
			 * @param columnName 
			 */
			updateNull(columnName: string): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateObject(columnIndex: number, x: any): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 * @param scale 
			 */
			updateObject(columnIndex: number, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 */
			updateObject(columnName: string, x: any): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 * @param scale 
			 */
			updateObject(columnName: string, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Ref value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateRef(columnIndex: number, x: java.sql.IRef): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Ref value.
			 * @param columnName 
			 * @param x 
			 */
			updateRef(columnName: string, x: java.sql.IRef): void;
			/**
			 * Updates the database with the new contents of the current row of this ResultSet object.
			 */
			updateRow(): void;
			/**
			 * Updates a column specified by a column index with a short value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateShort(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a short value.
			 * @param columnName 
			 * @param x 
			 */
			updateShort(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a String value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateString(columnIndex: number, x: string): void;
			/**
			 * Updates a column specified by a column name with a String value.
			 * @param columnName 
			 * @param x 
			 */
			updateString(columnName: string, x: string): void;
			/**
			 * Updates a column specified by a column index with a Time value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateTime(columnIndex: number, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column name with a Time value.
			 * @param columnName 
			 * @param x 
			 */
			updateTime(columnName: string, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column index with a Timestamp value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateTimestamp(columnIndex: number, x: java.sql.Timestamp): void;
			/**
			 * Updates a column specified by column name with a Timestamp value.
			 * @param columnName 
			 * @param x 
			 */
			updateTimestamp(columnName: string, x: java.sql.Timestamp): void;
			/**
			 * Determines whether the last column read from this ResultSet contained SQL NULL.
			 */
			wasNull(): boolean;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the 1-based columnIndex. SQLException
			 */
			getRowId(columnIndex: number): java.sql.IRowId;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the named column. SQLException
			 */
			getRowId(columnLabel: string): java.sql.IRowId;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateRowId(columnIndex: number, value: java.sql.IRowId): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateRowId(columnLabel: string, value: java.sql.IRowId): void;
			/**
			 * Returns the holdability of this result set: #HOLD_CURSORS_OVER_COMMIT or #CLOSE_CURSORS_AT_COMMIT. SQLException
			 */
			getHoldability(): number;
			/**
			 * Returns true if this result set has been closed, false otherwise. SQLException
			 */
			isClosed(): boolean;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNString(columnIndex: number, nString: string): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNString(columnLabel: string, nString: string): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, nClob: java.sql.INClob): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, nClob: java.sql.INClob): void;
			/**
			 * Returns an NClob corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNClob(columnIndex: number): java.sql.INClob;
			/**
			 * Returns an NClob corresponding to the value in the named column. SQLException
			 */
			getNClob(columnLabel: string): java.sql.INClob;
			/**
			 * Returns an SQLXML corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getSQLXML(columnIndex: number): java.sql.ISQLXML;
			/**
			 * Returns an SQLXML corresponding to the value in the named column. SQLException
			 */
			getSQLXML(columnLabel: string): java.sql.ISQLXML;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateSQLXML(columnIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateSQLXML(columnLabel: string, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Returns a String corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNString(columnIndex: number): string;
			/**
			 * Returns a String corresponding to the value in the named column. SQLException
			 */
			getNString(columnLabel: string): string;
			/**
			 * Returns a Reader corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Returns a Reader corresponding to the value in the named column. SQLException
			 */
			getNCharacterStream(columnLabel: string): java.io.Reader;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnLabel: string, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateAsciiStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBinaryStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateAsciiStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBinaryStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnLabel: string, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface provided by a RowSet object to let either a RowSetReader or a RowSetWriter access its internal state, thereby providing facilities to read and update the state of the RowSet.
		 */
		export class RowSetInternal implements javax.sql.IRowSetInternal {
			constructor(implementation: javax.sql.IRowSetInternal);
			/**
			 * Gets the connection associated with this RowSet object.
			 */
			public getConnection(): java.sql.IConnection;
			/**
			 * Gets the ResultSet that was the original (unmodified) content of the RowSet.
			 */
			public getOriginal(): java.sql.IResultSet;
			/**
			 * Gets the original value of the current row only. If the current row did not have an original value, then an empty value is returned.
			 */
			public getOriginalRow(): java.sql.IResultSet;
			/**
			 * Gets the parameter values that have been set for this RowSet's command.
			 */
			public getParams(): native.Array<any>;
			/**
			 * Sets RowSetMetaData for this RowSet. The RowSetMetaData is used by a RowSetReader to set values giving information about the RowSet's columns.
			 * @param theMetaData 
			 */
			public setMetaData(theMetaData: javax.sql.IRowSetMetaData): void;
		}
		/**
		 * An interface for the creation of ConnectionPoolDataSource objects. Used internally within the package.
		 */
		export class ConnectionPoolDataSource implements javax.sql.ICommonDataSource, javax.sql.IConnectionPoolDataSource {
			constructor(implementation: javax.sql.IConnectionPoolDataSource);
			/**
			 * Creates a connection to a database which can then be used as a pooled connection.
			 */
			public getPooledConnection(): javax.sql.IPooledConnection;
			/**
			 * Creates a connection to a database, using the supplied user name and password, which can then be used as a pooled connection.
			 * @param theUser 
			 * @param thePassword 
			 */
			public getPooledConnection(theUser: string, thePassword: string): javax.sql.IPooledConnection;
			/**
			 * While attempting to connect to a database, this method get the maximum time in seconds that this data source can wait.
			 */
			getLoginTimeout(): number;
			/**
			 * Retrieves a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 */
			getLogWriter(): java.io.PrintWriter;
			/**
			 * While attempting to connect to a database, this method set the maximum time in seconds that this data source can wait.
			 * @param seconds 
			 */
			setLoginTimeout(seconds: number): void;
			/**
			 * Set a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 * @param out 
			 */
			setLogWriter(out: java.io.PrintWriter): void;
		}
		/**
		 * An interface provided by a RowSet object to let either a RowSetReader or a RowSetWriter access its internal state, thereby providing facilities to read and update the state of the RowSet.
		 */
		interface IRowSetInternal {
			/**
			 * Gets the connection associated with this RowSet object.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Gets the ResultSet that was the original (unmodified) content of the RowSet.
			 */
			getOriginal(): java.sql.IResultSet;
			/**
			 * Gets the original value of the current row only. If the current row did not have an original value, then an empty value is returned.
			 */
			getOriginalRow(): java.sql.IResultSet;
			/**
			 * Gets the parameter values that have been set for this RowSet's command.
			 */
			getParams(): native.Array<any>;
			/**
			 * Sets RowSetMetaData for this RowSet. The RowSetMetaData is used by a RowSetReader to set values giving information about the RowSet's columns.
			 * @param theMetaData 
			 */
			setMetaData(theMetaData: javax.sql.IRowSetMetaData): void;
		}
		/**
		 * An interface which provides facilities for getting information about the columns in a RowSet.
		 */
		interface IRowSetMetaData extends java.sql.IResultSetMetaData {
			/**
			 * Sets automatic numbering for a specified column in the RowSet. If automatic numbering is on, the column is read-only. The default value for the auto increment parameter is false.
			 * @param columnIndex 
			 * @param autoIncrement 
			 */
			setAutoIncrement(columnIndex: number, autoIncrement: boolean): void;
			/**
			 * Sets the case sensitive property for a specified column in the RowSet. The default is that the column is not case sensitive.
			 * @param columnIndex 
			 * @param caseSensitive 
			 */
			setCaseSensitive(columnIndex: number, caseSensitive: boolean): void;
			/**
			 * Sets the catalog name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param catalogName 
			 */
			setCatalogName(columnIndex: number, catalogName: string): void;
			/**
			 * Sets the number of columns contained in the row set.
			 * @param columnCount 
			 */
			setColumnCount(columnCount: number): void;
			/**
			 * Sets the normal maximum width in characters for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param displaySize 
			 */
			setColumnDisplaySize(columnIndex: number, displaySize: number): void;
			/**
			 * Sets the suggested name as label for the column contained in the RowSet. The label is an alias for printing and displaying purposes.
			 * @param columnIndex 
			 * @param theLabel 
			 */
			setColumnLabel(columnIndex: number, theLabel: string): void;
			/**
			 * Sets the column name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theColumnName 
			 */
			setColumnName(columnIndex: number, theColumnName: string): void;
			/**
			 * Sets the SQL type for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theSQLType 
			 */
			setColumnType(columnIndex: number, theSQLType: number): void;
			/**
			 * Sets the type name for a specified column in the RowSet, where the data type is specific to the data source.
			 * @param columnIndex 
			 * @param theTypeName 
			 */
			setColumnTypeName(columnIndex: number, theTypeName: string): void;
			/**
			 * Sets whether a specified column is a currency value. The default value is false.
			 * @param columnIndex 
			 * @param isCurrency 
			 */
			setCurrency(columnIndex: number, isCurrency: boolean): void;
			/**
			 * Sets whether a specified column can contain SQL NULL values.
			 * @param columnIndex 
			 * @param nullability 
			 */
			setNullable(columnIndex: number, nullability: number): void;
			/**
			 * Sets the number of decimal digits for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param thePrecision 
			 */
			setPrecision(columnIndex: number, thePrecision: number): void;
			/**
			 * Declares how many decimal digits there should be after a decimal point for the column specified by columnIndex.
			 * @param columnIndex 
			 * @param theScale 
			 */
			setScale(columnIndex: number, theScale: number): void;
			/**
			 * Sets the schema name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theSchemaName 
			 */
			setSchemaName(columnIndex: number, theSchemaName: string): void;
			/**
			 * Sets whether a specified column can be used in a search involving a WHERE clause. The default value is false.
			 * @param columnIndex 
			 * @param isSearchable 
			 */
			setSearchable(columnIndex: number, isSearchable: boolean): void;
			/**
			 * Sets if a specified column can contain signed numbers.
			 * @param columnIndex 
			 * @param isSigned 
			 */
			setSigned(columnIndex: number, isSigned: boolean): void;
			/**
			 * Sets the table name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theTableName 
			 */
			setTableName(columnIndex: number, theTableName: string): void;
			/**
			 * Returns the title of an indexed column's catalog.
			 * @param column 
			 */
			getCatalogName(column: number): string;
			/**
			 * Returns the fully-qualified type of the class that is produced when invoking ResultSet.getObject to recover this column's value.
			 * @param column 
			 */
			getColumnClassName(column: number): string;
			/**
			 * Returns number of columns contained in the associated result set.
			 */
			getColumnCount(): number;
			/**
			 * Returns the indexed column's standard maximum width, expressed in number of characters.
			 * @param column 
			 */
			getColumnDisplaySize(column: number): number;
			/**
			 * Returns a recommended title for the indexed column, to be used when the title needs to be displayed.
			 * @param column 
			 */
			getColumnLabel(column: number): string;
			/**
			 * Returns the title of the indexed column.
			 * @param column 
			 */
			getColumnName(column: number): string;
			/**
			 * Returns the type of the indexed column as SQL type code.
			 * @param column 
			 */
			getColumnType(column: number): number;
			/**
			 * Returns the type name of the indexed column.
			 * @param column 
			 */
			getColumnTypeName(column: number): string;
			/**
			 * Returns the decimal precision of the indexed column.
			 * @param column 
			 */
			getPrecision(column: number): number;
			/**
			 * Returns the number of digits to the right of the decimal point of the indexed column.
			 * @param column 
			 */
			getScale(column: number): number;
			/**
			 * Returns the name of the indexed columns schema.
			 * @param column 
			 */
			getSchemaName(column: number): string;
			/**
			 * Returns the title of the indexed columns table.
			 * @param column 
			 */
			getTableName(column: number): string;
			/**
			 * Returns an indication of whether the indexed column is automatically incremented and is therefore read-only.
			 * @param column 
			 */
			isAutoIncrement(column: number): boolean;
			/**
			 * Returns an indication of whether the case of the indexed column is important.
			 * @param column 
			 */
			isCaseSensitive(column: number): boolean;
			/**
			 * Returns whether the indexed column contains a monetary amount.
			 * @param column 
			 */
			isCurrency(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be successful.
			 * @param column 
			 */
			isDefinitelyWritable(column: number): boolean;
			/**
			 * Returns whether the indexed column is nullable.
			 * @param column 
			 */
			isNullable(column: number): number;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be unsuccessful.
			 * @param column 
			 */
			isReadOnly(column: number): boolean;
			/**
			 * Returns an indication of whether the indexed column is searchable.
			 * @param column 
			 */
			isSearchable(column: number): boolean;
			/**
			 * Returns an indication of whether the values contained in the indexed column are signed.
			 * @param column 
			 */
			isSigned(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is possible.
			 * @param column 
			 */
			isWritable(column: number): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface which provides functionality for a disconnected RowSet to get data from a database into its rows. The RowSet calls the RowSetReader interface when the RowSet's execute method is invoked - a RowSetReader must first be registered with the RowSet for this to work.
		 */
		export class RowSetReader implements javax.sql.IRowSetReader {
			constructor(implementation: javax.sql.IRowSetReader);
			/**
			 * Reads new data into the RowSet. The calling RowSet object must itself implement the RowSetInternal interface and the RowSetReader must be registered as a reader on the RowSet.
			 * @param theCaller 
			 */
			public readData(theCaller: javax.sql.IRowSetInternal): void;
		}
		/**
		 * An interface used to send notification of events occurring in the context of a RowSet. To receive the notification events, an object must implement the RowSetListener interface and then register itself with the RowSet of interest using the RowSet#addRowSetListener(RowSetListener) method.
		 */
		interface IRowSetListener extends java.util.IEventListener {
			/**
			 * Notifies the listener that the RowSet's cursor in theEvent.getSource has moved.
			 * @param theEvent 
			 */
			cursorMoved(theEvent: javax.sql.RowSetEvent): void;
			/**
			 * Notifies the listener that one of the RowSet's rows in theEvent.getSource has changed.
			 * @param theEvent 
			 */
			rowChanged(theEvent: javax.sql.RowSetEvent): void;
			/**
			 * Notifies the listener that the RowSet's entire contents in theEvent.getSource have been updated (an example is the execution of a command which retrieves new data from the database).
			 * @param theEvent 
			 */
			rowSetChanged(theEvent: javax.sql.RowSetEvent): void;
		}
		/**
		 * An interface which provides functionality for a disconnected RowSet to put data updates back to the data source from which the RowSet was originally populated. An object implementing this interface is called a writer.
		 */
		export class RowSetWriter implements javax.sql.IRowSetWriter {
			constructor(implementation: javax.sql.IRowSetWriter);
			/**
			 * Writes changes made in the RowSet, which is associated with this RowSetWriter, back to the database.
			 * @param theRowSet 
			 */
			public writeData(theRowSet: javax.sql.IRowSetInternal): boolean;
		}
		/**
		 * An interface which provides functionality for a disconnected RowSet to get data from a database into its rows. The RowSet calls the RowSetReader interface when the RowSet's execute method is invoked - a RowSetReader must first be registered with the RowSet for this to work.
		 */
		interface IRowSetReader {
			/**
			 * Reads new data into the RowSet. The calling RowSet object must itself implement the RowSetInternal interface and the RowSetReader must be registered as a reader on the RowSet.
			 * @param theCaller 
			 */
			readData(theCaller: javax.sql.IRowSetInternal): void;
		}
		/**
		 * An object that registers to be notified of events that occur on PreparedStatements that are in the Statement pool.
		 */
		export class StatementEventListener implements java.util.IEventListener, javax.sql.IStatementEventListener {
			constructor(implementation: javax.sql.IStatementEventListener);
			/**
			 * The driver calls this method on all StatementEventListeners registered on the connection when it detects that a PreparedStatement is closed.
			 * @param event 
			 */
			public statementClosed(event: javax.sql.StatementEvent): void;
			/**
			 * The driver calls this method on all StatementEventListeners registered on the connection when it detects that a PreparedStatement is invalid, before a SQLException is thrown
			 * @param event 
			 */
			public statementErrorOccurred(event: javax.sql.StatementEvent): void;
		}
		/**
		 * Interface that defines the methods which are common between DataSource, XADataSource and ConnectionPoolDataSource.
		 */
		export class CommonDataSource implements javax.sql.ICommonDataSource {
			constructor(implementation: javax.sql.ICommonDataSource);
			/**
			 * While attempting to connect to a database, this method get the maximum time in seconds that this data source can wait.
			 */
			public getLoginTimeout(): number;
			/**
			 * Retrieves a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 */
			public getLogWriter(): java.io.PrintWriter;
			/**
			 * While attempting to connect to a database, this method set the maximum time in seconds that this data source can wait.
			 * @param seconds 
			 */
			public setLoginTimeout(seconds: number): void;
			/**
			 * Set a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 * @param out 
			 */
			public setLogWriter(out: java.io.PrintWriter): void;
		}
		/**
		 * An interface for the creation of Connection objects which represent a connection to a database. This interface is an alternative to the java.sql.DriverManager.
		 */
		interface IDataSource extends javax.sql.ICommonDataSource, java.sql.IWrapper {
			/**
			 * Creates a connection to the database represented by this DataSource.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Creates a connection to the database represented by this DataSource, using the supplied user name and password.
			 * @param theUsername 
			 * @param thePassword 
			 */
			getConnection(theUsername: string, thePassword: string): java.sql.IConnection;
			/**
			 * While attempting to connect to a database, this method get the maximum time in seconds that this data source can wait.
			 */
			getLoginTimeout(): number;
			/**
			 * Retrieves a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 */
			getLogWriter(): java.io.PrintWriter;
			/**
			 * While attempting to connect to a database, this method set the maximum time in seconds that this data source can wait.
			 * @param seconds 
			 */
			setLoginTimeout(seconds: number): void;
			/**
			 * Set a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 * @param out 
			 */
			setLogWriter(out: java.io.PrintWriter): void;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface for the creation of Connection objects which represent a connection to a database. This interface is an alternative to the java.sql.DriverManager.
		 */
		export class DataSource implements javax.sql.ICommonDataSource, java.sql.IWrapper, javax.sql.IDataSource {
			constructor(implementation: javax.sql.IDataSource);
			/**
			 * Creates a connection to the database represented by this DataSource.
			 */
			public getConnection(): java.sql.IConnection;
			/**
			 * Creates a connection to the database represented by this DataSource, using the supplied user name and password.
			 * @param theUsername 
			 * @param thePassword 
			 */
			public getConnection(theUsername: string, thePassword: string): java.sql.IConnection;
			/**
			 * While attempting to connect to a database, this method get the maximum time in seconds that this data source can wait.
			 */
			getLoginTimeout(): number;
			/**
			 * Retrieves a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 */
			getLogWriter(): java.io.PrintWriter;
			/**
			 * While attempting to connect to a database, this method set the maximum time in seconds that this data source can wait.
			 * @param seconds 
			 */
			setLoginTimeout(seconds: number): void;
			/**
			 * Set a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 * @param out 
			 */
			setLogWriter(out: java.io.PrintWriter): void;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface which provides facilities for handling connections to a database which are pooled.
		 */
		export class PooledConnection implements javax.sql.IPooledConnection {
			constructor(implementation: javax.sql.IPooledConnection);
			/**
			 * Registers the supplied ConnectionEventListener with this PooledConnection. Once registered, the ConnectionEventListener will receive ConnectionEvent events when they occur in the PooledConnection.
			 * @param theListener 
			 */
			public addConnectionEventListener(theListener: javax.sql.IConnectionEventListener): void;
			/**
			 * Closes the connection to the database held by this PooledConnection. This method should not be called directly by application code - it is intended only for the connection pool manager component.
			 */
			public close(): void;
			/**
			 * Creates a connection to the database. This method is typically called by the connection pool manager when an application invokes the method DataSource.getConnection() and there are no PooledConnection objects available in the connection pool.
			 */
			public getConnection(): java.sql.IConnection;
			/**
			 * Unregisters the supplied ConnectionEventListener from this PooledConnection. Once unregistered, the ConnectionEventListener will no longer receive events occurring in the PooledConnection.
			 * @param theListener 
			 */
			public removeConnectionEventListener(theListener: javax.sql.IConnectionEventListener): void;
			/**
			 * Add a StatementEventListener to this PooledConnection object.
			 * @param listener 
			 */
			public addStatementEventListener(listener: javax.sql.IStatementEventListener): void;
			/**
			 * Remove a StatementEventListener from this PooledConnection object.
			 * @param listener 
			 */
			public removeStatementEventListener(listener: javax.sql.IStatementEventListener): void;
		}
		/**
		 * An interface which provides means to access data which persists on a database. It extends the functionality of java.sql.ResultSet ResultSet into a form that it can be used as a JavaBean component, suited for a visual programming environment.
		 */
		interface IRowSet extends java.sql.IResultSet {
			/**
			 * Registers the supplied RowSetListener with this RowSet. Once registered, the RowSetListener is notified of events generated by the RowSet.
			 * @param theListener 
			 */
			addRowSetListener(theListener: javax.sql.IRowSetListener): void;
			/**
			 * Clears the parameters previously set for this RowSet.
			 */
			clearParameters(): void;
			/**
			 * Fetches data for this RowSet from the database. If successful, any existing data for the RowSet is discarded and its metadata is overwritten.
			 */
			execute(): void;
			/**
			 * Gets the RowSet's command property.
			 */
			getCommand(): string;
			/**
			 * Gets the ODBC Data Source Name property associated with this RowSet. The database name can be used to find a DataSource which has been registered with a naming service - the DataSource can then be used to create a connection to the database.
			 */
			getDataSourceName(): string;
			/**
			 * Reports if escape processing is enabled for this RowSet. If escape processing is on, the driver performs a substitution of the escape syntax with the applicable code before sending an SQL command to the database. The default value for escape processing is true.
			 */
			getEscapeProcessing(): boolean;
			/**
			 * Gets the maximum number of bytes that can be returned for column values which are of type BINARY, VARBINARY, LONGVARBINARYBINARY, CHAR, VARCHAR, or LONGVARCHAR. Excess data is silently discarded if the number is exceeded.
			 */
			getMaxFieldSize(): number;
			/**
			 * Gets the maximum number of rows for this RowSet. Excess rows are discarded silently if the limit is exceeded.
			 */
			getMaxRows(): number;
			/**
			 * Gets the value of the password property for this RowSet. This property is used when a connection to the database is established. Therefore it should be set prior to invoking the #execute method.
			 */
			getPassword(): string;
			/**
			 * Gets the timeout for the driver when a query operation is executed. If a query takes longer than the timeout then a SQLException is thrown.
			 */
			getQueryTimeout(): number;
			/**
			 * Gets the transaction isolation level property set for this RowSet. The transaction isolation level defines the policy implemented on the database for maintaining the data values consistent.
			 */
			getTransactionIsolation(): number;
			/**
			 * Gets the custom mapping of SQL User-Defined Types (UDTs) and Java classes for this RowSet, if applicable.
			 */
			getTypeMap(): java.util.IMap<string, java.lang.Class<any>>;
			/**
			 * Gets the URL property value for this RowSet. If there is no DataSource object specified, the RowSet uses the URL to establish a connection to the database. The default value for the URL is null.
			 */
			getUrl(): string;
			/**
			 * Gets the value of the username property for this RowSet. The username is used when establishing a connection to the database and should be set before the execute method is invoked.
			 */
			getUsername(): string;
			/**
			 * Indicates if this RowSet is read-only.
			 */
			isReadOnly(): boolean;
			/**
			 * Removes a specified RowSetListener object from the set of listeners which will be notified of events by this RowSet.
			 * @param theListener 
			 */
			removeRowSetListener(theListener: javax.sql.IRowSetListener): void;
			/**
			 * Sets the specified ARRAY parameter in the RowSet command with the supplied java.sql.Array value.
			 * @param parameterIndex 
			 * @param theArray 
			 */
			setArray(parameterIndex: number, theArray: java.sql.IArray): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 */
			setAsciiStream(parameterIndex: number, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 */
			setAsciiStream(parameterName: string, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the ASCII data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			setAsciiStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified SQL NUMERIC parameter in the RowSet command with the data in the supplied java.math.BigDecimal value.
			 * @param parameterIndex 
			 * @param theBigDecimal 
			 */
			setBigDecimal(parameterIndex: number, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of the specified SQL NUMERIC parameter in the RowSet command with the data in the supplied java.math.BigDecimal value.
			 * @param parameterName 
			 * @param theBigDecimal 
			 */
			setBigDecimal(parameterName: string, theBigDecimal: java.math.BigDecimal): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the binary data in the supplied input stream. Data is read from the input stream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the binary data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 */
			setBinaryStream(parameterIndex: number, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the binary data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 */
			setBinaryStream(parameterName: string, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the binary data in the supplied java.io.InputStream value. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			setBinaryStream(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied Blob value.
			 * @param parameterIndex 
			 * @param theBlob 
			 */
			setBlob(parameterIndex: number, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 */
			setBlob(parameterIndex: number, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterIndex 
			 * @param theInputStream 
			 * @param length 
			 */
			setBlob(parameterIndex: number, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 */
			setBlob(parameterName: string, theInputStream: java.io.InputStream): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.InputStream. Data is read from the InputStream until end-of-file is reached.
			 * @param parameterName 
			 * @param theInputStream 
			 * @param length 
			 */
			setBlob(parameterName: string, theInputStream: java.io.InputStream, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Blob.
			 * @param parameterName 
			 * @param theBlob 
			 */
			setBlob(parameterName: string, theBlob: java.sql.IBlob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied boolean.
			 * @param parameterIndex 
			 * @param theBoolean 
			 */
			setBoolean(parameterIndex: number, theBoolean: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied boolean.
			 * @param parameterName 
			 * @param theBoolean 
			 */
			setBoolean(parameterName: string, theBoolean: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte value.
			 * @param parameterIndex 
			 * @param theByte 
			 */
			setByte(parameterIndex: number, theByte: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte value.
			 * @param parameterName 
			 * @param theByte 
			 */
			setByte(parameterName: string, theByte: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte array value.
			 * @param parameterIndex 
			 * @param theByteArray 
			 */
			setBytes(parameterIndex: number, theByteArray: native.Array<number>): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied byte array value.
			 * @param parameterName 
			 * @param theByteArray 
			 */
			setBytes(parameterName: string, theByteArray: native.Array<number>): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			setCharacterStream(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			setCharacterStream(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			setCharacterStream(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the sequence of Unicode characters carried by the supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			setCharacterStream(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Clob.
			 * @param parameterIndex 
			 * @param theClob 
			 */
			setClob(parameterIndex: number, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			setClob(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			setClob(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Clob.
			 * @param parameterName 
			 * @param theClob 
			 */
			setClob(parameterName: string, theClob: java.sql.IClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			setClob(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			setClob(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the Command property for this RowSet - the command is an SQL query which runs when the execute method is invoked. This property is optional for databases that do not support commands.
			 * @param cmd 
			 */
			setCommand(cmd: string): void;
			/**
			 * Sets the concurrency property of this RowSet. The default value is ResultSet.CONCUR_READ_ONLY.
			 * @param concurrency 
			 */
			setConcurrency(concurrency: number): void;
			/**
			 * Sets the database name property for the RowSet.
			 * @param name 
			 */
			setDataSourceName(name: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date.
			 * @param parameterIndex 
			 * @param theDate 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date, where the conversion of the date to an SQL DATE value is calculated using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theDate 
			 * @param theCalendar 
			 */
			setDate(parameterIndex: number, theDate: java.sql.Date, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date, where the conversion of the Date to an SQL DATE value is calculated using a supplied Calendar.
			 * @param parameterName 
			 * @param theDate 
			 */
			setDate(parameterName: string, theDate: java.sql.Date): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.Date, where the conversion of the Date to an SQL DATE value is calculated using a supplied Calendar.
			 * @param parameterName 
			 * @param theDate 
			 * @param theCalendar 
			 */
			setDate(parameterName: string, theDate: java.sql.Date, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied double.
			 * @param parameterIndex 
			 * @param theDouble 
			 */
			setDouble(parameterIndex: number, theDouble: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied double.
			 * @param parameterName 
			 * @param theDouble 
			 */
			setDouble(parameterName: string, theDouble: number): void;
			/**
			 * Sets the escape processing status for this RowSet. If escape processing is on, the driver performs a substitution of the escape syntax with the applicable code before sending an SQL command to the database. The default value for escape processing is true.
			 * @param enable 
			 */
			setEscapeProcessing(enable: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied float.
			 * @param parameterIndex 
			 * @param theFloat 
			 */
			setFloat(parameterIndex: number, theFloat: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied float.
			 * @param parameterName 
			 * @param theFloat 
			 */
			setFloat(parameterName: string, theFloat: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied integer.
			 * @param parameterIndex 
			 * @param theInteger 
			 */
			setInt(parameterIndex: number, theInteger: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied integer.
			 * @param parameterName 
			 * @param theInteger 
			 */
			setInt(parameterName: string, theInteger: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied long.
			 * @param parameterIndex 
			 * @param theLong 
			 */
			setLong(parameterIndex: number, theLong: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the supplied long.
			 * @param parameterName 
			 * @param theLong 
			 */
			setLong(parameterName: string, theLong: number): void;
			/**
			 * Sets the maximum number of bytes which can be returned for a column value where the column type is one of BINARY, VARBINARY, LONGVARBINARYBINARY, CHAR, VARCHAR, or LONGVARCHAR. Data which exceeds this limit is silently discarded. For portability, a value greater than 256 is recommended.
			 * @param max 
			 */
			setMaxFieldSize(max: number): void;
			/**
			 * Sets the maximum number of rows which can be held by the RowSet. Any additional rows are silently discarded.
			 * @param max 
			 */
			setMaxRows(max: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			setNCharacterStream(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			setNCharacterStream(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			setNCharacterStream(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			setNCharacterStream(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.NClob.
			 * @param parameterIndex 
			 * @param theNClob 
			 */
			setNClob(parameterIndex: number, theNClob: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 */
			setNClob(parameterIndex: number, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterIndex 
			 * @param theReader 
			 * @param length 
			 */
			setNClob(parameterIndex: number, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.sql.NClob.
			 * @param parameterName 
			 * @param theNClob 
			 */
			setNClob(parameterName: string, theNClob: java.sql.INClob): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 */
			setNClob(parameterName: string, theReader: java.io.Reader): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command with the value of a supplied java.io.Reader.
			 * @param parameterName 
			 * @param theReader 
			 * @param length 
			 */
			setNClob(parameterName: string, theReader: java.io.Reader, length: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied NString
			 * @param parameterIndex 
			 * @param theNString 
			 */
			setNString(parameterIndex: number, theNString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied NString.
			 * @param parameterName 
			 * @param theNString 
			 */
			setNString(parameterName: string, theNString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL.
			 * @param parameterIndex 
			 * @param sqlType 
			 */
			setNull(parameterIndex: number, sqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL. This form of the setNull method should be used for User Defined Types and REF parameters.
			 * @param parameterIndex 
			 * @param sqlType 
			 * @param typeName 
			 */
			setNull(parameterIndex: number, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL. This form of the <code>setNull</code> method should be used for User Defined Types and REF parameters.
			 * @param parameterName 
			 * @param sqlType 
			 */
			setNull(parameterName: string, sqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to SQL NULL. This form of the <code>setNull</code> method should be used for User Defined Types and REF parameters.
			 * @param parameterName 
			 * @param sqlType 
			 * @param typeName 
			 */
			setNull(parameterName: string, sqlType: number, typeName: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterIndex 
			 * @param theObject 
			 */
			setObject(parameterIndex: number, theObject: any): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterIndex 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			setObject(parameterIndex: number, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterName 
			 * @param theObject 
			 */
			setObject(parameterName: string, theObject: any): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 */
			setObject(parameterName: string, theObject: any, targetSqlType: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied Java object.
			 * @param parameterName 
			 * @param theObject 
			 * @param targetSqlType 
			 * @param scale 
			 */
			setObject(parameterName: string, theObject: any, targetSqlType: number, scale: number): void;
			/**
			 * Sets the database Password for this RowSet. This property is used when a connection to the database is established. Therefore it should be set prior to invoking the #execute method.
			 * @param password 
			 */
			setPassword(password: string): void;
			/**
			 * Gets the timeout for the driver when a query operation is executed. If a query takes longer than the timeout, a SQLException is thrown.
			 * @param seconds 
			 */
			setQueryTimeout(seconds: number): void;
			/**
			 * Sets whether the RowSet is read-only or updatable.
			 * @param readOnly 
			 */
			setReadOnly(readOnly: boolean): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Ref. This is sent to the database as an SQL REF value.
			 * @param parameterIndex 
			 * @param theRef 
			 */
			setRef(parameterIndex: number, theRef: java.sql.IRef): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied short integer.
			 * @param parameterIndex 
			 * @param theShort 
			 */
			setShort(parameterIndex: number, theShort: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied short integer.
			 * @param parameterName 
			 * @param theShort 
			 */
			setShort(parameterName: string, theShort: number): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied String. The string is placed into the database as a VARCHAR or LONGVARCHAR SQL value, depending on the database limits for the length of VARCHAR values.
			 * @param parameterIndex 
			 * @param theString 
			 */
			setString(parameterIndex: number, theString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied String. The String is placed into the database as a VARCHAR or LONGVARCHAR SQL value, depending on the database limits for the length of VARCHAR values.
			 * @param parameterName 
			 * @param theString 
			 */
			setString(parameterName: string, theString: string): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied RowId
			 * @param parameterIndex 
			 * @param theRowId 
			 */
			setRowId(parameterIndex: number, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied RowId.
			 * @param parameterName 
			 * @param theRowId 
			 */
			setRowId(parameterName: string, theRowId: java.sql.IRowId): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied SQLXML
			 * @param parameterIndex 
			 * @param theSQLXML 
			 */
			setSQLXML(parameterIndex: number, theSQLXML: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to the supplied SQLXML.
			 * @param parameterName 
			 * @param theSQLXML 
			 */
			setSQLXML(parameterName: string, theSQLXML: java.sql.ISQLXML): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting it to an SQL TIME value using the system default Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting it to an SQL TIME value using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTime 
			 * @param theCalendar 
			 */
			setTime(parameterIndex: number, theTime: java.sql.Time, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting to an SQL TIME value using a supplied Calendar.
			 * @param parameterName 
			 * @param theTime 
			 */
			setTime(parameterName: string, theTime: java.sql.Time): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Time, converting to an SQL TIME value using a supplied Calendar.
			 * @param parameterName 
			 * @param theTime 
			 * @param theCalendar 
			 */
			setTime(parameterName: string, theTime: java.sql.Time, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp, converting it to an SQL TIMESTAMP value using the system default Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp, converting it to an SQL TIMESTAMP value using a supplied Calendar.
			 * @param parameterIndex 
			 * @param theTimestamp 
			 * @param theCalendar 
			 */
			setTimestamp(parameterIndex: number, theTimestamp: java.sql.Timestamp, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp converting to an SQL TIMESTAMP value using the system default Calendar.
			 * @param parameterName 
			 * @param theTimestamp 
			 */
			setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp): void;
			/**
			 * Sets the value of the specified parameter in the RowSet command to a supplied java.sql.Timestamp converting to an SQL TIMESTAMP value using a supplied Calendar.
			 * @param parameterName 
			 * @param theTimestamp 
			 * @param theCalendar 
			 */
			setTimestamp(parameterName: string, theTimestamp: java.sql.Timestamp, theCalendar: java.util.Calendar): void;
			/**
			 * Sets the target instance's transaction isolation level to one of a discrete set of possible values. The transaction isolation level defines the policy implemented on the database for maintaining the data values consistent.
			 * @param level 
			 */
			setTransactionIsolation(level: number): void;
			/**
			 * Sets the type of this RowSet. By default, the type is non-scrollable.
			 * @param type 
			 */
			setType(type: number): void;
			/**
			 * Sets the mapping of SQL User Defined Types (UDTs) to Java classes. The Java classes must all implement the java.sql.SQLData SQLData interface.
			 * @param theTypeMap 
			 */
			setTypeMap(theTypeMap: java.util.IMap<string, java.lang.Class<any>>): void;
			/**
			 * Sets the URL used by this RowSet to access the database via a DriverManager. The URL is optional - an alternative is to use a database name to create a connection.
			 * @param theURL 
			 */
			setUrl(theURL: string): void;
			/**
			 * Sets the URL used by this RowSet to access the database via a <code>DriverManager</code>. The URL is optional - an alternative is to use a Data Source Name to create a connection.
			 * @param parameterIndex 
			 * @param theURL 
			 */
			setURL(parameterIndex: number, theURL: java.net.URL): void;
			/**
			 * Sets the Username property for the RowSet, used to authenticate a connection to the database.
			 * @param theUsername 
			 */
			setUsername(theUsername: string): void;
			/**
			 * Moves the cursor to a specified row number in the ResultSet.
			 * @param row 
			 */
			absolute(row: number): boolean;
			/**
			 * Moves the cursor to the end of the ResultSet, after the last row.
			 */
			afterLast(): void;
			/**
			 * Moves the cursor to the start of the ResultSet, before the first row.
			 */
			beforeFirst(): void;
			/**
			 * Cancels any updates made to the current row in the ResultSet.
			 */
			cancelRowUpdates(): void;
			/**
			 * Clears all warnings related to this ResultSet.
			 */
			clearWarnings(): void;
			/**
			 * Releases this ResultSet's database and JDBC resources. You are strongly advised to use this method rather than relying on the release being done when the ResultSet's finalize method is called during garbage collection process. Note that the close() method might take some time to complete since it is dependent on the behavior of the connection to the database and the database itself.
			 */
			close(): void;
			/**
			 * Deletes the current row from the ResultSet and from the underlying database.
			 */
			deleteRow(): void;
			/**
			 * Gets the index number for a column in the ResultSet from the provided column name.
			 * @param columnName 
			 */
			findColumn(columnName: string): number;
			/**
			 * Shifts the cursor position to the first row in the ResultSet.
			 */
			first(): boolean;
			/**
			 * Gets the content of a column specified by column index in the current row of this ResultSet as a java.sql.Array.
			 * @param columnIndex 
			 */
			getArray(columnIndex: number): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Array.
			 * @param colName 
			 */
			getArray(colName: string): java.sql.IArray;
			/**
			 * Gets the value of a column specified by column index as an ASCII character stream.
			 * @param columnIndex 
			 */
			getAsciiStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as an ASCII character stream.
			 * @param columnName 
			 */
			getAsciiStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 */
			getBigDecimal(columnIndex: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a java.math.BigDecimal.
			 * @param columnIndex 
			 * @param scale 
			 */
			getBigDecimal(columnIndex: number, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 */
			getBigDecimal(columnName: string): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column name, as a java.math.BigDecimal.
			 * @param columnName 
			 * @param scale 
			 */
			getBigDecimal(columnName: string, scale: number): java.math.BigDecimal;
			/**
			 * Gets the value of a column specified by column index as a binary stream.
			 * @param columnIndex 
			 */
			getBinaryStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column name as a binary stream.
			 * @param columnName 
			 */
			getBinaryStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Blob object.
			 * @param columnIndex 
			 */
			getBlob(columnIndex: number): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Blob object.
			 * @param columnName 
			 */
			getBlob(columnName: string): java.sql.IBlob;
			/**
			 * Gets the value of a column specified by column index as a boolean .
			 * @param columnIndex 
			 */
			getBoolean(columnIndex: number): boolean;
			/**
			 * Gets the value of a column specified by column name, as a boolean .
			 * @param columnName 
			 */
			getBoolean(columnName: string): boolean;
			/**
			 * Gets the value of a column specified by column index as a byte.
			 * @param columnIndex 
			 */
			getByte(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a byte.
			 * @param columnName 
			 */
			getByte(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a byte array.
			 * @param columnIndex 
			 */
			getBytes(columnIndex: number): native.Array<number>;
			/**
			 * Gets the value of a column specified by column name as a byte array.
			 * @param columnName 
			 */
			getBytes(columnName: string): native.Array<number>;
			/**
			 * Gets the value of a column specified by column index as a java.io.Reader object.
			 * @param columnIndex 
			 */
			getCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Gets the value of a column specified by column name as a java.io.Reader object.
			 * @param columnName 
			 */
			getCharacterStream(columnName: string): java.io.Reader;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Clob.
			 * @param columnIndex 
			 */
			getClob(columnIndex: number): java.sql.IClob;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Clob.
			 * @param colName 
			 */
			getClob(colName: string): java.sql.IClob;
			/**
			 * Gets the concurrency mode of this ResultSet.
			 */
			getConcurrency(): number;
			/**
			 * Gets the name of the SQL cursor of this ResultSet.
			 */
			getCursorName(): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date.
			 * @param columnIndex 
			 */
			getDate(columnIndex: number): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Date. This method uses a supplied calendar to compute the Date.
			 * @param columnIndex 
			 * @param cal 
			 */
			getDate(columnIndex: number, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name as a java.sql.Date.
			 * @param columnName 
			 */
			getDate(columnName: string): java.sql.Date;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Date object.
			 * @param columnName 
			 * @param cal 
			 */
			getDate(columnName: string, cal: java.util.Calendar): java.sql.Date;
			/**
			 * Gets the value of a column specified by column index as a double value.
			 * @param columnIndex 
			 */
			getDouble(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name as a double value.
			 * @param columnName 
			 */
			getDouble(columnName: string): any;
			/**
			 * Gets the direction in which rows are fetched for this ResultSet object.
			 */
			getFetchDirection(): number;
			/**
			 * Gets the fetch size (in number of rows) for this ResultSet.
			 */
			getFetchSize(): number;
			/**
			 * Gets the value of a column specified by column index as a float value.
			 * @param columnIndex 
			 */
			getFloat(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name as a float value.
			 * @param columnName 
			 */
			getFloat(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as an int value.
			 * @param columnIndex 
			 */
			getInt(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as an int value.
			 * @param columnName 
			 */
			getInt(columnName: string): number;
			/**
			 * Gets the value of a column specified by column index as a long value.
			 * @param columnIndex 
			 */
			getLong(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column name, as a long value.
			 * @param columnName 
			 */
			getLong(columnName: string): any;
			/**
			 * Gets the metadata for this ResultSet. This defines the number, types and properties of the columns in the ResultSet.
			 */
			getMetaData(): java.sql.IResultSetMetaData;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnIndex 
			 */
			getObject(columnIndex: number): any;
			/**
			 * Gets the value of a column specified by column index as a Java Object.
			 * @param columnIndex 
			 * @param map 
			 */
			getObject(columnIndex: number, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a specified column as a Java Object. The type of the returned object will be the default according to the column's SQL type, following the JDBC specification for built-in types.
			 * @param columnName 
			 */
			getObject(columnName: string): any;
			/**
			 * Gets the value of a column specified by column name as a Java Object.
			 * @param columnName 
			 * @param map 
			 */
			getObject(columnName: string, map: java.util.IMap<string, java.lang.Class<any>>): any;
			/**
			 * Gets the value of a column specified by column index as a Java java.sql.Ref.
			 * @param columnIndex 
			 */
			getRef(columnIndex: number): java.sql.IRef;
			/**
			 * Gets the value of a column specified by column name as a Java java.sql.Ref.
			 * @param colName 
			 */
			getRef(colName: string): java.sql.IRef;
			/**
			 * Gets the number of the current row in the ResultSet. Row numbers start at 1 for the first row.
			 */
			getRow(): number;
			/**
			 * Gets the value of a column specified by column index as a short value.
			 * @param columnIndex 
			 */
			getShort(columnIndex: number): number;
			/**
			 * Gets the value of a column specified by column name, as a short value.
			 * @param columnName 
			 */
			getShort(columnName: string): number;
			/**
			 * Gets the statement that produced this ResultSet. If the ResultSet was not created by a statement (i.e. because it was returned from one of the DatabaseMetaData methods), null is returned.
			 */
			getStatement(): java.sql.IStatement;
			/**
			 * Gets the value of a column specified by column index as a String.
			 * @param columnIndex 
			 */
			getString(columnIndex: number): string;
			/**
			 * Gets the value of a column specified by column name, as a String.
			 * @param columnName 
			 */
			getString(columnName: string): string;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value.
			 * @param columnIndex 
			 */
			getTime(columnIndex: number): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnIndex 
			 * @param cal 
			 */
			getTime(columnIndex: number, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Time value.
			 * @param columnName 
			 */
			getTime(columnName: string): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Time value. The supplied Calendar is used to map the SQL Time value to a Java Time value.
			 * @param columnName 
			 * @param cal 
			 */
			getTime(columnName: string, cal: java.util.Calendar): java.sql.Time;
			/**
			 * Gets the value of a column specified by column index as a java.sql.Timestamp value.
			 * @param columnIndex 
			 */
			getTimestamp(columnIndex: number): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column index, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnIndex 
			 * @param cal 
			 */
			getTimestamp(columnIndex: number, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value.
			 * @param columnName 
			 */
			getTimestamp(columnName: string): java.sql.Timestamp;
			/**
			 * Gets the value of a column specified by column name, as a java.sql.Timestamp value. The supplied Calendar is used when mapping the SQL Timestamp value to a Java Timestamp value.
			 * @param columnName 
			 * @param cal 
			 */
			getTimestamp(columnName: string, cal: java.util.Calendar): java.sql.Timestamp;
			/**
			 * Gets the type of the ResultSet.
			 */
			getType(): number;
			/**
			 * Gets the value of the column as an InputStream of unicode characters.
			 * @param columnIndex 
			 */
			getUnicodeStream(columnIndex: number): java.io.InputStream;
			/**
			 * Gets the value of the column as an InputStream of Unicode characters.
			 * @param columnName 
			 */
			getUnicodeStream(columnName: string): java.io.InputStream;
			/**
			 * Gets the value of a column specified by column index as a java.net.URL.
			 * @param columnIndex 
			 */
			getURL(columnIndex: number): java.net.URL;
			/**
			 * Gets the value of a column specified by column name as a java.net.URL object.
			 * @param columnName 
			 */
			getURL(columnName: string): java.net.URL;
			/**
			 * Gets the first warning generated by calls on this ResultSet. Subsequent warnings on this ResultSet are chained to the first one.
			 */
			getWarnings(): java.sql.SQLWarning;
			/**
			 * Insert the insert row into the ResultSet and into the underlying database. The cursor must be set to the Insert Row before this method is invoked.
			 */
			insertRow(): void;
			/**
			 * Gets if the cursor is after the last row of the ResultSet.
			 */
			isAfterLast(): boolean;
			/**
			 * Gets if the cursor is before the first row of the ResultSet.
			 */
			isBeforeFirst(): boolean;
			/**
			 * Gets if the cursor is on the first row of the ResultSet.
			 */
			isFirst(): boolean;
			/**
			 * Gets if the cursor is on the last row of the ResultSet
			 */
			isLast(): boolean;
			/**
			 * Shifts the cursor position to the last row of the ResultSet.
			 */
			last(): boolean;
			/**
			 * Moves the cursor to the remembered position, namely the row that was the current row before a call to moveToInsertRow. This only applies if the cursor is on the Insert Row.
			 */
			moveToCurrentRow(): void;
			/**
			 * Moves the cursor position to the Insert Row. The current position is remembered and the cursor is positioned at the Insert Row. The columns in the Insert Row should be filled in with the appropriate update methods, before calling insertRow to insert the new row into the database.
			 */
			moveToInsertRow(): void;
			/**
			 * Shifts the cursor position down one row in this ResultSet object.
			 */
			next(): boolean;
			/**
			 * Relocates the cursor position to the preceding row in this ResultSet.
			 */
			previous(): boolean;
			/**
			 * Refreshes the current row with its most up to date value in the database. Must not be called when the cursor is on the Insert Row.
			 */
			refreshRow(): void;
			/**
			 * Moves the cursor position up or down by a specified number of rows. If the new position is beyond the start row (or end row), the cursor position is set before the first row (or, respectively, after the last row).
			 * @param rows 
			 */
			relative(rows: number): boolean;
			/**
			 * Indicates whether a row has been deleted. This method depends on whether the JDBC driver and database can detect deletions.
			 */
			rowDeleted(): boolean;
			/**
			 * Indicates whether the current row has had an insertion operation. This method depends on whether the JDBC driver and database can detect insertions.
			 */
			rowInserted(): boolean;
			/**
			 * Indicates whether the current row has been updated. This method depends on whether the JDBC driver and database can detect updates.
			 */
			rowUpdated(): boolean;
			/**
			 * Indicates which direction (forward/reverse) will be used to process the rows of this ResultSet object. This is treated as a hint by the JDBC driver.
			 * @param direction 
			 */
			setFetchDirection(direction: number): void;
			/**
			 * Indicates the number of rows to fetch from the database when extra rows are required for this ResultSet. This used as a hint to the JDBC driver.
			 * @param rows 
			 */
			setFetchSize(rows: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Array value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateArray(columnIndex: number, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Array value.
			 * @param columnName 
			 * @param x 
			 */
			updateArray(columnName: string, x: java.sql.IArray): void;
			/**
			 * Updates a column specified by a column index with an ASCII stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateAsciiStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with an Ascii stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			updateAsciiStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.BigDecimal value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBigDecimal(columnIndex: number, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column name with a java.sql.BigDecimal value.
			 * @param columnName 
			 * @param x 
			 */
			updateBigDecimal(columnName: string, x: java.math.BigDecimal): void;
			/**
			 * Updates a column specified by a column index with a binary stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateBinaryStream(columnIndex: number, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column name with a binary stream value.
			 * @param columnName 
			 * @param x 
			 * @param length 
			 */
			updateBinaryStream(columnName: string, x: java.io.InputStream, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Blob value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBlob(columnIndex: number, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Blob value.
			 * @param columnName 
			 * @param x 
			 */
			updateBlob(columnName: string, x: java.sql.IBlob): void;
			/**
			 * Updates a column specified by a column index with a boolean value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBoolean(columnIndex: number, x: boolean): void;
			/**
			 * Updates a column specified by a column name with a boolean value.
			 * @param columnName 
			 * @param x 
			 */
			updateBoolean(columnName: string, x: boolean): void;
			/**
			 * Updates a column specified by a column index with a byte value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateByte(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a byte value.
			 * @param columnName 
			 * @param x 
			 */
			updateByte(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a byte array value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateBytes(columnIndex: number, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column name with a byte array value.
			 * @param columnName 
			 * @param x 
			 */
			updateBytes(columnName: string, x: native.Array<number>): void;
			/**
			 * Updates a column specified by a column index with a character stream value.
			 * @param columnIndex 
			 * @param x 
			 * @param length 
			 */
			updateCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column name with a character stream value.
			 * @param columnName 
			 * @param reader 
			 * @param length 
			 */
			updateCharacterStream(columnName: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Clob value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateClob(columnIndex: number, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Clob value.
			 * @param columnName 
			 * @param x 
			 */
			updateClob(columnName: string, x: java.sql.IClob): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Date value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateDate(columnIndex: number, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Date value.
			 * @param columnName 
			 * @param x 
			 */
			updateDate(columnName: string, x: java.sql.Date): void;
			/**
			 * Updates a column specified by a column index with a double value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateDouble(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a double value.
			 * @param columnName 
			 * @param x 
			 */
			updateDouble(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a float value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateFloat(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a float value.
			 * @param columnName 
			 * @param x 
			 */
			updateFloat(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with an int value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateInt(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with an int value.
			 * @param columnName 
			 * @param x 
			 */
			updateInt(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a long value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateLong(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a long value.
			 * @param columnName 
			 * @param x 
			 */
			updateLong(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a null value.
			 * @param columnIndex 
			 */
			updateNull(columnIndex: number): void;
			/**
			 * Updates a column specified by a column name with a null value.
			 * @param columnName 
			 */
			updateNull(columnName: string): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateObject(columnIndex: number, x: any): void;
			/**
			 * Updates a column specified by a column index with an Object value.
			 * @param columnIndex 
			 * @param x 
			 * @param scale 
			 */
			updateObject(columnIndex: number, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 */
			updateObject(columnName: string, x: any): void;
			/**
			 * Updates a column specified by a column name with an Object value.
			 * @param columnName 
			 * @param x 
			 * @param scale 
			 */
			updateObject(columnName: string, x: any, scale: number): void;
			/**
			 * Updates a column specified by a column index with a java.sql.Ref value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateRef(columnIndex: number, x: java.sql.IRef): void;
			/**
			 * Updates a column specified by a column name with a java.sql.Ref value.
			 * @param columnName 
			 * @param x 
			 */
			updateRef(columnName: string, x: java.sql.IRef): void;
			/**
			 * Updates the database with the new contents of the current row of this ResultSet object.
			 */
			updateRow(): void;
			/**
			 * Updates a column specified by a column index with a short value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateShort(columnIndex: number, x: number): void;
			/**
			 * Updates a column specified by a column name with a short value.
			 * @param columnName 
			 * @param x 
			 */
			updateShort(columnName: string, x: number): void;
			/**
			 * Updates a column specified by a column index with a String value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateString(columnIndex: number, x: string): void;
			/**
			 * Updates a column specified by a column name with a String value.
			 * @param columnName 
			 * @param x 
			 */
			updateString(columnName: string, x: string): void;
			/**
			 * Updates a column specified by a column index with a Time value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateTime(columnIndex: number, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column name with a Time value.
			 * @param columnName 
			 * @param x 
			 */
			updateTime(columnName: string, x: java.sql.Time): void;
			/**
			 * Updates a column specified by a column index with a Timestamp value.
			 * @param columnIndex 
			 * @param x 
			 */
			updateTimestamp(columnIndex: number, x: java.sql.Timestamp): void;
			/**
			 * Updates a column specified by column name with a Timestamp value.
			 * @param columnName 
			 * @param x 
			 */
			updateTimestamp(columnName: string, x: java.sql.Timestamp): void;
			/**
			 * Determines whether the last column read from this ResultSet contained SQL NULL.
			 */
			wasNull(): boolean;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the 1-based columnIndex. SQLException
			 */
			getRowId(columnIndex: number): java.sql.IRowId;
			/**
			 * Returns a RowId corresponding to the SQL ROWID at the named column. SQLException
			 */
			getRowId(columnLabel: string): java.sql.IRowId;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateRowId(columnIndex: number, value: java.sql.IRowId): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateRowId(columnLabel: string, value: java.sql.IRowId): void;
			/**
			 * Returns the holdability of this result set: #HOLD_CURSORS_OVER_COMMIT or #CLOSE_CURSORS_AT_COMMIT. SQLException
			 */
			getHoldability(): number;
			/**
			 * Returns true if this result set has been closed, false otherwise. SQLException
			 */
			isClosed(): boolean;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNString(columnIndex: number, nString: string): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNString(columnLabel: string, nString: string): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, nClob: java.sql.INClob): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, nClob: java.sql.INClob): void;
			/**
			 * Returns an NClob corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNClob(columnIndex: number): java.sql.INClob;
			/**
			 * Returns an NClob corresponding to the value in the named column. SQLException
			 */
			getNClob(columnLabel: string): java.sql.INClob;
			/**
			 * Returns an SQLXML corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getSQLXML(columnIndex: number): java.sql.ISQLXML;
			/**
			 * Returns an SQLXML corresponding to the value in the named column. SQLException
			 */
			getSQLXML(columnLabel: string): java.sql.ISQLXML;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateSQLXML(columnIndex: number, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateSQLXML(columnLabel: string, xmlObject: java.sql.ISQLXML): void;
			/**
			 * Returns a String corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNString(columnIndex: number): string;
			/**
			 * Returns a String corresponding to the value in the named column. SQLException
			 */
			getNString(columnLabel: string): string;
			/**
			 * Returns a Reader corresponding to the value at the 1-based columnIndex. SQLException
			 */
			getNCharacterStream(columnIndex: number): java.io.Reader;
			/**
			 * Returns a Reader corresponding to the value in the named column. SQLException
			 */
			getNCharacterStream(columnLabel: string): java.io.Reader;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnIndex: number, x: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnIndex: number, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnLabel: string, inputStream: java.io.InputStream, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, reader: java.io.Reader, length: number): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateAsciiStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBinaryStream(columnIndex: number, x: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateCharacterStream(columnIndex: number, x: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateAsciiStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBinaryStream(columnLabel: string, x: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateCharacterStream(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnIndex: number, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateBlob(columnLabel: string, inputStream: java.io.InputStream): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Updates the value at the 1-based columnIndex. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnIndex: number, reader: java.io.Reader): void;
			/**
			 * Updates the value in the named column. The underlying database isn't changed until the next row update or insert operation. SQLException
			 */
			updateNClob(columnLabel: string, reader: java.io.Reader): void;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * Interface that defines the methods which are common between DataSource, XADataSource and ConnectionPoolDataSource.
		 */
		interface ICommonDataSource {
			/**
			 * While attempting to connect to a database, this method get the maximum time in seconds that this data source can wait.
			 */
			getLoginTimeout(): number;
			/**
			 * Retrieves a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 */
			getLogWriter(): java.io.PrintWriter;
			/**
			 * While attempting to connect to a database, this method set the maximum time in seconds that this data source can wait.
			 * @param seconds 
			 */
			setLoginTimeout(seconds: number): void;
			/**
			 * Set a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 * @param out 
			 */
			setLogWriter(out: java.io.PrintWriter): void;
		}
		/**
		 * Sent when specific events happen on a PooledConnection object. These events are a facility to report when an application closes the pooled connection or when an error occurs in the pooled connection.
		 */
		export class ConnectionEvent extends java.util.EventObject implements java.io.ISerializable {
			/**
			 * Creates a connection event initialized with the supplied PooledConnection reporting that the application has closed the connection.
			 * @param theConnection 
			 */
			constructor(theConnection: javax.sql.IPooledConnection);
			/**
			 * Creates a ConnectionEvent initialized with the supplied PooledConnection and with the supplied SQLException indicating that an error has occurred within the PooledConnection.
			 * @param theConnection 
			 * @param theException 
			 */
			constructor(theConnection: javax.sql.IPooledConnection, theException: java.sql.SQLException);
			static class: java.lang.Class<javax.sql.ConnectionEvent>;
			/**
			 * Gets the SQLException which holds information about the error which occurred in the PooledConnection.
			 */
			public getSQLException(): java.sql.SQLException;
		}
		/**
		 * An interface used to send notification of events occurring in the context of a RowSet. To receive the notification events, an object must implement the RowSetListener interface and then register itself with the RowSet of interest using the RowSet#addRowSetListener(RowSetListener) method.
		 */
		export class RowSetListener implements java.util.IEventListener, javax.sql.IRowSetListener {
			constructor(implementation: javax.sql.IRowSetListener);
			/**
			 * Notifies the listener that the RowSet's cursor in theEvent.getSource has moved.
			 * @param theEvent 
			 */
			public cursorMoved(theEvent: javax.sql.RowSetEvent): void;
			/**
			 * Notifies the listener that one of the RowSet's rows in theEvent.getSource has changed.
			 * @param theEvent 
			 */
			public rowChanged(theEvent: javax.sql.RowSetEvent): void;
			/**
			 * Notifies the listener that the RowSet's entire contents in theEvent.getSource have been updated (an example is the execution of a command which retrieves new data from the database).
			 * @param theEvent 
			 */
			public rowSetChanged(theEvent: javax.sql.RowSetEvent): void;
		}
		/**
		 * An interface which provides functionality for a disconnected RowSet to put data updates back to the data source from which the RowSet was originally populated. An object implementing this interface is called a writer.
		 */
		interface IRowSetWriter {
			/**
			 * Writes changes made in the RowSet, which is associated with this RowSetWriter, back to the database.
			 * @param theRowSet 
			 */
			writeData(theRowSet: javax.sql.IRowSetInternal): boolean;
		}
		/**
		 * An interface for the creation of ConnectionPoolDataSource objects. Used internally within the package.
		 */
		interface IConnectionPoolDataSource extends javax.sql.ICommonDataSource {
			/**
			 * Creates a connection to a database which can then be used as a pooled connection.
			 */
			getPooledConnection(): javax.sql.IPooledConnection;
			/**
			 * Creates a connection to a database, using the supplied user name and password, which can then be used as a pooled connection.
			 * @param theUser 
			 * @param thePassword 
			 */
			getPooledConnection(theUser: string, thePassword: string): javax.sql.IPooledConnection;
			/**
			 * While attempting to connect to a database, this method get the maximum time in seconds that this data source can wait.
			 */
			getLoginTimeout(): number;
			/**
			 * Retrieves a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 */
			getLogWriter(): java.io.PrintWriter;
			/**
			 * While attempting to connect to a database, this method set the maximum time in seconds that this data source can wait.
			 * @param seconds 
			 */
			setLoginTimeout(seconds: number): void;
			/**
			 * Set a log writer which is a character output stream to which all logging and tracing messages for this data source will be printed.
			 * @param out 
			 */
			setLogWriter(out: java.io.PrintWriter): void;
		}
		/**
		 * An interface which provides facilities for handling connections to a database which are pooled.
		 */
		interface IPooledConnection {
			/**
			 * Registers the supplied ConnectionEventListener with this PooledConnection. Once registered, the ConnectionEventListener will receive ConnectionEvent events when they occur in the PooledConnection.
			 * @param theListener 
			 */
			addConnectionEventListener(theListener: javax.sql.IConnectionEventListener): void;
			/**
			 * Closes the connection to the database held by this PooledConnection. This method should not be called directly by application code - it is intended only for the connection pool manager component.
			 */
			close(): void;
			/**
			 * Creates a connection to the database. This method is typically called by the connection pool manager when an application invokes the method DataSource.getConnection() and there are no PooledConnection objects available in the connection pool.
			 */
			getConnection(): java.sql.IConnection;
			/**
			 * Unregisters the supplied ConnectionEventListener from this PooledConnection. Once unregistered, the ConnectionEventListener will no longer receive events occurring in the PooledConnection.
			 * @param theListener 
			 */
			removeConnectionEventListener(theListener: javax.sql.IConnectionEventListener): void;
			/**
			 * Add a StatementEventListener to this PooledConnection object.
			 * @param listener 
			 */
			addStatementEventListener(listener: javax.sql.IStatementEventListener): void;
			/**
			 * Remove a StatementEventListener from this PooledConnection object.
			 * @param listener 
			 */
			removeStatementEventListener(listener: javax.sql.IStatementEventListener): void;
		}
		/**
		 * An interface which provides facilities for getting information about the columns in a RowSet.
		 */
		export class RowSetMetaData implements java.sql.IResultSetMetaData, javax.sql.IRowSetMetaData {
			constructor(implementation: javax.sql.IRowSetMetaData);
			/**
			 * Sets automatic numbering for a specified column in the RowSet. If automatic numbering is on, the column is read-only. The default value for the auto increment parameter is false.
			 * @param columnIndex 
			 * @param autoIncrement 
			 */
			public setAutoIncrement(columnIndex: number, autoIncrement: boolean): void;
			/**
			 * Sets the case sensitive property for a specified column in the RowSet. The default is that the column is not case sensitive.
			 * @param columnIndex 
			 * @param caseSensitive 
			 */
			public setCaseSensitive(columnIndex: number, caseSensitive: boolean): void;
			/**
			 * Sets the catalog name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param catalogName 
			 */
			public setCatalogName(columnIndex: number, catalogName: string): void;
			/**
			 * Sets the number of columns contained in the row set.
			 * @param columnCount 
			 */
			public setColumnCount(columnCount: number): void;
			/**
			 * Sets the normal maximum width in characters for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param displaySize 
			 */
			public setColumnDisplaySize(columnIndex: number, displaySize: number): void;
			/**
			 * Sets the suggested name as label for the column contained in the RowSet. The label is an alias for printing and displaying purposes.
			 * @param columnIndex 
			 * @param theLabel 
			 */
			public setColumnLabel(columnIndex: number, theLabel: string): void;
			/**
			 * Sets the column name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theColumnName 
			 */
			public setColumnName(columnIndex: number, theColumnName: string): void;
			/**
			 * Sets the SQL type for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theSQLType 
			 */
			public setColumnType(columnIndex: number, theSQLType: number): void;
			/**
			 * Sets the type name for a specified column in the RowSet, where the data type is specific to the data source.
			 * @param columnIndex 
			 * @param theTypeName 
			 */
			public setColumnTypeName(columnIndex: number, theTypeName: string): void;
			/**
			 * Sets whether a specified column is a currency value. The default value is false.
			 * @param columnIndex 
			 * @param isCurrency 
			 */
			public setCurrency(columnIndex: number, isCurrency: boolean): void;
			/**
			 * Sets whether a specified column can contain SQL NULL values.
			 * @param columnIndex 
			 * @param nullability 
			 */
			public setNullable(columnIndex: number, nullability: number): void;
			/**
			 * Sets the number of decimal digits for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param thePrecision 
			 */
			public setPrecision(columnIndex: number, thePrecision: number): void;
			/**
			 * Declares how many decimal digits there should be after a decimal point for the column specified by columnIndex.
			 * @param columnIndex 
			 * @param theScale 
			 */
			public setScale(columnIndex: number, theScale: number): void;
			/**
			 * Sets the schema name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theSchemaName 
			 */
			public setSchemaName(columnIndex: number, theSchemaName: string): void;
			/**
			 * Sets whether a specified column can be used in a search involving a WHERE clause. The default value is false.
			 * @param columnIndex 
			 * @param isSearchable 
			 */
			public setSearchable(columnIndex: number, isSearchable: boolean): void;
			/**
			 * Sets if a specified column can contain signed numbers.
			 * @param columnIndex 
			 * @param isSigned 
			 */
			public setSigned(columnIndex: number, isSigned: boolean): void;
			/**
			 * Sets the table name for a specified column in the RowSet.
			 * @param columnIndex 
			 * @param theTableName 
			 */
			public setTableName(columnIndex: number, theTableName: string): void;
			/**
			 * Returns the title of an indexed column's catalog.
			 * @param column 
			 */
			getCatalogName(column: number): string;
			/**
			 * Returns the fully-qualified type of the class that is produced when invoking ResultSet.getObject to recover this column's value.
			 * @param column 
			 */
			getColumnClassName(column: number): string;
			/**
			 * Returns number of columns contained in the associated result set.
			 */
			getColumnCount(): number;
			/**
			 * Returns the indexed column's standard maximum width, expressed in number of characters.
			 * @param column 
			 */
			getColumnDisplaySize(column: number): number;
			/**
			 * Returns a recommended title for the indexed column, to be used when the title needs to be displayed.
			 * @param column 
			 */
			getColumnLabel(column: number): string;
			/**
			 * Returns the title of the indexed column.
			 * @param column 
			 */
			getColumnName(column: number): string;
			/**
			 * Returns the type of the indexed column as SQL type code.
			 * @param column 
			 */
			getColumnType(column: number): number;
			/**
			 * Returns the type name of the indexed column.
			 * @param column 
			 */
			getColumnTypeName(column: number): string;
			/**
			 * Returns the decimal precision of the indexed column.
			 * @param column 
			 */
			getPrecision(column: number): number;
			/**
			 * Returns the number of digits to the right of the decimal point of the indexed column.
			 * @param column 
			 */
			getScale(column: number): number;
			/**
			 * Returns the name of the indexed columns schema.
			 * @param column 
			 */
			getSchemaName(column: number): string;
			/**
			 * Returns the title of the indexed columns table.
			 * @param column 
			 */
			getTableName(column: number): string;
			/**
			 * Returns an indication of whether the indexed column is automatically incremented and is therefore read-only.
			 * @param column 
			 */
			isAutoIncrement(column: number): boolean;
			/**
			 * Returns an indication of whether the case of the indexed column is important.
			 * @param column 
			 */
			isCaseSensitive(column: number): boolean;
			/**
			 * Returns whether the indexed column contains a monetary amount.
			 * @param column 
			 */
			isCurrency(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be successful.
			 * @param column 
			 */
			isDefinitelyWritable(column: number): boolean;
			/**
			 * Returns whether the indexed column is nullable.
			 * @param column 
			 */
			isNullable(column: number): number;
			/**
			 * Returns an indication of whether writing to the indexed column is guaranteed to be unsuccessful.
			 * @param column 
			 */
			isReadOnly(column: number): boolean;
			/**
			 * Returns an indication of whether the indexed column is searchable.
			 * @param column 
			 */
			isSearchable(column: number): boolean;
			/**
			 * Returns an indication of whether the values contained in the indexed column are signed.
			 * @param column 
			 */
			isSigned(column: number): boolean;
			/**
			 * Returns an indication of whether writing to the indexed column is possible.
			 * @param column 
			 */
			isWritable(column: number): boolean;
			/**
			 * Returns an object that implements the given interface. If the caller is not a wrapper, a SQLException will be thrown.
			 * @param iface -
			 */
			unwrap<T>(iface: java.lang.Class<T>): T;
			/**
			 * If the caller is a wrapper of the class or implements the given interface, the methods return false and vice versa.
			 * @param iface -
			 */
			isWrapperFor(iface: java.lang.Class<any>): boolean;
		}
		/**
		 * An interface used to receive events generated by a PooledConnection.
		 */
		export class ConnectionEventListener implements java.util.IEventListener, javax.sql.IConnectionEventListener {
			constructor(implementation: javax.sql.IConnectionEventListener);
			/**
			 * Notifies the ConnectionEventListener that an application has called the close method on a pooled connection.
			 * @param theEvent 
			 */
			public connectionClosed(theEvent: javax.sql.ConnectionEvent): void;
			/**
			 * Notifies the ConnectionEventListener that an error has occurred on a PooledConnection. This notification is triggered <i>before</i> the SQLException, which is available through the event argument, is thrown.
			 * @param theEvent 
			 */
			public connectionErrorOccurred(theEvent: javax.sql.ConnectionEvent): void;
		}
	}
}
declare module android {
	export module bordeaux {
		export module learning {
			/**
			 * A simple impelentation of histograms with sparse enteries using HashMap. User can push examples or extract probabilites from this histogram.
			 */
			export class predictorHist extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.bordeaux.learning.predictorHist>;
				public ResetPredictorHist(): void;
				public getHist(): java.util.HashMap<string, java.lang.Integer>;
				public getHistCounts(): number;
				public set(hist: java.util.HashMap<string, java.lang.Integer>): void;
				/**
				 * pushes a new example to the histogram
				 */
				public pushSample(fs: string): void;
				/**
				 * return probabilty of an exmple using the histogram
				 */
				public getProbability(fs: string): number;
			}
			/**
			 * Stochastic Linear Ranker, learns how to rank a sample. The learned rank score can be used to compare samples. This java class wraps the native StochasticLinearRanker class. To update the ranker, call updateClassifier with two samples, with the first one having higher rank than the second one. To get the rank score of the sample call scoreSample. TODO: adding more interfaces for changing the learning parameters
			 */
			export class StochasticLinearRanker extends java.lang.Object {
				/**
				 * Initializing a ranker
				 */
				constructor();
				static VAR_NUM: number;
				static class: java.lang.Class<android.bordeaux.learning.StochasticLinearRanker>;
				/**
				 * Reset the ranker
				 */
				public resetRanker(): void;
				/**
				 * Train the ranker with a pair of samples. A sample, a pair of arrays of keys and values. The first sample should have higher rank than the second one.
				 */
				public updateClassifier(keys_positive: native.Array<string>, values_positive: native.Array<number>, keys_negative: native.Array<string>, values_negative: native.Array<number>): boolean;
				/**
				 * Get the rank score of the sample, a sample is a list of key, value pairs.
				 */
				public scoreSample(keys: native.Array<string>, values: native.Array<number>): number;
				/**
				 * Get the current model and parameters of ranker
				 */
				public getUModel(): android.bordeaux.learning.StochasticLinearRanker.Model;
				/**
				 * load the given model and parameters to the ranker
				 */
				public loadModel(model: android.bordeaux.learning.StochasticLinearRanker.Model): boolean;
				public setModelWeights(keys: native.Array<string>, values: native.Array<number>, normalizer: number): boolean;
				public setModelParameter(key: string, value: string): boolean;
				/**
				 * Print a model for debugging
				 */
				public print(model: android.bordeaux.learning.StochasticLinearRanker.Model): void;
				protected finalize(): void;
			}
			export module StochasticLinearRanker {
				export class Model extends java.lang.Object implements java.io.ISerializable {
					constructor();
					weights: java.util.HashMap<string, java.lang.Float>;
					weightNormalizer: number;
					parameters: java.util.HashMap<string, string>;
					static class: java.lang.Class<android.bordeaux.learning.StochasticLinearRanker.Model>;
				}
			}
			/**
			 * Wrapper for multiclass passive aggressive classifier. version 1 supports indexed sparse feature only.
			 */
			export class MulticlassPA extends java.lang.Object {
				constructor(numClasses: number, numDimensions: number, aggressiveness: number);
				static class: java.lang.Class<android.bordeaux.learning.MulticlassPA>;
				/**
				 * Train on one example
				 */
				public sparseTrainOneExample(index_array: native.Array<number>, float_array: native.Array<number>, target: number): boolean;
				/**
				 * Train on one example
				 */
				public sparseGetClass(index_array: native.Array<number>, float_array: native.Array<number>): number;
			}
		}
		export module services {
			/**
			 * Machine Learning service that runs in a remote process. The application doesn't use this class directly.
			 */
			export class BordeauxService extends android.app.Service {
				constructor();
				static class: java.lang.Class<android.bordeaux.services.BordeauxService>;
				public onCreate(): void;
				public onDestroy(): void;
				public onBind(intent: android.content.Intent): android.os.IIBinder;
				public onTaskRemoved(rootIntent: android.content.Intent): void;
			}
			export class LocationStatsAggregator extends android.bordeaux.services.Aggregator {
				static CURRENT_LOCATION: string;
				static class: java.lang.Class<android.bordeaux.services.LocationStatsAggregator>;
				public getListOfFeatures(): native.Array<string>;
				public getFeatureValue(featureName: string): java.util.IMap<string, string>;
			}
			export class MotionStatsAggregator extends android.bordeaux.services.Aggregator {
				static CURRENT_MOTION: string;
				static class: java.lang.Class<android.bordeaux.services.MotionStatsAggregator>;
				public getListOfFeatures(): native.Array<string>;
				public getFeatureValue(featureName: string): java.util.IMap<string, string>;
			}
			/**
			 * This is interface to implement Prediction based on histogram that uses predictor_histogram from learnerning section
			 */
			export class Predictor implements android.bordeaux.services.IIBordeauxLearner {
				constructor();
				mFeatureAssembly: android.bordeaux.services.FeatureAssembly;
				static class: java.lang.Class<android.bordeaux.services.Predictor>;
				/**
				 * Reset the Predictor
				 */
				public ResetPredictor(): void;
				/**
				 * Input is a sampleName e.g.action name. This input is then augmented with requested build-in features such as time and location to create sampleFeatures. The sampleFeatures is then pushed to the histogram
				 */
				public pushNewSample(sampleName: string): void;
				/**
				 * return probabilty of an exmple using the histogram
				 */
				public getSampleProbability(sampleName: string): number;
				/**
				 * Set parameters for 1) using History in probability estimations e.g. consider the last event and 2) featureAssembly e.g. time and location.
				 */
				public setPredictorParameter(s: string, f: string): boolean;
				public getPredictionModel(): android.bordeaux.services.Predictor.Model;
				public loadModel(m: android.bordeaux.services.Predictor.Model): boolean;
				public printModel(m: android.bordeaux.services.Predictor.Model): void;
				public getModel(): native.Array<number>;
				public setModel(modelData: native.Array<number>): boolean;
				public getBinder(): android.os.IIBinder;
				public setModelChangeCallback(callback: android.bordeaux.services.IBordeauxLearner.IModelChangeCallback): void;
			}
			export module Predictor {
				export class Model extends java.lang.Object implements java.io.ISerializable {
					constructor();
					countHistogram: java.util.HashMap<string, java.lang.Integer>;
					usedFeatures: java.util.HashSet<string>;
					sampleCounts: number;
					useHistoryFlag: boolean;
					expireTime: number;
					lastSampleTime: number;
					static class: java.lang.Class<android.bordeaux.services.Predictor.Model>;
				}
			}
			export class Aggregator extends java.lang.Object {
				static class: java.lang.Class<android.bordeaux.services.Aggregator>;
				public setManager(m: android.bordeaux.services.AggregatorManager): void;
				public getListOfFeatures(): native.Array<string>;
				public getFeatureValue(featureName: string): java.util.IMap<string, string>;
			}
			export class FeatureAssembly extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.bordeaux.services.FeatureAssembly>;
				public registerFeature(s: string): boolean;
				public getUsedFeatures(): java.util.ISet<string>;
				public augmentFeatureInputString(s: string): string;
			}
			/**
			 * AggregatorManger for Learning framework.
			 */
			export class BordeauxAggregatorManager extends java.lang.Object {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.bordeaux.services.BordeauxAggregatorManager>;
				public retrieveAggregatorManager(): boolean;
				public GetData(dataName: string): java.util.IMap<string, string>;
			}
			export class IntFloat extends java.lang.Object implements android.os.IParcelable {
				constructor();
				index: number;
				value: number;
				static CREATOR: android.os.Parcelable.ICreator<android.bordeaux.services.IntFloat>;
				static class: java.lang.Class<android.bordeaux.services.IntFloat>;
				public describeContents(): number;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public readFromParcel(input: android.os.Parcel): void;
			}
			export class AggregatorManager {
				static class: java.lang.Class<android.bordeaux.services.AggregatorManager>;
				public static getInstance(): android.bordeaux.services.AggregatorManager;
				public getListOfFeatures(): native.Array<string>;
				public registerAggregator(agg: android.bordeaux.services.Aggregator, m: android.bordeaux.services.AggregatorManager): void;
				public getData(dataName: string): java.util.ArrayList<android.bordeaux.services.StringString>;
				public getDataMap(dataName: string): java.util.IMap<string, string>;
			}
			interface IIBordeauxLearner {
				getModel(): native.Array<number>;
				setModel(modelData: native.Array<number>): boolean;
				getBinder(): android.os.IIBinder;
				setModelChangeCallback(callback: android.bordeaux.services.IBordeauxLearner.IModelChangeCallback): void;
			}
			/**
			 * Predictor for the Learning framework.
			 */
			export class BordeauxPredictor extends java.lang.Object {
				constructor(context: android.content.Context);
				constructor(context: android.content.Context, name: string);
				static class: java.lang.Class<android.bordeaux.services.BordeauxPredictor>;
				public retrievePredictor(): boolean;
				public reset(): boolean;
				public pushSample(s: string): void;
				public getProbability(s: string): number;
				public setParameter(key: string, value: string): boolean;
			}
			/**
			 * Ranker for the Learning framework. For training: call updateClassifier with a pair of samples. For ranking: call scoreSample to the score of the rank Data is represented as sparse key, value pair. And key is a String, value is a float. Note: since the actual ranker is running in a remote the service. Sometimes the connection may be lost or not established.
			 */
			export class BordeauxRanker extends java.lang.Object {
				constructor(context: android.content.Context);
				constructor(context: android.content.Context, name: string);
				static class: java.lang.Class<android.bordeaux.services.BordeauxRanker>;
				public retrieveRanker(): boolean;
				public update(sample1: java.util.HashMap<string, java.lang.Float>, sample2: java.util.HashMap<string, java.lang.Float>): boolean;
				public reset(): boolean;
				public scoreSample(sample: java.util.HashMap<string, java.lang.Float>): number;
				public setPriorWeight(sample: java.util.HashMap<string, java.lang.Float>): boolean;
				public setParameter(key: string, value: string): boolean;
			}
			export class StringFloat extends java.lang.Object implements android.os.IParcelable {
				constructor();
				key: string;
				value: number;
				static CREATOR: android.os.Parcelable.ICreator<android.bordeaux.services.StringFloat>;
				static class: java.lang.Class<android.bordeaux.services.StringFloat>;
				public describeContents(): number;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public readFromParcel(input: android.os.Parcel): void;
			}
			export class BordeauxSessionStorage extends java.lang.Object {
				static COLUMN_KEY: string;
				static COLUMN_CLASS: string;
				static COLUMN_MODEL: string;
				static COLUMN_TIME: string;
				static class: java.lang.Class<android.bordeaux.services.BordeauxSessionStorage>;
				saveSession(key: string, learner: java.lang.Class<any>, model: native.Array<number>): boolean;
				getSession(key: string): android.bordeaux.services.BordeauxSessionManager.Session;
				getAllSessions(sessions: java.util.concurrent.ConcurrentHashMap<string, android.bordeaux.services.BordeauxSessionManager.Session>): void;
				removeSessions(reKey: string): number;
			}
			export module BordeauxSessionStorage {
				export class SessionDBHelper extends android.database.sqlite.SQLiteOpenHelper {
					static class: java.lang.Class<android.bordeaux.services.BordeauxSessionStorage.SessionDBHelper>;
					public onCreate(db: android.database.sqlite.SQLiteDatabase): void;
					public onUpgrade(db: android.database.sqlite.SQLiteDatabase, oldVersion: number, newVersion: number): void;
				}
			}
			export class BordeauxSessionManager extends java.lang.Object {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.bordeaux.services.BordeauxSessionManager>;
				LearningUpdateCallback: {
	new (key: string): android.bordeaux.services.BordeauxSessionManager.LearningUpdateCallback;
};
				public getSessionKey(callingUid: string, learnerClass: java.lang.Class<any>, name: string): android.bordeaux.services.BordeauxSessionManager.SessionKey;
				public getSessionBinder(learnerClass: java.lang.Class<any>, key: android.bordeaux.services.BordeauxSessionManager.SessionKey): android.os.IIBinder;
				public saveSessions(): void;
				public saveSession(key: android.bordeaux.services.BordeauxSessionManager.SessionKey): boolean;
				public loadSessions(): void;
				public removeAllSessionsFromCaller(callingUid: string): void;
			}
			export module BordeauxSessionManager {
				export class LearningUpdateCallback extends java.lang.Object implements android.bordeaux.services.IBordeauxLearner.IModelChangeCallback {
					static class: java.lang.Class<android.bordeaux.services.BordeauxSessionManager.LearningUpdateCallback>;
					public modelChanged(learner: android.bordeaux.services.IIBordeauxLearner): void;
				}
				export class PeriodicSave extends java.lang.Thread implements java.lang.IRunnable {
					static class: java.lang.Class<android.bordeaux.services.BordeauxSessionManager.PeriodicSave>;
					public run(): void;
				}
				export class SessionKey extends java.lang.Object {
					static class: java.lang.Class<android.bordeaux.services.BordeauxSessionManager.SessionKey>;
				}
				export class Session extends java.lang.Object {
					static class: java.lang.Class<android.bordeaux.services.BordeauxSessionManager.Session>;
				}
			}
			export class IBordeauxLearner implements android.bordeaux.services.IIBordeauxLearner {
				constructor(implementation: android.bordeaux.services.IIBordeauxLearner);
				public getModel(): native.Array<number>;
				public setModel(modelData: native.Array<number>): boolean;
				public getBinder(): android.os.IIBinder;
				public setModelChangeCallback(callback: android.bordeaux.services.IBordeauxLearner.IModelChangeCallback): void;
			}
			export module IBordeauxLearner {
				export class ModelChangeCallback implements android.bordeaux.services.IBordeauxLearner.IModelChangeCallback {
					constructor(implementation: android.bordeaux.services.IBordeauxLearner.IModelChangeCallback);
					public modelChanged(learner: android.bordeaux.services.IIBordeauxLearner): void;
				}
				interface IModelChangeCallback {
					modelChanged(learner: android.bordeaux.services.IIBordeauxLearner): void;
				}
			}
			export class Learning_StochasticLinearRanker implements android.bordeaux.services.IIBordeauxLearner {
				constructor();
				static class: java.lang.Class<android.bordeaux.services.Learning_StochasticLinearRanker>;
				public ResetRanker(): void;
				public UpdateClassifier(sample_1: java.util.IList<android.bordeaux.services.StringFloat>, sample_2: java.util.IList<android.bordeaux.services.StringFloat>): boolean;
				public ScoreSample(sample: java.util.IList<android.bordeaux.services.StringFloat>): number;
				public SetModelPriorWeight(sample: java.util.IList<android.bordeaux.services.StringFloat>): boolean;
				public SetModelParameter(key: string, value: string): boolean;
				public getModel(): native.Array<number>;
				public setModel(modelData: native.Array<number>): boolean;
				public getBinder(): android.os.IIBinder;
				public setModelChangeCallback(callback: android.bordeaux.services.IBordeauxLearner.IModelChangeCallback): void;
			}
			export class Learning_MulticlassPA implements android.bordeaux.services.IIBordeauxLearner {
				constructor();
				static class: java.lang.Class<android.bordeaux.services.Learning_MulticlassPA>;
				public getModel(): native.Array<number>;
				public setModel(modelData: native.Array<number>): boolean;
				public getBinder(): android.os.IIBinder;
				public setModelChangeCallback(callback: android.bordeaux.services.IBordeauxLearner.IModelChangeCallback): void;
				public TrainOneSample(sample: java.util.IList<android.bordeaux.services.IntFloat>, target: number): void;
				public Classify(sample: java.util.IList<android.bordeaux.services.IntFloat>): number;
			}
			export module Learning_MulticlassPA {
				export class IntFloatArray extends java.lang.Object {
					static class: java.lang.Class<android.bordeaux.services.Learning_MulticlassPA.IntFloatArray>;
				}
			}
			export class TimeStatsAggregator extends android.bordeaux.services.Aggregator {
				static CURRENT_TIME: string;
				static class: java.lang.Class<android.bordeaux.services.TimeStatsAggregator>;
				public getListOfFeatures(): native.Array<string>;
				public getFeatureValue(featureName: string): java.util.IMap<string, string>;
			}
			/**
			 * Classifier for the Learning framework. For training: call trainOneSample For classifying: call classify Data is represented as sparse key, value pair. And key is an integer, value is a float. Class label(target) for the training data is an integer. Note: since the actual classifier is running in a remote the service. Sometimes the connection may be lost or not established.
			 */
			export class BordeauxClassifier extends java.lang.Object {
				constructor(context: android.content.Context);
				constructor(context: android.content.Context, name: string);
				static class: java.lang.Class<android.bordeaux.services.BordeauxClassifier>;
				public update(sample: java.util.HashMap<java.lang.Integer, java.lang.Float>, target: number): boolean;
				public classify(sample: java.util.HashMap<java.lang.Integer, java.lang.Float>): number;
			}
			export class StringString extends java.lang.Object implements android.os.IParcelable {
				constructor();
				key: string;
				value: string;
				static CREATOR: android.os.Parcelable.ICreator<android.bordeaux.services.StringString>;
				static class: java.lang.Class<android.bordeaux.services.StringString>;
				public describeContents(): number;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public readFromParcel(input: android.os.Parcel): void;
			}
		}
	}
	export module server {
		export module search {
			/**
			 * This class maintains the information about all searchable activities. This is a hidden class.
			 */
			export class Searchables extends java.lang.Object {
				/**
				 * @param context Context to use for looking up activities etc.
				 * @param userId 
				 */
				constructor(context: android.content.Context, userId: number);
				static GOOGLE_SEARCH_COMPONENT_NAME: string;
				static ENHANCED_GOOGLE_SEARCH_COMPONENT_NAME: string;
				static class: java.lang.Class<android.server.search.Searchables>;
				/**
				 * Look up, or construct, based on the activity.
				 * @param activity The name of the current activity, or null if the
				 */
				public getSearchableInfo(activity: android.content.ComponentName): android.app.SearchableInfo;
				/**
				 * Builds an entire list (suitable for display) of activities that are searchable, by iterating the entire set of ACTION_SEARCH & ACTION_WEB_SEARCH intents.
				 */
				public buildSearchableList(): void;
				/**
				 * Returns the list of searchable activities.
				 */
				public getSearchablesList(): java.util.ArrayList<android.app.SearchableInfo>;
				/**
				 * Returns a list of the searchable activities that can be included in global search.
				 */
				public getSearchablesInGlobalSearchList(): java.util.ArrayList<android.app.SearchableInfo>;
				/**
				 * Returns a list of activities that handle the global search intent.
				 */
				public getGlobalSearchActivities(): java.util.ArrayList<android.content.pm.ResolveInfo>;
				/**
				 * Gets the name of the global search activity.
				 */
				public getGlobalSearchActivity(): android.content.ComponentName;
				/**
				 * Gets the name of the web search activity.
				 */
				public getWebSearchActivity(): android.content.ComponentName;
				dump(fd: java.io.FileDescriptor, pw: java.io.PrintWriter, args: native.Array<string>): void;
			}
			/**
			 * The search manager service handles the search UI, and maintains a registry of searchable activities.
			 */
			export class SearchManagerService {
				/**
				 * Initializes the Search Manager service in the provided system context. Only one instance of this object should be created!
				 * @param context to use for accessing DB, window manager, etc.
				 */
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.server.search.SearchManagerService>;
				GlobalSearchProviderObserver: {
	new (resolver: android.content.ContentResolver): android.server.search.SearchManagerService.GlobalSearchProviderObserver;
};
				/**
				 * Returns the SearchableInfo for a given activity.
				 * @param launchActivity The activity from which we're launching this search.
				 */
				public getSearchableInfo(launchActivity: android.content.ComponentName): android.app.SearchableInfo;
				/**
				 * Returns a list of the searchable activities that can be included in global search.
				 */
				public getSearchablesInGlobalSearch(): java.util.IList<android.app.SearchableInfo>;
				public getGlobalSearchActivities(): java.util.IList<android.content.pm.ResolveInfo>;
				/**
				 * Gets the name of the global search activity.
				 */
				public getGlobalSearchActivity(): android.content.ComponentName;
				/**
				 * Gets the name of the web search activity.
				 */
				public getWebSearchActivity(): android.content.ComponentName;
				public getAssistIntent(userHandle: number): android.content.ComponentName;
				public dump(fd: java.io.FileDescriptor, pw: java.io.PrintWriter, args: native.Array<string>): void;
			}
			export module SearchManagerService {
				/**
				 * Creates the initial searchables list after boot.
				 */
				export class BootCompletedReceiver extends android.content.BroadcastReceiver {
					static class: java.lang.Class<android.server.search.SearchManagerService.BootCompletedReceiver>;
					public onReceive(context: android.content.Context, intent: android.content.Intent): void;
				}
				export class UserReceiver extends android.content.BroadcastReceiver {
					static class: java.lang.Class<android.server.search.SearchManagerService.UserReceiver>;
					public onReceive(context: android.content.Context, intent: android.content.Intent): void;
				}
				export class GlobalSearchProviderObserver extends android.database.ContentObserver {
					static class: java.lang.Class<android.server.search.SearchManagerService.GlobalSearchProviderObserver>;
					public onChange(selfChange: boolean): void;
					/**
					 * This method is called when a content change occurs. Includes the changed content Uri when available.
					 * @param selfChange True if this is a self-change notification.
					 * @param uri The Uri of the changed content, or null if unknown.
					 */
					onChange(selfChange: boolean, uri: android.net.Uri): void;
				}
				/**
				 * Refreshes the "searchables" list when packages are added/removed.
				 */
				export class MyPackageMonitor {
					static class: java.lang.Class<android.server.search.SearchManagerService.MyPackageMonitor>;
					public onSomePackagesChanged(): void;
					public onPackageModified(pkg: string): void;
				}
			}
		}
	}
	export module renderscript {
		/**
		 * Intrinsic for applying a 5x5 convolve to an allocation.
		 */
		export class ScriptIntrinsicConvolve5x5 extends android.renderscript.ScriptIntrinsic {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsicConvolve5x5>;
			/**
			 * Supported elements types are Element#U8_4
			 * @param rs The Renderscript context
			 * @param e Element type for intputs and outputs
			 */
			public static create(rs: android.renderscript.RenderScript, e: android.renderscript.Element): android.renderscript.ScriptIntrinsicConvolve5x5;
			/**
			 * Set the input of the blur. Must match the element type supplied during create.
			 * @param ain The input allocation.
			 */
			public setInput(ain: android.renderscript.Allocation): void;
			/**
			 * Set the coefficients for the convolve.
			 * @param v The array of coefficients to set
			 */
			public setCoefficients(v: native.Array<number>): void;
			/**
			 * Apply the filter to the input and save to the specified allocation.
			 * @param aout Output allocation. Must match creation element
			 */
			public forEach(aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for this intrinsic kernel.
			 */
			public getKernelID(): android.renderscript.Script.KernelID;
			/**
			 * Get a FieldID for the input field of this intrinsic.
			 */
			public getFieldID_Input(): android.renderscript.Script.FieldID;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param ain 
			 * @param aout 
			 * @param v 
			 */
			public forEach(slot: number, ain: android.renderscript.Allocation, aout: android.renderscript.Allocation, v: android.renderscript.FieldPacker): void;
		}
		/**
		 * Base class for all exceptions thrown by the Android Renderscript
		 */
		export class RSInvalidStateException extends android.renderscript.RSRuntimeException {
			constructor(string: string);
			static class: java.lang.Class<android.renderscript.RSInvalidStateException>;
		}
		/**
		 * Intrinsic for applying a 3x3 convolve to an allocation.
		 */
		export class ScriptIntrinsicConvolve3x3 extends android.renderscript.ScriptIntrinsic {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsicConvolve3x3>;
			/**
			 * Supported elements types are Element#U8_4
			 * @param rs The Renderscript context
			 * @param e Element type for intputs and outputs
			 */
			public static create(rs: android.renderscript.RenderScript, e: android.renderscript.Element): android.renderscript.ScriptIntrinsicConvolve3x3;
			/**
			 * Set the input of the blur. Must match the element type supplied during create.
			 * @param ain The input allocation.
			 */
			public setInput(ain: android.renderscript.Allocation): void;
			/**
			 * Set the coefficients for the convolve.
			 * @param v The array of coefficients to set
			 */
			public setCoefficients(v: native.Array<number>): void;
			/**
			 * Apply the filter to the input and save to the specified allocation.
			 * @param aout Output allocation. Must match creation element
			 */
			public forEach(aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for this intrinsic kernel.
			 */
			public getKernelID(): android.renderscript.Script.KernelID;
			/**
			 * Get a FieldID for the input field of this intrinsic.
			 */
			public getFieldID_Input(): android.renderscript.Script.FieldID;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param ain 
			 * @param aout 
			 * @param v 
			 */
			public forEach(slot: number, ain: android.renderscript.Allocation, aout: android.renderscript.Allocation, v: android.renderscript.FieldPacker): void;
		}
		/**
		 *  in API 16 Program raster is primarily used to specify whether point sprites are enabled and to control the culling mode. By default, back faces are culled.
		 */
		export class ProgramRaster extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.ProgramRaster>;
			/**
			 *  in API 16 Specifies whether vertices are rendered as screen aligned elements of a specified size
			 */
			public isPointSpriteEnabled(): boolean;
			/**
			 *  in API 16 Specifies how triangles are culled based on their orientation
			 */
			public getCullMode(): android.renderscript.ProgramRaster.CullMode;
			/**
			 *  in API 16
			 */
			public static CULL_BACK(rs: android.renderscript.RenderScript): android.renderscript.ProgramRaster;
			/**
			 *  in API 16
			 */
			public static CULL_FRONT(rs: android.renderscript.RenderScript): android.renderscript.ProgramRaster;
			/**
			 *  in API 16
			 */
			public static CULL_NONE(rs: android.renderscript.RenderScript): android.renderscript.ProgramRaster;
		}
		export module ProgramRaster {
			/**
			 *  in API 16
			 */
			export class Builder extends java.lang.Object {
				/**
				 *  in API 16
				 */
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.ProgramRaster.Builder>;
				/**
				 *  in API 16
				 */
				public setPointSpriteEnabled(enable: boolean): android.renderscript.ProgramRaster.Builder;
				/**
				 *  in API 16
				 */
				public setCullMode(m: android.renderscript.ProgramRaster.CullMode): android.renderscript.ProgramRaster.Builder;
				/**
				 *  in API 16
				 */
				public create(): android.renderscript.ProgramRaster;
			}
			/**
			 *  in API 16
			 */
			export enum CullMode {
				BACK,
				FRONT,
				NONE
			}
		}
		/**
		 * Base class for all exceptions thrown by the Android Renderscript
		 */
		export class RSIllegalArgumentException extends android.renderscript.RSRuntimeException {
			constructor(string: string);
			static class: java.lang.Class<android.renderscript.RSIllegalArgumentException>;
		}
		/**
		 * Base class for all exceptions thrown by the Android Renderscript
		 */
		export class RSDriverException extends android.renderscript.RSRuntimeException {
			constructor(string: string);
			static class: java.lang.Class<android.renderscript.RSDriverException>;
		}
		/**
		 *  in API 16 FileA3D allows users to load Renderscript objects from files or resources stored on disk. It could be used to load items such as 3D geometry data converted to a Renderscript format from content creation tools. Currently only meshes are supported in FileA3D.
		 */
		export class FileA3D extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.FileA3D>;
			/**
			 *  in API 16 Returns the number of objects stored inside the a3d file
			 */
			public getIndexEntryCount(): number;
			/**
			 *  in API 16 Returns an index entry from the list of all objects inside FileA3D
			 * @param index number of the entry from the list to return
			 */
			public getIndexEntry(index: number): android.renderscript.FileA3D.IndexEntry;
			/**
			 *  in API 16 Creates a FileA3D object from an asset stored on disk
			 * @param rs Context to which the object will belong.
			 * @param mgr asset manager used to load asset
			 * @param path location of the file to load
			 */
			public static createFromAsset(rs: android.renderscript.RenderScript, mgr: android.content.res.AssetManager, path: string): android.renderscript.FileA3D;
			/**
			 *  in API 16 Creates a FileA3D object from a file stored on disk
			 * @param rs Context to which the object will belong.
			 * @param path location of the file to load
			 */
			public static createFromFile(rs: android.renderscript.RenderScript, path: string): android.renderscript.FileA3D;
			/**
			 *  in API 16 Creates a FileA3D object from a file stored on disk
			 * @param rs Context to which the object will belong.
			 * @param path location of the file to load
			 */
			public static createFromFile(rs: android.renderscript.RenderScript, path: java.io.File): android.renderscript.FileA3D;
			/**
			 *  in API 16 Creates a FileA3D object from an application resource
			 * @param rs Context to which the object will belong.
			 * @param res resource manager used for loading
			 * @param id resource to create FileA3D from
			 */
			public static createFromResource(rs: android.renderscript.RenderScript, res: android.content.res.Resources, id: number): android.renderscript.FileA3D;
		}
		export module FileA3D {
			/**
			 *  in API 16 Specifies what renderscript object type is contained within the FileA3D IndexEntry
			 */
			export enum EntryType {
				UNKNOWN,
				MESH
			}
			/**
			 *  in API 16 IndexEntry contains information about one of the Renderscript objects inside the file's index. It could be used to query the object's type and also name and load the object itself if necessary.
			 */
			export class IndexEntry extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.FileA3D.IndexEntry>;
				/**
				 *  in API 16 Returns the name of a renderscript object the index entry describes
				 */
				public getName(): string;
				/**
				 *  in API 16 Returns the type of a renderscript object the index entry describes
				 */
				public getEntryType(): android.renderscript.FileA3D.EntryType;
				/**
				 *  in API 16 Used to load the object described by the index entry
				 */
				public getObject(): android.renderscript.BaseObj;
				/**
				 *  in API 16 Used to load the mesh described by the index entry, object described by the index entry must be a renderscript mesh
				 */
				public getMesh(): android.renderscript.Mesh;
				static internalCreate(rs: android.renderscript.RenderScript, entry: android.renderscript.FileA3D.IndexEntry): android.renderscript.BaseObj;
			}
		}
		export class AllocationAdapter extends android.renderscript.Allocation {
			static class: java.lang.Class<android.renderscript.AllocationAdapter>;
			getID(rs: android.renderscript.RenderScript): number;
			initLOD(lod: number): void;
			/**
			 * Set the active LOD. The LOD must be within the range for the type being adapted. The base allocation must have mipmaps.
			 * @param lod The LOD to make active.
			 */
			public setLOD(lod: number): void;
			/**
			 * Set the active Face. The base allocation must be of a type that includes faces.
			 * @param cf The face to make active.
			 */
			public setFace(cf: android.renderscript.Type.CubemapFace): void;
			/**
			 * Set the active Y. The y value must be within the range for the allocation being adapted. The base allocation must contain the Y dimension.
			 * @param y The y to make active.
			 */
			public setY(y: number): void;
			/**
			 * Set the active Z. The z value must be within the range for the allocation being adapted. The base allocation must contain the Z dimension.
			 * @param z The z to make active.
			 */
			public setZ(z: number): void;
			public static create1D(rs: android.renderscript.RenderScript, a: android.renderscript.Allocation): android.renderscript.AllocationAdapter;
			public static create2D(rs: android.renderscript.RenderScript, a: android.renderscript.Allocation): android.renderscript.AllocationAdapter;
			/**
			 * Override the Allocation resize. Resizing adapters is not allowed and will throw a RSInvalidStateException.
			 * @param dimX ignored.
			 */
			public resize(dimX: number): void;
		}
		/**
		 * Utility class for packing arguments and structures from Android system objects to Renderscript objects.
		 */
		export class FieldPacker extends java.lang.Object {
			constructor(len: number);
			static class: java.lang.Class<android.renderscript.FieldPacker>;
			public align(v: number): void;
			public reset(): void;
			public reset(i: number): void;
			public skip(i: number): void;
			public addI8(v: number): void;
			public addI16(v: number): void;
			public addI32(v: number): void;
			public addI64(v: number): void;
			public addU8(v: number): void;
			public addU16(v: number): void;
			public addU32(v: number): void;
			public addU64(v: number): void;
			public addF32(v: number): void;
			public addF64(v: number): void;
			public addObj(obj: android.renderscript.BaseObj): void;
			public addF32(v: android.renderscript.Float2): void;
			public addF32(v: android.renderscript.Float3): void;
			public addF32(v: android.renderscript.Float4): void;
			public addF64(v: android.renderscript.Double2): void;
			public addF64(v: android.renderscript.Double3): void;
			public addF64(v: android.renderscript.Double4): void;
			public addI8(v: android.renderscript.Byte2): void;
			public addI8(v: android.renderscript.Byte3): void;
			public addI8(v: android.renderscript.Byte4): void;
			public addU8(v: android.renderscript.Short2): void;
			public addU8(v: android.renderscript.Short3): void;
			public addU8(v: android.renderscript.Short4): void;
			public addI16(v: android.renderscript.Short2): void;
			public addI16(v: android.renderscript.Short3): void;
			public addI16(v: android.renderscript.Short4): void;
			public addU16(v: android.renderscript.Int2): void;
			public addU16(v: android.renderscript.Int3): void;
			public addU16(v: android.renderscript.Int4): void;
			public addI32(v: android.renderscript.Int2): void;
			public addI32(v: android.renderscript.Int3): void;
			public addI32(v: android.renderscript.Int4): void;
			public addU32(v: android.renderscript.Long2): void;
			public addU32(v: android.renderscript.Long3): void;
			public addU32(v: android.renderscript.Long4): void;
			public addI64(v: android.renderscript.Long2): void;
			public addI64(v: android.renderscript.Long3): void;
			public addI64(v: android.renderscript.Long4): void;
			public addU64(v: android.renderscript.Long2): void;
			public addU64(v: android.renderscript.Long3): void;
			public addU64(v: android.renderscript.Long4): void;
			public addMatrix(v: android.renderscript.Matrix4f): void;
			public addMatrix(v: android.renderscript.Matrix3f): void;
			public addMatrix(v: android.renderscript.Matrix2f): void;
			public addBoolean(v: boolean): void;
			public getData(): native.Array<number>;
		}
		export class Script extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.Script>;
			/**
			 * Only to be used by generated reflected classes.
			 * @param slot 
			 * @param sig 
			 * @param ein 
			 * @param eout 
			 */
			protected createKernelID(slot: number, sig: number, ein: android.renderscript.Element, eout: android.renderscript.Element): android.renderscript.Script.KernelID;
			/**
			 * Only to be used by generated reflected classes.
			 * @param slot 
			 * @param e 
			 */
			protected createFieldID(slot: number, e: android.renderscript.Element): android.renderscript.Script.FieldID;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 */
			protected invoke(slot: number): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param v 
			 */
			protected invoke(slot: number, v: android.renderscript.FieldPacker): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param ain 
			 * @param aout 
			 * @param v 
			 */
			protected forEach(slot: number, ain: android.renderscript.Allocation, aout: android.renderscript.Allocation, v: android.renderscript.FieldPacker): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param va 
			 * @param slot 
			 */
			public bindAllocation(va: android.renderscript.Allocation, slot: number): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param index 
			 * @param v 
			 */
			public setVar(index: number, v: number): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param index 
			 * @param v 
			 */
			public setVar(index: number, v: boolean): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param index 
			 * @param o 
			 */
			public setVar(index: number, o: android.renderscript.BaseObj): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param index 
			 * @param v 
			 */
			public setVar(index: number, v: android.renderscript.FieldPacker): void;
			/**
			 * Only intended for use by generated reflected code.
			 * @param index 
			 * @param v 
			 * @param e 
			 * @param dims 
			 */
			public setVar(index: number, v: android.renderscript.FieldPacker, e: android.renderscript.Element, dims: native.Array<number>): void;
			public setTimeZone(timeZone: string): void;
		}
		export module Script {
			/**
			 * FieldID is an identifier for a Script + exported field pair. It is used as an identifier for ScriptGroup creation.
			 */
			export class FieldID extends android.renderscript.BaseObj {
				static class: java.lang.Class<android.renderscript.Script.FieldID>;
				private __android_renderscript_Script_FieldID: any;
			}
			export class Builder extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.Script.Builder>;
			}
			export class FieldBase extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.Script.FieldBase>;
				protected init(rs: android.renderscript.RenderScript, dimx: number): void;
				protected init(rs: android.renderscript.RenderScript, dimx: number, usages: number): void;
				public getElement(): android.renderscript.Element;
				public getType(): android.renderscript.Type;
				public getAllocation(): android.renderscript.Allocation;
				public updateAllocation(): void;
			}
			/**
			 * KernelID is an identifier for a Script + root function pair. It is used as an identifier for ScriptGroup creation.
			 */
			export class KernelID extends android.renderscript.BaseObj {
				static class: java.lang.Class<android.renderscript.Script.KernelID>;
				private __android_renderscript_Script_KernelID: any;
			}
		}
		export class Program extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.Program>;
			/**
			 * Program object can have zero or more constant allocations associated with it. This method returns the total count.
			 */
			public getConstantCount(): number;
			/**
			 * Returns the type of the constant buffer used in the program object. It could be used to query internal elements or create an allocation to store constant data.
			 * @param slot index of the constant input type to return
			 */
			public getConstant(slot: number): android.renderscript.Type;
			/**
			 * Returns the number of textures used in this program object
			 */
			public getTextureCount(): number;
			/**
			 * Returns the type of texture at a given slot. e.g. 2D or Cube
			 * @param slot index of the texture input
			 */
			public getTextureType(slot: number): android.renderscript.Program.TextureType;
			/**
			 * Returns the name of the texture input at a given slot. e.g. tex0, diffuse, spec
			 * @param slot index of the texture input
			 */
			public getTextureName(slot: number): string;
			/**
			 * Binds a constant buffer to be used as uniform inputs to the program
			 * @param a allocation containing uniform data
			 * @param slot index within the program's list of constant
			 */
			public bindConstants(a: android.renderscript.Allocation, slot: number): void;
			/**
			 * Binds a texture to be used in the program
			 * @param va allocation containing texture data
			 * @param slot index within the program's list of textures
			 */
			public bindTexture(va: android.renderscript.Allocation, slot: number): void;
			/**
			 * Binds an object that describes how a texture at the corresponding location is sampled
			 * @param vs sampler for a corresponding texture
			 * @param slot index within the program's list of textures to
			 */
			public bindSampler(vs: android.renderscript.Sampler, slot: number): void;
		}
		export module Program {
			export enum ProgramParam {
				INPUT,
				OUTPUT,
				CONSTANT,
				TEXTURE_TYPE
			}
			export class BaseProgramBuilder extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.Program.BaseProgramBuilder>;
				/**
				 * Sets the GLSL shader code to be used in the program
				 * @param s GLSL shader string
				 */
				public setShader(s: string): android.renderscript.Program.BaseProgramBuilder;
				/**
				 * Sets the GLSL shader code to be used in the program
				 * @param resources application resources
				 * @param resourceID id of the file containing GLSL shader code
				 */
				public setShader(resources: android.content.res.Resources, resourceID: number): android.renderscript.Program.BaseProgramBuilder;
				/**
				 * Queries the index of the last added constant buffer type
				 */
				public getCurrentConstantIndex(): number;
				/**
				 * Queries the index of the last added texture type
				 */
				public getCurrentTextureIndex(): number;
				/**
				 * Adds constant (uniform) inputs to the program
				 * @param t Type that describes the layout of the Allocation
				 */
				public addConstant(t: android.renderscript.Type): android.renderscript.Program.BaseProgramBuilder;
				/**
				 * Adds a texture input to the Program
				 * @param texType describes that the texture to append it (2D,
				 */
				public addTexture(texType: android.renderscript.Program.TextureType): android.renderscript.Program.BaseProgramBuilder;
				/**
				 * Adds a texture input to the Program
				 * @param texType describes that the texture to append it (2D,
				 * @param texName what the texture should be called in the
				 */
				public addTexture(texType: android.renderscript.Program.TextureType, texName: string): android.renderscript.Program.BaseProgramBuilder;
				protected initProgram(p: android.renderscript.Program): void;
			}
			export enum TextureType {
				TEXTURE_2D,
				TEXTURE_CUBE
			}
		}
		/**
		 * BaseObj is the base class for interfacing with native renderscript objects. It primarly contains code for tracking the native object ID and forcably disconecting the object from the native allocation for early cleanup.
		 */
		export class BaseObj extends java.lang.Object {
			static class: java.lang.Class<android.renderscript.BaseObj>;
			setID(id: number): void;
			/**
			 * Lookup the native object ID for this object. Primarily used by the generated reflected code.
			 * @param rs Context to verify against internal context for
			 */
			getID(rs: android.renderscript.RenderScript): number;
			checkValid(): void;
			/**
			 * setName assigns a name to an object. This object can later be looked up by this name. This name will also be retained if the object is written to an A3D file.
			 * @param name The name to assign to the object.
			 */
			public setName(name: string): void;
			public getName(): string;
			protected finalize(): void;
			/**
			 * destroy disconnects the object from the native object effectively rendering this java object dead. The primary use is to force immediate cleanup of resources when it is believed the GC will not respond quickly enough.
			 */
			public destroy(): void;
			/**
			 * If an object came from an a3d file, java fields need to be created with objects from the native layer
			 */
			updateFromNative(): void;
			/**
			 * Calculates the hash code value for a BaseObj.
			 */
			public hashCode(): number;
			/**
			 * Compare the current BaseObj with another BaseObj for equality.
			 * @param obj The object to check equality with.
			 */
			public equals(obj: any): boolean;
		}
		/**
		 *  in API 16
		 */
		export class Mesh extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.Mesh>;
			/**
			 *  in API 16
			 */
			public getVertexAllocationCount(): number;
			/**
			 *  in API 16
			 * @param slot index in the list of allocations to return
			 */
			public getVertexAllocation(slot: number): android.renderscript.Allocation;
			/**
			 *  in API 16
			 */
			public getPrimitiveCount(): number;
			/**
			 *  in API 16
			 * @param slot locaton within the list of index set allocation
			 */
			public getIndexSetAllocation(slot: number): android.renderscript.Allocation;
			/**
			 *  in API 16
			 * @param slot locaiton within the list of index set primitives
			 */
			public getPrimitive(slot: number): android.renderscript.Mesh.Primitive;
			updateFromNative(): void;
		}
		export module Mesh {
			/**
			 *  in API 16 Mesh builder object. It starts empty and requires the user to add all the vertex and index allocations that comprise the mesh
			 */
			export class AllocationBuilder extends java.lang.Object {
				/**
				 *  in API 16
				 */
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.Mesh.AllocationBuilder>;
				/**
				 *  in API 16
				 */
				public getCurrentVertexTypeIndex(): number;
				/**
				 *  in API 16
				 */
				public getCurrentIndexSetIndex(): number;
				/**
				 *  in API 16 Adds an allocation containing vertex buffer data to the builder
				 * @param a vertex data allocation
				 */
				public addVertexAllocation(a: android.renderscript.Allocation): android.renderscript.Mesh.AllocationBuilder;
				/**
				 *  in API 16 Adds an allocation containing index buffer data and index type to the builder
				 * @param a index set data allocation, could be null
				 * @param p index set primitive type
				 */
				public addIndexSetAllocation(a: android.renderscript.Allocation, p: android.renderscript.Mesh.Primitive): android.renderscript.Mesh.AllocationBuilder;
				/**
				 *  in API 16 Adds an index set type to the builder
				 * @param p index set primitive type
				 */
				public addIndexSetType(p: android.renderscript.Mesh.Primitive): android.renderscript.Mesh.AllocationBuilder;
				/**
				 *  in API 16 Create a Mesh object from the current state of the builder
				 */
				public create(): android.renderscript.Mesh;
			}
			export module AllocationBuilder {
				export class Entry extends java.lang.Object {
					static class: java.lang.Class<android.renderscript.Mesh.AllocationBuilder.Entry>;
				}
			}
			/**
			 *  in API 16 Describes the way mesh vertex data is interpreted when rendering
			 */
			export enum Primitive {
				POINT,
				LINE,
				LINE_STRIP,
				TRIANGLE,
				TRIANGLE_STRIP,
				TRIANGLE_FAN
			}
			/**
			 *  in API 16 Mesh builder object. It starts empty and requires you to add the types necessary to create vertex and index allocations.
			 */
			export class Builder extends java.lang.Object {
				/**
				 *  in API 16 Creates builder object
				 * @param rs Context to which the mesh will belong.
				 * @param usage specifies how the mesh allocations are to be
				 */
				constructor(rs: android.renderscript.RenderScript, usage: number);
				static class: java.lang.Class<android.renderscript.Mesh.Builder>;
				/**
				 *  in API 16
				 */
				public getCurrentVertexTypeIndex(): number;
				/**
				 *  in API 16
				 */
				public getCurrentIndexSetIndex(): number;
				/**
				 *  in API 16 Adds a vertex data type to the builder object
				 * @param t type of the vertex data allocation to be created
				 */
				public addVertexType(t: android.renderscript.Type): android.renderscript.Mesh.Builder;
				/**
				 *  in API 16 Adds a vertex data type to the builder object
				 * @param e element describing the vertex data layout
				 * @param size number of elements in the buffer
				 */
				public addVertexType(e: android.renderscript.Element, size: number): android.renderscript.Mesh.Builder;
				/**
				 *  in API 16 Adds an index set data type to the builder object
				 * @param t type of the index set data, could be null
				 * @param p primitive type
				 */
				public addIndexSetType(t: android.renderscript.Type, p: android.renderscript.Mesh.Primitive): android.renderscript.Mesh.Builder;
				/**
				 *  in API 16 Adds an index set primitive type to the builder object
				 * @param p primitive type
				 */
				public addIndexSetType(p: android.renderscript.Mesh.Primitive): android.renderscript.Mesh.Builder;
				/**
				 *  in API 16 Adds an index set data type to the builder object
				 * @param e element describing the index set data layout
				 * @param size number of elements in the buffer
				 * @param p primitive type
				 */
				public addIndexSetType(e: android.renderscript.Element, size: number, p: android.renderscript.Mesh.Primitive): android.renderscript.Mesh.Builder;
				newType(e: android.renderscript.Element, size: number): android.renderscript.Type;
				/**
				 *  in API 16 Create a Mesh object from the current state of the builder
				 */
				public create(): android.renderscript.Mesh;
			}
			export module Builder {
				export class Entry extends java.lang.Object {
					static class: java.lang.Class<android.renderscript.Mesh.Builder.Entry>;
				}
			}
			/**
			 *  in API 16 Builder that allows creation of a mesh object point by point and triangle by triangle
			 */
			export class TriangleMeshBuilder extends java.lang.Object {
				/**
				 *  in API 16
				 * @param rs Context to which the mesh will belong.
				 * @param vtxSize specifies whether the vertex is a float2 or
				 * @param flags bitfield that is a combination of COLOR, NORMAL,
				 */
				constructor(rs: android.renderscript.RenderScript, vtxSize: number, flags: number);
				/**
				 *  in API 16
				 */
				static COLOR: number;
				/**
				 *  in API 16
				 */
				static NORMAL: number;
				/**
				 *  in API 16
				 */
				static TEXTURE_0: number;
				static class: java.lang.Class<android.renderscript.Mesh.TriangleMeshBuilder>;
				/**
				 *  in API 16 Adds a float2 vertex to the mesh
				 * @param x position x
				 * @param y position y
				 */
				public addVertex(x: number, y: number): android.renderscript.Mesh.TriangleMeshBuilder;
				/**
				 *  in API 16 Adds a float3 vertex to the mesh
				 * @param x position x
				 * @param y position y
				 * @param z position z
				 */
				public addVertex(x: number, y: number, z: number): android.renderscript.Mesh.TriangleMeshBuilder;
				/**
				 *  in API 16 Sets the texture coordinate for the vertices that are added after this method call.
				 * @param s texture coordinate s
				 * @param t texture coordinate t
				 */
				public setTexture(s: number, t: number): android.renderscript.Mesh.TriangleMeshBuilder;
				/**
				 *  in API 16 Sets the normal vector for the vertices that are added after this method call.
				 * @param x normal vector x
				 * @param y normal vector y
				 * @param z normal vector z
				 */
				public setNormal(x: number, y: number, z: number): android.renderscript.Mesh.TriangleMeshBuilder;
				/**
				 *  in API 16 Sets the color for the vertices that are added after this method call.
				 * @param r red component
				 * @param g green component
				 * @param b blue component
				 * @param a alpha component
				 */
				public setColor(r: number, g: number, b: number, a: number): android.renderscript.Mesh.TriangleMeshBuilder;
				/**
				 *  in API 16 Adds a new triangle to the mesh builder
				 * @param idx1 index of the first vertex in the triangle
				 * @param idx2 index of the second vertex in the triangle
				 * @param idx3 index of the third vertex in the triangle
				 */
				public addTriangle(idx1: number, idx2: number, idx3: number): android.renderscript.Mesh.TriangleMeshBuilder;
				/**
				 *  in API 16 Creates the mesh object from the current state of the builder
				 * @param uploadToBufferObject specifies whether the vertex data
				 */
				public create(uploadToBufferObject: boolean): android.renderscript.Mesh;
			}
		}
		/**
		 *  in API 16 The Surface View for a graphics renderscript (RenderScriptGL) to draw on.
		 */
		export class RSSurfaceView extends android.view.SurfaceView implements android.view.SurfaceHolder.ICallback {
			/**
			 *  in API 16 Standard View constructor. In order to render something, you must call android.opengl.GLSurfaceView#setRenderer to register a renderer.
			 */
			constructor(context: android.content.Context);
			/**
			 *  in API 16 Standard View constructor. In order to render something, you must call android.opengl.GLSurfaceView#setRenderer to register a renderer.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.renderscript.RSSurfaceView>;
			/**
			 *  in API 16 This method is part of the SurfaceHolder.Callback interface, and is not normally called or subclassed by clients of RSSurfaceView.
			 */
			public surfaceCreated(holder: android.view.ISurfaceHolder): void;
			/**
			 *  in API 16 This method is part of the SurfaceHolder.Callback interface, and is not normally called or subclassed by clients of RSSurfaceView.
			 */
			public surfaceDestroyed(holder: android.view.ISurfaceHolder): void;
			/**
			 *  in API 16 This method is part of the SurfaceHolder.Callback interface, and is not normally called or subclassed by clients of RSSurfaceView.
			 */
			public surfaceChanged(holder: android.view.ISurfaceHolder, format: number, w: number, h: number): void;
			/**
			 *  in API 16 Inform the view that the activity is paused. The owner of this view must call this method when the activity is paused. Calling this method will pause the rendering thread. Must not be called before a renderer has been set.
			 */
			public pause(): void;
			/**
			 *  in API 16 Inform the view that the activity is resumed. The owner of this view must call this method when the activity is resumed. Calling this method will recreate the OpenGL display and resume the rendering thread. Must not be called before a renderer has been set.
			 */
			public resume(): void;
			/**
			 *  in API 16
			 */
			public createRenderScriptGL(sc: android.renderscript.RenderScriptGL.SurfaceConfig): android.renderscript.RenderScriptGL;
			/**
			 *  in API 16
			 */
			public destroyRenderScriptGL(): void;
			/**
			 *  in API 16
			 */
			public setRenderScriptGL(rs: android.renderscript.RenderScriptGL): void;
			/**
			 *  in API 16
			 */
			public getRenderScriptGL(): android.renderscript.RenderScriptGL;
		}
		/**
		 *  in API 16 The Graphics derivitive of Renderscript. Extends the basic context to add a root script which is the display window for graphical output. When the system needs to update the display the currently bound root script will be called. This script is expected to issue the rendering commands to repaint the screen.
		 */
		export class RenderScriptGL extends android.renderscript.RenderScript {
			/**
			 *  in API 16 Construct a new RenderScriptGL context.
			 * @param ctx The context.
			 * @param sc The desired format of the primary rendering surface.
			 */
			constructor(ctx: android.content.Context, sc: android.renderscript.RenderScriptGL.SurfaceConfig);
			static class: java.lang.Class<android.renderscript.RenderScriptGL>;
			/**
			 *  in API 16 Bind an os surface
			 * @param sur w
			 * @param w h
			 * @param h sur
			 */
			public setSurface(sur: android.view.ISurfaceHolder, w: number, h: number): void;
			/**
			 *  in API 16 Bind an os surface
			 * @param sur w
			 * @param w h
			 * @param h sur
			 */
			public setSurfaceTexture(sur: android.graphics.SurfaceTexture, w: number, h: number): void;
			/**
			 *  in API 16 return the height of the last set surface.
			 */
			public getHeight(): number;
			/**
			 *  in API 16 return the width of the last set surface.
			 */
			public getWidth(): number;
			/**
			 *  in API 16 Temporarly halt calls to the root rendering script.
			 */
			public pause(): void;
			/**
			 *  in API 16 Resume calls to the root rendering script.
			 */
			public resume(): void;
			/**
			 *  in API 16 Set the script to handle calls to render the primary surface.
			 * @param s Graphics script to process rendering requests.
			 */
			public bindRootScript(s: android.renderscript.Script): void;
			/**
			 *  in API 16 Set the default ProgramStore object seen as the parent state by the root rendering script.
			 * @param p 
			 */
			public bindProgramStore(p: android.renderscript.ProgramStore): void;
			/**
			 *  in API 16 Set the default ProgramFragment object seen as the parent state by the root rendering script.
			 * @param p 
			 */
			public bindProgramFragment(p: android.renderscript.ProgramFragment): void;
			/**
			 *  in API 16 Set the default ProgramRaster object seen as the parent state by the root rendering script.
			 * @param p 
			 */
			public bindProgramRaster(p: android.renderscript.ProgramRaster): void;
			/**
			 *  in API 16 Set the default ProgramVertex object seen as the parent state by the root rendering script.
			 * @param p 
			 */
			public bindProgramVertex(p: android.renderscript.ProgramVertex): void;
		}
		export module RenderScriptGL {
			/**
			 *  in API 16 Class which is used to describe a pixel format for a graphical buffer. This is used to describe the intended format of the display surface.
			 */
			export class SurfaceConfig extends java.lang.Object {
				/**
				 *  in API 16
				 */
				constructor();
				/**
				 *  in API 16
				 */
				constructor(sc: android.renderscript.RenderScriptGL.SurfaceConfig);
				static class: java.lang.Class<android.renderscript.RenderScriptGL.SurfaceConfig>;
				/**
				 *  in API 16 Set the per-component bit depth for color (red, green, blue). This configures the surface for an unsigned integer buffer type.
				 * @param minimum 
				 * @param preferred 
				 */
				public setColor(minimum: number, preferred: number): void;
				/**
				 *  in API 16 Set the bit depth for alpha. This configures the surface for an unsigned integer buffer type.
				 * @param minimum 
				 * @param preferred 
				 */
				public setAlpha(minimum: number, preferred: number): void;
				/**
				 *  in API 16 Set the bit depth for the depth buffer. This configures the surface for an unsigned integer buffer type. If a minimum of 0 is specified then its possible no depth buffer will be allocated.
				 * @param minimum 
				 * @param preferred 
				 */
				public setDepth(minimum: number, preferred: number): void;
				/**
				 *  in API 16 Configure the multisample rendering.
				 * @param minimum The required number of samples, must be at least 1.
				 * @param preferred The targe number of samples, must be at least
				 * @param Q The quality of samples, range 0-1. Used to decide between
				 */
				public setSamples(minimum: number, preferred: number, Q: number): void;
			}
		}
		/**
		 * Class for exposing the native Renderscript rs_matrix4x4 type back to the Android system.
		 */
		export class Matrix4f extends java.lang.Object {
			/**
			 * Creates a new identity 4x4 matrix
			 */
			constructor();
			/**
			 * Creates a new matrix and sets its values from the given parameter
			 * @param dataArray values to set the matrix to, must be 16
			 */
			constructor(dataArray: native.Array<number>);
			static class: java.lang.Class<android.renderscript.Matrix4f>;
			/**
			 * Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix
			 */
			public getArray(): native.Array<number>;
			/**
			 * Returns the value for a given row and column
			 * @param x column of the value to return
			 * @param y row of the value to return
			 */
			public get(x: number, y: number): number;
			/**
			 * Sets the value for a given row and column
			 * @param x column of the value to set
			 * @param y row of the value to set
			 * @param v 
			 */
			public set(x: number, y: number, v: number): void;
			/**
			 * Sets the matrix values to identity
			 */
			public loadIdentity(): void;
			/**
			 * Sets the values of the matrix to those of the parameter
			 * @param src matrix to load the values from
			 */
			public load(src: android.renderscript.Matrix4f): void;
			/**
			 * Sets current values to be a rotation matrix of certain angle about a given axis
			 * @param rot angle of rotation
			 * @param x rotation axis x
			 * @param y rotation axis y
			 * @param z rotation axis z
			 */
			public loadRotate(rot: number, x: number, y: number, z: number): void;
			/**
			 * Sets current values to be a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 * @param z scale component z
			 */
			public loadScale(x: number, y: number, z: number): void;
			/**
			 * Sets current values to be a translation matrix of given dimensions
			 * @param x translation component x
			 * @param y translation component y
			 * @param z translation component z
			 */
			public loadTranslate(x: number, y: number, z: number): void;
			/**
			 * Sets current values to be the result of multiplying two given matrices
			 * @param lhs left hand side matrix
			 * @param rhs right hand side matrix
			 */
			public loadMultiply(lhs: android.renderscript.Matrix4f, rhs: android.renderscript.Matrix4f): void;
			/**
			 * Set current values to be an orthographic projection matrix
			 * @param l location of the left vertical clipping plane
			 * @param r location of the right vertical clipping plane
			 * @param b location of the bottom horizontal clipping plane
			 * @param t location of the top horizontal clipping plane
			 * @param n location of the near clipping plane
			 * @param f location of the far clipping plane
			 */
			public loadOrtho(l: number, r: number, b: number, t: number, n: number, f: number): void;
			/**
			 * Set current values to be an orthographic projection matrix with the right and bottom clipping planes set to the given values. Left and top clipping planes are set to 0. Near and far are set to -1, 1 respectively
			 * @param w location of the right vertical clipping plane
			 * @param h location of the bottom horizontal clipping plane
			 */
			public loadOrthoWindow(w: number, h: number): void;
			/**
			 * Sets current values to be a perspective projection matrix
			 * @param l location of the left vertical clipping plane
			 * @param r location of the right vertical clipping plane
			 * @param b location of the bottom horizontal clipping plane
			 * @param t location of the top horizontal clipping plane
			 * @param n location of the near clipping plane, must be positive
			 * @param f location of the far clipping plane, must be positive
			 */
			public loadFrustum(l: number, r: number, b: number, t: number, n: number, f: number): void;
			/**
			 * Sets current values to be a perspective projection matrix
			 * @param fovy vertical field of view angle in degrees
			 * @param aspect aspect ratio of the screen
			 * @param near near cliping plane, must be positive
			 * @param far far clipping plane, must be positive
			 */
			public loadPerspective(fovy: number, aspect: number, near: number, far: number): void;
			/**
			 * Helper function to set the current values to a perspective projection matrix with aspect ratio defined by the parameters and (near, far), (bottom, top) mapping to (-1, 1) at z = 0
			 * @param w screen width
			 * @param h screen height
			 */
			public loadProjectionNormalized(w: number, h: number): void;
			/**
			 * Post-multiplies the current matrix by a given parameter
			 * @param rhs right hand side to multiply by
			 */
			public multiply(rhs: android.renderscript.Matrix4f): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a rotation matrix of certain angle about a given axis
			 * @param rot angle of rotation
			 * @param x rotation axis x
			 * @param y rotation axis y
			 * @param z rotation axis z
			 */
			public rotate(rot: number, x: number, y: number, z: number): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 * @param z scale component z
			 */
			public scale(x: number, y: number, z: number): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a translation matrix of given dimensions
			 * @param x translation component x
			 * @param y translation component y
			 * @param z translation component z
			 */
			public translate(x: number, y: number, z: number): void;
			/**
			 * Sets the current matrix to its inverse
			 */
			public inverse(): boolean;
			/**
			 * Sets the current matrix to its inverse transpose
			 */
			public inverseTranspose(): boolean;
			/**
			 * Sets the current matrix to its transpose
			 */
			public transpose(): void;
		}
		/**
		 * Renderscript base master class. An instance of this class creates native worker threads for processing commands from this object. This base class does not provide any extended capabilities beyond simple data processing. For extended capabilities use derived classes such as RenderScriptGL.
		 */
		export class RenderScript extends java.lang.Object {
			static class: java.lang.Class<android.renderscript.RenderScript>;
			static _nInit(): void;
			nDeviceCreate(): number;
			nDeviceDestroy(dev: number): void;
			nDeviceSetConfig(dev: number, param: number, value: number): void;
			nContextGetUserMessage(con: number, data: native.Array<number>): number;
			nContextGetErrorMessage(con: number): string;
			nContextPeekMessage(con: number, subID: native.Array<number>): number;
			nContextInitToClient(con: number): void;
			nContextDeinitToClient(con: number): void;
			rsnContextCreateGL(dev: number, ver: number, sdkVer: number, colorMin: number, colorPref: number, alphaMin: number, alphaPref: number, depthMin: number, depthPref: number, stencilMin: number, stencilPref: number, samplesMin: number, samplesPref: number, samplesQ: number, dpi: number): number;
			nContextCreateGL(dev: number, ver: number, sdkVer: number, colorMin: number, colorPref: number, alphaMin: number, alphaPref: number, depthMin: number, depthPref: number, stencilMin: number, stencilPref: number, samplesMin: number, samplesPref: number, samplesQ: number, dpi: number): number;
			rsnContextCreate(dev: number, ver: number, sdkVer: number): number;
			nContextCreate(dev: number, ver: number, sdkVer: number): number;
			rsnContextDestroy(con: number): void;
			nContextDestroy(): void;
			rsnContextSetSurface(con: number, w: number, h: number, sur: android.view.Surface): void;
			nContextSetSurface(w: number, h: number, sur: android.view.Surface): void;
			rsnContextSetSurfaceTexture(con: number, w: number, h: number, sur: android.graphics.SurfaceTexture): void;
			nContextSetSurfaceTexture(w: number, h: number, sur: android.graphics.SurfaceTexture): void;
			rsnContextSetPriority(con: number, p: number): void;
			nContextSetPriority(p: number): void;
			rsnContextDump(con: number, bits: number): void;
			nContextDump(bits: number): void;
			rsnContextFinish(con: number): void;
			nContextFinish(): void;
			rsnContextBindRootScript(con: number, script: number): void;
			nContextBindRootScript(script: number): void;
			rsnContextBindSampler(con: number, sampler: number, slot: number): void;
			nContextBindSampler(sampler: number, slot: number): void;
			rsnContextBindProgramStore(con: number, pfs: number): void;
			nContextBindProgramStore(pfs: number): void;
			rsnContextBindProgramFragment(con: number, pf: number): void;
			nContextBindProgramFragment(pf: number): void;
			rsnContextBindProgramVertex(con: number, pv: number): void;
			nContextBindProgramVertex(pv: number): void;
			rsnContextBindProgramRaster(con: number, pr: number): void;
			nContextBindProgramRaster(pr: number): void;
			rsnContextPause(con: number): void;
			nContextPause(): void;
			rsnContextResume(con: number): void;
			nContextResume(): void;
			rsnAssignName(con: number, obj: number, name: native.Array<number>): void;
			nAssignName(obj: number, name: native.Array<number>): void;
			rsnGetName(con: number, obj: number): string;
			nGetName(obj: number): string;
			rsnObjDestroy(con: number, id: number): void;
			nObjDestroy(id: number): void;
			rsnElementCreate(con: number, type: number, kind: number, norm: boolean, vecSize: number): number;
			nElementCreate(type: number, kind: number, norm: boolean, vecSize: number): number;
			rsnElementCreate2(con: number, elements: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): number;
			nElementCreate2(elements: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): number;
			rsnElementGetNativeData(con: number, id: number, elementData: native.Array<number>): void;
			nElementGetNativeData(id: number, elementData: native.Array<number>): void;
			rsnElementGetSubElements(con: number, id: number, IDs: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): void;
			nElementGetSubElements(id: number, IDs: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): void;
			rsnTypeCreate(con: number, eid: number, x: number, y: number, z: number, mips: boolean, faces: boolean): number;
			nTypeCreate(eid: number, x: number, y: number, z: number, mips: boolean, faces: boolean): number;
			rsnTypeGetNativeData(con: number, id: number, typeData: native.Array<number>): void;
			nTypeGetNativeData(id: number, typeData: native.Array<number>): void;
			rsnAllocationCreateTyped(con: number, type: number, mip: number, usage: number, pointer: number): number;
			nAllocationCreateTyped(type: number, mip: number, usage: number, pointer: number): number;
			rsnAllocationCreateFromBitmap(con: number, type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
			nAllocationCreateFromBitmap(type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
			rsnAllocationCubeCreateFromBitmap(con: number, type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
			nAllocationCubeCreateFromBitmap(type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
			rsnAllocationCreateBitmapRef(con: number, type: number, bmp: android.graphics.Bitmap): number;
			nAllocationCreateBitmapRef(type: number, bmp: android.graphics.Bitmap): number;
			rsnAllocationCreateFromAssetStream(con: number, mips: number, assetStream: number, usage: number): number;
			nAllocationCreateFromAssetStream(mips: number, assetStream: number, usage: number): number;
			rsnAllocationCopyToBitmap(con: number, alloc: number, bmp: android.graphics.Bitmap): void;
			nAllocationCopyToBitmap(alloc: number, bmp: android.graphics.Bitmap): void;
			rsnAllocationSyncAll(con: number, alloc: number, src: number): void;
			nAllocationSyncAll(alloc: number, src: number): void;
			rsnAllocationGetSurfaceTextureID(con: number, alloc: number): number;
			nAllocationGetSurfaceTextureID(alloc: number): number;
			rsnAllocationGetSurfaceTextureID2(con: number, alloc: number, st: android.graphics.SurfaceTexture): void;
			nAllocationGetSurfaceTextureID2(alloc: number, st: android.graphics.SurfaceTexture): void;
			rsnAllocationSetSurface(con: number, alloc: number, sur: android.view.Surface): void;
			nAllocationSetSurface(alloc: number, sur: android.view.Surface): void;
			rsnAllocationIoSend(con: number, alloc: number): void;
			nAllocationIoSend(alloc: number): void;
			rsnAllocationIoReceive(con: number, alloc: number): void;
			nAllocationIoReceive(alloc: number): void;
			rsnAllocationGenerateMipmaps(con: number, alloc: number): void;
			nAllocationGenerateMipmaps(alloc: number): void;
			rsnAllocationCopyFromBitmap(con: number, alloc: number, bmp: android.graphics.Bitmap): void;
			nAllocationCopyFromBitmap(alloc: number, bmp: android.graphics.Bitmap): void;
			rsnAllocationData1D(con: number, id: number, off: number, mip: number, count: number, d: native.Array<number>, sizeBytes: number): void;
			nAllocationData1D(id: number, off: number, mip: number, count: number, d: native.Array<number>, sizeBytes: number): void;
			rsnAllocationElementData1D(con: number, id: number, xoff: number, mip: number, compIdx: number, d: native.Array<number>, sizeBytes: number): void;
			nAllocationElementData1D(id: number, xoff: number, mip: number, compIdx: number, d: native.Array<number>, sizeBytes: number): void;
			rsnAllocationData2D(con: number, dstAlloc: number, dstXoff: number, dstYoff: number, dstMip: number, dstFace: number, width: number, height: number, srcAlloc: number, srcXoff: number, srcYoff: number, srcMip: number, srcFace: number): void;
			nAllocationData2D(dstAlloc: number, dstXoff: number, dstYoff: number, dstMip: number, dstFace: number, width: number, height: number, srcAlloc: number, srcXoff: number, srcYoff: number, srcMip: number, srcFace: number): void;
			rsnAllocationData2D(con: number, id: number, xoff: number, yoff: number, mip: number, face: number, w: number, h: number, d: native.Array<number>, sizeBytes: number): void;
			nAllocationData2D(id: number, xoff: number, yoff: number, mip: number, face: number, w: number, h: number, d: native.Array<number>, sizeBytes: number): void;
			rsnAllocationData2D(con: number, id: number, xoff: number, yoff: number, mip: number, face: number, b: android.graphics.Bitmap): void;
			nAllocationData2D(id: number, xoff: number, yoff: number, mip: number, face: number, b: android.graphics.Bitmap): void;
			rsnAllocationRead(con: number, id: number, d: native.Array<number>): void;
			nAllocationRead(id: number, d: native.Array<number>): void;
			rsnAllocationGetType(con: number, id: number): number;
			nAllocationGetType(id: number): number;
			rsnAllocationResize1D(con: number, id: number, dimX: number): void;
			nAllocationResize1D(id: number, dimX: number): void;
			rsnAllocationResize2D(con: number, id: number, dimX: number, dimY: number): void;
			nAllocationResize2D(id: number, dimX: number, dimY: number): void;
			rsnFileA3DCreateFromAssetStream(con: number, assetStream: number): number;
			nFileA3DCreateFromAssetStream(assetStream: number): number;
			rsnFileA3DCreateFromFile(con: number, path: string): number;
			nFileA3DCreateFromFile(path: string): number;
			rsnFileA3DCreateFromAsset(con: number, mgr: android.content.res.AssetManager, path: string): number;
			nFileA3DCreateFromAsset(mgr: android.content.res.AssetManager, path: string): number;
			rsnFileA3DGetNumIndexEntries(con: number, fileA3D: number): number;
			nFileA3DGetNumIndexEntries(fileA3D: number): number;
			rsnFileA3DGetIndexEntries(con: number, fileA3D: number, numEntries: number, IDs: native.Array<number>, names: native.Array<string>): void;
			nFileA3DGetIndexEntries(fileA3D: number, numEntries: number, IDs: native.Array<number>, names: native.Array<string>): void;
			rsnFileA3DGetEntryByIndex(con: number, fileA3D: number, index: number): number;
			nFileA3DGetEntryByIndex(fileA3D: number, index: number): number;
			rsnFontCreateFromFile(con: number, fileName: string, size: number, dpi: number): number;
			nFontCreateFromFile(fileName: string, size: number, dpi: number): number;
			rsnFontCreateFromAssetStream(con: number, name: string, size: number, dpi: number, assetStream: number): number;
			nFontCreateFromAssetStream(name: string, size: number, dpi: number, assetStream: number): number;
			rsnFontCreateFromAsset(con: number, mgr: android.content.res.AssetManager, path: string, size: number, dpi: number): number;
			nFontCreateFromAsset(mgr: android.content.res.AssetManager, path: string, size: number, dpi: number): number;
			rsnScriptBindAllocation(con: number, script: number, alloc: number, slot: number): void;
			nScriptBindAllocation(script: number, alloc: number, slot: number): void;
			rsnScriptSetTimeZone(con: number, script: number, timeZone: native.Array<number>): void;
			nScriptSetTimeZone(script: number, timeZone: native.Array<number>): void;
			rsnScriptInvoke(con: number, id: number, slot: number): void;
			nScriptInvoke(id: number, slot: number): void;
			rsnScriptForEach(con: number, id: number, slot: number, ain: number, aout: number, params: native.Array<number>): void;
			rsnScriptForEach(con: number, id: number, slot: number, ain: number, aout: number): void;
			nScriptForEach(id: number, slot: number, ain: number, aout: number, params: native.Array<number>): void;
			rsnScriptInvokeV(con: number, id: number, slot: number, params: native.Array<number>): void;
			nScriptInvokeV(id: number, slot: number, params: native.Array<number>): void;
			rsnScriptSetVarI(con: number, id: number, slot: number, val: number): void;
			nScriptSetVarI(id: number, slot: number, val: number): void;
			rsnScriptSetVarJ(con: number, id: number, slot: number, val: number): void;
			nScriptSetVarJ(id: number, slot: number, val: number): void;
			rsnScriptSetVarF(con: number, id: number, slot: number, val: number): void;
			nScriptSetVarF(id: number, slot: number, val: number): void;
			rsnScriptSetVarD(con: number, id: number, slot: number, val: number): void;
			nScriptSetVarD(id: number, slot: number, val: number): void;
			rsnScriptSetVarV(con: number, id: number, slot: number, val: native.Array<number>): void;
			nScriptSetVarV(id: number, slot: number, val: native.Array<number>): void;
			rsnScriptSetVarVE(con: number, id: number, slot: number, val: native.Array<number>, e: number, dims: native.Array<number>): void;
			nScriptSetVarVE(id: number, slot: number, val: native.Array<number>, e: number, dims: native.Array<number>): void;
			rsnScriptSetVarObj(con: number, id: number, slot: number, val: number): void;
			nScriptSetVarObj(id: number, slot: number, val: number): void;
			rsnScriptCCreate(con: number, resName: string, cacheDir: string, script: native.Array<number>, length: number): number;
			nScriptCCreate(resName: string, cacheDir: string, script: native.Array<number>, length: number): number;
			rsnScriptIntrinsicCreate(con: number, id: number, eid: number): number;
			nScriptIntrinsicCreate(id: number, eid: number): number;
			rsnScriptKernelIDCreate(con: number, sid: number, slot: number, sig: number): number;
			nScriptKernelIDCreate(sid: number, slot: number, sig: number): number;
			rsnScriptFieldIDCreate(con: number, sid: number, slot: number): number;
			nScriptFieldIDCreate(sid: number, slot: number): number;
			rsnScriptGroupCreate(con: number, kernels: native.Array<number>, src: native.Array<number>, dstk: native.Array<number>, dstf: native.Array<number>, types: native.Array<number>): number;
			nScriptGroupCreate(kernels: native.Array<number>, src: native.Array<number>, dstk: native.Array<number>, dstf: native.Array<number>, types: native.Array<number>): number;
			rsnScriptGroupSetInput(con: number, group: number, kernel: number, alloc: number): void;
			nScriptGroupSetInput(group: number, kernel: number, alloc: number): void;
			rsnScriptGroupSetOutput(con: number, group: number, kernel: number, alloc: number): void;
			nScriptGroupSetOutput(group: number, kernel: number, alloc: number): void;
			rsnScriptGroupExecute(con: number, group: number): void;
			nScriptGroupExecute(group: number): void;
			rsnSamplerCreate(con: number, magFilter: number, minFilter: number, wrapS: number, wrapT: number, wrapR: number, aniso: number): number;
			nSamplerCreate(magFilter: number, minFilter: number, wrapS: number, wrapT: number, wrapR: number, aniso: number): number;
			rsnProgramStoreCreate(con: number, r: boolean, g: boolean, b: boolean, a: boolean, depthMask: boolean, dither: boolean, srcMode: number, dstMode: number, depthFunc: number): number;
			nProgramStoreCreate(r: boolean, g: boolean, b: boolean, a: boolean, depthMask: boolean, dither: boolean, srcMode: number, dstMode: number, depthFunc: number): number;
			rsnProgramRasterCreate(con: number, pointSprite: boolean, cullMode: number): number;
			nProgramRasterCreate(pointSprite: boolean, cullMode: number): number;
			rsnProgramBindConstants(con: number, pv: number, slot: number, mID: number): void;
			nProgramBindConstants(pv: number, slot: number, mID: number): void;
			rsnProgramBindTexture(con: number, vpf: number, slot: number, a: number): void;
			nProgramBindTexture(vpf: number, slot: number, a: number): void;
			rsnProgramBindSampler(con: number, vpf: number, slot: number, s: number): void;
			nProgramBindSampler(vpf: number, slot: number, s: number): void;
			rsnProgramFragmentCreate(con: number, shader: string, texNames: native.Array<string>, params: native.Array<number>): number;
			nProgramFragmentCreate(shader: string, texNames: native.Array<string>, params: native.Array<number>): number;
			rsnProgramVertexCreate(con: number, shader: string, texNames: native.Array<string>, params: native.Array<number>): number;
			nProgramVertexCreate(shader: string, texNames: native.Array<string>, params: native.Array<number>): number;
			rsnMeshCreate(con: number, vtx: native.Array<number>, idx: native.Array<number>, prim: native.Array<number>): number;
			nMeshCreate(vtx: native.Array<number>, idx: native.Array<number>, prim: native.Array<number>): number;
			rsnMeshGetVertexBufferCount(con: number, id: number): number;
			nMeshGetVertexBufferCount(id: number): number;
			rsnMeshGetIndexCount(con: number, id: number): number;
			nMeshGetIndexCount(id: number): number;
			rsnMeshGetVertices(con: number, id: number, vtxIds: native.Array<number>, vtxIdCount: number): void;
			nMeshGetVertices(id: number, vtxIds: native.Array<number>, vtxIdCount: number): void;
			rsnMeshGetIndices(con: number, id: number, idxIds: native.Array<number>, primitives: native.Array<number>, vtxIdCount: number): void;
			nMeshGetIndices(id: number, idxIds: native.Array<number>, primitives: native.Array<number>, vtxIdCount: number): void;
			rsnPathCreate(con: number, prim: number, isStatic: boolean, vtx: number, loop: number, q: number): number;
			nPathCreate(prim: number, isStatic: boolean, vtx: number, loop: number, q: number): number;
			public setMessageHandler(msg: android.renderscript.RenderScript.RSMessageHandler): void;
			public getMessageHandler(): android.renderscript.RenderScript.RSMessageHandler;
			public setErrorHandler(msg: android.renderscript.RenderScript.RSErrorHandler): void;
			public getErrorHandler(): android.renderscript.RenderScript.RSErrorHandler;
			validate(): void;
			/**
			 * Change the priority of the worker threads for this context.
			 * @param p New priority to be set.
			 */
			public setPriority(p: android.renderscript.RenderScript.Priority): void;
			/**
			 * Gets the application context associated with the RenderScript context.
			 */
			public getApplicationContext(): android.content.Context;
			/**
			 * Create a basic RenderScript context.
			 * @param ctx The context.
			 */
			public static create(ctx: android.content.Context): android.renderscript.RenderScript;
			/**
			 * Print the currently available debugging information about the state of the RS context to the log.
			 */
			public contextDump(): void;
			/**
			 * Wait for any commands in the fifo between the java bindings and native to be processed.
			 */
			public finish(): void;
			/**
			 * Destroy this renderscript context. Once this function is called its no longer legal to use this or any objects created by this context.
			 */
			public destroy(): void;
			isAlive(): boolean;
			safeID(o: android.renderscript.BaseObj): number;
		}
		export module RenderScript {
			/**
			 * Base class application should derive from for handling RS messages coming from their scripts. When a script calls sendToClient the data fields will be filled in and then the run method called by a message handling thread. This will occur some time after sendToClient completes in the script.
			 */
			export class RSMessageHandler extends java.lang.Object implements java.lang.IRunnable {
				constructor();
				static class: java.lang.Class<android.renderscript.RenderScript.RSMessageHandler>;
				public run(): void;
			}
			/**
			 * RenderScript worker threads priority enumeration. The default value is NORMAL. Applications wishing to do background processing such as wallpapers should set their priority to LOW to avoid starving forground processes.
			 */
			export enum Priority {
				LOW,
				NORMAL
			}
			/**
			 * Runtime error base class. An application should derive from this class if it wishes to install an error handler. When errors occur at runtime the fields in this class will be filled and the run method called.
			 */
			export class RSErrorHandler extends java.lang.Object implements java.lang.IRunnable {
				constructor();
				static class: java.lang.Class<android.renderscript.RenderScript.RSErrorHandler>;
				public run(): void;
			}
			export class MessageThread extends java.lang.Thread {
				static class: java.lang.Class<android.renderscript.RenderScript.MessageThread>;
				public run(): void;
			}
		}
		/**
		 *  in API 16 ProgramVertex, also know as a vertex shader, describes a stage in the graphics pipeline responsible for manipulating geometric data in a user-defined way.
		 */
		export class ProgramVertex extends android.renderscript.Program {
			static class: java.lang.Class<android.renderscript.ProgramVertex>;
			/**
			 *  in API 16
			 */
			public getInputCount(): number;
			/**
			 *  in API 16
			 * @param slot location of the input to return
			 */
			public getInput(slot: number): android.renderscript.Element;
		}
		export module ProgramVertex {
			/**
			 *  in API 16 Builder class for creating ProgramVertex objects. The builder starts empty and the user must minimally provide the GLSL shader code, and the varying inputs. Constant, or uniform parameters to the shader may optionally be provided as well.
			 */
			export class Builder extends android.renderscript.Program.BaseProgramBuilder {
				/**
				 *  in API 16 Create a builder object.
				 * @param rs Context to which the program will belong.
				 */
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.ProgramVertex.Builder>;
				/**
				 *  in API 16 Add varying inputs to the program
				 * @param e element describing the layout of the varying input
				 */
				public addInput(e: android.renderscript.Element): android.renderscript.ProgramVertex.Builder;
				/**
				 *  in API 16 Creates ProgramVertex from the current state of the builder
				 */
				public create(): android.renderscript.ProgramVertex;
			}
		}
		export class ScriptC extends android.renderscript.Script {
			static class: java.lang.Class<android.renderscript.ScriptC>;
		}
		/**
		 * Sampler object which defines how data is extracted from textures. Samplers are attached to Program objects (currently only ProgramFragment) when those objects need to access texture data.
		 */
		export class Sampler extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.Sampler>;
			public getMinification(): android.renderscript.Sampler.Value;
			public getMagnification(): android.renderscript.Sampler.Value;
			public getWrapS(): android.renderscript.Sampler.Value;
			public getWrapT(): android.renderscript.Sampler.Value;
			public getAnisotropy(): number;
			/**
			 * Retrieve a sampler with min and mag set to nearest and wrap modes set to clamp.
			 * @param rs Context to which the sampler will belong.
			 */
			public static CLAMP_NEAREST(rs: android.renderscript.RenderScript): android.renderscript.Sampler;
			/**
			 * Retrieve a sampler with min and mag set to linear and wrap modes set to clamp.
			 * @param rs Context to which the sampler will belong.
			 */
			public static CLAMP_LINEAR(rs: android.renderscript.RenderScript): android.renderscript.Sampler;
			/**
			 * Retrieve a sampler with ag set to linear, min linear mipmap linear, and to and wrap modes set to clamp.
			 * @param rs Context to which the sampler will belong.
			 */
			public static CLAMP_LINEAR_MIP_LINEAR(rs: android.renderscript.RenderScript): android.renderscript.Sampler;
			/**
			 * Retrieve a sampler with min and mag set to nearest and wrap modes set to wrap.
			 * @param rs Context to which the sampler will belong.
			 */
			public static WRAP_NEAREST(rs: android.renderscript.RenderScript): android.renderscript.Sampler;
			/**
			 * Retrieve a sampler with min and mag set to nearest and wrap modes set to wrap.
			 * @param rs Context to which the sampler will belong.
			 */
			public static WRAP_LINEAR(rs: android.renderscript.RenderScript): android.renderscript.Sampler;
			/**
			 * Retrieve a sampler with ag set to linear, min linear mipmap linear, and to and wrap modes set to wrap.
			 * @param rs Context to which the sampler will belong.
			 */
			public static WRAP_LINEAR_MIP_LINEAR(rs: android.renderscript.RenderScript): android.renderscript.Sampler;
		}
		export module Sampler {
			/**
			 * Builder for creating non-standard samplers. Usefull if mix and match of wrap modes is necesary or if anisotropic filtering is desired.
			 */
			export class Builder extends java.lang.Object {
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.Sampler.Builder>;
				public setMinification(v: android.renderscript.Sampler.Value): void;
				public setMagnification(v: android.renderscript.Sampler.Value): void;
				public setWrapS(v: android.renderscript.Sampler.Value): void;
				public setWrapT(v: android.renderscript.Sampler.Value): void;
				public setAnisotropy(v: number): void;
				public create(): android.renderscript.Sampler;
			}
			export enum Value {
				NEAREST,
				LINEAR,
				LINEAR_MIP_LINEAR,
				LINEAR_MIP_NEAREST,
				WRAP,
				CLAMP
			}
		}
		/**
		 *  in API 16
		 */
		export class ProgramFragment extends android.renderscript.Program {
			static class: java.lang.Class<android.renderscript.ProgramFragment>;
		}
		export module ProgramFragment {
			/**
			 *  in API 16
			 */
			export class Builder extends android.renderscript.Program.BaseProgramBuilder {
				/**
				 *  in API 16 Create a builder object.
				 * @param rs Context to which the program will belong.
				 */
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.ProgramFragment.Builder>;
				/**
				 *  in API 16 Creates ProgramFragment from the current state of the builder
				 */
				public create(): android.renderscript.ProgramFragment;
			}
		}
		/**
		 * Intrinsic for applying a color matrix to allocations.
		 */
		export class ScriptIntrinsicColorMatrix extends android.renderscript.ScriptIntrinsic {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsicColorMatrix>;
			/**
			 * Create an intrinsic for applying a color matrix to an allocation.
			 * @param rs The Renderscript context
			 * @param e Element type for intputs and outputs
			 */
			public static create(rs: android.renderscript.RenderScript, e: android.renderscript.Element): android.renderscript.ScriptIntrinsicColorMatrix;
			/**
			 * Set the color matrix which will be applied to each cell of the image.
			 * @param m The 4x4 matrix to set.
			 */
			public setColorMatrix(m: android.renderscript.Matrix4f): void;
			/**
			 * Set the color matrix which will be applied to each cell of the image. This will set the alpha channel to be a copy.
			 * @param m The 3x3 matrix to set.
			 */
			public setColorMatrix(m: android.renderscript.Matrix3f): void;
			/**
			 * Set a color matrix to convert from RGB to luminance. The alpha channel will be a copy.
			 */
			public setGreyscale(): void;
			/**
			 * Set the matrix to convert from YUV to RGB with a direct copy of the 4th channel.
			 */
			public setYUVtoRGB(): void;
			/**
			 * Set the matrix to convert from RGB to YUV with a direct copy of the 4th channel.
			 */
			public setRGBtoYUV(): void;
			/**
			 * Invoke the kernel and apply the matrix to each cell of ain and copy to aout.
			 * @param ain Input allocation
			 * @param aout Output allocation
			 */
			public forEach(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for this intrinsic kernel.
			 */
			public getKernelID(): android.renderscript.Script.KernelID;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param ain 
			 * @param aout 
			 * @param v 
			 */
			public forEach(slot: number, ain: android.renderscript.Allocation, aout: android.renderscript.Allocation, v: android.renderscript.FieldPacker): void;
		}
		/**
		 * Intrinsic for converting an Android YUV buffer to RGB.
		 */
		export class ScriptIntrinsicYuvToRGB extends android.renderscript.ScriptIntrinsic {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsicYuvToRGB>;
			/**
			 * Create an intrinsic for converting YUV to RGB.
			 * @param rs The Renderscript context
			 * @param e Element type for output
			 */
			public static create(rs: android.renderscript.RenderScript, e: android.renderscript.Element): android.renderscript.ScriptIntrinsicYuvToRGB;
			/**
			 * Set the input yuv allocation, must be Element#U8.
			 * @param ain The input allocation.
			 */
			public setInput(ain: android.renderscript.Allocation): void;
			/**
			 * Convert the image to RGB.
			 * @param aout Output allocation. Must match creation element
			 */
			public forEach(aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for this intrinsic kernel.
			 */
			public getKernelID(): android.renderscript.Script.KernelID;
			/**
			 * Get a FieldID for the input field of this intrinsic.
			 */
			public getFieldID_Input(): android.renderscript.Script.FieldID;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param ain 
			 * @param aout 
			 * @param v 
			 */
			public forEach(slot: number, ain: android.renderscript.Allocation, aout: android.renderscript.Allocation, v: android.renderscript.FieldPacker): void;
		}
		/**
		 * Intrinsic Gausian blur filter. Applies a gaussian blur of the specified radius to all elements of an allocation.
		 */
		export class ScriptIntrinsicBlur extends android.renderscript.ScriptIntrinsic {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsicBlur>;
			/**
			 * Create an intrinsic for applying a blur to an allocation. The default radius is 5.0.
			 * @param rs The Renderscript context
			 * @param e Element type for inputs and outputs
			 */
			public static create(rs: android.renderscript.RenderScript, e: android.renderscript.Element): android.renderscript.ScriptIntrinsicBlur;
			/**
			 * Set the input of the blur. Must match the element type supplied during create.
			 * @param ain The input allocation
			 */
			public setInput(ain: android.renderscript.Allocation): void;
			/**
			 * Set the radius of the Blur.
			 * @param radius The radius of the blur
			 */
			public setRadius(radius: number): void;
			/**
			 * Apply the filter to the input and save to the specified allocation.
			 * @param aout Output allocation. Must match creation element
			 */
			public forEach(aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for this intrinsic kernel.
			 */
			public getKernelID(): android.renderscript.Script.KernelID;
			/**
			 * Get a FieldID for the input field of this intrinsic.
			 */
			public getFieldID_Input(): android.renderscript.Script.FieldID;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param ain 
			 * @param aout 
			 * @param v 
			 */
			public forEach(slot: number, ain: android.renderscript.Allocation, aout: android.renderscript.Allocation, v: android.renderscript.FieldPacker): void;
		}
		export class Element extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.Element>;
			public getBytesSize(): number;
			/**
			 * Returns the number of vector components. 2 for float2, 4 for float4, etc.
			 */
			public getVectorSize(): number;
			/**
			 * Return if a element is too complex for use as a data source for a Mesh or a Program.
			 */
			public isComplex(): boolean;
			/**
			 * Elements could be simple, such as an int or a float, or a structure with multiple sub elements, such as a collection of floats, float2, float4. This function returns zero for simple elements or the number of sub-elements otherwise.
			 */
			public getSubElementCount(): number;
			/**
			 * For complex elements, this function will return the sub-element at index
			 * @param index index of the sub-element to return
			 */
			public getSubElement(index: number): android.renderscript.Element;
			/**
			 * For complex elements, this function will return the sub-element name at index
			 * @param index index of the sub-element
			 */
			public getSubElementName(index: number): string;
			/**
			 * For complex elements, some sub-elements could be statically sized arrays. This function will return the array size for sub-element at index
			 * @param index index of the sub-element
			 */
			public getSubElementArraySize(index: number): number;
			/**
			 * This function specifies the location of a sub-element within the element
			 * @param index index of the sub-element
			 */
			public getSubElementOffsetBytes(index: number): number;
			public getDataType(): android.renderscript.Element.DataType;
			public getDataKind(): android.renderscript.Element.DataKind;
			/**
			 * Utility function for returning an Element containing a single Boolean.
			 * @param rs Context to which the element will belong.
			 */
			public static BOOLEAN(rs: android.renderscript.RenderScript): android.renderscript.Element;
			/**
			 * Utility function for returning an Element containing a single UNSIGNED_8.
			 * @param rs Context to which the element will belong.
			 */
			public static U8(rs: android.renderscript.RenderScript): android.renderscript.Element;
			/**
			 * Utility function for returning an Element containing a single SIGNED_8.
			 * @param rs Context to which the element will belong.
			 */
			public static I8(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U16(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I16(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U32(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I32(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U64(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I64(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F32(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F64(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static ELEMENT(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static TYPE(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static ALLOCATION(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static SAMPLER(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static SCRIPT(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static MESH(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static PROGRAM_FRAGMENT(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static PROGRAM_VERTEX(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static PROGRAM_RASTER(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static PROGRAM_STORE(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static FONT(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static A_8(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static RGB_565(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static RGB_888(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static RGBA_5551(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static RGBA_4444(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static RGBA_8888(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F32_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F32_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F32_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F64_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F64_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static F64_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U8_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U8_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U8_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I8_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I8_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I8_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U16_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U16_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U16_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I16_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I16_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I16_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U32_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U32_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U32_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I32_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I32_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I32_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U64_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U64_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static U64_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I64_2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I64_3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static I64_4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static MATRIX_4X4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			/**
			 *  use MATRIX_4X4
			 */
			public static MATRIX4X4(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static MATRIX_3X3(rs: android.renderscript.RenderScript): android.renderscript.Element;
			public static MATRIX_2X2(rs: android.renderscript.RenderScript): android.renderscript.Element;
			updateFromNative(): void;
			/**
			 * Create a custom Element of the specified DataType. The DataKind will be set to USER and the vector size to 1 indicating non-vector.
			 * @param rs The context associated with the new Element.
			 * @param dt The DataType for the new element.
			 */
			static createUser(rs: android.renderscript.RenderScript, dt: android.renderscript.Element.DataType): android.renderscript.Element;
			/**
			 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
			 * @param rs The context associated with the new Element.
			 * @param dt The DataType for the new Element.
			 * @param size Vector size for the new Element. Range 2-4 inclusive
			 */
			public static createVector(rs: android.renderscript.RenderScript, dt: android.renderscript.Element.DataType, size: number): android.renderscript.Element;
			/**
			 * Create a new pixel Element type. A matching DataType and DataKind must be provided. The DataType and DataKind must contain the same number of components. Vector size will be set to 1.
			 * @param rs The context associated with the new Element.
			 * @param dt The DataType for the new element.
			 * @param dk The DataKind to specify the mapping of each component in the
			 */
			public static createPixel(rs: android.renderscript.RenderScript, dt: android.renderscript.Element.DataType, dk: android.renderscript.Element.DataKind): android.renderscript.Element;
			/**
			 * Check if the current Element is compatible with another Element. Primitive Elements are compatible if they share the same underlying size and type (i.e. U8 is compatible with A_8). User-defined Elements must be equal in order to be compatible. This requires strict name equivalence for all sub-Elements (in addition to structural equivalence).
			 * @param e The Element to check compatibility with.
			 */
			public isCompatible(e: android.renderscript.Element): boolean;
		}
		export module Element {
			/**
			 * The special interpretation of the data if required. This is primarly useful for graphical data. USER indicates no special interpretation is expected. PIXEL is used in conjunction with the standard data types for representing texture formats.
			 */
			export enum DataKind {
				USER,
				PIXEL_L,
				PIXEL_A,
				PIXEL_LA,
				PIXEL_RGB,
				PIXEL_RGBA,
				PIXEL_DEPTH
			}
			/**
			 * Builder class for producing complex elements with matching field and name pairs. The builder starts empty. The order in which elements are added is retained for the layout in memory.
			 */
			export class Builder extends java.lang.Object {
				/**
				 * Create a builder object.
				 * @param rs 
				 */
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.Element.Builder>;
				/**
				 * Add an array of elements to this element.
				 * @param element 
				 * @param name 
				 * @param arraySize 
				 */
				public add(element: android.renderscript.Element, name: string, arraySize: number): android.renderscript.Element.Builder;
				/**
				 * Add a single element to this Element.
				 * @param element 
				 * @param name 
				 */
				public add(element: android.renderscript.Element, name: string): android.renderscript.Element.Builder;
				/**
				 * Create the element from this builder.
				 */
				public create(): android.renderscript.Element;
			}
			/**
			 * DataType represents the basic type information for a basic element. The naming convention follows. For numeric types it is FLOAT, SIGNED, or UNSIGNED followed by the _BITS where BITS is the size of the data. BOOLEAN is a true / false (1,0) represented in an 8 bit container. The UNSIGNED variants with multiple bit definitions are for packed graphical data formats and represent vectors with per vector member sizes which are treated as a single unit for packing and alignment purposes.
			 */
			export enum DataType {
				NONE,
				FLOAT_32,
				FLOAT_64,
				SIGNED_8,
				SIGNED_16,
				SIGNED_32,
				SIGNED_64,
				UNSIGNED_8,
				UNSIGNED_16,
				UNSIGNED_32,
				UNSIGNED_64,
				BOOLEAN,
				UNSIGNED_5_6_5,
				UNSIGNED_5_5_5_1,
				UNSIGNED_4_4_4_4,
				MATRIX_4X4,
				MATRIX_3X3,
				MATRIX_2X2,
				RS_ELEMENT,
				RS_TYPE,
				RS_ALLOCATION,
				RS_SAMPLER,
				RS_SCRIPT,
				RS_MESH,
				RS_PROGRAM_FRAGMENT,
				RS_PROGRAM_VERTEX,
				RS_PROGRAM_RASTER,
				RS_PROGRAM_STORE,
				RS_FONT
			}
		}
		/**
		 * Base class for all exceptions thrown by the Android Renderscript
		 */
		export class RSRuntimeException extends java.lang.RuntimeException {
			constructor(string: string);
			static class: java.lang.Class<android.renderscript.RSRuntimeException>;
		}
		/**
		 *  in API 16
		 */
		export class Font extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.Font>;
			static getFontFileName(familyName: string, style: android.renderscript.Font.Style): string;
			/**
			 *  in API 16 Takes a specific file name as an argument
			 */
			public static createFromFile(rs: android.renderscript.RenderScript, res: android.content.res.Resources, path: string, pointSize: number): android.renderscript.Font;
			/**
			 *  in API 16
			 */
			public static createFromFile(rs: android.renderscript.RenderScript, res: android.content.res.Resources, path: java.io.File, pointSize: number): android.renderscript.Font;
			/**
			 *  in API 16
			 */
			public static createFromAsset(rs: android.renderscript.RenderScript, res: android.content.res.Resources, path: string, pointSize: number): android.renderscript.Font;
			/**
			 *  in API 16
			 */
			public static createFromResource(rs: android.renderscript.RenderScript, res: android.content.res.Resources, id: number, pointSize: number): android.renderscript.Font;
			/**
			 *  in API 16 Accepts one of the following family names as an argument and will attempt to produce the best match with a system font:
			 */
			public static create(rs: android.renderscript.RenderScript, res: android.content.res.Resources, familyName: string, fontStyle: android.renderscript.Font.Style, pointSize: number): android.renderscript.Font;
		}
		export module Font {
			export class FontFamily extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.Font.FontFamily>;
			}
			/**
			 *  in API 16
			 */
			export enum Style {
				NORMAL,
				BOLD,
				ITALIC,
				BOLD_ITALIC
			}
		}
		/**
		 * Intrinsic for applying a per-channel lookup table. Each channel of the input has an independant lookup table. The tables are 256 entries in size and can cover the full value range of Element#U8_4.
		 */
		export class ScriptIntrinsicLUT extends android.renderscript.ScriptIntrinsic {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsicLUT>;
			/**
			 * Supported elements types are Element#U8_4
			 * @param rs The Renderscript context
			 * @param e Element type for intputs and outputs
			 */
			public static create(rs: android.renderscript.RenderScript, e: android.renderscript.Element): android.renderscript.ScriptIntrinsicLUT;
			/**
			 * Set an entry in the red channel lookup table
			 * @param index Must be 0-255
			 * @param value Must be 0-255
			 */
			public setRed(index: number, value: number): void;
			/**
			 * Set an entry in the green channel lookup table
			 * @param index Must be 0-255
			 * @param value Must be 0-255
			 */
			public setGreen(index: number, value: number): void;
			/**
			 * Set an entry in the blue channel lookup table
			 * @param index Must be 0-255
			 * @param value Must be 0-255
			 */
			public setBlue(index: number, value: number): void;
			/**
			 * Set an entry in the alpha channel lookup table
			 * @param index Must be 0-255
			 * @param value Must be 0-255
			 */
			public setAlpha(index: number, value: number): void;
			/**
			 * Invoke the kernel and apply the lookup to each cell of ain and copy to aout.
			 * @param ain Input allocation
			 * @param aout Output allocation
			 */
			public forEach(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for this intrinsic kernel.
			 */
			public getKernelID(): android.renderscript.Script.KernelID;
			/**
			 * Only intended for use by generated reflected code.
			 * @param slot 
			 * @param ain 
			 * @param aout 
			 * @param v 
			 */
			public forEach(slot: number, ain: android.renderscript.Allocation, aout: android.renderscript.Allocation, v: android.renderscript.FieldPacker): void;
		}
		/**
		 * Class for exposing the native Renderscript byte2 type back to the Android system.
		 */
		export class Byte2 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number);
			x: number;
			y: number;
			static class: java.lang.Class<android.renderscript.Byte2>;
			private __android_renderscript_Byte2: any;
		}
		/**
		 * Class for exposing the native Renderscript double2 type back to the Android system.
		 */
		export class Double2 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number);
			x: number;
			y: number;
			static class: java.lang.Class<android.renderscript.Double2>;
			private __android_renderscript_Double2: any;
		}
		/**
		 * Class for exposing the native Renderscript byte3 type back to the Android system.
		 */
		export class Byte3 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number);
			x: number;
			y: number;
			z: number;
			static class: java.lang.Class<android.renderscript.Byte3>;
			private __android_renderscript_Byte3: any;
		}
		/**
		 * Class for exposing the native Renderscript double3 type back to the Android system.
		 */
		export class Double3 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number);
			x: number;
			y: number;
			z: number;
			static class: java.lang.Class<android.renderscript.Double3>;
			private __android_renderscript_Double3: any;
		}
		/**
		 * Class for exposing the native Renderscript double4 type back to the Android system.
		 */
		export class Double4 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number, initW: number);
			x: number;
			y: number;
			z: number;
			w: number;
			static class: java.lang.Class<android.renderscript.Double4>;
			private __android_renderscript_Double4: any;
		}
		export class Allocation extends android.renderscript.BaseObj {
			/**
			 * The usage of the allocation. These signal to renderscript where to place the allocation in memory.
			 */
			static USAGE_SCRIPT: number;
			/**
			 * GRAPHICS_TEXTURE The allocation will be used as a texture source by one or more graphics programs.
			 */
			static USAGE_GRAPHICS_TEXTURE: number;
			/**
			 * GRAPHICS_VERTEX The allocation will be used as a graphics mesh.
			 */
			static USAGE_GRAPHICS_VERTEX: number;
			/**
			 * GRAPHICS_CONSTANTS The allocation will be used as the source of shader constants by one or more programs.
			 */
			static USAGE_GRAPHICS_CONSTANTS: number;
			/**
			 * USAGE_GRAPHICS_RENDER_TARGET The allocation will be used as a target for offscreen rendering
			 */
			static USAGE_GRAPHICS_RENDER_TARGET: number;
			/**
			 * USAGE_IO_INPUT The allocation will be used as SurfaceTexture consumer. This usage will cause the allocation to be created read only.
			 */
			static USAGE_IO_INPUT: number;
			/**
			 * USAGE_IO_OUTPUT The allocation will be used as a SurfaceTexture producer. The dimensions and format of the SurfaceTexture will be forced to those of the allocation.
			 */
			static USAGE_IO_OUTPUT: number;
			static class: java.lang.Class<android.renderscript.Allocation>;
			/**
			 * Get the element of the type of the Allocation.
			 */
			public getElement(): android.renderscript.Element;
			/**
			 * Get the usage flags of the Allocation.
			 */
			public getUsage(): number;
			/**
			 * Get the size of the Allocation in bytes.
			 */
			public getBytesSize(): number;
			updateFromNative(): void;
			/**
			 * Get the type of the Allocation.
			 */
			public getType(): android.renderscript.Type;
			/**
			 * Propagate changes from one usage of the allocation to the remaining usages of the allocation.
			 */
			public syncAll(srcLocation: number): void;
			/**
			 * Send a buffer to the output stream. The contents of the Allocation will be undefined after this operation.
			 */
			public ioSend(): void;
			/**
			 * Receive the latest input into the Allocation.
			 */
			public ioReceive(): void;
			/**
			 * Copy an array of RS objects to the allocation.
			 * @param d Source array.
			 */
			public copyFrom(d: native.Array<android.renderscript.BaseObj>): void;
			/**
			 * Copy an allocation from an array. This variant is not type checked which allows an application to fill in structured data from an array.
			 * @param d the source data array
			 */
			public copyFromUnchecked(d: native.Array<number>): void;
			/**
			 * Copy an allocation from a bitmap. The height, width, and format of the bitmap must match the existing allocation.
			 * @param b the source bitmap
			 */
			public copyFrom(b: android.graphics.Bitmap): void;
			/**
			 * This is only intended to be used by auto-generate code reflected from the renderscript script files.
			 * @param xoff 
			 * @param fp 
			 */
			public setFromFieldPacker(xoff: number, fp: android.renderscript.FieldPacker): void;
			/**
			 * This is only intended to be used by auto-generate code reflected from the renderscript script files.
			 * @param xoff 
			 * @param component_number 
			 * @param fp 
			 */
			public setFromFieldPacker(xoff: number, component_number: number, fp: android.renderscript.FieldPacker): void;
			/**
			 * Generate a mipmap chain. Requires the type of the allocation include mipmaps.
			 */
			public generateMipmaps(): void;
			/**
			 * Copy part of an allocation from an array. This variant is not type checked which allows an application to fill in structured data from an array.
			 * @param off The offset of the first element to be copied.
			 * @param count The number of elements to be copied.
			 * @param d the source data array
			 */
			public copy1DRangeFromUnchecked(off: number, count: number, d: native.Array<number>): void;
			/**
			 * Copy part of an allocation from an array. This variant is type checked and will generate exceptions if the Allocation type is not a 32 bit integer type.
			 * @param off The offset of the first element to be copied.
			 * @param count The number of elements to be copied.
			 * @param d the source data array
			 */
			public copy1DRangeFrom(off: number, count: number, d: native.Array<number>): void;
			/**
			 * Copy part of an allocation from another allocation.
			 * @param off The offset of the first element to be copied.
			 * @param count The number of elements to be copied.
			 * @param data the source data allocation.
			 * @param dataOff off The offset of the first element in data to
			 */
			public copy1DRangeFrom(off: number, count: number, data: android.renderscript.Allocation, dataOff: number): void;
			/**
			 * Copy a rectangular region from the array into the allocation. The incoming array is assumed to be tightly packed.
			 * @param xoff X offset of the region to update
			 * @param yoff Y offset of the region to update
			 * @param w Width of the incoming region to update
			 * @param h Height of the incoming region to update
			 * @param data to be placed into the allocation
			 */
			public copy2DRangeFrom(xoff: number, yoff: number, w: number, h: number, data: native.Array<number>): void;
			/**
			 * Copy a rectangular region into the allocation from another allocation.
			 * @param xoff X offset of the region to update.
			 * @param yoff Y offset of the region to update.
			 * @param w Width of the incoming region to update.
			 * @param h Height of the incoming region to update.
			 * @param data source allocation.
			 * @param dataXoff X offset in data of the region to update.
			 * @param dataYoff Y offset in data of the region to update.
			 */
			public copy2DRangeFrom(xoff: number, yoff: number, w: number, h: number, data: android.renderscript.Allocation, dataXoff: number, dataYoff: number): void;
			/**
			 * Copy a bitmap into an allocation. The height and width of the update will use the height and width of the incoming bitmap.
			 * @param xoff X offset of the region to update
			 * @param yoff Y offset of the region to update
			 * @param data the bitmap to be copied
			 */
			public copy2DRangeFrom(xoff: number, yoff: number, data: android.graphics.Bitmap): void;
			/**
			 * Copy from the Allocation into a Bitmap. The bitmap must match the dimensions of the Allocation.
			 * @param b The bitmap to be set from the Allocation.
			 */
			public copyTo(b: android.graphics.Bitmap): void;
			/**
			 * Copy from the Allocation into a byte array. The array must be at least as large as the Allocation. The allocation must be of an 8 bit elemental type.
			 * @param d The array to be set from the Allocation.
			 */
			public copyTo(d: native.Array<number>): void;
			/**
			 * Resize a 1D allocation. The contents of the allocation are preserved. If new elements are allocated objects are created with null contents and the new region is otherwise undefined.
			 * @param dimX The new size of the allocation.
			 */
			public resize(dimX: number): void;
			/**
			 * @param rs type renderscript type describing data layout
			 * @param type mips specifies desired mipmap behaviour for the
			 * @param mips usage bit field specifying how the allocation is
			 * @param usage 
			 */
			public static createTyped(rs: android.renderscript.RenderScript, type: android.renderscript.Type, mips: android.renderscript.Allocation.MipmapControl, usage: number): android.renderscript.Allocation;
			/**
			 * Creates a renderscript allocation with the size specified by the type and no mipmaps generated by default
			 * @param rs Context to which the allocation will belong.
			 * @param type renderscript type describing data layout
			 * @param usage bit field specifying how the allocation is
			 */
			public static createTyped(rs: android.renderscript.RenderScript, type: android.renderscript.Type, usage: number): android.renderscript.Allocation;
			/**
			 * Creates a renderscript allocation for use by the script with the size specified by the type and no mipmaps generated by default
			 * @param rs Context to which the allocation will belong.
			 * @param type renderscript type describing data layout
			 */
			public static createTyped(rs: android.renderscript.RenderScript, type: android.renderscript.Type): android.renderscript.Allocation;
			/**
			 * Creates a renderscript allocation with a specified number of given elements
			 * @param rs Context to which the allocation will belong.
			 * @param e describes what each element of an allocation is
			 * @param count specifies the number of element in the allocation
			 * @param usage bit field specifying how the allocation is
			 */
			public static createSized(rs: android.renderscript.RenderScript, e: android.renderscript.Element, count: number, usage: number): android.renderscript.Allocation;
			/**
			 * Creates a renderscript allocation with a specified number of given elements
			 * @param rs Context to which the allocation will belong.
			 * @param e describes what each element of an allocation is
			 * @param count specifies the number of element in the allocation
			 */
			public static createSized(rs: android.renderscript.RenderScript, e: android.renderscript.Element, count: number): android.renderscript.Allocation;
			static elementFromBitmap(rs: android.renderscript.RenderScript, b: android.graphics.Bitmap): android.renderscript.Element;
			static typeFromBitmap(rs: android.renderscript.RenderScript, b: android.graphics.Bitmap, mip: android.renderscript.Allocation.MipmapControl): android.renderscript.Type;
			/**
			 * Creates a renderscript allocation from a bitmap
			 * @param rs Context to which the allocation will belong.
			 * @param b bitmap source for the allocation data
			 * @param mips specifies desired mipmap behaviour for the
			 * @param usage bit field specifying how the allocation is
			 */
			public static createFromBitmap(rs: android.renderscript.RenderScript, b: android.graphics.Bitmap, mips: android.renderscript.Allocation.MipmapControl, usage: number): android.renderscript.Allocation;
			/**
			 * For allocations used with io operations, returns the handle onto a raw buffer that is being managed by the screen compositor.
			 */
			public getSurface(): android.view.Surface;
			/**
			 * Associate a surface for io output with this allocation
			 * @param sur Surface to associate with allocation
			 */
			public setSurface(sur: android.view.Surface): void;
			/**
			 * Creates a non-mipmapped renderscript allocation to use as a graphics texture
			 * @param rs Context to which the allocation will belong.
			 * @param b bitmap source for the allocation data
			 */
			public static createFromBitmap(rs: android.renderscript.RenderScript, b: android.graphics.Bitmap): android.renderscript.Allocation;
			/**
			 * Creates a cubemap allocation from a bitmap containing the horizontal list of cube faces. Each individual face must be the same size and power of 2
			 * @param rs Context to which the allocation will belong.
			 * @param b bitmap with cubemap faces layed out in the following
			 * @param mips specifies desired mipmap behaviour for the cubemap
			 * @param usage bit field specifying how the cubemap is utilized
			 */
			public static createCubemapFromBitmap(rs: android.renderscript.RenderScript, b: android.graphics.Bitmap, mips: android.renderscript.Allocation.MipmapControl, usage: number): android.renderscript.Allocation;
			/**
			 * Creates a non-mipmapped cubemap allocation for use as a graphics texture from a bitmap containing the horizontal list of cube faces. Each individual face must be the same size and power of 2
			 * @param rs Context to which the allocation will belong.
			 * @param b bitmap with cubemap faces layed out in the following
			 */
			public static createCubemapFromBitmap(rs: android.renderscript.RenderScript, b: android.graphics.Bitmap): android.renderscript.Allocation;
			/**
			 * Creates a cubemap allocation from 6 bitmaps containing the cube faces. All the faces must be the same size and power of 2
			 * @param rs Context to which the allocation will belong.
			 * @param xpos cubemap face in the positive x direction
			 * @param xneg cubemap face in the negative x direction
			 * @param ypos cubemap face in the positive y direction
			 * @param yneg cubemap face in the negative y direction
			 * @param zpos cubemap face in the positive z direction
			 * @param zneg cubemap face in the negative z direction
			 * @param mips specifies desired mipmap behaviour for the cubemap
			 * @param usage bit field specifying how the cubemap is utilized
			 */
			public static createCubemapFromCubeFaces(rs: android.renderscript.RenderScript, xpos: android.graphics.Bitmap, xneg: android.graphics.Bitmap, ypos: android.graphics.Bitmap, yneg: android.graphics.Bitmap, zpos: android.graphics.Bitmap, zneg: android.graphics.Bitmap, mips: android.renderscript.Allocation.MipmapControl, usage: number): android.renderscript.Allocation;
			/**
			 * Creates a non-mipmapped cubemap allocation for use as a graphics texture from 6 bitmaps containing the cube faces. All the faces must be the same size and power of 2
			 * @param rs Context to which the allocation will belong.
			 * @param xpos cubemap face in the positive x direction
			 * @param xneg cubemap face in the negative x direction
			 * @param ypos cubemap face in the positive y direction
			 * @param yneg cubemap face in the negative y direction
			 * @param zpos cubemap face in the positive z direction
			 * @param zneg cubemap face in the negative z direction
			 */
			public static createCubemapFromCubeFaces(rs: android.renderscript.RenderScript, xpos: android.graphics.Bitmap, xneg: android.graphics.Bitmap, ypos: android.graphics.Bitmap, yneg: android.graphics.Bitmap, zpos: android.graphics.Bitmap, zneg: android.graphics.Bitmap): android.renderscript.Allocation;
			/**
			 * Creates a renderscript allocation from the bitmap referenced by resource id
			 * @param rs Context to which the allocation will belong.
			 * @param res application resources
			 * @param id resource id to load the data from
			 * @param mips specifies desired mipmap behaviour for the
			 * @param usage bit field specifying how the allocation is
			 */
			public static createFromBitmapResource(rs: android.renderscript.RenderScript, res: android.content.res.Resources, id: number, mips: android.renderscript.Allocation.MipmapControl, usage: number): android.renderscript.Allocation;
			/**
			 * Creates a non-mipmapped renderscript allocation to use as a graphics texture from the bitmap referenced by resource id
			 * @param rs Context to which the allocation will belong.
			 * @param res application resources
			 * @param id resource id to load the data from
			 */
			public static createFromBitmapResource(rs: android.renderscript.RenderScript, res: android.content.res.Resources, id: number): android.renderscript.Allocation;
			/**
			 * Creates a renderscript allocation containing string data encoded in UTF-8 format
			 * @param rs Context to which the allocation will belong.
			 * @param str string to create the allocation from
			 * @param usage bit field specifying how the allocaiton is
			 */
			public static createFromString(rs: android.renderscript.RenderScript, str: string, usage: number): android.renderscript.Allocation;
		}
		export module Allocation {
			/**
			 * Controls mipmap behavior when using the bitmap creation and update functions.
			 */
			export enum MipmapControl {
				MIPMAP_NONE,
				MIPMAP_FULL,
				MIPMAP_ON_SYNC_TO_TEXTURE
			}
		}
		/**
		 * Class for exposing the native Renderscript rs_matrix3x3 type back to the Android system.
		 */
		export class Matrix3f extends java.lang.Object {
			/**
			 * Creates a new identity 3x3 matrix
			 */
			constructor();
			/**
			 * Creates a new matrix and sets its values from the given parameter
			 * @param dataArray values to set the matrix to, must be 9
			 */
			constructor(dataArray: native.Array<number>);
			static class: java.lang.Class<android.renderscript.Matrix3f>;
			/**
			 * Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix
			 */
			public getArray(): native.Array<number>;
			/**
			 * Returns the value for a given row and column
			 * @param x column of the value to return
			 * @param y row of the value to return
			 */
			public get(x: number, y: number): number;
			/**
			 * Sets the value for a given row and column
			 * @param x column of the value to set
			 * @param y row of the value to set
			 * @param v 
			 */
			public set(x: number, y: number, v: number): void;
			/**
			 * Sets the matrix values to identity
			 */
			public loadIdentity(): void;
			/**
			 * Sets the values of the matrix to those of the parameter
			 * @param src matrix to load the values from
			 */
			public load(src: android.renderscript.Matrix3f): void;
			/**
			 * Sets current values to be a rotation matrix of certain angle about a given axis
			 * @param rot angle of rotation
			 * @param x rotation axis x
			 * @param y rotation axis y
			 * @param z rotation axis z
			 */
			public loadRotate(rot: number, x: number, y: number, z: number): void;
			/**
			 * Makes the upper 2x2 a rotation matrix of the given angle
			 * @param rot rotation angle
			 */
			public loadRotate(rot: number): void;
			/**
			 * Makes the upper 2x2 a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 */
			public loadScale(x: number, y: number): void;
			/**
			 * Sets current values to be a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 * @param z scale component z
			 */
			public loadScale(x: number, y: number, z: number): void;
			/**
			 * Sets current values to be a translation matrix of given dimensions
			 * @param x translation component x
			 * @param y translation component y
			 */
			public loadTranslate(x: number, y: number): void;
			/**
			 * Sets current values to be the result of multiplying two given matrices
			 * @param lhs left hand side matrix
			 * @param rhs right hand side matrix
			 */
			public loadMultiply(lhs: android.renderscript.Matrix3f, rhs: android.renderscript.Matrix3f): void;
			/**
			 * Post-multiplies the current matrix by a given parameter
			 * @param rhs right hand side to multiply by
			 */
			public multiply(rhs: android.renderscript.Matrix3f): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a rotation matrix of certain angle about a given axis
			 * @param rot angle of rotation
			 * @param x rotation axis x
			 * @param y rotation axis y
			 * @param z rotation axis z
			 */
			public rotate(rot: number, x: number, y: number, z: number): void;
			/**
			 * Modifies the upper 2x2 of the current matrix by post-multiplying it with a rotation matrix of given angle
			 * @param rot angle of rotation
			 */
			public rotate(rot: number): void;
			/**
			 * Modifies the upper 2x2 of the current matrix by post-multiplying it with a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 */
			public scale(x: number, y: number): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 * @param z scale component z
			 */
			public scale(x: number, y: number, z: number): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a translation matrix of given dimensions
			 * @param x translation component x
			 * @param y translation component y
			 */
			public translate(x: number, y: number): void;
			/**
			 * Sets the current matrix to its transpose
			 */
			public transpose(): void;
		}
		/**
		 * Base class for all Intrinsic scripts. An intrinsic a script which implements a pre-defined function. Intrinsics are provided to provide effecient implemtations of common operations.
		 */
		export class ScriptIntrinsic extends android.renderscript.Script {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsic>;
		}
		/**
		 * Class for exposing the native Renderscript byte4 type back to the Android system.
		 */
		export class Byte4 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number, initW: number);
			x: number;
			y: number;
			z: number;
			w: number;
			static class: java.lang.Class<android.renderscript.Byte4>;
			private __android_renderscript_Byte4: any;
		}
		/**
		 * Class for exposing the native Renderscript short4 type back to the Android system.
		 */
		export class Short4 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number, initW: number);
			x: number;
			y: number;
			z: number;
			w: number;
			static class: java.lang.Class<android.renderscript.Short4>;
			private __android_renderscript_Short4: any;
		}
		/**
		 * Class for exposing the native Renderscript short3 type back to the Android system.
		 */
		export class Short3 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number);
			x: number;
			y: number;
			z: number;
			static class: java.lang.Class<android.renderscript.Short3>;
			private __android_renderscript_Short3: any;
		}
		/**
		 * Class for exposing the native Renderscript Short2 type back to the Android system.
		 */
		export class Short2 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number);
			x: number;
			y: number;
			static class: java.lang.Class<android.renderscript.Short2>;
			private __android_renderscript_Short2: any;
		}
		export class ProgramStore extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.ProgramStore>;
			/**
			 * Returns the function used to test writing into the depth buffer
			 */
			public getDepthFunc(): android.renderscript.ProgramStore.DepthFunc;
			/**
			 * Queries whether writes are enabled into the depth buffer
			 */
			public isDepthMaskEnabled(): boolean;
			/**
			 * Queries whether red channel is written
			 */
			public isColorMaskRedEnabled(): boolean;
			/**
			 * Queries whether green channel is written
			 */
			public isColorMaskGreenEnabled(): boolean;
			/**
			 * Queries whether blue channel is written
			 */
			public isColorMaskBlueEnabled(): boolean;
			/**
			 * Queries whether alpha channel is written
			 */
			public isColorMaskAlphaEnabled(): boolean;
			/**
			 * Specifies how the source blending factor is computed
			 */
			public getBlendSrcFunc(): android.renderscript.ProgramStore.BlendSrcFunc;
			/**
			 * Specifies how the destination blending factor is computed
			 */
			public getBlendDstFunc(): android.renderscript.ProgramStore.BlendDstFunc;
			/**
			 * Specifies whether colors are dithered before writing into the framebuffer
			 */
			public isDitherEnabled(): boolean;
			/**
			 * Returns a pre-defined program store object with the following characteristics: - incoming pixels are drawn if their depth value is less than the stored value in the depth buffer. If the pixel is drawn, its value is also stored in the depth buffer - incoming pixels override the value stored in the color buffer if it passes the depth test
			 * @param rs Context to which the program will belong.
			 */
			public static BLEND_NONE_DEPTH_TEST(rs: android.renderscript.RenderScript): android.renderscript.ProgramStore;
			/**
			 * Returns a pre-defined program store object with the following characteristics: - incoming pixels always pass the depth test and their value is not stored in the depth buffer - incoming pixels override the value stored in the color buffer
			 * @param rs Context to which the program will belong.
			 */
			public static BLEND_NONE_DEPTH_NONE(rs: android.renderscript.RenderScript): android.renderscript.ProgramStore;
			/**
			 * Returns a pre-defined program store object with the following characteristics: - incoming pixels are drawn if their depth value is less than the stored value in the depth buffer. If the pixel is drawn, its value is also stored in the depth buffer - if the incoming (Source) pixel passes depth test, its value is combined with the stored color (Dest) using the following formula Final.RGB = Source.RGB * Source.A + Dest.RGB * (1 - Source.A)
			 * @param rs Context to which the program will belong.
			 */
			public static BLEND_ALPHA_DEPTH_TEST(rs: android.renderscript.RenderScript): android.renderscript.ProgramStore;
			/**
			 * Returns a pre-defined program store object with the following characteristics: - incoming pixels always pass the depth test and their value is not stored in the depth buffer - incoming pixel's value is combined with the stored color (Dest) using the following formula Final.RGB = Source.RGB * Source.A + Dest.RGB * (1 - Source.A)
			 * @param rs Context to which the program will belong.
			 */
			public static BLEND_ALPHA_DEPTH_NONE(rs: android.renderscript.RenderScript): android.renderscript.ProgramStore;
		}
		export module ProgramStore {
			/**
			 * Specifies the functions used to combine incoming pixels with those already in the frame buffer.
			 */
			export enum BlendDstFunc {
				ZERO,
				ONE,
				SRC_COLOR,
				ONE_MINUS_SRC_COLOR,
				SRC_ALPHA,
				ONE_MINUS_SRC_ALPHA,
				DST_ALPHA,
				ONE_MINUS_DST_ALPHA
			}
			/**
			 * Specifies the functions used to combine incoming pixels with those already in the frame buffer.
			 */
			export enum BlendSrcFunc {
				ZERO,
				ONE,
				DST_COLOR,
				ONE_MINUS_DST_COLOR,
				SRC_ALPHA,
				ONE_MINUS_SRC_ALPHA,
				DST_ALPHA,
				ONE_MINUS_DST_ALPHA,
				SRC_ALPHA_SATURATE
			}
			/**
			 * Builder class for ProgramStore object. If the builder is left empty, the equivalent of BLEND_NONE_DEPTH_NONE would be returned
			 */
			export class Builder extends java.lang.Object {
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.ProgramStore.Builder>;
				/**
				 * Specifies the depth testing behavior
				 * @param func function used for depth testing
				 */
				public setDepthFunc(func: android.renderscript.ProgramStore.DepthFunc): android.renderscript.ProgramStore.Builder;
				/**
				 * Enables writes into the depth buffer
				 * @param enable specifies whether depth writes are
				 */
				public setDepthMaskEnabled(enable: boolean): android.renderscript.ProgramStore.Builder;
				/**
				 * Enables writes into the color buffer
				 * @param r specifies whether red channel is written
				 * @param g specifies whether green channel is written
				 * @param b specifies whether blue channel is written
				 * @param a specifies whether alpha channel is written
				 */
				public setColorMaskEnabled(r: boolean, g: boolean, b: boolean, a: boolean): android.renderscript.ProgramStore.Builder;
				/**
				 * Specifies how incoming pixels are combined with the pixels stored in the framebuffer
				 * @param src specifies how the source blending factor is
				 * @param dst specifies how the destination blending factor is
				 */
				public setBlendFunc(src: android.renderscript.ProgramStore.BlendSrcFunc, dst: android.renderscript.ProgramStore.BlendDstFunc): android.renderscript.ProgramStore.Builder;
				/**
				 * Enables dithering
				 * @param enable specifies whether dithering is enabled or
				 */
				public setDitherEnabled(enable: boolean): android.renderscript.ProgramStore.Builder;
				/**
				 * Creates a program store from the current state of the builder
				 */
				public create(): android.renderscript.ProgramStore;
			}
			/**
			 * Specifies the function used to determine whether a fragment will be drawn during the depth testing stage in the rendering pipeline by comparing its value with that already in the depth buffer. DepthFunc is only valid when depth buffer is present and depth testing is enabled
			 */
			export enum DepthFunc {
				ALWAYS,
				LESS,
				LESS_OR_EQUAL,
				GREATER,
				GREATER_OR_EQUAL,
				EQUAL,
				NOT_EQUAL
			}
		}
		/**
		 * Class for exposing the native Renderscript float2 type back to the Android system.
		 */
		export class Float4 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number, initW: number);
			x: number;
			y: number;
			z: number;
			w: number;
			static class: java.lang.Class<android.renderscript.Float4>;
			private __android_renderscript_Float4: any;
		}
		/**
		 * Class for exposing the native Renderscript int2 type back to the Android system.
		 */
		export class Int2 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number);
			x: number;
			y: number;
			static class: java.lang.Class<android.renderscript.Int2>;
			private __android_renderscript_Int2: any;
		}
		/**
		 * Class for exposing the native Renderscript int3 type back to the Android system.
		 */
		export class Int3 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number);
			x: number;
			y: number;
			z: number;
			static class: java.lang.Class<android.renderscript.Int3>;
			private __android_renderscript_Int3: any;
		}
		/**
		 * Class for exposing the native Renderscript int4 type back to the Android system.
		 */
		export class Int4 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number, initW: number);
			x: number;
			y: number;
			z: number;
			w: number;
			static class: java.lang.Class<android.renderscript.Int4>;
			private __android_renderscript_Int4: any;
		}
		/**
		 * Intrinsic kernels for blending two buffers. Each blend function is a separate kernel to make it easy to change between blend modes.
		 */
		export class ScriptIntrinsicBlend extends android.renderscript.ScriptIntrinsic {
			static class: java.lang.Class<android.renderscript.ScriptIntrinsicBlend>;
			/**
			 * Supported elements types are uchar4
			 * @param rs 
			 * @param e 
			 */
			public static create(rs: android.renderscript.RenderScript, e: android.renderscript.Element): android.renderscript.ScriptIntrinsicBlend;
			/**
			 * dst = {0, 0, 0, 0}
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachClear(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the Clear kernel.
			 */
			public getKernelIDClear(): android.renderscript.Script.KernelID;
			/**
			 * dst = src
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachSrc(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the Src kernel.
			 */
			public getKernelIDSrc(): android.renderscript.Script.KernelID;
			/**
			 * dst = dst This is a NOP
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachDst(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the Dst kernel.
			 */
			public getKernelIDDst(): android.renderscript.Script.KernelID;
			/**
			 * dst = src + dst * (1.0 - src.a)
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachSrcOver(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the SrcOver kernel.
			 */
			public getKernelIDSrcOver(): android.renderscript.Script.KernelID;
			/**
			 * dst = dst + src * (1.0 - dst.a)
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachDstOver(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the DstOver kernel.
			 */
			public getKernelIDDstOver(): android.renderscript.Script.KernelID;
			/**
			 * dst = src * dst.a
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachSrcIn(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the SrcIn kernel.
			 */
			public getKernelIDSrcIn(): android.renderscript.Script.KernelID;
			/**
			 * dst = dst * src.a
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachDstIn(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the DstIn kernel.
			 */
			public getKernelIDDstIn(): android.renderscript.Script.KernelID;
			/**
			 * dst = src * (1.0 - dst.a)
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachSrcOut(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the SrcOut kernel.
			 */
			public getKernelIDSrcOut(): android.renderscript.Script.KernelID;
			/**
			 * dst = dst * (1.0 - src.a)
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachDstOut(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the DstOut kernel.
			 */
			public getKernelIDDstOut(): android.renderscript.Script.KernelID;
			/**
			 * dst.rgb = src.rgb * dst.a + (1.0 - src.a) * dst.rgb dst.a = dst.a
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachSrcAtop(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the SrcAtop kernel.
			 */
			public getKernelIDSrcAtop(): android.renderscript.Script.KernelID;
			/**
			 * dst = dst.rgb * src.a + (1.0 - dst.a) * src.rgb dst.a = src.a
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachDstAtop(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the DstAtop kernel.
			 */
			public getKernelIDDstAtop(): android.renderscript.Script.KernelID;
			/**
			 * dst = {src.r ^ dst.r, src.g ^ dst.g, src.b ^ dst.b, src.a ^ dst.a}
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachXor(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the Xor kernel.
			 */
			public getKernelIDXor(): android.renderscript.Script.KernelID;
			/**
			 * dst = src * dst
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachMultiply(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the Multiply kernel.
			 */
			public getKernelIDMultiply(): android.renderscript.Script.KernelID;
			/**
			 * dst = min(src + dst, 1.0)
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachAdd(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the Add kernel.
			 */
			public getKernelIDAdd(): android.renderscript.Script.KernelID;
			/**
			 * dst = max(dst - src, 0.0)
			 * @param ain The source buffer
			 * @param aout The destination buffer
			 */
			public forEachSubtract(ain: android.renderscript.Allocation, aout: android.renderscript.Allocation): void;
			/**
			 * Get a KernelID for the Subtract kernel.
			 */
			public getKernelIDSubtract(): android.renderscript.Script.KernelID;
		}
		export class RSReflect extends java.lang.Object {
			static class: java.lang.Class<android.renderscript.RSReflect>;
			static create(): android.renderscript.RSReflect;
		}
		/**
		 * Class for exposing the native Renderscript float2 type back to the Android system.
		 */
		export class Float3 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number);
			x: number;
			y: number;
			z: number;
			static class: java.lang.Class<android.renderscript.Float3>;
			private __android_renderscript_Float3: any;
		}
		/**
		 * Class for exposing the native Renderscript float2 type back to the Android system.
		 */
		export class Float2 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number);
			x: number;
			y: number;
			static class: java.lang.Class<android.renderscript.Float2>;
			private __android_renderscript_Float2: any;
		}
		export class Type extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.Type>;
			/**
			 * Return the element associated with this Type.
			 */
			public getElement(): android.renderscript.Element;
			/**
			 * Return the value of the X dimension.
			 */
			public getX(): number;
			/**
			 * Return the value of the Y dimension or 0 for a 1D allocation.
			 */
			public getY(): number;
			/**
			 * Return the value of the Z dimension or 0 for a 1D or 2D allocation.
			 */
			public getZ(): number;
			/**
			 * Return if the Type has a mipmap chain.
			 */
			public hasMipmaps(): boolean;
			/**
			 * Return if the Type is a cube map.
			 */
			public hasFaces(): boolean;
			/**
			 * Return the total number of accessable cells in the Type.
			 */
			public getCount(): number;
			calcElementCount(): void;
			updateFromNative(): void;
		}
		export module Type {
			/**
			 * Builder class for Type.
			 */
			export class Builder extends java.lang.Object {
				/**
				 * Create a new builder object.
				 * @param rs 
				 * @param e The element for the type to be created.
				 */
				constructor(rs: android.renderscript.RenderScript, e: android.renderscript.Element);
				static class: java.lang.Class<android.renderscript.Type.Builder>;
				/**
				 * Add a dimension to the Type.
				 * @param value 
				 */
				public setX(value: number): android.renderscript.Type.Builder;
				public setY(value: number): android.renderscript.Type.Builder;
				public setMipmaps(value: boolean): android.renderscript.Type.Builder;
				public setFaces(value: boolean): android.renderscript.Type.Builder;
				/**
				 * Validate structure and create a new type.
				 */
				public create(): android.renderscript.Type;
			}
			export enum CubemapFace {
				POSITIVE_X,
				NEGATIVE_X,
				POSITIVE_Y,
				NEGATIVE_Y,
				POSITIVE_Z,
				NEGATIVE_Z,
				POSITVE_X,
				POSITVE_Y,
				POSITVE_Z
			}
		}
		/**
		 * Class for exposing the native Renderscript rs_matrix2x2 type back to the Android system.
		 */
		export class Matrix2f extends java.lang.Object {
			/**
			 * Creates a new identity 2x2 matrix
			 */
			constructor();
			/**
			 * Creates a new matrix and sets its values from the given parameter
			 * @param dataArray values to set the matrix to, must be 4
			 */
			constructor(dataArray: native.Array<number>);
			static class: java.lang.Class<android.renderscript.Matrix2f>;
			/**
			 * Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix
			 */
			public getArray(): native.Array<number>;
			/**
			 * Returns the value for a given row and column
			 * @param x column of the value to return
			 * @param y row of the value to return
			 */
			public get(x: number, y: number): number;
			/**
			 * Sets the value for a given row and column
			 * @param x column of the value to set
			 * @param y row of the value to set
			 * @param v 
			 */
			public set(x: number, y: number, v: number): void;
			/**
			 * Sets the matrix values to identity
			 */
			public loadIdentity(): void;
			/**
			 * Sets the values of the matrix to those of the parameter
			 * @param src matrix to load the values from
			 */
			public load(src: android.renderscript.Matrix2f): void;
			/**
			 * Sets current values to be a rotation matrix of given angle
			 * @param rot rotation angle
			 */
			public loadRotate(rot: number): void;
			/**
			 * Sets current values to be a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 */
			public loadScale(x: number, y: number): void;
			/**
			 * Sets current values to be the result of multiplying two given matrices
			 * @param lhs left hand side matrix
			 * @param rhs right hand side matrix
			 */
			public loadMultiply(lhs: android.renderscript.Matrix2f, rhs: android.renderscript.Matrix2f): void;
			/**
			 * Post-multiplies the current matrix by a given parameter
			 * @param rhs right hand side to multiply by
			 */
			public multiply(rhs: android.renderscript.Matrix2f): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a rotation matrix of given angle
			 * @param rot angle of rotation
			 */
			public rotate(rot: number): void;
			/**
			 * Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions
			 * @param x scale component x
			 * @param y scale component y
			 */
			public scale(x: number, y: number): void;
			/**
			 * Sets the current matrix to its transpose
			 */
			public transpose(): void;
		}
		/**
		 * Class for exposing the native Renderscript long3 type back to the Android system.
		 */
		export class Long3 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number);
			x: number;
			y: number;
			z: number;
			static class: java.lang.Class<android.renderscript.Long3>;
		}
		/**
		 * Class for exposing the native Renderscript long2 type back to the Android system.
		 */
		export class Long2 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number);
			x: number;
			y: number;
			static class: java.lang.Class<android.renderscript.Long2>;
		}
		/**
		 *  in API 16 The Texture View for a graphics renderscript (RenderScriptGL) to draw on.
		 */
		export class RSTextureView extends android.view.TextureView implements android.view.TextureView.ISurfaceTextureListener {
			/**
			 *  in API 16 Standard View constructor. In order to render something, you must call android.opengl.GLSurfaceView#setRenderer to register a renderer.
			 */
			constructor(context: android.content.Context);
			/**
			 *  in API 16 Standard View constructor. In order to render something, you must call android.opengl.GLSurfaceView#setRenderer to register a renderer.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.renderscript.RSTextureView>;
			/**
			 *  in API 16
			 */
			public onSurfaceTextureAvailable(surface: android.graphics.SurfaceTexture, width: number, height: number): void;
			/**
			 *  in API 16
			 */
			public onSurfaceTextureSizeChanged(surface: android.graphics.SurfaceTexture, width: number, height: number): void;
			/**
			 *  in API 16
			 */
			public onSurfaceTextureDestroyed(surface: android.graphics.SurfaceTexture): boolean;
			/**
			 *  in API 16
			 */
			public onSurfaceTextureUpdated(surface: android.graphics.SurfaceTexture): void;
			/**
			 *  in API 16 Inform the view that the activity is paused. The owner of this view must call this method when the activity is paused. Calling this method will pause the rendering thread. Must not be called before a renderer has been set.
			 */
			public pause(): void;
			/**
			 *  in API 16 Inform the view that the activity is resumed. The owner of this view must call this method when the activity is resumed. Calling this method will recreate the OpenGL display and resume the rendering thread. Must not be called before a renderer has been set.
			 */
			public resume(): void;
			/**
			 *  in API 16 Create a new RenderScriptGL object and attach it to the TextureView if present.
			 * @param sc The RS surface config to create.
			 */
			public createRenderScriptGL(sc: android.renderscript.RenderScriptGL.SurfaceConfig): android.renderscript.RenderScriptGL;
			/**
			 *  in API 16 Destroy the RenderScriptGL object associated with this TextureView.
			 */
			public destroyRenderScriptGL(): void;
			/**
			 *  in API 16 Set a new RenderScriptGL object. This also will attach the new object to the TextureView if present.
			 * @param rs The new RS object.
			 */
			public setRenderScriptGL(rs: android.renderscript.RenderScriptGL): void;
			/**
			 *  in API 16 Returns the previously set RenderScriptGL object.
			 */
			public getRenderScriptGL(): android.renderscript.RenderScriptGL;
		}
		/**
		 * Class for exposing the native Renderscript long4 type back to the Android system.
		 */
		export class Long4 extends java.lang.Object {
			constructor();
			constructor(initX: number, initY: number, initZ: number, initW: number);
			x: number;
			y: number;
			z: number;
			w: number;
			static class: java.lang.Class<android.renderscript.Long4>;
		}
		/**
		 * ScriptGroup creates a groups of scripts which are executed together based upon upon one execution call as if they were all part of a single script. The scripts may be connected internally or to an external allocation. For the internal connections the intermediate results are not observable after the execution of the script.
		 */
		export class ScriptGroup extends android.renderscript.BaseObj {
			static class: java.lang.Class<android.renderscript.ScriptGroup>;
			/**
			 * Sets an input of the ScriptGroup. This specifies an Allocation to be used for the kernels which require a kernel input and that input is provided external to the group.
			 * @param s The ID of the kernel where the allocation should be
			 * @param a The allocation to connect.
			 */
			public setInput(s: android.renderscript.Script.KernelID, a: android.renderscript.Allocation): void;
			/**
			 * Sets an output of the ScriptGroup. This specifies an Allocation to be used for the kernels which require a kernel output and that output is provided external to the group.
			 * @param s The ID of the kernel where the allocation should be
			 * @param a The allocation to connect.
			 */
			public setOutput(s: android.renderscript.Script.KernelID, a: android.renderscript.Allocation): void;
			/**
			 * Execute the ScriptGroup. This will run all the kernels in the script. The state of the connecting lines will not be observable after this operation.
			 */
			public execute(): void;
		}
		export module ScriptGroup {
			export class IO extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.ScriptGroup.IO>;
			}
			export class Node extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.ScriptGroup.Node>;
			}
			/**
			 * Create a ScriptGroup. There are two steps to creating a ScriptGoup.
			 */
			export class Builder extends java.lang.Object {
				/**
				 * Create a builder for generating a ScriptGroup.
				 * @param rs The Renderscript context.
				 */
				constructor(rs: android.renderscript.RenderScript);
				static class: java.lang.Class<android.renderscript.ScriptGroup.Builder>;
				/**
				 * Adds a Kernel to the group.
				 * @param k The kernel to add.
				 */
				public addKernel(k: android.renderscript.Script.KernelID): android.renderscript.ScriptGroup.Builder;
				/**
				 * Adds a connection to the group.
				 * @param t The type of the connection. This is used to
				 * @param from The source for the connection.
				 * @param to The destination of the connection.
				 */
				public addConnection(t: android.renderscript.Type, from: android.renderscript.Script.KernelID, to: android.renderscript.Script.FieldID): android.renderscript.ScriptGroup.Builder;
				/**
				 * Adds a connection to the group.
				 * @param t The type of the connection. This is used to
				 * @param from The source for the connection.
				 * @param to The destination of the connection.
				 */
				public addConnection(t: android.renderscript.Type, from: android.renderscript.Script.KernelID, to: android.renderscript.Script.KernelID): android.renderscript.ScriptGroup.Builder;
				/**
				 * Creates the Script group.
				 */
				public create(): android.renderscript.ScriptGroup;
			}
			export class ConnectLine extends java.lang.Object {
				static class: java.lang.Class<android.renderscript.ScriptGroup.ConnectLine>;
			}
		}
	}
	export module widget {
		/**
		 * Base class for a ExpandableListAdapter used to provide data and Views from some data to an expandable list view.
		 */
		export class BaseExpandableListAdapter extends java.lang.Object implements android.widget.IExpandableListAdapter, android.widget.IHeterogeneousExpandableList {
			constructor();
			static class: java.lang.Class<android.widget.BaseExpandableListAdapter>;
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 *  DataSetObservable#notifyInvalidated()
			 */
			public notifyDataSetInvalidated(): void;
			/**
			 *  DataSetObservable#notifyChanged()
			 */
			public notifyDataSetChanged(): void;
			public areAllItemsEnabled(): boolean;
			public onGroupCollapsed(groupPosition: number): void;
			public onGroupExpanded(groupPosition: number): void;
			/**
			 * Override this method if you foresee a clash in IDs based on this scheme:
			 */
			public getCombinedChildId(groupId: number, childId: number): any;
			/**
			 * Override this method if you foresee a clash in IDs based on this scheme:
			 */
			public getCombinedGroupId(groupId: number): any;
			/**
			 * 
			 */
			public isEmpty(): boolean;
			/**
			 * 
			 */
			public getChildType(groupPosition: number, childPosition: number): number;
			/**
			 * 
			 */
			public getChildTypeCount(): number;
			/**
			 * 
			 */
			public getGroupType(groupPosition: number): number;
			/**
			 * 
			 */
			public getGroupTypeCount(): number;
			/**
			 * Gets the number of groups. 
			 */
			getGroupCount(): number;
			/**
			 * Gets the number of children in a specified group. 
			 * @param groupPosition the position of the group for which the children
			 */
			getChildrenCount(groupPosition: number): number;
			/**
			 * Gets the data associated with the given group. 
			 * @param groupPosition the position of the group
			 */
			getGroup(groupPosition: number): any;
			/**
			 * Gets the data associated with the given child within the given group. 
			 * @param groupPosition the position of the group that the child resides in
			 * @param childPosition the position of the child with respect to other
			 */
			getChild(groupPosition: number, childPosition: number): any;
			/**
			 * Gets the ID for the group at the given position. This group ID must be unique across groups. The combined ID (see #getCombinedGroupId(long)) must be unique across ALL items (groups and all children). 
			 * @param groupPosition the position of the group for which the ID is wanted
			 */
			getGroupId(groupPosition: number): any;
			/**
			 * Gets the ID for the given child within the given group. This ID must be unique across all children within the group. The combined ID (see #getCombinedChildId(long, long)) must be unique across ALL items (groups and all children). 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child within the group for which
			 */
			getChildId(groupPosition: number, childPosition: number): any;
			/**
			 * Indicates whether the child and group IDs are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Gets a View that displays the given group. This View is only for the group--the Views for the group's children will be fetched using #getChildView(int, int, boolean, View, ViewGroup). 
			 * @param groupPosition the position of the group for which the View is
			 * @param isExpanded whether the group is expanded or collapsed
			 * @param convertView the old view to reuse, if possible. You should check
			 * @param parent the parent that this view will eventually be attached to
			 */
			getGroupView(groupPosition: number, isExpanded: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Gets a View that displays the data for the given child within the given group. 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child (for which the View is
			 * @param isLastChild Whether the child is the last child within the group
			 * @param convertView the old view to reuse, if possible. You should check
			 * @param parent the parent that this view will eventually be attached to
			 */
			getChildView(groupPosition: number, childPosition: number, isLastChild: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Whether the child at the specified position is selectable. 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child within the group
			 */
			isChildSelectable(groupPosition: number, childPosition: number): boolean;
		}
		/**
		 * An easy adapter to map columns from a cursor to TextViews or ImageViews defined in an XML file. You can specify which columns you want, which views you want to display the columns, and the XML file that defines the appearance of these views. Separate XML files for child and groups are possible.
		 */
		export class SimpleCursorTreeAdapter extends android.widget.ResourceCursorTreeAdapter {
			/**
			 * Constructor. 
			 * @param context The context where the {@link ExpandableListView}
			 * @param cursor The database cursor
			 * @param collapsedGroupLayout The resource identifier of a layout file that
			 * @param expandedGroupLayout The resource identifier of a layout file that
			 * @param groupFrom A list of column names that will be used to display the
			 * @param groupTo The group views (from the group layouts) that should
			 * @param childLayout The resource identifier of a layout file that defines
			 * @param lastChildLayout The resource identifier of a layout file that
			 * @param childFrom A list of column names that will be used to display the
			 * @param childTo The child views (from the child layouts) that should
			 */
			constructor(context: android.content.Context, cursor: android.database.ICursor, collapsedGroupLayout: number, expandedGroupLayout: number, groupFrom: native.Array<string>, groupTo: native.Array<number>, childLayout: number, lastChildLayout: number, childFrom: native.Array<string>, childTo: native.Array<number>);
			/**
			 * Constructor. 
			 * @param context The context where the {@link ExpandableListView}
			 * @param cursor The database cursor
			 * @param collapsedGroupLayout The resource identifier of a layout file that
			 * @param expandedGroupLayout The resource identifier of a layout file that
			 * @param groupFrom A list of column names that will be used to display the
			 * @param groupTo The group views (from the group layouts) that should
			 * @param childLayout The resource identifier of a layout file that defines
			 * @param childFrom A list of column names that will be used to display the
			 * @param childTo The child views (from the child layouts) that should
			 */
			constructor(context: android.content.Context, cursor: android.database.ICursor, collapsedGroupLayout: number, expandedGroupLayout: number, groupFrom: native.Array<string>, groupTo: native.Array<number>, childLayout: number, childFrom: native.Array<string>, childTo: native.Array<number>);
			/**
			 * Constructor. 
			 * @param context The context where the {@link ExpandableListView}
			 * @param cursor The database cursor
			 * @param groupLayout The resource identifier of a layout file that defines
			 * @param groupFrom A list of column names that will be used to display the
			 * @param groupTo The group views (from the group layouts) that should
			 * @param childLayout The resource identifier of a layout file that defines
			 * @param childFrom A list of column names that will be used to display the
			 * @param childTo The child views (from the child layouts) that should
			 */
			constructor(context: android.content.Context, cursor: android.database.ICursor, groupLayout: number, groupFrom: native.Array<string>, groupTo: native.Array<number>, childLayout: number, childFrom: native.Array<string>, childTo: native.Array<number>);
			static class: java.lang.Class<android.widget.SimpleCursorTreeAdapter>;
			/**
			 * Returns the ViewBinder used to bind data to views.
			 */
			public getViewBinder(): android.widget.SimpleCursorTreeAdapter.IViewBinder;
			/**
			 * Sets the binder used to bind data to views.
			 * @param viewBinder the binder used to bind data to views, can be null to
			 */
			public setViewBinder(viewBinder: android.widget.SimpleCursorTreeAdapter.IViewBinder): void;
			protected bindChildView(view: android.view.View, context: android.content.Context, cursor: android.database.ICursor, isLastChild: boolean): void;
			protected bindGroupView(view: android.view.View, context: android.content.Context, cursor: android.database.ICursor, isExpanded: boolean): void;
			/**
			 * Called by bindView() to set the image for an ImageView. By default, the value will be treated as a Uri. Intended to be overridden by Adapters that need to filter strings retrieved from the database. 
			 * @param v ImageView to receive an image
			 * @param value the value retrieved from the cursor
			 */
			protected setViewImage(v: android.widget.ImageView, value: string): void;
			/**
			 * Called by bindView() to set the text for a TextView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to a TextView.
			 * @param v TextView to receive text
			 * @param text the text to be set for the TextView
			 */
			public setViewText(v: android.widget.TextView, text: string): void;
		}
		export module SimpleCursorTreeAdapter {
			/**
			 * This class can be used by external clients of SimpleCursorTreeAdapter to bind values from the Cursor to views.
			 */
			interface IViewBinder {
				/**
				 * Binds the Cursor column defined by the specified index to the specified view.
				 * @param view the view to bind the data to
				 * @param cursor the cursor to get the data from
				 * @param columnIndex the column at which the data can be found in the cursor
				 */
				setViewValue(view: android.view.View, cursor: android.database.ICursor, columnIndex: number): boolean;
			}
			/**
			 * This class can be used by external clients of SimpleCursorTreeAdapter to bind values from the Cursor to views.
			 */
			export class ViewBinder implements android.widget.SimpleCursorTreeAdapter.IViewBinder {
				constructor(implementation: android.widget.SimpleCursorTreeAdapter.IViewBinder);
				/**
				 * Binds the Cursor column defined by the specified index to the specified view.
				 * @param view the view to bind the data to
				 * @param cursor the cursor to get the data from
				 * @param columnIndex the column at which the data can be found in the cursor
				 */
				public setViewValue(view: android.view.View, cursor: android.database.ICursor, columnIndex: number): boolean;
			}
		}
		/**
		 * Exercises android.widget.RadioGroup's check feature.
		 */
		export class RadioGroupPreCheckedTest extends android.test.ActivityInstrumentationTestCase2<android.widget.RadioGroupActivity> {
			constructor();
			static class: java.lang.Class<android.widget.RadioGroupPreCheckedTest>;
			public testRadioButtonPreChecked(): void;
			public testRadioButtonChangePreChecked(): void;
		}
		export class RadioGroup extends android.widget.LinearLayout {
			/**
			 * 
			 */
			constructor(context: android.content.Context);
			/**
			 * 
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.RadioGroup>;
			/**
			 * 
			 */
			public setOnHierarchyChangeListener(listener: android.view.ViewGroup.IOnHierarchyChangeListener): void;
			/**
			 * 
			 */
			protected onFinishInflate(): void;
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * @param id the unique id of the radio button to select in this group
			 */
			public check(id: number): void;
			public getCheckedRadioButtonId(): number;
			public clearCheck(): void;
			/**
			 * @param listener the callback to call on checked state change
			 */
			public setOnCheckedChangeListener(listener: android.widget.RadioGroup.IOnCheckedChangeListener): void;
			/**
			 * 
			 */
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.RadioGroup.LayoutParams;
			/**
			 * 
			 */
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			protected generateDefaultLayoutParams(): android.widget.LinearLayout.LayoutParams;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.widget.LinearLayout.LayoutParams;
			/**
			 * @param child the child view to add
			 */
			addView(child: android.view.View): void;
			/**
			 * Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child. 
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 */
			addView(child: android.view.View, index: number): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param params the layout parameters to set on the child
			 */
			addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
		}
		export module RadioGroup {
			export class LayoutParams extends android.widget.LinearLayout.LayoutParams {
				/**
				 * 
				 */
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * 
				 */
				constructor(w: number, h: number);
				/**
				 * 
				 */
				constructor(w: number, h: number, initWeight: number);
				/**
				 * 
				 */
				constructor(p: android.view.ViewGroup.LayoutParams);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.MarginLayoutParams);
				static class: java.lang.Class<android.widget.RadioGroup.LayoutParams>;
				/**
				 * @param a the styled attributes set
				 * @param widthAttr the width attribute to fetch
				 * @param heightAttr the height attribute to fetch
				 */
				protected setBaseAttributes(a: android.content.res.TypedArray, widthAttr: number, heightAttr: number): void;
			}
			interface IOnCheckedChangeListener {
				/**
				 * @param group the group in which the checked radio button has changed
				 * @param checkedId the unique identifier of the newly checked radio button
				 */
				onCheckedChanged(group: android.widget.RadioGroup, checkedId: number): void;
			}
			export class OnCheckedChangeListener implements android.widget.RadioGroup.IOnCheckedChangeListener {
				constructor(implementation: android.widget.RadioGroup.IOnCheckedChangeListener);
				/**
				 * @param group the group in which the checked radio button has changed
				 * @param checkedId the unique identifier of the newly checked radio button
				 */
				public onCheckedChanged(group: android.widget.RadioGroup, checkedId: number): void;
			}
			export class CheckedStateTracker extends java.lang.Object implements android.widget.CompoundButton.IOnCheckedChangeListener {
				static class: java.lang.Class<android.widget.RadioGroup.CheckedStateTracker>;
				public onCheckedChanged(buttonView: android.widget.CompoundButton, isChecked: boolean): void;
			}
			export class PassThroughHierarchyChangeListener extends java.lang.Object implements android.view.ViewGroup.IOnHierarchyChangeListener {
				static class: java.lang.Class<android.widget.RadioGroup.PassThroughHierarchyChangeListener>;
				/**
				 * 
				 */
				public onChildViewAdded(parent: android.view.View, child: android.view.View): void;
				/**
				 * 
				 */
				public onChildViewRemoved(parent: android.view.View, child: android.view.View): void;
			}
		}
		export module listview {
			/**
			 * Basic bottom gravity scenario, nothing fancy. Items do not fill the screen
			 */
			export class ListBottomGravity extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListBottomGravity>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListViewHeightTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListViewHeight> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListViewHeightTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testButtons(): void;
			}
			/**
			 * The first item is unselectable, and takes up the whole screen.
			 */
			export class ListWithFirstScreenUnSelectable extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithFirstScreenUnSelectable>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * Basic tests of setting & clearing the selection
			 */
			export class ListSetSelectionTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListSimple> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListSetSelectionTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				/**
				 * Confirm that we can set the selection to each specific position
				 */
				public testSetSelection(): void;
				/**
				 * Confirm that you cannot unset the selection using the same API
				 */
				public testClearSelection(): void;
			}
			export module focus {
				export class ListWithEditTextHeaderTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListWithEditTextHeader> {
					constructor();
					static class: java.lang.Class<android.widget.listview.focus.ListWithEditTextHeaderTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testClickingHeaderKeepsFocus(): void;
					public testClickingHeaderWhenOtherItemHasFocusGivesHeaderFocus(): void;
				}
				export class AdjacentListsWithAdjacentISVsInsideTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.AdjacentListsWithAdjacentISVsInside> {
					constructor();
					static class: java.lang.Class<android.widget.listview.focus.AdjacentListsWithAdjacentISVsInsideTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					/**
					 * rockinist test name to date!
					 */
					public testFocusedRectAndFocusHintWorkWithinListItemHorizontal(): void;
					public testFocusTransfersOutsideOfListWhenNoCandidateInsideHorizontal(): void;
				}
				/**
				 * Test that ListView will override default behavior of focus searching to make sure going right and left doesn't change selection
				 */
				export class ListButtonsDiagonalAcrossItemsTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListButtonsDiagonalAcrossItems> {
					constructor();
					static class: java.lang.Class<android.widget.listview.focus.ListButtonsDiagonalAcrossItemsTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGoingRightDoesNotChangeSelection(): void;
					public testGoingLeftDoesNotChangeSelection(): void;
				}
				export class ListHorizontalFocusWithinItemWinsTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListHorizontalFocusWithinItemWins> {
					constructor();
					static class: java.lang.Class<android.widget.listview.focus.ListHorizontalFocusWithinItemWinsTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testOptionWithinItemTrumpsGlobal(): void;
				}
			}
			export class ListRetainsFocusAcrossLayoutsTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListItemFocusablesClose> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListRetainsFocusAcrossLayoutsTest>;
				public testPreconditions(): void;
				public testBottomButtonRetainsFocusAfterLayout(): void;
				public testTopButtonOfSecondPositionRetainsFocusAfterLayout(): void;
				public testBottomButtonOfSecondPositionRetainsFocusAfterLayout(): void;
			}
			/**
			 * The header text view echos the value of the selected item by using (indirectly) the android.widget.AdapterView.OnItemSelectedListener.
			 */
			export class ListWithOnItemSelectedAction extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithOnItemSelectedAction>;
				protected init(params: android.util.ListScenario.Params): void;
				protected positionSelected(positon: number): void;
			}
			/**
			 * Tests hiding and showing the list filter by hiding and showing an ancestor of the ListView
			 */
			export class ListFilter extends android.app.ListActivity implements android.view.View.IOnClickListener {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListFilter>;
				public onCreate(savedInstanceState: android.os.Bundle): void;
				public onClick(v: android.view.View): void;
			}
			export class ListWithNoFadingEdge extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithNoFadingEdge>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * List that has different view types
			 */
			export class ListHeterogeneous extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListHeterogeneous>;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
				public convertView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				public getItemViewType(position: number): number;
				public getViewTypeCount(): number;
			}
			/**
			 * Tests restoring the scroll position in a list with a managed cursor.
			 */
			export class ListManagedCursorTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListManagedCursor> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListManagedCursorTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				/**
				 * Scroll the list using arrows, launch new activity, hit back, make sure we're still scrolled.
				 */
				public testKeyScrolling(): void;
				/**
				 * Scroll the list using touch, launch new activity, hit back, make sure we're still scrolled.
				 */
				public testTouchScrolling(): void;
				/**
				 * Scroll the list using arrows, launch new activity, change to touch mode, hit back, make sure we're still scrolled.
				 */
				public testKeyScrollingToTouchMode(): void;
				/**
				 * Scroll the list using touch, launch new activity, change to trackball mode, hit back, make sure we're still scrolled.
				 */
				public testTouchScrollingToTrackballMode(): void;
				public arrowScroll(inst: android.app.Instrumentation): number;
				public touchScroll(inst: android.app.Instrumentation): number;
			}
			export class ListBottomGravityManyTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListBottomGravityMany> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListBottomGravityManyTest>;
				protected setUp(): void;
				public testPreconditions(): void;
			}
			export class ListHeterogeneousTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListHeterogeneous> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListHeterogeneousTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testKeyScrolling(): void;
			}
			export class ListFocusableTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListTopGravity> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListFocusableTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testAdapterFull(): void;
				public testAdapterEmpty(): void;
				public testAdapterNull(): void;
				public testAdapterFullSetFocusable(): void;
				public testAdapterFullSetNonFocusable(): void;
				public testAdapterEmptySetFocusable(): void;
				public testAdapterEmptySetNonFocusable(): void;
				public testAdapterNullSetFocusable(): void;
				public testAdapterNullSetNonFocusable(): void;
				public testFocusableSetAdapterFull(): void;
				public testNonFocusableSetAdapterFull(): void;
				public testFocusableSetAdapterEmpty(): void;
				public testNonFocusableSetAdapterEmpty(): void;
				public testFocusableSetAdapterNull(): void;
				public testNonFocusableSetAdapterNull(): void;
			}
			export class ListWithHeaders extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithHeaders>;
				protected init(params: android.util.ListScenario.Params): void;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export class ListUnspecifiedMeasure<T extends android.app.Activity> extends android.test.ActivityInstrumentationTestCase<T> {
				static class: java.lang.Class<android.widget.listview.ListUnspecifiedMeasure<any>>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testWasMeasured(): void;
			}
			export class ListWithScreenOfNoSelectables extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithScreenOfNoSelectables>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export module touch {
				/**
				 * Touch tests for a list where all of the items fit on the screen.
				 */
				export class ListTouchTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListTopGravity> {
					constructor();
					static class: java.lang.Class<android.widget.listview.touch.ListTouchTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testPullDown(): void;
					public testPushUp(): void;
				}
				/**
				 * This test is made to check that getSelectedView() will return null in touch mode.
				 */
				export class ListGetSelectedViewTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListGetSelectedView> {
					constructor();
					static class: java.lang.Class<android.widget.listview.touch.ListGetSelectedViewTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGetSelectedView(): void;
				}
				/**
				 * Touch tests for a list where all of the items fit on the screen.
				 */
				export class ListOfTouchablesTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListOfTouchables> {
					constructor();
					static class: java.lang.Class<android.widget.listview.touch.ListOfTouchablesTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testShortScroll(): void;
					public testLongScroll(): void;
				}
				/**
				 * Tests setting the selection in touch mode
				 */
				export class ListSetSelectionTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListSimple> {
					constructor();
					static class: java.lang.Class<android.widget.listview.touch.ListSetSelectionTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testSetSelection(): void;
					public testSetSelectionFromTop(): void;
					public testSetSelection0(): void;
				}
				/**
				 * Touch tests for a list where all of the items fit on the screen, and the list stacks from the bottom.
				 */
				export class ListTouchBottomGravityTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListBottomGravity> {
					constructor();
					static class: java.lang.Class<android.widget.listview.touch.ListTouchBottomGravityTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testPullDown(): void;
					public testPushUp(): void;
				}
				/**
				 * Touch tests for a list where all of the items do not fit on the screen, and the list stacks from the bottom.
				 */
				export class ListTouchBottomGravityManyTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListBottomGravityMany> {
					constructor();
					static class: java.lang.Class<android.widget.listview.touch.ListTouchBottomGravityManyTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testPullDown(): void;
					public testPushUp(): void;
					public testNoScroll(): void;
					public testShortScroll(): void;
					public testLongScroll(): void;
				}
				/**
				 * Touch tests for a list where all of the items do not fit on the screen.
				 */
				export class ListTouchManyTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListTopGravityMany> {
					constructor();
					static class: java.lang.Class<android.widget.listview.touch.ListTouchManyTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testPullDown(): void;
					public testPushUp(): void;
					public testPress(): void;
					public testLongPress(): void;
					public testNoScroll(): void;
					public testShortScroll(): void;
					public testLongScroll(): void;
				}
			}
			export class ListButtonsDiagonalAcrossItems extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListButtonsDiagonalAcrossItems>;
				protected init(params: android.util.ListScenario.Params): void;
				public getLeftButton(): android.widget.Button;
				public getCenterButton(): android.widget.Button;
				public getRightButton(): android.widget.Button;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * Exposes fading in and out multiple items.
			 */
			export class ListOfShortShortTallShortShort extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListOfShortShortTallShortShort>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * Basic top gravity scenario, nothing fancy. Items do not fill the screen
			 */
			export class ListTopGravity extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListTopGravity>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListRecyclerProfiling extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListRecyclerProfiling>;
				public onCreate(icicle: android.os.Bundle): void;
			}
			export class ListOfItemsTallerThanScreen extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListOfItemsTallerThanScreen>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListViewHeight extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListViewHeight>;
				protected onCreate(savedInstanceState: android.os.Bundle): void;
			}
			/**
			 * Tests using an empty view with a list
			 */
			export class ListWithEmptyView extends android.app.ListActivity {
				constructor();
				static MENU_ADD: number;
				static MENU_REMOVE: number;
				static class: java.lang.Class<android.widget.listview.ListWithEmptyView>;
				public onCreate(savedInstanceState: android.os.Bundle): void;
				public onCreateOptionsMenu(menu: android.view.IMenu): boolean;
				public onOptionsItemSelected(item: android.view.IMenuItem): boolean;
				public getEmptyView(): android.view.View;
			}
			export module ListWithEmptyView {
				export class CarefulAdapter<T> extends android.widget.ArrayAdapter<T> {
					static class: java.lang.Class<android.widget.listview.ListWithEmptyView.CarefulAdapter<any>>;
					public getItemId(position: number): any;
				}
			}
			export class ListEmptyViewTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListWithEmptyView> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListEmptyViewTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testZeroToOne(): void;
				public testZeroToOneForwardBack(): void;
				public testZeroToManyToZero(): void;
			}
			/**
			 * List of 1,000 items used to test calls to setSelection() in touch mode. Pressing the S key will call setSelection(0) on the list.
			 */
			export class ListSetSelection extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListSetSelection>;
				protected init(params: android.util.ListScenario.Params): void;
				protected onCreate(icicle: android.os.Bundle): void;
				public getButton(): android.widget.Button;
				public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			}
			/**
			 * Pressing down from position 0 requires looking past positions 1, 2 and 3 to an offscreen item to know that it is the next selectable.
			 */
			export class ListWithOffScreenNextSelectable extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithOffScreenNextSelectable>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * Each item is an internal selection view, a button, and some filler
			 */
			export class ListItemISVAndButton extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListItemISVAndButton>;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * A list where each item is tall with buttons that are farther apart than the screen size. We don't want to jump over content off screen to the next button, we need to pan across the intermediate part.
			 */
			export class ListItemFocusablesFarApart extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListItemFocusablesFarApart>;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * Exercises a list width dividers and padding.
			 */
			export class ListDividers extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListDividers>;
				public onCreate(icicle: android.os.Bundle): void;
				public getListView(): android.widget.ListView;
			}
			export class ListHorizontalFocusWithinItemWins extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListHorizontalFocusWithinItemWins>;
				protected init(params: android.util.ListScenario.Params): void;
				public getTopLeftButton(): android.widget.Button;
				public getTopRightButton(): android.widget.Button;
				public getBottomMiddleButton(): android.widget.Button;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * Exercises a list in a horizontal linear layout
			 */
			export class ListInHorizontal extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListInHorizontal>;
				public onCreate(icicle: android.os.Bundle): void;
				public getListView(): android.widget.ListView;
			}
			/**
			 * Exercises change notification in a list
			 */
			export class ListScrollListener extends android.app.ListActivity implements android.widget.AbsListView.IOnScrollListener {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListScrollListener>;
				public onCreate(icicle: android.os.Bundle): void;
				public onItemSelected(parent: android.widget.AdapterView<any>, v: android.view.View, position: number, id: number): void;
				public onNothingSelected(parent: android.widget.AdapterView<any>): void;
				public onScroll(view: android.widget.AbsListView, firstCell: number, cellCount: number, itemCount: number): void;
				public onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
			}
			/**
			 * Exercises change notification in a list
			 */
			export class ListThrasher extends android.app.ListActivity implements android.widget.AdapterView.IOnItemSelectedListener {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListThrasher>;
				ThrashListAdapter: {
	new (context: android.content.Context): android.widget.listview.ListThrasher.ThrashListAdapter;
};
				public onCreate(icicle: android.os.Bundle): void;
				public onItemSelected(parent: android.widget.AdapterView<any>, v: android.view.View, position: number, id: number): void;
				public onNothingSelected(parent: android.widget.AdapterView<any>): void;
			}
			export module ListThrasher {
				export class ThrashListAdapter extends android.widget.BaseAdapter {
					static class: java.lang.Class<android.widget.listview.ListThrasher.ThrashListAdapter>;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
					public bumpVersion(): void;
				}
			}
			export class ListEndingWithMultipleSeparators extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListEndingWithMultipleSeparators>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListOfItemsShorterThanScreen extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListOfItemsShorterThanScreen>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * Testing the ListView getCheckItemIds() method in different situations.
			 */
			export class ListGetCheckItemIdsTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListSimple> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListGetCheckItemIdsTest>;
				protected setUp(): void;
				public testNoneCheck(): void;
				public testSimpleCheck(): void;
				public testMultipleCheck(): void;
				public testClearChoices(): void;
			}
			/**
			 * A list view with a single edit text in a header.
			 */
			export class ListWithEditTextHeader extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithEditTextHeader>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * Basic top gravity scenario, nothing fancy. There are more items than fit on the screen
			 */
			export class ListTopGravityMany extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListTopGravityMany>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * A list where the items may befocusable, but the second item isn't actually focusabe.
			 */
			export class ListItemFocusableAboveUnfocusable extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListItemFocusableAboveUnfocusable>;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			export class ListBottomGravityTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListBottomGravity> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListBottomGravityTest>;
				protected setUp(): void;
				public testPreconditions(): void;
			}
			/**
			 * Two short items separated by one that is taller than the screen.
			 */
			export class ListOfShortTallShort extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListOfShortTallShort>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListInVerticalTest extends android.widget.listview.ListUnspecifiedMeasure<android.widget.listview.ListInVertical> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListInVerticalTest>;
			}
			/**
			 * See 1080989. You need some contacts for this adapter.
			 */
			export class ListWithDisappearingItemBug extends android.app.ListActivity {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithDisappearingItemBug>;
				protected onCreate(savedInstanceState: android.os.Bundle): void;
			}
			export class ListManagedCursor extends android.app.ListActivity implements android.widget.AdapterView.IOnItemClickListener {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListManagedCursor>;
				protected onCreate(savedInstanceState: android.os.Bundle): void;
				public onItemClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
			}
			/**
			 * Exercises moving focus into the list from the side
			 */
			export class ListTakeFocusFromSide extends android.app.ListActivity {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListTakeFocusFromSide>;
				ThrashListAdapter: {
	new (context: android.content.Context): android.widget.listview.ListTakeFocusFromSide.ThrashListAdapter;
};
				public onCreate(icicle: android.os.Bundle): void;
			}
			export module ListTakeFocusFromSide {
				export class ThrashListAdapter extends android.widget.BaseAdapter {
					static class: java.lang.Class<android.widget.listview.ListTakeFocusFromSide.ThrashListAdapter>;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				}
			}
			/**
			 * List that interleaves focusable items.
			 */
			export class ListInterleaveFocusables extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListInterleaveFocusables>;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
				public getItemViewType(position: number): number;
				public getViewTypeCount(): number;
			}
			/**
			 * Basic bottom gravity scenario, nothing fancy. There are more items than fit on the screen
			 */
			export class ListBottomGravityMany extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListBottomGravityMany>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListSimple extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListSimple>;
				protected init(params: android.util.ListScenario.Params): void;
				protected onCreate(icicle: android.os.Bundle): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * Exercises a list in a vertical linear layout
			 */
			export class ListInVertical extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListInVertical>;
				public onCreate(icicle: android.os.Bundle): void;
				public getListView(): android.widget.ListView;
			}
			/**
			 * Basic separator scenario, nothing fancy.
			 */
			export class ListWithSeparators extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListWithSeparators>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListScrollListenerTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListScrollListener> implements android.widget.AbsListView.IOnScrollListener {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListScrollListenerTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testKeyScrolling(): void;
				public testTouchScrolling(): void;
				public onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
				public onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
			}
			export class ListOfThinItems extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListOfThinItems>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * Each list item has two focusables that are close enough together that it shouldn't require panning to move focus.
			 */
			export class ListItemFocusablesClose extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListItemFocusablesClose>;
				/**
				 * Get the child of a list item.
				 * @param listIndex The index of the currently visible items
				 * @param index The index of the child.
				 */
				public getChildOfItem(listIndex: number, index: number): android.view.View;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * A list where the very last item is partially visible, but still requires scrolling to bring it into view.
			 */
			export class ListLastItemPartiallyVisible extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListLastItemPartiallyVisible>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			export class ListInHorizontalTest extends android.widget.listview.ListUnspecifiedMeasure<android.widget.listview.ListInHorizontal> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListInHorizontalTest>;
			}
			export class ListItemRequestRectAboveThinFirstItemTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListOfThinItems> {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListItemRequestRectAboveThinFirstItemTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testSecondItemRequestRectAboveTop(): void;
				public testSecondToLastItemRequestRectBelowBottom(): void;
			}
			export module arrowscroll {
				export class ListItemFocusablesFarApartTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListItemFocusablesFarApart> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListItemFocusablesFarApartTest>;
					protected setUp(): void;
					/**
					 * Get the child of a list item.
					 * @param listIndex The index of the currently visible items
					 * @param index The index of the child.
					 */
					public getChildOfItem(listIndex: number, index: number): android.view.View;
					public getTopOfChildOfItem(listIndex: number, index: number): number;
					public getBottomOfChildOfItem(listIndex: number, index: number): number;
					public testPreconditions(): void;
					public testPanWhenNextFocusableTooFarDown(): void;
				}
				export class ListOfItemsShorterThanScreenTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListOfItemsShorterThanScreen> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListOfItemsShorterThanScreenTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testMoveDownToOnScreenNextItem(): void;
					public testMoveUpToOnScreenItem(): void;
					public testMoveDownToItemRequiringScrolling(): void;
					public testMoveUpToItemRequiringScrolling(): void;
					public testPressUpWhenAlreadyAtTop(): void;
					public testPressDownWhenAlreadyAtBottom(): void;
					public testNoVerticalFadingEdgeWhenMovingToBottom(): void;
				}
				export class ListOfShortTallShortTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListOfShortTallShort> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListOfShortTallShortTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGoDownFromShortToTall(): void;
					public testGoUpFromShortToTall(): void;
				}
				export class ListItemsExpandOnSelectionTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListItemsExpandOnSelection> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListItemsExpandOnSelectionTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testMoveSelectionDownNotRequiringScroll(): void;
					public testMoveSelectionUpNotRequiringScroll(): void;
					public testMoveSelectionDownRequiringScroll(): void;
					public testMoveSelectionUpRequiringScroll(): void;
				}
				export class ListOfThinItemsTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListOfThinItems> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListOfThinItemsTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testScrollToBottom(): void;
					public testScrollToTop(): void;
				}
				export class ListWithOffScreenNextSelectableTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListWithOffScreenNextSelectable> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListWithOffScreenNextSelectableTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGoDownToOffScreenSelectable(): void;
					public testGoUpToOffScreenSelectable(): void;
				}
				export class ListLastItemPartiallyVisibleTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListLastItemPartiallyVisible> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListLastItemPartiallyVisibleTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testMovingDownToFullyVisibleNoScroll(): void;
					public testMovingUpToFullyVisibleNoScroll(): void;
				}
				export class ListItemFocusablesCloseTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListItemFocusablesClose> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListItemFocusablesCloseTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testChangeFocusWithinItem(): void;
					public testMoveDownToButtonInDifferentSelection(): void;
					public testMoveUpToButtonInDifferentSelection(): void;
				}
				export class ListOfShortShortTallShortShortTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListOfShortShortTallShortShort> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListOfShortShortTallShortShortTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testFadeTopTwoItemsOut(): void;
					public testFadeInTwoBottomItems(): void;
					public testFadeOutBottomTwoItems(): void;
					public testFadeInTopTwoItems(): void;
				}
				export class ListWithScreenOfNoSelectablesTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListWithScreenOfNoSelectables> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListWithScreenOfNoSelectablesTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGoFromSelectedViewExistsToNoSelectedViewExists(): void;
					public testPanDownAcrossUnselectableChildrenToBottom(): void;
					public testGoFromNoSelectionToSelectionExists(): void;
				}
				export class ListWithSeparatorsTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListWithSeparators> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListWithSeparatorsTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGoingUpDoesnNotHitUnselectableItem(): void;
					public testGoingDownSkipsOverUnselectable(): void;
					public testGoingUpSkippingOverUnselectable(): void;
				}
				export class ListOfItemsTallerThanScreenTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListOfItemsTallerThanScreen> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListOfItemsTallerThanScreenTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testScrollDownAcrossItem(): void;
					public testScrollDownToNextItem(): void;
					public testScrollFirstItemOffScreen(): void;
					public testScrollDownToLastItem(): void;
					public testScrollUpAcrossFirstItem(): void;
				}
				export class ListItemFocusableAboveUnfocusableTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListItemFocusableAboveUnfocusable> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListItemFocusableAboveUnfocusableTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testMovingToUnFocusableTakesFocusAway(): void;
				}
				export class ListWithNoFadingEdgeTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListWithNoFadingEdge> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListWithNoFadingEdgeTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testScrollDownToBottom(): void;
					public testScrollFromBottomToTop(): void;
				}
				export class ListWithFirstScreenUnSelectableTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListWithFirstScreenUnSelectable> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListWithFirstScreenUnSelectableTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testRessurectSelection(): void;
					public testScrollUpDoesNothing(): void;
					public testScrollDownPansNextItemOn(): void;
				}
				export class ListWithOnItemSelectedActionTest extends android.test.ActivityInstrumentationTestCase<android.widget.listview.ListWithOnItemSelectedAction> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListWithOnItemSelectedActionTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testHeaderEchoesSelectionAfterMove(): void;
				}
				export class ListInterleaveFocusablesTest extends android.test.ActivityInstrumentationTestCase2<android.widget.listview.ListInterleaveFocusables> {
					constructor();
					static class: java.lang.Class<android.widget.listview.arrowscroll.ListInterleaveFocusablesTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGoingFromUnFocusableSelectedToFocusable(): void;
					public testGoingDownFromUnFocusableSelectedToFocusableWithOtherFocusableAbove(): void;
					public testGoingUpFromUnFocusableSelectedToFocusableWithOtherFocusableAbove(): void;
					/**
					 * Go down from a focusable when there is a focusable below, but it is more than one item away; make sure it won't give that item focus because it is too far away.
					 */
					public testGoingDownFromFocusableToUnfocusableWhenFocusableIsBelow(): void;
					public testGoingUpFromFocusableToUnfocusableWhenFocusableIsBelow(): void;
					public assertSelectedViewFocus(isFocused: boolean): void;
				}
			}
			/**
			 * Each list item has two focusables that are close enough together that it shouldn't require panning to move focus.
			 */
			export class ListOfTouchables extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListOfTouchables>;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * Basic top gravity scenario. This test is made to check that getSelectedView() will return null in touch mode.
			 */
			export class ListGetSelectedView extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListGetSelectedView>;
				protected init(params: android.util.ListScenario.Params): void;
			}
			/**
			 * Most bodacious scenario yet!
			 */
			export class AdjacentListsWithAdjacentISVsInside extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.listview.AdjacentListsWithAdjacentISVsInside>;
				public getLeftListView(): android.widget.ListView;
				public getRightListView(): android.widget.ListView;
				public getLeftIsv(): android.util.InternalSelectionView;
				public getLeftMiddleIsv(): android.util.InternalSelectionView;
				public getRightMiddleIsv(): android.util.InternalSelectionView;
				public getRightIsv(): android.util.InternalSelectionView;
				protected onCreate(savedInstanceState: android.os.Bundle): void;
			}
			export module AdjacentListsWithAdjacentISVsInside {
				export class AdjacentISVAdapter extends android.widget.BaseAdapter {
					static class: java.lang.Class<android.widget.listview.AdjacentListsWithAdjacentISVsInside.AdjacentISVAdapter>;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				}
			}
			/**
			 * A list where each item expands by 1.5 when selected.
			 */
			export class ListItemsExpandOnSelection extends android.util.ListScenario {
				constructor();
				static class: java.lang.Class<android.widget.listview.ListItemsExpandOnSelection>;
				protected init(params: android.util.ListScenario.Params): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
				public convertView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			}
			export module ListItemsExpandOnSelection {
				export class ExpandWhenSelectedView extends android.widget.TextView {
					constructor(context: android.content.Context, desiredHeight: number);
					static class: java.lang.Class<android.widget.listview.ListItemsExpandOnSelection.ExpandWhenSelectedView>;
					public setSelected(selected: boolean): void;
				}
			}
		}
		export class AutoCompleteTextViewSimple extends android.app.Activity implements android.widget.AdapterView.IOnItemClickListener, android.widget.AdapterView.IOnItemSelectedListener {
			constructor();
			/**
			 * These are cleared by resetItemListeners(), and set by the callback listeners
			 */
			mItemClickCalled: boolean;
			mItemClickPosition: number;
			mItemSelectedCalled: boolean;
			mItemSelectedPosition: number;
			mNothingSelectedCalled: boolean;
			static class: java.lang.Class<android.widget.AutoCompleteTextViewSimple>;
			protected onCreate(icicle: android.os.Bundle): void;
			public getTextView(): android.widget.AutoCompleteTextView;
			/**
			 * Set the autocomplete data to an adapter containing 0..n strings with a consistent prefix.
			 */
			public setStringAdapter(numSuggestions: number, prefix: string): void;
			/**
			 * For monitoring OnItemClickListener & OnItemSelectedListener An alternative here would be to provide a set of pass-through callbacks
			 */
			public resetItemListeners(): void;
			/**
			 * Implements OnItemClickListener
			 */
			public onItemClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
			public onItemSelected(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
			public onNothingSelected(parent: android.widget.AdapterView<any>): void;
		}
		export module focus {
			/**
			 * Tests that focus works as expected when navigating into and out of a ListView that has buttons in it.
			 */
			export class ListOfButtonsTest extends android.test.ActivityInstrumentationTestCase2<android.widget.focus.ListOfButtons> {
				constructor();
				static class: java.lang.Class<android.widget.focus.ListOfButtonsTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testNavigateToButtonAbove(): void;
				public testNavigateToSecondItem(): void;
				public testNavigateUpAboveAndBackOut(): void;
				public TODO_testNavigateThroughAllButtonsAndBack(): void;
				public testGoInAndOutOfListWithItemsFocusable(): void;
			}
			export class DescendantFocusability extends android.app.Activity {
				constructor();
				beforeDescendants: android.view.ViewGroup;
				beforeDescendantsChild: android.widget.Button;
				afterDescendants: android.view.ViewGroup;
				afterDescendantsChild: android.widget.Button;
				blocksDescendants: android.view.ViewGroup;
				blocksDescendantsChild: android.widget.Button;
				static class: java.lang.Class<android.widget.focus.DescendantFocusability>;
				protected onCreate(savedInstanceState: android.os.Bundle): void;
			}
			export class ListOfEditTexts extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.ListOfEditTexts>;
				public getListView(): android.widget.ListView;
				protected onCreate(icicle: android.os.Bundle): void;
				getBody(line: string): string;
			}
			export module ListOfEditTexts {
				export class MyAdapter extends android.widget.ArrayAdapter<string> {
					constructor(context: android.content.Context, bodies: java.util.IList<string>);
					static class: java.lang.Class<android.widget.focus.ListOfEditTexts.MyAdapter>;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				}
			}
			export class ListWithFooterViewAndNewLabels extends android.app.ListActivity {
				constructor();
				static class: java.lang.Class<android.widget.focus.ListWithFooterViewAndNewLabels>;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export module ListWithFooterViewAndNewLabels {
				/**
				 * An adapter that can take new string labels.
				 */
				export class MyAdapter extends android.widget.BaseAdapter {
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.widget.focus.ListWithFooterViewAndNewLabels.MyAdapter>;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
					public addLabel(s: string): void;
				}
			}
			/**
			 * FocusAfterRemoval is set up to exercise cases where the views that have focus become invisible or GONE.
			 */
			export class FocusAfterRemovalTest extends android.test.ActivityInstrumentationTestCase<android.widget.focus.FocusAfterRemoval> {
				constructor();
				static class: java.lang.Class<android.widget.focus.FocusAfterRemovalTest>;
				public setUp(): void;
				public testSetUpConditions(): void;
				public testFocusLeavesWhenParentLayoutIsGone(): void;
				public testFocusLeavesWhenParentLayoutInvisible(): void;
				public testFocusLeavesWhenFocusedViewBecomesGone(): void;
				public testFocusLeavesWhenFocusedViewBecomesInvisible(): void;
			}
			/**
			 * RequestFocusTest is set up to exercise cases where the views that have focus become invisible or GONE.
			 */
			export class RequestFocusTest extends android.test.ActivityInstrumentationTestCase2<android.widget.focus.RequestFocus> {
				constructor();
				static class: java.lang.Class<android.widget.focus.RequestFocusTest>;
				public setUp(): void;
				public testSetUpConditions(): void;
				public testPostedRequestFocus(): void;
				public testWrongThreadRequestFocusFails(): void;
				/**
				 * This tests checks the case in which the first focusable View clears focus. In such a case the framework tries to give the focus to another View starting from the top. Hence, the framework will try to give focus to the view that wants to clear its focus.
				 */
				public testOnFocusChangeCallbackOrderWhenClearingFocusOfFirstFocusable(): void;
				/**
				 * This tests check whether the on focus change callbacks are invoked in the proper order when a View loses focus and the framework gives it to the fist focusable one.
				 */
				public testOnFocusChangeCallbackOrderWhenClearingFocusOfNotFirstFocusable(): void;
			}
			export module RequestFocusTest {
				export class CombinedListeners implements android.view.View.IOnFocusChangeListener, android.view.ViewTreeObserver.IOnGlobalFocusChangeListener, android.widget.focus.RequestFocusTest.ICombinedListeners {
					constructor(implementation: android.widget.focus.RequestFocusTest.ICombinedListeners);
					/**
					 * Called when the focus state of a view has changed.
					 * @param v The view whose state has changed.
					 * @param hasFocus The new focus state of v.
					 */
					onFocusChange(v: android.view.View, hasFocus: boolean): void;
					/**
					 * Callback method to be invoked when the focus changes in the view tree. When the view tree transitions from touch mode to non-touch mode, oldFocus is null. When the view tree transitions from non-touch mode to touch mode, newFocus is null. When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.
					 * @param oldFocus The previously focused view, if any.
					 * @param newFocus The newly focused View, if any.
					 */
					onGlobalFocusChanged(oldFocus: android.view.View, newFocus: android.view.View): void;
				}
				interface ICombinedListeners extends android.view.View.IOnFocusChangeListener, android.view.ViewTreeObserver.IOnGlobalFocusChangeListener {
					/**
					 * Called when the focus state of a view has changed.
					 * @param v The view whose state has changed.
					 * @param hasFocus The new focus state of v.
					 */
					onFocusChange(v: android.view.View, hasFocus: boolean): void;
					/**
					 * Callback method to be invoked when the focus changes in the view tree. When the view tree transitions from touch mode to non-touch mode, oldFocus is null. When the view tree transitions from non-touch mode to touch mode, newFocus is null. When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.
					 * @param oldFocus The previously focused view, if any.
					 * @param newFocus The newly focused View, if any.
					 */
					onGlobalFocusChanged(oldFocus: android.view.View, newFocus: android.view.View): void;
				}
			}
			export class LinearLayoutGrid extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.LinearLayoutGrid>;
				protected onCreate(icicle: android.os.Bundle): void;
				public getRootView(): android.view.ViewGroup;
				public getButtonAt(column: number, row: number): android.widget.Button;
			}
			/**
			 * When a parent is GONE, key events shouldn't go to its children, even if they have focus. (part of investigation into issue 945150).
			 */
			export class GoneParentFocusedChildTest extends android.test.ActivityInstrumentationTestCase<android.widget.focus.GoneParentFocusedChild> {
				constructor();
				static class: java.lang.Class<android.widget.focus.GoneParentFocusedChildTest>;
				public testPreconditinos(): void;
				public testKeyEventGoesToActivity(): void;
			}
			/**
			 * Tests that focus searching works on a vertical linear layout of buttons of various widths and horizontal placements.
			 */
			export class VerticalFocusSearchTest extends android.test.ActivityInstrumentationTestCase<android.widget.focus.VerticalFocusSearch> {
				constructor();
				static class: java.lang.Class<android.widget.focus.VerticalFocusSearchTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testSearchFromTopButton(): void;
				public testSearchFromMidLeft(): void;
				public testSearchFromMidRight(): void;
				public testSearchFromFromBottom(): void;
			}
			export module VerticalFocusSearchTest {
				export class FocusSearchAlg implements android.widget.focus.VerticalFocusSearchTest.IFocusSearchAlg {
					constructor(implementation: android.widget.focus.VerticalFocusSearchTest.IFocusSearchAlg);
					public findNextFocus(root: android.view.ViewGroup, focused: android.view.View, direction: number): android.view.View;
				}
				export class NewFocusSearchAlg extends java.lang.Object implements android.widget.focus.VerticalFocusSearchTest.IFocusSearchAlg {
					static class: java.lang.Class<android.widget.focus.VerticalFocusSearchTest.NewFocusSearchAlg>;
					public findNextFocus(root: android.view.ViewGroup, focused: android.view.View, direction: number): android.view.View;
				}
				interface IFocusSearchAlg {
					findNextFocus(root: android.view.ViewGroup, focused: android.view.View, direction: number): android.view.View;
				}
			}
			/**
			 * Exercises cases where elements of the UI are removed (and focus should go somewhere).
			 */
			export class FocusAfterRemoval extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.FocusAfterRemoval>;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			/**
			 * android.view.FocusFinder#findNextFocus(android.view.ViewGroup, android.view.View, int) and android.view.View#requestFocus(int, android.graphics.Rect) work together to give a newly focused item a hint about the most interesting rectangle of the previously focused view. The view taking focus can use this to set an internal selection more appropriate using this rect.
			 */
			export class AdjacentVerticalRectLists extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.AdjacentVerticalRectLists>;
				public getLayout(): android.widget.LinearLayout;
				public getLeftColumn(): android.util.InternalSelectionView;
				public getMiddleColumn(): android.util.InternalSelectionView;
				public getRightColumn(): android.util.InternalSelectionView;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			/**
			 * An activity that helps test the scenario where a parent is GONE and one of its children has focus; the activity should get the key event. see bug 945150.
			 */
			export class GoneParentFocusedChild extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.GoneParentFocusedChild>;
				public isUnhandledKeyEvent(): boolean;
				public getLayout(): android.widget.LinearLayout;
				public getGoneGroup(): android.widget.LinearLayout;
				public getButton(): android.widget.Button;
				protected onCreate(icicle: android.os.Bundle): void;
				public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			}
			export class DescendantFocusabilityTest extends android.test.ActivityInstrumentationTestCase<android.widget.focus.DescendantFocusability> {
				constructor();
				static class: java.lang.Class<android.widget.focus.DescendantFocusabilityTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testBeforeDescendants(): void;
				public testAfterDescendants(): void;
				public testBlocksDescendants(): void;
				public testChildOfDescendantBlockerRequestFocusFails(): void;
				public testBeforeDescendantsEnterTouchMode(): void;
				public testAfterDescendantsEnterTouchMode(): void;
			}
			/**
			 * android.view.FocusFinder#findNextFocus(android.view.ViewGroup, android.view.View, int) and android.view.View#requestFocus(int, android.graphics.Rect) work together to give a newly focused item a hint about the most interesting rectangle of the previously focused view. The view taking focus can use this to set an internal selection more appropriate using this rect.
			 */
			export class FocusChangeWithInterestingRectHintTest extends android.test.ActivityInstrumentationTestCase<android.widget.focus.AdjacentVerticalRectLists> {
				constructor();
				static class: java.lang.Class<android.widget.focus.FocusChangeWithInterestingRectHintTest>;
				public setUp(): void;
				public testPreconditions(): void;
				public testSnakeBackAndForth(): void;
			}
			/**
			 * A list of InternalSelectionViews paramatarized by the number of items, how many rows in each item, and how tall each item is.
			 */
			export class ListOfInternalSelectionViews extends android.app.Activity {
				constructor();
				static BUNDLE_PARAM_NUM_ITEMS: string;
				static BUNDLE_PARAM_NUM_ROWS_PER_ITEM: string;
				static BUNDLE_PARAM_ITEM_SCREEN_HEIGHT_FACTOR: string;
				static class: java.lang.Class<android.widget.focus.ListOfInternalSelectionViews>;
				public getListView(): android.widget.ListView;
				/**
				 * Each item is screen height * this factor tall.
				 */
				public getItemScreenSizeFactor(): any;
				public getNumRowsPerItem(): number;
				public getNumItems(): number;
				/**
				 * @param position The position
				 */
				public getLabelForPosition(position: number): string;
				/**
				 * Get the currently selected view.
				 */
				public getSelectedView(): android.util.InternalSelectionView;
				/**
				 * Get the screen height.
				 */
				public getScreenHeight(): number;
				/**
				 * Initialize a bundle suitable for sending as the params of the intent that launches this activity.
				 * @param numItems The number of items in the list.
				 * @param numRowsPerItem The number of rows per item.
				 * @param itemScreenHeightFactor see {@link #getScreenHeight()}
				 */
				public static getBundleFor(numItems: number, numRowsPerItem: number, itemScreenHeightFactor: number): android.os.Bundle;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export module ListOfInternalSelectionViews {
				export class MyAdapter extends android.widget.BaseAdapter {
					static class: java.lang.Class<android.widget.focus.ListOfInternalSelectionViews.MyAdapter>;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				}
			}
			export class HorizontalFocusSearch extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.HorizontalFocusSearch>;
				public getLayout(): android.widget.LinearLayout;
				public getLeftTall(): android.widget.Button;
				public getMidShort1Top(): android.widget.Button;
				public getMidShort2Bottom(): android.widget.Button;
				public getRightTall(): android.widget.Button;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export module HorizontalFocusSearch {
				export class MyButton extends android.widget.Button {
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.widget.focus.HorizontalFocusSearch.MyButton>;
					public toString(): string;
				}
			}
			/**
			 * Holds a few buttons of various sizes and horizontal placements in a vertical layout to excercise some core focus searching.
			 */
			export class VerticalFocusSearch extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.VerticalFocusSearch>;
				public getLayout(): android.widget.LinearLayout;
				public getTopWide(): android.widget.Button;
				public getMidSkinny1Left(): android.widget.Button;
				public getMidSkinny2Right(): android.widget.Button;
				public getBottomWide(): android.widget.Button;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export module VerticalFocusSearch {
				export class MyButton extends android.widget.Button {
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.widget.focus.VerticalFocusSearch.MyButton>;
					public toString(): string;
				}
			}
			export class ListWithFooterViewAndNewLabelsTest extends android.test.ActivityInstrumentationTestCase<android.widget.focus.ListWithFooterViewAndNewLabels> {
				constructor();
				static class: java.lang.Class<android.widget.focus.ListWithFooterViewAndNewLabelsTest>;
				protected setUp(): void;
				public FAILING_testPreconditions(): void;
			}
			export class ListWithMailMessages extends android.app.ListActivity {
				constructor();
				static class: java.lang.Class<android.widget.focus.ListWithMailMessages>;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export module ListWithMailMessages {
				/**
				 * POJO mail message.
				 */
				export class MailMessage extends java.lang.Object {
					constructor(subject: string, body: string);
					constructor(subject: string, body: string, focusable: boolean);
					static class: java.lang.Class<android.widget.focus.ListWithMailMessages.MailMessage>;
					public getSubject(): string;
					public setSubject(subject: string): void;
					public getBody(): string;
					public setBody(body: string): void;
					public isFocusable(): boolean;
					public setFocusable(focusable: boolean): void;
				}
				export class MyAdapter extends android.widget.ArrayAdapter<android.widget.focus.ListWithMailMessages.MailMessage> {
					constructor(context: android.content.Context, resource: number, objects: java.util.IList<android.widget.focus.ListWithMailMessages.MailMessage>);
					static class: java.lang.Class<android.widget.focus.ListWithMailMessages.MyAdapter>;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				}
			}
			/**
			 * TODO: extract base test case that launches ListOfInternalSelectionViews with bundle params.
			 */
			export class ScrollingThroughListOfFocusablesTest extends android.test.InstrumentationTestCase {
				constructor();
				static class: java.lang.Class<android.widget.focus.ScrollingThroughListOfFocusablesTest>;
				protected setUp(): void;
				protected tearDown(): void;
				public testPreconditions(): void;
				public testScrollingDownInFirstItem(): void;
				public testScrollingToSecondItem(): void;
				public testNoFadingEdgeAtBottomOfLastItem(): void;
				public testNavigatingUpThroughInternalSelection(): void;
			}
			/**
			 * Tests focus searching between buttons within a grid that are touching, for example, two buttons next two each other would have the left button's right equal to the right button's left. Same goes for top and bottom edges.
			 */
			export class LinearLayoutGridTest extends android.test.SingleLaunchActivityTestCase<android.widget.focus.LinearLayoutGrid> {
				constructor();
				static class: java.lang.Class<android.widget.focus.LinearLayoutGridTest>;
				protected setUp(): void;
				public testGoDownFromMiddle(): void;
				public testGoUpFromMiddle(): void;
				public testGoRightFromMiddle(): void;
				public testGoLeftFromMiddle(): void;
			}
			/**
			 * A layout with a ListView containing buttons.
			 */
			export class ListOfButtons extends android.app.ListActivity {
				constructor();
				static class: java.lang.Class<android.widget.focus.ListOfButtons>;
				protected onCreate(icicle: android.os.Bundle): void;
				public getLabels(): native.Array<string>;
			}
			export module ListOfButtons {
				export class MyAdapter extends android.widget.ArrayAdapter<string> {
					constructor(context: android.content.Context, labels: native.Array<string>);
					static class: java.lang.Class<android.widget.focus.ListOfButtons.MyAdapter>;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
					public areAllItemsEnabled(): boolean;
				}
			}
			/**
			 * Tests that focus searching works on a horizontal linear layout of buttons of various widths and vertical placements.
			 */
			export class HorizontalFocusSearchTest extends android.test.ActivityInstrumentationTestCase<android.widget.focus.HorizontalFocusSearch> {
				constructor();
				static class: java.lang.Class<android.widget.focus.HorizontalFocusSearchTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testSearchFromLeftButton(): void;
				public TODO_testSearchFromMiddleLeftButton(): void;
				public TODO_testSearchFromMiddleRightButton(): void;
				public testSearchFromRightButton(): void;
			}
			/**
			 * Exercises cases where elements of the UI are requestFocus()ed.
			 */
			export class RequestFocus extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.focus.RequestFocus>;
				protected onCreate(icicle: android.os.Bundle): void;
				public getHandler(): android.os.Handler;
			}
		}
		/**
		 * This is a provider for a share action. It is responsible for creating views that enable data sharing and also to show a sub menu with sharing activities if the hosting item is placed on the overflow menu.
		 */
		export class ShareActionProvider extends android.view.ActionProvider {
			/**
			 * Creates a new instance.
			 * @param context Context for accessing resources.
			 */
			constructor(context: android.content.Context);
			/**
			 * The default name for storing share history.
			 */
			static DEFAULT_SHARE_HISTORY_FILE_NAME: string;
			static class: java.lang.Class<android.widget.ShareActionProvider>;
			/**
			 * Sets a listener to be notified when a share target has been selected. The listener can optionally decide to handle the selection and not rely on the default behavior which is to launch the activity.
			 * @param listener The listener.
			 */
			public setOnShareTargetSelectedListener(listener: android.widget.ShareActionProvider.IOnShareTargetSelectedListener): void;
			/**
			 * 
			 */
			public onCreateActionView(): android.view.View;
			/**
			 * 
			 */
			public hasSubMenu(): boolean;
			/**
			 * 
			 */
			public onPrepareSubMenu(subMenu: android.view.ISubMenu): void;
			/**
			 * Sets the file name of a file for persisting the share history which history will be used for ordering share targets. This file will be used for all view created by #onCreateActionView(). Defaults to #DEFAULT_SHARE_HISTORY_FILE_NAME. Set to <code>null</code> if share history should not be persisted between sessions.
			 * @param shareHistoryFile The share history file name.
			 */
			public setShareHistoryFileName(shareHistoryFile: string): void;
			/**
			 * Sets an intent with information about the share action. Here is a sample for constructing a share intent:
			 * @param shareIntent The share intent.
			 */
			public setShareIntent(shareIntent: android.content.Intent): void;
			/**
			 * Factory method called by the Android framework to create new action views. This method returns a new action view for the given MenuItem.
			 * @param forItem MenuItem to create the action view for
			 */
			onCreateActionView(forItem: android.view.IMenuItem): android.view.View;
		}
		export module ShareActionProvider {
			/**
			 * Reusable listener for handling share item clicks.
			 */
			export class ShareMenuItemOnMenuItemClickListener extends java.lang.Object implements android.view.MenuItem.IOnMenuItemClickListener {
				static class: java.lang.Class<android.widget.ShareActionProvider.ShareMenuItemOnMenuItemClickListener>;
				public onMenuItemClick(item: android.view.IMenuItem): boolean;
			}
			/**
			 * Listener for the event of selecting a share target.
			 */
			interface IOnShareTargetSelectedListener {
				/**
				 * Called when a share target has been selected. The client can decide whether to perform some action before the sharing is actually performed.
				 * @param source The source of the notification.
				 * @param intent The intent for launching the chosen share target.
				 */
				onShareTargetSelected(source: android.widget.ShareActionProvider, intent: android.content.Intent): boolean;
			}
			/**
			 * Listener for the event of selecting a share target.
			 */
			export class OnShareTargetSelectedListener implements android.widget.ShareActionProvider.IOnShareTargetSelectedListener {
				constructor(implementation: android.widget.ShareActionProvider.IOnShareTargetSelectedListener);
				/**
				 * Called when a share target has been selected. The client can decide whether to perform some action before the sharing is actually performed.
				 * @param source The source of the notification.
				 * @param intent The intent for launching the chosen share target.
				 */
				public onShareTargetSelected(source: android.widget.ShareActionProvider, intent: android.content.Intent): boolean;
			}
			/**
			 * Policy that delegates to the OnShareTargetSelectedListener, if such.
			 */
			export class ShareAcitivityChooserModelPolicy extends java.lang.Object {
				static class: java.lang.Class<android.widget.ShareActionProvider.ShareAcitivityChooserModelPolicy>;
			}
		}
		/**
		 * Base class for a AdapterView that will perform animations when switching between its views.
		 */
		export class AdapterViewAnimator extends android.widget.AdapterView<android.widget.IAdapter> implements android.widget.IAdvanceable {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
			static class: java.lang.Class<android.widget.AdapterViewAnimator>;
			/**
			 * This method is used by subclasses to configure the animator to display the desired number of views, and specify the offset
			 * @param numVisibleViews The number of views the animator keeps in the {@link ViewGroup}
			 * @param activeOffset This parameter specifies where the current index ({@link #mWhichChild})
			 */
			configureViewAnimator(numVisibleViews: number, activeOffset: number): void;
			/**
			 * This class should be overridden by subclasses to customize view transitions within the set of visible views
			 * @param fromIndex The relative index within the window that the view was in, -1 if it wasn't
			 * @param toIndex The relative index within the window that the view is going to, -1 if it is
			 * @param view The view that is being animated
			 * @param animate 
			 */
			transformViewForTransition(fromIndex: number, toIndex: number, view: android.view.View, animate: boolean): void;
			getDefaultInAnimation(): android.animation.ObjectAnimator;
			getDefaultOutAnimation(): android.animation.ObjectAnimator;
			/**
			 * Sets which child view will be displayed.
			 * @param whichChild the index of the child view to display
			 */
			public setDisplayedChild(whichChild: number): void;
			/**
			 * To be overridden by subclasses. This method applies a view / index specific transform to the child view.
			 * @param child 
			 * @param relativeIndex 
			 */
			applyTransformForChildAtIndex(child: android.view.View, relativeIndex: number): void;
			/**
			 * Returns the index of the currently displayed child view.
			 */
			public getDisplayedChild(): number;
			/**
			 * Manually shows the next child.
			 */
			public showNext(): void;
			/**
			 * Manually shows the previous child.
			 */
			public showPrevious(): void;
			modulo(pos: number, size: number): number;
			/**
			 * Get the view at this index relative to the current window's start
			 * @param relativeIndex Position relative to the current window's start
			 */
			getViewAtRelativeIndex(relativeIndex: number): android.view.View;
			getNumActiveViews(): number;
			getWindowSize(): number;
			createOrReuseLayoutParams(v: android.view.View): android.view.ViewGroup.LayoutParams;
			refreshChildren(): void;
			/**
			 * This method can be overridden so that subclasses can provide a custom frame in which their children can live. For example, StackView adds padding to its childrens' frames so as to accomodate for the highlight effect.
			 */
			getFrameForChild(): android.widget.FrameLayout;
			/**
			 * Shows only the specified child. The other displays Views exit the screen, optionally with the with the #getOutAnimation() out animation and the specified child enters the screen, optionally with the #getInAnimation() in animation.
			 * @param childIndex The index of the child to be shown.
			 * @param animate Whether or not to use the in and out animations, defaults
			 */
			showOnly(childIndex: number, animate: boolean): void;
			showTapFeedback(v: android.view.View): void;
			hideTapFeedback(v: android.view.View): void;
			cancelHandleClick(): void;
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			checkForAndHandleDataChanged(): void;
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			public onSaveInstanceState(): android.os.IParcelable;
			public onRestoreInstanceState(state: android.os.IParcelable): void;
			/**
			 * Returns the View corresponding to the currently displayed child.
			 */
			public getCurrentView(): android.view.View;
			/**
			 * Returns the current animation used to animate a View that enters the screen.
			 */
			public getInAnimation(): android.animation.ObjectAnimator;
			/**
			 * Specifies the animation used to animate a View that enters the screen.
			 * @param inAnimation The animation started when a View enters the screen.
			 */
			public setInAnimation(inAnimation: android.animation.ObjectAnimator): void;
			/**
			 * Returns the current animation used to animate a View that exits the screen.
			 */
			public getOutAnimation(): android.animation.ObjectAnimator;
			/**
			 * Specifies the animation used to animate a View that exit the screen.
			 * @param outAnimation The animation started when a View exit the screen.
			 */
			public setOutAnimation(outAnimation: android.animation.ObjectAnimator): void;
			/**
			 * Specifies the animation used to animate a View that enters the screen.
			 * @param context The application's environment.
			 * @param resourceID The resource id of the animation.
			 */
			public setInAnimation(context: android.content.Context, resourceID: number): void;
			/**
			 * Specifies the animation used to animate a View that exit the screen.
			 * @param context The application's environment.
			 * @param resourceID The resource id of the animation.
			 */
			public setOutAnimation(context: android.content.Context, resourceID: number): void;
			/**
			 * Indicates whether the current View should be animated the first time the ViewAnimation is displayed.
			 * @param animate True to animate the current View the first time it is displayed,
			 */
			public setAnimateFirstView(animate: boolean): void;
			public getBaseline(): number;
			public getAdapter(): android.widget.IAdapter;
			public setAdapter(adapter: android.widget.IAdapter): void;
			/**
			 * Sets up this AdapterViewAnimator to use a remote views adapter which connects to a RemoteViewsService through the specified intent.
			 * @param intent the intent used to identify the RemoteViewsService for the adapter to
			 */
			public setRemoteViewsAdapter(intent: android.content.Intent): void;
			public setSelection(position: number): void;
			public getSelectedView(): android.view.View;
			/**
			 * This defers a notifyDataSetChanged on the pending RemoteViewsAdapter if it has not connected yet.
			 */
			public deferNotifyDataSetChanged(): void;
			/**
			 * Called back when the adapter connects to the RemoteViewsService.
			 */
			public onRemoteAdapterConnected(): boolean;
			/**
			 * Called back when the adapter disconnects from the RemoteViewsService.
			 */
			public onRemoteAdapterDisconnected(): void;
			/**
			 * Called by an android.appwidget.AppWidgetHost in order to advance the current view when it is being used within an app widget.
			 */
			public advance(): void;
			/**
			 * Called by an android.appwidget.AppWidgetHost to indicate that it will be automatically advancing the views of this AdapterViewAnimator by calling AdapterViewAnimator#advance() at some point in the future. This allows subclasses to perform any required setup, for example, to stop automatically advancing their children.
			 */
			public fyiWillBeAdvancedByHostKThx(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module AdapterViewAnimator {
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.AdapterViewAnimator.SavedState>;
				static class: java.lang.Class<android.widget.AdapterViewAnimator.SavedState>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public toString(): string;
			}
			export class ViewAndMetaData extends java.lang.Object {
				static class: java.lang.Class<android.widget.AdapterViewAnimator.ViewAndMetaData>;
			}
			export class CheckForTap extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AdapterViewAnimator.CheckForTap>;
				public run(): void;
			}
		}
		/**
		 * Adapter that exposes data from a android.database.Cursor Cursor to a android.widget.ListView ListView widget. The Cursor must include a column named "_id" or this class will not work.
		 */
		export class CursorAdapter extends android.widget.BaseAdapter implements android.widget.IFilterable, android.widget.CursorFilter.ICursorFilterClient {
			/**
			 * Constructor that always enables auto-requery.
			 * @param context c The cursor from which to get the data.
			 * @param c ontext The context
			 */
			constructor(context: android.content.Context, c: android.database.ICursor);
			/**
			 * Constructor that allows control over auto-requery. It is recommended you not use this, but instead #CursorAdapter(Context, Cursor, int). When using this constructor, #FLAG_REGISTER_CONTENT_OBSERVER will always be set.
			 * @param context c The cursor from which to get the data.
			 * @param c ontext The context
			 * @param autoRequery If true the adapter will call requery() on the
			 */
			constructor(context: android.content.Context, c: android.database.ICursor, autoRequery: boolean);
			/**
			 * Recommended constructor.
			 * @param context c The cursor from which to get the data.
			 * @param c ontext The context
			 * @param flags Flags used to determine the behavior of the adapter; may
			 */
			constructor(context: android.content.Context, c: android.database.ICursor, flags: number);
			/**
			 * If set the adapter will call requery() on the cursor whenever a content change notification is delivered. Implies #FLAG_REGISTER_CONTENT_OBSERVER.
			 */
			static FLAG_AUTO_REQUERY: number;
			/**
			 * If set the adapter will register a content observer on the cursor and will call #onContentChanged() when a notification comes in. Be careful when using this flag: you will need to unset the current Cursor from the adapter to avoid leaks due to its registered observers. This flag is not needed when using a CursorAdapter with a android.content.CursorLoader.
			 */
			static FLAG_REGISTER_CONTENT_OBSERVER: number;
			static class: java.lang.Class<android.widget.CursorAdapter>;
			ChangeObserver: {
	new (): android.widget.CursorAdapter.ChangeObserver;
};
			/**
			 *  Don't use this, use the normal constructor. This will be removed in the future.
			 */
			public init(context: android.content.Context, c: android.database.ICursor, autoRequery: boolean): void;
			public init(context: android.content.Context, c: android.database.ICursor, flags: number): void;
			/**
			 * Returns the cursor.
			 */
			public getCursor(): android.database.ICursor;
			/**
			 *  android.widget.ListAdapter#getCount()
			 */
			public getCount(): number;
			/**
			 *  android.widget.ListAdapter#getItem(int)
			 */
			public getItem(position: number): any;
			/**
			 *  android.widget.ListAdapter#getItemId(int)
			 */
			public getItemId(position: number): any;
			public hasStableIds(): boolean;
			/**
			 *  android.widget.ListAdapter#getView(int, View, ViewGroup)
			 */
			public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Makes a new view to hold the data pointed to by cursor.
			 * @param context Interface to application's global information
			 * @param cursor The cursor from which to get the data. The cursor is already
			 * @param parent The parent to which the new view is attached to
			 */
			public newView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Makes a new drop down view to hold the data pointed to by cursor.
			 * @param context Interface to application's global information
			 * @param cursor The cursor from which to get the data. The cursor is already
			 * @param parent The parent to which the new view is attached to
			 */
			public newDropDownView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Bind an existing view to the data pointed to by cursor
			 * @param view Existing view, returned earlier by newView
			 * @param context Interface to application's global information
			 * @param cursor The cursor from which to get the data. The cursor is already
			 */
			public bindView(view: android.view.View, context: android.content.Context, cursor: android.database.ICursor): void;
			/**
			 * Change the underlying cursor to a new cursor. If there is an existing cursor it will be closed. 
			 * @param cursor The new cursor to be used
			 */
			public changeCursor(cursor: android.database.ICursor): void;
			/**
			 * Swap in a new Cursor, returning the old Cursor. Unlike #changeCursor(Cursor), the returned old Cursor is <em>not</em> closed.
			 * @param newCursor The new cursor to be used.
			 */
			public swapCursor(newCursor: android.database.ICursor): android.database.ICursor;
			/**
			 * @param cursor the cursor to convert to a CharSequence
			 */
			public convertToString(cursor: android.database.ICursor): string;
			/**
			 * Runs a query with the specified constraint. This query is requested by the filter attached to this adapter.
			 * @param constraint the constraint with which the query must be filtered
			 */
			public runQueryOnBackgroundThread(constraint: string): android.database.ICursor;
			public getFilter(): android.widget.Filter;
			/**
			 * Returns the query filter provider used for filtering. When the provider is null, no filtering occurs.
			 */
			public getFilterQueryProvider(): android.widget.IFilterQueryProvider;
			/**
			 * Sets the query filter provider used to filter the current Cursor. The provider's android.widget.FilterQueryProvider#runQuery(CharSequence) method is invoked when filtering is requested by a client of this adapter.
			 * @param filterQueryProvider the filter query provider or null to remove it
			 */
			public setFilterQueryProvider(filterQueryProvider: android.widget.IFilterQueryProvider): void;
			/**
			 * Called when the ContentObserver on the cursor receives a change notification. The default implementation provides the auto-requery logic, but may be overridden by sub classes. ContentObserver#onChange(boolean)
			 */
			protected onContentChanged(): void;
		}
		export module CursorAdapter {
			export class ChangeObserver extends android.database.ContentObserver {
				static class: java.lang.Class<android.widget.CursorAdapter.ChangeObserver>;
				public deliverSelfNotifications(): boolean;
				public onChange(selfChange: boolean): void;
				/**
				 * This method is called when a content change occurs. Includes the changed content Uri when available.
				 * @param selfChange True if this is a self-change notification.
				 * @param uri The Uri of the changed content, or null if unknown.
				 */
				onChange(selfChange: boolean, uri: android.net.Uri): void;
			}
			export class MyDataSetObserver extends android.database.DataSetObserver {
				static class: java.lang.Class<android.widget.CursorAdapter.MyDataSetObserver>;
				public onChanged(): void;
				public onInvalidated(): void;
			}
		}
		/**
		 * Represents a push-button widget. Push-buttons can be pressed, or clicked, by the user to perform an action.
		 */
		export class Button extends android.widget.TextView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.Button>;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export class ListViewTest extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.widget.ListViewTest>;
			MockView: {
	new (context: android.content.Context): android.widget.ListViewTest.MockView;
};
			/**
			 * If a view in a ListView requests a layout it should be remeasured.
			 */
			public testRequestLayout(): void;
			/**
			 * The list view should handle the disappearance of the only selected item, even when that item was selected before its disappearance.
			 */
			public testNoSelectableItems(): void;
		}
		export module ListViewTest {
			export class MockView extends android.view.View {
				onMeasureCalled: boolean;
				static class: java.lang.Class<android.widget.ListViewTest.MockView>;
				protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			}
			export class Adapter<T> extends android.widget.ArrayAdapter<T> {
				static class: java.lang.Class<android.widget.ListViewTest.Adapter<any>>;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			}
			export class MockContext2 extends android.test.mock.MockContext {
				static class: java.lang.Class<android.widget.ListViewTest.MockContext2>;
				public getResources(): android.content.res.Resources;
				public getTheme(): android.content.res.Resources.Theme;
				public getSystemService(name: string): any;
			}
		}
		/**
		 * Interface that should be implemented on Adapters to enable fast scrolling in an AbsListView between sections of the list. A section is a group of list items to jump to that have something in common. For example, they may begin with the same letter or they may be songs from the same artist.
		 */
		interface ISectionIndexer {
			/**
			 * This provides the list view with an array of section objects. In the simplest case these are Strings, each containing one letter of the alphabet. They could be more complex objects that indicate the grouping for the adapter's consumption. The list view will call toString() on the objects to get the preview letter to display while scrolling.
			 */
			getSections(): native.Array<any>;
			/**
			 * Provides the starting index in the list for a given section.
			 * @param section the index of the section to jump to.
			 */
			getPositionForSection(section: number): number;
			/**
			 * This is a reverse mapping to fetch the section index for a given position in the list.
			 * @param position the position for which to return the section
			 */
			getSectionForPosition(position: number): number;
		}
		/**
		 * Common base class of common implementation for an Adapter that can be used in both ListView (by implementing the specialized ListAdapter interface} and Spinner (by implementing the specialized SpinnerAdapter interface.
		 */
		export class BaseAdapter extends java.lang.Object implements android.widget.IListAdapter, android.widget.ISpinnerAdapter {
			constructor();
			static class: java.lang.Class<android.widget.BaseAdapter>;
			public hasStableIds(): boolean;
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Notifies the attached observers that the underlying data has been changed and any View reflecting the data set should refresh itself.
			 */
			public notifyDataSetChanged(): void;
			/**
			 * Notifies the attached observers that the underlying data is no longer valid or available. Once invoked this adapter is no longer valid and should not report further data set changes.
			 */
			public notifyDataSetInvalidated(): void;
			public areAllItemsEnabled(): boolean;
			public isEnabled(position: number): boolean;
			public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			public getItemViewType(position: number): number;
			public getViewTypeCount(): number;
			public isEmpty(): boolean;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
		}
		/**
		 * An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a android.view.View for each item in the data set. android.widget.ArrayAdapter android.widget.CursorAdapter android.widget.SimpleCursorAdapter
		 */
		interface IAdapter {
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			getItemViewType(position: number): number;
			getViewTypeCount(): number;
			isEmpty(): boolean;
		}
		export module IAdapter {
			/**
			 * An item view type that causes the AdapterView to ignore the item view. For example, this can be used if the client does not want a particular view to be given for conversion in #getView(int, View, ViewGroup). #getItemViewType(int) #getViewTypeCount()
			 */
			var IGNORE_ITEM_VIEW_TYPE: number;
			var NO_SELECTION: number;
		}
		/**
		 * EditText is a thin veneer over TextView that configures itself to be editable.
		 */
		export class EditText extends android.widget.TextView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.EditText>;
			protected getDefaultEditable(): boolean;
			protected getDefaultMovementMethod(): android.text.method.IMovementMethod;
			public getText(): any;
			public setText(text: string, type: android.widget.TextView.BufferType): void;
			/**
			 * Convenience for Selection#setSelection(Spannable, int, int).
			 */
			public setSelection(start: number, stop: number): void;
			/**
			 * Convenience for Selection#setSelection(Spannable, int).
			 */
			public setSelection(index: number): void;
			/**
			 * Convenience for Selection#selectAll.
			 */
			public selectAll(): void;
			/**
			 * Convenience for Selection#extendSelection.
			 */
			public extendSelection(index: number): void;
			public setEllipsize(ellipsis: android.text.TextUtils.TruncateAt): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Sets the string value of the TextView. TextView <em>does not</em> accept HTML-like formatting, which you can do with text strings in XML resource files. To style your strings, attach android.text.style.* objects to a android.text.SpannableString SpannableString, or see the <a href="guide/topics/resources/available-resources.html#stringresources"> Available Resource Types</a> documentation for an example of setting formatted text in the XML resource file.
			 */
			setText(text: string): void;
			/**
			 * Sets the TextView to display the specified slice of the specified char array. You must promise that you will not change the contents of the array except for right before another call to setText(), since the TextView has no way to know that the text has changed and that it needs to invalidate and re-layout.
			 */
			setText(text: native.Array<string>, start: number, len: number): void;
			setText(resid: number): void;
			setText(resid: number, type: android.widget.TextView.BufferType): void;
		}
		/**
		 * Space is a lightweight View subclass that may be used to create gaps between components in general purpose layouts.
		 */
		export class Space extends android.view.View {
			/**
			 * 
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * 
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * 
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.widget.Space>;
			/**
			 * Draw nothing.
			 * @param canvas an unused parameter.
			 */
			public draw(canvas: android.graphics.Canvas): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
		}
		/**
		 * Container for a tabbed window view. This object holds two children: a set of tab labels that the user clicks to select a specific tab, and a FrameLayout object that displays the contents of that page. The individual elements are typically controlled using this container object, rather than setting values on the child elements themselves.
		 */
		export class TabHost extends android.widget.FrameLayout implements android.view.ViewTreeObserver.IOnTouchModeChangeListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.TabHost>;
			FactoryContentStrategy: {
	new (tag: string, factory: android.widget.TabHost.ITabContentFactory): android.widget.TabHost.FactoryContentStrategy;
};
			/**
			 * Get a new TabSpec associated with this tab host.
			 * @param tag required tag of tab.
			 */
			public newTabSpec(tag: string): android.widget.TabHost.TabSpec;
			public setup(): void;
			public sendAccessibilityEvent(eventType: number): void;
			/**
			 * If you are using TabSpec#setContent(android.content.Intent), this must be called since the activityGroup is needed to launch the local activity.
			 * @param activityGroup Used to launch activities for tab content.
			 */
			public setup(activityGroup: android.app.LocalActivityManager): void;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			/**
			 * 
			 */
			public onTouchModeChanged(isInTouchMode: boolean): void;
			/**
			 * Add a tab.
			 * @param tabSpec Specifies how to create the indicator and content.
			 */
			public addTab(tabSpec: android.widget.TabHost.TabSpec): void;
			/**
			 * Removes all tabs from the tab widget associated with this tab host.
			 */
			public clearAllTabs(): void;
			public getTabWidget(): android.widget.TabWidget;
			public getCurrentTab(): number;
			public getCurrentTabTag(): string;
			public getCurrentTabView(): android.view.View;
			public getCurrentView(): android.view.View;
			public setCurrentTabByTag(tag: string): void;
			/**
			 * Get the FrameLayout which holds tab content
			 */
			public getTabContentView(): android.widget.FrameLayout;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			public dispatchWindowFocusChanged(hasFocus: boolean): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public setCurrentTab(index: number): void;
			/**
			 * Register a callback to be invoked when the selected state of any of the items in this list changes
			 * @param l 
			 */
			public setOnTabChangedListener(l: android.widget.TabHost.IOnTabChangeListener): void;
		}
		export module TabHost {
			/**
			 * Specifies what you do to create a tab indicator.
			 */
			export class IndicatorStrategy implements android.widget.TabHost.IIndicatorStrategy {
				constructor(implementation: android.widget.TabHost.IIndicatorStrategy);
				/**
				 * Return the view for the indicator.
				 */
				public createIndicatorView(): android.view.View;
			}
			/**
			 * How tab content is managed using TabContentFactory.
			 */
			export class FactoryContentStrategy extends java.lang.Object implements android.widget.TabHost.IContentStrategy {
				static class: java.lang.Class<android.widget.TabHost.FactoryContentStrategy>;
				public getContentView(): android.view.View;
				public tabClosed(): void;
			}
			/**
			 * How to create the tab content via a view id.
			 */
			export class ViewIdContentStrategy extends java.lang.Object implements android.widget.TabHost.IContentStrategy {
				static class: java.lang.Class<android.widget.TabHost.ViewIdContentStrategy>;
				public getContentView(): android.view.View;
				public tabClosed(): void;
			}
			/**
			 * Makes the content of a tab when it is selected. Use this if your tab content needs to be created on demand, i.e. you are not showing an existing view or starting an activity.
			 */
			interface ITabContentFactory {
				/**
				 * Callback to make the tab contents
				 * @param tag 
				 */
				createTabContent(tag: string): android.view.View;
			}
			/**
			 * Specifies what you do to create a tab indicator.
			 */
			interface IIndicatorStrategy {
				/**
				 * Return the view for the indicator.
				 */
				createIndicatorView(): android.view.View;
			}
			/**
			 * How tab content is managed via an Intent: the content view is the decorview of the launched activity.
			 */
			export class IntentContentStrategy extends java.lang.Object implements android.widget.TabHost.IContentStrategy {
				static class: java.lang.Class<android.widget.TabHost.IntentContentStrategy>;
				public getContentView(): android.view.View;
				public tabClosed(): void;
			}
			/**
			 * How to create a tab indicator that just has a label.
			 */
			export class LabelIndicatorStrategy extends java.lang.Object implements android.widget.TabHost.IIndicatorStrategy {
				static class: java.lang.Class<android.widget.TabHost.LabelIndicatorStrategy>;
				public createIndicatorView(): android.view.View;
			}
			/**
			 * How we create a tab indicator that has a label and an icon
			 */
			export class LabelAndIconIndicatorStrategy extends java.lang.Object implements android.widget.TabHost.IIndicatorStrategy {
				static class: java.lang.Class<android.widget.TabHost.LabelAndIconIndicatorStrategy>;
				public createIndicatorView(): android.view.View;
			}
			/**
			 * A tab has a tab indicator, content, and a tag that is used to keep track of it. This builder helps choose among these options.
			 */
			export class TabSpec extends java.lang.Object {
				static class: java.lang.Class<android.widget.TabHost.TabSpec>;
				/**
				 * Specify a label as the tab indicator.
				 */
				public setIndicator(label: string): android.widget.TabHost.TabSpec;
				/**
				 * Specify a label and icon as the tab indicator.
				 */
				public setIndicator(label: string, icon: android.graphics.drawable.Drawable): android.widget.TabHost.TabSpec;
				/**
				 * Specify a view as the tab indicator.
				 */
				public setIndicator(view: android.view.View): android.widget.TabHost.TabSpec;
				/**
				 * Specify the id of the view that should be used as the content of the tab.
				 */
				public setContent(viewId: number): android.widget.TabHost.TabSpec;
				/**
				 * Specify a android.widget.TabHost.TabContentFactory to use to create the content of the tab.
				 */
				public setContent(contentFactory: android.widget.TabHost.ITabContentFactory): android.widget.TabHost.TabSpec;
				/**
				 * Specify an intent to use to launch an activity as the tab content.
				 */
				public setContent(intent: android.content.Intent): android.widget.TabHost.TabSpec;
				public getTag(): string;
			}
			/**
			 * Specifies what you do to manage the tab content.
			 */
			interface IContentStrategy {
				/**
				 * Return the content view. The view should may be cached locally.
				 */
				getContentView(): android.view.View;
				/**
				 * Perhaps do something when the tab associated with this content has been closed (i.e make it invisible, or remove it).
				 */
				tabClosed(): void;
			}
			/**
			 * How to create a tab indicator by specifying a view.
			 */
			export class ViewIndicatorStrategy extends java.lang.Object implements android.widget.TabHost.IIndicatorStrategy {
				static class: java.lang.Class<android.widget.TabHost.ViewIndicatorStrategy>;
				public createIndicatorView(): android.view.View;
			}
			/**
			 * Specifies what you do to manage the tab content.
			 */
			export class ContentStrategy implements android.widget.TabHost.IContentStrategy {
				constructor(implementation: android.widget.TabHost.IContentStrategy);
				/**
				 * Return the content view. The view should may be cached locally.
				 */
				public getContentView(): android.view.View;
				/**
				 * Perhaps do something when the tab associated with this content has been closed (i.e make it invisible, or remove it).
				 */
				public tabClosed(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when tab changed
			 */
			export class OnTabChangeListener implements android.widget.TabHost.IOnTabChangeListener {
				constructor(implementation: android.widget.TabHost.IOnTabChangeListener);
				public onTabChanged(tabId: string): void;
			}
			/**
			 * Interface definition for a callback to be invoked when tab changed
			 */
			interface IOnTabChangeListener {
				onTabChanged(tabId: string): void;
			}
			/**
			 * Makes the content of a tab when it is selected. Use this if your tab content needs to be created on demand, i.e. you are not showing an existing view or starting an activity.
			 */
			export class TabContentFactory implements android.widget.TabHost.ITabContentFactory {
				constructor(implementation: android.widget.TabHost.ITabContentFactory);
				/**
				 * Callback to make the tab contents
				 * @param tag 
				 */
				public createTabContent(tag: string): android.view.View;
			}
		}
		/**
		 * An extension to TextView that supports the android.widget.Checkable interface. This is useful when used in a android.widget.ListView ListView where the it's android.widget.ListView#setChoiceMode(int) setChoiceMode has been set to something other than android.widget.ListView#CHOICE_MODE_NONE CHOICE_MODE_NONE.
		 */
		export class CheckedTextView extends android.widget.TextView implements android.widget.ICheckable {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.CheckedTextView>;
			public toggle(): void;
			public isChecked(): boolean;
			/**
			 * @param checked true to check the text, false to uncheck it
			 */
			public setChecked(checked: boolean): void;
			/**
			 * Set the checkmark to a given Drawable, identified by its resourece id. This will be drawn when #isChecked() is true.
			 * @param resid The Drawable to use for the checkmark.
			 */
			public setCheckMarkDrawable(resid: number): void;
			/**
			 * Set the checkmark to a given Drawable. This will be drawn when #isChecked() is true.
			 * @param d The Drawable to use for the checkmark.
			 */
			public setCheckMarkDrawable(d: android.graphics.drawable.Drawable): void;
			/**
			 * Gets the checkmark drawable
			 */
			public getCheckMarkDrawable(): android.graphics.drawable.Drawable;
			public onRtlPropertiesChanged(layoutDirection: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			protected drawableStateChanged(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module scroll {
			/**
			 * Two buttons sandwiching a tall text view (good for testing panning across before getting to next button).
			 */
			export class ButtonsWithTallTextViewInBetween extends android.util.ScrollViewScenario {
				constructor();
				static class: java.lang.Class<android.widget.scroll.ButtonsWithTallTextViewInBetween>;
				public getTopButton(): android.widget.Button;
				public getMiddleFiller(): android.widget.TextView;
				public getBottomButton(): android.widget.Button;
				protected init(params: android.util.ScrollViewScenario.Params): void;
			}
			/**
			 * A button above a tall internal selection view, wrapped in a scroll view.
			 */
			export class ButtonAboveTallInternalSelectionView extends android.util.ScrollViewScenario {
				constructor();
				static class: java.lang.Class<android.widget.scroll.ButtonAboveTallInternalSelectionView>;
				public getButtonAbove(): android.widget.Button;
				public getIsv(): android.util.InternalSelectionView;
				protected init(params: android.util.ScrollViewScenario.Params): void;
			}
			/**
			 * A series of short buttons, some of which are embedded within another layout.
			 */
			export class ShortButtons extends android.util.ScrollViewScenario {
				constructor();
				static class: java.lang.Class<android.widget.scroll.ShortButtons>;
				public getNumButtons(): number;
				public getButtonAt(index: number): android.widget.Button;
				protected init(params: android.util.ScrollViewScenario.Params): void;
			}
			/**
			 * This is suppressed because TextView#scrollBy isn't working.
			 */
			export class RequestRectangleVisibleWithInternalScrollTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.RequestRectangleVisibleWithInternalScroll> {
				constructor();
				static class: java.lang.Class<android.widget.scroll.RequestRectangleVisibleWithInternalScrollTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testMoveToChildWithScrollYBelow(): void;
			}
			export module arrowscroll {
				export class ShortButtonsTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.ShortButtons> {
					constructor();
					static class: java.lang.Class<android.widget.scroll.arrowscroll.ShortButtonsTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testScrollDownToBottomThroughButtons(): void;
					public testScrollFromBottomToTopThroughButtons(): void;
					protected isButtonOnScreen(b: android.widget.Button): boolean;
				}
				export class ButtonsWithTallTextViewInBetweenTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.ButtonsWithTallTextViewInBetween> {
					constructor();
					static class: java.lang.Class<android.widget.scroll.arrowscroll.ButtonsWithTallTextViewInBetweenTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testPanTopButtonOffScreenLosesFocus(): void;
					public testScrollDownToBottomButton(): void;
					public testPanBottomButtonOffScreenLosesFocus(): void;
				}
				/**
				 * One TextView with a text covering several pages. Padding is added above and below the ScrollView.
				 */
				export class MultiPageTextWithPadding extends android.util.ScrollViewScenario {
					constructor();
					static class: java.lang.Class<android.widget.scroll.arrowscroll.MultiPageTextWithPadding>;
					protected init(params: android.util.ScrollViewScenario.Params): void;
				}
				export class MultiPageTextWithPaddingTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.arrowscroll.MultiPageTextWithPadding> {
					constructor();
					static class: java.lang.Class<android.widget.scroll.arrowscroll.MultiPageTextWithPaddingTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testScrollDownToBottom(): void;
				}
				export class TallTextAboveButtonTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.TallTextAboveButton> {
					constructor();
					static class: java.lang.Class<android.widget.scroll.arrowscroll.TallTextAboveButtonTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testGainFocusAsScrolledOntoScreen(): void;
					public testScrollingButtonOffScreenLosesFocus(): void;
				}
			}
			/**
			 * An (unfocusable) text view that takes up more than the height of the screen followed by a button.
			 */
			export class TallTextAboveButton extends android.util.ScrollViewScenario {
				constructor();
				static class: java.lang.Class<android.widget.scroll.TallTextAboveButton>;
				protected init(params: android.util.ScrollViewScenario.Params): void;
			}
			/**
			 * Basic scroll view example
			 */
			export class ScrollViewButtonsAndLabels extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.scroll.ScrollViewButtonsAndLabels>;
				public getScrollView(): android.widget.ScrollView;
				public getLinearLayout(): android.widget.LinearLayout;
				public getNumButtons(): number;
				public getButton(groupNum: number): android.widget.Button;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export class ButtonAboveTallInternalSelectionViewTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.ButtonAboveTallInternalSelectionView> {
				constructor();
				static class: java.lang.Class<android.widget.scroll.ButtonAboveTallInternalSelectionViewTest>;
				public testPreconditions(): void;
				public testMovingFocusDownToItemTallerThanScreenStillOnScreen(): void;
			}
			/**
			 * A screen with some scenarios that exercise ScrollView's implementation of android.view.ViewGroup#requestChildRectangleOnScreen: <li>Scrolling to something off screen (from top and from bottom) <li>Scrolling to bring something that is larger than the screen on screen (from top and from bottom).
			 */
			export class RequestRectangleVisible extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.scroll.RequestRectangleVisible>;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			export class ScrollViewButtonsAndLabelsTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.ScrollViewButtonsAndLabels> {
				constructor();
				static class: java.lang.Class<android.widget.scroll.ScrollViewButtonsAndLabelsTest>;
				public setUp(): void;
				public testPreconditions(): void;
				public testArrowScrollDownOffScreenVerticalFadingEdge(): void;
				public testArrowScrollDownToBottomElementOnScreen(): void;
				public testArrowScrollUpOffScreenVerticalFadingEdge(): void;
				public testArrowScrollUpToTopElementOnScreen(): void;
			}
			export class RequestRectangleVisibleWithInternalScroll extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.scroll.RequestRectangleVisibleWithInternalScroll>;
				public getScrollYofBlob(): number;
				public getTextBlob(): android.widget.TextView;
				public getScrollToBlob(): android.widget.Button;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			/**
			 * RequestRectangleVisible is set up to exercise the cases of moving a rectangle that is either off screen or not entirely on the screen onto the screen.
			 */
			export class RequestRectangleVisibleTest extends android.test.ActivityInstrumentationTestCase<android.widget.scroll.RequestRectangleVisible> {
				constructor();
				static class: java.lang.Class<android.widget.scroll.RequestRectangleVisibleTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testScrollToOffScreenRectangleFromTop(): void;
				public testScrollToPartiallyOffScreenRectFromTop(): void;
				public testScrollToOffScreenRectangleFromBottom(): void;
				public testScrollToPartiallyOffScreenRectFromBottom(): void;
				/**
				 * Assert that view overlaps the bottom edge of the screen
				 * @param origin The root view of the screen.
				 * @param view The view
				 */
				public static assertOnBottomEdgeOfScreen(origin: android.view.View, view: android.view.View): void;
				/**
				 * Assert that view overlaps the bottom edge of the screen
				 * @param origin The root view of the screen.
				 * @param view The view
				 */
				public static assertOnTopEdgeOfScreen(origin: android.view.View, view: android.view.View): void;
			}
		}
		/**
		 * Base class that can be used to implement virtualized lists of items. A list does not have a spatial definition here. For instance, subclases of this class can display the content of the list in a grid, in a carousel, as stack, etc.
		 */
		export class AbsListView extends android.widget.AdapterView<android.widget.IListAdapter> implements android.text.ITextWatcher, android.view.ViewTreeObserver.IOnGlobalLayoutListener, android.widget.Filter.IFilterListener, android.view.ViewTreeObserver.IOnTouchModeChangeListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * Disables the transcript mode.
			 */
			static TRANSCRIPT_MODE_DISABLED: number;
			/**
			 * The list will automatically scroll to the bottom when a data set change notification is received and only if the last item is already visible on screen.
			 */
			static TRANSCRIPT_MODE_NORMAL: number;
			/**
			 * The list will automatically scroll to the bottom, no matter what items are currently visible.
			 */
			static TRANSCRIPT_MODE_ALWAYS_SCROLL: number;
			/**
			 * Normal list that does not indicate choices
			 */
			static CHOICE_MODE_NONE: number;
			/**
			 * The list allows up to one choice
			 */
			static CHOICE_MODE_SINGLE: number;
			/**
			 * The list allows multiple choices
			 */
			static CHOICE_MODE_MULTIPLE: number;
			/**
			 * The list allows multiple choices in a modal selection mode
			 */
			static CHOICE_MODE_MULTIPLE_MODAL: number;
			static class: java.lang.Class<android.widget.AbsListView>;
			public setOverScrollMode(mode: number): void;
			/**
			 * 
			 */
			public setAdapter(adapter: android.widget.IListAdapter): void;
			/**
			 * Returns the number of items currently selected. This will only be valid if the choice mode is not #CHOICE_MODE_NONE (default).
			 */
			public getCheckedItemCount(): number;
			/**
			 * Returns the checked state of the specified position. The result is only valid if the choice mode has been set to #CHOICE_MODE_SINGLE or #CHOICE_MODE_MULTIPLE.
			 * @param position The item whose checked state to return
			 */
			public isItemChecked(position: number): boolean;
			/**
			 * Returns the currently checked item. The result is only valid if the choice mode has been set to #CHOICE_MODE_SINGLE.
			 */
			public getCheckedItemPosition(): number;
			/**
			 * Returns the set of checked items in the list. The result is only valid if the choice mode has not been set to #CHOICE_MODE_NONE.
			 */
			public getCheckedItemPositions(): android.util.SparseBooleanArray;
			/**
			 * Returns the set of checked items ids. The result is only valid if the choice mode has not been set to #CHOICE_MODE_NONE and the adapter has stable IDs. (ListAdapter#hasStableIds() == true)
			 */
			public getCheckedItemIds(): native.Array<number>;
			/**
			 * Clear any choices previously set
			 */
			public clearChoices(): void;
			/**
			 * Sets the checked state of the specified position. The is only valid if the choice mode has been set to #CHOICE_MODE_SINGLE or #CHOICE_MODE_MULTIPLE.
			 * @param position The item whose checked state is to be checked
			 * @param value The new checked state for the item
			 */
			public setItemChecked(position: number, value: boolean): void;
			public performItemClick(view: android.view.View, position: number, id: number): boolean;
			/**
			 *  #setChoiceMode(int)
			 */
			public getChoiceMode(): number;
			/**
			 * Defines the choice behavior for the List. By default, Lists do not have any choice behavior (#CHOICE_MODE_NONE). By setting the choiceMode to #CHOICE_MODE_SINGLE, the List allows up to one item to be in a chosen state. By setting the choiceMode to #CHOICE_MODE_MULTIPLE, the list allows any number of items to be chosen.
			 * @param choiceMode One of {@link #CHOICE_MODE_NONE}, {@link #CHOICE_MODE_SINGLE}, or
			 */
			public setChoiceMode(choiceMode: number): void;
			/**
			 * Set a MultiChoiceModeListener that will manage the lifecycle of the selection ActionMode. Only used when the choice mode is set to #CHOICE_MODE_MULTIPLE_MODAL.
			 * @param listener Listener that will manage the selection mode
			 */
			public setMultiChoiceModeListener(listener: android.widget.AbsListView.IMultiChoiceModeListener): void;
			/**
			 * Enables fast scrolling by letting the user quickly scroll through lists by dragging the fast scroll thumb. The adapter attached to the list may want to implement SectionIndexer if it wishes to display alphabet preview and jump between sections of the list. SectionIndexer #isFastScrollEnabled()
			 * @param enabled whether or not to enable fast scrolling
			 */
			public setFastScrollEnabled(enabled: boolean): void;
			/**
			 * Set whether or not the fast scroller should always be shown in place of the standard scrollbars. Fast scrollers shown in this way will not fade out and will be a permanent fixture within the list. Best combined with an inset scroll bar style that will ensure enough padding. This will enable fast scrolling if it is not already enabled.
			 * @param alwaysShow true if the fast scroller should always be displayed.
			 */
			public setFastScrollAlwaysVisible(alwaysShow: boolean): void;
			/**
			 * Returns true if the fast scroller is set to always show on this view rather than fade out when not in use.
			 */
			public isFastScrollAlwaysVisible(): boolean;
			public getVerticalScrollbarWidth(): number;
			/**
			 * Returns the current state of the fast scroll feature. #setFastScrollEnabled(boolean)
			 */
			public isFastScrollEnabled(): boolean;
			public setVerticalScrollbarPosition(position: number): void;
			/**
			 * When smooth scrollbar is enabled, the position and size of the scrollbar thumb is computed based on the number of visible pixels in the visible items. This however assumes that all list items have the same height. If you use a list in which items have different heights, the scrollbar will change appearance as the user scrolls through the list. To avoid this issue, you need to disable this property.
			 * @param enabled Whether or not to enable smooth scrollbar.
			 */
			public setSmoothScrollbarEnabled(enabled: boolean): void;
			/**
			 * Returns the current state of the fast scroll feature.
			 */
			public isSmoothScrollbarEnabled(): boolean;
			/**
			 * Set the listener that will receive notifications every time the list scrolls.
			 * @param l the scroll listener
			 */
			public setOnScrollListener(l: android.widget.AbsListView.IOnScrollListener): void;
			/**
			 * Notify our scroll listener (if there is one) of a change in scroll state
			 */
			invokeOnItemScrollListener(): void;
			public sendAccessibilityEvent(eventType: number): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			/**
			 * Indicates whether the children's drawing cache is used during a scroll. By default, the drawing cache is enabled but this will consume more memory.
			 */
			public isScrollingCacheEnabled(): boolean;
			/**
			 * Enables or disables the children's drawing cache during a scroll. By default, the drawing cache is enabled but this will use more memory.
			 * @param enabled true to enable the scroll cache, false otherwise
			 */
			public setScrollingCacheEnabled(enabled: boolean): void;
			/**
			 * Enables or disables the type filter window. If enabled, typing when this view has focus will filter the children to match the users input. Note that the Adapter used by this view must implement the Filterable interface.
			 * @param textFilterEnabled true to enable type filtering, false otherwise
			 */
			public setTextFilterEnabled(textFilterEnabled: boolean): void;
			/**
			 * Indicates whether type filtering is enabled for this view
			 */
			public isTextFilterEnabled(): boolean;
			public getFocusedRect(r: android.graphics.Rect): void;
			/**
			 * Indicates whether the content of this view is pinned to, or stacked from, the bottom edge.
			 */
			public isStackFromBottom(): boolean;
			/**
			 * When stack from bottom is set to true, the list fills its content starting from the bottom of the view.
			 * @param stackFromBottom true to pin the view's content to the bottom edge,
			 */
			public setStackFromBottom(stackFromBottom: boolean): void;
			requestLayoutIfNecessary(): void;
			public onSaveInstanceState(): android.os.IParcelable;
			public onRestoreInstanceState(state: android.os.IParcelable): void;
			/**
			 * Sets the initial value for the text filter.
			 * @param filterText The text to use for the filter.
			 */
			public setFilterText(filterText: string): void;
			/**
			 * Returns the list's text filter, if available.
			 */
			public getTextFilter(): string;
			protected onFocusChanged(gainFocus: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			public requestLayout(): void;
			/**
			 * The list is empty. Clear everything out.
			 */
			resetList(): void;
			protected computeVerticalScrollExtent(): number;
			protected computeVerticalScrollOffset(): number;
			protected computeVerticalScrollRange(): number;
			protected getTopFadingEdgeStrength(): number;
			protected getBottomFadingEdgeStrength(): number;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * Subclasses should NOT override this method but #layoutChildren() instead.
			 */
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			/**
			 * Subclasses must override this method to layout their children.
			 */
			protected layoutChildren(): void;
			updateScrollIndicators(): void;
			public getSelectedView(): android.view.View;
			/**
			 * List padding is the maximum of the normal view's padding and the padding of the selector.
			 */
			public getListPaddingTop(): number;
			/**
			 * List padding is the maximum of the normal view's padding and the padding of the selector.
			 */
			public getListPaddingBottom(): number;
			/**
			 * List padding is the maximum of the normal view's padding and the padding of the selector.
			 */
			public getListPaddingLeft(): number;
			/**
			 * List padding is the maximum of the normal view's padding and the padding of the selector.
			 */
			public getListPaddingRight(): number;
			/**
			 * Get a view and have it show the data associated with the specified position. This is called when we have already discovered that the view is not available for reuse in the recycle bin. The only choices left are converting an old view or making a new one.
			 * @param position The position to display
			 * @param isScrap Array of at least 1 boolean, the first entry will become true if
			 */
			obtainView(position: number, isScrap: native.Array<boolean>): android.view.View;
			positionSelector(position: number, sel: android.view.View): void;
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			protected isPaddingOffsetRequired(): boolean;
			protected getLeftPaddingOffset(): number;
			protected getTopPaddingOffset(): number;
			protected getRightPaddingOffset(): number;
			protected getBottomPaddingOffset(): number;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			touchModeDrawsInPressedState(): boolean;
			/**
			 * Indicates whether this view is in a state where the selector should be drawn. This will happen if we have focus but are not in touch mode, or we are in the middle of displaying the pressed state for an item.
			 */
			shouldShowSelector(): boolean;
			/**
			 * Controls whether the selection highlight drawable should be drawn on top of the item or behind it.
			 * @param onTop If true, the selector will be drawn on the item it is highlighting. The default
			 */
			public setDrawSelectorOnTop(onTop: boolean): void;
			/**
			 * Set a Drawable that should be used to highlight the currently selected item.
			 * @param resID A Drawable resource to use as the selection highlight.
			 */
			public setSelector(resID: number): void;
			public setSelector(sel: android.graphics.drawable.Drawable): void;
			/**
			 * Returns the selector android.graphics.drawable.Drawable that is used to draw the selection in the list.
			 */
			public getSelector(): android.graphics.drawable.Drawable;
			/**
			 * Sets the selector state to "pressed" and posts a CheckForKeyLongPress to see if this is a long press.
			 */
			keyPressed(): void;
			public setScrollIndicators(up: android.view.View, down: android.view.View): void;
			updateSelectorState(): void;
			protected drawableStateChanged(): void;
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			public verifyDrawable(dr: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			public onWindowFocusChanged(hasWindowFocus: boolean): void;
			/**
			 * Creates the ContextMenuInfo returned from #getContextMenuInfo(). This methods knows the view, position and ID of the item that received the long press.
			 * @param view The view that received the long press.
			 * @param position The position of the item that received the long press.
			 * @param id The ID of the item that received the long press.
			 */
			createContextMenuInfo(view: android.view.View, position: number, id: number): android.view.ContextMenu.IContextMenuInfo;
			performLongPress(child: android.view.View, longPressPosition: number, longPressId: number): boolean;
			protected getContextMenuInfo(): android.view.ContextMenu.IContextMenuInfo;
			public showContextMenuForChild(originalView: android.view.View): boolean;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			protected dispatchSetPressed(pressed: boolean): void;
			/**
			 * Maps a point to a position in the list.
			 * @param x X in local coordinate
			 * @param y Y in local coordinate
			 */
			public pointToPosition(x: number, y: number): number;
			/**
			 * Maps a point to a the rowId of the item which intersects that point.
			 * @param x X in local coordinate
			 * @param y Y in local coordinate
			 */
			public pointToRowId(x: number, y: number): any;
			public onTouchModeChanged(isInTouchMode: boolean): void;
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
			protected onOverScrolled(scrollX: number, scrollY: number, clampedX: boolean, clampedY: boolean): void;
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			public draw(canvas: android.graphics.Canvas): void;
			public requestDisallowInterceptTouchEvent(disallowIntercept: boolean): void;
			public onInterceptTouchEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			public addTouchables(views: java.util.ArrayList<android.view.View>): void;
			/**
			 * Fires an "on scroll state changed" event to the registered android.widget.AbsListView.OnScrollListener, if any. The state change is fired only if the specified state is different from the previously known state.
			 * @param newState The new scroll state.
			 */
			reportScrollStateChange(newState: number): void;
			/**
			 * The amount of friction applied to flings. The default value is ViewConfiguration#getScrollFriction.
			 */
			public setFriction(friction: number): void;
			/**
			 * Sets a scale factor for the fling velocity. The initial scale factor is 1.0.
			 * @param scale The scale factor to multiply the velocity by.
			 */
			public setVelocityScale(scale: number): void;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed.
			 * @param position Scroll to this adapter position.
			 */
			public smoothScrollToPosition(position: number): void;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed <code>offset</code> pixels from the top edge of the view. If this is impossible, (e.g. the offset would scroll the first or last item beyond the boundaries of the list) it will get as close as possible. The scroll will take <code>duration</code> milliseconds to complete.
			 * @param position Position to scroll to
			 * @param offset Desired distance in pixels of <code>position</code> from the top
			 * @param duration Number of milliseconds to use for the scroll
			 */
			public smoothScrollToPositionFromTop(position: number, offset: number, duration: number): void;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed <code>offset</code> pixels from the top edge of the view. If this is impossible, (e.g. the offset would scroll the first or last item beyond the boundaries of the list) it will get as close as possible.
			 * @param position Position to scroll to
			 * @param offset Desired distance in pixels of <code>position</code> from the top
			 */
			public smoothScrollToPositionFromTop(position: number, offset: number): void;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed, but it will stop early if scrolling further would scroll boundPosition out of view.
			 * @param position Scroll to this adapter position.
			 * @param boundPosition Do not scroll if it would move this adapter
			 */
			public smoothScrollToPosition(position: number, boundPosition: number): void;
			/**
			 * Smoothly scroll by distance pixels over duration milliseconds.
			 * @param distance Distance to scroll in pixels.
			 * @param duration Duration of the scroll animation in milliseconds.
			 */
			public smoothScrollBy(distance: number, duration: number): void;
			smoothScrollBy(distance: number, duration: number, linear: boolean): void;
			/**
			 * Allows RemoteViews to scroll relatively to a position.
			 */
			smoothScrollByOffset(position: number): void;
			/**
			 * Track a motion scroll
			 * @param deltaY Amount to offset mMotionView. This is the accumulated delta since the motion
			 * @param incrementalDeltaY Change in deltaY from the previous event.
			 */
			trackMotionScroll(deltaY: number, incrementalDeltaY: number): boolean;
			/**
			 * Returns the number of header views in the list. Header views are special views at the top of the list that should not be recycled during a layout.
			 */
			getHeaderViewsCount(): number;
			/**
			 * Returns the number of footer views in the list. Footer views are special views at the bottom of the list that should not be recycled during a layout.
			 */
			getFooterViewsCount(): number;
			/**
			 * Fills the gap left open by a touch-scroll. During a touch scroll, children that remain on screen are shifted and the other ones are discarded. The role of this method is to fill the gap thus created by performing a partial layout in the empty space.
			 * @param down true if the scroll is going down, false if it is going up
			 */
			fillGap(down: boolean): void;
			hideSelector(): void;
			reconcileSelectedPosition(): number;
			/**
			 * Find the row closest to y. This row will be used as the motion row when scrolling
			 * @param y Where the user touched
			 */
			findMotionRow(y: number): number;
			/**
			 * Find the row closest to y. This row will be used as the motion row when scrolling.
			 * @param y Where the user touched
			 */
			findClosestMotionRow(y: number): number;
			/**
			 * Causes all the views to be rebuilt and redrawn.
			 */
			public invalidateViews(): void;
			/**
			 * If there is a selection returns false. Otherwise resurrects the selection and returns true if resurrected.
			 */
			resurrectSelectionIfNeeded(): boolean;
			/**
			 * Makes the item at the supplied position selected.
			 * @param position the position of the new selection
			 */
			setSelectionInt(position: number): void;
			/**
			 * Attempt to bring the selection back if the user is switching from touch to trackball mode
			 */
			resurrectSelection(): boolean;
			confirmCheckedPositionsById(): void;
			public handleDataChanged(): void;
			protected onDisplayHint(hint: number): void;
			/**
			 * What is the distance between the source and destination rectangles given the direction of focus navigation between them? The direction basically helps figure out more quickly what is self evident by the relationship between the rects...
			 * @param source the source rectangle
			 * @param dest the destination rectangle
			 * @param direction the direction
			 */
			static getDistance(source: android.graphics.Rect, dest: android.graphics.Rect, direction: number): number;
			public isInFilterMode(): boolean;
			/**
			 * Sends a key to the text filter window
			 * @param keyCode The keycode for the event
			 * @param count event The actual key event
			 * @param event 
			 */
			sendToTextFilter(keyCode: number, count: number, event: android.view.KeyEvent): boolean;
			/**
			 * Return an InputConnection for editing of the filter text.
			 */
			public onCreateInputConnection(outAttrs: android.view.inputmethod.EditorInfo): android.view.inputmethod.IInputConnection;
			/**
			 * For filtering we proxy an input connection to an internal text editor, and this allows the proxying to happen.
			 */
			public checkInputConnectionProxy(view: android.view.View): boolean;
			/**
			 * Clear the text filter.
			 */
			public clearTextFilter(): void;
			/**
			 * Returns if the ListView currently has a text filter.
			 */
			public hasTextFilter(): boolean;
			public onGlobalLayout(): void;
			/**
			 * For our text watcher that is associated with the text filter. Does nothing.
			 */
			public beforeTextChanged(s: string, start: number, count: number, after: number): void;
			/**
			 * For our text watcher that is associated with the text filter. Performs the actual filtering as the text changes, and takes care of hiding and showing the popup displaying the currently entered filter text.
			 */
			public onTextChanged(s: string, start: number, before: number, count: number): void;
			/**
			 * For our text watcher that is associated with the text filter. Does nothing.
			 */
			public afterTextChanged(s: any): void;
			public onFilterComplete(count: number): void;
			protected generateDefaultLayoutParams(): android.view.ViewGroup.LayoutParams;
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.view.ViewGroup.LayoutParams;
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.AbsListView.LayoutParams;
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			/**
			 * Puts the list or grid into transcript mode. In this mode the list or grid will always scroll to the bottom to show new items.
			 * @param mode the transcript mode to set
			 */
			public setTranscriptMode(mode: number): void;
			/**
			 * Returns the current transcript mode.
			 */
			public getTranscriptMode(): number;
			public getSolidColor(): number;
			/**
			 * When set to a non-zero value, the cache color hint indicates that this list is always drawn on top of a solid, single-color, opaque background.
			 * @param color The background color
			 */
			public setCacheColorHint(color: number): void;
			/**
			 * When set to a non-zero value, the cache color hint indicates that this list is always drawn on top of a solid, single-color, opaque background
			 */
			public getCacheColorHint(): number;
			/**
			 * Move all views (excluding headers and footers) held by this AbsListView into the supplied List. This includes views displayed on the screen as well as views stored in AbsListView's internal view recycler.
			 * @param views A list into which to put the reclaimed views
			 */
			public reclaimViews(views: java.util.IList<android.view.View>): void;
			/**
			 * Sets up this AbsListView to use a remote views adapter which connects to a RemoteViewsService through the specified intent.
			 * @param intent the intent used to identify the RemoteViewsService for the adapter to connect to.
			 */
			public setRemoteViewsAdapter(intent: android.content.Intent): void;
			/**
			 * This defers a notifyDataSetChanged on the pending RemoteViewsAdapter if it has not connected yet.
			 */
			public deferNotifyDataSetChanged(): void;
			/**
			 * Called back when the adapter connects to the RemoteViewsService.
			 */
			public onRemoteAdapterConnected(): boolean;
			/**
			 * Called back when the adapter disconnects from the RemoteViewsService.
			 */
			public onRemoteAdapterDisconnected(): void;
			/**
			 * Hints the RemoteViewsAdapter, if it exists, about which views are currently being displayed by the AbsListView.
			 */
			setVisibleRangeHint(start: number, end: number): void;
			/**
			 * Sets the recycler listener to be notified whenever a View is set aside in the recycler for later reuse. This listener can be used to free resources associated to the View.
			 * @param listener The recycler listener to be notified of views set aside
			 */
			public setRecyclerListener(listener: android.widget.AbsListView.IRecyclerListener): void;
			static retrieveFromScrap(scrapViews: java.util.ArrayList<android.view.View>, position: number): android.view.View;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
		}
		export module AbsListView {
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.AbsListView.SavedState>;
				static class: java.lang.Class<android.widget.AbsListView.SavedState>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public toString(): string;
			}
			export class CheckForKeyLongPress extends android.widget.AbsListView.WindowRunnnable implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AbsListView.CheckForKeyLongPress>;
				public run(): void;
			}
			/**
			 * AbsListView extends LayoutParams to provide a place to hold the view type.
			 */
			export class LayoutParams extends android.view.ViewGroup.LayoutParams {
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				constructor(w: number, h: number);
				constructor(w: number, h: number, viewType: number);
				constructor(source: android.view.ViewGroup.LayoutParams);
				static class: java.lang.Class<android.widget.AbsListView.LayoutParams>;
			}
			export class CheckForLongPress extends android.widget.AbsListView.WindowRunnnable implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AbsListView.CheckForLongPress>;
				public run(): void;
			}
			export class PerformClick extends android.widget.AbsListView.WindowRunnnable implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AbsListView.PerformClick>;
				public run(): void;
			}
			export class CheckForTap extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AbsListView.CheckForTap>;
				public run(): void;
			}
			export class PositionScroller extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AbsListView.PositionScroller>;
				start(position: number): void;
				start(position: number, boundPosition: number): void;
				startWithOffset(position: number, offset: number): void;
				startWithOffset(position: number, offset: number, duration: number): void;
				/**
				 * Scroll such that targetPos is in the visible padded region without scrolling boundPos out of view. Assumes targetPos is onscreen.
				 */
				scrollToVisible(targetPos: number, boundPos: number, duration: number): void;
				stop(): void;
				public run(): void;
			}
			/**
			 * A RecyclerListener is used to receive a notification whenever a View is placed inside the RecycleBin's scrap heap. This listener is used to free resources associated to Views placed in the RecycleBin.
			 */
			export class RecyclerListener implements android.widget.AbsListView.IRecyclerListener {
				constructor(implementation: android.widget.AbsListView.IRecyclerListener);
				/**
				 * Indicates that the specified View was moved into the recycler's scrap heap. The view is not displayed on screen any more and any expensive resource associated with the view should be discarded.
				 * @param view 
				 */
				public onMovedToScrapHeap(view: android.view.View): void;
			}
			/**
			 * The RecycleBin facilitates reuse of views across layouts. The RecycleBin has two levels of storage: ActiveViews and ScrapViews. ActiveViews are those views which were onscreen at the start of a layout. By construction, they are displaying current information. At the end of layout, all views in ActiveViews are demoted to ScrapViews. ScrapViews are old views that could potentially be used by the adapter to avoid allocating views unnecessarily.
			 */
			export class RecycleBin extends java.lang.Object {
				static class: java.lang.Class<android.widget.AbsListView.RecycleBin>;
				public setViewTypeCount(viewTypeCount: number): void;
				public markChildrenDirty(): void;
				public shouldRecycleViewType(viewType: number): boolean;
				/**
				 * Clears the scrap heap.
				 */
				clear(): void;
				/**
				 * Fill ActiveViews with all of the children of the AbsListView.
				 * @param childCount The minimum number of views mActiveViews should hold
				 * @param firstActivePosition The position of the first view that will be stored in
				 */
				fillActiveViews(childCount: number, firstActivePosition: number): void;
				/**
				 * Get the view corresponding to the specified position. The view will be removed from mActiveViews if it is found.
				 * @param position The position to look up in mActiveViews
				 */
				getActiveView(position: number): android.view.View;
				getTransientStateView(position: number): android.view.View;
				/**
				 * Dump any currently saved views with transient state.
				 */
				clearTransientStateViews(): void;
				getScrapView(position: number): android.view.View;
				/**
				 * Put a view into the ScrapViews list. These views are unordered.
				 * @param scrap The view to add
				 * @param position 
				 */
				addScrapView(scrap: android.view.View, position: number): void;
				/**
				 * Finish the removal of any views that skipped the scrap heap.
				 */
				removeSkippedScrap(): void;
				/**
				 * Move all views remaining in mActiveViews to mScrapViews.
				 */
				scrapActiveViews(): void;
				/**
				 * Puts all views in the scrap heap into the supplied list.
				 */
				reclaimScrapViews(views: java.util.IList<android.view.View>): void;
				/**
				 * Updates the cache color hint of all known views.
				 * @param color The new cache color hint.
				 */
				setCacheColorHint(color: number): void;
			}
			/**
			 * Responsible for fling behavior. Use #start(int) to initiate a fling. Each frame of the fling is handled in #run(). A FlingRunnable will keep re-posting itself until the fling is done.
			 */
			export class FlingRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AbsListView.FlingRunnable>;
				start(initialVelocity: number): void;
				startSpringback(): void;
				startOverfling(initialVelocity: number): void;
				edgeReached(delta: number): void;
				startScroll(distance: number, duration: number, linear: boolean): void;
				endFling(): void;
				flywheelTouch(): void;
				public run(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the list or grid has been scrolled.
			 */
			interface IOnScrollListener {
				/**
				 * Callback method to be invoked while the list view or grid view is being scrolled. If the view is being scrolled, this method will be called before the next frame of the scroll is rendered. In particular, it will be called before any calls to Adapter#getView(int, View, ViewGroup).
				 * @param view The view whose scroll state is being reported
				 * @param scrollState The current scroll state. One of {@link #SCROLL_STATE_IDLE},
				 */
				onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
				/**
				 * Callback method to be invoked when the list or grid has been scrolled. This will be called after the scroll has completed
				 * @param view The view whose scroll state is being reported
				 * @param firstVisibleItem the index of the first visible cell (ignore if
				 * @param visibleItemCount the number of visible cells
				 * @param totalItemCount the number of items in the list adaptor
				 */
				onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
			}
			export module IOnScrollListener {
				/**
				 * The view is not scrolling. Note navigating the list using the trackball counts as being in the idle state since these transitions are not animated.
				 */
				var SCROLL_STATE_IDLE: number;
				/**
				 * The user is scrolling using touch, and their finger is still on the screen
				 */
				var SCROLL_STATE_TOUCH_SCROLL: number;
				/**
				 * The user had previously been scrolling using touch and had performed a fling. The animation is now coasting to a stop
				 */
				var SCROLL_STATE_FLING: number;
			}
			/**
			 * A base class for Runnables that will check that their view is still attached to the original window as when the Runnable was created.
			 */
			export class WindowRunnnable extends java.lang.Object {
				static class: java.lang.Class<android.widget.AbsListView.WindowRunnnable>;
				public rememberWindowAttachCount(): void;
				public sameWindow(): boolean;
			}
			/**
			 * The top-level view of a list item can implement this interface to allow itself to modify the bounds of the selection shown for that item.
			 */
			export class SelectionBoundsAdjuster implements android.widget.AbsListView.ISelectionBoundsAdjuster {
				constructor(implementation: android.widget.AbsListView.ISelectionBoundsAdjuster);
				/**
				 * Called to allow the list item to adjust the bounds shown for its selection.
				 * @param bounds On call, this contains the bounds the list has
				 */
				public adjustListItemSelectionBounds(bounds: android.graphics.Rect): void;
			}
			/**
			 * The top-level view of a list item can implement this interface to allow itself to modify the bounds of the selection shown for that item.
			 */
			interface ISelectionBoundsAdjuster {
				/**
				 * Called to allow the list item to adjust the bounds shown for its selection.
				 * @param bounds On call, this contains the bounds the list has
				 */
				adjustListItemSelectionBounds(bounds: android.graphics.Rect): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the list or grid has been scrolled.
			 */
			export class OnScrollListener implements android.widget.AbsListView.IOnScrollListener {
				constructor(implementation: android.widget.AbsListView.IOnScrollListener);
				/**
				 * The view is not scrolling. Note navigating the list using the trackball counts as being in the idle state since these transitions are not animated.
				 */
				static SCROLL_STATE_IDLE: number;
				/**
				 * The user is scrolling using touch, and their finger is still on the screen
				 */
				static SCROLL_STATE_TOUCH_SCROLL: number;
				/**
				 * The user had previously been scrolling using touch and had performed a fling. The animation is now coasting to a stop
				 */
				static SCROLL_STATE_FLING: number;
				/**
				 * Callback method to be invoked while the list view or grid view is being scrolled. If the view is being scrolled, this method will be called before the next frame of the scroll is rendered. In particular, it will be called before any calls to Adapter#getView(int, View, ViewGroup).
				 * @param view The view whose scroll state is being reported
				 * @param scrollState The current scroll state. One of {@link #SCROLL_STATE_IDLE},
				 */
				public onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
				/**
				 * Callback method to be invoked when the list or grid has been scrolled. This will be called after the scroll has completed
				 * @param view The view whose scroll state is being reported
				 * @param firstVisibleItem the index of the first visible cell (ignore if
				 * @param visibleItemCount the number of visible cells
				 * @param totalItemCount the number of items in the list adaptor
				 */
				public onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
			}
			/**
			 * A MultiChoiceModeListener receives events for AbsListView#CHOICE_MODE_MULTIPLE_MODAL. It acts as the ActionMode.Callback for the selection mode and also receives #onItemCheckedStateChanged(ActionMode, int, long, boolean) events when the user selects and deselects list items.
			 */
			interface IMultiChoiceModeListener extends android.view.ActionMode.ICallback {
				/**
				 * Called when an item is checked or unchecked during selection mode.
				 * @param mode The {@link ActionMode} providing the selection mode
				 * @param position Adapter position of the item that was checked or unchecked
				 * @param id Adapter ID of the item that was checked or unchecked
				 * @param checked <code>true</code> if the item is now checked, <code>false</code>
				 */
				onItemCheckedStateChanged(mode: android.view.ActionMode, position: number, id: number, checked: boolean): void;
				/**
				 * Called when action mode is first created. The menu supplied will be used to generate action buttons for the action mode.
				 * @param mode ActionMode being created
				 * @param menu Menu used to populate action buttons
				 */
				onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to refresh an action mode's action menu whenever it is invalidated.
				 * @param mode ActionMode being prepared
				 * @param menu Menu used to populate action buttons
				 */
				onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to report a user click on an action button.
				 * @param mode The current ActionMode
				 * @param item The item that was clicked
				 */
				onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
				/**
				 * Called when an action mode is about to be exited and destroyed.
				 * @param mode The current ActionMode being destroyed
				 */
				onDestroyActionMode(mode: android.view.ActionMode): void;
			}
			export class AdapterDataSetObserver extends android.widget.AdapterView.AdapterDataSetObserver {
				static class: java.lang.Class<android.widget.AbsListView.AdapterDataSetObserver>;
				public onChanged(): void;
				public onInvalidated(): void;
			}
			export class ListItemAccessibilityDelegate extends android.view.View.AccessibilityDelegate {
				static class: java.lang.Class<android.widget.AbsListView.ListItemAccessibilityDelegate>;
				public onInitializeAccessibilityNodeInfo(host: android.view.View, info: android.view.accessibility.AccessibilityNodeInfo): void;
				public performAccessibilityAction(host: android.view.View, action: number, args: android.os.Bundle): boolean;
			}
			/**
			 * A RecyclerListener is used to receive a notification whenever a View is placed inside the RecycleBin's scrap heap. This listener is used to free resources associated to Views placed in the RecycleBin.
			 */
			interface IRecyclerListener {
				/**
				 * Indicates that the specified View was moved into the recycler's scrap heap. The view is not displayed on screen any more and any expensive resource associated with the view should be discarded.
				 * @param view 
				 */
				onMovedToScrapHeap(view: android.view.View): void;
			}
			/**
			 * A MultiChoiceModeListener receives events for AbsListView#CHOICE_MODE_MULTIPLE_MODAL. It acts as the ActionMode.Callback for the selection mode and also receives #onItemCheckedStateChanged(ActionMode, int, long, boolean) events when the user selects and deselects list items.
			 */
			export class MultiChoiceModeListener implements android.view.ActionMode.ICallback, android.widget.AbsListView.IMultiChoiceModeListener {
				constructor(implementation: android.widget.AbsListView.IMultiChoiceModeListener);
				/**
				 * Called when an item is checked or unchecked during selection mode.
				 * @param mode The {@link ActionMode} providing the selection mode
				 * @param position Adapter position of the item that was checked or unchecked
				 * @param id Adapter ID of the item that was checked or unchecked
				 * @param checked <code>true</code> if the item is now checked, <code>false</code>
				 */
				public onItemCheckedStateChanged(mode: android.view.ActionMode, position: number, id: number, checked: boolean): void;
				/**
				 * Called when action mode is first created. The menu supplied will be used to generate action buttons for the action mode.
				 * @param mode ActionMode being created
				 * @param menu Menu used to populate action buttons
				 */
				onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to refresh an action mode's action menu whenever it is invalidated.
				 * @param mode ActionMode being prepared
				 * @param menu Menu used to populate action buttons
				 */
				onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to report a user click on an action button.
				 * @param mode The current ActionMode
				 * @param item The item that was clicked
				 */
				onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
				/**
				 * Called when an action mode is about to be exited and destroyed.
				 * @param mode The current ActionMode being destroyed
				 */
				onDestroyActionMode(mode: android.view.ActionMode): void;
			}
			export class MultiChoiceModeWrapper extends java.lang.Object implements android.widget.AbsListView.IMultiChoiceModeListener {
				static class: java.lang.Class<android.widget.AbsListView.MultiChoiceModeWrapper>;
				public setWrapped(wrapped: android.widget.AbsListView.IMultiChoiceModeListener): void;
				public hasWrappedCallback(): boolean;
				public onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				public onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				public onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
				public onDestroyActionMode(mode: android.view.ActionMode): void;
				public onItemCheckedStateChanged(mode: android.view.ActionMode, position: number, id: number, checked: boolean): void;
			}
		}
		/**
		 * An easy adapter to map static data to views defined in an XML file. You can specify the data backing the list as an ArrayList of Maps. Each entry in the ArrayList corresponds to one row in the list. The Maps contain the data for each row. You also specify an XML file that defines the views used to display the row, and a mapping from keys in the Map to specific views.
		 */
		export class SimpleAdapter extends android.widget.BaseAdapter implements android.widget.IFilterable {
			/**
			 * Constructor 
			 * @param context The context where the View associated with this SimpleAdapter is running
			 * @param data A List of Maps. Each entry in the List corresponds to one row in the list. The
			 * @param resource Resource identifier of a view layout that defines the views for this list
			 * @param from A list of column names that will be added to the Map associated with each
			 * @param to The views that should display column in the "from" parameter. These should all be
			 */
			constructor(context: android.content.Context, data: java.util.IList<any>, resource: number, from: native.Array<string>, to: native.Array<number>);
			static class: java.lang.Class<android.widget.SimpleAdapter>;
			/**
			 *  android.widget.Adapter#getCount()
			 */
			public getCount(): number;
			/**
			 *  android.widget.Adapter#getItem(int)
			 */
			public getItem(position: number): any;
			/**
			 *  android.widget.Adapter#getItemId(int)
			 */
			public getItemId(position: number): any;
			/**
			 *  android.widget.Adapter#getView(int, View, ViewGroup)
			 */
			public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * @param resource the layout resource defining the drop down views
			 */
			public setDropDownViewResource(resource: number): void;
			public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Returns the ViewBinder used to bind data to views.
			 */
			public getViewBinder(): android.widget.SimpleAdapter.IViewBinder;
			/**
			 * Sets the binder used to bind data to views.
			 * @param viewBinder the binder used to bind data to views, can be null to
			 */
			public setViewBinder(viewBinder: android.widget.SimpleAdapter.IViewBinder): void;
			/**
			 * Called by bindView() to set the image for an ImageView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to an ImageView.
			 * @param v ImageView to receive an image
			 * @param value the value retrieved from the data set
			 */
			public setViewImage(v: android.widget.ImageView, value: number): void;
			/**
			 * Called by bindView() to set the image for an ImageView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to an ImageView.
			 * @param v ImageView to receive an image
			 * @param value the value retrieved from the data set
			 */
			public setViewImage(v: android.widget.ImageView, value: string): void;
			/**
			 * Called by bindView() to set the text for a TextView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to a TextView.
			 * @param v TextView to receive text
			 * @param text the text to be set for the TextView
			 */
			public setViewText(v: android.widget.TextView, text: string): void;
			public getFilter(): android.widget.Filter;
		}
		export module SimpleAdapter {
			/**
			 * This class can be used by external clients of SimpleAdapter to bind values to views.
			 */
			interface IViewBinder {
				/**
				 * Binds the specified data to the specified view.
				 * @param view the view to bind the data to
				 * @param data the data to bind to the view
				 * @param textRepresentation a safe String representation of the supplied data:
				 */
				setViewValue(view: android.view.View, data: any, textRepresentation: string): boolean;
			}
			export class SimpleFilter extends android.widget.Filter {
				static class: java.lang.Class<android.widget.SimpleAdapter.SimpleFilter>;
				protected performFiltering(prefix: string): android.widget.Filter.FilterResults;
				protected publishResults(constraint: string, results: android.widget.Filter.FilterResults): void;
			}
			/**
			 * This class can be used by external clients of SimpleAdapter to bind values to views.
			 */
			export class ViewBinder implements android.widget.SimpleAdapter.IViewBinder {
				constructor(implementation: android.widget.SimpleAdapter.IViewBinder);
				/**
				 * Binds the specified data to the specified view.
				 * @param view the view to bind the data to
				 * @param data the data to bind to the view
				 * @param textRepresentation a safe String representation of the supplied data:
				 */
				public setViewValue(view: android.view.View, data: any, textRepresentation: string): boolean;
			}
		}
		/**
		 * List adapter that wraps another list adapter. The wrapped adapter can be retrieved by calling #getWrappedAdapter().
		 */
		interface IWrapperListAdapter extends android.widget.IListAdapter {
			/**
			 * Returns the adapter wrapped by this list adapter.
			 */
			getWrappedAdapter(): android.widget.IListAdapter;
			/**
			 * Indicates whether all the items in this adapter are enabled. If the value returned by this method changes over time, there is no guarantee it will take effect. If true, it means all items are selectable and clickable (there is no separator.) 
			 */
			areAllItemsEnabled(): boolean;
			/**
			 * Returns true if the item at the specified position is not a separator. (A separator is a non-selectable, non-clickable item). The result is unspecified if position is invalid. An ArrayIndexOutOfBoundsException should be thrown in that case for fast failure.
			 * @param position Index of the item
			 */
			isEnabled(position: number): boolean;
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			getItemViewType(position: number): number;
			getViewTypeCount(): number;
			isEmpty(): boolean;
		}
		/**
		 * A class that describes a view hierarchy that can be displayed in another process. The hierarchy is inflated from a layout resource file, and this class provides some basic operations for modifying the content of the inflated hierarchy.
		 */
		export class RemoteViews extends java.lang.Object implements android.os.IParcelable, android.view.LayoutInflater.IFilter {
			/**
			 * Create a new RemoteViews object that will display the views contained in the specified layout file.
			 * @param packageName Name of the package that contains the layout resource
			 * @param layoutId The id of the layout resource
			 */
			constructor(packageName: string, layoutId: number);
			/**
			 * Create a new RemoteViews object that will inflate as the specified landspace or portrait RemoteViews, depending on the current configuration.
			 * @param landscape The RemoteViews to inflate in landscape configuration
			 * @param portrait The RemoteViews to inflate in portrait configuration
			 */
			constructor(landscape: android.widget.RemoteViews, portrait: android.widget.RemoteViews);
			/**
			 * Reads a RemoteViews object from a parcel.
			 * @param parcel 
			 */
			constructor(parcel: android.os.Parcel);
			/**
			 * Parcelable.Creator that instantiates RemoteViews objects
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.widget.RemoteViews>;
			static class: java.lang.Class<android.widget.RemoteViews>;
			SetOnClickPendingIntent: {
	new (id: number, pendingIntent: android.app.PendingIntent): android.widget.RemoteViews.SetOnClickPendingIntent;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.SetOnClickPendingIntent;
};
			SetPendingIntentTemplate: {
	new (id: number, pendingIntentTemplate: android.app.PendingIntent): android.widget.RemoteViews.SetPendingIntentTemplate;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.SetPendingIntentTemplate;
};
			TextViewSizeAction: {
	new (viewId: number, units: number, size: number): android.widget.RemoteViews.TextViewSizeAction;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.TextViewSizeAction;
};
			SetRemoteViewsAdapterIntent: {
	new (id: number, intent: android.content.Intent): android.widget.RemoteViews.SetRemoteViewsAdapterIntent;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.SetRemoteViewsAdapterIntent;
};
			ViewGroupAction: {
	new (viewId: number, nestedViews: android.widget.RemoteViews): android.widget.RemoteViews.ViewGroupAction;
	new (parcel: android.os.Parcel, bitmapCache: android.widget.RemoteViews.BitmapCache): android.widget.RemoteViews.ViewGroupAction;
};
			SetOnClickFillInIntent: {
	new (id: number, fillInIntent: android.content.Intent): android.widget.RemoteViews.SetOnClickFillInIntent;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.SetOnClickFillInIntent;
};
			TextViewDrawableAction: {
	new (viewId: number, isRelative: boolean, d1: number, d2: number, d3: number, d4: number): android.widget.RemoteViews.TextViewDrawableAction;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.TextViewDrawableAction;
};
			ViewPaddingAction: {
	new (viewId: number, left: number, top: number, right: number, bottom: number): android.widget.RemoteViews.ViewPaddingAction;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.ViewPaddingAction;
};
			SetDrawableParameters: {
	new (id: number, targetBackground: boolean, alpha: number, colorFilter: number, mode: android.graphics.PorterDuff.Mode, level: number): android.widget.RemoteViews.SetDrawableParameters;
	new (parcel: android.os.Parcel): android.widget.RemoteViews.SetDrawableParameters;
};
			setNotRoot(): void;
			public clone(): android.widget.RemoteViews;
			public getPackage(): string;
			/**
			 * Reutrns the layout id of the root layout associated with this RemoteViews. In the case that the RemoteViews has both a landscape and portrait root, this will return the layout id associated with the portrait layout.
			 */
			public getLayoutId(): number;
			setIsWidgetCollectionChild(isWidgetCollectionChild: boolean): void;
			/**
			 * Equivalent to calling ViewGroup#addView(View) after inflating the given RemoteViews. This allows users to build "nested" RemoteViews. In cases where consumers of RemoteViews may recycle layouts, use #removeAllViews(int) to clear any existing children.
			 * @param viewId The id of the parent {@link ViewGroup} to add child into.
			 * @param nestedView {@link RemoteViews} that describes the child.
			 */
			public addView(viewId: number, nestedView: android.widget.RemoteViews): void;
			/**
			 * Equivalent to calling ViewGroup#removeAllViews().
			 * @param viewId The id of the parent {@link ViewGroup} to remove all
			 */
			public removeAllViews(viewId: number): void;
			/**
			 * Equivalent to calling AdapterViewAnimator#showNext()
			 * @param viewId The id of the view on which to call {@link AdapterViewAnimator#showNext()}
			 */
			public showNext(viewId: number): void;
			/**
			 * Equivalent to calling AdapterViewAnimator#showPrevious()
			 * @param viewId The id of the view on which to call {@link AdapterViewAnimator#showPrevious()}
			 */
			public showPrevious(viewId: number): void;
			/**
			 * Equivalent to calling AdapterViewAnimator#setDisplayedChild(int)
			 * @param viewId The id of the view on which to call
			 * @param childIndex 
			 */
			public setDisplayedChild(viewId: number, childIndex: number): void;
			/**
			 * Equivalent to calling View.setVisibility
			 * @param viewId The id of the view whose visibility should change
			 * @param visibility The new visibility for the view
			 */
			public setViewVisibility(viewId: number, visibility: number): void;
			/**
			 * Equivalent to calling TextView.setText
			 * @param viewId The id of the view whose text should change
			 * @param text The new text for the view
			 */
			public setTextViewText(viewId: number, text: string): void;
			/**
			 * Equivalent to calling TextView#setTextSize(int, float)
			 * @param viewId The id of the view whose text size should change
			 * @param units The units of size (e.g. COMPLEX_UNIT_SP)
			 * @param size The size of the text
			 */
			public setTextViewTextSize(viewId: number, units: number, size: number): void;
			/**
			 * Equivalent to calling TextView#setCompoundDrawablesWithIntrinsicBounds(int, int, int, int).
			 * @param viewId The id of the view whose text should change
			 * @param left The id of a drawable to place to the left of the text, or 0
			 * @param top The id of a drawable to place above the text, or 0
			 * @param right The id of a drawable to place to the right of the text, or 0
			 * @param bottom The id of a drawable to place below the text, or 0
			 */
			public setTextViewCompoundDrawables(viewId: number, left: number, top: number, right: number, bottom: number): void;
			/**
			 * Equivalent to calling TextView#setCompoundDrawablesRelativeWithIntrinsicBounds(int, int, int, int).
			 * @param viewId The id of the view whose text should change
			 * @param start The id of a drawable to place before the text (relative to the
			 * @param top The id of a drawable to place above the text, or 0
			 * @param end The id of a drawable to place after the text, or 0
			 * @param bottom The id of a drawable to place below the text, or 0
			 */
			public setTextViewCompoundDrawablesRelative(viewId: number, start: number, top: number, end: number, bottom: number): void;
			/**
			 * Equivalent to calling ImageView.setImageResource
			 * @param viewId The id of the view whose drawable should change
			 * @param srcId The new resource id for the drawable
			 */
			public setImageViewResource(viewId: number, srcId: number): void;
			/**
			 * Equivalent to calling ImageView.setImageURI
			 * @param viewId The id of the view whose drawable should change
			 * @param uri The Uri for the image
			 */
			public setImageViewUri(viewId: number, uri: android.net.Uri): void;
			/**
			 * Equivalent to calling ImageView.setImageBitmap
			 * @param viewId The id of the view whose bitmap should change
			 * @param bitmap The new Bitmap for the drawable
			 */
			public setImageViewBitmap(viewId: number, bitmap: android.graphics.Bitmap): void;
			/**
			 * Equivalent to calling AdapterView.setEmptyView
			 * @param viewId The id of the view on which to set the empty view
			 * @param emptyViewId The view id of the empty view
			 */
			public setEmptyView(viewId: number, emptyViewId: number): void;
			/**
			 * Equivalent to calling Chronometer#setBase Chronometer.setBase, Chronometer#setFormat Chronometer.setFormat, and Chronometer#start Chronometer.start() or Chronometer#stop Chronometer.stop().
			 * @param viewId The id of the {@link Chronometer} to change
			 * @param base The time at which the timer would have read 0:00. This
			 * @param format The Chronometer format string, or null to
			 * @param started True if you want the clock to be started, false if not.
			 */
			public setChronometer(viewId: number, base: number, format: string, started: boolean): void;
			/**
			 * Equivalent to calling ProgressBar#setMax ProgressBar.setMax, ProgressBar#setProgress ProgressBar.setProgress, and ProgressBar#setIndeterminate ProgressBar.setIndeterminate
			 * @param viewId The id of the {@link ProgressBar} to change
			 * @param max The 100% value for the progress bar
			 * @param progress The current value of the progress bar.
			 * @param indeterminate True if the progress bar is indeterminate,
			 */
			public setProgressBar(viewId: number, max: number, progress: number, indeterminate: boolean): void;
			/**
			 * Equivalent to calling android.view.View#setOnClickListener(android.view.View.OnClickListener) to launch the provided PendingIntent.
			 * @param viewId The id of the view that will trigger the {@link PendingIntent} when clicked
			 * @param pendingIntent The {@link PendingIntent} to send when user clicks
			 */
			public setOnClickPendingIntent(viewId: number, pendingIntent: android.app.PendingIntent): void;
			/**
			 * When using collections (eg. ListView, StackView etc.) in widgets, it is very costly to set PendingIntents on the individual items, and is hence not permitted. Instead this method should be used to set a single PendingIntent template on the collection, and individual items can differentiate their on-click behavior using RemoteViews#setOnClickFillInIntent(int, Intent).
			 * @param viewId The id of the collection who's children will use this PendingIntent template
			 * @param pendingIntentTemplate The {@link PendingIntent} to be combined with extras specified
			 */
			public setPendingIntentTemplate(viewId: number, pendingIntentTemplate: android.app.PendingIntent): void;
			/**
			 * When using collections (eg. ListView, StackView etc.) in widgets, it is very costly to set PendingIntents on the individual items, and is hence not permitted. Instead a single PendingIntent template can be set on the collection, see RemoteViews#setPendingIntentTemplate(int, PendingIntent), and the individual on-click action of a given item can be distinguished by setting a fillInIntent on that item. The fillInIntent is then combined with the PendingIntent template in order to determine the final intent which will be executed when the item is clicked. This works as follows: any fields which are left blank in the PendingIntent template, but are provided by the fillInIntent will be overwritten, and the resulting PendingIntent will be used.
			 * @param viewId The id of the view on which to set the fillInIntent
			 * @param fillInIntent The intent which will be combined with the parent's PendingIntent
			 */
			public setOnClickFillInIntent(viewId: number, fillInIntent: android.content.Intent): void;
			/**
			 * Equivalent to calling android.widget.TextView#setTextColor(int).
			 * @param viewId The id of the view whose text color should change
			 * @param color Sets the text color for all the states (normal, selected,
			 */
			public setTextColor(viewId: number, color: number): void;
			/**
			 * Equivalent to calling android.widget.AbsListView#setRemoteViewsAdapter(Intent).
			 * @param appWidgetId The id of the app widget which contains the specified view. (This
			 * @param viewId The id of the {@link AbsListView}
			 * @param intent The intent of the service which will be
			 */
			public setRemoteAdapter(appWidgetId: number, viewId: number, intent: android.content.Intent): void;
			/**
			 * Equivalent to calling android.widget.AbsListView#setRemoteViewsAdapter(Intent). Can only be used for App Widgets.
			 * @param viewId The id of the {@link AbsListView}
			 * @param intent The intent of the service which will be
			 */
			public setRemoteAdapter(viewId: number, intent: android.content.Intent): void;
			/**
			 * Equivalent to calling android.widget.AbsListView#smoothScrollToPosition(int, int).
			 * @param viewId The id of the view to change
			 * @param position Scroll to this adapter position
			 */
			public setScrollPosition(viewId: number, position: number): void;
			/**
			 * Equivalent to calling android.widget.AbsListView#smoothScrollToPosition(int, int).
			 * @param viewId The id of the view to change
			 * @param offset Scroll by this adapter position offset
			 */
			public setRelativeScrollPosition(viewId: number, offset: number): void;
			/**
			 * Equivalent to calling android.view.View#setPadding(int, int, int, int).
			 * @param viewId The id of the view to change
			 * @param left the left padding in pixels
			 * @param top the top padding in pixels
			 * @param right the right padding in pixels
			 * @param bottom the bottom padding in pixels
			 */
			public setViewPadding(viewId: number, left: number, top: number, right: number, bottom: number): void;
			/**
			 * Call a method taking one boolean on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setBoolean(viewId: number, methodName: string, value: boolean): void;
			/**
			 * Call a method taking one byte on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setByte(viewId: number, methodName: string, value: number): void;
			/**
			 * Call a method taking one short on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setShort(viewId: number, methodName: string, value: number): void;
			/**
			 * Call a method taking one int on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setInt(viewId: number, methodName: string, value: number): void;
			/**
			 * Call a method taking one long on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setLong(viewId: number, methodName: string, value: number): void;
			/**
			 * Call a method taking one float on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setFloat(viewId: number, methodName: string, value: number): void;
			/**
			 * Call a method taking one double on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setDouble(viewId: number, methodName: string, value: number): void;
			/**
			 * Call a method taking one char on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setChar(viewId: number, methodName: string, value: string): void;
			/**
			 * Call a method taking one String on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setString(viewId: number, methodName: string, value: string): void;
			/**
			 * Call a method taking one CharSequence on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setCharSequence(viewId: number, methodName: string, value: string): void;
			/**
			 * Call a method taking one Uri on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setUri(viewId: number, methodName: string, value: android.net.Uri): void;
			/**
			 * Call a method taking one Bitmap on a view in the layout for this RemoteViews. <p class="note">The bitmap will be flattened into the parcel if this object is sent across processes, so it may end up using a lot of memory, and may be fairly slow.</p>
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setBitmap(viewId: number, methodName: string, value: android.graphics.Bitmap): void;
			/**
			 * Call a method taking one Bundle on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The value to pass to the method.
			 */
			public setBundle(viewId: number, methodName: string, value: android.os.Bundle): void;
			/**
			 * Call a method taking one Intent on a view in the layout for this RemoteViews.
			 * @param viewId The id of the view on which to call the method.
			 * @param methodName The name of the method to call.
			 * @param value The {@link android.content.Intent} to pass the method.
			 */
			public setIntent(viewId: number, methodName: string, value: android.content.Intent): void;
			/**
			 * Equivalent to calling View.setContentDescription(CharSequence).
			 * @param viewId The id of the view whose content description should change.
			 * @param contentDescription The new content description for the view.
			 */
			public setContentDescription(viewId: number, contentDescription: string): void;
			/**
			 * Equivalent to calling View.setLabelFor(int).
			 * @param viewId The id of the view whose property to set.
			 * @param labeledId The id of a view for which this view serves as a label.
			 */
			public setLabelFor(viewId: number, labeledId: number): void;
			/**
			 * Inflates the view hierarchy represented by this object and applies all of the actions.
			 * @param context Default context to use
			 * @param parent Parent that the resulting view hierarchy will be attached to. This method
			 */
			public apply(context: android.content.Context, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Applies all of the actions to the provided view.
			 * @param context v The view to apply the actions to. This should be the result of
			 * @param v 
			 */
			public reapply(context: android.content.Context, v: android.view.View): void;
			public onLoadClass(clazz: java.lang.Class<any>): boolean;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export module RemoteViews {
			/**
			 * Base class for all actions that can be performed on an inflated view.
			 */
			export class Action extends java.lang.Object implements android.os.IParcelable {
				static MERGE_REPLACE: number;
				static MERGE_APPEND: number;
				static MERGE_IGNORE: number;
				static class: java.lang.Class<android.widget.RemoteViews.Action>;
				public describeContents(): number;
				/**
				 * Overridden by each class to report on it's own memory usage
				 */
				public updateMemoryUsageEstimate(counter: android.widget.RemoteViews.MemoryUsageCounter): void;
				public setBitmapCache(bitmapCache: android.widget.RemoteViews.BitmapCache): void;
				public mergeBehavior(): number;
				public getActionName(): string;
				public getUniqueKey(): string;
				/**
				 * Flatten this object in to a Parcel. 
				 * @param dest The Parcel in which the object should be written.
				 * @param flags Additional flags about how the object should be written.
				 */
				writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * Equivalent to calling android.view.View#setOnClickListener(android.view.View.OnClickListener) to launch the provided PendingIntent.
			 */
			export class SetOnClickPendingIntent extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.SetOnClickPendingIntent>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			export class BitmapCache extends java.lang.Object {
				constructor();
				constructor(source: android.os.Parcel);
				static class: java.lang.Class<android.widget.RemoteViews.BitmapCache>;
				public getBitmapId(b: android.graphics.Bitmap): number;
				public getBitmapForId(id: number): android.graphics.Bitmap;
				public writeBitmapsToParcel(dest: android.os.Parcel, flags: number): void;
				public assimilate(bitmapCache: android.widget.RemoteViews.BitmapCache): void;
				public addBitmapMemory(memoryCounter: android.widget.RemoteViews.MemoryUsageCounter): void;
			}
			export class SetPendingIntentTemplate extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.SetPendingIntentTemplate>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			/**
			 * Helper action to set text size on a TextView in any supported units.
			 */
			export class TextViewSizeAction extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.TextViewSizeAction>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			/**
			 * This annotation indicates that a subclass of View is alllowed to be used with the RemoteViews mechanism.
			 */
			export class RemoteView implements java.lang.annotation.IAnnotation, android.widget.RemoteViews.IRemoteView {
				constructor(implementation: android.widget.RemoteViews.IRemoteView);
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			export class SetRemoteViewsAdapterIntent extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.SetRemoteViewsAdapterIntent>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			/**
			 * Equivalent to calling ViewGroup#addView(View) after inflating the given RemoteViews, or calling ViewGroup#removeAllViews() when null. This allows users to build "nested" RemoteViews.
			 */
			export class ViewGroupAction extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.ViewGroupAction>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public updateMemoryUsageEstimate(counter: android.widget.RemoteViews.MemoryUsageCounter): void;
				public setBitmapCache(bitmapCache: android.widget.RemoteViews.BitmapCache): void;
				public getActionName(): string;
				public mergeBehavior(): number;
			}
			/**
			 * Exception to send when something goes wrong executing an action
			 */
			export class ActionException extends java.lang.RuntimeException {
				constructor(ex: java.lang.Exception);
				constructor(message: string);
				static class: java.lang.Class<android.widget.RemoteViews.ActionException>;
			}
			export class SetOnClickFillInIntent extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.SetOnClickFillInIntent>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			/**
			 * Simple class used to keep track of memory usage in a RemoteViews.
			 */
			export class MemoryUsageCounter extends java.lang.Object {
				static class: java.lang.Class<android.widget.RemoteViews.MemoryUsageCounter>;
				public clear(): void;
				public increment(numBytes: number): void;
				public getMemoryUsage(): number;
				public addBitmapMemory(b: android.graphics.Bitmap): void;
			}
			/**
			 * This annotation indicates that a subclass of View is alllowed to be used with the RemoteViews mechanism.
			 */
			interface IRemoteView extends java.lang.annotation.IAnnotation {
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			export class ReflectionActionWithoutParams extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.ReflectionActionWithoutParams>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public mergeBehavior(): number;
				public getActionName(): string;
			}
			export class BitmapReflectionAction extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.BitmapReflectionAction>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public setBitmapCache(bitmapCache: android.widget.RemoteViews.BitmapCache): void;
				public getActionName(): string;
			}
			/**
			 * Base class for the reflection actions.
			 */
			export class ReflectionAction extends android.widget.RemoteViews.Action {
				static class: java.lang.Class<android.widget.RemoteViews.ReflectionAction>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public mergeBehavior(): number;
				public getActionName(): string;
			}
			/**
			 * Helper action to set compound drawables on a TextView. Supports relative (s/t/e/b) or cardinal (l/t/r/b) arrangement.
			 */
			export class TextViewDrawableAction extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.TextViewDrawableAction>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			export class SetEmptyView extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.SetEmptyView>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			/**
			 * Helper action to set padding on a View.
			 */
			export class ViewPaddingAction extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.ViewPaddingAction>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
			/**
			 * Equivalent to calling a combination of Drawable#setAlpha(int), Drawable#setColorFilter(int, android.graphics.PorterDuff.Mode), and/or Drawable#setLevel(int) on the Drawable of a given view.
			 */
			export class SetDrawableParameters extends android.widget.RemoteViews.Action {
				static TAG: number;
				static class: java.lang.Class<android.widget.RemoteViews.SetDrawableParameters>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getActionName(): string;
			}
		}
		/**
		 * Defines an extension for views that make them checkable.
		 */
		interface ICheckable {
			/**
			 * Change the checked state of the view 
			 * @param checked The new checked state
			 */
			setChecked(checked: boolean): void;
			isChecked(): boolean;
			/**
			 * Change the checked state of the view to the inverse of its current state
			 */
			toggle(): void;
		}
		/**
		 * This interface can be implemented by any collection-type view which has a notion of progressing through its set of children. The interface exists to give AppWidgetHosts a way of taking responsibility for automatically advancing such collections.
		 */
		interface IAdvanceable {
			/**
			 * Advances this collection, eg. shows the next view.
			 */
			advance(): void;
			/**
			 * Called by the AppWidgetHost once before it begins to call advance(), allowing the collection to do any required setup.
			 */
			fyiWillBeAdvancedByHostKThx(): void;
		}
		/**
		 * A Switch is a two-state toggle switch widget that can select between two options. The user may drag the "thumb" back and forth to choose the selected option, or simply tap to toggle as if it were a checkbox. The #setText(CharSequence) text property controls the text displayed in the label for the switch, whereas the #setTextOff(CharSequence) off and #setTextOn(CharSequence) on text controls the text on the thumb. Similarly, the #setTextAppearance(android.content.Context, int) textAppearance and the related setTypeface() methods control the typeface and style of label text, whereas the #setSwitchTextAppearance(android.content.Context, int) switchTextAppearance and the related seSwitchTypeface() methods control that of the thumb.
		 */
		export class Switch extends android.widget.CompoundButton {
			/**
			 * Construct a new Switch with default styling.
			 * @param context The Context that will determine this widget's theming.
			 */
			constructor(context: android.content.Context);
			/**
			 * Construct a new Switch with default styling, overriding specific style attributes as requested.
			 * @param context The Context that will determine this widget's theming.
			 * @param attrs Specification of attributes that should deviate from default styling.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Construct a new Switch with a default style determined by the given theme attribute, overriding specific style attributes as requested.
			 * @param context The Context that will determine this widget's theming.
			 * @param attrs Specification of attributes that should deviate from the default styling.
			 * @param defStyle An attribute ID within the active theme containing a reference to the
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.Switch>;
			/**
			 * Sets the switch text color, size, style, hint color, and highlight color from the specified TextAppearance resource.
			 */
			public setSwitchTextAppearance(context: android.content.Context, resid: number): void;
			/**
			 * Sets the typeface and style in which the text should be displayed on the switch, and turns on the fake bold and italic bits in the Paint if the Typeface that you provided does not have all the bits in the style that you specified.
			 */
			public setSwitchTypeface(tf: android.graphics.Typeface, style: number): void;
			/**
			 * Sets the typeface in which the text should be displayed on the switch. Note that not all Typeface families actually have bold and italic variants, so you may need to use #setSwitchTypeface(Typeface, int) to get the appearance that you actually want.
			 */
			public setSwitchTypeface(tf: android.graphics.Typeface): void;
			/**
			 * Set the amount of horizontal padding between the switch and the associated text.
			 * @param pixels Amount of padding in pixels
			 */
			public setSwitchPadding(pixels: number): void;
			/**
			 * Get the amount of horizontal padding between the switch and the associated text.
			 */
			public getSwitchPadding(): number;
			/**
			 * Set the minimum width of the switch in pixels. The switch's width will be the maximum of this value and its measured width as determined by the switch drawables and text used.
			 * @param pixels Minimum width of the switch in pixels
			 */
			public setSwitchMinWidth(pixels: number): void;
			/**
			 * Get the minimum width of the switch in pixels. The switch's width will be the maximum of this value and its measured width as determined by the switch drawables and text used.
			 */
			public getSwitchMinWidth(): number;
			/**
			 * Set the horizontal padding around the text drawn on the switch itself.
			 * @param pixels Horizontal padding for switch thumb text in pixels
			 */
			public setThumbTextPadding(pixels: number): void;
			/**
			 * Get the horizontal padding around the text drawn on the switch itself.
			 */
			public getThumbTextPadding(): number;
			/**
			 * Set the drawable used for the track that the switch slides within.
			 * @param track Track drawable
			 */
			public setTrackDrawable(track: android.graphics.drawable.Drawable): void;
			/**
			 * Set the drawable used for the track that the switch slides within.
			 * @param resId Resource ID of a track drawable
			 */
			public setTrackResource(resId: number): void;
			/**
			 * Get the drawable used for the track that the switch slides within.
			 */
			public getTrackDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Set the drawable used for the switch "thumb" - the piece that the user can physically touch and drag along the track.
			 * @param thumb Thumb drawable
			 */
			public setThumbDrawable(thumb: android.graphics.drawable.Drawable): void;
			/**
			 * Set the drawable used for the switch "thumb" - the piece that the user can physically touch and drag along the track.
			 * @param resId Resource ID of a thumb drawable
			 */
			public setThumbResource(resId: number): void;
			/**
			 * Get the drawable used for the switch "thumb" - the piece that the user can physically touch and drag along the track.
			 */
			public getThumbDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Returns the text displayed when the button is in the checked state.
			 */
			public getTextOn(): string;
			/**
			 * Sets the text displayed when the button is in the checked state.
			 */
			public setTextOn(textOn: string): void;
			/**
			 * Returns the text displayed when the button is not in the checked state.
			 */
			public getTextOff(): string;
			/**
			 * Sets the text displayed when the button is not in the checked state.
			 */
			public setTextOff(textOff: string): void;
			public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public onPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
			public setChecked(checked: boolean): void;
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			public getCompoundPaddingLeft(): number;
			public getCompoundPaddingRight(): number;
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			protected drawableStateChanged(): void;
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export class TableRow extends android.widget.LinearLayout {
			/**
			 * @param context the application environment
			 */
			constructor(context: android.content.Context);
			/**
			 * @param context the application environment
			 * @param attrs a collection of attributes
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.TableRow>;
			/**
			 * 
			 */
			public setOnHierarchyChangeListener(listener: android.view.ViewGroup.IOnHierarchyChangeListener): void;
			/**
			 * 
			 */
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * 
			 */
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			/**
			 * 
			 */
			public getVirtualChildAt(i: number): android.view.View;
			/**
			 * 
			 */
			public getVirtualChildCount(): number;
			/**
			 * 
			 */
			measureNullChild(childIndex: number): number;
			/**
			 * 
			 */
			measureChildBeforeLayout(child: android.view.View, childIndex: number, widthMeasureSpec: number, totalWidth: number, heightMeasureSpec: number, totalHeight: number): void;
			/**
			 * 
			 */
			getChildrenSkipCount(child: android.view.View, index: number): number;
			/**
			 * 
			 */
			getLocationOffset(child: android.view.View): number;
			/**
			 * 
			 */
			getNextLocationOffset(child: android.view.View): number;
			/**
			 * 
			 */
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.TableRow.LayoutParams;
			/**
			 * Returns a set of layout parameters with a width of android.view.ViewGroup.LayoutParams#MATCH_PARENT, a height of android.view.ViewGroup.LayoutParams#WRAP_CONTENT and no spanning.
			 */
			protected generateDefaultLayoutParams(): android.widget.LinearLayout.LayoutParams;
			/**
			 * 
			 */
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			/**
			 * 
			 */
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.widget.LinearLayout.LayoutParams;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module TableRow {
			export class LayoutParams extends android.widget.LinearLayout.LayoutParams {
				/**
				 * 
				 */
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * @param w the desired width
				 * @param h the desired height
				 */
				constructor(w: number, h: number);
				/**
				 * @param w the desired width
				 * @param h the desired height
				 * @param initWeight the desired weight
				 */
				constructor(w: number, h: number, initWeight: number);
				constructor();
				/**
				 * @param column the column index for the view
				 */
				constructor(column: number);
				/**
				 * 
				 */
				constructor(p: android.view.ViewGroup.LayoutParams);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.MarginLayoutParams);
				column: number;
				span: number;
				static class: java.lang.Class<android.widget.TableRow.LayoutParams>;
				protected setBaseAttributes(a: android.content.res.TypedArray, widthAttr: number, heightAttr: number): void;
			}
			export class ChildrenTracker extends java.lang.Object implements android.view.ViewGroup.IOnHierarchyChangeListener {
				static class: java.lang.Class<android.widget.TableRow.ChildrenTracker>;
				public onChildViewAdded(parent: android.view.View, child: android.view.View): void;
				public onChildViewRemoved(parent: android.view.View, child: android.view.View): void;
			}
		}
		/**
		 * An AdapterView is a view whose children are determined by an Adapter.
		 */
		export class AdapterView<T extends android.widget.IAdapter> extends android.view.ViewGroup {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * The item view type returned by Adapter#getItemViewType(int) when the adapter does not want the item's view recycled.
			 */
			static ITEM_VIEW_TYPE_IGNORE: number;
			/**
			 * The item view type returned by Adapter#getItemViewType(int) when the item is a header or footer.
			 */
			static ITEM_VIEW_TYPE_HEADER_OR_FOOTER: number;
			/**
			 * Represents an invalid position. All valid positions are in the range 0 to 1 less than the number of items in the current adapter.
			 */
			static INVALID_POSITION: number;
			/**
			 * Represents an empty or invalid row id
			 */
			static INVALID_ROW_ID: number;
			static class: java.lang.Class<android.widget.AdapterView<any>>;
			/**
			 * Register a callback to be invoked when an item in this AdapterView has been clicked.
			 * @param listener The callback that will be invoked.
			 */
			public setOnItemClickListener(listener: android.widget.AdapterView.IOnItemClickListener): void;
			public getOnItemClickListener(): android.widget.AdapterView.IOnItemClickListener;
			/**
			 * Call the OnItemClickListener, if it is defined.
			 * @param view The view within the AdapterView that was clicked.
			 * @param position The position of the view in the adapter.
			 * @param id The row id of the item that was clicked.
			 */
			public performItemClick(view: android.view.View, position: number, id: number): boolean;
			/**
			 * Register a callback to be invoked when an item in this AdapterView has been clicked and held
			 * @param listener The callback that will run
			 */
			public setOnItemLongClickListener(listener: android.widget.AdapterView.IOnItemLongClickListener): void;
			public getOnItemLongClickListener(): android.widget.AdapterView.IOnItemLongClickListener;
			/**
			 * Register a callback to be invoked when an item in this AdapterView has been selected.
			 * @param listener The callback that will run
			 */
			public setOnItemSelectedListener(listener: android.widget.AdapterView.IOnItemSelectedListener): void;
			public getOnItemSelectedListener(): android.widget.AdapterView.IOnItemSelectedListener;
			/**
			 * Returns the adapter currently associated with this widget.
			 */
			public getAdapter(): T;
			/**
			 * Sets the adapter that provides the data and the views to represent the data in this widget.
			 * @param adapter The adapter to use to create this view's content.
			 */
			public setAdapter(adapter: T): void;
			/**
			 * This method is not supported and throws an UnsupportedOperationException when called.
			 * @param child Ignored.
			 */
			public addView(child: android.view.View): void;
			/**
			 * This method is not supported and throws an UnsupportedOperationException when called.
			 * @param child Ignored.
			 * @param index Ignored.
			 */
			public addView(child: android.view.View, index: number): void;
			/**
			 * This method is not supported and throws an UnsupportedOperationException when called.
			 * @param child Ignored.
			 * @param params Ignored.
			 */
			public addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * This method is not supported and throws an UnsupportedOperationException when called.
			 * @param child Ignored.
			 * @param index Ignored.
			 * @param params Ignored.
			 */
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * This method is not supported and throws an UnsupportedOperationException when called.
			 * @param child Ignored.
			 */
			public removeView(child: android.view.View): void;
			/**
			 * This method is not supported and throws an UnsupportedOperationException when called.
			 * @param index Ignored.
			 */
			public removeViewAt(index: number): void;
			/**
			 * This method is not supported and throws an UnsupportedOperationException when called.
			 */
			public removeAllViews(): void;
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			/**
			 * Return the position of the currently selected item within the adapter's data set
			 */
			public getSelectedItemPosition(): number;
			public getSelectedItemId(): any;
			public getSelectedView(): android.view.View;
			public getSelectedItem(): any;
			public getCount(): number;
			/**
			 * Get the position within the adapter's data set for the view, where view is a an adapter item or a descendant of an adapter item.
			 * @param view an adapter item, or a descendant of an adapter item. This must be visible in this
			 */
			public getPositionForView(view: android.view.View): number;
			/**
			 * Returns the position within the adapter's data set for the first item displayed on screen.
			 */
			public getFirstVisiblePosition(): number;
			/**
			 * Returns the position within the adapter's data set for the last item displayed on screen.
			 */
			public getLastVisiblePosition(): number;
			/**
			 * Sets the currently selected item. To support accessibility subclasses that override this method must invoke the overriden super method first.
			 * @param position Index (starting at 0) of the data item to be selected.
			 */
			public setSelection(position: number): void;
			/**
			 * Sets the view to show if the adapter is empty
			 */
			public setEmptyView(emptyView: android.view.View): void;
			/**
			 * When the current adapter is empty, the AdapterView can display a special view call the empty view. The empty view is used to provide feedback to the user that no data is available in this AdapterView.
			 */
			public getEmptyView(): android.view.View;
			/**
			 * Indicates whether this view is in filter mode. Filter mode can for instance be enabled by a user when typing on the keyboard.
			 */
			isInFilterMode(): boolean;
			public setFocusable(focusable: boolean): void;
			public setFocusableInTouchMode(focusable: boolean): void;
			checkFocus(): void;
			/**
			 * Gets the data associated with the specified position in the list.
			 * @param position Which data to get
			 */
			public getItemAtPosition(position: number): any;
			public getItemIdAtPosition(position: number): any;
			public setOnClickListener(l: android.view.View.IOnClickListener): void;
			/**
			 * Override to prevent freezing of any views created by the adapter.
			 */
			protected dispatchSaveInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Override to prevent thawing of any views created by the adapter.
			 */
			protected dispatchRestoreInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			protected onDetachedFromWindow(): void;
			selectionChanged(): void;
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			public onRequestSendAccessibilityEvent(child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			protected canAnimate(): boolean;
			handleDataChanged(): void;
			checkSelectionChanged(): void;
			/**
			 * Searches the adapter for a position matching mSyncRowId. The search starts at mSyncPosition and then alternates between moving up and moving down until 1) we find the right position, or 2) we run out of time, or 3) we have looked at every position
			 */
			findSyncPosition(): number;
			/**
			 * Find a position that can be selected (i.e., is not a separator).
			 * @param position The starting position to look at.
			 * @param lookDown Whether to look down for other positions.
			 */
			lookForSelectablePosition(position: number, lookDown: boolean): number;
			/**
			 * Utility to keep mSelectedPosition and mSelectedRowId in sync
			 * @param position Our current position
			 */
			setSelectedPositionInt(position: number): void;
			/**
			 * Utility to keep mNextSelectedPosition and mNextSelectedRowId in sync
			 * @param position Intended value for mSelectedPosition the next time we go
			 */
			setNextSelectedPositionInt(position: number): void;
			/**
			 * Remember enough information to restore the screen state when the data has changed.
			 */
			rememberSyncState(): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
		}
		export module AdapterView {
			export class SelectionNotifier extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.AdapterView.SelectionNotifier>;
				public run(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an item in this AdapterView has been clicked.
			 */
			export class OnItemClickListener implements android.widget.AdapterView.IOnItemClickListener {
				constructor(implementation: android.widget.AdapterView.IOnItemClickListener);
				/**
				 * Callback method to be invoked when an item in this AdapterView has been clicked.
				 * @param parent The AdapterView where the click happened.
				 * @param view The view within the AdapterView that was clicked (this
				 * @param position The position of the view in the adapter.
				 * @param id The row id of the item that was clicked.
				 */
				public onItemClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an item in this AdapterView has been clicked.
			 */
			interface IOnItemClickListener {
				/**
				 * Callback method to be invoked when an item in this AdapterView has been clicked.
				 * @param parent The AdapterView where the click happened.
				 * @param view The view within the AdapterView that was clicked (this
				 * @param position The position of the view in the adapter.
				 * @param id The row id of the item that was clicked.
				 */
				onItemClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an item in this view has been clicked and held.
			 */
			interface IOnItemLongClickListener {
				/**
				 * Callback method to be invoked when an item in this view has been clicked and held.
				 * @param parent The AbsListView where the click happened
				 * @param view The view within the AbsListView that was clicked
				 * @param position The position of the view in the list
				 * @param id The row id of the item that was clicked
				 */
				onItemLongClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when an item in this view has been selected.
			 */
			interface IOnItemSelectedListener {
				/**
				 * @param parent The AdapterView where the selection happened
				 * @param view The view within the AdapterView that was clicked
				 * @param position The position of the view in the adapter
				 * @param id The row id of the item that is selected
				 */
				onItemSelected(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
				/**
				 * Callback method to be invoked when the selection disappears from this view. The selection can disappear for instance when touch is activated or when the adapter becomes empty.
				 * @param parent The AdapterView that now contains no selected item.
				 */
				onNothingSelected(parent: android.widget.AdapterView<any>): void;
			}
			/**
			 * Extra menu information provided to the android.view.View.OnCreateContextMenuListener#onCreateContextMenu(ContextMenu, View, ContextMenuInfo) callback when a context menu is brought up for this AdapterView.
			 */
			export class AdapterContextMenuInfo extends java.lang.Object implements android.view.ContextMenu.IContextMenuInfo {
				constructor(targetView: android.view.View, position: number, id: number);
				/**
				 * The child view for which the context menu is being displayed. This will be one of the children of this AdapterView.
				 */
				targetView: android.view.View;
				/**
				 * The position in the adapter for which the context menu is being displayed.
				 */
				position: number;
				/**
				 * The row id of the item for which the context menu is being displayed.
				 */
				id: number;
				static class: java.lang.Class<android.widget.AdapterView.AdapterContextMenuInfo>;
			}
			export class AdapterDataSetObserver extends android.database.DataSetObserver {
				static class: java.lang.Class<android.widget.AdapterView.AdapterDataSetObserver>;
				public onChanged(): void;
				public onInvalidated(): void;
				public clearSavedState(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an item in this view has been selected.
			 */
			export class OnItemSelectedListener implements android.widget.AdapterView.IOnItemSelectedListener {
				constructor(implementation: android.widget.AdapterView.IOnItemSelectedListener);
				/**
				 * @param parent The AdapterView where the selection happened
				 * @param view The view within the AdapterView that was clicked
				 * @param position The position of the view in the adapter
				 * @param id The row id of the item that is selected
				 */
				public onItemSelected(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
				/**
				 * Callback method to be invoked when the selection disappears from this view. The selection can disappear for instance when touch is activated or when the adapter becomes empty.
				 * @param parent The AdapterView that now contains no selected item.
				 */
				public onNothingSelected(parent: android.widget.AdapterView<any>): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an item in this view has been clicked and held.
			 */
			export class OnItemLongClickListener implements android.widget.AdapterView.IOnItemLongClickListener {
				constructor(implementation: android.widget.AdapterView.IOnItemLongClickListener);
				/**
				 * Callback method to be invoked when an item in this view has been clicked and held.
				 * @param parent The AbsListView where the click happened
				 * @param view The view within the AbsListView that was clicked
				 * @param position The position of the view in the list
				 * @param id The row id of the item that was clicked
				 */
				public onItemLongClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): boolean;
			}
		}
		export class TwoLineListItem extends android.widget.RelativeLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.TwoLineListItem>;
			protected onFinishInflate(): void;
			/**
			 * Returns a handle to the item with ID text1.
			 */
			public getText1(): android.widget.TextView;
			/**
			 * Returns a handle to the item with ID text2.
			 */
			public getText2(): android.widget.TextView;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		/**
		 * This class is a widget for selecting a date. The date can be selected by a year, month, and day spinners or a CalendarView. The set of spinners and the calendar view are automatically synchronized. The client can customize whether only the spinners, or only the calendar view, or both to be displayed. Also the minimal and maximal date from which dates to be selected can be customized.
		 */
		export class DatePicker extends android.widget.FrameLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.DatePicker>;
			/**
			 * Gets the minimal date supported by this DatePicker in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 */
			public getMinDate(): any;
			/**
			 * Sets the minimal date supported by this NumberPicker in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 * @param minDate The minimal supported date.
			 */
			public setMinDate(minDate: number): void;
			/**
			 * Gets the maximal date supported by this DatePicker in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 */
			public getMaxDate(): any;
			/**
			 * Sets the maximal date supported by this DatePicker in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 * @param maxDate The maximal supported date.
			 */
			public setMaxDate(maxDate: number): void;
			public setEnabled(enabled: boolean): void;
			public isEnabled(): boolean;
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			public onPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			protected onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * Gets whether the CalendarView is shown.
			 */
			public getCalendarViewShown(): boolean;
			/**
			 * Gets the CalendarView.
			 */
			public getCalendarView(): android.widget.CalendarView;
			/**
			 * Sets whether the CalendarView is shown.
			 * @param shown True if the calendar view is to be shown.
			 */
			public setCalendarViewShown(shown: boolean): void;
			/**
			 * Gets whether the spinners are shown.
			 */
			public getSpinnersShown(): boolean;
			/**
			 * Sets whether the spinners are shown.
			 * @param shown True if the spinners are to be shown.
			 */
			public setSpinnersShown(shown: boolean): void;
			/**
			 * Updates the current date.
			 * @param year The year.
			 * @param month The month which is <strong>starting from zero</strong>.
			 * @param dayOfMonth The day of the month.
			 */
			public updateDate(year: number, month: number, dayOfMonth: number): void;
			protected dispatchRestoreInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			protected onSaveInstanceState(): android.os.IParcelable;
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
			/**
			 * Initialize the state. If the provided values designate an inconsistent date the values are normalized before updating the spinners.
			 * @param year The initial year.
			 * @param monthOfYear The initial month <strong>starting from zero</strong>.
			 * @param dayOfMonth The initial day of the month.
			 * @param onDateChangedListener How user is notified date is changed by
			 */
			public init(year: number, monthOfYear: number, dayOfMonth: number, onDateChangedListener: android.widget.DatePicker.IOnDateChangedListener): void;
			public getYear(): number;
			public getMonth(): number;
			public getDayOfMonth(): number;
		}
		export module DatePicker {
			/**
			 * Class for managing state storing/restoring.
			 */
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.DatePicker.SavedState>;
				static class: java.lang.Class<android.widget.DatePicker.SavedState>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * The callback used to indicate the user changes\d the date.
			 */
			export class OnDateChangedListener implements android.widget.DatePicker.IOnDateChangedListener {
				constructor(implementation: android.widget.DatePicker.IOnDateChangedListener);
				/**
				 * Called upon a date change.
				 * @param view The view associated with this listener.
				 * @param year The year that was set.
				 * @param monthOfYear The month that was set (0-11) for compatibility
				 * @param dayOfMonth The day of the month that was set.
				 */
				public onDateChanged(view: android.widget.DatePicker, year: number, monthOfYear: number, dayOfMonth: number): void;
			}
			/**
			 * The callback used to indicate the user changes\d the date.
			 */
			interface IOnDateChangedListener {
				/**
				 * Called upon a date change.
				 * @param view The view associated with this listener.
				 * @param year The year that was set.
				 * @param monthOfYear The month that was set (0-11) for compatibility
				 * @param dayOfMonth The day of the month that was set.
				 */
				onDateChanged(view: android.widget.DatePicker, year: number, monthOfYear: number, dayOfMonth: number): void;
			}
		}
		/**
		 * SlidingDrawer hides content out of the screen and allows the user to drag a handle to bring the content on screen. SlidingDrawer can be used vertically or horizontally.
		 */
		export class SlidingDrawer extends android.view.ViewGroup {
			/**
			 * Creates a new SlidingDrawer from a specified set of attributes defined in XML.
			 * @param context The application's environment.
			 * @param attrs The attributes defined in XML.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Creates a new SlidingDrawer from a specified set of attributes defined in XML.
			 * @param context The application's environment.
			 * @param attrs The attributes defined in XML.
			 * @param defStyle The style to apply to this widget.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static ORIENTATION_HORIZONTAL: number;
			static ORIENTATION_VERTICAL: number;
			static class: java.lang.Class<android.widget.SlidingDrawer>;
			protected onFinishInflate(): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			public onInterceptTouchEvent(event: android.view.MotionEvent): boolean;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Toggles the drawer open and close. Takes effect immediately.
			 */
			public toggle(): void;
			/**
			 * Toggles the drawer open and close with an animation.
			 */
			public animateToggle(): void;
			/**
			 * Opens the drawer immediately.
			 */
			public open(): void;
			/**
			 * Closes the drawer immediately.
			 */
			public close(): void;
			/**
			 * Closes the drawer with an animation.
			 */
			public animateClose(): void;
			/**
			 * Opens the drawer with an animation.
			 */
			public animateOpen(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Sets the listener that receives a notification when the drawer becomes open.
			 * @param onDrawerOpenListener The listener to be notified when the drawer is opened.
			 */
			public setOnDrawerOpenListener(onDrawerOpenListener: android.widget.SlidingDrawer.IOnDrawerOpenListener): void;
			/**
			 * Sets the listener that receives a notification when the drawer becomes close.
			 * @param onDrawerCloseListener The listener to be notified when the drawer is closed.
			 */
			public setOnDrawerCloseListener(onDrawerCloseListener: android.widget.SlidingDrawer.IOnDrawerCloseListener): void;
			/**
			 * Sets the listener that receives a notification when the drawer starts or ends a scroll. A fling is considered as a scroll. A fling will also trigger a drawer opened or drawer closed event.
			 * @param onDrawerScrollListener The listener to be notified when scrolling
			 */
			public setOnDrawerScrollListener(onDrawerScrollListener: android.widget.SlidingDrawer.IOnDrawerScrollListener): void;
			/**
			 * Returns the handle of the drawer.
			 */
			public getHandle(): android.view.View;
			/**
			 * Returns the content of the drawer.
			 */
			public getContent(): android.view.View;
			/**
			 * Unlocks the SlidingDrawer so that touch events are processed.
			 */
			public unlock(): void;
			/**
			 * Locks the SlidingDrawer so that touch events are ignores.
			 */
			public lock(): void;
			/**
			 * Indicates whether the drawer is currently fully opened.
			 */
			public isOpened(): boolean;
			/**
			 * Indicates whether the drawer is scrolling or flinging.
			 */
			public isMoving(): boolean;
		}
		export module SlidingDrawer {
			/**
			 * Callback invoked when the drawer is closed.
			 */
			interface IOnDrawerCloseListener {
				/**
				 * Invoked when the drawer becomes fully closed.
				 */
				onDrawerClosed(): void;
			}
			/**
			 * Callback invoked when the drawer is scrolled.
			 */
			interface IOnDrawerScrollListener {
				/**
				 * Invoked when the user starts dragging/flinging the drawer's handle.
				 */
				onScrollStarted(): void;
				/**
				 * Invoked when the user stops dragging/flinging the drawer's handle.
				 */
				onScrollEnded(): void;
			}
			/**
			 * Callback invoked when the drawer is scrolled.
			 */
			export class OnDrawerScrollListener implements android.widget.SlidingDrawer.IOnDrawerScrollListener {
				constructor(implementation: android.widget.SlidingDrawer.IOnDrawerScrollListener);
				/**
				 * Invoked when the user starts dragging/flinging the drawer's handle.
				 */
				public onScrollStarted(): void;
				/**
				 * Invoked when the user stops dragging/flinging the drawer's handle.
				 */
				public onScrollEnded(): void;
			}
			export class DrawerToggler extends java.lang.Object implements android.view.View.IOnClickListener {
				static class: java.lang.Class<android.widget.SlidingDrawer.DrawerToggler>;
				public onClick(v: android.view.View): void;
			}
			/**
			 * Callback invoked when the drawer is opened.
			 */
			interface IOnDrawerOpenListener {
				/**
				 * Invoked when the drawer becomes fully open.
				 */
				onDrawerOpened(): void;
			}
			export class SlidingHandler extends android.os.Handler {
				static class: java.lang.Class<android.widget.SlidingDrawer.SlidingHandler>;
				public handleMessage(m: android.os.Message): void;
			}
			/**
			 * Callback invoked when the drawer is closed.
			 */
			export class OnDrawerCloseListener implements android.widget.SlidingDrawer.IOnDrawerCloseListener {
				constructor(implementation: android.widget.SlidingDrawer.IOnDrawerCloseListener);
				/**
				 * Invoked when the drawer becomes fully closed.
				 */
				public onDrawerClosed(): void;
			}
			/**
			 * Callback invoked when the drawer is opened.
			 */
			export class OnDrawerOpenListener implements android.widget.SlidingDrawer.IOnDrawerOpenListener {
				constructor(implementation: android.widget.SlidingDrawer.IOnDrawerOpenListener);
				/**
				 * Invoked when the drawer becomes fully open.
				 */
				public onDrawerOpened(): void;
			}
		}
		/**
		 * A view that displays one child at a time and lets the user pick among them. The items in the Spinner come from the Adapter associated with this view.
		 */
		export class Spinner extends android.widget.AbsSpinner implements android.content.DialogInterface.IOnClickListener {
			/**
			 * Construct a new spinner with the given context's theme.
			 * @param context The Context the view is running in, through which it can
			 */
			constructor(context: android.content.Context);
			/**
			 * Construct a new spinner with the given context's theme and the supplied mode of displaying choices. <code>mode</code> may be one of #MODE_DIALOG or #MODE_DROPDOWN.
			 * @param context The Context the view is running in, through which it can
			 * @param mode Constant describing how the user will select choices from the spinner.
			 */
			constructor(context: android.content.Context, mode: number);
			/**
			 * Construct a new spinner with the given context's theme and the supplied attribute set.
			 * @param context The Context the view is running in, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the view.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Construct a new spinner with the given context's theme, the supplied attribute set, and default style.
			 * @param context The Context the view is running in, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the view.
			 * @param defStyle The default style to apply to this view. If 0, no style
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * Construct a new spinner with the given context's theme, the supplied attribute set, and default style. <code>mode</code> may be one of #MODE_DIALOG or #MODE_DROPDOWN and determines how the user will select choices from the spinner.
			 * @param context The Context the view is running in, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the view.
			 * @param defStyle The default style to apply to this view. If 0, no style
			 * @param mode Constant describing how the user will select choices from the spinner.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number, mode: number);
			/**
			 * Use a dialog window for selecting spinner options.
			 */
			static MODE_DIALOG: number;
			/**
			 * Use a dropdown anchored to the Spinner for selecting spinner options.
			 */
			static MODE_DROPDOWN: number;
			static class: java.lang.Class<android.widget.Spinner>;
			DropdownPopup: {
	new (context: android.content.Context, attrs: android.util.IAttributeSet, defStyleRes: number): android.widget.Spinner.DropdownPopup;
};
			/**
			 * Set the background drawable for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
			 * @param background Background drawable
			 */
			public setPopupBackgroundDrawable(background: android.graphics.drawable.Drawable): void;
			/**
			 * Set the background drawable for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
			 * @param resId Resource ID of a background drawable
			 */
			public setPopupBackgroundResource(resId: number): void;
			/**
			 * Get the background drawable for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; other modes will return null.
			 */
			public getPopupBackground(): android.graphics.drawable.Drawable;
			/**
			 * Set a vertical offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
			 * @param pixels Vertical offset in pixels
			 */
			public setDropDownVerticalOffset(pixels: number): void;
			/**
			 * Get the configured vertical offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; other modes will return 0.
			 */
			public getDropDownVerticalOffset(): number;
			/**
			 * Set a horizontal offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
			 * @param pixels Horizontal offset in pixels
			 */
			public setDropDownHorizontalOffset(pixels: number): void;
			/**
			 * Get the configured horizontal offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; other modes will return 0.
			 */
			public getDropDownHorizontalOffset(): number;
			/**
			 * Set the width of the spinner's popup window of choices in pixels. This value may also be set to android.view.ViewGroup.LayoutParams#MATCH_PARENT to match the width of the Spinner itself, or android.view.ViewGroup.LayoutParams#WRAP_CONTENT to wrap to the measured size of contained dropdown list items.
			 * @param pixels Width in pixels, WRAP_CONTENT, or MATCH_PARENT
			 */
			public setDropDownWidth(pixels: number): void;
			/**
			 * Get the configured width of the spinner's popup window of choices in pixels. The returned value may also be android.view.ViewGroup.LayoutParams#MATCH_PARENT meaning the popup window will match the width of the Spinner itself, or android.view.ViewGroup.LayoutParams#WRAP_CONTENT to wrap to the measured size of contained dropdown list items.
			 */
			public getDropDownWidth(): number;
			public setEnabled(enabled: boolean): void;
			/**
			 * Describes how the selected item view is positioned. Currently only the horizontal component is used. The default is determined by the current theme.
			 * @param gravity See {@link android.view.Gravity}
			 */
			public setGravity(gravity: number): void;
			/**
			 * Describes how the selected item view is positioned. The default is determined by the current theme.
			 */
			public getGravity(): number;
			public setAdapter(adapter: android.widget.ISpinnerAdapter): void;
			public getBaseline(): number;
			protected onDetachedFromWindow(): void;
			/**
			 * @param l this listener will be ignored
			 */
			public setOnItemClickListener(l: android.widget.AdapterView.IOnItemClickListener): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 *  android.view.View#onLayout(boolean,int,int,int,int)
			 */
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			/**
			 * Creates and positions all views for this Spinner.
			 * @param delta Change in the selected position. +1 means selection is moving to the right,
			 * @param animate 
			 */
			layout(delta: number, animate: boolean): void;
			public performClick(): boolean;
			public onClick(dialog: android.content.IDialogInterface, which: number): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Sets the prompt to display when the dialog is shown.
			 * @param prompt the prompt to set
			 */
			public setPrompt(prompt: string): void;
			/**
			 * Sets the prompt to display when the dialog is shown.
			 * @param promptId the resource ID of the prompt to display when the dialog is shown
			 */
			public setPromptId(promptId: number): void;
			public getPrompt(): string;
			measureContentWidth(adapter: android.widget.ISpinnerAdapter, background: android.graphics.drawable.Drawable): number;
			/**
			 * 
			 */
			layout(l: number, t: number, r: number, b: number): void;
		}
		export module Spinner {
			export class DropdownPopup extends android.widget.ListPopupWindow implements android.widget.Spinner.ISpinnerPopup {
				static class: java.lang.Class<android.widget.Spinner.DropdownPopup>;
				public setAdapter(adapter: android.widget.IListAdapter): void;
				public getHintText(): string;
				public setPromptText(hintText: string): void;
				public show(): void;
				/**
				 * Dismiss the popup
				 */
				dismiss(): void;
				isShowing(): boolean;
				setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
				setVerticalOffset(px: number): void;
				setHorizontalOffset(px: number): void;
				getBackground(): android.graphics.drawable.Drawable;
				getVerticalOffset(): number;
				getHorizontalOffset(): number;
			}
			/**
			 * Implements some sort of popup selection interface for selecting a spinner option. Allows for different spinner modes.
			 */
			interface ISpinnerPopup {
				setAdapter(adapter: android.widget.IListAdapter): void;
				/**
				 * Show the popup
				 */
				show(): void;
				/**
				 * Dismiss the popup
				 */
				dismiss(): void;
				isShowing(): boolean;
				/**
				 * Set hint text to be displayed to the user. This should provide a description of the choice being made.
				 * @param hintText Hint text to set.
				 */
				setPromptText(hintText: string): void;
				getHintText(): string;
				setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
				setVerticalOffset(px: number): void;
				setHorizontalOffset(px: number): void;
				getBackground(): android.graphics.drawable.Drawable;
				getVerticalOffset(): number;
				getHorizontalOffset(): number;
			}
			export class DialogPopup extends java.lang.Object implements android.widget.Spinner.ISpinnerPopup, android.content.DialogInterface.IOnClickListener {
				static class: java.lang.Class<android.widget.Spinner.DialogPopup>;
				public dismiss(): void;
				public isShowing(): boolean;
				public setAdapter(adapter: android.widget.IListAdapter): void;
				public setPromptText(hintText: string): void;
				public getHintText(): string;
				public show(): void;
				public onClick(dialog: android.content.IDialogInterface, which: number): void;
				public setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
				public setVerticalOffset(px: number): void;
				public setHorizontalOffset(px: number): void;
				public getBackground(): android.graphics.drawable.Drawable;
				public getVerticalOffset(): number;
				public getHorizontalOffset(): number;
			}
			/**
			 * Implements some sort of popup selection interface for selecting a spinner option. Allows for different spinner modes.
			 */
			export class SpinnerPopup implements android.widget.Spinner.ISpinnerPopup {
				constructor(implementation: android.widget.Spinner.ISpinnerPopup);
				public setAdapter(adapter: android.widget.IListAdapter): void;
				/**
				 * Show the popup
				 */
				public show(): void;
				/**
				 * Dismiss the popup
				 */
				public dismiss(): void;
				public isShowing(): boolean;
				/**
				 * Set hint text to be displayed to the user. This should provide a description of the choice being made.
				 * @param hintText Hint text to set.
				 */
				public setPromptText(hintText: string): void;
				public getHintText(): string;
				public setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
				public setVerticalOffset(px: number): void;
				public setHorizontalOffset(px: number): void;
				public getBackground(): android.graphics.drawable.Drawable;
				public getVerticalOffset(): number;
				public getHorizontalOffset(): number;
			}
			export class DropDownAdapter extends java.lang.Object implements android.widget.IListAdapter, android.widget.ISpinnerAdapter {
				/**
				 * @param adapter the Adapter to transform into a ListAdapter
				 */
				constructor(adapter: android.widget.ISpinnerAdapter);
				static class: java.lang.Class<android.widget.Spinner.DropDownAdapter>;
				public getCount(): number;
				public getItem(position: number): any;
				public getItemId(position: number): any;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				public hasStableIds(): boolean;
				public registerDataSetObserver(observer: android.database.DataSetObserver): void;
				public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
				/**
				 * If the wrapped SpinnerAdapter is also a ListAdapter, delegate this call. Otherwise, return true.
				 */
				public areAllItemsEnabled(): boolean;
				/**
				 * If the wrapped SpinnerAdapter is also a ListAdapter, delegate this call. Otherwise, return true.
				 */
				public isEnabled(position: number): boolean;
				public getItemViewType(position: number): number;
				public getViewTypeCount(): number;
				public isEmpty(): boolean;
			}
		}
		/**
		 * Displays a video file. The VideoView class can load images from various sources (such as resources or content providers), takes care of computing its measurement from the video so that it can be used in any layout manager, and provides various display options such as scaling and tinting.
		 */
		export class VideoView extends android.view.SurfaceView implements android.widget.MediaController.IMediaPlayerControl {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.VideoView>;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public resolveAdjustedSize(desiredSize: number, measureSpec: number): number;
			public setVideoPath(path: string): void;
			public setVideoURI(uri: android.net.Uri): void;
			public stopPlayback(): void;
			public setMediaController(controller: android.widget.MediaController): void;
			/**
			 * Register a callback to be invoked when the media file is loaded and ready to go.
			 * @param l The callback that will be run
			 */
			public setOnPreparedListener(l: android.media.MediaPlayer.IOnPreparedListener): void;
			/**
			 * Register a callback to be invoked when the end of a media file has been reached during playback.
			 * @param l The callback that will be run
			 */
			public setOnCompletionListener(l: android.media.MediaPlayer.IOnCompletionListener): void;
			/**
			 * Register a callback to be invoked when an error occurs during playback or setup. If no listener is specified, or if the listener returned false, VideoView will inform the user of any errors.
			 * @param l The callback that will be run
			 */
			public setOnErrorListener(l: android.media.MediaPlayer.IOnErrorListener): void;
			/**
			 * Register a callback to be invoked when an informational event occurs during playback or setup.
			 * @param l The callback that will be run
			 */
			public setOnInfoListener(l: android.media.MediaPlayer.IOnInfoListener): void;
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
			public onTrackballEvent(ev: android.view.MotionEvent): boolean;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public start(): void;
			public pause(): void;
			public suspend(): void;
			public resume(): void;
			public getDuration(): number;
			public getCurrentPosition(): number;
			public seekTo(msec: number): void;
			public isPlaying(): boolean;
			public getBufferPercentage(): number;
			public canPause(): boolean;
			public canSeekBackward(): boolean;
			public canSeekForward(): boolean;
		}
		/**
		 * The ZoomButtonsController handles showing and hiding the zoom controls and positioning it relative to an owner view. It also gives the client access to the zoom controls container, allowing for additional accessory buttons to be shown in the zoom controls window.
		 */
		export class ZoomButtonsController extends java.lang.Object implements android.view.View.IOnTouchListener {
			/**
			 * Constructor for the ZoomButtonsController.
			 * @param ownerView The view that is being zoomed by the zoom controls. The
			 */
			constructor(ownerView: android.view.View);
			static class: java.lang.Class<android.widget.ZoomButtonsController>;
			Container: {
	new (context: android.content.Context): android.widget.ZoomButtonsController.Container;
};
			/**
			 * Whether to enable the zoom in control.
			 * @param enabled Whether to enable the zoom in control.
			 */
			public setZoomInEnabled(enabled: boolean): void;
			/**
			 * Whether to enable the zoom out control.
			 * @param enabled Whether to enable the zoom out control.
			 */
			public setZoomOutEnabled(enabled: boolean): void;
			/**
			 * Sets the delay between zoom callbacks as the user holds a zoom button.
			 * @param speed The delay in milliseconds between zoom callbacks.
			 */
			public setZoomSpeed(speed: number): void;
			/**
			 * Sets the OnZoomListener listener that receives callbacks to zoom.
			 * @param listener The listener that will be told to zoom.
			 */
			public setOnZoomListener(listener: android.widget.ZoomButtonsController.IOnZoomListener): void;
			/**
			 * Sets whether the zoom controls should be focusable. If the controls are focusable, then trackball and arrow key interactions are possible. Otherwise, only touch interactions are possible.
			 * @param focusable Whether the zoom controls should be focusable.
			 */
			public setFocusable(focusable: boolean): void;
			/**
			 * Whether the zoom controls will be automatically dismissed after showing.
			 */
			public isAutoDismissed(): boolean;
			/**
			 * Sets whether the zoom controls will be automatically dismissed after showing.
			 */
			public setAutoDismissed(autoDismiss: boolean): void;
			/**
			 * Whether the zoom controls are visible to the user.
			 */
			public isVisible(): boolean;
			/**
			 * Sets whether the zoom controls should be visible to the user.
			 * @param visible Whether the zoom controls should be visible to the user.
			 */
			public setVisible(visible: boolean): void;
			/**
			 * Gets the container that is the parent of the zoom controls.
			 */
			public getContainer(): android.view.ViewGroup;
			/**
			 * Gets the view for the zoom controls.
			 */
			public getZoomControls(): android.view.View;
			/**
			 * Called when a touch event is dispatched to a view. This allows listeners to get a chance to respond before the target view.
			 * @param v The view the touch event has been dispatched to.
			 * @param event The MotionEvent object containing full information about
			 */
			onTouch(v: android.view.View, event: android.view.MotionEvent): boolean;
		}
		export module ZoomButtonsController {
			/**
			 * Interface that will be called when the user performs an interaction that triggers some action, for example zooming.
			 */
			interface IOnZoomListener {
				/**
				 * Called when the zoom controls' visibility changes.
				 * @param visible Whether the zoom controls are visible.
				 */
				onVisibilityChanged(visible: boolean): void;
				/**
				 * Called when the owner view needs to be zoomed.
				 * @param zoomIn The direction of the zoom: true to zoom in, false to zoom out.
				 */
				onZoom(zoomIn: boolean): void;
			}
			export class Container extends android.widget.FrameLayout {
				static class: java.lang.Class<android.widget.ZoomButtonsController.Container>;
				public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			}
			/**
			 * Interface that will be called when the user performs an interaction that triggers some action, for example zooming.
			 */
			export class OnZoomListener implements android.widget.ZoomButtonsController.IOnZoomListener {
				constructor(implementation: android.widget.ZoomButtonsController.IOnZoomListener);
				/**
				 * Called when the zoom controls' visibility changes.
				 * @param visible Whether the zoom controls are visible.
				 */
				public onVisibilityChanged(visible: boolean): void;
				/**
				 * Called when the owner view needs to be zoomed.
				 * @param zoomIn The direction of the zoom: true to zoom in, false to zoom out.
				 */
				public onZoom(zoomIn: boolean): void;
			}
		}
		/**
		 * This class contains the implementation of text segment iterators for accessibility support.
		 */
		export class AccessibilityIterators extends java.lang.Object {
			static class: java.lang.Class<android.widget.AccessibilityIterators>;
		}
		export module AccessibilityIterators {
			export class LineTextSegmentIterator extends java.lang.Object {
				static class: java.lang.Class<android.widget.AccessibilityIterators.LineTextSegmentIterator>;
				public static getInstance(): android.widget.AccessibilityIterators.LineTextSegmentIterator;
				public initialize(text: android.text.ISpannable, layout: android.text.Layout): void;
				public following(offset: number): native.Array<number>;
				public preceding(offset: number): native.Array<number>;
				protected getLineEdgeIndex(lineNumber: number, direction: number): number;
			}
			export class PageTextSegmentIterator extends android.widget.AccessibilityIterators.LineTextSegmentIterator {
				static class: java.lang.Class<android.widget.AccessibilityIterators.PageTextSegmentIterator>;
				public static getInstance(): android.widget.AccessibilityIterators.PageTextSegmentIterator;
				public initialize(view: android.widget.TextView): void;
				public following(offset: number): native.Array<number>;
				public preceding(offset: number): native.Array<number>;
				initialize(text: android.text.ISpannable, layout: android.text.Layout): void;
			}
		}
		export class TabWidget extends android.widget.LinearLayout implements android.view.View.IOnFocusChangeListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.TabWidget>;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			protected getChildDrawingOrder(childCount: number, i: number): number;
			measureChildBeforeLayout(child: android.view.View, childIndex: number, widthMeasureSpec: number, totalWidth: number, heightMeasureSpec: number, totalHeight: number): void;
			measureHorizontal(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * Returns the tab indicator view at the given index.
			 * @param index the zero-based index of the tab indicator view to return
			 */
			public getChildTabViewAt(index: number): android.view.View;
			/**
			 * Returns the number of tab indicator views.
			 */
			public getTabCount(): number;
			/**
			 * Sets the drawable to use as a divider between the tab indicators.
			 * @param drawable the divider drawable
			 */
			public setDividerDrawable(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the drawable to use as a divider between the tab indicators.
			 * @param resId the resource identifier of the drawable to use as a
			 */
			public setDividerDrawable(resId: number): void;
			/**
			 * Sets the drawable to use as the left part of the strip below the tab indicators.
			 * @param drawable the left strip drawable
			 */
			public setLeftStripDrawable(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the drawable to use as the left part of the strip below the tab indicators.
			 * @param resId the resource identifier of the drawable to use as the
			 */
			public setLeftStripDrawable(resId: number): void;
			/**
			 * Sets the drawable to use as the right part of the strip below the tab indicators.
			 * @param drawable the right strip drawable
			 */
			public setRightStripDrawable(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the drawable to use as the right part of the strip below the tab indicators.
			 * @param resId the resource identifier of the drawable to use as the
			 */
			public setRightStripDrawable(resId: number): void;
			/**
			 * Controls whether the bottom strips on the tab indicators are drawn or not. The default is to draw them. If the user specifies a custom view for the tab indicators, then the TabHost class calls this method to disable drawing of the bottom strips.
			 * @param stripEnabled true if the bottom strips should be drawn.
			 */
			public setStripEnabled(stripEnabled: boolean): void;
			/**
			 * Indicates whether the bottom strips on the tab indicators are drawn or not.
			 */
			public isStripEnabled(): boolean;
			public childDrawableStateChanged(child: android.view.View): void;
			public dispatchDraw(canvas: android.graphics.Canvas): void;
			/**
			 * Sets the current tab. This method is used to bring a tab to the front of the Widget, and is used to post to the rest of the UI that a different tab has been brought to the foreground.
			 * @param index The tab that you want to indicate as the selected
			 */
			public setCurrentTab(index: number): void;
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public sendAccessibilityEventUnchecked(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Sets the current tab and focuses the UI on it. This method makes sure that the focused tab matches the selected tab, normally at #setCurrentTab. Normally this would not be an issue if we go through the UI, since the UI is responsible for calling TabWidget.onFocusChanged(), but in the case where we are selecting the tab programmatically, we'll need to make sure focus keeps up.
			 * @param index The tab that you want focused (highlighted in orange)
			 */
			public focusCurrentTab(index: number): void;
			public setEnabled(enabled: boolean): void;
			public addView(child: android.view.View): void;
			public removeAllViews(): void;
			/**
			 * Provides a way for TabHost to be notified that the user clicked on a tab indicator.
			 */
			setTabSelectionListener(listener: android.widget.TabWidget.IOnTabSelectionChanged): void;
			/**
			 * 
			 */
			public onFocusChange(v: android.view.View, hasFocus: boolean): void;
			/**
			 * Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child. 
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 */
			addView(child: android.view.View, index: number): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param params the layout parameters to set on the child
			 */
			addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 * @param params the layout parameters to set on the child
			 */
			addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
		}
		export module TabWidget {
			/**
			 * Let TabHost know that the user clicked on a tab indicator.
			 */
			export class OnTabSelectionChanged implements android.widget.TabWidget.IOnTabSelectionChanged {
				constructor(implementation: android.widget.TabWidget.IOnTabSelectionChanged);
				/**
				 * Informs the TabHost which tab was selected. It also indicates if the tab was clicked/pressed or just focused into.
				 * @param tabIndex index of the tab that was selected
				 * @param clicked whether the selection changed due to a touch/click
				 */
				public onTabSelectionChanged(tabIndex: number, clicked: boolean): void;
			}
			/**
			 * Let TabHost know that the user clicked on a tab indicator.
			 */
			interface IOnTabSelectionChanged {
				/**
				 * Informs the TabHost which tab was selected. It also indicates if the tab was clicked/pressed or just focused into.
				 * @param tabIndex index of the tab that was selected
				 * @param clicked whether the selection changed due to a touch/click
				 */
				onTabSelectionChanged(tabIndex: number, clicked: boolean): void;
			}
			export class TabClickListener extends java.lang.Object implements android.view.View.IOnClickListener {
				static class: java.lang.Class<android.widget.TabWidget.TabClickListener>;
				public onClick(v: android.view.View): void;
			}
		}
		/**
		 * This class performs the graphical effect used at the edges of scrollable widgets when the user scrolls beyond the content bounds in 2D space.
		 */
		export class EdgeEffect extends java.lang.Object {
			/**
			 * Construct a new EdgeEffect with a theme appropriate for the provided context.
			 * @param context Context used to provide theming and resource information for the EdgeEffect
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.widget.EdgeEffect>;
			/**
			 * Set the size of this edge effect in pixels.
			 * @param width Effect width in pixels
			 * @param height Effect height in pixels
			 */
			public setSize(width: number, height: number): void;
			/**
			 * Set the position of this edge effect in pixels. This position is only used by #getBounds(boolean). 
			 * @param x The position of the edge effect on the X axis
			 * @param y The position of the edge effect on the Y axis
			 */
			setPosition(x: number, y: number): void;
			/**
			 * Reports if this EdgeEffect's animation is finished. If this method returns false after a call to #draw(Canvas) the host widget should schedule another drawing pass to continue the animation.
			 */
			public isFinished(): boolean;
			/**
			 * Immediately finish the current animation. After this call #isFinished() will return true.
			 */
			public finish(): void;
			/**
			 * A view should call this when content is pulled away from an edge by the user. This will update the state of the current visual effect and its associated animation. The host view should always android.view.View#invalidate() after this and draw the results accordingly.
			 * @param deltaDistance Change in distance since the last call. Values may be 0 (no change) to
			 */
			public onPull(deltaDistance: number): void;
			/**
			 * Call when the object is released after being pulled. This will begin the "decay" phase of the effect. After calling this method the host view should android.view.View#invalidate() and thereby draw the results accordingly.
			 */
			public onRelease(): void;
			/**
			 * Call when the effect absorbs an impact at the given velocity. Used when a fling reaches the scroll boundary.
			 * @param velocity Velocity at impact in pixels per second.
			 */
			public onAbsorb(velocity: number): void;
			/**
			 * Draw into the provided canvas. Assumes that the canvas has been rotated accordingly and the size has been set. The effect will be drawn the full width of X=0 to X=width, beginning from Y=0 and extending to some factor < 1.f of height.
			 * @param canvas Canvas to draw into
			 */
			public draw(canvas: android.graphics.Canvas): boolean;
		}
		/**
		 * This class can be used by external clients of CursorAdapter and CursorTreeAdapter to define how the content of the adapter should be filtered. #runQuery(CharSequence)
		 */
		export class FilterQueryProvider implements android.widget.IFilterQueryProvider {
			constructor(implementation: android.widget.IFilterQueryProvider);
			/**
			 * Runs a query with the specified constraint. This query is requested by the filter attached to this adapter.
			 * @param constraint the constraint with which the query must
			 */
			public runQuery(constraint: string): android.database.ICursor;
		}
		/**
		 * TextViewTest tests TextView.
		 */
		export class TextViewTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.widget.TextViewTest>;
			public testArray(): void;
		}
		/**
		 * A layout that places its children in a rectangular <em>grid</em>.
		 */
		export class GridLayout extends android.view.ViewGroup {
			/**
			 * 
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * 
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * 
			 */
			constructor(context: android.content.Context);
			/**
			 * The horizontal orientation.
			 */
			static HORIZONTAL: number;
			/**
			 * The vertical orientation.
			 */
			static VERTICAL: number;
			/**
			 * The constant used to indicate that a value is undefined. Fields can use this value to indicate that their values have not yet been set. Similarly, methods can return this value to indicate that there is no suitable value that the implementation can return. The value used for the constant (currently Integer#MIN_VALUE) is intended to avoid confusion between valid values whose sign may not be known.
			 */
			static UNDEFINED: number;
			/**
			 * This constant is an #setAlignmentMode(int) alignmentMode. When the alignmentMode is set to #ALIGN_BOUNDS, alignment is made between the edges of each component's raw view boundary: i.e. the area delimited by the component's: android.view.View#getTop() top, android.view.View#getLeft() left, android.view.View#getBottom() bottom and android.view.View#getRight() right properties.
			 */
			static ALIGN_BOUNDS: number;
			/**
			 * This constant is an #setAlignmentMode(int) alignmentMode. When the alignmentMode is set to #ALIGN_MARGINS, the bounds of each view are extended outwards, according to their margins, before the edges of the resulting rectangle are aligned.
			 */
			static ALIGN_MARGINS: number;
			/**
			 * Indicates that a view should be aligned with the <em>top</em> edges of the other views in its cell group.
			 */
			static TOP: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should be aligned with the <em>bottom</em> edges of the other views in its cell group.
			 */
			static BOTTOM: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should be aligned with the <em>start</em> edges of the other views in its cell group.
			 */
			static START: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should be aligned with the <em>end</em> edges of the other views in its cell group.
			 */
			static END: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should be aligned with the <em>left</em> edges of the other views in its cell group.
			 */
			static LEFT: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should be aligned with the <em>right</em> edges of the other views in its cell group.
			 */
			static RIGHT: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should be <em>centered</em> with the other views in its cell group. This constant may be used in both LayoutParams#rowSpec rowSpecs and LayoutParams#columnSpec columnSpecs.
			 */
			static CENTER: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should be aligned with the <em>baselines</em> of the other views in its cell group. This constant may only be used as an alignment in LayoutParams#rowSpec rowSpecs.
			 */
			static BASELINE: android.widget.GridLayout.Alignment;
			/**
			 * Indicates that a view should expanded to fit the boundaries of its cell group. This constant may be used in both LayoutParams#rowSpec rowSpecs and LayoutParams#columnSpec columnSpecs.
			 */
			static FILL: android.widget.GridLayout.Alignment;
			static class: java.lang.Class<android.widget.GridLayout>;
			/**
			 * Returns the current orientation.
			 */
			public getOrientation(): number;
			/**
			 * @param orientation either {@link #HORIZONTAL} or {@link #VERTICAL}
			 */
			public setOrientation(orientation: number): void;
			/**
			 * Returns the current number of rows. This is either the last value that was set with #setRowCount(int) or, if no such value was set, the maximum value of each the upper bounds defined in LayoutParams#rowSpec.
			 */
			public getRowCount(): number;
			/**
			 * RowCount is used only to generate default row/column indices when they are not specified by a component's layout parameters.
			 * @param rowCount the number of rows
			 */
			public setRowCount(rowCount: number): void;
			/**
			 * Returns the current number of columns. This is either the last value that was set with #setColumnCount(int) or, if no such value was set, the maximum value of each the upper bounds defined in LayoutParams#columnSpec.
			 */
			public getColumnCount(): number;
			/**
			 * ColumnCount is used only to generate default column/column indices when they are not specified by a component's layout parameters.
			 * @param columnCount the number of columns.
			 */
			public setColumnCount(columnCount: number): void;
			/**
			 * Returns whether or not this GridLayout will allocate default margins when no corresponding layout parameters are defined.
			 */
			public getUseDefaultMargins(): boolean;
			/**
			 * When true, GridLayout allocates default margins around children based on the child's visual characteristics. Each of the margins so defined may be independently overridden by an assignment to the appropriate layout parameter.
			 * @param useDefaultMargins use {@code true} to make GridLayout allocate default margins
			 */
			public setUseDefaultMargins(useDefaultMargins: boolean): void;
			/**
			 * Returns the alignment mode.
			 */
			public getAlignmentMode(): number;
			/**
			 * Sets the alignment mode to be used for all of the alignments between the children of this container.
			 * @param alignmentMode either {@link #ALIGN_BOUNDS} or {@link #ALIGN_MARGINS}
			 */
			public setAlignmentMode(alignmentMode: number): void;
			/**
			 * Returns whether or not row boundaries are ordered by their grid indices.
			 */
			public isRowOrderPreserved(): boolean;
			/**
			 * When this property is true, GridLayout is forced to place the row boundaries so that their associated grid indices are in ascending order in the view.
			 * @param rowOrderPreserved {@code true} to force GridLayout to respect the order
			 */
			public setRowOrderPreserved(rowOrderPreserved: boolean): void;
			/**
			 * Returns whether or not column boundaries are ordered by their grid indices.
			 */
			public isColumnOrderPreserved(): boolean;
			/**
			 * When this property is true, GridLayout is forced to place the column boundaries so that their associated grid indices are in ascending order in the view.
			 * @param columnOrderPreserved use {@code true} to force GridLayout to respect the order
			 */
			public setColumnOrderPreserved(columnOrderPreserved: boolean): void;
			static max2(a: native.Array<number>, valueIfEmpty: number): number;
			static append<T>(a: native.Array<T>, b: native.Array<T>): native.Array<T>;
			static getAlignment(gravity: number, horizontal: boolean): android.widget.GridLayout.Alignment;
			getMargin1(view: android.view.View, horizontal: boolean, leading: boolean): number;
			getLayoutParams(c: android.view.View): android.widget.GridLayout.LayoutParams;
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			protected generateDefaultLayoutParams(): android.widget.GridLayout.LayoutParams;
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.GridLayout.LayoutParams;
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.widget.GridLayout.LayoutParams;
			protected onMeasure(widthSpec: number, heightSpec: number): void;
			getMeasurementIncludingMargin(c: android.view.View, horizontal: boolean): number;
			public requestLayout(): void;
			getAlignment(alignment: android.widget.GridLayout.Alignment, horizontal: boolean): android.widget.GridLayout.Alignment;
			/**
			 * 
			 */
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + size] </li> <li> spec.alignment = alignment </li> </ul>
			 * @param start the start
			 * @param size the size
			 * @param alignment the alignment
			 */
			public static spec(start: number, size: number, alignment: android.widget.GridLayout.Alignment): android.widget.GridLayout.Spec;
			/**
			 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + 1] </li> <li> spec.alignment = alignment </li> </ul>
			 * @param start the start index
			 * @param alignment the alignment
			 */
			public static spec(start: number, alignment: android.widget.GridLayout.Alignment): android.widget.GridLayout.Spec;
			/**
			 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + size] </li> </ul>
			 * @param start the start
			 * @param size the size
			 */
			public static spec(start: number, size: number): android.widget.GridLayout.Spec;
			/**
			 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + 1] </li> </ul>
			 * @param start the start index
			 */
			public static spec(start: number): android.widget.GridLayout.Spec;
			static canStretch(flexibility: number): boolean;
			/**
			 * Get the LayoutParams associated with this view. All views should have layout parameters. These supply parameters to the <i>parent</i> of this view specifying how it should be arranged. There are many subclasses of ViewGroup.LayoutParams, and these correspond to the different subclasses of ViewGroup that are responsible for arranging their children.
			 */
			getLayoutParams(): android.view.ViewGroup.LayoutParams;
		}
		export module GridLayout {
			/**
			 * Alignments specify where a view should be placed within a cell group and what size it should be.
			 */
			export class Alignment extends java.lang.Object {
				static class: java.lang.Class<android.widget.GridLayout.Alignment>;
				getGravityOffset(view: android.view.View, cellDelta: number): number;
				/**
				 * Returns an alignment value. In the case of vertical alignments the value returned should indicate the distance from the top of the view to the alignment location. For horizontal alignments measurement is made from the left edge of the component.
				 * @param view the view to which this alignment should be applied
				 * @param viewSize the measured size of the view
				 * @param mode the basis of alignment: CLIP or OPTICAL
				 */
				getAlignmentValue(view: android.view.View, viewSize: number, mode: number): number;
				/**
				 * Returns the size of the view specified by this alignment. In the case of vertical alignments this method should return a height; for horizontal alignments this method should return the width.
				 * @param view the view to which this alignment should be applied
				 * @param viewSize the measured size of the view
				 * @param cellSize the size of the cell into which this view will be placed
				 */
				getSizeInCell(view: android.view.View, viewSize: number, cellSize: number): number;
				getBounds(): android.widget.GridLayout.Bounds;
			}
			/**
			 * Layout information associated with each of the children of a GridLayout.
			 */
			export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
				/**
				 * Constructs a new LayoutParams instance for this <code>rowSpec</code> and <code>columnSpec</code>. All other fields are initialized with default values as defined in LayoutParams.
				 * @param rowSpec the rowSpec
				 * @param columnSpec the columnSpec
				 */
				constructor(rowSpec: android.widget.GridLayout.Spec, columnSpec: android.widget.GridLayout.Spec);
				/**
				 * Constructs a new LayoutParams with default values as defined in LayoutParams.
				 */
				constructor();
				/**
				 * 
				 */
				constructor(params: android.view.ViewGroup.LayoutParams);
				/**
				 * 
				 */
				constructor(params: android.view.ViewGroup.MarginLayoutParams);
				/**
				 * 
				 */
				constructor(that: android.widget.GridLayout.LayoutParams);
				/**
				 * 
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * The spec that defines the vertical characteristics of the cell group described by these layout parameters. If an assignment is made to this field after a measurement or layout operation has already taken place, a call to ViewGroup#setLayoutParams(ViewGroup.LayoutParams) must be made to notify GridLayout of the change. GridLayout is normally able to detect when code fails to observe this rule, issue a warning and take steps to compensate for the omission. This facility is implemented on a best effort basis and should not be relied upon in production code - so it is best to include the above calls to remove the warnings as soon as it is practical.
				 */
				rowSpec: android.widget.GridLayout.Spec;
				/**
				 * The spec that defines the horizontal characteristics of the cell group described by these layout parameters. If an assignment is made to this field after a measurement or layout operation has already taken place, a call to ViewGroup#setLayoutParams(ViewGroup.LayoutParams) must be made to notify GridLayout of the change. GridLayout is normally able to detect when code fails to observe this rule, issue a warning and take steps to compensate for the omission. This facility is implemented on a best effort basis and should not be relied upon in production code - so it is best to include the above calls to remove the warnings as soon as it is practical.
				 */
				columnSpec: android.widget.GridLayout.Spec;
				static class: java.lang.Class<android.widget.GridLayout.LayoutParams>;
				/**
				 * Describes how the child views are positioned. Default is LEFT | BASELINE. See Gravity.
				 * @param gravity the new gravity value
				 */
				public setGravity(gravity: number): void;
				protected setBaseAttributes(attributes: android.content.res.TypedArray, widthAttr: number, heightAttr: number): void;
				setRowSpecSpan(span: android.widget.GridLayout.Interval): void;
				setColumnSpecSpan(span: android.widget.GridLayout.Interval): void;
				public equals(o: any): boolean;
				public hashCode(): number;
			}
			export class Arc extends java.lang.Object {
				constructor(span: android.widget.GridLayout.Interval, value: android.widget.GridLayout.MutableInt);
				span: android.widget.GridLayout.Interval;
				value: android.widget.GridLayout.MutableInt;
				valid: boolean;
				static class: java.lang.Class<android.widget.GridLayout.Arc>;
				public toString(): string;
			}
			export class PackedMap<K, V> extends java.lang.Object {
				index: native.Array<number>;
				keys: native.Array<K>;
				values: native.Array<V>;
				static class: java.lang.Class<android.widget.GridLayout.PackedMap<any, any>>;
				public getValue(i: number): V;
			}
			export class MutableInt extends java.lang.Object {
				constructor();
				constructor(value: number);
				value: number;
				static class: java.lang.Class<android.widget.GridLayout.MutableInt>;
				public reset(): void;
				public toString(): string;
			}
			export class Bounds extends java.lang.Object {
				before: number;
				after: number;
				flexibility: number;
				static class: java.lang.Class<android.widget.GridLayout.Bounds>;
				protected reset(): void;
				protected include(before: number, after: number): void;
				protected size(min: boolean): number;
				protected getOffset(gl: android.widget.GridLayout, c: android.view.View, a: android.widget.GridLayout.Alignment, size: number, horizontal: boolean): number;
				protected include(gl: android.widget.GridLayout, c: android.view.View, spec: android.widget.GridLayout.Spec, axis: android.widget.GridLayout.Axis): void;
				public toString(): string;
			}
			export class Assoc<K, V> extends java.util.ArrayList<android.util.Pair<K, V>> {
				static class: java.lang.Class<android.widget.GridLayout.Assoc<any, any>>;
				public static of<K, V>(keyType: java.lang.Class<K>, valueType: java.lang.Class<V>): android.widget.GridLayout.Assoc<K, V>;
				public put(key: K, value: V): void;
				public pack(): android.widget.GridLayout.PackedMap<K, V>;
			}
			/**
			 * A Spec defines the horizontal or vertical characteristics of a group of cells. Each spec. defines the <em>grid indices</em> and <em>alignment</em> along the appropriate axis.
			 */
			export class Spec extends java.lang.Object {
				static class: java.lang.Class<android.widget.GridLayout.Spec>;
				copyWriteSpan(span: android.widget.GridLayout.Interval): android.widget.GridLayout.Spec;
				copyWriteAlignment(alignment: android.widget.GridLayout.Alignment): android.widget.GridLayout.Spec;
				getFlexibility(): number;
				/**
				 * Returns true if the class, alignment and span properties of this Spec and the supplied parameter are pairwise equal, false otherwise.
				 * @param that the object to compare this spec with
				 */
				public equals(that: any): boolean;
				public hashCode(): number;
			}
			export class Axis extends java.lang.Object {
				horizontal: boolean;
				definedCount: number;
				groupBoundsValid: boolean;
				forwardLinksValid: boolean;
				backwardLinksValid: boolean;
				leadingMargins: native.Array<number>;
				leadingMarginsValid: boolean;
				trailingMargins: native.Array<number>;
				trailingMarginsValid: boolean;
				arcs: native.Array<android.widget.GridLayout.Arc>;
				arcsValid: boolean;
				locations: native.Array<number>;
				locationsValid: boolean;
				static class: java.lang.Class<android.widget.GridLayout.Axis>;
				public getCount(): number;
				public setCount(count: number): void;
				public isOrderPreserved(): boolean;
				public setOrderPreserved(orderPreserved: boolean): void;
				public getGroupBounds(): android.widget.GridLayout.PackedMap<android.widget.GridLayout.Spec, android.widget.GridLayout.Bounds>;
				groupArcsByFirstVertex(arcs: native.Array<android.widget.GridLayout.Arc>): native.Array<native.Array<android.widget.GridLayout.Arc>>;
				public getArcs(): native.Array<android.widget.GridLayout.Arc>;
				public getLeadingMargins(): native.Array<number>;
				public getTrailingMargins(): native.Array<number>;
				public getLocations(): native.Array<number>;
				public getMeasure(measureSpec: number): number;
				public layout(size: number): void;
				public invalidateStructure(): void;
				public invalidateValues(): void;
			}
			/**
			 * An Interval represents a contiguous range of values that lie between the interval's #min and #max values.
			 */
			export class Interval extends java.lang.Object {
				/**
				 * Construct a new Interval, interval, where: <ul> <li> interval.min = min </li> <li> interval.max = max </li> </ul>
				 * @param min the minimum value.
				 * @param max the maximum value.
				 */
				constructor(min: number, max: number);
				/**
				 * The minimum value.
				 */
				min: number;
				/**
				 * The maximum value.
				 */
				max: number;
				static class: java.lang.Class<android.widget.GridLayout.Interval>;
				size(): number;
				inverse(): android.widget.GridLayout.Interval;
				/**
				 * Returns true if the #getClass class, #min and #max properties of this Interval and the supplied parameter are pairwise equal; false otherwise.
				 * @param that the object to compare this interval with
				 */
				public equals(that: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
		}
		export class ImageButton extends android.widget.ImageView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.ImageButton>;
			protected onSetAlpha(alpha: number): boolean;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		/**
		 * An easy adapter to map columns from a cursor to TextViews or ImageViews defined in an XML file. You can specify which columns you want, which views you want to display the columns, and the XML file that defines the appearance of these views.
		 */
		export class SimpleCursorAdapter extends android.widget.ResourceCursorAdapter {
			/**
			 * Constructor the enables auto-requery.
			 */
			constructor(context: android.content.Context, layout: number, c: android.database.ICursor, from: native.Array<string>, to: native.Array<number>);
			/**
			 * Standard constructor. 
			 * @param context The context where the ListView associated with this
			 * @param layout resource identifier of a layout file that defines the views
			 * @param c The database cursor. Can be null if the cursor is not available yet.
			 * @param from A list of column names representing the data to bind to the UI. Can be null
			 * @param to The views that should display column in the "from" parameter.
			 * @param flags Flags used to determine the behavior of the adapter,
			 */
			constructor(context: android.content.Context, layout: number, c: android.database.ICursor, from: native.Array<string>, to: native.Array<number>, flags: number);
			static class: java.lang.Class<android.widget.SimpleCursorAdapter>;
			/**
			 * Binds all of the field names passed into the "to" parameter of the constructor with their corresponding cursor columns as specified in the "from" parameter.
			 */
			public bindView(view: android.view.View, context: android.content.Context, cursor: android.database.ICursor): void;
			/**
			 * Returns the ViewBinder used to bind data to views.
			 */
			public getViewBinder(): android.widget.SimpleCursorAdapter.IViewBinder;
			/**
			 * Sets the binder used to bind data to views.
			 * @param viewBinder the binder used to bind data to views, can be null to
			 */
			public setViewBinder(viewBinder: android.widget.SimpleCursorAdapter.IViewBinder): void;
			/**
			 * Called by bindView() to set the image for an ImageView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to an ImageView.
			 * @param v ImageView to receive an image
			 * @param value the value retrieved from the cursor
			 */
			public setViewImage(v: android.widget.ImageView, value: string): void;
			/**
			 * Called by bindView() to set the text for a TextView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to a TextView.
			 * @param v TextView to receive text
			 * @param text the text to be set for the TextView
			 */
			public setViewText(v: android.widget.TextView, text: string): void;
			/**
			 * Return the index of the column used to get a String representation of the Cursor.
			 */
			public getStringConversionColumn(): number;
			/**
			 * Defines the index of the column in the Cursor used to get a String representation of that Cursor. The column is used to convert the Cursor to a String only when the current CursorToStringConverter is null.
			 * @param stringConversionColumn a valid index in the current Cursor or -1 to use the default
			 */
			public setStringConversionColumn(stringConversionColumn: number): void;
			/**
			 * Returns the converter used to convert the filtering Cursor into a String.
			 */
			public getCursorToStringConverter(): android.widget.SimpleCursorAdapter.ICursorToStringConverter;
			/**
			 * Sets the converter used to convert the filtering Cursor into a String.
			 * @param cursorToStringConverter the Cursor to String converter, or
			 */
			public setCursorToStringConverter(cursorToStringConverter: android.widget.SimpleCursorAdapter.ICursorToStringConverter): void;
			/**
			 * Returns a CharSequence representation of the specified Cursor as defined by the current CursorToStringConverter. If no CursorToStringConverter has been set, the String conversion column is used instead. If the conversion column is -1, the returned String is empty if the cursor is null or Cursor.toString().
			 * @param cursor the Cursor to convert to a CharSequence
			 */
			public convertToString(cursor: android.database.ICursor): string;
			public swapCursor(c: android.database.ICursor): android.database.ICursor;
			/**
			 * Change the cursor and change the column-to-view mappings at the same time. 
			 * @param c The database cursor. Can be null if the cursor is not available yet.
			 * @param from A list of column names representing the data to bind to the UI. Can be null
			 * @param to The views that should display column in the "from" parameter.
			 */
			public changeCursorAndColumns(c: android.database.ICursor, from: native.Array<string>, to: native.Array<number>): void;
		}
		export module SimpleCursorAdapter {
			/**
			 * This class can be used by external clients of SimpleCursorAdapter to bind values fom the Cursor to views.
			 */
			interface IViewBinder {
				/**
				 * Binds the Cursor column defined by the specified index to the specified view.
				 * @param view the view to bind the data to
				 * @param cursor the cursor to get the data from
				 * @param columnIndex the column at which the data can be found in the cursor
				 */
				setViewValue(view: android.view.View, cursor: android.database.ICursor, columnIndex: number): boolean;
			}
			/**
			 * This class can be used by external clients of SimpleCursorAdapter to define how the Cursor should be converted to a String.
			 */
			interface ICursorToStringConverter {
				/**
				 * Returns a CharSequence representing the specified Cursor.
				 * @param cursor the cursor for which a CharSequence representation
				 */
				convertToString(cursor: android.database.ICursor): string;
			}
			/**
			 * This class can be used by external clients of SimpleCursorAdapter to bind values fom the Cursor to views.
			 */
			export class ViewBinder implements android.widget.SimpleCursorAdapter.IViewBinder {
				constructor(implementation: android.widget.SimpleCursorAdapter.IViewBinder);
				/**
				 * Binds the Cursor column defined by the specified index to the specified view.
				 * @param view the view to bind the data to
				 * @param cursor the cursor to get the data from
				 * @param columnIndex the column at which the data can be found in the cursor
				 */
				public setViewValue(view: android.view.View, cursor: android.database.ICursor, columnIndex: number): boolean;
			}
			/**
			 * This class can be used by external clients of SimpleCursorAdapter to define how the Cursor should be converted to a String.
			 */
			export class CursorToStringConverter implements android.widget.SimpleCursorAdapter.ICursorToStringConverter {
				constructor(implementation: android.widget.SimpleCursorAdapter.ICursorToStringConverter);
				/**
				 * Returns a CharSequence representing the specified Cursor.
				 * @param cursor the cursor for which a CharSequence representation
				 */
				public convertToString(cursor: android.database.ICursor): string;
			}
		}
		export class StackView extends android.widget.AdapterViewAnimator {
			/**
			 * 
			 */
			constructor(context: android.content.Context);
			/**
			 * 
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * 
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
			static class: java.lang.Class<android.widget.StackView>;
			StackSlider: {
	new (): android.widget.StackView.StackSlider;
	new (copy: android.widget.StackView.StackSlider): android.widget.StackView.StackSlider;
};
			/**
			 * Animate the views between different relative indexes within the AdapterViewAnimator
			 */
			transformViewForTransition(fromIndex: number, toIndex: number, view: android.view.View, animate: boolean): void;
			/**
			 * 
			 */
			public showNext(): void;
			/**
			 * 
			 */
			public showPrevious(): void;
			showOnly(childIndex: number, animate: boolean): void;
			updateClickFeedback(): void;
			showTapFeedback(v: android.view.View): void;
			hideTapFeedback(v: android.view.View): void;
			getFrameForChild(): android.widget.FrameLayout;
			/**
			 * Apply any necessary tranforms for the child that is being added.
			 */
			applyTransformForChildAtIndex(child: android.view.View, relativeIndex: number): void;
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			public onInterceptTouchEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
			createOrReuseLayoutParams(v: android.view.View): android.widget.StackView.LayoutParams;
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			public advance(): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
		}
		export module StackView {
			export class HolographicHelper extends java.lang.Object {
				static class: java.lang.Class<android.widget.StackView.HolographicHelper>;
				createClickOutline(v: android.view.View, color: number): android.graphics.Bitmap;
				createResOutline(v: android.view.View, color: number): android.graphics.Bitmap;
				createOutline(v: android.view.View, type: number, color: number): android.graphics.Bitmap;
				drawOutline(dest: android.graphics.Canvas, src: android.graphics.Bitmap): void;
			}
			export class LayoutParams extends android.view.ViewGroup.LayoutParams {
				static class: java.lang.Class<android.widget.StackView.LayoutParams>;
				invalidateGlobalRegion(v: android.view.View, r: android.graphics.Rect): void;
				getInvalidateRect(): android.graphics.Rect;
				resetInvalidateRect(): void;
				public setVerticalOffset(newVerticalOffset: number): void;
				public setHorizontalOffset(newHorizontalOffset: number): void;
				public setOffsets(newHorizontalOffset: number, newVerticalOffset: number): void;
			}
			export class StackFrame extends android.widget.FrameLayout {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.widget.StackView.StackFrame>;
				setTransformAnimator(oa: android.animation.ObjectAnimator): void;
				setSliderAnimator(oa: android.animation.ObjectAnimator): void;
				cancelTransformAnimator(): boolean;
				cancelSliderAnimator(): boolean;
			}
			export class StackSlider extends java.lang.Object {
				static class: java.lang.Class<android.widget.StackView.StackSlider>;
				setView(v: android.view.View): void;
				public setYProgress(r: number): void;
				public setXProgress(r: number): void;
				setMode(mode: number): void;
				getDurationForNeutralPosition(): number;
				getDurationForOffscreenPosition(): number;
				getDurationForNeutralPosition(velocity: number): number;
				getDurationForOffscreenPosition(velocity: number): number;
				public getYProgress(): number;
				public getXProgress(): number;
			}
		}
		export class TableLayout extends android.widget.LinearLayout {
			/**
			 * @param context the application environment
			 */
			constructor(context: android.content.Context);
			/**
			 * @param context the application environment
			 * @param attrs a collection of attributes
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.TableLayout>;
			/**
			 * 
			 */
			public setOnHierarchyChangeListener(listener: android.view.ViewGroup.IOnHierarchyChangeListener): void;
			/**
			 * 
			 */
			public requestLayout(): void;
			public isShrinkAllColumns(): boolean;
			/**
			 * @param shrinkAllColumns true to mark all columns shrinkable
			 */
			public setShrinkAllColumns(shrinkAllColumns: boolean): void;
			public isStretchAllColumns(): boolean;
			/**
			 * @param stretchAllColumns true to mark all columns stretchable
			 */
			public setStretchAllColumns(stretchAllColumns: boolean): void;
			/**
			 * @param columnIndex the index of the column
			 * @param isCollapsed true if the column must be collapsed, false otherwise
			 */
			public setColumnCollapsed(columnIndex: number, isCollapsed: boolean): void;
			/**
			 * @param columnIndex the index of the column
			 */
			public isColumnCollapsed(columnIndex: number): boolean;
			/**
			 * @param columnIndex the index of the column
			 * @param isStretchable true if the column must be stretchable,
			 */
			public setColumnStretchable(columnIndex: number, isStretchable: boolean): void;
			/**
			 * @param columnIndex the index of the column
			 */
			public isColumnStretchable(columnIndex: number): boolean;
			/**
			 * @param columnIndex the index of the column
			 * @param isShrinkable true if the column must be shrinkable,
			 */
			public setColumnShrinkable(columnIndex: number, isShrinkable: boolean): void;
			/**
			 * @param columnIndex the index of the column
			 */
			public isColumnShrinkable(columnIndex: number): boolean;
			/**
			 * 
			 */
			public addView(child: android.view.View): void;
			/**
			 * 
			 */
			public addView(child: android.view.View, index: number): void;
			/**
			 * 
			 */
			public addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * 
			 */
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * 
			 */
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * 
			 */
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			/**
			 * 
			 */
			measureChildBeforeLayout(child: android.view.View, childIndex: number, widthMeasureSpec: number, totalWidth: number, heightMeasureSpec: number, totalHeight: number): void;
			/**
			 * 
			 */
			measureVertical(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * 
			 */
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.TableLayout.LayoutParams;
			/**
			 * Returns a set of layout parameters with a width of android.view.ViewGroup.LayoutParams#MATCH_PARENT, and a height of android.view.ViewGroup.LayoutParams#WRAP_CONTENT.
			 */
			protected generateDefaultLayoutParams(): android.widget.LinearLayout.LayoutParams;
			/**
			 * 
			 */
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			/**
			 * 
			 */
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.widget.LinearLayout.LayoutParams;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
		}
		export module TableLayout {
			export class LayoutParams extends android.widget.LinearLayout.LayoutParams {
				/**
				 * 
				 */
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * 
				 */
				constructor(w: number, h: number);
				/**
				 * 
				 */
				constructor(w: number, h: number, initWeight: number);
				constructor();
				/**
				 * 
				 */
				constructor(p: android.view.ViewGroup.LayoutParams);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.MarginLayoutParams);
				static class: java.lang.Class<android.widget.TableLayout.LayoutParams>;
				/**
				 * @param a the styled attributes set
				 * @param widthAttr the width attribute to fetch
				 * @param heightAttr the height attribute to fetch
				 */
				protected setBaseAttributes(a: android.content.res.TypedArray, widthAttr: number, heightAttr: number): void;
			}
			export class PassThroughHierarchyChangeListener extends java.lang.Object implements android.view.ViewGroup.IOnHierarchyChangeListener {
				static class: java.lang.Class<android.widget.TableLayout.PassThroughHierarchyChangeListener>;
				/**
				 * 
				 */
				public onChildViewAdded(parent: android.view.View, child: android.view.View): void;
				/**
				 * 
				 */
				public onChildViewRemoved(parent: android.view.View, child: android.view.View): void;
			}
		}
		export class ProgressBar extends android.view.View {
			/**
			 * Create a new progress bar with range 0...100 and initial progress of 0.
			 * @param context the application environment
			 */
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.ProgressBar>;
			getDrawableShape(): android.graphics.drawable.shapes.Shape;
			public isIndeterminate(): boolean;
			/**
			 * @param indeterminate true to enable the indeterminate mode
			 */
			public setIndeterminate(indeterminate: boolean): void;
			public getIndeterminateDrawable(): android.graphics.drawable.Drawable;
			/**
			 * @param d the new drawable
			 */
			public setIndeterminateDrawable(d: android.graphics.drawable.Drawable): void;
			public getProgressDrawable(): android.graphics.drawable.Drawable;
			/**
			 * @param d the new drawable
			 */
			public setProgressDrawable(d: android.graphics.drawable.Drawable): void;
			getCurrentDrawable(): android.graphics.drawable.Drawable;
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			public postInvalidate(): void;
			onProgressRefresh(scale: number, fromUser: boolean): void;
			/**
			 * @param progress the new progress, between 0 and {@link #getMax()}
			 */
			public setProgress(progress: number): void;
			setProgress(progress: number, fromUser: boolean): void;
			/**
			 * @param secondaryProgress the new secondary progress, between 0 and {@link #getMax()}
			 */
			public setSecondaryProgress(secondaryProgress: number): void;
			public getProgress(): number;
			public getSecondaryProgress(): number;
			public getMax(): number;
			/**
			 * @param max the upper range of this progress bar
			 */
			public setMax(max: number): void;
			/**
			 * @param diff the amount by which the progress must be increased
			 */
			public incrementProgressBy(diff: number): void;
			/**
			 * @param diff the amount by which the secondary progress must be increased
			 */
			public incrementSecondaryProgressBy(diff: number): void;
			startAnimation(): void;
			stopAnimation(): void;
			/**
			 * Sets the acceleration curve for the indeterminate animation. The interpolator is loaded as a resource from the specified context.
			 * @param context The application environment
			 * @param resID The resource identifier of the interpolator to load
			 */
			public setInterpolator(context: android.content.Context, resID: number): void;
			/**
			 * Sets the acceleration curve for the indeterminate animation. Defaults to a linear interpolation.
			 * @param interpolator The interpolator which defines the acceleration curve
			 */
			public setInterpolator(interpolator: android.view.animation.IInterpolator): void;
			/**
			 * Gets the acceleration curve type for the indeterminate animation.
			 */
			public getInterpolator(): android.view.animation.IInterpolator;
			public setVisibility(v: number): void;
			protected onVisibilityChanged(changedView: android.view.View, visibility: number): void;
			public invalidateDrawable(dr: android.graphics.drawable.Drawable): void;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected drawableStateChanged(): void;
			public onSaveInstanceState(): android.os.IParcelable;
			public onRestoreInstanceState(state: android.os.IParcelable): void;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * @param left The left coordinate of the rectangle to invalidate.
			 * @param top The top coordinate of the rectangle to invalidate.
			 * @param right The right coordinate of the rectangle to invalidate.
			 * @param bottom The bottom coordinate of the rectangle to invalidate.
			 */
			postInvalidate(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Start the specified animation now.
			 * @param animation the animation to start now
			 */
			startAnimation(animation: android.view.animation.Animation): void;
		}
		export module ProgressBar {
			export class RefreshProgressRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.ProgressBar.RefreshProgressRunnable>;
				public run(): void;
			}
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.ProgressBar.SavedState>;
				static class: java.lang.Class<android.widget.ProgressBar.SavedState>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
			}
			export class RefreshData extends java.lang.Object {
				id: number;
				progress: number;
				fromUser: boolean;
				static class: java.lang.Class<android.widget.ProgressBar.RefreshData>;
				public static obtain(id: number, progress: number, fromUser: boolean): android.widget.ProgressBar.RefreshData;
				public recycle(): void;
				public setNextPoolable(element: android.widget.ProgressBar.RefreshData): void;
				public getNextPoolable(): android.widget.ProgressBar.RefreshData;
				public isPooled(): boolean;
				public setPooled(isPooled: boolean): void;
			}
			/**
			 * Command for sending an accessibility event.
			 */
			export class AccessibilityEventSender extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.ProgressBar.AccessibilityEventSender>;
				public run(): void;
			}
		}
		/**
		 * The ZoomControls class displays a simple set of controls used for zooming and provides callbacks to register for events.
		 */
		export class ZoomControls extends android.widget.LinearLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.ZoomControls>;
			public setOnZoomInClickListener(listener: android.view.View.IOnClickListener): void;
			public setOnZoomOutClickListener(listener: android.view.View.IOnClickListener): void;
			public setZoomSpeed(speed: number): void;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			public show(): void;
			public hide(): void;
			public setIsZoomInEnabled(isEnabled: boolean): void;
			public setIsZoomOutEnabled(isEnabled: boolean): void;
			public hasFocus(): boolean;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		/**
		 * This is a series of tests of basic API contracts for SimpleCursorAdapter. It is incomplete and can use work. NOTE: This contract holds for underlying cursor types too and these should be extracted into a set of tests that can be run on any descendant of CursorAdapter.
		 */
		export class SimpleCursorAdapterTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.widget.SimpleCursorAdapterTest>;
			/**
			 * Set up basic columns and cursor for the tests
			 */
			public setUp(): void;
			/**
			 * Test creating with a live cursor
			 */
			public testCreateLive(): void;
			/**
			 * Test creating with a null cursor
			 */
			public testCreateNull(): void;
			/**
			 * Test changeCursor() with live cursor
			 */
			public testChangeCursorLive(): void;
			/**
			 * Test changeCursor() with null cursor
			 */
			public testChangeCursorNull(): void;
			/**
			 * Test changeCursor() with differing column layout. This confirms that the Adapter can deal with cursors that have the same essential data (as defined by the original mFrom array) but it's OK if the physical structure of the cursor changes (columns rearranged).
			 */
			public testChangeCursorColumns(): void;
			/**
			 * Test that you can safely construct with a null cursor *and* null to/from arrays. This is new functionality added in 12/2008.
			 */
			public testNullConstructor(): void;
			/**
			 * Test going from a null cursor to a non-null cursor *and* setting the to/from arrays This is new functionality added in 12/2008.
			 */
			public testChangeNullToMapped(): void;
			/**
			 * Test going from one mapping to a different mapping This is new functionality added in 12/2008.
			 */
			public testChangeMapping(): void;
		}
		export module SimpleCursorAdapterTest {
			/**
			 * This is simply a way to sneak a look at the protected mFrom() array. A more API- friendly way to do this would be to mock out a View and a ViewBinder and exercise it via those seams.
			 */
			export class TestSimpleCursorAdapter extends android.widget.SimpleCursorAdapter {
				constructor(context: android.content.Context, layout: number, c: android.database.ICursor, from: native.Array<string>, to: native.Array<number>);
				static class: java.lang.Class<android.widget.SimpleCursorAdapterTest.TestSimpleCursorAdapter>;
				getConvertedFrom(): native.Array<number>;
				getTo(): native.Array<number>;
			}
		}
		/**
		 * Displays checked/unchecked states as a button with a "light" indicator and by default accompanied with the text "ON" or "OFF".
		 */
		export class ToggleButton extends android.widget.CompoundButton {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.widget.ToggleButton>;
			public setChecked(checked: boolean): void;
			/**
			 * Returns the text for when the button is in the checked state. 
			 */
			public getTextOn(): string;
			/**
			 * Sets the text for when the button is in the checked state. 
			 * @param textOn The text.
			 */
			public setTextOn(textOn: string): void;
			/**
			 * Returns the text for when the button is not in the checked state. 
			 */
			public getTextOff(): string;
			/**
			 * Sets the text for when the button is not in the checked state. 
			 * @param textOff The text.
			 */
			public setTextOff(textOff: string): void;
			protected onFinishInflate(): void;
			public setBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
			protected drawableStateChanged(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		/**
		 * TextViewPatchTest tests TextView's definition of word. Finds and verifies word limits to be in strings containing different kinds of characters.
		 */
		export class TextViewWordLimitsTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.widget.TextViewWordLimitsTest>;
			/**
			 * Sets up common fields used in all test cases. NoSuchFieldException SecurityException
			 */
			protected setUp(): void;
			/**
			 * Corner cases for string length.
			 */
			public testLengths(): void;
			/**
			 * Unicode classes included.
			 */
			public testIncludedClasses(): void;
			/**
			 * Unicode classes included if combined with a letter.
			 */
			public testPartlyIncluded(): void;
			/**
			 * Unicode classes included if combined with a letter.
			 */
			public testFinalSeparator(): void;
			/**
			 * Unicode classes other than listed in testIncludedClasses and testPartlyIncluded act as word separators.
			 */
			public testNotIncluded(): void;
			/**
			 * Surrogate characters are treated as their code points.
			 */
			public testSurrogate(): void;
			/**
			 * Selection is used if present and valid word.
			 */
			public testSelectCurrentWord(): void;
		}
		export class ZoomButton extends android.widget.ImageButton implements android.view.View.IOnLongClickListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.ZoomButton>;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			public setZoomSpeed(speed: number): void;
			public onLongClick(v: android.view.View): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			public setEnabled(enabled: boolean): void;
			public dispatchUnhandledMove(focused: android.view.View, direction: number): boolean;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export class DialerFilter extends android.widget.RelativeLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * This mode has both lines
			 */
			static DIGITS_AND_LETTERS: number;
			/**
			 * This mode is when after starting in #DIGITS_AND_LETTERS mode the filter has removed all possibility of the digits matching, leaving only the letters line
			 */
			static DIGITS_AND_LETTERS_NO_DIGITS: number;
			/**
			 * This mode is when after starting in #DIGITS_AND_LETTERS mode the filter has removed all possibility of the letters matching, leaving only the digits line
			 */
			static DIGITS_AND_LETTERS_NO_LETTERS: number;
			/**
			 * This mode has only the digits line
			 */
			static DIGITS_ONLY: number;
			/**
			 * This mode has only the letters line
			 */
			static LETTERS_ONLY: number;
			static class: java.lang.Class<android.widget.DialerFilter>;
			protected onFinishInflate(): void;
			/**
			 * Only show the icon view when focused, if there is one.
			 */
			protected onFocusChanged(focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			public isQwertyKeyboard(): boolean;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			public getMode(): number;
			/**
			 * Change the mode of the widget.
			 * @param newMode The mode to switch to.
			 */
			public setMode(newMode: number): void;
			public getLetters(): string;
			public getDigits(): string;
			public getFilterText(): string;
			public append(text: string): void;
			/**
			 * Clears both the digits and the filter text.
			 */
			public clearText(): void;
			public setLettersWatcher(watcher: android.text.ITextWatcher): void;
			public setDigitsWatcher(watcher: android.text.ITextWatcher): void;
			public setFilterWatcher(watcher: android.text.ITextWatcher): void;
			public removeFilterWatcher(watcher: android.text.ITextWatcher): void;
			/**
			 * Called right after the mode changes to give subclasses the option to restyle, etc.
			 */
			protected onModeChange(oldMode: number, newMode: number): void;
		}
		/**
		 * A fairly simple ExpandableListAdapter that creates views defined in an XML file. You can specify the XML file that defines the appearance of the views.
		 */
		export class ResourceCursorTreeAdapter extends android.widget.BaseExpandableListAdapter {
			/**
			 * Constructor. 
			 * @param context The context where the ListView associated with this
			 * @param cursor The database cursor
			 * @param collapsedGroupLayout resource identifier of a layout file that
			 * @param expandedGroupLayout resource identifier of a layout file that
			 * @param childLayout resource identifier of a layout file that defines the
			 * @param lastChildLayout resource identifier of a layout file that defines
			 */
			constructor(context: android.content.Context, cursor: android.database.ICursor, collapsedGroupLayout: number, expandedGroupLayout: number, childLayout: number, lastChildLayout: number);
			/**
			 * Constructor. 
			 * @param context The context where the ListView associated with this
			 * @param cursor The database cursor
			 * @param collapsedGroupLayout resource identifier of a layout file that
			 * @param expandedGroupLayout resource identifier of a layout file that
			 * @param childLayout resource identifier of a layout file that defines the
			 */
			constructor(context: android.content.Context, cursor: android.database.ICursor, collapsedGroupLayout: number, expandedGroupLayout: number, childLayout: number);
			/**
			 * Constructor. 
			 * @param context The context where the ListView associated with this
			 * @param cursor The database cursor
			 * @param groupLayout resource identifier of a layout file that defines the
			 * @param childLayout resource identifier of a layout file that defines the
			 */
			constructor(context: android.content.Context, cursor: android.database.ICursor, groupLayout: number, childLayout: number);
			static class: java.lang.Class<android.widget.ResourceCursorTreeAdapter>;
			public newChildView(context: android.content.Context, cursor: android.database.ICursor, isLastChild: boolean, parent: android.view.ViewGroup): android.view.View;
			public newGroupView(context: android.content.Context, cursor: android.database.ICursor, isExpanded: boolean, parent: android.view.ViewGroup): android.view.View;
		}
		/**
		 * A helper class for adapters that implement the SectionIndexer interface. If the items in the adapter are sorted by simple alphabet-based sorting, then this class provides a way to do fast indexing of large lists using binary search. It caches the indices that have been determined through the binary search and also invalidates the cache if changes occur in the cursor. <p/> Your adapter is responsible for updating the cursor by calling #setCursor if the cursor changes. #getPositionForSection method does the binary search for the starting index of a given section (alphabet).
		 */
		export class AlphabetIndexer extends android.database.DataSetObserver implements android.widget.ISectionIndexer {
			/**
			 * Constructs the indexer.
			 * @param cursor the cursor containing the data set
			 * @param sortedColumnIndex the column number in the cursor that is sorted
			 * @param alphabet string containing the alphabet, with space as the first character.
			 */
			constructor(cursor: android.database.ICursor, sortedColumnIndex: number, alphabet: string);
			static class: java.lang.Class<android.widget.AlphabetIndexer>;
			/**
			 * Returns the section array constructed from the alphabet provided in the constructor.
			 */
			public getSections(): native.Array<any>;
			/**
			 * Sets a new cursor as the data set and resets the cache of indices.
			 * @param cursor the new cursor to use as the data set
			 */
			public setCursor(cursor: android.database.ICursor): void;
			/**
			 * Default implementation compares the first character of word with letter.
			 */
			protected compare(word: string, letter: string): number;
			/**
			 * Performs a binary search or cache lookup to find the first row that matches a given section's starting letter.
			 * @param sectionIndex the section to search for
			 */
			public getPositionForSection(sectionIndex: number): number;
			/**
			 * Returns the section index for a given position in the list by querying the item and comparing it with all items in the section array.
			 */
			public getSectionForPosition(position: number): number;
			public onChanged(): void;
			public onInvalidated(): void;
		}
		/**
		 * Base class for a FrameLayout container that will perform animations when switching between its views.
		 */
		export class ViewAnimator extends android.widget.FrameLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.ViewAnimator>;
			/**
			 * Sets which child view will be displayed.
			 * @param whichChild the index of the child view to display
			 */
			public setDisplayedChild(whichChild: number): void;
			/**
			 * Returns the index of the currently displayed child view.
			 */
			public getDisplayedChild(): number;
			/**
			 * Manually shows the next child.
			 */
			public showNext(): void;
			/**
			 * Manually shows the previous child.
			 */
			public showPrevious(): void;
			/**
			 * Shows only the specified child. The other displays Views exit the screen, optionally with the with the #getOutAnimation() out animation and the specified child enters the screen, optionally with the #getInAnimation() in animation.
			 * @param childIndex The index of the child to be shown.
			 * @param animate Whether or not to use the in and out animations, defaults
			 */
			showOnly(childIndex: number, animate: boolean): void;
			/**
			 * Shows only the specified child. The other displays Views exit the screen with the #getOutAnimation() out animation and the specified child enters the screen with the #getInAnimation() in animation.
			 * @param childIndex The index of the child to be shown.
			 */
			showOnly(childIndex: number): void;
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			public removeAllViews(): void;
			public removeView(view: android.view.View): void;
			public removeViewAt(index: number): void;
			public removeViewInLayout(view: android.view.View): void;
			public removeViews(start: number, count: number): void;
			public removeViewsInLayout(start: number, count: number): void;
			/**
			 * Returns the View corresponding to the currently displayed child.
			 */
			public getCurrentView(): android.view.View;
			/**
			 * Returns the current animation used to animate a View that enters the screen.
			 */
			public getInAnimation(): android.view.animation.Animation;
			/**
			 * Specifies the animation used to animate a View that enters the screen.
			 * @param inAnimation The animation started when a View enters the screen.
			 */
			public setInAnimation(inAnimation: android.view.animation.Animation): void;
			/**
			 * Returns the current animation used to animate a View that exits the screen.
			 */
			public getOutAnimation(): android.view.animation.Animation;
			/**
			 * Specifies the animation used to animate a View that exit the screen.
			 * @param outAnimation The animation started when a View exit the screen.
			 */
			public setOutAnimation(outAnimation: android.view.animation.Animation): void;
			/**
			 * Specifies the animation used to animate a View that enters the screen.
			 * @param context The application's environment.
			 * @param resourceID The resource id of the animation.
			 */
			public setInAnimation(context: android.content.Context, resourceID: number): void;
			/**
			 * Specifies the animation used to animate a View that exit the screen.
			 * @param context The application's environment.
			 * @param resourceID The resource id of the animation.
			 */
			public setOutAnimation(context: android.content.Context, resourceID: number): void;
			/**
			 * Returns whether the current View should be animated the first time the ViewAnimator is displayed.
			 */
			public getAnimateFirstView(): boolean;
			/**
			 * Indicates whether the current View should be animated the first time the ViewAnimator is displayed.
			 * @param animate True to animate the current View the first time it is displayed,
			 */
			public setAnimateFirstView(animate: boolean): void;
			public getBaseline(): number;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * @param child the child view to add
			 */
			addView(child: android.view.View): void;
			/**
			 * Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child. 
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 */
			addView(child: android.view.View, index: number): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param params the layout parameters to set on the child
			 */
			addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
		}
		export class AbsSeekBar extends android.widget.ProgressBar {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.AbsSeekBar>;
			/**
			 * Sets the thumb that will be drawn at the end of the progress meter within the SeekBar.
			 * @param thumb Drawable representing the thumb
			 */
			public setThumb(thumb: android.graphics.drawable.Drawable): void;
			/**
			 * Return the drawable used to represent the scroll thumb - the component that the user can drag back and forth indicating the current value by its position.
			 */
			public getThumb(): android.graphics.drawable.Drawable;
			/**
			 *  #setThumbOffset(int)
			 */
			public getThumbOffset(): number;
			/**
			 * Sets the thumb offset that allows the thumb to extend out of the range of the track. 
			 * @param thumbOffset The offset amount in pixels.
			 */
			public setThumbOffset(thumbOffset: number): void;
			/**
			 * Sets the amount of progress changed via the arrow keys. 
			 * @param increment The amount to increment or decrement when the user
			 */
			public setKeyProgressIncrement(increment: number): void;
			/**
			 * Returns the amount of progress changed via the arrow keys.
			 */
			public getKeyProgressIncrement(): number;
			public setMax(max: number): void;
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			protected drawableStateChanged(): void;
			onProgressRefresh(scale: number, fromUser: boolean): void;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * This is called when the user has started touching this widget.
			 */
			onStartTrackingTouch(): void;
			/**
			 * This is called when the user either releases his touch or the touch is canceled.
			 */
			onStopTrackingTouch(): void;
			/**
			 * Called when the user changes the seekbar's progress by using a key event.
			 */
			onKeyChange(): void;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			public onRtlPropertiesChanged(layoutDirection: number): void;
		}
		/**
		 * Defines an extension for views that make them checkable.
		 */
		export class Checkable implements android.widget.ICheckable {
			constructor(implementation: android.widget.ICheckable);
			/**
			 * Change the checked state of the view 
			 * @param checked The new checked state
			 */
			public setChecked(checked: boolean): void;
			public isChecked(): boolean;
			/**
			 * Change the checked state of the view to the inverse of its current state
			 */
			public toggle(): void;
		}
		export class CompoundButton extends android.widget.Button implements android.widget.ICheckable {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.CompoundButton>;
			public toggle(): void;
			public performClick(): boolean;
			public isChecked(): boolean;
			/**
			 * @param checked true to check the button, false to uncheck it
			 */
			public setChecked(checked: boolean): void;
			/**
			 * Register a callback to be invoked when the checked state of this button changes.
			 * @param listener the callback to call on checked state change
			 */
			public setOnCheckedChangeListener(listener: android.widget.CompoundButton.IOnCheckedChangeListener): void;
			/**
			 * Set the background to a given Drawable, identified by its resource id.
			 * @param resid the resource id of the drawable to use as the background
			 */
			public setButtonDrawable(resid: number): void;
			/**
			 * Set the background to a given Drawable
			 * @param d The Drawable to use as the background
			 */
			public setButtonDrawable(d: android.graphics.drawable.Drawable): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public getCompoundPaddingLeft(): number;
			public getCompoundPaddingRight(): number;
			protected onDraw(canvas: android.graphics.Canvas): void;
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			protected drawableStateChanged(): void;
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			public onSaveInstanceState(): android.os.IParcelable;
			public onRestoreInstanceState(state: android.os.IParcelable): void;
		}
		export module CompoundButton {
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.CompoundButton.SavedState>;
				static class: java.lang.Class<android.widget.CompoundButton.SavedState>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public toString(): string;
			}
			/**
			 * Interface definition for a callback to be invoked when the checked state of a compound button changed.
			 */
			interface IOnCheckedChangeListener {
				/**
				 * Called when the checked state of a compound button has changed.
				 * @param buttonView The compound button view whose state has changed.
				 * @param isChecked The new checked state of buttonView.
				 */
				onCheckedChanged(buttonView: android.widget.CompoundButton, isChecked: boolean): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the checked state of a compound button changed.
			 */
			export class OnCheckedChangeListener implements android.widget.CompoundButton.IOnCheckedChangeListener {
				constructor(implementation: android.widget.CompoundButton.IOnCheckedChangeListener);
				/**
				 * Called when the checked state of a compound button has changed.
				 * @param buttonView The compound button view whose state has changed.
				 * @param isChecked The new checked state of buttonView.
				 */
				public onCheckedChanged(buttonView: android.widget.CompoundButton, isChecked: boolean): void;
			}
		}
		/**
		 * A concrete BaseAdapter that is backed by an array of arbitrary objects. By default this class expects that the provided resource id references a single TextView. If you want to use a more complex layout, use the constructors that also takes a field id. That field id should reference a TextView in the larger layout resource.
		 */
		export class ArrayAdapter<T> extends android.widget.BaseAdapter implements android.widget.IFilterable {
			/**
			 * Constructor
			 * @param context The current context.
			 * @param textViewResourceId The resource ID for a layout file containing a TextView to use when
			 */
			constructor(context: android.content.Context, textViewResourceId: number);
			/**
			 * Constructor
			 * @param context The current context.
			 * @param resource The resource ID for a layout file containing a layout to use when
			 * @param textViewResourceId The id of the TextView within the layout resource to be populated
			 */
			constructor(context: android.content.Context, resource: number, textViewResourceId: number);
			/**
			 * Constructor
			 * @param context The current context.
			 * @param textViewResourceId The resource ID for a layout file containing a TextView to use when
			 * @param objects The objects to represent in the ListView.
			 */
			constructor(context: android.content.Context, textViewResourceId: number, objects: native.Array<T>);
			/**
			 * Constructor
			 * @param context The current context.
			 * @param resource The resource ID for a layout file containing a layout to use when
			 * @param textViewResourceId The id of the TextView within the layout resource to be populated
			 * @param objects The objects to represent in the ListView.
			 */
			constructor(context: android.content.Context, resource: number, textViewResourceId: number, objects: native.Array<T>);
			/**
			 * Constructor
			 * @param context The current context.
			 * @param textViewResourceId The resource ID for a layout file containing a TextView to use when
			 * @param objects The objects to represent in the ListView.
			 */
			constructor(context: android.content.Context, textViewResourceId: number, objects: java.util.IList<T>);
			/**
			 * Constructor
			 * @param context The current context.
			 * @param resource The resource ID for a layout file containing a layout to use when
			 * @param textViewResourceId The id of the TextView within the layout resource to be populated
			 * @param objects The objects to represent in the ListView.
			 */
			constructor(context: android.content.Context, resource: number, textViewResourceId: number, objects: java.util.IList<T>);
			static class: java.lang.Class<android.widget.ArrayAdapter<any>>;
			/**
			 * Adds the specified object at the end of the array.
			 * @param object The object to add at the end of the array.
			 */
			public add(object: T): void;
			/**
			 * Adds the specified Collection at the end of the array.
			 * @param collection The Collection to add at the end of the array.
			 */
			public addAll(collection: java.util.ICollection<any>): void;
			/**
			 * Adds the specified items at the end of the array.
			 * @param items The items to add at the end of the array.
			 */
			public addAll(items: native.Array<T>): void;
			/**
			 * Inserts the specified object at the specified index in the array.
			 * @param object The object to insert into the array.
			 * @param index The index at which the object must be inserted.
			 */
			public insert(object: T, index: number): void;
			/**
			 * Removes the specified object from the array.
			 * @param object The object to remove.
			 */
			public remove(object: T): void;
			/**
			 * Remove all elements from the list.
			 */
			public clear(): void;
			/**
			 * Sorts the content of this adapter using the specified comparator.
			 * @param comparator The comparator used to sort the objects contained
			 */
			public sort(comparator: java.util.IComparator<any>): void;
			/**
			 * 
			 */
			public notifyDataSetChanged(): void;
			/**
			 * Control whether methods that change the list (#add, #insert, #remove, #clear) automatically call #notifyDataSetChanged. If set to false, caller must manually call notifyDataSetChanged() to have the changes reflected in the attached view.
			 * @param notifyOnChange if true, modifications to the list will
			 */
			public setNotifyOnChange(notifyOnChange: boolean): void;
			/**
			 * Returns the context associated with this array adapter. The context is used to create views from the resource passed to the constructor.
			 */
			public getContext(): android.content.Context;
			/**
			 * 
			 */
			public getCount(): number;
			/**
			 * 
			 */
			public getItem(position: number): T;
			/**
			 * Returns the position of the specified item in the array.
			 * @param item The item to retrieve the position of.
			 */
			public getPosition(item: T): number;
			/**
			 * 
			 */
			public getItemId(position: number): any;
			/**
			 * 
			 */
			public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * @param resource the layout resource defining the drop down views
			 */
			public setDropDownViewResource(resource: number): void;
			/**
			 * 
			 */
			public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Creates a new ArrayAdapter from external resources. The content of the array is obtained through android.content.res.Resources#getTextArray(int).
			 * @param context The application's environment.
			 * @param textArrayResId The identifier of the array to use as the data source.
			 * @param textViewResId The identifier of the layout used to create views.
			 */
			public static createFromResource(context: android.content.Context, textArrayResId: number, textViewResId: number): android.widget.ArrayAdapter<string>;
			/**
			 * 
			 */
			public getFilter(): android.widget.Filter;
		}
		export module ArrayAdapter {
			export class ArrayFilter extends android.widget.Filter {
				static class: java.lang.Class<android.widget.ArrayAdapter.ArrayFilter>;
				protected performFiltering(prefix: string): android.widget.Filter.FilterResults;
				protected publishResults(constraint: string, results: android.widget.Filter.FilterResults): void;
			}
		}
		/**
		 * A view for selecting the time of day, in either 24 hour or AM/PM mode. The hour, each minute digit, and AM/PM (if applicable) can be conrolled by vertical spinners. The hour can be entered by keyboard input. Entering in two digit hours can be accomplished by hitting two digits within a timeout of about a second (e.g. '1' then '2' to select 12). The minutes can be entered by entering single digits. Under AM/PM mode, the user can hit 'a', 'A", 'p' or 'P' to pick. For a dialog using this view, see android.app.TimePickerDialog.
		 */
		export class TimePicker extends android.widget.FrameLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.TimePicker>;
			public setEnabled(enabled: boolean): void;
			public isEnabled(): boolean;
			protected onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			protected onSaveInstanceState(): android.os.IParcelable;
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
			/**
			 * Set the callback that indicates the time has been adjusted by the user.
			 * @param onTimeChangedListener the callback, should not be null.
			 */
			public setOnTimeChangedListener(onTimeChangedListener: android.widget.TimePicker.IOnTimeChangedListener): void;
			public getCurrentHour(): java.lang.Integer;
			/**
			 * Set the current hour.
			 */
			public setCurrentHour(currentHour: java.lang.Integer): void;
			/**
			 * Set whether in 24 hour or AM/PM mode.
			 * @param is24HourView True = 24 hour mode. False = AM/PM.
			 */
			public setIs24HourView(is24HourView: java.lang.Boolean): void;
			/**
			 * Set whether in 24 hour or AM/PM mode.
			 * @param is24HourView True = 24 hour mode. False = AM/PM.
			 */
			public setIs24HourView(is24HourView: boolean): void;
			public is24HourView(): boolean;
			public getCurrentMinute(): java.lang.Integer;
			/**
			 * Set the current minute (0-59).
			 */
			public setCurrentMinute(currentMinute: java.lang.Integer): void;
			public getBaseline(): number;
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			public onPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module TimePicker {
			/**
			 * Used to save / restore state of time picker
			 */
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.TimePicker.SavedState>;
				static class: java.lang.Class<android.widget.TimePicker.SavedState>;
				public getHour(): number;
				public getMinute(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * The callback interface used to indicate the time has been adjusted.
			 */
			export class OnTimeChangedListener implements android.widget.TimePicker.IOnTimeChangedListener {
				constructor(implementation: android.widget.TimePicker.IOnTimeChangedListener);
				/**
				 * @param view The view associated with this listener.
				 * @param hourOfDay The current hour.
				 * @param minute The current minute.
				 */
				public onTimeChanged(view: android.widget.TimePicker, hourOfDay: number, minute: number): void;
			}
			/**
			 * The callback interface used to indicate the time has been adjusted.
			 */
			interface IOnTimeChangedListener {
				/**
				 * @param view The view associated with this listener.
				 * @param hourOfDay The current hour.
				 * @param minute The current minute.
				 */
				onTimeChanged(view: android.widget.TimePicker, hourOfDay: number, minute: number): void;
			}
		}
		export class CursorFilter extends android.widget.Filter {
			static class: java.lang.Class<android.widget.CursorFilter>;
			public convertResultToString(resultValue: any): string;
			protected performFiltering(constraint: string): android.widget.Filter.FilterResults;
			protected publishResults(constraint: string, results: android.widget.Filter.FilterResults): void;
		}
		export module CursorFilter {
			interface ICursorFilterClient {
				convertToString(cursor: android.database.ICursor): string;
				runQueryOnBackgroundThread(constraint: string): android.database.ICursor;
				getCursor(): android.database.ICursor;
				changeCursor(cursor: android.database.ICursor): void;
			}
			export class CursorFilterClient implements android.widget.CursorFilter.ICursorFilterClient {
				constructor(implementation: android.widget.CursorFilter.ICursorFilterClient);
				public convertToString(cursor: android.database.ICursor): string;
				public runQueryOnBackgroundThread(constraint: string): android.database.ICursor;
				public getCursor(): android.database.ICursor;
				public changeCursor(cursor: android.database.ICursor): void;
			}
		}
		/**
		 * A view containing controls for a MediaPlayer. Typically contains the buttons like "Play/Pause", "Rewind", "Fast Forward" and a progress slider. It takes care of synchronizing the controls with the state of the MediaPlayer.
		 */
		export class MediaController extends android.widget.FrameLayout {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, useFastForward: boolean);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.widget.MediaController>;
			public onFinishInflate(): void;
			public setMediaPlayer(player: android.widget.MediaController.IMediaPlayerControl): void;
			/**
			 * Set the view that acts as the anchor for the control view. This can for example be a VideoView, or your Activity's main view.
			 * @param view The view to which to anchor the controller when it is visible.
			 */
			public setAnchorView(view: android.view.View): void;
			/**
			 * Show the controller on screen. It will go away automatically after 3 seconds of inactivity.
			 */
			public show(): void;
			/**
			 * Show the controller on screen. It will go away automatically after 'timeout' milliseconds of inactivity.
			 * @param timeout The timeout in milliseconds. Use 0 to show
			 */
			public show(timeout: number): void;
			public isShowing(): boolean;
			/**
			 * Remove the controller from the screen.
			 */
			public hide(): void;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			public onTrackballEvent(ev: android.view.MotionEvent): boolean;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			public setEnabled(enabled: boolean): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public setPrevNextListeners(next: android.view.View.IOnClickListener, prev: android.view.View.IOnClickListener): void;
		}
		export module MediaController {
			interface IMediaPlayerControl {
				start(): void;
				pause(): void;
				getDuration(): number;
				getCurrentPosition(): number;
				seekTo(pos: number): void;
				isPlaying(): boolean;
				getBufferPercentage(): number;
				canPause(): boolean;
				canSeekBackward(): boolean;
				canSeekForward(): boolean;
			}
			export class MediaPlayerControl implements android.widget.MediaController.IMediaPlayerControl {
				constructor(implementation: android.widget.MediaController.IMediaPlayerControl);
				public start(): void;
				public pause(): void;
				public getDuration(): number;
				public getCurrentPosition(): number;
				public seekTo(pos: number): void;
				public isPlaying(): boolean;
				public getBufferPercentage(): number;
				public canPause(): boolean;
				public canSeekBackward(): boolean;
				public canSeekForward(): boolean;
			}
		}
		/**
		 * This interface can be implemented by any collection-type view which has a notion of progressing through its set of children. The interface exists to give AppWidgetHosts a way of taking responsibility for automatically advancing such collections.
		 */
		export class Advanceable implements android.widget.IAdvanceable {
			constructor(implementation: android.widget.IAdvanceable);
			/**
			 * Advances this collection, eg. shows the next view.
			 */
			public advance(): void;
			/**
			 * Called by the AppWidgetHost once before it begins to call advance(), allowing the collection to do any required setup.
			 */
			public fyiWillBeAdvancedByHostKThx(): void;
		}
		interface IFilterable {
			getFilter(): android.widget.Filter;
		}
		/**
		 * An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a android.view.View for each item in the data set. android.widget.ArrayAdapter android.widget.CursorAdapter android.widget.SimpleCursorAdapter
		 */
		export class Adapter implements android.widget.IAdapter {
			constructor(implementation: android.widget.IAdapter);
			/**
			 * An item view type that causes the AdapterView to ignore the item view. For example, this can be used if the client does not want a particular view to be given for conversion in #getView(int, View, ViewGroup). #getItemViewType(int) #getViewTypeCount()
			 */
			static IGNORE_ITEM_VIEW_TYPE: number;
			static NO_SELECTION: number;
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			public getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			public getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			public getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			public hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			public getItemViewType(position: number): number;
			public getViewTypeCount(): number;
			public isEmpty(): boolean;
		}
		/**
		 * A view that shows items in a vertically scrolling list. The items come from the ListAdapter associated with this view.
		 */
		export class ListView extends android.widget.AbsListView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.ListView>;
			FixedViewInfo: {
	new (): android.widget.ListView.FixedViewInfo;
};
			public getMaxScrollAmount(): number;
			/**
			 * Add a fixed view to appear at the top of the list. If addHeaderView is called more than once, the views will appear in the order they were added. Views added using this call can take focus if they want.
			 * @param v The view to add.
			 * @param data Data to associate with this view
			 * @param isSelectable whether the item is selectable
			 */
			public addHeaderView(v: android.view.View, data: any, isSelectable: boolean): void;
			/**
			 * Add a fixed view to appear at the top of the list. If addHeaderView is called more than once, the views will appear in the order they were added. Views added using this call can take focus if they want.
			 * @param v The view to add.
			 */
			public addHeaderView(v: android.view.View): void;
			public getHeaderViewsCount(): number;
			/**
			 * Removes a previously-added header view.
			 * @param v The view to remove
			 */
			public removeHeaderView(v: android.view.View): boolean;
			/**
			 * Add a fixed view to appear at the bottom of the list. If addFooterView is called more than once, the views will appear in the order they were added. Views added using this call can take focus if they want.
			 * @param v The view to add.
			 * @param data Data to associate with this view
			 * @param isSelectable true if the footer view can be selected
			 */
			public addFooterView(v: android.view.View, data: any, isSelectable: boolean): void;
			/**
			 * Add a fixed view to appear at the bottom of the list. If addFooterView is called more than once, the views will appear in the order they were added. Views added using this call can take focus if they want.
			 * @param v The view to add.
			 */
			public addFooterView(v: android.view.View): void;
			public getFooterViewsCount(): number;
			/**
			 * Removes a previously-added footer view.
			 * @param v The view to remove
			 */
			public removeFooterView(v: android.view.View): boolean;
			/**
			 * Returns the adapter currently in use in this ListView. The returned adapter might not be the same adapter passed to #setAdapter(ListAdapter) but might be a WrapperListAdapter.
			 */
			public getAdapter(): android.widget.IListAdapter;
			/**
			 * Sets up this AbsListView to use a remote views adapter which connects to a RemoteViewsService through the specified intent.
			 * @param intent the intent used to identify the RemoteViewsService for the adapter to connect to.
			 */
			public setRemoteViewsAdapter(intent: android.content.Intent): void;
			/**
			 * Sets the data behind this ListView.
			 * @param adapter The ListAdapter which is responsible for maintaining the
			 */
			public setAdapter(adapter: android.widget.IListAdapter): void;
			/**
			 * The list is empty. Clear everything out.
			 */
			resetList(): void;
			public requestChildRectangleOnScreen(child: android.view.View, rect: android.graphics.Rect, immediate: boolean): boolean;
			/**
			 * 
			 */
			fillGap(down: boolean): void;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed.
			 * @param position Scroll to this adapter position.
			 */
			public smoothScrollToPosition(position: number): void;
			/**
			 * Smoothly scroll to the specified adapter position offset. The view will scroll such that the indicated position is displayed.
			 * @param offset The amount to offset from the adapter position to scroll to.
			 */
			public smoothScrollByOffset(offset: number): void;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * Measures the height of the given range of children (inclusive) and returns the height with this ListView's padding and divider heights included. If maxHeight is provided, the measuring will stop when the current height reaches maxHeight.
			 * @param widthMeasureSpec The width measure spec to be given to a child's
			 * @param startPosition The position of the first child to be shown.
			 * @param endPosition The (inclusive) position of the last child to be
			 * @param maxHeight The maximum height that will be returned (if all the
			 * @param disallowPartialChildPosition In general, whether the returned
			 */
			measureHeightOfChildren(widthMeasureSpec: number, startPosition: number, endPosition: number, maxHeight: number, disallowPartialChildPosition: number): number;
			findMotionRow(y: number): number;
			protected layoutChildren(): void;
			protected canAnimate(): boolean;
			/**
			 * Sets the currently selected item. If in touch mode, the item will not be selected but it will still be positioned appropriately. If the specified selection position is less than 0, then the item at position 0 will be selected.
			 * @param position Index (starting at 0) of the data item to be selected.
			 */
			public setSelection(position: number): void;
			/**
			 * Sets the selected item and positions the selection y pixels from the top edge of the ListView. (If in touch mode, the item will not be selected but it will still be positioned appropriately.)
			 * @param position Index (starting at 0) of the data item to be selected.
			 * @param y The distance from the top edge of the ListView (plus padding) that the
			 */
			public setSelectionFromTop(position: number, y: number): void;
			/**
			 * Makes the item at the supplied position selected. 
			 * @param position the position of the item to select
			 */
			setSelectionInt(position: number): void;
			/**
			 * Find a position that can be selected (i.e., is not a separator).
			 * @param position The starting position to look at.
			 * @param lookDown Whether to look down for other positions.
			 */
			lookForSelectablePosition(position: number, lookDown: boolean): number;
			/**
			 * setSelectionAfterHeaderView set the selection to be the first list item after the header views.
			 */
			public setSelectionAfterHeaderView(): void;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyMultiple(keyCode: number, repeatCount: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Scrolls up or down by the number of items currently present on screen.
			 * @param direction either {@link View#FOCUS_UP} or {@link View#FOCUS_DOWN}
			 */
			pageScroll(direction: number): boolean;
			/**
			 * Go to the last or first item if possible (not worrying about panning across or navigating within the internal focus of the currently selected item.)
			 * @param direction either {@link View#FOCUS_UP} or {@link View#FOCUS_DOWN}
			 */
			fullScroll(direction: number): boolean;
			/**
			 * Scrolls to the next or previous item if possible.
			 * @param direction either {@link View#FOCUS_UP} or {@link View#FOCUS_DOWN}
			 */
			arrowScroll(direction: number): boolean;
			/**
			 * Indicates that the views created by the ListAdapter can contain focusable items.
			 * @param itemsCanFocus true if items can get focus, false otherwise
			 */
			public setItemsCanFocus(itemsCanFocus: boolean): void;
			public getItemsCanFocus(): boolean;
			public isOpaque(): boolean;
			public setCacheColorHint(color: number): void;
			drawOverscrollHeader(canvas: android.graphics.Canvas, drawable: android.graphics.drawable.Drawable, bounds: android.graphics.Rect): void;
			drawOverscrollFooter(canvas: android.graphics.Canvas, drawable: android.graphics.drawable.Drawable, bounds: android.graphics.Rect): void;
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			protected drawChild(canvas: android.graphics.Canvas, child: android.view.View, drawingTime: number): boolean;
			/**
			 * Draws a divider for the given child in the given bounds.
			 * @param canvas The canvas to draw to.
			 * @param bounds The bounds of the divider.
			 * @param childIndex The index of child (of the View) above the divider.
			 */
			drawDivider(canvas: android.graphics.Canvas, bounds: android.graphics.Rect, childIndex: number): void;
			/**
			 * Returns the drawable that will be drawn between each item in the list.
			 */
			public getDivider(): android.graphics.drawable.Drawable;
			/**
			 * Sets the drawable that will be drawn between each item in the list. If the drawable does not have an intrinsic height, you should also call #setDividerHeight(int)
			 * @param divider The drawable to use.
			 */
			public setDivider(divider: android.graphics.drawable.Drawable): void;
			public getDividerHeight(): number;
			/**
			 * Sets the height of the divider that will be drawn between each item in the list. Calling this will override the intrinsic height as set by #setDivider(Drawable)
			 * @param height The new height of the divider in pixels.
			 */
			public setDividerHeight(height: number): void;
			/**
			 * Enables or disables the drawing of the divider for header views.
			 * @param headerDividersEnabled True to draw the headers, false otherwise.
			 */
			public setHeaderDividersEnabled(headerDividersEnabled: boolean): void;
			/**
			 * Enables or disables the drawing of the divider for footer views.
			 * @param footerDividersEnabled True to draw the footers, false otherwise.
			 */
			public setFooterDividersEnabled(footerDividersEnabled: boolean): void;
			/**
			 * Sets the drawable that will be drawn above all other list content. This area can become visible when the user overscrolls the list.
			 * @param header The drawable to use
			 */
			public setOverscrollHeader(header: android.graphics.drawable.Drawable): void;
			public getOverscrollHeader(): android.graphics.drawable.Drawable;
			/**
			 * Sets the drawable that will be drawn below all other list content. This area can become visible when the user overscrolls the list, or when the list's content does not fully fill the container area.
			 * @param footer The drawable to use
			 */
			public setOverscrollFooter(footer: android.graphics.drawable.Drawable): void;
			public getOverscrollFooter(): android.graphics.drawable.Drawable;
			protected onFocusChanged(gainFocus: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			protected onFinishInflate(): void;
			protected findViewTraversal(id: number): android.view.View;
			findViewInHeadersOrFooters(where: java.util.ArrayList<android.widget.ListView.FixedViewInfo>, id: number): android.view.View;
			protected findViewWithTagTraversal(tag: any): android.view.View;
			findViewWithTagInHeadersOrFooters(where: java.util.ArrayList<android.widget.ListView.FixedViewInfo>, tag: any): android.view.View;
			/**
			 * Returns the set of checked items ids. The result is only valid if the choice mode has not been set to #CHOICE_MODE_NONE. 
			 */
			public getCheckItemIds(): native.Array<number>;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed, but it will stop early if scrolling further would scroll boundPosition out of view.
			 * @param position Scroll to this adapter position.
			 * @param boundPosition Do not scroll if it would move this adapter
			 */
			smoothScrollToPosition(position: number, boundPosition: number): void;
		}
		export module ListView {
			/**
			 * A class that represents a fixed view in a list, for example a header at the top or a footer at the bottom.
			 */
			export class FixedViewInfo extends java.lang.Object {
				/**
				 * The view to add to the list
				 */
				view: android.view.View;
				/**
				 * The data backing the view. This is returned from ListAdapter#getItem(int).
				 */
				data: any;
				/**
				 * <code>true</code> if the fixed view should be selectable in the list
				 */
				isSelectable: boolean;
				static class: java.lang.Class<android.widget.ListView.FixedViewInfo>;
			}
			/**
			 * Holds results of focus aware arrow scrolling.
			 */
			export class ArrowScrollFocusResult extends java.lang.Object {
				static class: java.lang.Class<android.widget.ListView.ArrowScrollFocusResult>;
				/**
				 * How android.widget.ListView#arrowScrollFocused returns its values.
				 */
				populate(selectedPosition: number, amountToScroll: number): void;
				public getSelectedPosition(): number;
				public getAmountToScroll(): number;
			}
			export class FocusSelector extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.ListView.FocusSelector>;
				public setup(position: number, top: number): android.widget.ListView.FocusSelector;
				public run(): void;
			}
		}
		/**
		 * Widget used to show an image with the standard QuickContact badge and on-click behavior.
		 */
		export class QuickContactBadge extends android.widget.ImageView implements android.view.View.IOnClickListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.QuickContactBadge>;
			QueryHandler: {
	new (cr: android.content.ContentResolver): android.widget.QuickContactBadge.QueryHandler;
};
			protected drawableStateChanged(): void;
			/**
			 * This call has no effect anymore, as there is only one QuickContact mode
			 */
			public setMode(size: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			/**
			 * Resets the contact photo to the default state.
			 */
			public setImageToDefault(): void;
			/**
			 * Assign the contact uri that this QuickContactBadge should be associated with. Note that this is only used for displaying the QuickContact window and won't bind the contact's photo for you. Call #setImageDrawable(Drawable) to set the photo.
			 * @param contactUri Either a {@link Contacts#CONTENT_URI} or
			 */
			public assignContactUri(contactUri: android.net.Uri): void;
			/**
			 * Assign a contact based on an email address. This should only be used when the contact's URI is not available, as an extra query will have to be performed to lookup the URI based on the email.
			 * @param emailAddress The email address of the contact.
			 * @param lazyLookup If this is true, the lookup query will not be performed
			 */
			public assignContactFromEmail(emailAddress: string, lazyLookup: boolean): void;
			/**
			 * Assign a contact based on a phone number. This should only be used when the contact's URI is not available, as an extra query will have to be performed to lookup the URI based on the phone number.
			 * @param phoneNumber The phone number of the contact.
			 * @param lazyLookup If this is true, the lookup query will not be performed
			 */
			public assignContactFromPhone(phoneNumber: string, lazyLookup: boolean): void;
			public onClick(v: android.view.View): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Set a list of specific MIME-types to exclude and not display. For example, this can be used to hide the Contacts#CONTENT_ITEM_TYPE profile icon.
			 */
			public setExcludeMimes(excludeMimes: native.Array<string>): void;
		}
		export module QuickContactBadge {
			export class QueryHandler extends android.content.AsyncQueryHandler {
				static class: java.lang.Class<android.widget.QuickContactBadge.QueryHandler>;
				protected onQueryComplete(token: number, cookie: any, cursor: android.database.ICursor): void;
			}
		}
		/**
		 * An editable text view, extending AutoCompleteTextView, that can show completion suggestions for the substring of the text where the user is typing instead of necessarily for the entire thing.
		 */
		export class MultiAutoCompleteTextView extends android.widget.AutoCompleteTextView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.MultiAutoCompleteTextView>;
			finishInit(): void;
			/**
			 * Sets the Tokenizer that will be used to determine the relevant range of the text where the user is typing.
			 */
			public setTokenizer(t: android.widget.MultiAutoCompleteTextView.ITokenizer): void;
			/**
			 * Instead of filtering on the entire contents of the edit box, this subclass method filters on the range from Tokenizer#findTokenStart to #getSelectionEnd if the length of that range meets or exceeds #getThreshold.
			 */
			protected performFiltering(text: string, keyCode: number): void;
			/**
			 * Instead of filtering whenever the total length of the text exceeds the threshhold, this subclass filters only when the length of the range from Tokenizer#findTokenStart to #getSelectionEnd meets or exceeds #getThreshold.
			 */
			public enoughToFilter(): boolean;
			/**
			 * Instead of validating the entire text, this subclass method validates each token of the text individually. Empty tokens are removed.
			 */
			public performValidation(): void;
			protected performFiltering(text: string, start: number, end: number, keyCode: number): void;
			/**
			 * @param text the selected suggestion in the drop down list
			 */
			protected replaceText(text: string): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module MultiAutoCompleteTextView {
			interface ITokenizer {
				/**
				 * Returns the start of the token that ends at offset <code>cursor</code> within <code>text</code>.
				 */
				findTokenStart(text: string, cursor: number): number;
				/**
				 * Returns the end of the token (minus trailing punctuation) that begins at offset <code>cursor</code> within <code>text</code>.
				 */
				findTokenEnd(text: string, cursor: number): number;
				/**
				 * Returns <code>text</code>, modified, if necessary, to ensure that it ends with a token terminator (for example a space or comma).
				 */
				terminateToken(text: string): string;
			}
			export class Tokenizer implements android.widget.MultiAutoCompleteTextView.ITokenizer {
				constructor(implementation: android.widget.MultiAutoCompleteTextView.ITokenizer);
				/**
				 * Returns the start of the token that ends at offset <code>cursor</code> within <code>text</code>.
				 */
				public findTokenStart(text: string, cursor: number): number;
				/**
				 * Returns the end of the token (minus trailing punctuation) that begins at offset <code>cursor</code> within <code>text</code>.
				 */
				public findTokenEnd(text: string, cursor: number): number;
				/**
				 * Returns <code>text</code>, modified, if necessary, to ensure that it ends with a token terminator (for example a space or comma).
				 */
				public terminateToken(text: string): string;
			}
			/**
			 * This simple Tokenizer can be used for lists where the items are separated by a comma and one or more spaces.
			 */
			export class CommaTokenizer extends java.lang.Object implements android.widget.MultiAutoCompleteTextView.ITokenizer {
				constructor();
				static class: java.lang.Class<android.widget.MultiAutoCompleteTextView.CommaTokenizer>;
				public findTokenStart(text: string, cursor: number): number;
				public findTokenEnd(text: string, cursor: number): number;
				public terminateToken(text: string): string;
			}
		}
		/**
		 * An easy adapter to map static data to group and child views defined in an XML file. You can separately specify the data backing the group as a List of Maps. Each entry in the ArrayList corresponds to one group in the expandable list. The Maps contain the data for each row. You also specify an XML file that defines the views used to display a group, and a mapping from keys in the Map to specific views. This process is similar for a child, except it is one-level deeper so the data backing is specified as a List<List<Map>>, where the first List corresponds to the group of the child, the second List corresponds to the position of the child within the group, and finally the Map holds the data for that particular child.
		 */
		export class SimpleExpandableListAdapter extends android.widget.BaseExpandableListAdapter {
			/**
			 * Constructor 
			 * @param context The context where the {@link ExpandableListView}
			 * @param groupData A List of Maps. Each entry in the List corresponds to
			 * @param groupLayout groupFrom A list of keys that will be fetched from the Map
			 * @param groupFrom groupTo The group views that should display column in the
			 * @param groupTo groupLayout resource identifier of a view layout that defines the
			 * @param childData A List of List of Maps. Each entry in the outer List
			 * @param childLayout childFrom A list of keys that will be fetched from the Map
			 * @param childFrom childTo The child views that should display column in the
			 * @param childTo childLayout resource identifier of a view layout that defines the
			 */
			constructor(context: android.content.Context, groupData: java.util.IList<any>, groupLayout: number, groupFrom: native.Array<string>, groupTo: native.Array<number>, childData: java.util.IList<any>, childLayout: number, childFrom: native.Array<string>, childTo: native.Array<number>);
			/**
			 * Constructor 
			 * @param context The context where the {@link ExpandableListView}
			 * @param groupData A List of Maps. Each entry in the List corresponds to
			 * @param expandedGroupLayout groupFrom A list of keys that will be fetched from the Map
			 * @param collapsedGroupLayout groupTo The group views that should display column in the
			 * @param groupFrom expandedGroupLayout resource identifier of a view layout that
			 * @param groupTo collapsedGroupLayout resource identifier of a view layout that
			 * @param childData A List of List of Maps. Each entry in the outer List
			 * @param childLayout childFrom A list of keys that will be fetched from the Map
			 * @param childFrom childTo The child views that should display column in the
			 * @param childTo childLayout resource identifier of a view layout that defines the
			 */
			constructor(context: android.content.Context, groupData: java.util.IList<any>, expandedGroupLayout: number, collapsedGroupLayout: number, groupFrom: native.Array<string>, groupTo: native.Array<number>, childData: java.util.IList<any>, childLayout: number, childFrom: native.Array<string>, childTo: native.Array<number>);
			/**
			 * Constructor 
			 * @param context The context where the {@link ExpandableListView}
			 * @param groupData A List of Maps. Each entry in the List corresponds to
			 * @param expandedGroupLayout groupFrom A list of keys that will be fetched from the Map
			 * @param collapsedGroupLayout groupTo The group views that should display column in the
			 * @param groupFrom expandedGroupLayout resource identifier of a view layout that
			 * @param groupTo collapsedGroupLayout resource identifier of a view layout that
			 * @param childData A List of List of Maps. Each entry in the outer List
			 * @param childLayout childFrom A list of keys that will be fetched from the Map
			 * @param lastChildLayout childTo The child views that should display column in the
			 * @param childFrom childLayout resource identifier of a view layout that defines the
			 * @param childTo lastChildLayout resource identifier of a view layout that defines
			 */
			constructor(context: android.content.Context, groupData: java.util.IList<any>, expandedGroupLayout: number, collapsedGroupLayout: number, groupFrom: native.Array<string>, groupTo: native.Array<number>, childData: java.util.IList<any>, childLayout: number, lastChildLayout: number, childFrom: native.Array<string>, childTo: native.Array<number>);
			static class: java.lang.Class<android.widget.SimpleExpandableListAdapter>;
			public getChild(groupPosition: number, childPosition: number): any;
			public getChildId(groupPosition: number, childPosition: number): any;
			public getChildView(groupPosition: number, childPosition: number, isLastChild: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Instantiates a new View for a child.
			 * @param isLastChild Whether the child is the last child within its group.
			 * @param parent The eventual parent of this new View.
			 */
			public newChildView(isLastChild: boolean, parent: android.view.ViewGroup): android.view.View;
			public getChildrenCount(groupPosition: number): number;
			public getGroup(groupPosition: number): any;
			public getGroupCount(): number;
			public getGroupId(groupPosition: number): any;
			public getGroupView(groupPosition: number, isExpanded: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Instantiates a new View for a group.
			 * @param isExpanded Whether the group is currently expanded.
			 * @param parent The eventual parent of this new View.
			 */
			public newGroupView(isExpanded: boolean, parent: android.view.ViewGroup): android.view.View;
			public isChildSelectable(groupPosition: number, childPosition: number): boolean;
			public hasStableIds(): boolean;
		}
		/**
		 * Displays text to the user and optionally allows them to edit it. A TextView is a complete text editor, however the basic class is configured to not allow editing; see EditText for a subclass that configures the text view for editing.
		 */
		export class TextView extends android.view.View implements android.view.ViewTreeObserver.IOnPreDrawListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.TextView>;
			public setEnabled(enabled: boolean): void;
			/**
			 * Sets the typeface and style in which the text should be displayed, and turns on the fake bold and italic bits in the Paint if the Typeface that you provided does not have all the bits in the style that you specified.
			 */
			public setTypeface(tf: android.graphics.Typeface, style: number): void;
			/**
			 * Subclasses override this to specify that they have a KeyListener by default even if not specifically called for in the XML options.
			 */
			protected getDefaultEditable(): boolean;
			/**
			 * Subclasses override this to specify a default movement method.
			 */
			protected getDefaultMovementMethod(): android.text.method.IMovementMethod;
			/**
			 * Return the text the TextView is displaying. If setText() was called with an argument of BufferType.SPANNABLE or BufferType.EDITABLE, you can cast the return value from this method to Spannable or Editable, respectively.
			 */
			public getText(): string;
			/**
			 * Returns the length, in characters, of the text managed by this TextView
			 */
			public length(): number;
			/**
			 * Return the text the TextView is displaying as an Editable object. If the text is not editable, null is returned.
			 */
			public getEditableText(): any;
			public getLineHeight(): number;
			public getLayout(): android.text.Layout;
			getHintLayout(): android.text.Layout;
			public getKeyListener(): android.text.method.IKeyListener;
			/**
			 * Sets the key listener to be used with this TextView. This can be null to disallow user input. Note that this method has significant and subtle interactions with soft keyboards and other input method: see KeyListener#getInputType() KeyListener.getContentType() for important details. Calling this method will replace the current content type of the text view with the content type returned by the key listener.
			 */
			public setKeyListener(input: android.text.method.IKeyListener): void;
			public getMovementMethod(): android.text.method.IMovementMethod;
			/**
			 * Sets the movement method (arrow key handler) to be used for this TextView. This can be null to disallow using the arrow keys to move the cursor or scroll the view.
			 */
			public setMovementMethod(movement: android.text.method.IMovementMethod): void;
			public getTransformationMethod(): android.text.method.ITransformationMethod;
			/**
			 * Sets the transformation that is applied to the text that this TextView is displaying.
			 */
			public setTransformationMethod(method: android.text.method.ITransformationMethod): void;
			/**
			 * Returns the top padding of the view, plus space for the top Drawable if any.
			 */
			public getCompoundPaddingTop(): number;
			/**
			 * Returns the bottom padding of the view, plus space for the bottom Drawable if any.
			 */
			public getCompoundPaddingBottom(): number;
			/**
			 * Returns the left padding of the view, plus space for the left Drawable if any.
			 */
			public getCompoundPaddingLeft(): number;
			/**
			 * Returns the right padding of the view, plus space for the right Drawable if any.
			 */
			public getCompoundPaddingRight(): number;
			/**
			 * Returns the start padding of the view, plus space for the start Drawable if any.
			 */
			public getCompoundPaddingStart(): number;
			/**
			 * Returns the end padding of the view, plus space for the end Drawable if any.
			 */
			public getCompoundPaddingEnd(): number;
			/**
			 * Returns the extended top padding of the view, including both the top Drawable if any and any extra space to keep more than maxLines of text from showing. It is only valid to call this after measuring.
			 */
			public getExtendedPaddingTop(): number;
			/**
			 * Returns the extended bottom padding of the view, including both the bottom Drawable if any and any extra space to keep more than maxLines of text from showing. It is only valid to call this after measuring.
			 */
			public getExtendedPaddingBottom(): number;
			/**
			 * Returns the total left padding of the view, including the left Drawable if any.
			 */
			public getTotalPaddingLeft(): number;
			/**
			 * Returns the total right padding of the view, including the right Drawable if any.
			 */
			public getTotalPaddingRight(): number;
			/**
			 * Returns the total start padding of the view, including the start Drawable if any.
			 */
			public getTotalPaddingStart(): number;
			/**
			 * Returns the total end padding of the view, including the end Drawable if any.
			 */
			public getTotalPaddingEnd(): number;
			/**
			 * Returns the total top padding of the view, including the top Drawable if any, the extra space to keep more than maxLines from showing, and the vertical offset for gravity, if any.
			 */
			public getTotalPaddingTop(): number;
			/**
			 * Returns the total bottom padding of the view, including the bottom Drawable if any, the extra space to keep more than maxLines from showing, and the vertical offset for gravity, if any.
			 */
			public getTotalPaddingBottom(): number;
			/**
			 * Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables must already have had Drawable#setBounds called.
			 */
			public setCompoundDrawables(left: android.graphics.drawable.Drawable, top: android.graphics.drawable.Drawable, right: android.graphics.drawable.Drawable, bottom: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use 0 if you do not want a Drawable there. The Drawables' bounds will be set to their intrinsic bounds.
			 * @param left Resource identifier of the left Drawable.
			 * @param top Resource identifier of the top Drawable.
			 * @param right Resource identifier of the right Drawable.
			 * @param bottom Resource identifier of the bottom Drawable.
			 */
			public setCompoundDrawablesWithIntrinsicBounds(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables' bounds will be set to their intrinsic bounds.
			 */
			public setCompoundDrawablesWithIntrinsicBounds(left: android.graphics.drawable.Drawable, top: android.graphics.drawable.Drawable, right: android.graphics.drawable.Drawable, bottom: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the Drawables (if any) to appear to the start of, above, to the end of, and below the text. Use null if you do not want a Drawable there. The Drawables must already have had Drawable#setBounds called.
			 */
			public setCompoundDrawablesRelative(start: android.graphics.drawable.Drawable, top: android.graphics.drawable.Drawable, end: android.graphics.drawable.Drawable, bottom: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the Drawables (if any) to appear to the start of, above, to the end of, and below the text. Use 0 if you do not want a Drawable there. The Drawables' bounds will be set to their intrinsic bounds.
			 * @param start Resource identifier of the start Drawable.
			 * @param top Resource identifier of the top Drawable.
			 * @param end Resource identifier of the end Drawable.
			 * @param bottom Resource identifier of the bottom Drawable.
			 */
			public setCompoundDrawablesRelativeWithIntrinsicBounds(start: number, top: number, end: number, bottom: number): void;
			/**
			 * Sets the Drawables (if any) to appear to the start of, above, to the end of, and below the text. Use null if you do not want a Drawable there. The Drawables' bounds will be set to their intrinsic bounds.
			 */
			public setCompoundDrawablesRelativeWithIntrinsicBounds(start: android.graphics.drawable.Drawable, top: android.graphics.drawable.Drawable, end: android.graphics.drawable.Drawable, bottom: android.graphics.drawable.Drawable): void;
			/**
			 * Returns drawables for the left, top, right, and bottom borders.
			 */
			public getCompoundDrawables(): native.Array<android.graphics.drawable.Drawable>;
			/**
			 * Returns drawables for the start, top, end, and bottom borders.
			 */
			public getCompoundDrawablesRelative(): native.Array<android.graphics.drawable.Drawable>;
			/**
			 * Sets the size of the padding between the compound drawables and the text.
			 */
			public setCompoundDrawablePadding(pad: number): void;
			/**
			 * Returns the padding between the compound drawables and the text.
			 */
			public getCompoundDrawablePadding(): number;
			public setPadding(left: number, top: number, right: number, bottom: number): void;
			public setPaddingRelative(start: number, top: number, end: number, bottom: number): void;
			/**
			 * Gets the autolink mask of the text. See android.text.util.Linkify#ALL Linkify.ALL and peers for possible values.
			 */
			public getAutoLinkMask(): number;
			/**
			 * Sets the text color, size, style, hint color, and highlight color from the specified TextAppearance resource.
			 */
			public setTextAppearance(context: android.content.Context, resid: number): void;
			/**
			 * Get the default Locale of the text in this TextView.
			 */
			public getTextLocale(): java.util.Locale;
			/**
			 * Set the default Locale of the text in this TextView to the given value. This value is used to choose appropriate typefaces for ambiguous characters. Typically used for CJK locales to disambiguate Hanzi/Kanji/Hanja characters.
			 * @param locale the {@link Locale} for drawing text, must not be null.
			 */
			public setTextLocale(locale: java.util.Locale): void;
			public getTextSize(): number;
			/**
			 * Set the default text size to the given value, interpreted as "scaled pixel" units. This size is adjusted based on the current density and user font size preference.
			 * @param size The scaled pixel size.
			 */
			public setTextSize(size: number): void;
			/**
			 * Set the default text size to a given unit and value. See TypedValue for the possible dimension units.
			 * @param unit The desired dimension unit.
			 * @param size The desired size in the given units.
			 */
			public setTextSize(unit: number, size: number): void;
			public getTextScaleX(): number;
			/**
			 * Sets the extent by which text should be stretched horizontally.
			 */
			public setTextScaleX(size: number): void;
			/**
			 * Sets the typeface and style in which the text should be displayed. Note that not all Typeface families actually have bold and italic variants, so you may need to use #setTypeface(Typeface, int) to get the appearance that you actually want.
			 */
			public setTypeface(tf: android.graphics.Typeface): void;
			public getTypeface(): android.graphics.Typeface;
			/**
			 * Sets the text color for all the states (normal, selected, focused) to be this color.
			 */
			public setTextColor(color: number): void;
			/**
			 * Sets the text color.
			 */
			public setTextColor(colors: android.content.res.ColorStateList): void;
			/**
			 * Gets the text colors for the different states (normal, selected, focused) of the TextView.
			 */
			public getTextColors(): android.content.res.ColorStateList;
			public getCurrentTextColor(): number;
			/**
			 * Sets the color used to display the selection highlight.
			 */
			public setHighlightColor(color: number): void;
			public getHighlightColor(): number;
			/**
			 * Gives the text a shadow of the specified radius and color, the specified distance from its normal position.
			 */
			public setShadowLayer(radius: number, dx: number, dy: number, color: number): void;
			/**
			 * Gets the radius of the shadow layer.
			 */
			public getShadowRadius(): number;
			public getShadowDx(): number;
			public getShadowDy(): number;
			public getShadowColor(): number;
			public getPaint(): android.text.TextPaint;
			/**
			 * Sets the autolink mask of the text. See android.text.util.Linkify#ALL Linkify.ALL and peers for possible values.
			 */
			public setAutoLinkMask(mask: number): void;
			/**
			 * Sets whether the movement method will automatically be set to LinkMovementMethod if #setAutoLinkMask has been set to nonzero and links are detected in #setText. The default is true.
			 */
			public setLinksClickable(whether: boolean): void;
			/**
			 * Returns whether the movement method will automatically be set to LinkMovementMethod if #setAutoLinkMask has been set to nonzero and links are detected in #setText. The default is true.
			 */
			public getLinksClickable(): boolean;
			/**
			 * Returns the list of URLSpans attached to the text (by Linkify or otherwise) if any. You can call URLSpan#getURL on them to find where they link to or use Spanned#getSpanStart and Spanned#getSpanEnd to find the region of the text they are attached to.
			 */
			public getUrls(): native.Array<android.text.style.URLSpan>;
			/**
			 * Sets the color of the hint text for all the states (disabled, focussed, selected...) of this TextView.
			 */
			public setHintTextColor(color: number): void;
			/**
			 * Sets the color of the hint text.
			 */
			public setHintTextColor(colors: android.content.res.ColorStateList): void;
			public getHintTextColors(): android.content.res.ColorStateList;
			public getCurrentHintTextColor(): number;
			/**
			 * Sets the color of links in the text.
			 */
			public setLinkTextColor(color: number): void;
			/**
			 * Sets the color of links in the text.
			 */
			public setLinkTextColor(colors: android.content.res.ColorStateList): void;
			public getLinkTextColors(): android.content.res.ColorStateList;
			/**
			 * Sets the horizontal alignment of the text and the vertical gravity that will be used when there is extra space in the TextView beyond what is required for the text itself.
			 */
			public setGravity(gravity: number): void;
			/**
			 * Returns the horizontal and vertical alignment of this TextView.
			 */
			public getGravity(): number;
			public getPaintFlags(): number;
			/**
			 * Sets flags on the Paint being used to display the text and reflows the text if they are different from the old flags. Paint#setFlags
			 */
			public setPaintFlags(flags: number): void;
			/**
			 * Sets whether the text should be allowed to be wider than the View is. If false, it will be wrapped to the width of the View.
			 */
			public setHorizontallyScrolling(whether: boolean): void;
			/**
			 * Makes the TextView at least this many lines tall.
			 */
			public setMinLines(minlines: number): void;
			public getMinLines(): number;
			/**
			 * Makes the TextView at least this many pixels tall.
			 */
			public setMinHeight(minHeight: number): void;
			public getMinHeight(): number;
			/**
			 * Makes the TextView at most this many lines tall.
			 */
			public setMaxLines(maxlines: number): void;
			public getMaxLines(): number;
			/**
			 * Makes the TextView at most this many pixels tall. This option is mutually exclusive with the #setMaxLines(int) method.
			 */
			public setMaxHeight(maxHeight: number): void;
			public getMaxHeight(): number;
			/**
			 * Makes the TextView exactly this many lines tall.
			 */
			public setLines(lines: number): void;
			/**
			 * Makes the TextView exactly this many pixels tall. You could do the same thing by specifying this number in the LayoutParams.
			 */
			public setHeight(pixels: number): void;
			/**
			 * Makes the TextView at least this many ems wide
			 */
			public setMinEms(minems: number): void;
			public getMinEms(): number;
			/**
			 * Makes the TextView at least this many pixels wide
			 */
			public setMinWidth(minpixels: number): void;
			public getMinWidth(): number;
			/**
			 * Makes the TextView at most this many ems wide
			 */
			public setMaxEms(maxems: number): void;
			public getMaxEms(): number;
			/**
			 * Makes the TextView at most this many pixels wide
			 */
			public setMaxWidth(maxpixels: number): void;
			public getMaxWidth(): number;
			/**
			 * Makes the TextView exactly this many ems wide
			 */
			public setEms(ems: number): void;
			/**
			 * Makes the TextView exactly this many pixels wide. You could do the same thing by specifying this number in the LayoutParams.
			 */
			public setWidth(pixels: number): void;
			/**
			 * Sets line spacing for this TextView. Each line will have its height multiplied by <code>mult</code> and have <code>add</code> added to it.
			 */
			public setLineSpacing(add: number, mult: number): void;
			/**
			 * Gets the line spacing multiplier
			 */
			public getLineSpacingMultiplier(): number;
			/**
			 * Gets the line spacing extra space
			 */
			public getLineSpacingExtra(): number;
			/**
			 * Convenience method: Append the specified text to the TextView's display buffer, upgrading it to BufferType.EDITABLE if it was not already editable.
			 */
			public append(text: string): void;
			/**
			 * Convenience method: Append the specified text slice to the TextView's display buffer, upgrading it to BufferType.EDITABLE if it was not already editable.
			 */
			public append(text: string, start: number, end: number): void;
			protected drawableStateChanged(): void;
			public onSaveInstanceState(): android.os.IParcelable;
			removeMisspelledSpans(spannable: android.text.ISpannable): void;
			public onRestoreInstanceState(state: android.os.IParcelable): void;
			/**
			 * Control whether this text view saves its entire text contents when freezing to an icicle, in addition to dynamic state such as cursor position. By default this is false, not saving the text. Set to true if the text in the text view is not being saved somewhere else in persistent storage (such as in a content provider) so that if the view is later thawed the user will not lose their data.
			 * @param freezesText Controls whether a frozen icicle should include the
			 */
			public setFreezesText(freezesText: boolean): void;
			/**
			 * Return whether this text view is including its entire text contents in frozen icicles.
			 */
			public getFreezesText(): boolean;
			/**
			 * Sets the Factory used to create new Editables.
			 */
			public setEditableFactory(factory: android.text.Editable.Factory): void;
			/**
			 * Sets the Factory used to create new Spannables.
			 */
			public setSpannableFactory(factory: android.text.Spannable.Factory): void;
			/**
			 * Sets the string value of the TextView. TextView <em>does not</em> accept HTML-like formatting, which you can do with text strings in XML resource files. To style your strings, attach android.text.style.* objects to a android.text.SpannableString SpannableString, or see the <a href="guide/topics/resources/available-resources.html#stringresources"> Available Resource Types</a> documentation for an example of setting formatted text in the XML resource file.
			 */
			public setText(text: string): void;
			/**
			 * Like #setText(CharSequence), except that the cursor position (if any) is retained in the new text.
			 * @param text The new text to place in the text view.
			 */
			public setTextKeepState(text: string): void;
			/**
			 * Sets the text that this TextView is to display (see #setText(CharSequence)) and also sets whether it is stored in a styleable/spannable buffer and whether it is editable.
			 */
			public setText(text: string, type: android.widget.TextView.BufferType): void;
			/**
			 * Sets the TextView to display the specified slice of the specified char array. You must promise that you will not change the contents of the array except for right before another call to setText(), since the TextView has no way to know that the text has changed and that it needs to invalidate and re-layout.
			 */
			public setText(text: native.Array<string>, start: number, len: number): void;
			/**
			 * Like #setText(CharSequence, android.widget.TextView.BufferType), except that the cursor position (if any) is retained in the new text.
			 */
			public setTextKeepState(text: string, type: android.widget.TextView.BufferType): void;
			public setText(resid: number): void;
			public setText(resid: number, type: android.widget.TextView.BufferType): void;
			/**
			 * Sets the text to be displayed when the text of the TextView is empty. Null means to use the normal empty text. The hint does not currently participate in determining the size of the view.
			 */
			public setHint(hint: string): void;
			/**
			 * Sets the text to be displayed when the text of the TextView is empty, from a resource.
			 */
			public setHint(resid: number): void;
			/**
			 * Returns the hint that is displayed when the text of the TextView is empty.
			 */
			public getHint(): string;
			isSingleLine(): boolean;
			/**
			 * Removes the suggestion spans.
			 */
			removeSuggestionSpans(text: string): string;
			/**
			 * Set the type of the content with a constant as defined for EditorInfo#inputType. This will take care of changing the key listener, by calling #setKeyListener(KeyListener), to match the given content type. If the given content type is EditorInfo#TYPE_NULL then a soft keyboard will not be displayed for this text view.
			 */
			public setInputType(type: number): void;
			/**
			 * Directly change the content type integer of the text view, without modifying any other state. #setInputType(int) android.text.InputType ref android.R.styleable#TextView_inputType
			 */
			public setRawInputType(type: number): void;
			/**
			 * Get the type of the editable content.
			 */
			public getInputType(): number;
			/**
			 * Change the editor type integer associated with the text view, which will be reported to an IME with EditorInfo#imeOptions when it has focus. #getImeOptions android.view.inputmethod.EditorInfo ref android.R.styleable#TextView_imeOptions
			 */
			public setImeOptions(imeOptions: number): void;
			/**
			 * Get the type of the IME editor.
			 */
			public getImeOptions(): number;
			/**
			 * Change the custom IME action associated with the text view, which will be reported to an IME with EditorInfo#actionLabel and EditorInfo#actionId when it has focus. #getImeActionLabel #getImeActionId android.view.inputmethod.EditorInfo ref android.R.styleable#TextView_imeActionLabel ref android.R.styleable#TextView_imeActionId
			 */
			public setImeActionLabel(label: string, actionId: number): void;
			/**
			 * Get the IME action label previous set with #setImeActionLabel.
			 */
			public getImeActionLabel(): string;
			/**
			 * Get the IME action ID previous set with #setImeActionLabel.
			 */
			public getImeActionId(): number;
			/**
			 * Set a special listener to be called when an action is performed on the text view. This will be called when the enter key is pressed, or when an action supplied to the IME is selected by the user. Setting this means that the normal hard key event will not insert a newline into the text view, even if it is multi-line; holding down the ALT modifier will, however, allow the user to insert a newline character.
			 */
			public setOnEditorActionListener(l: android.widget.TextView.IOnEditorActionListener): void;
			/**
			 * Called when an attached input method calls InputConnection#performEditorAction(int) InputConnection.performEditorAction() for this text view. The default implementation will call your action listener supplied to #setOnEditorActionListener, or perform a standard operation for EditorInfo#IME_ACTION_NEXT EditorInfo.IME_ACTION_NEXT, EditorInfo#IME_ACTION_PREVIOUS EditorInfo.IME_ACTION_PREVIOUS, or EditorInfo#IME_ACTION_DONE EditorInfo.IME_ACTION_DONE.
			 * @param actionCode The code of the action being performed.
			 */
			public onEditorAction(actionCode: number): void;
			/**
			 * Set the private content type of the text, which is the EditorInfo#privateImeOptions EditorInfo.privateImeOptions field that will be filled in when creating an input connection.
			 */
			public setPrivateImeOptions(type: string): void;
			/**
			 * Get the private type of the content.
			 */
			public getPrivateImeOptions(): string;
			/**
			 * Set the extra input data of the text, which is the EditorInfo#extras TextBoxAttribute.extras Bundle that will be filled in when creating an input connection. The given integer is the resource ID of an XML resource holding an android.R.styleable#InputExtras &lt;input-extras&gt; XML tree.
			 */
			public setInputExtras(xmlResId: number): void;
			/**
			 * Retrieve the input extras currently associated with the text view, which can be viewed as well as modified.
			 * @param create If true, the extras will be created if they don't already
			 */
			public getInputExtras(create: boolean): android.os.Bundle;
			/**
			 * Returns the error message that was set to be displayed with #setError, or <code>null</code> if no error was set or if it the error was cleared by the widget after user input.
			 */
			public getError(): string;
			/**
			 * Sets the right-hand compound drawable of the TextView to the "error" icon and sets an error message that will be displayed in a popup when the TextView has focus. The icon and error message will be reset to null when any key events cause changes to the TextView's text. If the <code>error</code> is <code>null</code>, the error message and icon will be cleared.
			 */
			public setError(error: string): void;
			/**
			 * Sets the right-hand compound drawable of the TextView to the specified icon and sets an error message that will be displayed in a popup when the TextView has focus. The icon and error message will be reset to null when any key events cause changes to the TextView's text. The drawable must already have had Drawable#setBounds set on it. If the <code>error</code> is <code>null</code>, the error message will be cleared (and you should provide a <code>null</code> icon as well).
			 */
			public setError(error: string, icon: android.graphics.drawable.Drawable): void;
			protected setFrame(l: number, t: number, r: number, b: number): boolean;
			/**
			 * Sets the list of input filters that will be used if the buffer is Editable. Has no effect otherwise.
			 */
			public setFilters(filters: native.Array<android.text.IInputFilter>): void;
			/**
			 * Returns the current list of input filters.
			 */
			public getFilters(): native.Array<android.text.IInputFilter>;
			getVerticalOffset(forceNormal: boolean): number;
			invalidateCursorPath(): void;
			invalidateCursor(): void;
			/**
			 * Invalidates the region of text enclosed between the start and end text offsets.
			 */
			invalidateRegion(start: number, end: number, invalidateCursor: boolean): void;
			/**
			 * 
			 */
			public onPreDraw(): boolean;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			public onScreenStateChanged(screenState: number): void;
			protected isPaddingOffsetRequired(): boolean;
			protected getLeftPaddingOffset(): number;
			protected getTopPaddingOffset(): number;
			protected getBottomPaddingOffset(): number;
			protected getRightPaddingOffset(): number;
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			public invalidateDrawable(drawable: android.graphics.drawable.Drawable): void;
			public hasOverlappingRendering(): boolean;
			/**
			 * When a TextView is used to display a useful piece of information to the user (such as a contact's address), it should be made selectable, so that the user can select and copy this content.
			 */
			public isTextSelectable(): boolean;
			/**
			 * Sets whether or not (default) the content of this view is selectable by the user.
			 * @param selectable Whether or not the content of this TextView should be selectable.
			 */
			public setTextIsSelectable(selectable: boolean): void;
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			protected onDraw(canvas: android.graphics.Canvas): void;
			public getFocusedRect(r: android.graphics.Rect): void;
			/**
			 * Return the number of lines of text, or 0 if the internal Layout has not been built.
			 */
			public getLineCount(): number;
			/**
			 * Return the baseline for the specified line (0...getLineCount() - 1) If bounds is not null, return the top, left, right, bottom extents of the specified line in it. If the internal Layout has not been built, return 0 and set bounds to (0, 0, 0, 0)
			 * @param line which line to examine (0..getLineCount() - 1)
			 * @param bounds Optional. If not null, it returns the extent of the line
			 */
			public getLineBounds(line: number, bounds: android.graphics.Rect): number;
			public getBaseline(): number;
			public onKeyPreIme(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyMultiple(keyCode: number, repeatCount: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			public onCheckIsTextEditor(): boolean;
			public onCreateInputConnection(outAttrs: android.view.inputmethod.EditorInfo): android.view.inputmethod.IInputConnection;
			/**
			 * If this TextView contains editable content, extract a portion of it based on the information in <var>request</var> in to <var>outText</var>.
			 */
			public extractText(request: android.view.inputmethod.ExtractedTextRequest, outText: android.view.inputmethod.ExtractedText): boolean;
			/**
			 * This is used to remove all style-impacting spans from text before new extracted text is being replaced into it, so that we don't have any lingering spans applied during the replace.
			 */
			static removeParcelableSpans(spannable: android.text.ISpannable, start: number, end: number): void;
			/**
			 * Apply to this text view the given extracted text, as previously returned by #extractText(ExtractedTextRequest, ExtractedText).
			 */
			public setExtractedText(text: android.view.inputmethod.ExtractedText): void;
			/**
			 * Called by the framework in response to a text completion from the current input method, provided by it calling InputConnection#commitCompletion InputConnection.commitCompletion(). The default implementation does nothing; text views that are supporting auto-completion should override this to do their desired behavior.
			 * @param text The auto complete text the user has selected.
			 */
			public onCommitCompletion(text: android.view.inputmethod.CompletionInfo): void;
			/**
			 * Called by the framework in response to a text auto-correction (such as fixing a typo using a a dictionnary) from the current input method, provided by it calling InputConnection#commitCorrection InputConnection.commitCorrection()}. The default implementation flashes the background of the corrected word to provide feedback to the user.
			 * @param info The auto correct info about the text that was corrected.
			 */
			public onCommitCorrection(info: android.view.inputmethod.CorrectionInfo): void;
			public beginBatchEdit(): void;
			public endBatchEdit(): void;
			/**
			 * Called by the framework in response to a request to begin a batch of edit operations through a call to link #beginBatchEdit().
			 */
			public onBeginBatchEdit(): void;
			/**
			 * Called by the framework in response to a request to end a batch of edit operations through a call to link #endBatchEdit.
			 */
			public onEndBatchEdit(): void;
			/**
			 * Called by the framework in response to a private command from the current method, provided by it calling InputConnection#performPrivateCommand InputConnection.performPrivateCommand().
			 * @param action The action name of the command.
			 * @param data Any additional data for the command. This may be null.
			 */
			public onPrivateIMECommand(action: string, data: android.os.Bundle): boolean;
			public onRtlPropertiesChanged(layoutDirection: number): void;
			/**
			 * Set whether the TextView includes extra top and bottom padding to make room for accents that go above the normal ascent and descent. The default is true.
			 */
			public setIncludeFontPadding(includepad: boolean): void;
			/**
			 * Gets whether the TextView includes extra top and bottom padding to make room for accents that go above the normal ascent and descent.
			 */
			public getIncludeFontPadding(): boolean;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			/**
			 * Move the point, specified by the offset, into the view if it is needed. This has to be called after layout. Returns true if anything changed.
			 */
			public bringPointIntoView(offset: number): boolean;
			/**
			 * Move the cursor, if needed, so that it is at an offset that is visible to the user. This will not move the cursor if it represents more than one character (a selection range). This will only work if the TextView contains spannable text; otherwise it will do nothing.
			 */
			public moveCursorToVisibleOffset(): boolean;
			public computeScroll(): void;
			viewportToContentHorizontalOffset(): number;
			viewportToContentVerticalOffset(): number;
			public debug(depth: number): void;
			/**
			 * Convenience for Selection#getSelectionStart.
			 */
			public getSelectionStart(): number;
			/**
			 * Convenience for Selection#getSelectionEnd.
			 */
			public getSelectionEnd(): number;
			/**
			 * Return true iff there is a selection inside this text view.
			 */
			public hasSelection(): boolean;
			/**
			 * Sets the properties of this field (lines, horizontally scrolling, transformation method) to be for a single-line input.
			 */
			public setSingleLine(): void;
			/**
			 * Sets the properties of this field to transform input to ALL CAPS display. This may use a "small caps" formatting if available. This setting will be ignored if this field is editable or selectable.
			 */
			public setAllCaps(allCaps: boolean): void;
			/**
			 * If true, sets the properties of this field (number of lines, horizontally scrolling, transformation method) to be for a single-line input; if false, restores these to the default conditions.
			 */
			public setSingleLine(singleLine: boolean): void;
			/**
			 * Causes words in the text that are longer than the view is wide to be ellipsized instead of broken in the middle. You may also want to #setSingleLine or #setHorizontallyScrolling to constrain the text to a single line. Use <code>null</code> to turn off ellipsizing.
			 */
			public setEllipsize(where: android.text.TextUtils.TruncateAt): void;
			/**
			 * Sets how many times to repeat the marquee animation. Only applied if the TextView has marquee enabled. Set to -1 to repeat indefinitely.
			 */
			public setMarqueeRepeatLimit(marqueeLimit: number): void;
			/**
			 * Gets the number of times the marquee animation is repeated. Only meaningful if the TextView has marquee enabled.
			 */
			public getMarqueeRepeatLimit(): number;
			/**
			 * Returns where, if anywhere, words that are longer than the view is wide should be ellipsized.
			 */
			public getEllipsize(): android.text.TextUtils.TruncateAt;
			/**
			 * Set the TextView so that when it takes focus, all the text is selected.
			 */
			public setSelectAllOnFocus(selectAllOnFocus: boolean): void;
			/**
			 * Set whether the cursor is visible. The default is true. Note that this property only makes sense for editable TextView.
			 */
			public setCursorVisible(visible: boolean): void;
			public isCursorVisible(): boolean;
			/**
			 * This method is called when the text is changed, in case any subclasses would like to know.
			 * @param text The text the TextView is displaying
			 * @param start The offset of the start of the range of the text that was
			 * @param lengthBefore The length of the former text that has been replaced
			 * @param lengthAfter The length of the replacement modified text
			 */
			protected onTextChanged(text: string, start: number, lengthBefore: number, lengthAfter: number): void;
			/**
			 * This method is called when the selection has changed, in case any subclasses would like to know.
			 * @param selStart The new selection start location.
			 * @param selEnd The new selection end location.
			 */
			protected onSelectionChanged(selStart: number, selEnd: number): void;
			/**
			 * Adds a TextWatcher to the list of those whose methods are called whenever this TextView's text changes.
			 */
			public addTextChangedListener(watcher: android.text.ITextWatcher): void;
			/**
			 * Removes the specified TextWatcher from the list of those whose methods are called whenever this TextView's text changes.
			 */
			public removeTextChangedListener(watcher: android.text.ITextWatcher): void;
			/**
			 * Not private so it can be called from an inner class without going through a thunk.
			 */
			sendOnTextChanged(text: string, start: number, before: number, after: number): void;
			/**
			 * Not private so it can be called from an inner class without going through a thunk.
			 */
			sendAfterTextChanged(text: any): void;
			updateAfterEdit(): void;
			/**
			 * Not private so it can be called from an inner class without going through a thunk.
			 */
			handleTextChanged(buffer: string, start: number, before: number, after: number): void;
			/**
			 * Not private so it can be called from an inner class without going through a thunk.
			 */
			spanChange(buf: android.text.ISpanned, what: any, oldStart: number, newStart: number, oldEnd: number, newEnd: number): void;
			public onStartTemporaryDetach(): void;
			public onFinishTemporaryDetach(): void;
			protected onFocusChanged(focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			public onWindowFocusChanged(hasWindowFocus: boolean): void;
			protected onVisibilityChanged(changedView: android.view.View, visibility: number): void;
			/**
			 * Use BaseInputConnection#removeComposingSpans BaseInputConnection.removeComposingSpans() to remove any IME composing state from this text view.
			 */
			public clearComposingText(): void;
			public setSelected(selected: boolean): void;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			isTextEditable(): boolean;
			/**
			 * Returns true, only while processing a touch gesture, if the initial touch down event caused focus to move to the text view and as a result its selection changed. Only valid while processing the touch gesture of interest, in an editable text view.
			 */
			public didTouchFocusSelect(): boolean;
			public cancelLongPress(): void;
			public onTrackballEvent(event: android.view.MotionEvent): boolean;
			public setScroller(s: android.widget.Scroller): void;
			protected getLeftFadingEdgeStrength(): number;
			protected getRightFadingEdgeStrength(): number;
			protected computeHorizontalScrollRange(): number;
			protected computeVerticalScrollRange(): number;
			protected computeVerticalScrollExtent(): number;
			public findViewsWithText(outViews: java.util.ArrayList<android.view.View>, searched: string, flags: number): void;
			/**
			 * Returns the TextView_textColor attribute from the Resources.StyledAttributes, if set, or the TextAppearance_textColor from the TextView_textAppearance attribute, if TextView_textColor was not set directly.
			 */
			public static getTextColors(context: android.content.Context, attrs: android.content.res.TypedArray): android.content.res.ColorStateList;
			/**
			 * Returns the default color from the TextView_textColor attribute from the AttributeSet, if set, or the default color from the TextAppearance_textColor from the TextView_textAppearance attribute, if TextView_textColor was not set directly.
			 */
			public static getTextColor(context: android.content.Context, attrs: android.content.res.TypedArray, def: number): number;
			public onKeyShortcut(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Test based on the <i>intrinsic</i> charateristics of the TextView. The text must be spannable and the movement method must allow for arbitary selection.
			 */
			textCanBeSelected(): boolean;
			onLocaleChanged(): void;
			public onPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public sendAccessibilityEvent(eventType: number): void;
			sendAccessibilityEventTypeViewTextChanged(beforeText: string, fromIndex: number, removedCount: number, addedCount: number): void;
			/**
			 * Returns whether this text view is a current input method target. The default implementation just checks with InputMethodManager.
			 */
			public isInputMethodTarget(): boolean;
			/**
			 * Called when a context menu option for the text view is selected. Currently this will be one of android.R.id#selectAll, android.R.id#cut, android.R.id#copy or android.R.id#paste.
			 */
			public onTextContextMenuItem(id: number): boolean;
			getTransformedText(start: number, end: number): string;
			public performLongClick(): boolean;
			protected onScrollChanged(horiz: number, vert: number, oldHoriz: number, oldVert: number): void;
			/**
			 * Return whether or not suggestions are enabled on this TextView. The suggestions are generated by the IME or by the spell checker as the user types. This is done by adding SuggestionSpans to the text.
			 */
			public isSuggestionsEnabled(): boolean;
			/**
			 * If provided, this ActionMode.Callback will be used to create the ActionMode when text selection is initiated in this View.
			 */
			public setCustomSelectionActionModeCallback(actionModeCallback: android.view.ActionMode.ICallback): void;
			/**
			 * Retrieves the value set in #setCustomSelectionActionModeCallback. Default is null.
			 */
			public getCustomSelectionActionModeCallback(): android.view.ActionMode.ICallback;
			canCut(): boolean;
			canCopy(): boolean;
			canPaste(): boolean;
			selectAllText(): boolean;
			/**
			 * Prepare text so that there are not zero or two spaces at beginning and end of region defined by [min, max] when replacing this region by paste. Note that if there were two spaces (or more) at that position before, they are kept. We just make sure we do not add an extra one from the paste content.
			 */
			prepareSpacesAroundPaste(min: number, max: number, paste: string): any;
			/**
			 * Get the character offset closest to the specified absolute position. A typical use case is to pass the result of MotionEvent#getX() and MotionEvent#getY() to this method.
			 * @param x The horizontal absolute position of a point on screen
			 * @param y The vertical absolute position of a point on screen
			 */
			public getOffsetForPosition(x: number, y: number): number;
			convertToLocalHorizontalCoordinate(x: number): number;
			getLineAtCoordinate(y: number): number;
			public onDragEvent(event: android.view.DragEvent): boolean;
			isInBatchEditMode(): boolean;
		}
		export module TextView {
			export class Drawables extends java.lang.Object {
				static class: java.lang.Class<android.widget.TextView.Drawables>;
			}
			/**
			 * User interface state that is stored by TextView for implementing View#onSaveInstanceState.
			 */
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.TextView.SavedState>;
				static class: java.lang.Class<android.widget.TextView.SavedState>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public toString(): string;
			}
			export class Marquee extends android.os.Handler {
				static class: java.lang.Class<android.widget.TextView.Marquee>;
				public handleMessage(msg: android.os.Message): void;
				tick(): void;
				stop(): void;
				start(repeatLimit: number): void;
				getGhostOffset(): number;
				getScroll(): number;
				getMaxFadeScroll(): number;
				shouldDrawLeftFade(): boolean;
				shouldDrawGhost(): boolean;
				isRunning(): boolean;
				isStopped(): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when an action is performed on the editor.
			 */
			export class OnEditorActionListener implements android.widget.TextView.IOnEditorActionListener {
				constructor(implementation: android.widget.TextView.IOnEditorActionListener);
				/**
				 * Called when an action is being performed.
				 * @param v The view that was clicked.
				 * @param actionId Identifier of the action. This will be either the
				 * @param event If triggered by an enter key, this is the event;
				 */
				public onEditorAction(v: android.widget.TextView, actionId: number, event: android.view.KeyEvent): boolean;
			}
			export enum BufferType {
				NORMAL,
				SPANNABLE,
				EDITABLE
			}
			export class CharWrapper extends java.lang.Object implements java.lang.ICharSequence, android.text.IGetChars {
				constructor(chars: native.Array<string>, start: number, len: number);
				static class: java.lang.Class<android.widget.TextView.CharWrapper>;
				set(chars: native.Array<string>, start: number, len: number): void;
				public length(): number;
				public charAt(off: number): string;
				public toString(): string;
				public subSequence(start: number, end: number): string;
				public getChars(start: number, end: number, buf: native.Array<string>, off: number): void;
				public drawText(c: android.graphics.Canvas, start: number, end: number, x: number, y: number, p: android.graphics.Paint): void;
				public drawTextRun(c: android.graphics.Canvas, start: number, end: number, contextStart: number, contextEnd: number, x: number, y: number, flags: number, p: android.graphics.Paint): void;
				public measureText(start: number, end: number, p: android.graphics.Paint): number;
				public getTextWidths(start: number, end: number, widths: native.Array<number>, p: android.graphics.Paint): number;
				public getTextRunAdvances(start: number, end: number, contextStart: number, contextEnd: number, flags: number, advances: native.Array<number>, advancesIndex: number, p: android.graphics.Paint): number;
				public getTextRunAdvances(start: number, end: number, contextStart: number, contextEnd: number, flags: number, advances: native.Array<number>, advancesIndex: number, p: android.graphics.Paint, reserved: number): number;
				public getTextRunCursor(contextStart: number, contextEnd: number, flags: number, offset: number, cursorOpt: number, p: android.graphics.Paint): number;
			}
			export class ChangeWatcher extends java.lang.Object implements android.text.ITextWatcher, android.text.ISpanWatcher {
				static class: java.lang.Class<android.widget.TextView.ChangeWatcher>;
				public beforeTextChanged(buffer: string, start: number, before: number, after: number): void;
				public onTextChanged(buffer: string, start: number, before: number, after: number): void;
				public afterTextChanged(buffer: any): void;
				public onSpanChanged(buf: android.text.ISpannable, what: any, s: number, e: number, st: number, en: number): void;
				public onSpanAdded(buf: android.text.ISpannable, what: any, s: number, e: number): void;
				public onSpanRemoved(buf: android.text.ISpannable, what: any, s: number, e: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an action is performed on the editor.
			 */
			interface IOnEditorActionListener {
				/**
				 * Called when an action is being performed.
				 * @param v The view that was clicked.
				 * @param actionId Identifier of the action. This will be either the
				 * @param event If triggered by an enter key, this is the event;
				 */
				onEditorAction(v: android.widget.TextView, actionId: number, event: android.view.KeyEvent): boolean;
			}
		}
		/**
		 * Displays an arbitrary image, such as an icon. The ImageView class can load images from various sources (such as resources or content providers), takes care of computing its measurement from the image so that it can be used in any layout manager, and provides various display options such as scaling and tinting.
		 */
		export class ImageView extends android.view.View {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.ImageView>;
			protected verifyDrawable(dr: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			public invalidateDrawable(dr: android.graphics.drawable.Drawable): void;
			public hasOverlappingRendering(): boolean;
			public onPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * True when ImageView is adjusting its bounds to preserve the aspect ratio of its drawable
			 */
			public getAdjustViewBounds(): boolean;
			/**
			 * Set this to true if you want the ImageView to adjust its bounds to preserve the aspect ratio of its drawable.
			 * @param adjustViewBounds Whether to adjust the bounds of this view
			 */
			public setAdjustViewBounds(adjustViewBounds: boolean): void;
			/**
			 * The maximum width of this view.
			 */
			public getMaxWidth(): number;
			/**
			 * An optional argument to supply a maximum width for this view. Only valid if #setAdjustViewBounds(boolean) has been set to true. To set an image to be a maximum of 100 x 100 while preserving the original aspect ratio, do the following: 1) set adjustViewBounds to true 2) set maxWidth and maxHeight to 100 3) set the height and width layout params to WRAP_CONTENT. 
			 * @param maxWidth maximum width for this view
			 */
			public setMaxWidth(maxWidth: number): void;
			/**
			 * The maximum height of this view.
			 */
			public getMaxHeight(): number;
			/**
			 * An optional argument to supply a maximum height for this view. Only valid if #setAdjustViewBounds(boolean) has been set to true. To set an image to be a maximum of 100 x 100 while preserving the original aspect ratio, do the following: 1) set adjustViewBounds to true 2) set maxWidth and maxHeight to 100 3) set the height and width layout params to WRAP_CONTENT. 
			 * @param maxHeight maximum height for this view
			 */
			public setMaxHeight(maxHeight: number): void;
			/**
			 * Return the view's drawable, or null if no drawable has been assigned.
			 */
			public getDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Sets a drawable as the content of this ImageView.
			 * @param resId the resource identifier of the the drawable
			 */
			public setImageResource(resId: number): void;
			/**
			 * Sets the content of this ImageView to the specified Uri.
			 * @param uri The Uri of an image
			 */
			public setImageURI(uri: android.net.Uri): void;
			/**
			 * Sets a drawable as the content of this ImageView. 
			 * @param drawable The drawable to set
			 */
			public setImageDrawable(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Sets a Bitmap as the content of this ImageView. 
			 * @param bm The bitmap to set
			 */
			public setImageBitmap(bm: android.graphics.Bitmap): void;
			public setImageState(state: native.Array<number>, merge: boolean): void;
			public setSelected(selected: boolean): void;
			/**
			 * Sets the image level, when it is constructed from a android.graphics.drawable.LevelListDrawable.
			 * @param level The new level for the image.
			 */
			public setImageLevel(level: number): void;
			/**
			 * Controls how the image should be resized or moved to match the size of this ImageView. 
			 * @param scaleType The desired scaling mode.
			 */
			public setScaleType(scaleType: android.widget.ImageView.ScaleType): void;
			/**
			 * Return the current scale type in use by this ImageView.
			 */
			public getScaleType(): android.widget.ImageView.ScaleType;
			/**
			 * Return the view's optional matrix. This is applied to the view's drawable when it is drawn. If there is not matrix, this method will return null. Do not change this matrix in place. If you want a different matrix applied to the drawable, be sure to call setImageMatrix().
			 */
			public getImageMatrix(): android.graphics.Matrix;
			public setImageMatrix(matrix: android.graphics.Matrix): void;
			/**
			 * Return whether this ImageView crops to padding.
			 */
			public getCropToPadding(): boolean;
			/**
			 * Sets whether this ImageView will crop to padding.
			 * @param cropToPadding whether this ImageView will crop to padding
			 */
			public setCropToPadding(cropToPadding: boolean): void;
			public onCreateDrawableState(extraSpace: number): native.Array<number>;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected setFrame(l: number, t: number, r: number, b: number): boolean;
			protected drawableStateChanged(): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			public getBaseline(): number;
			/**
			 * @param baseline The baseline to use, or -1 if none is to be provided.
			 */
			public setBaseline(baseline: number): void;
			/**
			 * Set whether to set the baseline of this view to the bottom of the view. Setting this value overrides any calls to setBaseline.
			 * @param aligned If true, the image view will be baseline aligned with
			 */
			public setBaselineAlignBottom(aligned: boolean): void;
			/**
			 * Return whether this view's baseline will be considered the bottom of the view.
			 */
			public getBaselineAlignBottom(): boolean;
			/**
			 * Set a tinting option for the image. 
			 * @param color Color tint to apply.
			 * @param mode How to apply the color. The standard mode is
			 */
			public setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			/**
			 * Set a tinting option for the image. Assumes PorterDuff.Mode#SRC_ATOP blending mode.
			 * @param color Color tint to apply.
			 */
			public setColorFilter(color: number): void;
			public clearColorFilter(): void;
			/**
			 * Returns the active color filter for this ImageView.
			 */
			public getColorFilter(): android.graphics.ColorFilter;
			/**
			 * Apply an arbitrary colorfilter to the image.
			 * @param cf the colorfilter to apply (may be null)
			 */
			public setColorFilter(cf: android.graphics.ColorFilter): void;
			/**
			 * Returns the alpha that will be applied to the drawable of this ImageView.
			 */
			public getImageAlpha(): number;
			/**
			 * Sets the alpha value that should be applied to the image.
			 * @param alpha the alpha value that should be applied to the image
			 */
			public setImageAlpha(alpha: number): void;
			/**
			 * Sets the alpha value that should be applied to the image.
			 * @param alpha the alpha value that should be applied to the image
			 */
			public setAlpha(alpha: number): void;
			public setVisibility(visibility: number): void;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module ImageView {
			/**
			 * Options for scaling the bounds of an image to the bounds of this view.
			 */
			export enum ScaleType {
				MATRIX,
				FIT_XY,
				FIT_START,
				FIT_CENTER,
				FIT_END,
				CENTER,
				CENTER_CROP,
				CENTER_INSIDE
			}
		}
		/**
		 * A collection of tests on aspects of the AutoCompleteTextView's popup
		 */
		export class AutoCompleteTextViewPopup extends android.test.ActivityInstrumentationTestCase2<android.widget.AutoCompleteTextViewSimple> {
			constructor();
			static class: java.lang.Class<android.widget.AutoCompleteTextViewPopup>;
			/**
			 * Test that we can move the selection and it responds as expected
			 */
			public testPopupSetListSelection(): void;
			/**
			 * Test that we can look at the selection as we move around
			 */
			public testPopupGetListSelection(): void;
			/**
			 * Test that we can clear the selection
			 */
			public testPopupClearListSelection(): void;
			/**
			 * Make sure we handle an empty adapter properly
			 */
			public testPopupNavigateNoAdapter(): void;
			/**
			 * Test the show/hide behavior of the drop-down.
			 */
			public testPopupShow(): void;
		}
		/**
		 * Layout container for a view hierarchy that can be scrolled by the user, allowing it to be larger than the physical display. A HorizontalScrollView is a FrameLayout, meaning you should place one child in it containing the entire contents to scroll; this child may itself be a layout manager with a complex hierarchy of objects. A child that is often used is a LinearLayout in a horizontal orientation, presenting a horizontal array of top-level items that the user can scroll through.
		 */
		export class HorizontalScrollView extends android.widget.FrameLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.HorizontalScrollView>;
			protected getLeftFadingEdgeStrength(): number;
			protected getRightFadingEdgeStrength(): number;
			public getMaxScrollAmount(): number;
			public addView(child: android.view.View): void;
			public addView(child: android.view.View, index: number): void;
			public addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Indicates whether this HorizontalScrollView's content is stretched to fill the viewport.
			 */
			public isFillViewport(): boolean;
			/**
			 * Indicates this HorizontalScrollView whether it should stretch its content width to fill the viewport or not.
			 * @param fillViewport True to stretch the content's width to the viewport's
			 */
			public setFillViewport(fillViewport: boolean): void;
			public isSmoothScrollingEnabled(): boolean;
			/**
			 * Set whether arrow scrolling will animate its transition.
			 * @param smoothScrollingEnabled whether arrow scrolling will animate its transition
			 */
			public setSmoothScrollingEnabled(smoothScrollingEnabled: boolean): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * You can call this function yourself to have the scroll view perform scrolling from a key event, just as if the event had been dispatched to it by the view hierarchy.
			 * @param event The key event to execute.
			 */
			public executeKeyEvent(event: android.view.KeyEvent): boolean;
			public requestDisallowInterceptTouchEvent(disallowIntercept: boolean): void;
			public onInterceptTouchEvent(ev: android.view.MotionEvent): boolean;
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			public shouldDelayChildPressedState(): boolean;
			protected onOverScrolled(scrollX: number, scrollY: number, clampedX: boolean, clampedY: boolean): void;
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * @param direction the scroll direction: {@link android.view.View#FOCUS_LEFT}
			 */
			public pageScroll(direction: number): boolean;
			/**
			 * @param direction the scroll direction: {@link android.view.View#FOCUS_LEFT}
			 */
			public fullScroll(direction: number): boolean;
			/**
			 * Handle scrolling in response to a left or right arrow click.
			 * @param direction The direction corresponding to the arrow key that was
			 */
			public arrowScroll(direction: number): boolean;
			/**
			 * Like View#scrollBy, but scroll smoothly instead of immediately.
			 * @param dx the number of pixels to scroll by on the X axis
			 * @param dy the number of pixels to scroll by on the Y axis
			 */
			public smoothScrollBy(dx: number, dy: number): void;
			/**
			 * Like #scrollTo, but scroll smoothly instead of immediately.
			 * @param x the position where to scroll on the X axis
			 * @param y the position where to scroll on the Y axis
			 */
			public smoothScrollTo(x: number, y: number): void;
			protected computeHorizontalScrollRange(): number;
			protected computeHorizontalScrollOffset(): number;
			protected measureChild(child: android.view.View, parentWidthMeasureSpec: number, parentHeightMeasureSpec: number): void;
			protected measureChildWithMargins(child: android.view.View, parentWidthMeasureSpec: number, widthUsed: number, parentHeightMeasureSpec: number, heightUsed: number): void;
			public computeScroll(): void;
			/**
			 * Compute the amount to scroll in the X direction in order to get a rectangle completely on the screen (or, if taller than the screen, at least the first screen size chunk of it).
			 * @param rect The rect.
			 */
			protected computeScrollDeltaToGetChildRectOnScreen(rect: android.graphics.Rect): number;
			public requestChildFocus(child: android.view.View, focused: android.view.View): void;
			/**
			 * When looking for focus in children of a scroll view, need to be a little more careful not to give focus to something that is scrolled off screen.
			 */
			protected onRequestFocusInDescendants(direction: number, previouslyFocusedRect: android.graphics.Rect): boolean;
			public requestChildRectangleOnScreen(child: android.view.View, rectangle: android.graphics.Rect, immediate: boolean): boolean;
			public requestLayout(): void;
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			/**
			 * Fling the scroll view
			 * @param velocityX The initial velocity in the X direction. Positive
			 */
			public fling(velocityX: number): void;
			/**
			 * 
			 */
			public scrollTo(x: number, y: number): void;
			public setOverScrollMode(mode: number): void;
			public draw(canvas: android.graphics.Canvas): void;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
		}
		/**
		 * List adapter that wraps another list adapter. The wrapped adapter can be retrieved by calling #getWrappedAdapter().
		 */
		export class WrapperListAdapter implements android.widget.IListAdapter, android.widget.IWrapperListAdapter {
			constructor(implementation: android.widget.IWrapperListAdapter);
			/**
			 * Returns the adapter wrapped by this list adapter.
			 */
			public getWrappedAdapter(): android.widget.IListAdapter;
			/**
			 * Indicates whether all the items in this adapter are enabled. If the value returned by this method changes over time, there is no guarantee it will take effect. If true, it means all items are selectable and clickable (there is no separator.) 
			 */
			areAllItemsEnabled(): boolean;
			/**
			 * Returns true if the item at the specified position is not a separator. (A separator is a non-selectable, non-clickable item). The result is unspecified if position is invalid. An ArrayIndexOutOfBoundsException should be thrown in that case for fast failure.
			 * @param position Index of the item
			 */
			isEnabled(position: number): boolean;
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			getItemViewType(position: number): number;
			getViewTypeCount(): number;
			isEmpty(): boolean;
		}
		/**
		 * Example of how to write a custom subclass of View. LabelView is used to draw simple text views. Note that it does not handle styled text or right-to-left writing systems.
		 */
		export class LabelView extends android.view.View {
			/**
			 * Constructor. This version is only needed if you will be instantiating the object manually (not from a layout XML file).
			 * @param context the application environment
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.widget.LabelView>;
			/**
			 * Sets the text to display in this label
			 * @param text The text to display. This will be drawn as one line.
			 */
			public setText(text: string): void;
			/**
			 * Sets the text size for this label
			 * @param size Font size
			 */
			public setTextSize(size: number): void;
			/**
			 * Sets the text color for this label
			 * @param color ARGB value for the text
			 */
			public setTextColor(color: number): void;
			/**
			 *  android.view.View#measure(int, int)
			 */
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * Render the text android.view.View#onDraw(android.graphics.Canvas)
			 */
			protected onDraw(canvas: android.graphics.Canvas): void;
		}
		/**
		 * A widget that enables the user to select a number form a predefined range. There are two flavors of this widget and which one is presented to the user depends on the current theme. <ul> <li> If the current theme is derived from android.R.style#Theme the widget presents the current value as an editable input field with an increment button above and a decrement button below. Long pressing the buttons allows for a quick change of the current value. Tapping on the input field allows to type in a desired value. </li> <li> If the current theme is derived from android.R.style#Theme_Holo or android.R.style#Theme_Holo_Light the widget presents the current value as an editable input field with a lesser value above and a greater value below. Tapping on the lesser or greater value selects it by animating the number axis up or down to make the chosen value current. Flinging up or down allows for multiple increments or decrements of the current value. Long pressing on the lesser and greater values also allows for a quick change of the current value. Tapping on the current value allows to type in a desired value. </li> </ul>
		 */
		export class NumberPicker extends android.widget.LinearLayout {
			/**
			 * Create a new number picker.
			 * @param context The application environment.
			 */
			constructor(context: android.content.Context);
			/**
			 * Create a new number picker.
			 * @param context The application environment.
			 * @param attrs A collection of attributes.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Create a new number picker
			 * @param context the application environment.
			 * @param attrs a collection of attributes.
			 * @param defStyle The default style to apply to this view.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.NumberPicker>;
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public onInterceptTouchEvent(event: android.view.MotionEvent): boolean;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			public dispatchTouchEvent(event: android.view.MotionEvent): boolean;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			public dispatchTrackballEvent(event: android.view.MotionEvent): boolean;
			protected dispatchHoverEvent(event: android.view.MotionEvent): boolean;
			public computeScroll(): void;
			public setEnabled(enabled: boolean): void;
			public scrollBy(x: number, y: number): void;
			public getSolidColor(): number;
			/**
			 * Sets the listener to be notified on change of the current value.
			 * @param onValueChangedListener The listener.
			 */
			public setOnValueChangedListener(onValueChangedListener: android.widget.NumberPicker.IOnValueChangeListener): void;
			/**
			 * Set listener to be notified for scroll state changes.
			 * @param onScrollListener The listener.
			 */
			public setOnScrollListener(onScrollListener: android.widget.NumberPicker.IOnScrollListener): void;
			/**
			 * Set the formatter to be used for formatting the current value.
			 * @param formatter The formatter object. If formatter is <code>null</code>,
			 */
			public setFormatter(formatter: android.widget.NumberPicker.IFormatter): void;
			/**
			 * Set the current value for the number picker.
			 * @param value The current value.
			 */
			public setValue(value: number): void;
			/**
			 * Gets whether the selector wheel wraps when reaching the min/max value.
			 */
			public getWrapSelectorWheel(): boolean;
			/**
			 * Sets whether the selector wheel shown during flinging/scrolling should wrap around the NumberPicker#getMinValue() and NumberPicker#getMaxValue() values.
			 * @param wrapSelectorWheel Whether to wrap.
			 */
			public setWrapSelectorWheel(wrapSelectorWheel: boolean): void;
			/**
			 * Sets the speed at which the numbers be incremented and decremented when the up and down buttons are long pressed respectively.
			 * @param intervalMillis The speed (in milliseconds) at which the numbers
			 */
			public setOnLongPressUpdateInterval(intervalMillis: number): void;
			/**
			 * Returns the value of the picker.
			 */
			public getValue(): number;
			/**
			 * Returns the min value of the picker.
			 */
			public getMinValue(): number;
			/**
			 * Sets the min value of the picker.
			 * @param minValue The min value.
			 */
			public setMinValue(minValue: number): void;
			/**
			 * Returns the max value of the picker.
			 */
			public getMaxValue(): number;
			/**
			 * Sets the max value of the picker.
			 * @param maxValue The max value.
			 */
			public setMaxValue(maxValue: number): void;
			/**
			 * Gets the values to be displayed instead of string values.
			 */
			public getDisplayedValues(): native.Array<string>;
			/**
			 * Sets the values to be displayed.
			 * @param displayedValues The displayed values.
			 */
			public setDisplayedValues(displayedValues: native.Array<string>): void;
			protected getTopFadingEdgeStrength(): number;
			protected getBottomFadingEdgeStrength(): number;
			protected onDetachedFromWindow(): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public getAccessibilityNodeProvider(): android.view.accessibility.AccessibilityNodeProvider;
		}
		export module NumberPicker {
			/**
			 * Class for managing virtual view tree rooted at this picker.
			 */
			export class AccessibilityNodeProviderImpl extends android.view.accessibility.AccessibilityNodeProvider {
				static class: java.lang.Class<android.widget.NumberPicker.AccessibilityNodeProviderImpl>;
				public createAccessibilityNodeInfo(virtualViewId: number): android.view.accessibility.AccessibilityNodeInfo;
				public findAccessibilityNodeInfosByText(searched: string, virtualViewId: number): java.util.IList<android.view.accessibility.AccessibilityNodeInfo>;
				public performAction(virtualViewId: number, action: number, args: android.os.Bundle): boolean;
				public sendAccessibilityEventForVirtualView(virtualViewId: number, eventType: number): void;
			}
			/**
			 * Command for setting the input text selection.
			 */
			export class SetSelectionCommand extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.NumberPicker.SetSelectionCommand>;
				public run(): void;
			}
			/**
			 * Interface used to format current value into a string for presentation.
			 */
			export class Formatter implements android.widget.NumberPicker.IFormatter {
				constructor(implementation: android.widget.NumberPicker.IFormatter);
				/**
				 * Formats a string representation of the current value.
				 * @param value The currently selected value.
				 */
				public format(value: number): string;
			}
			/**
			 * Filter for accepting only valid indices or prefixes of the string representation of valid indices.
			 */
			export class InputTextFilter extends android.text.method.NumberKeyListener {
				static class: java.lang.Class<android.widget.NumberPicker.InputTextFilter>;
				public getInputType(): number;
				protected getAcceptedChars(): native.Array<string>;
				public filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
			}
			/**
			 * Interface to listen for changes of the current value.
			 */
			interface IOnValueChangeListener {
				/**
				 * Called upon a change of the current value.
				 * @param picker The NumberPicker associated with this listener.
				 * @param oldVal The previous value.
				 * @param newVal The new value.
				 */
				onValueChange(picker: android.widget.NumberPicker, oldVal: number, newVal: number): void;
			}
			/**
			 * Interface to listen for the picker scroll state.
			 */
			interface IOnScrollListener {
				/**
				 * Callback invoked while the number picker scroll state has changed.
				 * @param view The view whose scroll state is being reported.
				 * @param scrollState The current scroll state. One of
				 */
				onScrollStateChange(view: android.widget.NumberPicker, scrollState: number): void;
			}
			export module IOnScrollListener {
				/**
				 * The view is not scrolling.
				 */
				var SCROLL_STATE_IDLE: number;
				/**
				 * The user is scrolling using touch, and his finger is still on the screen.
				 */
				var SCROLL_STATE_TOUCH_SCROLL: number;
				/**
				 * The user had previously been scrolling using touch and performed a fling.
				 */
				var SCROLL_STATE_FLING: number;
			}
			/**
			 * Command for changing the current value from a long press by one.
			 */
			export class ChangeCurrentByOneFromLongPressCommand extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.NumberPicker.ChangeCurrentByOneFromLongPressCommand>;
				public run(): void;
			}
			/**
			 * Interface to listen for changes of the current value.
			 */
			export class OnValueChangeListener implements android.widget.NumberPicker.IOnValueChangeListener {
				constructor(implementation: android.widget.NumberPicker.IOnValueChangeListener);
				/**
				 * Called upon a change of the current value.
				 * @param picker The NumberPicker associated with this listener.
				 * @param oldVal The previous value.
				 * @param newVal The new value.
				 */
				public onValueChange(picker: android.widget.NumberPicker, oldVal: number, newVal: number): void;
			}
			/**
			 * Command for beginning soft input on long press.
			 */
			export class BeginSoftInputOnLongPressCommand extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.NumberPicker.BeginSoftInputOnLongPressCommand>;
				public run(): void;
			}
			/**
			 * Interface to listen for the picker scroll state.
			 */
			export class OnScrollListener implements android.widget.NumberPicker.IOnScrollListener {
				constructor(implementation: android.widget.NumberPicker.IOnScrollListener);
				/**
				 * The view is not scrolling.
				 */
				static SCROLL_STATE_IDLE: number;
				/**
				 * The user is scrolling using touch, and his finger is still on the screen.
				 */
				static SCROLL_STATE_TOUCH_SCROLL: number;
				/**
				 * The user had previously been scrolling using touch and performed a fling.
				 */
				static SCROLL_STATE_FLING: number;
				/**
				 * Callback invoked while the number picker scroll state has changed.
				 * @param view The view whose scroll state is being reported.
				 * @param scrollState The current scroll state. One of
				 */
				public onScrollStateChange(view: android.widget.NumberPicker, scrollState: number): void;
			}
			export class PressedStateHelper extends java.lang.Object implements java.lang.IRunnable {
				static BUTTON_INCREMENT: number;
				static BUTTON_DECREMENT: number;
				static class: java.lang.Class<android.widget.NumberPicker.PressedStateHelper>;
				public cancel(): void;
				public buttonPressDelayed(button: number): void;
				public buttonTapped(button: number): void;
				public run(): void;
			}
			/**
			 * Use a custom NumberPicker formatting callback to use two-digit minutes strings like "01". Keeping a static formatter etc. is the most efficient way to do this; it avoids creating temporary objects on every call to format().
			 */
			export class TwoDigitFormatter extends java.lang.Object implements android.widget.NumberPicker.IFormatter {
				static class: java.lang.Class<android.widget.NumberPicker.TwoDigitFormatter>;
				public format(value: number): string;
			}
			/**
			 * Interface used to format current value into a string for presentation.
			 */
			interface IFormatter {
				/**
				 * Formats a string representation of the current value.
				 * @param value The currently selected value.
				 */
				format(value: number): string;
			}
		}
		/**
		 * Provides callbacks indicating the steps in two digit pressing within a timeout.
		 */
		export class DoubleDigitManager extends java.lang.Object {
			/**
			 * @param timeoutInMillis How long after the first digit is pressed does
			 * @param callBack The callback to indicate what's going on with the user.
			 */
			constructor(timeoutInMillis: number, callBack: android.widget.DoubleDigitManager.ICallBack);
			static class: java.lang.Class<android.widget.DoubleDigitManager>;
			/**
			 * Report to this manager that a digit was pressed.
			 * @param digit 
			 */
			public reportDigit(digit: number): void;
		}
		export module DoubleDigitManager {
			/**
			 * The callback to indicate what is going on with the digits pressed.
			 */
			export class CallBack implements android.widget.DoubleDigitManager.ICallBack {
				constructor(implementation: android.widget.DoubleDigitManager.ICallBack);
				/**
				 * A digit was pressed, and there are no intermediate digits.
				 * @param digit The digit pressed.
				 */
				public singleDigitIntermediate(digit: number): boolean;
				/**
				 * A single digit was pressed, and it is 'the final answer'. - a single digit pressed, and the timeout expires. - a single digit pressed, and #singleDigitIntermediate returned false.
				 * @param digit The digit.
				 */
				public singleDigitFinal(digit: number): void;
				/**
				 * The user pressed digit1, then digit2 within the timeout.
				 * @param digit1 
				 * @param digit2 
				 */
				public twoDigitsFinal(digit1: number, digit2: number): boolean;
			}
			/**
			 * The callback to indicate what is going on with the digits pressed.
			 */
			interface ICallBack {
				/**
				 * A digit was pressed, and there are no intermediate digits.
				 * @param digit The digit pressed.
				 */
				singleDigitIntermediate(digit: number): boolean;
				/**
				 * A single digit was pressed, and it is 'the final answer'. - a single digit pressed, and the timeout expires. - a single digit pressed, and #singleDigitIntermediate returned false.
				 * @param digit The digit.
				 */
				singleDigitFinal(digit: number): void;
				/**
				 * The user pressed digit1, then digit2 within the timeout.
				 * @param digit1 
				 * @param digit2 
				 */
				twoDigitsFinal(digit1: number, digit2: number): boolean;
			}
		}
		/**
		 * An adapter that links a ExpandableListView with the underlying data. The implementation of this interface will provide access to the data of the children (categorized by groups), and also instantiate Views for children and groups.
		 */
		export class ExpandableListAdapter implements android.widget.IExpandableListAdapter {
			constructor(implementation: android.widget.IExpandableListAdapter);
			/**
			 *  Adapter#registerDataSetObserver(DataSetObserver)
			 */
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 *  Adapter#unregisterDataSetObserver(DataSetObserver)
			 */
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Gets the number of groups. 
			 */
			public getGroupCount(): number;
			/**
			 * Gets the number of children in a specified group. 
			 * @param groupPosition the position of the group for which the children
			 */
			public getChildrenCount(groupPosition: number): number;
			/**
			 * Gets the data associated with the given group. 
			 * @param groupPosition the position of the group
			 */
			public getGroup(groupPosition: number): any;
			/**
			 * Gets the data associated with the given child within the given group. 
			 * @param groupPosition the position of the group that the child resides in
			 * @param childPosition the position of the child with respect to other
			 */
			public getChild(groupPosition: number, childPosition: number): any;
			/**
			 * Gets the ID for the group at the given position. This group ID must be unique across groups. The combined ID (see #getCombinedGroupId(long)) must be unique across ALL items (groups and all children). 
			 * @param groupPosition the position of the group for which the ID is wanted
			 */
			public getGroupId(groupPosition: number): any;
			/**
			 * Gets the ID for the given child within the given group. This ID must be unique across all children within the group. The combined ID (see #getCombinedChildId(long, long)) must be unique across ALL items (groups and all children). 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child within the group for which
			 */
			public getChildId(groupPosition: number, childPosition: number): any;
			/**
			 * Indicates whether the child and group IDs are stable across changes to the underlying data. 
			 */
			public hasStableIds(): boolean;
			/**
			 * Gets a View that displays the given group. This View is only for the group--the Views for the group's children will be fetched using #getChildView(int, int, boolean, View, ViewGroup). 
			 * @param groupPosition the position of the group for which the View is
			 * @param isExpanded whether the group is expanded or collapsed
			 * @param convertView the old view to reuse, if possible. You should check
			 * @param parent the parent that this view will eventually be attached to
			 */
			public getGroupView(groupPosition: number, isExpanded: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Gets a View that displays the data for the given child within the given group. 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child (for which the View is
			 * @param isLastChild Whether the child is the last child within the group
			 * @param convertView the old view to reuse, if possible. You should check
			 * @param parent the parent that this view will eventually be attached to
			 */
			public getChildView(groupPosition: number, childPosition: number, isLastChild: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Whether the child at the specified position is selectable. 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child within the group
			 */
			public isChildSelectable(groupPosition: number, childPosition: number): boolean;
			/**
			 *  ListAdapter#areAllItemsEnabled()
			 */
			public areAllItemsEnabled(): boolean;
			/**
			 *  ListAdapter#isEmpty()
			 */
			public isEmpty(): boolean;
			/**
			 * Called when a group is expanded. 
			 * @param groupPosition The group being expanded.
			 */
			public onGroupExpanded(groupPosition: number): void;
			/**
			 * Called when a group is collapsed. 
			 * @param groupPosition The group being collapsed.
			 */
			public onGroupCollapsed(groupPosition: number): void;
			/**
			 * Gets an ID for a child that is unique across any item (either group or child) that is in this list. Expandable lists require each item (group or child) to have a unique ID among all children and groups in the list. This method is responsible for returning that unique ID given a child's ID and its group's ID. Furthermore, if #hasStableIds() is true, the returned ID must be stable as well. 
			 * @param groupId The ID of the group that contains this child.
			 * @param childId The ID of the child.
			 */
			public getCombinedChildId(groupId: number, childId: number): any;
			/**
			 * Gets an ID for a group that is unique across any item (either group or child) that is in this list. Expandable lists require each item (group or child) to have a unique ID among all children and groups in the list. This method is responsible for returning that unique ID given a group's ID. Furthermore, if #hasStableIds() is true, the returned ID must be stable as well. 
			 * @param groupId The ID of the group
			 */
			public getCombinedGroupId(groupId: number): any;
		}
		export class RadioButton extends android.widget.CompoundButton {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.RadioButton>;
			/**
			 * 
			 */
			public toggle(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		/**
		 * This class can be used by external clients of CursorAdapter and CursorTreeAdapter to define how the content of the adapter should be filtered. #runQuery(CharSequence)
		 */
		interface IFilterQueryProvider {
			/**
			 * Runs a query with the specified constraint. This query is requested by the filter attached to this adapter.
			 * @param constraint the constraint with which the query must
			 */
			runQuery(constraint: string): android.database.ICursor;
		}
		/**
		 * Simple ViewAnimator that will animate between two or more views that have been added to it. Only one child is shown at a time. If requested, can automatically flip between each child at a regular interval.
		 */
		export class AdapterViewFlipper extends android.widget.AdapterViewAnimator {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.AdapterViewFlipper>;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			protected onWindowVisibilityChanged(visibility: number): void;
			public setAdapter(adapter: android.widget.IAdapter): void;
			/**
			 * Returns the flip interval, in milliseconds.
			 */
			public getFlipInterval(): number;
			/**
			 * How long to wait before flipping to the next view.
			 * @param flipInterval flip interval in milliseconds
			 */
			public setFlipInterval(flipInterval: number): void;
			/**
			 * Start a timer to cycle through child views
			 */
			public startFlipping(): void;
			/**
			 * No more flips
			 */
			public stopFlipping(): void;
			/**
			 * 
			 */
			public showNext(): void;
			/**
			 * 
			 */
			public showPrevious(): void;
			/**
			 * Returns true if the child views are flipping.
			 */
			public isFlipping(): boolean;
			/**
			 * Set if this view automatically calls #startFlipping() when it becomes attached to a window.
			 */
			public setAutoStart(autoStart: boolean): void;
			/**
			 * Returns true if this view automatically calls #startFlipping() when it becomes attached to a window.
			 */
			public isAutoStart(): boolean;
			/**
			 * Called by an android.appwidget.AppWidgetHost to indicate that it will be automatically advancing the views of this AdapterViewFlipper by calling AdapterViewFlipper#advance() at some point in the future. This allows AdapterViewFlipper to prepare by no longer Advancing its children.
			 */
			public fyiWillBeAdvancedByHostKThx(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		/**
		 * An adapter that links a ExpandableListView with the underlying data. The implementation of this interface will provide access to the data of the children (categorized by groups), and also instantiate Views for children and groups.
		 */
		interface IExpandableListAdapter {
			/**
			 *  Adapter#registerDataSetObserver(DataSetObserver)
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 *  Adapter#unregisterDataSetObserver(DataSetObserver)
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Gets the number of groups. 
			 */
			getGroupCount(): number;
			/**
			 * Gets the number of children in a specified group. 
			 * @param groupPosition the position of the group for which the children
			 */
			getChildrenCount(groupPosition: number): number;
			/**
			 * Gets the data associated with the given group. 
			 * @param groupPosition the position of the group
			 */
			getGroup(groupPosition: number): any;
			/**
			 * Gets the data associated with the given child within the given group. 
			 * @param groupPosition the position of the group that the child resides in
			 * @param childPosition the position of the child with respect to other
			 */
			getChild(groupPosition: number, childPosition: number): any;
			/**
			 * Gets the ID for the group at the given position. This group ID must be unique across groups. The combined ID (see #getCombinedGroupId(long)) must be unique across ALL items (groups and all children). 
			 * @param groupPosition the position of the group for which the ID is wanted
			 */
			getGroupId(groupPosition: number): any;
			/**
			 * Gets the ID for the given child within the given group. This ID must be unique across all children within the group. The combined ID (see #getCombinedChildId(long, long)) must be unique across ALL items (groups and all children). 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child within the group for which
			 */
			getChildId(groupPosition: number, childPosition: number): any;
			/**
			 * Indicates whether the child and group IDs are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Gets a View that displays the given group. This View is only for the group--the Views for the group's children will be fetched using #getChildView(int, int, boolean, View, ViewGroup). 
			 * @param groupPosition the position of the group for which the View is
			 * @param isExpanded whether the group is expanded or collapsed
			 * @param convertView the old view to reuse, if possible. You should check
			 * @param parent the parent that this view will eventually be attached to
			 */
			getGroupView(groupPosition: number, isExpanded: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Gets a View that displays the data for the given child within the given group. 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child (for which the View is
			 * @param isLastChild Whether the child is the last child within the group
			 * @param convertView the old view to reuse, if possible. You should check
			 * @param parent the parent that this view will eventually be attached to
			 */
			getChildView(groupPosition: number, childPosition: number, isLastChild: boolean, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Whether the child at the specified position is selectable. 
			 * @param groupPosition the position of the group that contains the child
			 * @param childPosition the position of the child within the group
			 */
			isChildSelectable(groupPosition: number, childPosition: number): boolean;
			/**
			 *  ListAdapter#areAllItemsEnabled()
			 */
			areAllItemsEnabled(): boolean;
			/**
			 *  ListAdapter#isEmpty()
			 */
			isEmpty(): boolean;
			/**
			 * Called when a group is expanded. 
			 * @param groupPosition The group being expanded.
			 */
			onGroupExpanded(groupPosition: number): void;
			/**
			 * Called when a group is collapsed. 
			 * @param groupPosition The group being collapsed.
			 */
			onGroupCollapsed(groupPosition: number): void;
			/**
			 * Gets an ID for a child that is unique across any item (either group or child) that is in this list. Expandable lists require each item (group or child) to have a unique ID among all children and groups in the list. This method is responsible for returning that unique ID given a child's ID and its group's ID. Furthermore, if #hasStableIds() is true, the returned ID must be stable as well. 
			 * @param groupId The ID of the group that contains this child.
			 * @param childId The ID of the child.
			 */
			getCombinedChildId(groupId: number, childId: number): any;
			/**
			 * Gets an ID for a group that is unique across any item (either group or child) that is in this list. Expandable lists require each item (group or child) to have a unique ID among all children and groups in the list. This method is responsible for returning that unique ID given a group's ID. Furthermore, if #hasStableIds() is true, the returned ID must be stable as well. 
			 * @param groupId The ID of the group
			 */
			getCombinedGroupId(groupId: number): any;
		}
		export class CheckBox extends android.widget.CompoundButton {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.CheckBox>;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export class Filterable implements android.widget.IFilterable {
			constructor(implementation: android.widget.IFilterable);
			public getFilter(): android.widget.Filter;
		}
		/**
		 * A view that shows items in a center-locked, horizontally scrolling list.
		 */
		export class Gallery extends android.widget.AbsSpinner implements android.view.GestureDetector.IOnGestureListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.Gallery>;
			FlingRunnable: {
	new (): android.widget.Gallery.FlingRunnable;
};
			/**
			 * Whether or not to callback on any #getOnItemSelectedListener() while the items are being flinged. If false, only the final selected item will cause the callback. If true, all items between the first and the final will cause callbacks. 
			 * @param shouldCallback Whether or not to callback on the listener while
			 */
			public setCallbackDuringFling(shouldCallback: boolean): void;
			/**
			 * Sets how long the transition animation should run when a child view changes position. Only relevant if animation is turned on. 
			 * @param animationDurationMillis The duration of the transition, in
			 */
			public setAnimationDuration(animationDurationMillis: number): void;
			/**
			 * Sets the spacing between items in a Gallery 
			 * @param spacing The spacing in pixels between items in the Gallery
			 */
			public setSpacing(spacing: number): void;
			/**
			 * Sets the alpha of items that are not selected in the Gallery. 
			 * @param unselectedAlpha the alpha for the items that are not selected.
			 */
			public setUnselectedAlpha(unselectedAlpha: number): void;
			protected getChildStaticTransformation(child: android.view.View, t: android.view.animation.Transformation): boolean;
			protected computeHorizontalScrollExtent(): number;
			protected computeHorizontalScrollOffset(): number;
			protected computeHorizontalScrollRange(): number;
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.view.ViewGroup.LayoutParams;
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.view.ViewGroup.LayoutParams;
			protected generateDefaultLayoutParams(): android.view.ViewGroup.LayoutParams;
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			getChildHeight(child: android.view.View): number;
			/**
			 * Tracks a motion scroll. In reality, this is used to do just about any movement to items (touch scroll, arrow-key scroll, set an item as selected). 
			 * @param deltaX Change in X from the previous event.
			 */
			trackMotionScroll(deltaX: number): void;
			getLimitedMotionScrollAmount(motionToLeft: boolean, deltaX: number): number;
			selectionChanged(): void;
			/**
			 * Creates and positions all views for this Gallery.
			 * @param delta Change in the selected position. +1 means the selection is
			 * @param animate 
			 */
			layout(delta: number, animate: boolean): void;
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			public onSingleTapUp(e: android.view.MotionEvent): boolean;
			public onFling(e1: android.view.MotionEvent, e2: android.view.MotionEvent, velocityX: number, velocityY: number): boolean;
			public onScroll(e1: android.view.MotionEvent, e2: android.view.MotionEvent, distanceX: number, distanceY: number): boolean;
			public onDown(e: android.view.MotionEvent): boolean;
			/**
			 * Called when a touch event's action is MotionEvent.ACTION_UP.
			 */
			onUp(): void;
			/**
			 * Called when a touch event's action is MotionEvent.ACTION_CANCEL.
			 */
			onCancel(): void;
			public onLongPress(e: android.view.MotionEvent): void;
			public onShowPress(e: android.view.MotionEvent): void;
			public dispatchSetSelected(selected: boolean): void;
			protected dispatchSetPressed(pressed: boolean): void;
			protected getContextMenuInfo(): android.view.ContextMenu.IContextMenuInfo;
			public showContextMenuForChild(originalView: android.view.View): boolean;
			public showContextMenu(): boolean;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Handles left, right, and clicking android.view.View#onKeyDown
			 */
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			movePrevious(): boolean;
			moveNext(): boolean;
			setSelectedPositionInt(position: number): void;
			/**
			 * Describes how the child views are aligned.
			 * @param gravity 
			 */
			public setGravity(gravity: number): void;
			protected getChildDrawingOrder(childCount: number, i: number): number;
			protected onFocusChanged(gainFocus: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			/**
			 * 
			 */
			layout(l: number, t: number, r: number, b: number): void;
		}
		export module Gallery {
			/**
			 * Gallery extends LayoutParams to provide a place to hold current Transformation information along with previous position/transformation info.
			 */
			export class LayoutParams extends android.view.ViewGroup.LayoutParams {
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				constructor(w: number, h: number);
				constructor(source: android.view.ViewGroup.LayoutParams);
				static class: java.lang.Class<android.widget.Gallery.LayoutParams>;
			}
			/**
			 * Responsible for fling behavior. Use #startUsingVelocity(int) to initiate a fling. Each frame of the fling is handled in #run(). A FlingRunnable will keep re-posting itself until the fling is done.
			 */
			export class FlingRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.Gallery.FlingRunnable>;
				public startUsingVelocity(initialVelocity: number): void;
				public startUsingDistance(distance: number): void;
				public stop(scrollIntoSlots: boolean): void;
				public run(): void;
			}
		}
		/**
		 * A Layout where the positions of the children can be described in relation to each other or to the parent.
		 */
		export class RelativeLayout extends android.view.ViewGroup {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static TRUE: number;
			/**
			 * Rule that aligns a child's right edge with another child's left edge.
			 */
			static LEFT_OF: number;
			/**
			 * Rule that aligns a child's left edge with another child's right edge.
			 */
			static RIGHT_OF: number;
			/**
			 * Rule that aligns a child's bottom edge with another child's top edge.
			 */
			static ABOVE: number;
			/**
			 * Rule that aligns a child's top edge with another child's bottom edge.
			 */
			static BELOW: number;
			/**
			 * Rule that aligns a child's baseline with another child's baseline.
			 */
			static ALIGN_BASELINE: number;
			/**
			 * Rule that aligns a child's left edge with another child's left edge.
			 */
			static ALIGN_LEFT: number;
			/**
			 * Rule that aligns a child's top edge with another child's top edge.
			 */
			static ALIGN_TOP: number;
			/**
			 * Rule that aligns a child's right edge with another child's right edge.
			 */
			static ALIGN_RIGHT: number;
			/**
			 * Rule that aligns a child's bottom edge with another child's bottom edge.
			 */
			static ALIGN_BOTTOM: number;
			/**
			 * Rule that aligns the child's left edge with its RelativeLayout parent's left edge.
			 */
			static ALIGN_PARENT_LEFT: number;
			/**
			 * Rule that aligns the child's top edge with its RelativeLayout parent's top edge.
			 */
			static ALIGN_PARENT_TOP: number;
			/**
			 * Rule that aligns the child's right edge with its RelativeLayout parent's right edge.
			 */
			static ALIGN_PARENT_RIGHT: number;
			/**
			 * Rule that aligns the child's bottom edge with its RelativeLayout parent's bottom edge.
			 */
			static ALIGN_PARENT_BOTTOM: number;
			/**
			 * Rule that centers the child with respect to the bounds of its RelativeLayout parent.
			 */
			static CENTER_IN_PARENT: number;
			/**
			 * Rule that centers the child horizontally with respect to the bounds of its RelativeLayout parent.
			 */
			static CENTER_HORIZONTAL: number;
			/**
			 * Rule that centers the child vertically with respect to the bounds of its RelativeLayout parent.
			 */
			static CENTER_VERTICAL: number;
			/**
			 * Rule that aligns a child's end edge with another child's start edge.
			 */
			static START_OF: number;
			/**
			 * Rule that aligns a child's start edge with another child's end edge.
			 */
			static END_OF: number;
			/**
			 * Rule that aligns a child's start edge with another child's start edge.
			 */
			static ALIGN_START: number;
			/**
			 * Rule that aligns a child's end edge with another child's end edge.
			 */
			static ALIGN_END: number;
			/**
			 * Rule that aligns the child's start edge with its RelativeLayout parent's start edge.
			 */
			static ALIGN_PARENT_START: number;
			/**
			 * Rule that aligns the child's end edge with its RelativeLayout parent's end edge.
			 */
			static ALIGN_PARENT_END: number;
			static class: java.lang.Class<android.widget.RelativeLayout>;
			public shouldDelayChildPressedState(): boolean;
			/**
			 * Defines which View is ignored when the gravity is applied. This setting has no effect if the gravity is <code>Gravity.START | Gravity.TOP</code>.
			 * @param viewId The id of the View to be ignored by gravity, or 0 if no View
			 */
			public setIgnoreGravity(viewId: number): void;
			/**
			 * Describes how the child views are positioned.
			 */
			public getGravity(): number;
			/**
			 * Describes how the child views are positioned. Defaults to <code>Gravity.START | Gravity.TOP</code>.
			 * @param gravity See {@link android.view.Gravity}
			 */
			public setGravity(gravity: number): void;
			public setHorizontalGravity(horizontalGravity: number): void;
			public setVerticalGravity(verticalGravity: number): void;
			public getBaseline(): number;
			public requestLayout(): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.RelativeLayout.LayoutParams;
			/**
			 * Returns a set of layout parameters with a width of android.view.ViewGroup.LayoutParams#WRAP_CONTENT, a height of android.view.ViewGroup.LayoutParams#WRAP_CONTENT and no spanning.
			 */
			protected generateDefaultLayoutParams(): android.view.ViewGroup.LayoutParams;
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.view.ViewGroup.LayoutParams;
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module RelativeLayout {
			/**
			 * Per-child layout information associated with RelativeLayout.
			 */
			export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				constructor(w: number, h: number);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.LayoutParams);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.MarginLayoutParams);
				/**
				 * When true, uses the parent as the anchor if the anchor doesn't exist or if the anchor's visibility is GONE.
				 */
				alignWithParent: boolean;
				static class: java.lang.Class<android.widget.RelativeLayout.LayoutParams>;
				public debug(output: string): string;
				/**
				 * Adds a layout rule to be interpreted by the RelativeLayout. This method should only be used for constraints that don't refer to another sibling (e.g., CENTER_IN_PARENT) or take a boolean value (RelativeLayout#TRUE for true or 0 for false). To specify a verb that takes a subject, use #addRule(int, int) instead.
				 * @param verb One of the verbs defined by
				 */
				public addRule(verb: number): void;
				/**
				 * Adds a layout rule to be interpreted by the RelativeLayout. Use this for verbs that take a target, such as a sibling (ALIGN_RIGHT) or a boolean value (VISIBLE).
				 * @param verb One of the verbs defined by
				 * @param anchor The id of another view to use as an anchor,
				 */
				public addRule(verb: number, anchor: number): void;
				/**
				 * Removes a layout rule to be interpreted by the RelativeLayout.
				 * @param verb One of the verbs defined by
				 */
				public removeRule(verb: number): void;
				/**
				 * Retrieves a complete list of all supported rules, where the index is the rule verb, and the element value is the value specified, or "false" if it was never set. There will be no resolution of relative rules done.
				 */
				public getRules(): native.Array<number>;
				public resolveLayoutDirection(layoutDirection: number): void;
			}
			export class DependencyGraph extends java.lang.Object {
				static class: java.lang.Class<android.widget.RelativeLayout.DependencyGraph>;
				/**
				 * Clears the graph.
				 */
				clear(): void;
				/**
				 * Adds a view to the graph.
				 * @param view The view to be added as a node to the graph.
				 */
				add(view: android.view.View): void;
				/**
				 * Builds a sorted list of views. The sorting order depends on the dependencies between the view. For instance, if view C needs view A to be processed first and view A needs view B to be processed first, the dependency graph is: B -> A -> C. The sorted array will contain views B, A and C in this order.
				 * @param sorted The sorted list of views. The length of this array must
				 * @param rules The list of rules to take into account.
				 */
				getSortedViews(sorted: native.Array<android.view.View>, rules: native.Array<number>): void;
				/**
				 * Prints the dependency graph for the specified rules.
				 * @param resources The context's resources to print the ids.
				 * @param rules The list of rules to take into account.
				 */
				log(resources: android.content.res.Resources, rules: native.Array<number>): void;
				static printViewId(resources: android.content.res.Resources, view: android.view.View): void;
			}
			export module DependencyGraph {
				/**
				 * A node in the dependency graph. A node is a view, its list of dependencies and its list of dependents.
				 */
				export class Node extends java.lang.Object {
					static class: java.lang.Class<android.widget.RelativeLayout.DependencyGraph.Node>;
					public setNextPoolable(element: android.widget.RelativeLayout.DependencyGraph.Node): void;
					public getNextPoolable(): android.widget.RelativeLayout.DependencyGraph.Node;
					public isPooled(): boolean;
					public setPooled(isPooled: boolean): void;
					static acquire(view: android.view.View): android.widget.RelativeLayout.DependencyGraph.Node;
					release(): void;
				}
			}
			/**
			 * Compares two views in left-to-right and top-to-bottom fashion.
			 */
			export class TopToBottomLeftToRightComparator extends java.lang.Object {
				static class: java.lang.Class<android.widget.RelativeLayout.TopToBottomLeftToRightComparator>;
				public compare(first: android.view.View, second: android.view.View): number;
			}
		}
		/**
		 * ListAdapter used when a ListView has header views. This ListAdapter wraps another one and also keeps track of the header views and their associated data objects.
		 */
		export class HeaderViewListAdapter extends java.lang.Object implements android.widget.IWrapperListAdapter, android.widget.IFilterable {
			constructor(headerViewInfos: java.util.ArrayList<android.widget.ListView.FixedViewInfo>, footerViewInfos: java.util.ArrayList<android.widget.ListView.FixedViewInfo>, adapter: android.widget.IListAdapter);
			static class: java.lang.Class<android.widget.HeaderViewListAdapter>;
			public getHeadersCount(): number;
			public getFootersCount(): number;
			public isEmpty(): boolean;
			public removeHeader(v: android.view.View): boolean;
			public removeFooter(v: android.view.View): boolean;
			public getCount(): number;
			public areAllItemsEnabled(): boolean;
			public isEnabled(position: number): boolean;
			public getItem(position: number): any;
			public getItemId(position: number): any;
			public hasStableIds(): boolean;
			public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			public getItemViewType(position: number): number;
			public getViewTypeCount(): number;
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			public getFilter(): android.widget.Filter;
			public getWrappedAdapter(): android.widget.IListAdapter;
		}
		/**
		 * ExpandableListPosition can refer to either a group's position or a child's position. Referring to a child's position requires both a group position (the group containing the child) and a child position (the child's position within that group). To create objects, use #obtainChildPosition(int, int) or #obtainGroupPosition(int).
		 */
		export class ExpandableListPosition extends java.lang.Object {
			/**
			 * This data type represents a child position
			 */
			static CHILD: number;
			/**
			 * This data type represents a group position
			 */
			static GROUP: number;
			/**
			 * The position of either the group being referred to, or the parent group of the child being referred to
			 */
			groupPos: number;
			/**
			 * The position of the child within its parent group
			 */
			childPos: number;
			/**
			 * What type of position this ExpandableListPosition represents
			 */
			type: number;
			static class: java.lang.Class<android.widget.ExpandableListPosition>;
			getPackedPosition(): any;
			static obtainGroupPosition(groupPosition: number): android.widget.ExpandableListPosition;
			static obtainChildPosition(groupPosition: number, childPosition: number): android.widget.ExpandableListPosition;
			static obtainPosition(packedPosition: number): android.widget.ExpandableListPosition;
			static obtain(type: number, groupPos: number, childPos: number, flatListPos: number): android.widget.ExpandableListPosition;
			/**
			 * Do not call this unless you obtained this via ExpandableListPosition.obtain(). PositionMetadata will handle recycling its own children.
			 */
			public recycle(): void;
		}
		/**
		 * This class encapsulates scrolling. The duration of the scroll can be passed in the constructor and specifies the maximum time that the scrolling animation should take. Past this time, the scrolling is automatically moved to its final stage and computeScrollOffset() will always return false to indicate that scrolling is over.
		 */
		export class Scroller extends java.lang.Object {
			/**
			 * Create a Scroller with the default duration and interpolator.
			 */
			constructor(context: android.content.Context);
			/**
			 * Create a Scroller with the specified interpolator. If the interpolator is null, the default (viscous) interpolator will be used. "Flywheel" behavior will be in effect for apps targeting Honeycomb or newer.
			 */
			constructor(context: android.content.Context, interpolator: android.view.animation.IInterpolator);
			/**
			 * Create a Scroller with the specified interpolator. If the interpolator is null, the default (viscous) interpolator will be used. Specify whether or not to support progressive "flywheel" behavior in flinging.
			 */
			constructor(context: android.content.Context, interpolator: android.view.animation.IInterpolator, flywheel: boolean);
			static class: java.lang.Class<android.widget.Scroller>;
			/**
			 * The amount of friction applied to flings. The default value is ViewConfiguration#getScrollFriction. 
			 * @param friction A scalar dimension-less value representing the coefficient of
			 */
			public setFriction(friction: number): void;
			/**
			 *  Returns whether the scroller has finished scrolling. 
			 */
			public isFinished(): boolean;
			/**
			 * Force the finished field to a particular value. 
			 * @param finished The new finished value.
			 */
			public forceFinished(finished: boolean): void;
			/**
			 * Returns how long the scroll event will take, in milliseconds. 
			 */
			public getDuration(): number;
			/**
			 * Returns the current X offset in the scroll. 
			 */
			public getCurrX(): number;
			/**
			 * Returns the current Y offset in the scroll. 
			 */
			public getCurrY(): number;
			/**
			 * Returns the current velocity.
			 */
			public getCurrVelocity(): number;
			/**
			 * Returns the start X offset in the scroll. 
			 */
			public getStartX(): number;
			/**
			 * Returns the start Y offset in the scroll. 
			 */
			public getStartY(): number;
			/**
			 * Returns where the scroll will end. Valid only for "fling" scrolls. 
			 */
			public getFinalX(): number;
			/**
			 * Returns where the scroll will end. Valid only for "fling" scrolls. 
			 */
			public getFinalY(): number;
			/**
			 * Call this when you want to know the new location. If it returns true, the animation is not yet finished. loc will be altered to provide the new location.
			 */
			public computeScrollOffset(): boolean;
			/**
			 * Start scrolling by providing a starting point and the distance to travel. The scroll will use the default value of 250 milliseconds for the duration. 
			 * @param startX Starting horizontal scroll offset in pixels. Positive
			 * @param startY Starting vertical scroll offset in pixels. Positive numbers
			 * @param dx Horizontal distance to travel. Positive numbers will scroll the
			 * @param dy Vertical distance to travel. Positive numbers will scroll the
			 */
			public startScroll(startX: number, startY: number, dx: number, dy: number): void;
			/**
			 * Start scrolling by providing a starting point and the distance to travel. 
			 * @param startX Starting horizontal scroll offset in pixels. Positive
			 * @param startY Starting vertical scroll offset in pixels. Positive numbers
			 * @param dx Horizontal distance to travel. Positive numbers will scroll the
			 * @param dy Vertical distance to travel. Positive numbers will scroll the
			 * @param duration Duration of the scroll in milliseconds.
			 */
			public startScroll(startX: number, startY: number, dx: number, dy: number, duration: number): void;
			/**
			 * Start scrolling based on a fling gesture. The distance travelled will depend on the initial velocity of the fling. 
			 * @param startX Starting point of the scroll (X)
			 * @param startY Starting point of the scroll (Y)
			 * @param velocityX Initial velocity of the fling (X) measured in pixels per
			 * @param velocityY Initial velocity of the fling (Y) measured in pixels per
			 * @param minX Minimum X value. The scroller will not scroll past this
			 * @param maxX Maximum X value. The scroller will not scroll past this
			 * @param minY Minimum Y value. The scroller will not scroll past this
			 * @param maxY Maximum Y value. The scroller will not scroll past this
			 */
			public fling(startX: number, startY: number, velocityX: number, velocityY: number, minX: number, maxX: number, minY: number, maxY: number): void;
			static viscousFluid(x: number): number;
			/**
			 * Stops the animation. Contrary to #forceFinished(boolean), aborting the animating cause the scroller to move to the final x and y position
			 */
			public abortAnimation(): void;
			/**
			 * Extend the scroll animation. This allows a running animation to scroll further and longer, when used with #setFinalX(int) or #setFinalY(int).
			 * @param extend Additional time to scroll in milliseconds.
			 */
			public extendDuration(extend: number): void;
			/**
			 * Returns the time elapsed since the beginning of the scrolling.
			 */
			public timePassed(): number;
			/**
			 * Sets the final position (X) for this scroller.
			 * @param newX The new X offset as an absolute distance from the origin.
			 */
			public setFinalX(newX: number): void;
			/**
			 * Sets the final position (Y) for this scroller.
			 * @param newY The new Y offset as an absolute distance from the origin.
			 */
			public setFinalY(newY: number): void;
		}
		/**
		 * A PopupMenu displays a Menu in a modal popup window anchored to a View. The popup will appear below the anchor view if there is room, or above it if there is not. If the IME is visible the popup will not overlap it until it is touched. Touching outside of the popup will dismiss it.
		 */
		export class PopupMenu extends java.lang.Object {
			/**
			 * Construct a new PopupMenu.
			 * @param context Context for the PopupMenu.
			 * @param anchor Anchor view for this popup. The popup will appear below the anchor if there
			 */
			constructor(context: android.content.Context, anchor: android.view.View);
			static class: java.lang.Class<android.widget.PopupMenu>;
			public getMenu(): android.view.IMenu;
			public getMenuInflater(): android.view.MenuInflater;
			/**
			 * Inflate a menu resource into this PopupMenu. This is equivalent to calling popupMenu.getMenuInflater().inflate(menuRes, popupMenu.getMenu()).
			 * @param menuRes Menu resource to inflate
			 */
			public inflate(menuRes: number): void;
			/**
			 * Show the menu popup anchored to the view specified during construction. #dismiss()
			 */
			public show(): void;
			/**
			 * Dismiss the menu popup. #show()
			 */
			public dismiss(): void;
			/**
			 * Set a listener that will be notified when the user selects an item from the menu.
			 * @param listener Listener to notify
			 */
			public setOnMenuItemClickListener(listener: android.widget.PopupMenu.IOnMenuItemClickListener): void;
			/**
			 * Set a listener that will be notified when this menu is dismissed.
			 * @param listener Listener to notify
			 */
			public setOnDismissListener(listener: android.widget.PopupMenu.IOnDismissListener): void;
		}
		export module PopupMenu {
			/**
			 * Callback interface used to notify the application that the menu has closed.
			 */
			interface IOnDismissListener {
				/**
				 * Called when the associated menu has been dismissed.
				 * @param menu The PopupMenu that was dismissed.
				 */
				onDismiss(menu: android.widget.PopupMenu): void;
			}
			/**
			 * Callback interface used to notify the application that the menu has closed.
			 */
			export class OnDismissListener implements android.widget.PopupMenu.IOnDismissListener {
				constructor(implementation: android.widget.PopupMenu.IOnDismissListener);
				/**
				 * Called when the associated menu has been dismissed.
				 * @param menu The PopupMenu that was dismissed.
				 */
				public onDismiss(menu: android.widget.PopupMenu): void;
			}
			/**
			 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
			 */
			export class OnMenuItemClickListener implements android.widget.PopupMenu.IOnMenuItemClickListener {
				constructor(implementation: android.widget.PopupMenu.IOnMenuItemClickListener);
				/**
				 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
				 * @param item {@link MenuItem} that was clicked
				 */
				public onMenuItemClick(item: android.view.IMenuItem): boolean;
			}
			/**
			 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
			 */
			interface IOnMenuItemClickListener {
				/**
				 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
				 * @param item {@link MenuItem} that was clicked
				 */
				onMenuItemClick(item: android.view.IMenuItem): boolean;
			}
		}
		/**
		 * Extended Adapter that is the bridge between a android.widget.Spinner and its data. A spinner adapter allows to define two different views: one that shows the data in the spinner itself and one that shows the data in the drop down list when the spinner is pressed.</p>
		 */
		export class SpinnerAdapter implements android.widget.IAdapter, android.widget.ISpinnerAdapter {
			constructor(implementation: android.widget.ISpinnerAdapter);
			/**
			 * @param position index of the item whose view we want.
			 * @param convertView the old view to reuse, if possible. Note: You should
			 * @param parent the parent that this view will eventually be attached to
			 */
			public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			getItemViewType(position: number): number;
			getViewTypeCount(): number;
			isEmpty(): boolean;
		}
		/**
		 * Additional methods that when implemented make an ExpandableListAdapter take advantage of the Adapter view type mechanism.
		 */
		interface IHeterogeneousExpandableList {
			/**
			 * Get the type of group View that will be created by android.widget.ExpandableListAdapter#getGroupView(int, boolean, View, ViewGroup) . for the specified group item. 
			 * @param groupPosition the position of the group for which the type should be returned.
			 */
			getGroupType(groupPosition: number): number;
			/**
			 * Get the type of child View that will be created by android.widget.ExpandableListAdapter#getChildView(int, int, boolean, View, ViewGroup) for the specified child item. 
			 * @param groupPosition the position of the group that the child resides in
			 * @param childPosition the position of the child with respect to other children in the group
			 */
			getChildType(groupPosition: number, childPosition: number): number;
			getGroupTypeCount(): number;
			getChildTypeCount(): number;
		}
		export class ImageSwitcher extends android.widget.ViewSwitcher {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.ImageSwitcher>;
			public setImageResource(resid: number): void;
			public setImageURI(uri: android.net.Uri): void;
			public setImageDrawable(drawable: android.graphics.drawable.Drawable): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export class PopupWindow extends java.lang.Object {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number, defStyleRes: number);
			constructor();
			/**
			 * @param contentView the popup's content
			 */
			constructor(contentView: android.view.View);
			/**
			 * @param width the popup's width
			 * @param height the popup's height
			 */
			constructor(width: number, height: number);
			/**
			 * @param contentView the popup's content
			 * @param width the popup's width
			 * @param height the popup's height
			 */
			constructor(contentView: android.view.View, width: number, height: number);
			/**
			 * @param contentView the popup's content
			 * @param width the popup's width
			 * @param height the popup's height
			 * @param focusable true if the popup can be focused, false otherwise
			 */
			constructor(contentView: android.view.View, width: number, height: number, focusable: boolean);
			/**
			 * Mode for #setInputMethodMode(int): the requirements for the input method should be based on the focusability of the popup. That is if it is focusable than it needs to work with the input method, else it doesn't.
			 */
			static INPUT_METHOD_FROM_FOCUSABLE: number;
			/**
			 * Mode for #setInputMethodMode(int): this popup always needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed so that the user can also operate the input method while it is shown.
			 */
			static INPUT_METHOD_NEEDED: number;
			/**
			 * Mode for #setInputMethodMode(int): this popup never needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed to use as much space on the screen as needed, regardless of whether this covers the input method.
			 */
			static INPUT_METHOD_NOT_NEEDED: number;
			static class: java.lang.Class<android.widget.PopupWindow>;
			PopupViewContainer: {
	new (context: android.content.Context): android.widget.PopupWindow.PopupViewContainer;
};
			public getBackground(): android.graphics.drawable.Drawable;
			/**
			 * @param background the popup's background
			 */
			public setBackgroundDrawable(background: android.graphics.drawable.Drawable): void;
			public getAnimationStyle(): number;
			/**
			 * Set the flag on popup to ignore cheek press eventt; by default this flag is set to false which means the pop wont ignore cheek press dispatch events. 
			 */
			public setIgnoreCheekPress(): void;
			/**
			 * @param animationStyle animation style to use when the popup appears
			 */
			public setAnimationStyle(animationStyle: number): void;
			public getContentView(): android.view.View;
			/**
			 * @param contentView the new content for the popup
			 */
			public setContentView(contentView: android.view.View): void;
			/**
			 * Set a callback for all touch events being dispatched to the popup window.
			 */
			public setTouchInterceptor(l: android.view.View.IOnTouchListener): void;
			public isFocusable(): boolean;
			/**
			 * @param focusable true if the popup should grab focus, false otherwise.
			 */
			public setFocusable(focusable: boolean): void;
			/**
			 * Return the current value in #setInputMethodMode(int). #setInputMethodMode(int)
			 */
			public getInputMethodMode(): number;
			/**
			 * Control how the popup operates with an input method: one of #INPUT_METHOD_FROM_FOCUSABLE, #INPUT_METHOD_NEEDED, or #INPUT_METHOD_NOT_NEEDED. 
			 */
			public setInputMethodMode(mode: number): void;
			/**
			 * Sets the operating mode for the soft input area.
			 * @param mode The desired mode, see
			 */
			public setSoftInputMode(mode: number): void;
			/**
			 * Returns the current value in #setSoftInputMode(int).
			 */
			public getSoftInputMode(): number;
			public isTouchable(): boolean;
			/**
			 * @param touchable true if the popup should receive touch events, false otherwise
			 */
			public setTouchable(touchable: boolean): void;
			public isOutsideTouchable(): boolean;
			/**
			 * @param touchable true if the popup should receive outside
			 */
			public setOutsideTouchable(touchable: boolean): void;
			public isClippingEnabled(): boolean;
			/**
			 * @param enabled false if the window should be allowed to extend outside of the screen
			 */
			public setClippingEnabled(enabled: boolean): void;
			/**
			 * Allow PopupWindow to scroll the anchor's parent to provide more room for the popup. Enabled by default.
			 * @param enabled True to scroll the anchor's parent when more room is desired by the popup.
			 */
			setAllowScrollingAnchorParent(enabled: boolean): void;
			public isSplitTouchEnabled(): boolean;
			/**
			 * @param enabled true if the split touches should be enabled, false otherwise
			 */
			public setSplitTouchEnabled(enabled: boolean): void;
			/**
			 * @param widthSpec an explicit width measure spec mode, either
			 * @param heightSpec an explicit height measure spec mode, either
			 */
			public setWindowLayoutMode(widthSpec: number, heightSpec: number): void;
			public getHeight(): number;
			/**
			 * @param height the height MeasureSpec of the popup
			 */
			public setHeight(height: number): void;
			public getWidth(): number;
			/**
			 * @param width the width MeasureSpec of the popup
			 */
			public setWidth(width: number): void;
			public isShowing(): boolean;
			/**
			 * @param parent a parent view to get the {@link android.view.View#getWindowToken()} token from
			 * @param gravity the gravity which controls the placement of the popup window
			 * @param x the popup's x location offset
			 * @param y the popup's y location offset
			 */
			public showAtLocation(parent: android.view.View, gravity: number, x: number, y: number): void;
			/**
			 * @param anchor the view on which to pin the popup window
			 */
			public showAsDropDown(anchor: android.view.View): void;
			/**
			 * @param anchor the view on which to pin the popup window
			 * @param xoff 
			 * @param yoff 
			 */
			public showAsDropDown(anchor: android.view.View, xoff: number, yoff: number): void;
			/**
			 * Indicates whether the popup is showing above (the y coordinate of the popup's bottom is less than the y coordinate of the anchor) or below the anchor view (the y coordinate of the popup is greater than y coordinate of the anchor's bottom).
			 */
			public isAboveAnchor(): boolean;
			/**
			 * Returns the maximum height that is available for the popup to be completely shown. It is recommended that this height be the maximum for the popup's height, otherwise it is possible that the popup will be clipped. 
			 * @param anchor The view on which the popup window must be anchored.
			 */
			public getMaxAvailableHeight(anchor: android.view.View): number;
			/**
			 * Returns the maximum height that is available for the popup to be completely shown. It is recommended that this height be the maximum for the popup's height, otherwise it is possible that the popup will be clipped.
			 * @param anchor The view on which the popup window must be anchored.
			 * @param yOffset y offset from the view's bottom edge
			 */
			public getMaxAvailableHeight(anchor: android.view.View, yOffset: number): number;
			public dismiss(): void;
			/**
			 * Sets the listener to be called when the window is dismissed. 
			 * @param onDismissListener The listener.
			 */
			public setOnDismissListener(onDismissListener: android.widget.PopupWindow.IOnDismissListener): void;
			/**
			 * Updates the state of the popup window, if it is currently being displayed, from the currently set state. This include: #setClippingEnabled(boolean), #setFocusable(boolean), #setIgnoreCheekPress(), #setInputMethodMode(int), #setTouchable(boolean), and #setAnimationStyle(int).
			 */
			public update(): void;
			/**
			 * @param width the new width
			 * @param height the new height
			 */
			public update(width: number, height: number): void;
			/**
			 * @param x the new x location
			 * @param y the new y location
			 * @param width the new width, can be -1 to ignore
			 * @param height the new height, can be -1 to ignore
			 */
			public update(x: number, y: number, width: number, height: number): void;
			/**
			 * @param x the new x location
			 * @param y the new y location
			 * @param width the new width, can be -1 to ignore
			 * @param height the new height, can be -1 to ignore
			 * @param force reposition the window even if the specified position
			 */
			public update(x: number, y: number, width: number, height: number, force: boolean): void;
			/**
			 * @param anchor the popup's anchor view
			 * @param width the new width, can be -1 to ignore
			 * @param height the new height, can be -1 to ignore
			 */
			public update(anchor: android.view.View, width: number, height: number): void;
			/**
			 * @param anchor the popup's anchor view
			 * @param xoff x offset from the view's left edge
			 * @param yoff y offset from the view's bottom edge
			 * @param width the new width, can be -1 to ignore
			 * @param height the new height, can be -1 to ignore
			 */
			public update(anchor: android.view.View, xoff: number, yoff: number, width: number, height: number): void;
		}
		export module PopupWindow {
			export class PopupViewContainer extends android.widget.FrameLayout {
				static class: java.lang.Class<android.widget.PopupWindow.PopupViewContainer>;
				protected onCreateDrawableState(extraSpace: number): native.Array<number>;
				public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
				public dispatchTouchEvent(ev: android.view.MotionEvent): boolean;
				public onTouchEvent(event: android.view.MotionEvent): boolean;
				public sendAccessibilityEvent(eventType: number): void;
			}
			/**
			 * Listener that is called when this popup window is dismissed.
			 */
			interface IOnDismissListener {
				/**
				 * Called when this popup window is dismissed.
				 */
				onDismiss(): void;
			}
			/**
			 * Listener that is called when this popup window is dismissed.
			 */
			export class OnDismissListener implements android.widget.PopupWindow.IOnDismissListener {
				constructor(implementation: android.widget.PopupWindow.IOnDismissListener);
				/**
				 * Called when this popup window is dismissed.
				 */
				public onDismiss(): void;
			}
		}
		/**
		 * Additional methods that when implemented make an ExpandableListAdapter take advantage of the Adapter view type mechanism.
		 */
		export class HeterogeneousExpandableList implements android.widget.IHeterogeneousExpandableList {
			constructor(implementation: android.widget.IHeterogeneousExpandableList);
			/**
			 * Get the type of group View that will be created by android.widget.ExpandableListAdapter#getGroupView(int, boolean, View, ViewGroup) . for the specified group item. 
			 * @param groupPosition the position of the group for which the type should be returned.
			 */
			public getGroupType(groupPosition: number): number;
			/**
			 * Get the type of child View that will be created by android.widget.ExpandableListAdapter#getChildView(int, int, boolean, View, ViewGroup) for the specified child item. 
			 * @param groupPosition the position of the group that the child resides in
			 * @param childPosition the position of the child with respect to other children in the group
			 */
			public getChildType(groupPosition: number, childPosition: number): number;
			public getGroupTypeCount(): number;
			public getChildTypeCount(): number;
		}
		export class TextClock extends android.widget.TextView {
			/**
			 * Creates a new clock using the default patterns #DEFAULT_FORMAT_24_HOUR and #DEFAULT_FORMAT_12_HOUR respectively for the 24-hour and 12-hour modes. 
			 * @param context The Context the view is running in, through which it can
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates a new clock inflated from XML. This object's properties are intialized from the attributes specified in XML. This constructor uses a default style of 0, so the only attribute values applied are those in the Context's Theme and the given AttributeSet.
			 * @param context The Context the view is running in, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the view
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Creates a new clock inflated from XML. This object's properties are intialized from the attributes specified in XML.
			 * @param context The Context the view is running in, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the view
			 * @param defStyle The default style to apply to this view. If 0, no style
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * The default formatting pattern in 12-hour mode. This pattenr is used if #setFormat12Hour(CharSequence) is called with a null pattern or if no pattern was specified when creating an instance of this class. This default pattern shows only the time, hours and minutes, and an am/pm indicator.
			 */
			static DEFAULT_FORMAT_12_HOUR: string;
			/**
			 * The default formatting pattern in 24-hour mode. This pattenr is used if #setFormat24Hour(CharSequence) is called with a null pattern or if no pattern was specified when creating an instance of this class.
			 */
			static DEFAULT_FORMAT_24_HOUR: string;
			static class: java.lang.Class<android.widget.TextClock>;
			/**
			 * Returns the formatting pattern used to display the date and/or time in 12-hour mode. The formatting pattern syntax is described in DateFormat. 
			 */
			public getFormat12Hour(): string;
			/**
			 * Specifies the formatting pattern used to display the date and/or time in 12-hour mode. The formatting pattern syntax is described in DateFormat.
			 * @param format A date/time formatting pattern as described in {@link DateFormat}
			 */
			public setFormat12Hour(format: string): void;
			/**
			 * Returns the formatting pattern used to display the date and/or time in 24-hour mode. The formatting pattern syntax is described in DateFormat.
			 */
			public getFormat24Hour(): string;
			/**
			 * Specifies the formatting pattern used to display the date and/or time in 24-hour mode. The formatting pattern syntax is described in DateFormat. If this pattern is set to null, #getFormat12Hour() will be used even in 24-hour mode. If both 24-hour and 12-hour formatting patterns are set to null, #DEFAULT_FORMAT_24_HOUR and #DEFAULT_FORMAT_12_HOUR will be used instead.
			 * @param format A date/time formatting pattern as described in {@link DateFormat}
			 */
			public setFormat24Hour(format: string): void;
			/**
			 * Indicates whether the system is currently using the 24-hour mode. When the system is in 24-hour mode, this view will use the pattern returned by #getFormat24Hour(). In 12-hour mode, the pattern returned by #getFormat12Hour() is used instead. If either one of the formats is null, the other format is used. If both formats are null, the default values #DEFAULT_FORMAT_12_HOUR and #DEFAULT_FORMAT_24_HOUR are used instead. 
			 */
			public is24HourModeEnabled(): boolean;
			/**
			 * Indicates which time zone is currently used by this view. 
			 */
			public getTimeZone(): string;
			/**
			 * Sets the specified time zone to use in this clock. When the time zone is set through this method, system time zone changes (when the user sets the time zone in settings for instance) will be ignored.
			 * @param timeZone The desired time zone's ID as specified in {@link TimeZone}
			 */
			public setTimeZone(timeZone: string): void;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
		}
		/**
		 * Helper class for AbsListView to draw and control the Fast Scroll thumb
		 */
		export class FastScroller extends java.lang.Object {
			constructor(context: android.content.Context, listView: android.widget.AbsListView);
			static class: java.lang.Class<android.widget.FastScroller>;
			ScrollFade: {
	new (): android.widget.FastScroller.ScrollFade;
};
			public setAlwaysShow(alwaysShow: boolean): void;
			public isAlwaysShowEnabled(): boolean;
			public setScrollbarPosition(position: number): void;
			public getWidth(): number;
			public setState(state: number): void;
			public getState(): number;
			stop(): void;
			isVisible(): boolean;
			public draw(canvas: android.graphics.Canvas): void;
			onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			onItemCountChanged(oldCount: number, newCount: number): void;
			onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
			getSectionIndexer(): android.widget.ISectionIndexer;
			getSections(): native.Array<any>;
			getSectionsFromIndexer(): void;
			public onSectionsChanged(): void;
			scrollTo(position: number): void;
			cancelPendingDrag(): void;
			startPendingDrag(): void;
			beginDrag(): void;
			onInterceptTouchEvent(ev: android.view.MotionEvent): boolean;
			onTouchEvent(me: android.view.MotionEvent): boolean;
			isPointInside(x: number, y: number): boolean;
		}
		export module FastScroller {
			export class ScrollFade extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.FastScroller.ScrollFade>;
				startFade(): void;
				getAlpha(): number;
				public run(): void;
			}
		}
		export class AutoCompleteTextViewCallbacks extends android.test.ActivityInstrumentationTestCase2<android.widget.AutoCompleteTextViewSimple> {
			constructor();
			static class: java.lang.Class<android.widget.AutoCompleteTextViewCallbacks>;
			/**
			 * Test that the initial popup of the suggestions does not select anything.
			 */
			public testPopupNoSelection(): void;
			/**
			 * Test that arrow-down into the popup calls the onSelected callback.
			 */
			public testPopupEnterSelection(): void;
			/**
			 * Test that arrow-up out of the popup calls the onNothingSelected callback
			 */
			public testPopupLeaveSelection(): void;
		}
		/**
		 * ViewAnimator that switches between two views, and has a factory from which these views are created. You can either use the factory to create the views, or add them yourself. A ViewSwitcher can only have two child views, of which only one is shown at a time.
		 */
		export class ViewSwitcher extends android.widget.ViewAnimator {
			/**
			 * Creates a new empty ViewSwitcher.
			 * @param context the application's environment
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates a new empty ViewSwitcher for the given context and with the specified set attributes.
			 * @param context the application environment
			 * @param attrs a collection of attributes
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.ViewSwitcher>;
			/**
			 * 
			 */
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Returns the next view to be displayed.
			 */
			public getNextView(): android.view.View;
			/**
			 * Sets the factory used to create the two views between which the ViewSwitcher will flip. Instead of using a factory, you can call #addView(android.view.View, int, android.view.ViewGroup.LayoutParams) twice.
			 * @param factory the view factory used to generate the switcher's content
			 */
			public setFactory(factory: android.widget.ViewSwitcher.IViewFactory): void;
			/**
			 * Reset the ViewSwitcher to hide all of the existing views and to make it think that the first time animation has not yet played.
			 */
			public reset(): void;
			/**
			 * @param child the child view to add
			 */
			addView(child: android.view.View): void;
			/**
			 * Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child. 
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 */
			addView(child: android.view.View, index: number): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param params the layout parameters to set on the child
			 */
			addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
		}
		export module ViewSwitcher {
			/**
			 * Creates views in a ViewSwitcher.
			 */
			interface IViewFactory {
				/**
				 * Creates a new android.view.View to be added in a android.widget.ViewSwitcher.
				 */
				makeView(): android.view.View;
			}
			/**
			 * Creates views in a ViewSwitcher.
			 */
			export class ViewFactory implements android.widget.ViewSwitcher.IViewFactory {
				constructor(implementation: android.widget.ViewSwitcher.IViewFactory);
				/**
				 * Creates a new android.view.View to be added in a android.widget.ViewSwitcher.
				 */
				public makeView(): android.view.View;
			}
		}
		/**
		 * Extended Adapter that is the bridge between a ListView and the data that backs the list. Frequently that data comes from a Cursor, but that is not required. The ListView can display any data provided that it is wrapped in a ListAdapter.
		 */
		interface IListAdapter extends android.widget.IAdapter {
			/**
			 * Indicates whether all the items in this adapter are enabled. If the value returned by this method changes over time, there is no guarantee it will take effect. If true, it means all items are selectable and clickable (there is no separator.) 
			 */
			areAllItemsEnabled(): boolean;
			/**
			 * Returns true if the item at the specified position is not a separator. (A separator is a non-selectable, non-clickable item). The result is unspecified if position is invalid. An ArrayIndexOutOfBoundsException should be thrown in that case for fast failure.
			 * @param position Index of the item
			 */
			isEnabled(position: number): boolean;
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			getItemViewType(position: number): number;
			getViewTypeCount(): number;
			isEmpty(): boolean;
		}
		/**
		 * Simple ViewAnimator that will animate between two or more views that have been added to it. Only one child is shown at a time. If requested, can automatically flip between each child at a regular interval.
		 */
		export class ViewFlipper extends android.widget.ViewAnimator {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.ViewFlipper>;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			protected onWindowVisibilityChanged(visibility: number): void;
			/**
			 * How long to wait before flipping to the next view
			 * @param milliseconds 
			 */
			public setFlipInterval(milliseconds: number): void;
			/**
			 * Start a timer to cycle through child views
			 */
			public startFlipping(): void;
			/**
			 * No more flips
			 */
			public stopFlipping(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Returns true if the child views are flipping.
			 */
			public isFlipping(): boolean;
			/**
			 * Set if this view automatically calls #startFlipping() when it becomes attached to a window.
			 */
			public setAutoStart(autoStart: boolean): void;
			/**
			 * Returns true if this view automatically calls #startFlipping() when it becomes attached to a window.
			 */
			public isAutoStart(): boolean;
		}
		/**
		 * A ListPopupWindow anchors itself to a host view and displays a list of choices. 
		 */
		export class ListPopupWindow extends java.lang.Object {
			/**
			 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable). 
			 * @param context Context used for contained views.
			 */
			constructor(context: android.content.Context);
			/**
			 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable). 
			 * @param context Context used for contained views.
			 * @param attrs Attributes from inflating parent views used to style the popup.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable). 
			 * @param context Context used for contained views.
			 * @param attrs Attributes from inflating parent views used to style the popup.
			 * @param defStyleAttr Default style attribute to use for popup content.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
			/**
			 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable). 
			 * @param context Context used for contained views.
			 * @param attrs Attributes from inflating parent views used to style the popup.
			 * @param defStyleAttr Style attribute to read for default styling of popup content.
			 * @param defStyleRes Style resource ID to use for default styling of popup content.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number, defStyleRes: number);
			/**
			 * The provided prompt view should appear above list content. #setPromptPosition(int) #getPromptPosition() #setPromptView(View)
			 */
			static POSITION_PROMPT_ABOVE: number;
			/**
			 * The provided prompt view should appear below list content. #setPromptPosition(int) #getPromptPosition() #setPromptView(View)
			 */
			static POSITION_PROMPT_BELOW: number;
			/**
			 * Alias for ViewGroup.LayoutParams#MATCH_PARENT. If used to specify a popup width, the popup will match the width of the anchor view. If used to specify a popup height, the popup will fill available space.
			 */
			static MATCH_PARENT: number;
			/**
			 * Alias for ViewGroup.LayoutParams#WRAP_CONTENT. If used to specify a popup width, the popup will use the width of its content.
			 */
			static WRAP_CONTENT: number;
			/**
			 * Mode for #setInputMethodMode(int): the requirements for the input method should be based on the focusability of the popup. That is if it is focusable than it needs to work with the input method, else it doesn't.
			 */
			static INPUT_METHOD_FROM_FOCUSABLE: number;
			/**
			 * Mode for #setInputMethodMode(int): this popup always needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed so that the user can also operate the input method while it is shown.
			 */
			static INPUT_METHOD_NEEDED: number;
			/**
			 * Mode for #setInputMethodMode(int): this popup never needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed to use as much space on the screen as needed, regardless of whether this covers the input method.
			 */
			static INPUT_METHOD_NOT_NEEDED: number;
			static class: java.lang.Class<android.widget.ListPopupWindow>;
			/**
			 * Sets the adapter that provides the data and the views to represent the data in this popup window.
			 * @param adapter The adapter to use to create this window's content.
			 */
			public setAdapter(adapter: android.widget.IListAdapter): void;
			/**
			 * Set where the optional prompt view should appear. The default is #POSITION_PROMPT_ABOVE. 
			 * @param position A position constant declaring where the prompt should be displayed.
			 */
			public setPromptPosition(position: number): void;
			public getPromptPosition(): number;
			/**
			 * Set whether this window should be modal when shown. 
			 * @param modal {@code true} if the popup window should be modal, {@code false} otherwise.
			 */
			public setModal(modal: boolean): void;
			/**
			 * Returns whether the popup window will be modal when shown. 
			 */
			public isModal(): boolean;
			/**
			 * Sets the operating mode for the soft input area.
			 * @param mode The desired mode, see
			 */
			public setSoftInputMode(mode: number): void;
			/**
			 * Returns the current value in #setSoftInputMode(int).
			 */
			public getSoftInputMode(): number;
			/**
			 * Sets a drawable to use as the list item selector. 
			 * @param selector List selector drawable to use in the popup.
			 */
			public setListSelector(selector: android.graphics.drawable.Drawable): void;
			public getBackground(): android.graphics.drawable.Drawable;
			/**
			 * Sets a drawable to be the background for the popup window. 
			 * @param d A drawable to set as the background.
			 */
			public setBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
			/**
			 * Set an animation style to use when the popup window is shown or dismissed. 
			 * @param animationStyle Animation style to use.
			 */
			public setAnimationStyle(animationStyle: number): void;
			/**
			 * Returns the animation style that will be used when the popup window is shown or dismissed. 
			 */
			public getAnimationStyle(): number;
			/**
			 * Returns the view that will be used to anchor this popup. 
			 */
			public getAnchorView(): android.view.View;
			/**
			 * Sets the popup's anchor view. This popup will always be positioned relative to the anchor view when shown. 
			 * @param anchor The view to use as an anchor.
			 */
			public setAnchorView(anchor: android.view.View): void;
			public getHorizontalOffset(): number;
			/**
			 * Set the horizontal offset of this popup from its anchor view in pixels. 
			 * @param offset The horizontal offset of the popup from its anchor.
			 */
			public setHorizontalOffset(offset: number): void;
			public getVerticalOffset(): number;
			/**
			 * Set the vertical offset of this popup from its anchor view in pixels. 
			 * @param offset The vertical offset of the popup from its anchor.
			 */
			public setVerticalOffset(offset: number): void;
			public getWidth(): number;
			/**
			 * Sets the width of the popup window in pixels. Can also be #MATCH_PARENT or #WRAP_CONTENT. 
			 * @param width Width of the popup window.
			 */
			public setWidth(width: number): void;
			/**
			 * Sets the width of the popup window by the size of its content. The final width may be larger to accommodate styled window dressing.
			 * @param width Desired width of content in pixels.
			 */
			public setContentWidth(width: number): void;
			public getHeight(): number;
			/**
			 * Sets the height of the popup window in pixels. Can also be #MATCH_PARENT. 
			 * @param height Height of the popup window.
			 */
			public setHeight(height: number): void;
			/**
			 * Sets a listener to receive events when a list item is clicked. 
			 * @param clickListener Listener to register
			 */
			public setOnItemClickListener(clickListener: android.widget.AdapterView.IOnItemClickListener): void;
			/**
			 * Sets a listener to receive events when a list item is selected. 
			 * @param selectedListener Listener to register.
			 */
			public setOnItemSelectedListener(selectedListener: android.widget.AdapterView.IOnItemSelectedListener): void;
			/**
			 * Set a view to act as a user prompt for this popup window. Where the prompt view will appear is controlled by #setPromptPosition(int). 
			 * @param prompt View to use as an informational prompt.
			 */
			public setPromptView(prompt: android.view.View): void;
			/**
			 * Post a #show() call to the UI thread.
			 */
			public postShow(): void;
			/**
			 * Show the popup list. If the list is already showing, this method will recalculate the popup's size and position.
			 */
			public show(): void;
			/**
			 * Dismiss the popup window.
			 */
			public dismiss(): void;
			/**
			 * Set a listener to receive a callback when the popup is dismissed.
			 * @param listener Listener that will be notified when the popup is dismissed.
			 */
			public setOnDismissListener(listener: android.widget.PopupWindow.IOnDismissListener): void;
			/**
			 * Control how the popup operates with an input method: one of #INPUT_METHOD_FROM_FOCUSABLE, #INPUT_METHOD_NEEDED, or #INPUT_METHOD_NOT_NEEDED. 
			 */
			public setInputMethodMode(mode: number): void;
			/**
			 * Return the current value in #setInputMethodMode(int). #setInputMethodMode(int)
			 */
			public getInputMethodMode(): number;
			/**
			 * Set the selected position of the list. Only valid when #isShowing() == true. 
			 * @param position List position to set as selected.
			 */
			public setSelection(position: number): void;
			/**
			 * Clear any current list selection. Only valid when #isShowing() == true.
			 */
			public clearListSelection(): void;
			public isShowing(): boolean;
			public isInputMethodNotNeeded(): boolean;
			/**
			 * Perform an item click operation on the specified list adapter position. 
			 * @param position Adapter position for performing the click
			 */
			public performItemClick(position: number): boolean;
			public getSelectedItem(): any;
			public getSelectedItemPosition(): number;
			public getSelectedItemId(): any;
			public getSelectedView(): android.view.View;
			public getListView(): android.widget.ListView;
			/**
			 * The maximum number of list items that can be visible and still have the list expand when touched.
			 * @param max Max number of items that can be visible and still allow the list to expand.
			 */
			setListItemExpandMax(max: number): void;
			/**
			 * Filter key down events. By forwarding key down events to this function, views using non-modal ListPopupWindow can have it handle key selection of items. 
			 * @param keyCode keyCode param passed to the host view's onKeyDown
			 * @param event event param passed to the host view's onKeyDown
			 */
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Filter key down events. By forwarding key up events to this function, views using non-modal ListPopupWindow can have it handle key selection of items. 
			 * @param keyCode keyCode param passed to the host view's onKeyUp
			 * @param event event param passed to the host view's onKeyUp
			 */
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Filter pre-IME key events. By forwarding View#onKeyPreIme(int, KeyEvent) events to this function, views using ListPopupWindow can have it dismiss the popup when the back key is pressed. 
			 * @param keyCode keyCode param passed to the host view's onKeyPreIme
			 * @param event event param passed to the host view's onKeyPreIme
			 */
			public onKeyPreIme(keyCode: number, event: android.view.KeyEvent): boolean;
		}
		export module ListPopupWindow {
			export class DropDownListView extends android.widget.ListView {
				/**
				 * @param context this view's context
				 * @param hijackFocus 
				 */
				constructor(context: android.content.Context, hijackFocus: boolean);
				static class: java.lang.Class<android.widget.ListPopupWindow.DropDownListView>;
				/**
				 * @param position the item index in the list to get a view for
				 * @param isScrap 
				 */
				obtainView(position: number, isScrap: native.Array<boolean>): android.view.View;
				public isInTouchMode(): boolean;
				public hasWindowFocus(): boolean;
				public isFocused(): boolean;
				public hasFocus(): boolean;
			}
			export class ResizePopupRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.ListPopupWindow.ResizePopupRunnable>;
				public run(): void;
			}
			export class ListSelectorHider extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.ListPopupWindow.ListSelectorHider>;
				public run(): void;
			}
			export class PopupScrollListener extends java.lang.Object implements android.widget.AbsListView.IOnScrollListener {
				static class: java.lang.Class<android.widget.ListPopupWindow.PopupScrollListener>;
				public onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
				public onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
			}
			export class PopupDataSetObserver extends android.database.DataSetObserver {
				static class: java.lang.Class<android.widget.ListPopupWindow.PopupDataSetObserver>;
				public onChanged(): void;
				public onInvalidated(): void;
			}
			export class PopupTouchInterceptor extends java.lang.Object implements android.view.View.IOnTouchListener {
				static class: java.lang.Class<android.widget.ListPopupWindow.PopupTouchInterceptor>;
				public onTouch(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
		}
		/**
		 * A toast is a view containing a quick little message for the user. The toast class helps you create and show those. 
		 */
		export class Toast extends java.lang.Object {
			/**
			 * Construct an empty Toast object. You must call #setView before you can call #show.
			 * @param context The context to use. Usually your {@link android.app.Application}
			 */
			constructor(context: android.content.Context);
			/**
			 * Show the view or text notification for a short period of time. This time could be user-definable. This is the default. #setDuration
			 */
			static LENGTH_SHORT: number;
			/**
			 * Show the view or text notification for a long period of time. This time could be user-definable. #setDuration
			 */
			static LENGTH_LONG: number;
			static class: java.lang.Class<android.widget.Toast>;
			/**
			 * Show the view for the specified duration.
			 */
			public show(): void;
			/**
			 * Close the view if it's showing, or don't show it if it isn't showing yet. You do not normally have to call this. Normally view will disappear on its own after the appropriate duration.
			 */
			public cancel(): void;
			/**
			 * Set the view to show. #getView
			 */
			public setView(view: android.view.View): void;
			/**
			 * Return the view. #setView
			 */
			public getView(): android.view.View;
			/**
			 * Set how long to show the view for. #LENGTH_SHORT #LENGTH_LONG
			 */
			public setDuration(duration: number): void;
			/**
			 * Return the duration. #setDuration
			 */
			public getDuration(): number;
			/**
			 * Set the margins of the view.
			 * @param horizontalMargin The horizontal margin, in percentage of the
			 * @param verticalMargin The vertical margin, in percentage of the
			 */
			public setMargin(horizontalMargin: number, verticalMargin: number): void;
			/**
			 * Return the horizontal margin.
			 */
			public getHorizontalMargin(): number;
			/**
			 * Return the vertical margin.
			 */
			public getVerticalMargin(): number;
			/**
			 * Set the location at which the notification should appear on the screen. android.view.Gravity #getGravity
			 */
			public setGravity(gravity: number, xOffset: number, yOffset: number): void;
			/**
			 * Get the location at which the notification should appear on the screen. android.view.Gravity #getGravity
			 */
			public getGravity(): number;
			/**
			 * Return the X offset in pixels to apply to the gravity's location.
			 */
			public getXOffset(): number;
			/**
			 * Return the Y offset in pixels to apply to the gravity's location.
			 */
			public getYOffset(): number;
			/**
			 * Make a standard toast that just contains a text view.
			 * @param context The context to use. Usually your {@link android.app.Application}
			 * @param text The text to show. Can be formatted text.
			 * @param duration How long to display the message. Either {@link #LENGTH_SHORT} or
			 */
			public static makeText(context: android.content.Context, text: string, duration: number): android.widget.Toast;
			/**
			 * Make a standard toast that just contains a text view with the text from a resource.
			 * @param context The context to use. Usually your {@link android.app.Application}
			 * @param resId The resource id of the string resource to use. Can be formatted text.
			 * @param duration How long to display the message. Either {@link #LENGTH_SHORT} or
			 */
			public static makeText(context: android.content.Context, resId: number, duration: number): android.widget.Toast;
			/**
			 * Update the text in a Toast that was previously created using one of the makeText() methods.
			 * @param resId The new text for the Toast.
			 */
			public setText(resId: number): void;
			/**
			 * Update the text in a Toast that was previously created using one of the makeText() methods.
			 * @param s The new text for the Toast.
			 */
			public setText(s: string): void;
		}
		export module Toast {
			export class TN {
				static class: java.lang.Class<android.widget.Toast.TN>;
				/**
				 * schedule handleShow into the right thread
				 */
				public show(): void;
				/**
				 * schedule handleHide into the right thread
				 */
				public hide(): void;
				public handleShow(): void;
				public handleHide(): void;
			}
		}
		export module touchmode {
			/**
			 * Tests that the touch mode changes from various events, and that the state persists across activities.
			 */
			export class ChangeTouchModeTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.LLOfButtons1> {
				constructor();
				static class: java.lang.Class<android.widget.touchmode.ChangeTouchModeTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testTouchingScreenEntersTouchMode(): void;
				public DISABLE_testDpadDirectionLeavesTouchMode(): void;
				public TODO_touchTrackBallMovementLeavesTouchMode(): void;
				public testTouchModeFalseAcrossActivites(): void;
				public testTouchModeTrueAcrossActivites(): void;
				public testTouchModeChangedInOtherActivity(): void;
			}
			/**
			 * Some views, like edit texts, can keep and gain focus even when in touch mode.
			 */
			export class TouchModeFocusableTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.LLEditTextThenButton> {
				constructor();
				static class: java.lang.Class<android.widget.touchmode.TouchModeFocusableTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testClickButtonEditTextKeepsFocus(): void;
				public testClickEditTextGivesItFocus(): void;
				public testEnterTouchModeGivesFocusBackToFocusableInTouchMode(): void;
			}
			export class StartInTouchWithViewInFocusTest extends android.test.ActivityInstrumentationTestCase2<android.widget.layout.linear.LLEditTextThenButton> {
				constructor();
				static class: java.lang.Class<android.widget.touchmode.StartInTouchWithViewInFocusTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public DISABLE_testKeyDownLeavesTouchModeAndGoesToNextView(): void;
				public DISABLE_testNonDirectionalKeyExitsTouchMode(): void;
			}
			/**
			 * Make sure focus isn't kept by buttons when entering touch mode.
			 */
			export class TouchModeFocusChangeTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.LLOfButtons1> {
				constructor();
				static class: java.lang.Class<android.widget.touchmode.TouchModeFocusChangeTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testTouchButtonNotTakeFocus(): void;
				public DISABLE_testLeaveTouchModeWithDpadEvent(): void;
			}
			export class FocusableInTouchModeClickTest extends android.test.ActivityInstrumentationTestCase2<android.widget.layout.linear.LLOfTwoFocusableInTouchMode> {
				constructor();
				static class: java.lang.Class<android.widget.touchmode.FocusableInTouchModeClickTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testClickGivesFocusNoClickFired(): void;
				public testTapGivesFocusNoClickFired(): void;
			}
		}
		/**
		 * This widget display an analogic clock with two hands for hours and minutes.
		 */
		export class AnalogClock extends android.view.View {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.AnalogClock>;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
		}
		/**
		 * An abstract base class for spinner widgets. SDK users will probably not need to use this class. ref android.R.styleable#AbsSpinner_entries
		 */
		export class AbsSpinner extends android.widget.AdapterView<android.widget.ISpinnerAdapter> {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.AbsSpinner>;
			/**
			 * The Adapter is used to provide the data which backs this Spinner. It also provides methods to transform spinner items based on their position relative to the selected item.
			 * @param adapter The SpinnerAdapter to use for this Spinner
			 */
			public setAdapter(adapter: android.widget.ISpinnerAdapter): void;
			/**
			 * Clear out all children from the list
			 */
			resetList(): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			getChildHeight(child: android.view.View): number;
			getChildWidth(child: android.view.View): number;
			protected generateDefaultLayoutParams(): android.view.ViewGroup.LayoutParams;
			recycleAllViews(): void;
			/**
			 * Jump directly to a specific item in the adapter data.
			 */
			public setSelection(position: number, animate: boolean): void;
			public setSelection(position: number): void;
			/**
			 * Makes the item at the supplied position selected. 
			 * @param position Position to select
			 * @param animate Should the transition be animated
			 */
			setSelectionInt(position: number, animate: boolean): void;
			layout(delta: number, animate: boolean): void;
			public getSelectedView(): android.view.View;
			/**
			 * Override to prevent spamming ourselves with layout requests as we place views android.view.View#requestLayout()
			 */
			public requestLayout(): void;
			public getAdapter(): android.widget.ISpinnerAdapter;
			public getCount(): number;
			/**
			 * Maps a point to a position in the list. 
			 * @param x X in local coordinate
			 * @param y Y in local coordinate
			 */
			public pointToPosition(x: number, y: number): number;
			public onSaveInstanceState(): android.os.IParcelable;
			public onRestoreInstanceState(state: android.os.IParcelable): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * 
			 */
			layout(l: number, t: number, r: number, b: number): void;
		}
		export module AbsSpinner {
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.AbsSpinner.SavedState>;
				static class: java.lang.Class<android.widget.AbsSpinner.SavedState>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public toString(): string;
			}
			export class RecycleBin extends java.lang.Object {
				static class: java.lang.Class<android.widget.AbsSpinner.RecycleBin>;
				public put(position: number, v: android.view.View): void;
				get(position: number): android.view.View;
				clear(): void;
			}
		}
		/**
		 * Extended Adapter that is the bridge between a ListView and the data that backs the list. Frequently that data comes from a Cursor, but that is not required. The ListView can display any data provided that it is wrapped in a ListAdapter.
		 */
		export class ListAdapter implements android.widget.IAdapter, android.widget.IListAdapter {
			constructor(implementation: android.widget.IListAdapter);
			/**
			 * Indicates whether all the items in this adapter are enabled. If the value returned by this method changes over time, there is no guarantee it will take effect. If true, it means all items are selectable and clickable (there is no separator.) 
			 */
			public areAllItemsEnabled(): boolean;
			/**
			 * Returns true if the item at the specified position is not a separator. (A separator is a non-selectable, non-clickable item). The result is unspecified if position is invalid. An ArrayIndexOutOfBoundsException should be thrown in that case for fast failure.
			 * @param position Index of the item
			 */
			public isEnabled(position: number): boolean;
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			getItemViewType(position: number): number;
			getViewTypeCount(): number;
			isEmpty(): boolean;
		}
		/**
		 * A view that shows items in a vertically scrolling two-level list. This differs from the ListView by allowing two levels: groups which can individually be expanded to show its children. The items come from the ExpandableListAdapter associated with this view.
		 */
		export class ExpandableListView extends android.widget.ListView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * The packed position represents a group.
			 */
			static PACKED_POSITION_TYPE_GROUP: number;
			/**
			 * The packed position represents a child.
			 */
			static PACKED_POSITION_TYPE_CHILD: number;
			/**
			 * The packed position represents a neither/null/no preference.
			 */
			static PACKED_POSITION_TYPE_NULL: number;
			/**
			 * The value for a packed position that represents neither/null/no preference. This value is not otherwise possible since a group type (first bit 0) should not have a child position filled.
			 */
			static PACKED_POSITION_VALUE_NULL: number;
			/**
			 * Denotes when a child indicator should inherit this bound from the generic indicator bounds
			 */
			static CHILD_INDICATOR_INHERIT: number;
			static class: java.lang.Class<android.widget.ExpandableListView>;
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			/**
			 * Sets the drawable that will be drawn adjacent to every child in the list. This will be drawn using the same height as the normal divider (#setDivider(Drawable)) or if it does not have an intrinsic height, the height set by #setDividerHeight(int). 
			 * @param childDivider The drawable to use.
			 */
			public setChildDivider(childDivider: android.graphics.drawable.Drawable): void;
			drawDivider(canvas: android.graphics.Canvas, bounds: android.graphics.Rect, childIndex: number): void;
			/**
			 * This overloaded method should not be used, instead use #setAdapter(ExpandableListAdapter).
			 */
			public setAdapter(adapter: android.widget.IListAdapter): void;
			/**
			 * This method should not be used, use #getExpandableListAdapter().
			 */
			public getAdapter(): android.widget.IListAdapter;
			/**
			 * Register a callback to be invoked when an item has been clicked and the caller prefers to receive a ListView-style position instead of a group and/or child position. In most cases, the caller should use #setOnGroupClickListener and/or #setOnChildClickListener. <p /> 
			 */
			public setOnItemClickListener(l: android.widget.AdapterView.IOnItemClickListener): void;
			/**
			 * Sets the adapter that provides data to this view.
			 * @param adapter The adapter that provides data to this view.
			 */
			public setAdapter(adapter: android.widget.IExpandableListAdapter): void;
			/**
			 * Gets the adapter that provides data to this view.
			 */
			public getExpandableListAdapter(): android.widget.IExpandableListAdapter;
			public performItemClick(v: android.view.View, position: number, id: number): boolean;
			/**
			 * This will either expand/collapse groups (if a group was clicked) or pass on the click to the proper child (if a child was clicked) 
			 * @param v position The flat list position. This has already been factored to
			 * @param position id The ListAdapter ID, not the group or child ID.
			 * @param id 
			 */
			handleItemClick(v: android.view.View, position: number, id: number): boolean;
			/**
			 * Expand a group in the grouped list view
			 * @param groupPos the group to be expanded
			 */
			public expandGroup(groupPos: number): boolean;
			/**
			 * Expand a group in the grouped list view
			 * @param groupPos the group to be expanded
			 * @param animate true if the expanding group should be animated in
			 */
			public expandGroup(groupPos: number, animate: boolean): boolean;
			/**
			 * Collapse a group in the grouped list view 
			 * @param groupPos position of the group to collapse
			 */
			public collapseGroup(groupPos: number): boolean;
			public setOnGroupCollapseListener(onGroupCollapseListener: android.widget.ExpandableListView.IOnGroupCollapseListener): void;
			public setOnGroupExpandListener(onGroupExpandListener: android.widget.ExpandableListView.IOnGroupExpandListener): void;
			public setOnGroupClickListener(onGroupClickListener: android.widget.ExpandableListView.IOnGroupClickListener): void;
			public setOnChildClickListener(onChildClickListener: android.widget.ExpandableListView.IOnChildClickListener): void;
			/**
			 * Converts a flat list position (the raw position of an item (child or group) in the list) to a group and/or child position (represented in a packed position). This is useful in situations where the caller needs to use the underlying ListView's methods. Use ExpandableListView#getPackedPositionType , ExpandableListView#getPackedPositionChild, ExpandableListView#getPackedPositionGroup to unpack. 
			 * @param flatListPosition The flat list position to be converted.
			 */
			public getExpandableListPosition(flatListPosition: number): any;
			/**
			 * Converts a group and/or child position to a flat list position. This is useful in situations where the caller needs to use the underlying ListView's methods. 
			 * @param packedPosition The group and/or child positions to be converted in
			 */
			public getFlatListPosition(packedPosition: number): number;
			/**
			 * Gets the position of the currently selected group or child (along with its type). Can return #PACKED_POSITION_VALUE_NULL if no selection. 
			 */
			public getSelectedPosition(): any;
			/**
			 * Gets the ID of the currently selected group or child. Can return -1 if no selection. 
			 */
			public getSelectedId(): any;
			/**
			 * Sets the selection to the specified group.
			 * @param groupPosition The position of the group that should be selected.
			 */
			public setSelectedGroup(groupPosition: number): void;
			/**
			 * Sets the selection to the specified child. If the child is in a collapsed group, the group will only be expanded and child subsequently selected if shouldExpandGroup is set to true, otherwise the method will return false. 
			 * @param groupPosition The position of the group that contains the child.
			 * @param childPosition The position of the child within the group.
			 * @param shouldExpandGroup Whether the child's group should be expanded if
			 */
			public setSelectedChild(groupPosition: number, childPosition: number, shouldExpandGroup: boolean): boolean;
			/**
			 * Whether the given group is currently expanded. 
			 * @param groupPosition The group to check.
			 */
			public isGroupExpanded(groupPosition: number): boolean;
			/**
			 * Gets the type of a packed position. See #getPackedPositionForChild(int, int). 
			 * @param packedPosition The packed position for which to return the type.
			 */
			public static getPackedPositionType(packedPosition: number): number;
			/**
			 * Gets the group position from a packed position. See #getPackedPositionForChild(int, int). 
			 * @param packedPosition The packed position from which the group position
			 */
			public static getPackedPositionGroup(packedPosition: number): number;
			/**
			 * Gets the child position from a packed position that is of #PACKED_POSITION_TYPE_CHILD type (use #getPackedPositionType(long)). To get the group that this child belongs to, use #getPackedPositionGroup(long). See #getPackedPositionForChild(int, int). 
			 * @param packedPosition The packed position from which the child position
			 */
			public static getPackedPositionChild(packedPosition: number): number;
			/**
			 * Returns the packed position representation of a child's position.
			 * @param groupPosition The child's parent group's position.
			 * @param childPosition The child position within the group.
			 */
			public static getPackedPositionForChild(groupPosition: number, childPosition: number): any;
			/**
			 * Returns the packed position representation of a group's position. See #getPackedPositionForChild(int, int). 
			 * @param groupPosition The child's parent group's position.
			 */
			public static getPackedPositionForGroup(groupPosition: number): any;
			createContextMenuInfo(view: android.view.View, flatListPosition: number, id: number): android.view.ContextMenu.IContextMenuInfo;
			/**
			 * Sets the indicator to be drawn next to a child. 
			 * @param childIndicator The drawable to be used as an indicator. If the
			 */
			public setChildIndicator(childIndicator: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the drawing bounds for the child indicator. For either, you can specify #CHILD_INDICATOR_INHERIT to use inherit from the general indicator's bounds.
			 * @param left The left position (relative to the left bounds of this View)
			 * @param right The right position (relative to the left bounds of this
			 */
			public setChildIndicatorBounds(left: number, right: number): void;
			/**
			 * Sets the indicator to be drawn next to a group. 
			 * @param groupIndicator The drawable to be used as an indicator. If the
			 */
			public setGroupIndicator(groupIndicator: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the drawing bounds for the indicators (at minimum, the group indicator is affected by this; the child indicator is affected by this if the child indicator bounds are set to inherit). #setChildIndicatorBounds(int, int)
			 * @param left The left position (relative to the left bounds of this View)
			 * @param right The right position (relative to the left bounds of this
			 */
			public setIndicatorBounds(left: number, right: number): void;
			public onSaveInstanceState(): android.os.IParcelable;
			public onRestoreInstanceState(state: android.os.IParcelable): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module ExpandableListView {
			export class SavedState extends android.view.View.BaseSavedState {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.ExpandableListView.SavedState>;
				static class: java.lang.Class<android.widget.ExpandableListView.SavedState>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
			}
			/**
			 * Used for being notified when a group is collapsed
			 */
			interface IOnGroupCollapseListener {
				/**
				 * Callback method to be invoked when a group in this expandable list has been collapsed. 
				 * @param groupPosition The group position that was collapsed
				 */
				onGroupCollapse(groupPosition: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a group in this expandable list has been clicked.
			 */
			interface IOnGroupClickListener {
				/**
				 * Callback method to be invoked when a group in this expandable list has been clicked. 
				 * @param parent The ExpandableListConnector where the click happened
				 * @param v The view within the expandable list/ListView that was clicked
				 * @param groupPosition The group position that was clicked
				 * @param id The row id of the group that was clicked
				 */
				onGroupClick(parent: android.widget.ExpandableListView, v: android.view.View, groupPosition: number, id: number): boolean;
			}
			/**
			 * Used for being notified when a group is expanded
			 */
			export class OnGroupExpandListener implements android.widget.ExpandableListView.IOnGroupExpandListener {
				constructor(implementation: android.widget.ExpandableListView.IOnGroupExpandListener);
				/**
				 * Callback method to be invoked when a group in this expandable list has been expanded. 
				 * @param groupPosition The group position that was expanded
				 */
				public onGroupExpand(groupPosition: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a child in this expandable list has been clicked.
			 */
			interface IOnChildClickListener {
				/**
				 * Callback method to be invoked when a child in this expandable list has been clicked. 
				 * @param parent The ExpandableListView where the click happened
				 * @param v The view within the expandable list/ListView that was clicked
				 * @param groupPosition The group position that contains the child that
				 * @param childPosition The child position within the group
				 * @param id The row id of the child that was clicked
				 */
				onChildClick(parent: android.widget.ExpandableListView, v: android.view.View, groupPosition: number, childPosition: number, id: number): boolean;
			}
			/**
			 * Used for being notified when a group is collapsed
			 */
			export class OnGroupCollapseListener implements android.widget.ExpandableListView.IOnGroupCollapseListener {
				constructor(implementation: android.widget.ExpandableListView.IOnGroupCollapseListener);
				/**
				 * Callback method to be invoked when a group in this expandable list has been collapsed. 
				 * @param groupPosition The group position that was collapsed
				 */
				public onGroupCollapse(groupPosition: number): void;
			}
			/**
			 * Used for being notified when a group is expanded
			 */
			interface IOnGroupExpandListener {
				/**
				 * Callback method to be invoked when a group in this expandable list has been expanded. 
				 * @param groupPosition The group position that was expanded
				 */
				onGroupExpand(groupPosition: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a group in this expandable list has been clicked.
			 */
			export class OnGroupClickListener implements android.widget.ExpandableListView.IOnGroupClickListener {
				constructor(implementation: android.widget.ExpandableListView.IOnGroupClickListener);
				/**
				 * Callback method to be invoked when a group in this expandable list has been clicked. 
				 * @param parent The ExpandableListConnector where the click happened
				 * @param v The view within the expandable list/ListView that was clicked
				 * @param groupPosition The group position that was clicked
				 * @param id The row id of the group that was clicked
				 */
				public onGroupClick(parent: android.widget.ExpandableListView, v: android.view.View, groupPosition: number, id: number): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a child in this expandable list has been clicked.
			 */
			export class OnChildClickListener implements android.widget.ExpandableListView.IOnChildClickListener {
				constructor(implementation: android.widget.ExpandableListView.IOnChildClickListener);
				/**
				 * Callback method to be invoked when a child in this expandable list has been clicked. 
				 * @param parent The ExpandableListView where the click happened
				 * @param v The view within the expandable list/ListView that was clicked
				 * @param groupPosition The group position that contains the child that
				 * @param childPosition The child position within the group
				 * @param id The row id of the child that was clicked
				 */
				public onChildClick(parent: android.widget.ExpandableListView, v: android.view.View, groupPosition: number, childPosition: number, id: number): boolean;
			}
			/**
			 * Extra menu information specific to an ExpandableListView provided to the android.view.View.OnCreateContextMenuListener#onCreateContextMenu(ContextMenu, View, ContextMenuInfo) callback when a context menu is brought up for this AdapterView.
			 */
			export class ExpandableListContextMenuInfo extends java.lang.Object implements android.view.ContextMenu.IContextMenuInfo {
				constructor(targetView: android.view.View, packedPosition: number, id: number);
				/**
				 * The view for which the context menu is being displayed. This will be one of the children Views of this ExpandableListView.
				 */
				targetView: android.view.View;
				/**
				 * The packed position in the list represented by the adapter for which the context menu is being displayed. Use the methods ExpandableListView#getPackedPositionType, ExpandableListView#getPackedPositionChild, and ExpandableListView#getPackedPositionGroup to unpack this.
				 */
				packedPosition: number;
				/**
				 * The ID of the item (group or child) for which the context menu is being displayed.
				 */
				id: number;
				static class: java.lang.Class<android.widget.ExpandableListView.ExpandableListContextMenuInfo>;
			}
		}
		/**
		 * This class encapsulates scrolling with the ability to overshoot the bounds of a scrolling operation. This class is a drop-in replacement for android.widget.Scroller in most cases.
		 */
		export class OverScroller extends java.lang.Object {
			/**
			 * Creates an OverScroller with a viscous fluid scroll interpolator and flywheel.
			 * @param context 
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates an OverScroller with flywheel enabled.
			 * @param context The context of this application.
			 * @param interpolator The scroll interpolator. If null, a default (viscous) interpolator will
			 */
			constructor(context: android.content.Context, interpolator: android.view.animation.IInterpolator);
			/**
			 * Creates an OverScroller with flywheel enabled.
			 * @param context The context of this application.
			 * @param interpolator The scroll interpolator. If null, a default (viscous) interpolator will
			 * @param bounceCoefficientX A value between 0 and 1 that will determine the proportion of the
			 * @param bounceCoefficientY Same as bounceCoefficientX but for the vertical direction. This
			 */
			constructor(context: android.content.Context, interpolator: android.view.animation.IInterpolator, bounceCoefficientX: number, bounceCoefficientY: number);
			/**
			 * Creates an OverScroller.
			 * @param context The context of this application.
			 * @param interpolator The scroll interpolator. If null, a default (viscous) interpolator will
			 * @param bounceCoefficientX A value between 0 and 1 that will determine the proportion of the
			 * @param bounceCoefficientY Same as bounceCoefficientX but for the vertical direction. This
			 * @param flywheel If true, successive fling motions will keep on increasing scroll speed.
			 */
			constructor(context: android.content.Context, interpolator: android.view.animation.IInterpolator, bounceCoefficientX: number, bounceCoefficientY: number, flywheel: boolean);
			static class: java.lang.Class<android.widget.OverScroller>;
			setInterpolator(interpolator: android.view.animation.IInterpolator): void;
			/**
			 * The amount of friction applied to flings. The default value is ViewConfiguration#getScrollFriction.
			 * @param friction A scalar dimension-less value representing the coefficient of
			 */
			public setFriction(friction: number): void;
			public isFinished(): boolean;
			/**
			 * Force the finished field to a particular value. Contrary to #abortAnimation(), forcing the animation to finished does NOT cause the scroller to move to the final x and y position.
			 * @param finished The new finished value.
			 */
			public forceFinished(finished: boolean): void;
			/**
			 * Returns the current X offset in the scroll.
			 */
			public getCurrX(): number;
			/**
			 * Returns the current Y offset in the scroll.
			 */
			public getCurrY(): number;
			/**
			 * Returns the absolute value of the current velocity.
			 */
			public getCurrVelocity(): number;
			/**
			 * Returns the start X offset in the scroll.
			 */
			public getStartX(): number;
			/**
			 * Returns the start Y offset in the scroll.
			 */
			public getStartY(): number;
			/**
			 * Returns where the scroll will end. Valid only for "fling" scrolls.
			 */
			public getFinalX(): number;
			/**
			 * Returns where the scroll will end. Valid only for "fling" scrolls.
			 */
			public getFinalY(): number;
			/**
			 * Call this when you want to know the new location. If it returns true, the animation is not yet finished.
			 */
			public computeScrollOffset(): boolean;
			/**
			 * Start scrolling by providing a starting point and the distance to travel. The scroll will use the default value of 250 milliseconds for the duration.
			 * @param startX Starting horizontal scroll offset in pixels. Positive
			 * @param startY Starting vertical scroll offset in pixels. Positive numbers
			 * @param dx Horizontal distance to travel. Positive numbers will scroll the
			 * @param dy Vertical distance to travel. Positive numbers will scroll the
			 */
			public startScroll(startX: number, startY: number, dx: number, dy: number): void;
			/**
			 * Start scrolling by providing a starting point and the distance to travel.
			 * @param startX Starting horizontal scroll offset in pixels. Positive
			 * @param startY Starting vertical scroll offset in pixels. Positive numbers
			 * @param dx Horizontal distance to travel. Positive numbers will scroll the
			 * @param dy Vertical distance to travel. Positive numbers will scroll the
			 * @param duration Duration of the scroll in milliseconds.
			 */
			public startScroll(startX: number, startY: number, dx: number, dy: number, duration: number): void;
			/**
			 * Call this when you want to 'spring back' into a valid coordinate range.
			 * @param startX Starting X coordinate
			 * @param startY Starting Y coordinate
			 * @param minX Minimum valid X value
			 * @param maxX Maximum valid X value
			 * @param minY Minimum valid Y value
			 * @param maxY Minimum valid Y value
			 */
			public springBack(startX: number, startY: number, minX: number, maxX: number, minY: number, maxY: number): boolean;
			public fling(startX: number, startY: number, velocityX: number, velocityY: number, minX: number, maxX: number, minY: number, maxY: number): void;
			/**
			 * Start scrolling based on a fling gesture. The distance traveled will depend on the initial velocity of the fling.
			 * @param startX Starting point of the scroll (X)
			 * @param startY Starting point of the scroll (Y)
			 * @param velocityX Initial velocity of the fling (X) measured in pixels per
			 * @param velocityY Initial velocity of the fling (Y) measured in pixels per
			 * @param minX Minimum X value. The scroller will not scroll past this point
			 * @param maxX Maximum X value. The scroller will not scroll past this point
			 * @param minY Minimum Y value. The scroller will not scroll past this point
			 * @param maxY Maximum Y value. The scroller will not scroll past this point
			 * @param overX Overfling range. If > 0, horizontal overfling in either
			 * @param overY Overfling range. If > 0, vertical overfling in either
			 */
			public fling(startX: number, startY: number, velocityX: number, velocityY: number, minX: number, maxX: number, minY: number, maxY: number, overX: number, overY: number): void;
			/**
			 * Notify the scroller that we've reached a horizontal boundary. Normally the information to handle this will already be known when the animation is started, such as in a call to one of the fling functions. However there are cases where this cannot be known in advance. This function will transition the current motion and animate from startX to finalX as appropriate.
			 * @param startX Starting/current X position
			 * @param finalX Desired final X position
			 * @param overX Magnitude of overscroll allowed. This should be the maximum
			 */
			public notifyHorizontalEdgeReached(startX: number, finalX: number, overX: number): void;
			/**
			 * Notify the scroller that we've reached a vertical boundary. Normally the information to handle this will already be known when the animation is started, such as in a call to one of the fling functions. However there are cases where this cannot be known in advance. This function will animate a parabolic motion from startY to finalY.
			 * @param startY Starting/current Y position
			 * @param finalY Desired final Y position
			 * @param overY Magnitude of overscroll allowed. This should be the maximum
			 */
			public notifyVerticalEdgeReached(startY: number, finalY: number, overY: number): void;
			/**
			 * Returns whether the current Scroller is currently returning to a valid position. Valid bounds were provided by the #fling(int, int, int, int, int, int, int, int, int, int) method.
			 */
			public isOverScrolled(): boolean;
			/**
			 * Stops the animation. Contrary to #forceFinished(boolean), aborting the animating causes the scroller to move to the final x and y positions.
			 */
			public abortAnimation(): void;
		}
		export module OverScroller {
			export class SplineOverScroller extends java.lang.Object {
				static class: java.lang.Class<android.widget.OverScroller.SplineOverScroller>;
				setFriction(friction: number): void;
				updateScroll(q: number): void;
				startScroll(start: number, distance: number, duration: number): void;
				finish(): void;
				setFinalPosition(position: number): void;
				extendDuration(extend: number): void;
				springback(start: number, min: number, max: number): boolean;
				fling(start: number, velocity: number, min: number, max: number, over: number): void;
				notifyEdgeReached(start: number, end: number, over: number): void;
				continueWhenFinished(): boolean;
				update(): boolean;
			}
		}
		export class TextViewPerformanceTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.widget.TextViewPerformanceTest>;
			PerformanceTextView: {
	new (context: android.content.Context): android.widget.TextViewPerformanceTest.PerformanceTextView;
};
			PerformanceLabelView: {
	new (context: android.content.Context): android.widget.TextViewPerformanceTest.PerformanceLabelView;
};
			protected setUp(): void;
			public testDrawTextViewLine(): void;
			public testSpan(): void;
			public testCanvasDrawText(): void;
			public testLabelViewDraw(): void;
		}
		export module TextViewPerformanceTest {
			export class PerformanceTextView extends android.widget.TextView {
				static class: java.lang.Class<android.widget.TextViewPerformanceTest.PerformanceTextView>;
				myDraw(c: android.graphics.Canvas): void;
				mySetFrame(w: number, h: number): void;
			}
			export class PerformanceLabelView extends android.widget.LabelView {
				static class: java.lang.Class<android.widget.TextViewPerformanceTest.PerformanceLabelView>;
				myDraw(c: android.graphics.Canvas): void;
				mySetFrame(w: number, h: number): void;
			}
		}
		/**
		 * This class is a calendar widget for displaying and selecting dates. The range of dates supported by this calendar is configurable. A user can select a date by taping on it and can scroll and fling the calendar to a desired date.
		 */
		export class CalendarView extends android.widget.FrameLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.CalendarView>;
			WeekView: {
	new (context: android.content.Context): android.widget.CalendarView.WeekView;
};
			WeeksAdapter: {
	new (context: android.content.Context): android.widget.CalendarView.WeeksAdapter;
};
			/**
			 * Sets the number of weeks to be shown.
			 * @param count The shown week count.
			 */
			public setShownWeekCount(count: number): void;
			/**
			 * Gets the number of weeks to be shown.
			 */
			public getShownWeekCount(): number;
			/**
			 * Sets the background color for the selected week.
			 * @param color The week background color.
			 */
			public setSelectedWeekBackgroundColor(color: number): void;
			/**
			 * Gets the background color for the selected week.
			 */
			public getSelectedWeekBackgroundColor(): number;
			/**
			 * Sets the color for the dates of the focused month.
			 * @param color The focused month date color.
			 */
			public setFocusedMonthDateColor(color: number): void;
			/**
			 * Gets the color for the dates in the focused month.
			 */
			public getFocusedMonthDateColor(): number;
			/**
			 * Sets the color for the dates of a not focused month.
			 * @param color A not focused month date color.
			 */
			public setUnfocusedMonthDateColor(color: number): void;
			/**
			 * Gets the color for the dates in a not focused month.
			 */
			public getUnfocusedMonthDateColor(): number;
			/**
			 * Sets the color for the week numbers.
			 * @param color The week number color.
			 */
			public setWeekNumberColor(color: number): void;
			/**
			 * Gets the color for the week numbers.
			 */
			public getWeekNumberColor(): number;
			/**
			 * Sets the color for the separator line between weeks.
			 * @param color The week separator color.
			 */
			public setWeekSeparatorLineColor(color: number): void;
			/**
			 * Gets the color for the separator line between weeks.
			 */
			public getWeekSeparatorLineColor(): number;
			/**
			 * Sets the drawable for the vertical bar shown at the beginning and at the end of the selected date.
			 * @param resourceId The vertical bar drawable resource id.
			 */
			public setSelectedDateVerticalBar(resourceId: number): void;
			/**
			 * Sets the drawable for the vertical bar shown at the beginning and at the end of the selected date.
			 * @param drawable The vertical bar drawable.
			 */
			public setSelectedDateVerticalBar(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Gets the drawable for the vertical bar shown at the beginning and at the end of the selected date.
			 */
			public getSelectedDateVerticalBar(): android.graphics.drawable.Drawable;
			/**
			 * Sets the text appearance for the week day abbreviation of the calendar header.
			 * @param resourceId The text appearance resource id.
			 */
			public setWeekDayTextAppearance(resourceId: number): void;
			/**
			 * Gets the text appearance for the week day abbreviation of the calendar header.
			 */
			public getWeekDayTextAppearance(): number;
			/**
			 * Sets the text appearance for the calendar dates.
			 * @param resourceId The text appearance resource id.
			 */
			public setDateTextAppearance(resourceId: number): void;
			/**
			 * Gets the text appearance for the calendar dates.
			 */
			public getDateTextAppearance(): number;
			public setEnabled(enabled: boolean): void;
			public isEnabled(): boolean;
			protected onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Gets the minimal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 */
			public getMinDate(): any;
			/**
			 * Sets the minimal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 * @param minDate The minimal supported date.
			 */
			public setMinDate(minDate: number): void;
			/**
			 * Gets the maximal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 */
			public getMaxDate(): any;
			/**
			 * Sets the maximal date supported by this CalendarView in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 * @param maxDate The maximal supported date.
			 */
			public setMaxDate(maxDate: number): void;
			/**
			 * Sets whether to show the week number.
			 * @param showWeekNumber True to show the week number.
			 */
			public setShowWeekNumber(showWeekNumber: boolean): void;
			/**
			 * Gets whether to show the week number.
			 */
			public getShowWeekNumber(): boolean;
			/**
			 * Gets the first day of week.
			 */
			public getFirstDayOfWeek(): number;
			/**
			 * Sets the first day of week.
			 * @param firstDayOfWeek The first day of the week conforming to the
			 */
			public setFirstDayOfWeek(firstDayOfWeek: number): void;
			/**
			 * Sets the listener to be notified upon selected date change.
			 * @param listener The listener to be notified.
			 */
			public setOnDateChangeListener(listener: android.widget.CalendarView.IOnDateChangeListener): void;
			/**
			 * Gets the selected date in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 */
			public getDate(): any;
			/**
			 * Sets the selected date in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 * @param date The selected date.
			 */
			public setDate(date: number): void;
			/**
			 * Sets the selected date in milliseconds since January 1, 1970 00:00:00 in TimeZone#getDefault() time zone.
			 * @param date The date.
			 * @param animate Whether to animate the scroll to the current date.
			 * @param center Whether to center the current date even if it is already visible.
			 */
			public setDate(date: number, animate: boolean, center: boolean): void;
		}
		export module CalendarView {
			/**
			 * The callback used to indicate the user changes the date.
			 */
			interface IOnDateChangeListener {
				/**
				 * Called upon change of the selected day.
				 * @param view The view associated with this listener.
				 * @param year The year that was set.
				 * @param month The month that was set [0-11].
				 * @param dayOfMonth The day of the month that was set.
				 */
				onSelectedDayChange(view: android.widget.CalendarView, year: number, month: number, dayOfMonth: number): void;
			}
			/**
			 * Command responsible for acting upon scroll state changes.
			 */
			export class ScrollStateRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.widget.CalendarView.ScrollStateRunnable>;
				/**
				 * Sets up the runnable with a short delay in case the scroll state immediately changes again.
				 * @param view The list view that changed state
				 * @param scrollState The new state it changed to
				 */
				public doScrollStateChange(view: android.widget.AbsListView, scrollState: number): void;
				public run(): void;
			}
			export class WeekView extends android.view.View {
				static class: java.lang.Class<android.widget.CalendarView.WeekView>;
				/**
				 * Initializes this week view.
				 * @param weekNumber The number of the week this view represents. The
				 * @param selectedWeekDay The selected day of the week from 0 to 6, -1 if no
				 * @param focusedMonth The month that is currently in focus i.e.
				 */
				public init(weekNumber: number, selectedWeekDay: number, focusedMonth: number): void;
				/**
				 * Returns the month of the first day in this week.
				 */
				public getMonthOfFirstWeekDay(): number;
				/**
				 * Returns the month of the last day in this week
				 */
				public getMonthOfLastWeekDay(): number;
				/**
				 * Returns the first day in this view.
				 */
				public getFirstDay(): java.util.Calendar;
				/**
				 * Calculates the day that the given x position is in, accounting for week number.
				 * @param x The x position of the touch event.
				 * @param outCalendar 
				 */
				public getDayFromLocation(x: number, outCalendar: java.util.Calendar): boolean;
				protected onDraw(canvas: android.graphics.Canvas): void;
				protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
				protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			}
			export class WeeksAdapter extends android.widget.BaseAdapter implements android.view.View.IOnTouchListener {
				static class: java.lang.Class<android.widget.CalendarView.WeeksAdapter>;
				/**
				 * Updates the selected day and related parameters.
				 * @param selectedDay The time to highlight
				 */
				public setSelectedDay(selectedDay: java.util.Calendar): void;
				public getSelectedDay(): java.util.Calendar;
				public getCount(): number;
				public getItem(position: number): any;
				public getItemId(position: number): any;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				/**
				 * Changes which month is in focus and updates the view.
				 * @param month The month to show as in focus [0-11]
				 */
				public setFocusMonth(month: number): void;
				public onTouch(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
			export module WeeksAdapter {
				/**
				 * This is here so we can identify single tap events and set the selected day correctly
				 */
				export class CalendarGestureListener extends android.view.GestureDetector.SimpleOnGestureListener {
					static class: java.lang.Class<android.widget.CalendarView.WeeksAdapter.CalendarGestureListener>;
					public onSingleTapUp(e: android.view.MotionEvent): boolean;
				}
			}
			/**
			 * The callback used to indicate the user changes the date.
			 */
			export class OnDateChangeListener implements android.widget.CalendarView.IOnDateChangeListener {
				constructor(implementation: android.widget.CalendarView.IOnDateChangeListener);
				/**
				 * Called upon change of the selected day.
				 * @param view The view associated with this listener.
				 * @param year The year that was set.
				 * @param month The month that was set [0-11].
				 * @param dayOfMonth The day of the month that was set.
				 */
				public onSelectedDayChange(view: android.widget.CalendarView, year: number, month: number, dayOfMonth: number): void;
			}
		}
		/**
		 * A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch the thumb and drag left or right to set the current progress level or use the arrow keys. Placing focusable widgets to the left or right of a SeekBar is discouraged.
		 */
		export class SeekBar extends android.widget.AbsSeekBar {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.SeekBar>;
			onProgressRefresh(scale: number, fromUser: boolean): void;
			/**
			 * Sets a listener to receive notifications of changes to the SeekBar's progress level. Also provides notifications of when the user starts and stops a touch gesture within the SeekBar. 
			 * @param l The seek bar notification listener
			 */
			public setOnSeekBarChangeListener(l: android.widget.SeekBar.IOnSeekBarChangeListener): void;
			onStartTrackingTouch(): void;
			onStopTrackingTouch(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module SeekBar {
			/**
			 * A callback that notifies clients when the progress level has been changed. This includes changes that were initiated by the user through a touch gesture or arrow key/trackball as well as changes that were initiated programmatically.
			 */
			interface IOnSeekBarChangeListener {
				/**
				 * Notification that the progress level has changed. Clients can use the fromUser parameter to distinguish user-initiated changes from those that occurred programmatically. 
				 * @param seekBar The SeekBar whose progress has changed
				 * @param progress The current progress level. This will be in the range 0..max where max
				 * @param fromUser True if the progress change was initiated by the user.
				 */
				onProgressChanged(seekBar: android.widget.SeekBar, progress: number, fromUser: boolean): void;
				/**
				 * Notification that the user has started a touch gesture. Clients may want to use this to disable advancing the seekbar.
				 * @param seekBar The SeekBar in which the touch gesture began
				 */
				onStartTrackingTouch(seekBar: android.widget.SeekBar): void;
				/**
				 * Notification that the user has finished a touch gesture. Clients may want to use this to re-enable advancing the seekbar.
				 * @param seekBar The SeekBar in which the touch gesture began
				 */
				onStopTrackingTouch(seekBar: android.widget.SeekBar): void;
			}
			/**
			 * A callback that notifies clients when the progress level has been changed. This includes changes that were initiated by the user through a touch gesture or arrow key/trackball as well as changes that were initiated programmatically.
			 */
			export class OnSeekBarChangeListener implements android.widget.SeekBar.IOnSeekBarChangeListener {
				constructor(implementation: android.widget.SeekBar.IOnSeekBarChangeListener);
				/**
				 * Notification that the progress level has changed. Clients can use the fromUser parameter to distinguish user-initiated changes from those that occurred programmatically. 
				 * @param seekBar The SeekBar whose progress has changed
				 * @param progress The current progress level. This will be in the range 0..max where max
				 * @param fromUser True if the progress change was initiated by the user.
				 */
				public onProgressChanged(seekBar: android.widget.SeekBar, progress: number, fromUser: boolean): void;
				/**
				 * Notification that the user has started a touch gesture. Clients may want to use this to disable advancing the seekbar.
				 * @param seekBar The SeekBar in which the touch gesture began
				 */
				public onStartTrackingTouch(seekBar: android.widget.SeekBar): void;
				/**
				 * Notification that the user has finished a touch gesture. Clients may want to use this to re-enable advancing the seekbar.
				 * @param seekBar The SeekBar in which the touch gesture began
				 */
				public onStopTrackingTouch(seekBar: android.widget.SeekBar): void;
			}
		}
		export class RadioGroupActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.widget.RadioGroupActivity>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
		}
		/**
		 * A RatingBar is an extension of SeekBar and ProgressBar that shows a rating in stars. The user can touch/drag or use arrow keys to set the rating when using the default size RatingBar. The smaller RatingBar style ( android.R.attr#ratingBarStyleSmall) and the larger indicator-only style (android.R.attr#ratingBarStyleIndicator) do not support user interaction and should only be used as indicators.
		 */
		export class RatingBar extends android.widget.AbsSeekBar {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.widget.RatingBar>;
			/**
			 * Sets the listener to be called when the rating changes. 
			 * @param listener The listener.
			 */
			public setOnRatingBarChangeListener(listener: android.widget.RatingBar.IOnRatingBarChangeListener): void;
			public getOnRatingBarChangeListener(): android.widget.RatingBar.IOnRatingBarChangeListener;
			/**
			 * Whether this rating bar should only be an indicator (thus non-changeable by the user). 
			 * @param isIndicator Whether it should be an indicator.
			 */
			public setIsIndicator(isIndicator: boolean): void;
			public isIndicator(): boolean;
			/**
			 * Sets the number of stars to show. In order for these to be shown properly, it is recommended the layout width of this widget be wrap content. 
			 * @param numStars The number of stars.
			 */
			public setNumStars(numStars: number): void;
			/**
			 * Returns the number of stars shown.
			 */
			public getNumStars(): number;
			/**
			 * Sets the rating (the number of stars filled). 
			 * @param rating The rating to set.
			 */
			public setRating(rating: number): void;
			/**
			 * Gets the current rating (number of stars filled). 
			 */
			public getRating(): number;
			/**
			 * Sets the step size (granularity) of this rating bar. 
			 * @param stepSize The step size of this rating bar. For example, if
			 */
			public setStepSize(stepSize: number): void;
			/**
			 * Gets the step size of this rating bar. 
			 */
			public getStepSize(): number;
			getDrawableShape(): android.graphics.drawable.shapes.Shape;
			onProgressRefresh(scale: number, fromUser: boolean): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			onStartTrackingTouch(): void;
			onStopTrackingTouch(): void;
			onKeyChange(): void;
			dispatchRatingChange(fromUser: boolean): void;
			public setMax(max: number): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module RatingBar {
			/**
			 * A callback that notifies clients when the rating has been changed. This includes changes that were initiated by the user through a touch gesture or arrow key/trackball as well as changes that were initiated programmatically.
			 */
			interface IOnRatingBarChangeListener {
				/**
				 * Notification that the rating has changed. Clients can use the fromUser parameter to distinguish user-initiated changes from those that occurred programmatically. This will not be called continuously while the user is dragging, only when the user finalizes a rating by lifting the touch. 
				 * @param ratingBar The RatingBar whose rating has changed.
				 * @param rating The current rating. This will be in the range
				 * @param fromUser True if the rating change was initiated by a user's
				 */
				onRatingChanged(ratingBar: android.widget.RatingBar, rating: number, fromUser: boolean): void;
			}
			/**
			 * A callback that notifies clients when the rating has been changed. This includes changes that were initiated by the user through a touch gesture or arrow key/trackball as well as changes that were initiated programmatically.
			 */
			export class OnRatingBarChangeListener implements android.widget.RatingBar.IOnRatingBarChangeListener {
				constructor(implementation: android.widget.RatingBar.IOnRatingBarChangeListener);
				/**
				 * Notification that the rating has changed. Clients can use the fromUser parameter to distinguish user-initiated changes from those that occurred programmatically. This will not be called continuously while the user is dragging, only when the user finalizes a rating by lifting the touch. 
				 * @param ratingBar The RatingBar whose rating has changed.
				 * @param rating The current rating. This will be in the range
				 * @param fromUser True if the rating change was initiated by a user's
				 */
				public onRatingChanged(ratingBar: android.widget.RatingBar, rating: number, fromUser: boolean): void;
			}
		}
		/**
		 * A BaseAdapter that provides data/Views in an expandable list (offers features such as collapsing/expanding groups containing children). By itself, this adapter has no data and is a connector to a ExpandableListAdapter which provides the data.
		 */
		export class ExpandableListConnector extends android.widget.BaseAdapter implements android.widget.IFilterable {
			/**
			 * Constructs the connector
			 */
			constructor(expandableListAdapter: android.widget.IExpandableListAdapter);
			static class: java.lang.Class<android.widget.ExpandableListConnector>;
			/**
			 * Point to the ExpandableListAdapter that will give us data/Views 
			 * @param expandableListAdapter the adapter that supplies us with data/Views
			 */
			public setExpandableListAdapter(expandableListAdapter: android.widget.IExpandableListAdapter): void;
			/**
			 * Translates a flat list position to either a) group pos if the specified flat list position corresponds to a group, or b) child pos if it corresponds to a child. Performs a binary search on the expanded groups list to find the flat list pos if it is an exp group, otherwise finds where the flat list pos fits in between the exp groups. 
			 * @param flPos the flat list position to be translated
			 */
			getUnflattenedPos(flPos: number): android.widget.ExpandableListConnector.PositionMetadata;
			/**
			 * Translates either a group pos or a child pos (+ group it belongs to) to a flat list position. If searching for a child and its group is not expanded, this will return null since the child isn't being shown in the ListView, and hence it has no position. 
			 * @param pos a {@link ExpandableListPosition} representing either a group position
			 */
			getFlattenedPos(pos: android.widget.ExpandableListPosition): android.widget.ExpandableListConnector.PositionMetadata;
			public areAllItemsEnabled(): boolean;
			public isEnabled(flatListPos: number): boolean;
			public getCount(): number;
			public getItem(flatListPos: number): any;
			public getItemId(flatListPos: number): any;
			public getView(flatListPos: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			public getItemViewType(flatListPos: number): number;
			public getViewTypeCount(): number;
			public hasStableIds(): boolean;
			/**
			 * Collapse a group in the grouped list view 
			 * @param groupPos position of the group to collapse
			 */
			collapseGroup(groupPos: number): boolean;
			collapseGroup(posMetadata: android.widget.ExpandableListConnector.PositionMetadata): boolean;
			/**
			 * Expand a group in the grouped list view
			 * @param groupPos the group to be expanded
			 */
			expandGroup(groupPos: number): boolean;
			expandGroup(posMetadata: android.widget.ExpandableListConnector.PositionMetadata): boolean;
			/**
			 * Whether the given group is currently expanded.
			 * @param groupPosition The group to check.
			 */
			public isGroupExpanded(groupPosition: number): boolean;
			/**
			 * Set the maximum number of groups that can be expanded at any given time
			 */
			public setMaxExpGroupCount(maxExpGroupCount: number): void;
			getAdapter(): android.widget.IExpandableListAdapter;
			public getFilter(): android.widget.Filter;
			getExpandedGroupMetadataList(): java.util.ArrayList<android.widget.ExpandableListConnector.GroupMetadata>;
			setExpandedGroupMetadataList(expandedGroupMetadataList: java.util.ArrayList<android.widget.ExpandableListConnector.GroupMetadata>): void;
			public isEmpty(): boolean;
			/**
			 * Searches the expandable list adapter for a group position matching the given group ID. The search starts at the given seed position and then alternates between moving up and moving down until 1) we find the right position, or 2) we run out of time, or 3) we have looked at every position 
			 */
			findGroupPosition(groupIdToMatch: number, seedGroupPosition: number): number;
		}
		export module ExpandableListConnector {
			/**
			 * Data type that contains an expandable list position (can refer to either a group or child) and some extra information regarding referred item (such as where to insert into the flat list, etc.)
			 */
			export class PositionMetadata extends java.lang.Object {
				/**
				 * Data type to hold the position and its type (child/group)
				 */
				position: android.widget.ExpandableListPosition;
				/**
				 * Link back to the expanded GroupMetadata for this group. Useful for removing the group from the list of expanded groups inside the connector when we collapse the group, and also as a check to see if the group was expanded or collapsed (this will be null if the group is collapsed since we don't keep that group's metadata)
				 */
				groupMetadata: android.widget.ExpandableListConnector.GroupMetadata;
				/**
				 * For groups that are collapsed, we use this as the index (in mExpGroupMetadataList) to insert this group when we are expanding this group.
				 */
				groupInsertIndex: number;
				static class: java.lang.Class<android.widget.ExpandableListConnector.PositionMetadata>;
				static obtain(flatListPos: number, type: number, groupPos: number, childPos: number, groupMetadata: android.widget.ExpandableListConnector.GroupMetadata, groupInsertIndex: number): android.widget.ExpandableListConnector.PositionMetadata;
				public recycle(): void;
				/**
				 * Checks whether the group referred to in this object is expanded, or not (at the time this object was created) 
				 */
				public isExpanded(): boolean;
			}
			/**
			 * Metadata about an expanded group to help convert from a flat list position to either a) group position for groups, or b) child position for children
			 */
			export class GroupMetadata extends java.lang.Object implements android.os.IParcelable {
				static CREATOR: android.os.Parcelable.ICreator<android.widget.ExpandableListConnector.GroupMetadata>;
				static class: java.lang.Class<android.widget.ExpandableListConnector.GroupMetadata>;
				static obtain(flPos: number, lastChildFlPos: number, gPos: number, gId: number): android.widget.ExpandableListConnector.GroupMetadata;
				public compareTo(another: android.widget.ExpandableListConnector.GroupMetadata): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			export class MyDataSetObserver extends android.database.DataSetObserver {
				static class: java.lang.Class<android.widget.ExpandableListConnector.MyDataSetObserver>;
				public onChanged(): void;
				public onInvalidated(): void;
			}
		}
		export module gridview {
			/**
			 * A grid with vertical spacing between rows
			 */
			export class GridSingleColumn extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSingleColumn>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			/**
			 * Basic stacking from bottom scenario, nothing fancy. Items do fill the screen.
			 */
			export class GridSetSelectionStackFromBottomMany extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionStackFromBottomMany>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			/**
			 * Basic stacking from top scenario, nothing fancy. Items do not fill the screen.
			 */
			export class GridSetSelection extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelection>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			export class GridSimple extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSimple>;
				protected init(params: android.util.GridScenario.Params): void;
				protected onCreate(icicle: android.os.Bundle): void;
				protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			}
			/**
			 * Exercises change notification in a list
			 */
			export class GridScrollListener extends android.app.Activity implements android.widget.AbsListView.IOnScrollListener {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridScrollListener>;
				public onCreate(icicle: android.os.Bundle): void;
				public getGridView(): android.widget.GridView;
				public onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
				public onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
			}
			export class GridSingleColumnTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridSingleColumn> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSingleColumnTest>;
				protected setUp(): void;
				public testPreconditions(): void;
			}
			export class GridStackFromBottomTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridStackFromBottom> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridStackFromBottomTest>;
				protected setUp(): void;
				public testPreconditions(): void;
			}
			/**
			 * Basic bottom stacking from bottom scenario, nothing fancy. Items do not fill the screen
			 */
			export class GridStackFromBottom extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridStackFromBottom>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			export class GridSetSelectionManyTest extends android.widget.gridview.GridSetSelectionBaseTest<android.widget.gridview.GridSetSelectionMany> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionManyTest>;
			}
			export class GridPaddingTest extends android.test.ActivityInstrumentationTestCase2<android.widget.gridview.GridPadding> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridPaddingTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testResurrectSelection(): void;
			}
			/**
			 * Basic stacking from top scenario, nothing fancy. Items do fill the screen.
			 */
			export class GridSetSelectionMany extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionMany>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			/**
			 * Basic bottom stacking from bottom scenario, nothing fancy. The grid items do not fit on the screen (to exercise scrolling.)
			 */
			export class GridStackFromBottomMany extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridStackFromBottomMany>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			export class GridSetSelectionStackFromBottomManyTest extends android.widget.gridview.GridSetSelectionBaseTest<android.widget.gridview.GridSetSelectionStackFromBottomMany> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionStackFromBottomManyTest>;
			}
			/**
			 * Exercises a grid with padding
			 */
			export class GridPadding extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridPadding>;
				public onCreate(icicle: android.os.Bundle): void;
				public getGridView(): android.widget.GridView;
			}
			/**
			 * A grid with vertical spacing between rows
			 */
			export class GridDelete extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridDelete>;
				DeleteAdapter: {
	new (initialNumItems: number): android.widget.gridview.GridDelete.DeleteAdapter;
};
				protected init(params: android.util.GridScenario.Params): void;
				protected createAdapter(): android.widget.IListAdapter;
				public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			}
			export module GridDelete {
				export class DeleteAdapter extends android.widget.BaseAdapter {
					static class: java.lang.Class<android.widget.gridview.GridDelete.DeleteAdapter>;
					public deletePosition(selectedItemPosition: number): void;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				}
			}
			/**
			 * Exercises change notification in a list
			 */
			export class GridThrasher extends android.app.Activity implements android.widget.AdapterView.IOnItemSelectedListener {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridThrasher>;
				ThrashListAdapter: {
	new (context: android.content.Context): android.widget.gridview.GridThrasher.ThrashListAdapter;
};
				public onCreate(icicle: android.os.Bundle): void;
				public onItemSelected(parent: android.widget.AdapterView<any>, v: android.view.View, position: number, id: number): void;
				public onNothingSelected(parent: android.widget.AdapterView<any>): void;
			}
			export module GridThrasher {
				export class ThrashListAdapter extends android.widget.BaseAdapter {
					static class: java.lang.Class<android.widget.gridview.GridThrasher.ThrashListAdapter>;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
					public bumpVersion(): void;
				}
			}
			export class GridInVerticalTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridInVertical> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridInVerticalTest>;
				protected setUp(): void;
				public testPreconditions(): void;
			}
			export class GridSetSelectionBaseTest<T extends android.util.GridScenario> extends android.test.ActivityInstrumentationTestCase<T> {
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionBaseTest<any>>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testSetSelectionToTheEnd(): void;
				public testSetSelectionToMiddle(): void;
				public testSetSelectionToTheTop(): void;
			}
			export class GridSetSelectionTest extends android.widget.gridview.GridSetSelectionBaseTest<android.widget.gridview.GridSetSelection> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionTest>;
			}
			export module touch {
				export class GridTouchVerticalSpacingStackFromBottomTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridVerticalSpacingStackFromBottom> {
					constructor();
					static class: java.lang.Class<android.widget.gridview.touch.GridTouchVerticalSpacingStackFromBottomTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testNoScroll(): void;
					public testShortScroll(): void;
					public testLongScroll(): void;
					public testManyScrolls(): void;
				}
				/**
				 * Tests setting the selection in touch mode
				 */
				export class GridTouchSetSelectionTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridSimple> {
					constructor();
					static class: java.lang.Class<android.widget.gridview.touch.GridTouchSetSelectionTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testSetSelection(): void;
				}
				export class GridTouchVerticalSpacingTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridVerticalSpacing> {
					constructor();
					static class: java.lang.Class<android.widget.gridview.touch.GridTouchVerticalSpacingTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testNoScroll(): void;
					public testShortScroll(): void;
					public testLongScroll(): void;
					public testManyScrolls(): void;
				}
				export class GridTouchStackFromBottomTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridStackFromBottom> {
					constructor();
					static class: java.lang.Class<android.widget.gridview.touch.GridTouchStackFromBottomTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testPushUp(): void;
					public testPullDown(): void;
					public testPushUpFast(): void;
					public testPullDownFast(): void;
				}
				export class GridTouchStackFromBottomManyTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridStackFromBottomMany> {
					constructor();
					static class: java.lang.Class<android.widget.gridview.touch.GridTouchStackFromBottomManyTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testScrollToTop(): void;
					public testScrollToBottom(): void;
				}
			}
			export class GridInHorizontalTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridInHorizontal> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridInHorizontalTest>;
				protected setUp(): void;
				public testPreconditions(): void;
			}
			/**
			 * Exercises a grid in a horizontal linear layout
			 */
			export class GridInHorizontal extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridInHorizontal>;
				public onCreate(icicle: android.os.Bundle): void;
				public getGridView(): android.widget.GridView;
			}
			export class GridStackFromBottomManyTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridStackFromBottomMany> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridStackFromBottomManyTest>;
				protected setUp(): void;
				public testPreconditions(): void;
			}
			/**
			 * A grid with vertical spacing between rows
			 */
			export class GridVerticalSpacing extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridVerticalSpacing>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			export class GridSetSelectionStackFromBottomTest extends android.widget.gridview.GridSetSelectionBaseTest<android.widget.gridview.GridSetSelectionStackFromBottom> {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionStackFromBottomTest>;
			}
			/**
			 * A grid with vertical spacing between rows that stacks from the bottom
			 */
			export class GridVerticalSpacingStackFromBottom extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridVerticalSpacingStackFromBottom>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			/**
			 * Basic stacking from bottom scenario, nothing fancy. Items do not fill the screen.
			 */
			export class GridSetSelectionStackFromBottom extends android.util.GridScenario {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridSetSelectionStackFromBottom>;
				protected init(params: android.util.GridScenario.Params): void;
			}
			export class GridScrollListenerTest extends android.test.ActivityInstrumentationTestCase<android.widget.gridview.GridScrollListener> implements android.widget.AbsListView.IOnScrollListener {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridScrollListenerTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testKeyScrolling(): void;
				public testTouchScrolling(): void;
				public onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
				public onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
			}
			/**
			 * Exercises a grid in a vertical linear layout
			 */
			export class GridInVertical extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.widget.gridview.GridInVertical>;
				public onCreate(icicle: android.os.Bundle): void;
				public getGridView(): android.widget.GridView;
			}
		}
		export module layout {
			export module linear {
				export class WeightSumTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.WeightSum> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.WeightSumTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testLayout(): void;
				}
				export class LinearLayoutEditTexts extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.LinearLayoutEditTexts>;
					protected onCreate(savedInstanceState: android.os.Bundle): void;
				}
				export class BaselineAlignmentCenterGravityTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.BaselineAlignmentCenterGravity> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.BaselineAlignmentCenterGravityTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testChildrenAligned(): void;
				}
				export class FillInWrapTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.FillInWrap> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.FillInWrapTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testLayout(): void;
				}
				export class HorizontalOrientationVerticalAlignment extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.HorizontalOrientationVerticalAlignment>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class WeightSum extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.WeightSum>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				/**
				 * A special EditText that sets #isFailed() to true as its internal makeNewLayout() method is called with a width lower than 0. This is used to fail the unit test in BaselineAlignmentZeroWidthAndWeightTest.
				 */
				export class ExceptionTextView extends android.widget.EditText {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
					static class: java.lang.Class<android.widget.layout.linear.ExceptionTextView>;
					public isFailed(): boolean;
					protected makeNewLayout(w: number, hintWidth: number, boring: android.text.BoringLayout.Metrics, hintMetrics: android.text.BoringLayout.Metrics, ellipsizedWidth: number, bringIntoView: boolean): void;
				}
				export class BaselineAlignmentZeroWidthAndWeightTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.BaselineAlignmentZeroWidthAndWeight> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.BaselineAlignmentZeroWidthAndWeightTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testComputeTexViewWithoutIllegalArgumentException(): void;
				}
				export class Weight extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.Weight>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class BaselineAlignmentZeroWidthAndWeight extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.BaselineAlignmentZeroWidthAndWeight>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class BaselineAlignmentSpinnerButton extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.HorizontalOrientationVerticalAlignment> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.BaselineAlignmentSpinnerButton>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testChildrenAligned(): void;
				}
				export class BaselineAlignmentCenterGravity extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.BaselineAlignmentCenterGravity>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class LinearLayoutEditTextsTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.LinearLayoutEditTexts> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.LinearLayoutEditTextsTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testLayout(): void;
				}
				/**
				 * One of two simple vertical linear layouts of buttons used to test out the transistion between touch and focus mode.
				 */
				export class LLOfButtons2 extends android.widget.layout.linear.LLOfButtons1 {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.LLOfButtons2>;
				}
				/**
				 * One of two simple vertical linear layouts of buttons used to test out the transistion between touch and focus mode.
				 */
				export class LLOfButtons1 extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.LLOfButtons1>;
					protected onCreate(icicle: android.os.Bundle): void;
					public getLayout(): android.widget.LinearLayout;
					public getFirstButton(): android.widget.Button;
					public buttonClickListenerFired(): boolean;
					public isInTouchMode(): boolean;
				}
				export class LLEditTextThenButton extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.LLEditTextThenButton>;
					protected onCreate(icicle: android.os.Bundle): void;
					public getLayout(): android.widget.LinearLayout;
					public getEditText(): android.widget.EditText;
					public getButton(): android.widget.Button;
				}
				export class FillInWrap extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.FillInWrap>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class BaselineButtons extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.BaselineButtons>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class WeightTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.Weight> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.WeightTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testLayout(): void;
				}
				export class LLOfTwoFocusableInTouchMode extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.LLOfTwoFocusableInTouchMode>;
					protected onCreate(savedInstanceState: android.os.Bundle): void;
					public getButton1(): android.view.View;
					public getButton2(): android.view.View;
					public getButton3(): android.view.View;
					public isB1Fired(): boolean;
					public isB2Fired(): boolean;
					public isB3Fired(): boolean;
				}
				export class BaselineButtonsTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.linear.BaselineButtons> {
					constructor();
					static class: java.lang.Class<android.widget.layout.linear.BaselineButtonsTest>;
					protected setUp(): void;
					public testPreconditions(): void;
					public testLayout(): void;
				}
			}
			export module table {
				/**
				 * Exercise table layout with cells spanning.
				 */
				export class CellSpan extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.CellSpan>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				/**
				 * android.widget.layout.table.CellSpan is setup to exercise tables in which cells use spanning.
				 */
				export class CellSpanTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.table.CellSpan> {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.CellSpanTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testSpanThenCell(): void;
					public testCellThenSpan(): void;
					public testSpan(): void;
				}
				/**
				 * android.widget.layout.table.VerticalGravity is setup to exercise tables in which cells use vertical gravity.
				 */
				export class VerticalGravityTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.table.VerticalGravity> {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.VerticalGravityTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testTopGravity(): void;
					public testCenterGravity(): void;
					public testBottomGravity(): void;
				}
				/**
				 * android.widget.layout.table.FixedWidth is setup to exercise tables in which cells use fixed width and height.
				 */
				export class FixedWidthTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.table.FixedWidth> {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.FixedWidthTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testFixedWidth(): void;
					public testFixedHeight(): void;
				}
				/**
				 * android.widget.layout.table.AddColumn is setup to exercise the case of adding row programmatically in a table.
				 */
				export class AddColumnTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.table.AddColumn> {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.AddColumnTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testWidths(): void;
				}
				/**
				 * Exercise table layout with cells using a vertical gravity.
				 */
				export class VerticalGravity extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.VerticalGravity>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				/**
				 * Exercise table layout with cells having a fixed width and height.
				 */
				export class FixedWidth extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.FixedWidth>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				/**
				 * android.widget.layout.table.Weight is setup to exercise tables in which cells use a weight.
				 */
				export class WeightTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.table.Weight> {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.WeightTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testAllCellsFillParent(): void;
				}
				/**
				 * Exercise table layout with cells having a weight.
				 */
				export class Weight extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.Weight>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				/**
				 * Exercise table layout with cells using a horizontal gravity.
				 */
				export class HorizontalGravity extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.HorizontalGravity>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				/**
				 * android.widget.layout.table.HorizontalGravity is setup to exercise tables in which cells use horizontal gravity.
				 */
				export class HorizontalGravityTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.table.HorizontalGravity> {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.HorizontalGravityTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testCenterGravity(): void;
					public testLeftGravity(): void;
					public testRightGravity(): void;
				}
				/**
				 * This test adds an extra row with an extra column in the table.
				 */
				export class AddColumn extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.table.AddColumn>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
			}
			export module frame {
				export class FrameLayoutGravityTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.frame.FrameLayoutGravity> {
					constructor();
					static class: java.lang.Class<android.widget.layout.frame.FrameLayoutGravityTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testLeftTopAligned(): void;
					public testRightTopAligned(): void;
					public testCenterHorizontalTopAligned(): void;
					public testLeftCenterVerticalAligned(): void;
					public testRightCenterVerticalAligned(): void;
					public testCenterAligned(): void;
					public testLeftBottomAligned(): void;
					public testRightBottomAligned(): void;
					public testCenterHorizontalBottomAligned(): void;
				}
				export class FrameLayoutMargin extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.frame.FrameLayoutMargin>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class FrameLayoutGravity extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.widget.layout.frame.FrameLayoutGravity>;
					protected onCreate(icicle: android.os.Bundle): void;
				}
				export class FrameLayoutMarginTest extends android.test.ActivityInstrumentationTestCase<android.widget.layout.frame.FrameLayoutMargin> {
					constructor();
					static class: java.lang.Class<android.widget.layout.frame.FrameLayoutMarginTest>;
					protected setUp(): void;
					public testSetUpConditions(): void;
					public testLeftMarginAligned(): void;
					public testRightMarginAligned(): void;
					public testTopMarginAligned(): void;
					public testBottomMarginAligned(): void;
				}
			}
		}
		/**
		 * A widget that provides a user interface for the user to enter a search query and submit a request to a search provider. Shows a list of query suggestions or results, if available, and allows the user to pick a suggestion or result to launch into.
		 */
		export class SearchView extends android.widget.LinearLayout implements android.view.ICollapsibleActionView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.SearchView>;
			/**
			 * Sets the SearchableInfo for this SearchView. Properties in the SearchableInfo are used to display labels, hints, suggestions, create intents for launching search results screens and controlling other affordances such as a voice button.
			 * @param searchable a SearchableInfo can be retrieved from the SearchManager, for a specific
			 */
			public setSearchableInfo(searchable: android.app.SearchableInfo): void;
			/**
			 * Sets the IME options on the query text field.
			 * @param imeOptions the options to set on the query text field
			 */
			public setImeOptions(imeOptions: number): void;
			/**
			 * Returns the IME options set on the query text field.
			 */
			public getImeOptions(): number;
			/**
			 * Sets the input type on the query text field.
			 * @param inputType the input type to set on the query text field
			 */
			public setInputType(inputType: number): void;
			/**
			 * Returns the input type set on the query text field.
			 */
			public getInputType(): number;
			/**
			 * Sets a listener for user actions within the SearchView.
			 * @param listener the listener object that receives callbacks when the user performs
			 */
			public setOnQueryTextListener(listener: android.widget.SearchView.IOnQueryTextListener): void;
			/**
			 * Sets a listener to inform when the user closes the SearchView.
			 * @param listener the listener to call when the user closes the SearchView.
			 */
			public setOnCloseListener(listener: android.widget.SearchView.IOnCloseListener): void;
			/**
			 * Sets a listener to inform when the focus of the query text field changes.
			 * @param listener the listener to inform of focus changes.
			 */
			public setOnQueryTextFocusChangeListener(listener: android.view.View.IOnFocusChangeListener): void;
			/**
			 * Sets a listener to inform when a suggestion is focused or clicked.
			 * @param listener the listener to inform of suggestion selection events.
			 */
			public setOnSuggestionListener(listener: android.widget.SearchView.IOnSuggestionListener): void;
			/**
			 * Sets a listener to inform when the search button is pressed. This is only relevant when the text field is not visible by default. Calling #setIconified setIconified(false) can also cause this listener to be informed.
			 * @param listener the listener to inform when the search button is clicked or
			 */
			public setOnSearchClickListener(listener: android.view.View.IOnClickListener): void;
			/**
			 * Returns the query string currently in the text field.
			 */
			public getQuery(): string;
			/**
			 * Sets a query string in the text field and optionally submits the query as well.
			 * @param query the query string. This replaces any query text already present in the
			 * @param submit whether to submit the query right now or only update the contents of
			 */
			public setQuery(query: string, submit: boolean): void;
			/**
			 * Sets the hint text to display in the query text field. This overrides any hint specified in the SearchableInfo.
			 * @param hint the hint text to display
			 */
			public setQueryHint(hint: string): void;
			/**
			 * Gets the hint text to display in the query text field.
			 */
			public getQueryHint(): string;
			/**
			 * Sets the default or resting state of the search field. If true, a single search icon is shown by default and expands to show the text field and other buttons when pressed. Also, if the default state is iconified, then it collapses to that state when the close button is pressed. Changes to this property will take effect immediately.
			 * @param iconified whether the search field should be iconified by default
			 */
			public setIconifiedByDefault(iconified: boolean): void;
			/**
			 * Returns the default iconified state of the search field.
			 */
			public isIconfiedByDefault(): boolean;
			/**
			 * Iconifies or expands the SearchView. Any query text is cleared when iconified. This is a temporary state and does not override the default iconified state set by #setIconifiedByDefault(boolean). If the default state is iconified, then a false here will only be valid until the user closes the field. And if the default state is expanded, then a true here will only clear the text field and not close it.
			 * @param iconify a true value will collapse the SearchView to an icon, while a false will
			 */
			public setIconified(iconify: boolean): void;
			/**
			 * Returns the current iconified state of the SearchView.
			 */
			public isIconified(): boolean;
			/**
			 * Enables showing a submit button when the query is non-empty. In cases where the SearchView is being used to filter the contents of the current activity and doesn't launch a separate results activity, then the submit button should be disabled.
			 * @param enabled true to show a submit button for submitting queries, false if a submit
			 */
			public setSubmitButtonEnabled(enabled: boolean): void;
			/**
			 * Returns whether the submit button is enabled when necessary or never displayed.
			 */
			public isSubmitButtonEnabled(): boolean;
			/**
			 * Specifies if a query refinement button should be displayed alongside each suggestion or if it should depend on the flags set in the individual items retrieved from the suggestions provider. Clicking on the query refinement button will replace the text in the query text field with the text from the suggestion. This flag only takes effect if a SearchableInfo has been specified with #setSearchableInfo(SearchableInfo) and not when using a custom adapter.
			 * @param enable true if all items should have a query refinement button, false if only
			 */
			public setQueryRefinementEnabled(enable: boolean): void;
			/**
			 * Returns whether query refinement is enabled for all items or only specific ones.
			 */
			public isQueryRefinementEnabled(): boolean;
			/**
			 * You can set a custom adapter if you wish. Otherwise the default adapter is used to display the suggestions from the suggestions provider associated with the SearchableInfo.
			 */
			public setSuggestionsAdapter(adapter: android.widget.CursorAdapter): void;
			/**
			 * Returns the adapter used for suggestions, if any.
			 */
			public getSuggestionsAdapter(): android.widget.CursorAdapter;
			/**
			 * Makes the view at most this many pixels wide
			 */
			public setMaxWidth(maxpixels: number): void;
			/**
			 * Gets the specified maximum width in pixels, if set. Returns zero if no maximum width was specified.
			 */
			public getMaxWidth(): number;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected onDetachedFromWindow(): void;
			/**
			 * Handles the key down event for dealing with action keys.
			 * @param keyCode This is the keycode of the typed key, and is the same value as
			 * @param event The complete event record for the typed key
			 */
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			onTextFocusChanged(): void;
			public onWindowFocusChanged(hasWindowFocus: boolean): void;
			/**
			 * 
			 */
			public onActionViewCollapsed(): void;
			/**
			 * 
			 */
			public onActionViewExpanded(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public onRtlPropertiesChanged(layoutDirection: number): void;
			static isLandscapeMode(context: android.content.Context): boolean;
		}
		export module SearchView {
			/**
			 * Callbacks for changes to the query text.
			 */
			interface IOnQueryTextListener {
				/**
				 * Called when the user submits the query. This could be due to a key press on the keyboard or due to pressing a submit button. The listener can override the standard behavior by returning true to indicate that it has handled the submit request. Otherwise return false to let the SearchView handle the submission by launching any associated intent.
				 * @param query the query text that is to be submitted
				 */
				onQueryTextSubmit(query: string): boolean;
				/**
				 * Called when the query text is changed by the user.
				 * @param newText the new content of the query text field.
				 */
				onQueryTextChange(newText: string): boolean;
			}
			export class OnCloseListener implements android.widget.SearchView.IOnCloseListener {
				constructor(implementation: android.widget.SearchView.IOnCloseListener);
				/**
				 * The user is attempting to close the SearchView.
				 */
				public onClose(): boolean;
			}
			/**
			 * Callbacks for changes to the query text.
			 */
			export class OnQueryTextListener implements android.widget.SearchView.IOnQueryTextListener {
				constructor(implementation: android.widget.SearchView.IOnQueryTextListener);
				/**
				 * Called when the user submits the query. This could be due to a key press on the keyboard or due to pressing a submit button. The listener can override the standard behavior by returning true to indicate that it has handled the submit request. Otherwise return false to let the SearchView handle the submission by launching any associated intent.
				 * @param query the query text that is to be submitted
				 */
				public onQueryTextSubmit(query: string): boolean;
				/**
				 * Called when the query text is changed by the user.
				 * @param newText the new content of the query text field.
				 */
				public onQueryTextChange(newText: string): boolean;
			}
			interface IOnCloseListener {
				/**
				 * The user is attempting to close the SearchView.
				 */
				onClose(): boolean;
			}
			/**
			 * Callback interface for selection events on suggestions. These callbacks are only relevant when a SearchableInfo has been specified by #setSearchableInfo.
			 */
			export class OnSuggestionListener implements android.widget.SearchView.IOnSuggestionListener {
				constructor(implementation: android.widget.SearchView.IOnSuggestionListener);
				/**
				 * Called when a suggestion was selected by navigating to it.
				 * @param position the absolute position in the list of suggestions.
				 */
				public onSuggestionSelect(position: number): boolean;
				/**
				 * Called when a suggestion was clicked.
				 * @param position the absolute position of the clicked item in the list of suggestions.
				 */
				public onSuggestionClick(position: number): boolean;
			}
			/**
			 * Callback interface for selection events on suggestions. These callbacks are only relevant when a SearchableInfo has been specified by #setSearchableInfo.
			 */
			interface IOnSuggestionListener {
				/**
				 * Called when a suggestion was selected by navigating to it.
				 * @param position the absolute position in the list of suggestions.
				 */
				onSuggestionSelect(position: number): boolean;
				/**
				 * Called when a suggestion was clicked.
				 * @param position the absolute position of the clicked item in the list of suggestions.
				 */
				onSuggestionClick(position: number): boolean;
			}
		}
		/**
		 * Layout container for a view hierarchy that can be scrolled by the user, allowing it to be larger than the physical display. A ScrollView is a FrameLayout, meaning you should place one child in it containing the entire contents to scroll; this child may itself be a layout manager with a complex hierarchy of objects. A child that is often used is a LinearLayout in a vertical orientation, presenting a vertical array of top-level items that the user can scroll through.
		 */
		export class ScrollView extends android.widget.FrameLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.ScrollView>;
			public shouldDelayChildPressedState(): boolean;
			protected getTopFadingEdgeStrength(): number;
			protected getBottomFadingEdgeStrength(): number;
			public getMaxScrollAmount(): number;
			public addView(child: android.view.View): void;
			public addView(child: android.view.View, index: number): void;
			public addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Indicates whether this ScrollView's content is stretched to fill the viewport.
			 */
			public isFillViewport(): boolean;
			/**
			 * Indicates this ScrollView whether it should stretch its content height to fill the viewport or not.
			 * @param fillViewport True to stretch the content's height to the viewport's
			 */
			public setFillViewport(fillViewport: boolean): void;
			public isSmoothScrollingEnabled(): boolean;
			/**
			 * Set whether arrow scrolling will animate its transition.
			 * @param smoothScrollingEnabled whether arrow scrolling will animate its transition
			 */
			public setSmoothScrollingEnabled(smoothScrollingEnabled: boolean): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * You can call this function yourself to have the scroll view perform scrolling from a key event, just as if the event had been dispatched to it by the view hierarchy.
			 * @param event The key event to execute.
			 */
			public executeKeyEvent(event: android.view.KeyEvent): boolean;
			public requestDisallowInterceptTouchEvent(disallowIntercept: boolean): void;
			public onInterceptTouchEvent(ev: android.view.MotionEvent): boolean;
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			protected onOverScrolled(scrollX: number, scrollY: number, clampedX: boolean, clampedY: boolean): void;
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * @param direction the scroll direction: {@link android.view.View#FOCUS_UP}
			 */
			public pageScroll(direction: number): boolean;
			/**
			 * @param direction the scroll direction: {@link android.view.View#FOCUS_UP}
			 */
			public fullScroll(direction: number): boolean;
			/**
			 * Handle scrolling in response to an up or down arrow click.
			 * @param direction The direction corresponding to the arrow key that was
			 */
			public arrowScroll(direction: number): boolean;
			/**
			 * Like View#scrollBy, but scroll smoothly instead of immediately.
			 * @param dx the number of pixels to scroll by on the X axis
			 * @param dy the number of pixels to scroll by on the Y axis
			 */
			public smoothScrollBy(dx: number, dy: number): void;
			/**
			 * Like #scrollTo, but scroll smoothly instead of immediately.
			 * @param x the position where to scroll on the X axis
			 * @param y the position where to scroll on the Y axis
			 */
			public smoothScrollTo(x: number, y: number): void;
			protected computeVerticalScrollRange(): number;
			protected computeVerticalScrollOffset(): number;
			protected measureChild(child: android.view.View, parentWidthMeasureSpec: number, parentHeightMeasureSpec: number): void;
			protected measureChildWithMargins(child: android.view.View, parentWidthMeasureSpec: number, widthUsed: number, parentHeightMeasureSpec: number, heightUsed: number): void;
			public computeScroll(): void;
			/**
			 * Compute the amount to scroll in the Y direction in order to get a rectangle completely on the screen (or, if taller than the screen, at least the first screen size chunk of it).
			 * @param rect The rect.
			 */
			protected computeScrollDeltaToGetChildRectOnScreen(rect: android.graphics.Rect): number;
			public requestChildFocus(child: android.view.View, focused: android.view.View): void;
			/**
			 * When looking for focus in children of a scroll view, need to be a little more careful not to give focus to something that is scrolled off screen.
			 */
			protected onRequestFocusInDescendants(direction: number, previouslyFocusedRect: android.graphics.Rect): boolean;
			public requestChildRectangleOnScreen(child: android.view.View, rectangle: android.graphics.Rect, immediate: boolean): boolean;
			public requestLayout(): void;
			protected onDetachedFromWindow(): void;
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			/**
			 * Fling the scroll view
			 * @param velocityY The initial velocity in the Y direction. Positive
			 */
			public fling(velocityY: number): void;
			/**
			 * 
			 */
			public scrollTo(x: number, y: number): void;
			public setOverScrollMode(mode: number): void;
			public draw(canvas: android.graphics.Canvas): void;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
		}
		export class Filter extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.widget.Filter>;
			RequestHandler: {
	new (looper: android.os.Looper): android.widget.Filter.RequestHandler;
};
			/**
			 * @param constraint the constraint used to filter the data
			 */
			public filter(constraint: string): void;
			/**
			 * @param constraint the constraint used to filter the data
			 * @param listener a listener notified upon completion of the operation
			 */
			public filter(constraint: string, listener: android.widget.Filter.IFilterListener): void;
			/**
			 * @param constraint the constraint used to filter the data
			 */
			protected performFiltering(constraint: string): android.widget.Filter.FilterResults;
			/**
			 * @param constraint the constraint used to filter the data
			 * @param results the results of the filtering operation
			 */
			protected publishResults(constraint: string, results: android.widget.Filter.FilterResults): void;
			/**
			 * @param resultValue the value to convert to a CharSequence
			 */
			public convertResultToString(resultValue: any): string;
		}
		export module Filter {
			export class FilterResults extends java.lang.Object {
				constructor();
				values: any;
				count: number;
				static class: java.lang.Class<android.widget.Filter.FilterResults>;
			}
			export class FilterListener implements android.widget.Filter.IFilterListener {
				constructor(implementation: android.widget.Filter.IFilterListener);
				/**
				 * @param count the number of values computed by the filter
				 */
				public onFilterComplete(count: number): void;
			}
			interface IFilterListener {
				/**
				 * @param count the number of values computed by the filter
				 */
				onFilterComplete(count: number): void;
			}
			export class RequestHandler extends android.os.Handler {
				static class: java.lang.Class<android.widget.Filter.RequestHandler>;
				/**
				 * @param msg the filtering request
				 */
				public handleMessage(msg: android.os.Message): void;
			}
			export class ResultsHandler extends android.os.Handler {
				static class: java.lang.Class<android.widget.Filter.ResultsHandler>;
				/**
				 * @param msg the filtering results
				 */
				public handleMessage(msg: android.os.Message): void;
			}
			export class RequestArguments extends java.lang.Object {
				static class: java.lang.Class<android.widget.Filter.RequestArguments>;
			}
		}
		/**
		 * Class that implements a simple timer.
		 */
		export class Chronometer extends android.widget.TextView {
			/**
			 * Initialize this Chronometer object. Sets the base to the current time.
			 */
			constructor(context: android.content.Context);
			/**
			 * Initialize with standard view layout information. Sets the base to the current time.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Initialize with standard view layout information and style. Sets the base to the current time.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.Chronometer>;
			/**
			 * Set the time that the count-up timer is in reference to.
			 * @param base Use the {@link SystemClock#elapsedRealtime} time base.
			 */
			public setBase(base: number): void;
			/**
			 * Return the base time as set through #setBase.
			 */
			public getBase(): any;
			/**
			 * Sets the format string used for display. The Chronometer will display this string, with the first "%s" replaced by the current timer value in "MM:SS" or "H:MM:SS" form.
			 * @param format the format string.
			 */
			public setFormat(format: string): void;
			/**
			 * Returns the current format string as set through #setFormat.
			 */
			public getFormat(): string;
			/**
			 * Sets the listener to be called when the chronometer changes. 
			 * @param listener The listener.
			 */
			public setOnChronometerTickListener(listener: android.widget.Chronometer.IOnChronometerTickListener): void;
			public getOnChronometerTickListener(): android.widget.Chronometer.IOnChronometerTickListener;
			/**
			 * Start counting up. This does not affect the base as set from #setBase, just the view display. Chronometer works by regularly scheduling messages to the handler, even when the Widget is not visible. To make sure resource leaks do not occur, the user should make sure that each start() call has a reciprocal call to #stop.
			 */
			public start(): void;
			/**
			 * Stop counting up. This does not affect the base as set from #setBase, just the view display. This stops the messages to the handler, effectively releasing resources that would be held as the chronometer is running, via #start.
			 */
			public stop(): void;
			protected onDetachedFromWindow(): void;
			protected onWindowVisibilityChanged(visibility: number): void;
			dispatchChronometerTick(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module Chronometer {
			/**
			 * A callback that notifies when the chronometer has incremented on its own.
			 */
			interface IOnChronometerTickListener {
				/**
				 * Notification that the chronometer has changed.
				 */
				onChronometerTick(chronometer: android.widget.Chronometer): void;
			}
			/**
			 * A callback that notifies when the chronometer has incremented on its own.
			 */
			export class OnChronometerTickListener implements android.widget.Chronometer.IOnChronometerTickListener {
				constructor(implementation: android.widget.Chronometer.IOnChronometerTickListener);
				/**
				 * Notification that the chronometer has changed.
				 */
				public onChronometerTick(chronometer: android.widget.Chronometer): void;
			}
		}
		/**
		 * An easy adapter that creates views defined in an XML file. You can specify the XML file that defines the appearance of the views.
		 */
		export class ResourceCursorAdapter extends android.widget.CursorAdapter {
			/**
			 * Constructor the enables auto-requery.
			 * @param context The context where the ListView associated with this adapter is running
			 * @param layout resource identifier of a layout file that defines the views
			 * @param c 
			 */
			constructor(context: android.content.Context, layout: number, c: android.database.ICursor);
			/**
			 * Constructor with default behavior as per CursorAdapter#CursorAdapter(Context, Cursor, boolean); it is recommended you not use this, but instead #ResourceCursorAdapter(Context, int, Cursor, int). When using this constructor, #FLAG_REGISTER_CONTENT_OBSERVER will always be set.
			 * @param context The context where the ListView associated with this adapter is running
			 * @param layout resource identifier of a layout file that defines the views
			 * @param c The cursor from which to get the data.
			 * @param autoRequery If true the adapter will call requery() on the
			 */
			constructor(context: android.content.Context, layout: number, c: android.database.ICursor, autoRequery: boolean);
			/**
			 * Standard constructor.
			 * @param context The context where the ListView associated with this adapter is running
			 * @param layout Resource identifier of a layout file that defines the views
			 * @param c The cursor from which to get the data.
			 * @param flags Flags used to determine the behavior of the adapter,
			 */
			constructor(context: android.content.Context, layout: number, c: android.database.ICursor, flags: number);
			static class: java.lang.Class<android.widget.ResourceCursorAdapter>;
			/**
			 * Inflates view(s) from the specified XML file. android.widget.CursorAdapter#newView(android.content.Context, android.database.Cursor, ViewGroup)
			 */
			public newView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
			public newDropDownView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
			/**
			 * @param layout the layout resources used to create item views
			 */
			public setViewResource(layout: number): void;
			/**
			 * @param dropDownLayout the layout resources used to create drop down views
			 */
			public setDropDownViewResource(dropDownLayout: number): void;
		}
		/**
		 * Specialized android.widget.ViewSwitcher that contains only children of type android.widget.TextView.
		 */
		export class TextSwitcher extends android.widget.ViewSwitcher {
			/**
			 * Creates a new empty TextSwitcher.
			 * @param context the application's environment
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates a new empty TextSwitcher for the given context and with the specified set attributes.
			 * @param context the application environment
			 * @param attrs a collection of attributes
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.TextSwitcher>;
			/**
			 * 
			 */
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Sets the text of the next view and switches to the next view. This can be used to animate the old text out and animate the next text in.
			 * @param text the new text to display
			 */
			public setText(text: string): void;
			/**
			 * Sets the text of the text view that is currently showing. This does not perform the animations.
			 * @param text the new text to display
			 */
			public setCurrentText(text: string): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * @param child the child view to add
			 */
			addView(child: android.view.View): void;
			/**
			 * Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child. 
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 */
			addView(child: android.view.View, index: number): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			addView(child: android.view.View, width: number, height: number): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param params the layout parameters to set on the child
			 */
			addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
		}
		/**
		 * FrameLayout is designed to block out an area on the screen to display a single item. Generally, FrameLayout should be used to hold a single child view, because it can be difficult to organize child views in a way that's scalable to different screen sizes without the children overlapping each other. You can, however, add multiple children to a FrameLayout and control their position within the FrameLayout by assigning gravity to each child, using the <a href="FrameLayout.LayoutParams.html#attr_android:layout_gravity">android:layout_gravity</a> attribute.
		 */
		export class FrameLayout extends android.view.ViewGroup {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.FrameLayout>;
			/**
			 * Describes how the foreground is positioned.
			 */
			public getForegroundGravity(): number;
			/**
			 * Describes how the foreground is positioned. Defaults to START and TOP.
			 * @param foregroundGravity See {@link android.view.Gravity}
			 */
			public setForegroundGravity(foregroundGravity: number): void;
			/**
			 * 
			 */
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			/**
			 * 
			 */
			protected drawableStateChanged(): void;
			/**
			 * Returns a set of layout parameters with a width of android.view.ViewGroup.LayoutParams#MATCH_PARENT, and a height of android.view.ViewGroup.LayoutParams#MATCH_PARENT.
			 */
			protected generateDefaultLayoutParams(): android.widget.FrameLayout.LayoutParams;
			/**
			 * Supply a Drawable that is to be rendered on top of all of the child views in the frame layout. Any padding in the Drawable will be taken into account by ensuring that the children are inset to be placed inside of the padding area. 
			 * @param drawable The Drawable to be drawn on top of the children.
			 */
			public setForeground(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Returns the drawable used as the foreground of this FrameLayout. The foreground drawable, if non-null, is always drawn on top of the children.
			 */
			public getForeground(): android.graphics.drawable.Drawable;
			/**
			 * 
			 */
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * 
			 */
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			/**
			 * 
			 */
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			/**
			 * 
			 */
			public draw(canvas: android.graphics.Canvas): void;
			/**
			 * 
			 */
			public gatherTransparentRegion(region: android.graphics.Region): boolean;
			/**
			 * Sets whether to consider all children, or just those in the VISIBLE or INVISIBLE state, when measuring. Defaults to false.
			 * @param measureAll true to consider children marked GONE, false otherwise.
			 */
			public setMeasureAllChildren(measureAll: boolean): void;
			/**
			 * Determines whether all children, or just those in the VISIBLE or INVISIBLE state, are considered when measuring.
			 */
			public getConsiderGoneChildrenWhenMeasuring(): boolean;
			/**
			 * Determines whether all children, or just those in the VISIBLE or INVISIBLE state, are considered when measuring.
			 */
			public getMeasureAllChildren(): boolean;
			/**
			 * 
			 */
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.FrameLayout.LayoutParams;
			public shouldDelayChildPressedState(): boolean;
			/**
			 * 
			 */
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.view.ViewGroup.LayoutParams;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
		}
		export module FrameLayout {
			/**
			 * Per-child layout information for layouts that support margins. See android.R.styleable#FrameLayout_Layout FrameLayout Layout Attributes for a list of all child view attributes that this class supports. ref android.R.styleable#FrameLayout_Layout_layout_gravity
			 */
			export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
				/**
				 * 
				 */
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * 
				 */
				constructor(width: number, height: number);
				/**
				 * Creates a new set of layout parameters with the specified width, height and weight.
				 * @param width the width, either {@link #MATCH_PARENT},
				 * @param height the height, either {@link #MATCH_PARENT},
				 * @param gravity the gravity
				 */
				constructor(width: number, height: number, gravity: number);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.LayoutParams);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.MarginLayoutParams);
				/**
				 * The gravity to apply with the View to which these layout parameters are associated.
				 */
				gravity: number;
				static class: java.lang.Class<android.widget.FrameLayout.LayoutParams>;
			}
		}
		/**
		 * Extended Adapter that is the bridge between a android.widget.Spinner and its data. A spinner adapter allows to define two different views: one that shows the data in the spinner itself and one that shows the data in the drop down list when the spinner is pressed.</p>
		 */
		interface ISpinnerAdapter extends android.widget.IAdapter {
			/**
			 * @param position index of the item whose view we want.
			 * @param convertView the old view to reuse, if possible. Note: You should
			 * @param parent the parent that this view will eventually be attached to
			 */
			getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Register an observer that is called when changes happen to the data used by this adapter.
			 * @param observer the object that gets notified when the data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this adapter via #registerDataSetObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * How many items are in the data set represented by this Adapter. 
			 */
			getCount(): number;
			/**
			 * Get the data item associated with the specified position in the data set. 
			 * @param position Position of the item whose data we want within the adapter's
			 */
			getItem(position: number): any;
			/**
			 * Get the row id associated with the specified position in the list. 
			 * @param position The position of the item within the adapter's data set whose row id we want.
			 */
			getItemId(position: number): any;
			/**
			 * Indicates whether the item ids are stable across changes to the underlying data. 
			 */
			hasStableIds(): boolean;
			/**
			 * Get a View that displays the data at the specified position in the data set. You can either create a View manually or inflate it from an XML layout file. When the View is inflated, the parent View (GridView, ListView...) will apply default layout parameters unless you use android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean) to specify a root view and to prevent attachment to the root. 
			 * @param position The position of the item within the adapter's data set of the item whose view
			 * @param convertView The old view to reuse, if possible. Note: You should check that this view
			 * @param parent The parent that this view will eventually be attached to
			 */
			getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Get the type of View that will be created by #getView for the specified item. 
			 * @param position The position of the item within the adapter's data set whose view type we
			 */
			getItemViewType(position: number): number;
			getViewTypeCount(): number;
			isEmpty(): boolean;
		}
		/**
		 * Like AnalogClock, but digital. Shows seconds.
		 */
		export class DigitalClock extends android.widget.TextView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.widget.DigitalClock>;
			FormatChangeObserver: {
	new (): android.widget.DigitalClock.FormatChangeObserver;
};
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module DigitalClock {
			export class FormatChangeObserver extends android.database.ContentObserver {
				static class: java.lang.Class<android.widget.DigitalClock.FormatChangeObserver>;
				public onChange(selfChange: boolean): void;
				/**
				 * This method is called when a content change occurs. Includes the changed content Uri when available.
				 * @param selfChange True if this is a self-change notification.
				 * @param uri The Uri of the changed content, or null if unknown.
				 */
				onChange(selfChange: boolean, uri: android.net.Uri): void;
			}
		}
		/**
		 * A view that shows items in two-dimensional scrolling grid. The items in the grid come from the ListAdapter associated with this view.
		 */
		export class GridView extends android.widget.AbsListView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * Disables stretching. #setStretchMode(int)
			 */
			static NO_STRETCH: number;
			/**
			 * Stretches the spacing between columns. #setStretchMode(int)
			 */
			static STRETCH_SPACING: number;
			/**
			 * Stretches columns. #setStretchMode(int)
			 */
			static STRETCH_COLUMN_WIDTH: number;
			/**
			 * Stretches the spacing between columns. The spacing is uniform. #setStretchMode(int)
			 */
			static STRETCH_SPACING_UNIFORM: number;
			/**
			 * Creates as many columns as can fit on screen. #setNumColumns(int)
			 */
			static AUTO_FIT: number;
			static class: java.lang.Class<android.widget.GridView>;
			public getAdapter(): android.widget.IListAdapter;
			/**
			 * Sets up this AbsListView to use a remote views adapter which connects to a RemoteViewsService through the specified intent.
			 * @param intent the intent used to identify the RemoteViewsService for the adapter to connect to.
			 */
			public setRemoteViewsAdapter(intent: android.content.Intent): void;
			/**
			 * Sets the data behind this GridView.
			 * @param adapter the adapter providing the grid's data
			 */
			public setAdapter(adapter: android.widget.IListAdapter): void;
			lookForSelectablePosition(position: number, lookDown: boolean): number;
			/**
			 * 
			 */
			fillGap(down: boolean): void;
			findMotionRow(y: number): number;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed.
			 * @param position Scroll to this adapter position.
			 */
			public smoothScrollToPosition(position: number): void;
			/**
			 * Smoothly scroll to the specified adapter position offset. The view will scroll such that the indicated position is displayed.
			 * @param offset The amount to offset from the adapter position to scroll to.
			 */
			public smoothScrollByOffset(offset: number): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected attachLayoutAnimationParameters(child: android.view.View, params: android.view.ViewGroup.LayoutParams, index: number, count: number): void;
			protected layoutChildren(): void;
			/**
			 * Sets the currently selected item 
			 * @param position Index (starting at 0) of the data item to be selected.
			 */
			public setSelection(position: number): void;
			/**
			 * Makes the item at the supplied position selected.
			 * @param position the position of the new selection
			 */
			setSelectionInt(position: number): void;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyMultiple(keyCode: number, repeatCount: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Scrolls up or down by the number of items currently present on screen.
			 * @param direction either {@link View#FOCUS_UP} or {@link View#FOCUS_DOWN}
			 */
			pageScroll(direction: number): boolean;
			/**
			 * Go to the last or first item if possible.
			 * @param direction either {@link View#FOCUS_UP} or {@link View#FOCUS_DOWN}.
			 */
			fullScroll(direction: number): boolean;
			/**
			 * Scrolls to the next or previous item, horizontally or vertically.
			 * @param direction either {@link View#FOCUS_LEFT}, {@link View#FOCUS_RIGHT},
			 */
			arrowScroll(direction: number): boolean;
			/**
			 * Goes to the next or previous item according to the order set by the adapter.
			 */
			sequenceScroll(direction: number): boolean;
			protected onFocusChanged(gainFocus: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			/**
			 * Set the gravity for this grid. Gravity describes how the child views are horizontally aligned. Defaults to Gravity.LEFT
			 * @param gravity the gravity to apply to this grid's children
			 */
			public setGravity(gravity: number): void;
			/**
			 * Describes how the child views are horizontally aligned. Defaults to Gravity.LEFT
			 */
			public getGravity(): number;
			/**
			 * Set the amount of horizontal (x) spacing to place between each item in the grid.
			 * @param horizontalSpacing The amount of horizontal space between items,
			 */
			public setHorizontalSpacing(horizontalSpacing: number): void;
			/**
			 * Returns the amount of horizontal spacing currently used between each item in the grid.
			 */
			public getHorizontalSpacing(): number;
			/**
			 * Returns the requested amount of horizontal spacing between each item in the grid.
			 */
			public getRequestedHorizontalSpacing(): number;
			/**
			 * Set the amount of vertical (y) spacing to place between each item in the grid.
			 * @param verticalSpacing The amount of vertical space between items,
			 */
			public setVerticalSpacing(verticalSpacing: number): void;
			/**
			 * Returns the amount of vertical spacing between each item in the grid.
			 */
			public getVerticalSpacing(): number;
			/**
			 * Control how items are stretched to fill their space.
			 * @param stretchMode Either {@link #NO_STRETCH},
			 */
			public setStretchMode(stretchMode: number): void;
			public getStretchMode(): number;
			/**
			 * Set the width of columns in the grid.
			 * @param columnWidth The column width, in pixels.
			 */
			public setColumnWidth(columnWidth: number): void;
			/**
			 * Return the width of a column in the grid.
			 */
			public getColumnWidth(): number;
			/**
			 * Return the requested width of a column in the grid.
			 */
			public getRequestedColumnWidth(): number;
			/**
			 * Set the number of columns in the grid
			 * @param numColumns The desired number of columns.
			 */
			public setNumColumns(numColumns: number): void;
			/**
			 * Get the number of columns in the grid. Returns #AUTO_FIT if the Grid has never been laid out.
			 */
			public getNumColumns(): number;
			protected computeVerticalScrollExtent(): number;
			protected computeVerticalScrollOffset(): number;
			protected computeVerticalScrollRange(): number;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed, but it will stop early if scrolling further would scroll boundPosition out of view.
			 * @param position Scroll to this adapter position.
			 * @param boundPosition Do not scroll if it would move this adapter
			 */
			smoothScrollToPosition(position: number, boundPosition: number): void;
		}
		/**
		 * The service to be connected to for a remote adapter to request RemoteViews. Users should extend the RemoteViewsService to provide the appropriate RemoteViewsFactory's used to populate the remote collection view (ListView, GridView, etc).
		 */
		export class RemoteViewsService extends android.app.Service {
			constructor();
			static class: java.lang.Class<android.widget.RemoteViewsService>;
			public onBind(intent: android.content.Intent): android.os.IIBinder;
			/**
			 * To be implemented by the derived service to generate appropriate factories for the data.
			 */
			public onGetViewFactory(intent: android.content.Intent): android.widget.RemoteViewsService.IRemoteViewsFactory;
		}
		export module RemoteViewsService {
			/**
			 * An interface for an adapter between a remote collection view (ListView, GridView, etc) and the underlying data for that view. The implementor is responsible for making a RemoteView for each item in the data set. This interface is a thin wrapper around Adapter. android.widget.Adapter android.appwidget.AppWidgetManager
			 */
			interface IRemoteViewsFactory {
				/**
				 * Called when your factory is first constructed. The same factory may be shared across multiple RemoteViewAdapters depending on the intent passed.
				 */
				onCreate(): void;
				/**
				 * Called when notifyDataSetChanged() is triggered on the remote adapter. This allows a RemoteViewsFactory to respond to data changes by updating any internal references.
				 */
				onDataSetChanged(): void;
				/**
				 * Called when the last RemoteViewsAdapter that is associated with this factory is unbound.
				 */
				onDestroy(): void;
				/**
				 * See Adapter#getCount()
				 */
				getCount(): number;
				/**
				 * See Adapter#getView(int, android.view.View, android.view.ViewGroup).
				 * @param position The position of the item within the Factory's data set of the item whose
				 */
				getViewAt(position: number): android.widget.RemoteViews;
				/**
				 * This allows for the use of a custom loading view which appears between the time that #getViewAt(int) is called and returns. If null is returned, a default loading view will be used.
				 */
				getLoadingView(): android.widget.RemoteViews;
				/**
				 * See Adapter#getViewTypeCount().
				 */
				getViewTypeCount(): number;
				/**
				 * See Adapter#getItemId(int).
				 * @param position The position of the item within the data set whose row id we want.
				 */
				getItemId(position: number): any;
				/**
				 * See Adapter#hasStableIds().
				 */
				hasStableIds(): boolean;
			}
			/**
			 * An interface for an adapter between a remote collection view (ListView, GridView, etc) and the underlying data for that view. The implementor is responsible for making a RemoteView for each item in the data set. This interface is a thin wrapper around Adapter. android.widget.Adapter android.appwidget.AppWidgetManager
			 */
			export class RemoteViewsFactory implements android.widget.RemoteViewsService.IRemoteViewsFactory {
				constructor(implementation: android.widget.RemoteViewsService.IRemoteViewsFactory);
				/**
				 * Called when your factory is first constructed. The same factory may be shared across multiple RemoteViewAdapters depending on the intent passed.
				 */
				public onCreate(): void;
				/**
				 * Called when notifyDataSetChanged() is triggered on the remote adapter. This allows a RemoteViewsFactory to respond to data changes by updating any internal references.
				 */
				public onDataSetChanged(): void;
				/**
				 * Called when the last RemoteViewsAdapter that is associated with this factory is unbound.
				 */
				public onDestroy(): void;
				/**
				 * See Adapter#getCount()
				 */
				public getCount(): number;
				/**
				 * See Adapter#getView(int, android.view.View, android.view.ViewGroup).
				 * @param position The position of the item within the Factory's data set of the item whose
				 */
				public getViewAt(position: number): android.widget.RemoteViews;
				/**
				 * This allows for the use of a custom loading view which appears between the time that #getViewAt(int) is called and returns. If null is returned, a default loading view will be used.
				 */
				public getLoadingView(): android.widget.RemoteViews;
				/**
				 * See Adapter#getViewTypeCount().
				 */
				public getViewTypeCount(): number;
				/**
				 * See Adapter#getItemId(int).
				 * @param position The position of the item within the data set whose row id we want.
				 */
				public getItemId(position: number): any;
				/**
				 * See Adapter#hasStableIds().
				 */
				public hasStableIds(): boolean;
			}
			/**
			 * A private proxy class for the private IRemoteViewsFactory interface through the public RemoteViewsFactory interface.
			 */
			export class RemoteViewsFactoryAdapter {
				constructor(factory: android.widget.RemoteViewsService.IRemoteViewsFactory, isCreated: boolean);
				static class: java.lang.Class<android.widget.RemoteViewsService.RemoteViewsFactoryAdapter>;
				public isCreated(): boolean;
				public onDataSetChanged(): void;
				public onDataSetChangedAsync(): void;
				public getCount(): number;
				public getViewAt(position: number): android.widget.RemoteViews;
				public getLoadingView(): android.widget.RemoteViews;
				public getViewTypeCount(): number;
				public getItemId(position: number): any;
				public hasStableIds(): boolean;
				public onDestroy(intent: android.content.Intent): void;
			}
		}
		/**
		 * Interface that should be implemented on Adapters to enable fast scrolling in an AbsListView between sections of the list. A section is a group of list items to jump to that have something in common. For example, they may begin with the same letter or they may be songs from the same artist.
		 */
		export class SectionIndexer implements android.widget.ISectionIndexer {
			constructor(implementation: android.widget.ISectionIndexer);
			/**
			 * This provides the list view with an array of section objects. In the simplest case these are Strings, each containing one letter of the alphabet. They could be more complex objects that indicate the grouping for the adapter's consumption. The list view will call toString() on the objects to get the preview letter to display while scrolling.
			 */
			public getSections(): native.Array<any>;
			/**
			 * Provides the starting index in the list for a given section.
			 * @param section the index of the section to jump to.
			 */
			public getPositionForSection(section: number): number;
			/**
			 * This is a reverse mapping to fetch the section index for a given position in the list.
			 * @param position the position for which to return the section
			 */
			public getSectionForPosition(position: number): number;
		}
		/**
		 * A Layout that arranges its children in a single column or a single row. The direction of the row can be set by calling #setOrientation(int) setOrientation(). You can also specify gravity, which specifies the alignment of all the child elements by calling #setGravity(int) setGravity() or specify that specific children grow to fill up any remaining space in the layout by setting the <em>weight</em> member of android.widget.LinearLayout.LayoutParams LinearLayout.LayoutParams. The default orientation is horizontal.
		 */
		export class LinearLayout extends android.view.ViewGroup {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static HORIZONTAL: number;
			static VERTICAL: number;
			/**
			 * Don't show any dividers.
			 */
			static SHOW_DIVIDER_NONE: number;
			/**
			 * Show a divider at the beginning of the group.
			 */
			static SHOW_DIVIDER_BEGINNING: number;
			/**
			 * Show dividers between each item in the group.
			 */
			static SHOW_DIVIDER_MIDDLE: number;
			/**
			 * Show a divider at the end of the group.
			 */
			static SHOW_DIVIDER_END: number;
			static class: java.lang.Class<android.widget.LinearLayout>;
			/**
			 * Set how dividers should be shown between items in this layout
			 * @param showDividers One or more of {@link #SHOW_DIVIDER_BEGINNING},
			 */
			public setShowDividers(showDividers: number): void;
			public shouldDelayChildPressedState(): boolean;
			public getShowDividers(): number;
			public getDividerDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Set a drawable to be used as a divider between items.
			 * @param divider Drawable that will divide each item.
			 */
			public setDividerDrawable(divider: android.graphics.drawable.Drawable): void;
			/**
			 * Set padding displayed on both ends of dividers.
			 * @param padding Padding value in pixels that will be applied to each end
			 */
			public setDividerPadding(padding: number): void;
			/**
			 * Get the padding size used to inset dividers in pixels
			 */
			public getDividerPadding(): number;
			protected onDraw(canvas: android.graphics.Canvas): void;
			drawDividersVertical(canvas: android.graphics.Canvas): void;
			drawDividersHorizontal(canvas: android.graphics.Canvas): void;
			drawHorizontalDivider(canvas: android.graphics.Canvas, top: number): void;
			drawVerticalDivider(canvas: android.graphics.Canvas, left: number): void;
			public isBaselineAligned(): boolean;
			/**
			 * @param baselineAligned true to align widgets on their baseline,
			 */
			public setBaselineAligned(baselineAligned: boolean): void;
			/**
			 * When true, all children with a weight will be considered having the minimum size of the largest child. If false, all children are measured normally. 
			 */
			public isMeasureWithLargestChildEnabled(): boolean;
			/**
			 * When set to true, all children with a weight will be considered having the minimum size of the largest child. If false, all children are measured normally. Disabled by default. 
			 * @param enabled True to measure children with a weight using the
			 */
			public setMeasureWithLargestChildEnabled(enabled: boolean): void;
			public getBaseline(): number;
			public getBaselineAlignedChildIndex(): number;
			/**
			 * @param i The index of the child that will be used if this layout is
			 */
			public setBaselineAlignedChildIndex(i: number): void;
			/**
			 * @param index the child's index
			 */
			getVirtualChildAt(index: number): android.view.View;
			getVirtualChildCount(): number;
			/**
			 * Returns the desired weights sum.
			 */
			public getWeightSum(): number;
			/**
			 * Defines the desired weights sum. If unspecified the weights sum is computed at layout time by adding the layout_weight of each child.
			 * @param weightSum a number greater than 0.0f, or a number lower than or equals
			 */
			public setWeightSum(weightSum: number): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * Measures the children when the orientation of this LinearLayout is set to #VERTICAL.
			 * @param widthMeasureSpec Horizontal space requirements as imposed by the parent.
			 * @param heightMeasureSpec Vertical space requirements as imposed by the parent.
			 */
			measureVertical(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * Measures the children when the orientation of this LinearLayout is set to #HORIZONTAL.
			 * @param widthMeasureSpec Horizontal space requirements as imposed by the parent.
			 * @param heightMeasureSpec Vertical space requirements as imposed by the parent.
			 */
			measureHorizontal(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * @param child the child after which we want to skip children
			 * @param index the index of the child after which we want to skip children
			 */
			getChildrenSkipCount(child: android.view.View, index: number): number;
			/**
			 * @param childIndex the index of the null child
			 */
			measureNullChild(childIndex: number): number;
			/**
			 * @param child the child to measure
			 * @param childIndex the index of the child in this view
			 * @param widthMeasureSpec horizontal space requirements as imposed by the parent
			 * @param totalWidth extra space that has been used up by the parent horizontally
			 * @param heightMeasureSpec vertical space requirements as imposed by the parent
			 * @param totalHeight extra space that has been used up by the parent vertically
			 */
			measureChildBeforeLayout(child: android.view.View, childIndex: number, widthMeasureSpec: number, totalWidth: number, heightMeasureSpec: number, totalHeight: number): void;
			/**
			 * @param child the child for which to obtain the location offset
			 */
			getLocationOffset(child: android.view.View): number;
			/**
			 * @param child the child whose next sibling will be moved
			 */
			getNextLocationOffset(child: android.view.View): number;
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			/**
			 * Position the children during a layout pass if the orientation of this LinearLayout is set to #VERTICAL.
			 */
			layoutVertical(): void;
			/**
			 * Position the children during a layout pass if the orientation of this LinearLayout is set to #HORIZONTAL.
			 */
			layoutHorizontal(): void;
			/**
			 * Should the layout be a column or a row.
			 * @param orientation Pass HORIZONTAL or VERTICAL. Default
			 */
			public setOrientation(orientation: number): void;
			/**
			 * Returns the current orientation. 
			 */
			public getOrientation(): number;
			/**
			 * Describes how the child views are positioned. Defaults to GRAVITY_TOP. If this layout has a VERTICAL orientation, this controls where all the child views are placed if there is extra vertical space. If this layout has a HORIZONTAL orientation, this controls the alignment of the children. 
			 * @param gravity See {@link android.view.Gravity}
			 */
			public setGravity(gravity: number): void;
			public setHorizontalGravity(horizontalGravity: number): void;
			public setVerticalGravity(verticalGravity: number): void;
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.LinearLayout.LayoutParams;
			/**
			 * Returns a set of layout parameters with a width of android.view.ViewGroup.LayoutParams#MATCH_PARENT and a height of android.view.ViewGroup.LayoutParams#WRAP_CONTENT when the layout's orientation is #VERTICAL. When the orientation is #HORIZONTAL, the width is set to LayoutParams#WRAP_CONTENT and the height to LayoutParams#WRAP_CONTENT.
			 */
			protected generateDefaultLayoutParams(): android.widget.LinearLayout.LayoutParams;
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.widget.LinearLayout.LayoutParams;
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
		}
		export module LinearLayout {
			/**
			 * Per-child layout information associated with ViewLinearLayout. ref android.R.styleable#LinearLayout_Layout_layout_weight ref android.R.styleable#LinearLayout_Layout_layout_gravity
			 */
			export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
				/**
				 * 
				 */
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * 
				 */
				constructor(width: number, height: number);
				/**
				 * Creates a new set of layout parameters with the specified width, height and weight.
				 * @param width the width, either {@link #MATCH_PARENT},
				 * @param height the height, either {@link #MATCH_PARENT},
				 * @param weight the weight
				 */
				constructor(width: number, height: number, weight: number);
				/**
				 * 
				 */
				constructor(p: android.view.ViewGroup.LayoutParams);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.MarginLayoutParams);
				/**
				 * Indicates how much of the extra space in the LinearLayout will be allocated to the view associated with these LayoutParams. Specify 0 if the view should not be stretched. Otherwise the extra pixels will be pro-rated among all views whose weight is greater than 0.
				 */
				weight: number;
				/**
				 * Gravity for the view associated with these LayoutParams.
				 */
				gravity: number;
				static class: java.lang.Class<android.widget.LinearLayout.LayoutParams>;
				public debug(output: string): string;
			}
		}
		export class AutoCompleteTextView extends android.widget.EditText implements android.widget.Filter.IFilterListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.widget.AutoCompleteTextView>;
			public setOnClickListener(listener: android.view.View.IOnClickListener): void;
			/**
			 * @param hint the text to be displayed to the user
			 */
			public setCompletionHint(hint: string): void;
			/**
			 * Gets the optional hint text displayed at the bottom of the the matching list.
			 */
			public getCompletionHint(): string;
			public getDropDownWidth(): number;
			/**
			 * @param width the width to use
			 */
			public setDropDownWidth(width: number): void;
			public getDropDownHeight(): number;
			/**
			 * @param height the height to use
			 */
			public setDropDownHeight(height: number): void;
			public getDropDownAnchor(): number;
			/**
			 * @param id the id to anchor the drop down list view to
			 */
			public setDropDownAnchor(id: number): void;
			public getDropDownBackground(): android.graphics.drawable.Drawable;
			/**
			 * @param d the drawable to set as the background
			 */
			public setDropDownBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
			/**
			 * @param id the id of the drawable to set as the background
			 */
			public setDropDownBackgroundResource(id: number): void;
			/**
			 * @param offset the vertical offset
			 */
			public setDropDownVerticalOffset(offset: number): void;
			public getDropDownVerticalOffset(): number;
			/**
			 * @param offset the horizontal offset
			 */
			public setDropDownHorizontalOffset(offset: number): void;
			public getDropDownHorizontalOffset(): number;
			public getThreshold(): number;
			/**
			 * @param threshold the number of characters to type before the drop down
			 */
			public setThreshold(threshold: number): void;
			/**
			 * @param l the item click listener
			 */
			public setOnItemClickListener(l: android.widget.AdapterView.IOnItemClickListener): void;
			/**
			 * @param l the item selected listener
			 */
			public setOnItemSelectedListener(l: android.widget.AdapterView.IOnItemSelectedListener): void;
			public getItemClickListener(): android.widget.AdapterView.IOnItemClickListener;
			public getItemSelectedListener(): android.widget.AdapterView.IOnItemSelectedListener;
			public getOnItemClickListener(): android.widget.AdapterView.IOnItemClickListener;
			public getOnItemSelectedListener(): android.widget.AdapterView.IOnItemSelectedListener;
			/**
			 * Set a listener that will be invoked whenever the AutoCompleteTextView's list of completions is dismissed.
			 * @param dismissListener Listener to invoke when completions are dismissed
			 */
			public setOnDismissListener(dismissListener: android.widget.AutoCompleteTextView.IOnDismissListener): void;
			public getAdapter(): android.widget.IListAdapter;
			/**
			 * @param adapter the adapter holding the auto completion data
			 */
			public setAdapter<T>(adapter: T): void;
			public onKeyPreIme(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Returns <code>true</code> if the amount of text in the field meets or exceeds the #getThreshold requirement. You can override this to impose a different standard for when filtering will be triggered.
			 */
			public enoughToFilter(): boolean;
			doBeforeTextChanged(): void;
			doAfterTextChanged(): void;
			public isPopupShowing(): boolean;
			/**
			 * @param selectedItem the item selected by the user for completion
			 */
			protected convertSelectionToString(selectedItem: any): string;
			public clearListSelection(): void;
			/**
			 * Set the position of the dropdown view selection. 
			 * @param position The position to move the selector to.
			 */
			public setListSelection(position: number): void;
			/**
			 * Get the position of the dropdown view selection, if there is one. Returns ListView#INVALID_POSITION ListView.INVALID_POSITION if there is no dropdown or if there is no selection. 
			 */
			public getListSelection(): number;
			/**
			 * @param text the filtering pattern
			 * @param keyCode the last character inserted in the edit box; beware that
			 */
			protected performFiltering(text: string, keyCode: number): void;
			public performCompletion(): void;
			public onCommitCompletion(completion: android.view.inputmethod.CompletionInfo): void;
			/**
			 * Identifies whether the view is currently performing a text completion, so subclasses can decide whether to respond to text changed events.
			 */
			public isPerformingCompletion(): boolean;
			/**
			 * Like #setText(CharSequence), except that it can disable filtering.
			 * @param text filter If <code>false</code>, no filtering will be performed
			 * @param filter 
			 */
			public setText(text: string, filter: boolean): void;
			/**
			 * @param text the selected suggestion in the drop down list
			 */
			protected replaceText(text: string): void;
			/**
			 * 
			 */
			public onFilterComplete(count: number): void;
			public onWindowFocusChanged(hasWindowFocus: boolean): void;
			protected onDisplayHint(hint: number): void;
			protected onFocusChanged(focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			public dismissDropDown(): void;
			protected setFrame(l: number, t: number, r: number, b: number): boolean;
			public showDropDown(): void;
			/**
			 * Sets the validator used to perform text validation.
			 * @param validator The validator used to validate the text entered in this widget.
			 */
			public setValidator(validator: android.widget.AutoCompleteTextView.IValidator): void;
			/**
			 * Returns the Validator set with #setValidator, or <code>null</code> if it was not set.
			 */
			public getValidator(): android.widget.AutoCompleteTextView.IValidator;
			/**
			 * If a validator was set on this view and the current string is not valid, ask the validator to fix it.
			 */
			public performValidation(): void;
			/**
			 * Returns the Filter obtained from Filterable#getFilter, or <code>null</code> if #setAdapter was not called with a Filterable.
			 */
			protected getFilter(): android.widget.Filter;
			setText(text: string, type: android.widget.TextView.BufferType): void;
			/**
			 * Sets the string value of the TextView. TextView <em>does not</em> accept HTML-like formatting, which you can do with text strings in XML resource files. To style your strings, attach android.text.style.* objects to a android.text.SpannableString SpannableString, or see the <a href="guide/topics/resources/available-resources.html#stringresources"> Available Resource Types</a> documentation for an example of setting formatted text in the XML resource file.
			 */
			setText(text: string): void;
			/**
			 * Sets the TextView to display the specified slice of the specified char array. You must promise that you will not change the contents of the array except for right before another call to setText(), since the TextView has no way to know that the text has changed and that it needs to invalidate and re-layout.
			 */
			setText(text: native.Array<string>, start: number, len: number): void;
			setText(resid: number): void;
			setText(resid: number, type: android.widget.TextView.BufferType): void;
		}
		export module AutoCompleteTextView {
			/**
			 * This interface is used to make sure that the text entered in this TextView complies to a certain format. Since there is no foolproof way to prevent the user from leaving this View with an incorrect value in it, all we can do is try to fix it ourselves when this happens.
			 */
			interface IValidator {
				/**
				 * Validates the specified text.
				 */
				isValid(text: string): boolean;
				/**
				 * Corrects the specified text to make it valid.
				 * @param invalidText A string that doesn't pass validation: isValid(invalidText)
				 */
				fixText(invalidText: string): string;
			}
			/**
			 * Allows us a private hook into the on click event without preventing users from setting their own click listener.
			 */
			export class PassThroughClickListener extends java.lang.Object implements android.view.View.IOnClickListener {
				static class: java.lang.Class<android.widget.AutoCompleteTextView.PassThroughClickListener>;
				/**
				 * 
				 */
				public onClick(v: android.view.View): void;
			}
			/**
			 * Listener to respond to the AutoCompleteTextView's completion list being dismissed. AutoCompleteTextView#setOnDismissListener(OnDismissListener)
			 */
			interface IOnDismissListener {
				/**
				 * This method will be invoked whenever the AutoCompleteTextView's list of completion options has been dismissed and is no longer available for user interaction.
				 */
				onDismiss(): void;
			}
			/**
			 * Listener to respond to the AutoCompleteTextView's completion list being dismissed. AutoCompleteTextView#setOnDismissListener(OnDismissListener)
			 */
			export class OnDismissListener implements android.widget.AutoCompleteTextView.IOnDismissListener {
				constructor(implementation: android.widget.AutoCompleteTextView.IOnDismissListener);
				/**
				 * This method will be invoked whenever the AutoCompleteTextView's list of completion options has been dismissed and is no longer available for user interaction.
				 */
				public onDismiss(): void;
			}
			/**
			 * This is used to watch for edits to the text view. Note that we call to methods on the auto complete text view class so that we can access private vars without going through thunks.
			 */
			export class MyWatcher extends java.lang.Object implements android.text.ITextWatcher {
				static class: java.lang.Class<android.widget.AutoCompleteTextView.MyWatcher>;
				public afterTextChanged(s: any): void;
				public beforeTextChanged(s: string, start: number, count: number, after: number): void;
				public onTextChanged(s: string, start: number, before: number, count: number): void;
			}
			export class DropDownItemClickListener extends java.lang.Object implements android.widget.AdapterView.IOnItemClickListener {
				static class: java.lang.Class<android.widget.AutoCompleteTextView.DropDownItemClickListener>;
				public onItemClick(parent: android.widget.AdapterView<any>, v: android.view.View, position: number, id: number): void;
			}
			/**
			 * This interface is used to make sure that the text entered in this TextView complies to a certain format. Since there is no foolproof way to prevent the user from leaving this View with an incorrect value in it, all we can do is try to fix it ourselves when this happens.
			 */
			export class Validator implements android.widget.AutoCompleteTextView.IValidator {
				constructor(implementation: android.widget.AutoCompleteTextView.IValidator);
				/**
				 * Validates the specified text.
				 */
				public isValid(text: string): boolean;
				/**
				 * Corrects the specified text to make it valid.
				 * @param invalidText A string that doesn't pass validation: isValid(invalidText)
				 */
				public fixText(invalidText: string): string;
			}
			export class PopupDataSetObserver extends android.database.DataSetObserver {
				static class: java.lang.Class<android.widget.AutoCompleteTextView.PopupDataSetObserver>;
				public onChanged(): void;
			}
		}
	}
	export module filterfw {
		export module core {
			export class GLFrameTimer extends java.lang.Object {
				static class: java.lang.Class<android.filterfw.core.GLFrameTimer>;
				public static get(): android.filterfw.core.StopWatchMap;
			}
			export class StopWatchMap extends java.lang.Object {
				constructor();
				LOG_MFF_RUNNING_TIMES: boolean;
				static class: java.lang.Class<android.filterfw.core.StopWatchMap>;
				public start(stopWatchName: string): void;
				public stop(stopWatchName: string): void;
			}
		}
	}
	export module graphics {
		/**
		 * Delegate implementing the native methods of android.graphics.NinePatch
		 */
		export class NinePatch_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.NinePatch_Delegate>;
			static isNinePatchChunk(chunk: native.Array<number>): boolean;
			static validateNinePatchChunk(bitmap: number, chunk: native.Array<number>): void;
			static nativeDraw(canvas_instance: number, loc: android.graphics.RectF, bitmap_instance: number, c: native.Array<number>, paint_instance_or_null: number, destDensity: number, srcDensity: number): void;
			static nativeDraw(canvas_instance: number, loc: android.graphics.Rect, bitmap_instance: number, c: native.Array<number>, paint_instance_or_null: number, destDensity: number, srcDensity: number): void;
			static nativeGetTransparentRegion(bitmap: number, chunk: native.Array<number>, location: android.graphics.Rect): number;
		}
		export class Rasterizer extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Rasterizer>;
			protected finalize(): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.SumPathEffect
		 */
		export class SumPathEffect_Delegate extends android.graphics.PathEffect_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.SumPathEffect_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(first: number, second: number): number;
		}
		/**
		 * Graphics Performance Tests 
		 */
		export class GraphicsPerformanceTests extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.GraphicsPerformanceTests>;
			public static children(): native.Array<string>;
		}
		export module GraphicsPerformanceTests {
			/**
			 * Test drawing of 16x16 image
			 */
			export class DrawBitmap16x16 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap16x16>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 15x15 image
			 */
			export class DrawBitmap15x15 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap15x15>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Tests time to decode a number of sizes of images.
			 */
			export class DecodeBitmapTest extends android.graphics.GraphicsPerformanceTests.GraphicsTestBase {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DecodeBitmapTest>;
				public setUp(): void;
				public getIterations(): number;
				public testDecodeBitmap(): void;
			}
			/**
			 * Test drawing of 320x240 image
			 */
			export class DrawBitmap320x240 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap320x240>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 320x480 image
			 */
			export class DrawBitmap320x480 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap320x480>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 319x479 image
			 */
			export class DrawBitmap319x479 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap319x479>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 319x239 image
			 */
			export class DrawBitmap319x239 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap319x239>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Base class for bitmap drawing tests 
			 */
			export class DrawBitmapTest extends android.graphics.GraphicsPerformanceTests.GraphicsTestBase {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmapTest>;
				public setUp(): void;
				public getIterations(): number;
				public createBitmap(): android.graphics.Bitmap;
				public drawBitmapEven(): void;
				public drawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 63x63 image
			 */
			export class DrawBitmap63x63 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap63x63>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 127x127 image
			 */
			export class DrawBitmap127x127 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap127x127>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 64x64 image
			 */
			export class DrawBitmap64x64 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap64x64>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 7x7 image
			 */
			export class DrawBitmap7x7 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap7x7>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Base class for all graphics tests 
			 */
			export class GraphicsTestBase extends android.test.AndroidTestCase implements android.test.IPerformanceTestCase {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.GraphicsTestBase>;
				public setUp(): void;
				public getIterations(): number;
				public isPerformanceOnly(): boolean;
				public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			}
			/**
			 * Test drawing of 8x8 image
			 */
			export class DrawBitmap8x8 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap8x8>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 31x31 image
			 */
			export class DrawBitmap31x31 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap31x31>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 32x32 image
			 */
			export class DrawBitmap32x32 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap32x32>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
			/**
			 * Test drawing of 128x128 image
			 */
			export class DrawBitmap128x128 extends android.graphics.GraphicsPerformanceTests.DrawBitmapTest {
				constructor();
				static class: java.lang.Class<android.graphics.GraphicsPerformanceTests.DrawBitmap128x128>;
				public createBitmap(): android.graphics.Bitmap;
				public testDrawBitmapEven(): void;
				public testDrawBitmapOdd(): void;
			}
		}
		/**
		 * PointF holds two float coordinates
		 */
		export class PointF extends java.lang.Object implements android.os.IParcelable {
			constructor();
			constructor(x: number, y: number);
			constructor(p: android.graphics.Point);
			x: number;
			y: number;
			static CREATOR: android.os.Parcelable.ICreator<android.graphics.PointF>;
			static class: java.lang.Class<android.graphics.PointF>;
			/**
			 * Set the point's x and y coordinates
			 */
			public set(x: number, y: number): void;
			/**
			 * Set the point's x and y coordinates to the coordinates of p
			 */
			public set(p: android.graphics.PointF): void;
			public negate(): void;
			public offset(dx: number, dy: number): void;
			/**
			 * Returns true if the point's coordinates equal (x,y)
			 */
			public equals(x: number, y: number): boolean;
			/**
			 * Return the euclidian distance from (0,0) to the point
			 */
			public length(): number;
			/**
			 * Returns the euclidian distance from (0,0) to (x,y)
			 */
			public static length(x: number, y: number): number;
			/**
			 * Parcelable interface methods
			 */
			public describeContents(): number;
			/**
			 * Write this point to the specified parcel. To restore a point from a parcel, use readFromParcel()
			 * @param out The parcel to write the point's coordinates into
			 * @param flags 
			 */
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Set the point's coordinates from the data stored in the specified parcel. To write a point to a parcel, call writeToParcel().
			 * @param input in The parcel to read the point's coordinates from
			 */
			public readFromParcel(input: android.os.Parcel): void;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.
			 * @param o 
			 */
			equals(o: any): boolean;
		}
		export class BitmapFactoryTest {
			constructor();
			static class: java.lang.Class<android.graphics.BitmapFactoryTest>;
			public testBitmapParcelFileDescriptor(): void;
		}
		export class ColorMatrixColorFilter extends android.graphics.ColorFilter {
			/**
			 * Create a colorfilter that transforms colors through a 4x5 color matrix.
			 * @param matrix 4x5 matrix used to transform colors. It is copied into
			 */
			constructor(matrix: android.graphics.ColorMatrix);
			/**
			 * Create a colorfilter that transforms colors through a 4x5 color matrix.
			 * @param array array of floats used to transform colors, treated as a 4x5
			 */
			constructor(array: native.Array<number>);
			static class: java.lang.Class<android.graphics.ColorMatrixColorFilter>;
		}
		/**
		 * Captures frames from an image stream as an OpenGL ES texture.
		 */
		export class SurfaceTexture extends java.lang.Object {
			/**
			 * Construct a new SurfaceTexture to stream images to a given OpenGL texture.
			 * @param texName the OpenGL texture object name (e.g. generated via glGenTextures)
			 */
			constructor(texName: number);
			static class: java.lang.Class<android.graphics.SurfaceTexture>;
			EventHandler: {
	new (looper: android.os.Looper): android.graphics.SurfaceTexture.EventHandler;
};
			/**
			 * Register a callback to be invoked when a new image frame becomes available to the SurfaceTexture. Note that this callback may be called on an arbitrary thread, so it is not safe to call #updateTexImage without first binding the OpenGL ES context to the thread invoking the callback.
			 */
			public setOnFrameAvailableListener(l: android.graphics.SurfaceTexture.IOnFrameAvailableListener): void;
			/**
			 * Set the default size of the image buffers. The image producer may override the buffer size, in which case the producer-set buffer size will be used, not the default size set by this method. Both video and camera based image producers do override the size. This method may be used to set the image size when producing images with android.graphics.Canvas (via android.view.Surface#lockCanvas), or OpenGL ES (via an EGLSurface).
			 */
			public setDefaultBufferSize(width: number, height: number): void;
			/**
			 * Update the texture image to the most recent frame from the image stream. This may only be called while the OpenGL ES context that owns the texture is current on the calling thread. It will implicitly bind its texture to the GL_TEXTURE_EXTERNAL_OES texture target.
			 */
			public updateTexImage(): void;
			/**
			 * Detach the SurfaceTexture from the OpenGL ES context that owns the OpenGL ES texture object. This call must be made with the OpenGL ES context current on the calling thread. The OpenGL ES texture object will be deleted as a result of this call. After calling this method all calls to #updateTexImage will throw an java.lang.IllegalStateException until a successful call to #attachToGLContext is made.
			 */
			public detachFromGLContext(): void;
			/**
			 * Attach the SurfaceTexture to the OpenGL ES context that is current on the calling thread. A new OpenGL ES texture object is created and populated with the SurfaceTexture image frame that was current at the time of the last call to #detachFromGLContext. This new texture is bound to the GL_TEXTURE_EXTERNAL_OES texture target.
			 * @param texName The name of the OpenGL ES texture that will be created. This texture name
			 */
			public attachToGLContext(texName: number): void;
			/**
			 * Retrieve the 4x4 texture coordinate transform matrix associated with the texture image set by the most recent call to updateTexImage.
			 * @param mtx the array into which the 4x4 matrix will be stored. The array must have exactly
			 */
			public getTransformMatrix(mtx: native.Array<number>): void;
			/**
			 * Retrieve the timestamp associated with the texture image set by the most recent call to updateTexImage.
			 */
			public getTimestamp(): any;
			/**
			 * release() frees all the buffers and puts the SurfaceTexture into the 'abandoned' state. Once put in this state the SurfaceTexture can never leave it. When in the 'abandoned' state, all methods of the ISurfaceTexture interface will fail with the NO_INIT error.
			 */
			public release(): void;
			protected finalize(): void;
		}
		export module SurfaceTexture {
			/**
			 * Callback interface for being notified that a new stream frame is available.
			 */
			interface IOnFrameAvailableListener {
				onFrameAvailable(surfaceTexture: android.graphics.SurfaceTexture): void;
			}
			/**
			 * Exception thrown when a surface couldn't be created or resized
			 */
			export class OutOfResourcesException extends java.lang.Exception {
				constructor();
				constructor(name: string);
				static class: java.lang.Class<android.graphics.SurfaceTexture.OutOfResourcesException>;
			}
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.graphics.SurfaceTexture.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			/**
			 * Callback interface for being notified that a new stream frame is available.
			 */
			export class OnFrameAvailableListener implements android.graphics.SurfaceTexture.IOnFrameAvailableListener {
				constructor(implementation: android.graphics.SurfaceTexture.IOnFrameAvailableListener);
				public onFrameAvailable(surfaceTexture: android.graphics.SurfaceTexture): void;
			}
		}
		/**
		 * The Matrix class holds a 3x3 matrix for transforming coordinates. Matrix does not have a constructor, so it must be explicitly initialized using either reset() - to construct an identity matrix, or one of the set..() functions (e.g. setTranslate, setRotate, etc.).
		 */
		export class Matrix extends java.lang.Object {
			/**
			 * Create an identity matrix
			 */
			constructor();
			/**
			 * Create a matrix that is a (deep) copy of src
			 * @param src The matrix to copy into this matrix
			 */
			constructor(src: android.graphics.Matrix);
			static MSCALE_X: number;
			static MSKEW_X: number;
			static MTRANS_X: number;
			static MSKEW_Y: number;
			static MSCALE_Y: number;
			static MTRANS_Y: number;
			static MPERSP_0: number;
			static MPERSP_1: number;
			static MPERSP_2: number;
			static class: java.lang.Class<android.graphics.Matrix>;
			/**
			 * Returns true if the matrix is identity. This maybe faster than testing if (getType() == 0)
			 */
			public isIdentity(): boolean;
			/**
			 * Returns true if will map a rectangle to another rectangle. This can be true if the matrix is identity, scale-only, or rotates a multiple of 90 degrees.
			 */
			public rectStaysRect(): boolean;
			/**
			 * (deep) copy the src matrix into this matrix. If src is null, reset this matrix to the identity matrix.
			 */
			public set(src: android.graphics.Matrix): void;
			/**
			 * Returns true iff obj is a Matrix and its values equal our values.
			 */
			public equals(obj: any): boolean;
			/**
			 * Set the matrix to identity
			 */
			public reset(): void;
			/**
			 * Set the matrix to translate by (dx, dy).
			 */
			public setTranslate(dx: number, dy: number): void;
			/**
			 * Set the matrix to scale by sx and sy, with a pivot point at (px, py). The pivot point is the coordinate that should remain unchanged by the specified transformation.
			 */
			public setScale(sx: number, sy: number, px: number, py: number): void;
			/**
			 * Set the matrix to scale by sx and sy.
			 */
			public setScale(sx: number, sy: number): void;
			/**
			 * Set the matrix to rotate by the specified number of degrees, with a pivot point at (px, py). The pivot point is the coordinate that should remain unchanged by the specified transformation.
			 */
			public setRotate(degrees: number, px: number, py: number): void;
			/**
			 * Set the matrix to rotate about (0,0) by the specified number of degrees.
			 */
			public setRotate(degrees: number): void;
			/**
			 * Set the matrix to rotate by the specified sine and cosine values, with a pivot point at (px, py). The pivot point is the coordinate that should remain unchanged by the specified transformation.
			 */
			public setSinCos(sinValue: number, cosValue: number, px: number, py: number): void;
			/**
			 * Set the matrix to rotate by the specified sine and cosine values.
			 */
			public setSinCos(sinValue: number, cosValue: number): void;
			/**
			 * Set the matrix to skew by sx and sy, with a pivot point at (px, py). The pivot point is the coordinate that should remain unchanged by the specified transformation.
			 */
			public setSkew(kx: number, ky: number, px: number, py: number): void;
			/**
			 * Set the matrix to skew by sx and sy.
			 */
			public setSkew(kx: number, ky: number): void;
			/**
			 * Set the matrix to the concatenation of the two specified matrices, returning true if the the result can be represented. Either of the two matrices may also be the target matrix. this = a * b
			 */
			public setConcat(a: android.graphics.Matrix, b: android.graphics.Matrix): boolean;
			/**
			 * Preconcats the matrix with the specified translation. M' = M * T(dx, dy)
			 */
			public preTranslate(dx: number, dy: number): boolean;
			/**
			 * Preconcats the matrix with the specified scale. M' = M * S(sx, sy, px, py)
			 */
			public preScale(sx: number, sy: number, px: number, py: number): boolean;
			/**
			 * Preconcats the matrix with the specified scale. M' = M * S(sx, sy)
			 */
			public preScale(sx: number, sy: number): boolean;
			/**
			 * Preconcats the matrix with the specified rotation. M' = M * R(degrees, px, py)
			 */
			public preRotate(degrees: number, px: number, py: number): boolean;
			/**
			 * Preconcats the matrix with the specified rotation. M' = M * R(degrees)
			 */
			public preRotate(degrees: number): boolean;
			/**
			 * Preconcats the matrix with the specified skew. M' = M * K(kx, ky, px, py)
			 */
			public preSkew(kx: number, ky: number, px: number, py: number): boolean;
			/**
			 * Preconcats the matrix with the specified skew. M' = M * K(kx, ky)
			 */
			public preSkew(kx: number, ky: number): boolean;
			/**
			 * Preconcats the matrix with the specified matrix. M' = M * other
			 */
			public preConcat(other: android.graphics.Matrix): boolean;
			/**
			 * Postconcats the matrix with the specified translation. M' = T(dx, dy) * M
			 */
			public postTranslate(dx: number, dy: number): boolean;
			/**
			 * Postconcats the matrix with the specified scale. M' = S(sx, sy, px, py) * M
			 */
			public postScale(sx: number, sy: number, px: number, py: number): boolean;
			/**
			 * Postconcats the matrix with the specified scale. M' = S(sx, sy) * M
			 */
			public postScale(sx: number, sy: number): boolean;
			/**
			 * Postconcats the matrix with the specified rotation. M' = R(degrees, px, py) * M
			 */
			public postRotate(degrees: number, px: number, py: number): boolean;
			/**
			 * Postconcats the matrix with the specified rotation. M' = R(degrees) * M
			 */
			public postRotate(degrees: number): boolean;
			/**
			 * Postconcats the matrix with the specified skew. M' = K(kx, ky, px, py) * M
			 */
			public postSkew(kx: number, ky: number, px: number, py: number): boolean;
			/**
			 * Postconcats the matrix with the specified skew. M' = K(kx, ky) * M
			 */
			public postSkew(kx: number, ky: number): boolean;
			/**
			 * Postconcats the matrix with the specified matrix. M' = other * M
			 */
			public postConcat(other: android.graphics.Matrix): boolean;
			/**
			 * Set the matrix to the scale and translate values that map the source rectangle to the destination rectangle, returning true if the the result can be represented.
			 * @param src the source rectangle to map from.
			 * @param dst the destination rectangle to map to.
			 * @param stf the ScaleToFit option
			 */
			public setRectToRect(src: android.graphics.RectF, dst: android.graphics.RectF, stf: android.graphics.Matrix.ScaleToFit): boolean;
			/**
			 * Set the matrix such that the specified src points would map to the specified dst points. The "points" are represented as an array of floats, order [x0, y0, x1, y1, ...], where each "point" is 2 float values.
			 * @param src The array of src [x,y] pairs (points)
			 * @param srcIndex Index of the first pair of src values
			 * @param dst The array of dst [x,y] pairs (points)
			 * @param dstIndex Index of the first pair of dst values
			 * @param pointCount The number of pairs/points to be used. Must be [0..4]
			 */
			public setPolyToPoly(src: native.Array<number>, srcIndex: number, dst: native.Array<number>, dstIndex: number, pointCount: number): boolean;
			/**
			 * If this matrix can be inverted, return true and if inverse is not null, set inverse to be the inverse of this matrix. If this matrix cannot be inverted, ignore inverse and return false.
			 */
			public invert(inverse: android.graphics.Matrix): boolean;
			/**
			 * Apply this matrix to the array of 2D points specified by src, and write the transformed points into the array of points specified by dst. The two arrays represent their "points" as pairs of floats [x, y].
			 * @param dst The array of dst points (x,y pairs)
			 * @param dstIndex The index of the first [x,y] pair of dst floats
			 * @param src The array of src points (x,y pairs)
			 * @param srcIndex The index of the first [x,y] pair of src floats
			 * @param pointCount The number of points (x,y pairs) to transform
			 */
			public mapPoints(dst: native.Array<number>, dstIndex: number, src: native.Array<number>, srcIndex: number, pointCount: number): void;
			/**
			 * Apply this matrix to the array of 2D vectors specified by src, and write the transformed vectors into the array of vectors specified by dst. The two arrays represent their "vectors" as pairs of floats [x, y].
			 * @param dst The array of dst vectors (x,y pairs)
			 * @param dstIndex The index of the first [x,y] pair of dst floats
			 * @param src The array of src vectors (x,y pairs)
			 * @param srcIndex The index of the first [x,y] pair of src floats
			 * @param vectorCount The number of vectors (x,y pairs) to transform
			 */
			public mapVectors(dst: native.Array<number>, dstIndex: number, src: native.Array<number>, srcIndex: number, vectorCount: number): void;
			/**
			 * Apply this matrix to the array of 2D points specified by src, and write the transformed points into the array of points specified by dst. The two arrays represent their "points" as pairs of floats [x, y].
			 * @param dst The array of dst points (x,y pairs)
			 * @param src The array of src points (x,y pairs)
			 */
			public mapPoints(dst: native.Array<number>, src: native.Array<number>): void;
			/**
			 * Apply this matrix to the array of 2D vectors specified by src, and write the transformed vectors into the array of vectors specified by dst. The two arrays represent their "vectors" as pairs of floats [x, y].
			 * @param dst The array of dst vectors (x,y pairs)
			 * @param src The array of src vectors (x,y pairs)
			 */
			public mapVectors(dst: native.Array<number>, src: native.Array<number>): void;
			/**
			 * Apply this matrix to the array of 2D points, and write the transformed points back into the array
			 * @param pts The array [x0, y0, x1, y1, ...] of points to transform.
			 */
			public mapPoints(pts: native.Array<number>): void;
			/**
			 * Apply this matrix to the array of 2D vectors, and write the transformed vectors back into the array.
			 * @param vecs The array [x0, y0, x1, y1, ...] of vectors to transform.
			 */
			public mapVectors(vecs: native.Array<number>): void;
			/**
			 * Apply this matrix to the src rectangle, and write the transformed rectangle into dst. This is accomplished by transforming the 4 corners of src, and then setting dst to the bounds of those points.
			 * @param dst Where the transformed rectangle is written.
			 * @param src The original rectangle to be transformed.
			 */
			public mapRect(dst: android.graphics.RectF, src: android.graphics.RectF): boolean;
			/**
			 * Apply this matrix to the rectangle, and write the transformed rectangle back into it. This is accomplished by transforming the 4 corners of rect, and then setting it to the bounds of those points
			 * @param rect The rectangle to transform.
			 */
			public mapRect(rect: android.graphics.RectF): boolean;
			/**
			 * Return the mean radius of a circle after it has been mapped by this matrix. NOTE: in perspective this value assumes the circle has its center at the origin.
			 */
			public mapRadius(radius: number): number;
			/**
			 * Copy 9 values from the matrix into the array.
			 */
			public getValues(values: native.Array<number>): void;
			/**
			 * Copy 9 values from the array into the matrix. Depending on the implementation of Matrix, these may be transformed into 16.16 integers in the Matrix, such that a subsequent call to getValues() will not yield exactly the same values.
			 */
			public setValues(values: native.Array<number>): void;
			public toString(): string;
			public toShortString(): string;
			protected finalize(): void;
			ni(): number;
		}
		export module Matrix {
			/**
			 * Controlls how the src rect should align into the dst rect for setRectToRect().
			 */
			export enum ScaleToFit {
				FILL,
				START,
				CENTER,
				END
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.EmbossMaskFilter
		 */
		export class EmbossMaskFilter_Delegate extends android.graphics.MaskFilter_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.EmbossMaskFilter_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeConstructor(direction: native.Array<number>, ambient: number, specular: number, blurRadius: number): number;
		}
		/**
		 * A picture records drawing calls (via the canvas returned by beginRecording) and can then play them back (via picture.draw(canvas) or canvas.drawPicture). The picture's contents can also be written to a stream, and then later restored to a new picture (via writeToStream / createFromStream). For most content (esp. text, lines, rectangles), drawing a sequence from a picture can be faster than the equivalent API calls, since the picture performs its playback without incurring any java-call overhead.
		 */
		export class Picture extends java.lang.Object {
			constructor();
			/**
			 * Create a picture by making a copy of what has already been recorded in src. The contents of src are unchanged, and if src changes later, those changes will not be reflected in this picture.
			 */
			constructor(src: android.graphics.Picture);
			static class: java.lang.Class<android.graphics.Picture>;
			/**
			 * To record a picture, call beginRecording() and then draw into the Canvas that is returned. Nothing we appear on screen, but all of the draw commands (e.g. drawRect(...)) will be recorded. To stop recording, call endRecording(). At this point the Canvas that was returned must no longer be referenced, and nothing should be drawn into it.
			 */
			public beginRecording(width: number, height: number): android.graphics.Canvas;
			/**
			 * Call endRecording when the picture is built. After this call, the picture may be drawn, but the canvas that was returned by beginRecording must not be referenced anymore. This is automatically called if Picture.draw() or Canvas.drawPicture() is called.
			 */
			public endRecording(): void;
			/**
			 * Get the width of the picture as passed to beginRecording. This does not reflect (per se) the content of the picture.
			 */
			public getWidth(): number;
			/**
			 * Get the height of the picture as passed to beginRecording. This does not reflect (per se) the content of the picture.
			 */
			public getHeight(): number;
			/**
			 * Draw this picture on the canvas. The picture may have the side effect of changing the matrix and clip of the canvas. 
			 * @param canvas The picture is drawn to this canvas
			 */
			public draw(canvas: android.graphics.Canvas): void;
			/**
			 * Create a new picture (already recorded) from the data in the stream. This data was generated by a previous call to writeToStream(). <strong>Note:</strong> a picture created from an input stream cannot be replayed on a hardware accelerated canvas. #writeToStream(java.io.OutputStream)
			 */
			public static createFromStream(stream: java.io.InputStream): android.graphics.Picture;
			/**
			 * Write the picture contents to a stream. The data can be used to recreate the picture in this or another process by calling createFromStream.
			 */
			public writeToStream(stream: java.io.OutputStream): void;
			protected finalize(): void;
			ni(): number;
		}
		export module Picture {
			export class RecordingCanvas extends android.graphics.Canvas {
				constructor(pict: android.graphics.Picture, nativeCanvas: number);
				static class: java.lang.Class<android.graphics.Picture.RecordingCanvas>;
				public setBitmap(bitmap: android.graphics.Bitmap): void;
				public drawPicture(picture: android.graphics.Picture): void;
				/**
				 * Draw the picture, stretched to fit into the dst rectangle.
				 */
				drawPicture(picture: android.graphics.Picture, dst: android.graphics.RectF): void;
				/**
				 * Draw the picture, stretched to fit into the dst rectangle.
				 */
				drawPicture(picture: android.graphics.Picture, dst: android.graphics.Rect): void;
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Typeface
		 */
		export class Typeface_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.graphics.Typeface_Delegate>;
			public static getDelegate(nativeTypeface: number): android.graphics.Typeface_Delegate;
			static nativeCreate(familyName: string, style: number): number;
			static nativeCreateFromTypeface(native_instance: number, style: number): number;
			static nativeCreateFromAsset(mgr: android.content.res.AssetManager, path: string): number;
			static nativeCreateFromFile(path: string): number;
			static nativeUnref(native_instance: number): void;
			static nativeGetStyle(native_instance: number): number;
			static setGammaForText(blackGamma: number, whiteGamma: number): void;
		}
		export module drawable {
			/**
			 * A Drawable that changes the size of another Drawable based on its current level value. You can control how much the child Drawable changes in width and height based on the level, as well as a gravity to control where it is placed in its overall container. Most often used to implement things like progress bars.
			 */
			export class ScaleDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.ICallback {
				constructor(drawable: android.graphics.drawable.Drawable, gravity: number, scaleWidth: number, scaleHeight: number);
				static class: java.lang.Class<android.graphics.drawable.ScaleDrawable>;
				/**
				 * Returns the drawable scaled by this ScaleDrawable.
				 */
				public getDrawable(): android.graphics.drawable.Drawable;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public invalidateDrawable(who: android.graphics.drawable.Drawable): void;
				public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
				public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				public draw(canvas: android.graphics.Canvas): void;
				public getChangingConfigurations(): number;
				public getPadding(padding: android.graphics.Rect): boolean;
				public setVisible(visible: boolean, restart: boolean): boolean;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public getOpacity(): number;
				public isStateful(): boolean;
				protected onStateChange(state: native.Array<number>): boolean;
				protected onLevelChange(level: number): boolean;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module ScaleDrawable {
				export class ScaleState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.ScaleDrawable.ScaleState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
					canConstantState(): boolean;
				}
			}
			/**
			 * An extension of LayerDrawables that is intended to cross-fade between the first and second layer. To start the transition, call #startTransition(int). To display just the first layer, call #resetTransition().
			 */
			export class TransitionDrawable extends android.graphics.drawable.LayerDrawable implements android.graphics.drawable.Drawable.ICallback {
				/**
				 * Create a new transition drawable with the specified list of layers. At least 2 layers are required for this drawable to work properly.
				 */
				constructor(layers: native.Array<android.graphics.drawable.Drawable>);
				static class: java.lang.Class<android.graphics.drawable.TransitionDrawable>;
				createConstantState(state: android.graphics.drawable.LayerDrawable.LayerState, res: android.content.res.Resources): android.graphics.drawable.LayerDrawable.LayerState;
				/**
				 * Begin the second layer on top of the first layer. 
				 * @param durationMillis The length of the transition in milliseconds
				 */
				public startTransition(durationMillis: number): void;
				/**
				 * Show only the first layer.
				 */
				public resetTransition(): void;
				/**
				 * Reverses the transition, picking up where the transition currently is. If the transition is not currently running, this will start the transition with the specified duration. If the transition is already running, the last known duration will be used.
				 * @param duration The duration to use if no transition is running.
				 */
				public reverseTransition(duration: number): void;
				public draw(canvas: android.graphics.Canvas): void;
				/**
				 * Enables or disables the cross fade of the drawables. When cross fade is disabled, the first drawable is always drawn opaque. With cross fade enabled, the first drawable is drawn with the opposite alpha of the second drawable. Cross fade is disabled by default.
				 * @param enabled True to enable cross fading, false otherwise.
				 */
				public setCrossFadeEnabled(enabled: boolean): void;
				/**
				 * Indicates whether the cross fade is enabled for this transition.
				 */
				public isCrossFadeEnabled(): boolean;
				/**
				 * Called when the drawable needs to be redrawn. A view at this point should invalidate itself (or at least the part of itself where the drawable appears).
				 * @param who The drawable that is requesting the update.
				 */
				invalidateDrawable(who: android.graphics.drawable.Drawable): void;
				/**
				 * A Drawable can call this to schedule the next frame of its animation. An implementation can generally simply call android.os.Handler#postAtTime(Runnable, Object, long) with the parameters <var>(what, who, when)</var> to perform the scheduling.
				 * @param who The drawable being scheduled.
				 * @param what The action to execute.
				 * @param when The time (in milliseconds) to run. The timebase is
				 */
				scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
				/**
				 * A Drawable can call this to unschedule an action previously scheduled with #scheduleDrawable. An implementation can generally simply call android.os.Handler#removeCallbacks(Runnable, Object) with the parameters <var>(what, who)</var> to unschedule the drawable.
				 * @param who The drawable being unscheduled.
				 * @param what The action being unscheduled.
				 */
				unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
			}
			export module TransitionDrawable {
				export class TransitionState extends android.graphics.drawable.LayerDrawable.LayerState {
					static class: java.lang.Class<android.graphics.drawable.TransitionDrawable.TransitionState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
				}
			}
			/**
			 *  An object used to create frame-by-frame animations, defined by a series of Drawable objects, which can be used as a View object's background.
			 */
			export class AnimationDrawable extends android.graphics.drawable.DrawableContainer implements java.lang.IRunnable, android.graphics.drawable.IAnimatable {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.AnimationDrawable>;
				public setVisible(visible: boolean, restart: boolean): boolean;
				public start(): void;
				public stop(): void;
				public isRunning(): boolean;
				public run(): void;
				public unscheduleSelf(what: java.lang.IRunnable): void;
				public getNumberOfFrames(): number;
				public getFrame(index: number): android.graphics.drawable.Drawable;
				public getDuration(i: number): number;
				public isOneShot(): boolean;
				/**
				 * Sets whether the animation should play once or repeat. 
				 * @param oneShot Pass true if the animation should only play once
				 */
				public setOneShot(oneShot: boolean): void;
				/**
				 * Add a frame to the animation 
				 * @param frame The frame to add
				 * @param duration How long in milliseconds the frame should appear
				 */
				public addFrame(frame: android.graphics.drawable.Drawable, duration: number): void;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public mutate(): android.graphics.drawable.Drawable;
			}
			export module AnimationDrawable {
				export class AnimationState extends android.graphics.drawable.DrawableContainer.DrawableContainerState {
					static class: java.lang.Class<android.graphics.drawable.AnimationDrawable.AnimationState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public addFrame(dr: android.graphics.drawable.Drawable, dur: number): void;
					public growArray(oldSize: number, newSize: number): void;
				}
			}
			/**
			 * A resource that manages a number of alternate Drawables, each assigned a maximum numerical value. Setting the level value of the object with #setLevel(int) will load the image with the next greater or equal value assigned to its max attribute. A good example use of a LevelListDrawable would be a battery level indicator icon, with different images to indicate the current battery level.
			 */
			export class LevelListDrawable extends android.graphics.drawable.DrawableContainer {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.LevelListDrawable>;
				public addLevel(low: number, high: number, drawable: android.graphics.drawable.Drawable): void;
				protected onLevelChange(level: number): boolean;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public mutate(): android.graphics.drawable.Drawable;
			}
			export module LevelListDrawable {
				export class LevelListState extends android.graphics.drawable.DrawableContainer.DrawableContainerState {
					static class: java.lang.Class<android.graphics.drawable.LevelListDrawable.LevelListState>;
					public addLevel(low: number, high: number, drawable: android.graphics.drawable.Drawable): void;
					public indexOfLevel(level: number): number;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public growArray(oldSize: number, newSize: number): void;
				}
			}
			export class RotateDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.ICallback {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.RotateDrawable>;
				public draw(canvas: android.graphics.Canvas): void;
				/**
				 * Returns the drawable rotated by this RotateDrawable.
				 */
				public getDrawable(): android.graphics.drawable.Drawable;
				public getChangingConfigurations(): number;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public getOpacity(): number;
				public invalidateDrawable(who: android.graphics.drawable.Drawable): void;
				public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
				public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				public getPadding(padding: android.graphics.Rect): boolean;
				public setVisible(visible: boolean, restart: boolean): boolean;
				public isStateful(): boolean;
				protected onStateChange(state: native.Array<number>): boolean;
				protected onLevelChange(level: number): boolean;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module RotateDrawable {
				export class RotateState extends android.graphics.drawable.Drawable.ConstantState {
					constructor(source: android.graphics.drawable.RotateDrawable.RotateState, owner: android.graphics.drawable.RotateDrawable, res: android.content.res.Resources);
					static class: java.lang.Class<android.graphics.drawable.RotateDrawable.RotateState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
					public canConstantState(): boolean;
				}
			}
			/**
			 * A Drawable is a general abstraction for "something that can be drawn." Most often you will deal with Drawable as the type of resource retrieved for drawing things to the screen; the Drawable class provides a generic API for dealing with an underlying visual resource that may take a variety of forms. Unlike a android.view.View, a Drawable does not have any facility to receive events or otherwise interact with the user.
			 */
			export class Drawable extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.Drawable>;
				/**
				 * Draw in its bounds (set via setBounds) respecting optional effects such as alpha (set via setAlpha) and color filter (set via setColorFilter).
				 * @param canvas The canvas to draw into
				 */
				public draw(canvas: android.graphics.Canvas): void;
				/**
				 * Specify a bounding rectangle for the Drawable. This is where the drawable will draw when its draw() method is called.
				 */
				public setBounds(left: number, top: number, right: number, bottom: number): void;
				/**
				 * Specify a bounding rectangle for the Drawable. This is where the drawable will draw when its draw() method is called.
				 */
				public setBounds(bounds: android.graphics.Rect): void;
				/**
				 * Return a copy of the drawable's bounds in the specified Rect (allocated by the caller). The bounds specify where this will draw when its draw() method is called.
				 * @param bounds Rect to receive the drawable's bounds (allocated by the
				 */
				public copyBounds(bounds: android.graphics.Rect): void;
				/**
				 * Return a copy of the drawable's bounds in a new Rect. This returns the same values as getBounds(), but the returned object is guaranteed to not be changed later by the drawable (i.e. it retains no reference to this rect). If the caller already has a Rect allocated, call copyBounds(rect).
				 */
				public copyBounds(): android.graphics.Rect;
				/**
				 * Return the drawable's bounds Rect. Note: for efficiency, the returned object may be the same object stored in the drawable (though this is not guaranteed), so if a persistent copy of the bounds is needed, call copyBounds(rect) instead. You should also not change the object returned by this method as it may be the same object stored in the drawable.
				 */
				public getBounds(): android.graphics.Rect;
				/**
				 * Set a mask of the configuration parameters for which this drawable may change, requiring that it be re-created.
				 * @param configs A mask of the changing configuration parameters, as
				 */
				public setChangingConfigurations(configs: number): void;
				/**
				 * Return a mask of the configuration parameters for which this drawable may change, requiring that it be re-created. The default implementation returns whatever was provided through #setChangingConfigurations(int) or 0 by default. Subclasses may extend this to or in the changing configurations of any other drawables they hold.
				 */
				public getChangingConfigurations(): number;
				/**
				 * Set to true to have the drawable dither its colors when drawn to a device with fewer than 8-bits per color component. This can improve the look on those devices, but can also slow down the drawing a little.
				 */
				public setDither(dither: boolean): void;
				/**
				 * Set to true to have the drawable filter its bitmap when scaled or rotated (for drawables that use bitmaps). If the drawable does not use bitmaps, this call is ignored. This can improve the look when scaled or rotated, but also slows down the drawing.
				 */
				public setFilterBitmap(filter: boolean): void;
				/**
				 * Bind a Callback object to this Drawable. Required for clients that want to support animated drawables.
				 * @param cb The client's Callback implementation.
				 */
				public setCallback(cb: android.graphics.drawable.Drawable.ICallback): void;
				/**
				 * Return the current Callback implementation attached to this Drawable. 
				 */
				public getCallback(): android.graphics.drawable.Drawable.ICallback;
				/**
				 * Use the current Callback implementation to have this Drawable redrawn. Does nothing if there is no Callback attached to the Drawable.
				 */
				public invalidateSelf(): void;
				/**
				 * Use the current Callback implementation to have this Drawable scheduled. Does nothing if there is no Callback attached to the Drawable.
				 * @param what The action being scheduled.
				 * @param when The time (in milliseconds) to run.
				 */
				public scheduleSelf(what: java.lang.IRunnable, when: number): void;
				/**
				 * Use the current Callback implementation to have this Drawable unscheduled. Does nothing if there is no Callback attached to the Drawable.
				 * @param what The runnable that you no longer want called.
				 */
				public unscheduleSelf(what: java.lang.IRunnable): void;
				/**
				 * Specify an alpha value for the drawable. 0 means fully transparent, and 255 means fully opaque.
				 */
				public setAlpha(alpha: number): void;
				/**
				 * Specify an optional colorFilter for the drawable. Pass null to remove any filters.
				 */
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				public setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
				public clearColorFilter(): void;
				/**
				 * Indicates whether this view will change its appearance based on state. Clients can use this to determine whether it is necessary to calculate their state and call setState.
				 */
				public isStateful(): boolean;
				/**
				 * Specify a set of states for the drawable. These are use-case specific, so see the relevant documentation. As an example, the background for widgets like Button understand the following states: [android.R.attr#state_focused, android.R.attr#state_pressed].
				 * @param stateSet The new set of states to be displayed.
				 */
				public setState(stateSet: native.Array<number>): boolean;
				/**
				 * Describes the current state, as a union of primitve states, such as android.R.attr#state_focused, android.R.attr#state_selected, etc. Some drawables may modify their imagery based on the selected state.
				 */
				public getState(): native.Array<number>;
				/**
				 * If this Drawable does transition animations between states, ask that it immediately jump to the current state and skip any active animations.
				 */
				public jumpToCurrentState(): void;
				public getCurrent(): android.graphics.drawable.Drawable;
				/**
				 * Specify the level for the drawable. This allows a drawable to vary its imagery based on a continuous controller, for example to show progress or volume level.
				 * @param level The new level, from 0 (minimum) to 10000 (maximum).
				 */
				public setLevel(level: number): boolean;
				/**
				 * Retrieve the current level.
				 */
				public getLevel(): number;
				/**
				 * Set whether this Drawable is visible. This generally does not impact the Drawable's behavior, but is a hint that can be used by some Drawables, for example, to decide whether run animations.
				 * @param visible Set to true if visible, false if not.
				 * @param restart You can supply true here to force the drawable to behave
				 */
				public setVisible(visible: boolean, restart: boolean): boolean;
				public isVisible(): boolean;
				/**
				 * Return the opacity/transparency of this Drawable. The returned value is one of the abstract format constants in android.graphics.PixelFormat: android.graphics.PixelFormat#UNKNOWN, android.graphics.PixelFormat#TRANSLUCENT, android.graphics.PixelFormat#TRANSPARENT, or android.graphics.PixelFormat#OPAQUE.
				 */
				public getOpacity(): number;
				/**
				 * Return the appropriate opacity value for two source opacities. If either is UNKNOWN, that is returned; else, if either is TRANSLUCENT, that is returned; else, if either is TRANSPARENT, that is returned; else, OPAQUE is returned.
				 * @param op1 One opacity value.
				 * @param op2 Another opacity value.
				 */
				public static resolveOpacity(op1: number, op2: number): number;
				/**
				 * Returns a Region representing the part of the Drawable that is completely transparent. This can be used to perform drawing operations, identifying which parts of the target will not change when rendering the Drawable. The default implementation returns null, indicating no transparent region; subclasses can optionally override this to return an actual Region if they want to supply this optimization information, but it is not required that they do so.
				 */
				public getTransparentRegion(): android.graphics.Region;
				/**
				 * Override this in your subclass to change appearance if you recognize the specified state.
				 */
				protected onStateChange(state: native.Array<number>): boolean;
				/**
				 * Override this in your subclass to change appearance if you vary based on level.
				 */
				protected onLevelChange(level: number): boolean;
				/**
				 * Override this in your subclass to change appearance if you recognize the specified state.
				 */
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				/**
				 * Return the intrinsic width of the underlying drawable object. Returns -1 if it has no intrinsic width, such as with a solid color.
				 */
				public getIntrinsicWidth(): number;
				/**
				 * Return the intrinsic height of the underlying drawable object. Returns -1 if it has no intrinsic height, such as with a solid color.
				 */
				public getIntrinsicHeight(): number;
				/**
				 * Returns the minimum width suggested by this Drawable. If a View uses this Drawable as a background, it is suggested that the View use at least this value for its width. (There will be some scenarios where this will not be possible.) This value should INCLUDE any padding.
				 */
				public getMinimumWidth(): number;
				/**
				 * Returns the minimum height suggested by this Drawable. If a View uses this Drawable as a background, it is suggested that the View use at least this value for its height. (There will be some scenarios where this will not be possible.) This value should INCLUDE any padding.
				 */
				public getMinimumHeight(): number;
				/**
				 * Return in padding the insets suggested by this Drawable for placing content inside the drawable's bounds. Positive values move toward the center of the Drawable (set Rect.inset). Returns true if this drawable actually has a padding, else false. When false is returned, the padding is always set to 0.
				 */
				public getPadding(padding: android.graphics.Rect): boolean;
				/**
				 * Make this drawable mutable. This operation cannot be reversed. A mutable drawable is guaranteed to not share its state with any other drawable. This is especially useful when you need to modify properties of drawables loaded from resources. By default, all drawables instances loaded from the same resource share a common state; if you modify the state of one instance, all the other instances will receive the same modification.
				 */
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Create a drawable from an inputstream
				 */
				public static createFromStream(is: java.io.InputStream, srcName: string): android.graphics.drawable.Drawable;
				/**
				 * Create a drawable from an inputstream, using the given resources and value to determine density information.
				 */
				public static createFromResourceStream(res: android.content.res.Resources, value: android.util.TypedValue, is: java.io.InputStream, srcName: string): android.graphics.drawable.Drawable;
				/**
				 * Create a drawable from an inputstream, using the given resources and value to determine density information.
				 */
				public static createFromResourceStream(res: android.content.res.Resources, value: android.util.TypedValue, is: java.io.InputStream, srcName: string, opts: android.graphics.BitmapFactory.Options): android.graphics.drawable.Drawable;
				/**
				 * Create a drawable from an XML document. For more information on how to create resources in XML, see <a href="guide/topics/resources/drawable-resource.html">Drawable Resources</a>.
				 */
				public static createFromXml(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser): android.graphics.drawable.Drawable;
				/**
				 * Create from inside an XML document. Called on a parser positioned at a tag in an XML document, tries to create a Drawable from that tag. Returns null if the tag is not a valid drawable.
				 */
				public static createFromXmlInner(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): android.graphics.drawable.Drawable;
				/**
				 * Create a drawable from file path name.
				 */
				public static createFromPath(pathName: string): android.graphics.drawable.Drawable;
				/**
				 * Inflate this Drawable from an XML resource.
				 */
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				/**
				 * Inflate a Drawable from an XML resource.
				 */
				inflateWithAttributes(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.content.res.TypedArray, visibleAttr: number): void;
				/**
				 * Return a ConstantState instance that holds the shared state of this Drawable. q
				 */
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
			}
			export module Drawable {
				/**
				 * This abstract class is used by Drawables to store shared constant state and data between Drawables. BitmapDrawables created from the same resource will for instance share a unique bitmap stored in their ConstantState.
				 */
				export class ConstantState extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.graphics.drawable.Drawable.ConstantState>;
					/**
					 * Create a new drawable without supplying resources the caller is running in. Note that using this means the density-dependent drawables (like bitmaps) will not be able to update their target density correctly. One should use #newDrawable(Resources) instead to provide a resource.
					 */
					public newDrawable(): android.graphics.drawable.Drawable;
					/**
					 * Create a new Drawable instance from its constant state. This must be implemented for drawables that change based on the target density of their caller (that is depending on whether it is in compatibility mode).
					 */
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					/**
					 * Return a bit mask of configuration changes that will impact this drawable (and thus require completely reloading it).
					 */
					public getChangingConfigurations(): number;
				}
				/**
				 * Implement this interface if you want to create an animated drawable that extends android.graphics.drawable.Drawable Drawable. Upon retrieving a drawable, use Drawable#setCallback(android.graphics.drawable.Drawable.Callback) to supply your implementation of the interface to the drawable; it uses this interface to schedule and execute animation changes.
				 */
				export class Callback implements android.graphics.drawable.Drawable.ICallback {
					constructor(implementation: android.graphics.drawable.Drawable.ICallback);
					/**
					 * Called when the drawable needs to be redrawn. A view at this point should invalidate itself (or at least the part of itself where the drawable appears).
					 * @param who The drawable that is requesting the update.
					 */
					public invalidateDrawable(who: android.graphics.drawable.Drawable): void;
					/**
					 * A Drawable can call this to schedule the next frame of its animation. An implementation can generally simply call android.os.Handler#postAtTime(Runnable, Object, long) with the parameters <var>(what, who, when)</var> to perform the scheduling.
					 * @param who The drawable being scheduled.
					 * @param what The action to execute.
					 * @param when The time (in milliseconds) to run. The timebase is
					 */
					public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
					/**
					 * A Drawable can call this to unschedule an action previously scheduled with #scheduleDrawable. An implementation can generally simply call android.os.Handler#removeCallbacks(Runnable, Object) with the parameters <var>(what, who)</var> to unschedule the drawable.
					 * @param who The drawable being unscheduled.
					 * @param what The action being unscheduled.
					 */
					public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				}
				/**
				 * Implement this interface if you want to create an animated drawable that extends android.graphics.drawable.Drawable Drawable. Upon retrieving a drawable, use Drawable#setCallback(android.graphics.drawable.Drawable.Callback) to supply your implementation of the interface to the drawable; it uses this interface to schedule and execute animation changes.
				 */
				interface ICallback {
					/**
					 * Called when the drawable needs to be redrawn. A view at this point should invalidate itself (or at least the part of itself where the drawable appears).
					 * @param who The drawable that is requesting the update.
					 */
					invalidateDrawable(who: android.graphics.drawable.Drawable): void;
					/**
					 * A Drawable can call this to schedule the next frame of its animation. An implementation can generally simply call android.os.Handler#postAtTime(Runnable, Object, long) with the parameters <var>(what, who, when)</var> to perform the scheduling.
					 * @param who The drawable being scheduled.
					 * @param what The action to execute.
					 * @param when The time (in milliseconds) to run. The timebase is
					 */
					scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
					/**
					 * A Drawable can call this to unschedule an action previously scheduled with #scheduleDrawable. An implementation can generally simply call android.os.Handler#removeCallbacks(Runnable, Object) with the parameters <var>(what, who)</var> to unschedule the drawable.
					 * @param who The drawable being unscheduled.
					 * @param what The action being unscheduled.
					 */
					unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				}
			}
			/**
			 * Drawable that draws its bounds in the given paint, with optional rounded corners.
			 */
			export class PaintDrawable extends android.graphics.drawable.ShapeDrawable {
				constructor();
				constructor(color: number);
				static class: java.lang.Class<android.graphics.drawable.PaintDrawable>;
				/**
				 * Specify radius for the corners of the rectangle. If this is > 0, then the drawable is drawn in a round-rectangle, rather than a rectangle.
				 * @param radius the radius for the corners of the rectangle
				 */
				public setCornerRadius(radius: number): void;
				/**
				 * Specify radii for each of the 4 corners. For each corner, the array contains 2 values, [X_radius, Y_radius]. The corners are ordered top-left, top-right, bottom-right, bottom-left
				 * @param radii the x and y radii of the corners
				 */
				public setCornerRadii(radii: native.Array<number>): void;
				protected inflateTag(name: string, r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): boolean;
			}
			/**
			 * A Drawable that wraps a bitmap and can be tiled, stretched, or aligned. You can create a BitmapDrawable from a file path, an input stream, through XML inflation, or from a android.graphics.Bitmap object.
			 */
			export class BitmapDrawable extends android.graphics.drawable.Drawable {
				/**
				 * Create an empty drawable, not dealing with density. Use #BitmapDrawable(Resources) to ensure that the drawable has correctly set its target density.
				 */
				constructor();
				/**
				 * Create an empty drawable, setting initial target density based on the display metrics of the resources.
				 */
				constructor(res: android.content.res.Resources);
				/**
				 * Create drawable from a bitmap, not dealing with density. Use #BitmapDrawable(Resources, Bitmap) to ensure that the drawable has correctly set its target density.
				 */
				constructor(bitmap: android.graphics.Bitmap);
				/**
				 * Create drawable from a bitmap, setting initial target density based on the display metrics of the resources.
				 */
				constructor(res: android.content.res.Resources, bitmap: android.graphics.Bitmap);
				/**
				 * Create a drawable by opening a given file path and decoding the bitmap. Use #BitmapDrawable(Resources, String) to ensure that the drawable has correctly set its target density.
				 */
				constructor(filepath: string);
				/**
				 * Create a drawable by opening a given file path and decoding the bitmap.
				 */
				constructor(res: android.content.res.Resources, filepath: string);
				/**
				 * Create a drawable by decoding a bitmap from the given input stream. Use #BitmapDrawable(Resources, java.io.InputStream) to ensure that the drawable has correctly set its target density.
				 */
				constructor(is: java.io.InputStream);
				/**
				 * Create a drawable by decoding a bitmap from the given input stream.
				 */
				constructor(res: android.content.res.Resources, is: java.io.InputStream);
				static class: java.lang.Class<android.graphics.drawable.BitmapDrawable>;
				/**
				 * Returns the paint used to render this drawable.
				 */
				public getPaint(): android.graphics.Paint;
				/**
				 * Returns the bitmap used by this drawable to render. May be null.
				 */
				public getBitmap(): android.graphics.Bitmap;
				/**
				 * Set the density scale at which this drawable will be rendered. This method assumes the drawable will be rendered at the same density as the specified canvas.
				 * @param canvas The Canvas from which the density scale must be obtained.
				 */
				public setTargetDensity(canvas: android.graphics.Canvas): void;
				/**
				 * Set the density scale at which this drawable will be rendered.
				 * @param metrics The DisplayMetrics indicating the density scale for this drawable.
				 */
				public setTargetDensity(metrics: android.util.DisplayMetrics): void;
				/**
				 * Set the density at which this drawable will be rendered.
				 * @param density The density scale for this drawable.
				 */
				public setTargetDensity(density: number): void;
				/**
				 * Get the gravity used to position/stretch the bitmap within its bounds. See android.view.Gravity
				 */
				public getGravity(): number;
				/**
				 * Set the gravity used to position/stretch the bitmap within its bounds. See android.view.Gravity
				 * @param gravity the gravity
				 */
				public setGravity(gravity: number): void;
				/**
				 * Enables or disables anti-aliasing for this drawable. Anti-aliasing affects the edges of the bitmap only so it applies only when the drawable is rotated. 
				 * @param aa True if the bitmap should be anti-aliased, false otherwise.
				 */
				public setAntiAlias(aa: boolean): void;
				public setFilterBitmap(filter: boolean): void;
				public setDither(dither: boolean): void;
				/**
				 * Indicates the repeat behavior of this drawable on the X axis. 
				 */
				public getTileModeX(): android.graphics.Shader.TileMode;
				/**
				 * Indicates the repeat behavior of this drawable on the Y axis. 
				 */
				public getTileModeY(): android.graphics.Shader.TileMode;
				/**
				 * Sets the repeat behavior of this drawable on the X axis. By default, the drawable does not repeat its bitmap. Using Shader.TileMode#REPEAT or Shader.TileMode#MIRROR the bitmap can be repeated (or tiled) if the bitmap is smaller than this drawable. 
				 * @param mode The repeat mode for this drawable.
				 */
				public setTileModeX(mode: android.graphics.Shader.TileMode): void;
				/**
				 * Sets the repeat behavior of this drawable on the Y axis. By default, the drawable does not repeat its bitmap. Using Shader.TileMode#REPEAT or Shader.TileMode#MIRROR the bitmap can be repeated (or tiled) if the bitmap is smaller than this drawable. 
				 * @param mode The repeat mode for this drawable.
				 */
				public setTileModeY(mode: android.graphics.Shader.TileMode): void;
				/**
				 * Sets the repeat behavior of this drawable on both axis. By default, the drawable does not repeat its bitmap. Using Shader.TileMode#REPEAT or Shader.TileMode#MIRROR the bitmap can be repeated (or tiled) if the bitmap is smaller than this drawable. 
				 * @param xmode The X repeat mode for this drawable.
				 * @param ymode The Y repeat mode for this drawable.
				 */
				public setTileModeXY(xmode: android.graphics.Shader.TileMode, ymode: android.graphics.Shader.TileMode): void;
				public getChangingConfigurations(): number;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				public draw(canvas: android.graphics.Canvas): void;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				/**
				 * A mutable BitmapDrawable still shares its Bitmap with any other Drawable that comes from the same resource.
				 */
				public mutate(): android.graphics.drawable.Drawable;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getOpacity(): number;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module BitmapDrawable {
				export class BitmapState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.BitmapDrawable.BitmapState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
				}
			}
			/**
			 * Lets you assign a number of graphic images to a single Drawable and swap out the visible item by a string ID value. <p/>
			 */
			export class StateListDrawable extends android.graphics.drawable.DrawableContainer {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.StateListDrawable>;
				/**
				 * Add a new image/string ID to the set of images.
				 * @param stateSet - An array of resource Ids to associate with the image.
				 * @param drawable -The image to show.
				 */
				public addState(stateSet: native.Array<number>, drawable: android.graphics.drawable.Drawable): void;
				public isStateful(): boolean;
				protected onStateChange(stateSet: native.Array<number>): boolean;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				getStateListState(): android.graphics.drawable.StateListDrawable.StateListState;
				public mutate(): android.graphics.drawable.Drawable;
			}
			export module StateListDrawable {
				export class StateListState extends android.graphics.drawable.DrawableContainer.DrawableContainerState {
					static class: java.lang.Class<android.graphics.drawable.StateListDrawable.StateListState>;
					addStateSet(stateSet: native.Array<number>, drawable: android.graphics.drawable.Drawable): number;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public growArray(oldSize: number, newSize: number): void;
				}
			}
			/**
			 * A Drawable that clips another Drawable based on this Drawable's current level value. You can control how much the child Drawable gets clipped in width and height based on the level, as well as a gravity to control where it is placed in its overall container. Most often used to implement things like progress bars, by increasing the drawable's level with android.graphics.drawable.Drawable#setLevel(int) setLevel(). <p class="note"><strong>Note:</strong> The drawable is clipped completely and not visible when the level is 0 and fully revealed when the level is 10,000.</p>
			 */
			export class ClipDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.ICallback {
				/**
				 * @param drawable orientation Bitwise-or of {@link #HORIZONTAL} and/or {@link #VERTICAL}
				 * @param gravity 
				 * @param orientation 
				 */
				constructor(drawable: android.graphics.drawable.Drawable, gravity: number, orientation: number);
				static HORIZONTAL: number;
				static VERTICAL: number;
				static class: java.lang.Class<android.graphics.drawable.ClipDrawable>;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public invalidateDrawable(who: android.graphics.drawable.Drawable): void;
				public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
				public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				public getChangingConfigurations(): number;
				public getPadding(padding: android.graphics.Rect): boolean;
				public setVisible(visible: boolean, restart: boolean): boolean;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public getOpacity(): number;
				public isStateful(): boolean;
				protected onStateChange(state: native.Array<number>): boolean;
				protected onLevelChange(level: number): boolean;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				public draw(canvas: android.graphics.Canvas): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module ClipDrawable {
				export class ClipState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.ClipDrawable.ClipState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
					canConstantState(): boolean;
				}
			}
			/**
			 * A Drawable with a color gradient for buttons, backgrounds, etc.
			 */
			export class GradientDrawable extends android.graphics.drawable.Drawable {
				constructor();
				/**
				 * Create a new gradient drawable given an orientation and an array of colors for the gradient.
				 */
				constructor(orientation: android.graphics.drawable.GradientDrawable.Orientation, colors: native.Array<number>);
				/**
				 * Shape is a rectangle, possibly with rounded corners
				 */
				static RECTANGLE: number;
				/**
				 * Shape is an ellipse
				 */
				static OVAL: number;
				/**
				 * Shape is a line
				 */
				static LINE: number;
				/**
				 * Shape is a ring.
				 */
				static RING: number;
				/**
				 * Gradient is linear (default.)
				 */
				static LINEAR_GRADIENT: number;
				/**
				 * Gradient is circular.
				 */
				static RADIAL_GRADIENT: number;
				/**
				 * Gradient is a sweep.
				 */
				static SWEEP_GRADIENT: number;
				static class: java.lang.Class<android.graphics.drawable.GradientDrawable>;
				public getPadding(padding: android.graphics.Rect): boolean;
				/**
				 * @param radii 4 pairs of X and Y radius for each corner, specified in pixels.
				 */
				public setCornerRadii(radii: native.Array<number>): void;
				/**
				 * @param radius The radius in pixels of the corners of the rectangle shape
				 */
				public setCornerRadius(radius: number): void;
				/**
				 * @param width The width in pixels of the stroke
				 * @param color The color of the stroke
				 */
				public setStroke(width: number, color: number): void;
				/**
				 * @param width The width in pixels of the stroke
				 * @param color The color of the stroke
				 * @param dashWidth The length in pixels of the dashes, set to 0 to disable dashes
				 * @param dashGap The gap in pixels between dashes
				 */
				public setStroke(width: number, color: number, dashWidth: number, dashGap: number): void;
				/**
				 * @param width The width of the shape used by this drawable
				 * @param height The height of the shape used by this drawable
				 */
				public setSize(width: number, height: number): void;
				/**
				 * @param shape The desired shape for this drawable: {@link #LINE},
				 */
				public setShape(shape: number): void;
				/**
				 * @param gradient The type of the gradient: {@link #LINEAR_GRADIENT},
				 */
				public setGradientType(gradient: number): void;
				/**
				 * @param x The x coordinate of the gradient's center
				 * @param y The y coordinate of the gradient's center
				 */
				public setGradientCenter(x: number, y: number): void;
				/**
				 * @param gradientRadius The radius of the gradient in pixels
				 */
				public setGradientRadius(gradientRadius: number): void;
				/**
				 * @param useLevel True if this drawable should honor its level, false otherwise
				 */
				public setUseLevel(useLevel: boolean): void;
				/**
				 * Returns the orientation of the gradient defined in this drawable.
				 */
				public getOrientation(): android.graphics.drawable.GradientDrawable.Orientation;
				/**
				 * @param orientation The desired orientation (angle) of the gradient
				 */
				public setOrientation(orientation: android.graphics.drawable.GradientDrawable.Orientation): void;
				/**
				 * @param colors 2 or more ARGB colors
				 */
				public setColors(colors: native.Array<number>): void;
				public draw(canvas: android.graphics.Canvas): void;
				/**
				 * @param argb The color used to fill the shape
				 */
				public setColor(argb: number): void;
				public getChangingConfigurations(): number;
				public setAlpha(alpha: number): void;
				public setDither(dither: boolean): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public getOpacity(): number;
				protected onBoundsChange(r: android.graphics.Rect): void;
				protected onLevelChange(level: number): boolean;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module GradientDrawable {
				export class GradientState extends android.graphics.drawable.Drawable.ConstantState {
					constructor(state: android.graphics.drawable.GradientDrawable.GradientState);
					mChangingConfigurations: number;
					mShape: number;
					mGradient: number;
					mOrientation: android.graphics.drawable.GradientDrawable.Orientation;
					mColors: native.Array<number>;
					mTempColors: native.Array<number>;
					mTempPositions: native.Array<number>;
					mPositions: native.Array<number>;
					mHasSolidColor: boolean;
					mSolidColor: number;
					mStrokeWidth: number;
					mStrokeColor: number;
					mStrokeDashWidth: number;
					mStrokeDashGap: number;
					mRadius: number;
					mRadiusArray: native.Array<number>;
					mPadding: android.graphics.Rect;
					mWidth: number;
					mHeight: number;
					mInnerRadiusRatio: number;
					mThicknessRatio: number;
					mInnerRadius: number;
					mThickness: number;
					static class: java.lang.Class<android.graphics.drawable.GradientDrawable.GradientState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
					public setShape(shape: number): void;
					public setGradientType(gradient: number): void;
					public setGradientCenter(x: number, y: number): void;
					public setColors(colors: native.Array<number>): void;
					public setSolidColor(argb: number): void;
					public setStroke(width: number, color: number): void;
					public setStroke(width: number, color: number, dashWidth: number, dashGap: number): void;
					public setCornerRadius(radius: number): void;
					public setCornerRadii(radii: native.Array<number>): void;
					public setSize(width: number, height: number): void;
					public setGradientRadius(gradientRadius: number): void;
				}
				/**
				 * Controls how the gradient is oriented relative to the drawable's bounds
				 */
				export enum Orientation {
					TOP_BOTTOM,
					TR_BL,
					RIGHT_LEFT,
					BR_TL,
					BOTTOM_TOP,
					BL_TR,
					LEFT_RIGHT,
					TL_BR
				}
			}
			export class MipmapDrawableTest extends android.test.InstrumentationTestCase {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.MipmapDrawableTest>;
				MockDrawable: {
	new (): android.graphics.drawable.MipmapDrawableTest.MockDrawable;
	new (intrinsicHeight: number): android.graphics.drawable.MipmapDrawableTest.MockDrawable;
	new (intrinsicHeight: number, minimumHeight: number): android.graphics.drawable.MipmapDrawableTest.MockDrawable;
};
				protected setUp(): void;
				public testMipmapDrawable(): void;
				public testAddDrawable(): void;
				public testSortedByHeight(): void;
				public testSetBoundsOneItem(): void;
				public testSetBounds(): void;
				public testSizes(): void;
				public testReplacementWhenAdded(): void;
			}
			export module MipmapDrawableTest {
				export class MockDrawable extends android.graphics.drawable.Drawable {
					static class: java.lang.Class<android.graphics.drawable.MipmapDrawableTest.MockDrawable>;
					public draw(canvas: android.graphics.Canvas): void;
					public getOpacity(): number;
					public setAlpha(alpha: number): void;
					public setColorFilter(cf: android.graphics.ColorFilter): void;
					public getIntrinsicHeight(): number;
					public getMinimumHeight(): number;
					/**
					 * Specify a color and porterduff mode to be the colorfilter for this drawable.
					 */
					setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
				}
				export class MockMipmapDrawable extends android.graphics.drawable.DrawableContainer {
					static class: java.lang.Class<android.graphics.drawable.MipmapDrawableTest.MockMipmapDrawable>;
					public hasCalledOnBoundsChanged(): boolean;
					public reset(): void;
					protected onBoundsChange(bounds: android.graphics.Rect): void;
				}
			}
			/**
			 * A specialized Drawable that fills the Canvas with a specified color. Note that a ColorDrawable ignores the ColorFilter.
			 */
			export class ColorDrawable extends android.graphics.drawable.Drawable {
				/**
				 * Creates a new black ColorDrawable.
				 */
				constructor();
				/**
				 * Creates a new ColorDrawable with the specified color.
				 * @param color The color to draw.
				 */
				constructor(color: number);
				static class: java.lang.Class<android.graphics.drawable.ColorDrawable>;
				public getChangingConfigurations(): number;
				/**
				 * A mutable BitmapDrawable still shares its Bitmap with any other Drawable that comes from the same resource.
				 */
				public mutate(): android.graphics.drawable.Drawable;
				public draw(canvas: android.graphics.Canvas): void;
				/**
				 * Gets the drawable's color value.
				 */
				public getColor(): number;
				/**
				 * Sets the drawable's color value. This action will clobber the results of prior calls to #setAlpha(int) on this object, which side-affected the underlying color.
				 * @param color The color to draw.
				 */
				public setColor(color: number): void;
				/**
				 * Returns the alpha value of this drawable's color.
				 */
				public getAlpha(): number;
				/**
				 * Sets the color's alpha value.
				 * @param alpha The alpha value to set, between 0 and 255.
				 */
				public setAlpha(alpha: number): void;
				/**
				 * Setting a color filter on a ColorDrawable has no effect.
				 * @param colorFilter Ignore.
				 */
				public setColorFilter(colorFilter: android.graphics.ColorFilter): void;
				public getOpacity(): number;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module ColorDrawable {
				export class ColorState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.ColorDrawable.ColorState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
				}
			}
			export module shapes {
				/**
				 * Creates a rounded-corner rectangle. Optionally, an inset (rounded) rectangle can be included (to make a sort of "O" shape). The rounded rectangle can be drawn to a Canvas with its own draw() method, but more graphical control is available if you instead pass the RoundRectShape to a android.graphics.drawable.ShapeDrawable.
				 */
				export class RoundRectShape extends android.graphics.drawable.shapes.RectShape {
					/**
					 * RoundRectShape constructor. Specifies an outer (round)rect and an optional inner (round)rect.
					 * @param outerRadii An array of 8 radius values, for the outer roundrect.
					 * @param inset A RectF that specifies the distance from the inner
					 * @param innerRadii An array of 8 radius values, for the inner roundrect.
					 */
					constructor(outerRadii: native.Array<number>, inset: android.graphics.RectF, innerRadii: native.Array<number>);
					static class: java.lang.Class<android.graphics.drawable.shapes.RoundRectShape>;
					public draw(canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
					protected onResize(w: number, h: number): void;
					public clone(): android.graphics.drawable.shapes.RoundRectShape;
				}
				/**
				 * Defines a rectangle shape. The rectangle can be drawn to a Canvas with its own draw() method, but more graphical control is available if you instead pass the RectShape to a android.graphics.drawable.ShapeDrawable.
				 */
				export class RectShape extends android.graphics.drawable.shapes.Shape {
					/**
					 * RectShape constructor.
					 */
					constructor();
					static class: java.lang.Class<android.graphics.drawable.shapes.RectShape>;
					public draw(canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
					protected onResize(width: number, height: number): void;
					/**
					 * Returns the RectF that defines this rectangle's bounds.
					 */
					protected rect(): android.graphics.RectF;
					public clone(): android.graphics.drawable.shapes.RectShape;
				}
				/**
				 * Defines a generic graphical "shape." Any Shape can be drawn to a Canvas with its own draw() method, but more graphical control is available if you instead pass it to a android.graphics.drawable.ShapeDrawable.
				 */
				export class Shape extends java.lang.Object implements java.lang.ICloneable {
					constructor();
					static class: java.lang.Class<android.graphics.drawable.shapes.Shape>;
					/**
					 * Returns the width of the Shape.
					 */
					public getWidth(): number;
					/**
					 * Returns the height of the Shape.
					 */
					public getHeight(): number;
					/**
					 * Draw this shape into the provided Canvas, with the provided Paint. Before calling this, you must call #resize(float,float). 
					 * @param canvas the Canvas within which this shape should be drawn
					 * @param paint the Paint object that defines this shape's characteristics
					 */
					public draw(canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
					/**
					 * Resizes the dimensions of this shape. Must be called before #draw(Canvas,Paint). 
					 * @param width the width of the shape (in pixels)
					 * @param height the height of the shape (in pixels)
					 */
					public resize(width: number, height: number): void;
					/**
					 * Checks whether the Shape is opaque. Default impl returns true. Override if your subclass can be opaque. 
					 */
					public hasAlpha(): boolean;
					/**
					 * Callback method called when #resize(float,float) is executed. 
					 * @param width the new width of the Shape
					 * @param height the new height of the Shape
					 */
					protected onResize(width: number, height: number): void;
					public clone(): android.graphics.drawable.shapes.Shape;
				}
				/**
				 * Creates an arc shape. The arc shape starts at a specified angle and sweeps clockwise, drawing slices of pie. The arc can be drawn to a Canvas with its own draw() method, but more graphical control is available if you instead pass the ArcShape to a android.graphics.drawable.ShapeDrawable.
				 */
				export class ArcShape extends android.graphics.drawable.shapes.RectShape {
					/**
					 * ArcShape constructor. 
					 * @param startAngle the angle (in degrees) where the arc begins
					 * @param sweepAngle the sweep angle (in degrees). Anything equal to or
					 */
					constructor(startAngle: number, sweepAngle: number);
					static class: java.lang.Class<android.graphics.drawable.shapes.ArcShape>;
					public draw(canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
				}
				/**
				 * Defines an oval shape. The oval can be drawn to a Canvas with its own draw() method, but more graphical control is available if you instead pass the OvalShape to a android.graphics.drawable.ShapeDrawable.
				 */
				export class OvalShape extends android.graphics.drawable.shapes.RectShape {
					/**
					 * OvalShape constructor.
					 */
					constructor();
					static class: java.lang.Class<android.graphics.drawable.shapes.OvalShape>;
					public draw(canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
				}
				/**
				 * Creates geometric paths, utilizing the android.graphics.Path class. The path can be drawn to a Canvas with its own draw() method, but more graphical control is available if you instead pass the PathShape to a android.graphics.drawable.ShapeDrawable.
				 */
				export class PathShape extends android.graphics.drawable.shapes.Shape {
					/**
					 * PathShape constructor. 
					 * @param path a Path that defines the geometric paths for this shape
					 * @param stdWidth the standard width for the shape. Any changes to the
					 * @param stdHeight the standard height for the shape. Any changes to the
					 */
					constructor(path: android.graphics.Path, stdWidth: number, stdHeight: number);
					static class: java.lang.Class<android.graphics.drawable.shapes.PathShape>;
					public draw(canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
					protected onResize(width: number, height: number): void;
					public clone(): android.graphics.drawable.shapes.PathShape;
				}
			}
			/**
			 * Tests for StateListDrawable
			 */
			export class StateListDrawableTest {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.StateListDrawableTest>;
				public broken_testFocusScenarioSetStringWildcardFirst(): void;
				public broken_testFocusScenarioStateSetWildcardLast(): void;
				protected setUp(): void;
			}
			export module StateListDrawableTest {
				export class MockDrawable extends android.graphics.drawable.Drawable {
					wasDrawn: boolean;
					static class: java.lang.Class<android.graphics.drawable.StateListDrawableTest.MockDrawable>;
					public draw(canvas: android.graphics.Canvas): void;
					public setAlpha(alpha: number): void;
					public setColorFilter(cf: android.graphics.ColorFilter): void;
					public getOpacity(): number;
					/**
					 * Specify a color and porterduff mode to be the colorfilter for this drawable.
					 */
					setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
				}
			}
			export class LayerDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.ICallback {
				/**
				 * Create a new layer drawable with the list of specified layers.
				 * @param layers A list of drawables to use as layers in this new drawable.
				 */
				constructor(layers: native.Array<android.graphics.drawable.Drawable>);
				static class: java.lang.Class<android.graphics.drawable.LayerDrawable>;
				createConstantState(state: android.graphics.drawable.LayerDrawable.LayerState, res: android.content.res.Resources): android.graphics.drawable.LayerDrawable.LayerState;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				/**
				 * Look for a layer with the given id, and returns its Drawable.
				 * @param id The layer ID to search for.
				 */
				public findDrawableByLayerId(id: number): android.graphics.drawable.Drawable;
				/**
				 * Sets the ID of a layer. 
				 * @param index The index of the layer which will received the ID.
				 * @param id The ID to assign to the layer.
				 */
				public setId(index: number, id: number): void;
				/**
				 * Returns the number of layers contained within this.
				 */
				public getNumberOfLayers(): number;
				/**
				 * Returns the drawable at the specified layer index.
				 * @param index The layer index of the drawable to retrieve.
				 */
				public getDrawable(index: number): android.graphics.drawable.Drawable;
				/**
				 * Returns the id of the specified layer.
				 * @param index The index of the layer.
				 */
				public getId(index: number): number;
				/**
				 * Sets (or replaces) the Drawable for the layer with the given id. 
				 * @param id The layer ID to search for.
				 * @param drawable The replacement {@link Drawable}.
				 */
				public setDrawableByLayerId(id: number, drawable: android.graphics.drawable.Drawable): boolean;
				/**
				 * Specify modifiers to the bounds for the drawable[index]. left += l top += t; right -= r; bottom -= b;
				 */
				public setLayerInset(index: number, l: number, t: number, r: number, b: number): void;
				public invalidateDrawable(who: android.graphics.drawable.Drawable): void;
				public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
				public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				public draw(canvas: android.graphics.Canvas): void;
				public getChangingConfigurations(): number;
				public getPadding(padding: android.graphics.Rect): boolean;
				public setVisible(visible: boolean, restart: boolean): boolean;
				public setDither(dither: boolean): void;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				/**
				 * Sets the opacity of this drawable directly, instead of collecting the states from the layers
				 * @param opacity The opacity to use, or {@link PixelFormat#UNKNOWN PixelFormat.UNKNOWN}
				 */
				public setOpacity(opacity: number): void;
				public getOpacity(): number;
				public isStateful(): boolean;
				protected onStateChange(state: native.Array<number>): boolean;
				protected onLevelChange(level: number): boolean;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module LayerDrawable {
				export class ChildDrawable extends java.lang.Object {
					mDrawable: android.graphics.drawable.Drawable;
					mInsetL: number;
					mInsetT: number;
					mInsetR: number;
					mInsetB: number;
					mId: number;
					static class: java.lang.Class<android.graphics.drawable.LayerDrawable.ChildDrawable>;
				}
				export class LayerState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.LayerDrawable.LayerState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
					public getOpacity(): number;
					public isStateful(): boolean;
					public canConstantState(): boolean;
				}
			}
			/**
			 * Interface that drawables suporting animations should implement.
			 */
			export class Animatable implements android.graphics.drawable.IAnimatable {
				constructor(implementation: android.graphics.drawable.IAnimatable);
				/**
				 * Starts the drawable's animation.
				 */
				public start(): void;
				/**
				 * Stops the drawable's animation.
				 */
				public stop(): void;
				/**
				 * Indicates whether the animation is running. 
				 */
				public isRunning(): boolean;
			}
			/**
			 * Drawable subclass that wraps a Picture, allowing the picture to be used whereever a Drawable is supported.
			 */
			export class PictureDrawable extends android.graphics.drawable.Drawable {
				/**
				 * Construct a new drawable referencing the specified picture. The picture may be null.
				 * @param picture The picture to associate with the drawable. May be null.
				 */
				constructor(picture: android.graphics.Picture);
				static class: java.lang.Class<android.graphics.drawable.PictureDrawable>;
				/**
				 * Return the picture associated with the drawable. May be null.
				 */
				public getPicture(): android.graphics.Picture;
				/**
				 * Associate a picture with this drawable. The picture may be null.
				 * @param picture The picture to associate with the drawable. May be null.
				 */
				public setPicture(picture: android.graphics.Picture): void;
				public draw(canvas: android.graphics.Canvas): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getOpacity(): number;
				public setFilterBitmap(filter: boolean): void;
				public setDither(dither: boolean): void;
				public setColorFilter(colorFilter: android.graphics.ColorFilter): void;
				public setAlpha(alpha: number): void;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			/**
			 * A Drawable object that draws primitive shapes. A ShapeDrawable takes a android.graphics.drawable.shapes.Shape object and manages its presence on the screen. If no Shape is given, then the ShapeDrawable will default to a android.graphics.drawable.shapes.RectShape.
			 */
			export class ShapeDrawable extends android.graphics.drawable.Drawable {
				/**
				 * ShapeDrawable constructor.
				 */
				constructor();
				/**
				 * Creates a ShapeDrawable with a specified Shape. 
				 * @param s the Shape that this ShapeDrawable should be
				 */
				constructor(s: android.graphics.drawable.shapes.Shape);
				static class: java.lang.Class<android.graphics.drawable.ShapeDrawable>;
				/**
				 * Returns the Shape of this ShapeDrawable.
				 */
				public getShape(): android.graphics.drawable.shapes.Shape;
				/**
				 * Sets the Shape of this ShapeDrawable.
				 */
				public setShape(s: android.graphics.drawable.shapes.Shape): void;
				/**
				 * Sets a ShaderFactory to which requests for a android.graphics.Shader object will be made. 
				 * @param fact an instance of your ShaderFactory implementation
				 */
				public setShaderFactory(fact: android.graphics.drawable.ShapeDrawable.ShaderFactory): void;
				/**
				 * Returns the ShaderFactory used by this ShapeDrawable for requesting a android.graphics.Shader.
				 */
				public getShaderFactory(): android.graphics.drawable.ShapeDrawable.ShaderFactory;
				/**
				 * Returns the Paint used to draw the shape.
				 */
				public getPaint(): android.graphics.Paint;
				/**
				 * Sets padding for the shape. 
				 * @param left padding for the left side (in pixels)
				 * @param top padding for the top (in pixels)
				 * @param right padding for the right side (in pixels)
				 * @param bottom padding for the bottom (in pixels)
				 */
				public setPadding(left: number, top: number, right: number, bottom: number): void;
				/**
				 * Sets padding for this shape, defined by a Rect object. Define the padding in the Rect object as: left, top, right, bottom.
				 */
				public setPadding(padding: android.graphics.Rect): void;
				/**
				 * Sets the intrinsic (default) width for this shape. 
				 * @param width the intrinsic width (in pixels)
				 */
				public setIntrinsicWidth(width: number): void;
				/**
				 * Sets the intrinsic (default) height for this shape. 
				 * @param height the intrinsic height (in pixels)
				 */
				public setIntrinsicHeight(height: number): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getPadding(padding: android.graphics.Rect): boolean;
				/**
				 * Called from the drawable's draw() method after the canvas has been set to draw the shape at (0,0). Subclasses can override for special effects such as multiple layers, stroking, etc.
				 */
				protected onDraw(shape: android.graphics.drawable.shapes.Shape, canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
				public draw(canvas: android.graphics.Canvas): void;
				public getChangingConfigurations(): number;
				/**
				 * Set the alpha level for this drawable [0..255]. Note that this drawable also has a color in its paint, which has an alpha as well. These two values are automatically combined during drawing. Thus if the color's alpha is 75% (i.e. 192) and the drawable's alpha is 50% (i.e. 128), then the combined alpha that will be used during drawing will be 37.5% (i.e. 96).
				 */
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public getOpacity(): number;
				public setDither(dither: boolean): void;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				/**
				 * Subclasses override this to parse custom subelements. If you handle it, return true, else return <em>super.inflateTag(...)</em>.
				 */
				protected inflateTag(name: string, r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): boolean;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module ShapeDrawable {
				/**
				 * Base class defines a factory object that is called each time the drawable is resized (has a new width or height). Its resize() method returns a corresponding shader, or null. Implement this class if you'd like your ShapeDrawable to use a special android.graphics.Shader, such as a android.graphics.LinearGradient. 
				 */
				export class ShaderFactory extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.graphics.drawable.ShapeDrawable.ShaderFactory>;
					/**
					 * Returns the Shader to be drawn when a Drawable is drawn. The dimensions of the Drawable are passed because they may be needed to adjust how the Shader is configured for drawing. This is called by ShapeDrawable.setShape(). 
					 * @param width the width of the Drawable being drawn
					 * @param height the heigh of the Drawable being drawn
					 */
					public resize(width: number, height: number): android.graphics.Shader;
				}
				/**
				 * Defines the intrinsic properties of this ShapeDrawable's Shape.
				 */
				export class ShapeState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.ShapeDrawable.ShapeState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
				}
			}
			/**
			 * Interface that drawables suporting animations should implement.
			 */
			interface IAnimatable {
				/**
				 * Starts the drawable's animation.
				 */
				start(): void;
				/**
				 * Stops the drawable's animation.
				 */
				stop(): void;
				/**
				 * Indicates whether the animation is running. 
				 */
				isRunning(): boolean;
			}
			/**
			 * A Drawable that insets another Drawable by a specified distance. This is used when a View needs a background that is smaller than the View's actual bounds.
			 */
			export class InsetDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.ICallback {
				constructor(drawable: android.graphics.drawable.Drawable, inset: number);
				constructor(drawable: android.graphics.drawable.Drawable, insetLeft: number, insetTop: number, insetRight: number, insetBottom: number);
				static class: java.lang.Class<android.graphics.drawable.InsetDrawable>;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public invalidateDrawable(who: android.graphics.drawable.Drawable): void;
				public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
				public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				public draw(canvas: android.graphics.Canvas): void;
				public getChangingConfigurations(): number;
				public getPadding(padding: android.graphics.Rect): boolean;
				public setVisible(visible: boolean, restart: boolean): boolean;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public getOpacity(): number;
				public isStateful(): boolean;
				protected onStateChange(state: native.Array<number>): boolean;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module InsetDrawable {
				export class InsetState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.InsetDrawable.InsetState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
					canConstantState(): boolean;
				}
			}
			/**
			 * A helper class that contains several Drawables and selects which one to use.
			 */
			export class DrawableContainer extends android.graphics.drawable.Drawable implements android.graphics.drawable.Drawable.ICallback {
				constructor();
				static class: java.lang.Class<android.graphics.drawable.DrawableContainer>;
				public draw(canvas: android.graphics.Canvas): void;
				public getChangingConfigurations(): number;
				public getPadding(padding: android.graphics.Rect): boolean;
				public setAlpha(alpha: number): void;
				public setDither(dither: boolean): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				/**
				 * Change the global fade duration when a new drawable is entering the scene.
				 * @param ms The amount of time to fade in milliseconds.
				 */
				public setEnterFadeDuration(ms: number): void;
				/**
				 * Change the global fade duration when a new drawable is leaving the scene.
				 * @param ms The amount of time to fade in milliseconds.
				 */
				public setExitFadeDuration(ms: number): void;
				protected onBoundsChange(bounds: android.graphics.Rect): void;
				public isStateful(): boolean;
				public jumpToCurrentState(): void;
				protected onStateChange(state: native.Array<number>): boolean;
				protected onLevelChange(level: number): boolean;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getMinimumWidth(): number;
				public getMinimumHeight(): number;
				public invalidateDrawable(who: android.graphics.drawable.Drawable): void;
				public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
				public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
				public setVisible(visible: boolean, restart: boolean): boolean;
				public getOpacity(): number;
				public selectDrawable(idx: number): boolean;
				animate(schedule: boolean): void;
				public getCurrent(): android.graphics.drawable.Drawable;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public mutate(): android.graphics.drawable.Drawable;
				protected setConstantState(state: android.graphics.drawable.DrawableContainer.DrawableContainerState): void;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module DrawableContainer {
				/**
				 * A ConstantState that can contain several Drawables.
				 */
				export class DrawableContainerState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.DrawableContainer.DrawableContainerState>;
					public getChangingConfigurations(): number;
					public addChild(dr: android.graphics.drawable.Drawable): number;
					public getChildCount(): number;
					public getChildren(): native.Array<android.graphics.drawable.Drawable>;
					/**
					 * A boolean value indicating whether to use the maximum padding value of all frames in the set (false), or to use the padding value of the frame being shown (true). Default value is false.
					 */
					public setVariablePadding(variable: boolean): void;
					public getConstantPadding(): android.graphics.Rect;
					public setConstantSize(constant: boolean): void;
					public isConstantSize(): boolean;
					public getConstantWidth(): number;
					public getConstantHeight(): number;
					public getConstantMinimumWidth(): number;
					public getConstantMinimumHeight(): number;
					protected computeConstantSize(): void;
					public setEnterFadeDuration(duration: number): void;
					public getEnterFadeDuration(): number;
					public setExitFadeDuration(duration: number): void;
					public getExitFadeDuration(): number;
					public getOpacity(): number;
					public isStateful(): boolean;
					public growArray(oldSize: number, newSize: number): void;
					public canConstantState(): boolean;
				}
			}
			export class NinePatchDrawable extends android.graphics.drawable.Drawable {
				/**
				 * Create drawable from raw nine-patch data, not dealing with density. Use #NinePatchDrawable(Resources, Bitmap, byte[], Rect, String) to ensure that the drawable has correctly set its target density.
				 */
				constructor(bitmap: android.graphics.Bitmap, chunk: native.Array<number>, padding: android.graphics.Rect, srcName: string);
				/**
				 * Create drawable from raw nine-patch data, setting initial target density based on the display metrics of the resources.
				 */
				constructor(res: android.content.res.Resources, bitmap: android.graphics.Bitmap, chunk: native.Array<number>, padding: android.graphics.Rect, srcName: string);
				/**
				 * Create drawable from existing nine-patch, not dealing with density. Use #NinePatchDrawable(Resources, NinePatch) to ensure that the drawable has correctly set its target density.
				 */
				constructor(patch: android.graphics.NinePatch);
				/**
				 * Create drawable from existing nine-patch, setting initial target density based on the display metrics of the resources.
				 */
				constructor(res: android.content.res.Resources, patch: android.graphics.NinePatch);
				static class: java.lang.Class<android.graphics.drawable.NinePatchDrawable>;
				/**
				 * Set the density scale at which this drawable will be rendered. This method assumes the drawable will be rendered at the same density as the specified canvas.
				 * @param canvas The Canvas from which the density scale must be obtained.
				 */
				public setTargetDensity(canvas: android.graphics.Canvas): void;
				/**
				 * Set the density scale at which this drawable will be rendered.
				 * @param metrics The DisplayMetrics indicating the density scale for this drawable.
				 */
				public setTargetDensity(metrics: android.util.DisplayMetrics): void;
				/**
				 * Set the density at which this drawable will be rendered.
				 * @param density The density scale for this drawable.
				 */
				public setTargetDensity(density: number): void;
				public draw(canvas: android.graphics.Canvas): void;
				public getChangingConfigurations(): number;
				public getPadding(padding: android.graphics.Rect): boolean;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public setDither(dither: boolean): void;
				public setFilterBitmap(filter: boolean): void;
				public inflate(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): void;
				public getPaint(): android.graphics.Paint;
				/**
				 * Retrieves the width of the source .png file (before resizing).
				 */
				public getIntrinsicWidth(): number;
				/**
				 * Retrieves the height of the source .png file (before resizing).
				 */
				public getIntrinsicHeight(): number;
				public getMinimumWidth(): number;
				public getMinimumHeight(): number;
				/**
				 * Returns a android.graphics.PixelFormat graphics.PixelFormat value of OPAQUE or TRANSLUCENT.
				 */
				public getOpacity(): number;
				public getTransparentRegion(): android.graphics.Region;
				public getConstantState(): android.graphics.drawable.Drawable.ConstantState;
				public mutate(): android.graphics.drawable.Drawable;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export module NinePatchDrawable {
				export class NinePatchState extends android.graphics.drawable.Drawable.ConstantState {
					static class: java.lang.Class<android.graphics.drawable.NinePatchDrawable.NinePatchState>;
					public newDrawable(): android.graphics.drawable.Drawable;
					public newDrawable(res: android.content.res.Resources): android.graphics.drawable.Drawable;
					public getChangingConfigurations(): number;
				}
			}
		}
		/**
		 * Rect holds four integer coordinates for a rectangle. The rectangle is represented by the coordinates of its 4 edges (left, top, right bottom). These fields can be accessed directly. Use width() and height() to retrieve the rectangle's width and height. Note: most methods do not check to see that the coordinates are sorted correctly (i.e. left <= right and top <= bottom).
		 */
		export class Rect extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create a new empty Rect. All coordinates are initialized to 0.
			 */
			constructor();
			/**
			 * Create a new rectangle with the specified coordinates. Note: no range checking is performed, so the caller must ensure that left <= right and top <= bottom.
			 * @param left The X coordinate of the left side of the rectangle
			 * @param top The Y coordinate of the top of the rectangle
			 * @param right The X coordinate of the right side of the rectangle
			 * @param bottom The Y coordinate of the bottom of the rectangle
			 */
			constructor(left: number, top: number, right: number, bottom: number);
			/**
			 * Create a new rectangle, initialized with the values in the specified rectangle (which is left unmodified).
			 * @param r The rectangle whose coordinates are copied into the new
			 */
			constructor(r: android.graphics.Rect);
			left: number;
			top: number;
			right: number;
			bottom: number;
			static CREATOR: android.os.Parcelable.ICreator<android.graphics.Rect>;
			static class: java.lang.Class<android.graphics.Rect>;
			public equals(o: any): boolean;
			public hashCode(): number;
			public toString(): string;
			/**
			 * Return a string representation of the rectangle in a compact form.
			 */
			public toShortString(): string;
			/**
			 * Return a string representation of the rectangle in a well-defined format.
			 */
			public flattenToString(): string;
			/**
			 * Returns a Rect from a string of the form returned by #flattenToString, or null if the string is not of that form.
			 */
			public static unflattenFromString(str: string): android.graphics.Rect;
			/**
			 * Returns true if the rectangle is empty (left >= right or top >= bottom)
			 */
			public isEmpty(): boolean;
			public width(): number;
			public height(): number;
			public centerX(): number;
			public centerY(): number;
			public exactCenterX(): number;
			public exactCenterY(): number;
			/**
			 * Set the rectangle to (0,0,0,0)
			 */
			public setEmpty(): void;
			/**
			 * Set the rectangle's coordinates to the specified values. Note: no range checking is performed, so it is up to the caller to ensure that left <= right and top <= bottom.
			 * @param left The X coordinate of the left side of the rectangle
			 * @param top The Y coordinate of the top of the rectangle
			 * @param right The X coordinate of the right side of the rectangle
			 * @param bottom The Y coordinate of the bottom of the rectangle
			 */
			public set(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Copy the coordinates from src into this rectangle.
			 * @param src The rectangle whose coordinates are copied into this
			 */
			public set(src: android.graphics.Rect): void;
			/**
			 * Offset the rectangle by adding dx to its left and right coordinates, and adding dy to its top and bottom coordinates.
			 * @param dx The amount to add to the rectangle's left and right coordinates
			 * @param dy The amount to add to the rectangle's top and bottom coordinates
			 */
			public offset(dx: number, dy: number): void;
			/**
			 * Offset the rectangle to a specific (left, top) position, keeping its width and height the same.
			 * @param newLeft The new "left" coordinate for the rectangle
			 * @param newTop The new "top" coordinate for the rectangle
			 */
			public offsetTo(newLeft: number, newTop: number): void;
			/**
			 * Inset the rectangle by (dx,dy). If dx is positive, then the sides are moved inwards, making the rectangle narrower. If dx is negative, then the sides are moved outwards, making the rectangle wider. The same holds true for dy and the top and bottom.
			 * @param dx The amount to add(subtract) from the rectangle's left(right)
			 * @param dy The amount to add(subtract) from the rectangle's top(bottom)
			 */
			public inset(dx: number, dy: number): void;
			/**
			 * Returns true if (x,y) is inside the rectangle. The left and top are considered to be inside, while the right and bottom are not. This means that for a x,y to be contained: left <= x < right and top <= y < bottom. An empty rectangle never contains any point.
			 * @param x The X coordinate of the point being tested for containment
			 * @param y The Y coordinate of the point being tested for containment
			 */
			public contains(x: number, y: number): boolean;
			/**
			 * Returns true iff the 4 specified sides of a rectangle are inside or equal to this rectangle. i.e. is this rectangle a superset of the specified rectangle. An empty rectangle never contains another rectangle.
			 * @param left The left side of the rectangle being tested for containment
			 * @param top The top of the rectangle being tested for containment
			 * @param right The right side of the rectangle being tested for containment
			 * @param bottom The bottom of the rectangle being tested for containment
			 */
			public contains(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Returns true iff the specified rectangle r is inside or equal to this rectangle. An empty rectangle never contains another rectangle.
			 * @param r The rectangle being tested for containment.
			 */
			public contains(r: android.graphics.Rect): boolean;
			/**
			 * If the rectangle specified by left,top,right,bottom intersects this rectangle, return true and set this rectangle to that intersection, otherwise return false and do not change this rectangle. No check is performed to see if either rectangle is empty. Note: To just test for intersection, use #intersects(Rect, Rect).
			 * @param left The left side of the rectangle being intersected with this
			 * @param top The top of the rectangle being intersected with this rectangle
			 * @param right The right side of the rectangle being intersected with this
			 * @param bottom The bottom of the rectangle being intersected with this
			 */
			public intersect(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * If the specified rectangle intersects this rectangle, return true and set this rectangle to that intersection, otherwise return false and do not change this rectangle. No check is performed to see if either rectangle is empty. To just test for intersection, use intersects()
			 * @param r The rectangle being intersected with this rectangle.
			 */
			public intersect(r: android.graphics.Rect): boolean;
			/**
			 * If rectangles a and b intersect, return true and set this rectangle to that intersection, otherwise return false and do not change this rectangle. No check is performed to see if either rectangle is empty. To just test for intersection, use intersects()
			 * @param a The first rectangle being intersected with
			 * @param b The second rectangle being intersected with
			 */
			public setIntersect(a: android.graphics.Rect, b: android.graphics.Rect): boolean;
			/**
			 * Returns true if this rectangle intersects the specified rectangle. In no event is this rectangle modified. No check is performed to see if either rectangle is empty. To record the intersection, use intersect() or setIntersect().
			 * @param left The left side of the rectangle being tested for intersection
			 * @param top The top of the rectangle being tested for intersection
			 * @param right The right side of the rectangle being tested for
			 * @param bottom The bottom of the rectangle being tested for intersection
			 */
			public intersects(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Returns true iff the two specified rectangles intersect. In no event are either of the rectangles modified. To record the intersection, use #intersect(Rect) or #setIntersect(Rect, Rect).
			 * @param a The first rectangle being tested for intersection
			 * @param b The second rectangle being tested for intersection
			 */
			public static intersects(a: android.graphics.Rect, b: android.graphics.Rect): boolean;
			/**
			 * Update this Rect to enclose itself and the specified rectangle. If the specified rectangle is empty, nothing is done. If this rectangle is empty it is set to the specified rectangle.
			 * @param left The left edge being unioned with this rectangle
			 * @param top The top edge being unioned with this rectangle
			 * @param right The right edge being unioned with this rectangle
			 * @param bottom The bottom edge being unioned with this rectangle
			 */
			public union(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Update this Rect to enclose itself and the specified rectangle. If the specified rectangle is empty, nothing is done. If this rectangle is empty it is set to the specified rectangle.
			 * @param r The rectangle being unioned with this rectangle
			 */
			public union(r: android.graphics.Rect): void;
			/**
			 * Update this Rect to enclose itself and the [x,y] coordinate. There is no check to see that this rectangle is non-empty.
			 * @param x The x coordinate of the point to add to the rectangle
			 * @param y The y coordinate of the point to add to the rectangle
			 */
			public union(x: number, y: number): void;
			/**
			 * Swap top/bottom or left/right if there are flipped (i.e. left > right and/or top > bottom). This can be called if the edges are computed separately, and may have crossed over each other. If the edges are already correct (i.e. left <= right and top <= bottom) then nothing is done.
			 */
			public sort(): void;
			/**
			 * Parcelable interface methods
			 */
			public describeContents(): number;
			/**
			 * Write this rectangle to the specified parcel. To restore a rectangle from a parcel, use readFromParcel()
			 * @param out The parcel to write the rectangle's coordinates into
			 * @param flags 
			 */
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Set the rectangle's coordinates from the data stored in the specified parcel. To write a rectangle to a parcel, call writeToParcel().
			 * @param input in The parcel to read the rectangle's coordinates from
			 */
			public readFromParcel(input: android.os.Parcel): void;
		}
		/**
		 * The Typeface class specifies the typeface and intrinsic style of a font. This is used in the paint, along with optionally Paint settings like textSize, textSkewX, textScaleX to specify how text appears when drawn (and measured).
		 */
		export class Typeface extends java.lang.Object {
			/**
			 * The default NORMAL typeface object
			 */
			static DEFAULT: android.graphics.Typeface;
			/**
			 * The default BOLD typeface object. Note: this may be not actually be bold, depending on what fonts are installed. Call getStyle() to know for sure.
			 */
			static DEFAULT_BOLD: android.graphics.Typeface;
			/**
			 * The NORMAL style of the default sans serif typeface.
			 */
			static SANS_SERIF: android.graphics.Typeface;
			/**
			 * The NORMAL style of the default serif typeface.
			 */
			static SERIF: android.graphics.Typeface;
			/**
			 * The NORMAL style of the default monospace typeface.
			 */
			static MONOSPACE: android.graphics.Typeface;
			static NORMAL: number;
			static BOLD: number;
			static ITALIC: number;
			static BOLD_ITALIC: number;
			static class: java.lang.Class<android.graphics.Typeface>;
			/**
			 * Returns the typeface's intrinsic style attributes
			 */
			public getStyle(): number;
			/**
			 * Returns true if getStyle() has the BOLD bit set.
			 */
			public isBold(): boolean;
			/**
			 * Returns true if getStyle() has the ITALIC bit set.
			 */
			public isItalic(): boolean;
			/**
			 * Create a typeface object given a family name, and option style information. If null is passed for the name, then the "default" font will be chosen. The resulting typeface object can be queried (getStyle()) to discover what its "real" style characteristics are.
			 * @param familyName May be null. The name of the font family.
			 * @param style The style (normal, bold, italic) of the typeface.
			 */
			public static create(familyName: string, style: number): android.graphics.Typeface;
			/**
			 * Create a typeface object that best matches the specified existing typeface and the specified Style. Use this call if you want to pick a new style from the same family of an existing typeface object. If family is null, this selects from the default font's family.
			 * @param family May be null. The name of the existing type face.
			 * @param style The style (normal, bold, italic) of the typeface.
			 */
			public static create(family: android.graphics.Typeface, style: number): android.graphics.Typeface;
			/**
			 * Returns one of the default typeface objects, based on the specified style
			 */
			public static defaultFromStyle(style: number): android.graphics.Typeface;
			/**
			 * Create a new typeface from the specified font data.
			 * @param mgr The application's asset manager
			 * @param path The file name of the font data in the assets directory
			 */
			public static createFromAsset(mgr: android.content.res.AssetManager, path: string): android.graphics.Typeface;
			/**
			 * Create a new typeface from the specified font file.
			 * @param path The path to the font data.
			 */
			public static createFromFile(path: java.io.File): android.graphics.Typeface;
			/**
			 * Create a new typeface from the specified font file.
			 * @param path The full path to the font data.
			 */
			public static createFromFile(path: string): android.graphics.Typeface;
			protected finalize(): void;
			public equals(o: any): boolean;
			public hashCode(): number;
		}
		export class CornerPathEffect extends android.graphics.PathEffect {
			/**
			 * Transforms geometries that are drawn (either STROKE or FILL styles) by replacing any sharp angles between line segments into rounded angles of the specified radius.
			 * @param radius Amount to round sharp angles between line segments.
			 */
			constructor(radius: number);
			static class: java.lang.Class<android.graphics.CornerPathEffect>;
		}
		export class ThreadBitmapTest {
			constructor();
			static class: java.lang.Class<android.graphics.ThreadBitmapTest>;
			MThread: {
	new (): android.graphics.ThreadBitmapTest.MThread;
};
			protected setUp(): void;
			public testCreation(): void;
		}
		export module ThreadBitmapTest {
			export class MThread extends java.lang.Thread {
				b: android.graphics.Bitmap;
				static class: java.lang.Class<android.graphics.ThreadBitmapTest.MThread>;
				public run(): void;
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.BitmapFactory
		 */
		export class BitmapFactory_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.graphics.BitmapFactory_Delegate>;
			static finishDecode(bm: android.graphics.Bitmap, outPadding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			static nativeDecodeStream(is: java.io.InputStream, storage: native.Array<number>, padding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			static nativeDecodeStream(is: java.io.InputStream, storage: native.Array<number>, padding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options, applyScale: boolean, scale: number): android.graphics.Bitmap;
			static nativeDecodeFileDescriptor(fd: java.io.FileDescriptor, padding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			static nativeDecodeAsset(asset: number, padding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			static nativeDecodeAsset(asset: number, padding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options, applyScale: boolean, scale: number): android.graphics.Bitmap;
			static nativeDecodeByteArray(data: native.Array<number>, offset: number, length: number, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			static nativeScaleNinePatch(chunk: native.Array<number>, scale: number, pad: android.graphics.Rect): native.Array<number>;
			static nativeIsSeekable(fd: java.io.FileDescriptor): boolean;
		}
		export class DashPathEffect extends android.graphics.PathEffect {
			/**
			 * The intervals array must contain an even number of entries (>=2), with the even indices specifying the "on" intervals, and the odd indices specifying the "off" intervals. phase is an offset into the intervals array (mod the sum of all of the intervals). The intervals array controls the length of the dashes. The paint's strokeWidth controls the thickness of the dashes. Note: this patheffect only affects drawing with the paint's style is set to STROKE or STROKE_AND_FILL. It is ignored if the drawing is done with style == FILL.
			 * @param intervals array of ON and OFF distances
			 * @param phase offset into the intervals array
			 */
			constructor(intervals: native.Array<number>, phase: number);
			static class: java.lang.Class<android.graphics.DashPathEffect>;
		}
		export class LinearGradient extends android.graphics.Shader {
			/**
			 * Create a shader that draws a linear gradient along a line.
			 * @param x0 The x-coordinate for the start of the gradient line
			 * @param y0 The y-coordinate for the start of the gradient line
			 * @param x1 The x-coordinate for the end of the gradient line
			 * @param y1 The y-coordinate for the end of the gradient line
			 * @param colors The colors to be distributed along the gradient line
			 * @param positions May be null. The relative positions [0..1] of
			 * @param tile The Shader tiling mode
			 */
			constructor(x0: number, y0: number, x1: number, y1: number, colors: native.Array<number>, positions: native.Array<number>, tile: android.graphics.Shader.TileMode);
			/**
			 * Create a shader that draws a linear gradient along a line.
			 * @param x0 The x-coordinate for the start of the gradient line
			 * @param y0 The y-coordinate for the start of the gradient line
			 * @param x1 The x-coordinate for the end of the gradient line
			 * @param y1 The y-coordinate for the end of the gradient line
			 * @param color0 The color at the start of the gradient line.
			 * @param color1 The color at the end of the gradient line.
			 * @param tile The Shader tiling mode
			 */
			constructor(x0: number, y0: number, x1: number, y1: number, color0: number, color1: number, tile: android.graphics.Shader.TileMode);
			static class: java.lang.Class<android.graphics.LinearGradient>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.DashPathEffect
		 */
		export class DashPathEffect_Delegate extends android.graphics.PathEffect_Delegate {
			static class: java.lang.Class<android.graphics.DashPathEffect_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(intervals: native.Array<number>, phase: number): number;
		}
		export class PorterDuffXfermode extends android.graphics.Xfermode {
			/**
			 * Create an xfermode that uses the specified porter-duff mode.
			 * @param mode The porter-duff mode that is applied
			 */
			constructor(mode: android.graphics.PorterDuff.Mode);
			static class: java.lang.Class<android.graphics.PorterDuffXfermode>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.LayerRasterizer
		 */
		export class LayerRasterizer_Delegate extends android.graphics.Rasterizer_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.LayerRasterizer_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeConstructor(): number;
			static nativeAddLayer(native_layer: number, native_paint: number, dx: number, dy: number): void;
		}
		/**
		 * This takes a mask, and blurs its edge by the specified radius. Whether or or not to include the original mask, and whether the blur goes outside, inside, or straddles, the original mask's border, is controlled by the Blur enum.
		 */
		export class BlurMaskFilter extends android.graphics.MaskFilter {
			/**
			 * Create a blur maskfilter.
			 * @param radius The radius to extend the blur from the original mask. Must be > 0.
			 * @param style The Blur to use
			 */
			constructor(radius: number, style: android.graphics.BlurMaskFilter.Blur);
			static class: java.lang.Class<android.graphics.BlurMaskFilter>;
		}
		export module BlurMaskFilter {
			export enum Blur {
				NORMAL,
				SOLID,
				OUTER,
				INNER
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.PixelXorXfermode
		 */
		export class PixelXorXfermode_Delegate extends android.graphics.Xfermode_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.PixelXorXfermode_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(opColor: number): number;
		}
		export class RegionIterator extends java.lang.Object {
			/**
			 * Construct an iterator for all of the rectangles in a region. This effectively makes a private copy of the region, so any subsequent edits to region will not affect the iterator.
			 * @param region the region that will be iterated
			 */
			constructor(region: android.graphics.Region);
			static class: java.lang.Class<android.graphics.RegionIterator>;
			/**
			 * Return the next rectangle in the region. If there are no more rectangles this returns false and r is unchanged. If there is at least one more, this returns true and r is set to that rectangle.
			 */
			public next(r: android.graphics.Rect): boolean;
			protected finalize(): void;
		}
		/**
		 * A DrawFilter subclass can be installed in a Canvas. When it is present, it can modify the paint that is used to draw (temporarily). With this, a filter can disable/enable antialiasing, or change the color for everything this is drawn.
		 */
		export class DrawFilter extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.DrawFilter>;
			protected finalize(): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.AvoidXfermode
		 */
		export class AvoidXfermode_Delegate extends android.graphics.Xfermode_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.AvoidXfermode_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(opColor: number, tolerance: number, nativeMode: number): number;
		}
		/**
		 * Tests of android.graphics.ColorStateList
		 */
		export class ColorStateListTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.graphics.ColorStateListTest>;
			protected setUp(): void;
			public testStateIsInList(): void;
			public testEmptyState(): void;
			public testGetColor(): void;
			public testGetColorWhenListHasNoDefault(): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.BlurMaskFilter
		 */
		export class BlurMaskFilter_Delegate extends android.graphics.MaskFilter_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.BlurMaskFilter_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeConstructor(radius: number, style: number): number;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.RadialGradient
		 */
		export class RadialGradient_Delegate extends android.graphics.Gradient_Delegate {
			static class: java.lang.Class<android.graphics.RadialGradient_Delegate>;
			RadialGradientPaint: {
	new (x: number, y: number, radius: number, colors: native.Array<number>, positions: native.Array<number>, mode: android.graphics.Shader.TileMode): android.graphics.RadialGradient_Delegate.RadialGradientPaint;
};
			static nativeCreate1(x: number, y: number, radius: number, colors: native.Array<number>, positions: native.Array<number>, tileMode: number): number;
			static nativeCreate2(x: number, y: number, radius: number, color0: number, color1: number, tileMode: number): number;
			static nativePostCreate1(native_shader: number, x: number, y: number, radius: number, colors: native.Array<number>, positions: native.Array<number>, tileMode: number): number;
			static nativePostCreate2(native_shader: number, x: number, y: number, radius: number, color0: number, color1: number, tileMode: number): number;
		}
		export module RadialGradient_Delegate {
			export class RadialGradientPaint extends android.graphics.Gradient_Delegate.GradientPaint {
				static class: java.lang.Class<android.graphics.RadialGradient_Delegate.RadialGradientPaint>;
			}
			export module RadialGradientPaint {
				export class RadialGradientPaintContext extends java.lang.Object {
					static class: java.lang.Class<android.graphics.RadialGradient_Delegate.RadialGradientPaint.RadialGradientPaintContext>;
					public dispose(): void;
				}
			}
		}
		export class RadialGradient extends android.graphics.Shader {
			/**
			 * Create a shader that draws a radial gradient given the center and radius.
			 * @param x The x-coordinate of the center of the radius
			 * @param y The y-coordinate of the center of the radius
			 * @param radius Must be positive. The radius of the circle for this gradient
			 * @param colors The colors to be distributed between the center and edge of the circle
			 * @param positions May be NULL. The relative position of
			 * @param tile The Shader tiling mode
			 */
			constructor(x: number, y: number, radius: number, colors: native.Array<number>, positions: native.Array<number>, tile: android.graphics.Shader.TileMode);
			/**
			 * Create a shader that draws a radial gradient given the center and radius.
			 * @param x The x-coordinate of the center of the radius
			 * @param y The y-coordinate of the center of the radius
			 * @param radius Must be positive. The radius of the circle for this gradient
			 * @param color0 The color at the center of the circle.
			 * @param color1 The color at the edge of the circle.
			 * @param tile The Shader tiling mode
			 */
			constructor(x: number, y: number, radius: number, color0: number, color1: number, tile: android.graphics.Shader.TileMode);
			static class: java.lang.Class<android.graphics.RadialGradient>;
		}
		/**
		 * 5x4 matrix for transforming the color+alpha components of a Bitmap. The matrix is stored in a single array, and its treated as follows: [ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t ]
		 */
		export class ColorMatrix extends java.lang.Object {
			/**
			 * Create a new colormatrix initialized to identity (as if reset() had been called).
			 */
			constructor();
			/**
			 * Create a new colormatrix initialized with the specified array of values.
			 */
			constructor(src: native.Array<number>);
			/**
			 * Create a new colormatrix initialized with the specified colormatrix.
			 */
			constructor(src: android.graphics.ColorMatrix);
			static class: java.lang.Class<android.graphics.ColorMatrix>;
			/**
			 * Return the array of floats representing this colormatrix.
			 */
			public getArray(): native.Array<number>;
			/**
			 * Set this colormatrix to identity: [ 1 0 0 0 0 - red vector 0 1 0 0 0 - green vector 0 0 1 0 0 - blue vector 0 0 0 1 0 ] - alpha vector
			 */
			public reset(): void;
			/**
			 * Assign the src colormatrix into this matrix, copying all of its values.
			 */
			public set(src: android.graphics.ColorMatrix): void;
			/**
			 * Assign the array of floats into this matrix, copying all of its values.
			 */
			public set(src: native.Array<number>): void;
			/**
			 * Set this colormatrix to scale by the specified values.
			 */
			public setScale(rScale: number, gScale: number, bScale: number, aScale: number): void;
			/**
			 * Set the rotation on a color axis by the specified values. axis=0 correspond to a rotation around the RED color axis=1 correspond to a rotation around the GREEN color axis=2 correspond to a rotation around the BLUE color
			 */
			public setRotate(axis: number, degrees: number): void;
			/**
			 * Set this colormatrix to the concatenation of the two specified colormatrices, such that the resulting colormatrix has the same effect as applying matB and then applying matA. It is legal for either matA or matB to be the same colormatrix as this.
			 */
			public setConcat(matA: android.graphics.ColorMatrix, matB: android.graphics.ColorMatrix): void;
			/**
			 * Concat this colormatrix with the specified prematrix. This is logically the same as calling setConcat(this, prematrix);
			 */
			public preConcat(prematrix: android.graphics.ColorMatrix): void;
			/**
			 * Concat this colormatrix with the specified postmatrix. This is logically the same as calling setConcat(postmatrix, this);
			 */
			public postConcat(postmatrix: android.graphics.ColorMatrix): void;
			/**
			 * Set the matrix to affect the saturation of colors. A value of 0 maps the color to gray-scale. 1 is identity.
			 */
			public setSaturation(sat: number): void;
			/**
			 * Set the matrix to convert RGB to YUV
			 */
			public setRGB2YUV(): void;
			/**
			 * Set the matrix to convert from YUV to RGB
			 */
			public setYUV2RGB(): void;
		}
		export class PorterDuffColorFilter extends android.graphics.ColorFilter {
			/**
			 * Create a colorfilter that uses the specified color and porter-duff mode.
			 * @param srcColor The source color used with the specified
			 * @param mode The porter-duff mode that is applied
			 */
			constructor(srcColor: number, mode: android.graphics.PorterDuff.Mode);
			static class: java.lang.Class<android.graphics.PorterDuffColorFilter>;
		}
		export class EmbossMaskFilter extends android.graphics.MaskFilter {
			/**
			 * Create an emboss maskfilter
			 * @param direction array of 3 scalars [x, y, z] specifying the direction of the light source
			 * @param ambient 0...1 amount of ambient light
			 * @param specular coefficient for specular highlights (e.g. 8)
			 * @param blurRadius amount to blur before applying lighting (e.g. 3)
			 */
			constructor(direction: native.Array<number>, ambient: number, specular: number, blurRadius: number);
			static class: java.lang.Class<android.graphics.EmbossMaskFilter>;
		}
		export class GraphicsTests extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.GraphicsTests>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Region
		 */
		export class Region_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Region_Delegate>;
			public static getDelegate(nativeShader: number): android.graphics.Region_Delegate;
			static isEmpty(thisRegion: android.graphics.Region): boolean;
			static isRect(thisRegion: android.graphics.Region): boolean;
			static isComplex(thisRegion: android.graphics.Region): boolean;
			static contains(thisRegion: android.graphics.Region, x: number, y: number): boolean;
			static quickContains(thisRegion: android.graphics.Region, left: number, top: number, right: number, bottom: number): boolean;
			static quickReject(thisRegion: android.graphics.Region, left: number, top: number, right: number, bottom: number): boolean;
			static quickReject(thisRegion: android.graphics.Region, rgn: android.graphics.Region): boolean;
			static translate(thisRegion: android.graphics.Region, dx: number, dy: number, dst: android.graphics.Region): void;
			static scale(thisRegion: android.graphics.Region, scale: number, dst: android.graphics.Region): void;
			static nativeConstructor(): number;
			static nativeDestructor(native_region: number): void;
			static nativeSetRegion(native_dst: number, native_src: number): boolean;
			static nativeSetRect(native_dst: number, left: number, top: number, right: number, bottom: number): boolean;
			static nativeSetPath(native_dst: number, native_path: number, native_clip: number): boolean;
			static nativeGetBounds(native_region: number, rect: android.graphics.Rect): boolean;
			static nativeGetBoundaryPath(native_region: number, native_path: number): boolean;
			static nativeOp(native_dst: number, left: number, top: number, right: number, bottom: number, op: number): boolean;
			static nativeOp(native_dst: number, rect: android.graphics.Rect, native_region: number, op: number): boolean;
			static nativeOp(native_dst: number, native_region1: number, native_region2: number, op: number): boolean;
			static nativeCreateFromParcel(p: android.os.Parcel): number;
			static nativeWriteToParcel(native_region: number, p: android.os.Parcel): boolean;
			static nativeEquals(native_r1: number, native_r2: number): boolean;
			static nativeToString(native_region: number): string;
		}
		export class Interpolator extends java.lang.Object {
			constructor(valueCount: number);
			constructor(valueCount: number, frameCount: number);
			static class: java.lang.Class<android.graphics.Interpolator>;
			/**
			 * Reset the Interpolator to have the specified number of values and an implicit keyFrame count of 2 (just a start and end). After this call the values for each keyFrame must be assigned using setKeyFrame().
			 */
			public reset(valueCount: number): void;
			/**
			 * Reset the Interpolator to have the specified number of values and keyFrames. After this call the values for each keyFrame must be assigned using setKeyFrame().
			 */
			public reset(valueCount: number, frameCount: number): void;
			public getKeyFrameCount(): number;
			public getValueCount(): number;
			/**
			 * Assign the keyFrame (specified by index) a time value and an array of key values (with an implicity blend array of [0, 0, 1, 1] giving linear transition to the next set of key values). 
			 * @param index The index of the key frame to assign
			 * @param msec The time (in mililiseconds) for this key frame. Based on the
			 * @param values Array of values associated with theis key frame
			 */
			public setKeyFrame(index: number, msec: number, values: native.Array<number>): void;
			/**
			 * Assign the keyFrame (specified by index) a time value and an array of key values and blend array. 
			 * @param index The index of the key frame to assign
			 * @param msec The time (in mililiseconds) for this key frame. Based on the
			 * @param values Array of values associated with theis key frame
			 * @param blend (may be null) Optional array of 4 blend values
			 */
			public setKeyFrame(index: number, msec: number, values: native.Array<number>, blend: native.Array<number>): void;
			/**
			 * Set a repeat count (which may be fractional) for the interpolator, and whether the interpolator should mirror its repeats. The default settings are repeatCount = 1, and mirror = false.
			 */
			public setRepeatMirror(repeatCount: number, mirror: boolean): void;
			/**
			 * Calls timeToValues(msec, values) with the msec set to now (by calling (int)SystemClock.uptimeMillis().)
			 */
			public timeToValues(values: native.Array<number>): android.graphics.Interpolator.Result;
			/**
			 * Given a millisecond time value (msec), return the interpolated values and return whether the specified time was within the range of key times (NORMAL), was before the first key time (FREEZE_START) or after the last key time (FREEZE_END). In any event, computed values are always returned. 
			 * @param msec The time (in milliseconds) used to sample into the
			 * @param values Where to write the computed values (may be NULL).
			 */
			public timeToValues(msec: number, values: native.Array<number>): android.graphics.Interpolator.Result;
			protected finalize(): void;
		}
		export module Interpolator {
			export enum Result {
				NORMAL,
				FREEZE_START,
				FREEZE_END
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.CornerPathEffect
		 */
		export class CornerPathEffect_Delegate extends android.graphics.PathEffect_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.CornerPathEffect_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(radius: number): number;
		}
		/**
		 * The Path class encapsulates compound (multiple contour) geometric paths consisting of straight line segments, quadratic curves, and cubic curves. It can be drawn with canvas.drawPath(path, paint), either filled or stroked (based on the paint's Style), or it can be used for clipping or to draw text on a path.
		 */
		export class Path extends java.lang.Object {
			/**
			 * Create an empty path
			 */
			constructor();
			/**
			 * Create a new path, copying the contents from the src path.
			 * @param src The path to copy from when initializing the new path
			 */
			constructor(src: android.graphics.Path);
			static class: java.lang.Class<android.graphics.Path>;
			/**
			 * Clear any lines and curves from the path, making it empty. This does NOT change the fill-type setting.
			 */
			public reset(): void;
			/**
			 * Rewinds the path: clears any lines and curves from the path but keeps the internal data structure for faster reuse.
			 */
			public rewind(): void;
			/**
			 * Replace the contents of this with the contents of src.
			 */
			public set(src: android.graphics.Path): void;
			/**
			 * Return the path's fill type. This defines how "inside" is computed. The default value is WINDING.
			 */
			public getFillType(): android.graphics.Path.FillType;
			/**
			 * Set the path's fill type. This defines how "inside" is computed.
			 * @param ft The new fill type for this path
			 */
			public setFillType(ft: android.graphics.Path.FillType): void;
			/**
			 * Returns true if the filltype is one of the INVERSE variants
			 */
			public isInverseFillType(): boolean;
			/**
			 * Toggles the INVERSE state of the filltype
			 */
			public toggleInverseFillType(): void;
			/**
			 * Returns true if the path is empty (contains no lines or curves)
			 */
			public isEmpty(): boolean;
			/**
			 * Returns true if the path specifies a rectangle. If so, and if rect is not null, set rect to the bounds of the path. If the path does not specify a rectangle, return false and ignore rect.
			 * @param rect If not null, returns the bounds of the path if it specifies
			 */
			public isRect(rect: android.graphics.RectF): boolean;
			/**
			 * Compute the bounds of the control points of the path, and write the answer into bounds. If the path contains 0 or 1 points, the bounds is set to (0,0,0,0)
			 * @param bounds Returns the computed bounds of the path's control points.
			 * @param exact This parameter is no longer used.
			 */
			public computeBounds(bounds: android.graphics.RectF, exact: boolean): void;
			/**
			 * Hint to the path to prepare for adding more points. This can allow the path to more efficiently allocate its storage.
			 * @param extraPtCount The number of extra points that may be added to this
			 */
			public incReserve(extraPtCount: number): void;
			/**
			 * Set the beginning of the next contour to the point (x,y).
			 * @param x The x-coordinate of the start of a new contour
			 * @param y The y-coordinate of the start of a new contour
			 */
			public moveTo(x: number, y: number): void;
			/**
			 * Set the beginning of the next contour relative to the last point on the previous contour. If there is no previous contour, this is treated the same as moveTo().
			 * @param dx The amount to add to the x-coordinate of the end of the
			 * @param dy The amount to add to the y-coordinate of the end of the
			 */
			public rMoveTo(dx: number, dy: number): void;
			/**
			 * Add a line from the last point to the specified point (x,y). If no moveTo() call has been made for this contour, the first point is automatically set to (0,0).
			 * @param x The x-coordinate of the end of a line
			 * @param y The y-coordinate of the end of a line
			 */
			public lineTo(x: number, y: number): void;
			/**
			 * Same as lineTo, but the coordinates are considered relative to the last point on this contour. If there is no previous point, then a moveTo(0,0) is inserted automatically.
			 * @param dx The amount to add to the x-coordinate of the previous point on
			 * @param dy The amount to add to the y-coordinate of the previous point on
			 */
			public rLineTo(dx: number, dy: number): void;
			/**
			 * Add a quadratic bezier from the last point, approaching control point (x1,y1), and ending at (x2,y2). If no moveTo() call has been made for this contour, the first point is automatically set to (0,0).
			 * @param x1 The x-coordinate of the control point on a quadratic curve
			 * @param y1 The y-coordinate of the control point on a quadratic curve
			 * @param x2 The x-coordinate of the end point on a quadratic curve
			 * @param y2 The y-coordinate of the end point on a quadratic curve
			 */
			public quadTo(x1: number, y1: number, x2: number, y2: number): void;
			/**
			 * Same as quadTo, but the coordinates are considered relative to the last point on this contour. If there is no previous point, then a moveTo(0,0) is inserted automatically.
			 * @param dx1 The amount to add to the x-coordinate of the last point on
			 * @param dy1 The amount to add to the y-coordinate of the last point on
			 * @param dx2 The amount to add to the x-coordinate of the last point on
			 * @param dy2 The amount to add to the y-coordinate of the last point on
			 */
			public rQuadTo(dx1: number, dy1: number, dx2: number, dy2: number): void;
			/**
			 * Add a cubic bezier from the last point, approaching control points (x1,y1) and (x2,y2), and ending at (x3,y3). If no moveTo() call has been made for this contour, the first point is automatically set to (0,0).
			 * @param x1 The x-coordinate of the 1st control point on a cubic curve
			 * @param y1 The y-coordinate of the 1st control point on a cubic curve
			 * @param x2 The x-coordinate of the 2nd control point on a cubic curve
			 * @param y2 The y-coordinate of the 2nd control point on a cubic curve
			 * @param x3 The x-coordinate of the end point on a cubic curve
			 * @param y3 The y-coordinate of the end point on a cubic curve
			 */
			public cubicTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void;
			/**
			 * Same as cubicTo, but the coordinates are considered relative to the current point on this contour. If there is no previous point, then a moveTo(0,0) is inserted automatically.
			 */
			public rCubicTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void;
			/**
			 * Append the specified arc to the path as a new contour. If the start of the path is different from the path's current last point, then an automatic lineTo() is added to connect the current contour to the start of the arc. However, if the path is empty, then we call moveTo() with the first point of the arc. The sweep angle is tread mod 360.
			 * @param oval The bounds of oval defining shape and size of the arc
			 * @param startAngle Starting angle (in degrees) where the arc begins
			 * @param sweepAngle Sweep angle (in degrees) measured clockwise, treated
			 * @param forceMoveTo If true, always begin a new contour with the arc
			 */
			public arcTo(oval: android.graphics.RectF, startAngle: number, sweepAngle: number, forceMoveTo: boolean): void;
			/**
			 * Append the specified arc to the path as a new contour. If the start of the path is different from the path's current last point, then an automatic lineTo() is added to connect the current contour to the start of the arc. However, if the path is empty, then we call moveTo() with the first point of the arc.
			 * @param oval The bounds of oval defining shape and size of the arc
			 * @param startAngle Starting angle (in degrees) where the arc begins
			 * @param sweepAngle Sweep angle (in degrees) measured clockwise
			 */
			public arcTo(oval: android.graphics.RectF, startAngle: number, sweepAngle: number): void;
			/**
			 * Close the current contour. If the current point is not equal to the first point of the contour, a line segment is automatically added.
			 */
			public close(): void;
			/**
			 * Add a closed rectangle contour to the path
			 * @param rect The rectangle to add as a closed contour to the path
			 * @param dir The direction to wind the rectangle's contour
			 */
			public addRect(rect: android.graphics.RectF, dir: android.graphics.Path.Direction): void;
			/**
			 * Add a closed rectangle contour to the path
			 * @param left The left side of a rectangle to add to the path
			 * @param top The top of a rectangle to add to the path
			 * @param right The right side of a rectangle to add to the path
			 * @param bottom The bottom of a rectangle to add to the path
			 * @param dir The direction to wind the rectangle's contour
			 */
			public addRect(left: number, top: number, right: number, bottom: number, dir: android.graphics.Path.Direction): void;
			/**
			 * Add a closed oval contour to the path
			 * @param oval The bounds of the oval to add as a closed contour to the path
			 * @param dir The direction to wind the oval's contour
			 */
			public addOval(oval: android.graphics.RectF, dir: android.graphics.Path.Direction): void;
			/**
			 * Add a closed circle contour to the path
			 * @param x The x-coordinate of the center of a circle to add to the path
			 * @param y The y-coordinate of the center of a circle to add to the path
			 * @param radius The radius of a circle to add to the path
			 * @param dir The direction to wind the circle's contour
			 */
			public addCircle(x: number, y: number, radius: number, dir: android.graphics.Path.Direction): void;
			/**
			 * Add the specified arc to the path as a new contour.
			 * @param oval The bounds of oval defining the shape and size of the arc
			 * @param startAngle Starting angle (in degrees) where the arc begins
			 * @param sweepAngle Sweep angle (in degrees) measured clockwise
			 */
			public addArc(oval: android.graphics.RectF, startAngle: number, sweepAngle: number): void;
			/**
			 * Add a closed round-rectangle contour to the path
			 * @param rect The bounds of a round-rectangle to add to the path
			 * @param rx The x-radius of the rounded corners on the round-rectangle
			 * @param ry The y-radius of the rounded corners on the round-rectangle
			 * @param dir The direction to wind the round-rectangle's contour
			 */
			public addRoundRect(rect: android.graphics.RectF, rx: number, ry: number, dir: android.graphics.Path.Direction): void;
			/**
			 * Add a closed round-rectangle contour to the path. Each corner receives two radius values [X, Y]. The corners are ordered top-left, top-right, bottom-right, bottom-left
			 * @param rect The bounds of a round-rectangle to add to the path
			 * @param radii Array of 8 values, 4 pairs of [X,Y] radii
			 * @param dir The direction to wind the round-rectangle's contour
			 */
			public addRoundRect(rect: android.graphics.RectF, radii: native.Array<number>, dir: android.graphics.Path.Direction): void;
			/**
			 * Add a copy of src to the path, offset by (dx,dy)
			 * @param src The path to add as a new contour
			 * @param dx The amount to translate the path in X as it is added
			 * @param dy 
			 */
			public addPath(src: android.graphics.Path, dx: number, dy: number): void;
			/**
			 * Add a copy of src to the path
			 * @param src The path that is appended to the current path
			 */
			public addPath(src: android.graphics.Path): void;
			/**
			 * Add a copy of src to the path, transformed by matrix
			 * @param src The path to add as a new contour
			 * @param matrix 
			 */
			public addPath(src: android.graphics.Path, matrix: android.graphics.Matrix): void;
			/**
			 * Offset the path by (dx,dy), returning true on success
			 * @param dx The amount in the X direction to offset the entire path
			 * @param dy The amount in the Y direction to offset the entire path
			 * @param dst The translated path is written here. If this is null, then
			 */
			public offset(dx: number, dy: number, dst: android.graphics.Path): void;
			/**
			 * Offset the path by (dx,dy), returning true on success
			 * @param dx The amount in the X direction to offset the entire path
			 * @param dy The amount in the Y direction to offset the entire path
			 */
			public offset(dx: number, dy: number): void;
			/**
			 * Sets the last point of the path.
			 * @param dx The new X coordinate for the last point
			 * @param dy The new Y coordinate for the last point
			 */
			public setLastPoint(dx: number, dy: number): void;
			/**
			 * Transform the points in this path by matrix, and write the answer into dst. If dst is null, then the the original path is modified.
			 * @param matrix The matrix to apply to the path
			 * @param dst The transformed path is written here. If dst is null,
			 */
			public transform(matrix: android.graphics.Matrix, dst: android.graphics.Path): void;
			/**
			 * Transform the points in this path by matrix.
			 * @param matrix The matrix to apply to the path
			 */
			public transform(matrix: android.graphics.Matrix): void;
			protected finalize(): void;
			ni(): number;
		}
		export module Path {
			/**
			 * Enum for the ways a path may be filled
			 */
			export enum FillType {
				WINDING,
				EVEN_ODD,
				INVERSE_WINDING,
				INVERSE_EVEN_ODD
			}
			/**
			 * Specifies how closed shapes (e.g. rects, ovals) are oriented when they are added to a path.
			 */
			export enum Direction {
				CW,
				CCW
			}
		}
		export class Movie extends java.lang.Object {
			static class: java.lang.Class<android.graphics.Movie>;
			public width(): number;
			public height(): number;
			public isOpaque(): boolean;
			public duration(): number;
			public setTime(relativeMilliseconds: number): boolean;
			public draw(canvas: android.graphics.Canvas, x: number, y: number, paint: android.graphics.Paint): void;
			public draw(canvas: android.graphics.Canvas, x: number, y: number): void;
			public static decodeStream(is: java.io.InputStream): android.graphics.Movie;
			public static decodeByteArray(data: native.Array<number>, offset: number, length: number): android.graphics.Movie;
			public static decodeFile(pathName: string): android.graphics.Movie;
			protected finalize(): void;
		}
		/**
		 * PixelXorXfermode implements a simple pixel xor (op ^ src ^ dst). This transformation does not follow premultiplied conventions, therefore this mode *always* returns an opaque color (alpha == 255). Thus it is not really usefull for operating on blended colors.
		 */
		export class PixelXorXfermode extends android.graphics.Xfermode {
			constructor(opColor: number);
			static class: java.lang.Class<android.graphics.PixelXorXfermode>;
		}
		export class LayerRasterizer extends android.graphics.Rasterizer {
			constructor();
			static class: java.lang.Class<android.graphics.LayerRasterizer>;
			/**
			 * Add a new layer (above any previous layers) to the rasterizer. The layer will extract those fields that affect the mask from the specified paint, but will not retain a reference to the paint object itself, so it may be reused without danger of side-effects.
			 */
			public addLayer(paint: android.graphics.Paint, dx: number, dy: number): void;
			public addLayer(paint: android.graphics.Paint): void;
		}
		/**
		 * BitmapRegionDecoder can be used to decode a rectangle region from an image. BitmapRegionDecoder is particularly useful when an original image is large and you only need parts of the image.
		 */
		export class BitmapRegionDecoder extends java.lang.Object {
			static class: java.lang.Class<android.graphics.BitmapRegionDecoder>;
			/**
			 * Create a BitmapRegionDecoder from the specified byte array. Currently only the JPEG and PNG formats are supported.
			 * @param data byte array of compressed image data.
			 * @param offset offset into data for where the decoder should begin
			 * @param length the number of bytes, beginning at offset, to parse
			 * @param isShareable If this is true, then the BitmapRegionDecoder may keep a
			 */
			public static newInstance(data: native.Array<number>, offset: number, length: number, isShareable: boolean): android.graphics.BitmapRegionDecoder;
			/**
			 * Create a BitmapRegionDecoder from the file descriptor. The position within the descriptor will not be changed when this returns, so the descriptor can be used again as is. Currently only the JPEG and PNG formats are supported.
			 * @param fd The file descriptor containing the data to decode
			 * @param isShareable If this is true, then the BitmapRegionDecoder may keep a
			 */
			public static newInstance(fd: java.io.FileDescriptor, isShareable: boolean): android.graphics.BitmapRegionDecoder;
			/**
			 * Create a BitmapRegionDecoder from an input stream. The stream's position will be where ever it was after the encoded data was read. Currently only the JPEG and PNG formats are supported.
			 * @param is The input stream that holds the raw data to be decoded into a
			 * @param isShareable If this is true, then the BitmapRegionDecoder may keep a
			 */
			public static newInstance(is: java.io.InputStream, isShareable: boolean): android.graphics.BitmapRegionDecoder;
			/**
			 * Create a BitmapRegionDecoder from a file path. Currently only the JPEG and PNG formats are supported.
			 * @param pathName complete path name for the file to be decoded.
			 * @param isShareable If this is true, then the BitmapRegionDecoder may keep a
			 */
			public static newInstance(pathName: string, isShareable: boolean): android.graphics.BitmapRegionDecoder;
			/**
			 * Decodes a rectangle region in the image specified by rect.
			 * @param rect The rectangle that specified the region to be decode.
			 * @param options null-ok; Options that control downsampling.
			 */
			public decodeRegion(rect: android.graphics.Rect, options: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			/**
			 * Returns the original image's width
			 */
			public getWidth(): number;
			/**
			 * Returns the original image's height
			 */
			public getHeight(): number;
			/**
			 * Frees up the memory associated with this region decoder, and mark the region decoder as "dead", meaning it will throw an exception if decodeRegion(), getWidth() or getHeight() is called.
			 */
			public recycle(): void;
			/**
			 * Returns true if this region decoder has been recycled. If so, then it is an error to try use its method.
			 */
			public isRecycled(): boolean;
			protected finalize(): void;
		}
		export class BitmapTest {
			constructor();
			static class: java.lang.Class<android.graphics.BitmapTest>;
			public testBasic(): void;
			public testMutability(): void;
			public testGetPixelsWithAlpha(): void;
			public testGetPixelsWithoutAlpha(): void;
			public testSetPixelsWithAlpha(): void;
			public testSetPixelsWithoutAlpha(): void;
			public testSetPixelsWithNonOpaqueAlpha(): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Xfermode
		 */
		export class Xfermode_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Xfermode_Delegate>;
			public static getDelegate(native_instance: number): android.graphics.Xfermode_Delegate;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static finalizer(native_instance: number): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.PathDashPathEffect
		 */
		export class PathDashPathEffect_Delegate extends android.graphics.PathEffect_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.PathDashPathEffect_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(native_path: number, advance: number, phase: number, native_style: number): number;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.MaskFilter
		 */
		export class MaskFilter_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.MaskFilter_Delegate>;
			public static getDelegate(nativeShader: number): android.graphics.MaskFilter_Delegate;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeDestructor(native_filter: number): void;
		}
		/**
		 * MaskFilter is the base class for object that perform transformations on an alpha-channel mask before drawing it. A subclass of MaskFilter may be installed into a Paint. Blur and emboss are implemented as subclasses of MaskFilter.
		 */
		export class MaskFilter extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.MaskFilter>;
			protected finalize(): void;
		}
		/**
		 * RectF holds four float coordinates for a rectangle. The rectangle is represented by the coordinates of its 4 edges (left, top, right bottom). These fields can be accessed directly. Use width() and height() to retrieve the rectangle's width and height. Note: most methods do not check to see that the coordinates are sorted correctly (i.e. left <= right and top <= bottom).
		 */
		export class RectF extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create a new empty RectF. All coordinates are initialized to 0.
			 */
			constructor();
			/**
			 * Create a new rectangle with the specified coordinates. Note: no range checking is performed, so the caller must ensure that left <= right and top <= bottom.
			 * @param left The X coordinate of the left side of the rectangle
			 * @param top The Y coordinate of the top of the rectangle
			 * @param right The X coordinate of the right side of the rectangle
			 * @param bottom The Y coordinate of the bottom of the rectangle
			 */
			constructor(left: number, top: number, right: number, bottom: number);
			/**
			 * Create a new rectangle, initialized with the values in the specified rectangle (which is left unmodified).
			 * @param r The rectangle whose coordinates are copied into the new
			 */
			constructor(r: android.graphics.RectF);
			constructor(r: android.graphics.Rect);
			left: number;
			top: number;
			right: number;
			bottom: number;
			static CREATOR: android.os.Parcelable.ICreator<android.graphics.RectF>;
			static class: java.lang.Class<android.graphics.RectF>;
			public equals(o: any): boolean;
			public hashCode(): number;
			public toString(): string;
			/**
			 * Return a string representation of the rectangle in a compact form.
			 */
			public toShortString(): string;
			/**
			 * Returns true if the rectangle is empty (left >= right or top >= bottom)
			 */
			public isEmpty(): boolean;
			public width(): number;
			public height(): number;
			public centerX(): number;
			public centerY(): number;
			/**
			 * Set the rectangle to (0,0,0,0)
			 */
			public setEmpty(): void;
			/**
			 * Set the rectangle's coordinates to the specified values. Note: no range checking is performed, so it is up to the caller to ensure that left <= right and top <= bottom.
			 * @param left The X coordinate of the left side of the rectangle
			 * @param top The Y coordinate of the top of the rectangle
			 * @param right The X coordinate of the right side of the rectangle
			 * @param bottom The Y coordinate of the bottom of the rectangle
			 */
			public set(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Copy the coordinates from src into this rectangle.
			 * @param src The rectangle whose coordinates are copied into this
			 */
			public set(src: android.graphics.RectF): void;
			/**
			 * Copy the coordinates from src into this rectangle.
			 * @param src The rectangle whose coordinates are copied into this
			 */
			public set(src: android.graphics.Rect): void;
			/**
			 * Offset the rectangle by adding dx to its left and right coordinates, and adding dy to its top and bottom coordinates.
			 * @param dx The amount to add to the rectangle's left and right coordinates
			 * @param dy The amount to add to the rectangle's top and bottom coordinates
			 */
			public offset(dx: number, dy: number): void;
			/**
			 * Offset the rectangle to a specific (left, top) position, keeping its width and height the same.
			 * @param newLeft The new "left" coordinate for the rectangle
			 * @param newTop The new "top" coordinate for the rectangle
			 */
			public offsetTo(newLeft: number, newTop: number): void;
			/**
			 * Inset the rectangle by (dx,dy). If dx is positive, then the sides are moved inwards, making the rectangle narrower. If dx is negative, then the sides are moved outwards, making the rectangle wider. The same holds true for dy and the top and bottom.
			 * @param dx The amount to add(subtract) from the rectangle's left(right)
			 * @param dy The amount to add(subtract) from the rectangle's top(bottom)
			 */
			public inset(dx: number, dy: number): void;
			/**
			 * Returns true if (x,y) is inside the rectangle. The left and top are considered to be inside, while the right and bottom are not. This means that for a x,y to be contained: left <= x < right and top <= y < bottom. An empty rectangle never contains any point.
			 * @param x The X coordinate of the point being tested for containment
			 * @param y The Y coordinate of the point being tested for containment
			 */
			public contains(x: number, y: number): boolean;
			/**
			 * Returns true iff the 4 specified sides of a rectangle are inside or equal to this rectangle. i.e. is this rectangle a superset of the specified rectangle. An empty rectangle never contains another rectangle.
			 * @param left The left side of the rectangle being tested for containment
			 * @param top The top of the rectangle being tested for containment
			 * @param right The right side of the rectangle being tested for containment
			 * @param bottom The bottom of the rectangle being tested for containment
			 */
			public contains(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Returns true iff the specified rectangle r is inside or equal to this rectangle. An empty rectangle never contains another rectangle.
			 * @param r The rectangle being tested for containment.
			 */
			public contains(r: android.graphics.RectF): boolean;
			/**
			 * If the rectangle specified by left,top,right,bottom intersects this rectangle, return true and set this rectangle to that intersection, otherwise return false and do not change this rectangle. No check is performed to see if either rectangle is empty. Note: To just test for intersection, use intersects()
			 * @param left The left side of the rectangle being intersected with this
			 * @param top The top of the rectangle being intersected with this rectangle
			 * @param right The right side of the rectangle being intersected with this
			 * @param bottom The bottom of the rectangle being intersected with this
			 */
			public intersect(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * If the specified rectangle intersects this rectangle, return true and set this rectangle to that intersection, otherwise return false and do not change this rectangle. No check is performed to see if either rectangle is empty. To just test for intersection, use intersects()
			 * @param r The rectangle being intersected with this rectangle.
			 */
			public intersect(r: android.graphics.RectF): boolean;
			/**
			 * If rectangles a and b intersect, return true and set this rectangle to that intersection, otherwise return false and do not change this rectangle. No check is performed to see if either rectangle is empty. To just test for intersection, use intersects()
			 * @param a The first rectangle being intersected with
			 * @param b The second rectangle being intersected with
			 */
			public setIntersect(a: android.graphics.RectF, b: android.graphics.RectF): boolean;
			/**
			 * Returns true if this rectangle intersects the specified rectangle. In no event is this rectangle modified. No check is performed to see if either rectangle is empty. To record the intersection, use intersect() or setIntersect().
			 * @param left The left side of the rectangle being tested for intersection
			 * @param top The top of the rectangle being tested for intersection
			 * @param right The right side of the rectangle being tested for
			 * @param bottom The bottom of the rectangle being tested for intersection
			 */
			public intersects(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Returns true iff the two specified rectangles intersect. In no event are either of the rectangles modified. To record the intersection, use intersect() or setIntersect().
			 * @param a The first rectangle being tested for intersection
			 * @param b The second rectangle being tested for intersection
			 */
			public static intersects(a: android.graphics.RectF, b: android.graphics.RectF): boolean;
			/**
			 * Set the dst integer Rect by rounding this rectangle's coordinates to their nearest integer values.
			 */
			public round(dst: android.graphics.Rect): void;
			/**
			 * Set the dst integer Rect by rounding "out" this rectangle, choosing the floor of top and left, and the ceiling of right and bottom.
			 */
			public roundOut(dst: android.graphics.Rect): void;
			/**
			 * Update this Rect to enclose itself and the specified rectangle. If the specified rectangle is empty, nothing is done. If this rectangle is empty it is set to the specified rectangle.
			 * @param left The left edge being unioned with this rectangle
			 * @param top The top edge being unioned with this rectangle
			 * @param right The right edge being unioned with this rectangle
			 * @param bottom The bottom edge being unioned with this rectangle
			 */
			public union(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Update this Rect to enclose itself and the specified rectangle. If the specified rectangle is empty, nothing is done. If this rectangle is empty it is set to the specified rectangle.
			 * @param r The rectangle being unioned with this rectangle
			 */
			public union(r: android.graphics.RectF): void;
			/**
			 * Update this Rect to enclose itself and the [x,y] coordinate. There is no check to see that this rectangle is non-empty.
			 * @param x The x coordinate of the point to add to the rectangle
			 * @param y The y coordinate of the point to add to the rectangle
			 */
			public union(x: number, y: number): void;
			/**
			 * Swap top/bottom or left/right if there are flipped (i.e. left > right and/or top > bottom). This can be called if the edges are computed separately, and may have crossed over each other. If the edges are already correct (i.e. left <= right and top <= bottom) then nothing is done.
			 */
			public sort(): void;
			/**
			 * Parcelable interface methods
			 */
			public describeContents(): number;
			/**
			 * Write this rectangle to the specified parcel. To restore a rectangle from a parcel, use readFromParcel()
			 * @param out The parcel to write the rectangle's coordinates into
			 * @param flags 
			 */
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Set the rectangle's coordinates from the data stored in the specified parcel. To write a rectangle to a parcel, call writeToParcel().
			 * @param input in The parcel to read the rectangle's coordinates from
			 */
			public readFromParcel(input: android.os.Parcel): void;
		}
		export class SweepGradient extends android.graphics.Shader {
			/**
			 * A subclass of Shader that draws a sweep gradient around a center point.
			 * @param cx The x-coordinate of the center
			 * @param cy The y-coordinate of the center
			 * @param colors The colors to be distributed between around the center.
			 * @param positions May be NULL. The relative position of
			 */
			constructor(cx: number, cy: number, colors: native.Array<number>, positions: native.Array<number>);
			/**
			 * A subclass of Shader that draws a sweep gradient around a center point.
			 * @param cx The x-coordinate of the center
			 * @param cy The y-coordinate of the center
			 * @param color0 The color to use at the start of the sweep
			 * @param color1 The color to use at the end of the sweep
			 */
			constructor(cx: number, cy: number, color0: number, color1: number);
			static class: java.lang.Class<android.graphics.SweepGradient>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.LightingColorFilter
		 */
		export class LightingColorFilter_Delegate extends android.graphics.ColorFilter_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.LightingColorFilter_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static native_CreateLightingFilter(mul: number, add: number): number;
			static nCreateLightingFilter(nativeFilter: number, mul: number, add: number): number;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.DiscretePathEffect
		 */
		export class DiscretePathEffect_Delegate extends android.graphics.PathEffect_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.DiscretePathEffect_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(length: number, deviation: number): number;
		}
		/**
		 * Class allowing access to package-protected methods/fields.
		 */
		export class Typeface_Accessor extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Typeface_Accessor>;
			public static resetDefaults(): void;
		}
		/**
		 * The NinePatch class permits drawing a bitmap in nine sections. The four corners are unscaled; the four edges are scaled in one axis, and the middle is scaled in both axes. Normally, the middle is transparent so that the patch can provide a selection about a rectangle. Essentially, it allows the creation of custom graphics that will scale the way that you define, when content added within the image exceeds the normal bounds of the graphic. For a thorough explanation of a NinePatch image, read the discussion in the <a href="guide/topics/graphics/2d-graphics.html#nine-patch">2D Graphics</a> document.
		 */
		export class NinePatch extends java.lang.Object {
			/**
			 * @param bitmap The bitmap describing the patches.
			 * @param chunk The 9-patch data chunk describing how the underlying
			 * @param srcName The name of the source for the bitmap. Might be null.
			 */
			constructor(bitmap: android.graphics.Bitmap, chunk: native.Array<number>, srcName: string);
			static class: java.lang.Class<android.graphics.NinePatch>;
			public setPaint(p: android.graphics.Paint): void;
			/**
			 * @param canvas A container for the current matrix and clip used to draw the bitmap.
			 * @param location Where to draw the bitmap.
			 */
			public draw(canvas: android.graphics.Canvas, location: android.graphics.RectF): void;
			/**
			 * @param canvas A container for the current matrix and clip used to draw the bitmap.
			 * @param location Where to draw the bitmap.
			 */
			public draw(canvas: android.graphics.Canvas, location: android.graphics.Rect): void;
			/**
			 * @param canvas A container for the current matrix and clip used to draw the bitmap.
			 * @param location Where to draw the bitmap.
			 * @param paint The Paint to draw through.
			 */
			public draw(canvas: android.graphics.Canvas, location: android.graphics.Rect, paint: android.graphics.Paint): void;
			/**
			 * Return the underlying bitmap's density, as per Bitmap#getDensity() Bitmap.getDensity().
			 */
			public getDensity(): number;
			public getWidth(): number;
			public getHeight(): number;
			public hasAlpha(): boolean;
			public getTransparentRegion(location: android.graphics.Rect): android.graphics.Region;
			public static isNinePatchChunk(chunk: native.Array<number>): boolean;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.PorterDuffXfermode
		 */
		export class PorterDuffXfermode_Delegate extends android.graphics.Xfermode_Delegate {
			static class: java.lang.Class<android.graphics.PorterDuffXfermode_Delegate>;
			public getMode(): android.graphics.PorterDuff.Mode;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			public static getPorterDuffMode(mode: number): android.graphics.PorterDuff.Mode;
			static nativeCreateXfermode(mode: number): number;
		}
		/**
		 * Shader is the based class for objects that return horizontal spans of colors during drawing. A subclass of Shader is installed in a Paint calling paint.setShader(shader). After that any object (other than a bitmap) that is drawn with that paint will get its color(s) from the shader.
		 */
		export class Shader extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Shader>;
			/**
			 * Return true if the shader has a non-identity local matrix.
			 * @param localM If not null, it is set to the shader's local matrix.
			 */
			public getLocalMatrix(localM: android.graphics.Matrix): boolean;
			/**
			 * Set the shader's local matrix. Passing null will reset the shader's matrix to identity
			 * @param localM The shader's new local matrix, or null to specify identity
			 */
			public setLocalMatrix(localM: android.graphics.Matrix): void;
			protected finalize(): void;
		}
		export module Shader {
			export enum TileMode {
				CLAMP,
				REPEAT,
				MIRROR
			}
		}
		/**
		 * Shader used to draw a bitmap as a texture. The bitmap can be repeated or mirrored by setting the tiling mode.
		 */
		export class BitmapShader extends android.graphics.Shader {
			/**
			 * Call this to create a new shader that will draw with a bitmap.
			 * @param bitmap The bitmap to use inside the shader
			 * @param tileX The tiling mode for x to draw the bitmap in.
			 * @param tileY The tiling mode for y to draw the bitmap in.
			 */
			constructor(bitmap: android.graphics.Bitmap, tileX: android.graphics.Shader.TileMode, tileY: android.graphics.Shader.TileMode);
			static class: java.lang.Class<android.graphics.BitmapShader>;
		}
		export class ImageFormat extends java.lang.Object {
			constructor();
			static UNKNOWN: number;
			/**
			 * RGB format used for pictures encoded as RGB_565. See android.hardware.Camera.Parameters#setPictureFormat(int).
			 */
			static RGB_565: number;
			static YV12: number;
			/**
			 * YCbCr format, used for video. Whether this format is supported by the camera hardware can be determined by android.hardware.Camera.Parameters#getSupportedPreviewFormats().
			 */
			static NV16: number;
			/**
			 * YCrCb format used for images, which uses the NV21 encoding format. This is the default format for camera preview images, when not otherwise set with android.hardware.Camera.Parameters#setPreviewFormat(int).
			 */
			static NV21: number;
			/**
			 * YCbCr format used for images, which uses YUYV (YUY2) encoding format. This is an alternative format for camera preview images. Whether this format is supported by the camera hardware can be determined by android.hardware.Camera.Parameters#getSupportedPreviewFormats().
			 */
			static YUY2: number;
			/**
			 * Encoded formats. These are not necessarily supported by the hardware.
			 */
			static JPEG: number;
			static class: java.lang.Class<android.graphics.ImageFormat>;
			/**
			 * Use this function to retrieve the number of bits per pixel of an ImageFormat.
			 * @param format 
			 */
			public static getBitsPerPixel(format: number): number;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Matrix
		 */
		export class Matrix_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.graphics.Matrix_Delegate>;
			public static getDelegate(native_instance: number): android.graphics.Matrix_Delegate;
			public static hasPerspective(m: android.graphics.Matrix): boolean;
			/**
			 * Sets the content of the matrix with the content of another matrix.
			 */
			public set(matrix: android.graphics.Matrix_Delegate): void;
			/**
			 * Sets the content of the matrix with the content of another matrix represented as an array of values.
			 */
			public set(values: native.Array<number>): void;
			/**
			 * Resets the matrix to be the identity matrix.
			 */
			public reset(): void;
			/**
			 * Returns whether or not the matrix is identity.
			 */
			public isIdentity(): boolean;
			public mapRect(dst: android.graphics.RectF, src: android.graphics.RectF): boolean;
			public hasPerspective(): boolean;
			static native_create(native_src_or_zero: number): number;
			static native_isIdentity(native_object: number): boolean;
			static native_rectStaysRect(native_object: number): boolean;
			static native_reset(native_object: number): void;
			static native_set(native_object: number, other: number): void;
			static native_setTranslate(native_object: number, dx: number, dy: number): void;
			static native_setScale(native_object: number, sx: number, sy: number, px: number, py: number): void;
			static native_setScale(native_object: number, sx: number, sy: number): void;
			static native_setRotate(native_object: number, degrees: number, px: number, py: number): void;
			static native_setRotate(native_object: number, degrees: number): void;
			static native_setSinCos(native_object: number, sinValue: number, cosValue: number, px: number, py: number): void;
			static native_setSinCos(native_object: number, sinValue: number, cosValue: number): void;
			static native_setSkew(native_object: number, kx: number, ky: number, px: number, py: number): void;
			static native_setSkew(native_object: number, kx: number, ky: number): void;
			static native_setConcat(native_object: number, a: number, b: number): boolean;
			static native_preTranslate(native_object: number, dx: number, dy: number): boolean;
			static native_preScale(native_object: number, sx: number, sy: number, px: number, py: number): boolean;
			static native_preScale(native_object: number, sx: number, sy: number): boolean;
			static native_preRotate(native_object: number, degrees: number, px: number, py: number): boolean;
			static native_preRotate(native_object: number, degrees: number): boolean;
			static native_preSkew(native_object: number, kx: number, ky: number, px: number, py: number): boolean;
			static native_preSkew(native_object: number, kx: number, ky: number): boolean;
			static native_preConcat(native_object: number, other_matrix: number): boolean;
			static native_postTranslate(native_object: number, dx: number, dy: number): boolean;
			static native_postScale(native_object: number, sx: number, sy: number, px: number, py: number): boolean;
			static native_postScale(native_object: number, sx: number, sy: number): boolean;
			static native_postRotate(native_object: number, degrees: number, px: number, py: number): boolean;
			static native_postRotate(native_object: number, degrees: number): boolean;
			static native_postSkew(native_object: number, kx: number, ky: number, px: number, py: number): boolean;
			static native_postSkew(native_object: number, kx: number, ky: number): boolean;
			static native_postConcat(native_object: number, other_matrix: number): boolean;
			static native_setRectToRect(native_object: number, src: android.graphics.RectF, dst: android.graphics.RectF, stf: number): boolean;
			static native_setPolyToPoly(native_object: number, src: native.Array<number>, srcIndex: number, dst: native.Array<number>, dstIndex: number, pointCount: number): boolean;
			static native_invert(native_object: number, inverse: number): boolean;
			static native_mapPoints(native_object: number, dst: native.Array<number>, dstIndex: number, src: native.Array<number>, srcIndex: number, ptCount: number, isPts: boolean): void;
			static native_mapRect(native_object: number, dst: android.graphics.RectF, src: android.graphics.RectF): boolean;
			static native_mapRadius(native_object: number, radius: number): number;
			static native_getValues(native_object: number, values: native.Array<number>): void;
			static native_setValues(native_object: number, values: native.Array<number>): void;
			static native_equals(native_a: number, native_b: number): boolean;
			static finalizer(native_instance: number): void;
			/**
			 * multiply two matrices and store them in a 3rd. <p/>This in effect does dest = a*b dest cannot be the same as a or b.
			 */
			static multiply(dest: native.Array<number>, a: native.Array<number>, b: native.Array<number>): void;
			/**
			 * Returns a matrix that represents a given translate
			 * @param dx 
			 * @param dy 
			 */
			static getTranslate(dx: number, dy: number): native.Array<number>;
			static setTranslate(dest: native.Array<number>, dx: number, dy: number): native.Array<number>;
			static getScale(sx: number, sy: number): native.Array<number>;
			/**
			 * Returns a matrix that represents the given scale info.
			 * @param sx 
			 * @param sy 
			 * @param px 
			 * @param py 
			 */
			static getScale(sx: number, sy: number, px: number, py: number): native.Array<number>;
			static getRotate(degrees: number): native.Array<number>;
			static getRotate(sin: number, cos: number): native.Array<number>;
			static setRotate(dest: native.Array<number>, degrees: number): native.Array<number>;
			static setRotate(dest: native.Array<number>, sin: number, cos: number): native.Array<number>;
			static getRotate(degrees: number, px: number, py: number): native.Array<number>;
			static getSkew(kx: number, ky: number): native.Array<number>;
			static getSkew(kx: number, ky: number, px: number, py: number): native.Array<number>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Path
		 */
		export class Path_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Path_Delegate>;
			public static getDelegate(nPath: number): android.graphics.Path_Delegate;
			public reset(): void;
			static init1(): number;
			static init2(nPath: number): number;
			static native_reset(nPath: number): void;
			static native_rewind(nPath: number): void;
			static native_set(native_dst: number, native_src: number): void;
			static native_getFillType(nPath: number): number;
			static native_setFillType(nPath: number, ft: number): void;
			static native_isEmpty(nPath: number): boolean;
			static native_isRect(nPath: number, rect: android.graphics.RectF): boolean;
			static native_computeBounds(nPath: number, bounds: android.graphics.RectF): void;
			static native_incReserve(nPath: number, extraPtCount: number): void;
			static native_moveTo(nPath: number, x: number, y: number): void;
			static native_rMoveTo(nPath: number, dx: number, dy: number): void;
			static native_lineTo(nPath: number, x: number, y: number): void;
			static native_rLineTo(nPath: number, dx: number, dy: number): void;
			static native_quadTo(nPath: number, x1: number, y1: number, x2: number, y2: number): void;
			static native_rQuadTo(nPath: number, dx1: number, dy1: number, dx2: number, dy2: number): void;
			static native_cubicTo(nPath: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void;
			static native_rCubicTo(nPath: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): void;
			static native_arcTo(nPath: number, oval: android.graphics.RectF, startAngle: number, sweepAngle: number, forceMoveTo: boolean): void;
			static native_close(nPath: number): void;
			static native_addRect(nPath: number, rect: android.graphics.RectF, dir: number): void;
			static native_addRect(nPath: number, left: number, top: number, right: number, bottom: number, dir: number): void;
			static native_addOval(nPath: number, oval: android.graphics.RectF, dir: number): void;
			static native_addCircle(nPath: number, x: number, y: number, radius: number, dir: number): void;
			static native_addArc(nPath: number, oval: android.graphics.RectF, startAngle: number, sweepAngle: number): void;
			static native_addRoundRect(nPath: number, rect: android.graphics.RectF, rx: number, ry: number, dir: number): void;
			static native_addRoundRect(nPath: number, rect: android.graphics.RectF, radii: native.Array<number>, dir: number): void;
			static native_addPath(nPath: number, src: number, dx: number, dy: number): void;
			static native_addPath(nPath: number, src: number): void;
			static native_addPath(nPath: number, src: number, matrix: number): void;
			static native_offset(nPath: number, dx: number, dy: number, dst_path: number): void;
			static native_offset(nPath: number, dx: number, dy: number): void;
			static native_setLastPoint(nPath: number, dx: number, dy: number): void;
			static native_transform(nPath: number, matrix: number, dst_path: number): void;
			static native_transform(nPath: number, matrix: number): void;
			static finalizer(nPath: number): void;
			/**
			 * Offset the path by (dx,dy), returning true on success
			 * @param dx The amount in the X direction to offset the entire path
			 * @param dy The amount in the Y direction to offset the entire path
			 * @param dst The translated path is written here. If this is null, then
			 */
			public offset(dx: number, dy: number, dst: android.graphics.Path_Delegate): void;
			/**
			 * Transform the points in this path by matrix, and write the answer into dst. If dst is null, then the the original path is modified.
			 * @param matrix The matrix to apply to the path
			 * @param dst The transformed path is written here. If dst is null,
			 */
			public transform(matrix: android.graphics.Matrix_Delegate, dst: android.graphics.Path_Delegate): void;
		}
		/**
		 * AvoidXfermode xfermode will draw the src everywhere except on top of the opColor or, depending on the Mode, draw only on top of the opColor.
		 */
		export class AvoidXfermode extends android.graphics.Xfermode {
			/**
			 * This xfermode draws, or doesn't draw, based on the destination's distance from an op-color.
			 */
			constructor(opColor: number, tolerance: number, mode: android.graphics.AvoidXfermode.Mode);
			static class: java.lang.Class<android.graphics.AvoidXfermode>;
		}
		export module AvoidXfermode {
			export enum Mode {
				AVOID,
				TARGET
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.PorterDuffColorFilter
		 */
		export class PorterDuffColorFilter_Delegate extends android.graphics.ColorFilter_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.PorterDuffColorFilter_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static native_CreatePorterDuffFilter(srcColor: number, porterDuffMode: number): number;
			static nCreatePorterDuffFilter(nativeFilter: number, srcColor: number, porterDuffMode: number): number;
		}
		export class Matrix_DelegateTest {
			constructor();
			static class: java.lang.Class<android.graphics.Matrix_DelegateTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testIdentity(): void;
			public testCopyConstructor(): void;
		}
		export class PixelFormat extends java.lang.Object {
			constructor();
			static UNKNOWN: number;
			/**
			 * System chooses a format that supports translucency (many alpha bits)
			 */
			static TRANSLUCENT: number;
			static TRANSPARENT: number;
			/**
			 * System chooses an opaque format (no alpha bits required)
			 */
			static OPAQUE: number;
			static RGBA_8888: number;
			static RGBX_8888: number;
			static RGB_888: number;
			static RGB_565: number;
			static RGBA_5551: number;
			static RGBA_4444: number;
			static A_8: number;
			static L_8: number;
			static LA_88: number;
			static RGB_332: number;
			/**
			 *  use android.graphics.ImageFormat#NV16 ImageFormat.NV16 instead.
			 */
			static YCbCr_422_SP: number;
			/**
			 *  use android.graphics.ImageFormat#NV21 ImageFormat.NV21 instead.
			 */
			static YCbCr_420_SP: number;
			/**
			 *  use android.graphics.ImageFormat#YUY2 ImageFormat.YUY2 instead.
			 */
			static YCbCr_422_I: number;
			/**
			 *  use android.graphics.ImageFormat#JPEG ImageFormat.JPEG instead.
			 */
			static JPEG: number;
			bytesPerPixel: number;
			bitsPerPixel: number;
			static class: java.lang.Class<android.graphics.PixelFormat>;
			public static getPixelFormatInfo(format: number, info: android.graphics.PixelFormat): void;
			public static formatHasAlpha(format: number): boolean;
		}
		/**
		 * Creates Bitmap objects from various sources, including files, streams, and byte-arrays.
		 */
		export class BitmapFactory extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.BitmapFactory>;
			/**
			 * Decode a file path into a bitmap. If the specified file name is null, or cannot be decoded into a bitmap, the function returns null.
			 * @param pathName complete path name for the file to be decoded.
			 * @param opts null-ok; Options that control downsampling and whether the
			 */
			public static decodeFile(pathName: string, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			/**
			 * Decode a file path into a bitmap. If the specified file name is null, or cannot be decoded into a bitmap, the function returns null.
			 * @param pathName complete path name for the file to be decoded.
			 */
			public static decodeFile(pathName: string): android.graphics.Bitmap;
			/**
			 * Decode a new Bitmap from an InputStream. This InputStream was obtained from resources, which we pass to be able to scale the bitmap accordingly.
			 */
			public static decodeResourceStream(res: android.content.res.Resources, value: android.util.TypedValue, is: java.io.InputStream, pad: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			/**
			 * Synonym for opening the given resource and calling #decodeResourceStream.
			 * @param res The resources object containing the image data
			 * @param id The resource id of the image data
			 * @param opts null-ok; Options that control downsampling and whether the
			 */
			public static decodeResource(res: android.content.res.Resources, id: number, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			/**
			 * Synonym for #decodeResource(Resources, int, android.graphics.BitmapFactory.Options) will null Options.
			 * @param res The resources object containing the image data
			 * @param id The resource id of the image data
			 */
			public static decodeResource(res: android.content.res.Resources, id: number): android.graphics.Bitmap;
			/**
			 * Decode an immutable bitmap from the specified byte array.
			 * @param data byte array of compressed image data
			 * @param offset offset into imageData for where the decoder should begin
			 * @param length the number of bytes, beginning at offset, to parse
			 * @param opts null-ok; Options that control downsampling and whether the
			 */
			public static decodeByteArray(data: native.Array<number>, offset: number, length: number, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			/**
			 * Decode an immutable bitmap from the specified byte array.
			 * @param data byte array of compressed image data
			 * @param offset offset into imageData for where the decoder should begin
			 * @param length the number of bytes, beginning at offset, to parse
			 */
			public static decodeByteArray(data: native.Array<number>, offset: number, length: number): android.graphics.Bitmap;
			/**
			 * Decode an input stream into a bitmap. If the input stream is null, or cannot be used to decode a bitmap, the function returns null. The stream's position will be where ever it was after the encoded data was read.
			 * @param is The input stream that holds the raw data to be decoded into a
			 * @param outPadding If not null, return the padding rect for the bitmap if
			 * @param opts null-ok; Options that control downsampling and whether the
			 */
			public static decodeStream(is: java.io.InputStream, outPadding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			/**
			 * Decode an input stream into a bitmap. If the input stream is null, or cannot be used to decode a bitmap, the function returns null. The stream's position will be where ever it was after the encoded data was read.
			 * @param is The input stream that holds the raw data to be decoded into a
			 */
			public static decodeStream(is: java.io.InputStream): android.graphics.Bitmap;
			/**
			 * Decode a bitmap from the file descriptor. If the bitmap cannot be decoded return null. The position within the descriptor will not be changed when this returns, so the descriptor can be used again as-is.
			 * @param fd The file descriptor containing the bitmap data to decode
			 * @param outPadding If not null, return the padding rect for the bitmap if
			 * @param opts null-ok; Options that control downsampling and whether the
			 */
			public static decodeFileDescriptor(fd: java.io.FileDescriptor, outPadding: android.graphics.Rect, opts: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			/**
			 * Decode a bitmap from the file descriptor. If the bitmap cannot be decoded return null. The position within the descriptor will not be changed when this returns, so the descriptor can be used again as is.
			 * @param fd The file descriptor containing the bitmap data to decode
			 */
			public static decodeFileDescriptor(fd: java.io.FileDescriptor): android.graphics.Bitmap;
		}
		export module BitmapFactory {
			export class Options extends java.lang.Object {
				/**
				 * Create a default Options object, which if left unchanged will give the same result from the decoder as if null were passed.
				 */
				constructor();
				/**
				 * If set, decode methods that take the Options object will attempt to reuse this bitmap when loading content. If the decode operation cannot use this bitmap, the decode method will return <code>null</code> and will throw an IllegalArgumentException. The current implementation necessitates that the reused bitmap be of the same size as the source content and in jpeg or png format (whether as a resource or as a stream). The android.graphics.Bitmap.Config configuration of the reused bitmap will override the setting of #inPreferredConfig, if set.
				 */
				inBitmap: android.graphics.Bitmap;
				/**
				 * If set, decode methods will always return a mutable Bitmap instead of an immutable one. This can be used for instance to programmatically apply effects to a Bitmap loaded through BitmapFactory.
				 */
				inMutable: boolean;
				/**
				 * If set to true, the decoder will return null (no bitmap), but the out... fields will still be set, allowing the caller to query the bitmap without having to allocate the memory for its pixels.
				 */
				inJustDecodeBounds: boolean;
				/**
				 * If set to a value > 1, requests the decoder to subsample the original image, returning a smaller image to save memory. The sample size is the number of pixels in either dimension that correspond to a single pixel in the decoded bitmap. For example, inSampleSize == 4 returns an image that is 1/4 the width/height of the original, and 1/16 the number of pixels. Any value <= 1 is treated the same as 1. Note: the decoder will try to fulfill this request, but the resulting bitmap may have different dimensions that precisely what has been requested. Also, powers of 2 are often faster/easier for the decoder to honor.
				 */
				inSampleSize: number;
				/**
				 * If this is non-null, the decoder will try to decode into this internal configuration. If it is null, or the request cannot be met, the decoder will try to pick the best matching config based on the system's screen depth, and characteristics of the original image such as if it has per-pixel alpha (requiring a config that also does). Image are loaded with the Bitmap.Config#ARGB_8888 config by default.
				 */
				inPreferredConfig: android.graphics.Bitmap.Config;
				/**
				 * If dither is true, the decoder will attempt to dither the decoded image.
				 */
				inDither: boolean;
				/**
				 * The pixel density to use for the bitmap. This will always result in the returned bitmap having a density set for it (see Bitmap#setDensity(int) Bitmap.setDensity(int)). In addition, if #inScaled is set (which it is by default} and this density does not match #inTargetDensity, then the bitmap will be scaled to the target density before being returned. 
				 */
				inDensity: number;
				/**
				 * The pixel density of the destination this bitmap will be drawn to. This is used in conjunction with #inDensity and #inScaled to determine if and how to scale the bitmap before returning it. 
				 */
				inTargetDensity: number;
				/**
				 * The pixel density of the actual screen that is being used. This is purely for applications running in density compatibility code, where #inTargetDensity is actually the density the application sees rather than the real screen density. 
				 */
				inScreenDensity: number;
				/**
				 * When this flag is set, if #inDensity and #inTargetDensity are not 0, the bitmap will be scaled to match #inTargetDensity when loaded, rather than relying on the graphics system scaling it each time it is drawn to a Canvas.
				 */
				inScaled: boolean;
				/**
				 * If this is set to true, then the resulting bitmap will allocate its pixels such that they can be purged if the system needs to reclaim memory. In that instance, when the pixels need to be accessed again (e.g. the bitmap is drawn, getPixels() is called), they will be automatically re-decoded.
				 */
				inPurgeable: boolean;
				/**
				 * This field works in conjuction with inPurgeable. If inPurgeable is false, then this field is ignored. If inPurgeable is true, then this field determines whether the bitmap can share a reference to the input data (inputstream, array, etc.) or if it must make a deep copy.
				 */
				inInputShareable: boolean;
				/**
				 * If inPreferQualityOverSpeed is set to true, the decoder will try to decode the reconstructed image to a higher quality even at the expense of the decoding speed. Currently the field only affects JPEG decode, in the case of which a more accurate, but slightly slower, IDCT method will be used instead.
				 */
				inPreferQualityOverSpeed: boolean;
				/**
				 * The resulting width of the bitmap, set independent of the state of inJustDecodeBounds. However, if there is an error trying to decode, outWidth will be set to -1.
				 */
				outWidth: number;
				/**
				 * The resulting height of the bitmap, set independent of the state of inJustDecodeBounds. However, if there is an error trying to decode, outHeight will be set to -1.
				 */
				outHeight: number;
				/**
				 * If known, this string is set to the mimetype of the decoded image. If not know, or there is an error, it is set to null.
				 */
				outMimeType: string;
				/**
				 * Temp storage to use for decoding. Suggest 16K or so.
				 */
				inTempStorage: native.Array<number>;
				/**
				 * Flag to indicate that cancel has been called on this object. This is useful if there's an intermediary that wants to first decode the bounds and then decode the image. In that case the intermediary can check, inbetween the bounds decode and the image decode, to see if the operation is canceled.
				 */
				mCancel: boolean;
				static class: java.lang.Class<android.graphics.BitmapFactory.Options>;
				/**
				 * This can be called from another thread while this options object is inside a decode... call. Calling this will notify the decoder that it should cancel its operation. This is not guaranteed to cancel the decode, but if it does, the decoder... operation will return null, or if inJustDecodeBounds is true, will set outWidth/outHeight to -1
				 */
				public requestCancelDecode(): void;
			}
		}
		/**
		 * A camera instance can be used to compute 3D transformations and generate a matrix that can be applied, for instance, on a Canvas.
		 */
		export class Camera extends java.lang.Object {
			/**
			 * Creates a new camera, with empty transformations.
			 */
			constructor();
			static class: java.lang.Class<android.graphics.Camera>;
			/**
			 * Saves the camera state. Each save should be balanced with a call to #restore(). #save()
			 */
			public save(): void;
			/**
			 * Restores the saved state, if any. #restore()
			 */
			public restore(): void;
			/**
			 * Applies a translation transform on all three axis. 
			 * @param x The distance to translate by on the X axis
			 * @param y The distance to translate by on the Y axis
			 * @param z The distance to translate by on the Z axis
			 */
			public translate(x: number, y: number, z: number): void;
			/**
			 * Applies a rotation transform around the X axis. 
			 * @param deg The angle of rotation around the X axis, in degrees
			 */
			public rotateX(deg: number): void;
			/**
			 * Applies a rotation transform around the Y axis. 
			 * @param deg The angle of rotation around the Y axis, in degrees
			 */
			public rotateY(deg: number): void;
			/**
			 * Applies a rotation transform around the Z axis. 
			 * @param deg The angle of rotation around the Z axis, in degrees
			 */
			public rotateZ(deg: number): void;
			/**
			 * Applies a rotation transform around all three axis. 
			 * @param x The angle of rotation around the X axis, in degrees
			 * @param y The angle of rotation around the Y axis, in degrees
			 * @param z The angle of rotation around the Z axis, in degrees
			 */
			public rotate(x: number, y: number, z: number): void;
			/**
			 * Gets the x location of the camera.
			 */
			public getLocationX(): number;
			/**
			 * Gets the y location of the camera.
			 */
			public getLocationY(): number;
			/**
			 * Gets the z location of the camera.
			 */
			public getLocationZ(): number;
			/**
			 * Sets the location of the camera. The default location is set at 0, 0, -8. 
			 * @param x The x location of the camera
			 * @param y The y location of the camera
			 * @param z The z location of the camera
			 */
			public setLocation(x: number, y: number, z: number): void;
			/**
			 * Computes the matrix corresponding to the current transformation and copies it to the supplied matrix object. 
			 * @param matrix The matrix to copy the current transforms into
			 */
			public getMatrix(matrix: android.graphics.Matrix): void;
			/**
			 * Computes the matrix corresponding to the current transformation and applies it to the specified Canvas. 
			 * @param canvas The Canvas to set the transform matrix onto
			 */
			public applyToCanvas(canvas: android.graphics.Canvas): void;
			public dotWithNormal(dx: number, dy: number, dz: number): number;
			protected finalize(): void;
		}
		export class PathDashPathEffect extends android.graphics.PathEffect {
			/**
			 * Dash the drawn path by stamping it with the specified shape. This only applies to drawings when the paint's style is STROKE or STROKE_AND_FILL. If the paint's style is FILL, then this effect is ignored. The paint's strokeWidth does not affect the results.
			 * @param shape The path to stamp along
			 * @param advance spacing between each stamp of shape
			 * @param phase amount to offset before the first shape is stamped
			 * @param style how to transform the shape at each position as it is stamped
			 */
			constructor(shape: android.graphics.Path, advance: number, phase: number, style: android.graphics.PathDashPathEffect.Style);
			static class: java.lang.Class<android.graphics.PathDashPathEffect>;
		}
		export module PathDashPathEffect {
			export enum Style {
				TRANSLATE,
				ROTATE,
				MORPH
			}
		}
		export class PaintFlagsDrawFilter extends android.graphics.DrawFilter {
			/**
			 * Subclass of DrawFilter that affects every paint by first clearing the specified clearBits in the paint's flags, and then setting the specified setBits in the paint's flags.
			 * @param clearBits These bits will be cleared in the paint's flags
			 * @param setBits These bits will be set in the paint's flags
			 */
			constructor(clearBits: number, setBits: number);
			static class: java.lang.Class<android.graphics.PaintFlagsDrawFilter>;
		}
		/**
		 * The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing).
		 */
		export class Canvas extends java.lang.Object {
			/**
			 * Construct an empty raster canvas. Use setBitmap() to specify a bitmap to draw into. The initial target density is Bitmap#DENSITY_NONE; this will typically be replaced when a target bitmap is set for the canvas.
			 */
			constructor();
			/**
			 * Construct a canvas with the specified bitmap to draw into. The bitmap must be mutable. 
			 * @param bitmap Specifies a mutable bitmap for the canvas to draw into.
			 */
			constructor(bitmap: android.graphics.Bitmap);
			/**
			 * restore the current matrix when restore() is called
			 */
			static MATRIX_SAVE_FLAG: number;
			/**
			 * restore the current clip when restore() is called
			 */
			static CLIP_SAVE_FLAG: number;
			/**
			 * the layer needs to per-pixel alpha
			 */
			static HAS_ALPHA_LAYER_SAVE_FLAG: number;
			/**
			 * the layer needs to 8-bits per color component
			 */
			static FULL_COLOR_LAYER_SAVE_FLAG: number;
			/**
			 * clip against the layer's bounds
			 */
			static CLIP_TO_LAYER_SAVE_FLAG: number;
			/**
			 * restore everything when restore() is called
			 */
			static ALL_SAVE_FLAG: number;
			static class: java.lang.Class<android.graphics.Canvas>;
			/**
			 * Indicates whether this Canvas uses hardware acceleration. Note that this method does not define what type of hardware acceleration may or may not be used. 
			 */
			public isHardwareAccelerated(): boolean;
			/**
			 * Specify a bitmap for the canvas to draw into. As a side-effect, also updates the canvas's target density to match that of the bitmap.
			 * @param bitmap Specifies a mutable bitmap for the canvas to draw into.
			 */
			public setBitmap(bitmap: android.graphics.Bitmap): void;
			/**
			 * Return true if the device that the current layer draws into is opaque (i.e. does not support per-pixel alpha).
			 */
			public isOpaque(): boolean;
			/**
			 * Returns the width of the current drawing layer
			 */
			public getWidth(): number;
			/**
			 * Returns the height of the current drawing layer
			 */
			public getHeight(): number;
			public getDensity(): number;
			/**
			 * @param density The new target density of the canvas, which is used
			 */
			public setDensity(density: number): void;
			/**
			 * Returns the maximum allowed width for bitmaps drawn with this canvas. Attempting to draw with a bitmap wider than this value will result in an error. #getMaximumBitmapHeight()
			 */
			public getMaximumBitmapWidth(): number;
			/**
			 * Returns the maximum allowed height for bitmaps drawn with this canvas. Attempting to draw with a bitmap taller than this value will result in an error. #getMaximumBitmapWidth()
			 */
			public getMaximumBitmapHeight(): number;
			/**
			 * Saves the current matrix and clip onto a private stack. Subsequent calls to translate,scale,rotate,skew,concat or clipRect,clipPath will all operate as usual, but when the balancing call to restore() is made, those calls will be forgotten, and the settings that existed before the save() will be reinstated.
			 */
			public save(): number;
			/**
			 * Based on saveFlags, can save the current matrix and clip onto a private stack. Subsequent calls to translate,scale,rotate,skew,concat or clipRect,clipPath will all operate as usual, but when the balancing call to restore() is made, those calls will be forgotten, and the settings that existed before the save() will be reinstated.
			 * @param saveFlags flag bits that specify which parts of the Canvas state
			 */
			public save(saveFlags: number): number;
			/**
			 * This behaves the same as save(), but in addition it allocates an offscreen bitmap. All drawing calls are directed there, and only when the balancing call to restore() is made is that offscreen transfered to the canvas (or the previous layer). Subsequent calls to translate, scale, rotate, skew, concat or clipRect, clipPath all operate on this copy. When the balancing call to restore() is made, this copy is deleted and the previous matrix/clip state is restored.
			 * @param bounds May be null. The maximum size the offscreen bitmap
			 * @param paint This is copied, and is applied to the offscreen when
			 * @param saveFlags see _SAVE_FLAG constants
			 */
			public saveLayer(bounds: android.graphics.RectF, paint: android.graphics.Paint, saveFlags: number): number;
			/**
			 * Helper version of saveLayer() that takes 4 values rather than a RectF.
			 */
			public saveLayer(left: number, top: number, right: number, bottom: number, paint: android.graphics.Paint, saveFlags: number): number;
			/**
			 * This behaves the same as save(), but in addition it allocates an offscreen bitmap. All drawing calls are directed there, and only when the balancing call to restore() is made is that offscreen transfered to the canvas (or the previous layer). Subsequent calls to translate, scale, rotate, skew, concat or clipRect, clipPath all operate on this copy. When the balancing call to restore() is made, this copy is deleted and the previous matrix/clip state is restored.
			 * @param bounds The maximum size the offscreen bitmap needs to be
			 * @param alpha The alpha to apply to the offscreen when when it is
			 * @param saveFlags see _SAVE_FLAG constants
			 */
			public saveLayerAlpha(bounds: android.graphics.RectF, alpha: number, saveFlags: number): number;
			/**
			 * Helper for saveLayerAlpha() that takes 4 values instead of a RectF.
			 */
			public saveLayerAlpha(left: number, top: number, right: number, bottom: number, alpha: number, saveFlags: number): number;
			/**
			 * This call balances a previous call to save(), and is used to remove all modifications to the matrix/clip state since the last save call. It is an error to call restore() more times than save() was called.
			 */
			public restore(): void;
			/**
			 * Returns the number of matrix/clip states on the Canvas' private stack. This will equal # save() calls - # restore() calls.
			 */
			public getSaveCount(): number;
			/**
			 * Efficient way to pop any calls to save() that happened after the save count reached saveCount. It is an error for saveCount to be less than 1.
			 * @param saveCount The save level to restore to.
			 */
			public restoreToCount(saveCount: number): void;
			/**
			 * Preconcat the current matrix with the specified translation
			 * @param dx The distance to translate in X
			 * @param dy The distance to translate in Y
			 */
			public translate(dx: number, dy: number): void;
			/**
			 * Preconcat the current matrix with the specified scale.
			 * @param sx The amount to scale in X
			 * @param sy The amount to scale in Y
			 */
			public scale(sx: number, sy: number): void;
			/**
			 * Preconcat the current matrix with the specified scale.
			 * @param sx The amount to scale in X
			 * @param sy The amount to scale in Y
			 * @param px The x-coord for the pivot point (unchanged by the scale)
			 * @param py The y-coord for the pivot point (unchanged by the scale)
			 */
			public scale(sx: number, sy: number, px: number, py: number): void;
			/**
			 * Preconcat the current matrix with the specified rotation.
			 * @param degrees The amount to rotate, in degrees
			 */
			public rotate(degrees: number): void;
			/**
			 * Preconcat the current matrix with the specified rotation.
			 * @param degrees The amount to rotate, in degrees
			 * @param px The x-coord for the pivot point (unchanged by the rotation)
			 * @param py The y-coord for the pivot point (unchanged by the rotation)
			 */
			public rotate(degrees: number, px: number, py: number): void;
			/**
			 * Preconcat the current matrix with the specified skew.
			 * @param sx The amount to skew in X
			 * @param sy The amount to skew in Y
			 */
			public skew(sx: number, sy: number): void;
			/**
			 * Preconcat the current matrix with the specified matrix.
			 * @param matrix The matrix to preconcatenate with the current matrix
			 */
			public concat(matrix: android.graphics.Matrix): void;
			/**
			 * Completely replace the current matrix with the specified matrix. If the matrix parameter is null, then the current matrix is reset to identity. <strong>Note:</strong> it is recommended to use #concat(Matrix), #scale(float, float), #translate(float, float) and #rotate(float) instead of this method.
			 * @param matrix The matrix to replace the current matrix with. If it is
			 */
			public setMatrix(matrix: android.graphics.Matrix): void;
			/**
			 * Return, in ctm, the current transformation matrix. This does not alter the matrix in the canvas, but just returns a copy of it.
			 */
			public getMatrix(ctm: android.graphics.Matrix): void;
			/**
			 * Return a new matrix with a copy of the canvas' current transformation matrix.
			 */
			public getMatrix(): android.graphics.Matrix;
			/**
			 * Modify the current clip with the specified rectangle.
			 * @param rect The rect to intersect with the current clip
			 * @param op How the clip is modified
			 */
			public clipRect(rect: android.graphics.RectF, op: android.graphics.Region.Op): boolean;
			/**
			 * Modify the current clip with the specified rectangle, which is expressed in local coordinates.
			 * @param rect The rectangle to intersect with the current clip.
			 * @param op How the clip is modified
			 */
			public clipRect(rect: android.graphics.Rect, op: android.graphics.Region.Op): boolean;
			/**
			 * Intersect the current clip with the specified rectangle, which is expressed in local coordinates.
			 * @param rect The rectangle to intersect with the current clip.
			 */
			public clipRect(rect: android.graphics.RectF): boolean;
			/**
			 * Intersect the current clip with the specified rectangle, which is expressed in local coordinates.
			 * @param rect The rectangle to intersect with the current clip.
			 */
			public clipRect(rect: android.graphics.Rect): boolean;
			/**
			 * Modify the current clip with the specified rectangle, which is expressed in local coordinates.
			 * @param left The left side of the rectangle to intersect with the
			 * @param top The top of the rectangle to intersect with the current
			 * @param right The right side of the rectangle to intersect with the
			 * @param bottom The bottom of the rectangle to intersect with the current
			 * @param op How the clip is modified
			 */
			public clipRect(left: number, top: number, right: number, bottom: number, op: android.graphics.Region.Op): boolean;
			/**
			 * Intersect the current clip with the specified rectangle, which is expressed in local coordinates.
			 * @param left The left side of the rectangle to intersect with the
			 * @param top The top of the rectangle to intersect with the current clip
			 * @param right The right side of the rectangle to intersect with the
			 * @param bottom The bottom of the rectangle to intersect with the current
			 */
			public clipRect(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Modify the current clip with the specified path.
			 * @param path The path to operate on the current clip
			 * @param op How the clip is modified
			 */
			public clipPath(path: android.graphics.Path, op: android.graphics.Region.Op): boolean;
			/**
			 * Intersect the current clip with the specified path.
			 * @param path The path to intersect with the current clip
			 */
			public clipPath(path: android.graphics.Path): boolean;
			/**
			 * Modify the current clip with the specified region. Note that unlike clipRect() and clipPath() which transform their arguments by the current matrix, clipRegion() assumes its argument is already in the coordinate system of the current layer's bitmap, and so not transformation is performed.
			 * @param region The region to operate on the current clip, based on op
			 * @param op How the clip is modified
			 */
			public clipRegion(region: android.graphics.Region, op: android.graphics.Region.Op): boolean;
			/**
			 * Intersect the current clip with the specified region. Note that unlike clipRect() and clipPath() which transform their arguments by the current matrix, clipRegion() assumes its argument is already in the coordinate system of the current layer's bitmap, and so not transformation is performed.
			 * @param region The region to operate on the current clip, based on op
			 */
			public clipRegion(region: android.graphics.Region): boolean;
			public getDrawFilter(): android.graphics.DrawFilter;
			public setDrawFilter(filter: android.graphics.DrawFilter): void;
			/**
			 * Return true if the specified rectangle, after being transformed by the current matrix, would lie completely outside of the current clip. Call this to check if an area you intend to draw into is clipped out (and therefore you can skip making the draw calls).
			 * @param rect the rect to compare with the current clip
			 * @param type specifies how to treat the edges (BW or antialiased)
			 */
			public quickReject(rect: android.graphics.RectF, type: android.graphics.Canvas.EdgeType): boolean;
			/**
			 * Return true if the specified path, after being transformed by the current matrix, would lie completely outside of the current clip. Call this to check if an area you intend to draw into is clipped out (and therefore you can skip making the draw calls). Note: for speed it may return false even if the path itself might not intersect the clip (i.e. the bounds of the path intersects, but the path does not).
			 * @param path The path to compare with the current clip
			 * @param type true if the path should be considered antialiased,
			 */
			public quickReject(path: android.graphics.Path, type: android.graphics.Canvas.EdgeType): boolean;
			/**
			 * Return true if the specified rectangle, after being transformed by the current matrix, would lie completely outside of the current clip. Call this to check if an area you intend to draw into is clipped out (and therefore you can skip making the draw calls).
			 * @param left The left side of the rectangle to compare with the
			 * @param top The top of the rectangle to compare with the current
			 * @param right The right side of the rectangle to compare with the
			 * @param bottom The bottom of the rectangle to compare with the
			 * @param type true if the rect should be considered antialiased,
			 */
			public quickReject(left: number, top: number, right: number, bottom: number, type: android.graphics.Canvas.EdgeType): boolean;
			/**
			 * Retrieve the clip bounds, returning true if they are non-empty.
			 * @param bounds Return the clip bounds here. If it is null, ignore it but
			 */
			public getClipBounds(bounds: android.graphics.Rect): boolean;
			/**
			 * Retrieve the clip bounds.
			 */
			public getClipBounds(): android.graphics.Rect;
			/**
			 * Fill the entire canvas' bitmap (restricted to the current clip) with the specified RGB color, using srcover porterduff mode.
			 * @param r red component (0..255) of the color to draw onto the canvas
			 * @param g green component (0..255) of the color to draw onto the canvas
			 * @param b blue component (0..255) of the color to draw onto the canvas
			 */
			public drawRGB(r: number, g: number, b: number): void;
			/**
			 * Fill the entire canvas' bitmap (restricted to the current clip) with the specified ARGB color, using srcover porterduff mode.
			 * @param a alpha component (0..255) of the color to draw onto the canvas
			 * @param r red component (0..255) of the color to draw onto the canvas
			 * @param g green component (0..255) of the color to draw onto the canvas
			 * @param b blue component (0..255) of the color to draw onto the canvas
			 */
			public drawARGB(a: number, r: number, g: number, b: number): void;
			/**
			 * Fill the entire canvas' bitmap (restricted to the current clip) with the specified color, using srcover porterduff mode.
			 * @param color the color to draw onto the canvas
			 */
			public drawColor(color: number): void;
			/**
			 * Fill the entire canvas' bitmap (restricted to the current clip) with the specified color and porter-duff xfermode.
			 * @param color the color to draw with
			 * @param mode the porter-duff mode to apply to the color
			 */
			public drawColor(color: number, mode: android.graphics.PorterDuff.Mode): void;
			/**
			 * Fill the entire canvas' bitmap (restricted to the current clip) with the specified paint. This is equivalent (but faster) to drawing an infinitely large rectangle with the specified paint.
			 * @param paint The paint used to draw onto the canvas
			 */
			public drawPaint(paint: android.graphics.Paint): void;
			/**
			 * Draw a series of points. Each point is centered at the coordinate specified by pts[], and its diameter is specified by the paint's stroke width (as transformed by the canvas' CTM), with special treatment for a stroke width of 0, which always draws exactly 1 pixel (or at most 4 if antialiasing is enabled). The shape of the point is controlled by the paint's Cap type. The shape is a square, unless the cap type is Round, in which case the shape is a circle.
			 * @param pts Array of points to draw [x0 y0 x1 y1 x2 y2 ...]
			 * @param offset Number of values to skip before starting to draw.
			 * @param count The number of values to process, after skipping offset
			 * @param paint The paint used to draw the points
			 */
			public drawPoints(pts: native.Array<number>, offset: number, count: number, paint: android.graphics.Paint): void;
			/**
			 * Helper for drawPoints() that assumes you want to draw the entire array
			 */
			public drawPoints(pts: native.Array<number>, paint: android.graphics.Paint): void;
			/**
			 * Helper for drawPoints() for drawing a single point.
			 */
			public drawPoint(x: number, y: number, paint: android.graphics.Paint): void;
			/**
			 * Draw a line segment with the specified start and stop x,y coordinates, using the specified paint. NOTE: since a line is always "framed", the Style is ignored in the paint.
			 * @param startX The x-coordinate of the start point of the line
			 * @param startY The y-coordinate of the start point of the line
			 * @param stopX paint The paint used to draw the line
			 * @param stopY 
			 * @param paint 
			 */
			public drawLine(startX: number, startY: number, stopX: number, stopY: number, paint: android.graphics.Paint): void;
			/**
			 * Draw a series of lines. Each line is taken from 4 consecutive values in the pts array. Thus to draw 1 line, the array must contain at least 4 values. This is logically the same as drawing the array as follows: drawLine(pts[0], pts[1], pts[2], pts[3]) followed by drawLine(pts[4], pts[5], pts[6], pts[7]) and so on.
			 * @param pts Array of points to draw [x0 y0 x1 y1 x2 y2 ...]
			 * @param offset Number of values in the array to skip before drawing.
			 * @param count The number of values in the array to process, after
			 * @param paint The paint used to draw the points
			 */
			public drawLines(pts: native.Array<number>, offset: number, count: number, paint: android.graphics.Paint): void;
			public drawLines(pts: native.Array<number>, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified Rect using the specified paint. The rectangle will be filled or framed based on the Style in the paint.
			 * @param rect The rect to be drawn
			 * @param paint The paint used to draw the rect
			 */
			public drawRect(rect: android.graphics.RectF, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified Rect using the specified Paint. The rectangle will be filled or framed based on the Style in the paint.
			 * @param r The rectangle to be drawn.
			 * @param paint The paint used to draw the rectangle
			 */
			public drawRect(r: android.graphics.Rect, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified Rect using the specified paint. The rectangle will be filled or framed based on the Style in the paint.
			 * @param left The left side of the rectangle to be drawn
			 * @param top The top side of the rectangle to be drawn
			 * @param right The right side of the rectangle to be drawn
			 * @param bottom The bottom side of the rectangle to be drawn
			 * @param paint The paint used to draw the rect
			 */
			public drawRect(left: number, top: number, right: number, bottom: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified oval using the specified paint. The oval will be filled or framed based on the Style in the paint.
			 * @param oval The rectangle bounds of the oval to be drawn
			 * @param paint 
			 */
			public drawOval(oval: android.graphics.RectF, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified circle using the specified paint. If radius is <= 0, then nothing will be drawn. The circle will be filled or framed based on the Style in the paint.
			 * @param cx The x-coordinate of the center of the cirle to be drawn
			 * @param cy The y-coordinate of the center of the cirle to be drawn
			 * @param radius The radius of the cirle to be drawn
			 * @param paint The paint used to draw the circle
			 */
			public drawCircle(cx: number, cy: number, radius: number, paint: android.graphics.Paint): void;
			/**
			 * @param oval The bounds of oval used to define the shape and size
			 * @param startAngle Starting angle (in degrees) where the arc begins
			 * @param sweepAngle Sweep angle (in degrees) measured clockwise
			 * @param useCenter If true, include the center of the oval in the arc, and
			 * @param paint The paint used to draw the arc
			 */
			public drawArc(oval: android.graphics.RectF, startAngle: number, sweepAngle: number, useCenter: boolean, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified round-rect using the specified paint. The roundrect will be filled or framed based on the Style in the paint.
			 * @param rect The rectangular bounds of the roundRect to be drawn
			 * @param rx The x-radius of the oval used to round the corners
			 * @param ry The y-radius of the oval used to round the corners
			 * @param paint The paint used to draw the roundRect
			 */
			public drawRoundRect(rect: android.graphics.RectF, rx: number, ry: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified path using the specified paint. The path will be filled or framed based on the Style in the paint.
			 * @param path The path to be drawn
			 * @param paint The paint used to draw the path
			 */
			public drawPath(path: android.graphics.Path, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified bitmap, with its top/left corner at (x,y), using the specified paint, transformed by the current matrix. 
			 * @param bitmap The bitmap to be drawn
			 * @param left The position of the left side of the bitmap being drawn
			 * @param top The position of the top side of the bitmap being drawn
			 * @param paint The paint used to draw the bitmap (may be null)
			 */
			public drawBitmap(bitmap: android.graphics.Bitmap, left: number, top: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified bitmap, scaling/translating automatically to fill the destination rectangle. If the source rectangle is not null, it specifies the subset of the bitmap to draw. 
			 * @param bitmap The bitmap to be drawn
			 * @param src May be null. The subset of the bitmap to be drawn
			 * @param dst The rectangle that the bitmap will be scaled/translated
			 * @param paint May be null. The paint used to draw the bitmap
			 */
			public drawBitmap(bitmap: android.graphics.Bitmap, src: android.graphics.Rect, dst: android.graphics.RectF, paint: android.graphics.Paint): void;
			/**
			 * Draw the specified bitmap, scaling/translating automatically to fill the destination rectangle. If the source rectangle is not null, it specifies the subset of the bitmap to draw. 
			 * @param bitmap The bitmap to be drawn
			 * @param src May be null. The subset of the bitmap to be drawn
			 * @param dst The rectangle that the bitmap will be scaled/translated
			 * @param paint May be null. The paint used to draw the bitmap
			 */
			public drawBitmap(bitmap: android.graphics.Bitmap, src: android.graphics.Rect, dst: android.graphics.Rect, paint: android.graphics.Paint): void;
			/**
			 * Treat the specified array of colors as a bitmap, and draw it. This gives the same result as first creating a bitmap from the array, and then drawing it, but this method avoids explicitly creating a bitmap object which can be more efficient if the colors are changing often.
			 * @param colors Array of colors representing the pixels of the bitmap
			 * @param offset Offset into the array of colors for the first pixel
			 * @param stride The number of colors in the array between rows (must be
			 * @param x The X coordinate for where to draw the bitmap
			 * @param y The Y coordinate for where to draw the bitmap
			 * @param width The width of the bitmap
			 * @param height The height of the bitmap
			 * @param hasAlpha True if the alpha channel of the colors contains valid
			 * @param paint May be null. The paint used to draw the bitmap
			 */
			public drawBitmap(colors: native.Array<number>, offset: number, stride: number, x: number, y: number, width: number, height: number, hasAlpha: boolean, paint: android.graphics.Paint): void;
			/**
			 * Draw the bitmap using the specified matrix.
			 * @param bitmap The bitmap to draw
			 * @param matrix The matrix used to transform the bitmap when it is drawn
			 * @param paint May be null. The paint used to draw the bitmap
			 */
			public drawBitmap(bitmap: android.graphics.Bitmap, matrix: android.graphics.Matrix, paint: android.graphics.Paint): void;
			/**
			 * Draw the bitmap through the mesh, where mesh vertices are evenly distributed across the bitmap. There are meshWidth+1 vertices across, and meshHeight+1 vertices down. The verts array is accessed in row-major order, so that the first meshWidth+1 vertices are distributed across the top of the bitmap from left to right. A more general version of this methid is drawVertices().
			 * @param bitmap The bitmap to draw using the mesh
			 * @param meshWidth The number of columns in the mesh. Nothing is drawn if
			 * @param meshHeight The number of rows in the mesh. Nothing is drawn if
			 * @param verts Array of x,y pairs, specifying where the mesh should be
			 * @param vertOffset Number of verts elements to skip before drawing
			 * @param colors May be null. Specifies a color at each vertex, which is
			 * @param colorOffset Number of color elements to skip before drawing
			 * @param paint May be null. The paint used to draw the bitmap
			 */
			public drawBitmapMesh(bitmap: android.graphics.Bitmap, meshWidth: number, meshHeight: number, verts: native.Array<number>, vertOffset: number, colors: native.Array<number>, colorOffset: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the array of vertices, interpreted as triangles (based on mode). The verts array is required, and specifies the x,y pairs for each vertex. If texs is non-null, then it is used to specify the coordinate in shader coordinates to use at each vertex (the paint must have a shader in this case). If there is no texs array, but there is a color array, then each color is interpolated across its corresponding triangle in a gradient. If both texs and colors arrays are present, then they behave as before, but the resulting color at each pixels is the result of multiplying the colors from the shader and the color-gradient together. The indices array is optional, but if it is present, then it is used to specify the index of each triangle, rather than just walking through the arrays in order.
			 * @param mode How to interpret the array of vertices
			 * @param vertexCount The number of values in the vertices array (and
			 * @param verts Array of vertices for the mesh
			 * @param vertOffset Number of values in the verts to skip before drawing.
			 * @param texs May be null. If not null, specifies the coordinates to sample
			 * @param texOffset Number of values in texs to skip before drawing.
			 * @param colors May be null. If not null, specifies a color for each
			 * @param colorOffset Number of values in colors to skip before drawing.
			 * @param indices If not null, array of indices to reference into the
			 * @param indexOffset indexCount number of entries in the indices array (if not null).
			 * @param indexCount paint Specifies the shader to use if the texs array is non-null.
			 * @param paint 
			 */
			public drawVertices(mode: android.graphics.Canvas.VertexMode, vertexCount: number, verts: native.Array<number>, vertOffset: number, texs: native.Array<number>, texOffset: number, colors: native.Array<number>, colorOffset: number, indices: native.Array<number>, indexOffset: number, indexCount: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the text, with origin at (x,y), using the specified paint. The origin is interpreted based on the Align setting in the paint.
			 * @param text The text to be drawn
			 * @param index x The x-coordinate of the origin of the text being drawn
			 * @param count y The y-coordinate of the origin of the text being drawn
			 * @param x paint The paint used for the text (e.g. color, size, style)
			 * @param y 
			 * @param paint 
			 */
			public drawText(text: native.Array<string>, index: number, count: number, x: number, y: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the text, with origin at (x,y), using the specified paint. The origin is interpreted based on the Align setting in the paint.
			 * @param text The text to be drawn
			 * @param x The x-coordinate of the origin of the text being drawn
			 * @param y The y-coordinate of the origin of the text being drawn
			 * @param paint The paint used for the text (e.g. color, size, style)
			 */
			public drawText(text: string, x: number, y: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the text, with origin at (x,y), using the specified paint. The origin is interpreted based on the Align setting in the paint.
			 * @param text The text to be drawn
			 * @param start The index of the first character in text to draw
			 * @param end (end - 1) is the index of the last character in text to draw
			 * @param x The x-coordinate of the origin of the text being drawn
			 * @param y The y-coordinate of the origin of the text being drawn
			 * @param paint The paint used for the text (e.g. color, size, style)
			 */
			public drawText(text: string, start: number, end: number, x: number, y: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the text in the array, with each character's origin specified by the pos array. This method does not support glyph composition and decomposition and should therefore not be used to render complex scripts.
			 * @param text The text to be drawn
			 * @param index The index of the first character to draw
			 * @param count The number of characters to draw, starting from index.
			 * @param pos Array of [x,y] positions, used to position each
			 * @param paint The paint used for the text (e.g. color, size, style)
			 */
			public drawPosText(text: native.Array<string>, index: number, count: number, pos: native.Array<number>, paint: android.graphics.Paint): void;
			/**
			 * Draw the text in the array, with each character's origin specified by the pos array. This method does not support glyph composition and decomposition and should therefore not be used to render complex scripts.
			 * @param text The text to be drawn
			 * @param pos Array of [x,y] positions, used to position each character
			 * @param paint The paint used for the text (e.g. color, size, style)
			 */
			public drawPosText(text: string, pos: native.Array<number>, paint: android.graphics.Paint): void;
			/**
			 * Draw the text, with origin at (x,y), using the specified paint, along the specified path. The paint's Align setting determins where along the path to start the text.
			 * @param text The text to be drawn
			 * @param index path The path the text should follow for its baseline
			 * @param count hOffset The distance along the path to add to the text's
			 * @param path vOffset The distance above(-) or below(+) the path to position
			 * @param hOffset paint The paint used for the text (e.g. color, size, style)
			 * @param vOffset 
			 * @param paint 
			 */
			public drawTextOnPath(text: native.Array<string>, index: number, count: number, path: android.graphics.Path, hOffset: number, vOffset: number, paint: android.graphics.Paint): void;
			/**
			 * Draw the text, with origin at (x,y), using the specified paint, along the specified path. The paint's Align setting determins where along the path to start the text.
			 * @param text The text to be drawn
			 * @param path The path the text should follow for its baseline
			 * @param hOffset The distance along the path to add to the text's
			 * @param vOffset The distance above(-) or below(+) the path to position
			 * @param paint The paint used for the text (e.g. color, size, style)
			 */
			public drawTextOnPath(text: string, path: android.graphics.Path, hOffset: number, vOffset: number, paint: android.graphics.Paint): void;
			/**
			 * Save the canvas state, draw the picture, and restore the canvas state. This differs from picture.draw(canvas), which does not perform any save/restore. 
			 * @param picture The picture to be drawn
			 */
			public drawPicture(picture: android.graphics.Picture): void;
			/**
			 * Draw the picture, stretched to fit into the dst rectangle.
			 */
			public drawPicture(picture: android.graphics.Picture, dst: android.graphics.RectF): void;
			/**
			 * Draw the picture, stretched to fit into the dst rectangle.
			 */
			public drawPicture(picture: android.graphics.Picture, dst: android.graphics.Rect): void;
		}
		export module Canvas {
			export enum VertexMode {
				TRIANGLES,
				TRIANGLE_STRIP,
				TRIANGLE_FAN
			}
			export enum EdgeType {
				BW,
				AA
			}
			export class CanvasFinalizer extends java.lang.Object {
				constructor(nativeCanvas: number);
				static class: java.lang.Class<android.graphics.Canvas.CanvasFinalizer>;
				protected finalize(): void;
			}
		}
		/**
		 * The Color class defines methods for creating and converting color ints. Colors are represented as packed ints, made up of 4 bytes: alpha, red, green, blue. The values are unpremultiplied, meaning any transparency is stored solely in the alpha component, and not in the color components. The components are stored as follows (alpha << 24) | (red << 16) | (green << 8) | blue. Each component ranges between 0..255 with 0 meaning no contribution for that component, and 255 meaning 100% contribution. Thus opaque-black would be 0xFF000000 (100% opaque but no contributions from red, green, or blue), and opaque-white would be 0xFFFFFFFF
		 */
		export class Color extends java.lang.Object {
			constructor();
			static BLACK: number;
			static DKGRAY: number;
			static GRAY: number;
			static LTGRAY: number;
			static WHITE: number;
			static RED: number;
			static GREEN: number;
			static BLUE: number;
			static YELLOW: number;
			static CYAN: number;
			static MAGENTA: number;
			static TRANSPARENT: number;
			static class: java.lang.Class<android.graphics.Color>;
			/**
			 * Return the alpha component of a color int. This is the same as saying color >>> 24
			 */
			public static alpha(color: number): number;
			/**
			 * Return the red component of a color int. This is the same as saying (color >> 16) & 0xFF
			 */
			public static red(color: number): number;
			/**
			 * Return the green component of a color int. This is the same as saying (color >> 8) & 0xFF
			 */
			public static green(color: number): number;
			/**
			 * Return the blue component of a color int. This is the same as saying color & 0xFF
			 */
			public static blue(color: number): number;
			/**
			 * Return a color-int from red, green, blue components. The alpha component is implicity 255 (fully opaque). These component values should be [0..255], but there is no range check performed, so if they are out of range, the returned color is undefined.
			 * @param red Red component [0..255] of the color
			 * @param green Green component [0..255] of the color
			 * @param blue Blue component [0..255] of the color
			 */
			public static rgb(red: number, green: number, blue: number): number;
			/**
			 * Return a color-int from alpha, red, green, blue components. These component values should be [0..255], but there is no range check performed, so if they are out of range, the returned color is undefined.
			 * @param alpha Alpha component [0..255] of the color
			 * @param red Red component [0..255] of the color
			 * @param green Green component [0..255] of the color
			 * @param blue Blue component [0..255] of the color
			 */
			public static argb(alpha: number, red: number, green: number, blue: number): number;
			/**
			 * Parse the color string, and return the corresponding color-int. If the string cannot be parsed, throws an IllegalArgumentException exception. Supported formats are: #RRGGBB #AARRGGBB 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 'yellow', 'lightgray', 'darkgray'
			 */
			public static parseColor(colorString: string): number;
			/**
			 * Convert RGB components to HSV. hsv[0] is Hue [0 .. 360) hsv[1] is Saturation [0...1] hsv[2] is Value [0...1]
			 * @param red red component value [0..255]
			 * @param green green component value [0..255]
			 * @param blue blue component value [0..255]
			 * @param hsv 3 element array which holds the resulting HSV components.
			 */
			public static RGBToHSV(red: number, green: number, blue: number, hsv: native.Array<number>): void;
			/**
			 * Convert the argb color to its HSV components. hsv[0] is Hue [0 .. 360) hsv[1] is Saturation [0...1] hsv[2] is Value [0...1]
			 * @param color the argb color to convert. The alpha component is ignored.
			 * @param hsv 3 element array which holds the resulting HSV components.
			 */
			public static colorToHSV(color: number, hsv: native.Array<number>): void;
			/**
			 * Convert HSV components to an ARGB color. Alpha set to 0xFF. hsv[0] is Hue [0 .. 360) hsv[1] is Saturation [0...1] hsv[2] is Value [0...1] If hsv values are out of range, they are pinned.
			 * @param hsv 3 element array which holds the input HSV components.
			 */
			public static HSVToColor(hsv: native.Array<number>): number;
			/**
			 * Convert HSV components to an ARGB color. The alpha component is passed through unchanged. hsv[0] is Hue [0 .. 360) hsv[1] is Saturation [0...1] hsv[2] is Value [0...1] If hsv values are out of range, they are pinned.
			 * @param alpha the alpha component of the returned argb color.
			 * @param hsv 3 element array which holds the input HSV components.
			 */
			public static HSVToColor(alpha: number, hsv: native.Array<number>): number;
		}
		export class SumPathEffect extends android.graphics.PathEffect {
			/**
			 * Construct a PathEffect whose effect is to apply two effects, in sequence. (e.g. first(path) + second(path))
			 */
			constructor(first: android.graphics.PathEffect, second: android.graphics.PathEffect);
			static class: java.lang.Class<android.graphics.SumPathEffect>;
		}
		/**
		 * Xfermode is the base class for objects that are called to implement custom "transfer-modes" in the drawing pipeline. The static function Create(Modes) can be called to return an instance of any of the predefined subclasses as specified in the Modes enum. When an Xfermode is assigned to an Paint, then objects drawn with that paint have the xfermode applied.
		 */
		export class Xfermode extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Xfermode>;
			protected finalize(): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Rasterizer
		 */
		export class Rasterizer_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Rasterizer_Delegate>;
			public static getDelegate(nativeShader: number): android.graphics.Rasterizer_Delegate;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static finalizer(native_instance: number): void;
		}
		/**
		 * The Paint class holds the style and color information about how to draw geometries, text and bitmaps.
		 */
		export class Paint extends java.lang.Object {
			/**
			 * Create a new paint with default settings.
			 */
			constructor();
			/**
			 * Create a new paint with the specified flags. Use setFlags() to change these after the paint is created.
			 * @param flags initial flag bits, as if they were passed via setFlags().
			 */
			constructor(flags: number);
			/**
			 * Create a new paint, initialized with the attributes in the specified paint parameter.
			 * @param paint Existing paint used to initialized the attributes of the
			 */
			constructor(paint: android.graphics.Paint);
			/**
			 * bit mask for the flag enabling antialiasing
			 */
			static ANTI_ALIAS_FLAG: number;
			/**
			 * bit mask for the flag enabling bitmap filtering
			 */
			static FILTER_BITMAP_FLAG: number;
			/**
			 * bit mask for the flag enabling dithering
			 */
			static DITHER_FLAG: number;
			/**
			 * bit mask for the flag enabling underline text
			 */
			static UNDERLINE_TEXT_FLAG: number;
			/**
			 * bit mask for the flag enabling strike-thru text
			 */
			static STRIKE_THRU_TEXT_FLAG: number;
			/**
			 * bit mask for the flag enabling fake-bold text
			 */
			static FAKE_BOLD_TEXT_FLAG: number;
			/**
			 * bit mask for the flag enabling linear-text (no caching)
			 */
			static LINEAR_TEXT_FLAG: number;
			/**
			 * bit mask for the flag enabling subpixel-text
			 */
			static SUBPIXEL_TEXT_FLAG: number;
			/**
			 * bit mask for the flag enabling device kerning for text
			 */
			static DEV_KERN_TEXT_FLAG: number;
			/**
			 * Option for #setHinting: disable hinting.
			 */
			static HINTING_OFF: number;
			/**
			 * Option for #setHinting: enable hinting.
			 */
			static HINTING_ON: number;
			static class: java.lang.Class<android.graphics.Paint>;
			/**
			 * Restores the paint to its default settings.
			 */
			public reset(): void;
			/**
			 * Copy the fields from src into this paint. This is equivalent to calling get() on all of the src fields, and calling the corresponding set() methods on this.
			 */
			public set(src: android.graphics.Paint): void;
			/**
			 * Return the paint's flags. Use the Flag enum to test flag values. 
			 */
			public getFlags(): number;
			/**
			 * Set the paint's flags. Use the Flag enum to specific flag values.
			 * @param flags The new flag bits for the paint
			 */
			public setFlags(flags: number): void;
			/**
			 * Return the paint's hinting mode. Returns either #HINTING_OFF or #HINTING_ON.
			 */
			public getHinting(): number;
			/**
			 * Set the paint's hinting mode. May be either #HINTING_OFF or #HINTING_ON.
			 */
			public setHinting(mode: number): void;
			/**
			 * Helper for getFlags(), returning true if ANTI_ALIAS_FLAG bit is set AntiAliasing smooths out the edges of what is being drawn, but is has no impact on the interior of the shape. See setDither() and setFilterBitmap() to affect how colors are treated.
			 */
			public isAntiAlias(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the ANTI_ALIAS_FLAG bit AntiAliasing smooths out the edges of what is being drawn, but is has no impact on the interior of the shape. See setDither() and setFilterBitmap() to affect how colors are treated.
			 * @param aa true to set the antialias bit in the flags, false to clear it
			 */
			public setAntiAlias(aa: boolean): void;
			/**
			 * Helper for getFlags(), returning true if DITHER_FLAG bit is set Dithering affects how colors that are higher precision than the device are down-sampled. No dithering is generally faster, but higher precision colors are just truncated down (e.g. 8888 -> 565). Dithering tries to distribute the error inherent in this process, to reduce the visual artifacts.
			 */
			public isDither(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the DITHER_FLAG bit Dithering affects how colors that are higher precision than the device are down-sampled. No dithering is generally faster, but higher precision colors are just truncated down (e.g. 8888 -> 565). Dithering tries to distribute the error inherent in this process, to reduce the visual artifacts.
			 * @param dither true to set the dithering bit in flags, false to clear it
			 */
			public setDither(dither: boolean): void;
			/**
			 * Helper for getFlags(), returning true if LINEAR_TEXT_FLAG bit is set
			 */
			public isLinearText(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the LINEAR_TEXT_FLAG bit
			 * @param linearText true to set the linearText bit in the paint's flags,
			 */
			public setLinearText(linearText: boolean): void;
			/**
			 * Helper for getFlags(), returning true if SUBPIXEL_TEXT_FLAG bit is set
			 */
			public isSubpixelText(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the SUBPIXEL_TEXT_FLAG bit
			 * @param subpixelText true to set the subpixelText bit in the paint's
			 */
			public setSubpixelText(subpixelText: boolean): void;
			/**
			 * Helper for getFlags(), returning true if UNDERLINE_TEXT_FLAG bit is set
			 */
			public isUnderlineText(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the UNDERLINE_TEXT_FLAG bit
			 * @param underlineText true to set the underlineText bit in the paint's
			 */
			public setUnderlineText(underlineText: boolean): void;
			/**
			 * Helper for getFlags(), returning true if STRIKE_THRU_TEXT_FLAG bit is set
			 */
			public isStrikeThruText(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the STRIKE_THRU_TEXT_FLAG bit
			 * @param strikeThruText true to set the strikeThruText bit in the paint's
			 */
			public setStrikeThruText(strikeThruText: boolean): void;
			/**
			 * Helper for getFlags(), returning true if FAKE_BOLD_TEXT_FLAG bit is set
			 */
			public isFakeBoldText(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the FAKE_BOLD_TEXT_FLAG bit
			 * @param fakeBoldText true to set the fakeBoldText bit in the paint's
			 */
			public setFakeBoldText(fakeBoldText: boolean): void;
			/**
			 * Whether or not the bitmap filter is activated. Filtering affects the sampling of bitmaps when they are transformed. Filtering does not affect how the colors in the bitmap are converted into device pixels. That is dependent on dithering and xfermodes.
			 */
			public isFilterBitmap(): boolean;
			/**
			 * Helper for setFlags(), setting or clearing the FILTER_BITMAP_FLAG bit. Filtering affects the sampling of bitmaps when they are transformed. Filtering does not affect how the colors in the bitmap are converted into device pixels. That is dependent on dithering and xfermodes. 
			 * @param filter true to set the FILTER_BITMAP_FLAG bit in the paint's
			 */
			public setFilterBitmap(filter: boolean): void;
			/**
			 * Return the paint's style, used for controlling how primitives' geometries are interpreted (except for drawBitmap, which always assumes FILL_STYLE).
			 */
			public getStyle(): android.graphics.Paint.Style;
			/**
			 * Set the paint's style, used for controlling how primitives' geometries are interpreted (except for drawBitmap, which always assumes Fill).
			 * @param style The new style to set in the paint
			 */
			public setStyle(style: android.graphics.Paint.Style): void;
			/**
			 * Return the paint's color. Note that the color is a 32bit value containing alpha as well as r,g,b. This 32bit value is not premultiplied, meaning that its alpha can be any value, regardless of the values of r,g,b. See the Color class for more details.
			 */
			public getColor(): number;
			/**
			 * Set the paint's color. Note that the color is an int containing alpha as well as r,g,b. This 32bit value is not premultiplied, meaning that its alpha can be any value, regardless of the values of r,g,b. See the Color class for more details.
			 * @param color The new color (including alpha) to set in the paint.
			 */
			public setColor(color: number): void;
			/**
			 * Helper to getColor() that just returns the color's alpha value. This is the same as calling getColor() >>> 24. It always returns a value between 0 (completely transparent) and 255 (completely opaque).
			 */
			public getAlpha(): number;
			/**
			 * Helper to setColor(), that only assigns the color's alpha value, leaving its r,g,b values unchanged. Results are undefined if the alpha value is outside of the range [0..255]
			 * @param a set the alpha component [0..255] of the paint's color.
			 */
			public setAlpha(a: number): void;
			/**
			 * Helper to setColor(), that takes a,r,g,b and constructs the color int
			 * @param a The new alpha component (0..255) of the paint's color.
			 * @param r The new red component (0..255) of the paint's color.
			 * @param g The new green component (0..255) of the paint's color.
			 * @param b The new blue component (0..255) of the paint's color.
			 */
			public setARGB(a: number, r: number, g: number, b: number): void;
			/**
			 * Return the width for stroking. <p /> A value of 0 strokes in hairline mode. Hairlines always draws a single pixel independent of the canva's matrix.
			 */
			public getStrokeWidth(): number;
			/**
			 * Set the width for stroking. Pass 0 to stroke in hairline mode. Hairlines always draws a single pixel independent of the canva's matrix.
			 * @param width set the paint's stroke width, used whenever the paint's
			 */
			public setStrokeWidth(width: number): void;
			/**
			 * Return the paint's stroke miter value. Used to control the behavior of miter joins when the joins angle is sharp.
			 */
			public getStrokeMiter(): number;
			/**
			 * Set the paint's stroke miter value. This is used to control the behavior of miter joins when the joins angle is sharp. This value must be >= 0.
			 * @param miter set the miter limit on the paint, used whenever the paint's
			 */
			public setStrokeMiter(miter: number): void;
			/**
			 * Return the paint's Cap, controlling how the start and end of stroked lines and paths are treated.
			 */
			public getStrokeCap(): android.graphics.Paint.Cap;
			/**
			 * Set the paint's Cap.
			 * @param cap set the paint's line cap style, used whenever the paint's
			 */
			public setStrokeCap(cap: android.graphics.Paint.Cap): void;
			/**
			 * Return the paint's stroke join type.
			 */
			public getStrokeJoin(): android.graphics.Paint.Join;
			/**
			 * Set the paint's Join.
			 * @param join set the paint's Join, used whenever the paint's style is
			 */
			public setStrokeJoin(join: android.graphics.Paint.Join): void;
			/**
			 * Applies any/all effects (patheffect, stroking) to src, returning the result in dst. The result is that drawing src with this paint will be the same as drawing dst with a default paint (at least from the geometric perspective).
			 * @param src input path
			 * @param dst output path (may be the same as src)
			 */
			public getFillPath(src: android.graphics.Path, dst: android.graphics.Path): boolean;
			/**
			 * Get the paint's shader object.
			 */
			public getShader(): android.graphics.Shader;
			/**
			 * Set or clear the shader object. <p /> Pass null to clear any previous shader. As a convenience, the parameter passed is also returned.
			 * @param shader May be null. the new shader to be installed in the paint
			 */
			public setShader(shader: android.graphics.Shader): android.graphics.Shader;
			/**
			 * Get the paint's colorfilter (maybe be null).
			 */
			public getColorFilter(): android.graphics.ColorFilter;
			/**
			 * Set or clear the paint's colorfilter, returning the parameter.
			 * @param filter May be null. The new filter to be installed in the paint
			 */
			public setColorFilter(filter: android.graphics.ColorFilter): android.graphics.ColorFilter;
			/**
			 * Get the paint's xfermode object.
			 */
			public getXfermode(): android.graphics.Xfermode;
			/**
			 * Set or clear the xfermode object. <p /> Pass null to clear any previous xfermode. As a convenience, the parameter passed is also returned.
			 * @param xfermode May be null. The xfermode to be installed in the paint
			 */
			public setXfermode(xfermode: android.graphics.Xfermode): android.graphics.Xfermode;
			/**
			 * Get the paint's patheffect object.
			 */
			public getPathEffect(): android.graphics.PathEffect;
			/**
			 * Set or clear the patheffect object. <p /> Pass null to clear any previous patheffect. As a convenience, the parameter passed is also returned.
			 * @param effect May be null. The patheffect to be installed in the paint
			 */
			public setPathEffect(effect: android.graphics.PathEffect): android.graphics.PathEffect;
			/**
			 * Get the paint's maskfilter object.
			 */
			public getMaskFilter(): android.graphics.MaskFilter;
			/**
			 * Set or clear the maskfilter object. <p /> Pass null to clear any previous maskfilter. As a convenience, the parameter passed is also returned.
			 * @param maskfilter May be null. The maskfilter to be installed in the
			 */
			public setMaskFilter(maskfilter: android.graphics.MaskFilter): android.graphics.MaskFilter;
			/**
			 * Get the paint's typeface object. <p /> The typeface object identifies which font to use when drawing or measuring text.
			 */
			public getTypeface(): android.graphics.Typeface;
			/**
			 * Set or clear the typeface object. <p /> Pass null to clear any previous typeface. As a convenience, the parameter passed is also returned.
			 * @param typeface May be null. The typeface to be installed in the paint
			 */
			public setTypeface(typeface: android.graphics.Typeface): android.graphics.Typeface;
			/**
			 * Get the paint's rasterizer (or null). <p /> The raster controls/modifies how paths/text are turned into alpha masks.
			 */
			public getRasterizer(): android.graphics.Rasterizer;
			/**
			 * Set or clear the rasterizer object. <p /> Pass null to clear any previous rasterizer. As a convenience, the parameter passed is also returned.
			 * @param rasterizer May be null. The new rasterizer to be installed in
			 */
			public setRasterizer(rasterizer: android.graphics.Rasterizer): android.graphics.Rasterizer;
			/**
			 * This draws a shadow layer below the main layer, with the specified offset and color, and blur radius. If radius is 0, then the shadow layer is removed.
			 */
			public setShadowLayer(radius: number, dx: number, dy: number, color: number): void;
			/**
			 * Clear the shadow layer.
			 */
			public clearShadowLayer(): void;
			/**
			 * Return the paint's Align value for drawing text. This controls how the text is positioned relative to its origin. LEFT align means that all of the text will be drawn to the right of its origin (i.e. the origin specifieds the LEFT edge of the text) and so on.
			 */
			public getTextAlign(): android.graphics.Paint.Align;
			/**
			 * Set the paint's text alignment. This controls how the text is positioned relative to its origin. LEFT align means that all of the text will be drawn to the right of its origin (i.e. the origin specifieds the LEFT edge of the text) and so on.
			 * @param align set the paint's Align value for drawing text.
			 */
			public setTextAlign(align: android.graphics.Paint.Align): void;
			/**
			 * Get the text Locale.
			 */
			public getTextLocale(): java.util.Locale;
			/**
			 * Set the text locale.
			 * @param locale the paint's locale value for drawing text, must not be null.
			 */
			public setTextLocale(locale: java.util.Locale): void;
			/**
			 * Return the paint's text size.
			 */
			public getTextSize(): number;
			/**
			 * Set the paint's text size. This value must be > 0
			 * @param textSize set the paint's text size.
			 */
			public setTextSize(textSize: number): void;
			/**
			 * Return the paint's horizontal scale factor for text. The default value is 1.0.
			 */
			public getTextScaleX(): number;
			/**
			 * Set the paint's horizontal scale factor for text. The default value is 1.0. Values > 1.0 will stretch the text wider. Values < 1.0 will stretch the text narrower.
			 * @param scaleX set the paint's scale in X for drawing/measuring text.
			 */
			public setTextScaleX(scaleX: number): void;
			/**
			 * Return the paint's horizontal skew factor for text. The default value is 0.
			 */
			public getTextSkewX(): number;
			/**
			 * Set the paint's horizontal skew factor for text. The default value is 0. For approximating oblique text, use values around -0.25.
			 * @param skewX set the paint's skew factor in X for drawing text.
			 */
			public setTextSkewX(skewX: number): void;
			/**
			 * Return the distance above (negative) the baseline (ascent) based on the current typeface and text size.
			 */
			public ascent(): number;
			/**
			 * Return the distance below (positive) the baseline (descent) based on the current typeface and text size.
			 */
			public descent(): number;
			/**
			 * Return the font's recommended interline spacing, given the Paint's settings for typeface, textSize, etc. If metrics is not null, return the fontmetric values in it.
			 * @param metrics If this object is not null, its fields are filled with
			 */
			public getFontMetrics(metrics: android.graphics.Paint.FontMetrics): number;
			/**
			 * Allocates a new FontMetrics object, and then calls getFontMetrics(fm) with it, returning the object.
			 */
			public getFontMetrics(): android.graphics.Paint.FontMetrics;
			/**
			 * Return the font's interline spacing, given the Paint's settings for typeface, textSize, etc. If metrics is not null, return the fontmetric values in it. Note: all values have been converted to integers from floats, in such a way has to make the answers useful for both spacing and clipping. If you want more control over the rounding, call getFontMetrics().
			 */
			public getFontMetricsInt(fmi: android.graphics.Paint.FontMetricsInt): number;
			public getFontMetricsInt(): android.graphics.Paint.FontMetricsInt;
			/**
			 * Return the recommend line spacing based on the current typeface and text size.
			 */
			public getFontSpacing(): number;
			/**
			 * Return the width of the text.
			 * @param text The text to measure. Cannot be null.
			 * @param index The index of the first character to start measuring
			 * @param count THe number of characters to measure, beginning with start
			 */
			public measureText(text: native.Array<string>, index: number, count: number): number;
			/**
			 * Return the width of the text.
			 * @param text The text to measure. Cannot be null.
			 * @param start The index of the first character to start measuring
			 * @param end 1 beyond the index of the last character to measure
			 */
			public measureText(text: string, start: number, end: number): number;
			/**
			 * Return the width of the text.
			 * @param text The text to measure. Cannot be null.
			 */
			public measureText(text: string): number;
			/**
			 * Measure the text, stopping early if the measured width exceeds maxWidth. Return the number of chars that were measured, and if measuredWidth is not null, return in it the actual width measured.
			 * @param text The text to measure. Cannot be null.
			 * @param index The offset into text to begin measuring at
			 * @param count The number of maximum number of entries to measure. If count
			 * @param maxWidth The maximum width to accumulate.
			 * @param measuredWidth Optional. If not null, returns the actual width
			 */
			public breakText(text: native.Array<string>, index: number, count: number, maxWidth: number, measuredWidth: native.Array<number>): number;
			/**
			 * Measure the text, stopping early if the measured width exceeds maxWidth. Return the number of chars that were measured, and if measuredWidth is not null, return in it the actual width measured.
			 * @param text The text to measure. Cannot be null.
			 * @param start The offset into text to begin measuring at
			 * @param end The end of the text slice to measure.
			 * @param measureForwards If true, measure forwards, starting at start.
			 * @param maxWidth The maximum width to accumulate.
			 * @param measuredWidth Optional. If not null, returns the actual width
			 */
			public breakText(text: string, start: number, end: number, measureForwards: boolean, maxWidth: number, measuredWidth: native.Array<number>): number;
			/**
			 * Measure the text, stopping early if the measured width exceeds maxWidth. Return the number of chars that were measured, and if measuredWidth is not null, return in it the actual width measured.
			 * @param text The text to measure. Cannot be null.
			 * @param measureForwards If true, measure forwards, starting with the
			 * @param maxWidth The maximum width to accumulate.
			 * @param measuredWidth Optional. If not null, returns the actual width
			 */
			public breakText(text: string, measureForwards: boolean, maxWidth: number, measuredWidth: native.Array<number>): number;
			/**
			 * Return the advance widths for the characters in the string.
			 * @param text The text to measure. Cannot be null.
			 * @param index The index of the first char to to measure
			 * @param count The number of chars starting with index to measure
			 * @param widths array to receive the advance widths of the characters.
			 */
			public getTextWidths(text: native.Array<string>, index: number, count: number, widths: native.Array<number>): number;
			/**
			 * Return the advance widths for the characters in the string.
			 * @param text The text to measure. Cannot be null.
			 * @param start The index of the first char to to measure
			 * @param end The end of the text slice to measure
			 * @param widths array to receive the advance widths of the characters.
			 */
			public getTextWidths(text: string, start: number, end: number, widths: native.Array<number>): number;
			/**
			 * Return the advance widths for the characters in the string.
			 * @param text The text to measure
			 * @param widths array to receive the advance widths of the characters.
			 */
			public getTextWidths(text: string, widths: native.Array<number>): number;
			/**
			 * Return the path (outline) for the specified text. Note: just like Canvas.drawText, this will respect the Align setting in the paint.
			 * @param text The text to retrieve the path from
			 * @param index The index of the first character in text
			 * @param count The number of characterss starting with index
			 * @param x The x coordinate of the text's origin
			 * @param y The y coordinate of the text's origin
			 * @param path The path to receive the data describing the text. Must
			 */
			public getTextPath(text: native.Array<string>, index: number, count: number, x: number, y: number, path: android.graphics.Path): void;
			/**
			 * Return the path (outline) for the specified text. Note: just like Canvas.drawText, this will respect the Align setting in the paint.
			 * @param text The text to retrieve the path from
			 * @param start The first character in the text
			 * @param end 1 past the last charcter in the text
			 * @param x The x coordinate of the text's origin
			 * @param y The y coordinate of the text's origin
			 * @param path The path to receive the data describing the text. Must
			 */
			public getTextPath(text: string, start: number, end: number, x: number, y: number, path: android.graphics.Path): void;
			/**
			 * Return in bounds (allocated by the caller) the smallest rectangle that encloses all of the characters, with an implied origin at (0,0).
			 * @param text String to measure and return its bounds
			 * @param start Index of the first char in the string to measure
			 * @param end 1 past the last char in the string measure
			 * @param bounds Returns the unioned bounds of all the text. Must be
			 */
			public getTextBounds(text: string, start: number, end: number, bounds: android.graphics.Rect): void;
			/**
			 * Return in bounds (allocated by the caller) the smallest rectangle that encloses all of the characters, with an implied origin at (0,0).
			 * @param text Array of chars to measure and return their unioned bounds
			 * @param index Index of the first char in the array to measure
			 * @param count The number of chars, beginning at index, to measure
			 * @param bounds Returns the unioned bounds of all the text. Must be
			 */
			public getTextBounds(text: native.Array<string>, index: number, count: number, bounds: android.graphics.Rect): void;
			protected finalize(): void;
		}
		export module Paint {
			/**
			 * The Cap specifies the treatment for the beginning and ending of stroked lines and paths. The default is BUTT.
			 */
			export enum Cap {
				BUTT,
				ROUND,
				SQUARE
			}
			/**
			 * Align specifies how drawText aligns its text relative to the [x,y] coordinates. The default is LEFT.
			 */
			export enum Align {
				LEFT,
				CENTER,
				RIGHT
			}
			/**
			 * Class that describes the various metrics for a font at a given text size. Remember, Y values increase going down, so those values will be positive, and values that measure distances going up will be negative. This class is returned by getFontMetrics().
			 */
			export class FontMetrics extends java.lang.Object {
				constructor();
				/**
				 * The maximum distance above the baseline for the tallest glyph in the font at a given text size.
				 */
				top: number;
				/**
				 * The recommended distance above the baseline for singled spaced text.
				 */
				ascent: number;
				/**
				 * The recommended distance below the baseline for singled spaced text.
				 */
				descent: number;
				/**
				 * The maximum distance below the baseline for the lowest glyph in the font at a given text size.
				 */
				bottom: number;
				/**
				 * The recommended additional space to add between lines of text.
				 */
				leading: number;
				static class: java.lang.Class<android.graphics.Paint.FontMetrics>;
			}
			/**
			 * The Style specifies if the primitive being drawn is filled, stroked, or both (in the same color). The default is FILL.
			 */
			export enum Style {
				FILL,
				STROKE,
				FILL_AND_STROKE
			}
			/**
			 * The Join specifies the treatment where lines and curve segments join on a stroked path. The default is MITER.
			 */
			export enum Join {
				MITER,
				ROUND,
				BEVEL
			}
			/**
			 * Convenience method for callers that want to have FontMetrics values as integers.
			 */
			export class FontMetricsInt extends java.lang.Object {
				constructor();
				top: number;
				ascent: number;
				descent: number;
				bottom: number;
				leading: number;
				static class: java.lang.Class<android.graphics.Paint.FontMetricsInt>;
				public toString(): string;
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.DrawFilter
		 */
		export class DrawFilter_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.DrawFilter_Delegate>;
			public static getDelegate(nativeDrawFilter: number): android.graphics.DrawFilter_Delegate;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeDestructor(nativeDrawFilter: number): void;
		}
		export class ColorFilter extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.ColorFilter>;
			protected finalize(): void;
		}
		export class PathMeasure extends java.lang.Object {
			/**
			 * Create an empty PathMeasure object. To uses this to measure the length of a path, and/or to find the position and tangent along it, call setPath.
			 */
			constructor();
			/**
			 * Create a PathMeasure object associated with the specified path object (already created and specified). The meansure object can now return the path's length, and the position and tangent of any position along the path.
			 * @param path The path that will be measured by this object
			 * @param forceClosed If true, then the path will be considered as "closed"
			 */
			constructor(path: android.graphics.Path, forceClosed: boolean);
			static POSITION_MATRIX_FLAG: number;
			static TANGENT_MATRIX_FLAG: number;
			static class: java.lang.Class<android.graphics.PathMeasure>;
			/**
			 * Assign a new path, or null to have none.
			 */
			public setPath(path: android.graphics.Path, forceClosed: boolean): void;
			/**
			 * Return the total length of the current contour, or 0 if no path is associated with this measure object.
			 */
			public getLength(): number;
			/**
			 * Pins distance to 0 <= distance <= getLength(), and then computes the corresponding position and tangent. Returns false if there is no path, or a zero-length path was specified, in which case position and tangent are unchanged.
			 * @param distance The distance along the current contour to sample
			 * @param pos If not null, eturns the sampled position (x==[0], y==[1])
			 * @param tan If not null, returns the sampled tangent (x==[0], y==[1])
			 */
			public getPosTan(distance: number, pos: native.Array<number>, tan: native.Array<number>): boolean;
			/**
			 * Pins distance to 0 <= distance <= getLength(), and then computes the corresponding matrix. Returns false if there is no path, or a zero-length path was specified, in which case matrix is unchanged.
			 * @param distance The distance along the associated path
			 * @param matrix Allocated by the caller, this is set to the transformation
			 * @param flags Specified what aspects should be returned in the matrix.
			 */
			public getMatrix(distance: number, matrix: android.graphics.Matrix, flags: number): boolean;
			/**
			 * Given a start and stop distance, return in dst the intervening segment(s). If the segment is zero-length, return false, else return true. startD and stopD are pinned to legal values (0..getLength()). If startD <= stopD then return false (and leave dst untouched). Begin the segment with a moveTo if startWithMoveTo is true
			 */
			public getSegment(startD: number, stopD: number, dst: android.graphics.Path, startWithMoveTo: boolean): boolean;
			/**
			 * Return true if the current contour is closed()
			 */
			public isClosed(): boolean;
			/**
			 * Move to the next contour in the path. Return true if one exists, or false if we're done with the path.
			 */
			public nextContour(): boolean;
			protected finalize(): void;
		}
		export class LightingColorFilter extends android.graphics.ColorFilter {
			/**
			 * Create a colorfilter that multiplies the RGB channels by one color, and then adds a second color, pinning the result for each component to [0..255]. The alpha components of the mul and add arguments are ignored.
			 */
			constructor(mul: number, add: number);
			static class: java.lang.Class<android.graphics.LightingColorFilter>;
		}
		export class Region extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create an empty region
			 */
			constructor();
			/**
			 * Return a copy of the specified region
			 */
			constructor(region: android.graphics.Region);
			/**
			 * Return a region set to the specified rectangle
			 */
			constructor(r: android.graphics.Rect);
			/**
			 * Return a region set to the specified rectangle
			 */
			constructor(left: number, top: number, right: number, bottom: number);
			static CREATOR: android.os.Parcelable.ICreator<android.graphics.Region>;
			static class: java.lang.Class<android.graphics.Region>;
			/**
			 * Set the region to the empty region
			 */
			public setEmpty(): void;
			/**
			 * Set the region to the specified region.
			 */
			public set(region: android.graphics.Region): boolean;
			/**
			 * Set the region to the specified rectangle
			 */
			public set(r: android.graphics.Rect): boolean;
			/**
			 * Set the region to the specified rectangle
			 */
			public set(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Set the region to the area described by the path and clip. Return true if the resulting region is non-empty. This produces a region that is identical to the pixels that would be drawn by the path (with no antialiasing).
			 */
			public setPath(path: android.graphics.Path, clip: android.graphics.Region): boolean;
			/**
			 * Return true if this region is empty
			 */
			public isEmpty(): boolean;
			/**
			 * Return true if the region contains a single rectangle
			 */
			public isRect(): boolean;
			/**
			 * Return true if the region contains more than one rectangle
			 */
			public isComplex(): boolean;
			/**
			 * Return a new Rect set to the bounds of the region. If the region is empty, the Rect will be set to [0, 0, 0, 0]
			 */
			public getBounds(): android.graphics.Rect;
			/**
			 * Set the Rect to the bounds of the region. If the region is empty, the Rect will be set to [0, 0, 0, 0]
			 */
			public getBounds(r: android.graphics.Rect): boolean;
			/**
			 * Return the boundary of the region as a new Path. If the region is empty, the path will also be empty.
			 */
			public getBoundaryPath(): android.graphics.Path;
			/**
			 * Set the path to the boundary of the region. If the region is empty, the path will also be empty.
			 */
			public getBoundaryPath(path: android.graphics.Path): boolean;
			/**
			 * Return true if the region contains the specified point
			 */
			public contains(x: number, y: number): boolean;
			/**
			 * Return true if the region is a single rectangle (not complex) and it contains the specified rectangle. Returning false is not a guarantee that the rectangle is not contained by this region, but return true is a guarantee that the rectangle is contained by this region.
			 */
			public quickContains(r: android.graphics.Rect): boolean;
			/**
			 * Return true if the region is a single rectangle (not complex) and it contains the specified rectangle. Returning false is not a guarantee that the rectangle is not contained by this region, but return true is a guarantee that the rectangle is contained by this region.
			 */
			public quickContains(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Return true if the region is empty, or if the specified rectangle does not intersect the region. Returning false is not a guarantee that they intersect, but returning true is a guarantee that they do not.
			 */
			public quickReject(r: android.graphics.Rect): boolean;
			/**
			 * Return true if the region is empty, or if the specified rectangle does not intersect the region. Returning false is not a guarantee that they intersect, but returning true is a guarantee that they do not.
			 */
			public quickReject(left: number, top: number, right: number, bottom: number): boolean;
			/**
			 * Return true if the region is empty, or if the specified region does not intersect the region. Returning false is not a guarantee that they intersect, but returning true is a guarantee that they do not.
			 */
			public quickReject(rgn: android.graphics.Region): boolean;
			/**
			 * Translate the region by [dx, dy]. If the region is empty, do nothing.
			 */
			public translate(dx: number, dy: number): void;
			/**
			 * Set the dst region to the result of translating this region by [dx, dy]. If this region is empty, then dst will be set to empty.
			 */
			public translate(dx: number, dy: number, dst: android.graphics.Region): void;
			public union(r: android.graphics.Rect): boolean;
			/**
			 * Perform the specified Op on this region and the specified rect. Return true if the result of the op is not empty.
			 */
			public op(r: android.graphics.Rect, op: android.graphics.Region.Op): boolean;
			/**
			 * Perform the specified Op on this region and the specified rect. Return true if the result of the op is not empty.
			 */
			public op(left: number, top: number, right: number, bottom: number, op: android.graphics.Region.Op): boolean;
			/**
			 * Perform the specified Op on this region and the specified region. Return true if the result of the op is not empty.
			 */
			public op(region: android.graphics.Region, op: android.graphics.Region.Op): boolean;
			/**
			 * Set this region to the result of performing the Op on the specified rect and region. Return true if the result is not empty.
			 */
			public op(rect: android.graphics.Rect, region: android.graphics.Region, op: android.graphics.Region.Op): boolean;
			/**
			 * Set this region to the result of performing the Op on the specified regions. Return true if the result is not empty.
			 */
			public op(region1: android.graphics.Region, region2: android.graphics.Region, op: android.graphics.Region.Op): boolean;
			public toString(): string;
			public describeContents(): number;
			/**
			 * Write the region and its pixels to the parcel. The region can be rebuilt from the parcel by calling CREATOR.createFromParcel().
			 * @param p Parcel object to write the region data into
			 * @param flags 
			 */
			public writeToParcel(p: android.os.Parcel, flags: number): void;
			public equals(obj: any): boolean;
			protected finalize(): void;
			ni(): number;
		}
		export module Region {
			export enum Op {
				DIFFERENCE,
				INTERSECT,
				UNION,
				XOR,
				REVERSE_DIFFERENCE,
				REPLACE
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.ComposeShader
		 */
		export class ComposeShader_Delegate extends android.graphics.Shader_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.ComposeShader_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate1(native_shaderA: number, native_shaderB: number, native_mode: number): number;
			static nativeCreate2(native_shaderA: number, native_shaderB: number, porterDuffMode: number): number;
			static nativePostCreate1(native_shader: number, native_skiaShaderA: number, native_skiaShaderB: number, native_mode: number): number;
			static nativePostCreate2(native_shader: number, native_skiaShaderA: number, native_skiaShaderB: number, porterDuffMode: number): number;
		}
		export class PorterDuff extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.PorterDuff>;
		}
		export module PorterDuff {
			export enum Mode {
				CLEAR,
				SRC,
				DST,
				SRC_OVER,
				DST_OVER,
				SRC_IN,
				DST_IN,
				SRC_OUT,
				DST_OUT,
				SRC_ATOP,
				DST_ATOP,
				XOR,
				DARKEN,
				LIGHTEN,
				MULTIPLY,
				SCREEN,
				ADD,
				OVERLAY
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.ComposePathEffect
		 */
		export class ComposePathEffect_Delegate extends android.graphics.PathEffect_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.ComposePathEffect_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(outerpe: number, innerpe: number): number;
		}
		/**
		 * PathEffect is the base class for objects in the Paint that affect the geometry of a drawing primitive before it is transformed by the canvas' matrix and drawn.
		 */
		export class PathEffect extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.PathEffect>;
			protected finalize(): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.ColorMatrixColorFilter
		 */
		export class ColorMatrixColorFilter_Delegate extends android.graphics.ColorFilter_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.ColorMatrixColorFilter_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeColorMatrixFilter(array: native.Array<number>): number;
			static nColorMatrixFilter(nativeFilter: number, array: native.Array<number>): number;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.SweepGradient
		 */
		export class SweepGradient_Delegate extends android.graphics.Gradient_Delegate {
			static class: java.lang.Class<android.graphics.SweepGradient_Delegate>;
			SweepGradientPaint: {
	new (cx: number, cy: number, colors: native.Array<number>, positions: native.Array<number>): android.graphics.SweepGradient_Delegate.SweepGradientPaint;
};
			static nativeCreate1(x: number, y: number, colors: native.Array<number>, positions: native.Array<number>): number;
			static nativeCreate2(x: number, y: number, color0: number, color1: number): number;
			static nativePostCreate1(native_shader: number, cx: number, cy: number, colors: native.Array<number>, positions: native.Array<number>): number;
			static nativePostCreate2(native_shader: number, cx: number, cy: number, color0: number, color1: number): number;
		}
		export module SweepGradient_Delegate {
			export class SweepGradientPaint extends android.graphics.Gradient_Delegate.GradientPaint {
				static class: java.lang.Class<android.graphics.SweepGradient_Delegate.SweepGradientPaint>;
			}
			export module SweepGradientPaint {
				export class SweepGradientPaintContext extends java.lang.Object {
					static class: java.lang.Class<android.graphics.SweepGradient_Delegate.SweepGradientPaint.SweepGradientPaintContext>;
					public dispose(): void;
				}
			}
		}
		export class Bitmap extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Indicates that the bitmap was created for an unknown pixel density.
			 */
			static DENSITY_NONE: number;
			static CREATOR: android.os.Parcelable.ICreator<android.graphics.Bitmap>;
			static class: java.lang.Class<android.graphics.Bitmap>;
			static getDefaultDensity(): number;
			public getDensity(): number;
			/**
			 * @param density The density scaling factor to use with this bitmap or
			 */
			public setDensity(density: number): void;
			/**
			 * Free the native object associated with this bitmap, and clear the reference to the pixel data. This will not free the pixel data synchronously; it simply allows it to be garbage collected if there are no other references. The bitmap is marked as "dead", meaning it will throw an exception if getPixels() or setPixels() is called, and will draw nothing. This operation cannot be reversed, so it should only be called if you are sure there are no further uses for the bitmap. This is an advanced call, and normally need not be called, since the normal GC process will free up this memory when there are no more references to this bitmap.
			 */
			public recycle(): void;
			/**
			 * Returns true if this bitmap has been recycled. If so, then it is an error to try to access its pixels, and the bitmap will not draw.
			 */
			public isRecycled(): boolean;
			/**
			 * Returns the generation ID of this bitmap. The generation ID changes whenever the bitmap is modified. This can be used as an efficient way to check if a bitmap has changed. 
			 */
			public getGenerationId(): number;
			public copyPixelsToBuffer(dst: java.nio.Buffer): void;
			public copyPixelsFromBuffer(src: java.nio.Buffer): void;
			/**
			 * Tries to make a new bitmap based on the dimensions of this bitmap, setting the new bitmap's config to the one specified, and then copying this bitmap's pixels into the new bitmap. If the conversion is not supported, or the allocator fails, then this returns NULL. The returned bitmap initially has the same density as the original.
			 * @param config The desired config for the resulting bitmap
			 * @param isMutable True if the resulting bitmap should be mutable (i.e.
			 */
			public copy(config: android.graphics.Bitmap.Config, isMutable: boolean): android.graphics.Bitmap;
			/**
			 * Creates a new bitmap, scaled from an existing bitmap, when possible. If the specified width and height are the same as the current width and height of the source btimap, the source bitmap is returned and now new bitmap is created.
			 * @param src The source bitmap.
			 * @param dstWidth The new bitmap's desired width.
			 * @param dstHeight The new bitmap's desired height.
			 * @param filter true if the source should be filtered.
			 */
			public static createScaledBitmap(src: android.graphics.Bitmap, dstWidth: number, dstHeight: number, filter: boolean): android.graphics.Bitmap;
			/**
			 * Returns an immutable bitmap from the source bitmap. The new bitmap may be the same object as source, or a copy may have been made. It is initialized with the same density as the original bitmap.
			 */
			public static createBitmap(src: android.graphics.Bitmap): android.graphics.Bitmap;
			/**
			 * Returns an immutable bitmap from the specified subset of the source bitmap. The new bitmap may be the same object as source, or a copy may have been made. It is initialized with the same density as the original bitmap.
			 * @param source The bitmap we are subsetting
			 * @param x The x coordinate of the first pixel in source
			 * @param y The y coordinate of the first pixel in source
			 * @param width The number of pixels in each row
			 * @param height The number of rows
			 */
			public static createBitmap(source: android.graphics.Bitmap, x: number, y: number, width: number, height: number): android.graphics.Bitmap;
			/**
			 * Returns an immutable bitmap from subset of the source bitmap, transformed by the optional matrix. The new bitmap may be the same object as source, or a copy may have been made. It is initialized with the same density as the original bitmap. If the source bitmap is immutable and the requested subset is the same as the source bitmap itself, then the source bitmap is returned and no new bitmap is created.
			 * @param source The bitmap we are subsetting
			 * @param x The x coordinate of the first pixel in source
			 * @param y The y coordinate of the first pixel in source
			 * @param width The number of pixels in each row
			 * @param height The number of rows
			 * @param m Optional matrix to be applied to the pixels
			 * @param filter true if the source should be filtered.
			 */
			public static createBitmap(source: android.graphics.Bitmap, x: number, y: number, width: number, height: number, m: android.graphics.Matrix, filter: boolean): android.graphics.Bitmap;
			/**
			 * Returns a mutable bitmap with the specified width and height. Its initial density is as per #getDensity.
			 * @param width The width of the bitmap
			 * @param height The height of the bitmap
			 * @param config The bitmap config to create.
			 */
			public static createBitmap(width: number, height: number, config: android.graphics.Bitmap.Config): android.graphics.Bitmap;
			/**
			 * Returns a mutable bitmap with the specified width and height. Its initial density is determined from the given DisplayMetrics.
			 * @param display Display metrics for the display this bitmap will be
			 * @param width The width of the bitmap
			 * @param height The height of the bitmap
			 * @param config The bitmap config to create.
			 */
			public static createBitmap(display: android.util.DisplayMetrics, width: number, height: number, config: android.graphics.Bitmap.Config): android.graphics.Bitmap;
			/**
			 * Returns a immutable bitmap with the specified width and height, with each pixel value set to the corresponding value in the colors array. Its initial density is as per #getDensity.
			 * @param colors Array of {@link Color} used to initialize the pixels.
			 * @param offset Number of values to skip before the first color in the
			 * @param stride Number of colors in the array between rows (must be >=
			 * @param width The width of the bitmap
			 * @param height The height of the bitmap
			 * @param config The bitmap config to create. If the config does not
			 */
			public static createBitmap(colors: native.Array<number>, offset: number, stride: number, width: number, height: number, config: android.graphics.Bitmap.Config): android.graphics.Bitmap;
			/**
			 * Returns a immutable bitmap with the specified width and height, with each pixel value set to the corresponding value in the colors array. Its initial density is determined from the given DisplayMetrics.
			 * @param display Display metrics for the display this bitmap will be
			 * @param colors Array of {@link Color} used to initialize the pixels.
			 * @param offset Number of values to skip before the first color in the
			 * @param stride Number of colors in the array between rows (must be >=
			 * @param width The width of the bitmap
			 * @param height The height of the bitmap
			 * @param config The bitmap config to create. If the config does not
			 */
			public static createBitmap(display: android.util.DisplayMetrics, colors: native.Array<number>, offset: number, stride: number, width: number, height: number, config: android.graphics.Bitmap.Config): android.graphics.Bitmap;
			/**
			 * Returns a immutable bitmap with the specified width and height, with each pixel value set to the corresponding value in the colors array. Its initial density is as per #getDensity.
			 * @param colors Array of {@link Color} used to initialize the pixels.
			 * @param width The width of the bitmap
			 * @param height The height of the bitmap
			 * @param config The bitmap config to create. If the config does not
			 */
			public static createBitmap(colors: native.Array<number>, width: number, height: number, config: android.graphics.Bitmap.Config): android.graphics.Bitmap;
			/**
			 * Returns a immutable bitmap with the specified width and height, with each pixel value set to the corresponding value in the colors array. Its initial density is determined from the given DisplayMetrics.
			 * @param display Display metrics for the display this bitmap will be
			 * @param colors Array of {@link Color} used to initialize the pixels.
			 * @param width The width of the bitmap
			 * @param height The height of the bitmap
			 * @param config The bitmap config to create. If the config does not
			 */
			public static createBitmap(display: android.util.DisplayMetrics, colors: native.Array<number>, width: number, height: number, config: android.graphics.Bitmap.Config): android.graphics.Bitmap;
			/**
			 * Returns an optional array of private data, used by the UI system for some bitmaps. Not intended to be called by applications.
			 */
			public getNinePatchChunk(): native.Array<number>;
			/**
			 * Write a compressed version of the bitmap to the specified outputstream. If this returns true, the bitmap can be reconstructed by passing a corresponding inputstream to BitmapFactory.decodeStream(). Note: not all Formats support all bitmap configs directly, so it is possible that the returned bitmap from BitmapFactory could be in a different bitdepth, and/or may have lost per-pixel alpha (e.g. JPEG only supports opaque pixels).
			 * @param format The format of the compressed image
			 * @param quality Hint to the compressor, 0-100. 0 meaning compress for
			 * @param stream The outputstream to write the compressed data.
			 */
			public compress(format: android.graphics.Bitmap.CompressFormat, quality: number, stream: java.io.OutputStream): boolean;
			/**
			 * Returns true if the bitmap is marked as mutable (i.e. can be drawn into)
			 */
			public isMutable(): boolean;
			public isPremultiplied(): boolean;
			/**
			 * Returns the bitmap's width
			 */
			public getWidth(): number;
			/**
			 * Returns the bitmap's height
			 */
			public getHeight(): number;
			/**
			 * Convenience for calling #getScaledWidth(int) with the target density of the given Canvas.
			 */
			public getScaledWidth(canvas: android.graphics.Canvas): number;
			/**
			 * Convenience for calling #getScaledHeight(int) with the target density of the given Canvas.
			 */
			public getScaledHeight(canvas: android.graphics.Canvas): number;
			/**
			 * Convenience for calling #getScaledWidth(int) with the target density of the given DisplayMetrics.
			 */
			public getScaledWidth(metrics: android.util.DisplayMetrics): number;
			/**
			 * Convenience for calling #getScaledHeight(int) with the target density of the given DisplayMetrics.
			 */
			public getScaledHeight(metrics: android.util.DisplayMetrics): number;
			/**
			 * Convenience method that returns the width of this bitmap divided by the density scale factor.
			 * @param targetDensity The density of the target canvas of the bitmap.
			 */
			public getScaledWidth(targetDensity: number): number;
			/**
			 * Convenience method that returns the height of this bitmap divided by the density scale factor.
			 * @param targetDensity The density of the target canvas of the bitmap.
			 */
			public getScaledHeight(targetDensity: number): number;
			/**
			 * Return the number of bytes between rows in the bitmap's pixels. Note that this refers to the pixels as stored natively by the bitmap. If you call getPixels() or setPixels(), then the pixels are uniformly treated as 32bit values, packed according to the Color class.
			 */
			public getRowBytes(): number;
			/**
			 * Returns the number of bytes used to store this bitmap's pixels.
			 */
			public getByteCount(): number;
			/**
			 * If the bitmap's internal config is in one of the public formats, return that config, otherwise return null.
			 */
			public getConfig(): android.graphics.Bitmap.Config;
			/**
			 * Returns true if the bitmap's config supports per-pixel alpha, and if the pixels may contain non-opaque alpha values. For some configs, this is always false (e.g. RGB_565), since they do not support per-pixel alpha. However, for configs that do, the bitmap may be flagged to be known that all of its pixels are opaque. In this case hasAlpha() will also return false. If a config such as ARGB_8888 is not so flagged, it will return true by default.
			 */
			public hasAlpha(): boolean;
			/**
			 * Tell the bitmap if all of the pixels are known to be opaque (false) or if some of the pixels may contain non-opaque alpha values (true). Note, for some configs (e.g. RGB_565) this call is ignored, since it does not support per-pixel alpha values.
			 */
			public setHasAlpha(hasAlpha: boolean): void;
			/**
			 * Indicates whether the renderer responsible for drawing this bitmap should attempt to use mipmaps when this bitmap is drawn scaled down. If you know that you are going to draw this bitmap at less than 50% of its original size, you may be able to obtain a higher quality This property is only a suggestion that can be ignored by the renderer. It is not guaranteed to have any effect. 
			 */
			public hasMipMap(): boolean;
			/**
			 * Set a hint for the renderer responsible for drawing this bitmap indicating that it should attempt to use mipmaps when this bitmap is drawn scaled down.
			 * @param hasMipMap indicates whether the renderer should attempt
			 */
			public setHasMipMap(hasMipMap: boolean): void;
			/**
			 * Fills the bitmap's pixels with the specified Color.
			 */
			public eraseColor(c: number): void;
			/**
			 * Returns the Color at the specified location. Throws an exception if x or y are out of bounds (negative or >= to the width or height respectively). The returned color is a non-premultiplied ARGB value.
			 * @param x The x coordinate (0...width-1) of the pixel to return
			 * @param y The y coordinate (0...height-1) of the pixel to return
			 */
			public getPixel(x: number, y: number): number;
			/**
			 * Returns in pixels[] a copy of the data in the bitmap. Each value is a packed int representing a Color. The stride parameter allows the caller to allow for gaps in the returned pixels array between rows. For normal packed results, just pass width for the stride value. The returned colors are non-premultiplied ARGB values.
			 * @param pixels The array to receive the bitmap's colors
			 * @param offset The first index to write into pixels[]
			 * @param stride The number of entries in pixels[] to skip between
			 * @param x The x coordinate of the first pixel to read from
			 * @param y The y coordinate of the first pixel to read from
			 * @param width The number of pixels to read from each row
			 * @param height The number of rows to read
			 */
			public getPixels(pixels: native.Array<number>, offset: number, stride: number, x: number, y: number, width: number, height: number): void;
			/**
			 * @param x The x coordinate of the pixel to replace (0...width-1)
			 * @param y The y coordinate of the pixel to replace (0...height-1)
			 * @param color The ARGB color to write into the bitmap
			 */
			public setPixel(x: number, y: number, color: number): void;
			/**
			 * @param pixels The colors to write to the bitmap
			 * @param offset The index of the first color to read from pixels[]
			 * @param stride The number of colors in pixels[] to skip between rows.
			 * @param x The x coordinate of the first pixel to write to in
			 * @param y The y coordinate of the first pixel to write to in
			 * @param width The number of colors to copy from pixels[] per row
			 * @param height The number of rows to write to the bitmap
			 */
			public setPixels(pixels: native.Array<number>, offset: number, stride: number, x: number, y: number, width: number, height: number): void;
			/**
			 * No special parcel contents.
			 */
			public describeContents(): number;
			/**
			 * Write the bitmap and its pixels to the parcel. The bitmap can be rebuilt from the parcel by calling CREATOR.createFromParcel().
			 * @param p Parcel object to write the bitmap data into
			 * @param flags 
			 */
			public writeToParcel(p: android.os.Parcel, flags: number): void;
			/**
			 * Returns a new bitmap that captures the alpha values of the original. This may be drawn with Canvas.drawBitmap(), where the color(s) will be taken from the paint that is passed to the draw call.
			 */
			public extractAlpha(): android.graphics.Bitmap;
			/**
			 * Returns a new bitmap that captures the alpha values of the original. These values may be affected by the optional Paint parameter, which can contain its own alpha, and may also contain a MaskFilter which could change the actual dimensions of the resulting bitmap (e.g. a blur maskfilter might enlarge the resulting bitmap). If offsetXY is not null, it returns the amount to offset the returned bitmap so that it will logically align with the original. For example, if the paint contains a blur of radius 2, then offsetXY[] would contains -2, -2, so that drawing the alpha bitmap offset by (-2, -2) and then drawing the original would result in the blur visually aligning with the original. 
			 * @param paint Optional paint used to modify the alpha values in the
			 * @param offsetXY Optional array that returns the X (index 0) and Y
			 */
			public extractAlpha(paint: android.graphics.Paint, offsetXY: native.Array<number>): android.graphics.Bitmap;
			/**
			 * Given another bitmap, return true if it has the same dimensions, config, and pixel data as this bitmap. If any of those differ, return false. If other is null, return false.
			 */
			public sameAs(other: android.graphics.Bitmap): boolean;
			/**
			 * Rebuilds any caches associated with the bitmap that are used for drawing it. In the case of purgeable bitmaps, this call will attempt to ensure that the pixels have been decoded. If this is called on more than one bitmap in sequence, the priority is given in LRU order (i.e. the last bitmap called will be given highest priority).
			 */
			public prepareToDraw(): void;
			ni(): number;
		}
		export module Bitmap {
			/**
			 * Specifies the known formats a bitmap can be compressed into
			 */
			export enum CompressFormat {
				JPEG,
				PNG,
				WEBP
			}
			/**
			 * Possible bitmap configurations. A bitmap configuration describes how pixels are stored. This affects the quality (color depth) as well as the ability to display transparent/translucent colors.
			 */
			export enum Config {
				ALPHA_8,
				RGB_565,
				ARGB_4444,
				ARGB_8888
			}
			export class BitmapFinalizer extends java.lang.Object {
				static class: java.lang.Class<android.graphics.Bitmap.BitmapFinalizer>;
				public finalize(): void;
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.PathEffect
		 */
		export class PathEffect_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.PathEffect_Delegate>;
			public static getDelegate(nativeShader: number): android.graphics.PathEffect_Delegate;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeDestructor(native_patheffect: number): void;
		}
		/**
		 * YuvImage contains YUV data and provides a method that compresses a region of the YUV data to a Jpeg. The YUV data should be provided as a single byte array irrespective of the number of image planes in it. Currently only ImageFormat.NV21 and ImageFormat.YUY2 are supported.
		 */
		export class YuvImage extends java.lang.Object {
			/**
			 * Construct an YuvImage.
			 * @param yuv The YUV data. In the case of more than one image plane, all the planes must be
			 * @param format The YUV data format as defined in {@link ImageFormat}.
			 * @param width The width of the YuvImage.
			 * @param height The height of the YuvImage.
			 * @param strides (Optional) Row bytes of each image plane. If yuv contains padding, the stride
			 */
			constructor(yuv: native.Array<number>, format: number, width: number, height: number, strides: native.Array<number>);
			static class: java.lang.Class<android.graphics.YuvImage>;
			/**
			 * Compress a rectangle region in the YuvImage to a jpeg. Only ImageFormat.NV21 and ImageFormat.YUY2 are supported for now.
			 * @param rectangle The rectangle region to be compressed. The medthod checks if rectangle is
			 * @param quality Hint to the compressor, 0-100. 0 meaning compress for
			 * @param stream OutputStream to write the compressed data.
			 */
			public compressToJpeg(rectangle: android.graphics.Rect, quality: number, stream: java.io.OutputStream): boolean;
			public getYuvData(): native.Array<number>;
			public getYuvFormat(): number;
			public getStrides(): native.Array<number>;
			public getWidth(): number;
			public getHeight(): number;
			calculateOffsets(left: number, top: number): native.Array<number>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Shader
		 */
		export class Shader_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.Shader_Delegate>;
			public static getDelegate(nativeShader: number): android.graphics.Shader_Delegate;
			/**
			 * Returns the TileMode matching the given int.
			 * @param tileMode the tile mode int value
			 */
			public static getTileMode(tileMode: number): android.graphics.Shader.TileMode;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeDestructor(native_shader: number, native_skiaShader: number): void;
			static nativeSetLocalMatrix(native_shader: number, native_skiaShader: number, matrix_instance: number): void;
		}
		export class ComposePathEffect extends android.graphics.PathEffect {
			/**
			 * Construct a PathEffect whose effect is to apply first the inner effect and the the outer pathEffect (e.g. outer(inner(path))).
			 */
			constructor(outerpe: android.graphics.PathEffect, innerpe: android.graphics.PathEffect);
			static class: java.lang.Class<android.graphics.ComposePathEffect>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.PaintFlagsDrawFilter
		 */
		export class PaintFlagsDrawFilter_Delegate extends android.graphics.DrawFilter_Delegate {
			constructor();
			static class: java.lang.Class<android.graphics.PaintFlagsDrawFilter_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeConstructor(clearBits: number, setBits: number): number;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.ColorFilter
		 */
		export class ColorFilter_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.graphics.ColorFilter_Delegate>;
			public static getDelegate(nativeShader: number): android.graphics.ColorFilter_Delegate;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static finalizer(native_instance: number, nativeColorFilter: number): void;
		}
		/**
		 * Point holds two integer coordinates
		 */
		export class Point extends java.lang.Object implements android.os.IParcelable {
			constructor();
			constructor(x: number, y: number);
			constructor(src: android.graphics.Point);
			x: number;
			y: number;
			static CREATOR: android.os.Parcelable.ICreator<android.graphics.Point>;
			static class: java.lang.Class<android.graphics.Point>;
			/**
			 * Set the point's x and y coordinates
			 */
			public set(x: number, y: number): void;
			/**
			 * Negate the point's coordinates
			 */
			public negate(): void;
			/**
			 * Offset the point's coordinates by dx, dy
			 */
			public offset(dx: number, dy: number): void;
			/**
			 * Returns true if the point's coordinates equal (x,y)
			 */
			public equals(x: number, y: number): boolean;
			public equals(o: any): boolean;
			public hashCode(): number;
			public toString(): string;
			/**
			 * Parcelable interface methods
			 */
			public describeContents(): number;
			/**
			 * Write this point to the specified parcel. To restore a point from a parcel, use readFromParcel()
			 * @param out The parcel to write the point's coordinates into
			 * @param flags 
			 */
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Set the point's coordinates from the data stored in the specified parcel. To write a point to a parcel, call writeToParcel().
			 * @param input in The parcel to read the point's coordinates from
			 */
			public readFromParcel(input: android.os.Parcel): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.BitmapShader
		 */
		export class BitmapShader_Delegate extends android.graphics.Shader_Delegate {
			static class: java.lang.Class<android.graphics.BitmapShader_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
			static nativeCreate(native_bitmap: number, shaderTileModeX: number, shaderTileModeY: number): number;
			static nativePostCreate(native_shader: number, native_bitmap: number, shaderTileModeX: number, shaderTileModeY: number): number;
		}
		export module BitmapShader_Delegate {
			export class BitmapShaderPaint extends java.lang.Object {
				static class: java.lang.Class<android.graphics.BitmapShader_Delegate.BitmapShaderPaint>;
				public getTransparency(): number;
			}
			export module BitmapShaderPaint {
				export class BitmapShaderContext extends java.lang.Object {
					static class: java.lang.Class<android.graphics.BitmapShader_Delegate.BitmapShaderPaint.BitmapShaderContext>;
					public dispose(): void;
				}
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Canvas
		 */
		export class Canvas_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.graphics.Canvas_Delegate>;
			/**
			 * Returns the native delegate associated to a given Canvas object.
			 */
			public static getDelegate(canvas: android.graphics.Canvas): android.graphics.Canvas_Delegate;
			/**
			 * Returns the native delegate associated to a given an int referencing a Canvas object.
			 */
			public static getDelegate(native_canvas: number): android.graphics.Canvas_Delegate;
			/**
			 * Returns the DrawFilter delegate or null if none have been set.
			 */
			public getDrawFilter(): android.graphics.DrawFilter_Delegate;
			static isOpaque(thisCanvas: android.graphics.Canvas): boolean;
			static getWidth(thisCanvas: android.graphics.Canvas): number;
			static getHeight(thisCanvas: android.graphics.Canvas): number;
			static translate(thisCanvas: android.graphics.Canvas, dx: number, dy: number): void;
			static rotate(thisCanvas: android.graphics.Canvas, degrees: number): void;
			static scale(thisCanvas: android.graphics.Canvas, sx: number, sy: number): void;
			static skew(thisCanvas: android.graphics.Canvas, kx: number, ky: number): void;
			static clipRect(thisCanvas: android.graphics.Canvas, rect: android.graphics.RectF): boolean;
			static clipRect(thisCanvas: android.graphics.Canvas, rect: android.graphics.Rect): boolean;
			static clipRect(thisCanvas: android.graphics.Canvas, left: number, top: number, right: number, bottom: number): boolean;
			static save(thisCanvas: android.graphics.Canvas): number;
			static save(thisCanvas: android.graphics.Canvas, saveFlags: number): number;
			static restore(thisCanvas: android.graphics.Canvas): void;
			static getSaveCount(thisCanvas: android.graphics.Canvas): number;
			static restoreToCount(thisCanvas: android.graphics.Canvas, saveCount: number): void;
			static drawPoints(thisCanvas: android.graphics.Canvas, pts: native.Array<number>, offset: number, count: number, paint: android.graphics.Paint): void;
			static drawPoint(thisCanvas: android.graphics.Canvas, x: number, y: number, paint: android.graphics.Paint): void;
			static drawLines(thisCanvas: android.graphics.Canvas, pts: native.Array<number>, offset: number, count: number, paint: android.graphics.Paint): void;
			static freeCaches(): void;
			static freeTextLayoutCaches(): void;
			static initRaster(nativeBitmapOrZero: number): number;
			static native_setBitmap(nativeCanvas: number, bitmap: number): void;
			static native_saveLayer(nativeCanvas: number, bounds: android.graphics.RectF, paint: number, layerFlags: number): number;
			static native_saveLayer(nativeCanvas: number, l: number, t: number, r: number, b: number, paint: number, layerFlags: number): number;
			static native_saveLayerAlpha(nativeCanvas: number, bounds: android.graphics.RectF, alpha: number, layerFlags: number): number;
			static native_saveLayerAlpha(nativeCanvas: number, l: number, t: number, r: number, b: number, alpha: number, layerFlags: number): number;
			static native_concat(nCanvas: number, nMatrix: number): void;
			static native_setMatrix(nCanvas: number, nMatrix: number): void;
			static native_clipRect(nCanvas: number, left: number, top: number, right: number, bottom: number, regionOp: number): boolean;
			static native_clipPath(nativeCanvas: number, nativePath: number, regionOp: number): boolean;
			static native_clipRegion(nativeCanvas: number, nativeRegion: number, regionOp: number): boolean;
			static nativeSetDrawFilter(nativeCanvas: number, nativeFilter: number): void;
			static native_getClipBounds(nativeCanvas: number, bounds: android.graphics.Rect): boolean;
			static native_getCTM(canvas: number, matrix: number): void;
			static native_quickReject(nativeCanvas: number, rect: android.graphics.RectF, native_edgeType: number): boolean;
			static native_quickReject(nativeCanvas: number, path: number, native_edgeType: number): boolean;
			static native_quickReject(nativeCanvas: number, left: number, top: number, right: number, bottom: number, native_edgeType: number): boolean;
			static native_drawRGB(nativeCanvas: number, r: number, g: number, b: number): void;
			static native_drawARGB(nativeCanvas: number, a: number, r: number, g: number, b: number): void;
			static native_drawColor(nativeCanvas: number, color: number): void;
			static native_drawColor(nativeCanvas: number, color: number, mode: number): void;
			static native_drawPaint(nativeCanvas: number, paint: number): void;
			static native_drawLine(nativeCanvas: number, startX: number, startY: number, stopX: number, stopY: number, paint: number): void;
			static native_drawRect(nativeCanvas: number, rect: android.graphics.RectF, paint: number): void;
			static native_drawRect(nativeCanvas: number, left: number, top: number, right: number, bottom: number, paint: number): void;
			static native_drawOval(nativeCanvas: number, oval: android.graphics.RectF, paint: number): void;
			static native_drawCircle(nativeCanvas: number, cx: number, cy: number, radius: number, paint: number): void;
			static native_drawArc(nativeCanvas: number, oval: android.graphics.RectF, startAngle: number, sweep: number, useCenter: boolean, paint: number): void;
			static native_drawRoundRect(nativeCanvas: number, rect: android.graphics.RectF, rx: number, ry: number, paint: number): void;
			static native_drawPath(nativeCanvas: number, path: number, paint: number): void;
			static native_drawBitmap(thisCanvas: android.graphics.Canvas, nativeCanvas: number, bitmap: number, left: number, top: number, nativePaintOrZero: number, canvasDensity: number, screenDensity: number, bitmapDensity: number): void;
			static native_drawBitmap(thisCanvas: android.graphics.Canvas, nativeCanvas: number, bitmap: number, src: android.graphics.Rect, dst: android.graphics.RectF, nativePaintOrZero: number, screenDensity: number, bitmapDensity: number): void;
			static native_drawBitmap(nativeCanvas: number, bitmap: number, src: android.graphics.Rect, dst: android.graphics.Rect, nativePaintOrZero: number, screenDensity: number, bitmapDensity: number): void;
			static native_drawBitmap(nativeCanvas: number, colors: native.Array<number>, offset: number, stride: number, x: number, y: number, width: number, height: number, hasAlpha: boolean, nativePaintOrZero: number): void;
			static nativeDrawBitmapMatrix(nCanvas: number, nBitmap: number, nMatrix: number, nPaint: number): void;
			static nativeDrawBitmapMesh(nCanvas: number, nBitmap: number, meshWidth: number, meshHeight: number, verts: native.Array<number>, vertOffset: number, colors: native.Array<number>, colorOffset: number, nPaint: number): void;
			static nativeDrawVertices(nCanvas: number, mode: number, n: number, verts: native.Array<number>, vertOffset: number, texs: native.Array<number>, texOffset: number, colors: native.Array<number>, colorOffset: number, indices: native.Array<number>, indexOffset: number, indexCount: number, nPaint: number): void;
			static native_drawText(nativeCanvas: number, text: native.Array<string>, index: number, count: number, startX: number, startY: number, flags: number, paint: number): void;
			static native_drawText(nativeCanvas: number, text: string, start: number, end: number, x: number, y: number, flags: number, paint: number): void;
			static native_drawTextRun(nativeCanvas: number, text: string, start: number, end: number, contextStart: number, contextEnd: number, x: number, y: number, flags: number, paint: number): void;
			static native_drawTextRun(nativeCanvas: number, text: native.Array<string>, start: number, count: number, contextStart: number, contextCount: number, x: number, y: number, flags: number, paint: number): void;
			static native_drawPosText(nativeCanvas: number, text: native.Array<string>, index: number, count: number, pos: native.Array<number>, paint: number): void;
			static native_drawPosText(nativeCanvas: number, text: string, pos: native.Array<number>, paint: number): void;
			static native_drawTextOnPath(nativeCanvas: number, text: native.Array<string>, index: number, count: number, path: number, hOffset: number, vOffset: number, bidiFlags: number, paint: number): void;
			static native_drawTextOnPath(nativeCanvas: number, text: string, path: number, hOffset: number, vOffset: number, flags: number, paint: number): void;
			static native_drawPicture(nativeCanvas: number, nativePicture: number): void;
			static finalizer(nativeCanvas: number): void;
		}
		/**
		 * A subclass of shader that returns the coposition of two other shaders, combined by an android.graphics.Xfermode subclass.
		 */
		export class ComposeShader extends android.graphics.Shader {
			/**
			 * Create a new compose shader, given shaders A, B, and a combining mode. When the mode is applied, it will be given the result from shader A as its "dst", and the result from shader B as its "src".
			 * @param shaderA The colors from this shader are seen as the "dst" by the mode
			 * @param shaderB The colors from this shader are seen as the "src" by the mode
			 * @param mode The mode that combines the colors from the two shaders. If mode
			 */
			constructor(shaderA: android.graphics.Shader, shaderB: android.graphics.Shader, mode: android.graphics.Xfermode);
			/**
			 * Create a new compose shader, given shaders A, B, and a combining PorterDuff mode. When the mode is applied, it will be given the result from shader A as its "dst", and the result from shader B as its "src".
			 * @param shaderA The colors from this shader are seen as the "dst" by the mode
			 * @param shaderB The colors from this shader are seen as the "src" by the mode
			 * @param mode The PorterDuff mode that combines the colors from the two shaders.
			 */
			constructor(shaderA: android.graphics.Shader, shaderB: android.graphics.Shader, mode: android.graphics.PorterDuff.Mode);
			static class: java.lang.Class<android.graphics.ComposeShader>;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Paint
		 */
		export class Paint_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.graphics.Paint_Delegate>;
			public static getDelegate(native_paint: number): android.graphics.Paint_Delegate;
			/**
			 * Returns the list of Font objects. The first item is the main font, the rest are fall backs for characters not present in the main font.
			 */
			public getFonts(): java.util.IList<android.graphics.Paint_Delegate.FontInfo>;
			public isAntiAliased(): boolean;
			public isFilterBitmap(): boolean;
			public getStyle(): number;
			public getColor(): number;
			public getAlpha(): number;
			public setAlpha(alpha: number): void;
			public getTextAlign(): number;
			public getStrokeWidth(): number;
			/**
			 * returns the value of stroke miter needed by the java api.
			 */
			public getJavaStrokeMiter(): number;
			public getJavaCap(): number;
			public getJavaJoin(): number;
			/**
			 * Returns the Xfermode delegate or null if none have been set
			 */
			public getXfermode(): android.graphics.Xfermode_Delegate;
			/**
			 * Returns the ColorFilter delegate or null if none have been set
			 */
			public getColorFilter(): android.graphics.ColorFilter_Delegate;
			/**
			 * Returns the Shader delegate or null if none have been set
			 */
			public getShader(): android.graphics.Shader_Delegate;
			/**
			 * Returns the MaskFilter delegate or null if none have been set
			 */
			public getMaskFilter(): android.graphics.MaskFilter_Delegate;
			/**
			 * Returns the Rasterizer delegate or null if none have been set
			 */
			public getRasterizer(): android.graphics.Rasterizer_Delegate;
			static getFlags(thisPaint: android.graphics.Paint): number;
			static setFlags(thisPaint: android.graphics.Paint, flags: number): void;
			static setFilterBitmap(thisPaint: android.graphics.Paint, filter: boolean): void;
			static getHinting(thisPaint: android.graphics.Paint): number;
			static setHinting(thisPaint: android.graphics.Paint, mode: number): void;
			static setAntiAlias(thisPaint: android.graphics.Paint, aa: boolean): void;
			static setSubpixelText(thisPaint: android.graphics.Paint, subpixelText: boolean): void;
			static setUnderlineText(thisPaint: android.graphics.Paint, underlineText: boolean): void;
			static setStrikeThruText(thisPaint: android.graphics.Paint, strikeThruText: boolean): void;
			static setFakeBoldText(thisPaint: android.graphics.Paint, fakeBoldText: boolean): void;
			static setDither(thisPaint: android.graphics.Paint, dither: boolean): void;
			static setLinearText(thisPaint: android.graphics.Paint, linearText: boolean): void;
			static getColor(thisPaint: android.graphics.Paint): number;
			static setColor(thisPaint: android.graphics.Paint, color: number): void;
			static getAlpha(thisPaint: android.graphics.Paint): number;
			static setAlpha(thisPaint: android.graphics.Paint, a: number): void;
			static getStrokeWidth(thisPaint: android.graphics.Paint): number;
			static setStrokeWidth(thisPaint: android.graphics.Paint, width: number): void;
			static getStrokeMiter(thisPaint: android.graphics.Paint): number;
			static setStrokeMiter(thisPaint: android.graphics.Paint, miter: number): void;
			static nSetShadowLayer(thisPaint: android.graphics.Paint, radius: number, dx: number, dy: number, color: number): void;
			static getTextSize(thisPaint: android.graphics.Paint): number;
			static setTextSize(thisPaint: android.graphics.Paint, textSize: number): void;
			static getTextScaleX(thisPaint: android.graphics.Paint): number;
			static setTextScaleX(thisPaint: android.graphics.Paint, scaleX: number): void;
			static getTextSkewX(thisPaint: android.graphics.Paint): number;
			static setTextSkewX(thisPaint: android.graphics.Paint, skewX: number): void;
			static ascent(thisPaint: android.graphics.Paint): number;
			static descent(thisPaint: android.graphics.Paint): number;
			static getFontMetrics(thisPaint: android.graphics.Paint, metrics: android.graphics.Paint.FontMetrics): number;
			static getFontMetricsInt(thisPaint: android.graphics.Paint, fmi: android.graphics.Paint.FontMetricsInt): number;
			static native_measureText(thisPaint: android.graphics.Paint, text: native.Array<string>, index: number, count: number): number;
			static native_measureText(thisPaint: android.graphics.Paint, text: string, start: number, end: number): number;
			static native_measureText(thisPaint: android.graphics.Paint, text: string): number;
			static native_breakText(thisPaint: android.graphics.Paint, text: native.Array<string>, index: number, count: number, maxWidth: number, measuredWidth: native.Array<number>): number;
			static native_breakText(thisPaint: android.graphics.Paint, text: string, measureForwards: boolean, maxWidth: number, measuredWidth: native.Array<number>): number;
			static native_init(): number;
			static native_initWithPaint(paint: number): number;
			static native_reset(native_object: number): void;
			static native_set(native_dst: number, native_src: number): void;
			static native_getStyle(native_object: number): number;
			static native_setStyle(native_object: number, style: number): void;
			static native_getStrokeCap(native_object: number): number;
			static native_setStrokeCap(native_object: number, cap: number): void;
			static native_getStrokeJoin(native_object: number): number;
			static native_setStrokeJoin(native_object: number, join: number): void;
			static native_getFillPath(native_object: number, src: number, dst: number): boolean;
			static native_setShader(native_object: number, shader: number): number;
			static native_setColorFilter(native_object: number, filter: number): number;
			static native_setXfermode(native_object: number, xfermode: number): number;
			static native_setPathEffect(native_object: number, effect: number): number;
			static native_setMaskFilter(native_object: number, maskfilter: number): number;
			static native_setTypeface(native_object: number, typeface: number): number;
			static native_setRasterizer(native_object: number, rasterizer: number): number;
			static native_getTextAlign(native_object: number): number;
			static native_setTextAlign(native_object: number, align: number): void;
			static native_setTextLocale(native_object: number, locale: string): void;
			static native_getTextWidths(native_object: number, text: native.Array<string>, index: number, count: number, widths: native.Array<number>): number;
			static native_getTextWidths(native_object: number, text: string, start: number, end: number, widths: native.Array<number>): number;
			static native_getTextGlyphs(native_object: number, text: string, start: number, end: number, contextStart: number, contextEnd: number, flags: number, glyphs: native.Array<string>): number;
			static native_getTextRunAdvances(native_object: number, text: native.Array<string>, index: number, count: number, contextIndex: number, contextCount: number, flags: number, advances: native.Array<number>, advancesIndex: number, reserved: number): number;
			static native_getTextRunAdvances(native_object: number, text: string, start: number, end: number, contextStart: number, contextEnd: number, flags: number, advances: native.Array<number>, advancesIndex: number, reserved: number): number;
			static native_getTextRunCursor(thisPaint: android.graphics.Paint, native_object: number, text: native.Array<string>, contextStart: number, contextLength: number, flags: number, offset: number, cursorOpt: number): number;
			static native_getTextRunCursor(thisPaint: android.graphics.Paint, native_object: number, text: string, contextStart: number, contextEnd: number, flags: number, offset: number, cursorOpt: number): number;
			static native_getTextPath(native_object: number, bidiFlags: number, text: native.Array<string>, index: number, count: number, x: number, y: number, path: number): void;
			static native_getTextPath(native_object: number, bidiFlags: number, text: string, start: number, end: number, x: number, y: number, path: number): void;
			static nativeGetStringBounds(nativePaint: number, text: string, start: number, end: number, bounds: android.graphics.Rect): void;
			static nativeGetCharArrayBounds(nativePaint: number, text: native.Array<string>, index: number, count: number, bounds: android.graphics.Rect): void;
			static finalizer(nativePaint: number): void;
			measureText(text: native.Array<string>, index: number, count: number): number;
		}
		export module Paint_Delegate {
			/**
			 * Class associating a Font and it's java.awt.FontMetrics.
			 */
			export class FontInfo extends java.lang.Object {
				static class: java.lang.Class<android.graphics.Paint_Delegate.FontInfo>;
			}
		}
		export class DiscretePathEffect extends android.graphics.PathEffect {
			/**
			 * Chop the path into lines of segmentLength, randomly deviating from the original path by deviation.
			 */
			constructor(segmentLength: number, deviation: number);
			static class: java.lang.Class<android.graphics.DiscretePathEffect>;
		}
		export class TypefaceTest {
			constructor();
			static class: java.lang.Class<android.graphics.TypefaceTest>;
			public testBasic(): void;
			public testUnique(): void;
			public testStyles(): void;
			public testUniformY(): void;
		}
		/**
		 * Delegate implementing the native methods of android.graphics.LinearGradient
		 */
		export class LinearGradient_Delegate extends android.graphics.Gradient_Delegate {
			static class: java.lang.Class<android.graphics.LinearGradient_Delegate>;
			LinearGradientPaint: {
	new (x0: number, y0: number, x1: number, y1: number, colors: native.Array<number>, positions: native.Array<number>, tile: android.graphics.Shader.TileMode): android.graphics.LinearGradient_Delegate.LinearGradientPaint;
};
			static nativeCreate1(thisGradient: android.graphics.LinearGradient, x0: number, y0: number, x1: number, y1: number, colors: native.Array<number>, positions: native.Array<number>, tileMode: number): number;
			static nativeCreate2(thisGradient: android.graphics.LinearGradient, x0: number, y0: number, x1: number, y1: number, color0: number, color1: number, tileMode: number): number;
			static nativePostCreate1(thisGradient: android.graphics.LinearGradient, native_shader: number, x0: number, y0: number, x1: number, y1: number, colors: native.Array<number>, positions: native.Array<number>, tileMode: number): number;
			static nativePostCreate2(thisGradient: android.graphics.LinearGradient, native_shader: number, x0: number, y0: number, x1: number, y1: number, color0: number, color1: number, tileMode: number): number;
		}
		export module LinearGradient_Delegate {
			/**
			 * Linear Gradient (Java) Paint able to handle more than 2 points, as java.awt.GradientPaint only supports 2 points and does not support Android's tile modes.
			 */
			export class LinearGradientPaint extends android.graphics.Gradient_Delegate.GradientPaint {
				static class: java.lang.Class<android.graphics.LinearGradient_Delegate.LinearGradientPaint>;
			}
			export module LinearGradientPaint {
				export class LinearGradientPaintContext extends java.lang.Object {
					static class: java.lang.Class<android.graphics.LinearGradient_Delegate.LinearGradientPaint.LinearGradientPaintContext>;
					public dispose(): void;
				}
			}
		}
		/**
		 * Base class for true Gradient shader delegate.
		 */
		export class Gradient_Delegate extends android.graphics.Shader_Delegate {
			static class: java.lang.Class<android.graphics.Gradient_Delegate>;
			public isSupported(): boolean;
			public getSupportMessage(): string;
		}
		export module Gradient_Delegate {
			/**
			 * Base class for (Java) Gradient Paints. This handles computing the gradient colors based on the color and position lists, as well as the TileMode
			 */
			export class GradientPaint extends java.lang.Object {
				static class: java.lang.Class<android.graphics.Gradient_Delegate.GradientPaint>;
				public getTransparency(): number;
				/**
				 * Pre-computes the colors for the gradient. This must be called once before any call to #getGradientColor(float)
				 */
				protected precomputeGradientColors(): void;
				/**
				 * Returns the color based on the position in the gradient. <var>pos</var> can be anything, even &lt; 0 or &gt; > 1, as the gradient will use TileMode value to convert it into a [0,1] value.
				 */
				protected getGradientColor(pos: number): number;
			}
		}
		/**
		 * Delegate implementing the native methods of android.graphics.Bitmap
		 */
		export class Bitmap_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.graphics.Bitmap_Delegate>;
			/**
			 * Returns the native delegate associated to a given Bitmap_Delegate object.
			 */
			public static getDelegate(bitmap: android.graphics.Bitmap): android.graphics.Bitmap_Delegate;
			/**
			 * Returns the native delegate associated to a given an int referencing a Bitmap object.
			 */
			public static getDelegate(native_bitmap: number): android.graphics.Bitmap_Delegate;
			public static getBufferedImageType(nativeBitmapConfig: number): number;
			/**
			 * Returns the Android bitmap config. Note that this not the config of the underlying Java2D bitmap.
			 */
			public getConfig(): android.graphics.Bitmap.Config;
			/**
			 * Returns the hasAlpha rendering hint
			 */
			public hasAlpha(): boolean;
			/**
			 * Update the generationId.
			 */
			public change(): void;
			static nativeCreate(colors: native.Array<number>, offset: number, stride: number, width: number, height: number, nativeConfig: number, mutable: boolean): android.graphics.Bitmap;
			static nativeCopy(srcBitmap: number, nativeConfig: number, isMutable: boolean): android.graphics.Bitmap;
			static nativeDestructor(nativeBitmap: number): void;
			static nativeRecycle(nativeBitmap: number): void;
			static nativeCompress(nativeBitmap: number, format: number, quality: number, stream: java.io.OutputStream, tempStorage: native.Array<number>): boolean;
			static nativeErase(nativeBitmap: number, color: number): void;
			static nativeWidth(nativeBitmap: number): number;
			static nativeHeight(nativeBitmap: number): number;
			static nativeRowBytes(nativeBitmap: number): number;
			static nativeConfig(nativeBitmap: number): number;
			static nativeHasAlpha(nativeBitmap: number): boolean;
			static nativeGetPixel(nativeBitmap: number, x: number, y: number): number;
			static nativeGetPixels(nativeBitmap: number, pixels: native.Array<number>, offset: number, stride: number, x: number, y: number, width: number, height: number): void;
			static nativeSetPixel(nativeBitmap: number, x: number, y: number, color: number): void;
			static nativeSetPixels(nativeBitmap: number, colors: native.Array<number>, offset: number, stride: number, x: number, y: number, width: number, height: number): void;
			static nativeCopyPixelsToBuffer(nativeBitmap: number, dst: java.nio.Buffer): void;
			static nativeCopyPixelsFromBuffer(nb: number, src: java.nio.Buffer): void;
			static nativeGenerationId(nativeBitmap: number): number;
			static nativeCreateFromParcel(p: android.os.Parcel): android.graphics.Bitmap;
			static nativeWriteToParcel(nativeBitmap: number, isMutable: boolean, density: number, p: android.os.Parcel): boolean;
			static nativeExtractAlpha(nativeBitmap: number, nativePaint: number, offsetXY: native.Array<number>): android.graphics.Bitmap;
			static nativePrepareToDraw(nativeBitmap: number): void;
			static nativeSetHasAlpha(nativeBitmap: number, hasAlpha: boolean): void;
			static nativeSameAs(nb0: number, nb1: number): boolean;
		}
	}
	export module media {
		/**
		 * Encapsulates the information describing the format of media data, be it audio or video.
		 */
		export class MediaFormat extends java.lang.Object {
			/**
			 * Creates an empty MediaFormat
			 */
			constructor();
			/**
			 * A key describing the mime type of the MediaFormat. The associated value is a string.
			 */
			static KEY_MIME: string;
			/**
			 * A key describing the sample rate of an audio format. The associated value is an integer
			 */
			static KEY_SAMPLE_RATE: string;
			/**
			 * A key describing the number of channels in an audio format. The associated value is an integer
			 */
			static KEY_CHANNEL_COUNT: string;
			/**
			 * A key describing the width of the content in a video format. The associated value is an integer
			 */
			static KEY_WIDTH: string;
			/**
			 * A key describing the height of the content in a video format. The associated value is an integer
			 */
			static KEY_HEIGHT: string;
			/**
			 * A key describing the maximum size in bytes of a buffer of data described by this MediaFormat. The associated value is an integer
			 */
			static KEY_MAX_INPUT_SIZE: string;
			/**
			 * A key describing the bitrate in bits/sec. The associated value is an integer
			 */
			static KEY_BIT_RATE: string;
			/**
			 * A key describing the color format of the content in a video format. Constants are declared in android.media.MediaCodecInfo.CodecCapabilities.
			 */
			static KEY_COLOR_FORMAT: string;
			/**
			 * A key describing the frame rate of a video format in frames/sec. The associated value is an integer or a float.
			 */
			static KEY_FRAME_RATE: string;
			/**
			 * A key describing the frequency of I frames expressed in secs between I frames. The associated value is an integer.
			 */
			static KEY_I_FRAME_INTERVAL: string;
			/**
			 * A key describing the duration (in microseconds) of the content. The associated value is a long.
			 */
			static KEY_DURATION: string;
			/**
			 * A key mapping to a value of 1 if the content is AAC audio and audio frames are prefixed with an ADTS header. The associated value is an integer (0 or 1).
			 */
			static KEY_IS_ADTS: string;
			/**
			 * A key describing the channel composition of audio content. This mask is composed of bits drawn from channel mask definitions in android.media.AudioFormat. The associated value is an integer.
			 */
			static KEY_CHANNEL_MASK: string;
			/**
			 * A key describing the AAC profile to be used (AAC audio formats only). Constants are declared in android.media.MediaCodecInfo.CodecCapabilities.
			 */
			static KEY_AAC_PROFILE: string;
			/**
			 * A key describing the FLAC compression level to be used (FLAC audio format only). The associated value is an integer ranging from 0 (fastest, least compression) to 8 (slowest, most compression).
			 */
			static KEY_FLAC_COMPRESSION_LEVEL: string;
			static class: java.lang.Class<android.media.MediaFormat>;
			getMap(): java.util.IMap<string, any>;
			/**
			 * Returns true iff a key of the given name exists in the format.
			 */
			public containsKey(name: string): boolean;
			/**
			 * Returns the value of an integer key.
			 */
			public getInteger(name: string): number;
			/**
			 * Returns the value of a long key.
			 */
			public getLong(name: string): any;
			/**
			 * Returns the value of a float key.
			 */
			public getFloat(name: string): number;
			/**
			 * Returns the value of a string key.
			 */
			public getString(name: string): string;
			/**
			 * Returns the value of a ByteBuffer key.
			 */
			public getByteBuffer(name: string): java.nio.ByteBuffer;
			/**
			 * Sets the value of an integer key.
			 */
			public setInteger(name: string, value: number): void;
			/**
			 * Sets the value of a long key.
			 */
			public setLong(name: string, value: number): void;
			/**
			 * Sets the value of a float key.
			 */
			public setFloat(name: string, value: number): void;
			/**
			 * Sets the value of a string key.
			 */
			public setString(name: string, value: string): void;
			/**
			 * Sets the value of a ByteBuffer key.
			 */
			public setByteBuffer(name: string, bytes: java.nio.ByteBuffer): void;
			/**
			 * Creates a minimal audio format.
			 * @param mime The mime type of the content.
			 * @param sampleRate The sampling rate of the content.
			 * @param channelCount The number of audio channels in the content.
			 */
			public static createAudioFormat(mime: string, sampleRate: number, channelCount: number): android.media.MediaFormat;
			/**
			 * Creates a minimal video format.
			 * @param mime The mime type of the content.
			 * @param width The width of the content (in pixels)
			 * @param height The height of the content (in pixels)
			 */
			public static createVideoFormat(mime: string, width: number, height: number): android.media.MediaFormat;
			public toString(): string;
		}
		/**
		 * Thumbnail generation routines for media provider.
		 */
		export class ThumbnailUtils extends java.lang.Object {
			constructor();
			/**
			 * Constant used to indicate we should recycle the input in #extractThumbnail(Bitmap, int, int, int) unless the output is the input.
			 */
			static OPTIONS_RECYCLE_INPUT: number;
			static class: java.lang.Class<android.media.ThumbnailUtils>;
			/**
			 * Create a video thumbnail for a video. May return null if the video is corrupt or the format is not supported.
			 * @param filePath the path of video file
			 * @param kind could be MINI_KIND or MICRO_KIND
			 */
			public static createVideoThumbnail(filePath: string, kind: number): android.graphics.Bitmap;
			/**
			 * Creates a centered bitmap of the desired size.
			 * @param source original bitmap source
			 * @param width targeted width
			 * @param height targeted height
			 */
			public static extractThumbnail(source: android.graphics.Bitmap, width: number, height: number): android.graphics.Bitmap;
			/**
			 * Creates a centered bitmap of the desired size.
			 * @param source original bitmap source
			 * @param width targeted width
			 * @param height targeted height
			 * @param options options used during thumbnail extraction
			 */
			public static extractThumbnail(source: android.graphics.Bitmap, width: number, height: number, options: number): android.graphics.Bitmap;
		}
		export module ThumbnailUtils {
			/**
			 * SizedThumbnailBitmap contains the bitmap, which is downsampled either from the thumbnail in exif or the full image. mThumbnailData, mThumbnailWidth and mThumbnailHeight are set together only if mThumbnail is not null.
			 */
			export class SizedThumbnailBitmap extends java.lang.Object {
				mThumbnailData: native.Array<number>;
				mBitmap: android.graphics.Bitmap;
				mThumbnailWidth: number;
				mThumbnailHeight: number;
				static class: java.lang.Class<android.media.ThumbnailUtils.SizedThumbnailBitmap>;
			}
		}
		/**
		 * Plays a series of audio URIs, but does all the hard work on another thread so that any slowness with preparing or loading doesn't block the calling thread.
		 */
		export class AsyncPlayer extends java.lang.Object {
			/**
			 * Construct an AsyncPlayer object.
			 * @param tag a string to use for debugging
			 */
			constructor(tag: string);
			static class: java.lang.Class<android.media.AsyncPlayer>;
			/**
			 * Start playing the sound. It will actually start playing at some point in the future. There are no guarantees about latency here. Calling this before another audio file is done playing will stop that one and start the new one.
			 * @param context Your application's context.
			 * @param uri The URI to play. (see {@link MediaPlayer#setDataSource(Context, Uri)})
			 * @param looping Whether the audio should loop forever.
			 * @param stream the AudioStream to use.
			 */
			public play(context: android.content.Context, uri: android.net.Uri, looping: boolean, stream: number): void;
			/**
			 * Stop a previously played sound. It can't be played again or unpaused at this point. Calling this multiple times has no ill effects.
			 */
			public stop(): void;
		}
		export module AsyncPlayer {
			export class Command extends java.lang.Object {
				static class: java.lang.Class<android.media.AsyncPlayer.Command>;
				public toString(): string;
			}
			export class Thread extends java.lang.Thread {
				static class: java.lang.Class<android.media.AsyncPlayer.Thread>;
				public run(): void;
			}
		}
		/**
		 * Retrieves the predefined camcorder profile settings for camcorder applications. These settings are read-only.
		 */
		export class CamcorderProfile extends java.lang.Object {
			/**
			 * Quality level corresponding to the lowest available resolution.
			 */
			static QUALITY_LOW: number;
			/**
			 * Quality level corresponding to the highest available resolution.
			 */
			static QUALITY_HIGH: number;
			/**
			 * Quality level corresponding to the qcif (176 x 144) resolution.
			 */
			static QUALITY_QCIF: number;
			/**
			 * Quality level corresponding to the cif (352 x 288) resolution.
			 */
			static QUALITY_CIF: number;
			/**
			 * Quality level corresponding to the 480p (720 x 480) resolution. Note that the horizontal resolution for 480p can also be other values, such as 640 or 704, instead of 720.
			 */
			static QUALITY_480P: number;
			/**
			 * Quality level corresponding to the 720p (1280 x 720) resolution.
			 */
			static QUALITY_720P: number;
			/**
			 * Quality level corresponding to the 1080p (1920 x 1080) resolution. Note that the vertical resolution for 1080p can also be 1088, instead of 1080 (used by some vendors to avoid cropping during video playback).
			 */
			static QUALITY_1080P: number;
			/**
			 * Quality level corresponding to the QVGA (320x240) resolution.
			 */
			static QUALITY_QVGA: number;
			/**
			 * Time lapse quality level corresponding to the lowest available resolution.
			 */
			static QUALITY_TIME_LAPSE_LOW: number;
			/**
			 * Time lapse quality level corresponding to the highest available resolution.
			 */
			static QUALITY_TIME_LAPSE_HIGH: number;
			/**
			 * Time lapse quality level corresponding to the qcif (176 x 144) resolution.
			 */
			static QUALITY_TIME_LAPSE_QCIF: number;
			/**
			 * Time lapse quality level corresponding to the cif (352 x 288) resolution.
			 */
			static QUALITY_TIME_LAPSE_CIF: number;
			/**
			 * Time lapse quality level corresponding to the 480p (720 x 480) resolution.
			 */
			static QUALITY_TIME_LAPSE_480P: number;
			/**
			 * Time lapse quality level corresponding to the 720p (1280 x 720) resolution.
			 */
			static QUALITY_TIME_LAPSE_720P: number;
			/**
			 * Time lapse quality level corresponding to the 1080p (1920 x 1088) resolution.
			 */
			static QUALITY_TIME_LAPSE_1080P: number;
			/**
			 * Time lapse quality level corresponding to the QVGA (320 x 240) resolution.
			 */
			static QUALITY_TIME_LAPSE_QVGA: number;
			/**
			 * Default recording duration in seconds before the session is terminated. This is useful for applications like MMS has limited file size requirement.
			 */
			duration: number;
			/**
			 * The quality level of the camcorder profile
			 */
			quality: number;
			/**
			 * The file output format of the camcorder profile android.media.MediaRecorder.OutputFormat
			 */
			fileFormat: number;
			/**
			 * The video encoder being used for the video track android.media.MediaRecorder.VideoEncoder
			 */
			videoCodec: number;
			/**
			 * The target video output bit rate in bits per second
			 */
			videoBitRate: number;
			/**
			 * The target video frame rate in frames per second
			 */
			videoFrameRate: number;
			/**
			 * The target video frame width in pixels
			 */
			videoFrameWidth: number;
			/**
			 * The target video frame height in pixels
			 */
			videoFrameHeight: number;
			/**
			 * The audio encoder being used for the audio track. android.media.MediaRecorder.AudioEncoder
			 */
			audioCodec: number;
			/**
			 * The target audio output bit rate in bits per second
			 */
			audioBitRate: number;
			/**
			 * The audio sampling rate used for the audio track
			 */
			audioSampleRate: number;
			/**
			 * The number of audio channels used for the audio track
			 */
			audioChannels: number;
			static class: java.lang.Class<android.media.CamcorderProfile>;
			/**
			 * Returns the camcorder profile for the first back-facing camera on the device at the given quality level. If the device has no back-facing camera, this returns null.
			 * @param quality the target quality level for the camcorder profile
			 */
			public static get(quality: number): android.media.CamcorderProfile;
			/**
			 * Returns the camcorder profile for the given camera at the given quality level.
			 * @param cameraId the id for the camera
			 * @param quality the target quality level for the camcorder profile.
			 */
			public static get(cameraId: number, quality: number): android.media.CamcorderProfile;
			/**
			 * Returns true if camcorder profile exists for the first back-facing camera at the given quality level.
			 * @param quality the target quality level for the camcorder profile
			 */
			public static hasProfile(quality: number): boolean;
			/**
			 * Returns true if camcorder profile exists for the given camera at the given quality level.
			 * @param cameraId the id for the camera
			 * @param quality the target quality level for the camcorder profile
			 */
			public static hasProfile(cameraId: number, quality: number): boolean;
		}
		export module filterfw {
			export module samples {
				export class CameraEffectsRecordingSample extends android.app.Activity {
					constructor();
					static class: java.lang.Class<android.media.filterfw.samples.CameraEffectsRecordingSample>;
					public onCreate(savedInstanceState: android.os.Bundle): void;
					public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
					protected onPause(): void;
				}
			}
		}
		/**
		 * The SoundPool class manages and plays audio resources for applications.
		 */
		export class SoundPool extends java.lang.Object {
			/**
			 * Constructor. Constructs a SoundPool object with the following characteristics:
			 * @param maxStreams the maximum number of simultaneous streams for this
			 * @param streamType the audio stream type as described in AudioManager
			 * @param srcQuality the sample-rate converter quality. Currently has no
			 */
			constructor(maxStreams: number, streamType: number, srcQuality: number);
			static class: java.lang.Class<android.media.SoundPool>;
			EventHandler: {
	new (soundPool: android.media.SoundPool, looper: android.os.Looper): android.media.SoundPool.EventHandler;
};
			/**
			 * Load the sound from the specified path.
			 * @param path the path to the audio file
			 * @param priority the priority of the sound. Currently has no effect. Use
			 */
			public load(path: string, priority: number): number;
			/**
			 * Load the sound from the specified APK resource.
			 * @param context the application context
			 * @param resId the resource ID
			 * @param priority the priority of the sound. Currently has no effect. Use
			 */
			public load(context: android.content.Context, resId: number, priority: number): number;
			/**
			 * Load the sound from an asset file descriptor.
			 * @param afd an asset file descriptor
			 * @param priority the priority of the sound. Currently has no effect. Use
			 */
			public load(afd: android.content.res.AssetFileDescriptor, priority: number): number;
			/**
			 * Load the sound from a FileDescriptor.
			 * @param fd a FileDescriptor object
			 * @param offset offset to the start of the sound
			 * @param length length of the sound
			 * @param priority the priority of the sound. Currently has no effect. Use
			 */
			public load(fd: java.io.FileDescriptor, offset: number, length: number, priority: number): number;
			/**
			 * Unload a sound from a sound ID.
			 * @param soundID a soundID returned by the load() function
			 */
			public unload(soundID: number): boolean;
			/**
			 * Play a sound from a sound ID.
			 * @param soundID a soundID returned by the load() function
			 * @param leftVolume left volume value (range = 0.0 to 1.0)
			 * @param rightVolume right volume value (range = 0.0 to 1.0)
			 * @param priority stream priority (0 = lowest priority)
			 * @param loop loop mode (0 = no loop, -1 = loop forever)
			 * @param rate playback rate (1.0 = normal playback, range 0.5 to 2.0)
			 */
			public play(soundID: number, leftVolume: number, rightVolume: number, priority: number, loop: number, rate: number): number;
			/**
			 * Pause a playback stream.
			 * @param streamID a streamID returned by the play() function
			 */
			public pause(streamID: number): void;
			/**
			 * Resume a playback stream.
			 * @param streamID a streamID returned by the play() function
			 */
			public resume(streamID: number): void;
			/**
			 * Pause all active streams.
			 */
			public autoPause(): void;
			/**
			 * Resume all previously active streams.
			 */
			public autoResume(): void;
			/**
			 * Stop a playback stream.
			 * @param streamID a streamID returned by the play() function
			 */
			public stop(streamID: number): void;
			/**
			 * Set stream volume.
			 * @param streamID a streamID returned by the play() function
			 * @param leftVolume left volume value (range = 0.0 to 1.0)
			 * @param rightVolume right volume value (range = 0.0 to 1.0)
			 */
			public setVolume(streamID: number, leftVolume: number, rightVolume: number): void;
			/**
			 * Change stream priority.
			 * @param streamID a streamID returned by the play() function
			 * @param priority 
			 */
			public setPriority(streamID: number, priority: number): void;
			/**
			 * Set loop mode.
			 * @param streamID a streamID returned by the play() function
			 * @param loop loop mode (0 = no loop, -1 = loop forever)
			 */
			public setLoop(streamID: number, loop: number): void;
			/**
			 * Change playback rate.
			 * @param streamID a streamID returned by the play() function
			 * @param rate playback rate (1.0 = normal playback, range 0.5 to 2.0)
			 */
			public setRate(streamID: number, rate: number): void;
			/**
			 * Sets the callback hook for the OnLoadCompleteListener.
			 */
			public setOnLoadCompleteListener(listener: android.media.SoundPool.IOnLoadCompleteListener): void;
			/**
			 * Release the SoundPool resources.
			 */
			public release(): void;
			protected finalize(): void;
		}
		export module SoundPool {
			/**
			 * Interface definition for a callback to be invoked when all the sounds are loaded.
			 */
			export class OnLoadCompleteListener implements android.media.SoundPool.IOnLoadCompleteListener {
				constructor(implementation: android.media.SoundPool.IOnLoadCompleteListener);
				/**
				 * Called when a sound has completed loading.
				 * @param soundPool SoundPool object from the load() method
				 * @param sampleId soundPool the sample ID of the sound loaded.
				 * @param status the status of the load operation (0 = success)
				 */
				public onLoadComplete(soundPool: android.media.SoundPool, sampleId: number, status: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when all the sounds are loaded.
			 */
			interface IOnLoadCompleteListener {
				/**
				 * Called when a sound has completed loading.
				 * @param soundPool SoundPool object from the load() method
				 * @param sampleId soundPool the sample ID of the sound loaded.
				 * @param status the status of the load operation (0 = success)
				 */
				onLoadComplete(soundPool: android.media.SoundPool, sampleId: number, status: number): void;
			}
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.media.SoundPool.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * MediaExtractor facilitates extraction of demuxed, typically encoded, media data from a data source.
		 */
		export class MediaExtractor extends java.lang.Object {
			constructor();
			/**
			 * If possible, seek to a sync sample at or before the specified time
			 */
			static SEEK_TO_PREVIOUS_SYNC: number;
			/**
			 * If possible, seek to a sync sample at or after the specified time
			 */
			static SEEK_TO_NEXT_SYNC: number;
			/**
			 * If possible, seek to the sync sample closest to the specified time
			 */
			static SEEK_TO_CLOSEST_SYNC: number;
			/**
			 * The sample is a sync sample
			 */
			static SAMPLE_FLAG_SYNC: number;
			/**
			 * The sample is (at least partially) encrypted, see also the documentation for android.media.MediaCodec#queueSecureInputBuffer
			 */
			static SAMPLE_FLAG_ENCRYPTED: number;
			static class: java.lang.Class<android.media.MediaExtractor>;
			/**
			 * Sets the data source as a content Uri.
			 * @param context the Context to use when resolving the Uri
			 * @param uri the Content URI of the data you want to extract from.
			 * @param headers the headers to be sent together with the request for the data
			 */
			public setDataSource(context: android.content.Context, uri: android.net.Uri, headers: java.util.IMap<string, string>): void;
			/**
			 * Sets the data source (file-path or http URL) to use.
			 * @param path the path of the file, or the http URL
			 * @param headers the headers associated with the http request for the stream you want to play
			 */
			public setDataSource(path: string, headers: java.util.IMap<string, string>): void;
			/**
			 * Sets the data source (file-path or http URL) to use.
			 * @param path the path of the file, or the http URL of the stream
			 */
			public setDataSource(path: string): void;
			/**
			 * Sets the data source (FileDescriptor) to use. It is the caller's responsibility to close the file descriptor. It is safe to do so as soon as this call returns.
			 * @param fd the FileDescriptor for the file you want to extract from.
			 */
			public setDataSource(fd: java.io.FileDescriptor): void;
			/**
			 * Sets the data source (FileDescriptor) to use. The FileDescriptor must be seekable (N.B. a LocalSocket is not seekable). It is the caller's responsibility to close the file descriptor. It is safe to do so as soon as this call returns.
			 * @param fd the FileDescriptor for the file you want to extract from.
			 * @param offset the offset into the file where the data to be extracted starts, in bytes
			 * @param length the length in bytes of the data to be extracted
			 */
			public setDataSource(fd: java.io.FileDescriptor, offset: number, length: number): void;
			protected finalize(): void;
			/**
			 * Make sure you call this when you're done to free up any resources instead of relying on the garbage collector to do this for you at some point in the future.
			 */
			public release(): void;
			/**
			 * Count the number of tracks found in the data source.
			 */
			public getTrackCount(): number;
			/**
			 * Get the track format at the specified index. More detail on the representation can be found at android.media.MediaCodec
			 */
			public getTrackFormat(index: number): android.media.MediaFormat;
			/**
			 * Subsequent calls to #readSampleData, #getSampleTrackIndex and #getSampleTime only retrieve information for the subset of tracks selected. Selecting the same track multiple times has no effect, the track is only selected once.
			 */
			public selectTrack(index: number): void;
			/**
			 * Subsequent calls to #readSampleData, #getSampleTrackIndex and #getSampleTime only retrieve information for the subset of tracks selected.
			 */
			public unselectTrack(index: number): void;
			/**
			 * All selected tracks seek near the requested time according to the specified mode.
			 */
			public seekTo(timeUs: number, mode: number): void;
			/**
			 * Advance to the next sample. Returns false if no more sample data is available (end of stream).
			 */
			public advance(): boolean;
			/**
			 * Retrieve the current encoded sample and store it in the byte buffer starting at the given offset. Returns the sample size (or -1 if no more samples are available).
			 */
			public readSampleData(byteBuf: java.nio.ByteBuffer, offset: number): number;
			/**
			 * Returns the track index the current sample originates from (or -1 if no more samples are available)
			 */
			public getSampleTrackIndex(): number;
			/**
			 * Returns the current sample's presentation time in microseconds. or -1 if no more samples are available.
			 */
			public getSampleTime(): any;
			/**
			 * Returns the current sample's flags.
			 */
			public getSampleFlags(): number;
			/**
			 * If the sample flags indicate that the current sample is at least partially encrypted, this call returns relevant information about the structure of the sample data required for decryption.
			 * @param info The android.media.MediaCodec.CryptoInfo structure
			 */
			public getSampleCryptoInfo(info: android.media.MediaCodec.CryptoInfo): boolean;
			/**
			 * Returns an estimate of how much data is presently cached in memory expressed in microseconds. Returns -1 if that information is unavailable or not applicable (no cache).
			 */
			public getCachedDuration(): any;
			/**
			 * Returns true iff we are caching data and the cache has reached the end of the data stream (for now, a future seek may of course restart the fetching of data). This API only returns a meaningful result if #getCachedDuration indicates the presence of a cache, i.e. does NOT return -1.
			 */
			public hasCacheReachedEndOfStream(): boolean;
		}
		/**
		 * MediaCrypto class can be used in conjunction with android.media.MediaCodec to decode encrypted media data.
		 */
		export class MediaCrypto extends java.lang.Object {
			/**
			 * Instantiate a MediaCrypto object using opaque, crypto scheme specific data.
			 * @param uuid The UUID of the crypto scheme.
			 * @param initData Opaque initialization data specific to the crypto scheme.
			 */
			constructor(uuid: java.util.UUID, initData: native.Array<number>);
			static class: java.lang.Class<android.media.MediaCrypto>;
			/**
			 * Query if the given scheme identified by its UUID is supported on this device.
			 * @param uuid The UUID of the crypto scheme.
			 */
			public static isCryptoSchemeSupported(uuid: java.util.UUID): boolean;
			/**
			 * Query if the crypto scheme requires the use of a secure decoder to decode data of the given mime type.
			 * @param mime The mime type of the media data
			 */
			public requiresSecureDecoderComponent(mime: string): boolean;
			protected finalize(): void;
			public release(): void;
		}
		/**
		 * Exception thrown if MediaCrypto object could not be instantiated for whatever reason.
		 */
		export class MediaCryptoException extends java.lang.Exception {
			constructor(detailMessage: string);
			static class: java.lang.Class<android.media.MediaCryptoException>;
		}
		export class MediaActionSound extends java.lang.Object {
			/**
			 * Construct a new MediaActionSound instance. Only a single instance is needed for playing any platform media action sound; you do not need a separate instance for each sound type.
			 */
			constructor();
			/**
			 * The sound used by android.hardware.Camera#takePicture Camera.takePicture to indicate still image capture. #play
			 */
			static SHUTTER_CLICK: number;
			/**
			 * A sound to indicate that focusing has completed. Because deciding when this occurs is application-dependent, this sound is not used by any methods in the media or camera APIs. #play
			 */
			static FOCUS_COMPLETE: number;
			/**
			 * The sound used by android.media.MediaRecorder#start MediaRecorder.start() to indicate the start of video recording. #play
			 */
			static START_VIDEO_RECORDING: number;
			/**
			 * The sound used by android.media.MediaRecorder#stop MediaRecorder.stop() to indicate the end of video recording. #play
			 */
			static STOP_VIDEO_RECORDING: number;
			static class: java.lang.Class<android.media.MediaActionSound>;
			/**
			 * Preload a predefined platform sound to minimize latency when the sound is played later by #play.
			 * @param soundName The type of sound to preload, selected from
			 */
			public load(soundName: number): void;
			/**
			 * @param soundName The type of sound to play, selected from
			 */
			public play(soundName: number): void;
			/**
			 * Free up all audio resources used by this MediaActionSound instance. Do not call any other methods on a MediaActionSound instance after calling release().
			 */
			public release(): void;
		}
		/**
		 * The AudioRecord class manages the audio resources for Java applications to record audio from the audio input hardware of the platform. This is achieved by "pulling" (reading) the data from the AudioRecord object. The application is responsible for polling the AudioRecord object in time using one of the following three methods: #read(byte[],int, int), #read(short[], int, int) or #read(ByteBuffer, int). The choice of which method to use will be based on the audio data storage format that is the most convenient for the user of AudioRecord.
		 */
		export class AudioRecord extends java.lang.Object {
			/**
			 * Class constructor.
			 * @param audioSource the recording source. See {@link MediaRecorder.AudioSource} for
			 * @param sampleRateInHz the sample rate expressed in Hertz. 44100Hz is currently the only
			 * @param channelConfig describes the configuration of the audio channels.
			 * @param audioFormat the format in which the audio data is represented.
			 * @param bufferSizeInBytes the total size (in bytes) of the buffer where audio data is written
			 */
			constructor(audioSource: number, sampleRateInHz: number, channelConfig: number, audioFormat: number, bufferSizeInBytes: number);
			/**
			 * indicates AudioRecord state is not successfully initialized.
			 */
			static STATE_UNINITIALIZED: number;
			/**
			 * indicates AudioRecord state is ready to be used
			 */
			static STATE_INITIALIZED: number;
			/**
			 * indicates AudioRecord recording state is not recording
			 */
			static RECORDSTATE_STOPPED: number;
			/**
			 * indicates AudioRecord recording state is recording
			 */
			static RECORDSTATE_RECORDING: number;
			/**
			 * Denotes a successful operation.
			 */
			static SUCCESS: number;
			/**
			 * Denotes a generic operation failure.
			 */
			static ERROR: number;
			/**
			 * Denotes a failure due to the use of an invalid value.
			 */
			static ERROR_BAD_VALUE: number;
			/**
			 * Denotes a failure due to the improper use of a method.
			 */
			static ERROR_INVALID_OPERATION: number;
			static class: java.lang.Class<android.media.AudioRecord>;
			/**
			 * Releases the native AudioRecord resources. The object can no longer be used and the reference should be set to null after a call to release()
			 */
			public release(): void;
			protected finalize(): void;
			/**
			 * Returns the configured audio data sample rate in Hz
			 */
			public getSampleRate(): number;
			/**
			 * Returns the audio recording source. MediaRecorder.AudioSource
			 */
			public getAudioSource(): number;
			/**
			 * Returns the configured audio data format. See AudioFormat#ENCODING_PCM_16BIT and AudioFormat#ENCODING_PCM_8BIT.
			 */
			public getAudioFormat(): number;
			/**
			 * Returns the configured channel configuration. See AudioFormat#CHANNEL_IN_MONO and AudioFormat#CHANNEL_IN_STEREO.
			 */
			public getChannelConfiguration(): number;
			/**
			 * Returns the configured number of channels.
			 */
			public getChannelCount(): number;
			/**
			 * Returns the state of the AudioRecord instance. This is useful after the AudioRecord instance has been created to check if it was initialized properly. This ensures that the appropriate hardware resources have been acquired. AudioRecord#STATE_INITIALIZED AudioRecord#STATE_UNINITIALIZED
			 */
			public getState(): number;
			/**
			 * Returns the recording state of the AudioRecord instance. AudioRecord#RECORDSTATE_STOPPED AudioRecord#RECORDSTATE_RECORDING
			 */
			public getRecordingState(): number;
			/**
			 * Returns the notification marker position expressed in frames.
			 */
			public getNotificationMarkerPosition(): number;
			/**
			 * Returns the notification update period expressed in frames.
			 */
			public getPositionNotificationPeriod(): number;
			/**
			 * Returns the minimum buffer size required for the successful creation of an AudioRecord object. Note that this size doesn't guarantee a smooth recording under load, and higher values should be chosen according to the expected frequency at which the AudioRecord instance will be polled for new data.
			 * @param sampleRateInHz the sample rate expressed in Hertz.
			 * @param channelConfig describes the configuration of the audio channels.
			 * @param audioFormat the format in which the audio data is represented.
			 */
			public static getMinBufferSize(sampleRateInHz: number, channelConfig: number, audioFormat: number): number;
			/**
			 * Returns the audio session ID.
			 */
			public getAudioSessionId(): number;
			/**
			 * Starts recording from the AudioRecord instance. IllegalStateException
			 */
			public startRecording(): void;
			/**
			 * Starts recording from the AudioRecord instance when the specified synchronization event occurs on the specified audio session. IllegalStateException
			 * @param syncEvent event that triggers the capture.
			 */
			public startRecording(syncEvent: android.media.MediaSyncEvent): void;
			/**
			 * Stops recording. IllegalStateException
			 */
			public stop(): void;
			/**
			 * Reads audio data from the audio hardware for recording into a buffer.
			 * @param audioData the array to which the recorded audio data is written.
			 * @param offsetInBytes index in audioData from which the data is written expressed in bytes.
			 * @param sizeInBytes the number of requested bytes.
			 */
			public read(audioData: native.Array<number>, offsetInBytes: number, sizeInBytes: number): number;
			/**
			 * Reads audio data from the audio hardware for recording into a direct buffer. If this buffer is not a direct buffer, this method will always return 0.
			 * @param audioBuffer the direct buffer to which the recorded audio data is written.
			 * @param sizeInBytes the number of requested bytes.
			 */
			public read(audioBuffer: java.nio.ByteBuffer, sizeInBytes: number): number;
			/**
			 * Sets the listener the AudioRecord notifies when a previously set marker is reached or for each periodic record head position update.
			 * @param listener 
			 */
			public setRecordPositionUpdateListener(listener: android.media.AudioRecord.IOnRecordPositionUpdateListener): void;
			/**
			 * Sets the listener the AudioRecord notifies when a previously set marker is reached or for each periodic record head position update. Use this method to receive AudioRecord events in the Handler associated with another thread than the one in which you created the AudioTrack instance.
			 * @param listener 
			 * @param handler the Handler that will receive the event notification messages.
			 */
			public setRecordPositionUpdateListener(listener: android.media.AudioRecord.IOnRecordPositionUpdateListener, handler: android.os.Handler): void;
			/**
			 * Sets the marker position at which the listener is called, if set with #setRecordPositionUpdateListener(OnRecordPositionUpdateListener) or #setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler).
			 * @param markerInFrames marker position expressed in frames
			 */
			public setNotificationMarkerPosition(markerInFrames: number): number;
			/**
			 * Sets the period at which the listener is called, if set with #setRecordPositionUpdateListener(OnRecordPositionUpdateListener) or #setRecordPositionUpdateListener(OnRecordPositionUpdateListener, Handler).
			 * @param periodInFrames update period expressed in frames
			 */
			public setPositionNotificationPeriod(periodInFrames: number): number;
		}
		export module AudioRecord {
			/**
			 * Interface definition for a callback to be invoked when an AudioRecord has reached a notification marker set by AudioRecord#setNotificationMarkerPosition(int) or for periodic updates on the progress of the record head, as set by AudioRecord#setPositionNotificationPeriod(int).
			 */
			interface IOnRecordPositionUpdateListener {
				/**
				 * Called on the listener to notify it that the previously set marker has been reached by the recording head.
				 */
				onMarkerReached(recorder: android.media.AudioRecord): void;
				/**
				 * Called on the listener to periodically notify it that the record head has reached a multiple of the notification period.
				 */
				onPeriodicNotification(recorder: android.media.AudioRecord): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an AudioRecord has reached a notification marker set by AudioRecord#setNotificationMarkerPosition(int) or for periodic updates on the progress of the record head, as set by AudioRecord#setPositionNotificationPeriod(int).
			 */
			export class OnRecordPositionUpdateListener implements android.media.AudioRecord.IOnRecordPositionUpdateListener {
				constructor(implementation: android.media.AudioRecord.IOnRecordPositionUpdateListener);
				/**
				 * Called on the listener to notify it that the previously set marker has been reached by the recording head.
				 */
				public onMarkerReached(recorder: android.media.AudioRecord): void;
				/**
				 * Called on the listener to periodically notify it that the record head has reached a multiple of the notification period.
				 */
				public onPeriodicNotification(recorder: android.media.AudioRecord): void;
			}
			/**
			 * Helper class to handle the forwarding of native events to the appropriate listener (potentially) handled in a different thread
			 */
			export class NativeEventHandler extends android.os.Handler {
				static class: java.lang.Class<android.media.AudioRecord.NativeEventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * AudioManager provides access to volume and ringer mode control.
		 */
		export class AudioManager extends java.lang.Object {
			/**
			 * Broadcast intent, a hint for applications that audio is about to become 'noisy' due to a change in audio outputs. For example, this intent may be sent when a wired headset is unplugged, or when an A2DP audio sink is disconnected, and the audio system is about to automatically switch audio route to the speaker. Applications that are controlling audio streams may consider pausing, reducing volume or some other action on receipt of this intent so as not to surprise the user with audio from the speaker.
			 */
			static ACTION_AUDIO_BECOMING_NOISY: string;
			/**
			 * Sticky broadcast intent action indicating that the ringer mode has changed. Includes the new ringer mode.
			 */
			static RINGER_MODE_CHANGED_ACTION: string;
			/**
			 * The new ringer mode.
			 */
			static EXTRA_RINGER_MODE: string;
			/**
			 * Broadcast intent action indicating that the vibrate setting has changed. Includes the vibrate type and its new setting.
			 */
			static VIBRATE_SETTING_CHANGED_ACTION: string;
			/**
			 * The new vibrate setting for a particular type.
			 */
			static EXTRA_VIBRATE_SETTING: string;
			/**
			 * The vibrate type whose setting has changed.
			 */
			static EXTRA_VIBRATE_TYPE: string;
			/**
			 * The audio stream for phone calls
			 */
			static STREAM_VOICE_CALL: number;
			/**
			 * The audio stream for system sounds
			 */
			static STREAM_SYSTEM: number;
			/**
			 * The audio stream for the phone ring
			 */
			static STREAM_RING: number;
			/**
			 * The audio stream for music playback
			 */
			static STREAM_MUSIC: number;
			/**
			 * The audio stream for alarms
			 */
			static STREAM_ALARM: number;
			/**
			 * The audio stream for notifications
			 */
			static STREAM_NOTIFICATION: number;
			/**
			 * The audio stream for DTMF Tones
			 */
			static STREAM_DTMF: number;
			/**
			 *  Use AudioSystem.getNumStreamTypes() instead
			 */
			static NUM_STREAMS: number;
			/**
			 * Increase the ringer volume.
			 */
			static ADJUST_RAISE: number;
			/**
			 * Decrease the ringer volume.
			 */
			static ADJUST_LOWER: number;
			/**
			 * Maintain the previous ringer volume. This may be useful when needing to show the volume toast without actually modifying the volume.
			 */
			static ADJUST_SAME: number;
			/**
			 * Show a toast containing the current volume.
			 */
			static FLAG_SHOW_UI: number;
			/**
			 * Whether to include ringer modes as possible options when changing volume. For example, if true and volume level is 0 and the volume is adjusted with #ADJUST_LOWER, then the ringer mode may switch the silent or vibrate mode.
			 */
			static FLAG_ALLOW_RINGER_MODES: number;
			/**
			 * Whether to play a sound when changing the volume.
			 */
			static FLAG_PLAY_SOUND: number;
			/**
			 * Removes any sounds/vibrate that may be in the queue, or are playing (related to changing volume).
			 */
			static FLAG_REMOVE_SOUND_AND_VIBRATE: number;
			/**
			 * Whether to vibrate if going into the vibrate ringer mode.
			 */
			static FLAG_VIBRATE: number;
			/**
			 * Ringer mode that will be silent and will not vibrate. (This overrides the vibrate setting.)
			 */
			static RINGER_MODE_SILENT: number;
			/**
			 * Ringer mode that will be silent and will vibrate. (This will cause the phone ringer to always vibrate, but the notification vibrate to only vibrate if set.)
			 */
			static RINGER_MODE_VIBRATE: number;
			/**
			 * Ringer mode that may be audible and may vibrate. It will be audible if the volume before changing out of this mode was audible. It will vibrate if the vibrate setting is on.
			 */
			static RINGER_MODE_NORMAL: number;
			/**
			 * Vibrate type that corresponds to the ringer.
			 */
			static VIBRATE_TYPE_RINGER: number;
			/**
			 * Vibrate type that corresponds to notifications.
			 */
			static VIBRATE_TYPE_NOTIFICATION: number;
			/**
			 * Vibrate setting that suggests to never vibrate.
			 */
			static VIBRATE_SETTING_OFF: number;
			/**
			 * Vibrate setting that suggests to vibrate when possible.
			 */
			static VIBRATE_SETTING_ON: number;
			/**
			 * Vibrate setting that suggests to only vibrate when in the vibrate ringer mode.
			 */
			static VIBRATE_SETTING_ONLY_SILENT: number;
			/**
			 * Suggests using the default stream type. This may not be used in all places a stream type is needed.
			 */
			static USE_DEFAULT_STREAM_TYPE: number;
			/**
			 * Sticky broadcast intent action indicating that the bluetoooth SCO audio connection state has changed. The intent contains on extra #EXTRA_SCO_AUDIO_STATE indicating the new state which is either #SCO_AUDIO_STATE_DISCONNECTED or #SCO_AUDIO_STATE_CONNECTED
			 */
			static ACTION_SCO_AUDIO_STATE_CHANGED: string;
			/**
			 * Sticky broadcast intent action indicating that the bluetoooth SCO audio connection state has been updated.
			 */
			static ACTION_SCO_AUDIO_STATE_UPDATED: string;
			/**
			 * Extra for intent #ACTION_SCO_AUDIO_STATE_CHANGED or #ACTION_SCO_AUDIO_STATE_UPDATED containing the new bluetooth SCO connection state.
			 */
			static EXTRA_SCO_AUDIO_STATE: string;
			/**
			 * Extra for intent #ACTION_SCO_AUDIO_STATE_UPDATED containing the previous bluetooth SCO connection state.
			 */
			static EXTRA_SCO_AUDIO_PREVIOUS_STATE: string;
			/**
			 * Value for extra EXTRA_SCO_AUDIO_STATE or EXTRA_SCO_AUDIO_PREVIOUS_STATE indicating that the SCO audio channel is not established
			 */
			static SCO_AUDIO_STATE_DISCONNECTED: number;
			/**
			 * Value for extra #EXTRA_SCO_AUDIO_STATE or #EXTRA_SCO_AUDIO_PREVIOUS_STATE indicating that the SCO audio channel is established
			 */
			static SCO_AUDIO_STATE_CONNECTED: number;
			/**
			 * Value for extra EXTRA_SCO_AUDIO_STATE or EXTRA_SCO_AUDIO_PREVIOUS_STATE indicating that the SCO audio channel is being established
			 */
			static SCO_AUDIO_STATE_CONNECTING: number;
			/**
			 * Value for extra EXTRA_SCO_AUDIO_STATE indicating that there was an error trying to obtain the state
			 */
			static SCO_AUDIO_STATE_ERROR: number;
			/**
			 * Invalid audio mode.
			 */
			static MODE_INVALID: number;
			/**
			 * Current audio mode. Used to apply audio routing to current mode.
			 */
			static MODE_CURRENT: number;
			/**
			 * Normal audio mode: not ringing and no call established.
			 */
			static MODE_NORMAL: number;
			/**
			 * Ringing audio mode. An incoming is being signaled.
			 */
			static MODE_RINGTONE: number;
			/**
			 * In call audio mode. A telephony call is established.
			 */
			static MODE_IN_CALL: number;
			/**
			 * In communication audio mode. An audio/video chat or VoIP call is established.
			 */
			static MODE_IN_COMMUNICATION: number;
			/**
			 * Routing audio output to earpiece Do not set audio routing directly, use setSpeakerphoneOn(), setBluetoothScoOn() methods instead.
			 */
			static ROUTE_EARPIECE: number;
			/**
			 * Routing audio output to speaker Do not set audio routing directly, use setSpeakerphoneOn(), setBluetoothScoOn() methods instead.
			 */
			static ROUTE_SPEAKER: number;
			/**
			 *  use #ROUTE_BLUETOOTH_SCO Do not set audio routing directly, use setSpeakerphoneOn(), setBluetoothScoOn() methods instead.
			 */
			static ROUTE_BLUETOOTH: number;
			/**
			 * Routing audio output to bluetooth SCO Do not set audio routing directly, use setSpeakerphoneOn(), setBluetoothScoOn() methods instead.
			 */
			static ROUTE_BLUETOOTH_SCO: number;
			/**
			 * Routing audio output to headset Do not set audio routing directly, use setSpeakerphoneOn(), setBluetoothScoOn() methods instead.
			 */
			static ROUTE_HEADSET: number;
			/**
			 * Routing audio output to bluetooth A2DP Do not set audio routing directly, use setSpeakerphoneOn(), setBluetoothScoOn() methods instead.
			 */
			static ROUTE_BLUETOOTH_A2DP: number;
			/**
			 * Used for mask parameter of #setRouting(int,int,int). Do not set audio routing directly, use setSpeakerphoneOn(), setBluetoothScoOn() methods instead.
			 */
			static ROUTE_ALL: number;
			/**
			 * Keyboard and direction pad click sound #playSoundEffect(int)
			 */
			static FX_KEY_CLICK: number;
			/**
			 * Focus has moved up #playSoundEffect(int)
			 */
			static FX_FOCUS_NAVIGATION_UP: number;
			/**
			 * Focus has moved down #playSoundEffect(int)
			 */
			static FX_FOCUS_NAVIGATION_DOWN: number;
			/**
			 * Focus has moved left #playSoundEffect(int)
			 */
			static FX_FOCUS_NAVIGATION_LEFT: number;
			/**
			 * Focus has moved right #playSoundEffect(int)
			 */
			static FX_FOCUS_NAVIGATION_RIGHT: number;
			/**
			 * IME standard keypress sound #playSoundEffect(int)
			 */
			static FX_KEYPRESS_STANDARD: number;
			/**
			 * IME spacebar keypress sound #playSoundEffect(int)
			 */
			static FX_KEYPRESS_SPACEBAR: number;
			/**
			 * IME delete keypress sound #playSoundEffect(int)
			 */
			static FX_KEYPRESS_DELETE: number;
			/**
			 * IME return_keypress sound #playSoundEffect(int)
			 */
			static FX_KEYPRESS_RETURN: number;
			/**
			 * Used to indicate a gain of audio focus, or a request of audio focus, of unknown duration. OnAudioFocusChangeListener#onAudioFocusChange(int) #requestAudioFocus(OnAudioFocusChangeListener, int, int)
			 */
			static AUDIOFOCUS_GAIN: number;
			/**
			 * Used to indicate a temporary gain or request of audio focus, anticipated to last a short amount of time. Examples of temporary changes are the playback of driving directions, or an event notification. OnAudioFocusChangeListener#onAudioFocusChange(int) #requestAudioFocus(OnAudioFocusChangeListener, int, int)
			 */
			static AUDIOFOCUS_GAIN_TRANSIENT: number;
			/**
			 * Used to indicate a temporary request of audio focus, anticipated to last a short amount of time, and where it is acceptable for other audio applications to keep playing after having lowered their output level (also referred to as "ducking"). Examples of temporary changes are the playback of driving directions where playback of music in the background is acceptable. OnAudioFocusChangeListener#onAudioFocusChange(int) #requestAudioFocus(OnAudioFocusChangeListener, int, int)
			 */
			static AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK: number;
			/**
			 * Used to indicate a loss of audio focus of unknown duration. OnAudioFocusChangeListener#onAudioFocusChange(int)
			 */
			static AUDIOFOCUS_LOSS: number;
			/**
			 * Used to indicate a transient loss of audio focus. OnAudioFocusChangeListener#onAudioFocusChange(int)
			 */
			static AUDIOFOCUS_LOSS_TRANSIENT: number;
			/**
			 * Used to indicate a transient loss of audio focus where the loser of the audio focus can lower its output volume if it wants to continue playing (also referred to as "ducking"), as the new focus owner doesn't require others to be silent. OnAudioFocusChangeListener#onAudioFocusChange(int)
			 */
			static AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK: number;
			/**
			 * A failed focus change request.
			 */
			static AUDIOFOCUS_REQUEST_FAILED: number;
			/**
			 * A successful focus change request.
			 */
			static AUDIOFOCUS_REQUEST_GRANTED: number;
			/**
			 * Used as a key for #getProperty to request the native or optimal output sample rate for this device's primary output stream, in decimal Hz.
			 */
			static PROPERTY_OUTPUT_SAMPLE_RATE: string;
			/**
			 * Used as a key for #getProperty to request the native or optimal output buffer size for this device's primary output stream, in decimal PCM frames.
			 */
			static PROPERTY_OUTPUT_FRAMES_PER_BUFFER: string;
			static class: java.lang.Class<android.media.AudioManager>;
			/**
			 * Adjusts the volume of a particular stream by one step in a direction.
			 * @param streamType The stream type to adjust. One of {@link #STREAM_VOICE_CALL},
			 * @param direction The direction to adjust the volume. One of
			 * @param flags One or more flags.
			 */
			public adjustStreamVolume(streamType: number, direction: number, flags: number): void;
			/**
			 * Adjusts the volume of the most relevant stream. For example, if a call is active, it will have the highest priority regardless of if the in-call screen is showing. Another example, if music is playing in the background and a call is not active, the music stream will be adjusted.
			 * @param direction The direction to adjust the volume. One of
			 * @param flags One or more flags.
			 */
			public adjustVolume(direction: number, flags: number): void;
			/**
			 * Adjusts the volume of the most relevant stream, or the given fallback stream.
			 * @param direction The direction to adjust the volume. One of
			 * @param suggestedStreamType The stream type that will be used if there
			 * @param flags One or more flags.
			 */
			public adjustSuggestedStreamVolume(direction: number, suggestedStreamType: number, flags: number): void;
			/**
			 * Returns the current ringtone mode.
			 */
			public getRingerMode(): number;
			/**
			 * Returns the maximum volume index for a particular stream.
			 * @param streamType The stream type whose maximum volume index is returned.
			 */
			public getStreamMaxVolume(streamType: number): number;
			/**
			 * Returns the current volume index for a particular stream.
			 * @param streamType The stream type whose volume index is returned.
			 */
			public getStreamVolume(streamType: number): number;
			/**
			 * Sets the ringer mode.
			 * @param ringerMode The ringer mode, one of {@link #RINGER_MODE_NORMAL},
			 */
			public setRingerMode(ringerMode: number): void;
			/**
			 * Sets the volume index for a particular stream.
			 * @param streamType The stream whose volume index should be set.
			 * @param index The volume index to set. See
			 * @param flags One or more flags.
			 */
			public setStreamVolume(streamType: number, index: number, flags: number): void;
			/**
			 * Solo or unsolo a particular stream. All other streams are muted.
			 * @param streamType The stream to be soloed/unsoloed.
			 * @param state The required solo state: true for solo ON, false for solo OFF
			 */
			public setStreamSolo(streamType: number, state: boolean): void;
			/**
			 * Mute or unmute an audio stream.
			 * @param streamType The stream to be muted/unmuted.
			 * @param state The required mute state: true for mute ON, false for mute OFF
			 */
			public setStreamMute(streamType: number, state: boolean): void;
			/**
			 * Returns whether a particular type should vibrate according to user settings and the current ringer mode.
			 * @param vibrateType The type of vibrate. One of
			 */
			public shouldVibrate(vibrateType: number): boolean;
			/**
			 * Returns whether the user's vibrate setting for a vibrate type.
			 * @param vibrateType The type of vibrate. One of
			 */
			public getVibrateSetting(vibrateType: number): number;
			/**
			 * Sets the setting for when the vibrate type should vibrate.
			 * @param vibrateType The type of vibrate. One of
			 * @param vibrateSetting The vibrate setting, one of
			 */
			public setVibrateSetting(vibrateType: number, vibrateSetting: number): void;
			/**
			 * Sets the speakerphone on or off.
			 * @param on set <var>true</var> to turn on speakerphone;
			 */
			public setSpeakerphoneOn(on: boolean): void;
			/**
			 * Checks whether the speakerphone is on or off.
			 */
			public isSpeakerphoneOn(): boolean;
			/**
			 * Indicates if current platform supports use of SCO for off call use cases. Application wanted to use bluetooth SCO audio when the phone is not in call must first call this method to make sure that the platform supports this feature.
			 */
			public isBluetoothScoAvailableOffCall(): boolean;
			/**
			 * Start bluetooth SCO audio connection.
			 */
			public startBluetoothSco(): void;
			/**
			 * Stop bluetooth SCO audio connection.
			 */
			public stopBluetoothSco(): void;
			/**
			 * Request use of Bluetooth SCO headset for communications.
			 * @param on set <var>true</var> to use bluetooth SCO for communications;
			 */
			public setBluetoothScoOn(on: boolean): void;
			/**
			 * Checks whether communications use Bluetooth SCO.
			 */
			public isBluetoothScoOn(): boolean;
			/**
			 * @param on set <var>true</var> to route A2DP audio to/from Bluetooth
			 */
			public setBluetoothA2dpOn(on: boolean): void;
			/**
			 * Checks whether A2DP audio routing to the Bluetooth headset is on or off.
			 */
			public isBluetoothA2dpOn(): boolean;
			/**
			 * Sets audio routing to the wired headset on or off.
			 * @param on set <var>true</var> to route audio to/from wired
			 */
			public setWiredHeadsetOn(on: boolean): void;
			/**
			 * Checks whether a wired headset is connected or not.
			 */
			public isWiredHeadsetOn(): boolean;
			/**
			 * Sets the microphone mute on or off.
			 * @param on set <var>true</var> to mute the microphone;
			 */
			public setMicrophoneMute(on: boolean): void;
			/**
			 * Checks whether the microphone mute is on or off.
			 */
			public isMicrophoneMute(): boolean;
			/**
			 * Sets the audio mode.
			 * @param mode the requested audio mode ({@link #MODE_NORMAL}, {@link #MODE_RINGTONE},
			 */
			public setMode(mode: number): void;
			/**
			 * Returns the current audio mode.
			 */
			public getMode(): number;
			/**
			 * Sets the audio routing for a specified mode
			 * @param mode audio mode to change route. E.g., MODE_RINGTONE.
			 * @param routes bit vector of routes requested, created from one or
			 * @param mask bit vector of routes to change, created from one or more of
			 */
			public setRouting(mode: number, routes: number, mask: number): void;
			/**
			 * Returns the current audio routing bit vector for a specified mode.
			 * @param mode audio mode to get route (e.g., MODE_RINGTONE)
			 */
			public getRouting(mode: number): number;
			/**
			 * Checks whether any music is active.
			 */
			public isMusicActive(): boolean;
			/**
			 * Sets a variable number of parameter values to audio hardware.
			 * @param keyValuePairs list of parameters key value pairs in the form:
			 */
			public setParameters(keyValuePairs: string): void;
			/**
			 * Sets a varaible number of parameter values to audio hardware.
			 * @param keys list of parameters
			 */
			public getParameters(keys: string): string;
			/**
			 * Plays a sound effect (Key clicks, lid open/close...)
			 * @param effectType The type of sound effect. One of
			 */
			public playSoundEffect(effectType: number): void;
			/**
			 * Plays a sound effect (Key clicks, lid open/close...)
			 * @param effectType The type of sound effect. One of
			 * @param volume Sound effect volume.
			 */
			public playSoundEffect(effectType: number, volume: number): void;
			/**
			 * Load Sound effects. This method must be called when sound effects are enabled.
			 */
			public loadSoundEffects(): void;
			/**
			 * Unload Sound effects. This method can be called to free some memory when sound effects are disabled.
			 */
			public unloadSoundEffects(): void;
			/**
			 * Request audio focus. Send a request to obtain the audio focus
			 * @param l the listener to be notified of audio focus changes
			 * @param streamType the main audio stream type affected by the focus request
			 * @param durationHint use {@link #AUDIOFOCUS_GAIN_TRANSIENT} to indicate this focus request
			 */
			public requestAudioFocus(l: android.media.AudioManager.IOnAudioFocusChangeListener, streamType: number, durationHint: number): number;
			/**
			 * Abandon audio focus. Causes the previous focus owner, if any, to receive focus.
			 * @param l the listener with which focus was requested.
			 */
			public abandonAudioFocus(l: android.media.AudioManager.IOnAudioFocusChangeListener): number;
			/**
			 * Register a component to be the sole receiver of MEDIA_BUTTON intents.
			 * @param eventReceiver identifier of a {@link android.content.BroadcastReceiver}
			 */
			public registerMediaButtonEventReceiver(eventReceiver: android.content.ComponentName): void;
			/**
			 * Unregister the receiver of MEDIA_BUTTON intents.
			 * @param eventReceiver identifier of a {@link android.content.BroadcastReceiver}
			 */
			public unregisterMediaButtonEventReceiver(eventReceiver: android.content.ComponentName): void;
			/**
			 * Registers the remote control client for providing information to display on the remote controls.
			 * @param rcClient The remote control client from which remote controls will receive
			 */
			public registerRemoteControlClient(rcClient: android.media.RemoteControlClient): void;
			/**
			 * Unregisters the remote control client that was providing information to display on the remote controls.
			 * @param rcClient The remote control client to unregister.
			 */
			public unregisterRemoteControlClient(rcClient: android.media.RemoteControlClient): void;
			/**
			 * Returns the value of the property with the specified key.
			 * @param key One of the strings corresponding to a property key: either
			 */
			public getProperty(key: string): string;
		}
		export module AudioManager {
			/**
			 * Interface definition for a callback to be invoked when the audio focus of the system is updated.
			 */
			interface IOnAudioFocusChangeListener {
				/**
				 * Called on the listener to notify it the audio focus for this listener has been changed. The focusChange value indicates whether the focus was gained, whether the focus was lost, and whether that loss is transient, or whether the new focus holder will hold it for an unknown amount of time. When losing focus, listeners can use the focus change information to decide what behavior to adopt when losing focus. A music player could for instance elect to lower the volume of its music stream (duck) for transient focus losses, and pause otherwise.
				 * @param focusChange the type of focus change, one of {@link AudioManager#AUDIOFOCUS_GAIN},
				 */
				onAudioFocusChange(focusChange: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the audio focus of the system is updated.
			 */
			export class OnAudioFocusChangeListener implements android.media.AudioManager.IOnAudioFocusChangeListener {
				constructor(implementation: android.media.AudioManager.IOnAudioFocusChangeListener);
				/**
				 * Called on the listener to notify it the audio focus for this listener has been changed. The focusChange value indicates whether the focus was gained, whether the focus was lost, and whether that loss is transient, or whether the new focus holder will hold it for an unknown amount of time. When losing focus, listeners can use the focus change information to decide what behavior to adopt when losing focus. A music player could for instance elect to lower the volume of its music stream (duck) for transient focus losses, and pause otherwise.
				 * @param focusChange the type of focus change, one of {@link AudioManager#AUDIOFOCUS_GAIN},
				 */
				public onAudioFocusChange(focusChange: number): void;
			}
			/**
			 * Helper class to handle the forwarding of audio focus events to the appropriate listener
			 */
			export class FocusEventHandlerDelegate extends java.lang.Object {
				static class: java.lang.Class<android.media.AudioManager.FocusEventHandlerDelegate>;
				getHandler(): android.os.Handler;
			}
		}
		/**
		 * Identifies the faces of people in a android.graphics.Bitmap graphic object.
		 */
		export class FaceDetector extends java.lang.Object {
			/**
			 * Creates a FaceDetector, configured with the size of the images to be analysed and the maximum number of faces that can be detected. These parameters cannot be changed once the object is constructed. Note that the width of the image must be even. 
			 * @param width the width of the image
			 * @param height the height of the image
			 * @param maxFaces the maximum number of faces to identify
			 */
			constructor(width: number, height: number, maxFaces: number);
			static class: java.lang.Class<android.media.FaceDetector>;
			/**
			 * Finds all the faces found in a given android.graphics.Bitmap. The supplied array is populated with FaceDetector.Faces for each face found. The bitmap must be in 565 format (for now). 
			 * @param bitmap the {@link android.graphics.Bitmap} graphic to be analyzed
			 * @param faces an array in which to place all found
			 */
			public findFaces(bitmap: android.graphics.Bitmap, faces: native.Array<android.media.FaceDetector.Face>): number;
			protected finalize(): void;
		}
		export module FaceDetector {
			/**
			 * A Face contains all the information identifying the location of a face in a bitmap.
			 */
			export class Face extends java.lang.Object {
				/**
				 * The minimum confidence factor of good face recognition
				 */
				static CONFIDENCE_THRESHOLD: number;
				/**
				 * The x-axis Euler angle of a face.
				 */
				static EULER_X: number;
				/**
				 * The y-axis Euler angle of a face.
				 */
				static EULER_Y: number;
				/**
				 * The z-axis Euler angle of a face.
				 */
				static EULER_Z: number;
				static class: java.lang.Class<android.media.FaceDetector.Face>;
				public confidence(): number;
				/**
				 * Sets the position of the mid-point between the eyes.
				 * @param point the PointF coordinates (float values) of the
				 */
				public getMidPoint(point: android.graphics.PointF): void;
				/**
				 * Returns the distance between the eyes.
				 */
				public eyesDistance(): number;
				/**
				 * Returns the face's pose. That is, the rotations around either the X, Y or Z axis (the positions in 3-dimensional Euclidean space). 
				 * @param euler the Euler axis to retrieve an angle from
				 */
				public pose(euler: number): number;
			}
		}
		/**
		 * MediaCodec class can be used to access low-level media codec, i.e. encoder/decoder components.
		 */
		export class MediaCodec extends java.lang.Object {
			/**
			 * This indicates that the buffer marked as such contains the data for a sync frame.
			 */
			static BUFFER_FLAG_SYNC_FRAME: number;
			/**
			 * This indicated that the buffer marked as such contains codec initialization / codec specific data instead of media data.
			 */
			static BUFFER_FLAG_CODEC_CONFIG: number;
			/**
			 * This signals the end of stream, i.e. no buffers will be available after this, unless of course, #flush follows.
			 */
			static BUFFER_FLAG_END_OF_STREAM: number;
			/**
			 * If this codec is to be used as an encoder, pass this flag.
			 */
			static CONFIGURE_FLAG_ENCODE: number;
			static CRYPTO_MODE_UNENCRYPTED: number;
			static CRYPTO_MODE_AES_CTR: number;
			/**
			 * If a non-negative timeout had been specified in the call to #dequeueOutputBuffer, indicates that the call timed out.
			 */
			static INFO_TRY_AGAIN_LATER: number;
			/**
			 * The output format has changed, subsequent data will follow the new format. #getOutputFormat returns the new format.
			 */
			static INFO_OUTPUT_FORMAT_CHANGED: number;
			/**
			 * The output buffers have changed, the client must refer to the new set of output buffers returned by #getOutputBuffers from this point on.
			 */
			static INFO_OUTPUT_BUFFERS_CHANGED: number;
			/**
			 * The content is scaled to the surface dimensions
			 */
			static VIDEO_SCALING_MODE_SCALE_TO_FIT: number;
			/**
			 * The content is scaled, maintaining its aspect ratio, the whole surface area is used, content may be cropped
			 */
			static VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING: number;
			static class: java.lang.Class<android.media.MediaCodec>;
			/**
			 * Instantiate a decoder supporting input data of the given mime type.
			 * @param type The mime type of the input data.
			 */
			public static createDecoderByType(type: string): android.media.MediaCodec;
			/**
			 * Instantiate an encoder supporting output data of the given mime type.
			 * @param type The desired mime type of the output data.
			 */
			public static createEncoderByType(type: string): android.media.MediaCodec;
			/**
			 * If you know the exact name of the component you want to instantiate use this method to instantiate it. Use with caution. Likely to be used with information obtained from android.media.MediaCodecList
			 * @param name The name of the codec to be instantiated.
			 */
			public static createByCodecName(name: string): android.media.MediaCodec;
			protected finalize(): void;
			/**
			 * Make sure you call this when you're done to free up any opened component instance instead of relying on the garbage collector to do this for you at some point in the future.
			 */
			public release(): void;
			/**
			 * Configures a component.
			 * @param format The format of the input data (decoder) or the desired
			 * @param surface Specify a surface on which to render the output of this
			 * @param crypto Specify a crypto object to facilitate secure decryption
			 * @param flags Specify {@link #CONFIGURE_FLAG_ENCODE} to configure the
			 */
			public configure(format: android.media.MediaFormat, surface: android.view.Surface, crypto: android.media.MediaCrypto, flags: number): void;
			/**
			 * After successfully configuring the component, call start. On return you can query the component for its input/output buffers.
			 */
			public start(): void;
			/**
			 * Finish the decode/encode session, note that the codec instance remains active and ready to be #started again. To ensure that it is available to other client call #release and don't just rely on garbage collection to eventually do this for you.
			 */
			public stop(): void;
			/**
			 * Flush both input and output ports of the component, all indices previously returned in calls to #dequeueInputBuffer and #dequeueOutputBuffer become invalid.
			 */
			public flush(): void;
			/**
			 * After filling a range of the input buffer at the specified index submit it to the component.
			 * @param index The index of a client-owned input buffer previously returned
			 * @param offset The byte offset into the input buffer at which the data starts.
			 * @param size The number of bytes of valid input data.
			 * @param presentationTimeUs The time at which this buffer should be rendered.
			 * @param flags A bitmask of flags {@link #BUFFER_FLAG_SYNC_FRAME},
			 */
			public queueInputBuffer(index: number, offset: number, size: number, presentationTimeUs: number, flags: number): void;
			/**
			 * Similar to #queueInputBuffer but submits a buffer that is potentially encrypted.
			 * @param index The index of a client-owned input buffer previously returned
			 * @param offset The byte offset into the input buffer at which the data starts.
			 * @param info Metadata required to facilitate decryption, the object can be
			 * @param presentationTimeUs The time at which this buffer should be rendered.
			 * @param flags A bitmask of flags {@link #BUFFER_FLAG_SYNC_FRAME},
			 */
			public queueSecureInputBuffer(index: number, offset: number, info: android.media.MediaCodec.CryptoInfo, presentationTimeUs: number, flags: number): void;
			/**
			 * Returns the index of an input buffer to be filled with valid data or -1 if no such buffer is currently available. This method will return immediately if timeoutUs == 0, wait indefinitely for the availability of an input buffer if timeoutUs &lt; 0 or wait up to "timeoutUs" microseconds if timeoutUs &gt; 0.
			 * @param timeoutUs The timeout in microseconds, a negative timeout indicates "infinite".
			 */
			public dequeueInputBuffer(timeoutUs: number): number;
			/**
			 * Dequeue an output buffer, block at most "timeoutUs" microseconds. Returns the index of an output buffer that has been successfully decoded or one of the INFO_* constants below.
			 * @param info Will be filled with buffer meta data.
			 * @param timeoutUs The timeout in microseconds, a negative timeout indicates "infinite".
			 */
			public dequeueOutputBuffer(info: android.media.MediaCodec.BufferInfo, timeoutUs: number): number;
			/**
			 * If you are done with a buffer, use this call to return the buffer to the codec. If you previously specified a surface when configuring this video decoder you can optionally render the buffer.
			 * @param index The index of a client-owned output buffer previously returned
			 * @param render If a valid surface was specified when configuring the codec,
			 */
			public releaseOutputBuffer(index: number, render: boolean): void;
			/**
			 * Call this after dequeueOutputBuffer signals a format change by returning #INFO_OUTPUT_FORMAT_CHANGED
			 */
			public getOutputFormat(): android.media.MediaFormat;
			/**
			 * Call this after start() returns.
			 */
			public getInputBuffers(): native.Array<java.nio.ByteBuffer>;
			/**
			 * Call this after start() returns and whenever dequeueOutputBuffer signals an output buffer change by returning #INFO_OUTPUT_BUFFERS_CHANGED
			 */
			public getOutputBuffers(): native.Array<java.nio.ByteBuffer>;
			/**
			 * If a surface has been specified in a previous call to #configure specifies the scaling mode to use. The default is "scale to fit".
			 */
			public setVideoScalingMode(mode: number): void;
		}
		export module MediaCodec {
			/**
			 * Per buffer metadata includes an offset and size specifying the range of valid data in the associated codec buffer.
			 */
			export class BufferInfo extends java.lang.Object {
				constructor();
				offset: number;
				size: number;
				presentationTimeUs: number;
				flags: number;
				static class: java.lang.Class<android.media.MediaCodec.BufferInfo>;
				public set(newOffset: number, newSize: number, newTimeUs: number, newFlags: number): void;
			}
			/**
			 * Metadata describing the structure of a (at least partially) encrypted input sample. A buffer's data is considered to be partitioned into "subSamples", each subSample starts with a (potentially empty) run of plain, unencrypted bytes followed by a (also potentially empty) run of encrypted bytes. numBytesOfClearData can be null to indicate that all data is encrypted. This information encapsulates per-sample metadata as outlined in ISO/IEC FDIS 23001-7:2011 "Common encryption in ISO base media file format files".
			 */
			export class CryptoInfo extends java.lang.Object {
				constructor();
				/**
				 * The number of subSamples that make up the buffer's contents.
				 */
				numSubSamples: number;
				/**
				 * The number of leading unencrypted bytes in each subSample.
				 */
				numBytesOfClearData: native.Array<number>;
				/**
				 * The number of trailing encrypted bytes in each subSample.
				 */
				numBytesOfEncryptedData: native.Array<number>;
				/**
				 * A 16-byte opaque key
				 */
				key: native.Array<number>;
				/**
				 * A 16-byte initialization vector
				 */
				iv: native.Array<number>;
				/**
				 * The type of encryption that has been applied, see #CRYPTO_MODE_UNENCRYPTED and #CRYPTO_MODE_AES_CTR.
				 */
				mode: number;
				static class: java.lang.Class<android.media.MediaCodec.CryptoInfo>;
				public set(newNumSubSamples: number, newNumBytesOfClearData: native.Array<number>, newNumBytesOfEncryptedData: native.Array<number>, newKey: native.Array<number>, newIV: native.Array<number>, newMode: number): void;
			}
			export class CryptoException extends java.lang.RuntimeException {
				constructor(errorCode: number, detailMessage: string);
				static class: java.lang.Class<android.media.MediaCodec.CryptoException>;
				public getErrorCode(): number;
			}
		}
		export class MediaCodecInfo extends java.lang.Object {
			static class: java.lang.Class<android.media.MediaCodecInfo>;
			/**
			 * Retrieve the codec name.
			 */
			public getName(): string;
			/**
			 * Query if the codec is an encoder.
			 */
			public isEncoder(): boolean;
			/**
			 * Query the media types supported by the codec.
			 */
			public getSupportedTypes(): native.Array<string>;
			public getCapabilitiesForType(type: string): android.media.MediaCodecInfo.CodecCapabilities;
		}
		export module MediaCodecInfo {
			export class CodecProfileLevel extends java.lang.Object {
				constructor();
				static AVCProfileBaseline: number;
				static AVCProfileMain: number;
				static AVCProfileExtended: number;
				static AVCProfileHigh: number;
				static AVCProfileHigh10: number;
				static AVCProfileHigh422: number;
				static AVCProfileHigh444: number;
				static AVCLevel1: number;
				static AVCLevel1b: number;
				static AVCLevel11: number;
				static AVCLevel12: number;
				static AVCLevel13: number;
				static AVCLevel2: number;
				static AVCLevel21: number;
				static AVCLevel22: number;
				static AVCLevel3: number;
				static AVCLevel31: number;
				static AVCLevel32: number;
				static AVCLevel4: number;
				static AVCLevel41: number;
				static AVCLevel42: number;
				static AVCLevel5: number;
				static AVCLevel51: number;
				static H263ProfileBaseline: number;
				static H263ProfileH320Coding: number;
				static H263ProfileBackwardCompatible: number;
				static H263ProfileISWV2: number;
				static H263ProfileISWV3: number;
				static H263ProfileHighCompression: number;
				static H263ProfileInternet: number;
				static H263ProfileInterlace: number;
				static H263ProfileHighLatency: number;
				static H263Level10: number;
				static H263Level20: number;
				static H263Level30: number;
				static H263Level40: number;
				static H263Level45: number;
				static H263Level50: number;
				static H263Level60: number;
				static H263Level70: number;
				static MPEG4ProfileSimple: number;
				static MPEG4ProfileSimpleScalable: number;
				static MPEG4ProfileCore: number;
				static MPEG4ProfileMain: number;
				static MPEG4ProfileNbit: number;
				static MPEG4ProfileScalableTexture: number;
				static MPEG4ProfileSimpleFace: number;
				static MPEG4ProfileSimpleFBA: number;
				static MPEG4ProfileBasicAnimated: number;
				static MPEG4ProfileHybrid: number;
				static MPEG4ProfileAdvancedRealTime: number;
				static MPEG4ProfileCoreScalable: number;
				static MPEG4ProfileAdvancedCoding: number;
				static MPEG4ProfileAdvancedCore: number;
				static MPEG4ProfileAdvancedScalable: number;
				static MPEG4ProfileAdvancedSimple: number;
				static MPEG4Level0: number;
				static MPEG4Level0b: number;
				static MPEG4Level1: number;
				static MPEG4Level2: number;
				static MPEG4Level3: number;
				static MPEG4Level4: number;
				static MPEG4Level4a: number;
				static MPEG4Level5: number;
				static AACObjectMain: number;
				static AACObjectLC: number;
				static AACObjectSSR: number;
				static AACObjectLTP: number;
				static AACObjectHE: number;
				static AACObjectScalable: number;
				static AACObjectERLC: number;
				static AACObjectLD: number;
				static AACObjectHE_PS: number;
				static AACObjectELD: number;
				/**
				 * Defined in the OpenMAX IL specs, depending on the type of media this can be OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE, or OMX_VIDEO_MPEG4PROFILETYPE.
				 */
				profile: number;
				/**
				 * Defined in the OpenMAX IL specs, depending on the type of media this can be OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE or OMX_VIDEO_MPEG4LEVELTYPE.
				 */
				level: number;
				static class: java.lang.Class<android.media.MediaCodecInfo.CodecProfileLevel>;
			}
			export class CodecCapabilities extends java.lang.Object {
				constructor();
				profileLevels: native.Array<android.media.MediaCodecInfo.CodecProfileLevel>;
				static COLOR_FormatMonochrome: number;
				static COLOR_Format8bitRGB332: number;
				static COLOR_Format12bitRGB444: number;
				static COLOR_Format16bitARGB4444: number;
				static COLOR_Format16bitARGB1555: number;
				static COLOR_Format16bitRGB565: number;
				static COLOR_Format16bitBGR565: number;
				static COLOR_Format18bitRGB666: number;
				static COLOR_Format18bitARGB1665: number;
				static COLOR_Format19bitARGB1666: number;
				static COLOR_Format24bitRGB888: number;
				static COLOR_Format24bitBGR888: number;
				static COLOR_Format24bitARGB1887: number;
				static COLOR_Format25bitARGB1888: number;
				static COLOR_Format32bitBGRA8888: number;
				static COLOR_Format32bitARGB8888: number;
				static COLOR_FormatYUV411Planar: number;
				static COLOR_FormatYUV411PackedPlanar: number;
				static COLOR_FormatYUV420Planar: number;
				static COLOR_FormatYUV420PackedPlanar: number;
				static COLOR_FormatYUV420SemiPlanar: number;
				static COLOR_FormatYUV422Planar: number;
				static COLOR_FormatYUV422PackedPlanar: number;
				static COLOR_FormatYUV422SemiPlanar: number;
				static COLOR_FormatYCbYCr: number;
				static COLOR_FormatYCrYCb: number;
				static COLOR_FormatCbYCrY: number;
				static COLOR_FormatCrYCbY: number;
				static COLOR_FormatYUV444Interleaved: number;
				static COLOR_FormatRawBayer8bit: number;
				static COLOR_FormatRawBayer10bit: number;
				static COLOR_FormatRawBayer8bitcompressed: number;
				static COLOR_FormatL2: number;
				static COLOR_FormatL4: number;
				static COLOR_FormatL8: number;
				static COLOR_FormatL16: number;
				static COLOR_FormatL24: number;
				static COLOR_FormatL32: number;
				static COLOR_FormatYUV420PackedSemiPlanar: number;
				static COLOR_FormatYUV422PackedSemiPlanar: number;
				static COLOR_Format18BitBGR666: number;
				static COLOR_Format24BitARGB6666: number;
				static COLOR_Format24BitABGR6666: number;
				static COLOR_TI_FormatYUV420PackedSemiPlanar: number;
				static COLOR_QCOM_FormatYUV420SemiPlanar: number;
				/**
				 * Defined in the OpenMAX IL specs, color format values are drawn from OMX_COLOR_FORMATTYPE.
				 */
				colorFormats: native.Array<number>;
				static class: java.lang.Class<android.media.MediaCodecInfo.CodecCapabilities>;
			}
		}
		/**
		 * The AudioFormat class is used to access a number of audio format and channel configuration constants. They are for instance used in AudioTrack and AudioRecord. 
		 */
		export class AudioFormat extends java.lang.Object {
			constructor();
			/**
			 * Invalid audio data format
			 */
			static ENCODING_INVALID: number;
			/**
			 * Default audio data format
			 */
			static ENCODING_DEFAULT: number;
			/**
			 * Audio data format: PCM 16 bit per sample. Guaranteed to be supported by devices.
			 */
			static ENCODING_PCM_16BIT: number;
			/**
			 * Audio data format: PCM 8 bit per sample. Not guaranteed to be supported by devices.
			 */
			static ENCODING_PCM_8BIT: number;
			/**
			 *  use CHANNEL_INVALID instead
			 */
			static CHANNEL_CONFIGURATION_INVALID: number;
			/**
			 *  use CHANNEL_OUT_DEFAULT or CHANNEL_IN_DEFAULT instead
			 */
			static CHANNEL_CONFIGURATION_DEFAULT: number;
			/**
			 *  use CHANNEL_OUT_MONO or CHANNEL_IN_MONO instead
			 */
			static CHANNEL_CONFIGURATION_MONO: number;
			/**
			 *  use CHANNEL_OUT_STEREO or CHANNEL_IN_STEREO instead
			 */
			static CHANNEL_CONFIGURATION_STEREO: number;
			/**
			 * Invalid audio channel mask
			 */
			static CHANNEL_INVALID: number;
			/**
			 * Default audio channel mask
			 */
			static CHANNEL_OUT_DEFAULT: number;
			static CHANNEL_OUT_FRONT_LEFT: number;
			static CHANNEL_OUT_FRONT_RIGHT: number;
			static CHANNEL_OUT_FRONT_CENTER: number;
			static CHANNEL_OUT_LOW_FREQUENCY: number;
			static CHANNEL_OUT_BACK_LEFT: number;
			static CHANNEL_OUT_BACK_RIGHT: number;
			static CHANNEL_OUT_FRONT_LEFT_OF_CENTER: number;
			static CHANNEL_OUT_FRONT_RIGHT_OF_CENTER: number;
			static CHANNEL_OUT_BACK_CENTER: number;
			static CHANNEL_OUT_MONO: number;
			static CHANNEL_OUT_STEREO: number;
			static CHANNEL_OUT_QUAD: number;
			static CHANNEL_OUT_SURROUND: number;
			static CHANNEL_OUT_5POINT1: number;
			static CHANNEL_OUT_7POINT1: number;
			static CHANNEL_IN_DEFAULT: number;
			static CHANNEL_IN_LEFT: number;
			static CHANNEL_IN_RIGHT: number;
			static CHANNEL_IN_FRONT: number;
			static CHANNEL_IN_BACK: number;
			static CHANNEL_IN_LEFT_PROCESSED: number;
			static CHANNEL_IN_RIGHT_PROCESSED: number;
			static CHANNEL_IN_FRONT_PROCESSED: number;
			static CHANNEL_IN_BACK_PROCESSED: number;
			static CHANNEL_IN_PRESSURE: number;
			static CHANNEL_IN_X_AXIS: number;
			static CHANNEL_IN_Y_AXIS: number;
			static CHANNEL_IN_Z_AXIS: number;
			static CHANNEL_IN_VOICE_UPLINK: number;
			static CHANNEL_IN_VOICE_DNLINK: number;
			static CHANNEL_IN_MONO: number;
			static CHANNEL_IN_STEREO: number;
			static class: java.lang.Class<android.media.AudioFormat>;
		}
		/**
		 * The CameraProfile class is used to retrieve the pre-defined still image capture (jpeg) quality levels (0-100) used for low, medium, and high quality settings in the Camera application.
		 */
		export class CameraProfile extends java.lang.Object {
			constructor();
			/**
			 * Define three quality levels for JPEG image encoding.
			 */
			static QUALITY_LOW: number;
			static QUALITY_MEDIUM: number;
			static QUALITY_HIGH: number;
			static class: java.lang.Class<android.media.CameraProfile>;
			/**
			 * Returns a pre-defined still image capture (jpeg) quality level used for the given quality level in the Camera application for the first back-facing camera on the device. If the device has no back-facing camera, this returns 0.
			 * @param quality The target quality level
			 */
			public static getJpegEncodingQualityParameter(quality: number): number;
			/**
			 * Returns a pre-defined still image capture (jpeg) quality level used for the given quality level in the Camera application for the specified camera.
			 * @param cameraId The id of the camera
			 * @param quality The target quality level
			 */
			public static getJpegEncodingQualityParameter(cameraId: number, quality: number): number;
		}
		/**
		 * This is a class for reading and writing Exif tags in a JPEG file.
		 */
		export class ExifInterface extends java.lang.Object {
			/**
			 * Reads Exif tags from the specified JPEG file.
			 */
			constructor(filename: string);
			/**
			 * Type is int.
			 */
			static TAG_ORIENTATION: string;
			/**
			 * Type is String.
			 */
			static TAG_DATETIME: string;
			/**
			 * Type is String.
			 */
			static TAG_MAKE: string;
			/**
			 * Type is String.
			 */
			static TAG_MODEL: string;
			/**
			 * Type is int.
			 */
			static TAG_FLASH: string;
			/**
			 * Type is int.
			 */
			static TAG_IMAGE_WIDTH: string;
			/**
			 * Type is int.
			 */
			static TAG_IMAGE_LENGTH: string;
			/**
			 * String. Format is "num1/denom1,num2/denom2,num3/denom3".
			 */
			static TAG_GPS_LATITUDE: string;
			/**
			 * String. Format is "num1/denom1,num2/denom2,num3/denom3".
			 */
			static TAG_GPS_LONGITUDE: string;
			/**
			 * Type is String.
			 */
			static TAG_GPS_LATITUDE_REF: string;
			/**
			 * Type is String.
			 */
			static TAG_GPS_LONGITUDE_REF: string;
			/**
			 * Type is String.
			 */
			static TAG_EXPOSURE_TIME: string;
			/**
			 * Type is String.
			 */
			static TAG_APERTURE: string;
			/**
			 * Type is String.
			 */
			static TAG_ISO: string;
			/**
			 * The altitude (in meters) based on the reference in TAG_GPS_ALTITUDE_REF. Type is rational.
			 */
			static TAG_GPS_ALTITUDE: string;
			/**
			 * 0 if the altitude is above sea level. 1 if the altitude is below sea level. Type is int.
			 */
			static TAG_GPS_ALTITUDE_REF: string;
			/**
			 * Type is String.
			 */
			static TAG_GPS_TIMESTAMP: string;
			/**
			 * Type is String.
			 */
			static TAG_GPS_DATESTAMP: string;
			/**
			 * Type is int.
			 */
			static TAG_WHITE_BALANCE: string;
			/**
			 * Type is rational.
			 */
			static TAG_FOCAL_LENGTH: string;
			/**
			 * Type is String. Name of GPS processing method used for location finding.
			 */
			static TAG_GPS_PROCESSING_METHOD: string;
			static ORIENTATION_UNDEFINED: number;
			static ORIENTATION_NORMAL: number;
			static ORIENTATION_FLIP_HORIZONTAL: number;
			static ORIENTATION_ROTATE_180: number;
			static ORIENTATION_FLIP_VERTICAL: number;
			static ORIENTATION_TRANSPOSE: number;
			static ORIENTATION_ROTATE_90: number;
			static ORIENTATION_TRANSVERSE: number;
			static ORIENTATION_ROTATE_270: number;
			static WHITEBALANCE_AUTO: number;
			static WHITEBALANCE_MANUAL: number;
			static class: java.lang.Class<android.media.ExifInterface>;
			/**
			 * Returns the value of the specified tag or null if there is no such tag in the JPEG file.
			 * @param tag the name of the tag.
			 */
			public getAttribute(tag: string): string;
			/**
			 * Returns the integer value of the specified tag. If there is no such tag in the JPEG file or the value cannot be parsed as integer, return <var>defaultValue</var>.
			 * @param tag the name of the tag.
			 * @param defaultValue the value to return if the tag is not available.
			 */
			public getAttributeInt(tag: string, defaultValue: number): number;
			/**
			 * Returns the double value of the specified rational tag. If there is no such tag in the JPEG file or the value cannot be parsed as double, return <var>defaultValue</var>.
			 * @param tag the name of the tag.
			 * @param defaultValue the value to return if the tag is not available.
			 */
			public getAttributeDouble(tag: string, defaultValue: number): any;
			/**
			 * Set the value of the specified tag.
			 * @param tag the name of the tag.
			 * @param value the value of the tag.
			 */
			public setAttribute(tag: string, value: string): void;
			/**
			 * Save the tag data into the JPEG file. This is expensive because it involves copying all the JPG data from one file to another and deleting the old file and renaming the other. It's best to use #setAttribute(String,String) to set all attributes to write and make a single call rather than multiple calls for each attribute.
			 */
			public saveAttributes(): void;
			/**
			 * Returns true if the JPEG file has a thumbnail.
			 */
			public hasThumbnail(): boolean;
			/**
			 * Returns the thumbnail inside the JPEG file, or null if there is no thumbnail. The returned data is in JPEG format and can be decoded using android.graphics.BitmapFactory#decodeByteArray(byte[],int,int)
			 */
			public getThumbnail(): native.Array<number>;
			/**
			 * Stores the latitude and longitude value in a float array. The first element is the latitude, and the second element is the longitude. Returns false if the Exif tags are not available.
			 */
			public getLatLong(output: native.Array<number>): boolean;
			/**
			 * Return the altitude in meters. If the exif tag does not exist, return <var>defaultValue</var>.
			 * @param defaultValue the value to return if the tag is not available.
			 */
			public getAltitude(defaultValue: number): any;
		}
		/**
		 * Ringtone provides a quick method for playing a ringtone, notification, or other similar types of sounds.
		 */
		export class Ringtone extends java.lang.Object {
			static class: java.lang.Class<android.media.Ringtone>;
			/**
			 * Sets the stream type where this ringtone will be played. 
			 * @param streamType The stream, see {@link AudioManager}.
			 */
			public setStreamType(streamType: number): void;
			/**
			 * Gets the stream type where this ringtone will be played. 
			 */
			public getStreamType(): number;
			/**
			 * Returns a human-presentable title for ringtone. Looks in media and DRM content providers. If not in either, uses the filename 
			 * @param context A context used for querying.
			 */
			public getTitle(context: android.content.Context): string;
			/**
			 * Plays the ringtone.
			 */
			public play(): void;
			/**
			 * Stops a playing ringtone.
			 */
			public stop(): void;
			/**
			 * Whether this ringtone is currently playing. 
			 */
			public isPlaying(): boolean;
			setTitle(title: string): void;
		}
		/**
		 * MediaCodecList class can be used to enumerate available codecs, find a codec supporting a given format and query the capabilities of a given codec.
		 */
		export class MediaCodecList extends java.lang.Object {
			static class: java.lang.Class<android.media.MediaCodecList>;
			/**
			 * Count the number of available codecs.
			 */
			public static getCodecCount(): number;
			public static getCodecInfoAt(index: number): android.media.MediaCodecInfo;
			static getCodecName(index: number): string;
			static isEncoder(index: number): boolean;
			static getSupportedTypes(index: number): native.Array<string>;
			static getCodecCapabilities(index: number, type: string): android.media.MediaCodecInfo.CodecCapabilities;
		}
		/**
		 * JetPlayer provides access to JET content playback and control. 
		 */
		export class JetPlayer extends java.lang.Object {
			static class: java.lang.Class<android.media.JetPlayer>;
			NativeEventHandler: {
	new (jet: android.media.JetPlayer, looper: android.os.Looper): android.media.JetPlayer.NativeEventHandler;
};
			/**
			 * Factory method for the JetPlayer class.
			 */
			public static getJetPlayer(): android.media.JetPlayer;
			/**
			 * Cloning a JetPlayer instance is not supported. Calling clone() will generate an exception.
			 */
			public clone(): any;
			protected finalize(): void;
			/**
			 * Stops the current JET playback, and releases all associated native resources. The object can no longer be used and the reference should be set to null after a call to release().
			 */
			public release(): void;
			/**
			 * Returns the maximum number of simultaneous MIDI tracks supported by JetPlayer
			 */
			public static getMaxTracks(): number;
			/**
			 * Loads a .jet file from a given path.
			 * @param path the path to the .jet file, for instance "/sdcard/mygame/music.jet".
			 */
			public loadJetFile(path: string): boolean;
			/**
			 * Loads a .jet file from an asset file descriptor.
			 * @param afd the asset file descriptor.
			 */
			public loadJetFile(afd: android.content.res.AssetFileDescriptor): boolean;
			/**
			 * Closes the resource containing the JET content.
			 */
			public closeJetFile(): boolean;
			/**
			 * Starts playing the JET segment queue.
			 */
			public play(): boolean;
			/**
			 * Pauses the playback of the JET segment queue.
			 */
			public pause(): boolean;
			/**
			 * Queues the specified segment in the JET queue.
			 * @param segmentNum the identifier of the segment.
			 * @param libNum the index of the sound bank associated with the segment. Use -1 to indicate
			 * @param repeatCount the number of times the segment will be repeated. 0 means the segment will
			 * @param transpose the amount of pitch transposition. Set to 0 for normal playback.
			 * @param muteFlags a bitmask to specify which MIDI tracks will be muted during playback. Bit 0
			 * @param userID a value specified by the application that uniquely identifies the segment.
			 */
			public queueJetSegment(segmentNum: number, libNum: number, repeatCount: number, transpose: number, muteFlags: number, userID: number): boolean;
			/**
			 * Queues the specified segment in the JET queue.
			 * @param segmentNum the identifier of the segment.
			 * @param libNum the index of the soundbank associated with the segment. Use -1 to indicate that
			 * @param repeatCount the number of times the segment will be repeated. 0 means the segment will
			 * @param transpose the amount of pitch transposition. Set to 0 for normal playback.
			 * @param muteArray an array of booleans to specify which MIDI tracks will be muted during
			 * @param userID a value specified by the application that uniquely identifies the segment.
			 */
			public queueJetSegmentMuteArray(segmentNum: number, libNum: number, repeatCount: number, transpose: number, muteArray: native.Array<boolean>, userID: number): boolean;
			/**
			 * Modifies the mute flags.
			 * @param muteFlags a bitmask to specify which MIDI tracks are muted. Bit 0 affects track 0,
			 * @param sync if false, the new mute flags will be applied as soon as possible by the JET
			 */
			public setMuteFlags(muteFlags: number, sync: boolean): boolean;
			/**
			 * Modifies the mute flags for the current active segment.
			 * @param muteArray an array of booleans to specify which MIDI tracks are muted. The value at
			 * @param sync if false, the new mute flags will be applied as soon as possible by the JET
			 */
			public setMuteArray(muteArray: native.Array<boolean>, sync: boolean): boolean;
			/**
			 * Mutes or unmutes a single track.
			 * @param trackId the index of the track to mute.
			 * @param muteFlag set to true to mute, false to unmute.
			 * @param sync if false, the new mute flags will be applied as soon as possible by the JET
			 */
			public setMuteFlag(trackId: number, muteFlag: boolean, sync: boolean): boolean;
			/**
			 * Schedules the playback of a clip. This will automatically update the mute flags in sync with the JET Clip Marker (controller 103). The parameter clipID must be in the range of 0-63. After the call to triggerClip, when JET next encounters a controller event 103 with bits 0-5 of the value equal to clipID and bit 6 set to 1, it will automatically unmute the track containing the controller event. When JET encounters the complementary controller event 103 with bits 0-5 of the value equal to clipID and bit 6 set to 0, it will mute the track again.
			 * @param clipId the identifier of the clip to trigger.
			 */
			public triggerClip(clipId: number): boolean;
			/**
			 * Empties the segment queue, and clears all clips that are scheduled for playback.
			 */
			public clearQueue(): boolean;
			/**
			 * Sets the listener JetPlayer notifies when a JET event is generated by the rendering and playback engine. Notifications will be received in the same thread as the one in which the JetPlayer instance was created.
			 * @param listener 
			 */
			public setEventListener(listener: android.media.JetPlayer.IOnJetEventListener): void;
			/**
			 * Sets the listener JetPlayer notifies when a JET event is generated by the rendering and playback engine. Use this method to receive JET events in the Handler associated with another thread than the one in which you created the JetPlayer instance.
			 * @param listener 
			 * @param handler the Handler that will receive the event notification messages.
			 */
			public setEventListener(listener: android.media.JetPlayer.IOnJetEventListener, handler: android.os.Handler): void;
		}
		export module JetPlayer {
			/**
			 * Handles the notification when the JET engine generates an event.
			 */
			interface IOnJetEventListener {
				/**
				 * Callback for when the JET engine generates a new event. 
				 * @param player the JET player the event is coming from
				 * @param segment 8 bit unsigned value
				 * @param track 6 bit unsigned value
				 * @param channel 4 bit unsigned value
				 * @param controller 7 bit unsigned value
				 * @param value 7 bit unsigned value
				 */
				onJetEvent(player: android.media.JetPlayer, segment: number, track: number, channel: number, controller: number, value: number): void;
				/**
				 * Callback for when JET's currently playing segment's userID is updated. 
				 * @param player the JET player the status update is coming from
				 * @param userId the ID of the currently playing segment
				 * @param repeatCount the repetition count for the segment (0 means it plays once)
				 */
				onJetUserIdUpdate(player: android.media.JetPlayer, userId: number, repeatCount: number): void;
				/**
				 * Callback for when JET's number of queued segments is updated. 
				 * @param player the JET player the status update is coming from
				 * @param nbSegments the number of segments in the JET queue
				 */
				onJetNumQueuedSegmentUpdate(player: android.media.JetPlayer, nbSegments: number): void;
				/**
				 * Callback for when JET pause state is updated. 
				 * @param player the JET player the status update is coming from
				 * @param paused indicates whether JET is paused (1) or not (0)
				 */
				onJetPauseUpdate(player: android.media.JetPlayer, paused: number): void;
			}
			/**
			 * Handles the notification when the JET engine generates an event.
			 */
			export class OnJetEventListener implements android.media.JetPlayer.IOnJetEventListener {
				constructor(implementation: android.media.JetPlayer.IOnJetEventListener);
				/**
				 * Callback for when the JET engine generates a new event. 
				 * @param player the JET player the event is coming from
				 * @param segment 8 bit unsigned value
				 * @param track 6 bit unsigned value
				 * @param channel 4 bit unsigned value
				 * @param controller 7 bit unsigned value
				 * @param value 7 bit unsigned value
				 */
				public onJetEvent(player: android.media.JetPlayer, segment: number, track: number, channel: number, controller: number, value: number): void;
				/**
				 * Callback for when JET's currently playing segment's userID is updated. 
				 * @param player the JET player the status update is coming from
				 * @param userId the ID of the currently playing segment
				 * @param repeatCount the repetition count for the segment (0 means it plays once)
				 */
				public onJetUserIdUpdate(player: android.media.JetPlayer, userId: number, repeatCount: number): void;
				/**
				 * Callback for when JET's number of queued segments is updated. 
				 * @param player the JET player the status update is coming from
				 * @param nbSegments the number of segments in the JET queue
				 */
				public onJetNumQueuedSegmentUpdate(player: android.media.JetPlayer, nbSegments: number): void;
				/**
				 * Callback for when JET pause state is updated. 
				 * @param player the JET player the status update is coming from
				 * @param paused indicates whether JET is paused (1) or not (0)
				 */
				public onJetPauseUpdate(player: android.media.JetPlayer, paused: number): void;
			}
			export class NativeEventHandler extends android.os.Handler {
				static class: java.lang.Class<android.media.JetPlayer.NativeEventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * The MediaSyncEvent class defines events that can be used to synchronize playback or capture actions between different players and recorders.
		 */
		export class MediaSyncEvent extends java.lang.Object {
			/**
			 * No sync event specified. When used with a synchronized playback or capture method, the behavior is equivalent to calling the corresponding non synchronized method.
			 */
			static SYNC_EVENT_NONE: number;
			/**
			 * The corresponding action is triggered only when the presentation is completed (meaning the media has been presented to the user) on the specified session. A synchronization of this type requires a source audio session ID to be set via { #setAudioSessionId(int) method.
			 */
			static SYNC_EVENT_PRESENTATION_COMPLETE: number;
			static class: java.lang.Class<android.media.MediaSyncEvent>;
			/**
			 * Creates a synchronization event of the sepcified type.
			 * @param eventType the synchronization event type.
			 */
			public static createEvent(eventType: number): android.media.MediaSyncEvent;
			/**
			 * Sets the event source audio session ID.
			 * @param audioSessionId the audio session ID of the event source being monitored.
			 */
			public setAudioSessionId(audioSessionId: number): android.media.MediaSyncEvent;
			/**
			 * Gets the synchronization event type.
			 */
			public getType(): number;
			/**
			 * Gets the synchronization event audio session ID.
			 */
			public getAudioSessionId(): number;
		}
		/**
		 * RemoteControlClient enables exposing information meant to be consumed by remote controls capable of displaying metadata, artwork and media transport control buttons.
		 */
		export class RemoteControlClient extends java.lang.Object {
			/**
			 * Class constructor.
			 * @param mediaButtonIntent The intent that will be sent for the media button events sent
			 */
			constructor(mediaButtonIntent: android.app.PendingIntent);
			/**
			 * Class constructor for a remote control client whose internal event handling happens on a user-provided Looper.
			 * @param mediaButtonIntent The intent that will be sent for the media button events sent
			 * @param looper The Looper running the event loop.
			 */
			constructor(mediaButtonIntent: android.app.PendingIntent, looper: android.os.Looper);
			/**
			 * Playback state of a RemoteControlClient which is stopped.
			 */
			static PLAYSTATE_STOPPED: number;
			/**
			 * Playback state of a RemoteControlClient which is paused.
			 */
			static PLAYSTATE_PAUSED: number;
			/**
			 * Playback state of a RemoteControlClient which is playing media.
			 */
			static PLAYSTATE_PLAYING: number;
			/**
			 * Playback state of a RemoteControlClient which is fast forwarding in the media it is currently playing.
			 */
			static PLAYSTATE_FAST_FORWARDING: number;
			/**
			 * Playback state of a RemoteControlClient which is fast rewinding in the media it is currently playing.
			 */
			static PLAYSTATE_REWINDING: number;
			/**
			 * Playback state of a RemoteControlClient which is skipping to the next logical chapter (such as a song in a playlist) in the media it is currently playing.
			 */
			static PLAYSTATE_SKIPPING_FORWARDS: number;
			/**
			 * Playback state of a RemoteControlClient which is skipping back to the previous logical chapter (such as a song in a playlist) in the media it is currently playing.
			 */
			static PLAYSTATE_SKIPPING_BACKWARDS: number;
			/**
			 * Playback state of a RemoteControlClient which is buffering data to play before it can start or resume playback.
			 */
			static PLAYSTATE_BUFFERING: number;
			/**
			 * Playback state of a RemoteControlClient which cannot perform any playback related operation because of an internal error. Examples of such situations are no network connectivity when attempting to stream data from a server, or expired user credentials when trying to play subscription-based content.
			 */
			static PLAYSTATE_ERROR: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "previous" media key.
			 */
			static FLAG_KEY_MEDIA_PREVIOUS: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "rewind" media key.
			 */
			static FLAG_KEY_MEDIA_REWIND: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "play" media key.
			 */
			static FLAG_KEY_MEDIA_PLAY: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "play/pause" media key.
			 */
			static FLAG_KEY_MEDIA_PLAY_PAUSE: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "pause" media key.
			 */
			static FLAG_KEY_MEDIA_PAUSE: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "stop" media key.
			 */
			static FLAG_KEY_MEDIA_STOP: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "fast forward" media key.
			 */
			static FLAG_KEY_MEDIA_FAST_FORWARD: number;
			/**
			 * Flag indicating a RemoteControlClient makes use of the "next" media key.
			 */
			static FLAG_KEY_MEDIA_NEXT: number;
			static class: java.lang.Class<android.media.RemoteControlClient>;
			EventHandler: {
	new (rcc: android.media.RemoteControlClient, looper: android.os.Looper): android.media.RemoteControlClient.EventHandler;
};
			/**
			 * Creates a MetadataEditor.
			 * @param startEmpty Set to false if you want the MetadataEditor to contain the metadata that
			 */
			public editMetadata(startEmpty: boolean): android.media.RemoteControlClient.MetadataEditor;
			/**
			 * Sets the current playback state.
			 * @param state The current playback state, one of the following values:
			 */
			public setPlaybackState(state: number): void;
			/**
			 * Sets the flags for the media transport control buttons that this client supports.
			 * @param transportControlFlags A combination of the following flags:
			 */
			public setTransportControlFlags(transportControlFlags: number): void;
		}
		export module RemoteControlClient {
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.media.RemoteControlClient.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			/**
			 * Class used to modify metadata in a RemoteControlClient object. Use RemoteControlClient#editMetadata(boolean) to create an instance of an editor, on which you set the metadata for the RemoteControlClient instance. Once all the information has been set, use #apply() to make it the new metadata that should be displayed for the associated client. Once the metadata has been "applied", you cannot reuse this instance of the MetadataEditor.
			 */
			export class MetadataEditor extends java.lang.Object {
				/**
				 * The metadata key for the content artwork / album art.
				 */
				static BITMAP_KEY_ARTWORK: number;
				static class: java.lang.Class<android.media.RemoteControlClient.MetadataEditor>;
				/**
				 * Adds textual information to be displayed. Note that none of the information added after #apply() has been called, will be displayed.
				 * @param key The identifier of a the metadata field to set. Valid values are
				 * @param value The text for the given key, or {@code null} to signify there is no valid
				 */
				public putString(key: number, value: string): android.media.RemoteControlClient.MetadataEditor;
				/**
				 * Adds numerical information to be displayed. Note that none of the information added after #apply() has been called, will be displayed.
				 * @param key the identifier of a the metadata field to set. Valid values are
				 * @param value The long value for the given key
				 */
				public putLong(key: number, value: number): android.media.RemoteControlClient.MetadataEditor;
				/**
				 * Sets the album / artwork picture to be displayed on the remote control.
				 * @param key the identifier of the bitmap to set. The only valid value is
				 * @param bitmap The bitmap for the artwork, or null if there isn't any.
				 */
				public putBitmap(key: number, bitmap: android.graphics.Bitmap): android.media.RemoteControlClient.MetadataEditor;
				/**
				 * Clears all the metadata that has been set since the MetadataEditor instance was created with RemoteControlClient#editMetadata(boolean).
				 */
				public clear(): void;
				/**
				 * Associates all the metadata that has been set since the MetadataEditor instance was created with RemoteControlClient#editMetadata(boolean), or since #clear() was called, with the RemoteControlClient. Once "applied", this MetadataEditor cannot be reused to edit the RemoteControlClient's metadata.
				 */
				public apply(): void;
			}
		}
		/**
		 * This class provides methods to play DTMF tones (ITU-T Recommendation Q.23), call supervisory tones (3GPP TS 22.001, CEPT) and proprietary tones (3GPP TS 31.111). Depending on call state and routing options, tones are mixed to the downlink audio or output to the speaker phone or headset. This API is not for generating tones over the uplink audio path.
		 */
		export class ToneGenerator extends java.lang.Object {
			/**
			 * ToneGenerator class contructor specifying output stream type and volume.
			 * @param streamType The streame type used for tone playback (e.g. STREAM_MUSIC).
			 * @param volume The volume of the tone, given in percentage of maximum volume (from 0-100).
			 */
			constructor(streamType: number, volume: number);
			/**
			 * DTMF tone for key 0: 1336Hz, 941Hz, continuous</p>
			 */
			static TONE_DTMF_0: number;
			/**
			 * DTMF tone for key 1: 1209Hz, 697Hz, continuous
			 */
			static TONE_DTMF_1: number;
			/**
			 * DTMF tone for key 2: 1336Hz, 697Hz, continuous
			 */
			static TONE_DTMF_2: number;
			/**
			 * DTMF tone for key 3: 1477Hz, 697Hz, continuous
			 */
			static TONE_DTMF_3: number;
			/**
			 * DTMF tone for key 4: 1209Hz, 770Hz, continuous
			 */
			static TONE_DTMF_4: number;
			/**
			 * DTMF tone for key 5: 1336Hz, 770Hz, continuous
			 */
			static TONE_DTMF_5: number;
			/**
			 * DTMF tone for key 6: 1477Hz, 770Hz, continuous
			 */
			static TONE_DTMF_6: number;
			/**
			 * DTMF tone for key 7: 1209Hz, 852Hz, continuous
			 */
			static TONE_DTMF_7: number;
			/**
			 * DTMF tone for key 8: 1336Hz, 852Hz, continuous
			 */
			static TONE_DTMF_8: number;
			/**
			 * DTMF tone for key 9: 1477Hz, 852Hz, continuous
			 */
			static TONE_DTMF_9: number;
			/**
			 * DTMF tone for key *: 1209Hz, 941Hz, continuous
			 */
			static TONE_DTMF_S: number;
			/**
			 * DTMF tone for key #: 1477Hz, 941Hz, continuous
			 */
			static TONE_DTMF_P: number;
			/**
			 * DTMF tone for key A: 1633Hz, 697Hz, continuous
			 */
			static TONE_DTMF_A: number;
			/**
			 * DTMF tone for key B: 1633Hz, 770Hz, continuous
			 */
			static TONE_DTMF_B: number;
			/**
			 * DTMF tone for key C: 1633Hz, 852Hz, continuous
			 */
			static TONE_DTMF_C: number;
			/**
			 * DTMF tone for key D: 1633Hz, 941Hz, continuous
			 */
			static TONE_DTMF_D: number;
			/**
			 * Call supervisory tone, Dial tone: CEPT: 425Hz, continuous ANSI (IS-95): 350Hz+440Hz, continuous JAPAN: 400Hz, continuous
			 */
			static TONE_SUP_DIAL: number;
			/**
			 * Call supervisory tone, Busy: CEPT: 425Hz, 500ms ON, 500ms OFF... ANSI (IS-95): 480Hz+620Hz, 500ms ON, 500ms OFF... JAPAN: 400Hz, 500ms ON, 500ms OFF...
			 */
			static TONE_SUP_BUSY: number;
			/**
			 * Call supervisory tone, Congestion: CEPT, JAPAN: 425Hz, 200ms ON, 200ms OFF... ANSI (IS-95): 480Hz+620Hz, 250ms ON, 250ms OFF...
			 */
			static TONE_SUP_CONGESTION: number;
			/**
			 * Call supervisory tone, Radio path acknowlegment : CEPT, ANSI: 425Hz, 200ms ON JAPAN: 400Hz, 1s ON, 2s OFF...
			 */
			static TONE_SUP_RADIO_ACK: number;
			/**
			 * Call supervisory tone, Radio path not available: 425Hz, 200ms ON, 200 OFF 3 bursts
			 */
			static TONE_SUP_RADIO_NOTAVAIL: number;
			/**
			 * Call supervisory tone, Error/Special info: 950Hz+1400Hz+1800Hz, 330ms ON, 1s OFF...
			 */
			static TONE_SUP_ERROR: number;
			/**
			 * Call supervisory tone, Call Waiting: CEPT, JAPAN: 425Hz, 200ms ON, 600ms OFF, 200ms ON, 3s OFF... ANSI (IS-95): 440 Hz, 300 ms ON, 9.7 s OFF, (100 ms ON, 100 ms OFF, 100 ms ON, 9.7s OFF ...)
			 */
			static TONE_SUP_CALL_WAITING: number;
			/**
			 * Call supervisory tone, Ring Tone: CEPT, JAPAN: 425Hz, 1s ON, 4s OFF... ANSI (IS-95): 440Hz + 480Hz, 2s ON, 4s OFF...
			 */
			static TONE_SUP_RINGTONE: number;
			/**
			 * Proprietary tone, general beep: 400Hz+1200Hz, 35ms ON
			 */
			static TONE_PROP_BEEP: number;
			/**
			 * Proprietary tone, positive acknowlegement: 1200Hz, 100ms ON, 100ms OFF 2 bursts
			 */
			static TONE_PROP_ACK: number;
			/**
			 * Proprietary tone, negative acknowlegement: 300Hz+400Hz+500Hz, 400ms ON
			 */
			static TONE_PROP_NACK: number;
			/**
			 * Proprietary tone, prompt tone: 400Hz+1200Hz, 200ms ON
			 */
			static TONE_PROP_PROMPT: number;
			/**
			 * Proprietary tone, general double beep: twice 400Hz+1200Hz, 35ms ON, 200ms OFF, 35ms ON
			 */
			static TONE_PROP_BEEP2: number;
			/**
			 * Call supervisory tone (IS-95), intercept tone: alternating 440 Hz and 620 Hz tones, each on for 250 ms
			 */
			static TONE_SUP_INTERCEPT: number;
			/**
			 * Call supervisory tone (IS-95), abbreviated intercept: intercept tone limited to 4 seconds
			 */
			static TONE_SUP_INTERCEPT_ABBREV: number;
			/**
			 * Call supervisory tone (IS-95), abbreviated congestion: congestion tone limited to 4 seconds
			 */
			static TONE_SUP_CONGESTION_ABBREV: number;
			/**
			 * Call supervisory tone (IS-95), confirm tone: a 350 Hz tone added to a 440 Hz tone repeated 3 times in a 100 ms on, 100 ms off cycle
			 */
			static TONE_SUP_CONFIRM: number;
			/**
			 * Call supervisory tone (IS-95), pip tone: four bursts of 480 Hz tone (0.1 s on, 0.1 s off).
			 */
			static TONE_SUP_PIP: number;
			/**
			 * CDMA Dial tone : 425Hz continuous
			 */
			static TONE_CDMA_DIAL_TONE_LITE: number;
			/**
			 * CDMA USA Ringback: 440Hz+480Hz 2s ON, 4000 OFF ...
			 */
			static TONE_CDMA_NETWORK_USA_RINGBACK: number;
			/**
			 * CDMA Intercept tone: 440Hz 250ms ON, 620Hz 250ms ON ...
			 */
			static TONE_CDMA_INTERCEPT: number;
			/**
			 * CDMA Abbr Intercept tone: 440Hz 250ms ON, 620Hz 250ms ON
			 */
			static TONE_CDMA_ABBR_INTERCEPT: number;
			/**
			 * CDMA Reorder tone: 480Hz+620Hz 250ms ON, 250ms OFF...
			 */
			static TONE_CDMA_REORDER: number;
			static TONE_CDMA_ABBR_REORDER: number;
			/**
			 * CDMA Network Busy tone: 480Hz+620Hz 500ms ON, 500ms OFF continuous
			 */
			static TONE_CDMA_NETWORK_BUSY: number;
			/**
			 * CDMA Confirm tone: 350Hz+440Hz 100ms ON, 100ms OFF repeated for 3 times
			 */
			static TONE_CDMA_CONFIRM: number;
			static TONE_CDMA_ANSWER: number;
			static TONE_CDMA_NETWORK_CALLWAITING: number;
			/**
			 * CDMA PIP tone: 480Hz 100ms ON, 100ms OFF repeated for 4 times
			 */
			static TONE_CDMA_PIP: number;
			/**
			 * ISDN Call Signal Normal tone: {2091Hz 32ms ON, 2556 64ms ON} 20 times, 2091 32ms ON, 2556 48ms ON, 4s OFF
			 */
			static TONE_CDMA_CALL_SIGNAL_ISDN_NORMAL: number;
			/**
			 * ISDN Call Signal Intergroup tone: {2091Hz 32ms ON, 2556 64ms ON} 8 times, 2091Hz 32ms ON, 400ms OFF, {2091Hz 32ms ON, 2556Hz 64ms ON} times, 2091Hz 32ms ON, 4s OFF.
			 */
			static TONE_CDMA_CALL_SIGNAL_ISDN_INTERGROUP: number;
			/**
			 * ISDN Call Signal SP PRI tone:{2091Hz 32ms ON, 2556 64ms ON} 4 times 2091Hz 16ms ON, 200ms OFF, {2091Hz 32ms ON, 2556Hz 64ms ON} 4 times, 2091Hz 16ms ON, 200ms OFF
			 */
			static TONE_CDMA_CALL_SIGNAL_ISDN_SP_PRI: number;
			/**
			 * ISDN Call sign PAT3 tone: silent tone
			 */
			static TONE_CDMA_CALL_SIGNAL_ISDN_PAT3: number;
			/**
			 * ISDN Ping Ring tone: {2091Hz 32ms ON, 2556Hz 64ms ON} 5 times 2091Hz 20ms ON
			 */
			static TONE_CDMA_CALL_SIGNAL_ISDN_PING_RING: number;
			static TONE_CDMA_CALL_SIGNAL_ISDN_PAT5: number;
			static TONE_CDMA_CALL_SIGNAL_ISDN_PAT6: number;
			/**
			 * ISDN Pat7 tone: silent tone
			 */
			static TONE_CDMA_CALL_SIGNAL_ISDN_PAT7: number;
			/**
			 * TONE_CDMA_HIGH_L tone: {3700Hz 25ms, 4000Hz 25ms} 40 times 4000ms OFF, Repeat ....
			 */
			static TONE_CDMA_HIGH_L: number;
			/**
			 * TONE_CDMA_MED_L tone: {2600Hz 25ms, 2900Hz 25ms} 40 times 4000ms OFF, Repeat ....
			 */
			static TONE_CDMA_MED_L: number;
			/**
			 * TONE_CDMA_LOW_L tone: {1300Hz 25ms, 1450Hz 25ms} 40 times, 4000ms OFF, Repeat ....
			 */
			static TONE_CDMA_LOW_L: number;
			/**
			 * CDMA HIGH SS tone: {3700Hz 25ms, 4000Hz 25ms} repeat 16 times, 400ms OFF, repeat ....
			 */
			static TONE_CDMA_HIGH_SS: number;
			/**
			 * CDMA MED SS tone: {2600Hz 25ms, 2900Hz 25ms} repeat 16 times, 400ms OFF, repeat ....
			 */
			static TONE_CDMA_MED_SS: number;
			/**
			 * CDMA LOW SS tone: {1300z 25ms, 1450Hz 25ms} repeat 16 times, 400ms OFF, repeat ....
			 */
			static TONE_CDMA_LOW_SS: number;
			/**
			 * CDMA HIGH SSL tone: {3700Hz 25ms, 4000Hz 25ms} 8 times, 200ms OFF, {3700Hz 25ms, 4000Hz 25ms} repeat 8 times, 200ms OFF, {3700Hz 25ms, 4000Hz 25ms} repeat 16 times, 4000ms OFF, repeat ...
			 */
			static TONE_CDMA_HIGH_SSL: number;
			/**
			 * CDMA MED SSL tone: {2600Hz 25ms, 2900Hz 25ms} 8 times, 200ms OFF, {2600Hz 25ms, 2900Hz 25ms} repeat 8 times, 200ms OFF, {2600Hz 25ms, 2900Hz 25ms} repeat 16 times, 4000ms OFF, repeat ...
			 */
			static TONE_CDMA_MED_SSL: number;
			/**
			 * CDMA LOW SSL tone: {1300Hz 25ms, 1450Hz 25ms} 8 times, 200ms OFF, {1300Hz 25ms, 1450Hz 25ms} repeat 8 times, 200ms OFF, {1300Hz 25ms, 1450Hz 25ms} repeat 16 times, 4000ms OFF, repeat ...
			 */
			static TONE_CDMA_LOW_SSL: number;
			/**
			 * CDMA HIGH SS2 tone: {3700Hz 25ms, 4000Hz 25ms} 20 times, 1000ms OFF, {3700Hz 25ms, 4000Hz 25ms} 20 times, 3000ms OFF, repeat ....
			 */
			static TONE_CDMA_HIGH_SS_2: number;
			/**
			 * CDMA MED SS2 tone: {2600Hz 25ms, 2900Hz 25ms} 20 times, 1000ms OFF, {2600Hz 25ms, 2900Hz 25ms} 20 times, 3000ms OFF, repeat ....
			 */
			static TONE_CDMA_MED_SS_2: number;
			/**
			 * CDMA LOW SS2 tone: {1300Hz 25ms, 1450Hz 25ms} 20 times, 1000ms OFF, {1300Hz 25ms, 1450Hz 25ms} 20 times, 3000ms OFF, repeat ....
			 */
			static TONE_CDMA_LOW_SS_2: number;
			/**
			 * CDMA HIGH SLS tone: {3700Hz 25ms, 4000Hz 25ms} 10 times, 500ms OFF, {3700Hz 25ms, 4000Hz 25ms} 20 times, 500ms OFF, {3700Hz 25ms, 4000Hz 25ms} 10 times, 3000ms OFF, REPEAT
			 */
			static TONE_CDMA_HIGH_SLS: number;
			/**
			 * CDMA MED SLS tone: {2600Hz 25ms, 2900Hz 25ms} 10 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 20 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 10 times, 3000ms OFF, REPEAT
			 */
			static TONE_CDMA_MED_SLS: number;
			/**
			 * CDMA LOW SLS tone: {1300Hz 25ms, 1450Hz 25ms} 10 times, 500ms OFF, {1300Hz 25ms, 1450Hz 25ms} 20 times, 500ms OFF, {1300Hz 25ms, 1450Hz 25ms} 10 times, 3000ms OFF, REPEAT
			 */
			static TONE_CDMA_LOW_SLS: number;
			/**
			 * CDMA HIGH S X4 tone: {3700Hz 25ms, 4000Hz 25ms} 10 times, 500ms OFF, {3700Hz 25ms, 4000Hz 25ms} 10 times, 500ms OFF, {3700Hz 25ms, 4000Hz 25ms} 10 times, 500ms OFF, {3700Hz 25ms, 4000Hz 25ms} 10 times, 2500ms OFF, REPEAT....
			 */
			static TONE_CDMA_HIGH_S_X4: number;
			/**
			 * CDMA MED S X4 tone: {2600Hz 25ms, 2900Hz 25ms} 10 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 10 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 10 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 10 times, 2500ms OFF, REPEAT....
			 */
			static TONE_CDMA_MED_S_X4: number;
			/**
			 * CDMA LOW S X4 tone: {2600Hz 25ms, 2900Hz 25ms} 10 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 10 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 10 times, 500ms OFF, {2600Hz 25ms, 2900Hz 25ms} 10 times, 2500ms OFF, REPEAT....
			 */
			static TONE_CDMA_LOW_S_X4: number;
			/**
			 * CDMA HIGH PBX L: {3700Hz 25ms, 4000Hz 25ms}20 times, 2000ms OFF, REPEAT....
			 */
			static TONE_CDMA_HIGH_PBX_L: number;
			/**
			 * CDMA MED PBX L: {2600Hz 25ms, 2900Hz 25ms}20 times, 2000ms OFF, REPEAT....
			 */
			static TONE_CDMA_MED_PBX_L: number;
			/**
			 * CDMA LOW PBX L: {1300Hz 25ms,1450Hz 25ms}20 times, 2000ms OFF, REPEAT....
			 */
			static TONE_CDMA_LOW_PBX_L: number;
			/**
			 * CDMA HIGH PBX SS tone: {3700Hz 25ms, 4000Hz 25ms} 8 times 200 ms OFF, {3700Hz 25ms 4000Hz 25ms}8 times, 2000ms OFF, REPEAT....
			 */
			static TONE_CDMA_HIGH_PBX_SS: number;
			/**
			 * CDMA MED PBX SS tone: {2600Hz 25ms, 2900Hz 25ms} 8 times 200 ms OFF, {2600Hz 25ms 2900Hz 25ms}8 times, 2000ms OFF, REPEAT....
			 */
			static TONE_CDMA_MED_PBX_SS: number;
			/**
			 * CDMA LOW PBX SS tone: {1300Hz 25ms, 1450Hz 25ms} 8 times 200 ms OFF, {1300Hz 25ms 1450Hz 25ms}8 times, 2000ms OFF, REPEAT....
			 */
			static TONE_CDMA_LOW_PBX_SS: number;
			/**
			 * CDMA HIGH PBX SSL tone:{3700Hz 25ms, 4000Hz 25ms} 8 times 200ms OFF, {3700Hz 25ms, 4000Hz 25ms} 8 times, 200ms OFF, {3700Hz 25ms, 4000Hz 25ms} 16 times, 1000ms OFF, REPEAT....
			 */
			static TONE_CDMA_HIGH_PBX_SSL: number;
			/**
			 * CDMA MED PBX SSL tone:{2600Hz 25ms, 2900Hz 25ms} 8 times 200ms OFF, {2600Hz 25ms, 2900Hz 25ms} 8 times, 200ms OFF, {2600Hz 25ms, 2900Hz 25ms} 16 times, 1000ms OFF, REPEAT....
			 */
			static TONE_CDMA_MED_PBX_SSL: number;
			/**
			 * CDMA LOW PBX SSL tone:{1300Hz 25ms, 1450Hz 25ms} 8 times 200ms OFF, {1300Hz 25ms, 1450Hz 25ms} 8 times, 200ms OFF, {1300Hz 25ms, 1450Hz 25ms} 16 times, 1000ms OFF, REPEAT....
			 */
			static TONE_CDMA_LOW_PBX_SSL: number;
			/**
			 * CDMA HIGH PBX SSL tone:{3700Hz 25ms, 4000Hz 25ms} 8 times 200ms OFF, {3700Hz 25ms, 4000Hz 25ms} 16 times, 200ms OFF, {3700Hz 25ms, 4000Hz 25ms} 8 times, 1000ms OFF, REPEAT....
			 */
			static TONE_CDMA_HIGH_PBX_SLS: number;
			/**
			 * CDMA HIGH PBX SLS tone:{2600Hz 25ms, 2900Hz 25ms} 8 times 200ms OFF, {2600Hz 25ms, 2900Hz 25ms} 16 times, 200ms OFF, {2600Hz 25ms, 2900Hz 25ms} 8 times, 1000ms OFF, REPEAT....
			 */
			static TONE_CDMA_MED_PBX_SLS: number;
			/**
			 * CDMA HIGH PBX SLS tone:{1300Hz 25ms, 1450Hz 25ms} 8 times 200ms OFF, {1300Hz 25ms, 1450Hz 25ms} 16 times, 200ms OFF, {1300Hz 25ms, 1450Hz 25ms} 8 times, 1000ms OFF, REPEAT....
			 */
			static TONE_CDMA_LOW_PBX_SLS: number;
			/**
			 * CDMA HIGH PBX X S4 tone: {3700Hz 25ms 4000Hz 25ms} 8 times, 200ms OFF, {3700Hz 25ms 4000Hz 25ms} 8 times, 200ms OFF, {3700Hz 25ms 4000Hz 25ms} 8 times, 200ms OFF, {3700Hz 25ms 4000Hz 25ms} 8 times, 800ms OFF, REPEAT...
			 */
			static TONE_CDMA_HIGH_PBX_S_X4: number;
			/**
			 * CDMA MED PBX X S4 tone: {2600Hz 25ms 2900Hz 25ms} 8 times, 200ms OFF, {2600Hz 25ms 2900Hz 25ms} 8 times, 200ms OFF, {2600Hz 25ms 2900Hz 25ms} 8 times, 200ms OFF, {2600Hz 25ms 2900Hz 25ms} 8 times, 800ms OFF, REPEAT...
			 */
			static TONE_CDMA_MED_PBX_S_X4: number;
			/**
			 * CDMA LOW PBX X S4 tone: {1300Hz 25ms 1450Hz 25ms} 8 times, 200ms OFF, {1300Hz 25ms 1450Hz 25ms} 8 times, 200ms OFF, {1300Hz 25ms 1450Hz 25ms} 8 times, 200ms OFF, {1300Hz 25ms 1450Hz 25ms} 8 times, 800ms OFF, REPEAT...
			 */
			static TONE_CDMA_LOW_PBX_S_X4: number;
			/**
			 * CDMA Alert Network Lite tone: 1109Hz 62ms ON, 784Hz 62ms ON, 740Hz 62ms ON 622Hz 62ms ON, 1109Hz 62ms ON
			 */
			static TONE_CDMA_ALERT_NETWORK_LITE: number;
			/**
			 * CDMA Alert Auto Redial tone: {1245Hz 62ms ON, 659Hz 62ms ON} 3 times, 1245 62ms ON
			 */
			static TONE_CDMA_ALERT_AUTOREDIAL_LITE: number;
			/**
			 * CDMA One Min Beep tone: 1150Hz+770Hz 400ms ON
			 */
			static TONE_CDMA_ONE_MIN_BEEP: number;
			static TONE_CDMA_KEYPAD_VOLUME_KEY_LITE: number;
			/**
			 * CDMA PRESSHOLDKEY LITE tone: 587Hz 375ms ON, 1175Hz 125ms ON
			 */
			static TONE_CDMA_PRESSHOLDKEY_LITE: number;
			/**
			 * CDMA ALERT INCALL LITE tone: 587Hz 62ms, 784 62ms, 831Hz 62ms, 784Hz 62ms, 1109 62ms, 784Hz 62ms, 831Hz 62ms, 784Hz 62ms
			 */
			static TONE_CDMA_ALERT_INCALL_LITE: number;
			/**
			 * CDMA EMERGENCY RINGBACK tone: {941Hz 125ms ON, 10ms OFF} 3times 4990ms OFF, REPEAT...
			 */
			static TONE_CDMA_EMERGENCY_RINGBACK: number;
			/**
			 * CDMA ALERT CALL GUARD tone: {1319Hz 125ms ON, 125ms OFF} 3 times
			 */
			static TONE_CDMA_ALERT_CALL_GUARD: number;
			/**
			 * CDMA SOFT ERROR LITE tone: 1047Hz 125ms ON, 370Hz 125ms
			 */
			static TONE_CDMA_SOFT_ERROR_LITE: number;
			/**
			 * CDMA CALLDROP LITE tone: 1480Hz 125ms, 1397Hz 125ms, 784Hz 125ms
			 */
			static TONE_CDMA_CALLDROP_LITE: number;
			/**
			 * CDMA_NETWORK_BUSY_ONE_SHOT tone: 425Hz 500ms ON, 500ms OFF.
			 */
			static TONE_CDMA_NETWORK_BUSY_ONE_SHOT: number;
			/**
			 * CDMA_ABBR_ALERT tone: 1150Hz+770Hz 400ms ON #ToneGenerator(int, int)
			 */
			static TONE_CDMA_ABBR_ALERT: number;
			/**
			 * CDMA_SIGNAL_OFF - silent tone
			 */
			static TONE_CDMA_SIGNAL_OFF: number;
			/**
			 * Maximum volume, for use with #ToneGenerator(int,int)
			 */
			static MAX_VOLUME: number;
			/**
			 * Minimum volume setting, for use with #ToneGenerator(int,int)
			 */
			static MIN_VOLUME: number;
			static class: java.lang.Class<android.media.ToneGenerator>;
			/**
			 * This method starts the playback of a tone of the specified type. only one tone can play at a time: if a tone is playing while this method is called, this tone is stopped and replaced by the one requested.
			 * @param toneType The type of tone generated chosen from the following list:
			 */
			public startTone(toneType: number): boolean;
			/**
			 * This method starts the playback of a tone of the specified type for the specified duration.
			 * @param toneType The type of tone generated @see {@link #startTone(int)}.
			 * @param durationMs The tone duration in milliseconds. If the tone is limited in time by definition,
			 */
			public startTone(toneType: number, durationMs: number): boolean;
			/**
			 * This method stops the tone currently playing playback. #ToneGenerator(int, int)
			 */
			public stopTone(): void;
			/**
			 * Releases resources associated with this ToneGenerator object. It is good practice to call this method when you're done using the ToneGenerator.
			 */
			public release(): void;
			/**
			 * Returns the audio session ID.
			 */
			public getAudioSessionId(): number;
			protected finalize(): void;
		}
		/**
		 * RingtoneManager provides access to ringtones, notification, and other types of sounds. It manages querying the different media providers and combines the results into a single cursor. It also provides a Ringtone for each ringtone. We generically call these sounds ringtones, however the #TYPE_RINGTONE refers to the type of sounds that are suitable for the phone ringer.
		 */
		export class RingtoneManager extends java.lang.Object {
			/**
			 * Constructs a RingtoneManager. This constructor is recommended as its constructed instance manages cursor(s). 
			 * @param activity The activity used to get a managed cursor.
			 */
			constructor(activity: android.app.Activity);
			/**
			 * Constructs a RingtoneManager. The instance constructed by this constructor will not manage the cursor(s), so the client should handle this itself. 
			 * @param context The context to used to get a cursor.
			 */
			constructor(context: android.content.Context);
			/**
			 * Type that refers to sounds that are used for the phone ringer.
			 */
			static TYPE_RINGTONE: number;
			/**
			 * Type that refers to sounds that are used for notifications.
			 */
			static TYPE_NOTIFICATION: number;
			/**
			 * Type that refers to sounds that are used for the alarm.
			 */
			static TYPE_ALARM: number;
			/**
			 * All types of sounds.
			 */
			static TYPE_ALL: number;
			/**
			 * Activity Action: Shows a ringtone picker.
			 */
			static ACTION_RINGTONE_PICKER: string;
			/**
			 * Given to the ringtone picker as a boolean. Whether to show an item for "Default". #ACTION_RINGTONE_PICKER
			 */
			static EXTRA_RINGTONE_SHOW_DEFAULT: string;
			/**
			 * Given to the ringtone picker as a boolean. Whether to show an item for "Silent". If the "Silent" item is picked, #EXTRA_RINGTONE_PICKED_URI will be null. #ACTION_RINGTONE_PICKER
			 */
			static EXTRA_RINGTONE_SHOW_SILENT: string;
			/**
			 * Given to the ringtone picker as a boolean. Whether to include DRM ringtones.
			 */
			static EXTRA_RINGTONE_INCLUDE_DRM: string;
			/**
			 * Given to the ringtone picker as a Uri. The Uri of the current ringtone, which will be used to show a checkmark next to the item for this Uri. If showing an item for "Default" ( #EXTRA_RINGTONE_SHOW_DEFAULT), this can also be one of System#DEFAULT_RINGTONE_URI, System#DEFAULT_NOTIFICATION_URI, or System#DEFAULT_ALARM_ALERT_URI to have the "Default" item checked. #ACTION_RINGTONE_PICKER
			 */
			static EXTRA_RINGTONE_EXISTING_URI: string;
			/**
			 * Given to the ringtone picker as a Uri. The Uri of the ringtone to play when the user attempts to preview the "Default" ringtone. This can be one of System#DEFAULT_RINGTONE_URI, System#DEFAULT_NOTIFICATION_URI, or System#DEFAULT_ALARM_ALERT_URI to have the "Default" point to the current sound for the given default sound type. If you are showing a ringtone picker for some other type of sound, you are free to provide any Uri here.
			 */
			static EXTRA_RINGTONE_DEFAULT_URI: string;
			/**
			 * Given to the ringtone picker as an int. Specifies which ringtone type(s) should be shown in the picker. One or more of #TYPE_RINGTONE, #TYPE_NOTIFICATION, #TYPE_ALARM, or #TYPE_ALL (bitwise-ored together).
			 */
			static EXTRA_RINGTONE_TYPE: string;
			/**
			 * Given to the ringtone picker as a CharSequence. The title to show for the ringtone picker. This has a default value that is suitable in most cases.
			 */
			static EXTRA_RINGTONE_TITLE: string;
			/**
			 * Returned from the ringtone picker as a Uri.
			 */
			static EXTRA_RINGTONE_PICKED_URI: string;
			/**
			 * The column index (in the cursor returned by #getCursor() for the row ID.
			 */
			static ID_COLUMN_INDEX: number;
			/**
			 * The column index (in the cursor returned by #getCursor() for the title.
			 */
			static TITLE_COLUMN_INDEX: number;
			/**
			 * The column index (in the cursor returned by #getCursor() for the media provider's URI.
			 */
			static URI_COLUMN_INDEX: number;
			static class: java.lang.Class<android.media.RingtoneManager>;
			/**
			 * Sets which type(s) of ringtones will be listed by this. 
			 * @param type The type(s), one or more of {@link #TYPE_RINGTONE},
			 */
			public setType(type: number): void;
			/**
			 * Infers the playback stream type based on what type of ringtones this manager is returning. 
			 */
			public inferStreamType(): number;
			/**
			 * Whether retrieving another Ringtone will stop playing the previously retrieved Ringtone.
			 * @param stopPreviousRingtone If true, the previously retrieved
			 */
			public setStopPreviousRingtone(stopPreviousRingtone: boolean): void;
			/**
			 *  #setStopPreviousRingtone(boolean)
			 */
			public getStopPreviousRingtone(): boolean;
			/**
			 * Stops playing the last Ringtone retrieved from this.
			 */
			public stopPreviousRingtone(): void;
			/**
			 * Returns whether DRM ringtones will be included. 
			 */
			public getIncludeDrm(): boolean;
			/**
			 * Sets whether to include DRM ringtones. 
			 * @param includeDrm Whether to include DRM ringtones.
			 */
			public setIncludeDrm(includeDrm: boolean): void;
			/**
			 * Returns a Cursor of all the ringtones available. The returned cursor will be the same cursor returned each time this method is called, so do not Cursor#close() the cursor. The cursor can be Cursor#deactivate() safely.
			 */
			public getCursor(): android.database.ICursor;
			/**
			 * Gets a Ringtone for the ringtone at the given position in the Cursor. 
			 * @param position The position (in the {@link Cursor}) of the ringtone.
			 */
			public getRingtone(position: number): android.media.Ringtone;
			/**
			 * Gets a Uri for the ringtone at the given position in the Cursor. 
			 * @param position The position (in the {@link Cursor}) of the ringtone.
			 */
			public getRingtoneUri(position: number): android.net.Uri;
			/**
			 * Gets the position of a Uri within this RingtoneManager. 
			 * @param ringtoneUri The {@link Uri} to retreive the position of.
			 */
			public getRingtonePosition(ringtoneUri: android.net.Uri): number;
			/**
			 * Returns a valid ringtone URI. No guarantees on which it returns. If it cannot find one, returns null. 
			 * @param context The context to use for querying.
			 */
			public static getValidRingtoneUri(context: android.content.Context): android.net.Uri;
			/**
			 * Returns a Ringtone for a given sound URI.
			 * @param context A context used to query.
			 * @param ringtoneUri The {@link Uri} of a sound or ringtone.
			 */
			public static getRingtone(context: android.content.Context, ringtoneUri: android.net.Uri): android.media.Ringtone;
			/**
			 * Gets the current default sound's Uri. This will give the actual sound Uri, instead of using this, most clients can use System#DEFAULT_RINGTONE_URI. 
			 * @param context A context used for querying.
			 * @param type The type whose default sound should be returned. One of
			 */
			public static getActualDefaultRingtoneUri(context: android.content.Context, type: number): android.net.Uri;
			/**
			 * Sets the Uri of the default sound for a given sound type. 
			 * @param context A context used for querying.
			 * @param type The type whose default sound should be set. One of
			 * @param ringtoneUri A {@link Uri} pointing to the default sound to set.
			 */
			public static setActualDefaultRingtoneUri(context: android.content.Context, type: number, ringtoneUri: android.net.Uri): void;
			/**
			 * Returns whether the given Uri is one of the default ringtones. 
			 * @param ringtoneUri The ringtone {@link Uri} to be checked.
			 */
			public static isDefault(ringtoneUri: android.net.Uri): boolean;
			/**
			 * Returns the type of a default Uri. 
			 * @param defaultRingtoneUri The default {@link Uri}. For example,
			 */
			public static getDefaultType(defaultRingtoneUri: android.net.Uri): number;
			/**
			 * Returns the Uri for the default ringtone of a particular type. Rather than returning the actual ringtone's sound Uri, this will return the symbolic Uri which will resolved to the actual sound when played. 
			 * @param type The ringtone type whose default should be returned.
			 */
			public static getDefaultUri(type: number): android.net.Uri;
		}
		export module effect {
			/**
			 * Some effects may issue callbacks to inform the host of changes to the effect state. This is the listener interface for receiving those callbacks.
			 */
			export class EffectUpdateListener implements android.media.effect.IEffectUpdateListener {
				constructor(implementation: android.media.effect.IEffectUpdateListener);
				/**
				 * Called when the effect state is updated.
				 * @param effect The effect that has been updated.
				 * @param info A value that gives more information about the update. See the effect's
				 */
				public onEffectUpdated(effect: android.media.effect.Effect, info: any): void;
			}
			export class Effect extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.media.effect.Effect>;
				/**
				 * Get the effect name.
				 */
				public getName(): string;
				/**
				 * Apply an effect to GL textures.
				 * @param inputTexId The GL texture name of a valid and bound input texture.
				 * @param width The width of the input texture in pixels.
				 * @param height The height of the input texture in pixels.
				 * @param outputTexId The GL texture name of the output texture.
				 */
				public apply(inputTexId: number, width: number, height: number, outputTexId: number): void;
				/**
				 * Set a filter parameter.
				 * @param parameterKey The name of the parameter to adjust.
				 * @param value The new value to set the parameter to.
				 */
				public setParameter(parameterKey: string, value: any): void;
				/**
				 * Set an effect listener.
				 * @param listener The listener to receive update callbacks on.
				 */
				public setUpdateListener(listener: android.media.effect.IEffectUpdateListener): void;
				/**
				 * Release an effect.
				 */
				public release(): void;
			}
			/**
			 * Some effects may issue callbacks to inform the host of changes to the effect state. This is the listener interface for receiving those callbacks.
			 */
			interface IEffectUpdateListener {
				/**
				 * Called when the effect state is updated.
				 * @param effect The effect that has been updated.
				 * @param info A value that gives more information about the update. See the effect's
				 */
				onEffectUpdated(effect: android.media.effect.Effect, info: any): void;
			}
			export class EffectFactory extends java.lang.Object {
				static EFFECT_BRIGHTNESS: string;
				static EFFECT_CONTRAST: string;
				static EFFECT_FISHEYE: string;
				static EFFECT_BACKDROPPER: string;
				static EFFECT_AUTOFIX: string;
				static EFFECT_BLACKWHITE: string;
				static EFFECT_CROP: string;
				static EFFECT_CROSSPROCESS: string;
				static EFFECT_DOCUMENTARY: string;
				static EFFECT_BITMAPOVERLAY: string;
				static EFFECT_DUOTONE: string;
				static EFFECT_FILLLIGHT: string;
				static EFFECT_FLIP: string;
				static EFFECT_GRAIN: string;
				static EFFECT_GRAYSCALE: string;
				static EFFECT_LOMOISH: string;
				static EFFECT_NEGATIVE: string;
				static EFFECT_POSTERIZE: string;
				static EFFECT_REDEYE: string;
				static EFFECT_ROTATE: string;
				static EFFECT_SATURATE: string;
				static EFFECT_SEPIA: string;
				static EFFECT_SHARPEN: string;
				static EFFECT_STRAIGHTEN: string;
				static EFFECT_TEMPERATURE: string;
				static EFFECT_TINT: string;
				static EFFECT_VIGNETTE: string;
				static class: java.lang.Class<android.media.effect.EffectFactory>;
				/**
				 * Instantiate a new effect with the given effect name.
				 * @param effectName The name of the effect to create.
				 */
				public createEffect(effectName: string): android.media.effect.Effect;
				/**
				 * Check if an effect is supported on this platform.
				 * @param effectName The name of the effect.
				 */
				public static isEffectSupported(effectName: string): boolean;
			}
			export class EffectContext extends java.lang.Object {
				static class: java.lang.Class<android.media.effect.EffectContext>;
				/**
				 * Creates a context within the current GL context.
				 */
				public static createWithCurrentGlContext(): android.media.effect.EffectContext;
				/**
				 * Returns the EffectFactory for this context.
				 */
				public getFactory(): android.media.effect.EffectFactory;
				/**
				 * Releases the context.
				 */
				public release(): void;
				assertValidGLState(): void;
				saveGLState(): void;
				restoreGLState(): void;
			}
		}
		/**
		 * MediaMetadataRetriever class provides a unified interface for retrieving frame and meta data from an input media file.
		 */
		export class MediaMetadataRetriever extends java.lang.Object {
			constructor();
			/**
			 * This option is used with #getFrameAtTime(long, int) to retrieve a sync (or key) frame associated with a data source that is located right before or at the given time.
			 */
			static OPTION_PREVIOUS_SYNC: number;
			/**
			 * This option is used with #getFrameAtTime(long, int) to retrieve a sync (or key) frame associated with a data source that is located right after or at the given time.
			 */
			static OPTION_NEXT_SYNC: number;
			/**
			 * This option is used with #getFrameAtTime(long, int) to retrieve a sync (or key) frame associated with a data source that is located closest to (in time) or at the given time.
			 */
			static OPTION_CLOSEST_SYNC: number;
			/**
			 * This option is used with #getFrameAtTime(long, int) to retrieve a frame (not necessarily a key frame) associated with a data source that is located closest to or at the given time.
			 */
			static OPTION_CLOSEST: number;
			/**
			 * The metadata key to retrieve the numberic string describing the order of the audio data source on its original recording.
			 */
			static METADATA_KEY_CD_TRACK_NUMBER: number;
			/**
			 * The metadata key to retrieve the information about the album title of the data source.
			 */
			static METADATA_KEY_ALBUM: number;
			/**
			 * The metadata key to retrieve the information about the artist of the data source.
			 */
			static METADATA_KEY_ARTIST: number;
			/**
			 * The metadata key to retrieve the information about the author of the data source.
			 */
			static METADATA_KEY_AUTHOR: number;
			/**
			 * The metadata key to retrieve the information about the composer of the data source.
			 */
			static METADATA_KEY_COMPOSER: number;
			/**
			 * The metadata key to retrieve the date when the data source was created or modified.
			 */
			static METADATA_KEY_DATE: number;
			/**
			 * The metadata key to retrieve the content type or genre of the data source.
			 */
			static METADATA_KEY_GENRE: number;
			/**
			 * The metadata key to retrieve the data source title.
			 */
			static METADATA_KEY_TITLE: number;
			/**
			 * The metadata key to retrieve the year when the data source was created or modified.
			 */
			static METADATA_KEY_YEAR: number;
			/**
			 * The metadata key to retrieve the playback duration of the data source.
			 */
			static METADATA_KEY_DURATION: number;
			/**
			 * The metadata key to retrieve the number of tracks, such as audio, video, text, in the data source, such as a mp4 or 3gpp file.
			 */
			static METADATA_KEY_NUM_TRACKS: number;
			/**
			 * The metadata key to retrieve the information of the writer (such as lyricist) of the data source.
			 */
			static METADATA_KEY_WRITER: number;
			/**
			 * The metadata key to retrieve the mime type of the data source. Some example mime types include: "video/mp4", "audio/mp4", "audio/amr-wb", etc.
			 */
			static METADATA_KEY_MIMETYPE: number;
			/**
			 * The metadata key to retrieve the information about the performers or artist associated with the data source.
			 */
			static METADATA_KEY_ALBUMARTIST: number;
			/**
			 * The metadata key to retrieve the numberic string that describes which part of a set the audio data source comes from.
			 */
			static METADATA_KEY_DISC_NUMBER: number;
			/**
			 * The metadata key to retrieve the music album compilation status.
			 */
			static METADATA_KEY_COMPILATION: number;
			/**
			 * If this key exists the media contains audio content.
			 */
			static METADATA_KEY_HAS_AUDIO: number;
			/**
			 * If this key exists the media contains video content.
			 */
			static METADATA_KEY_HAS_VIDEO: number;
			/**
			 * If the media contains video, this key retrieves its width.
			 */
			static METADATA_KEY_VIDEO_WIDTH: number;
			/**
			 * If the media contains video, this key retrieves its height.
			 */
			static METADATA_KEY_VIDEO_HEIGHT: number;
			/**
			 * This key retrieves the average bitrate (in bits/sec), if available.
			 */
			static METADATA_KEY_BITRATE: number;
			/**
			 * This key retrieves the location information, if available. The location should be specified according to ISO-6709 standard, under a mp4/3gp box " Location with longitude of -90 degrees and latitude of 180 degrees will be retrieved as "-90.0000+180.0000", for instance.
			 */
			static METADATA_KEY_LOCATION: number;
			/**
			 * This key retrieves the video rotation angle in degrees, if available. The video rotation angle may be 0, 90, 180, or 270 degrees.
			 */
			static METADATA_KEY_VIDEO_ROTATION: number;
			static class: java.lang.Class<android.media.MediaMetadataRetriever>;
			/**
			 * Sets the data source (file pathname) to use. Call this method before the rest of the methods in this class. This method may be time-consuming. 
			 * @param path The path of the input media file.
			 */
			public setDataSource(path: string): void;
			/**
			 * Sets the data source (URI) to use. Call this method before the rest of the methods in this class. This method may be time-consuming.
			 * @param uri The URI of the input media.
			 * @param headers the headers to be sent together with the request for the data
			 */
			public setDataSource(uri: string, headers: java.util.IMap<string, string>): void;
			/**
			 * Sets the data source (FileDescriptor) to use. It is the caller's responsibility to close the file descriptor. It is safe to do so as soon as this call returns. Call this method before the rest of the methods in this class. This method may be time-consuming. 
			 * @param fd the FileDescriptor for the file you want to play
			 * @param offset the offset into the file where the data to be played starts,
			 * @param length the length in bytes of the data to be played. It must be
			 */
			public setDataSource(fd: java.io.FileDescriptor, offset: number, length: number): void;
			/**
			 * Sets the data source (FileDescriptor) to use. It is the caller's responsibility to close the file descriptor. It is safe to do so as soon as this call returns. Call this method before the rest of the methods in this class. This method may be time-consuming. 
			 * @param fd the FileDescriptor for the file you want to play
			 */
			public setDataSource(fd: java.io.FileDescriptor): void;
			/**
			 * Sets the data source as a content Uri. Call this method before the rest of the methods in this class. This method may be time-consuming. 
			 * @param context the Context to use when resolving the Uri
			 * @param uri the Content URI of the data you want to play
			 */
			public setDataSource(context: android.content.Context, uri: android.net.Uri): void;
			/**
			 * Call this method after setDataSource(). This method retrieves the meta data value associated with the keyCode. The keyCode currently supported is listed below as METADATA_XXX constants. With any other value, it returns a null pointer. 
			 * @param keyCode One of the constants listed below at the end of the class.
			 */
			public extractMetadata(keyCode: number): string;
			/**
			 * Call this method after setDataSource(). This method finds a representative frame close to the given time position by considering the given option if possible, and returns it as a bitmap. This is useful for generating a thumbnail for an input data source or just obtain and display a frame at the given time position.
			 * @param timeUs The time position where the frame will be retrieved.
			 * @param option a hint on how the frame is found. Use
			 */
			public getFrameAtTime(timeUs: number, option: number): android.graphics.Bitmap;
			/**
			 * Call this method after setDataSource(). This method finds a representative frame close to the given time position if possible, and returns it as a bitmap. This is useful for generating a thumbnail for an input data source. Call this method if one does not care how the frame is found as long as it is close to the given time; otherwise, please call #getFrameAtTime(long, int).
			 * @param timeUs The time position where the frame will be retrieved.
			 */
			public getFrameAtTime(timeUs: number): android.graphics.Bitmap;
			/**
			 * Call this method after setDataSource(). This method finds a representative frame at any time position if possible, and returns it as a bitmap. This is useful for generating a thumbnail for an input data source. Call this method if one does not care about where the frame is located; otherwise, please call #getFrameAtTime(long) or #getFrameAtTime(long, int)
			 */
			public getFrameAtTime(): android.graphics.Bitmap;
			/**
			 * Call this method after setDataSource(). This method finds the optional graphic or album/cover art associated associated with the data source. If there are more than one pictures, (any) one of them is returned. 
			 */
			public getEmbeddedPicture(): native.Array<number>;
			/**
			 * Call it when one is done with the object. This method releases the memory allocated internally.
			 */
			public release(): void;
			protected finalize(): void;
		}
		/**
		 * MediaScannerConnection provides a way for applications to pass a newly created or downloaded media file to the media scanner service. The media scanner service will read metadata from the file and add the file to the media content provider. The MediaScannerConnectionClient provides an interface for the media scanner service to return the Uri for a newly scanned file to the client of the MediaScannerConnection class.
		 */
		export class MediaScannerConnection extends java.lang.Object implements android.content.IServiceConnection {
			/**
			 * Constructs a new MediaScannerConnection object.
			 * @param context the Context object, required for establishing a connection to
			 * @param client an optional object implementing the MediaScannerConnectionClient
			 */
			constructor(context: android.content.Context, client: android.media.MediaScannerConnection.IMediaScannerConnectionClient);
			static class: java.lang.Class<android.media.MediaScannerConnection>;
			/**
			 * Initiates a connection to the media scanner service. MediaScannerConnectionClient#onMediaScannerConnected() will be called when the connection is established.
			 */
			public connect(): void;
			/**
			 * Releases the connection to the media scanner service.
			 */
			public disconnect(): void;
			/**
			 * Returns whether we are connected to the media scanner service
			 */
			public isConnected(): boolean;
			/**
			 * Requests the media scanner to scan a file. Success or failure of the scanning operation cannot be determined until MediaScannerConnectionClient#onScanCompleted(String, Uri) is called.
			 * @param path the path to the file to be scanned.
			 * @param mimeType an optional mimeType for the file.
			 */
			public scanFile(path: string, mimeType: string): void;
			/**
			 * Convenience for constructing a MediaScannerConnection, calling #connect on it, and calling #scanFile with the given <var>path</var> and <var>mimeType</var> when the connection is established.
			 * @param context The caller's Context, required for establishing a connection to
			 * @param paths Array of paths to be scanned.
			 * @param mimeTypes Optional array of MIME types for each path.
			 * @param callback Optional callback through which you can receive the
			 */
			public static scanFile(context: android.content.Context, paths: native.Array<string>, mimeTypes: native.Array<string>, callback: android.media.MediaScannerConnection.IOnScanCompletedListener): void;
			/**
			 * Part of the ServiceConnection interface. Do not call.
			 */
			public onServiceConnected(className: android.content.ComponentName, service: android.os.IIBinder): void;
			/**
			 * Part of the ServiceConnection interface. Do not call.
			 */
			public onServiceDisconnected(className: android.content.ComponentName): void;
		}
		export module MediaScannerConnection {
			/**
			 * Interface for notifying clients of the result of scanning a requested media file.
			 */
			export class OnScanCompletedListener implements android.media.MediaScannerConnection.IOnScanCompletedListener {
				constructor(implementation: android.media.MediaScannerConnection.IOnScanCompletedListener);
				/**
				 * Called to notify the client when the media scanner has finished scanning a file.
				 * @param path the path to the file that has been scanned.
				 * @param uri the Uri for the file if the scanning operation succeeded
				 */
				public onScanCompleted(path: string, uri: android.net.Uri): void;
			}
			/**
			 * An interface for notifying clients of MediaScannerConnection when a connection to the MediaScanner service has been established and when the scanning of a file has completed.
			 */
			export class MediaScannerConnectionClient implements android.media.MediaScannerConnection.IOnScanCompletedListener, android.media.MediaScannerConnection.IMediaScannerConnectionClient {
				constructor(implementation: android.media.MediaScannerConnection.IMediaScannerConnectionClient);
				/**
				 * Called to notify the client when a connection to the MediaScanner service has been established.
				 */
				public onMediaScannerConnected(): void;
				/**
				 * Called to notify the client when the media scanner has finished scanning a file.
				 * @param path the path to the file that has been scanned.
				 * @param uri the Uri for the file if the scanning operation succeeded
				 */
				public onScanCompleted(path: string, uri: android.net.Uri): void;
			}
			export class ClientProxy extends java.lang.Object implements android.media.MediaScannerConnection.IMediaScannerConnectionClient {
				static class: java.lang.Class<android.media.MediaScannerConnection.ClientProxy>;
				public onMediaScannerConnected(): void;
				public onScanCompleted(path: string, uri: android.net.Uri): void;
				scanNextPath(): void;
			}
			/**
			 * Interface for notifying clients of the result of scanning a requested media file.
			 */
			interface IOnScanCompletedListener {
				/**
				 * Called to notify the client when the media scanner has finished scanning a file.
				 * @param path the path to the file that has been scanned.
				 * @param uri the Uri for the file if the scanning operation succeeded
				 */
				onScanCompleted(path: string, uri: android.net.Uri): void;
			}
			/**
			 * An interface for notifying clients of MediaScannerConnection when a connection to the MediaScanner service has been established and when the scanning of a file has completed.
			 */
			interface IMediaScannerConnectionClient extends android.media.MediaScannerConnection.IOnScanCompletedListener {
				/**
				 * Called to notify the client when a connection to the MediaScanner service has been established.
				 */
				onMediaScannerConnected(): void;
				/**
				 * Called to notify the client when the media scanner has finished scanning a file.
				 * @param path the path to the file that has been scanned.
				 * @param uri the Uri for the file if the scanning operation succeeded
				 */
				onScanCompleted(path: string, uri: android.net.Uri): void;
			}
		}
		/**
		 * The AudioTrack class manages and plays a single audio resource for Java applications. It allows streaming PCM audio buffers to the audio hardware for playback. This is achieved by "pushing" the data to the AudioTrack object using one of the #write(byte[], int, int) and #write(short[], int, int) methods.
		 */
		export class AudioTrack extends java.lang.Object {
			/**
			 * Class constructor.
			 * @param streamType the type of the audio stream. See
			 * @param sampleRateInHz the sample rate expressed in Hertz.
			 * @param channelConfig describes the configuration of the audio channels.
			 * @param audioFormat the format in which the audio data is represented.
			 * @param bufferSizeInBytes the total size (in bytes) of the buffer where audio data is read
			 * @param mode streaming or static buffer. See {@link #MODE_STATIC} and {@link #MODE_STREAM}
			 */
			constructor(streamType: number, sampleRateInHz: number, channelConfig: number, audioFormat: number, bufferSizeInBytes: number, mode: number);
			/**
			 * Class constructor with audio session. Use this constructor when the AudioTrack must be attached to a particular audio session. The primary use of the audio session ID is to associate audio effects to a particular instance of AudioTrack: if an audio session ID is provided when creating an AudioEffect, this effect will be applied only to audio tracks and media players in the same session and not to the output mix. When an AudioTrack is created without specifying a session, it will create its own session which can be retreived by calling the #getAudioSessionId() method. If a non-zero session ID is provided, this AudioTrack will share effects attached to this session with all other media players or audio tracks in the same session, otherwise a new session will be created for this track if none is supplied.
			 * @param streamType the type of the audio stream. See
			 * @param sampleRateInHz the sample rate expressed in Hertz.
			 * @param channelConfig describes the configuration of the audio channels.
			 * @param audioFormat the format in which the audio data is represented.
			 * @param bufferSizeInBytes the total size (in bytes) of the buffer where audio data is read
			 * @param mode streaming or static buffer. See {@link #MODE_STATIC} and {@link #MODE_STREAM}
			 * @param sessionId Id of audio session the AudioTrack must be attached to
			 */
			constructor(streamType: number, sampleRateInHz: number, channelConfig: number, audioFormat: number, bufferSizeInBytes: number, mode: number, sessionId: number);
			/**
			 * indicates AudioTrack state is stopped
			 */
			static PLAYSTATE_STOPPED: number;
			/**
			 * indicates AudioTrack state is paused
			 */
			static PLAYSTATE_PAUSED: number;
			/**
			 * indicates AudioTrack state is playing
			 */
			static PLAYSTATE_PLAYING: number;
			/**
			 * Creation mode where audio data is transferred from Java to the native layer only once before the audio starts playing.
			 */
			static MODE_STATIC: number;
			/**
			 * Creation mode where audio data is streamed from Java to the native layer as the audio is playing.
			 */
			static MODE_STREAM: number;
			/**
			 * State of an AudioTrack that was not successfully initialized upon creation.
			 */
			static STATE_UNINITIALIZED: number;
			/**
			 * State of an AudioTrack that is ready to be used.
			 */
			static STATE_INITIALIZED: number;
			/**
			 * State of a successfully initialized AudioTrack that uses static data, but that hasn't received that data yet.
			 */
			static STATE_NO_STATIC_DATA: number;
			/**
			 * Denotes a successful operation.
			 */
			static SUCCESS: number;
			/**
			 * Denotes a generic operation failure.
			 */
			static ERROR: number;
			/**
			 * Denotes a failure due to the use of an invalid value.
			 */
			static ERROR_BAD_VALUE: number;
			/**
			 * Denotes a failure due to the improper use of a method.
			 */
			static ERROR_INVALID_OPERATION: number;
			static class: java.lang.Class<android.media.AudioTrack>;
			/**
			 * Releases the native AudioTrack resources.
			 */
			public release(): void;
			protected finalize(): void;
			/**
			 * Returns the minimum valid volume value. Volume values set under this one will be clamped at this value.
			 */
			public static getMinVolume(): number;
			/**
			 * Returns the maximum valid volume value. Volume values set above this one will be clamped at this value.
			 */
			public static getMaxVolume(): number;
			/**
			 * Returns the configured audio data sample rate in Hz
			 */
			public getSampleRate(): number;
			/**
			 * Returns the current playback rate in Hz.
			 */
			public getPlaybackRate(): number;
			/**
			 * Returns the configured audio data format. See AudioFormat#ENCODING_PCM_16BIT and AudioFormat#ENCODING_PCM_8BIT.
			 */
			public getAudioFormat(): number;
			/**
			 * Returns the type of audio stream this AudioTrack is configured for. Compare the result against AudioManager#STREAM_VOICE_CALL, AudioManager#STREAM_SYSTEM, AudioManager#STREAM_RING, AudioManager#STREAM_MUSIC, AudioManager#STREAM_ALARM, AudioManager#STREAM_NOTIFICATION, or AudioManager#STREAM_DTMF.
			 */
			public getStreamType(): number;
			/**
			 * Returns the configured channel configuration.
			 */
			public getChannelConfiguration(): number;
			/**
			 * Returns the configured number of channels.
			 */
			public getChannelCount(): number;
			/**
			 * Returns the state of the AudioTrack instance. This is useful after the AudioTrack instance has been created to check if it was initialized properly. This ensures that the appropriate hardware resources have been acquired. #STATE_INITIALIZED #STATE_NO_STATIC_DATA #STATE_UNINITIALIZED
			 */
			public getState(): number;
			/**
			 * Returns the playback state of the AudioTrack instance. #PLAYSTATE_STOPPED #PLAYSTATE_PAUSED #PLAYSTATE_PLAYING
			 */
			public getPlayState(): number;
			/**
			 * Returns the native frame count used by the hardware.
			 */
			protected getNativeFrameCount(): number;
			/**
			 * Returns marker position expressed in frames.
			 */
			public getNotificationMarkerPosition(): number;
			/**
			 * Returns the notification update period expressed in frames.
			 */
			public getPositionNotificationPeriod(): number;
			/**
			 * Returns the playback head position expressed in frames
			 */
			public getPlaybackHeadPosition(): number;
			/**
			 * Returns the hardware output sample rate
			 */
			public static getNativeOutputSampleRate(streamType: number): number;
			/**
			 * Returns the minimum buffer size required for the successful creation of an AudioTrack object to be created in the #MODE_STREAM mode. Note that this size doesn't guarantee a smooth playback under load, and higher values should be chosen according to the expected frequency at which the buffer will be refilled with additional data to play.
			 * @param sampleRateInHz the sample rate expressed in Hertz.
			 * @param channelConfig describes the configuration of the audio channels.
			 * @param audioFormat the format in which the audio data is represented.
			 */
			public static getMinBufferSize(sampleRateInHz: number, channelConfig: number, audioFormat: number): number;
			/**
			 * Returns the audio session ID.
			 */
			public getAudioSessionId(): number;
			/**
			 * Sets the listener the AudioTrack notifies when a previously set marker is reached or for each periodic playback head position update. Notifications will be received in the same thread as the one in which the AudioTrack instance was created.
			 * @param listener 
			 */
			public setPlaybackPositionUpdateListener(listener: android.media.AudioTrack.IOnPlaybackPositionUpdateListener): void;
			/**
			 * Sets the listener the AudioTrack notifies when a previously set marker is reached or for each periodic playback head position update. Use this method to receive AudioTrack events in the Handler associated with another thread than the one in which you created the AudioTrack instance.
			 * @param listener 
			 * @param handler the Handler that will receive the event notification messages.
			 */
			public setPlaybackPositionUpdateListener(listener: android.media.AudioTrack.IOnPlaybackPositionUpdateListener, handler: android.os.Handler): void;
			/**
			 * Sets the specified left/right output volume values on the AudioTrack. Values are clamped to the (#getMinVolume(), #getMaxVolume()) interval if outside this range.
			 * @param leftVolume output attenuation for the left channel. A value of 0.0f is silence,
			 * @param rightVolume output attenuation for the right channel
			 */
			public setStereoVolume(leftVolume: number, rightVolume: number): number;
			/**
			 * Sets the playback sample rate for this track. This sets the sampling rate at which the audio data will be consumed and played back, not the original sampling rate of the content. Setting it to half the sample rate of the content will cause the playback to last twice as long, but will also result in a negative pitch shift. The valid sample rate range is from 1Hz to twice the value returned by #getNativeOutputSampleRate(int).
			 * @param sampleRateInHz the sample rate expressed in Hz
			 */
			public setPlaybackRate(sampleRateInHz: number): number;
			/**
			 * Sets the position of the notification marker.
			 * @param markerInFrames marker in frames
			 */
			public setNotificationMarkerPosition(markerInFrames: number): number;
			/**
			 * Sets the period for the periodic notification event.
			 * @param periodInFrames update period expressed in frames
			 */
			public setPositionNotificationPeriod(periodInFrames: number): number;
			/**
			 * Sets the playback head position. The track must be stopped for the position to be changed.
			 * @param positionInFrames playback head position expressed in frames
			 */
			public setPlaybackHeadPosition(positionInFrames: number): number;
			/**
			 * Sets the loop points and the loop count. The loop can be infinite.
			 * @param startInFrames loop start marker expressed in frames
			 * @param endInFrames loop end marker expressed in frames
			 * @param loopCount the number of times the loop is looped.
			 */
			public setLoopPoints(startInFrames: number, endInFrames: number, loopCount: number): number;
			/**
			 * Sets the initialization state of the instance. To be used in an AudioTrack subclass constructor to set a subclass-specific post-initialization state.
			 * @param state the state of the AudioTrack instance
			 */
			protected setState(state: number): void;
			/**
			 * Starts playing an AudioTrack.
			 */
			public play(): void;
			/**
			 * Stops playing the audio data. When used on an instance created in #MODE_STREAM mode, audio will stop playing after the last buffer that was written has been played. For an immediate stop, use #pause(), followed by #flush() to discard audio data that hasn't been played back yet. IllegalStateException
			 */
			public stop(): void;
			/**
			 * Pauses the playback of the audio data. Data that has not been played back will not be discarded. Subsequent calls to #play will play this data back. See #flush() to discard this data.
			 */
			public pause(): void;
			/**
			 * Flushes the audio data currently queued for playback. Any data that has not been played back will be discarded.
			 */
			public flush(): void;
			/**
			 * Writes the audio data to the audio hardware for playback. Will block until all data has been written to the audio mixer. Note that the actual playback of this data might occur after this function returns. This function is thread safe with respect to #stop calls, in which case all of the specified data might not be written to the mixer.
			 * @param audioData the array that holds the data to play.
			 * @param offsetInBytes the offset expressed in bytes in audioData where the data to play
			 * @param sizeInBytes the number of bytes to read in audioData after the offset.
			 */
			public write(audioData: native.Array<number>, offsetInBytes: number, sizeInBytes: number): number;
			/**
			 * Notifies the native resource to reuse the audio data already loaded in the native layer. This call is only valid with AudioTrack instances that don't use the streaming model.
			 */
			public reloadStaticData(): number;
			/**
			 * Attaches an auxiliary effect to the audio track. A typical auxiliary effect is a reverberation effect which can be applied on any sound source that directs a certain amount of its energy to this effect. This amount is defined by setAuxEffectSendLevel(). #setAuxEffectSendLevel(float).
			 * @param effectId system wide unique id of the effect to attach
			 */
			public attachAuxEffect(effectId: number): number;
			/**
			 * Sets the send level of the audio track to the attached auxiliary effect #attachAuxEffect(int). The level value range is 0 to 1.0.
			 * @param level send level scalar
			 */
			public setAuxEffectSendLevel(level: number): number;
		}
		export module AudioTrack {
			/**
			 * Helper class to handle the forwarding of native events to the appropriate listener (potentially) handled in a different thread
			 */
			export class NativeEventHandlerDelegate extends java.lang.Object {
				static class: java.lang.Class<android.media.AudioTrack.NativeEventHandlerDelegate>;
				getHandler(): android.os.Handler;
			}
			/**
			 * Interface definition for a callback to be invoked when the playback head position of an AudioTrack has reached a notification marker or has increased by a certain period.
			 */
			interface IOnPlaybackPositionUpdateListener {
				/**
				 * Called on the listener to notify it that the previously set marker has been reached by the playback head.
				 */
				onMarkerReached(track: android.media.AudioTrack): void;
				/**
				 * Called on the listener to periodically notify it that the playback head has reached a multiple of the notification period.
				 */
				onPeriodicNotification(track: android.media.AudioTrack): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the playback head position of an AudioTrack has reached a notification marker or has increased by a certain period.
			 */
			export class OnPlaybackPositionUpdateListener implements android.media.AudioTrack.IOnPlaybackPositionUpdateListener {
				constructor(implementation: android.media.AudioTrack.IOnPlaybackPositionUpdateListener);
				/**
				 * Called on the listener to notify it that the previously set marker has been reached by the playback head.
				 */
				public onMarkerReached(track: android.media.AudioTrack): void;
				/**
				 * Called on the listener to periodically notify it that the playback head has reached a multiple of the notification period.
				 */
				public onPeriodicNotification(track: android.media.AudioTrack): void;
			}
		}
		/**
		 * MediaRouter allows applications to control the routing of media channels and streams from the current device to external speakers and destination devices.
		 */
		export class MediaRouter extends java.lang.Object {
			/**
			 * Route type flag for live audio.
			 */
			static ROUTE_TYPE_LIVE_AUDIO: number;
			/**
			 * Route type flag for live video.
			 */
			static ROUTE_TYPE_LIVE_VIDEO: number;
			/**
			 * Route type flag for application-specific usage.
			 */
			static ROUTE_TYPE_USER: number;
			static class: java.lang.Class<android.media.MediaRouter>;
			static typesToString(types: number): string;
			/**
			 * Return the currently selected route for the given types
			 * @param type route types
			 */
			public getSelectedRoute(type: number): android.media.MediaRouter.RouteInfo;
			/**
			 * Add a callback to listen to events about specific kinds of media routes. If the specified callback is already registered, its registration will be updated for any additional route types specified.
			 * @param types Types of routes this callback is interested in
			 * @param cb Callback to add
			 */
			public addCallback(types: number, cb: android.media.MediaRouter.Callback): void;
			/**
			 * Remove the specified callback. It will no longer receive events about media routing.
			 * @param cb Callback to remove
			 */
			public removeCallback(cb: android.media.MediaRouter.Callback): void;
			/**
			 * Select the specified route to use for output of the given media types.
			 * @param types type flags indicating which types this route should be used for.
			 * @param route Route to select
			 */
			public selectRoute(types: number, route: android.media.MediaRouter.RouteInfo): void;
			static selectRouteStatic(types: number, route: android.media.MediaRouter.RouteInfo): void;
			/**
			 * Add an app-specified route for media to the MediaRouter. App-specified route definitions are created using #createUserRoute(RouteCategory)
			 * @param info Definition of the route to add
			 */
			public addUserRoute(info: android.media.MediaRouter.UserRouteInfo): void;
			static addRouteStatic(info: android.media.MediaRouter.RouteInfo): void;
			/**
			 * Remove an app-specified route for media from the MediaRouter.
			 * @param info Definition of the route to remove
			 */
			public removeUserRoute(info: android.media.MediaRouter.UserRouteInfo): void;
			/**
			 * Remove all app-specified routes from the MediaRouter.
			 */
			public clearUserRoutes(): void;
			static removeRoute(info: android.media.MediaRouter.RouteInfo): void;
			removeRouteAt(routeIndex: number): void;
			/**
			 * Return the number of MediaRouter.RouteCategory categories currently represented by routes known to this MediaRouter.
			 */
			public getCategoryCount(): number;
			/**
			 * Return the MediaRouter.RouteCategory category at the given index. Valid indices are in the range [0-getCategoryCount).
			 * @param index which category to return
			 */
			public getCategoryAt(index: number): android.media.MediaRouter.RouteCategory;
			/**
			 * Return the number of MediaRouter.RouteInfo routes currently known to this MediaRouter.
			 */
			public getRouteCount(): number;
			/**
			 * Return the route at the specified index.
			 * @param index index of the route to return
			 */
			public getRouteAt(index: number): android.media.MediaRouter.RouteInfo;
			static getRouteCountStatic(): number;
			static getRouteAtStatic(index: number): android.media.MediaRouter.RouteInfo;
			/**
			 * Create a new user route that may be modified and registered for use by the application.
			 * @param category The category the new route will belong to
			 */
			public createUserRoute(category: android.media.MediaRouter.RouteCategory): android.media.MediaRouter.UserRouteInfo;
			/**
			 * Create a new route category. Each route must belong to a category.
			 * @param name Name of the new category
			 * @param isGroupable true if routes in this category may be grouped with one another
			 */
			public createRouteCategory(name: string, isGroupable: boolean): android.media.MediaRouter.RouteCategory;
			/**
			 * Create a new route category. Each route must belong to a category.
			 * @param nameResId Resource ID of the name of the new category
			 * @param isGroupable true if routes in this category may be grouped with one another
			 */
			public createRouteCategory(nameResId: number, isGroupable: boolean): android.media.MediaRouter.RouteCategory;
			static updateRoute(info: android.media.MediaRouter.RouteInfo): void;
			static dispatchRouteSelected(type: number, info: android.media.MediaRouter.RouteInfo): void;
			static dispatchRouteUnselected(type: number, info: android.media.MediaRouter.RouteInfo): void;
			static dispatchRouteChanged(info: android.media.MediaRouter.RouteInfo): void;
			static dispatchRouteAdded(info: android.media.MediaRouter.RouteInfo): void;
			static dispatchRouteRemoved(info: android.media.MediaRouter.RouteInfo): void;
			static dispatchRouteGrouped(info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup, index: number): void;
			static dispatchRouteUngrouped(info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup): void;
			static dispatchRouteVolumeChanged(info: android.media.MediaRouter.RouteInfo): void;
			static dispatchRoutePresentationDisplayChanged(info: android.media.MediaRouter.RouteInfo): void;
			static systemVolumeChanged(newValue: number): void;
		}
		export module MediaRouter {
			/**
			 * Information about a route that consists of multiple other routes in a group.
			 */
			export class RouteGroup extends android.media.MediaRouter.RouteInfo {
				static class: java.lang.Class<android.media.MediaRouter.RouteGroup>;
				getName(res: android.content.res.Resources): string;
				/**
				 * Add a route to this group. The route must not currently belong to another group.
				 * @param route route to add to this group
				 */
				public addRoute(route: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Add a route to this group before the specified index.
				 * @param route route to add
				 * @param insertAt insert the new route before this index
				 */
				public addRoute(route: android.media.MediaRouter.RouteInfo, insertAt: number): void;
				/**
				 * Remove a route from this group.
				 * @param route route to remove
				 */
				public removeRoute(route: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Remove the route at the specified index from this group.
				 * @param index index of the route to remove
				 */
				public removeRoute(index: number): void;
				public getRouteCount(): number;
				/**
				 * Return the route in this group at the specified index
				 * @param index Index to fetch
				 */
				public getRouteAt(index: number): android.media.MediaRouter.RouteInfo;
				/**
				 * Set an icon that will be used to represent this group. The system may use this icon in picker UIs or similar.
				 * @param icon icon drawable to use to represent this group
				 */
				public setIconDrawable(icon: android.graphics.drawable.Drawable): void;
				/**
				 * Set an icon that will be used to represent this group. The system may use this icon in picker UIs or similar.
				 * @param resId Resource ID of an icon drawable to use to represent this group
				 */
				public setIconResource(resId: number): void;
				public requestSetVolume(volume: number): void;
				public requestUpdateVolume(direction: number): void;
				memberNameChanged(info: android.media.MediaRouter.RouteInfo, name: string): void;
				memberStatusChanged(info: android.media.MediaRouter.RouteInfo, status: string): void;
				memberVolumeChanged(info: android.media.MediaRouter.RouteInfo): void;
				updateVolume(): void;
				routeUpdated(): void;
				updateName(): void;
				public toString(): string;
				getName(): string;
				/**
				 * Return the properly localized/resource selected name of this route. 
				 * @param context Context used to resolve the correct configuration to load
				 */
				getName(context: android.content.Context): string;
			}
			/**
			 * Interface for receiving events about media routing changes. All methods of this interface will be called from the application's main thread.
			 */
			export class Callback extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.media.MediaRouter.Callback>;
				/**
				 * Called when the supplied route becomes selected as the active route for the given route type.
				 * @param router the MediaRouter reporting the event
				 * @param type Type flag set indicating the routes that have been selected
				 * @param info Route that has been selected for the given route types
				 */
				public onRouteSelected(router: android.media.MediaRouter, type: number, info: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Called when the supplied route becomes unselected as the active route for the given route type.
				 * @param router the MediaRouter reporting the event
				 * @param type Type flag set indicating the routes that have been unselected
				 * @param info Route that has been unselected for the given route types
				 */
				public onRouteUnselected(router: android.media.MediaRouter, type: number, info: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Called when a route for the specified type was added.
				 * @param router the MediaRouter reporting the event
				 * @param info Route that has become available for use
				 */
				public onRouteAdded(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Called when a route for the specified type was removed.
				 * @param router the MediaRouter reporting the event
				 * @param info Route that has been removed from availability
				 */
				public onRouteRemoved(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Called when an aspect of the indicated route has changed.
				 * @param router the MediaRouter reporting the event
				 * @param info The route that was changed
				 */
				public onRouteChanged(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Called when a route is added to a group.
				 * @param router the MediaRouter reporting the event
				 * @param info The route that was added
				 * @param group The group the route was added to
				 * @param index The route index within group that info was added at
				 */
				public onRouteGrouped(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup, index: number): void;
				/**
				 * Called when a route is removed from a group.
				 * @param router the MediaRouter reporting the event
				 * @param info The route that was removed
				 * @param group The group the route was removed from
				 */
				public onRouteUngrouped(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup): void;
				/**
				 * Called when a route's volume changes.
				 * @param router the MediaRouter reporting the event
				 * @param info The route with altered volume
				 */
				public onRouteVolumeChanged(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				/**
				 * Called when a route's presentation display changes.
				 * @param router the MediaRouter reporting the event
				 * @param info The route whose presentation display changed
				 */
				public onRoutePresentationDisplayChanged(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
			}
			/**
			 * Information about a route that the application may define and modify. A user route defaults to RouteInfo#PLAYBACK_TYPE_REMOTE and RouteInfo#PLAYBACK_VOLUME_FIXED.
			 */
			export class UserRouteInfo extends android.media.MediaRouter.RouteInfo {
				static class: java.lang.Class<android.media.MediaRouter.UserRouteInfo>;
				/**
				 * Set the user-visible name of this route.
				 * @param name Name to display to the user to describe this route
				 */
				public setName(name: string): void;
				/**
				 * Set the user-visible name of this route.
				 * @param resId Resource ID of the name to display to the user to describe this route
				 */
				public setName(resId: number): void;
				/**
				 * Set the current user-visible status for this route.
				 * @param status Status to display to the user to describe what the endpoint
				 */
				public setStatus(status: string): void;
				/**
				 * Set the RemoteControlClient responsible for reporting playback info for this user route.
				 * @param rcc RemoteControlClient associated with this route
				 */
				public setRemoteControlClient(rcc: android.media.RemoteControlClient): void;
				/**
				 * Retrieve the RemoteControlClient associated with this route, if one has been set.
				 */
				public getRemoteControlClient(): android.media.RemoteControlClient;
				/**
				 * Set an icon that will be used to represent this route. The system may use this icon in picker UIs or similar.
				 * @param icon icon drawable to use to represent this route
				 */
				public setIconDrawable(icon: android.graphics.drawable.Drawable): void;
				/**
				 * Set an icon that will be used to represent this route. The system may use this icon in picker UIs or similar.
				 * @param resId Resource ID of an icon drawable to use to represent this route
				 */
				public setIconResource(resId: number): void;
				/**
				 * Set a callback to be notified of volume update requests
				 * @param vcb 
				 */
				public setVolumeCallback(vcb: android.media.MediaRouter.VolumeCallback): void;
				/**
				 * Defines whether playback associated with this route is "local" (RouteInfo#PLAYBACK_TYPE_LOCAL) or "remote" (RouteInfo#PLAYBACK_TYPE_REMOTE).
				 * @param type 
				 */
				public setPlaybackType(type: number): void;
				/**
				 * Defines whether volume for the playback associated with this route is fixed (RouteInfo#PLAYBACK_VOLUME_FIXED) or can modified (RouteInfo#PLAYBACK_VOLUME_VARIABLE).
				 * @param volumeHandling 
				 */
				public setVolumeHandling(volumeHandling: number): void;
				/**
				 * Defines at what volume the playback associated with this route is performed (for user feedback purposes). This information is only used when the playback is not local.
				 * @param volume 
				 */
				public setVolume(volume: number): void;
				public requestSetVolume(volume: number): void;
				public requestUpdateVolume(direction: number): void;
				/**
				 * Defines the maximum volume at which the playback associated with this route is performed (for user feedback purposes). This information is only used when the playback is not local.
				 * @param volumeMax 
				 */
				public setVolumeMax(volumeMax: number): void;
				/**
				 * Defines over what stream type the media is presented.
				 * @param stream 
				 */
				public setPlaybackStream(stream: number): void;
			}
			export class CallbackInfo extends java.lang.Object {
				constructor(cb: android.media.MediaRouter.Callback, type: number, router: android.media.MediaRouter);
				type: number;
				cb: android.media.MediaRouter.Callback;
				router: android.media.MediaRouter;
				static class: java.lang.Class<android.media.MediaRouter.CallbackInfo>;
			}
			export class WifiDisplayStatusChangedReceiver extends android.content.BroadcastReceiver {
				static class: java.lang.Class<android.media.MediaRouter.WifiDisplayStatusChangedReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			/**
			 * Interface for receiving events about volume changes. All methods of this interface will be called from the application's main thread.
			 */
			export class VolumeCallback extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.media.MediaRouter.VolumeCallback>;
				/**
				 * Called when the volume for the route should be increased or decreased.
				 * @param info the route affected by this event
				 * @param direction an integer indicating whether the volume is to be increased
				 */
				public onVolumeUpdateRequest(info: android.media.MediaRouter.RouteInfo, direction: number): void;
				/**
				 * Called when the volume for the route should be set to the given value
				 * @param info the route affected by this event
				 * @param volume an integer indicating the new volume value that should be used, always
				 */
				public onVolumeSetRequest(info: android.media.MediaRouter.RouteInfo, volume: number): void;
			}
			export class Static extends java.lang.Object implements android.hardware.display.DisplayManager.IDisplayListener {
				static class: java.lang.Class<android.media.MediaRouter.Static>;
				startMonitoringRoutes(appContext: android.content.Context): void;
				public onDisplayAdded(displayId: number): void;
				public onDisplayChanged(displayId: number): void;
				public onDisplayRemoved(displayId: number): void;
				public getAllPresentationDisplays(): native.Array<android.view.Display>;
			}
			/**
			 * Information about a media route.
			 */
			export class RouteInfo extends java.lang.Object {
				/**
				 * The default playback type, "local", indicating the presentation of the media is happening on the same device (e.g. a phone, a tablet) as where it is controlled from. #setPlaybackType(int)
				 */
				static PLAYBACK_TYPE_LOCAL: number;
				/**
				 * A playback type indicating the presentation of the media is happening on a different device (i.e. the remote device) than where it is controlled from. #setPlaybackType(int)
				 */
				static PLAYBACK_TYPE_REMOTE: number;
				/**
				 * Playback information indicating the playback volume is fixed, i.e. it cannot be controlled from this object. An example of fixed playback volume is a remote player, playing over HDMI where the user prefers to control the volume on the HDMI sink, rather than attenuate at the source. #setVolumeHandling(int)
				 */
				static PLAYBACK_VOLUME_FIXED: number;
				/**
				 * Playback information indicating the playback volume is variable and can be controlled from this object.
				 */
				static PLAYBACK_VOLUME_VARIABLE: number;
				static class: java.lang.Class<android.media.MediaRouter.RouteInfo>;
				public getName(): string;
				/**
				 * Return the properly localized/resource selected name of this route. 
				 * @param context Context used to resolve the correct configuration to load
				 */
				public getName(context: android.content.Context): string;
				getName(res: android.content.res.Resources): string;
				public getStatus(): string;
				/**
				 * Set this route's status by predetermined status code. If the caller should dispatch a route changed event this call will return true;
				 */
				setStatusCode(statusCode: number): boolean;
				public getSupportedTypes(): number;
				public getGroup(): android.media.MediaRouter.RouteGroup;
				public getCategory(): android.media.MediaRouter.RouteCategory;
				/**
				 * Get the icon representing this route. This icon will be used in picker UIs if available.
				 */
				public getIconDrawable(): android.graphics.drawable.Drawable;
				/**
				 * Set an application-specific tag object for this route. The application may use this to store arbitrary data associated with the route for internal tracking.
				 * @param tag Arbitrary, app-specific data for this route to hold for later use
				 */
				public setTag(tag: any): void;
				public getTag(): any;
				public getPlaybackType(): number;
				public getPlaybackStream(): number;
				/**
				 * Return the current volume for this route. Depending on the route, this may only be valid if the route is currently selected.
				 */
				public getVolume(): number;
				/**
				 * Request a volume change for this route.
				 * @param volume value between 0 and getVolumeMax
				 */
				public requestSetVolume(volume: number): void;
				/**
				 * Request an incremental volume update for this route.
				 * @param direction Delta to apply to the current volume
				 */
				public requestUpdateVolume(direction: number): void;
				public getVolumeMax(): number;
				public getVolumeHandling(): number;
				/**
				 * Gets the Display that should be used by the application to show a android.app.Presentation on an external display when this route is selected. Depending on the route, this may only be valid if the route is currently selected.
				 */
				public getPresentationDisplay(): android.view.Display;
				public isEnabled(): boolean;
				setStatusInt(status: string): void;
				routeUpdated(): void;
				public toString(): string;
			}
			export class VolumeCallbackInfo extends java.lang.Object {
				constructor(vcb: android.media.MediaRouter.VolumeCallback, route: android.media.MediaRouter.RouteInfo);
				vcb: android.media.MediaRouter.VolumeCallback;
				route: android.media.MediaRouter.RouteInfo;
				static class: java.lang.Class<android.media.MediaRouter.VolumeCallbackInfo>;
			}
			/**
			 * Stub implementation of MediaRouter.Callback. Each abstract method is defined as a no-op. Override just the ones you need.
			 */
			export class SimpleCallback extends android.media.MediaRouter.Callback {
				constructor();
				static class: java.lang.Class<android.media.MediaRouter.SimpleCallback>;
				public onRouteSelected(router: android.media.MediaRouter, type: number, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteUnselected(router: android.media.MediaRouter, type: number, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteAdded(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteRemoved(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteChanged(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteGrouped(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup, index: number): void;
				public onRouteUngrouped(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup): void;
				public onRouteVolumeChanged(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
			}
			/**
			 * Definition of a category of routes. All routes belong to a category.
			 */
			export class RouteCategory extends java.lang.Object {
				static class: java.lang.Class<android.media.MediaRouter.RouteCategory>;
				public getName(): string;
				/**
				 * Return the properly localized/configuration dependent name of this RouteCategory. 
				 * @param context Context to resolve name resources
				 */
				public getName(context: android.content.Context): string;
				getName(res: android.content.res.Resources): string;
				/**
				 * Return the current list of routes in this category that have been added to the MediaRouter.
				 * @param out a List to fill with the routes in this category. If this parameter is
				 */
				public getRoutes(out: java.util.IList<android.media.MediaRouter.RouteInfo>): java.util.IList<android.media.MediaRouter.RouteInfo>;
				public getSupportedTypes(): number;
				/**
				 * Return whether or not this category supports grouping.
				 */
				public isGroupable(): boolean;
				public toString(): string;
			}
			export class VolumeChangeReceiver extends android.content.BroadcastReceiver {
				static class: java.lang.Class<android.media.MediaRouter.VolumeChangeReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
		}
		/**
		 * Used to record audio and video. The recording control is based on a simple state machine (see below).
		 */
		export class MediaRecorder extends java.lang.Object {
			/**
			 * Default constructor.
			 */
			constructor();
			/**
			 * Unspecified media recorder error. android.media.MediaRecorder.OnErrorListener
			 */
			static MEDIA_RECORDER_ERROR_UNKNOWN: number;
			/**
			 * Media server died. In this case, the application must release the MediaRecorder object and instantiate a new one. android.media.MediaRecorder.OnErrorListener
			 */
			static MEDIA_ERROR_SERVER_DIED: number;
			/**
			 * Unspecified media recorder error. android.media.MediaRecorder.OnInfoListener
			 */
			static MEDIA_RECORDER_INFO_UNKNOWN: number;
			/**
			 * A maximum duration had been setup and has now been reached. android.media.MediaRecorder.OnInfoListener
			 */
			static MEDIA_RECORDER_INFO_MAX_DURATION_REACHED: number;
			/**
			 * A maximum filesize had been setup and has now been reached. android.media.MediaRecorder.OnInfoListener
			 */
			static MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED: number;
			static class: java.lang.Class<android.media.MediaRecorder>;
			EventHandler: {
	new (mr: android.media.MediaRecorder, looper: android.os.Looper): android.media.MediaRecorder.EventHandler;
};
			/**
			 * Sets a Camera to use for recording. Use this function to switch quickly between preview and capture mode without a teardown of the camera object. android.hardware.Camera#unlock() should be called before this. Must call before prepare().
			 * @param c the Camera to use for recording
			 */
			public setCamera(c: android.hardware.Camera): void;
			/**
			 * Sets a Surface to show a preview of recorded media (video). Calls this before prepare() to make sure that the desirable preview display is set. If #setCamera(Camera) is used and the surface has been already set to the camera, application do not need to call this. If this is called with non-null surface, the preview surface of the camera will be replaced by the new surface. If this method is called with null surface or not called at all, media recorder will not change the preview surface of the camera.
			 * @param sv the Surface to use for the preview
			 */
			public setPreviewDisplay(sv: android.view.Surface): void;
			/**
			 * Sets the audio source to be used for recording. If this method is not called, the output file will not contain an audio track. The source needs to be specified before setting recording-parameters or encoders. Call this only before setOutputFormat().
			 * @param audio_source the audio source to use
			 */
			public setAudioSource(audio_source: number): void;
			/**
			 * Gets the maximum value for audio sources. android.media.MediaRecorder.AudioSource
			 */
			public static getAudioSourceMax(): number;
			/**
			 * Sets the video source to be used for recording. If this method is not called, the output file will not contain an video track. The source needs to be specified before setting recording-parameters or encoders. Call this only before setOutputFormat().
			 * @param video_source the video source to use
			 */
			public setVideoSource(video_source: number): void;
			/**
			 * Uses the settings from a CamcorderProfile object for recording. This method should be called after the video AND audio sources are set, and before setOutputFile(). If a time lapse CamcorderProfile is used, audio related source or recording parameters are ignored.
			 * @param profile the CamcorderProfile to use
			 */
			public setProfile(profile: android.media.CamcorderProfile): void;
			/**
			 * Set video frame capture rate. This can be used to set a different video frame capture rate than the recorded video's playback rate. This method also sets the recording mode to time lapse. In time lapse video recording, only video is recorded. Audio related parameters are ignored when a time lapse recording session starts, if an application sets them.
			 * @param fps Rate at which frames should be captured in frames per second.
			 */
			public setCaptureRate(fps: number): void;
			/**
			 * Sets the orientation hint for output video playback. This method should be called before prepare(). This method will not trigger the source video frame to rotate during video recording, but to add a composition matrix containing the rotation angle in the output video if the output format is OutputFormat.THREE_GPP or OutputFormat.MPEG_4 so that a video player can choose the proper orientation for playback. Note that some video players may choose to ignore the compostion matrix in a video during playback.
			 * @param degrees the angle to be rotated clockwise in degrees.
			 */
			public setOrientationHint(degrees: number): void;
			/**
			 * Set and store the geodata (latitude and longitude) in the output file. This method should be called before prepare(). The geodata is stored in udta box if the output format is OutputFormat.THREE_GPP or OutputFormat.MPEG_4, and is ignored for other output formats. The geodata is stored according to ISO-6709 standard.
			 * @param latitude latitude in degrees. Its value must be in the
			 * @param longitude longitude in degrees. Its value must be in the
			 */
			public setLocation(latitude: number, longitude: number): void;
			/**
			 * Sets the format of the output file produced during recording. Call this after setAudioSource()/setVideoSource() but before prepare().
			 * @param output_format the output format to use. The output format
			 */
			public setOutputFormat(output_format: number): void;
			/**
			 * Sets the width and height of the video to be captured. Must be called after setVideoSource(). Call this after setOutFormat() but before prepare().
			 * @param width the width of the video to be captured
			 * @param height the height of the video to be captured
			 */
			public setVideoSize(width: number, height: number): void;
			/**
			 * Sets the frame rate of the video to be captured. Must be called after setVideoSource(). Call this after setOutFormat() but before prepare().
			 * @param rate the number of frames per second of video to capture
			 */
			public setVideoFrameRate(rate: number): void;
			/**
			 * Sets the maximum duration (in ms) of the recording session. Call this after setOutFormat() but before prepare(). After recording reaches the specified duration, a notification will be sent to the android.media.MediaRecorder.OnInfoListener with a "what" code of #MEDIA_RECORDER_INFO_MAX_DURATION_REACHED and recording will be stopped. Stopping happens asynchronously, there is no guarantee that the recorder will have stopped by the time the listener is notified.
			 * @param max_duration_ms the maximum duration in ms (if zero or negative, disables the duration limit)
			 */
			public setMaxDuration(max_duration_ms: number): void;
			/**
			 * Sets the maximum filesize (in bytes) of the recording session. Call this after setOutFormat() but before prepare(). After recording reaches the specified filesize, a notification will be sent to the android.media.MediaRecorder.OnInfoListener with a "what" code of #MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED and recording will be stopped. Stopping happens asynchronously, there is no guarantee that the recorder will have stopped by the time the listener is notified.
			 * @param max_filesize_bytes the maximum filesize in bytes (if zero or negative, disables the limit)
			 */
			public setMaxFileSize(max_filesize_bytes: number): void;
			/**
			 * Sets the audio encoder to be used for recording. If this method is not called, the output file will not contain an audio track. Call this after setOutputFormat() but before prepare().
			 * @param audio_encoder the audio encoder to use.
			 */
			public setAudioEncoder(audio_encoder: number): void;
			/**
			 * Sets the video encoder to be used for recording. If this method is not called, the output file will not contain an video track. Call this after setOutputFormat() and before prepare().
			 * @param video_encoder the video encoder to use.
			 */
			public setVideoEncoder(video_encoder: number): void;
			/**
			 * Sets the audio sampling rate for recording. Call this method before prepare(). Prepare() may perform additional checks on the parameter to make sure whether the specified audio sampling rate is applicable. The sampling rate really depends on the format for the audio recording, as well as the capabilities of the platform. For instance, the sampling rate supported by AAC audio coding standard ranges from 8 to 96 kHz, the sampling rate supported by AMRNB is 8kHz, and the sampling rate supported by AMRWB is 16kHz. Please consult with the related audio coding standard for the supported audio sampling rate.
			 * @param samplingRate the sampling rate for audio in samples per second.
			 */
			public setAudioSamplingRate(samplingRate: number): void;
			/**
			 * Sets the number of audio channels for recording. Call this method before prepare(). Prepare() may perform additional checks on the parameter to make sure whether the specified number of audio channels are applicable.
			 * @param numChannels the number of audio channels. Usually it is either 1 (mono) or 2
			 */
			public setAudioChannels(numChannels: number): void;
			/**
			 * Sets the audio encoding bit rate for recording. Call this method before prepare(). Prepare() may perform additional checks on the parameter to make sure whether the specified bit rate is applicable, and sometimes the passed bitRate will be clipped internally to ensure the audio recording can proceed smoothly based on the capabilities of the platform.
			 * @param bitRate the audio encoding bit rate in bits per second.
			 */
			public setAudioEncodingBitRate(bitRate: number): void;
			/**
			 * Sets the video encoding bit rate for recording. Call this method before prepare(). Prepare() may perform additional checks on the parameter to make sure whether the specified bit rate is applicable, and sometimes the passed bitRate will be clipped internally to ensure the video recording can proceed smoothly based on the capabilities of the platform.
			 * @param bitRate the video encoding bit rate in bits per second.
			 */
			public setVideoEncodingBitRate(bitRate: number): void;
			/**
			 * Pass in the file descriptor of the file to be written. Call this after setOutputFormat() but before prepare().
			 * @param fd an open file descriptor to be written into.
			 */
			public setOutputFile(fd: java.io.FileDescriptor): void;
			/**
			 * Sets the path of the output file to be produced. Call this after setOutputFormat() but before prepare().
			 * @param path The pathname to use.
			 */
			public setOutputFile(path: string): void;
			/**
			 * Prepares the recorder to begin capturing and encoding data. This method must be called after setting up the desired audio and video sources, encoders, file format, etc., but before start().
			 */
			public prepare(): void;
			/**
			 * Begins capturing and encoding data to the file specified with setOutputFile(). Call this after prepare().
			 */
			public start(): void;
			/**
			 * Stops recording. Call this after start(). Once recording is stopped, you will have to configure it again as if it has just been constructed. Note that a RuntimeException is intentionally thrown to the application, if no valid audio/video data has been received when stop() is called. This happens if stop() is called immediately after start(). The failure lets the application take action accordingly to clean up the output file (delete the output file, for instance), since the output file is not properly constructed when this happens.
			 */
			public stop(): void;
			/**
			 * Restarts the MediaRecorder to its idle state. After calling this method, you will have to configure it again as if it had just been constructed.
			 */
			public reset(): void;
			/**
			 * Returns the maximum absolute amplitude that was sampled since the last call to this method. Call this only after the setAudioSource().
			 */
			public getMaxAmplitude(): number;
			/**
			 * Register a callback to be invoked when an error occurs while recording.
			 * @param l the callback that will be run
			 */
			public setOnErrorListener(l: android.media.MediaRecorder.IOnErrorListener): void;
			/**
			 * Register a callback to be invoked when an informational event occurs while recording.
			 * @param listener the callback that will be run
			 */
			public setOnInfoListener(listener: android.media.MediaRecorder.IOnInfoListener): void;
			/**
			 * Releases resources associated with this MediaRecorder object. It is good practice to call this method when you're done using the MediaRecorder. In particular, whenever an Activity of an application is paused (its onPause() method is called), or stopped (its onStop() method is called), this method should be invoked to release the MediaRecorder object, unless the application has a special need to keep the object around. In addition to unnecessary resources (such as memory and instances of codecs) being held, failure to call this method immediately if a MediaRecorder object is no longer needed may also lead to continuous battery consumption for mobile devices, and recording failure for other applications if no multiple instances of the same codec are supported on a device. Even if multiple instances of the same codec are supported, some performance degradation may be expected when unnecessary multiple instances are used at the same time.
			 */
			public release(): void;
			protected finalize(): void;
		}
		export module MediaRecorder {
			/**
			 * Defines the audio source. These constants are used with MediaRecorder#setAudioSource(int).
			 */
			export class AudioSource extends java.lang.Object {
				/**
				 * Default audio source
				 */
				static DEFAULT: number;
				/**
				 * Microphone audio source
				 */
				static MIC: number;
				/**
				 * Voice call uplink (Tx) audio source
				 */
				static VOICE_UPLINK: number;
				/**
				 * Voice call downlink (Rx) audio source
				 */
				static VOICE_DOWNLINK: number;
				/**
				 * Voice call uplink + downlink audio source
				 */
				static VOICE_CALL: number;
				/**
				 * Microphone audio source with same orientation as camera if available, the main device microphone otherwise
				 */
				static CAMCORDER: number;
				/**
				 * Microphone audio source tuned for voice recognition if available, behaves like #DEFAULT otherwise.
				 */
				static VOICE_RECOGNITION: number;
				/**
				 * Microphone audio source tuned for voice communications such as VoIP. It will for instance take advantage of echo cancellation or automatic gain control if available. It otherwise behaves like #DEFAULT if no voice processing is applied.
				 */
				static VOICE_COMMUNICATION: number;
				static class: java.lang.Class<android.media.MediaRecorder.AudioSource>;
			}
			/**
			 * Interface definition for a callback to be invoked when an error occurs while recording.
			 */
			export class OnInfoListener implements android.media.MediaRecorder.IOnInfoListener {
				constructor(implementation: android.media.MediaRecorder.IOnInfoListener);
				/**
				 * Called when an error occurs while recording.
				 * @param mr the MediaRecorder that encountered the error
				 * @param what the type of error that has occurred:
				 * @param extra an extra code, specific to the error type
				 */
				public onInfo(mr: android.media.MediaRecorder, what: number, extra: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an error occurs while recording.
			 */
			export class OnErrorListener implements android.media.MediaRecorder.IOnErrorListener {
				constructor(implementation: android.media.MediaRecorder.IOnErrorListener);
				/**
				 * Called when an error occurs while recording.
				 * @param mr the MediaRecorder that encountered the error
				 * @param what the type of error that has occurred:
				 * @param extra an extra code, specific to the error type
				 */
				public onError(mr: android.media.MediaRecorder, what: number, extra: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when an error occurs while recording.
			 */
			interface IOnErrorListener {
				/**
				 * Called when an error occurs while recording.
				 * @param mr the MediaRecorder that encountered the error
				 * @param what the type of error that has occurred:
				 * @param extra an extra code, specific to the error type
				 */
				onError(mr: android.media.MediaRecorder, what: number, extra: number): void;
			}
			/**
			 * Defines the video encoding. These constants are used with MediaRecorder#setVideoEncoder(int).
			 */
			export class VideoEncoder extends java.lang.Object {
				static DEFAULT: number;
				static H263: number;
				static H264: number;
				static MPEG_4_SP: number;
				static class: java.lang.Class<android.media.MediaRecorder.VideoEncoder>;
			}
			/**
			 * Defines the video source. These constants are used with MediaRecorder#setVideoSource(int).
			 */
			export class VideoSource extends java.lang.Object {
				static DEFAULT: number;
				/**
				 * Camera video source
				 */
				static CAMERA: number;
				static class: java.lang.Class<android.media.MediaRecorder.VideoSource>;
			}
			/**
			 * Defines the output format. These constants are used with MediaRecorder#setOutputFormat(int).
			 */
			export class OutputFormat extends java.lang.Object {
				static DEFAULT: number;
				/**
				 * 3GPP media file format
				 */
				static THREE_GPP: number;
				/**
				 * MPEG4 media file format
				 */
				static MPEG_4: number;
				/**
				 * AMR NB file format Deprecated in favor of MediaRecorder.OutputFormat.AMR_NB
				 */
				static RAW_AMR: number;
				/**
				 * AMR NB file format
				 */
				static AMR_NB: number;
				/**
				 * AMR WB file format
				 */
				static AMR_WB: number;
				/**
				 * AAC ADTS file format
				 */
				static AAC_ADTS: number;
				static class: java.lang.Class<android.media.MediaRecorder.OutputFormat>;
			}
			/**
			 * Defines the audio encoding. These constants are used with MediaRecorder#setAudioEncoder(int).
			 */
			export class AudioEncoder extends java.lang.Object {
				static DEFAULT: number;
				/**
				 * AMR (Narrowband) audio codec
				 */
				static AMR_NB: number;
				/**
				 * AMR (Wideband) audio codec
				 */
				static AMR_WB: number;
				/**
				 * AAC Low Complexity (AAC-LC) audio codec
				 */
				static AAC: number;
				/**
				 * High Efficiency AAC (HE-AAC) audio codec
				 */
				static HE_AAC: number;
				/**
				 * Enhanced Low Delay AAC (AAC-ELD) audio codec
				 */
				static AAC_ELD: number;
				static class: java.lang.Class<android.media.MediaRecorder.AudioEncoder>;
			}
			/**
			 * Interface definition for a callback to be invoked when an error occurs while recording.
			 */
			interface IOnInfoListener {
				/**
				 * Called when an error occurs while recording.
				 * @param mr the MediaRecorder that encountered the error
				 * @param what the type of error that has occurred:
				 * @param extra an extra code, specific to the error type
				 */
				onInfo(mr: android.media.MediaRecorder, what: number, extra: number): void;
			}
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.media.MediaRecorder.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * Class to hold the timed text's metadata, including: <ul> <li> The characters for rendering</li> <li> The rendering position for the timed text</li> </ul>
		 */
		export class TimedText extends java.lang.Object {
			static class: java.lang.Class<android.media.TimedText>;
			/**
			 * Get the characters in the timed text.
			 */
			public getText(): string;
			/**
			 * Get the rectangle area or region for rendering the timed text as specified by a Rect object.
			 */
			public getBounds(): android.graphics.Rect;
		}
		export module audiofx {
			/**
			 * A sound generated within a room travels in many directions. The listener first hears the direct sound from the source itself. Later, he or she hears discrete echoes caused by sound bouncing off nearby walls, the ceiling and the floor. As sound waves arrive after undergoing more and more reflections, individual reflections become indistinguishable and the listener hears continuous reverberation that decays over time. Reverb is vital for modeling a listener's environment. It can be used in music applications to simulate music being played back in various environments, or in games to immerse the listener within the game's environment. The PresetReverb class allows an application to configure the global reverb using a reverb preset. This is primarily used for adding some reverb in a music playback context. Applications requiring control over a more advanced environmental reverb are advised to use the android.media.audiofx.EnvironmentalReverb class.
			 */
			export class PresetReverb extends android.media.audiofx.AudioEffect {
				/**
				 * Class constructor.
				 * @param priority the priority level requested by the application for controlling the
				 * @param audioSession system wide unique audio session identifier. If audioSession
				 */
				constructor(priority: number, audioSession: number);
				/**
				 * Preset. Parameter ID for android.media.audiofx.PresetReverb.OnParameterChangeListener
				 */
				static PARAM_PRESET: number;
				/**
				 * No reverb or reflections
				 */
				static PRESET_NONE: number;
				/**
				 * Reverb preset representing a small room less than five meters in length
				 */
				static PRESET_SMALLROOM: number;
				/**
				 * Reverb preset representing a medium room with a length of ten meters or less
				 */
				static PRESET_MEDIUMROOM: number;
				/**
				 * Reverb preset representing a large-sized room suitable for live performances
				 */
				static PRESET_LARGEROOM: number;
				/**
				 * Reverb preset representing a medium-sized hall
				 */
				static PRESET_MEDIUMHALL: number;
				/**
				 * Reverb preset representing a large-sized hall suitable for a full orchestra
				 */
				static PRESET_LARGEHALL: number;
				/**
				 * Reverb preset representing a synthesis of the traditional plate reverb
				 */
				static PRESET_PLATE: number;
				static class: java.lang.Class<android.media.audiofx.PresetReverb>;
				/**
				 * Enables a preset on the reverb.
				 * @param preset this must be one of the the preset constants defined in this class.
				 */
				public setPreset(preset: number): void;
				/**
				 * Gets current reverb preset.
				 */
				public getPreset(): number;
				/**
				 * Registers an OnParameterChangeListener interface.
				 * @param listener OnParameterChangeListener interface registered
				 */
				public setParameterListener(listener: android.media.audiofx.PresetReverb.IOnParameterChangeListener): void;
				/**
				 * Gets the preset reverb properties. This method is useful when a snapshot of current preset reverb settings must be saved by the application.
				 */
				public getProperties(): android.media.audiofx.PresetReverb.Settings;
				/**
				 * Sets the preset reverb properties. This method is useful when preset reverb settings have to be applied from a previous backup.
				 * @param settings a PresetReverb.Settings object containing the properties to apply
				 */
				public setProperties(settings: android.media.audiofx.PresetReverb.Settings): void;
			}
			export module PresetReverb {
				/**
				 * Listener used internally to receive unformatted parameter change events from AudioEffect super class.
				 */
				export class BaseParameterListener extends java.lang.Object {
					static class: java.lang.Class<android.media.audiofx.PresetReverb.BaseParameterListener>;
					public onParameterChange(effect: android.media.audiofx.AudioEffect, status: number, param: native.Array<number>, value: native.Array<number>): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the PresetReverb when a parameter value has changed.
				 */
				interface IOnParameterChangeListener {
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same PresetReverb engine.
					 * @param effect the PresetReverb on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_PRESET} ...
					 * @param value the new parameter value.
					 */
					onParameterChange(effect: android.media.audiofx.PresetReverb, status: number, param: number, value: number): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the PresetReverb when a parameter value has changed.
				 */
				export class OnParameterChangeListener implements android.media.audiofx.PresetReverb.IOnParameterChangeListener {
					constructor(implementation: android.media.audiofx.PresetReverb.IOnParameterChangeListener);
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same PresetReverb engine.
					 * @param effect the PresetReverb on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_PRESET} ...
					 * @param value the new parameter value.
					 */
					public onParameterChange(effect: android.media.audiofx.PresetReverb, status: number, param: number, value: number): void;
				}
				/**
				 * The Settings class regroups all preset reverb parameters. It is used in conjuntion with getProperties() and setProperties() methods to backup and restore all parameters in a single call.
				 */
				export class Settings extends java.lang.Object {
					constructor();
					/**
					 * Settings class constructor from a key=value; pairs formatted string. The string is typically returned by Settings.toString() method. IllegalArgumentException if the string is not correctly formatted.
					 */
					constructor(settings: string);
					preset: number;
					static class: java.lang.Class<android.media.audiofx.PresetReverb.Settings>;
					public toString(): string;
				}
			}
			/**
			 * Bass boost is an audio effect to boost or amplify low frequencies of the sound. It is comparable to a simple equalizer but limited to one band amplification in the low frequency range.
			 */
			export class BassBoost extends android.media.audiofx.AudioEffect {
				/**
				 * Class constructor.
				 * @param priority the priority level requested by the application for controlling the BassBoost
				 * @param audioSession system wide unique audio session identifier. The BassBoost will be
				 */
				constructor(priority: number, audioSession: number);
				/**
				 * Is strength parameter supported by bass boost engine. Parameter ID for getParameter().
				 */
				static PARAM_STRENGTH_SUPPORTED: number;
				/**
				 * Bass boost effect strength. Parameter ID for android.media.audiofx.BassBoost.OnParameterChangeListener
				 */
				static PARAM_STRENGTH: number;
				static class: java.lang.Class<android.media.audiofx.BassBoost>;
				/**
				 * Indicates whether setting strength is supported. If this method returns false, only one strength is supported and the setStrength() method always rounds to that value.
				 */
				public getStrengthSupported(): boolean;
				/**
				 * Sets the strength of the bass boost effect. If the implementation does not support per mille accuracy for setting the strength, it is allowed to round the given strength to the nearest supported value. You can use the #getRoundedStrength() method to query the (possibly rounded) value that was actually set.
				 * @param strength strength of the effect. The valid range for strength strength is [0, 1000],
				 */
				public setStrength(strength: number): void;
				/**
				 * Gets the current strength of the effect.
				 */
				public getRoundedStrength(): number;
				/**
				 * Registers an OnParameterChangeListener interface.
				 * @param listener OnParameterChangeListener interface registered
				 */
				public setParameterListener(listener: android.media.audiofx.BassBoost.IOnParameterChangeListener): void;
				/**
				 * Gets the bass boost properties. This method is useful when a snapshot of current bass boost settings must be saved by the application.
				 */
				public getProperties(): android.media.audiofx.BassBoost.Settings;
				/**
				 * Sets the bass boost properties. This method is useful when bass boost settings have to be applied from a previous backup.
				 * @param settings a BassBoost.Settings object containing the properties to apply
				 */
				public setProperties(settings: android.media.audiofx.BassBoost.Settings): void;
			}
			export module BassBoost {
				/**
				 * Listener used internally to receive unformatted parameter change events from AudioEffect super class.
				 */
				export class BaseParameterListener extends java.lang.Object {
					static class: java.lang.Class<android.media.audiofx.BassBoost.BaseParameterListener>;
					public onParameterChange(effect: android.media.audiofx.AudioEffect, status: number, param: native.Array<number>, value: native.Array<number>): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the BassBoost when a parameter value has changed.
				 */
				interface IOnParameterChangeListener {
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same BassBoost engine.
					 * @param effect the BassBoost on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_STRENGTH} ...
					 * @param value the new parameter value.
					 */
					onParameterChange(effect: android.media.audiofx.BassBoost, status: number, param: number, value: number): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the BassBoost when a parameter value has changed.
				 */
				export class OnParameterChangeListener implements android.media.audiofx.BassBoost.IOnParameterChangeListener {
					constructor(implementation: android.media.audiofx.BassBoost.IOnParameterChangeListener);
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same BassBoost engine.
					 * @param effect the BassBoost on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_STRENGTH} ...
					 * @param value the new parameter value.
					 */
					public onParameterChange(effect: android.media.audiofx.BassBoost, status: number, param: number, value: number): void;
				}
				/**
				 * The Settings class regroups all bass boost parameters. It is used in conjuntion with getProperties() and setProperties() methods to backup and restore all parameters in a single call.
				 */
				export class Settings extends java.lang.Object {
					constructor();
					/**
					 * Settings class constructor from a key=value; pairs formatted string. The string is typically returned by Settings.toString() method. IllegalArgumentException if the string is not correctly formatted.
					 */
					constructor(settings: string);
					strength: number;
					static class: java.lang.Class<android.media.audiofx.BassBoost.Settings>;
					public toString(): string;
				}
			}
			/**
			 * Acoustic Echo Canceler (AEC).
			 */
			export class AcousticEchoCanceler extends android.media.audiofx.AudioEffect {
				static class: java.lang.Class<android.media.audiofx.AcousticEchoCanceler>;
				/**
				 * Checks if the device implements acoustic echo cancellation.
				 */
				public static isAvailable(): boolean;
				/**
				 * Creates an AcousticEchoCanceler and attaches it to the AudioRecord on the audio session specified.
				 * @param audioSession system wide unique audio session identifier. The AcousticEchoCanceler
				 */
				public static create(audioSession: number): android.media.audiofx.AcousticEchoCanceler;
			}
			/**
			 * The Visualizer class enables application to retrieve part of the currently playing audio for visualization purpose. It is not an audio recording interface and only returns partial and low quality audio content. However, to protect privacy of certain audio data (e.g voice mail) the use of the visualizer requires the permission android.permission.RECORD_AUDIO.
			 */
			export class Visualizer extends java.lang.Object {
				/**
				 * Class constructor.
				 * @param audioSession system wide unique audio session identifier. If audioSession
				 */
				constructor(audioSession: number);
				/**
				 * State of a Visualizer object that was not successfully initialized upon creation
				 */
				static STATE_UNINITIALIZED: number;
				/**
				 * State of a Visualizer object that is ready to be used.
				 */
				static STATE_INITIALIZED: number;
				/**
				 * State of a Visualizer object that is active.
				 */
				static STATE_ENABLED: number;
				/**
				 * Defines a capture mode where amplification is applied based on the content of the captured data. This is the default Visualizer mode, and is suitable for music visualization.
				 */
				static SCALING_MODE_NORMALIZED: number;
				/**
				 * Defines a capture mode where the playback volume will affect (scale) the range of the captured data. A low playback volume will lead to low sample and fft values, and vice-versa.
				 */
				static SCALING_MODE_AS_PLAYED: number;
				/**
				 * Successful operation.
				 */
				static SUCCESS: number;
				/**
				 * Unspecified error.
				 */
				static ERROR: number;
				/**
				 * Internal operation status. Not returned by any method.
				 */
				static ALREADY_EXISTS: number;
				/**
				 * Operation failed due to bad object initialization.
				 */
				static ERROR_NO_INIT: number;
				/**
				 * Operation failed due to bad parameter value.
				 */
				static ERROR_BAD_VALUE: number;
				/**
				 * Operation failed because it was requested in wrong state.
				 */
				static ERROR_INVALID_OPERATION: number;
				/**
				 * Operation failed due to lack of memory.
				 */
				static ERROR_NO_MEMORY: number;
				/**
				 * Operation failed due to dead remote object.
				 */
				static ERROR_DEAD_OBJECT: number;
				static class: java.lang.Class<android.media.audiofx.Visualizer>;
				NativeEventHandler: {
	new (v: android.media.audiofx.Visualizer, looper: android.os.Looper): android.media.audiofx.Visualizer.NativeEventHandler;
};
				/**
				 * Releases the native Visualizer resources. It is a good practice to release the visualization engine when not in use.
				 */
				public release(): void;
				protected finalize(): void;
				/**
				 * Enable or disable the visualization engine.
				 * @param enabled requested enable state
				 */
				public setEnabled(enabled: boolean): number;
				/**
				 * Get current activation state of the visualizer.
				 */
				public getEnabled(): boolean;
				/**
				 * Returns the capture size range.
				 */
				public static getCaptureSizeRange(): native.Array<number>;
				/**
				 * Returns the maximum capture rate for the callback capture method. This is the maximum value for the rate parameter of the #setDataCaptureListener(OnDataCaptureListener, int, boolean, boolean) method.
				 */
				public static getMaxCaptureRate(): number;
				/**
				 * Sets the capture size, i.e. the number of bytes returned by #getWaveForm(byte[]) and #getFft(byte[]) methods. The capture size must be a power of 2 in the range returned by #getCaptureSizeRange(). This method must not be called when the Visualizer is enabled.
				 * @param size requested capture size
				 */
				public setCaptureSize(size: number): number;
				/**
				 * Returns current capture size.
				 */
				public getCaptureSize(): number;
				/**
				 * Set the type of scaling applied on the captured visualization data.
				 * @param mode see {@link #SCALING_MODE_NORMALIZED}
				 */
				public setScalingMode(mode: number): number;
				/**
				 * Returns the current scaling mode on the captured visualization data.
				 */
				public getScalingMode(): number;
				/**
				 * Returns the sampling rate of the captured audio.
				 */
				public getSamplingRate(): number;
				/**
				 * Returns a waveform capture of currently playing audio content. The capture consists in a number of consecutive 8-bit (unsigned) mono PCM samples equal to the capture size returned by #getCaptureSize().
				 * @param waveform array of bytes where the waveform should be returned
				 */
				public getWaveForm(waveform: native.Array<number>): number;
				/**
				 * Returns a frequency capture of currently playing audio content.
				 * @param fft array of bytes where the FFT should be returned
				 */
				public getFft(fft: native.Array<number>): number;
				/**
				 * Registers an OnDataCaptureListener interface and specifies the rate at which the capture should be updated as well as the type of capture requested.
				 * @param listener OnDataCaptureListener registered
				 * @param rate rate in milliHertz at which the capture should be updated
				 * @param waveform true if a waveform capture is requested: the onWaveFormDataCapture()
				 * @param fft true if a frequency capture is requested: the onFftDataCapture() method will be
				 */
				public setDataCaptureListener(listener: android.media.audiofx.Visualizer.IOnDataCaptureListener, rate: number, waveform: boolean, fft: boolean): number;
			}
			export module Visualizer {
				/**
				 * The OnDataCaptureListener interface defines methods called by the Visualizer to periodically update the audio visualization capture. The client application can implement this interface and register the listener with the #setDataCaptureListener(OnDataCaptureListener, int, boolean, boolean) method.
				 */
				interface IOnDataCaptureListener {
					/**
					 * Method called when a new waveform capture is available.
					 * @param visualizer Visualizer object on which the listener is registered.
					 * @param waveform array of bytes containing the waveform representation.
					 * @param samplingRate sampling rate of the audio visualized.
					 */
					onWaveFormDataCapture(visualizer: android.media.audiofx.Visualizer, waveform: native.Array<number>, samplingRate: number): void;
					/**
					 * Method called when a new frequency capture is available.
					 * @param visualizer Visualizer object on which the listener is registered.
					 * @param fft array of bytes containing the frequency representation.
					 * @param samplingRate sampling rate of the audio visualized.
					 */
					onFftDataCapture(visualizer: android.media.audiofx.Visualizer, fft: native.Array<number>, samplingRate: number): void;
				}
				/**
				 * Helper class to handle the forwarding of native events to the appropriate listeners
				 */
				export class NativeEventHandler extends android.os.Handler {
					static class: java.lang.Class<android.media.audiofx.Visualizer.NativeEventHandler>;
					public handleMessage(msg: android.os.Message): void;
				}
				/**
				 * The OnDataCaptureListener interface defines methods called by the Visualizer to periodically update the audio visualization capture. The client application can implement this interface and register the listener with the #setDataCaptureListener(OnDataCaptureListener, int, boolean, boolean) method.
				 */
				export class OnDataCaptureListener implements android.media.audiofx.Visualizer.IOnDataCaptureListener {
					constructor(implementation: android.media.audiofx.Visualizer.IOnDataCaptureListener);
					/**
					 * Method called when a new waveform capture is available.
					 * @param visualizer Visualizer object on which the listener is registered.
					 * @param waveform array of bytes containing the waveform representation.
					 * @param samplingRate sampling rate of the audio visualized.
					 */
					public onWaveFormDataCapture(visualizer: android.media.audiofx.Visualizer, waveform: native.Array<number>, samplingRate: number): void;
					/**
					 * Method called when a new frequency capture is available.
					 * @param visualizer Visualizer object on which the listener is registered.
					 * @param fft array of bytes containing the frequency representation.
					 * @param samplingRate sampling rate of the audio visualized.
					 */
					public onFftDataCapture(visualizer: android.media.audiofx.Visualizer, fft: native.Array<number>, samplingRate: number): void;
				}
			}
			/**
			 * Noise Suppressor (NS).
			 */
			export class NoiseSuppressor extends android.media.audiofx.AudioEffect {
				static class: java.lang.Class<android.media.audiofx.NoiseSuppressor>;
				/**
				 * Checks if the device implements noise suppression.
				 */
				public static isAvailable(): boolean;
				/**
				 * Creates a NoiseSuppressor and attaches it to the AudioRecord on the audio session specified.
				 * @param audioSession system wide unique audio session identifier. The NoiseSuppressor
				 */
				public static create(audioSession: number): android.media.audiofx.NoiseSuppressor;
			}
			/**
			 * Automatic Gain Control (AGC).
			 */
			export class AutomaticGainControl extends android.media.audiofx.AudioEffect {
				static class: java.lang.Class<android.media.audiofx.AutomaticGainControl>;
				/**
				 * Checks if the device implements automatic gain control.
				 */
				public static isAvailable(): boolean;
				/**
				 * Creates an AutomaticGainControl and attaches it to the AudioRecord on the audio session specified.
				 * @param audioSession system wide unique audio session identifier. The AutomaticGainControl
				 */
				public static create(audioSession: number): android.media.audiofx.AutomaticGainControl;
			}
			/**
			 * An Equalizer is used to alter the frequency response of a particular music source or of the main output mix.
			 */
			export class Equalizer extends android.media.audiofx.AudioEffect {
				/**
				 * Class constructor.
				 * @param priority the priority level requested by the application for controlling the Equalizer
				 * @param audioSession system wide unique audio session identifier. The Equalizer will be
				 */
				constructor(priority: number, audioSession: number);
				/**
				 * Number of bands. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_NUM_BANDS: number;
				/**
				 * Band level range. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_LEVEL_RANGE: number;
				/**
				 * Band level. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_BAND_LEVEL: number;
				/**
				 * Band center frequency. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_CENTER_FREQ: number;
				/**
				 * Band frequency range. Parameter ID for android.media.audiofx.Equalizer.OnParameterChangeListener
				 */
				static PARAM_BAND_FREQ_RANGE: number;
				/**
				 * Band for a given frequency. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_GET_BAND: number;
				/**
				 * Current preset. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_CURRENT_PRESET: number;
				/**
				 * Request number of presets. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_GET_NUM_OF_PRESETS: number;
				/**
				 * Request preset name. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_GET_PRESET_NAME: number;
				/**
				 * Maximum size for preset name
				 */
				static PARAM_STRING_SIZE_MAX: number;
				static class: java.lang.Class<android.media.audiofx.Equalizer>;
				/**
				 * Gets the number of frequency bands supported by the Equalizer engine.
				 */
				public getNumberOfBands(): number;
				/**
				 * Gets the level range for use by #setBandLevel(short,short). The level is expressed in milliBel.
				 */
				public getBandLevelRange(): native.Array<number>;
				/**
				 * Sets the given equalizer band to the given gain value.
				 * @param band frequency band that will have the new gain. The numbering of the bands starts
				 * @param level new gain in millibels that will be set to the given band. getBandLevelRange()
				 */
				public setBandLevel(band: number, level: number): void;
				/**
				 * Gets the gain set for the given equalizer band.
				 * @param band frequency band whose gain is requested. The numbering of the bands starts
				 */
				public getBandLevel(band: number): number;
				/**
				 * Gets the center frequency of the given band.
				 * @param band frequency band whose center frequency is requested. The numbering of the bands
				 */
				public getCenterFreq(band: number): number;
				/**
				 * Gets the frequency range of the given frequency band.
				 * @param band frequency band whose frequency range is requested. The numbering of the bands
				 */
				public getBandFreqRange(band: number): native.Array<number>;
				/**
				 * Gets the band that has the most effect on the given frequency.
				 * @param frequency frequency in milliHertz which is to be equalized via the returned band.
				 */
				public getBand(frequency: number): number;
				/**
				 * Gets current preset.
				 */
				public getCurrentPreset(): number;
				/**
				 * Sets the equalizer according to the given preset.
				 * @param preset new preset that will be taken into use. The valid range is [0,
				 */
				public usePreset(preset: number): void;
				/**
				 * Gets the total number of presets the equalizer supports. The presets will have indices [0, number of presets-1].
				 */
				public getNumberOfPresets(): number;
				/**
				 * Gets the preset name based on the index.
				 * @param preset index of the preset. The valid range is [0, number of presets-1].
				 */
				public getPresetName(preset: number): string;
				/**
				 * Registers an OnParameterChangeListener interface.
				 * @param listener OnParameterChangeListener interface registered
				 */
				public setParameterListener(listener: android.media.audiofx.Equalizer.IOnParameterChangeListener): void;
				/**
				 * Gets the equalizer properties. This method is useful when a snapshot of current equalizer settings must be saved by the application.
				 */
				public getProperties(): android.media.audiofx.Equalizer.Settings;
				/**
				 * Sets the equalizer properties. This method is useful when equalizer settings have to be applied from a previous backup.
				 * @param settings an Equalizer.Settings object containing the properties to apply
				 */
				public setProperties(settings: android.media.audiofx.Equalizer.Settings): void;
			}
			export module Equalizer {
				/**
				 * Listener used internally to receive unformatted parameter change events from AudioEffect super class.
				 */
				export class BaseParameterListener extends java.lang.Object {
					static class: java.lang.Class<android.media.audiofx.Equalizer.BaseParameterListener>;
					public onParameterChange(effect: android.media.audiofx.AudioEffect, status: number, param: native.Array<number>, value: native.Array<number>): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the Equalizer when a parameter value has changed.
				 */
				interface IOnParameterChangeListener {
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same Equalizer engine.
					 * @param effect the Equalizer on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param1 ID of the modified parameter. See {@link #PARAM_BAND_LEVEL} ...
					 * @param param2 additional parameter qualifier (e.g the band for band level parameter).
					 * @param value the new parameter value.
					 */
					onParameterChange(effect: android.media.audiofx.Equalizer, status: number, param1: number, param2: number, value: number): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the Equalizer when a parameter value has changed.
				 */
				export class OnParameterChangeListener implements android.media.audiofx.Equalizer.IOnParameterChangeListener {
					constructor(implementation: android.media.audiofx.Equalizer.IOnParameterChangeListener);
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same Equalizer engine.
					 * @param effect the Equalizer on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param1 ID of the modified parameter. See {@link #PARAM_BAND_LEVEL} ...
					 * @param param2 additional parameter qualifier (e.g the band for band level parameter).
					 * @param value the new parameter value.
					 */
					public onParameterChange(effect: android.media.audiofx.Equalizer, status: number, param1: number, param2: number, value: number): void;
				}
				/**
				 * The Settings class regroups all equalizer parameters. It is used in conjuntion with getProperties() and setProperties() methods to backup and restore all parameters in a single call.
				 */
				export class Settings extends java.lang.Object {
					constructor();
					/**
					 * Settings class constructor from a key=value; pairs formatted string. The string is typically returned by Settings.toString() method. IllegalArgumentException if the string is not correctly formatted.
					 */
					constructor(settings: string);
					curPreset: number;
					numBands: number;
					bandLevels: native.Array<number>;
					static class: java.lang.Class<android.media.audiofx.Equalizer.Settings>;
					public toString(): string;
				}
			}
			/**
			 * An audio virtualizer is a general name for an effect to spatialize audio channels. The exact behavior of this effect is dependent on the number of audio input channels and the types and number of audio output channels of the device. For example, in the case of a stereo input and stereo headphone output, a stereo widening effect is used when this effect is turned on.
			 */
			export class Virtualizer extends android.media.audiofx.AudioEffect {
				/**
				 * Class constructor.
				 * @param priority the priority level requested by the application for controlling the Virtualizer
				 * @param audioSession system wide unique audio session identifier. The Virtualizer will
				 */
				constructor(priority: number, audioSession: number);
				/**
				 * Is strength parameter supported by virtualizer engine. Parameter ID for getParameter().
				 */
				static PARAM_STRENGTH_SUPPORTED: number;
				/**
				 * Virtualizer effect strength. Parameter ID for android.media.audiofx.Virtualizer.OnParameterChangeListener
				 */
				static PARAM_STRENGTH: number;
				static class: java.lang.Class<android.media.audiofx.Virtualizer>;
				/**
				 * Indicates whether setting strength is supported. If this method returns false, only one strength is supported and the setStrength() method always rounds to that value.
				 */
				public getStrengthSupported(): boolean;
				/**
				 * Sets the strength of the virtualizer effect. If the implementation does not support per mille accuracy for setting the strength, it is allowed to round the given strength to the nearest supported value. You can use the #getRoundedStrength() method to query the (possibly rounded) value that was actually set.
				 * @param strength strength of the effect. The valid range for strength strength is [0, 1000],
				 */
				public setStrength(strength: number): void;
				/**
				 * Gets the current strength of the effect.
				 */
				public getRoundedStrength(): number;
				/**
				 * Registers an OnParameterChangeListener interface.
				 * @param listener OnParameterChangeListener interface registered
				 */
				public setParameterListener(listener: android.media.audiofx.Virtualizer.IOnParameterChangeListener): void;
				/**
				 * Gets the virtualizer properties. This method is useful when a snapshot of current virtualizer settings must be saved by the application.
				 */
				public getProperties(): android.media.audiofx.Virtualizer.Settings;
				/**
				 * Sets the virtualizer properties. This method is useful when virtualizer settings have to be applied from a previous backup.
				 * @param settings a Virtualizer.Settings object containing the properties to apply
				 */
				public setProperties(settings: android.media.audiofx.Virtualizer.Settings): void;
			}
			export module Virtualizer {
				/**
				 * Listener used internally to receive unformatted parameter change events from AudioEffect super class.
				 */
				export class BaseParameterListener extends java.lang.Object {
					static class: java.lang.Class<android.media.audiofx.Virtualizer.BaseParameterListener>;
					public onParameterChange(effect: android.media.audiofx.AudioEffect, status: number, param: native.Array<number>, value: native.Array<number>): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the Virtualizer when a parameter value has changed.
				 */
				interface IOnParameterChangeListener {
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same Virtualizer engine.
					 * @param effect the Virtualizer on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_STRENGTH} ...
					 * @param value the new parameter value.
					 */
					onParameterChange(effect: android.media.audiofx.Virtualizer, status: number, param: number, value: number): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the Virtualizer when a parameter value has changed.
				 */
				export class OnParameterChangeListener implements android.media.audiofx.Virtualizer.IOnParameterChangeListener {
					constructor(implementation: android.media.audiofx.Virtualizer.IOnParameterChangeListener);
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same Virtualizer engine.
					 * @param effect the Virtualizer on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_STRENGTH} ...
					 * @param value the new parameter value.
					 */
					public onParameterChange(effect: android.media.audiofx.Virtualizer, status: number, param: number, value: number): void;
				}
				/**
				 * The Settings class regroups all virtualizer parameters. It is used in conjuntion with getProperties() and setProperties() methods to backup and restore all parameters in a single call.
				 */
				export class Settings extends java.lang.Object {
					constructor();
					/**
					 * Settings class constructor from a key=value; pairs formatted string. The string is typically returned by Settings.toString() method. IllegalArgumentException if the string is not correctly formatted.
					 */
					constructor(settings: string);
					strength: number;
					static class: java.lang.Class<android.media.audiofx.Virtualizer.Settings>;
					public toString(): string;
				}
			}
			/**
			 * A sound generated within a room travels in many directions. The listener first hears the direct sound from the source itself. Later, he or she hears discrete echoes caused by sound bouncing off nearby walls, the ceiling and the floor. As sound waves arrive after undergoing more and more reflections, individual reflections become indistinguishable and the listener hears continuous reverberation that decays over time. Reverb is vital for modeling a listener's environment. It can be used in music applications to simulate music being played back in various environments, or in games to immerse the listener within the game's environment. The EnvironmentalReverb class allows an application to control each reverb engine property in a global reverb environment and is more suitable for games. For basic control, more suitable for music applications, it is recommended to use the android.media.audiofx.PresetReverb class.
			 */
			export class EnvironmentalReverb extends android.media.audiofx.AudioEffect {
				/**
				 * Class constructor.
				 * @param priority the priority level requested by the application for controlling the
				 * @param audioSession system wide unique audio session identifier. If audioSession
				 */
				constructor(priority: number, audioSession: number);
				/**
				 * Room level. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_ROOM_LEVEL: number;
				/**
				 * Room HF level. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_ROOM_HF_LEVEL: number;
				/**
				 * Decay time. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_DECAY_TIME: number;
				/**
				 * Decay HF ratio. Parameter ID for android.media.audiofx.EnvironmentalReverb.OnParameterChangeListener
				 */
				static PARAM_DECAY_HF_RATIO: number;
				/**
				 * Early reflections level. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_REFLECTIONS_LEVEL: number;
				/**
				 * Early reflections delay. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_REFLECTIONS_DELAY: number;
				/**
				 * Reverb level. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_REVERB_LEVEL: number;
				/**
				 * Reverb delay. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_REVERB_DELAY: number;
				/**
				 * Diffusion. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_DIFFUSION: number;
				/**
				 * Density. Parameter ID for OnParameterChangeListener
				 */
				static PARAM_DENSITY: number;
				static class: java.lang.Class<android.media.audiofx.EnvironmentalReverb>;
				/**
				 * Sets the master volume level of the environmental reverb effect.
				 * @param room room level in millibels. The valid range is [-9000, 0].
				 */
				public setRoomLevel(room: number): void;
				/**
				 * Gets the master volume level of the environmental reverb effect.
				 */
				public getRoomLevel(): number;
				/**
				 * Sets the volume level at 5 kHz relative to the volume level at low frequencies of the overall reverb effect.
				 * @param roomHF high frequency attenuation level in millibels. The valid range is [-9000, 0].
				 */
				public setRoomHFLevel(roomHF: number): void;
				/**
				 * Gets the room HF level.
				 */
				public getRoomHFLevel(): number;
				/**
				 * Sets the time taken for the level of reverberation to decay by 60 dB.
				 * @param decayTime decay time in milliseconds. The valid range is [100, 20000].
				 */
				public setDecayTime(decayTime: number): void;
				/**
				 * Gets the decay time.
				 */
				public getDecayTime(): number;
				/**
				 * Sets the ratio of high frequency decay time (at 5 kHz) relative to the decay time at low frequencies.
				 * @param decayHFRatio high frequency decay ratio using a permille scale. The valid range is
				 */
				public setDecayHFRatio(decayHFRatio: number): void;
				/**
				 * Gets the ratio of high frequency decay time (at 5 kHz) relative to low frequencies.
				 */
				public getDecayHFRatio(): number;
				/**
				 * Sets the volume level of the early reflections.
				 * @param reflectionsLevel reflection level in millibels. The valid range is [-9000, 1000].
				 */
				public setReflectionsLevel(reflectionsLevel: number): void;
				/**
				 * Gets the volume level of the early reflections.
				 */
				public getReflectionsLevel(): number;
				/**
				 * Sets the delay time for the early reflections.
				 * @param reflectionsDelay reflections delay in milliseconds. The valid range is [0, 300].
				 */
				public setReflectionsDelay(reflectionsDelay: number): void;
				/**
				 * Gets the reflections delay.
				 */
				public getReflectionsDelay(): number;
				/**
				 * Sets the volume level of the late reverberation.
				 * @param reverbLevel reverb level in millibels. The valid range is [-9000, 2000].
				 */
				public setReverbLevel(reverbLevel: number): void;
				/**
				 * Gets the reverb level.
				 */
				public getReverbLevel(): number;
				/**
				 * Sets the time between the first reflection and the reverberation.
				 * @param reverbDelay reverb delay in milliseconds. The valid range is [0, 100].
				 */
				public setReverbDelay(reverbDelay: number): void;
				/**
				 * Gets the reverb delay.
				 */
				public getReverbDelay(): number;
				/**
				 * Sets the echo density in the late reverberation decay.
				 * @param diffusion diffusion specified using a permille scale. The diffusion valid range is
				 */
				public setDiffusion(diffusion: number): void;
				/**
				 * Gets diffusion level.
				 */
				public getDiffusion(): number;
				/**
				 * Controls the modal density of the late reverberation decay.
				 * @param density density specified using a permille scale. The valid range is [0, 1000].
				 */
				public setDensity(density: number): void;
				/**
				 * Gets the density level.
				 */
				public getDensity(): number;
				/**
				 * Registers an OnParameterChangeListener interface.
				 * @param listener OnParameterChangeListener interface registered
				 */
				public setParameterListener(listener: android.media.audiofx.EnvironmentalReverb.IOnParameterChangeListener): void;
				/**
				 * Gets the environmental reverb properties. This method is useful when a snapshot of current reverb settings must be saved by the application.
				 */
				public getProperties(): android.media.audiofx.EnvironmentalReverb.Settings;
				/**
				 * Sets the environmental reverb properties. This method is useful when reverb settings have to be applied from a previous backup.
				 * @param settings a EnvironmentalReverb.Settings object containing the properties to apply
				 */
				public setProperties(settings: android.media.audiofx.EnvironmentalReverb.Settings): void;
			}
			export module EnvironmentalReverb {
				/**
				 * Listener used internally to receive unformatted parameter change events from AudioEffect super class.
				 */
				export class BaseParameterListener extends java.lang.Object {
					static class: java.lang.Class<android.media.audiofx.EnvironmentalReverb.BaseParameterListener>;
					public onParameterChange(effect: android.media.audiofx.AudioEffect, status: number, param: native.Array<number>, value: native.Array<number>): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the EnvironmentalReverb when a parameter value has changed.
				 */
				interface IOnParameterChangeListener {
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same EnvironmentalReverb engine.
					 * @param effect the EnvironmentalReverb on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_ROOM_LEVEL} ...
					 * @param value the new parameter value.
					 */
					onParameterChange(effect: android.media.audiofx.EnvironmentalReverb, status: number, param: number, value: number): void;
				}
				/**
				 * The OnParameterChangeListener interface defines a method called by the EnvironmentalReverb when a parameter value has changed.
				 */
				export class OnParameterChangeListener implements android.media.audiofx.EnvironmentalReverb.IOnParameterChangeListener {
					constructor(implementation: android.media.audiofx.EnvironmentalReverb.IOnParameterChangeListener);
					/**
					 * Method called when a parameter value has changed. The method is called only if the parameter was changed by another application having the control of the same EnvironmentalReverb engine.
					 * @param effect the EnvironmentalReverb on which the interface is registered.
					 * @param status status of the set parameter operation.
					 * @param param ID of the modified parameter. See {@link #PARAM_ROOM_LEVEL} ...
					 * @param value the new parameter value.
					 */
					public onParameterChange(effect: android.media.audiofx.EnvironmentalReverb, status: number, param: number, value: number): void;
				}
				/**
				 * The Settings class regroups all environmental reverb parameters. It is used in conjuntion with getProperties() and setProperties() methods to backup and restore all parameters in a single call.
				 */
				export class Settings extends java.lang.Object {
					constructor();
					/**
					 * Settings class constructor from a key=value; pairs formatted string. The string is typically returned by Settings.toString() method. IllegalArgumentException if the string is not correctly formatted.
					 */
					constructor(settings: string);
					roomLevel: number;
					roomHFLevel: number;
					decayTime: number;
					decayHFRatio: number;
					reflectionsLevel: number;
					reflectionsDelay: number;
					reverbLevel: number;
					reverbDelay: number;
					diffusion: number;
					density: number;
					static class: java.lang.Class<android.media.audiofx.EnvironmentalReverb.Settings>;
					public toString(): string;
				}
			}
			/**
			 * AudioEffect is the base class for controlling audio effects provided by the android audio framework.
			 */
			export class AudioEffect extends java.lang.Object {
				/**
				 * Successful operation.
				 */
				static SUCCESS: number;
				/**
				 * Unspecified error.
				 */
				static ERROR: number;
				/**
				 * Internal operation status. Not returned by any method.
				 */
				static ALREADY_EXISTS: number;
				/**
				 * Operation failed due to bad object initialization.
				 */
				static ERROR_NO_INIT: number;
				/**
				 * Operation failed due to bad parameter value.
				 */
				static ERROR_BAD_VALUE: number;
				/**
				 * Operation failed because it was requested in wrong state.
				 */
				static ERROR_INVALID_OPERATION: number;
				/**
				 * Operation failed due to lack of memory.
				 */
				static ERROR_NO_MEMORY: number;
				/**
				 * Operation failed due to dead remote object.
				 */
				static ERROR_DEAD_OBJECT: number;
				/**
				 * Effect connection mode is insert. Specifying an audio session ID when creating the effect will insert this effect after all players in the same audio session.
				 */
				static EFFECT_INSERT: string;
				/**
				 * Effect connection mode is auxiliary.
				 */
				static EFFECT_AUXILIARY: string;
				/**
				 * Intent to launch an audio effect control panel UI.
				 */
				static ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL: string;
				/**
				 * Intent to signal to the effect control application or service that a new audio session is opened and requires audio effects to be applied.
				 */
				static ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION: string;
				/**
				 * Intent to signal to the effect control application or service that an audio session is closed and that effects should not be applied anymore.
				 */
				static ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION: string;
				/**
				 * Contains the ID of the audio session the effects should be applied to.
				 */
				static EXTRA_AUDIO_SESSION: string;
				/**
				 * Contains the package name of the calling application.
				 */
				static EXTRA_PACKAGE_NAME: string;
				/**
				 * Indicates which type of content is played by the application.
				 */
				static EXTRA_CONTENT_TYPE: string;
				/**
				 * Value for #EXTRA_CONTENT_TYPE when the type of content played is music
				 */
				static CONTENT_TYPE_MUSIC: number;
				/**
				 * Value for #EXTRA_CONTENT_TYPE when the type of content played is video or movie
				 */
				static CONTENT_TYPE_MOVIE: number;
				/**
				 * Value for #EXTRA_CONTENT_TYPE when the type of content played is game audio
				 */
				static CONTENT_TYPE_GAME: number;
				/**
				 * Value for #EXTRA_CONTENT_TYPE when the type of content played is voice audio
				 */
				static CONTENT_TYPE_VOICE: number;
				static class: java.lang.Class<android.media.audiofx.AudioEffect>;
				NativeEventHandler: {
	new (ae: android.media.audiofx.AudioEffect, looper: android.os.Looper): android.media.audiofx.AudioEffect.NativeEventHandler;
};
				/**
				 * Releases the native AudioEffect resources. It is a good practice to release the effect engine when not in use as control can be returned to other applications or the native resources released.
				 */
				public release(): void;
				protected finalize(): void;
				/**
				 * Get the effect descriptor.
				 */
				public getDescriptor(): android.media.audiofx.AudioEffect.Descriptor;
				/**
				 * Query all effects available on the platform. Returns an array of android.media.audiofx.AudioEffect.Descriptor objects
				 */
				public static queryEffects(): native.Array<android.media.audiofx.AudioEffect.Descriptor>;
				/**
				 * Enable or disable the effect. Creating an audio effect does not automatically apply this effect on the audio source. It creates the resources necessary to process this effect but the audio signal is still bypassed through the effect engine. Calling this method will make that the effect is actually applied or not to the audio content being played in the corresponding audio session.
				 * @param enabled the requested enable state
				 */
				public setEnabled(enabled: boolean): number;
				/**
				 * Returns effect unique identifier. This system wide unique identifier can be used to attach this effect to a MediaPlayer or an AudioTrack when the effect is an auxiliary effect (Reverb)
				 */
				public getId(): number;
				/**
				 * Returns effect enabled state
				 */
				public getEnabled(): boolean;
				/**
				 * Checks if this AudioEffect object is controlling the effect engine.
				 */
				public hasControl(): boolean;
				/**
				 * Sets the listener AudioEffect notifies when the effect engine is enabled or disabled.
				 * @param listener 
				 */
				public setEnableStatusListener(listener: android.media.audiofx.AudioEffect.IOnEnableStatusChangeListener): void;
				/**
				 * Sets the listener AudioEffect notifies when the effect engine control is taken or returned.
				 * @param listener 
				 */
				public setControlStatusListener(listener: android.media.audiofx.AudioEffect.IOnControlStatusChangeListener): void;
			}
			export module AudioEffect {
				/**
				 * The OnEnableStatusChangeListener interface defines a method called by the AudioEffect when a the enabled state of the effect engine was changed by the controlling application.
				 */
				interface IOnEnableStatusChangeListener {
					/**
					 * Called on the listener to notify it that the effect engine has been enabled or disabled.
					 * @param effect the effect on which the interface is registered.
					 * @param enabled new effect state.
					 */
					onEnableStatusChange(effect: android.media.audiofx.AudioEffect, enabled: boolean): void;
				}
				/**
				 * The OnControlStatusChangeListener interface defines a method called by the AudioEffect when a the control of the effect engine is gained or lost by the application
				 */
				export class OnControlStatusChangeListener implements android.media.audiofx.AudioEffect.IOnControlStatusChangeListener {
					constructor(implementation: android.media.audiofx.AudioEffect.IOnControlStatusChangeListener);
					/**
					 * Called on the listener to notify it that the effect engine control has been taken or returned.
					 * @param effect the effect on which the interface is registered.
					 * @param controlGranted true if the application has been granted control of the effect
					 */
					public onControlStatusChange(effect: android.media.audiofx.AudioEffect, controlGranted: boolean): void;
				}
				/**
				 * The OnControlStatusChangeListener interface defines a method called by the AudioEffect when a the control of the effect engine is gained or lost by the application
				 */
				interface IOnControlStatusChangeListener {
					/**
					 * Called on the listener to notify it that the effect engine control has been taken or returned.
					 * @param effect the effect on which the interface is registered.
					 * @param controlGranted true if the application has been granted control of the effect
					 */
					onControlStatusChange(effect: android.media.audiofx.AudioEffect, controlGranted: boolean): void;
				}
				/**
				 * The effect descriptor contains information on a particular effect implemented in the audio framework:<br> <ul> <li>type: UUID corresponding to the OpenSL ES interface implemented by this effect</li> <li>uuid: UUID for this particular implementation</li> <li>connectMode: #EFFECT_INSERT, #EFFECT_AUXILIARY or {at_link #EFFECT_PRE_PROCESSING}</li> <li>name: human readable effect name</li> <li>implementor: human readable effect implementor name</li> </ul> The method #queryEffects() returns an array of Descriptors to facilitate effects enumeration.
				 */
				export class Descriptor extends java.lang.Object {
					constructor();
					constructor(type: string, uuid: string, connectMode: string, name: string, implementor: string);
					/**
					 * Indicates the generic type of the effect (Equalizer, Bass boost ...). The UUID corresponds to the OpenSL ES Interface ID for this type of effect.
					 */
					type: java.util.UUID;
					/**
					 * Indicates the particular implementation of the effect in that type. Several effects can have the same type but this uuid is unique to a given implementation.
					 */
					uuid: java.util.UUID;
					/**
					 * Indicates if the effect is of insert category #EFFECT_INSERT, auxiliary category #EFFECT_AUXILIARY or pre processing category {at_link #EFFECT_PRE_PROCESSING}. Insert effects (Typically an Equalizer) are applied to the entire audio source and usually not shared by several sources. Auxiliary effects (typically a reverberator) are applied to part of the signal (wet) and the effect output is added to the original signal (dry). Audio pre processing are applied to audio captured on a particular AudioRecord.
					 */
					connectMode: string;
					/**
					 * Human readable effect name
					 */
					name: string;
					/**
					 * Human readable effect implementor name
					 */
					implementor: string;
					static class: java.lang.Class<android.media.audiofx.AudioEffect.Descriptor>;
				}
				/**
				 * Helper class to handle the forwarding of native events to the appropriate listeners
				 */
				export class NativeEventHandler extends android.os.Handler {
					static class: java.lang.Class<android.media.audiofx.AudioEffect.NativeEventHandler>;
					public handleMessage(msg: android.os.Message): void;
				}
				/**
				 * The OnEnableStatusChangeListener interface defines a method called by the AudioEffect when a the enabled state of the effect engine was changed by the controlling application.
				 */
				export class OnEnableStatusChangeListener implements android.media.audiofx.AudioEffect.IOnEnableStatusChangeListener {
					constructor(implementation: android.media.audiofx.AudioEffect.IOnEnableStatusChangeListener);
					/**
					 * Called on the listener to notify it that the effect engine has been enabled or disabled.
					 * @param effect the effect on which the interface is registered.
					 * @param enabled new effect state.
					 */
					public onEnableStatusChange(effect: android.media.audiofx.AudioEffect, enabled: boolean): void;
				}
			}
		}
		/**
		 * MediaPlayer class can be used to control playback of audio/video files and streams. An example on how to use the methods in this class can be found in android.widget.VideoView.
		 */
		export class MediaPlayer extends java.lang.Object {
			/**
			 * Default constructor. Consider using one of the create() methods for synchronously instantiating a MediaPlayer from a Uri or resource.
			 */
			constructor();
			/**
			 * Specifies a video scaling mode. The content is stretched to the surface rendering area. When the surface has the same aspect ratio as the content, the aspect ratio of the content is maintained; otherwise, the aspect ratio of the content is not maintained when video is being rendered. Unlike #VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING, there is no content cropping with this video scaling mode.
			 */
			static VIDEO_SCALING_MODE_SCALE_TO_FIT: number;
			/**
			 * Specifies a video scaling mode. The content is scaled, maintaining its aspect ratio. The whole surface area is always used. When the aspect ratio of the content is the same as the surface, no content is cropped; otherwise, content is cropped to fit the surface.
			 */
			static VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING: number;
			/**
			 * MIME type for SubRip (SRT) container. Used in addTimedTextSource APIs.
			 */
			static MEDIA_MIMETYPE_TEXT_SUBRIP: string;
			/**
			 * Unspecified media player error. android.media.MediaPlayer.OnErrorListener
			 */
			static MEDIA_ERROR_UNKNOWN: number;
			/**
			 * Media server died. In this case, the application must release the MediaPlayer object and instantiate a new one. android.media.MediaPlayer.OnErrorListener
			 */
			static MEDIA_ERROR_SERVER_DIED: number;
			/**
			 * The video is streamed and its container is not valid for progressive playback i.e the video's index (e.g moov atom) is not at the start of the file. android.media.MediaPlayer.OnErrorListener
			 */
			static MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK: number;
			/**
			 * File or network related operation errors.
			 */
			static MEDIA_ERROR_IO: number;
			/**
			 * Bitstream is not conforming to the related coding standard or file spec.
			 */
			static MEDIA_ERROR_MALFORMED: number;
			/**
			 * Bitstream is conforming to the related coding standard or file spec, but the media framework does not support the feature.
			 */
			static MEDIA_ERROR_UNSUPPORTED: number;
			/**
			 * Some operation takes too long to complete, usually more than 3-5 seconds.
			 */
			static MEDIA_ERROR_TIMED_OUT: number;
			/**
			 * Unspecified media player info. android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_UNKNOWN: number;
			/**
			 * The player just pushed the very first video frame for rendering. android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_VIDEO_RENDERING_START: number;
			/**
			 * The video is too complex for the decoder: it can't decode frames fast enough. Possibly only the audio plays fine at this stage. android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_VIDEO_TRACK_LAGGING: number;
			/**
			 * MediaPlayer is temporarily pausing playback internally in order to buffer more data. android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_BUFFERING_START: number;
			/**
			 * MediaPlayer is resuming playback after filling buffers. android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_BUFFERING_END: number;
			/**
			 * Bad interleaving means that a media has been improperly interleaved or not interleaved at all, e.g has all the video samples first then all the audio ones. Video is playing but a lot of disk seeks may be happening. android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_BAD_INTERLEAVING: number;
			/**
			 * The media cannot be seeked (e.g live stream) android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_NOT_SEEKABLE: number;
			/**
			 * A new set of metadata is available. android.media.MediaPlayer.OnInfoListener
			 */
			static MEDIA_INFO_METADATA_UPDATE: number;
			static class: java.lang.Class<android.media.MediaPlayer>;
			EventHandler: {
	new (mp: android.media.MediaPlayer, looper: android.os.Looper): android.media.MediaPlayer.EventHandler;
};
			/**
			 * Sets the SurfaceHolder to use for displaying the video portion of the media.
			 * @param sh the SurfaceHolder to use for video display
			 */
			public setDisplay(sh: android.view.ISurfaceHolder): void;
			/**
			 * Sets the Surface to be used as the sink for the video portion of the media. This is similar to #setDisplay(SurfaceHolder), but does not support #setScreenOnWhilePlaying(boolean). Setting a Surface will un-set any Surface or SurfaceHolder that was previously set. A null surface will result in only the audio track being played.
			 * @param surface The {@link Surface} to be used for the video portion of
			 */
			public setSurface(surface: android.view.Surface): void;
			/**
			 * Sets video scaling mode. To make the target video scaling mode effective during playback, this method must be called after data source is set. If not called, the default video scaling mode is #VIDEO_SCALING_MODE_SCALE_TO_FIT.
			 * @param mode target video scaling mode. Most be one of the supported
			 */
			public setVideoScalingMode(mode: number): void;
			/**
			 * Convenience method to create a MediaPlayer for a given Uri. On success, #prepare() will already have been called and must not be called again.
			 * @param context the Context to use
			 * @param uri the Uri from which to get the datasource
			 */
			public static create(context: android.content.Context, uri: android.net.Uri): android.media.MediaPlayer;
			/**
			 * Convenience method to create a MediaPlayer for a given Uri. On success, #prepare() will already have been called and must not be called again.
			 * @param context the Context to use
			 * @param uri the Uri from which to get the datasource
			 * @param holder the SurfaceHolder to use for displaying the video
			 */
			public static create(context: android.content.Context, uri: android.net.Uri, holder: android.view.ISurfaceHolder): android.media.MediaPlayer;
			/**
			 * Convenience method to create a MediaPlayer for a given resource id. On success, #prepare() will already have been called and must not be called again.
			 * @param context the Context to use
			 * @param resid the raw resource id (<var>R.raw.&lt;something></var>) for
			 */
			public static create(context: android.content.Context, resid: number): android.media.MediaPlayer;
			/**
			 * Sets the data source as a content Uri.
			 * @param context the Context to use when resolving the Uri
			 * @param uri the Content URI of the data you want to play
			 */
			public setDataSource(context: android.content.Context, uri: android.net.Uri): void;
			/**
			 * Sets the data source as a content Uri.
			 * @param context the Context to use when resolving the Uri
			 * @param uri the Content URI of the data you want to play
			 * @param headers the headers to be sent together with the request for the data
			 */
			public setDataSource(context: android.content.Context, uri: android.net.Uri, headers: java.util.IMap<string, string>): void;
			/**
			 * Sets the data source (file-path or http/rtsp URL) to use.
			 * @param path the path of the file, or the http/rtsp URL of the stream you want to play
			 */
			public setDataSource(path: string): void;
			/**
			 * Sets the data source (FileDescriptor) to use. It is the caller's responsibility to close the file descriptor. It is safe to do so as soon as this call returns.
			 * @param fd the FileDescriptor for the file you want to play
			 */
			public setDataSource(fd: java.io.FileDescriptor): void;
			/**
			 * Sets the data source (FileDescriptor) to use. The FileDescriptor must be seekable (N.B. a LocalSocket is not seekable). It is the caller's responsibility to close the file descriptor. It is safe to do so as soon as this call returns.
			 * @param fd the FileDescriptor for the file you want to play
			 * @param offset the offset into the file where the data to be played starts, in bytes
			 * @param length the length in bytes of the data to be played
			 */
			public setDataSource(fd: java.io.FileDescriptor, offset: number, length: number): void;
			/**
			 * Prepares the player for playback, synchronously.
			 */
			public prepare(): void;
			/**
			 * Prepares the player for playback, asynchronously.
			 */
			public prepareAsync(): void;
			/**
			 * Starts or resumes playback. If playback had previously been paused, playback will continue from where it was paused. If playback had been stopped, or never started before, playback will start at the beginning.
			 */
			public start(): void;
			/**
			 * Stops playback after playback has been stopped or paused.
			 */
			public stop(): void;
			/**
			 * Pauses playback. Call start() to resume.
			 */
			public pause(): void;
			/**
			 * Set the low-level power management behavior for this MediaPlayer. This can be used when the MediaPlayer is not playing through a SurfaceHolder set with #setDisplay(SurfaceHolder) and thus can use the high-level #setScreenOnWhilePlaying(boolean) feature.
			 * @param context the Context to use
			 * @param mode the power/wake mode to set
			 */
			public setWakeMode(context: android.content.Context, mode: number): void;
			/**
			 * Control whether we should use the attached SurfaceHolder to keep the screen on while video playback is occurring. This is the preferred method over #setWakeMode where possible, since it doesn't require that the application have permission for low-level wake lock access.
			 * @param screenOn Supply true to keep the screen on, false to allow it
			 */
			public setScreenOnWhilePlaying(screenOn: boolean): void;
			/**
			 * Returns the width of the video.
			 */
			public getVideoWidth(): number;
			/**
			 * Returns the height of the video.
			 */
			public getVideoHeight(): number;
			/**
			 * Checks whether the MediaPlayer is playing.
			 */
			public isPlaying(): boolean;
			/**
			 * Seeks to specified time position.
			 * @param msec the offset in milliseconds from the start to seek to
			 */
			public seekTo(msec: number): void;
			/**
			 * Gets the current playback position.
			 */
			public getCurrentPosition(): number;
			/**
			 * Gets the duration of the file.
			 */
			public getDuration(): number;
			/**
			 * Set the MediaPlayer to start when this MediaPlayer finishes playback (i.e. reaches the end of the stream). The media framework will attempt to transition from this player to the next as seamlessly as possible. The next player can be set at any time before completion. The next player must be prepared by the app, and the application should not call start() on it. The next MediaPlayer must be different from 'this'. An exception will be thrown if next == this. The application may call setNextMediaPlayer(null) to indicate no next player should be started at the end of playback. If the current player is looping, it will keep looping and the next player will not be started.
			 * @param next the player to start after this one completes playback.
			 */
			public setNextMediaPlayer(next: android.media.MediaPlayer): void;
			/**
			 * Releases resources associated with this MediaPlayer object. It is considered good practice to call this method when you're done using the MediaPlayer. In particular, whenever an Activity of an application is paused (its onPause() method is called), or stopped (its onStop() method is called), this method should be invoked to release the MediaPlayer object, unless the application has a special need to keep the object around. In addition to unnecessary resources (such as memory and instances of codecs) being held, failure to call this method immediately if a MediaPlayer object is no longer needed may also lead to continuous battery consumption for mobile devices, and playback failure for other applications if no multiple instances of the same codec are supported on a device. Even if multiple instances of the same codec are supported, some performance degradation may be expected when unnecessary multiple instances are used at the same time.
			 */
			public release(): void;
			/**
			 * Resets the MediaPlayer to its uninitialized state. After calling this method, you will have to initialize it again by setting the data source and calling prepare().
			 */
			public reset(): void;
			/**
			 * Sets the audio stream type for this MediaPlayer. See AudioManager for a list of stream types. Must call this method before prepare() or prepareAsync() in order for the target stream type to become effective thereafter.
			 * @param streamtype the audio stream type
			 */
			public setAudioStreamType(streamtype: number): void;
			/**
			 * Sets the player to be looping or non-looping.
			 * @param looping whether to loop or not
			 */
			public setLooping(looping: boolean): void;
			/**
			 * Checks whether the MediaPlayer is looping or non-looping.
			 */
			public isLooping(): boolean;
			/**
			 * Sets the volume on this player. This API is recommended for balancing the output of audio streams within an application. Unless you are writing an application to control user settings, this API should be used in preference to AudioManager#setStreamVolume(int, int, int) which sets the volume of ALL streams of a particular type. Note that the passed volume values are raw scalars. UI controls should be scaled logarithmically.
			 * @param leftVolume left volume scalar
			 * @param rightVolume right volume scalar
			 */
			public setVolume(leftVolume: number, rightVolume: number): void;
			/**
			 * Sets the audio session ID.
			 * @param sessionId the audio session ID.
			 */
			public setAudioSessionId(sessionId: number): void;
			/**
			 * Returns the audio session ID.
			 */
			public getAudioSessionId(): number;
			/**
			 * Attaches an auxiliary effect to the player. A typical auxiliary effect is a reverberation effect which can be applied on any sound source that directs a certain amount of its energy to this effect. This amount is defined by setAuxEffectSendLevel(). #setAuxEffectSendLevel(float).
			 * @param effectId system wide unique id of the effect to attach
			 */
			public attachAuxEffect(effectId: number): void;
			/**
			 * Sets the send level of the player to the attached auxiliary effect #attachAuxEffect(int). The level value range is 0 to 1.0.
			 * @param level send level scalar
			 */
			public setAuxEffectSendLevel(level: number): void;
			/**
			 * Returns an array of track information.
			 */
			public getTrackInfo(): native.Array<android.media.MediaPlayer.TrackInfo>;
			/**
			 * Adds an external timed text source file.
			 * @param path The file path of external timed text source file.
			 * @param mimeType The mime type of the file. Must be one of the mime types listed above.
			 */
			public addTimedTextSource(path: string, mimeType: string): void;
			/**
			 * Adds an external timed text source file (Uri).
			 * @param context the Context to use when resolving the Uri
			 * @param uri the Content URI of the data you want to play
			 * @param mimeType The mime type of the file. Must be one of the mime types listed above.
			 */
			public addTimedTextSource(context: android.content.Context, uri: android.net.Uri, mimeType: string): void;
			/**
			 * Adds an external timed text source file (FileDescriptor).
			 * @param fd the FileDescriptor for the file you want to play
			 * @param mimeType The mime type of the file. Must be one of the mime types listed above.
			 */
			public addTimedTextSource(fd: java.io.FileDescriptor, mimeType: string): void;
			/**
			 * Adds an external timed text file (FileDescriptor).
			 * @param fd the FileDescriptor for the file you want to play
			 * @param offset the offset into the file where the data to be played starts, in bytes
			 * @param length the length in bytes of the data to be played
			 * @param mimeType The mime type of the file. Must be one of the mime types listed above.
			 */
			public addTimedTextSource(fd: java.io.FileDescriptor, offset: number, length: number, mimeType: string): void;
			/**
			 * Selects a track.
			 * @param index the index of the track to be selected. The valid range of the index
			 */
			public selectTrack(index: number): void;
			/**
			 * Deselect a track.
			 * @param index the index of the track to be deselected. The valid range of the index
			 */
			public deselectTrack(index: number): void;
			protected finalize(): void;
			/**
			 * Register a callback to be invoked when the media source is ready for playback.
			 * @param listener the callback that will be run
			 */
			public setOnPreparedListener(listener: android.media.MediaPlayer.IOnPreparedListener): void;
			/**
			 * Register a callback to be invoked when the end of a media source has been reached during playback.
			 * @param listener the callback that will be run
			 */
			public setOnCompletionListener(listener: android.media.MediaPlayer.IOnCompletionListener): void;
			/**
			 * Register a callback to be invoked when the status of a network stream's buffer has changed.
			 * @param listener the callback that will be run.
			 */
			public setOnBufferingUpdateListener(listener: android.media.MediaPlayer.IOnBufferingUpdateListener): void;
			/**
			 * Register a callback to be invoked when a seek operation has been completed.
			 * @param listener the callback that will be run
			 */
			public setOnSeekCompleteListener(listener: android.media.MediaPlayer.IOnSeekCompleteListener): void;
			/**
			 * Register a callback to be invoked when the video size is known or updated.
			 * @param listener the callback that will be run
			 */
			public setOnVideoSizeChangedListener(listener: android.media.MediaPlayer.IOnVideoSizeChangedListener): void;
			/**
			 * Register a callback to be invoked when a timed text is available for display.
			 * @param listener the callback that will be run
			 */
			public setOnTimedTextListener(listener: android.media.MediaPlayer.IOnTimedTextListener): void;
			/**
			 * Register a callback to be invoked when an error has happened during an asynchronous operation.
			 * @param listener the callback that will be run
			 */
			public setOnErrorListener(listener: android.media.MediaPlayer.IOnErrorListener): void;
			/**
			 * Register a callback to be invoked when an info/warning is available.
			 * @param listener the callback that will be run
			 */
			public setOnInfoListener(listener: android.media.MediaPlayer.IOnInfoListener): void;
		}
		export module MediaPlayer {
			/**
			 * Interface definition of a callback to be invoked when the video size is first known or updated
			 */
			interface IOnVideoSizeChangedListener {
				/**
				 * Called to indicate the video size
				 * @param mp the MediaPlayer associated with this callback
				 * @param width the width of the video
				 * @param height the height of the video
				 */
				onVideoSizeChanged(mp: android.media.MediaPlayer, width: number, height: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when playback of a media source has completed.
			 */
			interface IOnCompletionListener {
				/**
				 * Called when the end of a media source is reached during playback.
				 * @param mp the MediaPlayer that reached the end of the file
				 */
				onCompletion(mp: android.media.MediaPlayer): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the media source is ready for playback.
			 */
			export class OnPreparedListener implements android.media.MediaPlayer.IOnPreparedListener {
				constructor(implementation: android.media.MediaPlayer.IOnPreparedListener);
				/**
				 * Called when the media file is ready for playback.
				 * @param mp the MediaPlayer that is ready for playback
				 */
				public onPrepared(mp: android.media.MediaPlayer): void;
			}
			/**
			 * Interface definition of a callback to be invoked when a timed text is available for display.
			 */
			export class OnTimedTextListener implements android.media.MediaPlayer.IOnTimedTextListener {
				constructor(implementation: android.media.MediaPlayer.IOnTimedTextListener);
				/**
				 * Called to indicate an avaliable timed text
				 * @param mp the MediaPlayer associated with this callback
				 * @param text the timed text sample which contains the text
				 */
				public onTimedText(mp: android.media.MediaPlayer, text: android.media.TimedText): void;
			}
			/**
			 * Interface definition of a callback to be invoked indicating buffering status of a media resource being streamed over the network.
			 */
			interface IOnBufferingUpdateListener {
				/**
				 * Called to update status in buffering a media stream received through progressive HTTP download. The received buffering percentage indicates how much of the content has been buffered or played. For example a buffering update of 80 percent when half the content has already been played indicates that the next 30 percent of the content to play has been buffered.
				 * @param mp the MediaPlayer the update pertains to
				 * @param percent the percentage (0-100) of the content
				 */
				onBufferingUpdate(mp: android.media.MediaPlayer, percent: number): void;
			}
			/**
			 * Interface definition of a callback to be invoked to communicate some info and/or warning about the media or its playback.
			 */
			interface IOnInfoListener {
				/**
				 * Called to indicate an info or a warning.
				 * @param mp the MediaPlayer the info pertains to.
				 * @param what the type of info or warning.
				 * @param extra an extra code, specific to the info. Typically
				 */
				onInfo(mp: android.media.MediaPlayer, what: number, extra: number): boolean;
			}
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.media.MediaPlayer.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the media source is ready for playback.
			 */
			interface IOnPreparedListener {
				/**
				 * Called when the media file is ready for playback.
				 * @param mp the MediaPlayer that is ready for playback
				 */
				onPrepared(mp: android.media.MediaPlayer): void;
			}
			/**
			 * Interface definition of a callback to be invoked when a timed text is available for display.
			 */
			interface IOnTimedTextListener {
				/**
				 * Called to indicate an avaliable timed text
				 * @param mp the MediaPlayer associated with this callback
				 * @param text the timed text sample which contains the text
				 */
				onTimedText(mp: android.media.MediaPlayer, text: android.media.TimedText): void;
			}
			/**
			 * Interface definition of a callback to be invoked to communicate some info and/or warning about the media or its playback.
			 */
			export class OnInfoListener implements android.media.MediaPlayer.IOnInfoListener {
				constructor(implementation: android.media.MediaPlayer.IOnInfoListener);
				/**
				 * Called to indicate an info or a warning.
				 * @param mp the MediaPlayer the info pertains to.
				 * @param what the type of info or warning.
				 * @param extra an extra code, specific to the info. Typically
				 */
				public onInfo(mp: android.media.MediaPlayer, what: number, extra: number): boolean;
			}
			/**
			 * Interface definition of a callback to be invoked when there has been an error during an asynchronous operation (other errors will throw exceptions at method call time).
			 */
			export class OnErrorListener implements android.media.MediaPlayer.IOnErrorListener {
				constructor(implementation: android.media.MediaPlayer.IOnErrorListener);
				/**
				 * Called to indicate an error.
				 * @param mp the MediaPlayer the error pertains to
				 * @param what the type of error that has occurred:
				 * @param extra an extra code, specific to the error. Typically
				 */
				public onError(mp: android.media.MediaPlayer, what: number, extra: number): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when playback of a media source has completed.
			 */
			export class OnCompletionListener implements android.media.MediaPlayer.IOnCompletionListener {
				constructor(implementation: android.media.MediaPlayer.IOnCompletionListener);
				/**
				 * Called when the end of a media source is reached during playback.
				 * @param mp the MediaPlayer that reached the end of the file
				 */
				public onCompletion(mp: android.media.MediaPlayer): void;
			}
			/**
			 * Interface definition of a callback to be invoked indicating the completion of a seek operation.
			 */
			interface IOnSeekCompleteListener {
				/**
				 * Called to indicate the completion of a seek operation.
				 * @param mp the MediaPlayer that issued the seek operation
				 */
				onSeekComplete(mp: android.media.MediaPlayer): void;
			}
			/**
			 * Interface definition of a callback to be invoked when there has been an error during an asynchronous operation (other errors will throw exceptions at method call time).
			 */
			interface IOnErrorListener {
				/**
				 * Called to indicate an error.
				 * @param mp the MediaPlayer the error pertains to
				 * @param what the type of error that has occurred:
				 * @param extra an extra code, specific to the error. Typically
				 */
				onError(mp: android.media.MediaPlayer, what: number, extra: number): boolean;
			}
			/**
			 * Class for MediaPlayer to return each audio/video/subtitle track's metadata.
			 */
			export class TrackInfo extends java.lang.Object implements android.os.IParcelable {
				static MEDIA_TRACK_TYPE_UNKNOWN: number;
				static MEDIA_TRACK_TYPE_VIDEO: number;
				static MEDIA_TRACK_TYPE_AUDIO: number;
				static MEDIA_TRACK_TYPE_TIMEDTEXT: number;
				static class: java.lang.Class<android.media.MediaPlayer.TrackInfo>;
				/**
				 * Gets the track type.
				 */
				public getTrackType(): number;
				/**
				 * Gets the language code of the track.
				 */
				public getLanguage(): string;
				/**
				 * 
				 */
				public describeContents(): number;
				/**
				 * 
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * Interface definition of a callback to be invoked indicating buffering status of a media resource being streamed over the network.
			 */
			export class OnBufferingUpdateListener implements android.media.MediaPlayer.IOnBufferingUpdateListener {
				constructor(implementation: android.media.MediaPlayer.IOnBufferingUpdateListener);
				/**
				 * Called to update status in buffering a media stream received through progressive HTTP download. The received buffering percentage indicates how much of the content has been buffered or played. For example a buffering update of 80 percent when half the content has already been played indicates that the next 30 percent of the content to play has been buffered.
				 * @param mp the MediaPlayer the update pertains to
				 * @param percent the percentage (0-100) of the content
				 */
				public onBufferingUpdate(mp: android.media.MediaPlayer, percent: number): void;
			}
			/**
			 * Interface definition of a callback to be invoked indicating the completion of a seek operation.
			 */
			export class OnSeekCompleteListener implements android.media.MediaPlayer.IOnSeekCompleteListener {
				constructor(implementation: android.media.MediaPlayer.IOnSeekCompleteListener);
				/**
				 * Called to indicate the completion of a seek operation.
				 * @param mp the MediaPlayer that issued the seek operation
				 */
				public onSeekComplete(mp: android.media.MediaPlayer): void;
			}
			/**
			 * Interface definition of a callback to be invoked when the video size is first known or updated
			 */
			export class OnVideoSizeChangedListener implements android.media.MediaPlayer.IOnVideoSizeChangedListener {
				constructor(implementation: android.media.MediaPlayer.IOnVideoSizeChangedListener);
				/**
				 * Called to indicate the video size
				 * @param mp the MediaPlayer associated with this callback
				 * @param width the width of the video
				 * @param height the height of the video
				 */
				public onVideoSizeChanged(mp: android.media.MediaPlayer, width: number, height: number): void;
			}
		}
	}
	export module webkit {
		/**
		 * A convenience class for accessing fields in an entry in the back/forward list of a WebView. Each WebHistoryItem is a snapshot of the requested history item. Each history item may be updated during the load of a page. WebBackForwardList
		 */
		export class WebHistoryItem extends java.lang.Object implements java.lang.ICloneable {
			static class: java.lang.Class<android.webkit.WebHistoryItem>;
			/**
			 * Return the url of this history item. The url is the base url of this history item. See getTargetUrl() for the url that is the actual target of this history item.
			 */
			public getUrl(): string;
			/**
			 * Return the original url of this history item. This was the requested url, the final url may be different as there might have been redirects while loading the site.
			 */
			public getOriginalUrl(): string;
			/**
			 * Return the document title of this history item.
			 */
			public getTitle(): string;
			/**
			 * Return the favicon of this history item or null if no favicon was found.
			 */
			public getFavicon(): android.graphics.Bitmap;
			/**
			 * Clone the history item for use by clients of WebView.
			 */
			protected clone(): android.webkit.WebHistoryItem;
		}
		export class PluginFullScreenHolder extends java.lang.Object {
			static class: java.lang.Class<android.webkit.PluginFullScreenHolder>;
			public setContentView(contentView: android.view.View): void;
			public show(): void;
			public hide(): void;
		}
		export module PluginFullScreenHolder {
			export class CustomFrameLayout extends android.widget.FrameLayout {
				static class: java.lang.Class<android.webkit.PluginFullScreenHolder.CustomFrameLayout>;
				public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
				public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
				public onTouchEvent(event: android.view.MotionEvent): boolean;
				public onTrackballEvent(event: android.view.MotionEvent): boolean;
			}
		}
		/**
		 * Top level factory, used creating all the main WebView implementation classes.
		 */
		export class WebViewFactory extends java.lang.Object {
			static class: java.lang.Class<android.webkit.WebViewFactory>;
		}
		export class DeviceOrientationService extends java.lang.Object implements android.hardware.ISensorEventListener {
			constructor(manager: android.webkit.DeviceMotionAndOrientationManager, context: android.content.Context);
			static class: java.lang.Class<android.webkit.DeviceOrientationService>;
			public start(): void;
			public stop(): void;
			public suspend(): void;
			public resume(): void;
			/**
			 * SensorEventListener implementation. Callbacks happen on the thread on which we registered - the WebCore thread.
			 */
			public onSensorChanged(event: android.hardware.SensorEvent): void;
			public onAccuracyChanged(sensor: android.hardware.Sensor, accuracy: number): void;
		}
		/**
		 * This class is used to manage permissions for the WebView's Geolocation JavaScript API.
		 */
		export class GeolocationPermissions extends java.lang.Object {
			static class: java.lang.Class<android.webkit.GeolocationPermissions>;
			/**
			 * Gets the singleton instance of this class.
			 */
			public static getInstance(): android.webkit.GeolocationPermissions;
			/**
			 * Gets the set of origins for which Geolocation permissions are stored.
			 * @param callback a {@link ValueCallback} to receive the result of this
			 */
			public getOrigins(callback: android.webkit.IValueCallback<java.util.ISet<string>>): void;
			/**
			 * Gets the Geolocation permission state for the specified origin.
			 * @param origin the origin for which Geolocation permission is requested
			 * @param callback a {@link ValueCallback} to receive the result of this
			 */
			public getAllowed(origin: string, callback: android.webkit.IValueCallback<boolean>): void;
			/**
			 * Clears the Geolocation permission state for the specified origin.
			 * @param origin the origin for which Geolocation permissions are cleared
			 */
			public clear(origin: string): void;
			/**
			 * Allows the specified origin to use the Geolocation API.
			 * @param origin the origin for which Geolocation API use is allowed
			 */
			public allow(origin: string): void;
			/**
			 * Clears the Geolocation permission state for all origins.
			 */
			public clearAll(): void;
		}
		export module GeolocationPermissions {
			/**
			 * A callback interface used by the host application to set the Geolocation permission state for an origin.
			 */
			export class Callback implements android.webkit.GeolocationPermissions.ICallback {
				constructor(implementation: android.webkit.GeolocationPermissions.ICallback);
				/**
				 * Sets the Geolocation permission state for the supplied origin.
				 * @param origin the origin for which permissions are set
				 * @param allow whether or not the origin should be allowed to use the
				 * @param retain whether the permission should be retained beyond the
				 */
				public invoke(origin: string, allow: boolean, retain: boolean): void;
			}
			/**
			 * A callback interface used by the host application to set the Geolocation permission state for an origin.
			 */
			interface ICallback {
				/**
				 * Sets the Geolocation permission state for the supplied origin.
				 * @param origin the origin for which permissions are set
				 * @param allow whether or not the origin should be allowed to use the
				 * @param retain whether the permission should be retained beyond the
				 */
				invoke(origin: string, allow: boolean, retain: boolean): void;
			}
		}
		export class ViewManager extends java.lang.Object {
			static class: java.lang.Class<android.webkit.ViewManager>;
			createView(): android.webkit.ViewManager.ChildView;
			startZoom(): void;
			endZoom(): void;
			scaleAll(): void;
			hideAll(): void;
			showAll(): void;
			postResetStateAll(): void;
			postReadyToDrawAll(): void;
			hitTest(contentX: number, contentY: number): android.webkit.ViewManager.ChildView;
		}
		export module ViewManager {
			export class ChildView extends java.lang.Object {
				static class: java.lang.Class<android.webkit.ViewManager.ChildView>;
				setBounds(x: number, y: number, width: number, height: number): void;
				attachView(x: number, y: number, width: number, height: number): void;
				removeView(): void;
			}
		}
		/**
		 * Two-way map that maps MIME-types to file extensions and vice versa.
		 */
		export class MimeTypeMap extends java.lang.Object {
			static class: java.lang.Class<android.webkit.MimeTypeMap>;
			/**
			 * Returns the file extension or an empty string iff there is no extension. This method is a convenience method for obtaining the extension of a url and has undefined results for other Strings.
			 * @param url 
			 */
			public static getFileExtensionFromUrl(url: string): string;
			/**
			 * Return true if the given MIME type has an entry in the map.
			 * @param mimeType A MIME type (i.e. text/plain)
			 */
			public hasMimeType(mimeType: string): boolean;
			/**
			 * Return the MIME type for the given extension.
			 * @param extension A file extension without the leading '.'
			 */
			public getMimeTypeFromExtension(extension: string): string;
			/**
			 * Return true if the given extension has a registered MIME type.
			 * @param extension A file extension without the leading '.'
			 */
			public hasExtension(extension: string): boolean;
			/**
			 * Return the registered extension for the given MIME type. Note that some MIME types map to multiple extensions. This call will return the most common extension for the given MIME type.
			 * @param mimeType A MIME type (i.e. text/plain)
			 */
			public getExtensionFromMimeType(mimeType: string): string;
			/**
			 * If the given MIME type is null, or one of the "generic" types (text/plain or application/octet-stream) map it to a type that Android can deal with. If the given type is not generic, return it unchanged.
			 * @param mimeType MIME type provided by the server.
			 * @param url URL of the data being loaded.
			 * @param contentDisposition Content-disposition header given by the server.
			 */
			remapGenericMimeType(mimeType: string, url: string, contentDisposition: string): string;
			/**
			 * Get the singleton instance of MimeTypeMap.
			 */
			public static getSingleton(): android.webkit.MimeTypeMap;
		}
		interface IZoomControlBase {
			/**
			 * Causes the on-screen zoom control to be made visible
			 */
			show(): void;
			/**
			 * Causes the on-screen zoom control to disappear
			 */
			hide(): void;
			/**
			 * Enables the control to update its state if necessary in response to a change in the pages zoom level. For example, if the max zoom level is reached then the control can disable the button for zooming in.
			 */
			update(): void;
			/**
			 * Checks to see if the control is currently visible to the user.
			 */
			isVisible(): boolean;
		}
		/**
		 * A fragment that displays a WebView.
		 */
		export class WebViewFragment extends android.app.Fragment {
			constructor();
			static class: java.lang.Class<android.webkit.WebViewFragment>;
			/**
			 * Called to instantiate the view. Creates and returns the WebView.
			 */
			public onCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
			/**
			 * Called when the fragment is visible to the user and actively running. Resumes the WebView.
			 */
			public onPause(): void;
			/**
			 * Called when the fragment is no longer resumed. Pauses the WebView.
			 */
			public onResume(): void;
			/**
			 * Called when the WebView has been detached from the fragment. The WebView is no longer available after this time.
			 */
			public onDestroyView(): void;
			/**
			 * Called when the fragment is no longer in use. Destroys the internal state of the WebView.
			 */
			public onDestroy(): void;
			/**
			 * Gets the WebView.
			 */
			public getWebView(): android.webkit.WebView;
		}
		/**
		 * A quadrilateral, determined by four points, clockwise order. Typically p1 is "top-left" and p4 is "bottom-left" following webkit's rectangle-to- FloatQuad conversion.
		 */
		export class QuadF extends java.lang.Object {
			constructor();
			p1: android.graphics.PointF;
			p2: android.graphics.PointF;
			p3: android.graphics.PointF;
			p4: android.graphics.PointF;
			static class: java.lang.Class<android.webkit.QuadF>;
			public offset(dx: number, dy: number): void;
			/**
			 * Determines if the quadrilateral contains the given point. This does not work if the quadrilateral is self-intersecting or if any inner angle is reflex (greater than 180 degrees).
			 */
			public containsPoint(x: number, y: number): boolean;
			public toString(): string;
		}
		/**
		 * KeyStoreHandler: class responsible for certificate installation to the system key store. It reads the certificates file from network then pass the bytes to class CertTool. This class is only needed if the Chromium HTTP stack is used.
		 */
		export class KeyStoreHandler extends android.os.Handler {
			constructor(mimeType: string);
			static class: java.lang.Class<android.webkit.KeyStoreHandler>;
			/**
			 * Add data to the internal collection of data.
			 * @param data A byte array containing the content.
			 * @param length The length of data.
			 */
			public didReceiveData(data: native.Array<number>, length: number): void;
			public installCert(context: android.content.Context): void;
		}
		export class JniUtil extends java.lang.Object {
			static class: java.lang.Class<android.webkit.JniUtil>;
			protected static setContext(context: android.content.Context): void;
			protected static getContext(): android.content.Context;
		}
		/**
		 * This class allows developers to determine whether any WebView used in the application has stored any of the following types of browsing data and to clear any such stored data for all WebViews in the application. <ul> <li>Username/password pairs for web forms</li> <li>HTTP authentication username/password pairs</li> <li>Data entered into text fields (e.g. for autocomplete suggestions)</li> </ul>
		 */
		export class WebViewDatabase extends java.lang.Object {
			static class: java.lang.Class<android.webkit.WebViewDatabase>;
			public static getInstance(context: android.content.Context): android.webkit.WebViewDatabase;
			/**
			 * Gets whether there are any saved username/password pairs for web forms. Note that these are unrelated to HTTP authentication credentials.
			 */
			public hasUsernamePassword(): boolean;
			/**
			 * Clears any saved username/password pairs for web forms. Note that these are unrelated to HTTP authentication credentials.
			 */
			public clearUsernamePassword(): void;
			/**
			 * Gets whether there are any saved credentials for HTTP authentication.
			 */
			public hasHttpAuthUsernamePassword(): boolean;
			/**
			 * Clears any saved credentials for HTTP authentication.
			 */
			public clearHttpAuthUsernamePassword(): void;
			/**
			 * Gets whether there is any saved data for web forms.
			 */
			public hasFormData(): boolean;
			/**
			 * Clears any saved data for web forms.
			 */
			public clearFormData(): void;
		}
		export class WebChromeClient extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.webkit.WebChromeClient>;
			/**
			 * Tell the host application the current progress of loading a page.
			 * @param view The WebView that initiated the callback.
			 * @param newProgress Current page loading progress, represented by
			 */
			public onProgressChanged(view: android.webkit.WebView, newProgress: number): void;
			/**
			 * Notify the host application of a change in the document title.
			 * @param view The WebView that initiated the callback.
			 * @param title A String containing the new title of the document.
			 */
			public onReceivedTitle(view: android.webkit.WebView, title: string): void;
			/**
			 * Notify the host application of a new favicon for the current page.
			 * @param view The WebView that initiated the callback.
			 * @param icon A Bitmap containing the favicon for the current page.
			 */
			public onReceivedIcon(view: android.webkit.WebView, icon: android.graphics.Bitmap): void;
			/**
			 * Notify the host application of the url for an apple-touch-icon.
			 * @param view The WebView that initiated the callback.
			 * @param url The icon url.
			 * @param precomposed True if the url is for a precomposed touch icon.
			 */
			public onReceivedTouchIconUrl(view: android.webkit.WebView, url: string, precomposed: boolean): void;
			/**
			 * Notify the host application that the current page would like to show a custom View.
			 * @param view is the View object to be shown.
			 * @param callback is the callback to be invoked if and when the view
			 */
			public onShowCustomView(view: android.view.View, callback: android.webkit.WebChromeClient.ICustomViewCallback): void;
			/**
			 * Notify the host application that the current page would like to show a custom View in a particular orientation.
			 * @param view is the View object to be shown.
			 * @param requestedOrientation An orientation constant as used in
			 * @param callback is the callback to be invoked if and when the view
			 */
			public onShowCustomView(view: android.view.View, requestedOrientation: number, callback: android.webkit.WebChromeClient.ICustomViewCallback): void;
			/**
			 * Notify the host application that the current page would like to hide its custom view.
			 */
			public onHideCustomView(): void;
			/**
			 * Request the host application to create a new window. If the host application chooses to honor this request, it should return true from this method, create a new WebView to host the window, insert it into the View system and send the supplied resultMsg message to its target with the new WebView as an argument. If the host application chooses not to honor the request, it should return false from this method. The default implementation of this method does nothing and hence returns false.
			 * @param view The WebView from which the request for a new window
			 * @param isDialog True if the new window should be a dialog, rather than
			 * @param isUserGesture True if the request was initiated by a user gesture,
			 * @param resultMsg The message to send when once a new WebView has been
			 */
			public onCreateWindow(view: android.webkit.WebView, isDialog: boolean, isUserGesture: boolean, resultMsg: android.os.Message): boolean;
			/**
			 * Request display and focus for this WebView. This may happen due to another WebView opening a link in this WebView and requesting that this WebView be displayed.
			 * @param view The WebView that needs to be focused.
			 */
			public onRequestFocus(view: android.webkit.WebView): void;
			/**
			 * Notify the host application to close the given WebView and remove it from the view system if necessary. At this point, WebCore has stopped any loading in this window and has removed any cross-scripting ability in javascript.
			 * @param window The WebView that needs to be closed.
			 */
			public onCloseWindow(window: android.webkit.WebView): void;
			/**
			 * Tell the client to display a javascript alert dialog. If the client returns true, WebView will assume that the client will handle the dialog. If the client returns false, it will continue execution.
			 * @param view The WebView that initiated the callback.
			 * @param url The url of the page requesting the dialog.
			 * @param message Message to be displayed in the window.
			 * @param result A JsResult to confirm that the user hit enter.
			 */
			public onJsAlert(view: android.webkit.WebView, url: string, message: string, result: android.webkit.JsResult): boolean;
			/**
			 * Tell the client to display a confirm dialog to the user. If the client returns true, WebView will assume that the client will handle the confirm dialog and call the appropriate JsResult method. If the client returns false, a default value of false will be returned to javascript. The default behavior is to return false.
			 * @param view The WebView that initiated the callback.
			 * @param url The url of the page requesting the dialog.
			 * @param message Message to be displayed in the window.
			 * @param result A JsResult used to send the user's response to
			 */
			public onJsConfirm(view: android.webkit.WebView, url: string, message: string, result: android.webkit.JsResult): boolean;
			/**
			 * Tell the client to display a prompt dialog to the user. If the client returns true, WebView will assume that the client will handle the prompt dialog and call the appropriate JsPromptResult method. If the client returns false, a default value of false will be returned to to javascript. The default behavior is to return false.
			 * @param view The WebView that initiated the callback.
			 * @param url The url of the page requesting the dialog.
			 * @param message Message to be displayed in the window.
			 * @param defaultValue The default value displayed in the prompt dialog.
			 * @param result A JsPromptResult used to send the user's reponse to
			 */
			public onJsPrompt(view: android.webkit.WebView, url: string, message: string, defaultValue: string, result: android.webkit.JsPromptResult): boolean;
			/**
			 * Tell the client to display a dialog to confirm navigation away from the current page. This is the result of the onbeforeunload javascript event. If the client returns true, WebView will assume that the client will handle the confirm dialog and call the appropriate JsResult method. If the client returns false, a default value of true will be returned to javascript to accept navigation away from the current page. The default behavior is to return false. Setting the JsResult to true will navigate away from the current page, false will cancel the navigation.
			 * @param view The WebView that initiated the callback.
			 * @param url The url of the page requesting the dialog.
			 * @param message Message to be displayed in the window.
			 * @param result A JsResult used to send the user's response to
			 */
			public onJsBeforeUnload(view: android.webkit.WebView, url: string, message: string, result: android.webkit.JsResult): boolean;
			/**
			 * Tell the client that the quota has been exceeded for the Web SQL Database API for a particular origin and request a new quota. The client must respond by invoking the WebStorage.QuotaUpdater#updateQuota(long) updateQuota(long) method of the supplied WebStorage.QuotaUpdater instance. The minimum value that can be set for the new quota is the current quota. The default implementation responds with the current quota, so the quota will not be increased.
			 * @param url The URL of the page that triggered the notification
			 * @param databaseIdentifier The identifier of the database where the quota
			 * @param quota The quota for the origin, in bytes
			 * @param estimatedDatabaseSize The estimated size of the offending
			 * @param totalQuota The total quota for all origins, in bytes
			 * @param quotaUpdater An instance of {@link WebStorage.QuotaUpdater} which
			 */
			public onExceededDatabaseQuota(url: string, databaseIdentifier: string, quota: number, estimatedDatabaseSize: number, totalQuota: number, quotaUpdater: android.webkit.WebStorage.IQuotaUpdater): void;
			/**
			 * Notify the host application that the Application Cache has reached the maximum size. The client must respond by invoking the WebStorage.QuotaUpdater#updateQuota(long) updateQuota(long) method of the supplied WebStorage.QuotaUpdater instance. The minimum value that can be set for the new quota is the current quota. The default implementation responds with the current quota, so the quota will not be increased.
			 * @param requiredStorage The amount of storage required by the Application
			 * @param quota the current maximum Application Cache size, in bytes
			 * @param quotaUpdater An instance of {@link WebStorage.QuotaUpdater} which
			 */
			public onReachedMaxAppCacheSize(requiredStorage: number, quota: number, quotaUpdater: android.webkit.WebStorage.IQuotaUpdater): void;
			/**
			 * Notify the host application that web content from the specified origin is attempting to use the Geolocation API, but no permission state is currently set for that origin. The host application should invoke the specified callback with the desired permission state. See GeolocationPermissions for details.
			 * @param origin The origin of the web content attempting to use the
			 * @param callback The callback to use to set the permission state for the
			 */
			public onGeolocationPermissionsShowPrompt(origin: string, callback: android.webkit.GeolocationPermissions.ICallback): void;
			/**
			 * Notify the host application that a request for Geolocation permissions, made with a previous call to #onGeolocationPermissionsShowPrompt(String,GeolocationPermissions.Callback) onGeolocationPermissionsShowPrompt() has been canceled. Any related UI should therefore be hidden.
			 */
			public onGeolocationPermissionsHidePrompt(): void;
			/**
			 * Tell the client that a JavaScript execution timeout has occured. And the client may decide whether or not to interrupt the execution. If the client returns true, the JavaScript will be interrupted. If the client returns false, the execution will continue. Note that in the case of continuing execution, the timeout counter will be reset, and the callback will continue to occur if the script does not finish at the next check point.
			 */
			public onJsTimeout(): boolean;
			/**
			 * Report a JavaScript error message to the host application. The ChromeClient should override this to process the log message as they see fit.
			 * @param message The error message to report.
			 * @param lineNumber The line number of the error.
			 * @param sourceID The name of the source file that caused the error.
			 */
			public onConsoleMessage(message: string, lineNumber: number, sourceID: string): void;
			/**
			 * Report a JavaScript console message to the host application. The ChromeClient should override this to process the log message as they see fit.
			 * @param consoleMessage Object containing details of the console message.
			 */
			public onConsoleMessage(consoleMessage: android.webkit.ConsoleMessage): boolean;
			/**
			 * When not playing, video elements are represented by a 'poster' image. The image to use can be specified by the poster attribute of the video tag in HTML. If the attribute is absent, then a default poster will be used. This method allows the ChromeClient to provide that default image.
			 */
			public getDefaultVideoPoster(): android.graphics.Bitmap;
			/**
			 * When the user starts to playback a video element, it may take time for enough data to be buffered before the first frames can be rendered. While this buffering is taking place, the ChromeClient can use this function to provide a View to be displayed. For example, the ChromeClient could show a spinner animation.
			 */
			public getVideoLoadingProgressView(): android.view.View;
			/**
			 * Obtains a list of all visited history items, used for link coloring
			 */
			public getVisitedHistory(callback: android.webkit.IValueCallback<native.Array<string>>): void;
		}
		export module WebChromeClient {
			/**
			 * A callback interface used by the host application to notify the current page that its custom view has been dismissed.
			 */
			export class CustomViewCallback implements android.webkit.WebChromeClient.ICustomViewCallback {
				constructor(implementation: android.webkit.WebChromeClient.ICustomViewCallback);
				/**
				 * Invoked when the host application dismisses the custom view.
				 */
				public onCustomViewHidden(): void;
			}
			/**
			 * A callback interface used by the host application to notify the current page that its custom view has been dismissed.
			 */
			interface ICustomViewCallback {
				/**
				 * Invoked when the host application dismisses the custom view.
				 */
				onCustomViewHidden(): void;
			}
		}
		export class ZoomControlEmbedded extends java.lang.Object implements android.webkit.IZoomControlBase {
			static class: java.lang.Class<android.webkit.ZoomControlEmbedded>;
			public show(): void;
			public hide(): void;
			public isVisible(): boolean;
			public update(): void;
		}
		export module ZoomControlEmbedded {
			export class ZoomListener extends java.lang.Object implements android.widget.ZoomButtonsController.IOnZoomListener {
				static class: java.lang.Class<android.webkit.ZoomControlEmbedded.ZoomListener>;
				public onVisibilityChanged(visible: boolean): void;
				public onZoom(zoomIn: boolean): void;
			}
		}
		export class FindActionModeCallback extends java.lang.Object implements android.view.ActionMode.ICallback, android.text.ITextWatcher, android.view.View.IOnClickListener {
			static class: java.lang.Class<android.webkit.FindActionModeCallback>;
			finish(): void;
			setText(text: string): void;
			findAll(): void;
			public showSoftInput(): void;
			public updateMatchCount(matchIndex: number, matchCount: number, isEmptyFind: boolean): void;
			public onClick(v: android.view.View): void;
			public onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
			public onDestroyActionMode(mode: android.view.ActionMode): void;
			public onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
			public onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
			public beforeTextChanged(s: string, start: number, count: number, after: number): void;
			public onTextChanged(s: string, start: number, before: number, count: number): void;
			public afterTextChanged(s: any): void;
			public getActionModeGlobalBottom(): number;
		}
		export module FindActionModeCallback {
			export class NoAction extends java.lang.Object implements android.view.ActionMode.ICallback {
				constructor();
				static class: java.lang.Class<android.webkit.FindActionModeCallback.NoAction>;
				public onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				public onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				public onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
				public onDestroyActionMode(mode: android.view.ActionMode): void;
			}
		}
		export class GeolocationPermissionsClassic extends android.webkit.GeolocationPermissions {
			static class: java.lang.Class<android.webkit.GeolocationPermissionsClassic>;
			public static getInstance(): android.webkit.GeolocationPermissionsClassic;
			public getOrigins(callback: android.webkit.IValueCallback<java.util.ISet<string>>): void;
			public getAllowed(origin: string, callback: android.webkit.IValueCallback<boolean>): void;
			public clear(origin: string): void;
			public allow(origin: string): void;
			public clearAll(): void;
		}
		/**
		 * This is a test for the behavior of the AccessibilityInjector which is used by WebView to provide basic accessibility support in case JavaScript is disabled. </p> Note: This test works against the generated AccessibilityEvents to so it also checks if the test for announcing navigation axis and status messages as appropriate.
		 */
		export class AccessibilityInjectorTest extends android.test.ActivityInstrumentationTestCase2<android.webkit.AccessibilityInjectorTestActivity> {
			constructor();
			static class: java.lang.Class<android.webkit.AccessibilityInjectorTest>;
			Worker: {
	new (): android.webkit.AccessibilityInjectorTest.Worker;
};
			protected setUp(): void;
			protected tearDown(): void;
			/**
			 * Tests navigation by character.
			 */
			public testNavigationByCharacter(): void;
			/**
			 * Tests navigation by word.
			 */
			public testNavigationByWord(): void;
			/**
			 * Tests navigation by sentence.
			 */
			public testNavigationBySentence(): void;
			/**
			 * Tests navigation by heading.
			 */
			public testNavigationByHeading(): void;
			/**
			 * Tests navigation by sibling.
			 */
			public testNavigationBySibing(): void;
			/**
			 * Tests navigation by parent/first child.
			 */
			public testNavigationByParentFirstChild(): void;
			/**
			 * Tests navigation by document.
			 */
			public testNavigationByDocument(): void;
			/**
			 * Tests the sync between the text navigation and navigation by DOM elements.
			 */
			public testSyncBetweenTextAndDomNodeNavigation(): void;
			/**
			 * Tests that the selection does not cross anchor boundaries. This is a workaround for the asymmetric and inconsistent handling of text with links by WebKit while traversing by sentence.
			 */
			public testEnforceSelectionDoesNotCrossAnchorBoundary1(): void;
			/**
			 * Tests that the selection does not cross anchor boundaries. This is a workaround for the asymmetric and inconsistent handling of text with links by WebKit while traversing by sentence.
			 */
			public testEnforceSelectionDoesNotCrossAnchorBoundary2(): void;
			/**
			 * Tests that the selection does not cross anchor boundaries. This is a workaround for the asymmetric and inconsistent handling of text with links by WebKit while traversing by sentence.
			 */
			public testEnforceSelectionDoesNotCrossAnchorBoundary3(): void;
			/**
			 * Tests skipping of content with hidden visibility.
			 */
			public testSkipVisibilityHidden(): void;
			/**
			 * Tests skipping of content with display none.
			 */
			public testSkipDisplayNone(): void;
			/**
			 * Tests for the selection not getting stuck.
			 */
			public testSelectionTextProceed(): void;
			/**
			 * Tests if input elements are selected rather skipped.
			 */
			public testSelectionOfInputElements(): void;
			/**
			 * Tests traversing of input controls.
			 */
			public testSelectionOfInputElements2(): void;
			/**
			 * Tests traversing of input controls.
			 */
			public testSelectionOfInputElements3(): void;
			/**
			 * Tests traversing of input controls.
			 */
			public testSelectionOfInputElements4(): void;
			/**
			 * Tests traversing of input controls.
			 */
			public testSelectionOfInputElements5(): void;
			protected scrubClass(testCaseClass: java.lang.Class<any>): void;
		}
		export module AccessibilityInjectorTest {
			/**
			 * Mock accessibility service to receive the accessibility events with the current WebView selection.
			 */
			export class MockAccessibilityService extends android.accessibilityservice.AccessibilityService {
				constructor();
				static class: java.lang.Class<android.webkit.AccessibilityInjectorTest.MockAccessibilityService>;
				protected onServiceConnected(): void;
				public onAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
				public onInterrupt(): void;
				public onUnbind(intent: android.content.Intent): boolean;
			}
			/**
			 * This is a worker thread responsible for creating the WebView.
			 */
			export class Worker extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.webkit.AccessibilityInjectorTest.Worker>;
				public run(): void;
				public getHandler(): android.os.Handler;
				public stop(): void;
			}
		}
		/**
		 * Manages the cookies used by an application's WebView instances. Cookies are manipulated according to RFC2109.
		 */
		export class CookieManager extends java.lang.Object {
			static class: java.lang.Class<android.webkit.CookieManager>;
			protected clone(): any;
			/**
			 * Gets the singleton CookieManager instance. If this method is used before the application instantiates a WebView instance, CookieSyncManager#createInstance CookieSyncManager.createInstance(Context) must be called first.
			 */
			public static getInstance(): android.webkit.CookieManager;
			/**
			 * Sets whether the application's WebView instances should send and accept cookies.
			 * @param accept whether {@link WebView} instances should send and accept
			 */
			public setAcceptCookie(accept: boolean): void;
			/**
			 * Gets whether the application's WebView instances send and accept cookies.
			 */
			public acceptCookie(): boolean;
			/**
			 * Sets a cookie for the given URL. Any existing cookie with the same host, path and name will be replaced with the new cookie. The cookie being set must not have expired and must not be a session cookie, otherwise it will be ignored.
			 * @param url the URL for which the cookie is set
			 * @param value the cookie as a string, using the format of the 'Set-Cookie'
			 */
			public setCookie(url: string, value: string): void;
			/**
			 * Gets the cookies for the given URL.
			 * @param url the URL for which the cookies are requested
			 */
			public getCookie(url: string): string;
			/**
			 * Removes all session cookies, which are cookies without an expiration date.
			 */
			public removeSessionCookie(): void;
			/**
			 * Removes all cookies.
			 */
			public removeAllCookie(): void;
			/**
			 * Gets whether there are stored cookies.
			 */
			public hasCookies(): boolean;
			/**
			 * Removes all expired cookies.
			 */
			public removeExpiredCookie(): void;
			/**
			 * Gets whether the application's WebView instances send and accept cookies for file scheme URLs.
			 */
			public static allowFileSchemeCookies(): boolean;
			/**
			 * Sets whether the application's WebView instances should send and accept cookies for file scheme URLs. Use of cookies with file scheme URLs is potentially insecure. Do not use this feature unless you can be sure that no unintentional sharing of cookie data can take place.
			 */
			public static setAcceptFileSchemeCookies(accept: boolean): void;
		}
		/**
		 * This interface is used to implement plugins in a WebView. A plugin package may extend this class and implement the abstract functions to create embedded or fullscreeen views displayed in a WebView. The PluginStub implementation will be provided the same NPP instance that is created through the native interface.
		 */
		export class PluginStub implements android.webkit.IPluginStub {
			constructor(implementation: android.webkit.IPluginStub);
			/**
			 * Return a custom embedded view to draw the plugin.
			 * @param NPP The native NPP instance.
			 * @param context The current application's Context.
			 */
			public getEmbeddedView(NPP: number, context: android.content.Context): android.view.View;
			/**
			 * Return a custom full-screen view to be displayed when the user requests a plugin display as full-screen. Note that the application may choose not to display this View as completely full-screen.
			 * @param NPP The native NPP instance.
			 * @param context The current application's Context.
			 */
			public getFullScreenView(NPP: number, context: android.content.Context): android.view.View;
		}
		/**
		 * This class is simply a container for the methods used to implement DeviceMotion and DeviceOrientation, including the mock DeviceOrientationClient for use in LayoutTests.
		 */
		export class DeviceMotionAndOrientationManager extends java.lang.Object {
			static class: java.lang.Class<android.webkit.DeviceMotionAndOrientationManager>;
			/**
			 * Sets that the Page for this WebViewCore should use a mock DeviceOrientation client.
			 */
			public setUseMock(): void;
			/**
			 * Set the position for the mock DeviceOrientation service for this WebViewCore.
			 */
			public setMockOrientation(canProvideAlpha: boolean, alpha: number, canProvideBeta: boolean, beta: number, canProvideGamma: boolean, gamma: number): void;
			public onMotionChange(x: java.lang.Double, y: java.lang.Double, z: java.lang.Double, interval: number): void;
			public onOrientationChange(alpha: java.lang.Double, beta: java.lang.Double, gamma: java.lang.Double): void;
		}
		export class WebViewClient extends java.lang.Object {
			constructor();
			/**
			 * Generic error
			 */
			static ERROR_UNKNOWN: number;
			/**
			 * Server or proxy hostname lookup failed
			 */
			static ERROR_HOST_LOOKUP: number;
			/**
			 * Unsupported authentication scheme (not basic or digest)
			 */
			static ERROR_UNSUPPORTED_AUTH_SCHEME: number;
			/**
			 * User authentication failed on server
			 */
			static ERROR_AUTHENTICATION: number;
			/**
			 * User authentication failed on proxy
			 */
			static ERROR_PROXY_AUTHENTICATION: number;
			/**
			 * Failed to connect to the server
			 */
			static ERROR_CONNECT: number;
			/**
			 * Failed to read or write to the server
			 */
			static ERROR_IO: number;
			/**
			 * Connection timed out
			 */
			static ERROR_TIMEOUT: number;
			/**
			 * Too many redirects
			 */
			static ERROR_REDIRECT_LOOP: number;
			/**
			 * Unsupported URI scheme
			 */
			static ERROR_UNSUPPORTED_SCHEME: number;
			/**
			 * Failed to perform SSL handshake
			 */
			static ERROR_FAILED_SSL_HANDSHAKE: number;
			/**
			 * Malformed URL
			 */
			static ERROR_BAD_URL: number;
			/**
			 * Generic file error
			 */
			static ERROR_FILE: number;
			/**
			 * File not found
			 */
			static ERROR_FILE_NOT_FOUND: number;
			/**
			 * Too many requests during this load
			 */
			static ERROR_TOO_MANY_REQUESTS: number;
			static class: java.lang.Class<android.webkit.WebViewClient>;
			/**
			 * Give the host application a chance to take over the control when a new url is about to be loaded in the current WebView. If WebViewClient is not provided, by default WebView will ask Activity Manager to choose the proper handler for the url. If WebViewClient is provided, return true means the host application handles the url, while return false means the current WebView handles the url.
			 * @param view The WebView that is initiating the callback.
			 * @param url The url to be loaded.
			 */
			public shouldOverrideUrlLoading(view: android.webkit.WebView, url: string): boolean;
			/**
			 * Notify the host application that a page has started loading. This method is called once for each main frame load so a page with iframes or framesets will call onPageStarted one time for the main frame. This also means that onPageStarted will not be called when the contents of an embedded frame changes, i.e. clicking a link whose target is an iframe.
			 * @param view The WebView that is initiating the callback.
			 * @param url The url to be loaded.
			 * @param favicon The favicon for this page if it already exists in the
			 */
			public onPageStarted(view: android.webkit.WebView, url: string, favicon: android.graphics.Bitmap): void;
			/**
			 * Notify the host application that a page has finished loading. This method is called only for main frame. When onPageFinished() is called, the rendering picture may not be updated yet. To get the notification for the new Picture, use WebView.PictureListener#onNewPicture.
			 * @param view The WebView that is initiating the callback.
			 * @param url The url of the page.
			 */
			public onPageFinished(view: android.webkit.WebView, url: string): void;
			/**
			 * Notify the host application that the WebView will load the resource specified by the given url.
			 * @param view The WebView that is initiating the callback.
			 * @param url The url of the resource the WebView will load.
			 */
			public onLoadResource(view: android.webkit.WebView, url: string): void;
			/**
			 * Notify the host application of a resource request and allow the application to return the data. If the return value is null, the WebView will continue to load the resource as usual. Otherwise, the return response and data will be used. NOTE: This method is called by the network thread so clients should exercise caution when accessing private data.
			 * @param view The {@link android.webkit.WebView} that is requesting the
			 * @param url The raw url of the resource.
			 */
			public shouldInterceptRequest(view: android.webkit.WebView, url: string): android.webkit.WebResourceResponse;
			/**
			 * Notify the host application that there have been an excessive number of HTTP redirects. As the host application if it would like to continue trying to load the resource. The default behavior is to send the cancel message.
			 * @param view The WebView that is initiating the callback.
			 * @param cancelMsg The message to send if the host wants to cancel
			 * @param continueMsg The message to send if the host wants to continue
			 */
			public onTooManyRedirects(view: android.webkit.WebView, cancelMsg: android.os.Message, continueMsg: android.os.Message): void;
			/**
			 * Report an error to the host application. These errors are unrecoverable (i.e. the main resource is unavailable). The errorCode parameter corresponds to one of the ERROR_* constants.
			 * @param view The WebView that is initiating the callback.
			 * @param errorCode The error code corresponding to an ERROR_* value.
			 * @param description A String describing the error.
			 * @param failingUrl The url that failed to load.
			 */
            public onReceivedError(view: android.webkit.WebView, errorCode: number, description: string, failingUrl: string): void;
            public onReceivedError(view: android.webkit.WebView, request, error): void;
			/**
			 * As the host application if the browser should resend data as the requested page was a result of a POST. The default is to not resend the data.
			 * @param view The WebView that is initiating the callback.
			 * @param dontResend The message to send if the browser should not resend
			 * @param resend The message to send if the browser should resend data
			 */
			public onFormResubmission(view: android.webkit.WebView, dontResend: android.os.Message, resend: android.os.Message): void;
			/**
			 * Notify the host application to update its visited links database.
			 * @param view The WebView that is initiating the callback.
			 * @param url The url being visited.
			 * @param isReload True if this url is being reloaded.
			 */
			public doUpdateVisitedHistory(view: android.webkit.WebView, url: string, isReload: boolean): void;
			/**
			 * Notify the host application that an SSL error occurred while loading a resource. The host application must call either handler.cancel() or handler.proceed(). Note that the decision may be retained for use in response to future SSL errors. The default behavior is to cancel the load.
			 * @param view The WebView that is initiating the callback.
			 * @param handler An SslErrorHandler object that will handle the user's
			 * @param error The SSL error object.
			 */
			public onReceivedSslError(view: android.webkit.WebView, handler: android.webkit.SslErrorHandler, error: android.net.http.SslError): void;
			/**
			 * Notifies the host application that the WebView received an HTTP authentication request. The host application can use the supplied HttpAuthHandler to set the WebView's response to the request. The default behavior is to cancel the request.
			 * @param view the WebView that is initiating the callback
			 * @param handler the HttpAuthHandler used to set the WebView's response
			 * @param host the host requiring authentication
			 * @param realm the realm for which authentication is required
			 */
			public onReceivedHttpAuthRequest(view: android.webkit.WebView, handler: android.webkit.HttpAuthHandler, host: string, realm: string): void;
			/**
			 * Give the host application a chance to handle the key event synchronously. e.g. menu shortcut key events need to be filtered this way. If return true, WebView will not handle the key event. If return false, WebView will always handle the key event, so none of the super in the view chain will see the key event. The default behavior returns false.
			 * @param view The WebView that is initiating the callback.
			 * @param event The key event.
			 */
			public shouldOverrideKeyEvent(view: android.webkit.WebView, event: android.view.KeyEvent): boolean;
			/**
			 * Notify the host application that a key was not handled by the WebView. Except system keys, WebView always consumes the keys in the normal flow or if shouldOverrideKeyEvent returns true. This is called asynchronously from where the key is dispatched. It gives the host application a chance to handle the unhandled key events.
			 * @param view The WebView that is initiating the callback.
			 * @param event The key event.
			 */
			public onUnhandledKeyEvent(view: android.webkit.WebView, event: android.view.KeyEvent): void;
			/**
			 * Notify the host application that the scale applied to the WebView has changed.
			 * @param view he WebView that is initiating the callback.
			 * @param oldScale The old scale factor
			 * @param newScale The new scale factor
			 */
			public onScaleChanged(view: android.webkit.WebView, oldScale: number, newScale: number): void;
			/**
			 * Notify the host application that a request to automatically log in the user has been processed.
			 * @param view The WebView requesting the login.
			 * @param realm The account realm used to look up accounts.
			 * @param account An optional account. If not null, the account should be
			 * @param args Authenticator specific arguments used to log in the user.
			 */
			public onReceivedLoginRequest(view: android.webkit.WebView, realm: string, account: string, args: string): void;
		}
		export class WebCoreThreadWatchdog extends java.lang.Object implements java.lang.IRunnable {
			static class: java.lang.Class<android.webkit.WebCoreThreadWatchdog>;
			PageNotRespondingRunnable: {
	new (context: android.content.Context, watchdogHandler: android.os.Handler): android.webkit.WebCoreThreadWatchdog.PageNotRespondingRunnable;
};
			public static start(webCoreThreadHandler: android.os.Handler): android.webkit.WebCoreThreadWatchdog;
			public static pause(): void;
			public static resume(): void;
			public run(): void;
		}
		export module WebCoreThreadWatchdog {
			export class PageNotRespondingRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.webkit.WebCoreThreadWatchdog.PageNotRespondingRunnable>;
				public run(): void;
			}
		}
		/**
		 * A simple class to store client certificates that user has chosen.
		 */
		export class SslClientCertLookupTable extends java.lang.Object {
			static class: java.lang.Class<android.webkit.SslClientCertLookupTable>;
			public static getInstance(): android.webkit.SslClientCertLookupTable;
			public Allow(host_and_port: string, privateKey: java.security.IPrivateKey, chain: native.Array<native.Array<number>>): void;
			public Deny(host_and_port: string): void;
			public IsAllowed(host_and_port: string): boolean;
			public IsDenied(host_and_port: string): boolean;
			public PrivateKey(host_and_port: string): java.security.IPrivateKey;
			public CertificateChain(host_and_port: string): native.Array<native.Array<number>>;
		}
		export class BrowserFrame extends android.os.Handler {
			static class: java.lang.Class<android.webkit.BrowserFrame>;
			JSObject: {
	new (object: any, requireAnnotation: boolean): android.webkit.BrowserFrame.JSObject;
};
			/**
			 * Load a url from the network or the filesystem into the main frame. Following the same behaviour as Safari, javascript: URLs are not passed to the main frame, instead they are evaluated immediately.
			 * @param url The url to load.
			 * @param extraHeaders The extra headers sent with this url. This should not
			 */
			public loadUrl(url: string, extraHeaders: java.util.IMap<string, string>): void;
			/**
			 * Load a url with "POST" method from the network into the main frame.
			 * @param url The url to load.
			 * @param data The data for POST request.
			 */
			public postUrl(url: string, data: native.Array<number>): void;
			/**
			 * Load the content as if it was loaded by the provided base URL. The historyUrl is used as the history entry for the load data. 
			 * @param baseUrl Base URL used to resolve relative paths in the content
			 * @param data Content to render in the browser
			 * @param mimeType Mimetype of the data being passed in
			 * @param encoding Character set encoding of the provided data.
			 * @param historyUrl URL to use as the history entry.
			 */
			public loadData(baseUrl: string, data: string, mimeType: string, encoding: string, historyUrl: string): void;
			/**
			 * Saves the contents of the frame as a web archive.
			 * @param basename The filename where the archive should be placed.
			 * @param autoname If false, takes filename to be a file. If true, filename
			 */
			saveWebArchive(basename: string, autoname: boolean): string;
			/**
			 * Go back or forward the number of steps given.
			 * @param steps A negative or positive number indicating the direction
			 */
			public goBackOrForward(steps: number): void;
			committed(): boolean;
			firstLayoutDone(): boolean;
			loadType(): number;
			didFirstLayout(): void;
			/**
			 * Destroy all native components of the BrowserFrame.
			 */
			public destroy(): void;
			/**
			 * Handle messages posted to us.
			 * @param msg The message to handle.
			 */
			public handleMessage(msg: android.os.Message): void;
			/**
			 * Retrieves the render tree of this frame and puts it as the object for the message and sends the message.
			 * @param callback the message to use to send the render tree
			 */
			public externalRepresentation(callback: android.os.Message): void;
			/**
			 * Retrieves the visual text of the frames, puts it as the object for the message and sends the message.
			 * @param callback the message to use to send the visual text
			 */
			public documentAsText(callback: android.os.Message): void;
			/**
			 * This method is called by WebCore to check whether application wants to hijack url loading
			 */
			public handleUrl(url: string): boolean;
			public addJavascriptInterface(obj: any, interfaceName: string, requireAnnotation: boolean): void;
			public removeJavascriptInterface(interfaceName: string): void;
			/**
			 * Get the CallbackProxy for sending messages to the UI thread.
			 */
			getCallbackProxy(): android.webkit.CallbackProxy;
			/**
			 * Returns the User Agent used by this frame
			 */
			getUserAgentString(): string;
			static getRawResFilename(id: number, context: android.content.Context): string;
			/**
			 * Destroy the native frame.
			 */
			public nativeDestroyFrame(): void;
			/**
			 * Reload the current main frame.
			 */
			public reload(allowStale: boolean): void;
			/**
			 * stringByEvaluatingJavaScriptFromString will execute the JS passed in in the context of this browser frame.
			 * @param script A javascript string to execute
			 */
			public stringByEvaluatingJavaScriptFromString(script: string): string;
			public clearCache(): void;
			/**
			 * Stop loading the current page.
			 */
			public stopLoading(): void;
			/**
			 * Return true if the document has images.
			 */
			public documentHasImages(): boolean;
			nativeSslClientCert(handle: number, ctx: number, asn1DerEncodedCertificateChain: native.Array<native.Array<number>>): void;
			nativeSslClientCert(handle: number, pkey: native.Array<number>, asn1DerEncodedCertificateChain: native.Array<native.Array<number>>): void;
			/**
			 * Returns true when the contents of the frame is an RTL or vertical-rl page. This is used for determining whether a frame should be initially scrolled right-most as opposed to left-most.
			 */
			getShouldStartScrolledRight(): boolean;
		}
		export module BrowserFrame {
			export class JSObject extends java.lang.Object {
				static class: java.lang.Class<android.webkit.BrowserFrame.JSObject>;
			}
			export class ConfigCallback extends java.lang.Object implements android.content.IComponentCallbacks {
				static class: java.lang.Class<android.webkit.BrowserFrame.ConfigCallback>;
				public addHandler(h: android.os.Handler): void;
				public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
				public onLowMemory(): void;
			}
		}
		export class WebIconDatabaseClassic extends android.webkit.WebIconDatabase {
			static class: java.lang.Class<android.webkit.WebIconDatabaseClassic>;
			public open(path: string): void;
			public close(): void;
			public removeAllIcons(): void;
			/**
			 * Request the Bitmap representing the icon for the given page url. If the icon exists, the listener will be called with the result.
			 * @param url The page's url.
			 * @param listener An implementation on IconListener to receive the result.
			 */
			public requestIconForPageUrl(url: string, listener: android.webkit.WebIconDatabase.IIconListener): void;
			public retainIconForPageUrl(url: string): void;
			public releaseIconForPageUrl(url: string): void;
			/**
			 * Get the global instance of WebIconDatabase.
			 */
			public static getInstance(): android.webkit.WebIconDatabaseClassic;
			/**
			 * Create the internal handler and transfer all pending messages. XXX: Called by WebCore thread only!
			 */
			createHandler(): void;
		}
		export module WebIconDatabaseClassic {
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.webkit.WebIconDatabaseClassic.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			export module EventHandler {
				export class IconResult extends java.lang.Object {
					static class: java.lang.Class<android.webkit.WebIconDatabaseClassic.EventHandler.IconResult>;
					dispatch(): void;
				}
			}
		}
		/**
		 * This class is a container for all of the debug flags used in the Java components of webkit. These flags must be final in order to ensure that the compiler optimizes the code that uses them out of the final executable.
		 */
		export class DebugFlags extends java.lang.Object {
			static BROWSER_FRAME: boolean;
			static CACHE_MANAGER: boolean;
			static CALLBACK_PROXY: boolean;
			static COOKIE_MANAGER: boolean;
			static COOKIE_SYNC_MANAGER: boolean;
			static FRAME_LOADER: boolean;
			static J_WEB_CORE_JAVA_BRIDGE: boolean;
			static LOAD_LISTENER: boolean;
			static NETWORK: boolean;
			static SSL_ERROR_HANDLER: boolean;
			static STREAM_LOADER: boolean;
			static URL_UTIL: boolean;
			static WEB_BACK_FORWARD_LIST: boolean;
			static WEB_SETTINGS: boolean;
			static WEB_SYNC_MANAGER: boolean;
			static WEB_VIEW: boolean;
			static WEB_VIEW_CORE: boolean;
			static MEASURE_PAGE_SWAP_FPS: boolean;
			static class: java.lang.Class<android.webkit.DebugFlags>;
		}
		export class WebTextView extends java.lang.Object {
			static class: java.lang.Class<android.webkit.WebTextView>;
			static urlForAutoCompleteData(urlString: string): string;
		}
		export class CertTool extends java.lang.Object {
			static class: java.lang.Class<android.webkit.CertTool>;
			static getKeyStrengthList(): native.Array<string>;
			static getSignedPublicKey(context: android.content.Context, index: number, challenge: string): string;
			static addCertificate(context: android.content.Context, type: string, value: native.Array<number>): void;
			static getCertType(mimeType: string): string;
		}
		export class DeviceMotionService extends java.lang.Object implements android.hardware.ISensorEventListener {
			constructor(manager: android.webkit.DeviceMotionAndOrientationManager, context: android.content.Context);
			static class: java.lang.Class<android.webkit.DeviceMotionService>;
			public start(): void;
			public stop(): void;
			public suspend(): void;
			public resume(): void;
			/**
			 * SensorEventListener implementation. Callbacks happen on the thread on which we registered - the WebCore thread.
			 */
			public onSensorChanged(event: android.hardware.SensorEvent): void;
			public onAccuracyChanged(sensor: android.hardware.Sensor, accuracy: number): void;
		}
		/**
		 * This class contains the back/forward list for a WebView. WebView.copyBackForwardList() will return a copy of this class used to inspect the entries in the list.
		 */
		export class WebBackForwardList extends java.lang.Object implements java.lang.ICloneable, java.io.ISerializable {
			static class: java.lang.Class<android.webkit.WebBackForwardList>;
			/**
			 * Return the current history item. This method returns null if the list is empty.
			 */
			public getCurrentItem(): android.webkit.WebHistoryItem;
			/**
			 * Get the index of the current history item. This index can be used to directly index into the array list.
			 */
			public getCurrentIndex(): number;
			/**
			 * Get the history item at the given index. The index range is from 0...n where 0 is the first item and n is the last item.
			 * @param index The index to retrieve.
			 */
			public getItemAtIndex(index: number): android.webkit.WebHistoryItem;
			/**
			 * Get the total size of the back/forward list.
			 */
			public getSize(): number;
			/**
			 * Clone the entire object to be used in the UI thread by clients of WebView. This creates a copy that should never be modified by any of the webkit package classes.
			 */
			protected clone(): android.webkit.WebBackForwardList;
		}
		/**
		 * This class injects accessibility into WebViews with disabled JavaScript or WebViews with enabled JavaScript but for which we have no accessibility script to inject. </p> Note: To avoid changes in the framework upon changing the available navigation axis, or reordering the navigation axis, or changing the key bindings, or defining sequence of actions to be bound to a given key this class is navigation axis agnostic. It is only aware of one navigation axis which is in fact the default behavior of webViews while using the DPAD/TrackBall. </p> In general a key binding is a mapping from modifiers + key code to a sequence of actions. For more detail how to specify key bindings refer to android.provider.Settings.Secure#ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS. </p> The possible actions are invocations to #setCurrentAxis(int, boolean, String), or #traverseCurrentAxis(int, boolean, String) #traverseGivenAxis(int, int, boolean, String) #performAxisTransition(int, int, boolean, String) referred via the values of: #ACTION_SET_CURRENT_AXIS, #ACTION_TRAVERSE_CURRENT_AXIS, #ACTION_TRAVERSE_GIVEN_AXIS, #ACTION_PERFORM_AXIS_TRANSITION, respectively. The arguments for the action invocation are specified as offset hexademical pairs. Note the last argument of the invocation should NOT be specified in the binding as it is provided by this class. For details about the key binding implementation refer to AccessibilityWebContentKeyBinding.
		 */
		export class AccessibilityInjectorFallback extends java.lang.Object {
			static class: java.lang.Class<android.webkit.AccessibilityInjectorFallback>;
			/**
			 * Processes a key down <code>event</code>.
			 */
			public onKeyEvent(event: android.view.KeyEvent): boolean;
			performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			/**
			 * Called when the <code>selectionString</code> has changed.
			 */
			public onSelectionStringChange(selectionString: string): void;
		}
		export module AccessibilityInjectorFallback {
			/**
			 * Represents a web content key-binding.
			 */
			export class AccessibilityWebContentKeyBinding extends java.lang.Object {
				/**
				 * Creates a new instance.
				 * @param keyCodeAndModifiers The key for the binding (key and modifiers).
				 * @param actionSequence The sequence of action for the binding.
				 */
				constructor(keyCodeAndModifiers: number, actionSequence: native.Array<number>);
				static class: java.lang.Class<android.webkit.AccessibilityInjectorFallback.AccessibilityWebContentKeyBinding>;
				public getKeyCode(): number;
				public getModifiers(): number;
				public getActionCount(): number;
				/**
				 * @param index The action for a given action <code>index</code>.
				 */
				public getAction(index: number): number;
				/**
				 * @param index The action code for a given action <code>index</code>.
				 */
				public getActionCode(index: number): number;
				/**
				 * @param index The first argument for a given action <code>index</code>.
				 */
				public getFirstArgument(index: number): number;
				/**
				 * @param index The second argument for a given action <code>index</code>.
				 */
				public getSecondArgument(index: number): number;
				/**
				 * @param index The third argument for a given action <code>index</code>.
				 */
				public getThirdArgument(index: number): number;
				public toString(): string;
			}
		}
		/**
		 * Stores the user's decision of whether to allow or deny an invalid certificate.
		 */
		export class SslCertLookupTable extends java.lang.Object {
			static class: java.lang.Class<android.webkit.SslCertLookupTable>;
			public static getInstance(): android.webkit.SslCertLookupTable;
			public setIsAllowed(sslError: android.net.http.SslError): void;
			public isAllowed(sslError: android.net.http.SslError): boolean;
			public clear(): void;
		}
		export class AccessibilityInjectorTestActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.webkit.AccessibilityInjectorTestActivity>;
			public onCreate(icicle: android.os.Bundle): void;
			public getWebView(): android.webkit.WebView;
		}
		/**
		 * Manages settings state for a WebView. When a WebView is first created, it obtains a set of default settings. These default settings will be returned from any getter call. A WebSettings object obtained from WebView.getSettings() is tied to the life of the WebView. If a WebView has been destroyed, any method call on WebSettings will throw an IllegalStateException.
		 */
		export class WebSettings extends java.lang.Object {
			/**
			 * Default cache usage mode. If the navigation type doesn't impose any specific behavior, use cached resources when they are available and not expired, otherwise load resources from the network. Use with #setCacheMode.
			 */
			static LOAD_DEFAULT: number;
			/**
			 * Normal cache usage mode. Use with #setCacheMode.
			 */
			static LOAD_NORMAL: number;
			/**
			 * Use cached resources when they are available, even if they have expired. Otherwise load resources from the network. Use with #setCacheMode.
			 */
			static LOAD_CACHE_ELSE_NETWORK: number;
			/**
			 * Don't use the cache, load from the network. Use with #setCacheMode.
			 */
			static LOAD_NO_CACHE: number;
			/**
			 * Don't use the network, load from the cache. Use with #setCacheMode.
			 */
			static LOAD_CACHE_ONLY: number;
			static class: java.lang.Class<android.webkit.WebSettings>;
			/**
			 * Sets whether the WebView should support zooming using its on-screen zoom controls and gestures. The particular zoom mechanisms that should be used can be set with #setBuiltInZoomControls. This setting does not affect zooming performed using the WebView#zoomIn() and WebView#zoomOut() methods. The default is true.
			 * @param support whether the WebView should support zoom
			 */
			public setSupportZoom(support: boolean): void;
			/**
			 * Gets whether the WebView supports zoom.
			 */
			public supportZoom(): boolean;
			/**
			 * Sets whether the WebView requires a user gesture to play media. The default is true.
			 * @param require whether the WebView requires a user gesture to play media
			 */
			public setMediaPlaybackRequiresUserGesture(require: boolean): void;
			/**
			 * Gets whether the WebView requires a user gesture to play media.
			 */
			public getMediaPlaybackRequiresUserGesture(): boolean;
			/**
			 * Sets whether the WebView should use its built-in zoom mechanisms. The built-in zoom mechanisms comprise on-screen zoom controls, which are displayed over the WebView's content, and the use of a pinch gesture to control zooming. Whether or not these on-screen controls are displayed can be set with #setDisplayZoomControls. The default is false.
			 * @param enabled whether the WebView should use its built-in zoom mechanisms
			 */
			public setBuiltInZoomControls(enabled: boolean): void;
			/**
			 * Gets whether the zoom mechanisms built into WebView are being used.
			 */
			public getBuiltInZoomControls(): boolean;
			/**
			 * Sets whether the WebView should display on-screen zoom controls when using the built-in zoom mechanisms. See #setBuiltInZoomControls. The default is true.
			 * @param enabled whether the WebView should display on-screen zoom controls
			 */
			public setDisplayZoomControls(enabled: boolean): void;
			/**
			 * Gets whether the WebView displays on-screen zoom controls when using the built-in zoom mechanisms.
			 */
			public getDisplayZoomControls(): boolean;
			/**
			 * Enables or disables file access within WebView. File access is enabled by default. Note that this enables or disables file system access only. Assets and resources are still accessible using file:///android_asset and file:///android_res.
			 */
			public setAllowFileAccess(allow: boolean): void;
			/**
			 * Gets whether this WebView supports file access.
			 */
			public getAllowFileAccess(): boolean;
			/**
			 * Enables or disables content URL access within WebView. Content URL access allows WebView to load content from a content provider installed in the system. The default is enabled.
			 */
			public setAllowContentAccess(allow: boolean): void;
			/**
			 * Gets whether this WebView supports content URL access.
			 */
			public getAllowContentAccess(): boolean;
			/**
			 * Sets whether the WebView loads pages in overview mode. The default is false.
			 */
			public setLoadWithOverviewMode(overview: boolean): void;
			/**
			 * Gets whether this WebView loads pages in overview mode.
			 */
			public getLoadWithOverviewMode(): boolean;
			/**
			 * Sets whether the WebView will enable smooth transition while panning or zooming or while the window hosting the WebView does not have focus. If it is true, WebView will choose a solution to maximize the performance. e.g. the WebView's content may not be updated during the transition. If it is false, WebView will keep its fidelity. The default value is false.
			 */
			public setEnableSmoothTransition(enable: boolean): void;
			/**
			 * Gets whether the WebView enables smooth transition while panning or zooming.
			 */
			public enableSmoothTransition(): boolean;
			/**
			 * Sets whether the WebView should save form data. The default is true, unless in private browsing mode, when the value is always false.
			 */
			public setSaveFormData(save: boolean): void;
			/**
			 * Gets whether the WebView saves form data. Always false in private browsing mode.
			 */
			public getSaveFormData(): boolean;
			/**
			 * Sets whether the WebView should save passwords. The default is true.
			 */
			public setSavePassword(save: boolean): void;
			/**
			 * Gets whether the WebView saves passwords.
			 */
			public getSavePassword(): boolean;
			/**
			 * Sets the text zoom of the page in percent. The default is 100.
			 * @param textZoom the text zoom in percent
			 */
			public setTextZoom(textZoom: number): void;
			/**
			 * Gets the text zoom of the page in percent.
			 */
			public getTextZoom(): number;
			/**
			 * Sets the text size of the page. The default is TextSize#NORMAL.
			 * @param t the text size as a {@link TextSize} value
			 */
			public setTextSize(t: android.webkit.WebSettings.TextSize): void;
			/**
			 * Gets the text size of the page. If the text size was previously specified in percent using #setTextZoom, this will return the closest matching TextSize.
			 */
			public getTextSize(): android.webkit.WebSettings.TextSize;
			/**
			 * Sets the default zoom density of the page. This must be called from the UI thread. The default is ZoomDensity#MEDIUM.
			 * @param zoom the zoom density
			 */
			public setDefaultZoom(zoom: android.webkit.WebSettings.ZoomDensity): void;
			/**
			 * Gets the default zoom density of the page. This should be called from the UI thread.
			 */
			public getDefaultZoom(): android.webkit.WebSettings.ZoomDensity;
			/**
			 * Enables using light touches to make a selection and activate mouseovers. The default is false.
			 */
			public setLightTouchEnabled(enabled: boolean): void;
			/**
			 * Gets whether light touches are enabled.
			 */
			public getLightTouchEnabled(): boolean;
			/**
			 * Tells the WebView to use a wide viewport. The default is false.
			 * @param use whether to use a wide viewport
			 */
			public setUseWideViewPort(use: boolean): void;
			/**
			 * Gets whether the WebView is using a wide viewport.
			 */
			public getUseWideViewPort(): boolean;
			/**
			 * Sets whether the WebView whether supports multiple windows. If set to true, WebChromeClient#onCreateWindow must be implemented by the host application. The default is false.
			 * @param support whether to suport multiple windows
			 */
			public setSupportMultipleWindows(support: boolean): void;
			/**
			 * Gets whether the WebView supports multiple windows.
			 */
			public supportMultipleWindows(): boolean;
			/**
			 * Sets the underlying layout algorithm. This will cause a relayout of the WebView. The default is LayoutAlgorithm#NARROW_COLUMNS.
			 * @param l the layout algorithm to use, as a {@link LayoutAlgorithm} value
			 */
			public setLayoutAlgorithm(l: android.webkit.WebSettings.LayoutAlgorithm): void;
			/**
			 * Gets the current layout algorithm.
			 */
			public getLayoutAlgorithm(): android.webkit.WebSettings.LayoutAlgorithm;
			/**
			 * Sets the standard font family name. The default is "sans-serif".
			 * @param font a font family name
			 */
			public setStandardFontFamily(font: string): void;
			/**
			 * Gets the standard font family name.
			 */
			public getStandardFontFamily(): string;
			/**
			 * Sets the fixed font family name. The default is "monospace".
			 * @param font a font family name
			 */
			public setFixedFontFamily(font: string): void;
			/**
			 * Gets the fixed font family name.
			 */
			public getFixedFontFamily(): string;
			/**
			 * Sets the sans-serif font family name. The default is "sans-serif".
			 * @param font a font family name
			 */
			public setSansSerifFontFamily(font: string): void;
			/**
			 * Gets the sans-serif font family name.
			 */
			public getSansSerifFontFamily(): string;
			/**
			 * Sets the serif font family name. The default is "sans-serif".
			 * @param font a font family name
			 */
			public setSerifFontFamily(font: string): void;
			/**
			 * Gets the serif font family name. The default is "serif".
			 */
			public getSerifFontFamily(): string;
			/**
			 * Sets the cursive font family name. The default is "cursive".
			 * @param font a font family name
			 */
			public setCursiveFontFamily(font: string): void;
			/**
			 * Gets the cursive font family name.
			 */
			public getCursiveFontFamily(): string;
			/**
			 * Sets the fantasy font family name. The default is "fantasy".
			 * @param font a font family name
			 */
			public setFantasyFontFamily(font: string): void;
			/**
			 * Gets the fantasy font family name.
			 */
			public getFantasyFontFamily(): string;
			/**
			 * Sets the minimum font size. The default is 8.
			 * @param size a non-negative integer between 1 and 72. Any number outside
			 */
			public setMinimumFontSize(size: number): void;
			/**
			 * Gets the minimum font size.
			 */
			public getMinimumFontSize(): number;
			/**
			 * Sets the minimum logical font size. The default is 8.
			 * @param size a non-negative integer between 1 and 72. Any number outside
			 */
			public setMinimumLogicalFontSize(size: number): void;
			/**
			 * Gets the minimum logical font size.
			 */
			public getMinimumLogicalFontSize(): number;
			/**
			 * Sets the default font size. The default is 16.
			 * @param size a non-negative integer between 1 and 72. Any number outside
			 */
			public setDefaultFontSize(size: number): void;
			/**
			 * Gets the default font size.
			 */
			public getDefaultFontSize(): number;
			/**
			 * Sets the default fixed font size. The default is 16.
			 * @param size a non-negative integer between 1 and 72. Any number outside
			 */
			public setDefaultFixedFontSize(size: number): void;
			/**
			 * Gets the default fixed font size.
			 */
			public getDefaultFixedFontSize(): number;
			/**
			 * Sets whether the WebView should load image resources. Note that this method controls loading of all images, including those embedded using the data URI scheme. Use #setBlockNetworkImage to control loading only of images specified using network URI schemes. Note that if the value of this setting is changed from false to true, all images resources referenced by content currently displayed by the WebView are loaded automatically. The default is true.
			 * @param flag whether the WebView should load image resources
			 */
			public setLoadsImagesAutomatically(flag: boolean): void;
			/**
			 * Gets whether the WebView loads image resources. This includes images embedded using the data URI scheme.
			 */
			public getLoadsImagesAutomatically(): boolean;
			/**
			 * Sets whether the WebView should not load image resources from the network (resources accessed via http and https URI schemes). Note that this method has no effect unless #getLoadsImagesAutomatically returns true. Also note that disabling all network loads using #setBlockNetworkLoads will also prevent network images from loading, even if this flag is set to false. When the value of this setting is changed from true to false, network images resources referenced by content currently displayed by the WebView are fetched automatically. The default is false.
			 * @param flag whether the WebView should not load image resources from the
			 */
			public setBlockNetworkImage(flag: boolean): void;
			/**
			 * Gets whether the WebView does not load image resources from the network.
			 */
			public getBlockNetworkImage(): boolean;
			/**
			 * Sets whether the WebView should not load resources from the network. Use #setBlockNetworkImage to only avoid loading image resources. Note that if the value of this setting is changed from true to false, network resources referenced by content currently displayed by the WebView are not fetched until android.webkit.WebView#reload is called. If the application does not have the android.Manifest.permission#INTERNET permission, attempts to set a value of false will cause a java.lang.SecurityException to be thrown. The default value is false if the application has the android.Manifest.permission#INTERNET permission, otherwise it is true.
			 * @param flag whether the WebView should not load any resources from the
			 */
			public setBlockNetworkLoads(flag: boolean): void;
			/**
			 * Gets whether the WebView does not load any resources from the network.
			 */
			public getBlockNetworkLoads(): boolean;
			/**
			 * Tells the WebView to enable JavaScript execution. <b>The default is false.</b>
			 * @param flag true if the WebView should execute JavaScript
			 */
			public setJavaScriptEnabled(flag: boolean): void;
			/**
			 * Sets whether JavaScript running in the context of a file scheme URL should be allowed to access content from any origin. This includes access to content from other file scheme URLs. See #setAllowFileAccessFromFileURLs. To enable the most restrictive, and therefore secure policy, this setting should be disabled.
			 * @param flag whether JavaScript running in the context of a file scheme
			 */
			public setAllowUniversalAccessFromFileURLs(flag: boolean): void;
			/**
			 * Sets whether JavaScript running in the context of a file scheme URL should be allowed to access content from other file scheme URLs. To enable the most restrictive, and therefore secure policy, this setting should be disabled. Note that the value of this setting is ignored if the value of #getAllowUniversalAccessFromFileURLs is true.
			 * @param flag whether JavaScript running in the context of a file scheme
			 */
			public setAllowFileAccessFromFileURLs(flag: boolean): void;
			/**
			 * Sets whether the WebView should enable plugins. The default is false.
			 * @param flag true if plugins should be enabled
			 */
			public setPluginsEnabled(flag: boolean): void;
			/**
			 * Tells the WebView to enable, disable, or have plugins on demand. On demand mode means that if a plugin exists that can handle the embedded content, a placeholder icon will be shown instead of the plugin. When the placeholder is clicked, the plugin will be enabled. The default is PluginState#OFF.
			 * @param state a PluginState value
			 */
			public setPluginState(state: android.webkit.WebSettings.PluginState): void;
			/**
			 * Sets a custom path to plugins used by the WebView. This method is obsolete since each plugin is now loaded from its own package.
			 * @param pluginsPath a String path to the directory containing plugins
			 */
			public setPluginsPath(pluginsPath: string): void;
			/**
			 * Sets the path to where database storage API databases should be saved. In order for the database storage API to function correctly, this method must be called with a path to which the application can write. This method should only be called once: repeated calls are ignored.
			 * @param databasePath a path to the directory where databases should be
			 */
			public setDatabasePath(databasePath: string): void;
			/**
			 * Sets the path where the Geolocation databases should be saved. In order for Geolocation permissions and cached positions to be persisted, this method must be called with a path to which the application can write.
			 * @param databasePath a path to the directory where databases should be
			 */
			public setGeolocationDatabasePath(databasePath: string): void;
			/**
			 * Sets whether the Application Caches API should be enabled. The default is false. Note that in order for the Application Caches API to be enabled, a valid database path must also be supplied to #setAppCachePath.
			 * @param flag true if the WebView should enable Application Caches
			 */
			public setAppCacheEnabled(flag: boolean): void;
			/**
			 * Sets the path to the Application Caches files. In order for the Application Caches API to be enabled, this method must be called with a path to which the application can write. This method should only be called once: repeated calls are ignored.
			 * @param appCachePath a String path to the directory containing
			 */
			public setAppCachePath(appCachePath: string): void;
			/**
			 * Sets the maximum size for the Application Cache content. The passed size will be rounded to the nearest value that the database can support, so this should be viewed as a guide, not a hard limit. Setting the size to a value less than current database size does not cause the database to be trimmed. The default size is Long#MAX_VALUE.
			 * @param appCacheMaxSize the maximum size in bytes
			 */
			public setAppCacheMaxSize(appCacheMaxSize: number): void;
			/**
			 * Sets whether the database storage API is enabled. The default value is false. See also #setDatabasePath for how to correctly set up the database storage API.
			 * @param flag true if the WebView should use the database storage API
			 */
			public setDatabaseEnabled(flag: boolean): void;
			/**
			 * Sets whether the DOM storage API is enabled. The default value is false.
			 * @param flag true if the WebView should use the DOM storage API
			 */
			public setDomStorageEnabled(flag: boolean): void;
			/**
			 * Gets whether the DOM Storage APIs are enabled.
			 */
			public getDomStorageEnabled(): boolean;
			/**
			 * Gets the path to where database storage API databases are saved.
			 */
			public getDatabasePath(): string;
			/**
			 * Gets whether the database storage API is enabled.
			 */
			public getDatabaseEnabled(): boolean;
			/**
			 * Sets whether Geolocation is enabled. The default is true. See also #setGeolocationDatabasePath for how to correctly set up Geolocation.
			 * @param flag whether Geolocation should be enabled
			 */
			public setGeolocationEnabled(flag: boolean): void;
			/**
			 * Gets whether JavaScript is enabled.
			 */
			public getJavaScriptEnabled(): boolean;
			/**
			 * Gets whether JavaScript running in the context of a file scheme URL can access content from any origin. This includes access to content from other file scheme URLs.
			 */
			public getAllowUniversalAccessFromFileURLs(): boolean;
			/**
			 * Gets whether JavaScript running in the context of a file scheme URL can access content from other file scheme URLs.
			 */
			public getAllowFileAccessFromFileURLs(): boolean;
			/**
			 * Gets whether plugins are enabled.
			 */
			public getPluginsEnabled(): boolean;
			/**
			 * Gets the current state regarding whether plugins are enabled.
			 */
			public getPluginState(): android.webkit.WebSettings.PluginState;
			/**
			 * Gets the directory that contains the plugin libraries. This method is obsolete since each plugin is now loaded from its own package.
			 */
			public getPluginsPath(): string;
			/**
			 * Tells JavaScript to open windows automatically. This applies to the JavaScript function window.open(). The default is false.
			 * @param flag true if JavaScript can open windows automatically
			 */
			public setJavaScriptCanOpenWindowsAutomatically(flag: boolean): void;
			/**
			 * Gets whether JavaScript can open windows automatically.
			 */
			public getJavaScriptCanOpenWindowsAutomatically(): boolean;
			/**
			 * Sets the default text encoding name to use when decoding html pages. The default is "Latin-1".
			 * @param encoding the text encoding name
			 */
			public setDefaultTextEncodingName(encoding: string): void;
			/**
			 * Gets the default text encoding name.
			 */
			public getDefaultTextEncodingName(): string;
			/**
			 * Sets the WebView's user-agent string. If the string is null or empty, the system default value will be used.
			 */
			public setUserAgentString(ua: string): void;
			/**
			 * Gets the WebView's user-agent string.
			 */
			public getUserAgentString(): string;
			/**
			 * Returns the default User-Agent used by a WebView. An instance of WebView could use a different User-Agent if a call is made to WebSettings#setUserAgentString(String).
			 * @param context a Context object used to access application assets
			 */
			public static getDefaultUserAgent(context: android.content.Context): string;
			/**
			 * Tells the WebView whether it needs to set a node to have focus when WebView#requestFocus(int, android.graphics.Rect) is called. The default value is true.
			 * @param flag whether the WebView needs to set a node
			 */
			public setNeedInitialFocus(flag: boolean): void;
			/**
			 * Sets the priority of the Render thread. Unlike the other settings, this one only needs to be called once per process. The default value is RenderPriority#NORMAL.
			 * @param priority the priority
			 */
			public setRenderPriority(priority: android.webkit.WebSettings.RenderPriority): void;
			/**
			 * Overrides the way the cache is used. The way the cache is used is based on the navigation type. For a normal page load, the cache is checked and content is re-validated as needed. When navigating back, content is not revalidated, instead the content is just retrieved from the cache. This method allows the client to override this behavior by specifying one of #LOAD_DEFAULT, #LOAD_NORMAL, #LOAD_CACHE_ELSE_NETWORK, #LOAD_NO_CACHE or #LOAD_CACHE_ONLY. The default value is #LOAD_DEFAULT.
			 * @param mode the mode to use
			 */
			public setCacheMode(mode: number): void;
			/**
			 * Gets the current setting for overriding the cache mode.
			 */
			public getCacheMode(): number;
		}
		export module WebSettings {
			/**
			 * The plugin state effects how plugins are treated on a page. ON means that any object will be loaded even if a plugin does not exist to handle the content. ON_DEMAND means that if there is a plugin installed that can handle the content, a placeholder is shown until the user clicks on the placeholder. Once clicked, the plugin will be enabled on the page. OFF means that all plugins will be turned off and any fallback content will be used.
			 */
			export enum PluginState {
				ON,
				ON_DEMAND,
				OFF
			}
			/**
			 * Enum for controlling the layout of html. <ul> <li>NORMAL means no rendering changes.</li> <li>SINGLE_COLUMN moves all content into one column that is the width of the view.</li> <li>NARROW_COLUMNS makes all columns no wider than the screen if possible.</li> </ul>
			 */
			export enum LayoutAlgorithm {
				NORMAL,
				SINGLE_COLUMN,
				NARROW_COLUMNS
			}
			/**
			 * Enum for specifying the WebView's desired density. <ul> <li>FAR makes 100% looking like in 240dpi</li> <li>MEDIUM makes 100% looking like in 160dpi</li> <li>CLOSE makes 100% looking like in 120dpi</li> </ul>
			 */
			export enum ZoomDensity {
				FAR,
				MEDIUM,
				CLOSE
			}
			export enum RenderPriority {
				NORMAL,
				HIGH,
				LOW
			}
			/**
			 * Enum for specifying the text size. <ul> <li>SMALLEST is 50%</li> <li>SMALLER is 75%</li> <li>NORMAL is 100%</li> <li>LARGER is 150%</li> <li>LARGEST is 200%</li> </ul>
			 */
			export enum TextSize {
				SMALLEST,
				SMALLER,
				NORMAL,
				LARGER,
				LARGEST
			}
		}
		export class HTML5VideoViewProxy extends android.os.Handler implements android.media.MediaPlayer.IOnPreparedListener, android.media.MediaPlayer.IOnCompletionListener, android.media.MediaPlayer.IOnErrorListener, android.media.MediaPlayer.IOnInfoListener, android.graphics.SurfaceTexture.IOnFrameAvailableListener, android.view.View.IOnKeyListener {
			static class: java.lang.Class<android.webkit.HTML5VideoViewProxy>;
			public onPrepared(mp: android.media.MediaPlayer): void;
			public onCompletion(mp: android.media.MediaPlayer): void;
			public onError(mp: android.media.MediaPlayer, what: number, extra: number): boolean;
			public dispatchOnEnded(): void;
			public dispatchOnPaused(): void;
			public dispatchOnStopFullScreen(stillPlaying: boolean): void;
			public dispatchOnRestoreState(): void;
			public onTimeupdate(): void;
			public onFrameAvailable(surfaceTexture: android.graphics.SurfaceTexture): void;
			public handleMessage(msg: android.os.Message): void;
			public getContext(): android.content.Context;
			/**
			 * Play a video stream.
			 * @param url is the URL of the video stream.
			 * @param position 
			 * @param videoLayerID 
			 */
			public play(url: string, position: number, videoLayerID: number): void;
			/**
			 * Play a video stream in full screen mode.
			 * @param url is the URL of the video stream.
			 * @param videoLayerID 
			 */
			public enterFullscreenForVideoLayer(url: string, videoLayerID: number): void;
			/**
			 * Seek into the video stream.
			 * @param time is the position in the video stream.
			 */
			public seek(time: number): void;
			/**
			 * Pause the playback.
			 */
			public pause(): void;
			/**
			 * Tear down this proxy object.
			 */
			public teardown(): void;
			/**
			 * Load the poster image.
			 * @param url is the URL of the poster image.
			 */
			public loadPoster(url: string): void;
			public setBaseLayer(layer: number): void;
			public pauseAndDispatch(): void;
			public enterFullScreenVideo(layerId: number, url: string): void;
			public exitFullScreenVideo(): void;
			public onInfo(mp: android.media.MediaPlayer, what: number, extra: number): boolean;
			public onKey(v: android.view.View, keyCode: number, event: android.view.KeyEvent): boolean;
		}
		export module HTML5VideoViewProxy {
			export class VideoPlayer extends java.lang.Object {
				static class: java.lang.Class<android.webkit.HTML5VideoViewProxy.VideoPlayer>;
				public static setBaseLayer(layer: number): void;
				public static pauseAndDispatch(): void;
				public static play(url: string, time: number, proxy: android.webkit.HTML5VideoViewProxy, client: android.webkit.WebChromeClient, videoLayerId: number): void;
				public static isPlaying(proxy: android.webkit.HTML5VideoViewProxy): boolean;
				public static getCurrentPosition(): number;
				public static seek(time: number, proxy: android.webkit.HTML5VideoViewProxy): void;
				public static pause(proxy: android.webkit.HTML5VideoViewProxy): void;
				public static onPrepared(): void;
				public static end(): void;
			}
			export class PosterDownloader extends java.lang.Object {
				constructor(url: string, proxy: android.webkit.HTML5VideoViewProxy);
				static class: java.lang.Class<android.webkit.HTML5VideoViewProxy.PosterDownloader>;
				public start(): void;
				public cancelAndReleaseQueue(): void;
				public status(major_version: number, minor_version: number, code: number, reason_phrase: string): void;
				public data(data: native.Array<number>, len: number): void;
				public endData(): void;
				public certificate(certificate: android.net.http.SslCertificate): void;
				public error(id: number, description: string): void;
				public handleSslErrorRequest(error: android.net.http.SslError): boolean;
			}
		}
		/**
		 * This class is used to manage the JavaScript storage APIs provided by the WebView. It manages the Application Cache API, the Web SQL Database API and the HTML5 Web Storage API.
		 */
		export class WebStorage extends java.lang.Object {
			static class: java.lang.Class<android.webkit.WebStorage>;
			/**
			 * Gets the origins currently using either the Application Cache or Web SQL Database APIs. This method operates asynchronously, with the result being provided via a ValueCallback. The origins are provided as a map, of type Map<String, WebStorage.Origin>, from the string representation of the origin to a WebStorage.Origin object.
			 */
			public getOrigins(callback: android.webkit.IValueCallback<java.util.IMap<any, any>>): void;
			/**
			 * Gets the amount of storage currently being used by both the Application Cache and Web SQL Database APIs by the given origin. The amount is given in bytes and the origin is specified using its string representation. This method operates asynchronously, with the result being provided via a ValueCallback.
			 */
			public getUsageForOrigin(origin: string, callback: android.webkit.IValueCallback<java.lang.Long>): void;
			/**
			 * Gets the storage quota for the Web SQL Database API for the given origin. The quota is given in bytes and the origin is specified using its string representation. This method operates asynchronously, with the result being provided via a ValueCallback. Note that a quota is not enforced on a per-origin basis for the Application Cache API.
			 */
			public getQuotaForOrigin(origin: string, callback: android.webkit.IValueCallback<java.lang.Long>): void;
			/**
			 * Sets the storage quota for the Web SQL Database API for the given origin. The quota is specified in bytes and the origin is specified using its string representation. Note that a quota is not enforced on a per-origin basis for the Application Cache API.
			 */
			public setQuotaForOrigin(origin: string, quota: number): void;
			/**
			 * Clears the storage currently being used by both the Application Cache and Web SQL Database APIs by the given origin. The origin is specified using its string representation.
			 */
			public deleteOrigin(origin: string): void;
			/**
			 * Clears all storage currently being used by the JavaScript storage APIs. This includes the Application Cache, Web SQL Database and the HTML5 Web Storage APIs.
			 */
			public deleteAllData(): void;
			/**
			 * Gets the singleton instance of this class.
			 */
			public static getInstance(): android.webkit.WebStorage;
		}
		export module WebStorage {
			/**
			 * This class encapsulates information about the amount of storage currently used by an origin for the JavaScript storage APIs. An origin comprises the host, scheme and port of a URI. See WebStorage for details.
			 */
			export class Origin extends java.lang.Object {
				static class: java.lang.Class<android.webkit.WebStorage.Origin>;
				/**
				 * Gets the string representation of this origin.
				 */
				public getOrigin(): string;
				/**
				 * Gets the quota for this origin, for the Web SQL Database API, in bytes. If this origin does not use the Web SQL Database API, this quota will be set to zero.
				 */
				public getQuota(): any;
				/**
				 * Gets the total amount of storage currently being used by this origin, for all JavaScript storage APIs, in bytes.
				 */
				public getUsage(): any;
			}
			/**
			 * Encapsulates a callback function which is used to provide a new quota for a JavaScript storage API. See WebChromeClient#onExceededDatabaseQuota and WebChromeClient#onReachedMaxAppCacheSize.
			 */
			export class QuotaUpdater implements android.webkit.WebStorage.IQuotaUpdater {
				constructor(implementation: android.webkit.WebStorage.IQuotaUpdater);
				/**
				 * Provides a new quota, specified in bytes.
				 * @param newQuota the new quota, in bytes
				 */
				public updateQuota(newQuota: number): void;
			}
			/**
			 * Encapsulates a callback function which is used to provide a new quota for a JavaScript storage API. See WebChromeClient#onExceededDatabaseQuota and WebChromeClient#onReachedMaxAppCacheSize.
			 */
			interface IQuotaUpdater {
				/**
				 * Provides a new quota, specified in bytes.
				 * @param newQuota the new quota, in bytes
				 */
				updateQuota(newQuota: number): void;
			}
		}
		export class WebHistoryItemClassic extends android.webkit.WebHistoryItem implements java.lang.ICloneable {
			static class: java.lang.Class<android.webkit.WebHistoryItemClassic>;
			protected finalize(): void;
			public getId(): number;
			public getUrl(): string;
			public getOriginalUrl(): string;
			public getTitle(): string;
			public getFavicon(): android.graphics.Bitmap;
			/**
			 * Set the favicon.
			 * @param icon A Bitmap containing the favicon for this history item.
			 */
			setFavicon(icon: android.graphics.Bitmap): void;
			/**
			 * Get the pre-flattened data. Note: The VM ensures 32-bit atomic read/write operations so we don't have to synchronize this method.
			 */
			getFlattenedData(): native.Array<number>;
			/**
			 * Inflate this item. Note: The VM ensures 32-bit atomic read/write operations so we don't have to synchronize this method.
			 */
			inflate(nativeFrame: number): void;
			public clone(): android.webkit.WebHistoryItemClassic;
		}
		/**
		 * A callback interface used to provide values asynchronously.
		 */
		interface IValueCallback<T> {
			/**
			 * Invoked when the value is available.
			 * @param value The value.
			 */
			onReceiveValue(value: T): void;
		}
		interface IDownloadListener {
			/**
			 * Notify the host application that a file should be downloaded
			 * @param url The full url to the content that should be downloaded
			 * @param userAgent the user agent to be used for the download.
			 * @param contentDisposition Content-disposition http header, if
			 * @param mimetype The mimetype of the content reported by the server
			 * @param contentLength The file size reported by the server
			 */
			onDownloadStart(url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number): void;
		}
		export class ZoomControlBase implements android.webkit.IZoomControlBase {
			constructor(implementation: android.webkit.IZoomControlBase);
			/**
			 * Causes the on-screen zoom control to be made visible
			 */
			public show(): void;
			/**
			 * Causes the on-screen zoom control to disappear
			 */
			public hide(): void;
			/**
			 * Enables the control to update its state if necessary in response to a change in the pages zoom level. For example, if the max zoom level is reached then the control can disable the button for zooming in.
			 */
			public update(): void;
			/**
			 * Checks to see if the control is currently visible to the user.
			 */
			public isVisible(): boolean;
		}
		/**
		 * A callback interface used to provide values asynchronously.
		 */
		export class ValueCallback<T> implements android.webkit.IValueCallback<T> {
			constructor(implementation: android.webkit.IValueCallback<T>);
			/**
			 * Invoked when the value is available.
			 * @param value The value.
			 */
			public onReceiveValue(value: T): void;
		}
		/**
		 * SslErrorHandler: class responsible for handling SSL errors. This class is passed as a parameter to BrowserCallback.displaySslErrorDialog and is meant to receive the user's response.
		 */
		export class SslErrorHandler extends android.os.Handler {
			static class: java.lang.Class<android.webkit.SslErrorHandler>;
			/**
			 * Proceed with the SSL certificate.
			 */
			public proceed(): void;
			/**
			 * Cancel this request and all pending requests for the WebView that had the error.
			 */
			public cancel(): void;
		}
		export class WebBackForwardListClassic extends android.webkit.WebBackForwardList implements java.lang.ICloneable, java.io.ISerializable {
			static class: java.lang.Class<android.webkit.WebBackForwardListClassic>;
			public getCurrentItem(): android.webkit.WebHistoryItemClassic;
			public getCurrentIndex(): number;
			public getItemAtIndex(index: number): android.webkit.WebHistoryItemClassic;
			public getSize(): number;
			/**
			 * Mark the back/forward list as having a pending clear. This is used on the UI side to mark the list as being invalid during the clearHistory method.
			 */
			setClearPending(): void;
			/**
			 * Return the status of the clear flag. This is used on the UI side to determine if the list is valid for checking things like canGoBack.
			 */
			getClearPending(): boolean;
			/**
			 * Add a new history item to the list. This will remove all items after the current item and append the new item to the end of the list. Called from the WebCore thread only. Synchronized because the UI thread may be reading the array or the current index.
			 * @param item A new history item.
			 */
			addHistoryItem(item: android.webkit.WebHistoryItem): void;
			/**
			 * Clear the back/forward list. Called from the WebCore thread.
			 */
			close(nativeFrame: number): void;
			public clone(): android.webkit.WebBackForwardListClassic;
			/**
			 * Set the new history index.
			 * @param newIndex The new history index.
			 */
			setCurrentIndex(newIndex: number): void;
			/**
			 * Restore the history index.
			 */
			static restoreIndex(nativeFrame: number, index: number): void;
		}
		/**
		 * Annotation that allows exposing methods to JavaScript. Starting from API level android.os.Build.VERSION_CODES#JELLY_BEAN_MR1 and above, only methods explicitly marked with this annotation are available to the Javascript code. See android.webkit.WebView#addJavascriptInterface for more information about it.
		 */
		interface IJavascriptInterface extends java.lang.annotation.IAnnotation {
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		export class URLUtil extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.webkit.URLUtil>;
			/**
			 * Cleans up (if possible) user-entered web addresses
			 */
			public static guessUrl(inUrl: string): string;
			public static composeSearchUrl(inQuery: string, template: string, queryPlaceHolder: string): string;
			public static decode(url: native.Array<number>): native.Array<number>;
			static verifyURLEncoding(url: string): boolean;
			public static isAssetUrl(url: string): boolean;
			public static isCookielessProxyUrl(url: string): boolean;
			public static isFileUrl(url: string): boolean;
			public static isAboutUrl(url: string): boolean;
			public static isDataUrl(url: string): boolean;
			public static isJavaScriptUrl(url: string): boolean;
			public static isHttpUrl(url: string): boolean;
			public static isHttpsUrl(url: string): boolean;
			public static isNetworkUrl(url: string): boolean;
			public static isContentUrl(url: string): boolean;
			public static isValidUrl(url: string): boolean;
			/**
			 * Strips the url of the anchor.
			 */
			public static stripAnchor(url: string): string;
			/**
			 * Guesses canonical filename that a download would have, using the URL and contentDisposition. File extension, if not defined, is added based on the mimetype
			 * @param url Url to the content
			 * @param contentDisposition Content-Disposition HTTP header or null
			 * @param mimeType Mime-type of the content or null
			 */
			public static guessFileName(url: string, contentDisposition: string, mimeType: string): string;
			static parseContentDisposition(contentDisposition: string): string;
		}
		export class UrlInterceptRegistryTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.webkit.UrlInterceptRegistryTest>;
			public testGetPluginData(): void;
		}
		export module UrlInterceptRegistryTest {
			/**
			 * To run these tests: $ mmm frameworks/base/tests/CoreTests/android && adb remount && adb sync $ adb shell am instrument -w -e class \ android.webkit.UrlInterceptRegistryTest \ android.core/android.test.InstrumentationTestRunner
			 */
			export class MockUrlInterceptHandler extends java.lang.Object {
				static class: java.lang.Class<android.webkit.UrlInterceptRegistryTest.MockUrlInterceptHandler>;
			}
		}
		/**
		 * Utility class optimized for accumulating bytes, and then spitting them back out. It does not optimize for returning the result in a single array, though this is supported in the API. It is fastest if the retrieval can be done via iterating through chunks.
		 */
		export class ByteArrayBuilder extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.webkit.ByteArrayBuilder>;
			public append(array: native.Array<number>, offset: number, length: number): void;
			/**
			 * The fastest way to retrieve the data is to iterate through the chunks. This returns the first chunk. Note: this pulls the chunk out of the queue. The caller must call Chunk.release() to dispose of it.
			 */
			public getFirstChunk(): android.webkit.ByteArrayBuilder.Chunk;
			public isEmpty(): boolean;
			public getByteSize(): number;
			public clear(): void;
		}
		export module ByteArrayBuilder {
			export class Chunk extends java.lang.Object {
				constructor(length: number);
				mArray: native.Array<number>;
				mLength: number;
				static class: java.lang.Class<android.webkit.ByteArrayBuilder.Chunk>;
				/**
				 * Release the chunk and make it available for reuse.
				 */
				public release(): void;
			}
		}
		/**
		 * Annotation that allows exposing methods to JavaScript. Starting from API level android.os.Build.VERSION_CODES#JELLY_BEAN_MR1 and above, only methods explicitly marked with this annotation are available to the Javascript code. See android.webkit.WebView#addJavascriptInterface for more information about it.
		 */
		export class JavascriptInterface implements java.lang.annotation.IAnnotation, android.webkit.IJavascriptInterface {
			constructor(implementation: android.webkit.IJavascriptInterface);
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Public class representing a JavaScript console message from WebCore. This could be a issued by a call to one of the <code>console</code> logging functions (e.g. <code>console.log('...')</code>) or a JavaScript error on the page. To receive notifications of these messages, override the WebChromeClient#onConsoleMessage(ConsoleMessage) function.
		 */
		export class ConsoleMessage extends java.lang.Object {
			constructor(message: string, sourceId: string, lineNumber: number, msgLevel: android.webkit.ConsoleMessage.MessageLevel);
			static class: java.lang.Class<android.webkit.ConsoleMessage>;
			public messageLevel(): android.webkit.ConsoleMessage.MessageLevel;
			public message(): string;
			public sourceId(): string;
			public lineNumber(): number;
		}
		export module ConsoleMessage {
			export enum MessageLevel {
				TIP,
				LOG,
				WARNING,
				ERROR,
				DEBUG
			}
		}
		export class WebkitTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.webkit.WebkitTest>;
			public testDateSorter(): void;
		}
		/**
		 * An instance of this class is passed as a parameter in various WebChromeClient action notifications. The object is used as a handle onto the underlying JavaScript-originated request, and provides a means for the client to indicate whether this action should proceed.
		 */
		export class JsResult extends java.lang.Object {
			static class: java.lang.Class<android.webkit.JsResult>;
			/**
			 * Handle the result if the user cancelled the dialog.
			 */
			public cancel(): void;
			/**
			 * Handle a confirmation response from the user.
			 */
			public confirm(): void;
		}
		export class SelectActionModeCallback extends java.lang.Object implements android.view.ActionMode.ICallback {
			static class: java.lang.Class<android.webkit.SelectActionModeCallback>;
			setTextSelected(isTextSelected: boolean): void;
			finish(): void;
			public onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
			public onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
			public onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
			public onDestroyActionMode(mode: android.view.ActionMode): void;
		}
		export class WebSyncManager extends java.lang.Object implements java.lang.IRunnable {
			static class: java.lang.Class<android.webkit.WebSyncManager>;
			protected clone(): any;
			public run(): void;
			/**
			 * sync() forces sync manager to sync now
			 */
			public sync(): void;
			/**
			 * resetSync() resets sync manager's timer
			 */
			public resetSync(): void;
			/**
			 * startSync() requests sync manager to start sync
			 */
			public startSync(): void;
			/**
			 * stopSync() requests sync manager to stop sync. remove any SYNC_MESSAGE in the queue to break the sync loop
			 */
			public stopSync(): void;
			protected onSyncInit(): void;
			syncFromRamToFlash(): void;
		}
		export module WebSyncManager {
			export class SyncHandler extends android.os.Handler {
				static class: java.lang.Class<android.webkit.WebSyncManager.SyncHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * Represents a request for HTTP authentication. Instances of this class are created by the WebView and passed to WebViewClient#onReceivedHttpAuthRequest. The host application must call either #proceed or #cancel to set the WebView's response to the request.
		 */
		export class HttpAuthHandler extends android.os.Handler {
			static class: java.lang.Class<android.webkit.HttpAuthHandler>;
			/**
			 * Gets whether the credentials stored for the current host (i.e. the host for which WebViewClient#onReceivedHttpAuthRequest was called) are suitable for use. Credentials are not suitable if they have previously been rejected by the server for the current request.
			 */
			public useHttpAuthUsernamePassword(): boolean;
			/**
			 * Instructs the WebView to cancel the authentication request.
			 */
			public cancel(): void;
			/**
			 * Instructs the WebView to proceed with the authentication with the given credentials. Credentials for use with this method can be retrieved from the WebView's store using WebView#getHttpAuthUsernamePassword.
			 */
			public proceed(username: string, password: string): void;
		}
		export class AutoCompletePopup extends java.lang.Object implements android.widget.AdapterView.IOnItemClickListener, android.widget.Filter.IFilterListener, android.widget.PopupWindow.IOnDismissListener {
			static class: java.lang.Class<android.webkit.AutoCompletePopup>;
			public onKeyPreIme(keyCode: number, event: android.view.KeyEvent): boolean;
			public setText(text: string): void;
			public setAutoFillQueryId(queryId: number): void;
			public clearAdapter(): void;
			public setAdapter<T>(adapter: T): void;
			public resetRect(): void;
			public onItemClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
			public setIsAutoFillProfileSet(isAutoFillProfileSet: boolean): void;
			public onFilterComplete(count: number): void;
			public onDismiss(): void;
		}
		export module AutoCompletePopup {
			export class AnchorView extends android.view.View {
				static class: java.lang.Class<android.webkit.AutoCompletePopup.AnchorView>;
			}
		}
		export class MustOverrideException extends java.lang.RuntimeException {
			static class: java.lang.Class<android.webkit.MustOverrideException>;
		}
		/**
		 * This class is a proxy class for handling WebCore -> UI thread messaging. All the callback functions are called from the WebCore thread and messages are posted to the UI thread for the actual client callback.
		 */
		export class CallbackProxy extends android.os.Handler {
			static class: java.lang.Class<android.webkit.CallbackProxy>;
			protected blockMessages(): void;
			protected messagesBlocked(): boolean;
			protected shutdown(): void;
			/**
			 * Set the WebViewClient.
			 * @param client An implementation of WebViewClient.
			 */
			public setWebViewClient(client: android.webkit.WebViewClient): void;
			/**
			 * Get the WebViewClient.
			 */
			public getWebViewClient(): android.webkit.WebViewClient;
			/**
			 * Set the WebChromeClient.
			 * @param client An implementation of WebChromeClient.
			 */
			public setWebChromeClient(client: android.webkit.WebChromeClient): void;
			/**
			 * Get the WebChromeClient.
			 */
			public getWebChromeClient(): android.webkit.WebChromeClient;
			/**
			 * Set the client DownloadListener.
			 * @param client An implementation of DownloadListener.
			 */
			public setDownloadListener(client: android.webkit.IDownloadListener): void;
			/**
			 * Get the Back/Forward list to return to the user or to update the cached history list.
			 */
			public getBackForwardList(): android.webkit.WebBackForwardListClassic;
			/**
			 * Called by the UI side. Calling overrideUrlLoading from the WebCore side will post a message to call this method.
			 */
			public uiOverrideUrlLoading(overrideUrl: string): boolean;
			/**
			 * Called by UI side.
			 */
			public uiOverrideKeyEvent(event: android.view.KeyEvent): boolean;
			public handleMessage(msg: android.os.Message): void;
			/**
			 * Return the latest progress.
			 */
			public getProgress(): number;
			/**
			 * Called by WebCore side to switch out of history Picture drawing mode
			 */
			switchOutDrawHistory(): void;
			public onPageStarted(url: string, favicon: android.graphics.Bitmap): void;
			public onPageFinished(url: string): void;
			public onTooManyRedirects(cancelMsg: android.os.Message, continueMsg: android.os.Message): void;
			public onReceivedError(errorCode: number, description: string, failingUrl: string): void;
			public onFormResubmission(dontResend: android.os.Message, resend: android.os.Message): void;
			/**
			 * Called by the WebCore side
			 */
			public shouldOverrideUrlLoading(url: string): boolean;
			public onReceivedHttpAuthRequest(handler: android.webkit.HttpAuthHandler, hostName: string, realmName: string): void;
			public onReceivedSslError(handler: android.webkit.SslErrorHandler, error: android.net.http.SslError): void;
			public onProceededAfterSslError(error: android.net.http.SslError): void;
			public onReceivedCertificate(certificate: android.net.http.SslCertificate): void;
			public doUpdateVisitedHistory(url: string, isReload: boolean): void;
			shouldInterceptRequest(url: string): android.webkit.WebResourceResponse;
			public onUnhandledKeyEvent(event: android.view.KeyEvent): void;
			public onScaleChanged(oldScale: number, newScale: number): void;
			onReceivedLoginRequest(realm: string, account: string, args: string): void;
			/**
			 * Starts a download if a download listener has been registered, otherwise return false.
			 */
			public onDownloadStart(url: string, userAgent: string, contentDisposition: string, mimetype: string, referer: string, contentLength: number): boolean;
			public onSavePassword(schemePlusHost: string, username: string, password: string, resumeMsg: android.os.Message): boolean;
			public onReceivedHttpAuthCredentials(host: string, realm: string, username: string, password: string): void;
			public onProgressChanged(newProgress: number): void;
			public createWindow(dialog: boolean, userGesture: boolean): android.webkit.BrowserFrame;
			public onRequestFocus(): void;
			public onReceivedIcon(icon: android.graphics.Bitmap): void;
			onReceivedTouchIconUrl(url: string, precomposed: boolean): void;
			public onReceivedTitle(title: string): void;
			public onJsAlert(url: string, message: string): void;
			public onJsConfirm(url: string, message: string): boolean;
			public onJsPrompt(url: string, message: string, defaultValue: string): string;
			public onJsBeforeUnload(url: string, message: string): boolean;
			/**
			 * Called by WebViewCore to inform the Java side that the current origin has overflowed it's database quota. Called in the WebCore thread so posts a message to the UI thread that will prompt the WebChromeClient for what to do. On return back to C++ side, the WebCore thread will sleep pending a new quota value.
			 * @param url The URL that caused the quota overflow.
			 * @param databaseIdentifier The identifier of the database that the
			 * @param quota The current quota the origin is allowed.
			 * @param estimatedDatabaseSize The estimated size of the database.
			 * @param totalQuota is the sum of all origins' quota.
			 * @param quotaUpdater An instance of a class encapsulating a callback
			 */
			public onExceededDatabaseQuota(url: string, databaseIdentifier: string, quota: number, estimatedDatabaseSize: number, totalQuota: number, quotaUpdater: android.webkit.WebStorage.IQuotaUpdater): void;
			/**
			 * Called by WebViewCore to inform the Java side that the appcache has exceeded its max size.
			 * @param requiredStorage is the amount of storage, in bytes, that would be
			 * @param quota is the current quota (for all origins).
			 * @param quotaUpdater An instance of a class encapsulating a callback
			 */
			public onReachedMaxAppCacheSize(requiredStorage: number, quota: number, quotaUpdater: android.webkit.WebStorage.IQuotaUpdater): void;
			/**
			 * Called by WebViewCore to instruct the browser to display a prompt to ask the user to set the Geolocation permission state for the given origin.
			 * @param origin The origin requesting Geolocation permsissions.
			 * @param callback The callback to call once a permission state has been
			 */
			public onGeolocationPermissionsShowPrompt(origin: string, callback: android.webkit.GeolocationPermissions.ICallback): void;
			/**
			 * Called by WebViewCore to instruct the browser to hide the Geolocation permissions prompt.
			 */
			public onGeolocationPermissionsHidePrompt(): void;
			/**
			 * Called by WebViewCore when we have a message to be added to the JavaScript error console. Sends a message to the Java side with the details.
			 * @param message The message to add to the console.
			 * @param lineNumber The lineNumber of the source file on which the error
			 * @param sourceID The filename of the source file in which the error
			 * @param msgLevel The message level, corresponding to the MessageLevel enum in
			 */
			public addMessageToConsole(message: string, lineNumber: number, sourceID: string, msgLevel: number): void;
			public onJsTimeout(): boolean;
			public getVisitedHistory(callback: android.webkit.IValueCallback<native.Array<string>>): void;
			/**
			 * Called by WebViewCore to open a file chooser.
			 */
			openFileChooser(acceptType: string, capture: string): android.net.Uri;
			onNewHistoryItem(item: android.webkit.WebHistoryItem): void;
			onIndexChanged(item: android.webkit.WebHistoryItem, index: number): void;
			canShowAlertDialog(): boolean;
		}
		export module CallbackProxy {
			export class ResultTransport<E> extends java.lang.Object {
				constructor(defaultResult: E);
				static class: java.lang.Class<android.webkit.CallbackProxy.ResultTransport<any>>;
				public setResult(result: E): void;
				public getResult(): E;
			}
			export class UploadFile extends java.lang.Object {
				static class: java.lang.Class<android.webkit.CallbackProxy.UploadFile>;
				public onReceiveValue(value: android.net.Uri): void;
				public getResult(): android.net.Uri;
			}
			export class UploadFileMessageData extends java.lang.Object {
				constructor(uploadFile: android.webkit.CallbackProxy.UploadFile, acceptType: string, capture: string);
				static class: java.lang.Class<android.webkit.CallbackProxy.UploadFileMessageData>;
				public getUploadFile(): android.webkit.CallbackProxy.UploadFile;
				public getAcceptType(): string;
				public getCapture(): string;
			}
			export class JsResultReceiver extends java.lang.Object {
				mJsResult: android.webkit.JsPromptResult;
				static class: java.lang.Class<android.webkit.CallbackProxy.JsResultReceiver>;
				setReady(): void;
				public onJsResultComplete(result: android.webkit.JsResult): void;
			}
		}
		/**
		 * This interface is used to implement plugins in a WebView. A plugin package may extend this class and implement the abstract functions to create embedded or fullscreeen views displayed in a WebView. The PluginStub implementation will be provided the same NPP instance that is created through the native interface.
		 */
		interface IPluginStub {
			/**
			 * Return a custom embedded view to draw the plugin.
			 * @param NPP The native NPP instance.
			 * @param context The current application's Context.
			 */
			getEmbeddedView(NPP: number, context: android.content.Context): android.view.View;
			/**
			 * Return a custom full-screen view to be displayed when the user requests a plugin display as full-screen. Note that the application may choose not to display this View as completely full-screen.
			 * @param NPP The native NPP instance.
			 * @param context The current application's Context.
			 */
			getFullScreenView(NPP: number, context: android.content.Context): android.view.View;
		}
		/**
		 * Mock version of the WebView. Only non override public methods from the real WebView have been added in there. Methods that take an unknown class as parameter or as return object, have been removed for now. TODO: generate automatically.
		 */
		export class WebView {
			/**
			 * Construct a new WebView with a Context object.
			 * @param context A Context object used to access application assets.
			 */
			constructor(context: android.content.Context);
			/**
			 * Construct a new WebView with layout parameters.
			 * @param context A Context object used to access application assets.
			 * @param attrs An AttributeSet passed to our parent.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Construct a new WebView with layout parameters and a default style.
			 * @param context A Context object used to access application assets.
			 * @param attrs An AttributeSet passed to our parent.
			 * @param defStyle The default style resource ID.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.webkit.WebView>;
			public setHorizontalScrollbarOverlay(overlay: boolean): void;
			public setVerticalScrollbarOverlay(overlay: boolean): void;
			public overlayHorizontalScrollbar(): boolean;
			public overlayVerticalScrollbar(): boolean;
			public savePassword(host: string, username: string, password: string): void;
			public setHttpAuthUsernamePassword(host: string, realm: string, username: string, password: string): void;
			public getHttpAuthUsernamePassword(host: string, realm: string): native.Array<string>;
			public destroy(): void;
			public static enablePlatformNotifications(): void;
			public static disablePlatformNotifications(): void;
			public saveState(outState: android.os.Bundle): android.webkit.WebBackForwardList;
			public restoreState(inState: android.os.Bundle): android.webkit.WebBackForwardList;
			public loadUrl(url: string): void;
			public loadData(data: string, mimeType: string, encoding: string): void;
			public loadDataWithBaseURL(baseUrl: string, data: string, mimeType: string, encoding: string, failUrl: string): void;
			public stopLoading(): void;
			public reload(): void;
			public canGoBack(): boolean;
			public goBack(): void;
			public canGoForward(): boolean;
			public goForward(): void;
			public canGoBackOrForward(steps: number): boolean;
			public goBackOrForward(steps: number): void;
			public pageUp(top: boolean): boolean;
			public pageDown(bottom: boolean): boolean;
			public clearView(): void;
			public capturePicture(): android.graphics.Picture;
			public getScale(): number;
			public setInitialScale(scaleInPercent: number): void;
			public invokeZoomPicker(): void;
			public requestFocusNodeHref(hrefMsg: android.os.Message): void;
			public requestImageRef(msg: android.os.Message): void;
			public getUrl(): string;
			public getTitle(): string;
			public getFavicon(): android.graphics.Bitmap;
			public getProgress(): number;
			public getContentHeight(): number;
			public pauseTimers(): void;
			public resumeTimers(): void;
			public clearCache(): void;
			public clearFormData(): void;
			public clearHistory(): void;
			public clearSslPreferences(): void;
			public copyBackForwardList(): android.webkit.WebBackForwardList;
			public static findAddress(addr: string): string;
			public documentHasImages(response: android.os.Message): void;
			public setWebViewClient(client: android.webkit.WebViewClient): void;
			public setDownloadListener(listener: android.webkit.IDownloadListener): void;
			public setWebChromeClient(client: android.webkit.WebChromeClient): void;
			public addJavascriptInterface(obj: any, interfaceName: string): void;
			public getSettings(): android.webkit.WebSettings;
			public getZoomControls(): android.view.View;
			public zoomIn(): boolean;
			public zoomOut(): boolean;
		}
		/**
		 * HTML5 support class for Audio.
		 */
		export class HTML5Audio extends android.os.Handler implements android.media.MediaPlayer.IOnBufferingUpdateListener, android.media.MediaPlayer.IOnCompletionListener, android.media.MediaPlayer.IOnErrorListener, android.media.MediaPlayer.IOnPreparedListener, android.media.MediaPlayer.IOnSeekCompleteListener, android.media.AudioManager.IOnAudioFocusChangeListener {
			static class: java.lang.Class<android.webkit.HTML5Audio>;
			public handleMessage(msg: android.os.Message): void;
			public onBufferingUpdate(mp: android.media.MediaPlayer, percent: number): void;
			public onCompletion(mp: android.media.MediaPlayer): void;
			public onError(mp: android.media.MediaPlayer, what: number, extra: number): boolean;
			public onPrepared(mp: android.media.MediaPlayer): void;
			public onSeekComplete(mp: android.media.MediaPlayer): void;
			public onAudioFocusChange(focusChange: number): void;
		}
		export module HTML5Audio {
			export class TimeupdateTask extends java.util.TimerTask {
				static class: java.lang.Class<android.webkit.HTML5Audio.TimeupdateTask>;
				public run(): void;
			}
			export class IsPrivateBrowsingEnabledGetter extends java.lang.Object {
				static class: java.lang.Class<android.webkit.HTML5Audio.IsPrivateBrowsingEnabledGetter>;
				get(): boolean;
			}
		}
		export class CookieManagerClassic extends android.webkit.CookieManager {
			static class: java.lang.Class<android.webkit.CookieManagerClassic>;
			public static getInstance(): android.webkit.CookieManagerClassic;
			public setAcceptCookie(accept: boolean): void;
			public acceptCookie(): boolean;
			public setCookie(url: string, value: string): void;
			/**
			 * See #setCookie(String, String)
			 * @param url The URL for which the cookie is set
			 * @param value The value of the cookie, as a string, using the format of
			 * @param privateBrowsing Whether to use the private browsing cookie jar
			 */
			setCookie(url: string, value: string, privateBrowsing: boolean): void;
			public getCookie(url: string): string;
			public getCookie(url: string, privateBrowsing: boolean): string;
			/**
			 * Waits for pending operations to completed.
			 */
			waitForCookieOperationsToComplete(): void;
			public removeSessionCookie(): void;
			public removeAllCookie(): void;
			public hasCookies(): boolean;
			public hasCookies(privateBrowsing: boolean): boolean;
			public removeExpiredCookie(): void;
			protected flushCookieStore(): void;
			protected allowFileSchemeCookiesImpl(): boolean;
			protected setAcceptFileSchemeCookiesImpl(accept: boolean): void;
		}
		export class WebViewDatabaseClassic extends android.webkit.WebViewDatabase {
			static class: java.lang.Class<android.webkit.WebViewDatabaseClassic>;
			public static getInstance(context: android.content.Context): android.webkit.WebViewDatabaseClassic;
			/**
			 * Set password. Tuple (PASSWORD_HOST_COL, PASSWORD_USERNAME_COL) is unique.
			 * @param schemePlusHost The scheme and host for the password
			 * @param username The username for the password. If it is null, it means
			 * @param password The password
			 */
			setUsernamePassword(schemePlusHost: string, username: string, password: string): void;
			/**
			 * Retrieve the username and password for a given host
			 * @param schemePlusHost The scheme and host which passwords applies to
			 */
			getUsernamePassword(schemePlusHost: string): native.Array<string>;
			/**
			 *  WebViewDatabase#hasUsernamePassword
			 */
			public hasUsernamePassword(): boolean;
			/**
			 *  WebViewDatabase#clearUsernamePassword
			 */
			public clearUsernamePassword(): void;
			/**
			 * Set HTTP authentication password. Tuple (HTTPAUTH_HOST_COL, HTTPAUTH_REALM_COL, HTTPAUTH_USERNAME_COL) is unique.
			 * @param host The host for the password
			 * @param realm The realm for the password
			 * @param username The username for the password. If it is null, it means
			 * @param password The password
			 */
			setHttpAuthUsernamePassword(host: string, realm: string, username: string, password: string): void;
			/**
			 * Retrieve the HTTP authentication username and password for a given host+realm pair
			 * @param host The host the password applies to
			 * @param realm The realm the password applies to
			 */
			getHttpAuthUsernamePassword(host: string, realm: string): native.Array<string>;
			/**
			 *  WebViewDatabase#hasHttpAuthUsernamePassword
			 */
			public hasHttpAuthUsernamePassword(): boolean;
			/**
			 *  WebViewDatabase#clearHttpAuthUsernamePassword
			 */
			public clearHttpAuthUsernamePassword(): void;
			/**
			 * Set form data for a site. Tuple (FORMDATA_URLID_COL, FORMDATA_NAME_COL, FORMDATA_VALUE_COL) is unique
			 * @param url The url of the site
			 * @param formdata The form data in HashMap
			 */
			setFormData(url: string, formdata: java.util.HashMap<string, string>): void;
			/**
			 * Get all the values for a form entry with "name" in a given site
			 * @param url The url of the site
			 * @param name The name of the form entry
			 */
			getFormData(url: string, name: string): java.util.ArrayList<string>;
			/**
			 *  WebViewDatabase#hasFormData
			 */
			public hasFormData(): boolean;
			/**
			 *  WebViewDatabase#clearFormData
			 */
			public clearFormData(): void;
		}
		export class ZoomManagerTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.webkit.ZoomManagerTest>;
			public setUp(): void;
			public testInit(): void;
			public testUpdateDefaultZoomDensity(): void;
			public testUpdateDefaultZoomDensityWithSmallMinZoom(): void;
			public testUpdateDefaultZoomDensityWithLargeMinZoom(): void;
			public testUpdateDefaultZoomDensityWithSmallMaxZoom(): void;
			public testUpdateDefaultZoomDensityWithLargeMaxZoom(): void;
			public testComputeScaleWithLimits(): void;
		}
		/**
		 * Encapsulates a resource response. Applications can return an instance of this class from WebViewClient#shouldInterceptRequest to provide a custom response when the WebView requests a particular resource.
		 */
		export class WebResourceResponse extends java.lang.Object {
			/**
			 * Constructs a resource response with the given MIME type, encoding, and input stream. Callers must implement InputStream#read(byte[]) InputStream.read(byte[]) for the input stream.
			 * @param mimeType the resource response's MIME type, for example text/html
			 * @param encoding the resource response's encoding
			 * @param data the input stream that provides the resource response's data
			 */
			constructor(mimeType: string, encoding: string, data: java.io.InputStream);
			static class: java.lang.Class<android.webkit.WebResourceResponse>;
			/**
			 * Sets the resource response's MIME type, for example text/html.
			 * @param mimeType the resource response's MIME type
			 */
			public setMimeType(mimeType: string): void;
			/**
			 * Gets the resource response's MIME type.
			 */
			public getMimeType(): string;
			/**
			 * Sets the resource response's encoding, for example UTF-8. This is used to decode the data from the input stream.
			 * @param encoding the resource response's encoding
			 */
			public setEncoding(encoding: string): void;
			/**
			 * Gets the resource response's encoding.
			 */
			public getEncoding(): string;
			/**
			 * Sets the input stream that provides the resource respone's data. Callers must implement InputStream#read(byte[]) InputStream.read(byte[]).
			 * @param data the input stream that provides the resource response's data
			 */
			public setData(data: java.io.InputStream): void;
			/**
			 * Gets the input stream that provides the resource respone's data.
			 */
			public getData(): java.io.InputStream;
		}
		/**
		 * Implements the Java side of GeolocationServiceAndroid.
		 */
		export class GeolocationService extends java.lang.Object implements android.location.ILocationListener {
			/**
			 * Constructor
			 * @param context The context from which we obtain the system service.
			 * @param nativeObject The native object to which this object will report position updates and
			 */
			constructor(context: android.content.Context, nativeObject: number);
			static class: java.lang.Class<android.webkit.GeolocationService>;
			/**
			 * Start listening for location updates.
			 */
			public start(): boolean;
			/**
			 * Stop listening for location updates.
			 */
			public stop(): void;
			/**
			 * Sets whether to use the GPS.
			 * @param enable Whether to use the GPS.
			 */
			public setEnableGps(enable: boolean): void;
			/**
			 * LocationListener implementation. Called when the location has changed.
			 * @param location The new location, as a Location object.
			 */
			public onLocationChanged(location: android.location.Location): void;
			/**
			 * LocationListener implementation. Called when the provider status changes.
			 * @param providerName provider The name of the provider.
			 * @param status The new status of the provider.
			 * @param extras an optional Bundle with provider specific data.
			 */
			public onStatusChanged(providerName: string, status: number, extras: android.os.Bundle): void;
			/**
			 * LocationListener implementation. Called when the provider is enabled.
			 * @param providerName provider The name of the location provider that is now enabled.
			 */
			public onProviderEnabled(providerName: string): void;
			/**
			 * LocationListener implementation. Called when the provider is disabled.
			 * @param providerName provider The name of the location provider that is now disabled.
			 */
			public onProviderDisabled(providerName: string): void;
		}
		export class DownloadListener implements android.webkit.IDownloadListener {
			constructor(implementation: android.webkit.IDownloadListener);
			/**
			 * Notify the host application that a file should be downloaded
			 * @param url The full url to the content that should be downloaded
			 * @param userAgent the user agent to be used for the download.
			 * @param contentDisposition Content-disposition http header, if
			 * @param mimetype The mimetype of the content reported by the server
			 * @param contentLength The file size reported by the server
			 */
			public onDownloadStart(url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number): void;
		}
		/**
		 * The ZoomManager is responsible for maintaining the WebView's current zoom level state. It is also responsible for managing the on-screen zoom controls as well as any animation of the WebView due to zooming.
		 */
		export class ZoomManager extends java.lang.Object {
			static class: java.lang.Class<android.webkit.ZoomManager>;
			PostScale: {
	new (updateTextWrap: boolean, inZoomOverview: boolean, inPortraitMode: boolean): android.webkit.ZoomManager.PostScale;
};
			/**
			 * Initialize both the default and actual zoom scale to the given density.
			 * @param density The logical density of the display. This is a scaling factor
			 */
			public init(density: number): void;
			/**
			 * Update the default zoom scale using the given density. It will also reset the current min and max zoom scales to the default boundaries as well as ensure that the actual scale falls within those boundaries.
			 * @param density The logical density of the display. This is a scaling factor
			 */
			public updateDefaultZoomDensity(density: number): void;
			public getScale(): number;
			public getInvScale(): number;
			public getTextWrapScale(): number;
			public getMaxZoomScale(): number;
			public getMinZoomScale(): number;
			public getDefaultScale(): number;
			/**
			 * Returns the zoom scale used for reading text on a double-tap.
			 */
			public getReadingLevelScale(): number;
			computeReadingLevelScale(scale: number): number;
			public getInvDefaultScale(): number;
			public getDefaultMaxZoomScale(): number;
			public getDefaultMinZoomScale(): number;
			public getDocumentAnchorX(): number;
			public getDocumentAnchorY(): number;
			public clearDocumentAnchor(): void;
			public setZoomCenter(x: number, y: number): void;
			public setInitialScaleInPercent(scaleInPercent: number): void;
			public computeScaleWithLimits(scale: number): number;
			public isScaleOverLimits(scale: number): boolean;
			public isZoomScaleFixed(): boolean;
			public static exceedsMinScaleIncrement(scaleA: number, scaleB: number): boolean;
			public willScaleTriggerZoom(scale: number): boolean;
			public canZoomIn(): boolean;
			public canZoomOut(): boolean;
			public zoomIn(): boolean;
			public zoomOut(): boolean;
			/**
			 * Initiates an animated zoom of the WebView.
			 */
			public startZoomAnimation(scale: number, reflowText: boolean): boolean;
			/**
			 * This method is called by the WebView's drawing code when a fixed length zoom animation is occurring. Its purpose is to animate the zooming of the canvas to the desired scale which was specified in startZoomAnimation(...).
			 */
			public animateZoom(canvas: android.graphics.Canvas): void;
			public isZoomAnimating(): boolean;
			public isFixedLengthAnimationInProgress(): boolean;
			public updateDoubleTapZoom(doubleTapZoom: number): void;
			public refreshZoomScale(reflowText: boolean): void;
			public setZoomScale(scale: number, reflowText: boolean): void;
			public isDoubleTapEnabled(): boolean;
			/**
			 * The double tap gesture can result in different behaviors depending on the content that is tapped.
			 */
			public handleDoubleTap(lastTouchX: number, lastTouchY: number): void;
			getZoomOverviewScale(): number;
			public isInZoomOverview(): boolean;
			public updateMultiTouchSupport(context: android.content.Context): void;
			public supportsMultiTouchZoom(): boolean;
			public supportsPanDuringZoom(): boolean;
			/**
			 * Notifies the caller that the ZoomManager is requesting that scale related updates should not be sent to webkit. This can occur in cases where the ZoomManager is performing an animation and does not want webkit to update until the animation is complete.
			 */
			public isPreventingWebkitUpdates(): boolean;
			public getScaleGestureDetector(): android.view.ScaleGestureDetector;
			public onSizeChanged(w: number, h: number, ow: number, oh: number): void;
			public saveZoomState(b: android.os.Bundle): void;
			public restoreZoomState(b: android.os.Bundle): void;
			public invokeZoomPicker(): void;
			public dismissZoomPicker(): void;
			public isZoomPickerVisible(): boolean;
			public updateZoomPicker(): void;
			/**
			 * The embedded zoom control intercepts touch events and automatically stays visible. The external control needs to constantly refresh its internal timer to stay visible.
			 */
			public keepZoomPickerVisible(): void;
			public getExternalZoomPicker(): android.view.View;
			public setHardwareAccelerated(): void;
			/**
			 * OnPageFinished called by webview when a page is fully loaded.
			 */
			onPageFinished(url: string): void;
		}
		export module ZoomManager {
			export class FocusMovementQueue extends java.lang.Object {
				static class: java.lang.Class<android.webkit.ZoomManager.FocusMovementQueue>;
			}
			export class ScaleDetectorListener extends java.lang.Object implements android.view.ScaleGestureDetector.IOnScaleGestureListener {
				static class: java.lang.Class<android.webkit.ZoomManager.ScaleDetectorListener>;
				public onScaleBegin(detector: android.view.ScaleGestureDetector): boolean;
				public isPanningOnly(detector: android.view.ScaleGestureDetector): boolean;
				public handleScale(detector: android.view.ScaleGestureDetector): boolean;
				public onScale(detector: android.view.ScaleGestureDetector): boolean;
				public onScaleEnd(detector: android.view.ScaleGestureDetector): void;
			}
			export class PostScale extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.webkit.ZoomManager.PostScale>;
				public run(): void;
			}
		}
		/**
		 * Sorts dates into the following groups: Today Yesterday seven days ago one month ago older than a month ago
		 */
		export class DateSorter extends java.lang.Object {
			/**
			 * @param context Application context
			 */
			constructor(context: android.content.Context);
			/**
			 * must be >= 3
			 */
			static DAY_COUNT: number;
			static class: java.lang.Class<android.webkit.DateSorter>;
			/**
			 * @param time time since the Epoch in milliseconds, such as that
			 */
			public getIndex(time: number): number;
			/**
			 * @param index date bin index as returned by getIndex()
			 */
			public getLabel(index: number): string;
			/**
			 * @param index date bin index as returned by getIndex()
			 */
			public getBoundary(index: number): any;
		}
		export class ZoomControlExternal extends java.lang.Object implements android.webkit.IZoomControlBase {
			static class: java.lang.Class<android.webkit.ZoomControlExternal>;
			public show(): void;
			public hide(): void;
			public isVisible(): boolean;
			public update(): void;
			public getControls(): android.webkit.ZoomControlExternal.ExtendedZoomControls;
		}
		export module ZoomControlExternal {
			export class ExtendedZoomControls extends android.widget.FrameLayout {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.webkit.ZoomControlExternal.ExtendedZoomControls>;
				public show(showZoom: boolean): void;
				public hide(): void;
				public hasFocus(): boolean;
				public setOnZoomInClickListener(listener: android.view.View.IOnClickListener): void;
				public setOnZoomOutClickListener(listener: android.view.View.IOnClickListener): void;
			}
		}
		/**
		 * Handles injecting accessibility JavaScript and related JavaScript -> Java APIs.
		 */
		export class AccessibilityInjector extends java.lang.Object {
			static class: java.lang.Class<android.webkit.AccessibilityInjector>;
			/**
			 * If JavaScript is enabled, pauses or resumes AndroidVox.
			 * @param enabled Whether feedback should be enabled.
			 */
			public toggleAccessibilityFeedback(enabled: boolean): void;
			/**
			 * Attempts to load scripting interfaces for accessibility.
			 */
			public addAccessibilityApisIfNecessary(): void;
			/**
			 * Destroys this accessibility injector.
			 */
			public destroy(): void;
			/**
			 * Initializes an AccessibilityNodeInfo with the actions and movement granularity levels supported by this AccessibilityInjector.
			 * @param info The info to initialize.
			 */
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Returns true if this AccessibilityInjector should handle the specified action.
			 * @param action An accessibility action identifier.
			 */
			public supportsAccessibilityAction(action: number): boolean;
			/**
			 * Performs the specified accessibility action.
			 * @param action The identifier of the action to perform.
			 * @param arguments The action arguments, or {@code null} if no arguments.
			 */
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			/**
			 * Attempts to handle key events when accessibility is turned on.
			 * @param event The key event to handle.
			 */
			public handleKeyEventIfNecessary(event: android.view.KeyEvent): boolean;
			/**
			 * Attempts to handle selection change events when accessibility is using a non-JavaScript method.
			 * @param selectionString The selection string.
			 */
			public handleSelectionChangedIfNecessary(selectionString: string): void;
			/**
			 * Prepares for injecting accessibility scripts into a new page.
			 * @param url The URL that will be loaded.
			 */
			public onPageStarted(url: string): void;
			/**
			 * Attempts to inject the accessibility script using a <script> tag.
			 * @param url The URL that just finished loading.
			 */
			public onPageFinished(url: string): void;
			/**
			 * Adjusts the accessibility injection state to reflect changes in the JavaScript enabled state.
			 * @param enabled Whether JavaScript is enabled.
			 */
			public updateJavaScriptEnabled(enabled: boolean): void;
		}
		export module AccessibilityInjector {
			/**
			 * Exposes result interface to JavaScript.
			 */
			export class CallbackHandler extends java.lang.Object {
				static class: java.lang.Class<android.webkit.AccessibilityInjector.CallbackHandler>;
				/**
				 * Callback exposed to JavaScript. Handles returning the result of a request to a waiting (or potentially timed out) thread.
				 * @param id The result id of the request as a {@link String}.
				 * @param result The result of the request as a {@link String}.
				 */
				public onResult(id: string, result: string): void;
				/**
				 * Requests a callback to ensure that the JavaScript interface for this object has been added successfully.
				 * @param webView The web view to request a callback from.
				 * @param callbackRunnable Runnable to execute if a callback is received.
				 */
				public requestCallback(webView: android.webkit.WebView, callbackRunnable: java.lang.IRunnable): void;
				public callback(): void;
			}
			/**
			 * Used to protect the TextToSpeech class, only exposing the methods we want to expose.
			 */
			export class TextToSpeechWrapper extends java.lang.Object {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.webkit.AccessibilityInjector.TextToSpeechWrapper>;
				public isSpeaking(): boolean;
				public speak(text: string, queueMode: number, params: java.util.HashMap<string, string>): number;
				public stop(): number;
				protected shutdown(): void;
			}
		}
		/**
		 * Public class for handling JavaScript prompt requests. The WebChromeClient will receive a WebChromeClient#onJsPrompt(WebView, String, String, String, JsPromptResult) call with a JsPromptResult instance as a parameter. This parameter is used to return the result of this user dialog prompt back to the WebView instance. The client can call cancel() to cancel the dialog or confirm() with the user's input to confirm the dialog.
		 */
		export class JsPromptResult extends android.webkit.JsResult {
			static class: java.lang.Class<android.webkit.JsPromptResult>;
			/**
			 * Handle a confirmation response from the user.
			 */
			public confirm(result: string): void;
			/**
			 * Handle a confirmation response from the user.
			 */
			confirm(): void;
		}
		/**
		 * Functions for manipulating the icon database used by WebView. These functions require that a WebView be constructed before being invoked and WebView.getIconDatabase() will return a WebIconDatabase object. This WebIconDatabase object is a single instance and all methods operate on that single object.
		 */
		export class WebIconDatabase extends java.lang.Object {
			static class: java.lang.Class<android.webkit.WebIconDatabase>;
			/**
			 * Open a the icon database and store the icons in the given path.
			 * @param path The directory path where the icon database will be stored.
			 */
			public open(path: string): void;
			/**
			 * Close the shared instance of the icon database.
			 */
			public close(): void;
			/**
			 * Removes all the icons in the database.
			 */
			public removeAllIcons(): void;
			/**
			 * Request the Bitmap representing the icon for the given page url. If the icon exists, the listener will be called with the result.
			 * @param url The page's url.
			 * @param listener An implementation on IconListener to receive the result.
			 */
			public requestIconForPageUrl(url: string, listener: android.webkit.WebIconDatabase.IIconListener): void;
			/**
			 * Retain the icon for the given page url.
			 * @param url The page's url.
			 */
			public retainIconForPageUrl(url: string): void;
			/**
			 * Release the icon for the given page url.
			 * @param url The page's url.
			 */
			public releaseIconForPageUrl(url: string): void;
			/**
			 * Get the global instance of WebIconDatabase.
			 */
			public static getInstance(): android.webkit.WebIconDatabase;
		}
		export module WebIconDatabase {
			/**
			 * Interface for receiving icons from the database.
			 */
			interface IIconListener {
				/**
				 * Called when the icon has been retrieved from the database and the result is non-null.
				 * @param url The url passed in the request.
				 * @param icon The favicon for the given url.
				 */
				onReceivedIcon(url: string, icon: android.graphics.Bitmap): void;
			}
			/**
			 * Interface for receiving icons from the database.
			 */
			export class IconListener implements android.webkit.WebIconDatabase.IIconListener {
				constructor(implementation: android.webkit.WebIconDatabase.IIconListener);
				/**
				 * Called when the icon has been retrieved from the database and the result is non-null.
				 * @param url The url passed in the request.
				 * @param icon The favicon for the given url.
				 */
				public onReceivedIcon(url: string, icon: android.graphics.Bitmap): void;
			}
		}
		export class JWebCoreJavaBridge extends android.os.Handler {
			/**
			 * Construct a new JWebCoreJavaBridge to interface with WebCore timers and cookies.
			 */
			constructor();
			static class: java.lang.Class<android.webkit.JWebCoreJavaBridge>;
			protected finalize(): void;
			/**
			 * handleMessage
			 * @param msg The dispatched message.
			 */
			public handleMessage(msg: android.os.Message): void;
			/**
			 * Pause all timers.
			 */
			public pause(): void;
			/**
			 * Resume all timers.
			 */
			public resume(): void;
			/**
			 * Set WebCore cache size.
			 * @param bytes The cache size in bytes.
			 */
			public setCacheSize(bytes: number): void;
			public storeFilePathForContentUri(path: string, contentUri: string): void;
			public setNetworkOnLine(online: boolean): void;
			public setNetworkType(type: string, subtype: string): void;
			public addPackageNames(packageNames: java.util.ISet<string>): void;
			public addPackageName(packageName: string): void;
			public removePackageName(packageName: string): void;
			public nativeUpdateProxy(newProxy: string, exclusionList: string): void;
		}
	}
	export module inputmethodservice {
		/**
		 * Specialization of Button that ignores the window not being focused.
		 */
		export class ExtractButton extends android.widget.Button {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.inputmethodservice.ExtractButton>;
			/**
			 * Pretend like the window this view is in always has focus, so it will highlight when selected.
			 */
			public hasWindowFocus(): boolean;
		}
		/**
		 * A SoftInputWindow is a Dialog that is intended to be used for a top-level input method window. It will be displayed along the edge of the screen, moving the application user interface away from it so that the focused item is always visible.
		 */
		export class SoftInputWindow extends android.app.Dialog {
			/**
			 * Create a SoftInputWindow that uses a custom style. 
			 * @param context The Context in which the DockWindow should run. In
			 * @param theme A style resource describing the theme to use for the window.
			 * @param dispatcherState 
			 */
			constructor(context: android.content.Context, theme: number, dispatcherState: android.view.KeyEvent.DispatcherState);
			static class: java.lang.Class<android.inputmethodservice.SoftInputWindow>;
			public setToken(token: android.os.IIBinder): void;
			public onWindowFocusChanged(hasFocus: boolean): void;
			public dispatchTouchEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * Get the size of the DockWindow. 
			 */
			public getSize(): number;
			/**
			 * Set the size of the DockWindow. 
			 * @param size If the DockWindow sticks to the top or bottom of the screen,
			 */
			public setSize(size: number): void;
			/**
			 * Set which boundary of the screen the DockWindow sticks to. 
			 * @param gravity The boundary of the screen to stick. See {#link
			 */
			public setGravity(gravity: number): void;
		}
		/**
		 * Specialization of EditText for showing and interacting with the extracted text in a full-screen input method.
		 */
		export class ExtractEditText extends android.widget.EditText {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.inputmethodservice.ExtractEditText>;
			setIME(ime: android.inputmethodservice.InputMethodService): void;
			/**
			 * Start making changes that will not be reported to the client. That is, #onSelectionChanged(int, int) will not result in sending the new selection to the client
			 */
			public startInternalChanges(): void;
			/**
			 * Finish making changes that will not be reported to the client. That is, #onSelectionChanged(int, int) will not result in sending the new selection to the client
			 */
			public finishInternalChanges(): void;
			/**
			 * Implement just to keep track of when we are setting text from the client (vs. seeing changes in ourself from the user).
			 */
			public setExtractedText(text: android.view.inputmethod.ExtractedText): void;
			/**
			 * Report to the underlying text editor about selection changes.
			 */
			protected onSelectionChanged(selStart: number, selEnd: number): void;
			/**
			 * Redirect clicks to the IME for handling there. First allows any on click handler to run, though.
			 */
			public performClick(): boolean;
			public onTextContextMenuItem(id: number): boolean;
			/**
			 * We are always considered to be an input method target.
			 */
			public isInputMethodTarget(): boolean;
			/**
			 * Return true if the edit text is currently showing a scroll bar.
			 */
			public hasVerticalScrollBar(): boolean;
			/**
			 * Pretend like the window this view is in always has focus, so its highlight and cursor will be displayed.
			 */
			public hasWindowFocus(): boolean;
			/**
			 * Pretend like this view always has focus, so its highlight and cursor will be displayed.
			 */
			public isFocused(): boolean;
			/**
			 * Pretend like this view always has focus, so its highlight and cursor will be displayed.
			 */
			public hasFocus(): boolean;
		}
		/**
		 * Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard consists of rows of keys.
		 */
		export class Keyboard extends java.lang.Object {
			/**
			 * Creates a keyboard from the given xml key layout file.
			 * @param context the application or service context
			 * @param xmlLayoutResId the resource file that contains the keyboard layout and keys.
			 */
			constructor(context: android.content.Context, xmlLayoutResId: number);
			/**
			 * Creates a keyboard from the given xml key layout file. Weeds out rows that have a keyboard mode defined but don't match the specified mode.
			 * @param context the application or service context
			 * @param xmlLayoutResId the resource file that contains the keyboard layout and keys.
			 * @param modeId keyboard mode identifier
			 * @param width sets width of keyboard
			 * @param height sets height of keyboard
			 */
			constructor(context: android.content.Context, xmlLayoutResId: number, modeId: number, width: number, height: number);
			/**
			 * Creates a keyboard from the given xml key layout file. Weeds out rows that have a keyboard mode defined but don't match the specified mode.
			 * @param context the application or service context
			 * @param xmlLayoutResId the resource file that contains the keyboard layout and keys.
			 * @param modeId keyboard mode identifier
			 */
			constructor(context: android.content.Context, xmlLayoutResId: number, modeId: number);
			/**
			 * @param context the application or service context
			 * @param layoutTemplateResId the layout template file, containing no keys.
			 * @param characters the list of characters to display on the keyboard. One key will be created
			 * @param columns the number of columns of keys to display. If this number is greater than the
			 * @param horizontalPadding 
			 */
			constructor(context: android.content.Context, layoutTemplateResId: number, characters: string, columns: number, horizontalPadding: number);
			static EDGE_LEFT: number;
			static EDGE_RIGHT: number;
			static EDGE_TOP: number;
			static EDGE_BOTTOM: number;
			static KEYCODE_SHIFT: number;
			static KEYCODE_MODE_CHANGE: number;
			static KEYCODE_CANCEL: number;
			static KEYCODE_DONE: number;
			static KEYCODE_DELETE: number;
			static KEYCODE_ALT: number;
			static class: java.lang.Class<android.inputmethodservice.Keyboard>;
			resize(newWidth: number, newHeight: number): void;
			public getKeys(): java.util.IList<android.inputmethodservice.Keyboard.Key>;
			public getModifierKeys(): java.util.IList<android.inputmethodservice.Keyboard.Key>;
			protected getHorizontalGap(): number;
			protected setHorizontalGap(gap: number): void;
			protected getVerticalGap(): number;
			protected setVerticalGap(gap: number): void;
			protected getKeyHeight(): number;
			protected setKeyHeight(height: number): void;
			protected getKeyWidth(): number;
			protected setKeyWidth(width: number): void;
			/**
			 * Returns the total height of the keyboard
			 */
			public getHeight(): number;
			public getMinWidth(): number;
			public setShifted(shiftState: boolean): boolean;
			public isShifted(): boolean;
			public getShiftKeyIndex(): number;
			/**
			 * Returns the indices of the keys that are closest to the given point.
			 * @param x the x-coordinate of the point
			 * @param y the y-coordinate of the point
			 */
			public getNearestKeys(x: number, y: number): native.Array<number>;
			protected createRowFromXml(res: android.content.res.Resources, parser: android.content.res.IXmlResourceParser): android.inputmethodservice.Keyboard.Row;
			protected createKeyFromXml(res: android.content.res.Resources, parent: android.inputmethodservice.Keyboard.Row, x: number, y: number, parser: android.content.res.IXmlResourceParser): android.inputmethodservice.Keyboard.Key;
			static getDimensionOrFraction(a: android.content.res.TypedArray, index: number, base: number, defValue: number): number;
		}
		export module Keyboard {
			/**
			 * Container for keys in the keyboard. All keys in a row are at the same Y-coordinate. Some of the key size defaults can be overridden per row from what the Keyboard defines. ref android.R.styleable#Keyboard_keyWidth ref android.R.styleable#Keyboard_keyHeight ref android.R.styleable#Keyboard_horizontalGap ref android.R.styleable#Keyboard_verticalGap ref android.R.styleable#Keyboard_Row_rowEdgeFlags ref android.R.styleable#Keyboard_Row_keyboardMode
			 */
			export class Row extends java.lang.Object {
				constructor(parent: android.inputmethodservice.Keyboard);
				constructor(res: android.content.res.Resources, parent: android.inputmethodservice.Keyboard, parser: android.content.res.IXmlResourceParser);
				/**
				 * Default width of a key in this row.
				 */
				defaultWidth: number;
				/**
				 * Default height of a key in this row.
				 */
				defaultHeight: number;
				/**
				 * Default horizontal gap between keys in this row.
				 */
				defaultHorizontalGap: number;
				/**
				 * Vertical gap following this row.
				 */
				verticalGap: number;
				/**
				 * Edge flags for this row of keys. Possible values that can be assigned are Keyboard#EDGE_TOP EDGE_TOP and Keyboard#EDGE_BOTTOM EDGE_BOTTOM
				 */
				rowEdgeFlags: number;
				/**
				 * The keyboard mode for this row
				 */
				mode: number;
				static class: java.lang.Class<android.inputmethodservice.Keyboard.Row>;
			}
			/**
			 * Class for describing the position and characteristics of a single key in the keyboard. ref android.R.styleable#Keyboard_keyWidth ref android.R.styleable#Keyboard_keyHeight ref android.R.styleable#Keyboard_horizontalGap ref android.R.styleable#Keyboard_Key_codes ref android.R.styleable#Keyboard_Key_keyIcon ref android.R.styleable#Keyboard_Key_keyLabel ref android.R.styleable#Keyboard_Key_iconPreview ref android.R.styleable#Keyboard_Key_isSticky ref android.R.styleable#Keyboard_Key_isRepeatable ref android.R.styleable#Keyboard_Key_isModifier ref android.R.styleable#Keyboard_Key_popupKeyboard ref android.R.styleable#Keyboard_Key_popupCharacters ref android.R.styleable#Keyboard_Key_keyOutputText ref android.R.styleable#Keyboard_Key_keyEdgeFlags
			 */
			export class Key extends java.lang.Object {
				/**
				 * Create an empty key with no attributes.
				 */
				constructor(parent: android.inputmethodservice.Keyboard.Row);
				/**
				 * Create a key with the given top-left coordinate and extract its attributes from the XML parser.
				 * @param res resources associated with the caller's context
				 * @param parent the row that this key belongs to. The row must already be attached to
				 * @param x the x coordinate of the top-left
				 * @param y the y coordinate of the top-left
				 * @param parser the XML parser containing the attributes for this key
				 */
				constructor(res: android.content.res.Resources, parent: android.inputmethodservice.Keyboard.Row, x: number, y: number, parser: android.content.res.IXmlResourceParser);
				codes: native.Array<number>;
				/**
				 * Label to display
				 */
				label: string;
				/**
				 * Icon to display instead of a label. Icon takes precedence over a label
				 */
				icon: android.graphics.drawable.Drawable;
				/**
				 * Preview version of the icon, for the preview popup
				 */
				iconPreview: android.graphics.drawable.Drawable;
				/**
				 * Width of the key, not including the gap
				 */
				width: number;
				/**
				 * Height of the key, not including the gap
				 */
				height: number;
				/**
				 * The horizontal gap before this key
				 */
				gap: number;
				/**
				 * Whether this key is sticky, i.e., a toggle key
				 */
				sticky: boolean;
				/**
				 * X coordinate of the key in the keyboard layout
				 */
				x: number;
				/**
				 * Y coordinate of the key in the keyboard layout
				 */
				y: number;
				/**
				 * The current pressed state of this key
				 */
				pressed: boolean;
				/**
				 * If this is a sticky key, is it on?
				 */
				on: boolean;
				/**
				 * Text to output when pressed. This can be multiple characters, like ".com"
				 */
				text: string;
				/**
				 * Popup characters
				 */
				popupCharacters: string;
				edgeFlags: number;
				/**
				 * Whether this is a modifier key, such as Shift or Alt
				 */
				modifier: boolean;
				popupResId: number;
				/**
				 * Whether this key repeats itself when held down
				 */
				repeatable: boolean;
				static class: java.lang.Class<android.inputmethodservice.Keyboard.Key>;
				/**
				 * Informs the key that it has been pressed, in case it needs to change its appearance or state. #onReleased(boolean)
				 */
				public onPressed(): void;
				/**
				 * Changes the pressed state of the key. If it is a sticky key, it will also change the toggled state of the key if the finger was release inside.
				 * @param inside whether the finger was released inside the key
				 */
				public onReleased(inside: boolean): void;
				parseCSV(value: string): native.Array<number>;
				/**
				 * Detects if a point falls inside this key.
				 * @param x the x-coordinate of the point
				 * @param y the y-coordinate of the point
				 */
				public isInside(x: number, y: number): boolean;
				/**
				 * Returns the square of the distance between the center of the key and the given point.
				 * @param x the x-coordinate of the point
				 * @param y the y-coordinate of the point
				 */
				public squaredDistanceFrom(x: number, y: number): number;
				/**
				 * Returns the drawable state for the key, based on the current state and type of the key.
				 */
				public getCurrentDrawableState(): native.Array<number>;
			}
		}
		/**
		 * InputMethodService provides a standard implementation of an InputMethod, which final implementations can derive from and customize. See the base class AbstractInputMethodService and the InputMethod interface for more information on the basics of writing input methods. 
		 */
		export class InputMethodService extends android.inputmethodservice.AbstractInputMethodService {
			constructor();
			/**
			 * The back button will close the input window.
			 */
			static BACK_DISPOSITION_DEFAULT: number;
			/**
			 * This input method will not consume the back key.
			 */
			static BACK_DISPOSITION_WILL_NOT_DISMISS: number;
			/**
			 * This input method will consume the back key.
			 */
			static BACK_DISPOSITION_WILL_DISMISS: number;
			static class: java.lang.Class<android.inputmethodservice.InputMethodService>;
			InputMethodSessionImpl: {
	new (): android.inputmethodservice.InputMethodService.InputMethodSessionImpl;
};
			InputMethodImpl: {
	new (): android.inputmethodservice.InputMethodService.InputMethodImpl;
};
			/**
			 * You can call this to customize the theme used by your IME's window. This theme should typically be one that derives from android.R.style#Theme_InputMethod, which is the default theme you will get. This must be set before #onCreate, so you will typically call it in your constructor with the resource ID of your custom theme.
			 */
			public setTheme(theme: number): void;
			/**
			 * You can call this to try to enable hardware accelerated drawing for your IME. This must be set before #onCreate, so you will typically call it in your constructor. It is not always possible to use hardware acclerated drawing in an IME (for example on low-end devices that do not have the resources to support this), so the call returns true if it succeeds otherwise false if you will need to draw in software. You must be able to handle either case.
			 */
			public enableHardwareAcceleration(): boolean;
			public onCreate(): void;
			/**
			 * This is a hook that subclasses can use to perform initialization of their interface. It is called for you prior to any of your UI objects being created, both after the service is first created and after a configuration change happens.
			 */
			public onInitializeInterface(): void;
			initialize(): void;
			initViews(): void;
			public onDestroy(): void;
			/**
			 * Take care of handling configuration changes. Subclasses of InputMethodService generally don't need to deal directly with this on their own; the standard implementation here takes care of regenerating the input method UI as a result of the configuration change, so you can rely on your #onCreateInputView and other methods being called as appropriate due to a configuration change. 
			 */
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * Implement to return our standard InputMethodImpl. Subclasses can override to provide their own customized version.
			 */
			public onCreateInputMethodInterface(): android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl;
			/**
			 * Implement to return our standard InputMethodSessionImpl. Subclasses can override to provide their own customized version.
			 */
			public onCreateInputMethodSessionInterface(): android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl;
			public getLayoutInflater(): android.view.LayoutInflater;
			public getWindow(): android.app.Dialog;
			public setBackDisposition(disposition: number): void;
			public getBackDisposition(): number;
			/**
			 * Return the maximum width, in pixels, available the input method. Input methods are positioned at the bottom of the screen and, unless running in fullscreen, will generally want to be as short as possible so should compute their height based on their contents. However, they can stretch as much as needed horizontally. The function returns to you the maximum amount of space available horizontally, which you can use if needed for UI placement. 
			 */
			public getMaxWidth(): number;
			/**
			 * Return the currently active InputBinding for the input method, or null if there is none.
			 */
			public getCurrentInputBinding(): android.view.inputmethod.InputBinding;
			/**
			 * Retrieve the currently active InputConnection that is bound to the input method, or null if there is none.
			 */
			public getCurrentInputConnection(): android.view.inputmethod.IInputConnection;
			public getCurrentInputStarted(): boolean;
			public getCurrentInputEditorInfo(): android.view.inputmethod.EditorInfo;
			/**
			 * Re-evaluate whether the input method should be running in fullscreen mode, and update its UI if this has changed since the last time it was evaluated. This will call #onEvaluateFullscreenMode() to determine whether it should currently run in fullscreen mode. You can use #isFullscreenMode() to determine if the input method is currently running in fullscreen mode.
			 */
			public updateFullscreenMode(): void;
			/**
			 * Update the given window's parameters for the given mode. This is called when the window is first displayed and each time the fullscreen or candidates only mode changes. 
			 * @param win The input method's window.
			 * @param isFullscreen If true, the window is running in fullscreen mode
			 * @param isCandidatesOnly If true, the window is only showing the
			 */
			public onConfigureWindow(win: android.view.Window, isFullscreen: boolean, isCandidatesOnly: boolean): void;
			/**
			 * Return whether the input method is <em>currently</em> running in fullscreen mode. This is the mode that was last determined and applied by #updateFullscreenMode().
			 */
			public isFullscreenMode(): boolean;
			/**
			 * Override this to control when the input method should run in fullscreen mode. The default implementation runs in fullsceen only when the screen is in landscape mode. If you change what this returns, you will need to call #updateFullscreenMode() yourself whenever the returned value may have changed to have it re-evaluated and applied.
			 */
			public onEvaluateFullscreenMode(): boolean;
			/**
			 * Controls the visibility of the extracted text area. This only applies when the input method is in fullscreen mode, and thus showing extracted text. When false, the extracted text will not be shown, allowing some of the application to be seen behind. This is normally set for you by #onUpdateExtractingVisibility. This controls the visibility of both the extracted text and candidate view; the latter since it is not useful if there is no text to see.
			 */
			public setExtractViewShown(shown: boolean): void;
			/**
			 * Return whether the fullscreen extract view is shown. This will only return true if #isFullscreenMode() returns true, and in that case its value depends on the last call to #setExtractViewShown(boolean). This effectively lets you determine if the application window is entirely covered (when this returns true) or if some part of it may be shown (if this returns false, though if #isFullscreenMode() returns true in that case then it is probably only a sliver of the application).
			 */
			public isExtractViewShown(): boolean;
			updateExtractFrameVisibility(): void;
			/**
			 * Compute the interesting insets into your UI. The default implementation uses the top of the candidates frame for the visible insets, and the top of the input frame for the content insets. The default touchable insets are Insets#TOUCHABLE_INSETS_VISIBLE. 
			 * @param outInsets Fill in with the current UI insets.
			 */
			public onComputeInsets(outInsets: android.inputmethodservice.InputMethodService.Insets): void;
			/**
			 * Re-evaluate whether the soft input area should currently be shown, and update its UI if this has changed since the last time it was evaluated. This will call #onEvaluateInputViewShown() to determine whether the input view should currently be shown. You can use #isInputViewShown() to determine if the input view is currently shown.
			 */
			public updateInputViewShown(): void;
			/**
			 * Returns true if we have been asked to show our input view.
			 */
			public isShowInputRequested(): boolean;
			/**
			 * Return whether the soft input view is <em>currently</em> shown to the user. This is the state that was last determined and applied by #updateInputViewShown().
			 */
			public isInputViewShown(): boolean;
			/**
			 * Override this to control when the soft input area should be shown to the user. The default implementation only shows the input view when there is no hard keyboard or the keyboard is hidden. If you change what this returns, you will need to call #updateInputViewShown() yourself whenever the returned value may have changed to have it re-evaluated and applied.
			 */
			public onEvaluateInputViewShown(): boolean;
			/**
			 * Controls the visibility of the candidates display area. By default it is hidden.
			 */
			public setCandidatesViewShown(shown: boolean): void;
			updateCandidatesVisibility(shown: boolean): void;
			/**
			 * Returns the visibility mode (either View#INVISIBLE View.INVISIBLE or View#GONE View.GONE) of the candidates view when it is not shown. The default implementation returns GONE when #isExtractViewShown returns true, otherwise VISIBLE. Be careful if you change this to return GONE in other situations -- if showing or hiding the candidates view causes your window to resize, this can cause temporary drawing artifacts as the resize takes place.
			 */
			public getCandidatesHiddenVisibility(): number;
			public showStatusIcon(iconResId: number): void;
			public hideStatusIcon(): void;
			/**
			 * Force switch to a new input method, as identified by <var>id</var>. This input method will be destroyed, and the requested one started on the current input field. 
			 * @param id Unique identifier of the new input method ot start.
			 */
			public switchInputMethod(id: string): void;
			public setExtractView(view: android.view.View): void;
			/**
			 * Replaces the current candidates view with a new one. You only need to call this when dynamically changing the view; normally, you should implement #onCreateCandidatesView() and create your view when first needed by the input method.
			 */
			public setCandidatesView(view: android.view.View): void;
			/**
			 * Replaces the current input view with a new one. You only need to call this when dynamically changing the view; normally, you should implement #onCreateInputView() and create your view when first needed by the input method.
			 */
			public setInputView(view: android.view.View): void;
			/**
			 * Called by the framework to create the layout for showing extacted text. Only called when in fullscreen mode. The returned view hierarchy must have an ExtractEditText whose ID is android.R.id#inputExtractEditText.
			 */
			public onCreateExtractTextView(): android.view.View;
			/**
			 * Create and return the view hierarchy used to show candidates. This will be called once, when the candidates are first displayed. You can return null to have no candidates view; the default implementation returns null. 
			 */
			public onCreateCandidatesView(): android.view.View;
			/**
			 * Create and return the view hierarchy used for the input area (such as a soft keyboard). This will be called once, when the input area is first displayed. You can return null to have no input area; the default implementation returns null. 
			 */
			public onCreateInputView(): android.view.View;
			/**
			 * Called when the input view is being shown and input has started on a new editor. This will always be called after #onStartInput, allowing you to do your general setup there and just view-specific setup here. You are guaranteed that #onCreateInputView() will have been called some time before this function is called. 
			 * @param info Description of the type of text being edited.
			 * @param restarting Set to true if we are restarting input on the
			 */
			public onStartInputView(info: android.view.inputmethod.EditorInfo, restarting: boolean): void;
			/**
			 * Called when the input view is being hidden from the user. This will be called either prior to hiding the window, or prior to switching to another target for editing. 
			 * @param finishingInput If true, {@link #onFinishInput} will be
			 */
			public onFinishInputView(finishingInput: boolean): void;
			/**
			 * Called when only the candidates view has been shown for showing processing as the user enters text through a hard keyboard. This will always be called after #onStartInput, allowing you to do your general setup there and just view-specific setup here. You are guaranteed that #onCreateCandidatesView() will have been called some time before this function is called. 
			 * @param info Description of the type of text being edited.
			 * @param restarting Set to true if we are restarting input on the
			 */
			public onStartCandidatesView(info: android.view.inputmethod.EditorInfo, restarting: boolean): void;
			/**
			 * Called when the candidates view is being hidden from the user. This will be called either prior to hiding the window, or prior to switching to another target for editing. 
			 * @param finishingInput If true, {@link #onFinishInput} will be
			 */
			public onFinishCandidatesView(finishingInput: boolean): void;
			/**
			 * The system has decided that it may be time to show your input method. This is called due to a corresponding call to your InputMethod#showSoftInput InputMethod.showSoftInput() method. The default implementation uses #onEvaluateInputViewShown(), #onEvaluateFullscreenMode(), and the current configuration to decide whether the input view should be shown at this point. 
			 * @param flags Provides additional information about the show request,
			 * @param configChange This is true if we are re-showing due to a
			 */
			public onShowInputRequested(flags: number, configChange: boolean): boolean;
			public showWindow(showInput: boolean): void;
			showWindowInner(showInput: boolean): void;
			public hideWindow(): void;
			/**
			 * Called when the input method window has been shown to the user, after previously not being visible. This is done after all of the UI setup for the window has occurred (creating its views etc).
			 */
			public onWindowShown(): void;
			/**
			 * Called when the input method window has been hidden from the user, after previously being visible.
			 */
			public onWindowHidden(): void;
			/**
			 * Called when a new client has bound to the input method. This may be followed by a series of #onStartInput(EditorInfo, boolean) and #onFinishInput() calls as the user navigates through its UI. Upon this call you know that #getCurrentInputBinding and #getCurrentInputConnection return valid objects.
			 */
			public onBindInput(): void;
			/**
			 * Called when the previous bound client is no longer associated with the input method. After returning #getCurrentInputBinding and #getCurrentInputConnection will no longer return valid objects.
			 */
			public onUnbindInput(): void;
			/**
			 * Called to inform the input method that text input has started in an editor. You should use this callback to initialize the state of your input to match the state of the editor given to it. 
			 * @param attribute The attributes of the editor that input is starting
			 * @param restarting Set to true if input is restarting in the same
			 */
			public onStartInput(attribute: android.view.inputmethod.EditorInfo, restarting: boolean): void;
			doFinishInput(): void;
			doStartInput(ic: android.view.inputmethod.IInputConnection, attribute: android.view.inputmethod.EditorInfo, restarting: boolean): void;
			/**
			 * Called to inform the input method that text input has finished in the last editor. At this point there may be a call to #onStartInput(EditorInfo, boolean) to perform input in a new editor, or the input method may be left idle. This method is <em>not</em> called when input restarts in the same editor. 
			 */
			public onFinishInput(): void;
			/**
			 * Called when the application has reported auto-completion candidates that it would like to have the input method displayed. Typically these are only used when an input method is running in full-screen mode, since otherwise the user can see and interact with the pop-up window of completions shown by the application. 
			 */
			public onDisplayCompletions(completions: native.Array<android.view.inputmethod.CompletionInfo>): void;
			/**
			 * Called when the application has reported new extracted text to be shown due to changes in its current text state. The default implementation here places the new text in the extract edit text, when the input method is running in fullscreen mode.
			 */
			public onUpdateExtractedText(token: number, text: android.view.inputmethod.ExtractedText): void;
			/**
			 * Called when the application has reported a new selection region of the text. This is called whether or not the input method has requested extracted text updates, although if so it will not receive this call if the extracted text has changed as well. 
			 */
			public onUpdateSelection(oldSelStart: number, oldSelEnd: number, newSelStart: number, newSelEnd: number, candidatesStart: number, candidatesEnd: number): void;
			/**
			 * Called when the user tapped or clicked a text view. IMEs can't rely on this method being called because this was not part of the original IME protocol, so applications with custom text editing written before this method appeared will not call to inform the IME of this interaction.
			 * @param focusChanged true if the user changed the focused view by this click.
			 */
			public onViewClicked(focusChanged: boolean): void;
			/**
			 * Called when the application has reported a new location of its text cursor. This is only called if explicitly requested by the input method. The default implementation does nothing.
			 */
			public onUpdateCursor(newCursor: android.graphics.Rect): void;
			/**
			 * Close this input method's soft input area, removing it from the display. The input method will continue running, but the user can no longer use it to generate input by touching the screen.
			 * @param flags Provides additional operating flags. Currently may be
			 */
			public requestHideSelf(flags: number): void;
			/**
			 * Override this to intercept key down events before they are processed by the application. If you return true, the application will not process the event itself. If you return false, the normal application processing will occur as if the IME had not seen the event at all. 
			 */
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyLongPress(int, KeyEvent) KeyEvent.Callback.onKeyLongPress(): always returns false (doesn't handle the event).
			 */
			public onKeyLongPress(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Override this to intercept special key multiple events before they are processed by the application. If you return true, the application will not itself process the event. If you return false, the normal application processing will occur as if the IME had not seen the event at all. 
			 */
			public onKeyMultiple(keyCode: number, count: number, event: android.view.KeyEvent): boolean;
			/**
			 * Override this to intercept key up events before they are processed by the application. If you return true, the application will not itself process the event. If you return false, the normal application processing will occur as if the IME had not seen the event at all. 
			 */
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Override this to intercept trackball motion events before they are processed by the application. If you return true, the application will not itself process the event. If you return false, the normal application processing will occur as if the IME had not seen the event at all.
			 */
			public onTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Override this to intercept generic motion events before they are processed by the application. If you return true, the application will not itself process the event. If you return false, the normal application processing will occur as if the IME had not seen the event at all.
			 */
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			public onAppPrivateCommand(action: string, data: android.os.Bundle): void;
			reportExtractedMovement(keyCode: number, count: number): void;
			doMovementKey(keyCode: number, event: android.view.KeyEvent, count: number): boolean;
			/**
			 * Send the given key event code (as defined by KeyEvent) to the current input connection is a key down + key up event pair. The sent events have KeyEvent#FLAG_SOFT_KEYBOARD KeyEvent.FLAG_SOFT_KEYBOARD set, so that the recipient can identify them as coming from a software input method, and KeyEvent#FLAG_KEEP_TOUCH_MODE KeyEvent.FLAG_KEEP_TOUCH_MODE, so that they don't impact the current touch mode of the UI.
			 * @param keyEventCode The raw key code to send, as defined by
			 */
			public sendDownUpKeyEvents(keyEventCode: number): void;
			/**
			 * Ask the input target to execute its default action via InputConnection#performEditorAction InputConnection.performEditorAction(). 
			 * @param fromEnterKey If true, this will be executed as if the user had
			 */
			public sendDefaultEditorAction(fromEnterKey: boolean): boolean;
			/**
			 * Send the given UTF-16 character to the current input connection. Most characters will be delivered simply by calling InputConnection#commitText InputConnection.commitText() with the character; some, however, may be handled different. In particular, the enter character ('\n') will either be delivered as an action code or a raw key event, as appropriate. Consider this as a convenience method for IMEs that do not have a full implementation of actions; a fully complying IME will decide of the right action for each event and will likely never call this method except maybe to handle events coming from an actual hardware keyboard. 
			 * @param charCode The UTF-16 character code to send.
			 */
			public sendKeyChar(charCode: string): void;
			/**
			 * This is called when the user has moved the cursor in the extracted text view, when running in fullsreen mode. The default implementation performs the corresponding selection change on the underlying text editor.
			 */
			public onExtractedSelectionChanged(start: number, end: number): void;
			/**
			 * This is called when the user has clicked on the extracted text view, when running in fullscreen mode. The default implementation hides the candidates view when this happens, but only if the extracted text editor has a vertical scroll bar because its text doesn't fit. Re-implement this to provide whatever behavior you want.
			 */
			public onExtractedTextClicked(): void;
			/**
			 * This is called when the user has performed a cursor movement in the extracted text view, when it is running in fullscreen mode. The default implementation hides the candidates view when a vertical movement happens, but only if the extracted text editor has a vertical scroll bar because its text doesn't fit. Re-implement this to provide whatever behavior you want.
			 * @param dx The amount of cursor movement in the x dimension.
			 * @param dy The amount of cursor movement in the y dimension.
			 */
			public onExtractedCursorMovement(dx: number, dy: number): void;
			/**
			 * This is called when the user has selected a context menu item from the extracted text view, when running in fullscreen mode. The default implementation sends this action to the current InputConnection's InputConnection#performContextMenuAction(int), for it to be processed in underlying "real" editor. Re-implement this to provide whatever behavior you want.
			 */
			public onExtractTextContextMenuItem(id: number): boolean;
			/**
			 * Return text that can be used as a button label for the given EditorInfo#imeOptions EditorInfo.imeOptions. Returns null if there is no action requested. Note that there is no guarantee that the returned text will be relatively short, so you probably do not want to use it as text on a soft keyboard key label. 
			 * @param imeOptions The value from @link EditorInfo#imeOptions EditorInfo.imeOptions}.
			 */
			public getTextForImeAction(imeOptions: number): string;
			/**
			 * Called when the fullscreen-mode extracting editor info has changed, to determine whether the extracting (extract text and candidates) portion of the UI should be shown. The standard implementation hides or shows the extract area depending on whether it makes sense for the current editor. In particular, a InputType#TYPE_NULL input type or EditorInfo#IME_FLAG_NO_EXTRACT_UI flag will turn off the extract area since there is no text to be shown.
			 */
			public onUpdateExtractingVisibility(ei: android.view.inputmethod.EditorInfo): void;
			/**
			 * Called when the fullscreen-mode extracting editor info has changed, to update the state of its UI such as the action buttons shown. You do not need to deal with this if you are using the standard full screen extract UI. If replacing it, you will need to re-implement this to put the appropriate action button in your own UI and handle it, and perform any other changes. 
			 */
			public onUpdateExtractingViews(ei: android.view.inputmethod.EditorInfo): void;
			/**
			 * This is called when, while currently displayed in extract mode, the current input target changes. The default implementation will auto-hide the IME if the new target is not a full editor, since this can be a confusing experience for the user.
			 */
			public onExtractingInputChanged(ei: android.view.inputmethod.EditorInfo): void;
			startExtractingText(inputChanged: boolean): void;
			/**
			 * Called when the subtype was changed.
			 * @param newSubtype the subtype which is being changed to.
			 */
			protected onCurrentInputMethodSubtypeChanged(newSubtype: android.view.inputmethod.InputMethodSubtype): void;
			/**
			 * Performs a dump of the InputMethodService's internal state. Override to add your own information to the dump.
			 */
			protected dump(fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: native.Array<string>): void;
		}
		export module InputMethodService {
			/**
			 * Information about where interesting parts of the input method UI appear.
			 */
			export class Insets extends java.lang.Object {
				constructor();
				/**
				 * This is the top part of the UI that is the main content. It is used to determine the basic space needed, to resize/pan the application behind. It is assumed that this inset does not change very much, since any change will cause a full resize/pan of the application behind. This value is relative to the top edge of the input method window.
				 */
				contentTopInsets: number;
				/**
				 * This is the top part of the UI that is visibly covering the application behind it. This provides finer-grained control over visibility, allowing you to change it relatively frequently (such as hiding or showing candidates) without disrupting the underlying UI too much. For example, this will never resize the application UI, will only pan if needed to make the current focus visible, and will not aggressively move the pan position when this changes unless needed to make the focus visible. This value is relative to the top edge of the input method window.
				 */
				visibleTopInsets: number;
				/**
				 * This is the region of the UI that is touchable. It is used when #touchableInsets is set to #TOUCHABLE_INSETS_REGION. The region should be specified relative to the origin of the window frame.
				 */
				touchableRegion: android.graphics.Region;
				/**
				 * Option for #touchableInsets: the entire window frame can be touched.
				 */
				static TOUCHABLE_INSETS_FRAME: number;
				/**
				 * Option for #touchableInsets: the area inside of the content insets can be touched.
				 */
				static TOUCHABLE_INSETS_CONTENT: number;
				/**
				 * Option for #touchableInsets: the area inside of the visible insets can be touched.
				 */
				static TOUCHABLE_INSETS_VISIBLE: number;
				/**
				 * Option for #touchableInsets: the region specified by #touchableRegion can be touched.
				 */
				static TOUCHABLE_INSETS_REGION: number;
				/**
				 * Determine which area of the window is touchable by the user. May be one of: #TOUCHABLE_INSETS_FRAME, #TOUCHABLE_INSETS_CONTENT, #TOUCHABLE_INSETS_VISIBLE, or #TOUCHABLE_INSETS_REGION.
				 */
				touchableInsets: number;
				static class: java.lang.Class<android.inputmethodservice.InputMethodService.Insets>;
			}
			/**
			 * Concrete implementation of AbstractInputMethodService.AbstractInputMethodSessionImpl that provides all of the standard behavior for an input method session.
			 */
			export class InputMethodSessionImpl extends android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl {
				static class: java.lang.Class<android.inputmethodservice.InputMethodService.InputMethodSessionImpl>;
				public finishInput(): void;
				/**
				 * Call InputMethodService#onDisplayCompletions InputMethodService.onDisplayCompletions().
				 */
				public displayCompletions(completions: native.Array<android.view.inputmethod.CompletionInfo>): void;
				/**
				 * Call InputMethodService#onUpdateExtractedText InputMethodService.onUpdateExtractedText().
				 */
				public updateExtractedText(token: number, text: android.view.inputmethod.ExtractedText): void;
				/**
				 * Call InputMethodService#onUpdateSelection InputMethodService.onUpdateSelection().
				 */
				public updateSelection(oldSelStart: number, oldSelEnd: number, newSelStart: number, newSelEnd: number, candidatesStart: number, candidatesEnd: number): void;
				public viewClicked(focusChanged: boolean): void;
				/**
				 * Call InputMethodService#onUpdateCursor InputMethodService.onUpdateCursor().
				 */
				public updateCursor(newCursor: android.graphics.Rect): void;
				/**
				 * Call InputMethodService#onAppPrivateCommand InputMethodService.onAppPrivateCommand().
				 */
				public appPrivateCommand(action: string, data: android.os.Bundle): void;
				public toggleSoftInput(showFlags: number, hideFlags: number): void;
			}
			/**
			 * Concrete implementation of AbstractInputMethodService.AbstractInputMethodImpl that provides all of the standard behavior for an input method.
			 */
			export class InputMethodImpl extends android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl {
				static class: java.lang.Class<android.inputmethodservice.InputMethodService.InputMethodImpl>;
				/**
				 * Take care of attaching the given window token provided by the system.
				 */
				public attachToken(token: android.os.IIBinder): void;
				/**
				 * Handle a new input binding, calling InputMethodService#onBindInput InputMethodService.onBindInput() when done.
				 */
				public bindInput(binding: android.view.inputmethod.InputBinding): void;
				/**
				 * Clear the current input binding.
				 */
				public unbindInput(): void;
				public startInput(ic: android.view.inputmethod.IInputConnection, attribute: android.view.inputmethod.EditorInfo): void;
				public restartInput(ic: android.view.inputmethod.IInputConnection, attribute: android.view.inputmethod.EditorInfo): void;
				/**
				 * Handle a request by the system to hide the soft input area.
				 */
				public hideSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				/**
				 * Handle a request by the system to show the soft input area.
				 */
				public showSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				public changeInputMethodSubtype(subtype: android.view.inputmethod.InputMethodSubtype): void;
			}
		}
		/**
		 * AbstractInputMethodService provides a abstract base class for input methods. Normal input method implementations will not derive from this directly, instead building on top of InputMethodService or another more complete base class. Be sure to read InputMethod for more information on the basics of writing input methods. 
		 */
		export class AbstractInputMethodService extends android.app.Service implements android.view.KeyEvent.ICallback {
			constructor();
			static class: java.lang.Class<android.inputmethodservice.AbstractInputMethodService>;
			AbstractInputMethodImpl: {
	new (): android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl;
};
			AbstractInputMethodSessionImpl: {
	new (): android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl;
};
			/**
			 * Return the global KeyEvent.DispatcherState KeyEvent.DispatcherState for used for processing events from the target application. Normally you will not need to use this directly, but just use the standard high-level event callbacks like #onKeyDown.
			 */
			public getKeyDispatcherState(): android.view.KeyEvent.DispatcherState;
			/**
			 * Called by the framework during initialization, when the InputMethod interface for this service needs to be created.
			 */
			public onCreateInputMethodInterface(): android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl;
			/**
			 * Called by the framework when a new InputMethodSession interface is needed for a new client of the input method.
			 */
			public onCreateInputMethodSessionInterface(): android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl;
			/**
			 * Implement this to handle android.os.Binder#dump Binder.dump() calls on your input method.
			 */
			protected dump(fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: native.Array<string>): void;
			public onBind(intent: android.content.Intent): android.os.IIBinder;
			/**
			 * Implement this to handle trackball events on your input method.
			 * @param event The motion event being received.
			 */
			public onTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Implement this to handle generic motion events on your input method.
			 * @param event The motion event being received.
			 */
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Called when a key down event has occurred. If you return true, you can first call KeyEvent#startTracking() KeyEvent.startTracking() to have the framework track the event through its #onKeyUp(int, KeyEvent) and also call your #onKeyLongPress(int, KeyEvent) if it occurs. 
			 * @param keyCode The value in event.getKeyCode().
			 * @param event Description of the key event.
			 */
			onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when a long press has occurred. If you return true, the final key up will have KeyEvent#FLAG_CANCELED and KeyEvent#FLAG_CANCELED_LONG_PRESS set. Note that in order to receive this callback, someone in the event change <em>must</em> return true from #onKeyDown <em>and</em> call KeyEvent#startTracking() on the event. 
			 * @param keyCode The value in event.getKeyCode().
			 * @param event Description of the key event.
			 */
			onKeyLongPress(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when a key up event has occurred. 
			 * @param keyCode The value in event.getKeyCode().
			 * @param event Description of the key event.
			 */
			onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when multiple down/up pairs of the same key have occurred in a row. 
			 * @param keyCode The value in event.getKeyCode().
			 * @param count Number of pairs as returned by event.getRepeatCount().
			 * @param event Description of the key event.
			 */
			onKeyMultiple(keyCode: number, count: number, event: android.view.KeyEvent): boolean;
		}
		export module AbstractInputMethodService {
			/**
			 * Base class for derived classes to implement their InputMethod interface. This takes care of basic maintenance of the input method, but most behavior must be implemented in a derived class.
			 */
			export class AbstractInputMethodImpl extends java.lang.Object implements android.view.inputmethod.IInputMethod {
				static class: java.lang.Class<android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodImpl>;
				/**
				 * Instantiate a new client session for the input method, by calling back to AbstractInputMethodService#onCreateInputMethodSessionInterface() AbstractInputMethodService.onCreateInputMethodSessionInterface().
				 */
				public createSession(callback: android.view.inputmethod.InputMethod.ISessionCallback): void;
				/**
				 * Take care of enabling or disabling an existing session by calling its AbstractInputMethodSessionImpl#revokeSelf() AbstractInputMethodSessionImpl.setEnabled() method.
				 */
				public setSessionEnabled(session: android.view.inputmethod.IInputMethodSession, enabled: boolean): void;
				/**
				 * Take care of killing an existing session by calling its AbstractInputMethodSessionImpl#revokeSelf() AbstractInputMethodSessionImpl.revokeSelf() method.
				 */
				public revokeSession(session: android.view.inputmethod.IInputMethodSession): void;
				/**
				 * Called first thing after an input method is created, this supplies a unique token for the session it has with the system service. It is needed to identify itself with the service to validate its operations. This token <strong>must not</strong> be passed to applications, since it grants special priviledges that should not be given to applications. 
				 */
				attachToken(token: android.os.IIBinder): void;
				/**
				 * Bind a new application environment in to the input method, so that it can later start and stop input processing. Typically this method is called when this input method is enabled in an application for the first time. 
				 * @param binding Information about the application window that is binding
				 */
				bindInput(binding: android.view.inputmethod.InputBinding): void;
				/**
				 * Unbind an application environment, called when the information previously set by #bindInput is no longer valid for this input method. 
				 */
				unbindInput(): void;
				/**
				 * This method is called when the application starts to receive text and it is ready for this input method to process received events and send result text back to the application. 
				 * @param inputConnection Optional specific input connection for
				 * @param info Information about the text box (typically, an EditText)
				 */
				startInput(inputConnection: android.view.inputmethod.IInputConnection, info: android.view.inputmethod.EditorInfo): void;
				/**
				 * This method is called when the state of this input method needs to be reset. 
				 * @param inputConnection Optional specific input connection for
				 * @param attribute The attribute of the text box (typically, a EditText)
				 */
				restartInput(inputConnection: android.view.inputmethod.IInputConnection, attribute: android.view.inputmethod.EditorInfo): void;
				/**
				 * Request that any soft input part of the input method be shown to the user. 
				 * @param flags Provides additional information about the show request.
				 * @param resultReceiver The client requesting the show may wish to
				 */
				showSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				/**
				 * Request that any soft input part of the input method be hidden from the user.
				 * @param flags Provides additional information about the show request.
				 * @param resultReceiver The client requesting the show may wish to
				 */
				hideSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				/**
				 * Notify that the input method subtype is being changed in the same input method.
				 * @param subtype New subtype of the notified input method
				 */
				changeInputMethodSubtype(subtype: android.view.inputmethod.InputMethodSubtype): void;
			}
			/**
			 * Base class for derived classes to implement their InputMethodSession interface. This takes care of basic maintenance of the session, but most behavior must be implemented in a derived class.
			 */
			export class AbstractInputMethodSessionImpl extends java.lang.Object implements android.view.inputmethod.IInputMethodSession {
				static class: java.lang.Class<android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl>;
				/**
				 * Check whether this session has been enabled by the system. If not enabled, you should not execute any calls on to it.
				 */
				public isEnabled(): boolean;
				/**
				 * Check whether this session has been revoked by the system. Revoked session is also always disabled, so there is generally no need to explicitly check for this.
				 */
				public isRevoked(): boolean;
				/**
				 * Change the enabled state of the session. This only works if the session has not been revoked.
				 */
				public setEnabled(enabled: boolean): void;
				/**
				 * Revoke the session from the client. This disabled the session, and prevents it from ever being enabled again.
				 */
				public revokeSelf(): void;
				/**
				 * Take care of dispatching incoming key events to the appropriate callbacks on the service, and tell the client when this is done.
				 */
				public dispatchKeyEvent(seq: number, event: android.view.KeyEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * Take care of dispatching incoming trackball events to the appropriate callbacks on the service, and tell the client when this is done.
				 */
				public dispatchTrackballEvent(seq: number, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * Take care of dispatching incoming generic motion events to the appropriate callbacks on the service, and tell the client when this is done.
				 */
				public dispatchGenericMotionEvent(seq: number, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * This method is called when the application would like to stop receiving text input.
				 */
				finishInput(): void;
				/**
				 * This method is called when the selection or cursor in the current target input field has changed. 
				 * @param oldSelStart The previous text offset of the cursor selection
				 * @param oldSelEnd The previous text offset of the cursor selection
				 * @param newSelStart The new text offset of the cursor selection
				 * @param newSelEnd The new text offset of the cursor selection
				 * @param candidatesStart The text offset of the current candidate
				 * @param candidatesEnd The text offset of the current candidate
				 */
				updateSelection(oldSelStart: number, oldSelEnd: number, newSelStart: number, newSelEnd: number, candidatesStart: number, candidatesEnd: number): void;
				/**
				 * This method is called when the user tapped a text view. IMEs can't rely on this method being called because this was not part of the original IME protocol, so applications with custom text editing written before this method appeared will not call to inform the IME of this interaction.
				 * @param focusChanged true if the user changed the focused view by this click.
				 */
				viewClicked(focusChanged: boolean): void;
				/**
				 * This method is called when cursor location of the target input field has changed within its window. This is not normally called, but will only be reported if requested by the input method. 
				 * @param newCursor The rectangle of the cursor currently being shown in
				 */
				updateCursor(newCursor: android.graphics.Rect): void;
				/**
				 * Called by a text editor that performs auto completion, to tell the input method about the completions it has available. This can be used by the input method to display them to the user to select the text to be inserted. 
				 * @param completions Array of text completions that are available, starting with
				 */
				displayCompletions(completions: native.Array<android.view.inputmethod.CompletionInfo>): void;
				/**
				 * Called by a text editor to report its new extracted text when its contents change. This will only be called if the input method calls InputConnection#getExtractedText(ExtractedTextRequest, int) InputConnection.getExtractedText() with the option to report updates. 
				 * @param token The input method supplied token for identifying its request.
				 * @param text The new extracted text.
				 */
				updateExtractedText(token: number, text: android.view.inputmethod.ExtractedText): void;
				/**
				 * Process a private command sent from the application to the input method. This can be used to provide domain-specific features that are only known between certain input methods and their clients. 
				 * @param action Name of the command to be performed. This <em>must</em>
				 * @param data Any data to include with the command.
				 */
				appPrivateCommand(action: string, data: android.os.Bundle): void;
				/**
				 * Toggle the soft input window. Applications can toggle the state of the soft input window.
				 * @param showFlags Provides additional operating flags. May be
				 * @param hideFlags Provides additional operating flags. May be
				 */
				toggleSoftInput(showFlags: number, hideFlags: number): void;
			}
		}
		export class IInputMethodSessionWrapper {
			constructor(context: android.content.Context, inputMethodSession: android.view.inputmethod.IInputMethodSession);
			static class: java.lang.Class<android.inputmethodservice.IInputMethodSessionWrapper>;
			public getInternalInputMethodSession(): android.view.inputmethod.IInputMethodSession;
			public executeMessage(msg: android.os.Message): void;
			public finishInput(): void;
			public displayCompletions(completions: native.Array<android.view.inputmethod.CompletionInfo>): void;
			public updateExtractedText(token: number, text: android.view.inputmethod.ExtractedText): void;
			public updateSelection(oldSelStart: number, oldSelEnd: number, newSelStart: number, newSelEnd: number, candidatesStart: number, candidatesEnd: number): void;
			public viewClicked(focusChanged: boolean): void;
			public updateCursor(newCursor: android.graphics.Rect): void;
			public appPrivateCommand(action: string, data: android.os.Bundle): void;
			public toggleSoftInput(showFlags: number, hideFlags: number): void;
			public finishSession(): void;
		}
		export module IInputMethodSessionWrapper {
			export class InputMethodEventCallbackWrapper extends java.lang.Object implements android.view.inputmethod.InputMethodSession.IEventCallback {
				static class: java.lang.Class<android.inputmethodservice.IInputMethodSessionWrapper.InputMethodEventCallbackWrapper>;
				public finishedEvent(seq: number, handled: boolean): void;
			}
		}
		/**
		 * A view that renders a virtual Keyboard. It handles rendering of keys and detecting key presses and touch movements. ref android.R.styleable#KeyboardView_keyBackground ref android.R.styleable#KeyboardView_keyPreviewLayout ref android.R.styleable#KeyboardView_keyPreviewOffset ref android.R.styleable#KeyboardView_labelTextSize ref android.R.styleable#KeyboardView_keyTextSize ref android.R.styleable#KeyboardView_keyTextColor ref android.R.styleable#KeyboardView_verticalCorrection ref android.R.styleable#KeyboardView_popupLayout
		 */
		export class KeyboardView extends android.view.View implements android.view.View.IOnClickListener {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.inputmethodservice.KeyboardView>;
			public setOnKeyboardActionListener(listener: android.inputmethodservice.KeyboardView.IOnKeyboardActionListener): void;
			/**
			 * Returns the OnKeyboardActionListener object.
			 */
			protected getOnKeyboardActionListener(): android.inputmethodservice.KeyboardView.IOnKeyboardActionListener;
			/**
			 * Attaches a keyboard to this view. The keyboard can be switched at any time and the view will re-layout itself to accommodate the keyboard. Keyboard #getKeyboard()
			 * @param keyboard the keyboard to display in this view
			 */
			public setKeyboard(keyboard: android.inputmethodservice.Keyboard): void;
			/**
			 * Returns the current keyboard being displayed by this view.
			 */
			public getKeyboard(): android.inputmethodservice.Keyboard;
			/**
			 * Sets the state of the shift key of the keyboard, if any.
			 * @param shifted whether or not to enable the state of the shift key
			 */
			public setShifted(shifted: boolean): boolean;
			/**
			 * Returns the state of the shift key of the keyboard, if any.
			 */
			public isShifted(): boolean;
			/**
			 * Enables or disables the key feedback popup. This is a popup that shows a magnified version of the depressed key. By default the preview is enabled.
			 * @param previewEnabled whether or not to enable the key feedback popup
			 */
			public setPreviewEnabled(previewEnabled: boolean): void;
			/**
			 * Returns the enabled state of the key feedback popup.
			 */
			public isPreviewEnabled(): boolean;
			public setVerticalCorrection(verticalOffset: number): void;
			public setPopupParent(v: android.view.View): void;
			public setPopupOffset(x: number, y: number): void;
			/**
			 * When enabled, calls to OnKeyboardActionListener#onKey will include key codes for adjacent keys. When disabled, only the primary key code will be reported.
			 * @param enabled whether or not the proximity correction is enabled
			 */
			public setProximityCorrectionEnabled(enabled: boolean): void;
			/**
			 * Returns true if proximity correction is enabled.
			 */
			public isProximityCorrectionEnabled(): boolean;
			public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			public onDraw(canvas: android.graphics.Canvas): void;
			/**
			 * Requests a redraw of the entire keyboard. Calling #invalidate is not sufficient because the keyboard renders the keys to an off-screen buffer and an invalidate() only draws the cached buffer. #invalidateKey(int)
			 */
			public invalidateAllKeys(): void;
			/**
			 * Invalidates a key so that it will be redrawn on the next repaint. Use this method if only one key is changing it's content. Any changes that affect the position or size of the key may not be honored.
			 * @param keyIndex the index of the key in the attached {@link Keyboard}.
			 */
			public invalidateKey(keyIndex: number): void;
			/**
			 * Called when a key is long pressed. By default this will open any popup keyboard associated with this key through the attributes popupLayout and popupCharacters.
			 * @param popupKey the key that was long pressed
			 */
			protected onLongPress(popupKey: android.inputmethodservice.Keyboard.Key): boolean;
			public onHoverEvent(event: android.view.MotionEvent): boolean;
			public onTouchEvent(me: android.view.MotionEvent): boolean;
			protected swipeRight(): void;
			protected swipeLeft(): void;
			protected swipeUp(): void;
			protected swipeDown(): void;
			public closing(): void;
			public onDetachedFromWindow(): void;
			public handleBack(): boolean;
			/**
			 * Called when a view has been clicked.
			 * @param v The view that was clicked.
			 */
			onClick(v: android.view.View): void;
		}
		export module KeyboardView {
			/**
			 * Listener for virtual keyboard events.
			 */
			export class OnKeyboardActionListener implements android.inputmethodservice.KeyboardView.IOnKeyboardActionListener {
				constructor(implementation: android.inputmethodservice.KeyboardView.IOnKeyboardActionListener);
				/**
				 * Called when the user presses a key. This is sent before the #onKey is called. For keys that repeat, this is only called once.
				 * @param primaryCode the unicode of the key being pressed. If the touch is not on a valid
				 */
				public onPress(primaryCode: number): void;
				/**
				 * Called when the user releases a key. This is sent after the #onKey is called. For keys that repeat, this is only called once.
				 * @param primaryCode the code of the key that was released
				 */
				public onRelease(primaryCode: number): void;
				/**
				 * Send a key press to the listener.
				 * @param primaryCode this is the key that was pressed
				 * @param keyCodes the codes for all the possible alternative keys
				 */
				public onKey(primaryCode: number, keyCodes: native.Array<number>): void;
				/**
				 * Sends a sequence of characters to the listener.
				 * @param text the sequence of characters to be displayed.
				 */
				public onText(text: string): void;
				/**
				 * Called when the user quickly moves the finger from right to left.
				 */
				public swipeLeft(): void;
				/**
				 * Called when the user quickly moves the finger from left to right.
				 */
				public swipeRight(): void;
				/**
				 * Called when the user quickly moves the finger from up to down.
				 */
				public swipeDown(): void;
				/**
				 * Called when the user quickly moves the finger from down to up.
				 */
				public swipeUp(): void;
			}
			export class SwipeTracker extends java.lang.Object {
				static class: java.lang.Class<android.inputmethodservice.KeyboardView.SwipeTracker>;
				public clear(): void;
				public addMovement(ev: android.view.MotionEvent): void;
				public computeCurrentVelocity(units: number): void;
				public computeCurrentVelocity(units: number, maxVelocity: number): void;
				public getXVelocity(): number;
				public getYVelocity(): number;
			}
			/**
			 * Listener for virtual keyboard events.
			 */
			interface IOnKeyboardActionListener {
				/**
				 * Called when the user presses a key. This is sent before the #onKey is called. For keys that repeat, this is only called once.
				 * @param primaryCode the unicode of the key being pressed. If the touch is not on a valid
				 */
				onPress(primaryCode: number): void;
				/**
				 * Called when the user releases a key. This is sent after the #onKey is called. For keys that repeat, this is only called once.
				 * @param primaryCode the code of the key that was released
				 */
				onRelease(primaryCode: number): void;
				/**
				 * Send a key press to the listener.
				 * @param primaryCode this is the key that was pressed
				 * @param keyCodes the codes for all the possible alternative keys
				 */
				onKey(primaryCode: number, keyCodes: native.Array<number>): void;
				/**
				 * Sends a sequence of characters to the listener.
				 * @param text the sequence of characters to be displayed.
				 */
				onText(text: string): void;
				/**
				 * Called when the user quickly moves the finger from right to left.
				 */
				swipeLeft(): void;
				/**
				 * Called when the user quickly moves the finger from left to right.
				 */
				swipeRight(): void;
				/**
				 * Called when the user quickly moves the finger from up to down.
				 */
				swipeDown(): void;
				/**
				 * Called when the user quickly moves the finger from down to up.
				 */
				swipeUp(): void;
			}
		}
		/**
		 * Implements the internal IInputMethod interface to convert incoming calls on to it back to calls on the public InputMethod interface, scheduling them on the main thread of the process.
		 */
		export class IInputMethodWrapper {
			constructor(context: android.inputmethodservice.AbstractInputMethodService, inputMethod: android.view.inputmethod.IInputMethod);
			static class: java.lang.Class<android.inputmethodservice.IInputMethodWrapper>;
			public getInternalInputMethod(): android.view.inputmethod.IInputMethod;
			public executeMessage(msg: android.os.Message): void;
			protected dump(fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: native.Array<string>): void;
			public attachToken(token: android.os.IIBinder): void;
			public bindInput(binding: android.view.inputmethod.InputBinding): void;
			public unbindInput(): void;
			public showSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
			public hideSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
			public changeInputMethodSubtype(subtype: android.view.inputmethod.InputMethodSubtype): void;
		}
		export module IInputMethodWrapper {
			export class InputMethodSessionCallbackWrapper extends java.lang.Object implements android.view.inputmethod.InputMethod.ISessionCallback {
				static class: java.lang.Class<android.inputmethodservice.IInputMethodWrapper.InputMethodSessionCallbackWrapper>;
				public sessionCreated(session: android.view.inputmethod.IInputMethodSession): void;
			}
			export class Notifier extends java.lang.Object {
				static class: java.lang.Class<android.inputmethodservice.IInputMethodWrapper.Notifier>;
			}
		}
	}
	export module content {
		/**
		 * Contains the result of the application of a ContentProviderOperation. It is guaranteed to have exactly one of #uri or #count set.
		 */
		export class ContentProviderResult extends java.lang.Object implements android.os.IParcelable {
			constructor(uri: android.net.Uri);
			constructor(count: number);
			constructor(source: android.os.Parcel);
			uri: android.net.Uri;
			count: java.lang.Integer;
			static CREATOR: android.os.Parcelable.ICreator<android.content.ContentProviderResult>;
			static class: java.lang.Class<android.content.ContentProviderResult>;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public describeContents(): number;
			public toString(): string;
		}
		/**
		 * A representation of a item using ContentValues. It contains one top level ContentValue plus a collection of Uri, ContentValues tuples as subvalues. One example of its use is in Contacts, where the top level ContentValue contains the columns from the RawContacts table and the subvalues contain a ContentValues object for each row from the Data table that corresponds to that RawContact. The uri refers to the Data table uri for each row.
		 */
		export class Entity extends java.lang.Object {
			constructor(values: android.content.ContentValues);
			static class: java.lang.Class<android.content.Entity>;
			public getEntityValues(): android.content.ContentValues;
			public getSubValues(): java.util.ArrayList<android.content.Entity.NamedContentValues>;
			public addSubValue(uri: android.net.Uri, values: android.content.ContentValues): void;
			public toString(): string;
		}
		export module Entity {
			export class NamedContentValues extends java.lang.Object {
				constructor(uri: android.net.Uri, values: android.content.ContentValues);
				uri: android.net.Uri;
				values: android.content.ContentValues;
				static class: java.lang.Class<android.content.Entity.NamedContentValues>;
			}
		}
		/**
		 * Interface for monitoring the state of an application service. See android.app.Service and Context#bindService Context.bindService() for more information.
		 */
		export class ServiceConnection implements android.content.IServiceConnection {
			constructor(implementation: android.content.IServiceConnection);
			/**
			 * Called when a connection to the Service has been established, with the android.os.IBinder of the communication channel to the Service.
			 * @param name The concrete component name of the service that has
			 * @param service The IBinder of the Service's communication channel,
			 */
			public onServiceConnected(name: android.content.ComponentName, service: android.os.IIBinder): void;
			/**
			 * Called when a connection to the Service has been lost. This typically happens when the process hosting the service has crashed or been killed. This does <em>not</em> remove the ServiceConnection itself -- this binding to the service will remain active, and you will receive a call to #onServiceConnected when the Service is next running.
			 * @param name The concrete component name of the service whose
			 */
			public onServiceDisconnected(name: android.content.ComponentName): void;
		}
		/**
		 * An abstract implementation of a SyncAdapter that spawns a thread to invoke a sync operation. If a sync operation is already in progress when a startSync() request is received then an error will be returned to the new request and the existing request will be allowed to continue. When a startSync() is received and there is no sync operation in progress then a thread will be started to run the operation and #onPerformSync will be invoked on that thread. If a cancelSync() is received that matches an existing sync operation then the thread that is running that sync operation will be interrupted, which will indicate to the thread that the sync has been canceled.
		 */
		export class AbstractThreadedSyncAdapter extends java.lang.Object {
			/**
			 * Creates an AbstractThreadedSyncAdapter.
			 * @param context the {@link android.content.Context} that this is running within.
			 * @param autoInitialize if true then sync requests that have
			 */
			constructor(context: android.content.Context, autoInitialize: boolean);
			/**
			 * Creates an AbstractThreadedSyncAdapter.
			 * @param context the {@link android.content.Context} that this is running within.
			 * @param autoInitialize if true then sync requests that have
			 * @param allowParallelSyncs if true then allow syncs for different accounts to run
			 */
			constructor(context: android.content.Context, autoInitialize: boolean, allowParallelSyncs: boolean);
			/**
			 * Kernel event log tag. Also listed in data/etc/event-log-tags. Private constant. May go away in the next release.
			 */
			static LOG_SYNC_DETAILS: number;
			static class: java.lang.Class<android.content.AbstractThreadedSyncAdapter>;
			public getContext(): android.content.Context;
			public getSyncAdapterBinder(): android.os.IIBinder;
			/**
			 * Perform a sync for this account. SyncAdapter-specific parameters may be specified in extras, which is guaranteed to not be null. Invocations of this method are guaranteed to be serialized.
			 * @param account the account that should be synced
			 * @param extras SyncAdapter-specific parameters
			 * @param authority the authority of this sync request
			 * @param provider a ContentProviderClient that points to the ContentProvider for this
			 * @param syncResult SyncAdapter-specific parameters
			 */
			public onPerformSync(account: android.accounts.Account, extras: android.os.Bundle, authority: string, provider: android.content.ContentProviderClient, syncResult: android.content.SyncResult): void;
			/**
			 * Indicates that a sync operation has been canceled. This will be invoked on a separate thread than the sync thread and so you must consider the multi-threaded implications of the work that you do in this method.
			 */
			public onSyncCanceled(): void;
			/**
			 * Indicates that a sync operation has been canceled. This will be invoked on a separate thread than the sync thread and so you must consider the multi-threaded implications of the work that you do in this method.
			 * @param thread the Thread of the sync that is to be canceled.
			 */
			public onSyncCanceled(thread: java.lang.Thread): void;
		}
		export module AbstractThreadedSyncAdapter {
			export class ISyncAdapterImpl {
				static class: java.lang.Class<android.content.AbstractThreadedSyncAdapter.ISyncAdapterImpl>;
				public initialize(account: android.accounts.Account, authority: string): void;
			}
			/**
			 * The thread that invokes AbstractThreadedSyncAdapter#onPerformSync. It also acquires the provider for this sync before calling onPerformSync and releases it afterwards. Cancel this thread in order to cancel the sync.
			 */
			export class SyncThread extends java.lang.Thread {
				static class: java.lang.Class<android.content.AbstractThreadedSyncAdapter.SyncThread>;
				public run(): void;
			}
		}
		/**
		 * Tests reading a MemoryFile-based AssestFile from a ContentProvider running in a different process.
		 */
		export class MemoryFileProviderTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.MemoryFileProviderTest>;
			public testRead(): void;
			public testClose(): void;
			public testFile(): void;
		}
		/**
		 * Caches the contents of a cursor into a Map of String->ContentValues and optionally keeps the cache fresh by registering for updates on the content backing the cursor. The column of the database that is to be used as the key of the map is user-configurable, and the ContentValues contains all columns other than the one that is designated the key.
		 */
		export class ContentQueryMap extends java.util.Observable {
			/**
			 * Creates a ContentQueryMap that caches the content backing the cursor
			 * @param cursor the cursor whose contents should be cached
			 * @param columnNameOfKey the column that is to be used as the key of the values map
			 * @param keepUpdated true if the cursor's ContentProvider should be monitored for changes and
			 * @param handlerForUpdateNotifications the Handler that should be used to receive
			 */
			constructor(cursor: android.database.ICursor, columnNameOfKey: string, keepUpdated: boolean, handlerForUpdateNotifications: android.os.Handler);
			static class: java.lang.Class<android.content.ContentQueryMap>;
			/**
			 * Change whether or not the ContentQueryMap will register with the cursor's ContentProvider for change notifications. If you use a ContentQueryMap in an activity you should call this with false in onPause(), which means you need to call it with true in onResume() if want it to be kept updated.
			 * @param keepUpdated if true the ContentQueryMap should be registered with the cursor's
			 */
			public setKeepUpdated(keepUpdated: boolean): void;
			/**
			 * Access the ContentValues for the row specified by rowName
			 * @param rowName which row to read
			 */
			public getValues(rowName: string): android.content.ContentValues;
			/**
			 * Requeries the cursor and reads the contents into the cache
			 */
			public requery(): void;
			public getRows(): java.util.IMap<string, android.content.ContentValues>;
			public close(): void;
			protected finalize(): void;
		}
		/**
		 * Information about the sync operation that is currently underway.
		 */
		export class SyncInfo extends java.lang.Object implements android.os.IParcelable {
			/**
			 * The Account that is currently being synced.
			 */
			account: android.accounts.Account;
			/**
			 * The authority of the provider that is currently being synced.
			 */
			authority: string;
			/**
			 * The start time of the current sync operation in milliseconds since boot. This is represented in elapsed real time. See android.os.SystemClock#elapsedRealtime().
			 */
			startTime: number;
			static class: java.lang.Class<android.content.SyncInfo>;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Abstract Loader that provides an AsyncTask to do the work. See Loader and android.app.LoaderManager for more details.
		 */
		export class AsyncTaskLoader<D> extends android.content.Loader<D> {
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.content.AsyncTaskLoader<any>>;
			/**
			 * Set amount to throttle updates by. This is the minimum time from when the last #loadInBackground() call has completed until a new load is scheduled.
			 * @param delayMS Amount of delay, in milliseconds.
			 */
			public setUpdateThrottle(delayMS: number): void;
			protected onForceLoad(): void;
			protected onCancelLoad(): boolean;
			/**
			 * Called if the task was canceled before it was completed. Gives the class a chance to clean up post-cancellation and to properly dispose of the result.
			 * @param data The value that was returned by {@link #loadInBackground}, or null
			 */
			public onCanceled(data: D): void;
			executePendingTask(): void;
			dispatchOnCancelled(task: android.content.AsyncTaskLoader.LoadTask, data: D): void;
			dispatchOnLoadComplete(task: android.content.AsyncTaskLoader.LoadTask, data: D): void;
			/**
			 * Called on a worker thread to perform the actual load and to return the result of the load operation.
			 */
			public loadInBackground(): D;
			/**
			 * Calls #loadInBackground().
			 */
			protected onLoadInBackground(): D;
			/**
			 * Called on the main thread to abort a load in progress.
			 */
			public cancelLoadInBackground(): void;
			/**
			 * Returns true if the current invocation of #loadInBackground is being canceled.
			 */
			public isLoadInBackgroundCanceled(): boolean;
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
		}
		export module AsyncTaskLoader {
			export class LoadTask extends android.os.AsyncTask<java.lang.Void, java.lang.Void, any> implements java.lang.IRunnable {
				static class: java.lang.Class<android.content.AsyncTaskLoader.LoadTask>;
				protected doInBackground(params: native.Array<java.lang.Void>): any;
				protected onPostExecute(data: any): void;
				protected onCancelled(data: any): void;
				public run(): void;
				public waitForLoader(): void;
				protected onCancelled(): void;
			}
		}
		export class SyncStorageEngineTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.SyncStorageEngineTest>;
			/**
			 * Test that we handle the case of a history row being old enough to purge before the correcponding sync is finished. This can happen if the clock changes while we are syncing.
			 */
			public testPurgeActiveSync(): void;
			/**
			 * Test that we can create, remove and retrieve periodic syncs
			 */
			public testPeriodics(): void;
			public testAuthorityPersistence(): void;
			public testAuthorityParsing(): void;
			public testListenForTicklesParsing(): void;
			public testAuthorityRenaming(): void;
			public testSyncableMigration(): void;
		}
		/**
		 * This class is used to communicate the results of a sync operation to the SyncManager. Based on the values here the SyncManager will determine the disposition of the sync and whether or not a new sync operation needs to be scheduled in the future.
		 */
		export class SyncResult extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create a "clean" SyncResult. If this is returned without any changes then the SyncManager will consider the sync to have completed successfully. The various fields can be set by the SyncAdapter in order to give the SyncManager more information as to the disposition of the sync.
			 */
			constructor();
			/**
			 * Used to indicate that the SyncAdapter is already performing a sync operation, though not necessarily for the requested account and authority and that it wasn't able to process this request. The SyncManager will reschedule the request to run later.
			 */
			syncAlreadyInProgress: boolean;
			/**
			 * Used to indicate that the SyncAdapter determined that it would need to issue too many delete operations to the server in order to satisfy the request (as defined by the SyncAdapter). The SyncManager will record that the sync request failed and will cause a System Notification to be created asking the user what they want to do about this. It will give the user a chance to choose between (1) go ahead even with those deletes, (2) revert the deletes, or (3) take no action. If the user decides (1) or (2) the SyncManager will issue another sync request with either ContentResolver#SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS or ContentResolver#SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS set in the extras. It is then up to the SyncAdapter to decide how to honor that request.
			 */
			tooManyDeletions: boolean;
			/**
			 * Used to indicate that the SyncAdapter experienced a hard error due to trying the same operation too many times (as defined by the SyncAdapter). The SyncManager will record that the sync request failed and it will not reschedule the request.
			 */
			tooManyRetries: boolean;
			/**
			 * Used to indicate that the SyncAdapter experienced a hard error due to an error it received from interacting with the storage later. The SyncManager will record that the sync request failed and it will not reschedule the request.
			 */
			databaseError: boolean;
			/**
			 * If set the SyncManager will request an immediate sync with the same Account and authority (but empty extras Bundle) as was used in the sync request.
			 */
			fullSyncRequested: boolean;
			/**
			 * This field is ignored by the SyncManager.
			 */
			partialSyncUnavailable: boolean;
			/**
			 * This field is ignored by the SyncManager.
			 */
			moreRecordsToGet: boolean;
			/**
			 * Used to indicate to the SyncManager that future sync requests that match the request's Account and authority should be delayed at least this many seconds.
			 */
			delayUntil: number;
			/**
			 * Used to hold extras statistics about the sync operation. Some of these indicate that the sync request resulted in a hard or soft error, others are for purely informational purposes.
			 */
			stats: android.content.SyncStats;
			/**
			 * This instance of a SyncResult is returned by the SyncAdapter in response to a sync request when a sync is already underway. The SyncManager will reschedule the sync request to try again later.
			 */
			static ALREADY_IN_PROGRESS: android.content.SyncResult;
			static CREATOR: android.os.Parcelable.ICreator<android.content.SyncResult>;
			static class: java.lang.Class<android.content.SyncResult>;
			/**
			 * Convenience method for determining if the SyncResult indicates that a hard error occurred. See #SyncResult() for an explanation of what the SyncManager does when it sees a hard error.
			 */
			public hasHardError(): boolean;
			/**
			 * Convenience method for determining if the SyncResult indicates that a soft error occurred. See #SyncResult() for an explanation of what the SyncManager does when it sees a soft error.
			 */
			public hasSoftError(): boolean;
			/**
			 * A convenience method for determining of the SyncResult indicates that an error occurred.
			 */
			public hasError(): boolean;
			public madeSomeProgress(): boolean;
			/**
			 * Clears the SyncResult to a clean state. Throws an UnsupportedOperationException if this is called when #syncAlreadyInProgress is set.
			 */
			public clear(): void;
			public describeContents(): number;
			public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			public toString(): string;
			/**
			 * Generates a debugging string indicating the status. The string consist of a sequence of code letter followed by the count. Code letters are f - fullSyncRequested, r - partialSyncUnavailable, X - hardError, e - numParseExceptions, c - numConflictDetectedExceptions, a - numAuthExceptions, D - tooManyDeletions, R - tooManyRetries, b - databaseError, x - softError, l - syncAlreadyInProgress, I - numIoExceptions
			 */
			public toDebugString(): string;
		}
		/**
		 * This exception is thrown from Context#registerReceiver and Context#bindService when these methods are being used from an BroadcastReceiver component. In this case, the component will no longer be active upon returning from receiving the Intent, so it is not valid to use asynchronous APIs.
		 */
		export class ReceiverCallNotAllowedException extends android.util.AndroidRuntimeException {
			constructor(msg: string);
			static class: java.lang.Class<android.content.ReceiverCallNotAllowedException>;
		}
		/**
		 * Interface to the clipboard service, for placing and retrieving text in the global clipboard.
		 */
		export class ClipboardManager extends android.text.ClipboardManager {
			static class: java.lang.Class<android.content.ClipboardManager>;
			/**
			 * Sets the current primary clip on the clipboard. This is the clip that is involved in normal cut and paste operations.
			 * @param clip The clipped data item to set.
			 */
			public setPrimaryClip(clip: android.content.ClipData): void;
			/**
			 * Returns the current primary clip on the clipboard.
			 */
			public getPrimaryClip(): android.content.ClipData;
			/**
			 * Returns a description of the current primary clip on the clipboard but not a copy of its data.
			 */
			public getPrimaryClipDescription(): android.content.ClipDescription;
			/**
			 * Returns true if there is currently a primary clip on the clipboard.
			 */
			public hasPrimaryClip(): boolean;
			public addPrimaryClipChangedListener(what: android.content.ClipboardManager.IOnPrimaryClipChangedListener): void;
			public removePrimaryClipChangedListener(what: android.content.ClipboardManager.IOnPrimaryClipChangedListener): void;
			/**
			 *  Use #getPrimaryClip() instead. This retrieves the primary clip and tries to coerce it to a string.
			 */
			public getText(): string;
			/**
			 *  Use #setPrimaryClip(ClipData) instead. This creates a ClippedItem holding the given text and sets it as the primary clip. It has no label or icon.
			 */
			public setText(text: string): void;
			/**
			 *  Use #hasPrimaryClip() instead.
			 */
			public hasText(): boolean;
			reportPrimaryClipChanged(): void;
		}
		export module ClipboardManager {
			/**
			 * Defines a listener callback that is invoked when the primary clip on the clipboard changes. Objects that want to register a listener call android.content.ClipboardManager#addPrimaryClipChangedListener(OnPrimaryClipChangedListener) addPrimaryClipChangedListener() with an object that implements OnPrimaryClipChangedListener.
			 */
			export class OnPrimaryClipChangedListener implements android.content.ClipboardManager.IOnPrimaryClipChangedListener {
				constructor(implementation: android.content.ClipboardManager.IOnPrimaryClipChangedListener);
				/**
				 * Callback that is invoked by android.content.ClipboardManager when the primary clip changes.
				 */
				public onPrimaryClipChanged(): void;
			}
			/**
			 * Defines a listener callback that is invoked when the primary clip on the clipboard changes. Objects that want to register a listener call android.content.ClipboardManager#addPrimaryClipChangedListener(OnPrimaryClipChangedListener) addPrimaryClipChangedListener() with an object that implements OnPrimaryClipChangedListener.
			 */
			interface IOnPrimaryClipChangedListener {
				/**
				 * Callback that is invoked by android.content.ClipboardManager when the primary clip changes.
				 */
				onPrimaryClipChanged(): void;
			}
		}
		export module res {
			/**
			 * Class to scan Opaque Binary Blob (OBB) files. Use this to get information about an OBB file for use in a program via ObbInfo.
			 */
			export class ObbScanner extends java.lang.Object {
				static class: java.lang.Class<android.content.res.ObbScanner>;
				/**
				 * Scan a file for OBB information. 
				 * @param filePath path to the OBB file to be scanned.
				 */
				public static getObbInfo(filePath: string): android.content.res.ObbInfo;
			}
			/**
			 * Delegate used to provide new implementation of a select few methods of Resources$Theme
			 */
			export class Resources_Theme_Delegate extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.content.res.Resources_Theme_Delegate>;
				static obtainStyledAttributes(thisResources: android.content.res.Resources, thisTheme: android.content.res.Resources.Theme, attrs: native.Array<number>): android.content.res.TypedArray;
				static obtainStyledAttributes(thisResources: android.content.res.Resources, thisTheme: android.content.res.Resources.Theme, resid: number, attrs: native.Array<number>): android.content.res.TypedArray;
				static obtainStyledAttributes(thisResources: android.content.res.Resources, thisTheme: android.content.res.Resources.Theme, set: android.util.IAttributeSet, attrs: native.Array<number>, defStyleAttr: number, defStyleRes: number): android.content.res.TypedArray;
				static resolveAttribute(thisResources: android.content.res.Resources, thisTheme: android.content.res.Resources.Theme, resid: number, outValue: android.util.TypedValue, resolveRefs: boolean): boolean;
			}
			/**
			 * The XML parsing interface returned for an XML resource. This is a standard XmlPullParser interface, as well as an extended AttributeSet interface and an additional close() method on this interface for the client to indicate when it is done reading the resource.
			 */
			export class XmlResourceParser implements org.xmlpull.v1.IXmlPullParser, android.util.IAttributeSet, android.content.res.IXmlResourceParser {
				constructor(implementation: android.content.res.IXmlResourceParser);
				/**
				 * Close this interface to the resource. Calls on the interface are no longer value after this call.
				 */
				public close(): void;
				/**
				 * Use this call to change the general behaviour of the parser, such as namespace processing or doctype declaration handling. This method must be called before the first call to next or nextToken. Otherwise, an exception is thrown.
				 */
				setFeature(name: string, state: boolean): void;
				/**
				 * Returns the current value of the given feature.
				 * @param name The name of feature to be retrieved.
				 */
				getFeature(name: string): boolean;
				/**
				 * Set the value of a property.
				 */
				setProperty(name: string, value: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The name of property to be retrieved.
				 */
				getProperty(name: string): any;
				/**
				 * Set the input source for parser to the given reader and resets the parser. The event type is set to the initial value START_DOCUMENT. Setting the reader to null will just stop parsing and reset parser state, allowing the parser to free internal resources such as parsing buffers.
				 */
				setInput(input: java.io.Reader): void;
				/**
				 * Sets the input stream the parser is going to process. This call resets the parser state and sets the event type to the initial value START_DOCUMENT.
				 * @param inputStream contains a raw byte input stream of possibly
				 * @param inputEncoding if not null it MUST be used as encoding for inputStream
				 */
				setInput(inputStream: java.io.InputStream, inputEncoding: string): void;
				/**
				 * Returns the input encoding if known, null otherwise. If setInput(InputStream, inputEncoding) was called with an inputEncoding value other than null, this value must be returned from this method. Otherwise, if inputEncoding is null and the parser supports the encoding detection feature (http://xmlpull.org/v1/doc/features.html#detect-encoding), it must return the detected encoding. If setInput(Reader) was called, null is returned. After first call to next if XML declaration was present this method will return encoding declared.
				 */
				getInputEncoding(): string;
				/**
				 * Set new value for entity replacement text as defined in <a href="http://www.w3.org/TR/REC-xml#intern-replacement">XML 1.0 Section 4.5 Construction of Internal Entity Replacement Text</a>. If FEATURE_PROCESS_DOCDECL or FEATURE_VALIDATION are set, calling this function will result in an exception -- when processing of DOCDECL is enabled, there is no need to the entity replacement text manually.
				 */
				defineEntityReplacementText(entityName: string, replacementText: string): void;
				/**
				 * Returns the numbers of elements in the namespace stack for the given depth. If namespaces are not enabled, 0 is returned.
				 */
				getNamespaceCount(depth: number): number;
				/**
				 * Returns the namespace prefix for the given position in the namespace stack. Default namespace declaration (xmlns='...') will have null as prefix. If the given index is out of range, an exception is thrown.
				 */
				getNamespacePrefix(pos: number): string;
				/**
				 * Returns the namespace URI for the given position in the namespace stack If the position is out of range, an exception is thrown.
				 */
				getNamespaceUri(pos: number): string;
				/**
				 * Returns the URI corresponding to the given prefix, depending on current state of the parser.
				 */
				getNamespace(prefix: string): string;
				/**
				 * Returns the current depth of the element. Outside the root element, the depth is 0. The depth is incremented by 1 when a start tag is reached. The depth is decremented AFTER the end tag event was observed.
				 */
				getDepth(): number;
				/**
				 * Returns a short text describing the current parser state, including the position, a description of the current event and the data source if known. This method is especially useful to provide meaningful error messages and for debugging purposes.
				 */
				getPositionDescription(): string;
				/**
				 * Returns the current line number, starting from 1. When the parser does not know the current line number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				getLineNumber(): number;
				/**
				 * Returns the current column number, starting from 0. When the parser does not know the current column number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				getColumnNumber(): number;
				/**
				 * Checks whether the current TEXT event contains only whitespace characters. For IGNORABLE_WHITESPACE, this is always true. For TEXT and CDSECT, false is returned when the current event text contains at least one non-white space character. For any other event type an exception is thrown.
				 */
				isWhitespace(): boolean;
				/**
				 * Returns the text content of the current event as String. The value returned depends on current event type, for example for TEXT event it is element content (this is typical case when next() is used).
				 */
				getText(): string;
				/**
				 * Returns the buffer that contains the text of the current event, as well as the start offset and length relevant for the current event. See getText(), next() and nextToken() for description of possible returned values.
				 * @param holderForStartAndLength Must hold an 2-element int array
				 */
				getTextCharacters(holderForStartAndLength: native.Array<number>): native.Array<string>;
				/**
				 * Returns the namespace URI of the current element. The default namespace is represented as empty string. If namespaces are not enabled, an empty String ("") is always returned. The current event must be START_TAG or END_TAG; otherwise, null is returned.
				 */
				getNamespace(): string;
				/**
				 * For START_TAG or END_TAG events, the (local) name of the current element is returned when namespaces are enabled. When namespace processing is disabled, the raw name is returned. For ENTITY_REF events, the entity name is returned. If the current event is not START_TAG, END_TAG, or ENTITY_REF, null is returned.
				 */
				getName(): string;
				/**
				 * Returns the prefix of the current element. If the element is in the default namespace (has no prefix), null is returned. If namespaces are not enabled, or the current event is not START_TAG or END_TAG, null is returned.
				 */
				getPrefix(): string;
				/**
				 * Returns true if the current event is START_TAG and the tag is degenerated (e.g. &lt;foobar/&gt;).
				 */
				isEmptyElementTag(): boolean;
				/**
				 * Returns the number of attributes of the current start tag, or -1 if the current event type is not START_TAG
				 */
				getAttributeCount(): number;
				/**
				 * Returns the namespace URI of the attribute with the given index (starts from 0). Returns an empty string ("") if namespaces are not enabled or the attribute has no namespace. Throws an IndexOutOfBoundsException if the index is out of range or the current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeNamespace(index: number): string;
				/**
				 * Returns the local name of the specified attribute if namespaces are enabled or just attribute name if namespaces are disabled. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeName(index: number): string;
				/**
				 * Returns the prefix of the specified attribute Returns null if the element has no prefix. If namespaces are disabled it will always return null. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributePrefix(index: number): string;
				/**
				 * Returns the type of the specified attribute If parser is non-validating it MUST return CDATA.
				 * @param index zero-based index of attribute
				 */
				getAttributeType(index: number): string;
				/**
				 * Returns if the specified attribute was not in input was declared in XML. If parser is non-validating it MUST always return false. This information is part of XML infoset:
				 * @param index zero-based index of attribute
				 */
				isAttributeDefault(index: number): boolean;
				/**
				 * Returns the given attributes value. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeValue(index: number): string;
				/**
				 * Returns the attributes value identified by namespace URI and namespace localName. If namespaces are disabled namespace must be null. If current event type is not START_TAG then IndexOutOfBoundsException will be thrown.
				 * @param namespace Namespace of the attribute if namespaces are enabled otherwise must be null
				 * @param name If namespaces enabled local name of attribute otherwise just attribute name
				 */
				getAttributeValue(namespace: string, name: string): string;
				/**
				 * Returns the type of the current event (START_TAG, END_TAG, TEXT, etc.)
				 */
				getEventType(): number;
				/**
				 * Get next parsing event - element content wil be coalesced and only one TEXT event must be returned for whole element content (comments and processing instructions will be ignored and entity references must be expanded or exception mus be thrown if entity reference can not be expanded). If element content is empty (content is "") then no TEXT event will be reported.
				 */
				next(): number;
				/**
				 * This method works similarly to next() but will expose additional event types (COMMENT, CDSECT, DOCDECL, ENTITY_REF, PROCESSING_INSTRUCTION, or IGNORABLE_WHITESPACE) if they are available in input.
				 */
				nextToken(): number;
				/**
				 * Test if the current event is of the given type and if the namespace and name do match. null will match any namespace and any name. If the test is not passed, an exception is thrown. The exception text indicates the parser position, the expected event and the current event that is not meeting the requirement.
				 */
				require(type: number, namespace: string, name: string): void;
				/**
				 * If current event is START_TAG then if next element is TEXT then element content is returned or if next event is END_TAG then empty string is returned, otherwise exception is thrown. After calling this function successfully parser will be positioned on END_TAG. 
				 */
				nextText(): string;
				/**
				 * Call next() and return event if it is START_TAG or END_TAG otherwise throw an exception. It will skip whitespace TEXT before actual tag if any.
				 */
				nextTag(): number;
				/**
				 * Return the resource ID associated with the given attribute name. This will be the identifier for an attribute resource, which can be used by styles. Returns 0 if there is no resource associated with this attribute. 
				 * @param index Index of the desired attribute, 0...count-1.
				 */
				getAttributeNameResource(index: number): number;
				/**
				 * Return the index of the value of 'attribute' in the list 'options'.
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute Name of attribute to retrieve.
				 * @param options List of strings whose values we are checking against.
				 * @param defaultValue Value returned if attribute doesn't exist or no
				 */
				getAttributeListValue(namespace: string, attribute: string, options: native.Array<string>, defaultValue: number): number;
				/**
				 * Return the boolean value of 'attribute'. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeBooleanValue(namespace: string, attribute: string, defaultValue: boolean): boolean;
				/**
				 * Return the value of 'attribute' as a resource identifier. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeResourceValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the integer value of 'attribute'. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeIntValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the boolean value of 'attribute' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeUnsignedIntValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the float value of 'attribute'. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeFloatValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the index of the value of attribute at 'index' in the list 'options'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param options List of strings whose values we are checking against.
				 * @param defaultValue Value returned if attribute doesn't exist or no
				 */
				getAttributeListValue(index: number, options: native.Array<string>, defaultValue: number): number;
				/**
				 * Return the boolean value of attribute at 'index'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeBooleanValue(index: number, defaultValue: boolean): boolean;
				/**
				 * Return the value of attribute at 'index' as a resource identifier. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeResourceValue(index: number, defaultValue: number): number;
				/**
				 * Return the integer value of attribute at 'index'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeIntValue(index: number, defaultValue: number): number;
				/**
				 * Return the integer value of attribute at 'index' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeUnsignedIntValue(index: number, defaultValue: number): number;
				/**
				 * Return the float value of attribute at 'index'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeFloatValue(index: number, defaultValue: number): number;
				/**
				 * Return the value of the "id" attribute or null if there is not one. Equivalent to getAttributeValue(null, "id"). 
				 */
				getIdAttribute(): string;
				/**
				 * Return the value of the "class" attribute or null if there is not one. Equivalent to getAttributeValue(null, "class"). 
				 */
				getClassAttribute(): string;
				/**
				 * Return the integer value of the "id" attribute or defaultValue if there is none. Equivalent to getAttributeResourceValue(null, "id", defaultValue);
				 * @param defaultValue What to return if the "id" attribute isn't found.
				 */
				getIdAttributeResourceValue(defaultValue: number): number;
				getStyleAttribute(): number;
			}
			/**
			 * File descriptor of an entry in the AssetManager. This provides your own opened FileDescriptor that can be used to read the data, as well as the offset and length of that entry's data in the file.
			 */
			export class AssetFileDescriptor extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Create a new AssetFileDescriptor from the given values.
				 * @param fd The underlying file descriptor.
				 * @param startOffset The location within the file that the asset starts.
				 * @param length The number of bytes of the asset, or
				 */
				constructor(fd: android.os.ParcelFileDescriptor, startOffset: number, length: number);
				/**
				 * Length used with #AssetFileDescriptor(ParcelFileDescriptor, long, long) and #getDeclaredLength when a length has not been declared. This means the data extends to the end of the file.
				 */
				static UNKNOWN_LENGTH: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.res.AssetFileDescriptor>;
				static class: java.lang.Class<android.content.res.AssetFileDescriptor>;
				/**
				 * The AssetFileDescriptor contains its own ParcelFileDescriptor, which in addition to the normal FileDescriptor object also allows you to close the descriptor when you are done with it.
				 */
				public getParcelFileDescriptor(): android.os.ParcelFileDescriptor;
				/**
				 * Returns the FileDescriptor that can be used to read the data in the file.
				 */
				public getFileDescriptor(): java.io.FileDescriptor;
				/**
				 * Returns the byte offset where this asset entry's data starts.
				 */
				public getStartOffset(): any;
				/**
				 * Returns the total number of bytes of this asset entry's data. May be #UNKNOWN_LENGTH if the asset extends to the end of the file. If the AssetFileDescriptor was constructed with #UNKNOWN_LENGTH, this will use ParcelFileDescriptor#getStatSize() ParcelFileDescriptor.getStatSize() to find the total size of the file, returning that number if found or #UNKNOWN_LENGTH if it could not be determined. #getDeclaredLength()
				 */
				public getLength(): any;
				/**
				 * Return the actual number of bytes that were declared when the AssetFileDescriptor was constructed. Will be #UNKNOWN_LENGTH if the length was not declared, meaning data should be read to the end of the file. #getDeclaredLength()
				 */
				public getDeclaredLength(): any;
				/**
				 * Convenience for calling <code>getParcelFileDescriptor().close()</code>.
				 */
				public close(): void;
				/**
				 * Create and return a new auto-close input stream for this asset. This will either return a full asset AutoCloseInputStream, or an underlying ParcelFileDescriptor.AutoCloseInputStream ParcelFileDescriptor.AutoCloseInputStream depending on whether the the object represents a complete file or sub-section of a file. You should only call this once for a particular asset.
				 */
				public createInputStream(): java.io.FileInputStream;
				/**
				 * Create and return a new auto-close output stream for this asset. This will either return a full asset AutoCloseOutputStream, or an underlying ParcelFileDescriptor.AutoCloseOutputStream ParcelFileDescriptor.AutoCloseOutputStream depending on whether the the object represents a complete file or sub-section of a file. You should only call this once for a particular asset.
				 */
				public createOutputStream(): java.io.FileOutputStream;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
			}
			export module AssetFileDescriptor {
				/**
				 * An OutputStream you can create on a ParcelFileDescriptor, which will take care of calling ParcelFileDescriptor#close ParcelFileDescritor.close() for you when the stream is closed.
				 */
				export class AutoCloseOutputStream extends android.os.ParcelFileDescriptor.AutoCloseOutputStream {
					constructor(fd: android.content.res.AssetFileDescriptor);
					static class: java.lang.Class<android.content.res.AssetFileDescriptor.AutoCloseOutputStream>;
					public write(buffer: native.Array<number>, offset: number, count: number): void;
					public write(buffer: native.Array<number>): void;
					public write(oneByte: number): void;
				}
				/**
				 * An InputStream you can create on a ParcelFileDescriptor, which will take care of calling ParcelFileDescriptor#close ParcelFileDescritor.close() for you when the stream is closed.
				 */
				export class AutoCloseInputStream extends android.os.ParcelFileDescriptor.AutoCloseInputStream {
					constructor(fd: android.content.res.AssetFileDescriptor);
					static class: java.lang.Class<android.content.res.AssetFileDescriptor.AutoCloseInputStream>;
					public available(): number;
					public read(): number;
					public read(buffer: native.Array<number>, offset: number, count: number): number;
					public read(buffer: native.Array<number>): number;
					public skip(count: number): any;
					public mark(readlimit: number): void;
					public markSupported(): boolean;
					public reset(): void;
				}
			}
			/**
			 * Provides access to an application's raw asset files; see Resources for the way most applications will want to retrieve their resource data. This class presents a lower-level API that allows you to open and read raw files that have been bundled with the application as a simple stream of bytes.
			 */
			export class AssetManager extends java.lang.Object {
				/**
				 * Mode for #open(String, int): no specific information about how data will be accessed.
				 */
				static ACCESS_UNKNOWN: number;
				/**
				 * Mode for #open(String, int): Read chunks, and seek forward and backward.
				 */
				static ACCESS_RANDOM: number;
				/**
				 * Mode for #open(String, int): Read sequentially, with an occasional forward seek.
				 */
				static ACCESS_STREAMING: number;
				/**
				 * Mode for #open(String, int): Attempt to load contents into memory, for fast small reads.
				 */
				static ACCESS_BUFFER: number;
				static class: java.lang.Class<android.content.res.AssetManager>;
				/**
				 * Close this asset manager.
				 */
				public close(): void;
				/**
				 * Retrieve the string value associated with a particular resource identifier for the current configuration / skin.
				 */
				getResourceText(ident: number): string;
				/**
				 * Retrieve the string value associated with a particular resource identifier for the current configuration / skin.
				 */
				getResourceBagText(ident: number, bagEntryId: number): string;
				/**
				 * Retrieve the string array associated with a particular resource identifier.
				 * @param id Resource id of the string array
				 */
				getResourceStringArray(id: number): native.Array<string>;
				getResourceValue(ident: number, density: number, outValue: android.util.TypedValue, resolveRefs: boolean): boolean;
				/**
				 * Retrieve the text array associated with a particular resource identifier.
				 * @param id Resource id of the string array
				 */
				getResourceTextArray(id: number): native.Array<string>;
				getThemeValue(theme: number, ident: number, outValue: android.util.TypedValue, resolveRefs: boolean): boolean;
				ensureStringBlocks(): void;
				makeStringBlocks(copyFromSystem: boolean): void;
				getPooledString(block: number, id: number): string;
				/**
				 * Open an asset using ACCESS_STREAMING mode. This provides access to files that have been bundled with an application as assets -- that is, files placed in to the "assets" directory. 
				 * @param fileName The name of the asset to open. This name can be
				 */
				public open(fileName: string): java.io.InputStream;
				/**
				 * Open an asset using an explicit access mode, returning an InputStream to read its contents. This provides access to files that have been bundled with an application as assets -- that is, files placed in to the "assets" directory. 
				 * @param fileName The name of the asset to open. This name can be
				 * @param accessMode Desired access mode for retrieving the data.
				 */
				public open(fileName: string, accessMode: number): java.io.InputStream;
				public openFd(fileName: string): android.content.res.AssetFileDescriptor;
				/**
				 * Return a String array of all the assets at the given path. 
				 * @param path A relative path within the assets, i.e., "docs/home.html".
				 */
				public list(path: string): native.Array<string>;
				public openNonAssetFd(fileName: string): android.content.res.AssetFileDescriptor;
				public openNonAssetFd(cookie: number, fileName: string): android.content.res.AssetFileDescriptor;
				/**
				 * Retrieve a parser for a compiled XML file. 
				 * @param fileName The name of the file to retrieve.
				 */
				public openXmlResourceParser(fileName: string): android.content.res.IXmlResourceParser;
				/**
				 * Retrieve a parser for a compiled XML file. 
				 * @param cookie Identifier of the package to be opened.
				 * @param fileName The name of the file to retrieve.
				 */
				public openXmlResourceParser(cookie: number, fileName: string): android.content.res.IXmlResourceParser;
				xmlBlockGone(id: number): void;
				createTheme(): number;
				releaseTheme(theme: number): void;
				protected finalize(): void;
				/**
				 * Get the locales that this asset manager contains data for.
				 */
				public getLocales(): native.Array<string>;
				/**
				 * Retrieve the resource identifier for the given resource name.
				 */
				getResourceIdentifier(type: string, name: string, defPackage: string): number;
				getResourceName(resid: number): string;
				getResourcePackageName(resid: number): string;
				getResourceTypeName(resid: number): string;
				getResourceEntryName(resid: number): string;
				static applyStyle(theme: number, defStyleAttr: number, defStyleRes: number, xmlParser: number, inAttrs: native.Array<number>, outValues: native.Array<number>, outIndices: native.Array<number>): boolean;
				retrieveAttributes(xmlParser: number, inAttrs: native.Array<number>, outValues: native.Array<number>, outIndices: native.Array<number>): boolean;
				getArraySize(resource: number): number;
				retrieveArray(resource: number, outValues: native.Array<number>): number;
				static applyThemeStyle(theme: number, styleRes: number, force: boolean): void;
				static copyTheme(dest: number, source: number): void;
				static loadThemeAttributeValue(theme: number, ident: number, outValue: android.util.TypedValue, resolve: boolean): number;
				static dumpTheme(theme: number, priority: number, tag: string, prefix: string): void;
				getArrayIntResource(arrayRes: number): native.Array<number>;
			}
			export module AssetManager {
				export class AssetInputStream extends java.io.InputStream {
					static class: java.lang.Class<android.content.res.AssetManager.AssetInputStream>;
					public getAssetInt(): number;
					public read(): number;
					public markSupported(): boolean;
					public available(): number;
					public close(): void;
					public mark(readlimit: number): void;
					public reset(): void;
					public read(b: native.Array<number>): number;
					public read(b: native.Array<number>, off: number, len: number): number;
					public skip(n: number): any;
					protected finalize(): void;
				}
			}
			/**
			 * This class describes all device configuration information that can impact the resources the application retrieves. This includes both user-specified configuration options (locale and scaling) as well as device configurations (such as input modes, screen size and screen orientation).
			 */
			export class Configuration extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Construct an invalid Configuration. You must call #setToDefaults for this object to be valid. 
				 */
				constructor();
				/**
				 * Makes a deep copy suitable for modification.
				 */
				constructor(o: android.content.res.Configuration);
				/**
				 * Current user preference for the scaling factor for fonts, relative to the base density scaling.
				 */
				fontScale: number;
				/**
				 * IMSI MCC (Mobile Country Code), corresponding to <a href="guide/topics/resources/providing-resources.html#MccQualifier">mcc</a> resource qualifier. 0 if undefined.
				 */
				mcc: number;
				/**
				 * IMSI MNC (Mobile Network Code), corresponding to <a href="guide/topics/resources/providing-resources.html#MccQualifier">mnc</a> resource qualifier. 0 if undefined.
				 */
				mnc: number;
				/**
				 * Current user preference for the locale, corresponding to <a href="guide/topics/resources/providing-resources.html#LocaleQualifier">locale</a> resource qualifier.
				 */
				locale: java.util.Locale;
				/**
				 * Constant for #screenLayout: bits that encode the size.
				 */
				static SCREENLAYOUT_SIZE_MASK: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_SIZE_MASK value indicating that no size has been set.
				 */
				static SCREENLAYOUT_SIZE_UNDEFINED: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_SIZE_MASK value indicating the screen is at least approximately 320x426 dp units, corresponds to the <a href="guide/topics/resources/providing-resources.html#ScreenSizeQualifier">small</a> resource qualifier. See <a href="guide/practices/screens_support.html">Supporting Multiple Screens</a> for more information.
				 */
				static SCREENLAYOUT_SIZE_SMALL: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_SIZE_MASK value indicating the screen is at least approximately 320x470 dp units, corresponds to the <a href="guide/topics/resources/providing-resources.html#ScreenSizeQualifier">normal</a> resource qualifier. See <a href="guide/practices/screens_support.html">Supporting Multiple Screens</a> for more information.
				 */
				static SCREENLAYOUT_SIZE_NORMAL: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_SIZE_MASK value indicating the screen is at least approximately 480x640 dp units, corresponds to the <a href="guide/topics/resources/providing-resources.html#ScreenSizeQualifier">large</a> resource qualifier. See <a href="guide/practices/screens_support.html">Supporting Multiple Screens</a> for more information.
				 */
				static SCREENLAYOUT_SIZE_LARGE: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_SIZE_MASK value indicating the screen is at least approximately 720x960 dp units, corresponds to the <a href="guide/topics/resources/providing-resources.html#ScreenSizeQualifier">xlarge</a> resource qualifier. See <a href="guide/practices/screens_support.html">Supporting Multiple Screens</a> for more information.
				 */
				static SCREENLAYOUT_SIZE_XLARGE: number;
				/**
				 * Constant for #screenLayout: bits that encode the aspect ratio.
				 */
				static SCREENLAYOUT_LONG_MASK: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_LONG_MASK value indicating that no size has been set.
				 */
				static SCREENLAYOUT_LONG_UNDEFINED: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_LONG_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#ScreenAspectQualifier">notlong</a> resource qualifier.
				 */
				static SCREENLAYOUT_LONG_NO: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_LONG_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#ScreenAspectQualifier">long</a> resource qualifier.
				 */
				static SCREENLAYOUT_LONG_YES: number;
				/**
				 * Constant for #screenLayout: bits that encode the layout direction.
				 */
				static SCREENLAYOUT_LAYOUTDIR_MASK: number;
				/**
				 * Constant for #screenLayout: bits shift to get the layout direction.
				 */
				static SCREENLAYOUT_LAYOUTDIR_SHIFT: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_LAYOUTDIR_MASK value indicating that no layout dir has been set.
				 */
				static SCREENLAYOUT_LAYOUTDIR_UNDEFINED: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_LAYOUTDIR_MASK value indicating that a layout dir has been set to LTR.
				 */
				static SCREENLAYOUT_LAYOUTDIR_LTR: number;
				/**
				 * Constant for #screenLayout: a #SCREENLAYOUT_LAYOUTDIR_MASK value indicating that a layout dir has been set to RTL.
				 */
				static SCREENLAYOUT_LAYOUTDIR_RTL: number;
				/**
				 * Constant for #screenLayout: a value indicating that screenLayout is undefined
				 */
				static SCREENLAYOUT_UNDEFINED: number;
				/**
				 * Bit mask of overall layout of the screen. Currently there are two fields:
				 */
				screenLayout: number;
				/**
				 * Constant for #touchscreen: a value indicating that no value has been set.
				 */
				static TOUCHSCREEN_UNDEFINED: number;
				/**
				 * Constant for #touchscreen, value corresponding to the <a href="guide/topics/resources/providing-resources.html#TouchscreenQualifier">notouch</a> resource qualifier.
				 */
				static TOUCHSCREEN_NOTOUCH: number;
				/**
				 *  Not currently supported or used.
				 */
				static TOUCHSCREEN_STYLUS: number;
				/**
				 * Constant for #touchscreen, value corresponding to the <a href="guide/topics/resources/providing-resources.html#TouchscreenQualifier">finger</a> resource qualifier.
				 */
				static TOUCHSCREEN_FINGER: number;
				/**
				 * The kind of touch screen attached to the device. One of: #TOUCHSCREEN_NOTOUCH, #TOUCHSCREEN_FINGER.
				 */
				touchscreen: number;
				/**
				 * Constant for #keyboard: a value indicating that no value has been set.
				 */
				static KEYBOARD_UNDEFINED: number;
				/**
				 * Constant for #keyboard, value corresponding to the <a href="guide/topics/resources/providing-resources.html#ImeQualifier">nokeys</a> resource qualifier.
				 */
				static KEYBOARD_NOKEYS: number;
				/**
				 * Constant for #keyboard, value corresponding to the <a href="guide/topics/resources/providing-resources.html#ImeQualifier">qwerty</a> resource qualifier.
				 */
				static KEYBOARD_QWERTY: number;
				/**
				 * Constant for #keyboard, value corresponding to the <a href="guide/topics/resources/providing-resources.html#ImeQualifier">12key</a> resource qualifier.
				 */
				static KEYBOARD_12KEY: number;
				/**
				 * The kind of keyboard attached to the device. One of: #KEYBOARD_NOKEYS, #KEYBOARD_QWERTY, #KEYBOARD_12KEY.
				 */
				keyboard: number;
				/**
				 * Constant for #keyboardHidden: a value indicating that no value has been set.
				 */
				static KEYBOARDHIDDEN_UNDEFINED: number;
				/**
				 * Constant for #keyboardHidden, value corresponding to the <a href="guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keysexposed</a> resource qualifier.
				 */
				static KEYBOARDHIDDEN_NO: number;
				/**
				 * Constant for #keyboardHidden, value corresponding to the <a href="guide/topics/resources/providing-resources.html#KeyboardAvailQualifier">keyshidden</a> resource qualifier.
				 */
				static KEYBOARDHIDDEN_YES: number;
				/**
				 * A flag indicating whether any keyboard is available. Unlike #hardKeyboardHidden, this also takes into account a soft keyboard, so if the hard keyboard is hidden but there is soft keyboard available, it will be set to NO. Value is one of: #KEYBOARDHIDDEN_NO, #KEYBOARDHIDDEN_YES.
				 */
				keyboardHidden: number;
				/**
				 * Constant for #hardKeyboardHidden: a value indicating that no value has been set.
				 */
				static HARDKEYBOARDHIDDEN_UNDEFINED: number;
				/**
				 * Constant for #hardKeyboardHidden, value corresponding to the physical keyboard being exposed.
				 */
				static HARDKEYBOARDHIDDEN_NO: number;
				/**
				 * Constant for #hardKeyboardHidden, value corresponding to the physical keyboard being hidden.
				 */
				static HARDKEYBOARDHIDDEN_YES: number;
				/**
				 * A flag indicating whether the hard keyboard has been hidden. This will be set on a device with a mechanism to hide the keyboard from the user, when that mechanism is closed. One of: #HARDKEYBOARDHIDDEN_NO, #HARDKEYBOARDHIDDEN_YES.
				 */
				hardKeyboardHidden: number;
				/**
				 * Constant for #navigation: a value indicating that no value has been set.
				 */
				static NAVIGATION_UNDEFINED: number;
				/**
				 * Constant for #navigation, value corresponding to the <a href="guide/topics/resources/providing-resources.html#NavigationQualifier">nonav</a> resource qualifier.
				 */
				static NAVIGATION_NONAV: number;
				/**
				 * Constant for #navigation, value corresponding to the <a href="guide/topics/resources/providing-resources.html#NavigationQualifier">dpad</a> resource qualifier.
				 */
				static NAVIGATION_DPAD: number;
				/**
				 * Constant for #navigation, value corresponding to the <a href="guide/topics/resources/providing-resources.html#NavigationQualifier">trackball</a> resource qualifier.
				 */
				static NAVIGATION_TRACKBALL: number;
				/**
				 * Constant for #navigation, value corresponding to the <a href="guide/topics/resources/providing-resources.html#NavigationQualifier">wheel</a> resource qualifier.
				 */
				static NAVIGATION_WHEEL: number;
				/**
				 * The kind of navigation method available on the device. One of: #NAVIGATION_NONAV, #NAVIGATION_DPAD, #NAVIGATION_TRACKBALL, #NAVIGATION_WHEEL.
				 */
				navigation: number;
				/**
				 * Constant for #navigationHidden: a value indicating that no value has been set.
				 */
				static NAVIGATIONHIDDEN_UNDEFINED: number;
				/**
				 * Constant for #navigationHidden, value corresponding to the <a href="guide/topics/resources/providing-resources.html#NavAvailQualifier">navexposed</a> resource qualifier.
				 */
				static NAVIGATIONHIDDEN_NO: number;
				/**
				 * Constant for #navigationHidden, value corresponding to the <a href="guide/topics/resources/providing-resources.html#NavAvailQualifier">navhidden</a> resource qualifier.
				 */
				static NAVIGATIONHIDDEN_YES: number;
				/**
				 * A flag indicating whether any 5-way or DPAD navigation available. This will be set on a device with a mechanism to hide the navigation controls from the user, when that mechanism is closed. One of: #NAVIGATIONHIDDEN_NO, #NAVIGATIONHIDDEN_YES.
				 */
				navigationHidden: number;
				/**
				 * Constant for #orientation: a value indicating that no value has been set.
				 */
				static ORIENTATION_UNDEFINED: number;
				/**
				 * Constant for #orientation, value corresponding to the <a href="guide/topics/resources/providing-resources.html#OrientationQualifier">port</a> resource qualifier.
				 */
				static ORIENTATION_PORTRAIT: number;
				/**
				 * Constant for #orientation, value corresponding to the <a href="guide/topics/resources/providing-resources.html#OrientationQualifier">land</a> resource qualifier.
				 */
				static ORIENTATION_LANDSCAPE: number;
				/**
				 *  Not currently supported or used.
				 */
				static ORIENTATION_SQUARE: number;
				/**
				 * Overall orientation of the screen. May be one of #ORIENTATION_LANDSCAPE, #ORIENTATION_PORTRAIT.
				 */
				orientation: number;
				/**
				 * Constant for #uiMode: bits that encode the mode type.
				 */
				static UI_MODE_TYPE_MASK: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_TYPE_MASK value indicating that no mode type has been set.
				 */
				static UI_MODE_TYPE_UNDEFINED: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_TYPE_MASK value that corresponds to <a href="guide/topics/resources/providing-resources.html#UiModeQualifier">no UI mode</a> resource qualifier specified.
				 */
				static UI_MODE_TYPE_NORMAL: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_TYPE_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#UiModeQualifier">desk</a> resource qualifier.
				 */
				static UI_MODE_TYPE_DESK: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_TYPE_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#UiModeQualifier">car</a> resource qualifier.
				 */
				static UI_MODE_TYPE_CAR: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_TYPE_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#UiModeQualifier">television</a> resource qualifier.
				 */
				static UI_MODE_TYPE_TELEVISION: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_TYPE_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#UiModeQualifier">appliance</a> resource qualifier.
				 */
				static UI_MODE_TYPE_APPLIANCE: number;
				/**
				 * Constant for #uiMode: bits that encode the night mode.
				 */
				static UI_MODE_NIGHT_MASK: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_NIGHT_MASK value indicating that no mode type has been set.
				 */
				static UI_MODE_NIGHT_UNDEFINED: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_NIGHT_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#NightQualifier">notnight</a> resource qualifier.
				 */
				static UI_MODE_NIGHT_NO: number;
				/**
				 * Constant for #uiMode: a #UI_MODE_NIGHT_MASK value that corresponds to the <a href="guide/topics/resources/providing-resources.html#NightQualifier">night</a> resource qualifier.
				 */
				static UI_MODE_NIGHT_YES: number;
				/**
				 * Bit mask of the ui mode. Currently there are two fields:
				 */
				uiMode: number;
				/**
				 * Default value for #screenWidthDp indicating that no width has been specified.
				 */
				static SCREEN_WIDTH_DP_UNDEFINED: number;
				/**
				 * The current width of the available screen space, in dp units, corresponding to <a href="guide/topics/resources/providing-resources.html#ScreenWidthQualifier">screen width</a> resource qualifier. Set to #SCREEN_WIDTH_DP_UNDEFINED if no width is specified.
				 */
				screenWidthDp: number;
				/**
				 * Default value for #screenHeightDp indicating that no width has been specified.
				 */
				static SCREEN_HEIGHT_DP_UNDEFINED: number;
				/**
				 * The current height of the available screen space, in dp units, corresponding to <a href="guide/topics/resources/providing-resources.html#ScreenHeightQualifier">screen height</a> resource qualifier. Set to #SCREEN_HEIGHT_DP_UNDEFINED if no height is specified.
				 */
				screenHeightDp: number;
				/**
				 * Default value for #smallestScreenWidthDp indicating that no width has been specified.
				 */
				static SMALLEST_SCREEN_WIDTH_DP_UNDEFINED: number;
				/**
				 * The smallest screen size an application will see in normal operation, corresponding to <a href="guide/topics/resources/providing-resources.html#SmallestScreenWidthQualifier">smallest screen width</a> resource qualifier. This is the smallest value of both screenWidthDp and screenHeightDp in both portrait and landscape. Set to #SMALLEST_SCREEN_WIDTH_DP_UNDEFINED if no width is specified.
				 */
				smallestScreenWidthDp: number;
				/**
				 * Default value for #densityDpi indicating that no width has been specified.
				 */
				static DENSITY_DPI_UNDEFINED: number;
				/**
				 * The target screen density being rendered to, corresponding to <a href="guide/topics/resources/providing-resources.html#DensityQualifier">density</a> resource qualifier. Set to #DENSITY_DPI_UNDEFINED if no density is specified.
				 */
				densityDpi: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.res.Configuration>;
				static class: java.lang.Class<android.content.res.Configuration>;
				/**
				 * Check if the Configuration's current #screenLayout is at least the given size.
				 * @param size The desired size, either {@link #SCREENLAYOUT_SIZE_SMALL},
				 */
				public isLayoutSizeAtLeast(size: number): boolean;
				public setTo(o: android.content.res.Configuration): void;
				public toString(): string;
				/**
				 * Set this object to the system defaults.
				 */
				public setToDefaults(): void;
				/**
				 * Copy the fields from delta into this Configuration object, keeping track of which ones have changed. Any undefined fields in <var>delta</var> are ignored and not copied in to the current Configuration.
				 */
				public updateFrom(delta: android.content.res.Configuration): number;
				/**
				 * Return a bit mask of the differences between this Configuration object and the given one. Does not change the values of either. Any undefined fields in <var>delta</var> are ignored.
				 */
				public diff(delta: android.content.res.Configuration): number;
				/**
				 * Determine if a new resource needs to be loaded from the bit set of configuration changes returned by #updateFrom(Configuration). 
				 * @param configChanges The mask of changes configurations as returned by
				 * @param interestingChanges The configuration changes that the resource
				 */
				public static needNewResources(configChanges: number, interestingChanges: number): boolean;
				/**
				 * Parcelable methods
				 */
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
				public compareTo(that: android.content.res.Configuration): number;
				public equals(that: android.content.res.Configuration): boolean;
				public equals(that: any): boolean;
				public hashCode(): number;
				/**
				 * Set the locale. This is the preferred way for setting up the locale (instead of using the direct accessor). This will also set the userLocale and layout direction according to the locale.
				 * @param loc The locale. Can be null.
				 */
				public setLocale(loc: java.util.Locale): void;
				/**
				 * Return the layout direction. Will be either View#LAYOUT_DIRECTION_LTR or View#LAYOUT_DIRECTION_RTL.
				 */
				public getLayoutDirection(): number;
				/**
				 * Set the layout direction from the Locale.
				 * @param locale The Locale. If null will set the layout direction to
				 */
				public setLayoutDirection(locale: java.util.Locale): void;
			}
			export class ColorStateList extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Creates a ColorStateList that returns the specified mapping from states to colors.
				 */
				constructor(states: native.Array<native.Array<number>>, colors: native.Array<number>);
				static CREATOR: android.os.Parcelable.ICreator<android.content.res.ColorStateList>;
				static class: java.lang.Class<android.content.res.ColorStateList>;
				/**
				 * Creates or retrieves a ColorStateList that always returns a single color.
				 */
				public static valueOf(color: number): android.content.res.ColorStateList;
				/**
				 * Create a ColorStateList from an XML document, given a set of Resources.
				 */
				public static createFromXml(r: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser): android.content.res.ColorStateList;
				/**
				 * Creates a new ColorStateList that has the same states and colors as this one but where each color has the specified alpha value (0-255).
				 */
				public withAlpha(alpha: number): android.content.res.ColorStateList;
				public isStateful(): boolean;
				/**
				 * Return the color associated with the given set of android.view.View states.
				 * @param stateSet an array of {@link android.view.View} states
				 * @param defaultColor the color to return if there's not state spec in this
				 */
				public getColorForState(stateSet: native.Array<number>, defaultColor: number): number;
				/**
				 * Return the default color in this ColorStateList.
				 */
				public getDefaultColor(): number;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			export class BridgeResources extends android.content.res.Resources {
				static class: java.lang.Class<android.content.res.BridgeResources>;
				NinePatchInputStream: {
	new (file: java.io.File): android.content.res.BridgeResources.NinePatchInputStream;
};
				/**
				 * Disposes the static Resources#mSystem to make sure we don't leave objects around that would prevent us from unloading the library.
				 */
				public static disposeSystem(): void;
				public newTypeArray(numEntries: number, platformFile: boolean): android.content.res.BridgeTypedArray;
				public getDrawable(id: number): android.graphics.drawable.Drawable;
				public getColor(id: number): number;
				public getColorStateList(id: number): android.content.res.ColorStateList;
				public getText(id: number): string;
				public getLayout(id: number): android.content.res.IXmlResourceParser;
				public getAnimation(id: number): android.content.res.IXmlResourceParser;
				public obtainAttributes(set: android.util.IAttributeSet, attrs: native.Array<number>): android.content.res.TypedArray;
				public obtainTypedArray(id: number): android.content.res.TypedArray;
				public getDimension(id: number): number;
				public getDimensionPixelOffset(id: number): number;
				public getDimensionPixelSize(id: number): number;
				public getInteger(id: number): number;
				public getBoolean(id: number): boolean;
				public getResourceEntryName(resid: number): string;
				public getResourceName(resid: number): string;
				public getResourceTypeName(resid: number): string;
				public getString(id: number, formatArgs: native.Array<any>): string;
				public getString(id: number): string;
				public getValue(id: number, outValue: android.util.TypedValue, resolveRefs: boolean): void;
				public getValue(name: string, outValue: android.util.TypedValue, resolveRefs: boolean): void;
				public getXml(id: number): android.content.res.IXmlResourceParser;
				public loadXmlResourceParser(file: string, id: number, assetCookie: number, type: string): android.content.res.IXmlResourceParser;
				public openRawResource(id: number): java.io.InputStream;
				public openRawResource(id: number, value: android.util.TypedValue): java.io.InputStream;
				public openRawResourceFd(id: number): android.content.res.AssetFileDescriptor;
				/**
				 * Return the string value associated with a particular resource ID. The returned object will be a String if this is a plain string; it will be some other type of CharSequence if it is styled. 
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param def The default CharSequence to return.
				 */
				getText(id: number, def: string): string;
				loadXmlResourceParser(id: number, type: string): android.content.res.IXmlResourceParser;
			}
			export module BridgeResources {
				/**
				 * Simpler wrapper around FileInputStream. This is used when the input stream represent not a normal bitmap but a nine patch. This is useful when the InputStream is created in a method but used in another that needs to know whether this is 9-patch or not, such as BitmapFactory.
				 */
				export class NinePatchInputStream extends java.io.FileInputStream {
					static class: java.lang.Class<android.content.res.BridgeResources.NinePatchInputStream>;
					public markSupported(): boolean;
					public disableFakeMarkSupport(): void;
				}
			}
			export class BridgeAssetManager extends android.content.res.AssetManager {
				static class: java.lang.Class<android.content.res.BridgeAssetManager>;
				/**
				 * This initializes the static field AssetManager#mSystem which is used by methods who get a global asset manager using AssetManager#getSystem(). <p/> They will end up using our bridge asset manager. <p/> Bridge calls this method after setting up a new bridge.
				 */
				public static initSystem(): android.content.res.AssetManager;
				/**
				 * Clears the static AssetManager#sSystem to make sure we don't leave objects around that would prevent us from unloading the library.
				 */
				public static clearSystem(): void;
			}
			/**
			 * Basic information about a Opaque Binary Blob (OBB) that reflects the info from the footer on the OBB file. This information may be manipulated by a developer with the <code>obbtool</code> program in the Android SDK.
			 */
			export class ObbInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Flag noting that this OBB is an overlay patch for a base OBB.
				 */
				static OBB_OVERLAY: number;
				/**
				 * The canonical filename of the OBB.
				 */
				filename: string;
				/**
				 * The name of the package to which the OBB file belongs.
				 */
				packageName: string;
				/**
				 * The version of the package to which the OBB file belongs.
				 */
				version: number;
				/**
				 * The flags relating to the OBB.
				 */
				flags: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.res.ObbInfo>;
				static class: java.lang.Class<android.content.res.ObbInfo>;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			export class TypedArray_Delegate extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.content.res.TypedArray_Delegate>;
				public static getValueAt(theTypedArray: android.content.res.TypedArray, index: number, outValue: android.util.TypedValue): boolean;
			}
			/**
			 * Container for an array of values that were retrieved with Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int) or Resources#obtainAttributes. Be sure to call #recycle when done with them. The indices used to retrieve values from this structure correspond to the positions of the attributes given to obtainStyledAttributes.
			 */
			export class TypedArray extends java.lang.Object {
				static class: java.lang.Class<android.content.res.TypedArray>;
				/**
				 * Return the number of values in this array.
				 */
				public length(): number;
				/**
				 * Return the number of indices in the array that actually have data.
				 */
				public getIndexCount(): number;
				/**
				 * Return an index in the array that has data. 
				 * @param at The index you would like to returned, ranging from 0 to
				 */
				public getIndex(at: number): number;
				/**
				 * Return the Resources object this array was loaded from.
				 */
				public getResources(): android.content.res.Resources;
				/**
				 * Retrieve the styled string value for the attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 */
				public getText(index: number): string;
				/**
				 * Retrieve the string value for the attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 */
				public getString(index: number): string;
				/**
				 * Retrieve the string value for the attribute at <var>index</var>, but only if that string comes from an immediate value in an XML file. That is, this does not allow references to string resources, string attributes, or conversions from other types. As such, this method will only return strings for TypedArray objects that come from attributes in an XML file. 
				 * @param index Index of attribute to retrieve.
				 */
				public getNonResourceString(index: number): string;
				/**
				 * Retrieve the boolean value for the attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined.
				 */
				public getBoolean(index: number, defValue: boolean): boolean;
				/**
				 * Retrieve the integer value for the attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined.
				 */
				public getInt(index: number, defValue: number): number;
				/**
				 * Retrieve the float value for the attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue 
				 */
				public getFloat(index: number, defValue: number): number;
				/**
				 * Retrieve the color value for the attribute at <var>index</var>. If the attribute references a color resource holding a complex android.content.res.ColorStateList, then the default color from the set is returned. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getColor(index: number, defValue: number): number;
				/**
				 * Retrieve the ColorStateList for the attribute at <var>index</var>. The value may be either a single solid color or a reference to a color or complex android.content.res.ColorStateList description. 
				 * @param index Index of attribute to retrieve.
				 */
				public getColorStateList(index: number): android.content.res.ColorStateList;
				/**
				 * Retrieve the integer value for the attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getInteger(index: number, defValue: number): number;
				/**
				 * Retrieve a dimensional unit attribute at <var>index</var>. Unit conversions are based on the current DisplayMetrics associated with the resources this TypedArray object came from. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getDimension(index: number, defValue: number): number;
				/**
				 * Retrieve a dimensional unit attribute at <var>index</var> for use as an offset in raw pixels. This is the same as #getDimension, except the returned value is converted to integer pixels for you. An offset conversion involves simply truncating the base value to an integer. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getDimensionPixelOffset(index: number, defValue: number): number;
				/**
				 * Retrieve a dimensional unit attribute at <var>index</var> for use as a size in raw pixels. This is the same as #getDimension, except the returned value is converted to integer pixels for use as a size. A size conversion involves rounding the base value, and ensuring that a non-zero base value is at least one pixel in size. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getDimensionPixelSize(index: number, defValue: number): number;
				/**
				 * Special version of #getDimensionPixelSize for retrieving android.view.ViewGroup's layout_width and layout_height attributes. This is only here for performance reasons; applications should use #getDimensionPixelSize. 
				 * @param index Index of the attribute to retrieve.
				 * @param name Textual name of attribute for error reporting.
				 */
				public getLayoutDimension(index: number, name: string): number;
				/**
				 * Special version of #getDimensionPixelSize for retrieving android.view.ViewGroup's layout_width and layout_height attributes. This is only here for performance reasons; applications should use #getDimensionPixelSize. 
				 * @param index Index of the attribute to retrieve.
				 * @param defValue The default value to return if this attribute is not
				 */
				public getLayoutDimension(index: number, defValue: number): number;
				/**
				 * Retrieve a fractional unit attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 * @param base The base value of this fraction. In other words, a
				 * @param pbase The parent base value of this fraction. In other
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getFraction(index: number, base: number, pbase: number, defValue: number): number;
				/**
				 * Retrieve the resource identifier for the attribute at <var>index</var>. Note that attribute resource as resolved when the overall TypedArray object is retrieved. As a result, this function will return the resource identifier of the final resource value that was found, <em>not</em> necessarily the original resource that was specified by the attribute. 
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getResourceId(index: number, defValue: number): number;
				/**
				 * Retrieve the Drawable for the attribute at <var>index</var>. This gets the resource ID of the selected attribute, and uses Resources#getDrawable Resources.getDrawable of the owning Resources object to retrieve its Drawable. 
				 * @param index Index of attribute to retrieve.
				 */
				public getDrawable(index: number): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the CharSequence[] for the attribute at <var>index</var>. This gets the resource ID of the selected attribute, and uses Resources#getTextArray Resources.getTextArray of the owning Resources object to retrieve its String[]. 
				 * @param index Index of attribute to retrieve.
				 */
				public getTextArray(index: number): native.Array<string>;
				/**
				 * Retrieve the raw TypedValue for the attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 * @param outValue TypedValue object in which to place the attribute's
				 */
				public getValue(index: number, outValue: android.util.TypedValue): boolean;
				/**
				 * Determines whether there is an attribute at <var>index</var>. 
				 * @param index Index of attribute to retrieve.
				 */
				public hasValue(index: number): boolean;
				/**
				 * Retrieve the raw TypedValue for the attribute at <var>index</var> and return a temporary object holding its data. This object is only valid until the next call on to TypedArray. 
				 * @param index Index of attribute to retrieve.
				 */
				public peekValue(index: number): android.util.TypedValue;
				/**
				 * Returns a message about the parser state suitable for printing error messages.
				 */
				public getPositionDescription(): string;
				/**
				 * Give back a previously retrieved array, for later re-use.
				 */
				public recycle(): void;
				public toString(): string;
			}
			/**
			 * The XML parsing interface returned for an XML resource. This is a standard XmlPullParser interface, as well as an extended AttributeSet interface and an additional close() method on this interface for the client to indicate when it is done reading the resource.
			 */
			interface IXmlResourceParser extends org.xmlpull.v1.IXmlPullParser, android.util.IAttributeSet {
				/**
				 * Close this interface to the resource. Calls on the interface are no longer value after this call.
				 */
				close(): void;
				/**
				 * Use this call to change the general behaviour of the parser, such as namespace processing or doctype declaration handling. This method must be called before the first call to next or nextToken. Otherwise, an exception is thrown.
				 */
				setFeature(name: string, state: boolean): void;
				/**
				 * Returns the current value of the given feature.
				 * @param name The name of feature to be retrieved.
				 */
				getFeature(name: string): boolean;
				/**
				 * Set the value of a property.
				 */
				setProperty(name: string, value: any): void;
				/**
				 * Look up the value of a property.
				 * @param name The name of property to be retrieved.
				 */
				getProperty(name: string): any;
				/**
				 * Set the input source for parser to the given reader and resets the parser. The event type is set to the initial value START_DOCUMENT. Setting the reader to null will just stop parsing and reset parser state, allowing the parser to free internal resources such as parsing buffers.
				 */
				setInput(input: java.io.Reader): void;
				/**
				 * Sets the input stream the parser is going to process. This call resets the parser state and sets the event type to the initial value START_DOCUMENT.
				 * @param inputStream contains a raw byte input stream of possibly
				 * @param inputEncoding if not null it MUST be used as encoding for inputStream
				 */
				setInput(inputStream: java.io.InputStream, inputEncoding: string): void;
				/**
				 * Returns the input encoding if known, null otherwise. If setInput(InputStream, inputEncoding) was called with an inputEncoding value other than null, this value must be returned from this method. Otherwise, if inputEncoding is null and the parser supports the encoding detection feature (http://xmlpull.org/v1/doc/features.html#detect-encoding), it must return the detected encoding. If setInput(Reader) was called, null is returned. After first call to next if XML declaration was present this method will return encoding declared.
				 */
				getInputEncoding(): string;
				/**
				 * Set new value for entity replacement text as defined in <a href="http://www.w3.org/TR/REC-xml#intern-replacement">XML 1.0 Section 4.5 Construction of Internal Entity Replacement Text</a>. If FEATURE_PROCESS_DOCDECL or FEATURE_VALIDATION are set, calling this function will result in an exception -- when processing of DOCDECL is enabled, there is no need to the entity replacement text manually.
				 */
				defineEntityReplacementText(entityName: string, replacementText: string): void;
				/**
				 * Returns the numbers of elements in the namespace stack for the given depth. If namespaces are not enabled, 0 is returned.
				 */
				getNamespaceCount(depth: number): number;
				/**
				 * Returns the namespace prefix for the given position in the namespace stack. Default namespace declaration (xmlns='...') will have null as prefix. If the given index is out of range, an exception is thrown.
				 */
				getNamespacePrefix(pos: number): string;
				/**
				 * Returns the namespace URI for the given position in the namespace stack If the position is out of range, an exception is thrown.
				 */
				getNamespaceUri(pos: number): string;
				/**
				 * Returns the URI corresponding to the given prefix, depending on current state of the parser.
				 */
				getNamespace(prefix: string): string;
				/**
				 * Returns the current depth of the element. Outside the root element, the depth is 0. The depth is incremented by 1 when a start tag is reached. The depth is decremented AFTER the end tag event was observed.
				 */
				getDepth(): number;
				/**
				 * Returns a short text describing the current parser state, including the position, a description of the current event and the data source if known. This method is especially useful to provide meaningful error messages and for debugging purposes.
				 */
				getPositionDescription(): string;
				/**
				 * Returns the current line number, starting from 1. When the parser does not know the current line number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				getLineNumber(): number;
				/**
				 * Returns the current column number, starting from 0. When the parser does not know the current column number or can not determine it, -1 is returned (e.g. for WBXML).
				 */
				getColumnNumber(): number;
				/**
				 * Checks whether the current TEXT event contains only whitespace characters. For IGNORABLE_WHITESPACE, this is always true. For TEXT and CDSECT, false is returned when the current event text contains at least one non-white space character. For any other event type an exception is thrown.
				 */
				isWhitespace(): boolean;
				/**
				 * Returns the text content of the current event as String. The value returned depends on current event type, for example for TEXT event it is element content (this is typical case when next() is used).
				 */
				getText(): string;
				/**
				 * Returns the buffer that contains the text of the current event, as well as the start offset and length relevant for the current event. See getText(), next() and nextToken() for description of possible returned values.
				 * @param holderForStartAndLength Must hold an 2-element int array
				 */
				getTextCharacters(holderForStartAndLength: native.Array<number>): native.Array<string>;
				/**
				 * Returns the namespace URI of the current element. The default namespace is represented as empty string. If namespaces are not enabled, an empty String ("") is always returned. The current event must be START_TAG or END_TAG; otherwise, null is returned.
				 */
				getNamespace(): string;
				/**
				 * For START_TAG or END_TAG events, the (local) name of the current element is returned when namespaces are enabled. When namespace processing is disabled, the raw name is returned. For ENTITY_REF events, the entity name is returned. If the current event is not START_TAG, END_TAG, or ENTITY_REF, null is returned.
				 */
				getName(): string;
				/**
				 * Returns the prefix of the current element. If the element is in the default namespace (has no prefix), null is returned. If namespaces are not enabled, or the current event is not START_TAG or END_TAG, null is returned.
				 */
				getPrefix(): string;
				/**
				 * Returns true if the current event is START_TAG and the tag is degenerated (e.g. &lt;foobar/&gt;).
				 */
				isEmptyElementTag(): boolean;
				/**
				 * Returns the number of attributes of the current start tag, or -1 if the current event type is not START_TAG
				 */
				getAttributeCount(): number;
				/**
				 * Returns the namespace URI of the attribute with the given index (starts from 0). Returns an empty string ("") if namespaces are not enabled or the attribute has no namespace. Throws an IndexOutOfBoundsException if the index is out of range or the current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeNamespace(index: number): string;
				/**
				 * Returns the local name of the specified attribute if namespaces are enabled or just attribute name if namespaces are disabled. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeName(index: number): string;
				/**
				 * Returns the prefix of the specified attribute Returns null if the element has no prefix. If namespaces are disabled it will always return null. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributePrefix(index: number): string;
				/**
				 * Returns the type of the specified attribute If parser is non-validating it MUST return CDATA.
				 * @param index zero-based index of attribute
				 */
				getAttributeType(index: number): string;
				/**
				 * Returns if the specified attribute was not in input was declared in XML. If parser is non-validating it MUST always return false. This information is part of XML infoset:
				 * @param index zero-based index of attribute
				 */
				isAttributeDefault(index: number): boolean;
				/**
				 * Returns the given attributes value. Throws an IndexOutOfBoundsException if the index is out of range or current event type is not START_TAG.
				 * @param index zero-based index of attribute
				 */
				getAttributeValue(index: number): string;
				/**
				 * Returns the attributes value identified by namespace URI and namespace localName. If namespaces are disabled namespace must be null. If current event type is not START_TAG then IndexOutOfBoundsException will be thrown.
				 * @param namespace Namespace of the attribute if namespaces are enabled otherwise must be null
				 * @param name If namespaces enabled local name of attribute otherwise just attribute name
				 */
				getAttributeValue(namespace: string, name: string): string;
				/**
				 * Returns the type of the current event (START_TAG, END_TAG, TEXT, etc.)
				 */
				getEventType(): number;
				/**
				 * Get next parsing event - element content wil be coalesced and only one TEXT event must be returned for whole element content (comments and processing instructions will be ignored and entity references must be expanded or exception mus be thrown if entity reference can not be expanded). If element content is empty (content is "") then no TEXT event will be reported.
				 */
				next(): number;
				/**
				 * This method works similarly to next() but will expose additional event types (COMMENT, CDSECT, DOCDECL, ENTITY_REF, PROCESSING_INSTRUCTION, or IGNORABLE_WHITESPACE) if they are available in input.
				 */
				nextToken(): number;
				/**
				 * Test if the current event is of the given type and if the namespace and name do match. null will match any namespace and any name. If the test is not passed, an exception is thrown. The exception text indicates the parser position, the expected event and the current event that is not meeting the requirement.
				 */
				require(type: number, namespace: string, name: string): void;
				/**
				 * If current event is START_TAG then if next element is TEXT then element content is returned or if next event is END_TAG then empty string is returned, otherwise exception is thrown. After calling this function successfully parser will be positioned on END_TAG. 
				 */
				nextText(): string;
				/**
				 * Call next() and return event if it is START_TAG or END_TAG otherwise throw an exception. It will skip whitespace TEXT before actual tag if any.
				 */
				nextTag(): number;
				/**
				 * Return the resource ID associated with the given attribute name. This will be the identifier for an attribute resource, which can be used by styles. Returns 0 if there is no resource associated with this attribute. 
				 * @param index Index of the desired attribute, 0...count-1.
				 */
				getAttributeNameResource(index: number): number;
				/**
				 * Return the index of the value of 'attribute' in the list 'options'.
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute Name of attribute to retrieve.
				 * @param options List of strings whose values we are checking against.
				 * @param defaultValue Value returned if attribute doesn't exist or no
				 */
				getAttributeListValue(namespace: string, attribute: string, options: native.Array<string>, defaultValue: number): number;
				/**
				 * Return the boolean value of 'attribute'. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeBooleanValue(namespace: string, attribute: string, defaultValue: boolean): boolean;
				/**
				 * Return the value of 'attribute' as a resource identifier. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeResourceValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the integer value of 'attribute'. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeIntValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the boolean value of 'attribute' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeUnsignedIntValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the float value of 'attribute'. 
				 * @param namespace Namespace of attribute to retrieve.
				 * @param attribute The attribute to retrieve.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeFloatValue(namespace: string, attribute: string, defaultValue: number): number;
				/**
				 * Return the index of the value of attribute at 'index' in the list 'options'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param options List of strings whose values we are checking against.
				 * @param defaultValue Value returned if attribute doesn't exist or no
				 */
				getAttributeListValue(index: number, options: native.Array<string>, defaultValue: number): number;
				/**
				 * Return the boolean value of attribute at 'index'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeBooleanValue(index: number, defaultValue: boolean): boolean;
				/**
				 * Return the value of attribute at 'index' as a resource identifier. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeResourceValue(index: number, defaultValue: number): number;
				/**
				 * Return the integer value of attribute at 'index'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeIntValue(index: number, defaultValue: number): number;
				/**
				 * Return the integer value of attribute at 'index' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeUnsignedIntValue(index: number, defaultValue: number): number;
				/**
				 * Return the float value of attribute at 'index'. 
				 * @param index Index of the desired attribute, 0...count-1.
				 * @param defaultValue What to return if the attribute isn't found.
				 */
				getAttributeFloatValue(index: number, defaultValue: number): number;
				/**
				 * Return the value of the "id" attribute or null if there is not one. Equivalent to getAttributeValue(null, "id"). 
				 */
				getIdAttribute(): string;
				/**
				 * Return the value of the "class" attribute or null if there is not one. Equivalent to getAttributeValue(null, "class"). 
				 */
				getClassAttribute(): string;
				/**
				 * Return the integer value of the "id" attribute or defaultValue if there is none. Equivalent to getAttributeResourceValue(null, "id", defaultValue);
				 * @param defaultValue What to return if the "id" attribute isn't found.
				 */
				getIdAttributeResourceValue(defaultValue: number): number;
				getStyleAttribute(): number;
			}
			/**
			 * Custom implementation of TypedArray to handle non compiled resources.
			 */
			export class BridgeTypedArray extends android.content.res.TypedArray {
				static class: java.lang.Class<android.content.res.BridgeTypedArray>;
				/**
				 * Seals the array after all calls to #bridgeSetValue(int, String, ResourceValue) have been done. <p/>This allows to compute the list of non default values, permitting #getIndexCount() to return the proper value.
				 */
				public sealArray(): void;
				/**
				 * Return the number of values in this array.
				 */
				public length(): number;
				/**
				 * Return the Resources object this array was loaded from.
				 */
				public getResources(): android.content.res.Resources;
				/**
				 * Retrieve the styled string value for the attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 */
				public getText(index: number): string;
				/**
				 * Retrieve the string value for the attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 */
				public getString(index: number): string;
				/**
				 * Retrieve the boolean value for the attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined.
				 */
				public getBoolean(index: number, defValue: boolean): boolean;
				/**
				 * Retrieve the integer value for the attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined.
				 */
				public getInt(index: number, defValue: number): number;
				/**
				 * Retrieve the float value for the attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 * @param defValue 
				 */
				public getFloat(index: number, defValue: number): number;
				/**
				 * Retrieve the color value for the attribute at <var>index</var>. If the attribute references a color resource holding a complex android.content.res.ColorStateList, then the default color from the set is returned.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getColor(index: number, defValue: number): number;
				/**
				 * Retrieve the ColorStateList for the attribute at <var>index</var>. The value may be either a single solid color or a reference to a color or complex android.content.res.ColorStateList description.
				 * @param index Index of attribute to retrieve.
				 */
				public getColorStateList(index: number): android.content.res.ColorStateList;
				/**
				 * Retrieve the integer value for the attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getInteger(index: number, defValue: number): number;
				/**
				 * Retrieve a dimensional unit attribute at <var>index</var>. Unit conversions are based on the current DisplayMetrics associated with the resources this TypedArray object came from.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getDimension(index: number, defValue: number): number;
				/**
				 * Retrieve a dimensional unit attribute at <var>index</var> for use as an offset in raw pixels. This is the same as #getDimension, except the returned value is converted to integer pixels for you. An offset conversion involves simply truncating the base value to an integer.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getDimensionPixelOffset(index: number, defValue: number): number;
				/**
				 * Retrieve a dimensional unit attribute at <var>index</var> for use as a size in raw pixels. This is the same as #getDimension, except the returned value is converted to integer pixels for use as a size. A size conversion involves rounding the base value, and ensuring that a non-zero base value is at least one pixel in size.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getDimensionPixelSize(index: number, defValue: number): number;
				/**
				 * Special version of #getDimensionPixelSize for retrieving android.view.ViewGroup's layout_width and layout_height attributes. This is only here for performance reasons; applications should use #getDimensionPixelSize.
				 * @param index Index of the attribute to retrieve.
				 * @param name Textual name of attribute for error reporting.
				 */
				public getLayoutDimension(index: number, name: string): number;
				public getLayoutDimension(index: number, defValue: number): number;
				/**
				 * Retrieve a fractional unit attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 * @param base The base value of this fraction. In other words, a
				 * @param pbase The parent base value of this fraction. In other
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getFraction(index: number, base: number, pbase: number, defValue: number): number;
				/**
				 * Retrieve the resource identifier for the attribute at <var>index</var>. Note that attribute resource as resolved when the overall TypedArray object is retrieved. As a result, this function will return the resource identifier of the final resource value that was found, <em>not</em> necessarily the original resource that was specified by the attribute.
				 * @param index Index of attribute to retrieve.
				 * @param defValue Value to return if the attribute is not defined or
				 */
				public getResourceId(index: number, defValue: number): number;
				/**
				 * Retrieve the Drawable for the attribute at <var>index</var>. This gets the resource ID of the selected attribute, and uses Resources#getDrawable Resources.getDrawable of the owning Resources object to retrieve its Drawable.
				 * @param index Index of attribute to retrieve.
				 */
				public getDrawable(index: number): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the CharSequence[] for the attribute at <var>index</var>. This gets the resource ID of the selected attribute, and uses Resources#getTextArray Resources.getTextArray of the owning Resources object to retrieve its String[].
				 * @param index Index of attribute to retrieve.
				 */
				public getTextArray(index: number): native.Array<string>;
				/**
				 * Retrieve the raw TypedValue for the attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 * @param outValue TypedValue object in which to place the attribute's
				 */
				public getValue(index: number, outValue: android.util.TypedValue): boolean;
				/**
				 * Determines whether there is an attribute at <var>index</var>.
				 * @param index Index of attribute to retrieve.
				 */
				public hasValue(index: number): boolean;
				/**
				 * Retrieve the raw TypedValue for the attribute at <var>index</var> and return a temporary object holding its data. This object is only valid until the next call on to TypedArray.
				 * @param index Index of attribute to retrieve.
				 */
				public peekValue(index: number): android.util.TypedValue;
				/**
				 * Returns a message about the parser state suitable for printing error messages.
				 */
				public getPositionDescription(): string;
				/**
				 * Give back a previously retrieved StyledAttributes, for later re-use.
				 */
				public recycle(): void;
				public toString(): string;
			}
			/**
			 * Class for accessing an application's resources. This sits on top of the asset manager of the application (accessible through #getAssets) and provides a high-level API for getting typed data from the assets.
			 */
			export class Resources extends java.lang.Object {
				/**
				 * Create a new Resources object on top of an existing set of assets in an AssetManager. 
				 * @param assets Previously created AssetManager.
				 * @param metrics Current display metrics to consider when
				 * @param config Desired device configuration to consider when
				 */
				constructor(assets: android.content.res.AssetManager, metrics: android.util.DisplayMetrics, config: android.content.res.Configuration);
				static class: java.lang.Class<android.content.res.Resources>;
				/**
				 * Return a global shared Resources object that provides access to only system resources (no application resources), and is not configured for the current screen (can not use dimension units, does not change based on orientation, etc).
				 */
				public static getSystem(): android.content.res.Resources;
				/**
				 * Return the string value associated with a particular resource ID. The returned object will be a String if this is a plain string; it will be some other type of CharSequence if it is styled. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getText(id: number): string;
				/**
				 * Return the character sequence associated with a particular resource ID for a particular numerical quantity.
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param quantity The number used to get the correct string for the current language's
				 */
				public getQuantityText(id: number, quantity: number): string;
				/**
				 * Return the string value associated with a particular resource ID. It will be stripped of any styled text information. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getString(id: number): string;
				/**
				 * Return the string value associated with a particular resource ID, substituting the format arguments as defined in java.util.Formatter and java.lang.String#format. It will be stripped of any styled text information. 
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param formatArgs The format arguments that will be used for substitution.
				 */
				public getString(id: number, formatArgs: native.Array<any>): string;
				/**
				 * Return the string value associated with a particular resource ID for a particular numerical quantity, substituting the format arguments as defined in java.util.Formatter and java.lang.String#format. It will be stripped of any styled text information. 
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param quantity The number used to get the correct string for the current language's
				 * @param formatArgs The format arguments that will be used for substitution.
				 */
				public getQuantityString(id: number, quantity: number, formatArgs: native.Array<any>): string;
				/**
				 * Return the string value associated with a particular resource ID for a particular numerical quantity.
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param quantity The number used to get the correct string for the current language's
				 */
				public getQuantityString(id: number, quantity: number): string;
				/**
				 * Return the string value associated with a particular resource ID. The returned object will be a String if this is a plain string; it will be some other type of CharSequence if it is styled. 
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param def The default CharSequence to return.
				 */
				public getText(id: number, def: string): string;
				/**
				 * Return the styled text array associated with a particular resource ID.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getTextArray(id: number): native.Array<string>;
				/**
				 * Return the string array associated with a particular resource ID.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getStringArray(id: number): native.Array<string>;
				/**
				 * Return the int array associated with a particular resource ID.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getIntArray(id: number): native.Array<number>;
				/**
				 * Return an array of heterogeneous values.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public obtainTypedArray(id: number): android.content.res.TypedArray;
				/**
				 * Retrieve a dimensional for a particular resource ID. Unit conversions are based on the current DisplayMetrics associated with the resources. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getDimension(id: number): number;
				/**
				 * Retrieve a dimensional for a particular resource ID for use as an offset in raw pixels. This is the same as #getDimension, except the returned value is converted to integer pixels for you. An offset conversion involves simply truncating the base value to an integer. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getDimensionPixelOffset(id: number): number;
				/**
				 * Retrieve a dimensional for a particular resource ID for use as a size in raw pixels. This is the same as #getDimension, except the returned value is converted to integer pixels for use as a size. A size conversion involves rounding the base value, and ensuring that a non-zero base value is at least one pixel in size. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getDimensionPixelSize(id: number): number;
				/**
				 * Retrieve a fractional unit for a particular resource ID. 
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param base The base value of this fraction. In other words, a
				 * @param pbase The parent base value of this fraction. In other
				 */
				public getFraction(id: number, base: number, pbase: number): number;
				/**
				 * Return a drawable object associated with a particular resource ID. Various types of objects will be returned depending on the underlying resource -- for example, a solid color, PNG image, scalable image, etc. The Drawable API hides these implementation details.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getDrawable(id: number): android.graphics.drawable.Drawable;
				/**
				 * Return a drawable object associated with a particular resource ID for the given screen density in DPI. This will set the drawable's density to be the device's density multiplied by the ratio of actual drawable density to requested density. This allows the drawable to be scaled up to the correct size if needed. Various types of objects will be returned depending on the underlying resource -- for example, a solid color, PNG image, scalable image, etc. The Drawable API hides these implementation details. 
				 * @param id The desired resource identifier, as generated by the aapt tool.
				 * @param density the desired screen density indicated by the resource as
				 */
				public getDrawableForDensity(id: number, density: number): android.graphics.drawable.Drawable;
				/**
				 * Return a movie object associated with the particular resource ID.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getMovie(id: number): android.graphics.Movie;
				/**
				 * Return a color integer associated with a particular resource ID. If the resource holds a complex android.content.res.ColorStateList, then the default color from the set is returned.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getColor(id: number): number;
				/**
				 * Return a color state list associated with a particular resource ID. The resource may contain either a single raw color value, or a complex android.content.res.ColorStateList holding multiple possible colors.
				 * @param id The desired resource identifier of a {@link ColorStateList},
				 */
				public getColorStateList(id: number): android.content.res.ColorStateList;
				/**
				 * Return a boolean associated with a particular resource ID. This can be used with any integral resource value, and will return true if it is non-zero.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getBoolean(id: number): boolean;
				/**
				 * Return an integer associated with a particular resource ID.
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getInteger(id: number): number;
				/**
				 * Return an XmlResourceParser through which you can read a view layout description for the given resource ID. This parser has limited functionality -- in particular, you can't change its input, and only the high-level events are available. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getLayout(id: number): android.content.res.IXmlResourceParser;
				/**
				 * Return an XmlResourceParser through which you can read an animation description for the given resource ID. This parser has limited functionality -- in particular, you can't change its input, and only the high-level events are available. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getAnimation(id: number): android.content.res.IXmlResourceParser;
				/**
				 * Return an XmlResourceParser through which you can read a generic XML resource for the given resource ID. 
				 * @param id The desired resource identifier, as generated by the aapt
				 */
				public getXml(id: number): android.content.res.IXmlResourceParser;
				/**
				 * Open a data stream for reading a raw resource. This can only be used with resources whose value is the name of an asset files -- that is, it can be used to open drawable, sound, and raw resources; it will fail on string and color resources. 
				 * @param id The resource identifier to open, as generated by the appt
				 */
				public openRawResource(id: number): java.io.InputStream;
				/**
				 * Open a data stream for reading a raw resource. This can only be used with resources whose value is the name of an asset file -- that is, it can be used to open drawable, sound, and raw resources; it will fail on string and color resources.
				 * @param id The resource identifier to open, as generated by the appt tool.
				 * @param value The TypedValue object to hold the resource information.
				 */
				public openRawResource(id: number, value: android.util.TypedValue): java.io.InputStream;
				/**
				 * Open a file descriptor for reading a raw resource. This can only be used with resources whose value is the name of an asset files -- that is, it can be used to open drawable, sound, and raw resources; it will fail on string and color resources. 
				 * @param id The resource identifier to open, as generated by the appt
				 */
				public openRawResourceFd(id: number): android.content.res.AssetFileDescriptor;
				/**
				 * Return the raw data associated with a particular resource ID. 
				 * @param id The desired resource identifier, as generated by the aapt
				 * @param outValue Object in which to place the resource data.
				 * @param resolveRefs If true, a resource that is a reference to another
				 */
				public getValue(id: number, outValue: android.util.TypedValue, resolveRefs: boolean): void;
				/**
				 * Get the raw value associated with a resource with associated density. 
				 * @param id resource identifier
				 * @param density density in DPI
				 * @param outValue resolveRefs If true, a resource that is a reference to another
				 * @param resolveRefs 
				 */
				public getValueForDensity(id: number, density: number, outValue: android.util.TypedValue, resolveRefs: boolean): void;
				/**
				 * Return the raw data associated with a particular resource ID. See getIdentifier() for information on how names are mapped to resource IDs, and getString(int) for information on how string resources are retrieved. 
				 * @param name The name of the desired resource. This is passed to
				 * @param outValue Object in which to place the resource data.
				 * @param resolveRefs If true, a resource that is a reference to another
				 */
				public getValue(name: string, outValue: android.util.TypedValue, resolveRefs: boolean): void;
				/**
				 * Generate a new Theme object for this set of Resources. It initially starts out empty. 
				 */
				public newTheme(): android.content.res.Resources.Theme;
				/**
				 * Retrieve a set of basic attribute values from an AttributeSet, not performing styling of them using a theme and/or style resources. 
				 * @param set The current attribute values to retrieve.
				 * @param attrs The specific attributes to be retrieved.
				 */
				public obtainAttributes(set: android.util.IAttributeSet, attrs: native.Array<number>): android.content.res.TypedArray;
				/**
				 * Store the newly updated configuration.
				 */
				public updateConfiguration(config: android.content.res.Configuration, metrics: android.util.DisplayMetrics): void;
				/**
				 * Return the current display metrics that are in effect for this resource object. The returned object should be treated as read-only. 
				 */
				public getDisplayMetrics(): android.util.DisplayMetrics;
				/**
				 * Return the current configuration that is in effect for this resource object. The returned object should be treated as read-only. 
				 */
				public getConfiguration(): android.content.res.Configuration;
				/**
				 * Return a resource identifier for the given resource name. A fully qualified resource name is of the form "package:type/entry". The first two components (package and type) are optional if defType and defPackage, respectively, are specified here. 
				 * @param name The name of the desired resource.
				 * @param defType Optional default resource type to find, if "type/" is
				 * @param defPackage Optional default package to find, if "package:" is
				 */
				public getIdentifier(name: string, defType: string, defPackage: string): number;
				/**
				 * Return the full name for a given resource identifier. This name is a single string of the form "package:type/entry". 
				 * @param resid The resource identifier whose name is to be retrieved.
				 */
				public getResourceName(resid: number): string;
				/**
				 * Return the package name for a given resource identifier. 
				 * @param resid The resource identifier whose package name is to be
				 */
				public getResourcePackageName(resid: number): string;
				/**
				 * Return the type name for a given resource identifier. 
				 * @param resid The resource identifier whose type name is to be
				 */
				public getResourceTypeName(resid: number): string;
				/**
				 * Return the entry name for a given resource identifier. 
				 * @param resid The resource identifier whose entry name is to be
				 */
				public getResourceEntryName(resid: number): string;
				/**
				 * Parse a series of android.R.styleable#Extra &lt;extra&gt; tags from an XML file. You call this when you are at the parent tag of the extra tags, and it will return once all of the child tags have been parsed. This will call #parseBundleExtra for each extra tag encountered. 
				 * @param parser The parser from which to retrieve the extras.
				 * @param outBundle A Bundle in which to place all parsed extras.
				 */
				public parseBundleExtras(parser: android.content.res.IXmlResourceParser, outBundle: android.os.Bundle): void;
				/**
				 * Parse a name/value pair out of an XML tag holding that data. The AttributeSet must be holding the data defined by android.R.styleable#Extra. The following value types are supported: <ul> <li> TypedValue#TYPE_STRING: Bundle#putCharSequence Bundle.putCharSequence() <li> TypedValue#TYPE_INT_BOOLEAN: Bundle#putCharSequence Bundle.putBoolean() <li> TypedValue#TYPE_FIRST_INT-TypedValue#TYPE_LAST_INT: Bundle#putCharSequence Bundle.putBoolean() <li> TypedValue#TYPE_FLOAT: Bundle#putCharSequence Bundle.putFloat() </ul> 
				 * @param tagName The name of the tag these attributes come from; this is
				 * @param attrs The attributes from which to retrieve the name/value pair.
				 * @param outBundle The Bundle in which to place the parsed value.
				 */
				public parseBundleExtra(tagName: string, attrs: android.util.IAttributeSet, outBundle: android.os.Bundle): void;
				/**
				 * Retrieve underlying AssetManager storage for these resources.
				 */
				public getAssets(): android.content.res.AssetManager;
				/**
				 * Call this to remove all cached loaded layout resources from the Resources object. Only intended for use with performance testing tools.
				 */
				public flushLayoutCache(): void;
				/**
				 * Called by zygote when it is done preloading resources, to change back to normal Resources operation.
				 */
				public finishPreloading(): void;
				loadDrawable(value: android.util.TypedValue, id: number): android.graphics.drawable.Drawable;
				loadColorStateList(value: android.util.TypedValue, id: number): android.content.res.ColorStateList;
				loadXmlResourceParser(id: number, type: string): android.content.res.IXmlResourceParser;
				loadXmlResourceParser(file: string, id: number, assetCookie: number, type: string): android.content.res.IXmlResourceParser;
			}
			export module Resources {
				/**
				 * This exception is thrown by the resource APIs when a requested resource can not be found.
				 */
				export class NotFoundException extends java.lang.RuntimeException {
					constructor();
					constructor(name: string);
					static class: java.lang.Class<android.content.res.Resources.NotFoundException>;
				}
				/**
				 * This class holds the current attribute values for a particular theme. In other words, a Theme is a set of values for resource attributes; these are used in conjunction with TypedArray to resolve the final value for an attribute. 
				 */
				export class Theme extends java.lang.Object {
					static class: java.lang.Class<android.content.res.Resources.Theme>;
					/**
					 * Place new attribute values into the theme. The style resource specified by <var>resid</var> will be retrieved from this Theme's resources, its values placed into the Theme object. 
					 * @param resid The resource ID of a style resource from which to
					 * @param force If true, values in the style resource will always be
					 */
					public applyStyle(resid: number, force: boolean): void;
					/**
					 * Set this theme to hold the same contents as the theme <var>other</var>. If both of these themes are from the same Resources object, they will be identical after this function returns. If they are from different Resources, only the resources they have in common will be set in this theme. 
					 * @param other The existing Theme to copy from.
					 */
					public setTo(other: android.content.res.Resources.Theme): void;
					/**
					 * Return a StyledAttributes holding the values defined by <var>Theme</var> which are listed in <var>attrs</var>. 
					 * @param attrs The desired attributes.
					 */
					public obtainStyledAttributes(attrs: native.Array<number>): android.content.res.TypedArray;
					/**
					 * Return a StyledAttributes holding the values defined by the style resource <var>resid</var> which are listed in <var>attrs</var>. 
					 * @param resid The desired style resource.
					 * @param attrs The desired attributes in the style.
					 */
					public obtainStyledAttributes(resid: number, attrs: native.Array<number>): android.content.res.TypedArray;
					/**
					 * Return a StyledAttributes holding the attribute values in <var>set</var> that are listed in <var>attrs</var>. In addition, if the given AttributeSet specifies a style class (through the "style" attribute), that style will be applied on top of the base attributes it defines. 
					 * @param set The base set of attribute values. May be null.
					 * @param attrs The desired attributes to be retrieved.
					 * @param defStyleAttr An attribute in the current theme that contains a
					 * @param defStyleRes A resource identifier of a style resource that
					 */
					public obtainStyledAttributes(set: android.util.IAttributeSet, attrs: native.Array<number>, defStyleAttr: number, defStyleRes: number): android.content.res.TypedArray;
					/**
					 * Retrieve the value of an attribute in the Theme. The contents of <var>outValue</var> are ultimately filled in by Resources#getValue. 
					 * @param resid The resource identifier of the desired theme
					 * @param outValue Filled in with the ultimate resource value supplied
					 * @param resolveRefs If true, resource references will be walked; if
					 */
					public resolveAttribute(resid: number, outValue: android.util.TypedValue, resolveRefs: boolean): boolean;
					/**
					 * Print contents of this theme out to the log. For debugging only. 
					 * @param priority The log priority to use.
					 * @param tag The log tag to use.
					 * @param prefix Text to prefix each line printed.
					 */
					public dump(priority: number, tag: string, prefix: string): void;
					protected finalize(): void;
				}
			}
		}
		/**
		 * The set of callback APIs that are common to all application components (android.app.Activity, android.app.Service, ContentProvider, and android.app.Application).
		 */
		interface IComponentCallbacks {
			/**
			 * Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources. 
			 * @param newConfig The new device configuration.
			 */
			onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * This is called when the overall system is running low on memory, and would like actively running process to try to tighten their belt. While the exact point at which this will be called is not defined, generally it will happen around the time all background process have been killed, that is before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing. 
			 */
			onLowMemory(): void;
		}
		export class TestContext extends android.content.ContextWrapper {
			constructor(resolver: android.content.ContentResolver, realContext: android.content.Context);
			static class: java.lang.Class<android.content.TestContext>;
			public getFilesDir(): java.io.File;
			public enforceCallingOrSelfPermission(permission: string, message: string): void;
			public sendBroadcast(intent: android.content.Intent): void;
			public getContentResolver(): android.content.ContentResolver;
			sendBroadcast(intent: android.content.Intent, receiverPermission: string): void;
		}
		/**
		 * Value type that represents a SyncAdapterType. This object overrides #equals and #hashCode, making it suitable for use as the key of a java.util.Map
		 */
		export class SyncAdapterType extends java.lang.Object implements android.os.IParcelable {
			constructor(authority: string, accountType: string, userVisible: boolean, supportsUploading: boolean);
			constructor(source: android.os.Parcel);
			authority: string;
			accountType: string;
			isKey: boolean;
			static CREATOR: android.os.Parcelable.ICreator<android.content.SyncAdapterType>;
			static class: java.lang.Class<android.content.SyncAdapterType>;
			public supportsUploading(): boolean;
			public isUserVisible(): boolean;
			public allowParallelSyncs(): boolean;
			/**
			 * If true then the SyncManager will never issue an initialization sync to the SyncAdapter and will instead automatically call ContentResolver#setIsSyncable(android.accounts.Account, String, int) with a value of 1 for each account and provider that this sync adapter supports.
			 */
			public isAlwaysSyncable(): boolean;
			public getSettingsActivity(): string;
			public static newKey(authority: string, accountType: string): android.content.SyncAdapterType;
			public equals(o: any): boolean;
			public hashCode(): number;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Value type that contains information about a periodic sync. Is parcelable, making it suitable for passing in an IPC.
		 */
		export class PeriodicSync extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Creates a new PeriodicSync, copying the Bundle
			 */
			constructor(account: android.accounts.Account, authority: string, extras: android.os.Bundle, period: number);
			/**
			 * The account to be synced
			 */
			account: android.accounts.Account;
			/**
			 * The authority of the sync
			 */
			authority: string;
			/**
			 * Any extras that parameters that are to be passed to the sync adapter.
			 */
			extras: android.os.Bundle;
			/**
			 * How frequently the sync should be scheduled, in seconds.
			 */
			period: number;
			static CREATOR: android.os.Parcelable.ICreator<android.content.PeriodicSync>;
			static class: java.lang.Class<android.content.PeriodicSync>;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public equals(o: any): boolean;
		}
		/**
		 * A helper class to help make handling asynchronous ContentResolver queries easier.
		 */
		export class AsyncQueryHandler extends android.os.Handler {
			constructor(cr: android.content.ContentResolver);
			static class: java.lang.Class<android.content.AsyncQueryHandler>;
			WorkerHandler: {
	new (looper: android.os.Looper): android.content.AsyncQueryHandler.WorkerHandler;
};
			protected createHandler(looper: android.os.Looper): android.os.Handler;
			/**
			 * This method begins an asynchronous query. When the query is done #onQueryComplete is called.
			 * @param token A token passed into {@link #onQueryComplete} to identify
			 * @param cookie An object that gets passed into {@link #onQueryComplete}
			 * @param uri The URI, using the content:// scheme, for the content to
			 * @param projection A list of which columns to return. Passing null will
			 * @param selection A filter declaring which rows to return, formatted as an
			 * @param selectionArgs You may include ?s in selection, which will be
			 * @param orderBy How to order the rows, formatted as an SQL ORDER BY
			 */
			public startQuery(token: number, cookie: any, uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, orderBy: string): void;
			/**
			 * Attempts to cancel operation that has not already started. Note that there is no guarantee that the operation will be canceled. They still may result in a call to on[Query/Insert/Update/Delete]Complete after this call has completed.
			 * @param token The token representing the operation to be canceled.
			 */
			public cancelOperation(token: number): void;
			/**
			 * This method begins an asynchronous insert. When the insert operation is done #onInsertComplete is called.
			 * @param token A token passed into {@link #onInsertComplete} to identify
			 * @param cookie An object that gets passed into {@link #onInsertComplete}
			 * @param uri the Uri passed to the insert operation.
			 * @param initialValues the ContentValues parameter passed to the insert operation.
			 */
			public startInsert(token: number, cookie: any, uri: android.net.Uri, initialValues: android.content.ContentValues): void;
			/**
			 * This method begins an asynchronous update. When the update operation is done #onUpdateComplete is called.
			 * @param token A token passed into {@link #onUpdateComplete} to identify
			 * @param cookie An object that gets passed into {@link #onUpdateComplete}
			 * @param uri the Uri passed to the update operation.
			 * @param values the ContentValues parameter passed to the update operation.
			 * @param selection 
			 * @param selectionArgs 
			 */
			public startUpdate(token: number, cookie: any, uri: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): void;
			/**
			 * This method begins an asynchronous delete. When the delete operation is done #onDeleteComplete is called.
			 * @param token A token passed into {@link #onDeleteComplete} to identify
			 * @param cookie An object that gets passed into {@link #onDeleteComplete}
			 * @param uri the Uri passed to the delete operation.
			 * @param selection the where clause.
			 * @param selectionArgs 
			 */
			public startDelete(token: number, cookie: any, uri: android.net.Uri, selection: string, selectionArgs: native.Array<string>): void;
			/**
			 * Called when an asynchronous query is completed.
			 * @param token the token to identify the query, passed in from
			 * @param cookie the cookie object passed in from {@link #startQuery}.
			 * @param cursor The cursor holding the results from the query.
			 */
			protected onQueryComplete(token: number, cookie: any, cursor: android.database.ICursor): void;
			/**
			 * Called when an asynchronous insert is completed.
			 * @param token the token to identify the query, passed in from
			 * @param cookie the cookie object that's passed in from
			 * @param uri the uri returned from the insert operation.
			 */
			protected onInsertComplete(token: number, cookie: any, uri: android.net.Uri): void;
			/**
			 * Called when an asynchronous update is completed.
			 * @param token the token to identify the query, passed in from
			 * @param cookie the cookie object that's passed in from
			 * @param result the result returned from the update operation
			 */
			protected onUpdateComplete(token: number, cookie: any, result: number): void;
			/**
			 * Called when an asynchronous delete is completed.
			 * @param token the token to identify the query, passed in from
			 * @param cookie the cookie object that's passed in from
			 * @param result the result returned from the delete operation
			 */
			protected onDeleteComplete(token: number, cookie: any, result: number): void;
			public handleMessage(msg: android.os.Message): void;
		}
		export module AsyncQueryHandler {
			export class WorkerArgs extends java.lang.Object {
				uri: android.net.Uri;
				handler: android.os.Handler;
				projection: native.Array<string>;
				selection: string;
				selectionArgs: native.Array<string>;
				orderBy: string;
				result: any;
				cookie: any;
				values: android.content.ContentValues;
				static class: java.lang.Class<android.content.AsyncQueryHandler.WorkerArgs>;
			}
			export class WorkerHandler extends android.os.Handler {
				static class: java.lang.Class<android.content.AsyncQueryHandler.WorkerHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * Base class for code that will receive intents sent by sendBroadcast().
		 */
		export class BroadcastReceiver extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.content.BroadcastReceiver>;
			/**
			 * This method is called when the BroadcastReceiver is receiving an Intent broadcast. During this time you can use the other methods on BroadcastReceiver to view/modify the current result values. This method is always called within the main thread of its process, unless you explicitly asked for it to be scheduled on a different thread using android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler). When it runs on the main thread you should never perform long-running operations in it (there is a timeout of 10 seconds that the system allows before considering the receiver to be blocked and a candidate to be killed). You cannot launch a popup dialog in your implementation of onReceive().
			 * @param context The Context in which the receiver is running.
			 * @param intent The Intent being received.
			 */
			public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			/**
			 * This can be called by an application in #onReceive to allow it to keep the broadcast active after returning from that function. This does <em>not</em> change the expectation of being relatively responsive to the broadcast (finishing it within 10s), but does allow the implementation to move work related to it over to another thread to avoid glitching the main UI thread due to disk IO. 
			 */
			public goAsync(): android.content.BroadcastReceiver.PendingResult;
			/**
			 * Provide a binder to an already-running service. This method is synchronous and will not start the target service if it is not present, so it is safe to call from #onReceive. 
			 * @param myContext The Context that had been passed to {@link #onReceive(Context, Intent)}
			 * @param service The Intent indicating the service you wish to use. See {@link
			 */
			public peekService(myContext: android.content.Context, service: android.content.Intent): android.os.IIBinder;
			/**
			 * Change the current result code of this broadcast; only works with broadcasts sent through Context#sendOrderedBroadcast(Intent, String) Context.sendOrderedBroadcast. Often uses the Activity android.app.Activity#RESULT_CANCELED and android.app.Activity#RESULT_OK constants, though the actual meaning of this value is ultimately up to the broadcaster. <p class="note">This method does not work with non-ordered broadcasts such as those sent with Context#sendBroadcast(Intent) Context.sendBroadcast</p> 
			 * @param code The new result code.
			 */
			public setResultCode(code: number): void;
			/**
			 * Retrieve the current result code, as set by the previous receiver. 
			 */
			public getResultCode(): number;
			/**
			 * Change the current result data of this broadcast; only works with broadcasts sent through Context#sendOrderedBroadcast(Intent, String) Context.sendOrderedBroadcast. This is an arbitrary string whose interpretation is up to the broadcaster. 
			 * @param data The new result data; may be null.
			 */
			public setResultData(data: string): void;
			/**
			 * Retrieve the current result data, as set by the previous receiver. Often this is null. 
			 */
			public getResultData(): string;
			/**
			 * Change the current result extras of this broadcast; only works with broadcasts sent through Context#sendOrderedBroadcast(Intent, String) Context.sendOrderedBroadcast. This is a Bundle holding arbitrary data, whose interpretation is up to the broadcaster. Can be set to null. Calling this method completely replaces the current map (if any). 
			 * @param extras The new extra data map; may be null.
			 */
			public setResultExtras(extras: android.os.Bundle): void;
			/**
			 * Retrieve the current result extra data, as set by the previous receiver. Any changes you make to the returned Map will be propagated to the next receiver. 
			 * @param makeMap If true then a new empty Map will be made for you if the
			 */
			public getResultExtras(makeMap: boolean): android.os.Bundle;
			/**
			 * Change all of the result data returned from this broadcasts; only works with broadcasts sent through Context#sendOrderedBroadcast(Intent, String) Context.sendOrderedBroadcast. All current result data is replaced by the value given to this method. 
			 * @param code The new result code. Often uses the
			 * @param data The new result data. This is an arbitrary
			 * @param extras The new extra data map. This is a Bundle
			 */
			public setResult(code: number, data: string, extras: android.os.Bundle): void;
			/**
			 * Returns the flag indicating whether or not this receiver should abort the current broadcast. 
			 */
			public getAbortBroadcast(): boolean;
			/**
			 * Sets the flag indicating that this receiver should abort the current broadcast; only works with broadcasts sent through Context#sendOrderedBroadcast(Intent, String) Context.sendOrderedBroadcast. This will prevent any other broadcast receivers from receiving the broadcast. It will still call #onReceive of the BroadcastReceiver that the caller of Context#sendOrderedBroadcast(Intent, String) Context.sendOrderedBroadcast passed in. 
			 */
			public abortBroadcast(): void;
			/**
			 * Clears the flag indicating that this receiver should abort the current broadcast.
			 */
			public clearAbortBroadcast(): void;
			/**
			 * Returns true if the receiver is currently processing an ordered broadcast.
			 */
			public isOrderedBroadcast(): boolean;
			/**
			 * Returns true if the receiver is currently processing the initial value of a sticky broadcast -- that is, the value that was last broadcast and is currently held in the sticky cache, so this is not directly the result of a broadcast right now.
			 */
			public isInitialStickyBroadcast(): boolean;
			/**
			 * For internal use, sets the hint about whether this BroadcastReceiver is running in ordered mode.
			 */
			public setOrderedHint(isOrdered: boolean): void;
			/**
			 * Control inclusion of debugging help for mismatched calls to Context#registerReceiver(BroadcastReceiver, IntentFilter) Context.registerReceiver(). If called with true, before given to registerReceiver(), then the callstack of the following Context#unregisterReceiver(BroadcastReceiver) Context.unregisterReceiver() call is retained, to be printed if a later incorrect unregister call is made. Note that doing this requires retaining information about the BroadcastReceiver for the lifetime of the app, resulting in a leak -- this should only be used for debugging.
			 */
			public setDebugUnregister(debug: boolean): void;
			/**
			 * Return the last value given to #setDebugUnregister.
			 */
			public getDebugUnregister(): boolean;
			checkSynchronousHint(): void;
		}
		export module BroadcastReceiver {
			/**
			 * State for a result that is pending for a broadcast receiver. Returned by BroadcastReceiver#goAsync() goAsync() while in BroadcastReceiver#onReceive BroadcastReceiver.onReceive(). This allows you to return from onReceive() without having the broadcast terminate; you must call #finish() once you are done with the broadcast. This allows you to process the broadcast off of the main thread of your app. 
			 */
			export class PendingResult extends java.lang.Object {
				static class: java.lang.Class<android.content.BroadcastReceiver.PendingResult>;
				/**
				 * Version of BroadcastReceiver#setResultCode(int) BroadcastReceiver.setResultCode(int) for asynchronous broadcast handling.
				 */
				public setResultCode(code: number): void;
				/**
				 * Version of BroadcastReceiver#getResultCode() BroadcastReceiver.getResultCode() for asynchronous broadcast handling.
				 */
				public getResultCode(): number;
				/**
				 * Version of BroadcastReceiver#setResultData(String) BroadcastReceiver.setResultData(String) for asynchronous broadcast handling.
				 */
				public setResultData(data: string): void;
				/**
				 * Version of BroadcastReceiver#getResultData() BroadcastReceiver.getResultData() for asynchronous broadcast handling.
				 */
				public getResultData(): string;
				/**
				 * Version of BroadcastReceiver#setResultExtras(Bundle) BroadcastReceiver.setResultExtras(Bundle) for asynchronous broadcast handling.
				 */
				public setResultExtras(extras: android.os.Bundle): void;
				/**
				 * Version of BroadcastReceiver#getResultExtras(boolean) BroadcastReceiver.getResultExtras(boolean) for asynchronous broadcast handling.
				 */
				public getResultExtras(makeMap: boolean): android.os.Bundle;
				/**
				 * Version of BroadcastReceiver#setResult(int, String, Bundle) BroadcastReceiver.setResult(int, String, Bundle) for asynchronous broadcast handling.
				 */
				public setResult(code: number, data: string, extras: android.os.Bundle): void;
				/**
				 * Version of BroadcastReceiver#getAbortBroadcast() BroadcastReceiver.getAbortBroadcast() for asynchronous broadcast handling.
				 */
				public getAbortBroadcast(): boolean;
				/**
				 * Version of BroadcastReceiver#abortBroadcast() BroadcastReceiver.abortBroadcast() for asynchronous broadcast handling.
				 */
				public abortBroadcast(): void;
				/**
				 * Version of BroadcastReceiver#clearAbortBroadcast() BroadcastReceiver.clearAbortBroadcast() for asynchronous broadcast handling.
				 */
				public clearAbortBroadcast(): void;
				/**
				 * Finish the broadcast. The current result will be sent and the next broadcast will proceed.
				 */
				public finish(): void;
				checkSynchronousHint(): void;
			}
		}
		/**
		 * A loader that queries the ContentResolver and returns a Cursor. This class implements the Loader protocol in a standard way for querying cursors, building on AsyncTaskLoader to perform the cursor query on a background thread so that it does not block the application's UI. 
		 */
		export class CursorLoader extends android.content.AsyncTaskLoader<android.database.ICursor> {
			/**
			 * Creates an empty unspecified CursorLoader. You must follow this with calls to #setUri(Uri), #setSelection(String), etc to specify the query to perform.
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates a fully-specified CursorLoader. See ContentResolver#query(Uri, String[], String, String[], String) ContentResolver.query() for documentation on the meaning of the parameters. These will be passed as-is to that call.
			 */
			constructor(context: android.content.Context, uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string);
			static class: java.lang.Class<android.content.CursorLoader>;
			public loadInBackground(): android.database.ICursor;
			public cancelLoadInBackground(): void;
			/**
			 * Registers an observer to get notifications from the content provider when the cursor needs to be refreshed.
			 */
			registerContentObserver(cursor: android.database.ICursor, observer: android.database.ContentObserver): void;
			public deliverResult(cursor: android.database.ICursor): void;
			/**
			 * Starts an asynchronous load of the contacts list data. When the result is ready the callbacks will be called on the UI thread. If a previous load has been completed and is still valid the result may be passed to the callbacks immediately.
			 */
			protected onStartLoading(): void;
			/**
			 * Must be called from the UI thread
			 */
			protected onStopLoading(): void;
			public onCanceled(cursor: android.database.ICursor): void;
			protected onReset(): void;
			public getUri(): android.net.Uri;
			public setUri(uri: android.net.Uri): void;
			public getProjection(): native.Array<string>;
			public setProjection(projection: native.Array<string>): void;
			public getSelection(): string;
			public setSelection(selection: string): void;
			public getSelectionArgs(): native.Array<string>;
			public setSelectionArgs(selectionArgs: native.Array<string>): void;
			public getSortOrder(): string;
			public setSortOrder(sortOrder: string): void;
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
		}
		/**
		 * You can run those tests with:
		 */
		export class SyncOperationTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.SyncOperationTest>;
			public testToKey(): void;
		}
		/**
		 * The set of callback APIs that are common to all application components (android.app.Activity, android.app.Service, ContentProvider, and android.app.Application).
		 */
		export class ComponentCallbacks implements android.content.IComponentCallbacks {
			constructor(implementation: android.content.IComponentCallbacks);
			/**
			 * Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources. 
			 * @param newConfig The new device configuration.
			 */
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * This is called when the overall system is running low on memory, and would like actively running process to try to tighten their belt. While the exact point at which this will be called is not defined, generally it will happen around the time all background process have been killed, that is before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing. 
			 */
			public onLowMemory(): void;
		}
		/**
		 * This exception is thrown when a call to Context#startActivity or one of its variants fails because an Activity can not be found to execute the given Intent.
		 */
		export class ActivityNotFoundException extends java.lang.RuntimeException {
			constructor();
			constructor(name: string);
			static class: java.lang.Class<android.content.ActivityNotFoundException>;
		}
		/**
		 * Utility methods useful for working with android.net.Uri objects that use the &quot;content&quot; (content://) scheme.
		 */
		export class ContentUris extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.content.ContentUris>;
			/**
			 * Converts the last path segment to a long.
			 */
			public static parseId(contentUri: android.net.Uri): any;
			/**
			 * Appends the given ID to the end of the path.
			 * @param builder to append the ID to
			 * @param id to append
			 */
			public static appendId(builder: android.net.Uri.Builder, id: number): android.net.Uri.Builder;
			/**
			 * Appends the given ID to the end of the path.
			 * @param contentUri to start with
			 * @param id to append
			 */
			public static withAppendedId(contentUri: android.net.Uri, id: number): android.net.Uri;
		}
		/**
		 * Extended ComponentCallbacks interface with a new callback for finer-grained memory management.
		 */
		interface IComponentCallbacks2 extends android.content.IComponentCallbacks {
			/**
			 * Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. This will happen for example when it goes in the background and there is not enough memory to keep as many background processes running as desired. You should never compare to exact values of the level, since new intermediate values may be added -- you will typically want to compare if the value is greater or equal to a level you are interested in.
			 * @param level The context of the trim, giving a hint of the amount of
			 */
			onTrimMemory(level: number): void;
			/**
			 * Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources. 
			 * @param newConfig The new device configuration.
			 */
			onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * This is called when the overall system is running low on memory, and would like actively running process to try to tighten their belt. While the exact point at which this will be called is not defined, generally it will happen around the time all background process have been killed, that is before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing. 
			 */
			onLowMemory(): void;
		}
		export module IComponentCallbacks2 {
			/**
			 * Level for #onTrimMemory(int): the process is nearing the end of the background LRU list, and if more memory isn't found soon it will be killed.
			 */
			var TRIM_MEMORY_COMPLETE: number;
			/**
			 * Level for #onTrimMemory(int): the process is around the middle of the background LRU list; freeing memory can help the system keep other processes running later in the list for better overall performance.
			 */
			var TRIM_MEMORY_MODERATE: number;
			/**
			 * Level for #onTrimMemory(int): the process has gone on to the LRU list. This is a good opportunity to clean up resources that can efficiently and quickly be re-built if the user returns to the app.
			 */
			var TRIM_MEMORY_BACKGROUND: number;
			/**
			 * Level for #onTrimMemory(int): the process had been showing a user interface, and is no longer doing so. Large allocations with the UI should be released at this point to allow memory to be better managed.
			 */
			var TRIM_MEMORY_UI_HIDDEN: number;
			/**
			 * Level for #onTrimMemory(int): the process is not an expendable background process, but the device is running extremely low on memory and is about to not be able to keep any background processes running. Your running process should free up as many non-critical resources as it can to allow that memory to be used elsewhere. The next thing that will happen after this is #onLowMemory() called to report that nothing at all can be kept in the background, a situation that can start to notably impact the user.
			 */
			var TRIM_MEMORY_RUNNING_CRITICAL: number;
			/**
			 * Level for #onTrimMemory(int): the process is not an expendable background process, but the device is running low on memory. Your running process should free up unneeded resources to allow that memory to be used elsewhere.
			 */
			var TRIM_MEMORY_RUNNING_LOW: number;
			/**
			 * Level for #onTrimMemory(int): the process is not an expendable background process, but the device is running moderately low on memory. Your running process may want to release some unneeded resources for use elsewhere.
			 */
			var TRIM_MEMORY_RUNNING_MODERATE: number;
		}
		export class SyncContext extends java.lang.Object {
			static class: java.lang.Class<android.content.SyncContext>;
			public onFinished(result: android.content.SyncResult): void;
			public getSyncContextBinder(): android.os.IIBinder;
		}
		/**
		 * A description of an Intent and target action to perform with it. The returned object can be handed to other applications so that they can perform the action you described on your behalf at a later time.
		 */
		export class IntentSender extends java.lang.Object implements android.os.IParcelable {
			static CREATOR: android.os.Parcelable.ICreator<android.content.IntentSender>;
			static class: java.lang.Class<android.content.IntentSender>;
			/**
			 * Perform the operation associated with this IntentSender, allowing the caller to specify information about the Intent to use and be notified when the send has completed.
			 * @param context The Context of the caller. This may be null if
			 * @param code Result code to supply back to the IntentSender's target.
			 * @param intent Additional Intent data. See {@link Intent#fillIn
			 * @param onFinished The object to call back on when the send has
			 * @param handler Handler identifying the thread on which the callback
			 */
			public sendIntent(context: android.content.Context, code: number, intent: android.content.Intent, onFinished: android.content.IntentSender.IOnFinished, handler: android.os.Handler): void;
			/**
			 * Perform the operation associated with this IntentSender, allowing the caller to specify information about the Intent to use and be notified when the send has completed.
			 * @param context The Context of the caller. This may be null if
			 * @param code Result code to supply back to the IntentSender's target.
			 * @param intent Additional Intent data. See {@link Intent#fillIn
			 * @param onFinished The object to call back on when the send has
			 * @param handler Handler identifying the thread on which the callback
			 * @param requiredPermission Name of permission that a recipient of the PendingIntent
			 */
			public sendIntent(context: android.content.Context, code: number, intent: android.content.Intent, onFinished: android.content.IntentSender.IOnFinished, handler: android.os.Handler, requiredPermission: string): void;
			/**
			 *  Renamed to #getCreatorPackage().
			 */
			public getTargetPackage(): string;
			/**
			 * Return the package name of the application that created this IntentSender, that is the identity under which you will actually be sending the Intent. The returned string is supplied by the system, so that an application can not spoof its package.
			 */
			public getCreatorPackage(): string;
			/**
			 * Return the uid of the application that created this PendingIntent, that is the identity under which you will actually be sending the Intent. The returned integer is supplied by the system, so that an application can not spoof its uid.
			 */
			public getCreatorUid(): number;
			/**
			 * Return the user handle of the application that created this PendingIntent, that is the user under which you will actually be sending the Intent. The returned UserHandle is supplied by the system, so that an application can not spoof its user. See android.os.Process#myUserHandle() Process.myUserHandle() for more explanation of user handles.
			 */
			public getCreatorUserHandle(): android.os.UserHandle;
			/**
			 * Comparison operator on two IntentSender objects, such that true is returned then they both represent the same operation from the same package.
			 */
			public equals(otherObj: any): boolean;
			public hashCode(): number;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Convenience function for writing either a IntentSender or null pointer to a Parcel. You must use this with #readIntentSenderOrNullFromParcel for later reading it.
			 * @param sender The IntentSender to write, or null.
			 * @param out Where to write the IntentSender.
			 */
			public static writeIntentSenderOrNullToParcel(sender: android.content.IntentSender, out: android.os.Parcel): void;
			/**
			 * Convenience function for reading either a Messenger or null pointer from a Parcel. You must have previously written the Messenger with #writeIntentSenderOrNullToParcel.
			 * @param input in The Parcel containing the written Messenger.
			 */
			public static readIntentSenderOrNullFromParcel(input: android.os.Parcel): android.content.IntentSender;
		}
		export module IntentSender {
			/**
			 * Callback interface for discovering when a send operation has completed. Primarily for use with a IntentSender that is performing a broadcast, this provides the same information as calling Context#sendOrderedBroadcast(Intent, String, android.content.BroadcastReceiver, Handler, int, String, Bundle) Context.sendBroadcast() with a final BroadcastReceiver.
			 */
			interface IOnFinished {
				/**
				 * Called when a send operation as completed.
				 * @param IntentSender The IntentSender this operation was sent through.
				 * @param intent The original Intent that was sent.
				 * @param resultCode The final result code determined by the send.
				 * @param resultData The final data collected by a broadcast.
				 * @param resultExtras The final extras collected by a broadcast.
				 */
				onSendFinished(IntentSender: android.content.IntentSender, intent: android.content.Intent, resultCode: number, resultData: string, resultExtras: android.os.Bundle): void;
			}
			/**
			 * Callback interface for discovering when a send operation has completed. Primarily for use with a IntentSender that is performing a broadcast, this provides the same information as calling Context#sendOrderedBroadcast(Intent, String, android.content.BroadcastReceiver, Handler, int, String, Bundle) Context.sendBroadcast() with a final BroadcastReceiver.
			 */
			export class OnFinished implements android.content.IntentSender.IOnFinished {
				constructor(implementation: android.content.IntentSender.IOnFinished);
				/**
				 * Called when a send operation as completed.
				 * @param IntentSender The IntentSender this operation was sent through.
				 * @param intent The original Intent that was sent.
				 * @param resultCode The final result code determined by the send.
				 * @param resultData The final data collected by a broadcast.
				 * @param resultExtras The final extras collected by a broadcast.
				 */
				public onSendFinished(IntentSender: android.content.IntentSender, intent: android.content.Intent, resultCode: number, resultData: string, resultExtras: android.os.Bundle): void;
			}
			export class FinishedDispatcher implements java.lang.IRunnable {
				static class: java.lang.Class<android.content.IntentSender.FinishedDispatcher>;
				public performReceive(intent: android.content.Intent, resultCode: number, data: string, extras: android.os.Bundle, serialized: boolean, sticky: boolean, sendingUser: number): void;
				public run(): void;
			}
			/**
			 * Exception thrown when trying to send through a PendingIntent that has been canceled or is otherwise no longer able to execute the request.
			 */
			export class SendIntentException extends android.util.AndroidException {
				constructor();
				constructor(name: string);
				constructor(cause: java.lang.Exception);
				static class: java.lang.Class<android.content.IntentSender.SendIntentException>;
			}
		}
		/**
		 * This superclass can be used to create a simple search suggestions provider for your application. It creates suggestions (as the user types) based on recent queries and/or recent views. 
		 */
		export class SearchRecentSuggestionsProvider extends android.content.ContentProvider {
			constructor();
			/**
			 * This mode bit configures the database to record recent queries. <i>required</i> #setupSuggestions(String, int)
			 */
			static DATABASE_MODE_QUERIES: number;
			/**
			 * This mode bit configures the database to include a 2nd annotation line with each entry. <i>optional</i> #setupSuggestions(String, int)
			 */
			static DATABASE_MODE_2LINES: number;
			static class: java.lang.Class<android.content.SearchRecentSuggestionsProvider>;
			/**
			 * In order to use this class, you must extend it, and call this setup function from your constructor. In your application or activities, you must provide the same values when you create the android.provider.SearchRecentSuggestions helper. 
			 * @param authority This must match the authority that you've declared in your manifest.
			 * @param mode You can use mode flags here to determine certain functional aspects of your
			 */
			protected setupSuggestions(authority: string, mode: number): void;
			/**
			 * This method is provided for use by the ContentResolver. Do not override, or directly call from your own code.
			 */
			public delete(uri: android.net.Uri, selection: string, selectionArgs: native.Array<string>): number;
			/**
			 * This method is provided for use by the ContentResolver. Do not override, or directly call from your own code.
			 */
			public getType(uri: android.net.Uri): string;
			/**
			 * This method is provided for use by the ContentResolver. Do not override, or directly call from your own code.
			 */
			public insert(uri: android.net.Uri, values: android.content.ContentValues): android.net.Uri;
			/**
			 * This method is provided for use by the ContentResolver. Do not override, or directly call from your own code.
			 */
			public onCreate(): boolean;
			/**
			 * This method is provided for use by the ContentResolver. Do not override, or directly call from your own code.
			 */
			public query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string): android.database.ICursor;
			/**
			 * This method is provided for use by the ContentResolver. Do not override, or directly call from your own code.
			 */
			public update(uri: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): number;
			/**
			 * Implement this to handle query requests from clients with support for cancellation. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI to query. This will be the full URI sent by the client;
			 * @param projection The list of columns to put into the cursor. If
			 * @param selection A selection criteria to apply when filtering rows.
			 * @param selectionArgs You may include ?s in selection, which will be replaced by
			 * @param sortOrder How the rows in the cursor should be sorted.
			 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
			 */
			query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
		}
		/**
		 * Proxying implementation of Context that simply delegates all of its calls to another Context. Can be subclassed to modify behavior without changing the original Context.
		 */
		export class ContextWrapper extends android.content.Context {
			constructor(base: android.content.Context);
			static class: java.lang.Class<android.content.ContextWrapper>;
			/**
			 * Set the base context for this ContextWrapper. All calls will then be delegated to the base context. Throws IllegalStateException if a base context has already been set. 
			 * @param base The new base context for this wrapper.
			 */
			protected attachBaseContext(base: android.content.Context): void;
			public getBaseContext(): android.content.Context;
			public getAssets(): android.content.res.AssetManager;
			public getResources(): android.content.res.Resources;
			public getPackageManager(): android.content.pm.PackageManager;
			public getContentResolver(): android.content.ContentResolver;
			public getMainLooper(): android.os.Looper;
			public getApplicationContext(): android.content.Context;
			public setTheme(resid: number): void;
			public getTheme(): android.content.res.Resources.Theme;
			public getClassLoader(): java.lang.ClassLoader;
			public getPackageName(): string;
			public getApplicationInfo(): android.content.pm.ApplicationInfo;
			public getPackageResourcePath(): string;
			public getPackageCodePath(): string;
			public getSharedPreferences(name: string, mode: number): android.content.ISharedPreferences;
			public openFileInput(name: string): java.io.FileInputStream;
			public openFileOutput(name: string, mode: number): java.io.FileOutputStream;
			public deleteFile(name: string): boolean;
			public getFileStreamPath(name: string): java.io.File;
			public fileList(): native.Array<string>;
			public getFilesDir(): java.io.File;
			public getExternalFilesDir(type: string): java.io.File;
			public getObbDir(): java.io.File;
			public getCacheDir(): java.io.File;
			public getExternalCacheDir(): java.io.File;
			public getDir(name: string, mode: number): java.io.File;
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, errorHandler: android.database.IDatabaseErrorHandler): android.database.sqlite.SQLiteDatabase;
			public deleteDatabase(name: string): boolean;
			public getDatabasePath(name: string): java.io.File;
			public databaseList(): native.Array<string>;
			public getWallpaper(): android.graphics.drawable.Drawable;
			public peekWallpaper(): android.graphics.drawable.Drawable;
			public getWallpaperDesiredMinimumWidth(): number;
			public getWallpaperDesiredMinimumHeight(): number;
			public setWallpaper(bitmap: android.graphics.Bitmap): void;
			public setWallpaper(data: java.io.InputStream): void;
			public clearWallpaper(): void;
			public startActivity(intent: android.content.Intent): void;
			public startActivity(intent: android.content.Intent, options: android.os.Bundle): void;
			public startActivities(intents: native.Array<android.content.Intent>): void;
			public startActivities(intents: native.Array<android.content.Intent>, options: android.os.Bundle): void;
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number): void;
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number, options: android.os.Bundle): void;
			public sendBroadcast(intent: android.content.Intent): void;
			public sendBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string): void;
			public sendOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public sendStickyBroadcast(intent: android.content.Intent): void;
			public sendStickyOrderedBroadcast(intent: android.content.Intent, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public removeStickyBroadcast(intent: android.content.Intent): void;
			public sendStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			public sendStickyOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public removeStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter): android.content.Intent;
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
			public unregisterReceiver(receiver: android.content.BroadcastReceiver): void;
			public startService(service: android.content.Intent): android.content.ComponentName;
			public stopService(name: android.content.Intent): boolean;
			public bindService(service: android.content.Intent, conn: android.content.IServiceConnection, flags: number): boolean;
			public unbindService(conn: android.content.IServiceConnection): void;
			public startInstrumentation(className: android.content.ComponentName, profileFile: string, args: android.os.Bundle): boolean;
			public getSystemService(name: string): any;
			public checkPermission(permission: string, pid: number, uid: number): number;
			public checkCallingPermission(permission: string): number;
			public checkCallingOrSelfPermission(permission: string): number;
			public enforcePermission(permission: string, pid: number, uid: number, message: string): void;
			public enforceCallingPermission(permission: string, message: string): void;
			public enforceCallingOrSelfPermission(permission: string, message: string): void;
			public grantUriPermission(toPackage: string, uri: android.net.Uri, modeFlags: number): void;
			public revokeUriPermission(uri: android.net.Uri, modeFlags: number): void;
			public checkUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number): number;
			public checkCallingUriPermission(uri: android.net.Uri, modeFlags: number): number;
			public checkCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number): number;
			public checkUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number): number;
			public enforceUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number, message: string): void;
			public enforceCallingUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
			public enforceCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
			public enforceUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number, message: string): void;
			public createPackageContext(packageName: string, flags: number): android.content.Context;
			public createConfigurationContext(overrideConfiguration: android.content.res.Configuration): android.content.Context;
			public createDisplayContext(display: android.view.Display): android.content.Context;
			public isRestricted(): boolean;
		}
		/**
		 * Representation of a clipped data on the clipboard.
		 */
		export class ClipData extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create a new clip.
			 * @param label Label to show to the user describing this clip.
			 * @param mimeTypes An array of MIME types this data is available as.
			 * @param item The contents of the first item in the clip.
			 */
			constructor(label: string, mimeTypes: native.Array<string>, item: android.content.ClipData.Item);
			/**
			 * Create a new clip.
			 * @param description The ClipDescription describing the clip contents.
			 * @param item The contents of the first item in the clip.
			 */
			constructor(description: android.content.ClipDescription, item: android.content.ClipData.Item);
			/**
			 * Create a new clip that is a copy of another clip. This does a deep-copy of all items in the clip.
			 * @param other The existing ClipData that is to be copied.
			 */
			constructor(other: android.content.ClipData);
			static CREATOR: android.os.Parcelable.ICreator<android.content.ClipData>;
			static class: java.lang.Class<android.content.ClipData>;
			/**
			 * Create a new ClipData holding data of the type ClipDescription#MIMETYPE_TEXT_PLAIN.
			 * @param label User-visible label for the clip data.
			 * @param text The actual text in the clip.
			 */
			public static newPlainText(label: string, text: string): android.content.ClipData;
			/**
			 * Create a new ClipData holding data of the type ClipDescription#MIMETYPE_TEXT_HTML.
			 * @param label User-visible label for the clip data.
			 * @param text The text of clip as plain text, for receivers that don't
			 * @param htmlText The actual HTML text in the clip.
			 */
			public static newHtmlText(label: string, text: string, htmlText: string): android.content.ClipData;
			/**
			 * Create a new ClipData holding an Intent with MIME type ClipDescription#MIMETYPE_TEXT_INTENT.
			 * @param label User-visible label for the clip data.
			 * @param intent The actual Intent in the clip.
			 */
			public static newIntent(label: string, intent: android.content.Intent): android.content.ClipData;
			/**
			 * Create a new ClipData holding a URI. If the URI is a content: URI, this will query the content provider for the MIME type of its data and use that as the MIME type. Otherwise, it will use the MIME type ClipDescription#MIMETYPE_TEXT_URILIST.
			 * @param resolver ContentResolver used to get information about the URI.
			 * @param label User-visible label for the clip data.
			 * @param uri The URI in the clip.
			 */
			public static newUri(resolver: android.content.ContentResolver, label: string, uri: android.net.Uri): android.content.ClipData;
			/**
			 * Create a new ClipData holding an URI with MIME type ClipDescription#MIMETYPE_TEXT_URILIST. Unlike #newUri(ContentResolver, CharSequence, Uri), nothing is inferred about the URI -- if it is a content: URI holding a bitmap, the reported type will still be uri-list. Use this with care!
			 * @param label User-visible label for the clip data.
			 * @param uri The URI in the clip.
			 */
			public static newRawUri(label: string, uri: android.net.Uri): android.content.ClipData;
			/**
			 * Return the ClipDescription associated with this data, describing what it contains.
			 */
			public getDescription(): android.content.ClipDescription;
			/**
			 * Add a new Item to the overall ClipData container.
			 */
			public addItem(item: android.content.ClipData.Item): void;
			/**
			 * Return the number of items in the clip data.
			 */
			public getItemCount(): number;
			/**
			 * Return a single item inside of the clip data. The index can range from 0 to #getItemCount()-1.
			 */
			public getItemAt(index: number): android.content.ClipData.Item;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export module ClipData {
			/**
			 * Description of a single item in a ClippedData.
			 */
			export class Item extends java.lang.Object {
				/**
				 * Create an Item consisting of a single block of (possibly styled) text.
				 */
				constructor(text: string);
				/**
				 * Create an Item consisting of a single block of (possibly styled) text, with an alternative HTML formatted representation. You <em>must</em> supply a plain text representation in addition to HTML text; coercion will not be done from HTML formated text into plain text.
				 */
				constructor(text: string, htmlText: string);
				/**
				 * Create an Item consisting of an arbitrary Intent.
				 */
				constructor(intent: android.content.Intent);
				/**
				 * Create an Item consisting of an arbitrary URI.
				 */
				constructor(uri: android.net.Uri);
				/**
				 * Create a complex Item, containing multiple representations of text, Intent, and/or URI.
				 */
				constructor(text: string, intent: android.content.Intent, uri: android.net.Uri);
				/**
				 * Create a complex Item, containing multiple representations of text, HTML text, Intent, and/or URI. If providing HTML text, you <em>must</em> supply a plain text representation as well; coercion will not be done from HTML formated text into plain text.
				 */
				constructor(text: string, htmlText: string, intent: android.content.Intent, uri: android.net.Uri);
				static class: java.lang.Class<android.content.ClipData.Item>;
				/**
				 * Retrieve the raw text contained in this Item.
				 */
				public getText(): string;
				/**
				 * Retrieve the raw HTML text contained in this Item.
				 */
				public getHtmlText(): string;
				/**
				 * Retrieve the raw Intent contained in this Item.
				 */
				public getIntent(): android.content.Intent;
				/**
				 * Retrieve the raw URI contained in this Item.
				 */
				public getUri(): android.net.Uri;
				/**
				 * Turn this item into text, regardless of the type of data it actually contains.
				 * @param context The caller's Context, from which its ContentResolver
				 */
				public coerceToText(context: android.content.Context): string;
				/**
				 * Like #coerceToHtmlText(Context), but any text that would be returned as HTML formatting will be returned as text with style spans.
				 * @param context The caller's Context, from which its ContentResolver
				 */
				public coerceToStyledText(context: android.content.Context): string;
				/**
				 * Turn this item into HTML text, regardless of the type of data it actually contains.
				 * @param context The caller's Context, from which its ContentResolver
				 */
				public coerceToHtmlText(context: android.content.Context): string;
				public toString(): string;
			}
		}
		/**
		 * Thrown when an application of a ContentProviderOperation fails due the specified constraints.
		 */
		export class OperationApplicationException extends java.lang.Exception {
			constructor();
			constructor(message: string);
			constructor(message: string, cause: java.lang.Throwable);
			constructor(cause: java.lang.Throwable);
			constructor(numSuccessfulYieldPoints: number);
			constructor(message: string, numSuccessfulYieldPoints: number);
			static class: java.lang.Class<android.content.OperationApplicationException>;
			public getNumSuccessfulYieldPoints(): number;
		}
		/**
		 * The public interface object used to interact with a ContentProvider. This is obtained by calling ContentResolver#acquireContentProviderClient. This object must be released using #release in order to indicate to the system that the ContentProvider is no longer needed and can be killed to free up resources.
		 */
		export class ContentProviderClient extends java.lang.Object {
			static class: java.lang.Class<android.content.ContentProviderClient>;
			/**
			 * See ContentProvider#query ContentProvider.query
			 */
			public query(url: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string): android.database.ICursor;
			/**
			 * See ContentProvider#query ContentProvider.query
			 */
			public query(url: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
			/**
			 * See ContentProvider#getType ContentProvider.getType
			 */
			public getType(url: android.net.Uri): string;
			/**
			 * See ContentProvider#getStreamTypes ContentProvider.getStreamTypes
			 */
			public getStreamTypes(url: android.net.Uri, mimeTypeFilter: string): native.Array<string>;
			/**
			 * See ContentProvider#insert ContentProvider.insert
			 */
			public insert(url: android.net.Uri, initialValues: android.content.ContentValues): android.net.Uri;
			/**
			 * See ContentProvider#bulkInsert ContentProvider.bulkInsert
			 */
			public bulkInsert(url: android.net.Uri, initialValues: native.Array<android.content.ContentValues>): number;
			/**
			 * See ContentProvider#delete ContentProvider.delete
			 */
			public delete(url: android.net.Uri, selection: string, selectionArgs: native.Array<string>): number;
			/**
			 * See ContentProvider#update ContentProvider.update
			 */
			public update(url: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): number;
			/**
			 * See ContentProvider#openFile ContentProvider.openFile. Note that this <em>does not</em> take care of non-content: URIs such as file:. It is strongly recommended you use the ContentResolver#openFileDescriptor ContentResolver.openFileDescriptor API instead.
			 */
			public openFile(url: android.net.Uri, mode: string): android.os.ParcelFileDescriptor;
			/**
			 * See ContentProvider#openAssetFile ContentProvider.openAssetFile. Note that this <em>does not</em> take care of non-content: URIs such as file:. It is strongly recommended you use the ContentResolver#openAssetFileDescriptor ContentResolver.openAssetFileDescriptor API instead.
			 */
			public openAssetFile(url: android.net.Uri, mode: string): android.content.res.AssetFileDescriptor;
			/**
			 * See ContentProvider#openTypedAssetFile ContentProvider.openTypedAssetFile
			 */
			public openTypedAssetFileDescriptor(uri: android.net.Uri, mimeType: string, opts: android.os.Bundle): android.content.res.AssetFileDescriptor;
			/**
			 * See ContentProvider#applyBatch ContentProvider.applyBatch
			 */
			public applyBatch(operations: java.util.ArrayList<android.content.ContentProviderOperation>): native.Array<android.content.ContentProviderResult>;
			/**
			 * See ContentProvider#call(String, String, Bundle)
			 */
			public call(method: string, arg: string, extras: android.os.Bundle): android.os.Bundle;
			/**
			 * Call this to indicate to the system that the associated ContentProvider is no longer needed by this ContentProviderClient.
			 */
			public release(): boolean;
			/**
			 * Get a reference to the ContentProvider that is associated with this client. If the ContentProvider is running in a different process then null will be returned. This can be used if you know you are running in the same process as a provider, and want to get direct access to its implementation details.
			 */
			public getLocalContentProvider(): android.content.ContentProvider;
		}
		/**
		 * Interface for monitoring the state of an application service. See android.app.Service and Context#bindService Context.bindService() for more information.
		 */
		interface IServiceConnection {
			/**
			 * Called when a connection to the Service has been established, with the android.os.IBinder of the communication channel to the Service.
			 * @param name The concrete component name of the service that has
			 * @param service The IBinder of the Service's communication channel,
			 */
			onServiceConnected(name: android.content.ComponentName, service: android.os.IIBinder): void;
			/**
			 * Called when a connection to the Service has been lost. This typically happens when the process hosting the service has crashed or been killed. This does <em>not</em> remove the ServiceConnection itself -- this binding to the service will remain active, and you will receive a call to #onServiceConnected when the Service is next running.
			 * @param name The concrete component name of the service whose
			 */
			onServiceDisconnected(name: android.content.ComponentName): void;
		}
		/**
		 * Test of ContentQueryMap
		 */
		export class ContentQueryMapTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.ContentQueryMapTest>;
			public testContentQueryMap(): void;
		}
		export module ContentQueryMapTest {
			/**
			 * Helper class to run test code in a new thread with a Looper.
			 */
			export class LooperThread extends java.lang.Thread {
				mError: java.lang.Throwable;
				mSuccess: boolean;
				static class: java.lang.Class<android.content.ContentQueryMapTest.LooperThread>;
				go(): void;
				public run(): void;
			}
		}
		export class ContentProviderOperation extends java.lang.Object implements android.os.IParcelable {
			static CREATOR: android.os.Parcelable.ICreator<android.content.ContentProviderOperation>;
			static class: java.lang.Class<android.content.ContentProviderOperation>;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			/**
			 * Create a Builder suitable for building an insert ContentProviderOperation.
			 * @param uri The {@link Uri} that is the target of the insert.
			 */
			public static newInsert(uri: android.net.Uri): android.content.ContentProviderOperation.Builder;
			/**
			 * Create a Builder suitable for building an update ContentProviderOperation.
			 * @param uri The {@link Uri} that is the target of the update.
			 */
			public static newUpdate(uri: android.net.Uri): android.content.ContentProviderOperation.Builder;
			/**
			 * Create a Builder suitable for building a delete ContentProviderOperation.
			 * @param uri The {@link Uri} that is the target of the delete.
			 */
			public static newDelete(uri: android.net.Uri): android.content.ContentProviderOperation.Builder;
			/**
			 * Create a Builder suitable for building a ContentProviderOperation to assert a set of values as provided through Builder#withValues(ContentValues).
			 */
			public static newAssertQuery(uri: android.net.Uri): android.content.ContentProviderOperation.Builder;
			public getUri(): android.net.Uri;
			public isYieldAllowed(): boolean;
			public isWriteOperation(): boolean;
			public isReadOperation(): boolean;
			/**
			 * Applies this operation using the given provider. The backRefs array is used to resolve any back references that were requested using Builder#withValueBackReferences(ContentValues) and Builder#withSelectionBackReference.
			 * @param provider the {@link ContentProvider} on which this batch is applied
			 * @param backRefs a {@link ContentProviderResult} array that will be consulted
			 * @param numBackRefs the number of valid results on the backRefs array.
			 */
			public apply(provider: android.content.ContentProvider, backRefs: native.Array<android.content.ContentProviderResult>, numBackRefs: number): android.content.ContentProviderResult;
			/**
			 * The ContentValues back references are represented as a ContentValues object where the key refers to a column and the value is an index of the back reference whose valued should be associated with the column.
			 * @param backRefs an array of previous results
			 * @param numBackRefs the number of valid previous results in backRefs
			 */
			public resolveValueBackReferences(backRefs: native.Array<android.content.ContentProviderResult>, numBackRefs: number): android.content.ContentValues;
			/**
			 * The Selection Arguments back references are represented as a Map of Integer->Integer where the key is an index into the selection argument array (see Builder#withSelection) and the value is the index of the previous result that should be used for that selection argument array slot.
			 * @param backRefs an array of previous results
			 * @param numBackRefs the number of valid previous results in backRefs
			 */
			public resolveSelectionArgsBackReferences(backRefs: native.Array<android.content.ContentProviderResult>, numBackRefs: number): native.Array<string>;
			public toString(): string;
			public describeContents(): number;
		}
		export module ContentProviderOperation {
			/**
			 * Used to add parameters to a ContentProviderOperation. The Builder is first created by calling ContentProviderOperation#newInsert(android.net.Uri), ContentProviderOperation#newUpdate(android.net.Uri), ContentProviderOperation#newDelete(android.net.Uri) or ContentProviderOperation#newAssertQuery(Uri). The withXXX methods can then be used to add parameters to the builder. See the specific methods to find for which Builder type each is allowed. Call #build to create the ContentProviderOperation once all the parameters have been supplied.
			 */
			export class Builder extends java.lang.Object {
				static class: java.lang.Class<android.content.ContentProviderOperation.Builder>;
				/**
				 * Create a ContentProviderOperation from this Builder.
				 */
				public build(): android.content.ContentProviderOperation;
				/**
				 * Add a ContentValues of back references. The key is the name of the column and the value is an integer that is the index of the previous result whose value should be used for the column. The value is added as a String. A column value from the back references takes precedence over a value specified in #withValues. This can only be used with builders of type insert, update, or assert.
				 */
				public withValueBackReferences(backReferences: android.content.ContentValues): android.content.ContentProviderOperation.Builder;
				/**
				 * Add a ContentValues back reference. A column value from the back references takes precedence over a value specified in #withValues. This can only be used with builders of type insert, update, or assert.
				 */
				public withValueBackReference(key: string, previousResult: number): android.content.ContentProviderOperation.Builder;
				/**
				 * Add a back references as a selection arg. Any value at that index of the selection arg that was specified by #withSelection will be overwritten. This can only be used with builders of type update, delete, or assert.
				 */
				public withSelectionBackReference(selectionArgIndex: number, previousResult: number): android.content.ContentProviderOperation.Builder;
				/**
				 * The ContentValues to use. This may be null. These values may be overwritten by the corresponding value specified by #withValueBackReference or by future calls to #withValues or #withValue. This can only be used with builders of type insert, update, or assert.
				 */
				public withValues(values: android.content.ContentValues): android.content.ContentProviderOperation.Builder;
				/**
				 * A value to insert or update. This value may be overwritten by the corresponding value specified by #withValueBackReference. This can only be used with builders of type insert, update, or assert.
				 * @param key the name of this value
				 * @param value the value itself. the type must be acceptable for insertion by
				 */
				public withValue(key: string, value: any): android.content.ContentProviderOperation.Builder;
				/**
				 * The selection and arguments to use. An occurrence of '?' in the selection will be replaced with the corresponding occurence of the selection argument. Any of the selection arguments may be overwritten by a selection argument back reference as specified by #withSelectionBackReference. This can only be used with builders of type update, delete, or assert.
				 */
				public withSelection(selection: string, selectionArgs: native.Array<string>): android.content.ContentProviderOperation.Builder;
				/**
				 * If set then if the number of rows affected by this operation do not match this count OperationApplicationException will be throw. This can only be used with builders of type update, delete, or assert.
				 */
				public withExpectedCount(count: number): android.content.ContentProviderOperation.Builder;
				public withYieldAllowed(yieldAllowed: boolean): android.content.ContentProviderOperation.Builder;
			}
		}
		interface IDialogInterface {
			cancel(): void;
			dismiss(): void;
		}
		export module IDialogInterface {
			/**
			 * The identifier for the positive button.
			 */
			var BUTTON_POSITIVE: number;
			/**
			 * The identifier for the negative button.
			 */
			var BUTTON_NEGATIVE: number;
			/**
			 * The identifier for the neutral button.
			 */
			var BUTTON_NEUTRAL: number;
			/**
			 *  Use #BUTTON_POSITIVE
			 */
			var BUTTON1: number;
			/**
			 *  Use #BUTTON_NEGATIVE
			 */
			var BUTTON2: number;
			/**
			 *  Use #BUTTON_NEUTRAL
			 */
			var BUTTON3: number;
		}
		/**
		 * Special version of ContextWrapper that allows the base context to be modified after it is initially set.
		 */
		export class MutableContextWrapper extends android.content.ContextWrapper {
			constructor(base: android.content.Context);
			static class: java.lang.Class<android.content.MutableContextWrapper>;
			/**
			 * Change the base context for this ContextWrapper. All calls will then be delegated to the base context. Unlike ContextWrapper, the base context can be changed even after one is already set. 
			 * @param base The new base context for this wrapper.
			 */
			public setBaseContext(base: android.content.Context): void;
		}
		export class DialogInterface implements android.content.IDialogInterface {
			constructor(implementation: android.content.IDialogInterface);
			/**
			 * The identifier for the positive button.
			 */
			static BUTTON_POSITIVE: number;
			/**
			 * The identifier for the negative button.
			 */
			static BUTTON_NEGATIVE: number;
			/**
			 * The identifier for the neutral button.
			 */
			static BUTTON_NEUTRAL: number;
			/**
			 *  Use #BUTTON_POSITIVE
			 */
			static BUTTON1: number;
			/**
			 *  Use #BUTTON_NEGATIVE
			 */
			static BUTTON2: number;
			/**
			 *  Use #BUTTON_NEUTRAL
			 */
			static BUTTON3: number;
			public cancel(): void;
			public dismiss(): void;
		}
		export module DialogInterface {
			/**
			 * Interface used to allow the creator of a dialog to run some code when an item in a multi-choice dialog is clicked.
			 */
			export class OnMultiChoiceClickListener implements android.content.DialogInterface.IOnMultiChoiceClickListener {
				constructor(implementation: android.content.DialogInterface.IOnMultiChoiceClickListener);
				/**
				 * This method will be invoked when an item in the dialog is clicked. 
				 * @param dialog The dialog where the selection was made.
				 * @param which The position of the item in the list that was clicked.
				 * @param isChecked True if the click checked the item, else false.
				 */
				public onClick(dialog: android.content.IDialogInterface, which: number, isChecked: boolean): void;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when the dialog is canceled.
			 */
			interface IOnCancelListener {
				/**
				 * This method will be invoked when the dialog is canceled. 
				 * @param dialog The dialog that was canceled will be passed into the
				 */
				onCancel(dialog: android.content.IDialogInterface): void;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when the dialog is shown.
			 */
			interface IOnShowListener {
				/**
				 * This method will be invoked when the dialog is shown.
				 * @param dialog The dialog that was shown will be passed into the
				 */
				onShow(dialog: android.content.IDialogInterface): void;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when the dialog is dismissed.
			 */
			interface IOnDismissListener {
				/**
				 * This method will be invoked when the dialog is dismissed. 
				 * @param dialog The dialog that was dismissed will be passed into the
				 */
				onDismiss(dialog: android.content.IDialogInterface): void;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when the dialog is dismissed.
			 */
			export class OnDismissListener implements android.content.DialogInterface.IOnDismissListener {
				constructor(implementation: android.content.DialogInterface.IOnDismissListener);
				/**
				 * This method will be invoked when the dialog is dismissed. 
				 * @param dialog The dialog that was dismissed will be passed into the
				 */
				public onDismiss(dialog: android.content.IDialogInterface): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a key event is dispatched to this dialog. The callback will be invoked before the key event is given to the dialog.
			 */
			interface IOnKeyListener {
				/**
				 * Called when a key is dispatched to a dialog. This allows listeners to get a chance to respond before the dialog. 
				 * @param dialog The dialog the key has been dispatched to.
				 * @param keyCode The code for the physical key that was pressed
				 * @param event The KeyEvent object containing full information about
				 */
				onKey(dialog: android.content.IDialogInterface, keyCode: number, event: android.view.KeyEvent): boolean;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when an item on the dialog is clicked..
			 */
			interface IOnClickListener {
				/**
				 * This method will be invoked when a button in the dialog is clicked. 
				 * @param dialog The dialog that received the click.
				 * @param which The button that was clicked (e.g.
				 */
				onClick(dialog: android.content.IDialogInterface, which: number): void;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when an item on the dialog is clicked..
			 */
			export class OnClickListener implements android.content.DialogInterface.IOnClickListener {
				constructor(implementation: android.content.DialogInterface.IOnClickListener);
				/**
				 * This method will be invoked when a button in the dialog is clicked. 
				 * @param dialog The dialog that received the click.
				 * @param which The button that was clicked (e.g.
				 */
				public onClick(dialog: android.content.IDialogInterface, which: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a key event is dispatched to this dialog. The callback will be invoked before the key event is given to the dialog.
			 */
			export class OnKeyListener implements android.content.DialogInterface.IOnKeyListener {
				constructor(implementation: android.content.DialogInterface.IOnKeyListener);
				/**
				 * Called when a key is dispatched to a dialog. This allows listeners to get a chance to respond before the dialog. 
				 * @param dialog The dialog the key has been dispatched to.
				 * @param keyCode The code for the physical key that was pressed
				 * @param event The KeyEvent object containing full information about
				 */
				public onKey(dialog: android.content.IDialogInterface, keyCode: number, event: android.view.KeyEvent): boolean;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when an item in a multi-choice dialog is clicked.
			 */
			interface IOnMultiChoiceClickListener {
				/**
				 * This method will be invoked when an item in the dialog is clicked. 
				 * @param dialog The dialog where the selection was made.
				 * @param which The position of the item in the list that was clicked.
				 * @param isChecked True if the click checked the item, else false.
				 */
				onClick(dialog: android.content.IDialogInterface, which: number, isChecked: boolean): void;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when the dialog is shown.
			 */
			export class OnShowListener implements android.content.DialogInterface.IOnShowListener {
				constructor(implementation: android.content.DialogInterface.IOnShowListener);
				/**
				 * This method will be invoked when the dialog is shown.
				 * @param dialog The dialog that was shown will be passed into the
				 */
				public onShow(dialog: android.content.IDialogInterface): void;
			}
			/**
			 * Interface used to allow the creator of a dialog to run some code when the dialog is canceled.
			 */
			export class OnCancelListener implements android.content.DialogInterface.IOnCancelListener {
				constructor(implementation: android.content.DialogInterface.IOnCancelListener);
				/**
				 * This method will be invoked when the dialog is canceled. 
				 * @param dialog The dialog that was canceled will be passed into the
				 */
				public onCancel(dialog: android.content.IDialogInterface): void;
			}
		}
		export class SyncStatusObserver implements android.content.ISyncStatusObserver {
			constructor(implementation: android.content.ISyncStatusObserver);
			public onStatusChanged(which: number): void;
		}
		/**
		 * Content providers are one of the primary building blocks of Android applications, providing content to applications. They encapsulate data and provide it to applications through the single ContentResolver interface. A content provider is only required if you need to share data between multiple applications. For example, the contacts data is used by multiple applications and must be stored in a content provider. If you don't need to share data amongst multiple applications you can use a database directly via android.database.sqlite.SQLiteDatabase.
		 */
		export class ContentProvider extends java.lang.Object implements android.content.IComponentCallbacks2 {
			/**
			 * Construct a ContentProvider instance. Content providers must be <a href="guide/topics/manifest/provider-element.html">declared in the manifest</a>, accessed with ContentResolver, and created automatically by the system, so applications usually do not create ContentProvider instances directly.
			 */
			constructor();
			static class: java.lang.Class<android.content.ContentProvider>;
			/**
			 * Retrieves the Context this provider is running in. Only available once #onCreate has been called -- this will return null in the constructor.
			 */
			public getContext(): android.content.Context;
			/**
			 * Change the permission required to read data from the content provider. This is normally set for you from its manifest information when the provider is first created.
			 * @param permission Name of the permission required for read-only access.
			 */
			protected setReadPermission(permission: string): void;
			/**
			 * Return the name of the permission required for read-only access to this content provider. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 */
			public getReadPermission(): string;
			/**
			 * Change the permission required to read and write data in the content provider. This is normally set for you from its manifest information when the provider is first created.
			 * @param permission Name of the permission required for read/write access.
			 */
			protected setWritePermission(permission: string): void;
			/**
			 * Return the name of the permission required for read/write access to this content provider. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 */
			public getWritePermission(): string;
			/**
			 * Change the path-based permission required to read and/or write data in the content provider. This is normally set for you from its manifest information when the provider is first created.
			 * @param permissions Array of path permission descriptions.
			 */
			protected setPathPermissions(permissions: native.Array<android.content.pm.PathPermission>): void;
			/**
			 * Return the path-based permissions required for read and/or write access to this content provider. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 */
			public getPathPermissions(): native.Array<android.content.pm.PathPermission>;
			/**
			 * Implement this to initialize your content provider on startup. This method is called for all registered content providers on the application main thread at application launch time. It must not perform lengthy operations, or application startup will be delayed.
			 */
			public onCreate(): boolean;
			/**
			 *  This method is always called on the application main thread, and must not perform lengthy operations.
			 */
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 *  This method is always called on the application main thread, and must not perform lengthy operations.
			 */
			public onLowMemory(): void;
			public onTrimMemory(level: number): void;
			/**
			 * Implement this to handle query requests from clients. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI to query. This will be the full URI sent by the client;
			 * @param projection The list of columns to put into the cursor. If
			 * @param selection A selection criteria to apply when filtering rows.
			 * @param selectionArgs You may include ?s in selection, which will be replaced by
			 * @param sortOrder How the rows in the cursor should be sorted.
			 */
			public query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string): android.database.ICursor;
			/**
			 * Implement this to handle query requests from clients with support for cancellation. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI to query. This will be the full URI sent by the client;
			 * @param projection The list of columns to put into the cursor. If
			 * @param selection A selection criteria to apply when filtering rows.
			 * @param selectionArgs You may include ?s in selection, which will be replaced by
			 * @param sortOrder How the rows in the cursor should be sorted.
			 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
			 */
			public query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
			/**
			 * Implement this to handle requests for the MIME type of the data at the given URI. The returned MIME type should start with <code>vnd.android.cursor.item</code> for a single record, or <code>vnd.android.cursor.dir/</code> for multiple items. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri the URI to query.
			 */
			public getType(uri: android.net.Uri): string;
			/**
			 * Implement this to handle requests to insert a new row. As a courtesy, call ContentResolver#notifyChange(android.net.Uri ,android.database.ContentObserver) notifyChange() after inserting. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The content:// URI of the insertion request.
			 * @param values A set of column_name/value pairs to add to the database.
			 */
			public insert(uri: android.net.Uri, values: android.content.ContentValues): android.net.Uri;
			/**
			 * Override this to handle requests to insert a set of new rows, or the default implementation will iterate over the values and call #insert on each of them. As a courtesy, call ContentResolver#notifyChange(android.net.Uri ,android.database.ContentObserver) notifyChange() after inserting. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The content:// URI of the insertion request.
			 * @param values An array of sets of column_name/value pairs to add to the database.
			 */
			public bulkInsert(uri: android.net.Uri, values: native.Array<android.content.ContentValues>): number;
			/**
			 * Implement this to handle requests to delete one or more rows. The implementation should apply the selection clause when performing deletion, allowing the operation to affect multiple rows in a directory. As a courtesy, call ContentResolver#notifyChange(android.net.Uri ,android.database.ContentObserver) notifyDelete() after deleting. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The full URI to query, including a row ID (if a specific record is requested).
			 * @param selection An optional restriction to apply to rows when deleting.
			 * @param selectionArgs 
			 */
			public delete(uri: android.net.Uri, selection: string, selectionArgs: native.Array<string>): number;
			/**
			 * Implement this to handle requests to update one or more rows. The implementation should update all rows matching the selection to set the columns according to the provided values map. As a courtesy, call ContentResolver#notifyChange(android.net.Uri ,android.database.ContentObserver) notifyChange() after updating. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI to query. This can potentially have a record ID if this
			 * @param values A Bundle mapping from column names to new column values (NULL is a
			 * @param selection An optional filter to match rows to update.
			 * @param selectionArgs 
			 */
			public update(uri: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): number;
			/**
			 * Override this to handle requests to open a file blob. The default implementation always throws FileNotFoundException. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI whose file is to be opened.
			 * @param mode Access mode for the file. May be "r" for read-only access,
			 */
			public openFile(uri: android.net.Uri, mode: string): android.os.ParcelFileDescriptor;
			/**
			 * This is like #openFile, but can be implemented by providers that need to be able to return sub-sections of files, often assets inside of their .apk. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI whose file is to be opened.
			 * @param mode Access mode for the file. May be "r" for read-only access,
			 */
			public openAssetFile(uri: android.net.Uri, mode: string): android.content.res.AssetFileDescriptor;
			/**
			 * Convenience for subclasses that wish to implement #openFile by looking up a column named "_data" at the given URI.
			 * @param uri The URI to be opened.
			 * @param mode The file mode. May be "r" for read-only access,
			 */
			protected openFileHelper(uri: android.net.Uri, mode: string): android.os.ParcelFileDescriptor;
			/**
			 * Called by a client to determine the types of data streams that this content provider supports for the given URI. The default implementation returns null, meaning no types. If your content provider stores data of a particular type, return that MIME type if it matches the given mimeTypeFilter. If it can perform type conversions, return an array of all supported MIME types that match mimeTypeFilter.
			 * @param uri The data in the content provider being queried.
			 * @param mimeTypeFilter The type of data the client desires. May be
			 */
			public getStreamTypes(uri: android.net.Uri, mimeTypeFilter: string): native.Array<string>;
			/**
			 * Called by a client to open a read-only stream containing data of a particular MIME type. This is like #openAssetFile(Uri, String), except the file can only be read-only and the content provider may perform data conversions to generate data of the desired type.
			 * @param uri The data in the content provider being queried.
			 * @param mimeTypeFilter The type of data the client desires. May be
			 * @param opts Additional options from the client. The definitions of
			 */
			public openTypedAssetFile(uri: android.net.Uri, mimeTypeFilter: string, opts: android.os.Bundle): android.content.res.AssetFileDescriptor;
			/**
			 * A helper function for implementing #openTypedAssetFile, for creating a data pipe and background thread allowing you to stream generated data back to the client. This function returns a new ParcelFileDescriptor that should be returned to the caller (the caller is responsible for closing it).
			 * @param uri The URI whose data is to be written.
			 * @param mimeType The desired type of data to be written.
			 * @param opts Options supplied by caller.
			 * @param args Your own custom arguments.
			 * @param func Interface implementing the function that will actually
			 */
			public openPipeHelper<T>(uri: android.net.Uri, mimeType: string, opts: android.os.Bundle, args: T, func: android.content.ContentProvider.IPipeDataWriter<T>): android.os.ParcelFileDescriptor;
			/**
			 * Returns true if this instance is a temporary content provider.
			 */
			protected isTemporary(): boolean;
			/**
			 * After being instantiated, this is called to tell the content provider about itself.
			 * @param context The context this provider is running in
			 * @param info Registered information about this content provider
			 */
			public attachInfo(context: android.content.Context, info: android.content.pm.ProviderInfo): void;
			/**
			 * Override this to handle requests to perform a batch of operations, or the default implementation will iterate over the operations and call ContentProviderOperation#apply on each of them. If all calls to ContentProviderOperation#apply succeed then a ContentProviderResult array with as many elements as there were operations will be returned. If any of the calls fail, it is up to the implementation how many of the others take effect. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param operations the operations to apply
			 */
			public applyBatch(operations: java.util.ArrayList<android.content.ContentProviderOperation>): native.Array<android.content.ContentProviderResult>;
			/**
			 * Call a provider-defined method. This can be used to implement interfaces that are cheaper and/or unnatural for a table-like model.
			 * @param method method name to call. Opaque to framework, but should not be null.
			 * @param arg provider-defined String argument. May be null.
			 * @param extras provider-defined Bundle argument. May be null.
			 */
			public call(method: string, arg: string, extras: android.os.Bundle): android.os.Bundle;
			/**
			 * Implement this to shut down the ContentProvider instance. You can then invoke this method in unit tests. 
			 */
			public shutdown(): void;
		}
		export module ContentProvider {
			/**
			 * Interface to write a stream of data to a pipe. Use with ContentProvider#openPipeHelper.
			 */
			interface IPipeDataWriter<T> {
				/**
				 * Called from a background thread to stream data out to a pipe. Note that the pipe is blocking, so this thread can block on writes for an arbitrary amount of time if the client is slow at reading.
				 * @param output The pipe where data should be written. This will be
				 * @param uri The URI whose data is to be written.
				 * @param mimeType The desired type of data to be written.
				 * @param opts Options supplied by caller.
				 * @param args Your own custom arguments.
				 */
				writeDataToPipe(output: android.os.ParcelFileDescriptor, uri: android.net.Uri, mimeType: string, opts: android.os.Bundle, args: T): void;
			}
			/**
			 * Interface to write a stream of data to a pipe. Use with ContentProvider#openPipeHelper.
			 */
			export class PipeDataWriter<T> implements android.content.ContentProvider.IPipeDataWriter<T> {
				constructor(implementation: android.content.ContentProvider.IPipeDataWriter<T>);
				/**
				 * Called from a background thread to stream data out to a pipe. Note that the pipe is blocking, so this thread can block on writes for an arbitrary amount of time if the client is slow at reading.
				 * @param output The pipe where data should be written. This will be
				 * @param uri The URI whose data is to be written.
				 * @param mimeType The desired type of data to be written.
				 * @param opts Options supplied by caller.
				 * @param args Your own custom arguments.
				 */
				public writeDataToPipe(output: android.os.ParcelFileDescriptor, uri: android.net.Uri, mimeType: string, opts: android.os.Bundle, args: T): void;
			}
		}
		/**
		 * A specialization of Iterator that allows iterating over a collection of Entity objects. In addition to the iteration functionality it also allows resetting the iterator back to the beginning and provides for an explicit #close() method to indicate that the iterator is no longer needed and that its resources can be released.
		 */
		export class EntityIterator implements android.content.IEntityIterator {
			constructor(implementation: android.content.IEntityIterator);
			/**
			 * Reset the iterator back to the beginning.
			 */
			public reset(): void;
			/**
			 * Indicates that this iterator is no longer needed and that any associated resources may be released (such as a SQLite cursor).
			 */
			public close(): void;
		}
		/**
		 * Utility class to aid in matching URIs in content providers.
		 */
		export class UriMatcher extends java.lang.Object {
			/**
			 * Creates the root node of the URI tree.
			 * @param code the code to match for the root URI
			 */
			constructor(code: number);
			static NO_MATCH: number;
			static class: java.lang.Class<android.content.UriMatcher>;
			/**
			 * Add a URI to match, and the code to return when this URI is matched. URI nodes may be exact match string, the token "*" that matches any text, or the token "#" that matches only numbers.
			 * @param authority the authority to match
			 * @param path the path to match. * may be used as a wild card for
			 * @param code the code that is returned when a URI is matched
			 */
			public addURI(authority: string, path: string, code: number): void;
			/**
			 * Try to match against the path in a url.
			 * @param uri The url whose path we will match against.
			 */
			public match(uri: android.net.Uri): number;
		}
		/**
		 * An abstract class that performs asynchronous loading of data. While Loaders are active they should monitor the source of their data and deliver new results when the contents change. See android.app.LoaderManager for more detail.
		 */
		export class Loader<D> extends java.lang.Object {
			/**
			 * Stores away the application context associated with context. Since Loaders can be used across multiple activities it's dangerous to store the context directly; always use #getContext() to retrieve the Loader's Context, don't use the constructor argument directly. The Context returned by #getContext is safe to use across Activity instances.
			 * @param context used to retrieve the application context.
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.content.Loader<any>>;
			ForceLoadContentObserver: {
	new (): android.content.Loader.ForceLoadContentObserver;
};
			/**
			 * Sends the result of the load to the registered listener. Should only be called by subclasses.
			 * @param data the result of the load
			 */
			public deliverResult(data: D): void;
			/**
			 * Informs the registered OnLoadCanceledListener that the load has been canceled. Should only be called by subclasses.
			 */
			public deliverCancellation(): void;
			public getContext(): android.content.Context;
			public getId(): number;
			/**
			 * Registers a class that will receive callbacks when a load is complete. The callback will be called on the process's main thread so it's safe to pass the results to widgets.
			 */
			public registerListener(id: number, listener: android.content.Loader.IOnLoadCompleteListener<D>): void;
			/**
			 * Remove a listener that was previously added with #registerListener.
			 */
			public unregisterListener(listener: android.content.Loader.IOnLoadCompleteListener<D>): void;
			/**
			 * Registers a listener that will receive callbacks when a load is canceled. The callback will be called on the process's main thread so it's safe to pass the results to widgets.
			 * @param listener The listener to register.
			 */
			public registerOnLoadCanceledListener(listener: android.content.Loader.IOnLoadCanceledListener<D>): void;
			/**
			 * Unregisters a listener that was previously added with #registerOnLoadCanceledListener.
			 * @param listener The listener to unregister.
			 */
			public unregisterOnLoadCanceledListener(listener: android.content.Loader.IOnLoadCanceledListener<D>): void;
			/**
			 * Return whether this load has been started. That is, its #startLoading() has been called and no calls to #stopLoading() or #reset() have yet been made.
			 */
			public isStarted(): boolean;
			/**
			 * Return whether this loader has been abandoned. In this state, the loader <em>must not</em> report any new data, and <em>must</em> keep its last reported data valid until it is finally reset.
			 */
			public isAbandoned(): boolean;
			/**
			 * Return whether this load has been reset. That is, either the loader has not yet been started for the first time, or its #reset() has been called.
			 */
			public isReset(): boolean;
			/**
			 * This function will normally be called for you automatically by android.app.LoaderManager when the associated fragment/activity is being started. When using a Loader with android.app.LoaderManager, you <em>must not</em> call this method yourself, or you will conflict with its management of the Loader.
			 */
			public startLoading(): void;
			/**
			 * Subclasses must implement this to take care of loading their data, as per #startLoading(). This is not called by clients directly, but as a result of a call to #startLoading().
			 */
			protected onStartLoading(): void;
			/**
			 * Attempt to cancel the current load task. Must be called on the main thread of the process.
			 */
			public cancelLoad(): boolean;
			/**
			 * Subclasses must implement this to take care of requests to #cancelLoad(). This will always be called from the process's main thread.
			 */
			protected onCancelLoad(): boolean;
			/**
			 * Force an asynchronous load. Unlike #startLoading() this will ignore a previously loaded data set and load a new one. This simply calls through to the implementation's #onForceLoad(). You generally should only call this when the loader is started -- that is, #isStarted() returns true.
			 */
			public forceLoad(): void;
			/**
			 * Subclasses must implement this to take care of requests to #forceLoad(). This will always be called from the process's main thread.
			 */
			protected onForceLoad(): void;
			/**
			 * This function will normally be called for you automatically by android.app.LoaderManager when the associated fragment/activity is being stopped. When using a Loader with android.app.LoaderManager, you <em>must not</em> call this method yourself, or you will conflict with its management of the Loader.
			 */
			public stopLoading(): void;
			/**
			 * Subclasses must implement this to take care of stopping their loader, as per #stopLoading(). This is not called by clients directly, but as a result of a call to #stopLoading(). This will always be called from the process's main thread.
			 */
			protected onStopLoading(): void;
			/**
			 * This function will normally be called for you automatically by android.app.LoaderManager when restarting a Loader. When using a Loader with android.app.LoaderManager, you <em>must not</em> call this method yourself, or you will conflict with its management of the Loader.
			 */
			public abandon(): void;
			/**
			 * Subclasses implement this to take care of being abandoned. This is an optional intermediate state prior to #onReset() -- it means that the client is no longer interested in any new data from the loader, so the loader must not report any further updates. However, the loader <em>must</em> keep its last reported data valid until the final #onReset() happens. You can retrieve the current abandoned state with #isAbandoned.
			 */
			protected onAbandon(): void;
			/**
			 * This function will normally be called for you automatically by android.app.LoaderManager when destroying a Loader. When using a Loader with android.app.LoaderManager, you <em>must not</em> call this method yourself, or you will conflict with its management of the Loader.
			 */
			public reset(): void;
			/**
			 * Subclasses must implement this to take care of resetting their loader, as per #reset(). This is not called by clients directly, but as a result of a call to #reset(). This will always be called from the process's main thread.
			 */
			protected onReset(): void;
			/**
			 * Take the current flag indicating whether the loader's content had changed while it was stopped. If it had, true is returned and the flag is cleared.
			 */
			public takeContentChanged(): boolean;
			/**
			 * Called when ForceLoadContentObserver detects a change. The default implementation checks to see if the loader is currently started; if so, it simply calls #forceLoad(); otherwise, it sets a flag so that #takeContentChanged() returns true.
			 */
			public onContentChanged(): void;
			/**
			 * For debugging, converts an instance of the Loader's data class to a string that can be printed. Must handle a null data.
			 */
			public dataToString(data: D): string;
			public toString(): string;
			/**
			 * Print the Loader's state into the given stream.
			 * @param prefix Text to print at the front of each line.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param writer A PrintWriter to which the dump is to be set.
			 * @param args Additional arguments to the dump request.
			 */
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
		}
		export module Loader {
			/**
			 * Interface that is implemented to discover when a Loader has been canceled before it finished loading its data. You do not normally need to implement this yourself; it is used in the implementation of android.app.LoaderManager to find out when a Loader it is managing has been canceled so that it can schedule the next Loader. This interface should only be used if a Loader is not being used in conjunction with LoaderManager.
			 */
			export class OnLoadCanceledListener<D> implements android.content.Loader.IOnLoadCanceledListener<D> {
				constructor(implementation: android.content.Loader.IOnLoadCanceledListener<D>);
				/**
				 * Called on the thread that created the Loader when the load is canceled.
				 * @param loader the loader that canceled the load
				 */
				public onLoadCanceled(loader: android.content.Loader<D>): void;
			}
			/**
			 * An implementation of a ContentObserver that takes care of connecting it to the Loader to have the loader re-load its data when the observer is told it has changed. You do not normally need to use this yourself; it is used for you by CursorLoader to take care of executing an update when the cursor's backing data changes.
			 */
			export class ForceLoadContentObserver extends android.database.ContentObserver {
				static class: java.lang.Class<android.content.Loader.ForceLoadContentObserver>;
				public deliverSelfNotifications(): boolean;
				public onChange(selfChange: boolean): void;
				/**
				 * This method is called when a content change occurs. Includes the changed content Uri when available.
				 * @param selfChange True if this is a self-change notification.
				 * @param uri The Uri of the changed content, or null if unknown.
				 */
				onChange(selfChange: boolean, uri: android.net.Uri): void;
			}
			/**
			 * Interface that is implemented to discover when a Loader has finished loading its data. You do not normally need to implement this yourself; it is used in the implementation of android.app.LoaderManager to find out when a Loader it is managing has completed so that this can be reported to its client. This interface should only be used if a Loader is not being used in conjunction with LoaderManager.
			 */
			export class OnLoadCompleteListener<D> implements android.content.Loader.IOnLoadCompleteListener<D> {
				constructor(implementation: android.content.Loader.IOnLoadCompleteListener<D>);
				/**
				 * Called on the thread that created the Loader when the load is complete.
				 * @param loader the loader that completed the load
				 * @param data the result of the load
				 */
				public onLoadComplete(loader: android.content.Loader<D>, data: D): void;
			}
			/**
			 * Interface that is implemented to discover when a Loader has finished loading its data. You do not normally need to implement this yourself; it is used in the implementation of android.app.LoaderManager to find out when a Loader it is managing has completed so that this can be reported to its client. This interface should only be used if a Loader is not being used in conjunction with LoaderManager.
			 */
			interface IOnLoadCompleteListener<D> {
				/**
				 * Called on the thread that created the Loader when the load is complete.
				 * @param loader the loader that completed the load
				 * @param data the result of the load
				 */
				onLoadComplete(loader: android.content.Loader<D>, data: D): void;
			}
			/**
			 * Interface that is implemented to discover when a Loader has been canceled before it finished loading its data. You do not normally need to implement this yourself; it is used in the implementation of android.app.LoaderManager to find out when a Loader it is managing has been canceled so that it can schedule the next Loader. This interface should only be used if a Loader is not being used in conjunction with LoaderManager.
			 */
			interface IOnLoadCanceledListener<D> {
				/**
				 * Called on the thread that created the Loader when the load is canceled.
				 * @param loader the loader that canceled the load
				 */
				onLoadCanceled(loader: android.content.Loader<D>): void;
			}
		}
		/**
		 * This class provides applications access to the content model.
		 */
		export class ContentResolver extends java.lang.Object {
			constructor(context: android.content.Context);
			/**
			 *  instead use #requestSync(android.accounts.Account, String, android.os.Bundle)
			 */
			static SYNC_EXTRAS_ACCOUNT: string;
			static SYNC_EXTRAS_EXPEDITED: string;
			/**
			 *  instead use #SYNC_EXTRAS_MANUAL
			 */
			static SYNC_EXTRAS_FORCE: string;
			/**
			 * If this extra is set to true then the sync settings (like getSyncAutomatically()) are ignored by the sync scheduler.
			 */
			static SYNC_EXTRAS_IGNORE_SETTINGS: string;
			/**
			 * If this extra is set to true then any backoffs for the initial attempt (e.g. due to retries) are ignored by the sync scheduler. If this request fails and gets rescheduled then the retries will still honor the backoff.
			 */
			static SYNC_EXTRAS_IGNORE_BACKOFF: string;
			/**
			 * If this extra is set to true then the request will not be retried if it fails.
			 */
			static SYNC_EXTRAS_DO_NOT_RETRY: string;
			/**
			 * Setting this extra is the equivalent of setting both #SYNC_EXTRAS_IGNORE_SETTINGS and #SYNC_EXTRAS_IGNORE_BACKOFF
			 */
			static SYNC_EXTRAS_MANUAL: string;
			static SYNC_EXTRAS_UPLOAD: string;
			static SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS: string;
			static SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS: string;
			/**
			 * Set by the SyncManager to request that the SyncAdapter initialize itself for the given account/authority pair. One required initialization step is to ensure that #setIsSyncable(android.accounts.Account, String, int) has been called with a >= 0 value. When this flag is set the SyncAdapter does not need to do a full sync, though it is allowed to do so.
			 */
			static SYNC_EXTRAS_INITIALIZE: string;
			static SCHEME_CONTENT: string;
			static SCHEME_ANDROID_RESOURCE: string;
			static SCHEME_FILE: string;
			/**
			 * This is the Android platform's base MIME type for a content: URI containing a Cursor of a single item. Applications should use this as the base type along with their own sub-type of their content: URIs that represent a particular item. For example, hypothetical IMAP email client may have a URI <code>content://com.company.provider.imap/inbox/1</code> for a particular message in the inbox, whose MIME type would be reported as <code>CURSOR_ITEM_BASE_TYPE + "/vnd.company.imap-msg"</code>
			 */
			static CURSOR_ITEM_BASE_TYPE: string;
			/**
			 * This is the Android platform's base MIME type for a content: URI containing a Cursor of zero or more items. Applications should use this as the base type along with their own sub-type of their content: URIs that represent a directory of items. For example, hypothetical IMAP email client may have a URI <code>content://com.company.provider.imap/inbox</code> for all of the messages in its inbox, whose MIME type would be reported as <code>CURSOR_DIR_BASE_TYPE + "/vnd.company.imap-msg"</code>
			 */
			static CURSOR_DIR_BASE_TYPE: string;
			static SYNC_OBSERVER_TYPE_SETTINGS: number;
			static SYNC_OBSERVER_TYPE_PENDING: number;
			static SYNC_OBSERVER_TYPE_ACTIVE: number;
			static class: java.lang.Class<android.content.ContentResolver>;
			/**
			 * Return the MIME type of the given content URL.
			 * @param url A Uri identifying content (either a list or specific type),
			 */
			public getType(url: android.net.Uri): string;
			/**
			 * Query for the possible MIME types for the representations the given content URL can be returned when opened as as stream with #openTypedAssetFileDescriptor. Note that the types here are not necessarily a superset of the type returned by #getType -- many content providers can not return a raw stream for the structured data that they contain.
			 * @param url A Uri identifying content (either a list or specific type),
			 * @param mimeTypeFilter The desired MIME type. This may be a pattern,
			 */
			public getStreamTypes(url: android.net.Uri, mimeTypeFilter: string): native.Array<string>;
			/**
			 * @param uri The URI, using the content:// scheme, for the content to
			 * @param projection A list of which columns to return. Passing null will
			 * @param selection A filter declaring which rows to return, formatted as an
			 * @param selectionArgs You may include ?s in selection, which will be
			 * @param sortOrder How to order the rows, formatted as an SQL ORDER BY
			 */
			public query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string): android.database.ICursor;
			/**
			 * @param uri The URI, using the content:// scheme, for the content to
			 * @param projection A list of which columns to return. Passing null will
			 * @param selection A filter declaring which rows to return, formatted as an
			 * @param selectionArgs You may include ?s in selection, which will be
			 * @param sortOrder How to order the rows, formatted as an SQL ORDER BY
			 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
			 */
			public query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
			/**
			 * Open a stream on to the content associated with a content URI. If there is no data associated with the URI, FileNotFoundException is thrown.
			 * @param uri The desired URI.
			 */
			public openInputStream(uri: android.net.Uri): java.io.InputStream;
			/**
			 * Synonym for #openOutputStream(Uri, String) openOutputStream(uri, "w"). FileNotFoundException if the provided URI could not be opened.
			 */
			public openOutputStream(uri: android.net.Uri): java.io.OutputStream;
			/**
			 * Open a stream on to the content associated with a content URI. If there is no data associated with the URI, FileNotFoundException is thrown.
			 * @param uri The desired URI.
			 * @param mode May be "w", "wa", "rw", or "rwt".
			 */
			public openOutputStream(uri: android.net.Uri, mode: string): java.io.OutputStream;
			/**
			 * Open a raw file descriptor to access data under a URI. This is like #openAssetFileDescriptor(Uri, String), but uses the underlying ContentProvider#openFile ContentProvider.openFile()} method, so will <em>not</em> work with providers that return sub-sections of files. If at all possible, you should use #openAssetFileDescriptor(Uri, String). You will receive a FileNotFoundException exception if the provider returns a sub-section of a file.
			 * @param uri The desired URI to open.
			 * @param mode The file mode to use, as per {@link ContentProvider#openFile
			 */
			public openFileDescriptor(uri: android.net.Uri, mode: string): android.os.ParcelFileDescriptor;
			/**
			 * Open a raw file descriptor to access data under a URI. This interacts with the underlying ContentProvider#openAssetFile method of the provider associated with the given URI, to retrieve any file stored there.
			 * @param uri The desired URI to open.
			 * @param mode The file mode to use, as per {@link ContentProvider#openAssetFile
			 */
			public openAssetFileDescriptor(uri: android.net.Uri, mode: string): android.content.res.AssetFileDescriptor;
			/**
			 * Open a raw file descriptor to access (potentially type transformed) data from a "content:" URI. This interacts with the underlying ContentProvider#openTypedAssetFile method of the provider associated with the given URI, to retrieve retrieve any appropriate data stream for the data stored there.
			 * @param uri The desired URI to open.
			 * @param mimeType The desired MIME type of the returned data. This can
			 * @param opts Additional provider-dependent options.
			 */
			public openTypedAssetFileDescriptor(uri: android.net.Uri, mimeType: string, opts: android.os.Bundle): android.content.res.AssetFileDescriptor;
			/**
			 * Inserts a row into a table at the given URL.
			 * @param url The URL of the table to insert into.
			 * @param values The initial values for the newly inserted row. The key is the column name for
			 */
			public insert(url: android.net.Uri, values: android.content.ContentValues): android.net.Uri;
			/**
			 * Applies each of the ContentProviderOperation objects and returns an array of their results. Passes through OperationApplicationException, which may be thrown by the call to ContentProviderOperation#apply. If all the applications succeed then a ContentProviderResult array with the same number of elements as the operations will be returned. It is implementation-specific how many, if any, operations will have been successfully applied if a call to apply results in a OperationApplicationException.
			 * @param authority the authority of the ContentProvider to which this batch should be applied
			 * @param operations the operations to apply
			 */
			public applyBatch(authority: string, operations: java.util.ArrayList<android.content.ContentProviderOperation>): native.Array<android.content.ContentProviderResult>;
			/**
			 * Inserts multiple rows into a table at the given URL.
			 * @param url The URL of the table to insert into.
			 * @param values The initial values for the newly inserted rows. The key is the column name for
			 */
			public bulkInsert(url: android.net.Uri, values: native.Array<android.content.ContentValues>): number;
			/**
			 * Deletes row(s) specified by a content URI.
			 * @param url The URL of the row to delete.
			 * @param where A filter to apply to rows before deleting, formatted as an SQL WHERE clause
			 * @param selectionArgs 
			 */
			public delete(url: android.net.Uri, where: string, selectionArgs: native.Array<string>): number;
			/**
			 * Update row(s) in a content URI.
			 * @param uri The URI to modify.
			 * @param values The new field values. The key is the column name for the field.
			 * @param where A filter to apply to rows before updating, formatted as an SQL WHERE clause
			 * @param selectionArgs 
			 */
			public update(uri: android.net.Uri, values: android.content.ContentValues, where: string, selectionArgs: native.Array<string>): number;
			/**
			 * Call a provider-defined method. This can be used to implement read or write interfaces which are cheaper than using a Cursor and/or do not fit into the traditional table model.
			 * @param uri method provider-defined method name to call. Opaque to
			 * @param method arg provider-defined String argument. May be null.
			 * @param arg extras provider-defined Bundle argument. May be null.
			 * @param extras 
			 */
			public call(uri: android.net.Uri, method: string, arg: string, extras: android.os.Bundle): android.os.Bundle;
			/**
			 * Returns a ContentProviderClient that is associated with the ContentProvider that services the content at uri, starting the provider if necessary. Returns null if there is no provider associated wih the uri. The caller must indicate that they are done with the provider by calling ContentProviderClient#release which will allow the system to release the provider it it determines that there is no other reason for keeping it active.
			 * @param uri specifies which provider should be acquired
			 */
			public acquireContentProviderClient(uri: android.net.Uri): android.content.ContentProviderClient;
			/**
			 * Returns a ContentProviderClient that is associated with the ContentProvider with the authority of name, starting the provider if necessary. Returns null if there is no provider associated wih the uri. The caller must indicate that they are done with the provider by calling ContentProviderClient#release which will allow the system to release the provider it it determines that there is no other reason for keeping it active.
			 * @param name specifies which provider should be acquired
			 */
			public acquireContentProviderClient(name: string): android.content.ContentProviderClient;
			/**
			 * Like #acquireContentProviderClient(Uri), but for use when you do not trust the stability of the target content provider. This turns off the mechanism in the platform clean up processes that are dependent on a content provider if that content provider's process goes away. Normally you can safely assume that once you have acquired a provider, you can freely use it as needed and it won't disappear, even if your process is in the background. If using this method, you need to take care to deal with any failures when communicating with the provider, and be sure to close it so that it can be re-opened later. In particular, catching a android.os.DeadObjectException from the calls there will let you know that the content provider has gone away; at that point the current ContentProviderClient object is invalid, and you should release it. You can acquire a new one if you would like to try to restart the provider and perform new operations on it.
			 */
			public acquireUnstableContentProviderClient(uri: android.net.Uri): android.content.ContentProviderClient;
			/**
			 * Like #acquireContentProviderClient(String), but for use when you do not trust the stability of the target content provider. This turns off the mechanism in the platform clean up processes that are dependent on a content provider if that content provider's process goes away. Normally you can safely assume that once you have acquired a provider, you can freely use it as needed and it won't disappear, even if your process is in the background. If using this method, you need to take care to deal with any failures when communicating with the provider, and be sure to close it so that it can be re-opened later. In particular, catching a android.os.DeadObjectException from the calls there will let you know that the content provider has gone away; at that point the current ContentProviderClient object is invalid, and you should release it. You can acquire a new one if you would like to try to restart the provider and perform new operations on it.
			 */
			public acquireUnstableContentProviderClient(name: string): android.content.ContentProviderClient;
			/**
			 * Register an observer class that gets callbacks when data identified by a given content URI changes.
			 * @param uri The URI to watch for changes. This can be a specific row URI, or a base URI
			 * @param notifyForDescendents If <code>true</code> changes to URIs beginning with <code>uri</code>
			 * @param observer The object that receives callbacks when changes occur.
			 */
			public registerContentObserver(uri: android.net.Uri, notifyForDescendents: boolean, observer: android.database.ContentObserver): void;
			/**
			 * Unregisters a change observer.
			 * @param observer The previously registered observer that is no longer needed.
			 */
			public unregisterContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Notify registered observers that a row was updated and attempt to sync changes to the network. To register, call #registerContentObserver(android.net.Uri , boolean, android.database.ContentObserver) registerContentObserver(). By default, CursorAdapter objects will get this notification.
			 * @param uri The uri of the content that was changed.
			 * @param observer The observer that originated the change, may be <code>null</null>.
			 */
			public notifyChange(uri: android.net.Uri, observer: android.database.ContentObserver): void;
			/**
			 * Notify registered observers that a row was updated. To register, call #registerContentObserver(android.net.Uri , boolean, android.database.ContentObserver) registerContentObserver(). By default, CursorAdapter objects will get this notification. If syncToNetwork is true, this will attempt to schedule a local sync using the sync adapter that's registered for the authority of the provided uri. No account will be passed to the sync adapter, so all matching accounts will be synchronized.
			 * @param uri The uri of the content that was changed.
			 * @param observer The observer that originated the change, may be <code>null</null>.
			 * @param syncToNetwork If true, attempt to sync the change to the network.
			 */
			public notifyChange(uri: android.net.Uri, observer: android.database.ContentObserver, syncToNetwork: boolean): void;
			/**
			 * Start an asynchronous sync operation. If you want to monitor the progress of the sync you may register a SyncObserver. Only values of the following types may be used in the extras bundle: <ul> <li>Integer</li> <li>Long</li> <li>Boolean</li> <li>Float</li> <li>Double</li> <li>String</li> </ul>
			 * @param uri the uri of the provider to sync or null to sync all providers.
			 * @param extras any extras to pass to the SyncAdapter.
			 */
			public startSync(uri: android.net.Uri, extras: android.os.Bundle): void;
			/**
			 * Start an asynchronous sync operation. If you want to monitor the progress of the sync you may register a SyncObserver. Only values of the following types may be used in the extras bundle: <ul> <li>Integer</li> <li>Long</li> <li>Boolean</li> <li>Float</li> <li>Double</li> <li>String</li> </ul>
			 * @param account which account should be synced
			 * @param authority which authority should be synced
			 * @param extras any extras to pass to the SyncAdapter.
			 */
			public static requestSync(account: android.accounts.Account, authority: string, extras: android.os.Bundle): void;
			/**
			 * Check that only values of the following types are in the Bundle: <ul> <li>Integer</li> <li>Long</li> <li>Boolean</li> <li>Float</li> <li>Double</li> <li>String</li> <li>Account</li> <li>null</li> </ul>
			 * @param extras the Bundle to check
			 */
			public static validateSyncExtrasBundle(extras: android.os.Bundle): void;
			/**
			 * Cancel any active or pending syncs that match the Uri. If the uri is null then all syncs will be canceled.
			 * @param uri the uri of the provider to sync or null to sync all providers.
			 */
			public cancelSync(uri: android.net.Uri): void;
			/**
			 * Cancel any active or pending syncs that match account and authority. The account and authority can each independently be set to null, which means that syncs with any account or authority, respectively, will match.
			 * @param account filters the syncs that match by this account
			 * @param authority filters the syncs that match by this authority
			 */
			public static cancelSync(account: android.accounts.Account, authority: string): void;
			/**
			 * Get information about the SyncAdapters that are known to the system.
			 */
			public static getSyncAdapterTypes(): native.Array<android.content.SyncAdapterType>;
			/**
			 * Check if the provider should be synced when a network tickle is received
			 * @param account the account whose setting we are querying
			 * @param authority the provider whose setting we are querying
			 */
			public static getSyncAutomatically(account: android.accounts.Account, authority: string): boolean;
			/**
			 * Set whether or not the provider is synced when it receives a network tickle.
			 * @param account the account whose setting we are querying
			 * @param authority the provider whose behavior is being controlled
			 * @param sync true if the provider should be synced when tickles are received for it
			 */
			public static setSyncAutomatically(account: android.accounts.Account, authority: string, sync: boolean): void;
			/**
			 * Specifies that a sync should be requested with the specified the account, authority, and extras at the given frequency. If there is already another periodic sync scheduled with the account, authority and extras then a new periodic sync won't be added, instead the frequency of the previous one will be updated.
			 * @param account the account to specify in the sync
			 * @param authority the provider to specify in the sync request
			 * @param extras extra parameters to go along with the sync request
			 * @param pollFrequency how frequently the sync should be performed, in seconds.
			 */
			public static addPeriodicSync(account: android.accounts.Account, authority: string, extras: android.os.Bundle, pollFrequency: number): void;
			/**
			 * Remove a periodic sync. Has no affect if account, authority and extras don't match an existing periodic sync.
			 * @param account the account of the periodic sync to remove
			 * @param authority the provider of the periodic sync to remove
			 * @param extras the extras of the periodic sync to remove
			 */
			public static removePeriodicSync(account: android.accounts.Account, authority: string, extras: android.os.Bundle): void;
			/**
			 * Get the list of information about the periodic syncs for the given account and authority.
			 * @param account the account whose periodic syncs we are querying
			 * @param authority the provider whose periodic syncs we are querying
			 */
			public static getPeriodicSyncs(account: android.accounts.Account, authority: string): java.util.IList<android.content.PeriodicSync>;
			/**
			 * Check if this account/provider is syncable.
			 */
			public static getIsSyncable(account: android.accounts.Account, authority: string): number;
			/**
			 * Set whether this account/provider is syncable.
			 * @param account syncable >0 denotes syncable, 0 means not syncable, <0 means unknown
			 * @param authority 
			 * @param syncable 
			 */
			public static setIsSyncable(account: android.accounts.Account, authority: string, syncable: number): void;
			/**
			 * Gets the master auto-sync setting that applies to all the providers and accounts. If this is false then the per-provider auto-sync setting is ignored.
			 */
			public static getMasterSyncAutomatically(): boolean;
			/**
			 * Sets the master auto-sync setting that applies to all the providers and accounts. If this is false then the per-provider auto-sync setting is ignored.
			 * @param sync the master auto-sync setting that applies to all the providers and accounts
			 */
			public static setMasterSyncAutomatically(sync: boolean): void;
			/**
			 * Returns true if there is currently a sync operation for the given account or authority in the pending list, or actively being processed.
			 * @param account the account whose setting we are querying
			 * @param authority the provider whose behavior is being queried
			 */
			public static isSyncActive(account: android.accounts.Account, authority: string): boolean;
			/**
			 * If a sync is active returns the information about it, otherwise returns null.
			 */
			public static getCurrentSync(): android.content.SyncInfo;
			/**
			 * Returns a list with information about all the active syncs. This list will be empty if there are no active syncs.
			 */
			public static getCurrentSyncs(): java.util.IList<android.content.SyncInfo>;
			/**
			 * Return true if the pending status is true of any matching authorities.
			 * @param account the account whose setting we are querying
			 * @param authority the provider whose behavior is being queried
			 */
			public static isSyncPending(account: android.accounts.Account, authority: string): boolean;
			/**
			 * Request notifications when the different aspects of the SyncManager change. The different items that can be requested are: <ul> <li> #SYNC_OBSERVER_TYPE_PENDING <li> #SYNC_OBSERVER_TYPE_ACTIVE <li> #SYNC_OBSERVER_TYPE_SETTINGS </ul> The caller can set one or more of the status types in the mask for any given listener registration.
			 * @param mask the status change types that will cause the callback to be invoked
			 * @param callback observer to be invoked when the status changes
			 */
			public static addStatusChangeListener(mask: number, callback: android.content.ISyncStatusObserver): any;
			/**
			 * Remove a previously registered status change listener.
			 * @param handle the handle that was returned by {@link #addStatusChangeListener}
			 */
			public static removeStatusChangeListener(handle: any): void;
		}
		export module ContentResolver {
			export class CursorWrapperInner extends android.database.CrossProcessCursorWrapper {
				static TAG: string;
				static class: java.lang.Class<android.content.ContentResolver.CursorWrapperInner>;
				public close(): void;
				protected finalize(): void;
			}
			export class ParcelFileDescriptorInner extends android.os.ParcelFileDescriptor {
				static class: java.lang.Class<android.content.ContentResolver.ParcelFileDescriptorInner>;
				public close(): void;
				protected finalize(): void;
			}
		}
		export class ObserverNodeTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.ObserverNodeTest>;
			public testUri(): void;
			public testUriNotNotify(): void;
		}
		export module ObserverNodeTest {
			export class TestObserver extends android.database.ContentObserver {
				constructor();
				static class: java.lang.Class<android.content.ObserverNodeTest.TestObserver>;
			}
		}
		export class AssetTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.AssetTest>;
			protected setUp(): void;
			public static verifyTextAsset(is: java.io.InputStream): void;
			public testReadToEnd(): void;
			public xxtestListDir(): void;
		}
		interface ISyncStatusObserver {
			onStatusChanged(which: number): void;
		}
		/**
		 * Identifier for a specific application component (android.app.Activity, android.app.Service, android.content.BroadcastReceiver, or android.content.ContentProvider) that is available. Two pieces of information, encapsulated here, are required to identify a component: the package (a String) it exists in, and the class (a String) name inside of that package. 
		 */
		export class ComponentName extends java.lang.Object implements android.os.IParcelable, java.lang.ICloneable {
			/**
			 * Create a new component identifier. 
			 * @param pkg The name of the package that the component exists in. Can
			 * @param cls The name of the class inside of <var>pkg</var> that
			 */
			constructor(pkg: string, cls: string);
			/**
			 * Create a new component identifier from a Context and class name. 
			 * @param pkg A Context for the package implementing the component,
			 * @param cls The name of the class inside of <var>pkg</var> that
			 */
			constructor(pkg: android.content.Context, cls: string);
			/**
			 * Create a new component identifier from a Context and Class object. 
			 * @param pkg A Context for the package implementing the component, from
			 * @param cls The Class object of the desired component, from which the
			 */
			constructor(pkg: android.content.Context, cls: java.lang.Class<any>);
			/**
			 * Instantiate a new ComponentName from the data in a Parcel that was previously written with #writeToParcel(Parcel, int). Note that you must not use this with data written by #writeToParcel(ComponentName, Parcel) since it is not possible to handle a null ComponentObject here. 
			 * @param input in The Parcel containing the previously written ComponentName,
			 */
			constructor(input: android.os.Parcel);
			static CREATOR: android.os.Parcelable.ICreator<android.content.ComponentName>;
			static class: java.lang.Class<android.content.ComponentName>;
			public clone(): android.content.ComponentName;
			/**
			 * Return the package name of this component.
			 */
			public getPackageName(): string;
			/**
			 * Return the class name of this component.
			 */
			public getClassName(): string;
			/**
			 * Return the class name, either fully qualified or in a shortened form (with a leading '.') if it is a suffix of the package.
			 */
			public getShortClassName(): string;
			/**
			 * Return a String that unambiguously describes both the package and class names contained in the ComponentName. You can later recover the ComponentName from this string through #unflattenFromString(String). 
			 */
			public flattenToString(): string;
			/**
			 * The same as #flattenToString(), but abbreviates the class name if it is a suffix of the package. The result can still be used with #unflattenFromString(String). 
			 */
			public flattenToShortString(): string;
			/**
			 * Recover a ComponentName from a String that was previously created with #flattenToString(). It splits the string at the first '/', taking the part before as the package name and the part after as the class name. As a special convenience (to use, for example, when parsing component names on the command line), if the '/' is immediately followed by a '.' then the final class name will be the concatenation of the package name with the string following the '/'. Thus "com.foo/.Blah" becomes package="com.foo" class="com.foo.Blah". 
			 * @param str The String that was returned by flattenToString().
			 */
			public static unflattenFromString(str: string): android.content.ComponentName;
			/**
			 * Return string representation of this class without the class's name as a prefix.
			 */
			public toShortString(): string;
			public toString(): string;
			public equals(obj: any): boolean;
			public hashCode(): number;
			public compareTo(that: android.content.ComponentName): number;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Write a ComponentName to a Parcel, handling null pointers. Must be read with #readFromParcel(Parcel). 
			 * @param c The ComponentName to be written.
			 * @param out The Parcel in which the ComponentName will be placed.
			 */
			public static writeToParcel(c: android.content.ComponentName, out: android.os.Parcel): void;
			/**
			 * Read a ComponentName from a Parcel that was previously written with #writeToParcel(ComponentName, Parcel), returning either a null or new object as appropriate. 
			 * @param input in The Parcel from which to read the ComponentName
			 */
			public static readFromParcel(input: android.os.Parcel): android.content.ComponentName;
		}
		/**
		 * Test to make sure brick intents <b>don't</b> work without permission.
		 */
		export class BrickDeniedTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.BrickDeniedTest>;
			public testBrick(): void;
		}
		/**
		 * Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.
		 */
		export class Context extends java.lang.Object {
			constructor();
			/**
			 * File creation mode: the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID). #MODE_WORLD_READABLE #MODE_WORLD_WRITEABLE
			 */
			static MODE_PRIVATE: number;
			/**
			 *  Creating world-readable files is very dangerous, and likely to cause security holes in applications. It is strongly discouraged; instead, applications should use more formal mechanism for interactions such as ContentProvider, BroadcastReceiver, and android.app.Service. There are no guarantees that this access mode will remain on a file, such as when it goes through a backup and restore. File creation mode: allow all other applications to have read access to the created file. #MODE_PRIVATE #MODE_WORLD_WRITEABLE
			 */
			static MODE_WORLD_READABLE: number;
			/**
			 *  Creating world-writable files is very dangerous, and likely to cause security holes in applications. It is strongly discouraged; instead, applications should use more formal mechanism for interactions such as ContentProvider, BroadcastReceiver, and android.app.Service. There are no guarantees that this access mode will remain on a file, such as when it goes through a backup and restore. File creation mode: allow all other applications to have write access to the created file. #MODE_PRIVATE #MODE_WORLD_READABLE
			 */
			static MODE_WORLD_WRITEABLE: number;
			/**
			 * File creation mode: for use with #openFileOutput, if the file already exists then write data to the end of the existing file instead of erasing it. #openFileOutput
			 */
			static MODE_APPEND: number;
			/**
			 * SharedPreference loading flag: when set, the file on disk will be checked for modification even if the shared preferences instance is already loaded in this process. This behavior is sometimes desired in cases where the application has multiple processes, all writing to the same SharedPreferences file. Generally there are better forms of communication between processes, though.
			 */
			static MODE_MULTI_PROCESS: number;
			/**
			 * Database open flag: when set, the database is opened with write-ahead logging enabled by default.
			 */
			static MODE_ENABLE_WRITE_AHEAD_LOGGING: number;
			/**
			 * Flag for #bindService: automatically create the service as long as the binding exists. Note that while this will create the service, its android.app.Service#onStartCommand method will still only be called due to an explicit call to #startService. Even without that, though, this still provides you with access to the service object while the service is created.
			 */
			static BIND_AUTO_CREATE: number;
			/**
			 * Flag for #bindService: include debugging help for mismatched calls to unbind. When this flag is set, the callstack of the following #unbindService call is retained, to be printed if a later incorrect unbind call is made. Note that doing this requires retaining information about the binding that was made for the lifetime of the app, resulting in a leak -- this should only be used for debugging.
			 */
			static BIND_DEBUG_UNBIND: number;
			/**
			 * Flag for #bindService: don't allow this binding to raise the target service's process to the foreground scheduling priority. It will still be raised to at least the same memory priority as the client (so that its process will not be killable in any situation where the client is not killable), but for CPU scheduling purposes it may be left in the background. This only has an impact in the situation where the binding client is a foreground process and the target service is in a background process.
			 */
			static BIND_NOT_FOREGROUND: number;
			/**
			 * Flag for #bindService: indicates that the client application binding to this service considers the service to be more important than the app itself. When set, the platform will try to have the out of memory killer kill the app before it kills the service it is bound to, though this is not guaranteed to be the case.
			 */
			static BIND_ABOVE_CLIENT: number;
			/**
			 * Flag for #bindService: allow the process hosting the bound service to go through its normal memory management. It will be treated more like a running service, allowing the system to (temporarily) expunge the process if low on memory or for some other whim it may have, and being more aggressive about making it a candidate to be killed (and restarted) if running for a long time.
			 */
			static BIND_ALLOW_OOM_MANAGEMENT: number;
			/**
			 * Flag for #bindService: don't impact the scheduling or memory management priority of the target service's hosting process. Allows the service's process to be managed on the background LRU list just like a regular application process in the background.
			 */
			static BIND_WAIVE_PRIORITY: number;
			/**
			 * Flag for #bindService: this service is very important to the client, so should be brought to the foreground process level when the client is. Normally a process can only be raised to the visibility level by a client, even if that client is in the foreground.
			 */
			static BIND_IMPORTANT: number;
			/**
			 * Flag for #bindService: If binding from an activity, allow the target service's process importance to be raised based on whether the activity is visible to the user, regardless whether another flag is used to reduce the amount that the client process's overall importance is used to impact it.
			 */
			static BIND_ADJUST_WITH_ACTIVITY: number;
			/**
			 * Use with #getSystemService to retrieve a android.os.PowerManager for controlling power management, including "wake locks," which let you keep the device on while you're running long tasks.
			 */
			static POWER_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.view.WindowManager for accessing the system's window manager.
			 */
			static WINDOW_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.view.LayoutInflater for inflating layout resources in this context.
			 */
			static LAYOUT_INFLATER_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.accounts.AccountManager for receiving intents at a time of your choosing.
			 */
			static ACCOUNT_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.ActivityManager for interacting with the global system state.
			 */
			static ACTIVITY_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.AlarmManager for receiving intents at a time of your choosing.
			 */
			static ALARM_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.NotificationManager for informing the user of background events.
			 */
			static NOTIFICATION_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.view.accessibility.AccessibilityManager for giving the user feedback for UI events through the registered event listeners.
			 */
			static ACCESSIBILITY_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.NotificationManager for controlling keyguard.
			 */
			static KEYGUARD_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.location.LocationManager for controlling location updates.
			 */
			static LOCATION_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.SearchManager for handling searches.
			 */
			static SEARCH_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.hardware.SensorManager for accessing sensors.
			 */
			static SENSOR_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.os.storage.StorageManager for accessing system storage functions.
			 */
			static STORAGE_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a com.android.server.WallpaperService for accessing wallpapers.
			 */
			static WALLPAPER_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.os.Vibrator for interacting with the vibration hardware.
			 */
			static VIBRATOR_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.net.ConnectivityManager for handling management of network connections.
			 */
			static CONNECTIVITY_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.net.wifi.WifiManager for handling management of Wi-Fi access.
			 */
			static WIFI_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.net.wifi.p2p.WifiP2pManager for handling management of Wi-Fi peer-to-peer connections.
			 */
			static WIFI_P2P_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.net.nsd.NsdManager for handling management of network service discovery
			 */
			static NSD_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.media.AudioManager for handling management of volume, ringer modes and audio routing.
			 */
			static AUDIO_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.media.MediaRouter for controlling and managing routing of media.
			 */
			static MEDIA_ROUTER_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.telephony.TelephonyManager for handling management the telephony features of the device.
			 */
			static TELEPHONY_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.text.ClipboardManager for accessing and modifying the contents of the global clipboard.
			 */
			static CLIPBOARD_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.view.inputmethod.InputMethodManager for accessing input methods.
			 */
			static INPUT_METHOD_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.view.textservice.TextServicesManager for accessing text services.
			 */
			static TEXT_SERVICES_MANAGER_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.os.DropBoxManager instance for recording diagnostic logs. #getSystemService
			 */
			static DROPBOX_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.admin.DevicePolicyManager for working with global device policy management.
			 */
			static DEVICE_POLICY_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.UiModeManager for controlling UI modes.
			 */
			static UI_MODE_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.app.DownloadManager for requesting HTTP downloads.
			 */
			static DOWNLOAD_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.nfc.NfcManager for using NFC.
			 */
			static NFC_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.hardware.usb.UsbManager for access to USB devices (as a USB host) and for controlling this device's behavior as a USB device.
			 */
			static USB_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.hardware.input.InputManager for interacting with input devices.
			 */
			static INPUT_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.hardware.display.DisplayManager for interacting with display devices.
			 */
			static DISPLAY_SERVICE: string;
			/**
			 * Use with #getSystemService to retrieve a android.os.UserManager for managing users on devices that support multiple users.
			 */
			static USER_SERVICE: string;
			/**
			 * Flag for use with #createPackageContext: include the application code with the context. This means loading code into the caller's process, so that #getClassLoader() can be used to instantiate the application's classes. Setting this flags imposes security restrictions on what application context you can access; if the requested application can not be safely loaded into your process, java.lang.SecurityException will be thrown. If this flag is not set, there will be no restrictions on the packages that can be loaded, but #getClassLoader will always return the default system class loader.
			 */
			static CONTEXT_INCLUDE_CODE: number;
			/**
			 * Flag for use with #createPackageContext: ignore any security restrictions on the Context being requested, allowing it to always be loaded. For use with #CONTEXT_INCLUDE_CODE to allow code to be loaded into a process even when it isn't safe to do so. Use with extreme care!
			 */
			static CONTEXT_IGNORE_SECURITY: number;
			/**
			 * Flag for use with #createPackageContext: a restricted context may disable specific features. For instance, a View associated with a restricted context would ignore particular XML attributes.
			 */
			static CONTEXT_RESTRICTED: number;
			static class: java.lang.Class<android.content.Context>;
			/**
			 * Return an AssetManager instance for your application's package.
			 */
			public getAssets(): android.content.res.AssetManager;
			/**
			 * Return a Resources instance for your application's package.
			 */
			public getResources(): android.content.res.Resources;
			/**
			 * Return PackageManager instance to find global package information.
			 */
			public getPackageManager(): android.content.pm.PackageManager;
			/**
			 * Return a ContentResolver instance for your application's package.
			 */
			public getContentResolver(): android.content.ContentResolver;
			/**
			 * Return the Looper for the main thread of the current process. This is the thread used to dispatch calls to application components (activities, services, etc).
			 */
			public getMainLooper(): android.os.Looper;
			/**
			 * Return the context of the single, global Application object of the current process. This generally should only be used if you need a Context whose lifecycle is separate from the current context, that is tied to the lifetime of the process rather than the current component.
			 */
			public getApplicationContext(): android.content.Context;
			/**
			 * Add a new ComponentCallbacks to the base application of the Context, which will be called at the same times as the ComponentCallbacks methods of activities and other components are called. Note that you <em>must</em> be sure to use #unregisterComponentCallbacks when appropriate in the future; this will not be removed for you.
			 * @param callback The interface to call. This can be either a
			 */
			public registerComponentCallbacks(callback: android.content.IComponentCallbacks): void;
			/**
			 * Remove a ComponentCallbacks objec that was previously registered with #registerComponentCallbacks(ComponentCallbacks).
			 */
			public unregisterComponentCallbacks(callback: android.content.IComponentCallbacks): void;
			/**
			 * Return a localized, styled CharSequence from the application's package's default string table.
			 * @param resId Resource id for the CharSequence text
			 */
			public getText(resId: number): string;
			/**
			 * Return a localized string from the application's package's default string table.
			 * @param resId Resource id for the string
			 */
			public getString(resId: number): string;
			/**
			 * Return a localized formatted string from the application's package's default string table, substituting the format arguments as defined in java.util.Formatter and java.lang.String#format.
			 * @param resId Resource id for the format string
			 * @param formatArgs The format arguments that will be used for substitution.
			 */
			public getString(resId: number, formatArgs: native.Array<any>): string;
			/**
			 * Set the base theme for this context. Note that this should be called before any views are instantiated in the Context (for example before calling android.app.Activity#setContentView or android.view.LayoutInflater#inflate).
			 * @param resid The style resource describing the theme.
			 */
			public setTheme(resid: number): void;
			/**
			 * Return the Theme object associated with this Context.
			 */
			public getTheme(): android.content.res.Resources.Theme;
			/**
			 * Retrieve styled attribute information in this Context's theme. See Resources.Theme#obtainStyledAttributes(int[]) for more information.
			 */
			public obtainStyledAttributes(attrs: native.Array<number>): android.content.res.TypedArray;
			/**
			 * Retrieve styled attribute information in this Context's theme. See Resources.Theme#obtainStyledAttributes(int, int[]) for more information.
			 */
			public obtainStyledAttributes(resid: number, attrs: native.Array<number>): android.content.res.TypedArray;
			/**
			 * Retrieve styled attribute information in this Context's theme. See Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int) for more information.
			 */
			public obtainStyledAttributes(set: android.util.IAttributeSet, attrs: native.Array<number>): android.content.res.TypedArray;
			/**
			 * Retrieve styled attribute information in this Context's theme. See Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int) for more information.
			 */
			public obtainStyledAttributes(set: android.util.IAttributeSet, attrs: native.Array<number>, defStyleAttr: number, defStyleRes: number): android.content.res.TypedArray;
			/**
			 * Return a class loader you can use to retrieve classes in this package.
			 */
			public getClassLoader(): java.lang.ClassLoader;
			/**
			 * Return the name of this application's package.
			 */
			public getPackageName(): string;
			/**
			 * Return the full application info for this context's package.
			 */
			public getApplicationInfo(): android.content.pm.ApplicationInfo;
			/**
			 * Return the full path to this context's primary Android package. The Android package is a ZIP file which contains the application's primary resources.
			 */
			public getPackageResourcePath(): string;
			/**
			 * Return the full path to this context's primary Android package. The Android package is a ZIP file which contains application's primary code and assets.
			 */
			public getPackageCodePath(): string;
			/**
			 * Retrieve and hold the contents of the preferences file 'name', returning a SharedPreferences through which you can retrieve and modify its values. Only one instance of the SharedPreferences object is returned to any callers for the same name, meaning they will see each other's edits as soon as they are made.
			 * @param name Desired preferences file. If a preferences file by this name
			 * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the
			 */
			public getSharedPreferences(name: string, mode: number): android.content.ISharedPreferences;
			/**
			 * Open a private file associated with this Context's application package for reading.
			 * @param name The name of the file to open; can not contain path
			 */
			public openFileInput(name: string): java.io.FileInputStream;
			/**
			 * Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist.
			 * @param name The name of the file to open; can not contain path
			 * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the
			 */
			public openFileOutput(name: string, mode: number): java.io.FileOutputStream;
			/**
			 * Delete the given private file associated with this Context's application package.
			 * @param name The name of the file to delete; can not contain path
			 */
			public deleteFile(name: string): boolean;
			/**
			 * Returns the absolute path on the filesystem where a file created with #openFileOutput is stored.
			 * @param name The name of the file for which you would like to get
			 */
			public getFileStreamPath(name: string): java.io.File;
			/**
			 * Returns the absolute path to the directory on the filesystem where files created with #openFileOutput are stored.
			 */
			public getFilesDir(): java.io.File;
			/**
			 * Returns the absolute path to the directory on the external filesystem (that is somewhere on android.os.Environment#getExternalStorageDirectory() Environment.getExternalStorageDirectory()) where the application can place persistent files it owns. These files are private to the applications, and not typically visible to the user as media.
			 * @param type The type of files directory to return. May be null for
			 */
			public getExternalFilesDir(type: string): java.io.File;
			/**
			 * Return the directory where this application's OBB files (if there are any) can be found. Note if the application does not have any OBB files, this directory may not exist.
			 */
			public getObbDir(): java.io.File;
			/**
			 * Returns the absolute path to the application specific cache directory on the filesystem. These files will be ones that get deleted first when the device runs low on storage. There is no guarantee when these files will be deleted.
			 */
			public getCacheDir(): java.io.File;
			/**
			 * Returns the absolute path to the directory on the external filesystem (that is somewhere on android.os.Environment#getExternalStorageDirectory() Environment.getExternalStorageDirectory() where the application can place cache files it owns.
			 */
			public getExternalCacheDir(): java.io.File;
			/**
			 * Returns an array of strings naming the private files associated with this Context's application package.
			 */
			public fileList(): native.Array<string>;
			/**
			 * Retrieve, creating if needed, a new directory in which the application can place its own custom data files. You can use the returned File object to create and access files in this directory. Note that files created through a File object will only be accessible by your own application; you can only set the mode of the entire directory, not of individual files.
			 * @param name Name of the directory to retrieve. This is a directory
			 * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the
			 */
			public getDir(name: string, mode: number): java.io.File;
			/**
			 * Open a new private SQLiteDatabase associated with this Context's application package. Create the database file if it doesn't exist.
			 * @param name The name (unique in the application package) of the database.
			 * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the
			 * @param factory An optional factory class that is called to instantiate a
			 */
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
			/**
			 * Open a new private SQLiteDatabase associated with this Context's application package. Creates the database file if it doesn't exist.
			 * @param name The name (unique in the application package) of the database.
			 * @param mode Operating mode. Use 0 or {@link #MODE_PRIVATE} for the
			 * @param factory An optional factory class that is called to instantiate a
			 * @param errorHandler the {@link DatabaseErrorHandler} to be used when sqlite reports database
			 */
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, errorHandler: android.database.IDatabaseErrorHandler): android.database.sqlite.SQLiteDatabase;
			/**
			 * Delete an existing private SQLiteDatabase associated with this Context's application package.
			 * @param name The name (unique in the application package) of the
			 */
			public deleteDatabase(name: string): boolean;
			/**
			 * Returns the absolute path on the filesystem where a database created with #openOrCreateDatabase is stored.
			 * @param name The name of the database for which you would like to get
			 */
			public getDatabasePath(name: string): java.io.File;
			/**
			 * Returns an array of strings naming the private databases associated with this Context's application package.
			 */
			public databaseList(): native.Array<string>;
			/**
			 *  Use android.app.WallpaperManager#getDrawable WallpaperManager.get() instead.
			 */
			public getWallpaper(): android.graphics.drawable.Drawable;
			/**
			 *  Use android.app.WallpaperManager#peekDrawable WallpaperManager.peek() instead.
			 */
			public peekWallpaper(): android.graphics.drawable.Drawable;
			/**
			 *  Use android.app.WallpaperManager#getDesiredMinimumWidth() WallpaperManager.getDesiredMinimumWidth() instead.
			 */
			public getWallpaperDesiredMinimumWidth(): number;
			/**
			 *  Use android.app.WallpaperManager#getDesiredMinimumHeight() WallpaperManager.getDesiredMinimumHeight() instead.
			 */
			public getWallpaperDesiredMinimumHeight(): number;
			/**
			 *  Use android.app.WallpaperManager#setBitmap(Bitmap) WallpaperManager.set() instead.
			 */
			public setWallpaper(bitmap: android.graphics.Bitmap): void;
			/**
			 *  Use android.app.WallpaperManager#setStream(InputStream) WallpaperManager.set() instead.
			 */
			public setWallpaper(data: java.io.InputStream): void;
			/**
			 *  Use android.app.WallpaperManager#clear WallpaperManager.clear() instead.
			 */
			public clearWallpaper(): void;
			/**
			 * Same as #startActivity(Intent, Bundle) with no options specified.
			 * @param intent The description of the activity to start.
			 */
			public startActivity(intent: android.content.Intent): void;
			/**
			 * Launch a new activity. You will not receive any information about when the activity exits.
			 * @param intent The description of the activity to start.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivity(intent: android.content.Intent, options: android.os.Bundle): void;
			/**
			 * Same as #startActivities(Intent[], Bundle) with no options specified.
			 * @param intents An array of Intents to be started.
			 */
			public startActivities(intents: native.Array<android.content.Intent>): void;
			/**
			 * Launch multiple new activities. This is generally the same as calling #startActivity(Intent) for the first Intent in the array, that activity during its creation calling #startActivity(Intent) for the second entry, etc. Note that unlike that approach, generally none of the activities except the last in the array will be created at this point, but rather will be created when the user first visits them (due to pressing back from the activity on top).
			 * @param intents An array of Intents to be started.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivities(intents: native.Array<android.content.Intent>, options: android.os.Bundle): void;
			/**
			 * Same as #startIntentSender(IntentSender, Intent, int, int, int, Bundle) with no options specified.
			 * @param intent The IntentSender to launch.
			 * @param fillInIntent If non-null, this will be provided as the
			 * @param flagsMask Intent flags in the original IntentSender that you
			 * @param flagsValues Desired values for any bits set in
			 * @param extraFlags Always set to 0.
			 */
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number): void;
			/**
			 * Like #startActivity(Intent, Bundle), but taking a IntentSender to start. If the IntentSender is for an activity, that activity will be started as if you had called the regular #startActivity(Intent) here; otherwise, its associated action will be executed (such as sending a broadcast) as if you had called IntentSender#sendIntent IntentSender.sendIntent on it.
			 * @param intent The IntentSender to launch.
			 * @param fillInIntent If non-null, this will be provided as the
			 * @param flagsMask Intent flags in the original IntentSender that you
			 * @param flagsValues Desired values for any bits set in
			 * @param extraFlags Always set to 0.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number, options: android.os.Bundle): void;
			/**
			 * Broadcast the given intent to all interested BroadcastReceivers. This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run. No results are propagated from receivers and receivers can not abort the broadcast. If you want to allow receivers to propagate results or abort the broadcast, you must send an ordered broadcast using #sendOrderedBroadcast(Intent, String).
			 * @param intent The Intent to broadcast; all receivers matching this
			 */
			public sendBroadcast(intent: android.content.Intent): void;
			/**
			 * Broadcast the given intent to all interested BroadcastReceivers, allowing an optional required permission to be enforced. This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run. No results are propagated from receivers and receivers can not abort the broadcast. If you want to allow receivers to propagate results or abort the broadcast, you must send an ordered broadcast using #sendOrderedBroadcast(Intent, String).
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param receiverPermission (optional) String naming a permission that
			 */
			public sendBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			/**
			 * Broadcast the given intent to all interested BroadcastReceivers, delivering them one at a time to allow more preferred receivers to consume the broadcast before it is delivered to less preferred receivers. This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run.
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param receiverPermission (optional) String naming a permissions that
			 */
			public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			/**
			 * Version of #sendBroadcast(Intent) that allows you to receive data back from the broadcast. This is accomplished by supplying your own BroadcastReceiver when calling, which will be treated as a final receiver at the end of the broadcast -- its BroadcastReceiver#onReceive method will be called with the result values collected from the other receivers. The broadcast will be serialized in the same way as calling #sendOrderedBroadcast(Intent, String).
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param receiverPermission String naming a permissions that
			 * @param resultReceiver Your own BroadcastReceiver to treat as the final
			 * @param scheduler A custom Handler with which to schedule the
			 * @param initialCode An initial value for the result code. Often
			 * @param initialData An initial value for the result data. Often
			 * @param initialExtras An initial value for the result extras. Often
			 */
			public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			/**
			 * Version of #sendBroadcast(Intent) that allows you to specify the user the broadcast will be sent to. This is not available to applications that are not pre-installed on the system image. Using it requires holding the INTERACT_ACROSS_USERS permission.
			 * @param intent The intent to broadcast
			 * @param user UserHandle to send the intent to.
			 */
			public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			/**
			 * Version of #sendBroadcast(Intent, String) that allows you to specify the user the broadcast will be sent to. This is not available to applications that are not pre-installed on the system image. Using it requires holding the INTERACT_ACROSS_USERS permission.
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param user UserHandle to send the intent to.
			 * @param receiverPermission (optional) String naming a permission that
			 */
			public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string): void;
			/**
			 * Version of #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle) that allows you to specify the user the broadcast will be sent to. This is not available to applications that are not pre-installed on the system image. Using it requires holding the INTERACT_ACROSS_USERS permission.
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param user UserHandle to send the intent to.
			 * @param receiverPermission String naming a permissions that
			 * @param resultReceiver Your own BroadcastReceiver to treat as the final
			 * @param scheduler A custom Handler with which to schedule the
			 * @param initialCode An initial value for the result code. Often
			 * @param initialData An initial value for the result data. Often
			 * @param initialExtras An initial value for the result extras. Often
			 */
			public sendOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			/**
			 * Perform a #sendBroadcast(Intent) that is "sticky," meaning the Intent you are sending stays around after the broadcast is complete, so that others can quickly retrieve that data through the return value of #registerReceiver(BroadcastReceiver, IntentFilter). In all other ways, this behaves the same as #sendBroadcast(Intent).
			 * @param intent The Intent to broadcast; all receivers matching this
			 */
			public sendStickyBroadcast(intent: android.content.Intent): void;
			/**
			 * Version of #sendStickyBroadcast that allows you to receive data back from the broadcast. This is accomplished by supplying your own BroadcastReceiver when calling, which will be treated as a final receiver at the end of the broadcast -- its BroadcastReceiver#onReceive method will be called with the result values collected from the other receivers. The broadcast will be serialized in the same way as calling #sendOrderedBroadcast(Intent, String).
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param resultReceiver Your own BroadcastReceiver to treat as the final
			 * @param scheduler A custom Handler with which to schedule the
			 * @param initialCode An initial value for the result code. Often
			 * @param initialData An initial value for the result data. Often
			 * @param initialExtras An initial value for the result extras. Often
			 */
			public sendStickyOrderedBroadcast(intent: android.content.Intent, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			/**
			 * Remove the data previously sent with #sendStickyBroadcast, so that it is as if the sticky broadcast had never happened.
			 * @param intent The Intent that was previously broadcast.
			 */
			public removeStickyBroadcast(intent: android.content.Intent): void;
			/**
			 * Version of #sendStickyBroadcast(Intent) that allows you to specify the user the broadcast will be sent to. This is not available to applications that are not pre-installed on the system image. Using it requires holding the INTERACT_ACROSS_USERS permission.
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param user UserHandle to send the intent to.
			 */
			public sendStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			/**
			 * Version of #sendStickyOrderedBroadcast(Intent, BroadcastReceiver, Handler, int, String, Bundle) that allows you to specify the user the broadcast will be sent to. This is not available to applications that are not pre-installed on the system image. Using it requires holding the INTERACT_ACROSS_USERS permission.
			 * @param intent The Intent to broadcast; all receivers matching this
			 * @param user UserHandle to send the intent to.
			 * @param resultReceiver Your own BroadcastReceiver to treat as the final
			 * @param scheduler A custom Handler with which to schedule the
			 * @param initialCode An initial value for the result code. Often
			 * @param initialData An initial value for the result data. Often
			 * @param initialExtras An initial value for the result extras. Often
			 */
			public sendStickyOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			/**
			 * Version of #removeStickyBroadcast(Intent) that allows you to specify the user the broadcast will be sent to. This is not available to applications that are not pre-installed on the system image. Using it requires holding the INTERACT_ACROSS_USERS permission.
			 * @param intent The Intent that was previously broadcast.
			 * @param user UserHandle to remove the sticky broadcast from.
			 */
			public removeStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			/**
			 * Register a BroadcastReceiver to be run in the main activity thread. The <var>receiver</var> will be called with any broadcast Intent that matches <var>filter</var>, in the main application thread.
			 * @param receiver The BroadcastReceiver to handle the broadcast.
			 * @param filter Selects the Intent broadcasts to be received.
			 */
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter): android.content.Intent;
			/**
			 * Register to receive intent broadcasts, to run in the context of <var>scheduler</var>. See #registerReceiver(BroadcastReceiver, IntentFilter) for more information. This allows you to enforce permissions on who can broadcast intents to your receiver, or have the receiver run in a different thread than the main application thread.
			 * @param receiver The BroadcastReceiver to handle the broadcast.
			 * @param filter Selects the Intent broadcasts to be received.
			 * @param broadcastPermission String naming a permissions that a
			 * @param scheduler Handler identifying the thread that will receive
			 */
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
			/**
			 * Unregister a previously registered BroadcastReceiver. <em>All</em> filters that have been registered for this BroadcastReceiver will be removed.
			 * @param receiver The BroadcastReceiver to unregister.
			 */
			public unregisterReceiver(receiver: android.content.BroadcastReceiver): void;
			/**
			 * Request that a given application service be started. The Intent can either contain the complete class name of a specific service implementation to start, or an abstract definition through the action and other fields of the kind of service to start. If this service is not already running, it will be instantiated and started (creating a process for it if needed); if it is running then it remains running.
			 * @param service Identifies the service to be started. The Intent may
			 */
			public startService(service: android.content.Intent): android.content.ComponentName;
			/**
			 * Request that a given application service be stopped. If the service is not running, nothing happens. Otherwise it is stopped. Note that calls to startService() are not counted -- this stops the service no matter how many times it was started.
			 * @param service Description of the service to be stopped. The Intent may
			 */
			public stopService(service: android.content.Intent): boolean;
			/**
			 * Connect to an application service, creating it if needed. This defines a dependency between your application and the service. The given <var>conn</var> will receive the service object when it is created and be told if it dies and restarts. The service will be considered required by the system only for as long as the calling context exists. For example, if this Context is an Activity that is stopped, the service will not be required to continue running until the Activity is resumed.
			 * @param service Identifies the service to connect to. The Intent may
			 * @param conn Receives information as the service is started and stopped.
			 * @param flags Operation options for the binding. May be 0,
			 */
			public bindService(service: android.content.Intent, conn: android.content.IServiceConnection, flags: number): boolean;
			/**
			 * Disconnect from an application service. You will no longer receive calls as the service is restarted, and the service is now allowed to stop at any time.
			 * @param conn The connection interface previously supplied to
			 */
			public unbindService(conn: android.content.IServiceConnection): void;
			/**
			 * Start executing an android.app.Instrumentation class. The given Instrumentation component will be run by killing its target application (if currently running), starting the target process, instantiating the instrumentation component, and then letting it drive the application.
			 * @param className Name of the Instrumentation component to be run.
			 * @param profileFile Optional path to write profiling data as the
			 * @param arguments Additional optional arguments to pass to the
			 */
			public startInstrumentation(className: android.content.ComponentName, profileFile: string, args: android.os.Bundle): boolean;
			/**
			 * Return the handle to a system-level service by name. The class of the returned object varies by the requested name. Currently available names are:
			 * @param name The name of the desired service.
			 */
			public getSystemService(name: string): any;
			/**
			 * Determine whether the given permission is allowed for a particular process and user ID running in the system.
			 * @param permission The name of the permission being checked.
			 * @param pid The process ID being checked against. Must be > 0.
			 * @param uid The user ID being checked against. A uid of 0 is the root
			 */
			public checkPermission(permission: string, pid: number, uid: number): number;
			/**
			 * Determine whether the calling process of an IPC you are handling has been granted a particular permission. This is basically the same as calling #checkPermission(String, int, int) with the pid and uid returned by android.os.Binder#getCallingPid and android.os.Binder#getCallingUid. One important difference is that if you are not currently processing an IPC, this function will always fail. This is done to protect against accidentally leaking permissions; you can use #checkCallingOrSelfPermission to avoid this protection.
			 * @param permission The name of the permission being checked.
			 */
			public checkCallingPermission(permission: string): number;
			/**
			 * Determine whether the calling process of an IPC <em>or you</em> have been granted a particular permission. This is the same as #checkCallingPermission, except it grants your own permissions if you are not currently processing an IPC. Use with care!
			 * @param permission The name of the permission being checked.
			 */
			public checkCallingOrSelfPermission(permission: string): number;
			/**
			 * If the given permission is not allowed for a particular process and user ID running in the system, throw a SecurityException.
			 * @param permission The name of the permission being checked.
			 * @param pid The process ID being checked against. Must be &gt; 0.
			 * @param uid The user ID being checked against. A uid of 0 is the root
			 * @param message A message to include in the exception if it is thrown.
			 */
			public enforcePermission(permission: string, pid: number, uid: number, message: string): void;
			/**
			 * If the calling process of an IPC you are handling has not been granted a particular permission, throw a SecurityException. This is basically the same as calling #enforcePermission(String, int, int, String) with the pid and uid returned by android.os.Binder#getCallingPid and android.os.Binder#getCallingUid. One important difference is that if you are not currently processing an IPC, this function will always throw the SecurityException. This is done to protect against accidentally leaking permissions; you can use #enforceCallingOrSelfPermission to avoid this protection.
			 * @param permission The name of the permission being checked.
			 * @param message A message to include in the exception if it is thrown.
			 */
			public enforceCallingPermission(permission: string, message: string): void;
			/**
			 * If neither you nor the calling process of an IPC you are handling has been granted a particular permission, throw a SecurityException. This is the same as #enforceCallingPermission, except it grants your own permissions if you are not currently processing an IPC. Use with care!
			 * @param permission The name of the permission being checked.
			 * @param message A message to include in the exception if it is thrown.
			 */
			public enforceCallingOrSelfPermission(permission: string, message: string): void;
			/**
			 * Grant permission to access a specific Uri to another package, regardless of whether that package has general permission to access the Uri's content provider. This can be used to grant specific, temporary permissions, typically in response to user interaction (such as the user opening an attachment that you would like someone else to display).
			 * @param toPackage The package you would like to allow to access the Uri.
			 * @param uri The Uri you would like to grant access to.
			 * @param modeFlags The desired access modes. Any combination of
			 */
			public grantUriPermission(toPackage: string, uri: android.net.Uri, modeFlags: number): void;
			/**
			 * Remove all permissions to access a particular content provider Uri that were previously added with #grantUriPermission. The given Uri will match all previously granted Uris that are the same or a sub-path of the given Uri. That is, revoking "content://foo/one" will revoke both "content://foo/target" and "content://foo/target/sub", but not "content://foo".
			 * @param uri The Uri you would like to revoke access to.
			 * @param modeFlags The desired access modes. Any combination of
			 */
			public revokeUriPermission(uri: android.net.Uri, modeFlags: number): void;
			/**
			 * Determine whether a particular process and user ID has been granted permission to access a specific URI. This only checks for permissions that have been explicitly granted -- if the given process/uid has more general access to the URI's content provider then this check will always fail.
			 * @param uri The uri that is being checked.
			 * @param pid The process ID being checked against. Must be &gt; 0.
			 * @param uid The user ID being checked against. A uid of 0 is the root
			 * @param modeFlags The type of access to grant. May be one or both of
			 */
			public checkUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number): number;
			/**
			 * Determine whether the calling process and user ID has been granted permission to access a specific URI. This is basically the same as calling #checkUriPermission(Uri, int, int, int) with the pid and uid returned by android.os.Binder#getCallingPid and android.os.Binder#getCallingUid. One important difference is that if you are not currently processing an IPC, this function will always fail.
			 * @param uri The uri that is being checked.
			 * @param modeFlags The type of access to grant. May be one or both of
			 */
			public checkCallingUriPermission(uri: android.net.Uri, modeFlags: number): number;
			/**
			 * Determine whether the calling process of an IPC <em>or you</em> has been granted permission to access a specific URI. This is the same as #checkCallingUriPermission, except it grants your own permissions if you are not currently processing an IPC. Use with care!
			 * @param uri The uri that is being checked.
			 * @param modeFlags The type of access to grant. May be one or both of
			 */
			public checkCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number): number;
			/**
			 * Check both a Uri and normal permission. This allows you to perform both #checkPermission and #checkUriPermission in one call.
			 * @param uri The Uri whose permission is to be checked, or null to not
			 * @param readPermission The permission that provides overall read access,
			 * @param writePermission The permission that provides overall write
			 * @param pid The process ID being checked against. Must be &gt; 0.
			 * @param uid The user ID being checked against. A uid of 0 is the root
			 * @param modeFlags The type of access to grant. May be one or both of
			 */
			public checkUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number): number;
			/**
			 * If a particular process and user ID has not been granted permission to access a specific URI, throw SecurityException. This only checks for permissions that have been explicitly granted -- if the given process/uid has more general access to the URI's content provider then this check will always fail.
			 * @param uri The uri that is being checked.
			 * @param pid The process ID being checked against. Must be &gt; 0.
			 * @param uid The user ID being checked against. A uid of 0 is the root
			 * @param modeFlags The type of access to grant. May be one or both of
			 * @param message A message to include in the exception if it is thrown.
			 */
			public enforceUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number, message: string): void;
			/**
			 * If the calling process and user ID has not been granted permission to access a specific URI, throw SecurityException. This is basically the same as calling #enforceUriPermission(Uri, int, int, int, String) with the pid and uid returned by android.os.Binder#getCallingPid and android.os.Binder#getCallingUid. One important difference is that if you are not currently processing an IPC, this function will always throw a SecurityException.
			 * @param uri The uri that is being checked.
			 * @param modeFlags The type of access to grant. May be one or both of
			 * @param message A message to include in the exception if it is thrown.
			 */
			public enforceCallingUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
			/**
			 * If the calling process of an IPC <em>or you</em> has not been granted permission to access a specific URI, throw SecurityException. This is the same as #enforceCallingUriPermission, except it grants your own permissions if you are not currently processing an IPC. Use with care!
			 * @param uri The uri that is being checked.
			 * @param modeFlags The type of access to grant. May be one or both of
			 * @param message A message to include in the exception if it is thrown.
			 */
			public enforceCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
			/**
			 * Enforce both a Uri and normal permission. This allows you to perform both #enforcePermission and #enforceUriPermission in one call.
			 * @param uri The Uri whose permission is to be checked, or null to not
			 * @param readPermission The permission that provides overall read access,
			 * @param writePermission The permission that provides overall write
			 * @param pid The process ID being checked against. Must be &gt; 0.
			 * @param uid The user ID being checked against. A uid of 0 is the root
			 * @param modeFlags The type of access to grant. May be one or both of
			 * @param message A message to include in the exception if it is thrown.
			 */
			public enforceUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number, message: string): void;
			/**
			 * Return a new Context object for the given application name. This Context is the same as what the named application gets when it is launched, containing the same resources and class loader. Each call to this method returns a new instance of a Context object; Context objects are not shared, however they share common state (Resources, ClassLoader, etc) so the Context instance itself is fairly lightweight.
			 * @param packageName Name of the application's package.
			 * @param flags Option flags, one of {@link #CONTEXT_INCLUDE_CODE}
			 */
			public createPackageContext(packageName: string, flags: number): android.content.Context;
			/**
			 * Return a new Context object for the current Context but whose resources are adjusted to match the given Configuration. Each call to this method returns a new instance of a Context object; Context objects are not shared, however common state (ClassLoader, other Resources for the same configuration) may be so the Context itself can be fairly lightweight.
			 * @param overrideConfiguration A {@link Configuration} specifying what
			 */
			public createConfigurationContext(overrideConfiguration: android.content.res.Configuration): android.content.Context;
			/**
			 * Return a new Context object for the current Context but whose resources are adjusted to match the metrics of the given Display. Each call to this method returns a new instance of a Context object; Context objects are not shared, however common state (ClassLoader, other Resources for the same configuration) may be so the Context itself can be fairly lightweight.
			 * @param display A {@link Display} object specifying the display
			 */
			public createDisplayContext(display: android.view.Display): android.content.Context;
			/**
			 * Indicates whether this Context is restricted.
			 */
			public isRestricted(): boolean;
		}
		/**
		 * This class is used to store a set of values that the ContentResolver can process.
		 */
		export class ContentValues extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Creates an empty set of values using the default initial size
			 */
			constructor();
			/**
			 * Creates an empty set of values using the given initial size
			 * @param size the initial size of the set of values
			 */
			constructor(size: number);
			/**
			 * Creates a set of values copied from the given set
			 * @param from the values to copy
			 */
			constructor(from: android.content.ContentValues);
			static TAG: string;
			static CREATOR: android.os.Parcelable.ICreator<android.content.ContentValues>;
			static class: java.lang.Class<android.content.ContentValues>;
			public equals(object: any): boolean;
			public hashCode(): number;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: string): void;
			/**
			 * Adds all values from the passed in ContentValues.
			 * @param other the ContentValues from which to copy
			 */
			public putAll(other: android.content.ContentValues): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: java.lang.Byte): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: java.lang.Short): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: java.lang.Integer): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: java.lang.Long): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: java.lang.Float): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: java.lang.Double): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: java.lang.Boolean): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: boolean): void;
			/**
			 * Adds a value to the set.
			 * @param key the name of the value to put
			 * @param value the data for the value to put
			 */
			public put(key: string, value: native.Array<number>): void;
			/**
			 * Adds a null value to the set.
			 * @param key the name of the value to make null
			 */
			public putNull(key: string): void;
			/**
			 * Returns the number of values.
			 */
			public size(): number;
			/**
			 * Remove a single value.
			 * @param key the name of the value to remove
			 */
			public remove(key: string): void;
			/**
			 * Removes all values.
			 */
			public clear(): void;
			/**
			 * Returns true if this object has the named value.
			 * @param key the value to check for
			 */
			public containsKey(key: string): boolean;
			/**
			 * Gets a value. Valid value types are String, Boolean, and Number implementations.
			 * @param key the value to get
			 */
			public get(key: string): any;
			/**
			 * Gets a value and converts it to a String.
			 * @param key the value to get
			 */
			public getAsString(key: string): string;
			/**
			 * Gets a value and converts it to a Long.
			 * @param key the value to get
			 */
			public getAsLong(key: string): java.lang.Long;
			/**
			 * Gets a value and converts it to an Integer.
			 * @param key the value to get
			 */
			public getAsInteger(key: string): java.lang.Integer;
			/**
			 * Gets a value and converts it to a Short.
			 * @param key the value to get
			 */
			public getAsShort(key: string): java.lang.Short;
			/**
			 * Gets a value and converts it to a Byte.
			 * @param key the value to get
			 */
			public getAsByte(key: string): java.lang.Byte;
			/**
			 * Gets a value and converts it to a Double.
			 * @param key the value to get
			 */
			public getAsDouble(key: string): java.lang.Double;
			/**
			 * Gets a value and converts it to a Float.
			 * @param key the value to get
			 */
			public getAsFloat(key: string): java.lang.Float;
			/**
			 * Gets a value and converts it to a Boolean.
			 * @param key the value to get
			 */
			public getAsBoolean(key: string): boolean;
			/**
			 * Gets a value that is a byte array. Note that this method will not convert any other types to byte arrays.
			 * @param key the value to get
			 */
			public getAsByteArray(key: string): native.Array<number>;
			/**
			 * Returns a set of all of the keys and values
			 */
			public valueSet(): java.util.ISet<java.util.Map.IEntry<string, any>>;
			/**
			 * Returns a set of all of the keys
			 */
			public keySet(): java.util.ISet<string>;
			public describeContents(): number;
			public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			/**
			 * Returns a string containing a concise, human-readable description of this object.
			 */
			public toString(): string;
		}
		/**
		 * Structured description of Intent values to be matched. An IntentFilter can match against actions, categories, and data (either via its type, scheme, and/or path) in an Intent. It also includes a "priority" value which is used to order multiple matching filters.
		 */
		export class IntentFilter extends java.lang.Object implements android.os.IParcelable {
			/**
			 * New empty IntentFilter.
			 */
			constructor();
			/**
			 * New IntentFilter that matches a single action with no data. If no data characteristics are subsequently specified, then the filter will only match intents that contain no data.
			 * @param action The action to match, i.e. Intent.ACTION_MAIN.
			 */
			constructor(action: string);
			/**
			 * New IntentFilter that matches a single action and data type.
			 * @param action The action to match, i.e. Intent.ACTION_VIEW.
			 * @param dataType The type to match, i.e. "vnd.android.cursor.dir/person".
			 */
			constructor(action: string, dataType: string);
			/**
			 * New IntentFilter containing a copy of an existing filter.
			 * @param o The original filter to copy.
			 */
			constructor(o: android.content.IntentFilter);
			/**
			 * The filter #setPriority value at which system high-priority receivers are placed; that is, receivers that should execute before application code. Applications should never use filters with this or higher priorities.
			 */
			static SYSTEM_HIGH_PRIORITY: number;
			/**
			 * The filter #setPriority value at which system low-priority receivers are placed; that is, receivers that should execute after application code. Applications should never use filters with this or lower priorities.
			 */
			static SYSTEM_LOW_PRIORITY: number;
			/**
			 * The part of a match constant that describes the category of match that occurred. May be either #MATCH_CATEGORY_EMPTY, #MATCH_CATEGORY_SCHEME, #MATCH_CATEGORY_HOST, #MATCH_CATEGORY_PORT, #MATCH_CATEGORY_PATH, or #MATCH_CATEGORY_TYPE. Higher values indicate a better match.
			 */
			static MATCH_CATEGORY_MASK: number;
			/**
			 * The part of a match constant that applies a quality adjustment to the basic category of match. The value #MATCH_ADJUSTMENT_NORMAL is no adjustment; higher numbers than that improve the quality, while lower numbers reduce it.
			 */
			static MATCH_ADJUSTMENT_MASK: number;
			/**
			 * Quality adjustment applied to the category of match that signifies the default, base value; higher numbers improve the quality while lower numbers reduce it.
			 */
			static MATCH_ADJUSTMENT_NORMAL: number;
			/**
			 * The filter matched an intent that had no data specified.
			 */
			static MATCH_CATEGORY_EMPTY: number;
			/**
			 * The filter matched an intent with the same data URI scheme.
			 */
			static MATCH_CATEGORY_SCHEME: number;
			/**
			 * The filter matched an intent with the same data URI scheme and authority host.
			 */
			static MATCH_CATEGORY_HOST: number;
			/**
			 * The filter matched an intent with the same data URI scheme and authority host and port.
			 */
			static MATCH_CATEGORY_PORT: number;
			/**
			 * The filter matched an intent with the same data URI scheme, authority, and path.
			 */
			static MATCH_CATEGORY_PATH: number;
			/**
			 * The filter matched an intent with the same data MIME type.
			 */
			static MATCH_CATEGORY_TYPE: number;
			/**
			 * The filter didn't match due to different MIME types.
			 */
			static NO_MATCH_TYPE: number;
			/**
			 * The filter didn't match due to different data URIs.
			 */
			static NO_MATCH_DATA: number;
			/**
			 * The filter didn't match due to different actions.
			 */
			static NO_MATCH_ACTION: number;
			/**
			 * The filter didn't match because it required one or more categories that were not in the Intent.
			 */
			static NO_MATCH_CATEGORY: number;
			static CREATOR: android.os.Parcelable.ICreator<android.content.IntentFilter>;
			static class: java.lang.Class<android.content.IntentFilter>;
			/**
			 * Create a new IntentFilter instance with a specified action and MIME type, where you know the MIME type is correctly formatted. This catches the MalformedMimeTypeException exception that the constructor can call and turns it into a runtime exception.
			 * @param action The action to match, i.e. Intent.ACTION_VIEW.
			 * @param dataType The type to match, i.e. "vnd.android.cursor.dir/person".
			 */
			public static create(action: string, dataType: string): android.content.IntentFilter;
			/**
			 * Modify priority of this filter. The default priority is 0. Positive values will be before the default, lower values will be after it. Applications must use a value that is larger than #SYSTEM_LOW_PRIORITY and smaller than #SYSTEM_HIGH_PRIORITY .
			 * @param priority The new priority value.
			 */
			public setPriority(priority: number): void;
			/**
			 * Return the priority of this filter.
			 */
			public getPriority(): number;
			/**
			 * Add a new Intent action to match against. If any actions are included in the filter, then an Intent's action must be one of those values for it to match. If no actions are included, the Intent action is ignored.
			 * @param action Name of the action to match, i.e. Intent.ACTION_VIEW.
			 */
			public addAction(action: string): void;
			/**
			 * Return the number of actions in the filter.
			 */
			public countActions(): number;
			/**
			 * Return an action in the filter.
			 */
			public getAction(index: number): string;
			/**
			 * Is the given action included in the filter? Note that if the filter does not include any actions, false will <em>always</em> be returned.
			 * @param action The action to look for.
			 */
			public hasAction(action: string): boolean;
			/**
			 * Match this filter against an Intent's action. If the filter does not specify any actions, the match will always fail.
			 * @param action The desired action to look for.
			 */
			public matchAction(action: string): boolean;
			/**
			 * Return an iterator over the filter's actions. If there are no actions, returns null.
			 */
			public actionsIterator(): java.util.IIterator<string>;
			/**
			 * Add a new Intent data type to match against. If any types are included in the filter, then an Intent's data must be <em>either</em> one of these types <em>or</em> a matching scheme. If no data types are included, then an Intent will only match if it specifies no data.
			 * @param type Name of the data type to match, i.e. "vnd.android.cursor.dir/person".
			 */
			public addDataType(type: string): void;
			/**
			 * Is the given data type included in the filter? Note that if the filter does not include any type, false will <em>always</em> be returned.
			 * @param type The data type to look for.
			 */
			public hasDataType(type: string): boolean;
			/**
			 * Return the number of data types in the filter.
			 */
			public countDataTypes(): number;
			/**
			 * Return a data type in the filter.
			 */
			public getDataType(index: number): string;
			/**
			 * Return an iterator over the filter's data types.
			 */
			public typesIterator(): java.util.IIterator<string>;
			/**
			 * Add a new Intent data scheme to match against. If any schemes are included in the filter, then an Intent's data must be <em>either</em> one of these schemes <em>or</em> a matching data type. If no schemes are included, then an Intent will match only if it includes no data.
			 * @param scheme Name of the scheme to match, i.e. "http".
			 */
			public addDataScheme(scheme: string): void;
			/**
			 * Return the number of data schemes in the filter.
			 */
			public countDataSchemes(): number;
			/**
			 * Return a data scheme in the filter.
			 */
			public getDataScheme(index: number): string;
			/**
			 * Is the given data scheme included in the filter? Note that if the filter does not include any scheme, false will <em>always</em> be returned.
			 * @param scheme The data scheme to look for.
			 */
			public hasDataScheme(scheme: string): boolean;
			/**
			 * Return an iterator over the filter's data schemes.
			 */
			public schemesIterator(): java.util.IIterator<string>;
			/**
			 * Add a new Intent data authority to match against. The filter must include one or more schemes (via #addDataScheme) for the authority to be considered. If any authorities are included in the filter, then an Intent's data must match one of them. If no authorities are included, then only the scheme must match.
			 * @param host The host part of the authority to match. May start with a
			 * @param port Optional port part of the authority to match. If null, any
			 */
			public addDataAuthority(host: string, port: string): void;
			/**
			 * Return the number of data authorities in the filter.
			 */
			public countDataAuthorities(): number;
			/**
			 * Return a data authority in the filter.
			 */
			public getDataAuthority(index: number): android.content.IntentFilter.AuthorityEntry;
			/**
			 * Is the given data authority included in the filter? Note that if the filter does not include any authorities, false will <em>always</em> be returned.
			 * @param data The data whose authority is being looked for.
			 */
			public hasDataAuthority(data: android.net.Uri): boolean;
			/**
			 * Return an iterator over the filter's data authorities.
			 */
			public authoritiesIterator(): java.util.IIterator<android.content.IntentFilter.AuthorityEntry>;
			/**
			 * Add a new Intent data path to match against. The filter must include one or more schemes (via #addDataScheme) <em>and</em> one or more authorities (via #addDataAuthority) for the path to be considered. If any paths are included in the filter, then an Intent's data must match one of them. If no paths are included, then only the scheme/authority must match.
			 * @param path Either a raw string that must exactly match the file
			 * @param type Determines how <var>path</var> will be compared to
			 */
			public addDataPath(path: string, type: number): void;
			/**
			 * Return the number of data paths in the filter.
			 */
			public countDataPaths(): number;
			/**
			 * Return a data path in the filter.
			 */
			public getDataPath(index: number): android.os.PatternMatcher;
			/**
			 * Is the given data path included in the filter? Note that if the filter does not include any paths, false will <em>always</em> be returned.
			 * @param data The data path to look for. This is without the scheme
			 */
			public hasDataPath(data: string): boolean;
			/**
			 * Return an iterator over the filter's data paths.
			 */
			public pathsIterator(): java.util.IIterator<android.os.PatternMatcher>;
			/**
			 * Match this intent filter against the given Intent data. This ignores the data scheme -- unlike #matchData, the authority will match regardless of whether there is a matching scheme.
			 * @param data The data whose authority is being looked for.
			 */
			public matchDataAuthority(data: android.net.Uri): number;
			/**
			 * Match this filter against an Intent's data (type, scheme and path). If the filter does not specify any types and does not specify any schemes/paths, the match will only succeed if the intent does not also specify a type or data.
			 * @param type The desired data type to look for, as returned by
			 * @param scheme The desired data scheme to look for, as returned by
			 * @param data The full data string to match against, as supplied in
			 */
			public matchData(type: string, scheme: string, data: android.net.Uri): number;
			/**
			 * Add a new Intent category to match against. The semantics of categories is the opposite of actions -- an Intent includes the categories that it requires, all of which must be included in the filter in order to match. In other words, adding a category to the filter has no impact on matching unless that category is specified in the intent.
			 * @param category Name of category to match, i.e. Intent.CATEGORY_EMBED.
			 */
			public addCategory(category: string): void;
			/**
			 * Return the number of categories in the filter.
			 */
			public countCategories(): number;
			/**
			 * Return a category in the filter.
			 */
			public getCategory(index: number): string;
			/**
			 * Is the given category included in the filter?
			 * @param category The category that the filter supports.
			 */
			public hasCategory(category: string): boolean;
			/**
			 * Return an iterator over the filter's categories.
			 */
			public categoriesIterator(): java.util.IIterator<string>;
			/**
			 * Match this filter against an Intent's categories. Each category in the Intent must be specified by the filter; if any are not in the filter, the match fails.
			 * @param categories The categories included in the intent, as returned by
			 */
			public matchCategories(categories: java.util.ISet<string>): string;
			/**
			 * Test whether this filter matches the given <var>intent</var>.
			 * @param resolver intent The Intent to compare against.
			 * @param intent resolve If true, the intent's type will be resolved by calling
			 * @param resolve logTag Tag to use in debugging messages.
			 * @param logTag 
			 */
			public match(resolver: android.content.ContentResolver, intent: android.content.Intent, resolve: boolean, logTag: string): number;
			/**
			 * Test whether this filter matches the given intent data. A match is only successful if the actions and categories in the Intent match against the filter, as described in IntentFilter; in that case, the match result returned will be as per #matchData.
			 * @param action The intent action to match against (Intent.getAction).
			 * @param type The intent type to match against (Intent.resolveType()).
			 * @param scheme The data scheme to match against (Intent.getScheme()).
			 * @param data The data URI to match against (Intent.getData()).
			 * @param categories The categories to match against
			 * @param logTag Tag to use in debugging messages.
			 */
			public match(action: string, type: string, scheme: string, data: android.net.Uri, categories: java.util.ISet<string>, logTag: string): number;
			/**
			 * Write the contents of the IntentFilter as an XML stream.
			 */
			public writeToXml(serializer: org.xmlpull.v1.IXmlSerializer): void;
			public readFromXml(parser: org.xmlpull.v1.IXmlPullParser): void;
			public dump(du: android.util.IPrinter, prefix: string): void;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export module IntentFilter {
			/**
			 * This exception is thrown when a given MIME type does not have a valid syntax.
			 */
			export class MalformedMimeTypeException extends android.util.AndroidException {
				constructor();
				constructor(name: string);
				static class: java.lang.Class<android.content.IntentFilter.MalformedMimeTypeException>;
			}
			/**
			 * This is an entry for a single authority in the Iterator returned by #authoritiesIterator().
			 */
			export class AuthorityEntry extends java.lang.Object {
				constructor(host: string, port: string);
				static class: java.lang.Class<android.content.IntentFilter.AuthorityEntry>;
				writeToParcel(dest: android.os.Parcel): void;
				public getHost(): string;
				public getPort(): number;
				/**
				 * Determine whether this AuthorityEntry matches the given data Uri. <em>Note that this comparison is case-sensitive, unlike formal RFC host names. You thus should always normalize to lower-case.</em> 
				 * @param data The Uri to match.
				 */
				public match(data: android.net.Uri): number;
			}
		}
		/**
		 * Interface for accessing and modifying preference data returned by Context#getSharedPreferences. For any particular set of preferences, there is a single instance of this class that all clients share. Modifications to the preferences must go through an Editor object to ensure the preference values remain in a consistent state and control when they are committed to storage. Objects that are returned from the various <code>get</code> methods must be treated as immutable by the application.
		 */
		export class SharedPreferences implements android.content.ISharedPreferences {
			constructor(implementation: android.content.ISharedPreferences);
			/**
			 * Retrieve all values from the preferences.
			 */
			public getAll(): java.util.IMap<string, any>;
			/**
			 * Retrieve a String value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			public getString(key: string, defValue: string): string;
			/**
			 * Retrieve a set of String values from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValues Values to return if this preference does not exist.
			 */
			public getStringSet(key: string, defValues: java.util.ISet<string>): java.util.ISet<string>;
			/**
			 * Retrieve an int value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			public getInt(key: string, defValue: number): number;
			/**
			 * Retrieve a long value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			public getLong(key: string, defValue: number): any;
			/**
			 * Retrieve a float value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			public getFloat(key: string, defValue: number): number;
			/**
			 * Retrieve a boolean value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			public getBoolean(key: string, defValue: boolean): boolean;
			/**
			 * Checks whether the preferences contains a preference. 
			 * @param key The name of the preference to check.
			 */
			public contains(key: string): boolean;
			/**
			 * Create a new Editor for these preferences, through which you can make modifications to the data in the preferences and atomically commit those changes back to the SharedPreferences object. 
			 */
			public edit(): android.content.SharedPreferences.IEditor;
			/**
			 * Registers a callback to be invoked when a change happens to a preference. 
			 * @param listener The callback that will run.
			 */
			public registerOnSharedPreferenceChangeListener(listener: android.content.SharedPreferences.IOnSharedPreferenceChangeListener): void;
			/**
			 * Unregisters a previous callback. 
			 * @param listener The callback that should be unregistered.
			 */
			public unregisterOnSharedPreferenceChangeListener(listener: android.content.SharedPreferences.IOnSharedPreferenceChangeListener): void;
		}
		export module SharedPreferences {
			/**
			 * Interface definition for a callback to be invoked when a shared preference is changed.
			 */
			interface IOnSharedPreferenceChangeListener {
				/**
				 * Called when a shared preference is changed, added, or removed. This may be called even if a preference is set to its existing value.
				 * @param sharedPreferences The {@link SharedPreferences} that received
				 * @param key The key of the preference that was changed, added, or
				 */
				onSharedPreferenceChanged(sharedPreferences: android.content.ISharedPreferences, key: string): void;
			}
			/**
			 * Interface used for modifying values in a SharedPreferences object. All changes you make in an editor are batched, and not copied back to the original SharedPreferences until you call #commit or #apply
			 */
			interface IEditor {
				/**
				 * Set a String value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				putString(key: string, value: string): android.content.SharedPreferences.IEditor;
				/**
				 * Set a set of String values in the preferences editor, to be written back once #commit is called. 
				 * @param key The name of the preference to modify.
				 * @param values The new values for the preference.
				 */
				putStringSet(key: string, values: java.util.ISet<string>): android.content.SharedPreferences.IEditor;
				/**
				 * Set an int value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				putInt(key: string, value: number): android.content.SharedPreferences.IEditor;
				/**
				 * Set a long value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				putLong(key: string, value: number): android.content.SharedPreferences.IEditor;
				/**
				 * Set a float value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				putFloat(key: string, value: number): android.content.SharedPreferences.IEditor;
				/**
				 * Set a boolean value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				putBoolean(key: string, value: boolean): android.content.SharedPreferences.IEditor;
				/**
				 * Mark in the editor that a preference value should be removed, which will be done in the actual preferences once #commit is called. 
				 * @param key The name of the preference to remove.
				 */
				remove(key: string): android.content.SharedPreferences.IEditor;
				/**
				 * Mark in the editor to remove <em>all</em> values from the preferences. Once commit is called, the only remaining preferences will be any that you have defined in this editor. 
				 */
				clear(): android.content.SharedPreferences.IEditor;
				/**
				 * Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is currently in the SharedPreferences.
				 */
				commit(): boolean;
				/**
				 * Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is currently in the SharedPreferences.
				 */
				apply(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a shared preference is changed.
			 */
			export class OnSharedPreferenceChangeListener implements android.content.SharedPreferences.IOnSharedPreferenceChangeListener {
				constructor(implementation: android.content.SharedPreferences.IOnSharedPreferenceChangeListener);
				/**
				 * Called when a shared preference is changed, added, or removed. This may be called even if a preference is set to its existing value.
				 * @param sharedPreferences The {@link SharedPreferences} that received
				 * @param key The key of the preference that was changed, added, or
				 */
				public onSharedPreferenceChanged(sharedPreferences: android.content.ISharedPreferences, key: string): void;
			}
			/**
			 * Interface used for modifying values in a SharedPreferences object. All changes you make in an editor are batched, and not copied back to the original SharedPreferences until you call #commit or #apply
			 */
			export class Editor implements android.content.SharedPreferences.IEditor {
				constructor(implementation: android.content.SharedPreferences.IEditor);
				/**
				 * Set a String value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				public putString(key: string, value: string): android.content.SharedPreferences.IEditor;
				/**
				 * Set a set of String values in the preferences editor, to be written back once #commit is called. 
				 * @param key The name of the preference to modify.
				 * @param values The new values for the preference.
				 */
				public putStringSet(key: string, values: java.util.ISet<string>): android.content.SharedPreferences.IEditor;
				/**
				 * Set an int value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				public putInt(key: string, value: number): android.content.SharedPreferences.IEditor;
				/**
				 * Set a long value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				public putLong(key: string, value: number): android.content.SharedPreferences.IEditor;
				/**
				 * Set a float value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				public putFloat(key: string, value: number): android.content.SharedPreferences.IEditor;
				/**
				 * Set a boolean value in the preferences editor, to be written back once #commit or #apply are called. 
				 * @param key The name of the preference to modify.
				 * @param value The new value for the preference.
				 */
				public putBoolean(key: string, value: boolean): android.content.SharedPreferences.IEditor;
				/**
				 * Mark in the editor that a preference value should be removed, which will be done in the actual preferences once #commit is called. 
				 * @param key The name of the preference to remove.
				 */
				public remove(key: string): android.content.SharedPreferences.IEditor;
				/**
				 * Mark in the editor to remove <em>all</em> values from the preferences. Once commit is called, the only remaining preferences will be any that you have defined in this editor. 
				 */
				public clear(): android.content.SharedPreferences.IEditor;
				/**
				 * Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is currently in the SharedPreferences.
				 */
				public commit(): boolean;
				/**
				 * Commit your preferences changes back from this Editor to the SharedPreferences object it is editing. This atomically performs the requested modifications, replacing whatever is currently in the SharedPreferences.
				 */
				public apply(): void;
			}
		}
		/**
		 * Used to record various statistics about the result of a sync operation. The SyncManager gets access to these via a SyncResult and uses some of them to determine the disposition of the sync. See SyncResult for further dicussion on how the SyncManager uses these values.
		 */
		export class SyncStats extends java.lang.Object implements android.os.IParcelable {
			constructor();
			constructor(input: android.os.Parcel);
			/**
			 * The SyncAdapter was unable to authenticate the android.accounts.Account that was specified in the request. The user needs to take some action to resolve before a future request can expect to succeed. This is considered a hard error.
			 */
			numAuthExceptions: number;
			/**
			 * The SyncAdapter had a problem, most likely with the network connectivity or a timeout while waiting for a network response. The request may succeed if it is tried again later. This is considered a soft error.
			 */
			numIoExceptions: number;
			/**
			 * The SyncAdapter had a problem with the data it received from the server or the storage later. This problem will likely repeat if the request is tried again. The problem will need to be cleared up by either the server or the storage layer (likely with help from the user). If the SyncAdapter cleans up the data itself then it typically won't increment this value although it may still do so in order to record that it had to perform some cleanup. E.g., if the SyncAdapter received a bad entry from the server when processing a feed of entries, it may choose to drop the entry and thus make progress and still increment this value just so the SyncAdapter can record that an error occurred. This is considered a hard error.
			 */
			numParseExceptions: number;
			/**
			 * The SyncAdapter detected that there was an unrecoverable version conflict when it attempted to update or delete a version of a resource on the server. This is expected to clear itself automatically once the new state is retrieved from the server, though it may remain until the user intervenes manually, perhaps by clearing the local storage and starting over frmo scratch. This is considered a hard error.
			 */
			numConflictDetectedExceptions: number;
			/**
			 * Counter for tracking how many inserts were performed by the sync operation, as defined by the SyncAdapter.
			 */
			numInserts: number;
			/**
			 * Counter for tracking how many updates were performed by the sync operation, as defined by the SyncAdapter.
			 */
			numUpdates: number;
			/**
			 * Counter for tracking how many deletes were performed by the sync operation, as defined by the SyncAdapter.
			 */
			numDeletes: number;
			/**
			 * Counter for tracking how many entries were affected by the sync operation, as defined by the SyncAdapter.
			 */
			numEntries: number;
			/**
			 * Counter for tracking how many entries, either from the server or the local store, were ignored during the sync operation. This could happen if the SyncAdapter detected some unparsable data but decided to skip it and move on rather than failing immediately.
			 */
			numSkippedEntries: number;
			static CREATOR: android.os.Parcelable.ICreator<android.content.SyncStats>;
			static class: java.lang.Class<android.content.SyncStats>;
			public toString(): string;
			/**
			 * Reset all the counters to 0.
			 */
			public clear(): void;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * An intent is an abstract description of an operation to be performed. It can be used with Context#startActivity(Intent) startActivity to launch an android.app.Activity, android.content.Context#sendBroadcast(Intent) broadcastIntent to send it to any interested BroadcastReceiver BroadcastReceiver components, and android.content.Context#startService or android.content.Context#bindService to communicate with a background android.app.Service.
		 */
		export class Intent extends java.lang.Object implements android.os.IParcelable, java.lang.ICloneable {
			/**
			 * Create an empty intent.
			 */
			constructor();
			/**
			 * Copy constructor.
			 */
			constructor(o: android.content.Intent);
			/**
			 * Create an intent with a given action. All other fields (data, type, class) are null. Note that the action <em>must</em> be in a namespace because Intents are used globally in the system -- for example the system VIEW action is android.intent.action.VIEW; an application's custom action would be something like com.google.app.myapp.CUSTOM_ACTION.
			 * @param action The Intent action, such as ACTION_VIEW.
			 */
			constructor(action: string);
			/**
			 * Create an intent with a given action and for a given data url. Note that the action <em>must</em> be in a namespace because Intents are used globally in the system -- for example the system VIEW action is android.intent.action.VIEW; an application's custom action would be something like com.google.app.myapp.CUSTOM_ACTION.
			 * @param action The Intent action, such as ACTION_VIEW.
			 * @param uri The Intent data URI.
			 */
			constructor(action: string, uri: android.net.Uri);
			/**
			 * Create an intent for a specific component. All other fields (action, data, type, class) are null, though they can be modified later with explicit calls. This provides a convenient way to create an intent that is intended to execute a hard-coded class name, rather than relying on the system to find an appropriate class for you; see #setComponent for more information on the repercussions of this.
			 * @param packageContext A Context of the application package implementing
			 * @param cls The component class that is to be used for the intent.
			 */
			constructor(packageContext: android.content.Context, cls: java.lang.Class<any>);
			/**
			 * Create an intent for a specific component with a specified action and data. This is equivalent using #Intent(String, android.net.Uri) to construct the Intent and then calling #setClass to set its class.
			 * @param action The Intent action, such as ACTION_VIEW.
			 * @param uri The Intent data URI.
			 * @param packageContext A Context of the application package implementing
			 * @param cls The component class that is to be used for the intent.
			 */
			constructor(action: string, uri: android.net.Uri, packageContext: android.content.Context, cls: java.lang.Class<any>);
			/**
			 * Activity Action: Start as a main entry point, does not expect to receive data.
			 */
			static ACTION_MAIN: string;
			/**
			 * Activity Action: Display the data to the user. This is the most common action performed on data -- it is the generic action you can use on a piece of data to get the most reasonable thing to occur. For example, when used on a contacts entry it will view the entry; when used on a mailto: URI it will bring up a compose window filled with the information supplied by the URI; when used with a tel: URI it will invoke the dialer.
			 */
			static ACTION_VIEW: string;
			/**
			 * A synonym for #ACTION_VIEW, the "standard" action that is performed on a piece of data.
			 */
			static ACTION_DEFAULT: string;
			/**
			 * Used to indicate that some piece of data should be attached to some other place. For example, image data could be attached to a contact. It is up to the recipient to decide where the data should be attached; the intent does not specify the ultimate destination.
			 */
			static ACTION_ATTACH_DATA: string;
			/**
			 * Activity Action: Provide explicit editable access to the given data.
			 */
			static ACTION_EDIT: string;
			/**
			 * Activity Action: Pick an existing item, or insert a new item, and then edit it.
			 */
			static ACTION_INSERT_OR_EDIT: string;
			/**
			 * Activity Action: Pick an item from the data, returning what was selected.
			 */
			static ACTION_PICK: string;
			/**
			 * Activity Action: Creates a shortcut.
			 */
			static ACTION_CREATE_SHORTCUT: string;
			/**
			 * The name of the extra used to define the Intent of a shortcut.
			 */
			static EXTRA_SHORTCUT_INTENT: string;
			/**
			 * The name of the extra used to define the name of a shortcut.
			 */
			static EXTRA_SHORTCUT_NAME: string;
			/**
			 * The name of the extra used to define the icon, as a Bitmap, of a shortcut.
			 */
			static EXTRA_SHORTCUT_ICON: string;
			/**
			 * The name of the extra used to define the icon, as a ShortcutIconResource, of a shortcut.
			 */
			static EXTRA_SHORTCUT_ICON_RESOURCE: string;
			/**
			 * Activity Action: Display an activity chooser, allowing the user to pick what they want to before proceeding. This can be used as an alternative to the standard activity picker that is displayed by the system when you try to start an activity with multiple possible matches, with these differences in behavior: <ul> <li>You can specify the title that will appear in the activity chooser. <li>The user does not have the option to make one of the matching activities a preferred activity, and all possible activities will always be shown even if one of them is currently marked as the preferred activity. </ul>
			 */
			static ACTION_CHOOSER: string;
			/**
			 * Activity Action: Allow the user to select a particular kind of data and return it. This is different than #ACTION_PICK in that here we just say what kind of data is desired, not a URI of existing data from which the user can pick. A ACTION_GET_CONTENT could allow the user to create the data as it runs (for example taking a picture or recording a sound), let them browse over the web and download the desired data, etc.
			 */
			static ACTION_GET_CONTENT: string;
			/**
			 * Activity Action: Dial a number as specified by the data. This shows a UI with the number being dialed, allowing the user to explicitly initiate the call.
			 */
			static ACTION_DIAL: string;
			/**
			 * Activity Action: Perform a call to someone specified by the data.
			 */
			static ACTION_CALL: string;
			/**
			 * Activity Action: Send a message to someone specified by the data.
			 */
			static ACTION_SENDTO: string;
			/**
			 * Activity Action: Deliver some data to someone else. Who the data is being delivered to is not specified; it is up to the receiver of this action to ask the user where the data should be sent.
			 */
			static ACTION_SEND: string;
			/**
			 * Activity Action: Deliver multiple data to someone else.
			 */
			static ACTION_SEND_MULTIPLE: string;
			/**
			 * Activity Action: Handle an incoming phone call.
			 */
			static ACTION_ANSWER: string;
			/**
			 * Activity Action: Insert an empty item into the given container.
			 */
			static ACTION_INSERT: string;
			/**
			 * Activity Action: Create a new item in the given container, initializing it from the current contents of the clipboard.
			 */
			static ACTION_PASTE: string;
			/**
			 * Activity Action: Delete the given data from its container.
			 */
			static ACTION_DELETE: string;
			/**
			 * Activity Action: Run the data, whatever that means.
			 */
			static ACTION_RUN: string;
			/**
			 * Activity Action: Perform a data synchronization.
			 */
			static ACTION_SYNC: string;
			/**
			 * Activity Action: Pick an activity given an intent, returning the class selected.
			 */
			static ACTION_PICK_ACTIVITY: string;
			/**
			 * Activity Action: Perform a search.
			 */
			static ACTION_SEARCH: string;
			/**
			 * Activity Action: Start the platform-defined tutorial
			 */
			static ACTION_SYSTEM_TUTORIAL: string;
			/**
			 * Activity Action: Perform a web search.
			 */
			static ACTION_WEB_SEARCH: string;
			/**
			 * Activity Action: Perform assist action.
			 */
			static ACTION_ASSIST: string;
			/**
			 * Activity Action: List all available applications
			 */
			static ACTION_ALL_APPS: string;
			/**
			 * Activity Action: Show settings for choosing wallpaper
			 */
			static ACTION_SET_WALLPAPER: string;
			/**
			 * Activity Action: Show activity for reporting a bug.
			 */
			static ACTION_BUG_REPORT: string;
			/**
			 * Activity Action: Main entry point for factory tests. Only used when the device is booting in factory test node. The implementing package must be installed in the system image.
			 */
			static ACTION_FACTORY_TEST: string;
			/**
			 * Activity Action: The user pressed the "call" button to go to the dialer or other appropriate UI for placing a call.
			 */
			static ACTION_CALL_BUTTON: string;
			/**
			 * Activity Action: Start Voice Command.
			 */
			static ACTION_VOICE_COMMAND: string;
			/**
			 * Activity Action: Start action associated with long pressing on the search key.
			 */
			static ACTION_SEARCH_LONG_PRESS: string;
			/**
			 * Activity Action: The user pressed the "Report" button in the crash/ANR dialog. This intent is delivered to the package which installed the application, usually Google Play.
			 */
			static ACTION_APP_ERROR: string;
			/**
			 * Activity Action: Show power usage information to the user.
			 */
			static ACTION_POWER_USAGE_SUMMARY: string;
			/**
			 * Activity Action: Show settings for managing network data usage of a specific application. Applications should define an activity that offers options to control data usage.
			 */
			static ACTION_MANAGE_NETWORK_USAGE: string;
			/**
			 * Activity Action: Launch application installer.
			 */
			static ACTION_INSTALL_PACKAGE: string;
			/**
			 * Used as a string extra field with #ACTION_INSTALL_PACKAGE to install a package. Specifies the installer package name; this package will receive the #ACTION_APP_ERROR intent.
			 */
			static EXTRA_INSTALLER_PACKAGE_NAME: string;
			/**
			 * Used as a boolean extra field with #ACTION_INSTALL_PACKAGE to install a package. Specifies that the application being installed should not be treated as coming from an unknown source, but as coming from the app invoking the Intent. For this to work you must start the installer with startActivityForResult().
			 */
			static EXTRA_NOT_UNKNOWN_SOURCE: string;
			/**
			 * Used as a URI extra field with #ACTION_INSTALL_PACKAGE and #ACTION_VIEW to indicate the URI from which the local APK in the Intent data field originated from.
			 */
			static EXTRA_ORIGINATING_URI: string;
			/**
			 * Used as a URI extra field with #ACTION_INSTALL_PACKAGE and #ACTION_VIEW to indicate the HTTP referrer URI associated with the Intent data field or #EXTRA_ORIGINATING_URI.
			 */
			static EXTRA_REFERRER: string;
			/**
			 * Used as a boolean extra field with #ACTION_INSTALL_PACKAGE to install a package. Tells the installer UI to skip the confirmation with the user if the .apk is replacing an existing one. As of android.os.Build.VERSION_CODES#JELLY_BEAN, Android will no longer show an interstitial message about updating existing applications so this is no longer needed.
			 */
			static EXTRA_ALLOW_REPLACE: string;
			/**
			 * Used as a boolean extra field with #ACTION_INSTALL_PACKAGE or #ACTION_UNINSTALL_PACKAGE. Specifies that the installer UI should return to the application the result code of the install/uninstall. The returned result code will be android.app.Activity#RESULT_OK on success or android.app.Activity#RESULT_FIRST_USER on failure.
			 */
			static EXTRA_RETURN_RESULT: string;
			/**
			 * Activity Action: Launch application uninstaller.
			 */
			static ACTION_UNINSTALL_PACKAGE: string;
			/**
			 * Broadcast Action: Sent after the screen turns off.
			 */
			static ACTION_SCREEN_OFF: string;
			/**
			 * Broadcast Action: Sent after the screen turns on.
			 */
			static ACTION_SCREEN_ON: string;
			/**
			 * Broadcast Action: Sent after the system stops dreaming.
			 */
			static ACTION_DREAMING_STOPPED: string;
			/**
			 * Broadcast Action: Sent after the system starts dreaming.
			 */
			static ACTION_DREAMING_STARTED: string;
			/**
			 * Broadcast Action: Sent when the user is present after device wakes up (e.g when the keyguard is gone).
			 */
			static ACTION_USER_PRESENT: string;
			/**
			 * Broadcast Action: The current time has changed. Sent every minute. You can <em>not</em> receive this through components declared in manifests, only by exlicitly registering for it with Context#registerReceiver(BroadcastReceiver, IntentFilter) Context.registerReceiver().
			 */
			static ACTION_TIME_TICK: string;
			/**
			 * Broadcast Action: The time was set.
			 */
			static ACTION_TIME_CHANGED: string;
			/**
			 * Broadcast Action: The date has changed.
			 */
			static ACTION_DATE_CHANGED: string;
			/**
			 * Broadcast Action: The timezone has changed. The intent will have the following extra values:</p> <ul> <li><em>time-zone</em> - The java.util.TimeZone.getID() value identifying the new time zone.</li> </ul>
			 */
			static ACTION_TIMEZONE_CHANGED: string;
			/**
			 * Broadcast Action: This is broadcast once, after the system has finished booting. It can be used to perform application-specific initialization, such as installing alarms. You must hold the android.Manifest.permission#RECEIVE_BOOT_COMPLETED permission in order to receive this broadcast.
			 */
			static ACTION_BOOT_COMPLETED: string;
			/**
			 * Broadcast Action: This is broadcast when a user action should request a temporary system dialog to dismiss. Some examples of temporary system dialogs are the notification window-shade and the recent tasks dialog.
			 */
			static ACTION_CLOSE_SYSTEM_DIALOGS: string;
			/**
			 * Broadcast Action: Trigger the download and eventual installation of a package.
			 */
			static ACTION_PACKAGE_INSTALL: string;
			/**
			 * Broadcast Action: A new application package has been installed on the device. The data contains the name of the package. Note that the newly installed package does <em>not</em> receive this broadcast.
			 */
			static ACTION_PACKAGE_ADDED: string;
			/**
			 * Broadcast Action: A new version of an application package has been installed, replacing an existing version that was previously installed. The data contains the name of the package.
			 */
			static ACTION_PACKAGE_REPLACED: string;
			/**
			 * Broadcast Action: A new version of your application has been installed over an existing one. This is only sent to the application that was replaced. It does not contain any additional data; to receive it, just use an intent filter for this action.
			 */
			static ACTION_MY_PACKAGE_REPLACED: string;
			/**
			 * Broadcast Action: An existing application package has been removed from the device. The data contains the name of the package. The package that is being installed does <em>not</em> receive this Intent. <ul> <li> #EXTRA_UID containing the integer uid previously assigned to the package. <li> #EXTRA_DATA_REMOVED is set to true if the entire application -- data and code -- is being removed. <li> #EXTRA_REPLACING is set to true if this will be followed by an #ACTION_PACKAGE_ADDED broadcast for the same package. </ul>
			 */
			static ACTION_PACKAGE_REMOVED: string;
			/**
			 * Broadcast Action: An existing application package has been completely removed from the device. The data contains the name of the package. This is like #ACTION_PACKAGE_REMOVED, but only set when #EXTRA_DATA_REMOVED is true and #EXTRA_REPLACING is false of that broadcast.
			 */
			static ACTION_PACKAGE_FULLY_REMOVED: string;
			/**
			 * Broadcast Action: An existing application package has been changed (e.g. a component has been enabled or disabled). The data contains the name of the package. <ul> <li> #EXTRA_UID containing the integer uid assigned to the package. <li> #EXTRA_CHANGED_COMPONENT_NAME_LIST containing the class name of the changed components. <li> #EXTRA_DONT_KILL_APP containing boolean field to override the default action of restarting the application. </ul>
			 */
			static ACTION_PACKAGE_CHANGED: string;
			/**
			 * Broadcast Action: The user has restarted a package, and all of its processes have been killed. All runtime state associated with it (processes, alarms, notifications, etc) should be removed. Note that the restarted package does <em>not</em> receive this broadcast. The data contains the name of the package. <ul> <li> #EXTRA_UID containing the integer uid assigned to the package. </ul>
			 */
			static ACTION_PACKAGE_RESTARTED: string;
			/**
			 * Broadcast Action: The user has cleared the data of a package. This should be preceded by #ACTION_PACKAGE_RESTARTED, after which all of its persistent data is erased and this broadcast sent. Note that the cleared package does <em>not</em> receive this broadcast. The data contains the name of the package. <ul> <li> #EXTRA_UID containing the integer uid assigned to the package. </ul>
			 */
			static ACTION_PACKAGE_DATA_CLEARED: string;
			/**
			 * Broadcast Action: A user ID has been removed from the system. The user ID number is stored in the extra data under #EXTRA_UID.
			 */
			static ACTION_UID_REMOVED: string;
			/**
			 * Broadcast Action: Sent to the installer package of an application when that application is first launched (that is the first time it is moved out of the stopped state). The data contains the name of the package.
			 */
			static ACTION_PACKAGE_FIRST_LAUNCH: string;
			/**
			 * Broadcast Action: Sent to the system package verifier when a package needs to be verified. The data contains the package URI. <p class="note"> This is a protected intent that can only be sent by the system. </p>
			 */
			static ACTION_PACKAGE_NEEDS_VERIFICATION: string;
			/**
			 * Broadcast Action: Sent to the system package verifier when a package is verified. The data contains the package URI. <p class="note"> This is a protected intent that can only be sent by the system.
			 */
			static ACTION_PACKAGE_VERIFIED: string;
			/**
			 * Broadcast Action: Resources for a set of packages (which were previously unavailable) are currently available since the media on which they exist is available. The extra data #EXTRA_CHANGED_PACKAGE_LIST contains a list of packages whose availability changed. The extra data #EXTRA_CHANGED_UID_LIST contains a list of uids of packages whose availability changed. Note that the packages in this list do <em>not</em> receive this broadcast. The specified set of packages are now available on the system.
			 */
			static ACTION_EXTERNAL_APPLICATIONS_AVAILABLE: string;
			/**
			 * Broadcast Action: Resources for a set of packages are currently unavailable since the media on which they exist is unavailable. The extra data #EXTRA_CHANGED_PACKAGE_LIST contains a list of packages whose availability changed. The extra data #EXTRA_CHANGED_UID_LIST contains a list of uids of packages whose availability changed. The specified set of packages can no longer be launched and are practically unavailable on the system.
			 */
			static ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE: string;
			/**
			 * Broadcast Action: The current system wallpaper has changed. See android.app.WallpaperManager for retrieving the new wallpaper. This should <em>only</em> be used to determine when the wallpaper has changed to show the new wallpaper to the user. You should certainly never, in response to this, change the wallpaper or other attributes of it such as the suggested size. That would be crazy, right? You'd cause all kinds of loops, especially if other apps are doing similar things, right? Of course. So please don't do this.
			 */
			static ACTION_WALLPAPER_CHANGED: string;
			/**
			 * Broadcast Action: The current device android.content.res.Configuration (orientation, locale, etc) has changed. When such a change happens, the UIs (view hierarchy) will need to be rebuilt based on this new information; for the most part, applications don't need to worry about this, because the system will take care of stopping and restarting the application to make sure it sees the new changes. Some system code that can not be restarted will need to watch for this action and handle it appropriately.
			 */
			static ACTION_CONFIGURATION_CHANGED: string;
			/**
			 * Broadcast Action: The current device's locale has changed.
			 */
			static ACTION_LOCALE_CHANGED: string;
			/**
			 * Broadcast Action: This is a <em>sticky broadcast</em> containing the charging state, level, and other information about the battery. See android.os.BatteryManager for documentation on the contents of the Intent.
			 */
			static ACTION_BATTERY_CHANGED: string;
			/**
			 * Broadcast Action: Indicates low battery condition on the device. This broadcast corresponds to the "Low battery warning" system dialog.
			 */
			static ACTION_BATTERY_LOW: string;
			/**
			 * Broadcast Action: Indicates the battery is now okay after being low. This will be sent after #ACTION_BATTERY_LOW once the battery has gone back up to an okay state.
			 */
			static ACTION_BATTERY_OKAY: string;
			/**
			 * Broadcast Action: External power has been connected to the device. This is intended for applications that wish to register specifically to this notification. Unlike ACTION_BATTERY_CHANGED, applications will be woken for this and so do not have to stay active to receive this notification. This action can be used to implement actions that wait until power is available to trigger.
			 */
			static ACTION_POWER_CONNECTED: string;
			/**
			 * Broadcast Action: External power has been removed from the device. This is intended for applications that wish to register specifically to this notification. Unlike ACTION_BATTERY_CHANGED, applications will be woken for this and so do not have to stay active to receive this notification. This action can be used to implement actions that wait until power is available to trigger.
			 */
			static ACTION_POWER_DISCONNECTED: string;
			/**
			 * Broadcast Action: Device is shutting down. This is broadcast when the device is being shut down (completely turned off, not sleeping). Once the broadcast is complete, the final shutdown will proceed and all unsaved data lost. Apps will not normally need to handle this, since the foreground activity will be paused as well.
			 */
			static ACTION_SHUTDOWN: string;
			/**
			 * Broadcast Action: A sticky broadcast that indicates low memory condition on the device
			 */
			static ACTION_DEVICE_STORAGE_LOW: string;
			/**
			 * Broadcast Action: Indicates low memory condition on the device no longer exists
			 */
			static ACTION_DEVICE_STORAGE_OK: string;
			/**
			 * Broadcast Action: Indicates low memory condition notification acknowledged by user and package management should be started. This is triggered by the user from the ACTION_DEVICE_STORAGE_LOW notification.
			 */
			static ACTION_MANAGE_PACKAGE_STORAGE: string;
			/**
			 * Broadcast Action: The device has entered USB Mass Storage mode. This is used mainly for the USB Settings panel. Apps should listen for ACTION_MEDIA_MOUNTED and ACTION_MEDIA_UNMOUNTED broadcasts to be notified when the SD card file system is mounted or unmounted replaced by android.os.storage.StorageEventListener
			 */
			static ACTION_UMS_CONNECTED: string;
			/**
			 * Broadcast Action: The device has exited USB Mass Storage mode. This is used mainly for the USB Settings panel. Apps should listen for ACTION_MEDIA_MOUNTED and ACTION_MEDIA_UNMOUNTED broadcasts to be notified when the SD card file system is mounted or unmounted replaced by android.os.storage.StorageEventListener
			 */
			static ACTION_UMS_DISCONNECTED: string;
			/**
			 * Broadcast Action: External media has been removed. The path to the mount point for the removed media is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_REMOVED: string;
			/**
			 * Broadcast Action: External media is present, but not mounted at its mount point. The path to the mount point for the removed media is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_UNMOUNTED: string;
			/**
			 * Broadcast Action: External media is present, and being disk-checked The path to the mount point for the checking media is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_CHECKING: string;
			/**
			 * Broadcast Action: External media is present, but is using an incompatible fs (or is blank) The path to the mount point for the checking media is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_NOFS: string;
			/**
			 * Broadcast Action: External media is present and mounted at its mount point. The path to the mount point for the removed media is contained in the Intent.mData field. The Intent contains an extra with name "read-only" and Boolean value to indicate if the media was mounted read only.
			 */
			static ACTION_MEDIA_MOUNTED: string;
			/**
			 * Broadcast Action: External media is unmounted because it is being shared via USB mass storage. The path to the mount point for the shared media is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_SHARED: string;
			/**
			 * Broadcast Action: External media was removed from SD card slot, but mount point was not unmounted. The path to the mount point for the removed media is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_BAD_REMOVAL: string;
			/**
			 * Broadcast Action: External media is present but cannot be mounted. The path to the mount point for the removed media is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_UNMOUNTABLE: string;
			/**
			 * Broadcast Action: User has expressed the desire to remove the external storage media. Applications should close all files they have open within the mount point when they receive this intent. The path to the mount point for the media to be ejected is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_EJECT: string;
			/**
			 * Broadcast Action: The media scanner has started scanning a directory. The path to the directory being scanned is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_SCANNER_STARTED: string;
			/**
			 * Broadcast Action: The media scanner has finished scanning a directory. The path to the scanned directory is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_SCANNER_FINISHED: string;
			/**
			 * Broadcast Action: Request the media scanner to scan a file and add it to the media database. The path to the file is contained in the Intent.mData field.
			 */
			static ACTION_MEDIA_SCANNER_SCAN_FILE: string;
			/**
			 * Broadcast Action: The "Media Button" was pressed. Includes a single extra field, #EXTRA_KEY_EVENT, containing the key event that caused the broadcast.
			 */
			static ACTION_MEDIA_BUTTON: string;
			/**
			 * Broadcast Action: The "Camera Button" was pressed. Includes a single extra field, #EXTRA_KEY_EVENT, containing the key event that caused the broadcast.
			 */
			static ACTION_CAMERA_BUTTON: string;
			/**
			 * Broadcast Action: A GTalk connection has been established.
			 */
			static ACTION_GTALK_SERVICE_CONNECTED: string;
			/**
			 * Broadcast Action: A GTalk connection has been disconnected.
			 */
			static ACTION_GTALK_SERVICE_DISCONNECTED: string;
			/**
			 * Broadcast Action: An input method has been changed.
			 */
			static ACTION_INPUT_METHOD_CHANGED: string;
			static ACTION_AIRPLANE_MODE_CHANGED: string;
			/**
			 * Broadcast Action: Some content providers have parts of their namespace where they publish new events or items that the user may be especially interested in. For these things, they may broadcast this action when the set of interesting items change.
			 */
			static ACTION_PROVIDER_CHANGED: string;
			/**
			 * Broadcast Action: Wired Headset plugged in or unplugged.
			 */
			static ACTION_HEADSET_PLUG: string;
			/**
			 * Broadcast Action: An outgoing call is about to be placed.
			 */
			static ACTION_NEW_OUTGOING_CALL: string;
			/**
			 * Broadcast Action: Have the device reboot. This is only for use by system code.
			 */
			static ACTION_REBOOT: string;
			/**
			 * Broadcast Action: A sticky broadcast for changes in the physical docking state of the device.
			 */
			static ACTION_DOCK_EVENT: string;
			/**
			 * Sent the first time a user is starting, to allow system apps to perform one time initialization. (This will not be seen by third party applications because a newly initialized user does not have any third party applications installed for it.) This is sent early in starting the user, around the time the home app is started, before #ACTION_BOOT_COMPLETED is sent. This is sent as a foreground broadcast, since it is part of a visible user interaction; be as quick as possible when handling it.
			 */
			static ACTION_USER_INITIALIZE: string;
			/**
			 * Sent when a user switch is happening, causing the process's user to be brought to the foreground. This is only sent to receivers registered through Context#registerReceiver(BroadcastReceiver, IntentFilter) Context.registerReceiver. It is sent to the user that is going to the foreground. This is sent as a foreground broadcast, since it is part of a visible user interaction; be as quick as possible when handling it.
			 */
			static ACTION_USER_FOREGROUND: string;
			/**
			 * Sent when a user switch is happening, causing the process's user to be sent to the background. This is only sent to receivers registered through Context#registerReceiver(BroadcastReceiver, IntentFilter) Context.registerReceiver. It is sent to the user that is going to the background. This is sent as a foreground broadcast, since it is part of a visible user interaction; be as quick as possible when handling it.
			 */
			static ACTION_USER_BACKGROUND: string;
			/**
			 * Sent when the user taps on the clock widget in the system's "quick settings" area.
			 */
			static ACTION_QUICK_CLOCK: string;
			/**
			 * Set if the activity should be an option for the default action (center press) to perform on a piece of data. Setting this will hide from the user any activities without it set when performing an action on some data. Note that this is normal -not- set in the Intent when initiating an action -- it is for use in intent filters specified in packages.
			 */
			static CATEGORY_DEFAULT: string;
			/**
			 * Activities that can be safely invoked from a browser must support this category. For example, if the user is viewing a web page or an e-mail and clicks on a link in the text, the Intent generated execute that link will require the BROWSABLE category, so that only activities supporting this category will be considered as possible actions. By supporting this category, you are promising that there is nothing damaging (without user intervention) that can happen by invoking any matching Intent.
			 */
			static CATEGORY_BROWSABLE: string;
			/**
			 * Set if the activity should be considered as an alternative action to the data the user is currently viewing. See also #CATEGORY_SELECTED_ALTERNATIVE for an alternative action that applies to the selection in a list of items.
			 */
			static CATEGORY_ALTERNATIVE: string;
			/**
			 * Set if the activity should be considered as an alternative selection action to the data the user has currently selected. This is like #CATEGORY_ALTERNATIVE, but is used in activities showing a list of items from which the user can select, giving them alternatives to the default action that will be performed on it.
			 */
			static CATEGORY_SELECTED_ALTERNATIVE: string;
			/**
			 * Intended to be used as a tab inside of a containing TabActivity.
			 */
			static CATEGORY_TAB: string;
			/**
			 * Should be displayed in the top-level launcher.
			 */
			static CATEGORY_LAUNCHER: string;
			/**
			 * Provides information about the package it is in; typically used if a package does not contain a #CATEGORY_LAUNCHER to provide a front-door to the user without having to be shown in the all apps list.
			 */
			static CATEGORY_INFO: string;
			/**
			 * This is the home activity, that is the first activity that is displayed when the device boots.
			 */
			static CATEGORY_HOME: string;
			/**
			 * This activity is a preference panel.
			 */
			static CATEGORY_PREFERENCE: string;
			/**
			 * This activity is a development preference panel.
			 */
			static CATEGORY_DEVELOPMENT_PREFERENCE: string;
			/**
			 * Capable of running inside a parent activity container.
			 */
			static CATEGORY_EMBED: string;
			/**
			 * This activity allows the user to browse and download new applications.
			 */
			static CATEGORY_APP_MARKET: string;
			/**
			 * This activity may be exercised by the monkey or other automated test tools.
			 */
			static CATEGORY_MONKEY: string;
			/**
			 * To be used as a test (not part of the normal user experience).
			 */
			static CATEGORY_TEST: string;
			/**
			 * To be used as a unit test (run through the Test Harness).
			 */
			static CATEGORY_UNIT_TEST: string;
			/**
			 * To be used as a sample code example (not part of the normal user experience).
			 */
			static CATEGORY_SAMPLE_CODE: string;
			/**
			 * Used to indicate that a GET_CONTENT intent only wants URIs that can be opened with ContentResolver.openInputStream. Openable URIs must support the columns in OpenableColumns when queried, though it is allowable for those columns to be blank.
			 */
			static CATEGORY_OPENABLE: string;
			/**
			 * To be used as code under test for framework instrumentation tests.
			 */
			static CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST: string;
			/**
			 * An activity to run when device is inserted into a car dock. Used with #ACTION_MAIN to launch an activity. For more information, see android.app.UiModeManager.
			 */
			static CATEGORY_CAR_DOCK: string;
			/**
			 * An activity to run when device is inserted into a car dock. Used with #ACTION_MAIN to launch an activity. For more information, see android.app.UiModeManager.
			 */
			static CATEGORY_DESK_DOCK: string;
			/**
			 * An activity to run when device is inserted into a analog (low end) dock. Used with #ACTION_MAIN to launch an activity. For more information, see android.app.UiModeManager.
			 */
			static CATEGORY_LE_DESK_DOCK: string;
			/**
			 * An activity to run when device is inserted into a digital (high end) dock. Used with #ACTION_MAIN to launch an activity. For more information, see android.app.UiModeManager.
			 */
			static CATEGORY_HE_DESK_DOCK: string;
			/**
			 * Used to indicate that the activity can be used in a car environment.
			 */
			static CATEGORY_CAR_MODE: string;
			/**
			 * Used with #ACTION_MAIN to launch the browser application. The activity should be able to browse the Internet.
			 */
			static CATEGORY_APP_BROWSER: string;
			/**
			 * Used with #ACTION_MAIN to launch the calculator application. The activity should be able to perform standard arithmetic operations.
			 */
			static CATEGORY_APP_CALCULATOR: string;
			/**
			 * Used with #ACTION_MAIN to launch the calendar application. The activity should be able to view and manipulate calendar entries.
			 */
			static CATEGORY_APP_CALENDAR: string;
			/**
			 * Used with #ACTION_MAIN to launch the contacts application. The activity should be able to view and manipulate address book entries.
			 */
			static CATEGORY_APP_CONTACTS: string;
			/**
			 * Used with #ACTION_MAIN to launch the email application. The activity should be able to send and receive email.
			 */
			static CATEGORY_APP_EMAIL: string;
			/**
			 * Used with #ACTION_MAIN to launch the gallery application. The activity should be able to view and manipulate image and video files stored on the device.
			 */
			static CATEGORY_APP_GALLERY: string;
			/**
			 * Used with #ACTION_MAIN to launch the maps application. The activity should be able to show the user's current location and surroundings.
			 */
			static CATEGORY_APP_MAPS: string;
			/**
			 * Used with #ACTION_MAIN to launch the messaging application. The activity should be able to send and receive text messages.
			 */
			static CATEGORY_APP_MESSAGING: string;
			/**
			 * Used with #ACTION_MAIN to launch the music application. The activity should be able to play, browse, or manipulate music files stored on the device.
			 */
			static CATEGORY_APP_MUSIC: string;
			/**
			 * The initial data to place in a newly created record. Use with #ACTION_INSERT. The data here is a Map containing the same fields as would be given to the underlying ContentProvider.insert() call.
			 */
			static EXTRA_TEMPLATE: string;
			/**
			 * A constant CharSequence that is associated with the Intent, used with #ACTION_SEND to supply the literal data to be sent. Note that this may be a styled CharSequence, so you must use Bundle#getCharSequence(String) Bundle.getCharSequence() to retrieve it.
			 */
			static EXTRA_TEXT: string;
			/**
			 * A constant String that is associated with the Intent, used with #ACTION_SEND to supply an alternative to #EXTRA_TEXT as HTML formatted text. Note that you <em>must</em> also supply #EXTRA_TEXT.
			 */
			static EXTRA_HTML_TEXT: string;
			/**
			 * A content: URI holding a stream of data associated with the Intent, used with #ACTION_SEND to supply the data being sent.
			 */
			static EXTRA_STREAM: string;
			/**
			 * A String[] holding e-mail addresses that should be delivered to.
			 */
			static EXTRA_EMAIL: string;
			/**
			 * A String[] holding e-mail addresses that should be carbon copied.
			 */
			static EXTRA_CC: string;
			/**
			 * A String[] holding e-mail addresses that should be blind carbon copied.
			 */
			static EXTRA_BCC: string;
			/**
			 * A constant string holding the desired subject line of a message.
			 */
			static EXTRA_SUBJECT: string;
			/**
			 * An Intent describing the choices you would like shown with #ACTION_PICK_ACTIVITY.
			 */
			static EXTRA_INTENT: string;
			/**
			 * A CharSequence dialog title to provide to the user when used with a #ACTION_CHOOSER.
			 */
			static EXTRA_TITLE: string;
			/**
			 * A Parcelable[] of Intent or android.content.pm.LabeledIntent objects as set with #putExtra(String, Parcelable[]) of additional activities to place a the front of the list of choices, when shown to the user with a #ACTION_CHOOSER.
			 */
			static EXTRA_INITIAL_INTENTS: string;
			/**
			 * A android.view.KeyEvent object containing the event that triggered the creation of the Intent it is in.
			 */
			static EXTRA_KEY_EVENT: string;
			/**
			 * Used as a boolean extra field in android.content.Intent#ACTION_PACKAGE_REMOVED or android.content.Intent#ACTION_PACKAGE_CHANGED intents to override the default action of restarting the application.
			 */
			static EXTRA_DONT_KILL_APP: string;
			/**
			 * A String holding the phone number originally entered in android.content.Intent#ACTION_NEW_OUTGOING_CALL, or the actual number to call in a android.content.Intent#ACTION_CALL.
			 */
			static EXTRA_PHONE_NUMBER: string;
			/**
			 * Used as an int extra field in android.content.Intent#ACTION_UID_REMOVED intents to supply the uid the package had been assigned. Also an optional extra in android.content.Intent#ACTION_PACKAGE_REMOVED or android.content.Intent#ACTION_PACKAGE_CHANGED for the same purpose.
			 */
			static EXTRA_UID: string;
			/**
			 * Used as a boolean extra field in android.content.Intent#ACTION_PACKAGE_REMOVED intents to indicate whether this represents a full uninstall (removing both the code and its data) or a partial uninstall (leaving its data, implying that this is an update).
			 */
			static EXTRA_DATA_REMOVED: string;
			/**
			 * Used as a boolean extra field in android.content.Intent#ACTION_PACKAGE_REMOVED intents to indicate that this is a replacement of the package, so this broadcast will immediately be followed by an add broadcast for a different version of the same package.
			 */
			static EXTRA_REPLACING: string;
			/**
			 * Used as an int extra field in android.app.AlarmManager intents to tell the application being invoked how many pending alarms are being delievered with the intent. For one-shot alarms this will always be 1. For recurring alarms, this might be greater than 1 if the device was asleep or powered off at the time an earlier alarm would have been delivered.
			 */
			static EXTRA_ALARM_COUNT: string;
			/**
			 * Used as an int extra field in android.content.Intent#ACTION_DOCK_EVENT intents to request the dock state. Possible values are android.content.Intent#EXTRA_DOCK_STATE_UNDOCKED, android.content.Intent#EXTRA_DOCK_STATE_DESK, or android.content.Intent#EXTRA_DOCK_STATE_CAR, or android.content.Intent#EXTRA_DOCK_STATE_LE_DESK, or android.content.Intent#EXTRA_DOCK_STATE_HE_DESK.
			 */
			static EXTRA_DOCK_STATE: string;
			/**
			 * Used as an int value for android.content.Intent#EXTRA_DOCK_STATE to represent that the phone is not in any dock.
			 */
			static EXTRA_DOCK_STATE_UNDOCKED: number;
			/**
			 * Used as an int value for android.content.Intent#EXTRA_DOCK_STATE to represent that the phone is in a desk dock.
			 */
			static EXTRA_DOCK_STATE_DESK: number;
			/**
			 * Used as an int value for android.content.Intent#EXTRA_DOCK_STATE to represent that the phone is in a car dock.
			 */
			static EXTRA_DOCK_STATE_CAR: number;
			/**
			 * Used as an int value for android.content.Intent#EXTRA_DOCK_STATE to represent that the phone is in a analog (low end) dock.
			 */
			static EXTRA_DOCK_STATE_LE_DESK: number;
			/**
			 * Used as an int value for android.content.Intent#EXTRA_DOCK_STATE to represent that the phone is in a digital (high end) dock.
			 */
			static EXTRA_DOCK_STATE_HE_DESK: number;
			/**
			 * Boolean that can be supplied as meta-data with a dock activity, to indicate that the dock should take over the home key when it is active.
			 */
			static METADATA_DOCK_HOME: string;
			/**
			 * Used as a parcelable extra field in #ACTION_APP_ERROR, containing the bug report.
			 */
			static EXTRA_BUG_REPORT: string;
			/**
			 * Used in the extra field in the remote intent. It's astring token passed with the remote intent.
			 */
			static EXTRA_REMOTE_INTENT_TOKEN: string;
			/**
			 *  See #EXTRA_CHANGED_COMPONENT_NAME_LIST; this field will contain only the first name in the list.
			 */
			static EXTRA_CHANGED_COMPONENT_NAME: string;
			/**
			 * This field is part of android.content.Intent#ACTION_PACKAGE_CHANGED, and contains a string array of all of the components that have changed.
			 */
			static EXTRA_CHANGED_COMPONENT_NAME_LIST: string;
			/**
			 * This field is part of android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_AVAILABLE, android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE and contains a string array of all of the components that have changed.
			 */
			static EXTRA_CHANGED_PACKAGE_LIST: string;
			/**
			 * This field is part of android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_AVAILABLE, android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE and contains an integer array of uids of all of the components that have changed.
			 */
			static EXTRA_CHANGED_UID_LIST: string;
			/**
			 * Used to indicate that a #ACTION_GET_CONTENT intent should only return data that is on the local device. This is a boolean extra; the default is false. If true, an implementation of ACTION_GET_CONTENT should only allow the user to select media that is already on the device, not requiring it be downloaded from a remote service when opened. Another way to look at it is that such content should generally have a "_data" column to the path of the content on local external storage.
			 */
			static EXTRA_LOCAL_ONLY: string;
			/**
			 * If set, the recipient of this Intent will be granted permission to perform read operations on the Uri in the Intent's data and any URIs specified in its ClipData. When applying to an Intent's ClipData, all URIs as well as recursive traversals through data or other ClipData in Intent items will be granted; only the grant flags of the top-level Intent are used.
			 */
			static FLAG_GRANT_READ_URI_PERMISSION: number;
			/**
			 * If set, the recipient of this Intent will be granted permission to perform write operations on the Uri in the Intent's data and any URIs specified in its ClipData. When applying to an Intent's ClipData, all URIs as well as recursive traversals through data or other ClipData in Intent items will be granted; only the grant flags of the top-level Intent are used.
			 */
			static FLAG_GRANT_WRITE_URI_PERMISSION: number;
			/**
			 * Can be set by the caller to indicate that this Intent is coming from a background operation, not from direct user interaction.
			 */
			static FLAG_FROM_BACKGROUND: number;
			/**
			 * A flag you can enable for debugging: when set, log messages will be printed during the resolution of this intent to show you what has been found to create the final resolved list.
			 */
			static FLAG_DEBUG_LOG_RESOLUTION: number;
			/**
			 * If set, this intent will not match any components in packages that are currently stopped. If this is not set, then the default behavior is to include such applications in the result.
			 */
			static FLAG_EXCLUDE_STOPPED_PACKAGES: number;
			/**
			 * If set, this intent will always match any components in packages that are currently stopped. This is the default behavior when #FLAG_EXCLUDE_STOPPED_PACKAGES is not set. If both of these flags are set, this one wins (it allows overriding of exclude for places where the framework may automatically set the exclude flag).
			 */
			static FLAG_INCLUDE_STOPPED_PACKAGES: number;
			/**
			 * If set, the new activity is not kept in the history stack. As soon as the user navigates away from it, the activity is finished. This may also be set with the android.R.styleable#AndroidManifestActivity_noHistory noHistory attribute.
			 */
			static FLAG_ACTIVITY_NO_HISTORY: number;
			/**
			 * If set, the activity will not be launched if it is already running at the top of the history stack.
			 */
			static FLAG_ACTIVITY_SINGLE_TOP: number;
			/**
			 * If set, this activity will become the start of a new task on this history stack. A task (from the activity that started it to the next task activity) defines an atomic group of activities that the user can move to. Tasks can be moved to the foreground and background; all of the activities inside of a particular task always remain in the same order. See <a href="guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back Stack</a> for more information about tasks.
			 */
			static FLAG_ACTIVITY_NEW_TASK: number;
			/**
			 * <strong>Do not use this flag unless you are implementing your own top-level application launcher.</strong> Used in conjunction with #FLAG_ACTIVITY_NEW_TASK to disable the behavior of bringing an existing task to the foreground. When set, a new task is <em>always</em> started to host the Activity for the Intent, regardless of whether there is already an existing task running the same thing.
			 */
			static FLAG_ACTIVITY_MULTIPLE_TASK: number;
			/**
			 * If set, and the activity being launched is already running in the current task, then instead of launching a new instance of that activity, all of the other activities on top of it will be closed and this Intent will be delivered to the (now on top) old activity as a new Intent.
			 */
			static FLAG_ACTIVITY_CLEAR_TOP: number;
			/**
			 * If set and this intent is being used to launch a new activity from an existing one, then the reply target of the existing activity will be transfered to the new activity. This way the new activity can call android.app.Activity#setResult and have that result sent back to the reply target of the original activity.
			 */
			static FLAG_ACTIVITY_FORWARD_RESULT: number;
			/**
			 * If set and this intent is being used to launch a new activity from an existing one, the current activity will not be counted as the top activity for deciding whether the new intent should be delivered to the top instead of starting a new one. The previous activity will be used as the top, with the assumption being that the current activity will finish itself immediately.
			 */
			static FLAG_ACTIVITY_PREVIOUS_IS_TOP: number;
			/**
			 * If set, the new activity is not kept in the list of recently launched activities.
			 */
			static FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS: number;
			/**
			 * This flag is not normally set by application code, but set for you by the system as described in the android.R.styleable#AndroidManifestActivity_launchMode launchMode documentation for the singleTask mode.
			 */
			static FLAG_ACTIVITY_BROUGHT_TO_FRONT: number;
			/**
			 * If set, and this activity is either being started in a new task or bringing to the top an existing task, then it will be launched as the front door of the task. This will result in the application of any affinities needed to have that task in the proper state (either moving activities to or from it), or simply resetting that task to its initial state if needed.
			 */
			static FLAG_ACTIVITY_RESET_TASK_IF_NEEDED: number;
			/**
			 * This flag is not normally set by application code, but set for you by the system if this activity is being launched from history (longpress home key).
			 */
			static FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY: number;
			/**
			 * If set, this marks a point in the task's activity stack that should be cleared when the task is reset. That is, the next time the task is brought to the foreground with #FLAG_ACTIVITY_RESET_TASK_IF_NEEDED (typically as a result of the user re-launching it from home), this activity and all on top of it will be finished so that the user does not return to them, but instead returns to whatever activity preceeded it.
			 */
			static FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET: number;
			/**
			 * If set, this flag will prevent the normal android.app.Activity#onUserLeaveHint callback from occurring on the current frontmost activity before it is paused as the newly-started activity is brought to the front.
			 */
			static FLAG_ACTIVITY_NO_USER_ACTION: number;
			/**
			 * If set in an Intent passed to Context#startActivity Context.startActivity(), this flag will cause the launched activity to be brought to the front of its task's history stack if it is already running.
			 */
			static FLAG_ACTIVITY_REORDER_TO_FRONT: number;
			/**
			 * If set in an Intent passed to Context#startActivity Context.startActivity(), this flag will prevent the system from applying an activity transition animation to go to the next activity state. This doesn't mean an animation will never run -- if another activity change happens that doesn't specify this flag before the activity started here is displayed, then that transition will be used. This flag can be put to good use when you are going to do a series of activity operations but the animation seen by the user shouldn't be driven by the first activity change but rather a later one.
			 */
			static FLAG_ACTIVITY_NO_ANIMATION: number;
			/**
			 * If set in an Intent passed to Context#startActivity Context.startActivity(), this flag will cause any existing task that would be associated with the activity to be cleared before the activity is started. That is, the activity becomes the new root of an otherwise empty task, and any old activities are finished. This can only be used in conjunction with #FLAG_ACTIVITY_NEW_TASK.
			 */
			static FLAG_ACTIVITY_CLEAR_TASK: number;
			/**
			 * If set in an Intent passed to Context#startActivity Context.startActivity(), this flag will cause a newly launching task to be placed on top of the current home activity task (if there is one). That is, pressing back from the task will always return the user to home even if that was not the last activity they saw. This can only be used in conjunction with #FLAG_ACTIVITY_NEW_TASK.
			 */
			static FLAG_ACTIVITY_TASK_ON_HOME: number;
			/**
			 * If set, when sending a broadcast only registered receivers will be called -- no BroadcastReceiver components will be launched.
			 */
			static FLAG_RECEIVER_REGISTERED_ONLY: number;
			/**
			 * If set, when sending a broadcast the new broadcast will replace any existing pending broadcast that matches it. Matching is defined by Intent#filterEquals(Intent) Intent.filterEquals returning true for the intents of the two broadcasts. When a match is found, the new broadcast (and receivers associated with it) will replace the existing one in the pending broadcast list, remaining at the same position in the list.
			 */
			static FLAG_RECEIVER_REPLACE_PENDING: number;
			/**
			 * If set, when sending a broadcast the recipient is allowed to run at foreground priority, with a shorter timeout interval. During normal broadcasts the receivers are not automatically hoisted out of the background priority class.
			 */
			static FLAG_RECEIVER_FOREGROUND: number;
			/**
			 * Flag for use with #toUri and #parseUri: the URI string always has the "intent:" scheme. This syntax can be used when you want to later disambiguate between URIs that are intended to describe an Intent vs. all others that should be treated as raw URIs. When used with #parseUri, any other scheme will result in a generic VIEW action for that raw URI.
			 */
			static URI_INTENT_SCHEME: number;
			/**
			 * Use with #fillIn to allow the current action value to be overwritten, even if it is already set.
			 */
			static FILL_IN_ACTION: number;
			/**
			 * Use with #fillIn to allow the current data or type value overwritten, even if it is already set.
			 */
			static FILL_IN_DATA: number;
			/**
			 * Use with #fillIn to allow the current categories to be overwritten, even if they are already set.
			 */
			static FILL_IN_CATEGORIES: number;
			/**
			 * Use with #fillIn to allow the current component value to be overwritten, even if it is already set.
			 */
			static FILL_IN_COMPONENT: number;
			/**
			 * Use with #fillIn to allow the current package value to be overwritten, even if it is already set.
			 */
			static FILL_IN_PACKAGE: number;
			/**
			 * Use with #fillIn to allow the current bounds rectangle to be overwritten, even if it is already set.
			 */
			static FILL_IN_SOURCE_BOUNDS: number;
			/**
			 * Use with #fillIn to allow the current selector to be overwritten, even if it is already set.
			 */
			static FILL_IN_SELECTOR: number;
			/**
			 * Use with #fillIn to allow the current ClipData to be overwritten, even if it is already set.
			 */
			static FILL_IN_CLIP_DATA: number;
			static CREATOR: android.os.Parcelable.ICreator<android.content.Intent>;
			static class: java.lang.Class<android.content.Intent>;
			/**
			 * Convenience function for creating a #ACTION_CHOOSER Intent.
			 * @param target The Intent that the user will be selecting an activity
			 * @param title Optional title that will be displayed in the chooser.
			 */
			public static createChooser(target: android.content.Intent, title: string): android.content.Intent;
			public clone(): any;
			/**
			 * Make a clone of only the parts of the Intent that are relevant for filter matching: the action, data, type, component, and categories.
			 */
			public cloneFilter(): android.content.Intent;
			/**
			 * Create an intent to launch the main (root) activity of a task. This is the Intent that is started when the application's is launched from Home. For anything else that wants to launch an application in the same way, it is important that they use an Intent structured the same way, and can use this function to ensure this is the case.
			 * @param mainActivity The main activity component that this Intent will
			 */
			public static makeMainActivity(mainActivity: android.content.ComponentName): android.content.Intent;
			/**
			 * Make an Intent for the main activity of an application, without specifying a specific activity to run but giving a selector to find the activity. This results in a final Intent that is structured the same as when the application is launched from Home. For anything else that wants to launch an application in the same way, it is important that they use an Intent structured the same way, and can use this function to ensure this is the case.
			 * @param selectorAction The action name of the Intent's selector.
			 * @param selectorCategory The name of a category to add to the Intent's
			 */
			public static makeMainSelectorActivity(selectorAction: string, selectorCategory: string): android.content.Intent;
			/**
			 * Make an Intent that can be used to re-launch an application's task in its base state. This is like #makeMainActivity(ComponentName), but also sets the flags #FLAG_ACTIVITY_NEW_TASK and #FLAG_ACTIVITY_CLEAR_TASK.
			 * @param mainActivity The activity component that is the root of the
			 */
			public static makeRestartActivityTask(mainActivity: android.content.ComponentName): android.content.Intent;
			/**
			 * Call #parseUri with 0 flags. Use #parseUri instead.
			 */
			public static getIntent(uri: string): android.content.Intent;
			/**
			 * Create an intent from a URI. This URI may encode the action, category, and other intent fields, if it was returned by #toUri. If the Intent was not generate by toUri(), its data will be the entire URI and its action will be ACTION_VIEW.
			 * @param uri The URI to turn into an Intent.
			 * @param flags Additional processing flags. Either 0 or
			 */
			public static parseUri(uri: string, flags: number): android.content.Intent;
			public static getIntentOld(uri: string): android.content.Intent;
			/**
			 * Retrieve the general action to be performed, such as #ACTION_VIEW. The action describes the general way the rest of the information in the intent should be interpreted -- most importantly, what to do with the data returned by #getData.
			 */
			public getAction(): string;
			/**
			 * Retrieve data this intent is operating on. This URI specifies the name of the data; often it uses the content: scheme, specifying data in a content provider. Other schemes may be handled by specific activities, such as http: by the web browser.
			 */
			public getData(): android.net.Uri;
			/**
			 * The same as #getData(), but returns the URI as an encoded String.
			 */
			public getDataString(): string;
			/**
			 * Return the scheme portion of the intent's data. If the data is null or does not include a scheme, null is returned. Otherwise, the scheme prefix without the final ':' is returned, i.e. "http".
			 */
			public getScheme(): string;
			/**
			 * Retrieve any explicit MIME type included in the intent. This is usually null, as the type is determined by the intent data.
			 */
			public getType(): string;
			/**
			 * Return the MIME data type of this intent. If the type field is explicitly set, that is simply returned. Otherwise, if the data is set, the type of that data is returned. If neither fields are set, a null is returned.
			 */
			public resolveType(context: android.content.Context): string;
			/**
			 * Return the MIME data type of this intent. If the type field is explicitly set, that is simply returned. Otherwise, if the data is set, the type of that data is returned. If neither fields are set, a null is returned.
			 * @param resolver A ContentResolver that can be used to determine the MIME
			 */
			public resolveType(resolver: android.content.ContentResolver): string;
			/**
			 * Return the MIME data type of this intent, only if it will be needed for intent resolution. This is not generally useful for application code; it is used by the frameworks for communicating with back-end system services.
			 * @param resolver A ContentResolver that can be used to determine the MIME
			 */
			public resolveTypeIfNeeded(resolver: android.content.ContentResolver): string;
			/**
			 * Check if a category exists in the intent.
			 * @param category The category to check.
			 */
			public hasCategory(category: string): boolean;
			/**
			 * Return the set of all categories in the intent. If there are no categories, returns NULL.
			 */
			public getCategories(): java.util.ISet<string>;
			/**
			 * Return the specific selector associated with this Intent. If there is none, returns null. See #setSelector for more information.
			 */
			public getSelector(): android.content.Intent;
			/**
			 * Return the ClipData associated with this Intent. If there is none, returns null. See #setClipData for more information.
			 */
			public getClipData(): android.content.ClipData;
			/**
			 * Sets the ClassLoader that will be used when unmarshalling any Parcelable values from the extras of this Intent.
			 * @param loader a ClassLoader, or null to use the default loader
			 */
			public setExtrasClassLoader(loader: java.lang.ClassLoader): void;
			/**
			 * Returns true if an extra value is associated with the given name.
			 * @param name the extra's name
			 */
			public hasExtra(name: string): boolean;
			/**
			 * Returns true if the Intent's extras contain a parcelled file descriptor.
			 */
			public hasFileDescriptors(): boolean;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getBooleanExtra(name: string, defaultValue: boolean): boolean;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getByteExtra(name: string, defaultValue: number): number;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getShortExtra(name: string, defaultValue: number): number;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getCharExtra(name: string, defaultValue: string): string;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getIntExtra(name: string, defaultValue: number): number;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getLongExtra(name: string, defaultValue: number): any;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getFloatExtra(name: string, defaultValue: number): number;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 * @param defaultValue the value to be returned if no value of the desired
			 */
			public getDoubleExtra(name: string, defaultValue: number): any;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getStringExtra(name: string): string;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getCharSequenceExtra(name: string): string;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getParcelableExtra<T extends android.os.IParcelable>(name: string): T;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getParcelableArrayExtra(name: string): native.Array<android.os.IParcelable>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getParcelableArrayListExtra<T extends android.os.IParcelable>(name: string): java.util.ArrayList<T>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getSerializableExtra(name: string): java.io.ISerializable;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getIntegerArrayListExtra(name: string): java.util.ArrayList<java.lang.Integer>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getStringArrayListExtra(name: string): java.util.ArrayList<string>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getCharSequenceArrayListExtra(name: string): java.util.ArrayList<string>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getBooleanArrayExtra(name: string): native.Array<boolean>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getByteArrayExtra(name: string): native.Array<number>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getShortArrayExtra(name: string): native.Array<number>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getCharArrayExtra(name: string): native.Array<string>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getIntArrayExtra(name: string): native.Array<number>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getLongArrayExtra(name: string): native.Array<number>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getFloatArrayExtra(name: string): native.Array<number>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getDoubleArrayExtra(name: string): native.Array<number>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getStringArrayExtra(name: string): native.Array<string>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getCharSequenceArrayExtra(name: string): native.Array<string>;
			/**
			 * Retrieve extended data from the intent.
			 * @param name The name of the desired item.
			 */
			public getBundleExtra(name: string): android.os.Bundle;
			/**
			 * Retrieves a map of extended data from the intent.
			 */
			public getExtras(): android.os.Bundle;
			/**
			 * Retrieve any special flags associated with this intent. You will normally just set them with #setFlags and let the system take the appropriate action with them.
			 */
			public getFlags(): number;
			/**
			 * Retrieve the application package name this Intent is limited to. When resolving an Intent, if non-null this limits the resolution to only components in the given application package.
			 */
			public getPackage(): string;
			/**
			 * Retrieve the concrete component associated with the intent. When receiving an intent, this is the component that was found to best handle it (that is, yourself) and will always be non-null; in all other cases it will be null unless explicitly set.
			 */
			public getComponent(): android.content.ComponentName;
			/**
			 * Get the bounds of the sender of this intent, in screen coordinates. This can be used as a hint to the receiver for animations and the like. Null means that there is no source bounds.
			 */
			public getSourceBounds(): android.graphics.Rect;
			/**
			 * Return the Activity component that should be used to handle this intent. The appropriate component is determined based on the information in the intent, evaluated as follows:
			 * @param pm The package manager with which to resolve the Intent.
			 */
			public resolveActivity(pm: android.content.pm.PackageManager): android.content.ComponentName;
			/**
			 * Resolve the Intent into an ActivityInfo describing the activity that should execute the intent. Resolution follows the same rules as described for #resolveActivity, but you get back the completely information about the resolved activity instead of just its class name.
			 * @param pm The package manager with which to resolve the Intent.
			 * @param flags Addition information to retrieve as per
			 */
			public resolveActivityInfo(pm: android.content.pm.PackageManager, flags: number): android.content.pm.ActivityInfo;
			/**
			 * Set the general action to be performed.
			 * @param action An action name, such as ACTION_VIEW. Application-specific
			 */
			public setAction(action: string): android.content.Intent;
			/**
			 * Set the data this intent is operating on. This method automatically clears any type that was previously set by #setType or #setTypeAndNormalize.
			 * @param data The Uri of the data this intent is now targeting.
			 */
			public setData(data: android.net.Uri): android.content.Intent;
			/**
			 * Normalize and set the data this intent is operating on.
			 * @param data The Uri of the data this intent is now targeting.
			 */
			public setDataAndNormalize(data: android.net.Uri): android.content.Intent;
			/**
			 * Set an explicit MIME data type.
			 * @param type The MIME type of the data being handled by this intent.
			 */
			public setType(type: string): android.content.Intent;
			/**
			 * Normalize and set an explicit MIME data type.
			 * @param type The MIME type of the data being handled by this intent.
			 */
			public setTypeAndNormalize(type: string): android.content.Intent;
			/**
			 * (Usually optional) Set the data for the intent along with an explicit MIME data type. This method should very rarely be used -- it allows you to override the MIME type that would ordinarily be inferred from the data with your own type given here.
			 * @param data The Uri of the data this intent is now targeting.
			 * @param type The MIME type of the data being handled by this intent.
			 */
			public setDataAndType(data: android.net.Uri, type: string): android.content.Intent;
			/**
			 * (Usually optional) Normalize and set both the data Uri and an explicit MIME data type. This method should very rarely be used -- it allows you to override the MIME type that would ordinarily be inferred from the data with your own type given here.
			 * @param data The Uri of the data this intent is now targeting.
			 * @param type The MIME type of the data being handled by this intent.
			 */
			public setDataAndTypeAndNormalize(data: android.net.Uri, type: string): android.content.Intent;
			/**
			 * Add a new category to the intent. Categories provide additional detail about the action the intent performs. When resolving an intent, only activities that provide <em>all</em> of the requested categories will be used.
			 * @param category The desired category. This can be either one of the
			 */
			public addCategory(category: string): android.content.Intent;
			/**
			 * Remove a category from an intent.
			 * @param category The category to remove.
			 */
			public removeCategory(category: string): void;
			/**
			 * Set a selector for this Intent. This is a modification to the kinds of things the Intent will match. If the selector is set, it will be used when trying to find entities that can handle the Intent, instead of the main contents of the Intent. This allows you build an Intent containing a generic protocol while targeting it more specifically.
			 * @param selector The desired selector Intent; set to null to not use
			 */
			public setSelector(selector: android.content.Intent): void;
			/**
			 * Set a ClipData associated with this Intent. This replaces any previously set ClipData.
			 * @param clip The new clip to set. May be null to clear the current clip.
			 */
			public setClipData(clip: android.content.ClipData): void;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The boolean data value.
			 */
			public putExtra(name: string, value: boolean): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The byte data value.
			 */
			public putExtra(name: string, value: number): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The char data value.
			 */
			public putExtra(name: string, value: string): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The Parcelable data value.
			 */
			public putExtra(name: string, value: android.os.IParcelable): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The Parcelable[] data value.
			 */
			public putExtra(name: string, value: native.Array<android.os.IParcelable>): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The ArrayList<Parcelable> data value.
			 */
			public putParcelableArrayListExtra(name: string, value: java.util.ArrayList<any>): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The ArrayList<Integer> data value.
			 */
			public putIntegerArrayListExtra(name: string, value: java.util.ArrayList<java.lang.Integer>): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The ArrayList<String> data value.
			 */
			public putStringArrayListExtra(name: string, value: java.util.ArrayList<string>): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The ArrayList<CharSequence> data value.
			 */
			public putCharSequenceArrayListExtra(name: string, value: java.util.ArrayList<string>): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The Serializable data value.
			 */
			public putExtra(name: string, value: java.io.ISerializable): android.content.Intent;
			/**
			 * Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param name The name of the extra data, with package prefix.
			 * @param value The Bundle data value.
			 */
			public putExtra(name: string, value: android.os.Bundle): android.content.Intent;
			/**
			 * Copy all extras in 'src' in to this intent.
			 * @param src Contains the extras to copy.
			 */
			public putExtras(src: android.content.Intent): android.content.Intent;
			/**
			 * Add a set of extended data to the intent. The keys must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
			 * @param extras The Bundle of extras to add to this intent.
			 */
			public putExtras(extras: android.os.Bundle): android.content.Intent;
			/**
			 * Completely replace the extras in the Intent with the extras in the given Intent.
			 * @param src The exact extras contained in this Intent are copied
			 */
			public replaceExtras(src: android.content.Intent): android.content.Intent;
			/**
			 * Completely replace the extras in the Intent with the given Bundle of extras.
			 * @param extras The new set of extras in the Intent, or null to erase
			 */
			public replaceExtras(extras: android.os.Bundle): android.content.Intent;
			/**
			 * Remove extended data from the intent.
			 */
			public removeExtra(name: string): void;
			/**
			 * Set special flags controlling how this intent is handled. Most values here depend on the type of component being executed by the Intent, specifically the FLAG_ACTIVITY_* flags are all for use with Context#startActivity Context.startActivity() and the FLAG_RECEIVER_* flags are all for use with Context#sendBroadcast(Intent) Context.sendBroadcast().
			 * @param flags The desired flags.
			 */
			public setFlags(flags: number): android.content.Intent;
			/**
			 * Add additional flags to the intent (or with existing flags value).
			 * @param flags The new flags to set.
			 */
			public addFlags(flags: number): android.content.Intent;
			/**
			 * (Usually optional) Set an explicit application package name that limits the components this Intent will resolve to. If left to the default value of null, all components in all applications will considered. If non-null, the Intent can only match the components in the given application package.
			 * @param packageName The name of the application package to handle the
			 */
			public setPackage(packageName: string): android.content.Intent;
			/**
			 * (Usually optional) Explicitly set the component to handle the intent. If left with the default value of null, the system will determine the appropriate class to use based on the other fields (action, data, type, categories) in the Intent. If this class is defined, the specified class will always be used regardless of the other fields. You should only set this value when you know you absolutely want a specific class to be used; otherwise it is better to let the system find the appropriate class so that you will respect the installed applications and user preferences.
			 * @param component The name of the application component to handle the
			 */
			public setComponent(component: android.content.ComponentName): android.content.Intent;
			/**
			 * Convenience for calling #setComponent with an explicit class name.
			 * @param packageContext A Context of the application package implementing
			 * @param className The name of a class inside of the application package
			 */
			public setClassName(packageContext: android.content.Context, className: string): android.content.Intent;
			/**
			 * Convenience for calling #setComponent with an explicit application package name and class name.
			 * @param packageName The name of the package implementing the desired
			 * @param className The name of a class inside of the application package
			 */
			public setClassName(packageName: string, className: string): android.content.Intent;
			/**
			 * Convenience for calling #setComponent(ComponentName) with the name returned by a Class object.
			 * @param packageContext A Context of the application package implementing
			 * @param cls The class name to set, equivalent to
			 */
			public setClass(packageContext: android.content.Context, cls: java.lang.Class<any>): android.content.Intent;
			/**
			 * Set the bounds of the sender of this intent, in screen coordinates. This can be used as a hint to the receiver for animations and the like. Null means that there is no source bounds.
			 */
			public setSourceBounds(r: android.graphics.Rect): void;
			/**
			 * Copy the contents of <var>other</var> in to this object, but only where fields are not defined by this object. For purposes of a field being defined, the following pieces of data in the Intent are considered to be separate fields:
			 * @param other Another Intent whose values are to be used to fill in
			 * @param flags Options to control which fields can be filled in.
			 */
			public fillIn(other: android.content.Intent, flags: number): number;
			/**
			 * Determine if two intents are the same for the purposes of intent resolution (filtering). That is, if their action, data, type, class, and categories are the same. This does <em>not</em> compare any extra data included in the intents.
			 * @param other The other Intent to compare against.
			 */
			public filterEquals(other: android.content.Intent): boolean;
			/**
			 * Generate hash code that matches semantics of filterEquals().
			 */
			public filterHashCode(): number;
			public toString(): string;
			/**
			 * Call #toUri with 0 flags. Use #toUri instead.
			 */
			public toURI(): string;
			/**
			 * Convert this Intent into a String holding a URI representation of it. The returned URI string has been properly URI encoded, so it can be used with Uri#parse Uri.parse(String). The URI contains the Intent's data as the base URI, with an additional fragment describing the action, categories, type, flags, package, component, and extras.
			 * @param flags Additional operating flags. Either 0 or
			 */
			public toUri(flags: number): string;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			public readFromParcel(input: android.os.Parcel): void;
			/**
			 * Parses the "intent" element (and its children) from XML and instantiates an Intent object. The given XML parser should be located at the tag where parsing should start (often named "intent"), from which the basic action, data, type, and package and class name will be retrieved. The function will then parse in to any child elements, looking for <category android:name="xxx"> tags to add categories and <extra android:name="xxx" android:value="yyy"> to attach extra data to the intent.
			 * @param resources The Resources to use when inflating resources.
			 * @param parser The XML parser pointing at an "intent" tag.
			 * @param attrs The AttributeSet interface for retrieving extended
			 */
			public static parseIntent(resources: android.content.res.Resources, parser: org.xmlpull.v1.IXmlPullParser, attrs: android.util.IAttributeSet): android.content.Intent;
			/**
			 * Normalize a MIME data type.
			 * @param type MIME data type to normalize
			 */
			public static normalizeMimeType(type: string): string;
		}
		export module Intent {
			/**
			 * Represents a shortcut/live folder icon resource.
			 */
			export class ShortcutIconResource extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * The package name of the application containing the icon.
				 */
				packageName: string;
				/**
				 * The resource name of the icon, including package, name and type.
				 */
				resourceName: string;
				/**
				 * Used to read a ShortcutIconResource from a Parcel.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.content.Intent.ShortcutIconResource>;
				static class: java.lang.Class<android.content.Intent.ShortcutIconResource>;
				/**
				 * Creates a new ShortcutIconResource for the specified context and resource identifier.
				 * @param context The context of the application.
				 * @param resourceId The resource idenfitier for the icon.
				 */
				public static fromContext(context: android.content.Context, resourceId: number): android.content.Intent.ShortcutIconResource;
				/**
				 * No special parcel contents.
				 */
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public toString(): string;
			}
			/**
			 * Wrapper class holding an Intent and implementing comparisons on it for the purpose of filtering. The class implements its #equals equals() and #hashCode hashCode() methods as simple calls to Intent#filterEquals(Intent) filterEquals()} and android.content.Intent#filterHashCode() filterHashCode()} on the wrapped Intent.
			 */
			export class FilterComparison extends java.lang.Object {
				constructor(intent: android.content.Intent);
				static class: java.lang.Class<android.content.Intent.FilterComparison>;
				/**
				 * Return the Intent that this FilterComparison represents.
				 */
				public getIntent(): android.content.Intent;
				public equals(obj: any): boolean;
				public hashCode(): number;
			}
		}
		export class ContentResolverTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.content.ContentResolverTest>;
			protected setUp(): void;
			public testCursorFinalizer(): void;
		}
		export class ContentProviderProxy extends java.lang.Object {
			constructor(remote: android.os.IIBinder);
			static class: java.lang.Class<android.content.ContentProviderProxy>;
			public asBinder(): android.os.IIBinder;
			public getType(url: android.net.Uri): string;
			public insert(url: android.net.Uri, values: android.content.ContentValues): android.net.Uri;
			public bulkInsert(url: android.net.Uri, values: native.Array<android.content.ContentValues>): number;
			public applyBatch(operations: java.util.ArrayList<android.content.ContentProviderOperation>): native.Array<android.content.ContentProviderResult>;
			public delete(url: android.net.Uri, selection: string, selectionArgs: native.Array<string>): number;
			public update(url: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): number;
			public openFile(url: android.net.Uri, mode: string): android.os.ParcelFileDescriptor;
			public openAssetFile(url: android.net.Uri, mode: string): android.content.res.AssetFileDescriptor;
			public call(method: string, request: string, args: android.os.Bundle): android.os.Bundle;
			public getStreamTypes(url: android.net.Uri, mimeTypeFilter: string): native.Array<string>;
			public openTypedAssetFile(url: android.net.Uri, mimeType: string, opts: android.os.Bundle): android.content.res.AssetFileDescriptor;
		}
		export class ContentTests extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.content.ContentTests>;
		}
		export class ContentProviderOperationTest {
			constructor();
			static class: java.lang.Class<android.content.ContentProviderOperationTest>;
			public testInsert(): void;
			public testInsertNoValues(): void;
			public testInsertFailed(): void;
			public testInsertWithBackRefs(): void;
			public testUpdate(): void;
			public testAssert(): void;
			public testAssertNoValues(): void;
			public testValueBackRefs(): void;
			public testSelectionBackRefs(): void;
			public testParcelingOperation(): void;
			public testParcelingResult(): void;
		}
		export module ContentProviderOperationTest {
			export class TestContentProvider extends android.content.ContentProvider {
				static class: java.lang.Class<android.content.ContentProviderOperationTest.TestContentProvider>;
				public onCreate(): boolean;
				public query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string): android.database.ICursor;
				public getType(uri: android.net.Uri): string;
				public insert(uri: android.net.Uri, values: android.content.ContentValues): android.net.Uri;
				public delete(uri: android.net.Uri, selection: string, selectionArgs: native.Array<string>): number;
				public update(uri: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): number;
				/**
				 * Implement this to handle query requests from clients with support for cancellation. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
				 * @param uri The URI to query. This will be the full URI sent by the client;
				 * @param projection The list of columns to put into the cursor. If
				 * @param selection A selection criteria to apply when filtering rows.
				 * @param selectionArgs You may include ?s in selection, which will be replaced by
				 * @param sortOrder How the rows in the cursor should be sorted.
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
			}
		}
		/**
		 * Interface for accessing and modifying preference data returned by Context#getSharedPreferences. For any particular set of preferences, there is a single instance of this class that all clients share. Modifications to the preferences must go through an Editor object to ensure the preference values remain in a consistent state and control when they are committed to storage. Objects that are returned from the various <code>get</code> methods must be treated as immutable by the application.
		 */
		interface ISharedPreferences {
			/**
			 * Retrieve all values from the preferences.
			 */
			getAll(): java.util.IMap<string, any>;
			/**
			 * Retrieve a String value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			getString(key: string, defValue: string): string;
			/**
			 * Retrieve a set of String values from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValues Values to return if this preference does not exist.
			 */
			getStringSet(key: string, defValues: java.util.ISet<string>): java.util.ISet<string>;
			/**
			 * Retrieve an int value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			getInt(key: string, defValue: number): number;
			/**
			 * Retrieve a long value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			getLong(key: string, defValue: number): any;
			/**
			 * Retrieve a float value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			getFloat(key: string, defValue: number): number;
			/**
			 * Retrieve a boolean value from the preferences. 
			 * @param key The name of the preference to retrieve.
			 * @param defValue Value to return if this preference does not exist.
			 */
			getBoolean(key: string, defValue: boolean): boolean;
			/**
			 * Checks whether the preferences contains a preference. 
			 * @param key The name of the preference to check.
			 */
			contains(key: string): boolean;
			/**
			 * Create a new Editor for these preferences, through which you can make modifications to the data in the preferences and atomically commit those changes back to the SharedPreferences object. 
			 */
			edit(): android.content.SharedPreferences.IEditor;
			/**
			 * Registers a callback to be invoked when a change happens to a preference. 
			 * @param listener The callback that will run.
			 */
			registerOnSharedPreferenceChangeListener(listener: android.content.SharedPreferences.IOnSharedPreferenceChangeListener): void;
			/**
			 * Unregisters a previous callback. 
			 * @param listener The callback that should be unregistered.
			 */
			unregisterOnSharedPreferenceChangeListener(listener: android.content.SharedPreferences.IOnSharedPreferenceChangeListener): void;
		}
		/**
		 * Extended ComponentCallbacks interface with a new callback for finer-grained memory management.
		 */
		export class ComponentCallbacks2 implements android.content.IComponentCallbacks, android.content.IComponentCallbacks2 {
			constructor(implementation: android.content.IComponentCallbacks2);
			/**
			 * Level for #onTrimMemory(int): the process is nearing the end of the background LRU list, and if more memory isn't found soon it will be killed.
			 */
			static TRIM_MEMORY_COMPLETE: number;
			/**
			 * Level for #onTrimMemory(int): the process is around the middle of the background LRU list; freeing memory can help the system keep other processes running later in the list for better overall performance.
			 */
			static TRIM_MEMORY_MODERATE: number;
			/**
			 * Level for #onTrimMemory(int): the process has gone on to the LRU list. This is a good opportunity to clean up resources that can efficiently and quickly be re-built if the user returns to the app.
			 */
			static TRIM_MEMORY_BACKGROUND: number;
			/**
			 * Level for #onTrimMemory(int): the process had been showing a user interface, and is no longer doing so. Large allocations with the UI should be released at this point to allow memory to be better managed.
			 */
			static TRIM_MEMORY_UI_HIDDEN: number;
			/**
			 * Level for #onTrimMemory(int): the process is not an expendable background process, but the device is running extremely low on memory and is about to not be able to keep any background processes running. Your running process should free up as many non-critical resources as it can to allow that memory to be used elsewhere. The next thing that will happen after this is #onLowMemory() called to report that nothing at all can be kept in the background, a situation that can start to notably impact the user.
			 */
			static TRIM_MEMORY_RUNNING_CRITICAL: number;
			/**
			 * Level for #onTrimMemory(int): the process is not an expendable background process, but the device is running low on memory. Your running process should free up unneeded resources to allow that memory to be used elsewhere.
			 */
			static TRIM_MEMORY_RUNNING_LOW: number;
			/**
			 * Level for #onTrimMemory(int): the process is not an expendable background process, but the device is running moderately low on memory. Your running process may want to release some unneeded resources for use elsewhere.
			 */
			static TRIM_MEMORY_RUNNING_MODERATE: number;
			/**
			 * Called when the operating system has determined that it is a good time for a process to trim unneeded memory from its process. This will happen for example when it goes in the background and there is not enough memory to keep as many background processes running as desired. You should never compare to exact values of the level, since new intermediate values may be added -- you will typically want to compare if the value is greater or equal to a level you are interested in.
			 * @param level The context of the trim, giving a hint of the amount of
			 */
			public onTrimMemory(level: number): void;
			/**
			 * Called by the system when the device configuration changes while your component is running. Note that, unlike activities, other components are never restarted when a configuration changes: they must always deal with the results of the change, such as by re-retrieving resources. 
			 * @param newConfig The new device configuration.
			 */
			onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * This is called when the overall system is running low on memory, and would like actively running process to try to tighten their belt. While the exact point at which this will be called is not defined, generally it will happen around the time all background process have been killed, that is before reaching the point of killing processes hosting service and foreground UI that we would like to avoid killing. 
			 */
			onLowMemory(): void;
		}
		/**
		 * A specialization of Iterator that allows iterating over a collection of Entity objects. In addition to the iteration functionality it also allows resetting the iterator back to the beginning and provides for an explicit #close() method to indicate that the iterator is no longer needed and that its resources can be released.
		 */
		interface IEntityIterator {
			/**
			 * Reset the iterator back to the beginning.
			 */
			reset(): void;
			/**
			 * Indicates that this iterator is no longer needed and that any associated resources may be released (such as a SQLite cursor).
			 */
			close(): void;
		}
		export module pm {
			/**
			 * Information you can retrieve about a particular application. This corresponds to information collected from the AndroidManifest.xml's &lt;application&gt; tag.
			 */
			export class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.ApplicationInfo);
				/**
				 * Default task affinity of all activities in this application. See ActivityInfo#taskAffinity for more information. This comes from the "taskAffinity" attribute.
				 */
				taskAffinity: string;
				/**
				 * Optional name of a permission required to be able to access this application's components. From the "permission" attribute.
				 */
				permission: string;
				/**
				 * The name of the process this application should run in. From the "process" attribute or, if not set, the same as <var>packageName</var>.
				 */
				processName: string;
				/**
				 * Class implementing the Application object. From the "class" attribute.
				 */
				className: string;
				/**
				 * A style resource identifier (in the package's resources) of the description of an application. From the "description" attribute or, if not set, 0.
				 */
				descriptionRes: number;
				/**
				 * A style resource identifier (in the package's resources) of the default visual theme of the application. From the "theme" attribute or, if not set, 0.
				 */
				theme: number;
				/**
				 * Class implementing the Application's manage space functionality. From the "manageSpaceActivity" attribute. This is an optional attribute and will be null if applications don't specify it in their manifest
				 */
				manageSpaceActivityName: string;
				/**
				 * Class implementing the Application's backup functionality. From the "backupAgent" attribute. This is an optional attribute and will be null if the application does not specify it in its manifest. 
				 */
				backupAgentName: string;
				/**
				 * The default extra UI options for activities in this application. Set from the android.R.attr#uiOptions attribute in the activity's manifest.
				 */
				uiOptions: number;
				/**
				 * Value for #flags: if set, this application is installed in the device's system image.
				 */
				static FLAG_SYSTEM: number;
				/**
				 * Value for #flags: set to true if this application would like to allow debugging of its code, even when installed on a non-development system. Comes from android.R.styleable#AndroidManifestApplication_debuggable android:debuggable of the &lt;application&gt; tag.
				 */
				static FLAG_DEBUGGABLE: number;
				/**
				 * Value for #flags: set to true if this application has code associated with it. Comes from android.R.styleable#AndroidManifestApplication_hasCode android:hasCode of the &lt;application&gt; tag.
				 */
				static FLAG_HAS_CODE: number;
				/**
				 * Value for #flags: set to true if this application is persistent. Comes from android.R.styleable#AndroidManifestApplication_persistent android:persistent of the &lt;application&gt; tag.
				 */
				static FLAG_PERSISTENT: number;
				/**
				 * Value for #flags: set to true if this application holds the android.Manifest.permission#FACTORY_TEST permission and the device is running in factory test mode.
				 */
				static FLAG_FACTORY_TEST: number;
				/**
				 * Value for #flags: default value for the corresponding ActivityInfo flag. Comes from android.R.styleable#AndroidManifestApplication_allowTaskReparenting android:allowTaskReparenting of the &lt;application&gt; tag.
				 */
				static FLAG_ALLOW_TASK_REPARENTING: number;
				/**
				 * Value for #flags: default value for the corresponding ActivityInfo flag. Comes from android.R.styleable#AndroidManifestApplication_allowClearUserData android:allowClearUserData of the &lt;application&gt; tag.
				 */
				static FLAG_ALLOW_CLEAR_USER_DATA: number;
				/**
				 * Value for #flags: this is set if this application has been install as an update to a built-in system application.
				 */
				static FLAG_UPDATED_SYSTEM_APP: number;
				/**
				 * Value for #flags: this is set of the application has specified android.R.styleable#AndroidManifestApplication_testOnly android:testOnly to be true.
				 */
				static FLAG_TEST_ONLY: number;
				/**
				 * Value for #flags: true when the application's window can be reduced in size for smaller screens. Corresponds to android.R.styleable#AndroidManifestSupportsScreens_smallScreens android:smallScreens.
				 */
				static FLAG_SUPPORTS_SMALL_SCREENS: number;
				/**
				 * Value for #flags: true when the application's window can be displayed on normal screens. Corresponds to android.R.styleable#AndroidManifestSupportsScreens_normalScreens android:normalScreens.
				 */
				static FLAG_SUPPORTS_NORMAL_SCREENS: number;
				/**
				 * Value for #flags: true when the application's window can be increased in size for larger screens. Corresponds to android.R.styleable#AndroidManifestSupportsScreens_largeScreens android:largeScreens.
				 */
				static FLAG_SUPPORTS_LARGE_SCREENS: number;
				/**
				 * Value for #flags: true when the application knows how to adjust its UI for different screen sizes. Corresponds to android.R.styleable#AndroidManifestSupportsScreens_resizeable android:resizeable.
				 */
				static FLAG_RESIZEABLE_FOR_SCREENS: number;
				/**
				 * Value for #flags: true when the application knows how to accomodate different screen densities. Corresponds to android.R.styleable#AndroidManifestSupportsScreens_anyDensity android:anyDensity.
				 */
				static FLAG_SUPPORTS_SCREEN_DENSITIES: number;
				/**
				 * Value for #flags: set to true if this application would like to request the VM to operate under the safe mode. Comes from android.R.styleable#AndroidManifestApplication_vmSafeMode android:vmSafeMode of the &lt;application&gt; tag.
				 */
				static FLAG_VM_SAFE_MODE: number;
				/**
				 * Value for #flags: set to <code>false</code> if the application does not wish to permit any OS-driven backups of its data; <code>true</code> otherwise. 
				 */
				static FLAG_ALLOW_BACKUP: number;
				/**
				 * Value for #flags: set to <code>false</code> if the application must be kept in memory following a full-system restore operation; <code>true</code> otherwise. Ordinarily, during a full system restore operation each application is shut down following execution of its agent's onRestore() method. Setting this attribute to <code>false</code> prevents this. Most applications will not need to set this attribute.
				 */
				static FLAG_KILL_AFTER_RESTORE: number;
				/**
				 * Value for #flags: Set to <code>true</code> if the application's backup agent claims to be able to handle restore data even "from the future," i.e. from versions of the application with a versionCode greater than the one currently installed on the device. <i>Use with caution!</i> By default this attribute is <code>false</code> and the Backup Manager will ensure that data from "future" versions of the application are never supplied during a restore operation.
				 */
				static FLAG_RESTORE_ANY_VERSION: number;
				/**
				 * Value for #flags: Set to true if the application is currently installed on external/removable/unprotected storage. Such applications may not be available if their storage is not currently mounted. When the storage it is on is not available, it will look like the application has been uninstalled (its .apk is no longer available) but its persistent data is not removed.
				 */
				static FLAG_EXTERNAL_STORAGE: number;
				/**
				 * Value for #flags: true when the application's window can be increased in size for extra large screens. Corresponds to android.R.styleable#AndroidManifestSupportsScreens_xlargeScreens android:xlargeScreens.
				 */
				static FLAG_SUPPORTS_XLARGE_SCREENS: number;
				/**
				 * Value for #flags: true when the application has requested a large heap for its processes. Corresponds to android.R.styleable#AndroidManifestApplication_largeHeap android:largeHeap.
				 */
				static FLAG_LARGE_HEAP: number;
				/**
				 * Value for #flags: true if this application's package is in the stopped state.
				 */
				static FLAG_STOPPED: number;
				/**
				 * Value for #flags: true when the application is willing to support RTL (right to left). All activities will inherit this value.
				 */
				static FLAG_SUPPORTS_RTL: number;
				/**
				 * Value for #flags: true if the application is currently installed for the calling user.
				 */
				static FLAG_INSTALLED: number;
				/**
				 * Value for #flags: true if the application only has its data installed; the application package itself does not currently exist on the device.
				 */
				static FLAG_IS_DATA_ONLY: number;
				/**
				 * Flags associated with the application. Any combination of #FLAG_SYSTEM, #FLAG_DEBUGGABLE, #FLAG_HAS_CODE, #FLAG_PERSISTENT, #FLAG_FACTORY_TEST, and #FLAG_ALLOW_TASK_REPARENTING #FLAG_ALLOW_CLEAR_USER_DATA, #FLAG_UPDATED_SYSTEM_APP, #FLAG_TEST_ONLY, #FLAG_SUPPORTS_SMALL_SCREENS, #FLAG_SUPPORTS_NORMAL_SCREENS, #FLAG_SUPPORTS_LARGE_SCREENS, #FLAG_SUPPORTS_XLARGE_SCREENS, #FLAG_RESIZEABLE_FOR_SCREENS, #FLAG_SUPPORTS_SCREEN_DENSITIES, #FLAG_VM_SAFE_MODE, #FLAG_INSTALLED.
				 */
				flags: number;
				/**
				 * The required smallest screen width the application can run on. If 0, nothing has been specified. Comes from android.R.styleable#AndroidManifestSupportsScreens_requiresSmallestWidthDp android:requiresSmallestWidthDp attribute of the &lt;supports-screens&gt; tag.
				 */
				requiresSmallestWidthDp: number;
				/**
				 * The maximum smallest screen width the application is designed for. If 0, nothing has been specified. Comes from android.R.styleable#AndroidManifestSupportsScreens_compatibleWidthLimitDp android:compatibleWidthLimitDp attribute of the &lt;supports-screens&gt; tag.
				 */
				compatibleWidthLimitDp: number;
				/**
				 * The maximum smallest screen width the application will work on. If 0, nothing has been specified. Comes from android.R.styleable#AndroidManifestSupportsScreens_largestWidthLimitDp android:largestWidthLimitDp attribute of the &lt;supports-screens&gt; tag.
				 */
				largestWidthLimitDp: number;
				/**
				 * Full path to the location of this package.
				 */
				sourceDir: string;
				/**
				 * Full path to the location of the publicly available parts of this package (i.e. the primary resource package and manifest). For non-forward-locked apps this will be the same as { #sourceDir).
				 */
				publicSourceDir: string;
				/**
				 * Paths to all shared libraries this application is linked against. This field is only set if the PackageManager#GET_SHARED_LIBRARY_FILES PackageManager.GET_SHARED_LIBRARY_FILES flag was used when retrieving the structure.
				 */
				sharedLibraryFiles: native.Array<string>;
				/**
				 * Full path to a directory assigned to the package for its persistent data.
				 */
				dataDir: string;
				/**
				 * Full path to the directory where native JNI libraries are stored.
				 */
				nativeLibraryDir: string;
				/**
				 * The kernel user-ID that has been assigned to this application; currently this is not a unique ID (multiple applications can have the same uid).
				 */
				uid: number;
				/**
				 * The minimum SDK version this application targets. It may run on earlier versions, but it knows how to work with any new behavior added at this version. Will be android.os.Build.VERSION_CODES#CUR_DEVELOPMENT if this is a development build and the app is targeting that. You should compare that this number is >= the SDK version number at which your behavior was introduced.
				 */
				targetSdkVersion: number;
				/**
				 * When false, indicates that all components within this application are considered disabled, regardless of their individually set enabled status.
				 */
				enabled: boolean;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.ApplicationInfo>;
				static class: java.lang.Class<android.content.pm.ApplicationInfo>;
				public dump(pw: android.util.IPrinter, prefix: string): void;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
				/**
				 * Retrieve the textual description of the application. This will call back on the given PackageManager to load the description from the application.
				 * @param pm A PackageManager from which the label can be loaded; usually
				 */
				public loadDescription(pm: android.content.pm.PackageManager): string;
			}
			export module ApplicationInfo {
				export class DisplayNameComparator extends java.lang.Object {
					constructor(pm: android.content.pm.PackageManager);
					static class: java.lang.Class<android.content.pm.ApplicationInfo.DisplayNameComparator>;
					public compare(aa: android.content.pm.ApplicationInfo, ab: android.content.pm.ApplicationInfo): number;
				}
			}
			/**
			 * A single feature that can be requested by an application. This corresponds to information collected from the AndroidManifest.xml's &lt;uses-feature&gt; tag.
			 */
			export class FeatureInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.FeatureInfo);
				/**
				 * The name of this feature, for example "android.hardware.camera". If this is null, then this is an OpenGL ES version feature as described in #reqGlEsVersion.
				 */
				name: string;
				/**
				 * Default value for #reqGlEsVersion;
				 */
				static GL_ES_VERSION_UNDEFINED: number;
				/**
				 * The GLES version used by an application. The upper order 16 bits represent the major version and the lower order 16 bits the minor version. Only valid if #name is null.
				 */
				reqGlEsVersion: number;
				/**
				 * Set on #flags if this feature has been required by the application.
				 */
				static FLAG_REQUIRED: number;
				/**
				 * Additional flags. May be zero or more of #FLAG_REQUIRED.
				 */
				flags: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.FeatureInfo>;
				static class: java.lang.Class<android.content.pm.FeatureInfo>;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
				/**
				 * This method extracts the major and minor version of reqGLEsVersion attribute and returns it as a string. Say reqGlEsVersion value of 0x00010002 is returned as 1.2
				 */
				public getGlEsVersion(): string;
			}
			export class PackageHelperTests extends android.test.AndroidTestCase {
				constructor();
				static TAG: string;
				static class: java.lang.Class<android.content.pm.PackageHelperTests>;
				failStr(errMsg: string): void;
				failStr(e: java.lang.Exception): void;
				protected setUp(): void;
				protected tearDown(): void;
				public testMountAndPullSdCard(): void;
				public getMountRunnable(): java.lang.IRunnable;
				public getDestroyRunnable(): java.lang.IRunnable;
			}
			export class AppCacheTest extends android.test.AndroidTestCase {
				constructor();
				static TAG: string;
				MAX_WAIT_TIME: number;
				WAIT_TIME_INCR: number;
				static class: java.lang.Class<android.content.pm.AppCacheTest>;
				protected setUp(): void;
				cleanUpDirectory(pDir: java.io.File, dirName: string): void;
				cleanUpCacheDirectory(): void;
				public testDeleteAllCacheFiles(): void;
				failStr(errMsg: string): void;
				failStr(e: java.lang.Exception): void;
				getFreeStorageBlks(st: android.os.StatFs): any;
				getFreeStorageSize(st: android.os.StatFs): any;
				public testFreeApplicationCacheAllFiles(): void;
				public testFreeApplicationCacheSomeFiles(): void;
				/**
				 * This method opens an output file writes to it, opens the same file as an input stream, reads the contents and verifies the data that was written earlier can be read
				 */
				public openOutFileInAppFilesDir(pFile: java.io.File, pFileOut: string): void;
				public testAppFilesCreateFile(): void;
				public testAppCacheCreateFile(): void;
				public testAppCreateCacheFiles(): void;
				getBuffer(): native.Array<number>;
				getFileNumBlocks(fileSize: number, blkSize: number): any;
				public testAppCacheClear(): void;
				createTestFiles1(cacheDir: java.io.File, testFilePrefix: string, numTestFiles: number): void;
				verifyTestFiles1(cacheDir: java.io.File, testFilePrefix: string, numTestFiles: number): void;
				createTestFiles2(cacheDir: java.io.File, rootTestDirName: string, subDirPrefix: string, numDirs: number, testFilePrefix: string): void;
				invokePMDeleteAppCacheFiles(): boolean;
				invokePMFreeApplicationCache(idealStorageSize: number): boolean;
				invokePMFreeStorage(idealStorageSize: number, r: android.content.pm.AppCacheTest.FreeStorageReceiver, pi: android.app.PendingIntent): boolean;
				public testDeleteAppCacheFiles(): void;
				public invokePMGetPackageSizeInfo(): android.content.pm.PackageStats;
				public testGetPackageSizeInfo(): void;
				public testGetSystemSharedLibraryNames(): void;
				public testFreeStorage(): void;
				invokePMClearApplicationUserData(): boolean;
				verifyUserDataCleared(pDir: java.io.File): void;
				getDataDir(): java.io.File;
				public testClearApplicationUserDataWithTestData(): void;
				public testClearApplicationUserDataWithNoTestData(): void;
				public testClearApplicationUserDataNoObserver(): void;
			}
			export module AppCacheTest {
				export class FreeStorageReceiver extends android.content.BroadcastReceiver {
					static ACTION_FREE: string;
					static class: java.lang.Class<android.content.pm.AppCacheTest.FreeStorageReceiver>;
					public isDone(): boolean;
					public onReceive(context: android.content.Context, intent: android.content.Intent): void;
				}
				export class PackageDataObserver {
					retValue: boolean;
					static class: java.lang.Class<android.content.pm.AppCacheTest.PackageDataObserver>;
					public onRemoveCompleted(packageName: string, succeeded: boolean): void;
					public isDone(): boolean;
				}
				export class PackageStatsObserver {
					retValue: boolean;
					stats: android.content.pm.PackageStats;
					static class: java.lang.Class<android.content.pm.AppCacheTest.PackageStatsObserver>;
					public onGetStatsCompleted(pStats: android.content.pm.PackageStats, succeeded: boolean): void;
					public isDone(): boolean;
				}
			}
			/**
			 * Information you can retrieve about a particular application service. This corresponds to information collected from the AndroidManifest.xml's &lt;service&gt; tags.
			 */
			export class ServiceInfo extends android.content.pm.ComponentInfo implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.ServiceInfo);
				/**
				 * Optional name of a permission required to be able to access this Service. From the "permission" attribute.
				 */
				permission: string;
				/**
				 * Bit in #flags: If set, the service will automatically be stopped by the system if the user removes a task that is rooted in one of the application's activities. Set from the android.R.attr#stopWithTask attribute.
				 */
				static FLAG_STOP_WITH_TASK: number;
				/**
				 * Bit in #flags: If set, the service will run in its own isolated process. Set from the android.R.attr#isolatedProcess attribute.
				 */
				static FLAG_ISOLATED_PROCESS: number;
				/**
				 * Bit in #flags: If set, a single instance of the service will run for all users on the device. Set from the android.R.attr#singleUser attribute.
				 */
				static FLAG_SINGLE_USER: number;
				/**
				 * Options that have been set in the service declaration in the manifest. These include: #FLAG_STOP_WITH_TASK, #FLAG_ISOLATED_PROCESS, #FLAG_SINGLE_USER.
				 */
				flags: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.ServiceInfo>;
				static class: java.lang.Class<android.content.pm.ServiceInfo>;
				public dump(pw: android.util.IPrinter, prefix: string): void;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * Information that is returned from resolving an intent against an IntentFilter. This partially corresponds to information collected from the AndroidManifest.xml's &lt;intent&gt; tags.
			 */
			export class ResolveInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.ResolveInfo);
				/**
				 * The activity or broadcast receiver that corresponds to this resolution match, if this resolution is for an activity or broadcast receiver. One and only one of this and serviceInfo must be non-null.
				 */
				activityInfo: android.content.pm.ActivityInfo;
				/**
				 * The service that corresponds to this resolution match, if this resolution is for a service. One and only one of this and activityInfo must be non-null.
				 */
				serviceInfo: android.content.pm.ServiceInfo;
				/**
				 * The IntentFilter that was matched for this ResolveInfo.
				 */
				filter: android.content.IntentFilter;
				/**
				 * The declared priority of this match. Comes from the "priority" attribute or, if not set, defaults to 0. Higher values are a higher priority.
				 */
				priority: number;
				/**
				 * Order of result according to the user's preference. If the user has not set a preference for this result, the value is 0; higher values are a higher priority.
				 */
				preferredOrder: number;
				/**
				 * The system's evaluation of how well the activity matches the IntentFilter. This is a match constant, a combination of IntentFilter#MATCH_CATEGORY_MASK IntentFilter.MATCH_CATEGORY_MASK and IntentFilter#MATCH_ADJUSTMENT_MASK IntentFiler.MATCH_ADJUSTMENT_MASK.
				 */
				match: number;
				/**
				 * Only set when returned by PackageManager#queryIntentActivityOptions, this tells you which of the given specific intents this result came from. 0 is the first in the list, < 0 means it came from the generic Intent query.
				 */
				specificIndex: number;
				/**
				 * This filter has specified the Intent.CATEGORY_DEFAULT, meaning it would like to be considered a default action that the user can perform on this data.
				 */
				isDefault: boolean;
				/**
				 * A string resource identifier (in the package's resources) of this match's label. From the "label" attribute or, if not set, 0.
				 */
				labelRes: number;
				/**
				 * The actual string retrieve from <var>labelRes</var> or null if none was provided.
				 */
				nonLocalizedLabel: string;
				/**
				 * A drawable resource identifier (in the package's resources) of this match's icon. From the "icon" attribute or, if not set, 0.
				 */
				icon: number;
				/**
				 * Optional -- if non-null, the #labelRes and #icon resources will be loaded from this package, rather than the one containing the resolved component.
				 */
				resolvePackageName: string;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.ResolveInfo>;
				static class: java.lang.Class<android.content.pm.ResolveInfo>;
				/**
				 * Retrieve the current textual label associated with this resolution. This will call back on the given PackageManager to load the label from the application. 
				 * @param pm A PackageManager from which the label can be loaded; usually
				 */
				public loadLabel(pm: android.content.pm.PackageManager): string;
				/**
				 * Retrieve the current graphical icon associated with this resolution. This will call back on the given PackageManager to load the icon from the application. 
				 * @param pm A PackageManager from which the icon can be loaded; usually
				 */
				public loadIcon(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
				/**
				 * Return the icon resource identifier to use for this match. If the match defines an icon, that is used; else if the activity defines an icon, that is used; else, the application icon is used. 
				 */
				public getIconResource(): number;
				public dump(pw: android.util.IPrinter, prefix: string): void;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			export module ResolveInfo {
				export class DisplayNameComparator extends java.lang.Object {
					constructor(pm: android.content.pm.PackageManager);
					static class: java.lang.Class<android.content.pm.ResolveInfo.DisplayNameComparator>;
					public compare(a: android.content.pm.ResolveInfo, b: android.content.pm.ResolveInfo): number;
				}
			}
			export class MacAuthenticatedInputStreamTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.content.pm.MacAuthenticatedInputStreamTest>;
				protected setUp(): void;
				public testString1Authenticate_Success(): void;
				public testString1Authenticate_WrongTag_Failure(): void;
				public testString1Authenticate_NullTag_Failure(): void;
				public testString1Authenticate_ReadSingleByte_Success(): void;
			}
			/**
			 * Holds information about a specific android.content.ContentProvider content provider. This is returned by android.content.pm.PackageManager#resolveContentProvider(java.lang.String, int) PackageManager.resolveContentProvider().
			 */
			export class ProviderInfo extends android.content.pm.ComponentInfo implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.ProviderInfo);
				/**
				 * The name provider is published under content://
				 */
				authority: string;
				/**
				 * Optional permission required for read-only access this content provider.
				 */
				readPermission: string;
				/**
				 * Optional permission required for read/write access this content provider.
				 */
				writePermission: string;
				/**
				 * If true, additional permissions to specific Uris in this content provider can be granted, as per the android.R.styleable#AndroidManifestProvider_grantUriPermissions grantUriPermissions attribute.
				 */
				grantUriPermissions: boolean;
				/**
				 * If non-null, these are the patterns that are allowed for granting URI permissions. Any URI that does not match one of these patterns will not allowed to be granted. If null, all URIs are allowed. The PackageManager#GET_URI_PERMISSION_PATTERNS PackageManager.GET_URI_PERMISSION_PATTERNS flag must be specified for this field to be filled in.
				 */
				uriPermissionPatterns: native.Array<android.os.PatternMatcher>;
				/**
				 * If non-null, these are path-specific permissions that are allowed for accessing the provider. Any permissions listed here will allow a holding client to access the provider, and the provider will check the URI it provides when making calls against the patterns here.
				 */
				pathPermissions: native.Array<android.content.pm.PathPermission>;
				/**
				 * If true, this content provider allows multiple instances of itself to run in different process. If false, a single instances is always run in #processName.
				 */
				multiprocess: boolean;
				/**
				 * Used to control initialization order of single-process providers running in the same process. Higher goes first.
				 */
				initOrder: number;
				/**
				 * Bit in #flags: If set, a single instance of the provider will run for all users on the device. Set from the android.R.attr#singleUser attribute.
				 */
				static FLAG_SINGLE_USER: number;
				/**
				 * Options that have been set in the provider declaration in the manifest. These include: #FLAG_SINGLE_USER.
				 */
				flags: number;
				/**
				 * Whether or not this provider is syncable. This flag is now being ignored. The current way to make a provider syncable is to provide a SyncAdapter service for a given provider/account type.
				 */
				isSyncable: boolean;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.ProviderInfo>;
				static class: java.lang.Class<android.content.pm.ProviderInfo>;
				public describeContents(): number;
				public writeToParcel(out: android.os.Parcel, parcelableFlags: number): void;
				public toString(): string;
			}
			export class ManifestDigestTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.content.pm.ManifestDigestTest>;
				public testManifestDigest_FromAttributes_Null(): void;
				public testManifestDigest_FromAttributes_NoAttributes(): void;
				public testManifestDigest_FromAttributes_SHA1PreferredOverMD5(): void;
				public testManifestDigest_Parcel(): void;
			}
			/**
			 * Class for retrieving various kinds of information related to the application packages that are currently installed on the device.
			 */
			export class PackageManager extends java.lang.Object {
				constructor();
				/**
				 * PackageInfo flag: return information about activities in the package in PackageInfo#activities.
				 */
				static GET_ACTIVITIES: number;
				/**
				 * PackageInfo flag: return information about intent receivers in the package in PackageInfo#receivers.
				 */
				static GET_RECEIVERS: number;
				/**
				 * PackageInfo flag: return information about services in the package in PackageInfo#services.
				 */
				static GET_SERVICES: number;
				/**
				 * PackageInfo flag: return information about content providers in the package in PackageInfo#providers.
				 */
				static GET_PROVIDERS: number;
				/**
				 * PackageInfo flag: return information about instrumentation in the package in PackageInfo#instrumentation.
				 */
				static GET_INSTRUMENTATION: number;
				/**
				 * PackageInfo flag: return information about the intent filters supported by the activity.
				 */
				static GET_INTENT_FILTERS: number;
				/**
				 * PackageInfo flag: return information about the signatures included in the package.
				 */
				static GET_SIGNATURES: number;
				/**
				 * ResolveInfo flag: return the IntentFilter that was matched for a particular ResolveInfo in ResolveInfo#filter.
				 */
				static GET_RESOLVED_FILTER: number;
				/**
				 * ComponentInfo flag: return the ComponentInfo#metaData data android.os.Bundles that are associated with a component. This applies for any API returning a ComponentInfo subclass.
				 */
				static GET_META_DATA: number;
				/**
				 * PackageInfo flag: return the PackageInfo#gids group ids that are associated with an application. This applies for any API returning a PackageInfo class, either directly or nested inside of another.
				 */
				static GET_GIDS: number;
				/**
				 * PackageInfo flag: include disabled components in the returned info.
				 */
				static GET_DISABLED_COMPONENTS: number;
				/**
				 * ApplicationInfo flag: return the ApplicationInfo#sharedLibraryFiles paths to the shared libraries that are associated with an application. This applies for any API returning an ApplicationInfo class, either directly or nested inside of another.
				 */
				static GET_SHARED_LIBRARY_FILES: number;
				/**
				 * ProviderInfo flag: return the ProviderInfo#uriPermissionPatterns URI permission patterns that are associated with a content provider. This applies for any API returning a ProviderInfo class, either directly or nested inside of another.
				 */
				static GET_URI_PERMISSION_PATTERNS: number;
				/**
				 * PackageInfo flag: return information about permissions in the package in PackageInfo#permissions.
				 */
				static GET_PERMISSIONS: number;
				/**
				 * Flag parameter to retrieve some information about all applications (even uninstalled ones) which have data directories. This state could have resulted if applications have been deleted with flag DONT_DELETE_DATA with a possibility of being replaced or reinstalled in future.
				 */
				static GET_UNINSTALLED_PACKAGES: number;
				/**
				 * PackageInfo flag: return information about hardware preferences in PackageInfo#configPreferences PackageInfo.configPreferences and requested features in PackageInfo#reqFeatures PackageInfo.reqFeatures.
				 */
				static GET_CONFIGURATIONS: number;
				/**
				 * Resolution and querying flag: if set, only filters that support the android.content.Intent#CATEGORY_DEFAULT will be considered for matching. This is a synonym for including the CATEGORY_DEFAULT in your supplied Intent.
				 */
				static MATCH_DEFAULT_ONLY: number;
				/**
				 * Permission check result: this is returned by #checkPermission if the permission has been granted to the given package.
				 */
				static PERMISSION_GRANTED: number;
				/**
				 * Permission check result: this is returned by #checkPermission if the permission has not been granted to the given package.
				 */
				static PERMISSION_DENIED: number;
				/**
				 * Signature check result: this is returned by #checkSignatures if all signatures on the two packages match.
				 */
				static SIGNATURE_MATCH: number;
				/**
				 * Signature check result: this is returned by #checkSignatures if neither of the two packages is signed.
				 */
				static SIGNATURE_NEITHER_SIGNED: number;
				/**
				 * Signature check result: this is returned by #checkSignatures if the first package is not signed but the second is.
				 */
				static SIGNATURE_FIRST_NOT_SIGNED: number;
				/**
				 * Signature check result: this is returned by #checkSignatures if the second package is not signed but the first is.
				 */
				static SIGNATURE_SECOND_NOT_SIGNED: number;
				/**
				 * Signature check result: this is returned by #checkSignatures if not all signatures on both packages match.
				 */
				static SIGNATURE_NO_MATCH: number;
				/**
				 * Signature check result: this is returned by #checkSignatures if either of the packages are not valid.
				 */
				static SIGNATURE_UNKNOWN_PACKAGE: number;
				/**
				 * Flag for #setApplicationEnabledSetting(String, int, int) and #setComponentEnabledSetting(ComponentName, int, int): This component or application is in its default enabled state (as specified in its manifest).
				 */
				static COMPONENT_ENABLED_STATE_DEFAULT: number;
				/**
				 * Flag for #setApplicationEnabledSetting(String, int, int) and #setComponentEnabledSetting(ComponentName, int, int): This component or application has been explictily enabled, regardless of what it has specified in its manifest.
				 */
				static COMPONENT_ENABLED_STATE_ENABLED: number;
				/**
				 * Flag for #setApplicationEnabledSetting(String, int, int) and #setComponentEnabledSetting(ComponentName, int, int): This component or application has been explicitly disabled, regardless of what it has specified in its manifest.
				 */
				static COMPONENT_ENABLED_STATE_DISABLED: number;
				/**
				 * Flag for #setApplicationEnabledSetting(String, int, int) only: The user has explicitly disabled the application, regardless of what it has specified in its manifest. Because this is due to the user's request, they may re-enable it if desired through the appropriate system UI. This option currently <strong>can not</strong> be used with #setComponentEnabledSetting(ComponentName, int, int).
				 */
				static COMPONENT_ENABLED_STATE_DISABLED_USER: number;
				/**
				 * Flag parameter for #setComponentEnabledSetting(android.content.ComponentName, int, int) to indicate that you don't want to kill the app containing the component. Be careful when you set this since changing component states can make the containing application's behavior unpredictable.
				 */
				static DONT_KILL_APP: number;
				/**
				 * Used as the verificationCode argument for PackageManager#verifyPendingInstall to indicate that the calling package verifier allows the installation to proceed.
				 */
				static VERIFICATION_ALLOW: number;
				/**
				 * Used as the verificationCode argument for PackageManager#verifyPendingInstall to indicate the calling package verifier does not vote to allow the installation to proceed.
				 */
				static VERIFICATION_REJECT: number;
				/**
				 * Can be used as the millisecondsToDelay argument for PackageManager#extendVerificationTimeout. This is the maximum time PackageManager waits for the verification agent to return (in milliseconds).
				 */
				static MAXIMUM_VERIFICATION_TIMEOUT: number;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device's audio pipeline is low-latency, more suitable for audio applications sensitive to delays or lag in sound input or output.
				 */
				static FEATURE_AUDIO_LOW_LATENCY: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device is capable of communicating with other devices via Bluetooth.
				 */
				static FEATURE_BLUETOOTH: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device has a camera facing away from the screen.
				 */
				static FEATURE_CAMERA: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device's camera supports auto-focus.
				 */
				static FEATURE_CAMERA_AUTOFOCUS: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device has at least one camera pointing in some direction.
				 */
				static FEATURE_CAMERA_ANY: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device's camera supports flash.
				 */
				static FEATURE_CAMERA_FLASH: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device has a front facing camera.
				 */
				static FEATURE_CAMERA_FRONT: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports one or more methods of reporting current location.
				 */
				static FEATURE_LOCATION: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device has a Global Positioning System receiver and can report precise location.
				 */
				static FEATURE_LOCATION_GPS: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device can report location with coarse accuracy using a network-based geolocation system.
				 */
				static FEATURE_LOCATION_NETWORK: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device can record audio via a microphone.
				 */
				static FEATURE_MICROPHONE: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device can communicate using Near-Field Communications (NFC).
				 */
				static FEATURE_NFC: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device includes an accelerometer.
				 */
				static FEATURE_SENSOR_ACCELEROMETER: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device includes a barometer (air pressure sensor.)
				 */
				static FEATURE_SENSOR_BAROMETER: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device includes a magnetometer (compass).
				 */
				static FEATURE_SENSOR_COMPASS: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device includes a gyroscope.
				 */
				static FEATURE_SENSOR_GYROSCOPE: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device includes a light sensor.
				 */
				static FEATURE_SENSOR_LIGHT: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device includes a proximity sensor.
				 */
				static FEATURE_SENSOR_PROXIMITY: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device has a telephony radio with data communication support.
				 */
				static FEATURE_TELEPHONY: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device has a CDMA telephony stack.
				 */
				static FEATURE_TELEPHONY_CDMA: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device has a GSM telephony stack.
				 */
				static FEATURE_TELEPHONY_GSM: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports connecting to USB devices as the USB host.
				 */
				static FEATURE_USB_HOST: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports connecting to USB accessories.
				 */
				static FEATURE_USB_ACCESSORY: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The SIP API is enabled on the device.
				 */
				static FEATURE_SIP: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports SIP-based VOIP.
				 */
				static FEATURE_SIP_VOIP: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device's display has a touch screen.
				 */
				static FEATURE_TOUCHSCREEN: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device's touch screen supports multitouch sufficient for basic two-finger gesture detection.
				 */
				static FEATURE_TOUCHSCREEN_MULTITOUCH: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device's touch screen is capable of tracking two or more fingers fully independently.
				 */
				static FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device's touch screen is capable of tracking a full hand of fingers fully independently -- that is, 5 or more simultaneous independent pointers.
				 */
				static FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device does not have a touch screen, but does support touch emulation for basic events. For instance, the device might use a mouse or remote control to drive a cursor, and emulate basic touch pointer events like down, up, drag, etc. All devices that support android.hardware.touchscreen or a sub-feature are presumed to also support faketouch.
				 */
				static FEATURE_FAKETOUCH: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device does not have a touch screen, but does support touch emulation for basic events that supports distinct tracking of two or more fingers. This is an extension of #FEATURE_FAKETOUCH for input devices with this capability. Note that unlike a distinct multitouch screen as defined by #FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT, these kinds of input devices will not actually provide full two-finger gestures since the input is being transformed to cursor movement on the screen. That is, single finger gestures will move a cursor; two-finger swipes will result in single-finger touch events; other two-finger gestures will result in the corresponding two-finger touch event.
				 */
				static FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device does not have a touch screen, but does support touch emulation for basic events that supports tracking a hand of fingers (5 or more fingers) fully independently. This is an extension of #FEATURE_FAKETOUCH for input devices with this capability. Note that unlike a multitouch screen as defined by #FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND, not all two finger gestures can be detected due to the limitations described for #FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT.
				 */
				static FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports portrait orientation screens. For backwards compatibility, you can assume that if neither this nor #FEATURE_SCREEN_LANDSCAPE is set then the device supports both portrait and landscape.
				 */
				static FEATURE_SCREEN_PORTRAIT: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports landscape orientation screens. For backwards compatibility, you can assume that if neither this nor #FEATURE_SCREEN_PORTRAIT is set then the device supports both portrait and landscape.
				 */
				static FEATURE_SCREEN_LANDSCAPE: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports live wallpapers.
				 */
				static FEATURE_LIVE_WALLPAPER: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports WiFi (802.11) networking.
				 */
				static FEATURE_WIFI: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: The device supports Wi-Fi Direct networking.
				 */
				static FEATURE_WIFI_DIRECT: string;
				/**
				 * Feature for #getSystemAvailableFeatures and #hasSystemFeature: This is a device dedicated to showing UI on a television. Television here is defined to be a typical living room television experience: displayed on a big screen, where the user is sitting far away from it, and the dominant form of input will be something like a DPAD, not through touch or mouse.
				 */
				static FEATURE_TELEVISION: string;
				/**
				 * Extra field name for the ID of a package pending verification. Passed to a package verifier and is used to call back to PackageManager#verifyPendingInstall(int, int)
				 */
				static EXTRA_VERIFICATION_ID: string;
				/**
				 * Extra field name for the result of a verification, either #VERIFICATION_ALLOW, or #VERIFICATION_REJECT. Passed to package verifiers after a package is verified.
				 */
				static EXTRA_VERIFICATION_RESULT: string;
				static class: java.lang.Class<android.content.pm.PackageManager>;
				/**
				 * Retrieve overall information about an application package that is installed on the system.
				 * @param packageName The full name (i.e. com.google.apps.contacts) of the
				 * @param flags Additional option flags. Use any combination of
				 */
				public getPackageInfo(packageName: string, flags: number): android.content.pm.PackageInfo;
				/**
				 * Map from the current package names in use on the device to whatever the current canonical name of that package is.
				 * @param names Array of current names to be mapped.
				 */
				public currentToCanonicalPackageNames(names: native.Array<string>): native.Array<string>;
				/**
				 * Map from a packages canonical name to the current name in use on the device.
				 * @param names Array of new names to be mapped.
				 */
				public canonicalToCurrentPackageNames(names: native.Array<string>): native.Array<string>;
				/**
				 * Return a "good" intent to launch a front-door activity in a package, for use for example to implement an "open" button when browsing through packages. The current implementation will look first for a main activity in the category Intent#CATEGORY_INFO, next for a main activity in the category Intent#CATEGORY_LAUNCHER, or return null if neither are found.
				 * @param packageName The name of the package to inspect.
				 */
				public getLaunchIntentForPackage(packageName: string): android.content.Intent;
				/**
				 * Return an array of all of the secondary group-ids that have been assigned to a package.
				 * @param packageName The full name (i.e. com.google.apps.contacts) of the
				 */
				public getPackageGids(packageName: string): native.Array<number>;
				/**
				 * Retrieve all of the information we know about a particular permission.
				 * @param name The fully qualified name (i.e. com.google.permission.LOGIN)
				 * @param flags Additional option flags. Use {@link #GET_META_DATA} to
				 */
				public getPermissionInfo(name: string, flags: number): android.content.pm.PermissionInfo;
				/**
				 * Query for all of the permissions associated with a particular group.
				 * @param group The fully qualified name (i.e. com.google.permission.LOGIN)
				 * @param flags Additional option flags. Use {@link #GET_META_DATA} to
				 */
				public queryPermissionsByGroup(group: string, flags: number): java.util.IList<android.content.pm.PermissionInfo>;
				/**
				 * Retrieve all of the information we know about a particular group of permissions.
				 * @param name The fully qualified name (i.e. com.google.permission_group.APPS)
				 * @param flags Additional option flags. Use {@link #GET_META_DATA} to
				 */
				public getPermissionGroupInfo(name: string, flags: number): android.content.pm.PermissionGroupInfo;
				/**
				 * Retrieve all of the known permission groups in the system.
				 * @param flags Additional option flags. Use {@link #GET_META_DATA} to
				 */
				public getAllPermissionGroups(flags: number): java.util.IList<android.content.pm.PermissionGroupInfo>;
				/**
				 * Retrieve all of the information we know about a particular package/application.
				 * @param packageName The full name (i.e. com.google.apps.contacts) of an
				 * @param flags Additional option flags. Use any combination of
				 */
				public getApplicationInfo(packageName: string, flags: number): android.content.pm.ApplicationInfo;
				/**
				 * Retrieve all of the information we know about a particular activity class.
				 * @param component The full component name (i.e.
				 * @param flags Additional option flags. Use any combination of
				 */
				public getActivityInfo(component: android.content.ComponentName, flags: number): android.content.pm.ActivityInfo;
				/**
				 * Retrieve all of the information we know about a particular receiver class.
				 * @param component The full component name (i.e.
				 * @param flags Additional option flags. Use any combination of
				 */
				public getReceiverInfo(component: android.content.ComponentName, flags: number): android.content.pm.ActivityInfo;
				/**
				 * Retrieve all of the information we know about a particular service class.
				 * @param component The full component name (i.e.
				 * @param flags Additional option flags. Use any combination of
				 */
				public getServiceInfo(component: android.content.ComponentName, flags: number): android.content.pm.ServiceInfo;
				/**
				 * Retrieve all of the information we know about a particular content provider class.
				 * @param component The full component name (i.e.
				 * @param flags Additional option flags. Use any combination of
				 */
				public getProviderInfo(component: android.content.ComponentName, flags: number): android.content.pm.ProviderInfo;
				/**
				 * Return a List of all packages that are installed on the device.
				 * @param flags Additional option flags. Use any combination of
				 */
				public getInstalledPackages(flags: number): java.util.IList<android.content.pm.PackageInfo>;
				/**
				 * Check whether a particular package has been granted a particular permission.
				 * @param permName The name of the permission you are checking for,
				 * @param pkgName The name of the package you are checking against.
				 */
				public checkPermission(permName: string, pkgName: string): number;
				/**
				 * Add a new dynamic permission to the system. For this to work, your package must have defined a permission tree through the android.R.styleable#AndroidManifestPermissionTree &lt;permission-tree&gt; tag in its manifest. A package can only add permissions to trees that were defined by either its own package or another with the same user id; a permission is in a tree if it matches the name of the permission tree + ".": for example, "com.foo.bar" is a member of the permission tree "com.foo".
				 * @param info Description of the permission to be added.
				 */
				public addPermission(info: android.content.pm.PermissionInfo): boolean;
				/**
				 * Like #addPermission(PermissionInfo) but asynchronously persists the package manager state after returning from the call, allowing it to return quicker and batch a series of adds at the expense of no guarantee the added permission will be retained if the device is rebooted before it is written.
				 */
				public addPermissionAsync(info: android.content.pm.PermissionInfo): boolean;
				/**
				 * Removes a permission that was previously added with #addPermission(PermissionInfo). The same ownership rules apply -- you are only allowed to remove permissions that you are allowed to add.
				 * @param name The name of the permission to remove.
				 */
				public removePermission(name: string): void;
				/**
				 * Compare the signatures of two packages to determine if the same signature appears in both of them. If they do contain the same signature, then they are allowed special privileges when working with each other: they can share the same user-id, run instrumentation against each other, etc.
				 * @param pkg1 First package name whose signature will be compared.
				 * @param pkg2 Second package name whose signature will be compared.
				 */
				public checkSignatures(pkg1: string, pkg2: string): number;
				/**
				 * Like #checkSignatures(String, String), but takes UIDs of the two packages to be checked. This can be useful, for example, when doing the check in an IPC, where the UID is the only identity available. It is functionally identical to determining the package associated with the UIDs and checking their signatures.
				 * @param uid1 First UID whose signature will be compared.
				 * @param uid2 Second UID whose signature will be compared.
				 */
				public checkSignatures(uid1: number, uid2: number): number;
				/**
				 * Retrieve the names of all packages that are associated with a particular user id. In most cases, this will be a single package name, the package that has been assigned that user id. Where there are multiple packages sharing the same user id through the "sharedUserId" mechanism, all packages with that id will be returned.
				 * @param uid The user id for which you would like to retrieve the
				 */
				public getPackagesForUid(uid: number): native.Array<string>;
				/**
				 * Retrieve the official name associated with a user id. This name is guaranteed to never change, though it is possibly for the underlying user id to be changed. That is, if you are storing information about user ids in persistent storage, you should use the string returned by this function instead of the raw user-id.
				 * @param uid The user id for which you would like to retrieve a name.
				 */
				public getNameForUid(uid: number): string;
				/**
				 * Return a List of all application packages that are installed on the device. If flag GET_UNINSTALLED_PACKAGES has been set, a list of all applications including those deleted with DONT_DELETE_DATA(partially installed apps with data directory) will be returned.
				 * @param flags Additional option flags. Use any combination of
				 */
				public getInstalledApplications(flags: number): java.util.IList<android.content.pm.ApplicationInfo>;
				/**
				 * Get a list of shared libraries that are available on the system.
				 */
				public getSystemSharedLibraryNames(): native.Array<string>;
				/**
				 * Get a list of features that are available on the system.
				 */
				public getSystemAvailableFeatures(): native.Array<android.content.pm.FeatureInfo>;
				/**
				 * Check whether the given feature name is one of the available features as returned by #getSystemAvailableFeatures().
				 */
				public hasSystemFeature(name: string): boolean;
				/**
				 * Determine the best action to perform for a given Intent. This is how Intent#resolveActivity finds an activity if a class has not been explicitly specified.
				 * @param intent An intent containing all of the desired specification
				 * @param flags Additional option flags. The most important is
				 */
				public resolveActivity(intent: android.content.Intent, flags: number): android.content.pm.ResolveInfo;
				/**
				 * Retrieve all activities that can be performed for the given intent.
				 * @param intent The desired intent as per resolveActivity().
				 * @param flags Additional option flags. The most important is
				 */
				public queryIntentActivities(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				/**
				 * Retrieve a set of activities that should be presented to the user as similar options. This is like #queryIntentActivities, except it also allows you to supply a list of more explicit Intents that you would like to resolve to particular options, and takes care of returning the final ResolveInfo list in a reasonable order, with no duplicates, based on those inputs.
				 * @param caller The class name of the activity that is making the
				 * @param specifics An array of Intents that should be resolved to the
				 * @param intent The desired intent as per resolveActivity().
				 * @param flags Additional option flags. The most important is
				 */
				public queryIntentActivityOptions(caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				/**
				 * Retrieve all receivers that can handle a broadcast of the given intent.
				 * @param intent The desired intent as per resolveActivity().
				 * @param flags Additional option flags.
				 */
				public queryBroadcastReceivers(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				/**
				 * Determine the best service to handle for a given Intent.
				 * @param intent An intent containing all of the desired specification
				 * @param flags Additional option flags.
				 */
				public resolveService(intent: android.content.Intent, flags: number): android.content.pm.ResolveInfo;
				/**
				 * Retrieve all services that can match the given intent.
				 * @param intent The desired intent as per resolveService().
				 * @param flags Additional option flags.
				 */
				public queryIntentServices(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				/**
				 * Find a single content provider by its base path name.
				 * @param name The name of the provider to find.
				 * @param flags Additional option flags. Currently should always be 0.
				 */
				public resolveContentProvider(name: string, flags: number): android.content.pm.ProviderInfo;
				/**
				 * Retrieve content provider information.
				 * @param processName If non-null, limits the returned providers to only
				 * @param uid If <var>processName</var> is non-null, this is the required
				 * @param flags Additional option flags. Currently should always be 0.
				 */
				public queryContentProviders(processName: string, uid: number, flags: number): java.util.IList<android.content.pm.ProviderInfo>;
				/**
				 * Retrieve all of the information we know about a particular instrumentation class.
				 * @param className The full name (i.e.
				 * @param flags Additional option flags. Currently should always be 0.
				 */
				public getInstrumentationInfo(className: android.content.ComponentName, flags: number): android.content.pm.InstrumentationInfo;
				/**
				 * Retrieve information about available instrumentation code. May be used to retrieve either all instrumentation code, or only the code targeting a particular package.
				 * @param targetPackage If null, all instrumentation is returned; only the
				 * @param flags Additional option flags. Currently should always be 0.
				 */
				public queryInstrumentation(targetPackage: string, flags: number): java.util.IList<android.content.pm.InstrumentationInfo>;
				/**
				 * Retrieve an image from a package. This is a low-level API used by the various package manager info structures (such as ComponentInfo to implement retrieval of their associated icon.
				 * @param packageName The name of the package that this icon is coming from.
				 * @param resid The resource identifier of the desired image. Can not be 0.
				 * @param appInfo Overall information about <var>packageName</var>. This
				 */
				public getDrawable(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the icon associated with an activity. Given the full name of an activity, retrieves the information about it and calls ComponentInfo#loadIcon ComponentInfo.loadIcon() to return its icon. If the activity can not be found, NameNotFoundException is thrown.
				 * @param activityName Name of the activity whose icon is to be retrieved.
				 */
				public getActivityIcon(activityName: android.content.ComponentName): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the icon associated with an Intent. If intent.getClassName() is set, this simply returns the result of getActivityIcon(intent.getClassName()). Otherwise it resolves the intent's component and returns the icon associated with the resolved component. If intent.getClassName() can not be found or the Intent can not be resolved to a component, NameNotFoundException is thrown.
				 * @param intent The intent for which you would like to retrieve an icon.
				 */
				public getActivityIcon(intent: android.content.Intent): android.graphics.drawable.Drawable;
				/**
				 * Return the generic icon for an activity that is used when no specific icon is defined.
				 */
				public getDefaultActivityIcon(): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the icon associated with an application. If it has not defined an icon, the default app icon is returned. Does not return null.
				 * @param info Information about application being queried.
				 */
				public getApplicationIcon(info: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the icon associated with an application. Given the name of the application's package, retrieves the information about it and calls getApplicationIcon() to return its icon. If the application can not be found, NameNotFoundException is thrown.
				 * @param packageName Name of the package whose application icon is to be
				 */
				public getApplicationIcon(packageName: string): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the logo associated with an activity. Given the full name of an activity, retrieves the information about it and calls ComponentInfo#loadLogo ComponentInfo.loadLogo() to return its logo. If the activity can not be found, NameNotFoundException is thrown.
				 * @param activityName Name of the activity whose logo is to be retrieved.
				 */
				public getActivityLogo(activityName: android.content.ComponentName): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the logo associated with an Intent. If intent.getClassName() is set, this simply returns the result of getActivityLogo(intent.getClassName()). Otherwise it resolves the intent's component and returns the logo associated with the resolved component. If intent.getClassName() can not be found or the Intent can not be resolved to a component, NameNotFoundException is thrown.
				 * @param intent The intent for which you would like to retrieve a logo.
				 */
				public getActivityLogo(intent: android.content.Intent): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the logo associated with an application. If it has not specified a logo, this method returns null.
				 * @param info Information about application being queried.
				 */
				public getApplicationLogo(info: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the logo associated with an application. Given the name of the application's package, retrieves the information about it and calls getApplicationLogo() to return its logo. If the application can not be found, NameNotFoundException is thrown.
				 * @param packageName Name of the package whose application logo is to be
				 */
				public getApplicationLogo(packageName: string): android.graphics.drawable.Drawable;
				/**
				 * Retrieve text from a package. This is a low-level API used by the various package manager info structures (such as ComponentInfo to implement retrieval of their associated labels and other text.
				 * @param packageName The name of the package that this text is coming from.
				 * @param resid The resource identifier of the desired text. Can not be 0.
				 * @param appInfo Overall information about <var>packageName</var>. This
				 */
				public getText(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): string;
				/**
				 * Retrieve an XML file from a package. This is a low-level API used to retrieve XML meta data.
				 * @param packageName The name of the package that this xml is coming from.
				 * @param resid The resource identifier of the desired xml. Can not be 0.
				 * @param appInfo Overall information about <var>packageName</var>. This
				 */
				public getXml(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): android.content.res.IXmlResourceParser;
				/**
				 * Return the label to use for this application.
				 * @param info The application to get the label of
				 */
				public getApplicationLabel(info: android.content.pm.ApplicationInfo): string;
				/**
				 * Retrieve the resources associated with an activity. Given the full name of an activity, retrieves the information about it and calls getResources() to return its application's resources. If the activity can not be found, NameNotFoundException is thrown.
				 * @param activityName Name of the activity whose resources are to be
				 */
				public getResourcesForActivity(activityName: android.content.ComponentName): android.content.res.Resources;
				/**
				 * Retrieve the resources for an application. Throws NameNotFoundException if the package is no longer installed.
				 * @param app Information about the desired application.
				 */
				public getResourcesForApplication(app: android.content.pm.ApplicationInfo): android.content.res.Resources;
				/**
				 * Retrieve the resources associated with an application. Given the full package name of an application, retrieves the information about it and calls getResources() to return its application's resources. If the appPackageName can not be found, NameNotFoundException is thrown.
				 * @param appPackageName Package name of the application whose resources
				 */
				public getResourcesForApplication(appPackageName: string): android.content.res.Resources;
				/**
				 * Retrieve overall information about an application package defined in a package archive file
				 * @param archiveFilePath The path to the archive file
				 * @param flags Additional option flags. Use any combination of
				 */
				public getPackageArchiveInfo(archiveFilePath: string, flags: number): android.content.pm.PackageInfo;
				/**
				 * Allows a package listening to the Intent#ACTION_PACKAGE_NEEDS_VERIFICATION package verification broadcast to respond to the package manager. The response must include the verificationCode which is one of PackageManager#VERIFICATION_ALLOW or PackageManager#VERIFICATION_REJECT.
				 * @param id pending package identifier as passed via the
				 * @param verificationCode either {@link PackageManager#VERIFICATION_ALLOW}
				 */
				public verifyPendingInstall(id: number, verificationCode: number): void;
				/**
				 * Allows a package listening to the Intent#ACTION_PACKAGE_NEEDS_VERIFICATION package verification broadcast to extend the default timeout for a response and declare what action to perform after the timeout occurs. The response must include the verificationCodeAtTimeout which is one of PackageManager#VERIFICATION_ALLOW or PackageManager#VERIFICATION_REJECT.
				 * @param id pending package identifier as passed via the
				 * @param verificationCodeAtTimeout either
				 * @param millisecondsToDelay the amount of time requested for the timeout.
				 */
				public extendVerificationTimeout(id: number, verificationCodeAtTimeout: number, millisecondsToDelay: number): void;
				/**
				 * Change the installer associated with a given package. There are limitations on how the installer package can be changed; in particular: <ul> <li> A SecurityException will be thrown if <var>installerPackageName</var> is not signed with the same certificate as the calling application. <li> A SecurityException will be thrown if <var>targetPackage</var> already has an installer package, and that installer package is not signed with the same certificate as the calling application. </ul>
				 * @param targetPackage The installed package whose installer will be changed.
				 * @param installerPackageName The package name of the new installer. May be
				 */
				public setInstallerPackageName(targetPackage: string, installerPackageName: string): void;
				/**
				 * Retrieve the package name of the application that installed a package. This identifies which market the package came from.
				 * @param packageName The name of the package to query
				 */
				public getInstallerPackageName(packageName: string): string;
				/**
				 *  This function no longer does anything; it was an old approach to managing preferred activities, which has been superceeded (and conflicts with) the modern activity-based preferences.
				 */
				public addPackageToPreferred(packageName: string): void;
				/**
				 *  This function no longer does anything; it was an old approach to managing preferred activities, which has been superceeded (and conflicts with) the modern activity-based preferences.
				 */
				public removePackageFromPreferred(packageName: string): void;
				/**
				 * Retrieve the list of all currently configured preferred packages. The first package on the list is the most preferred, the last is the least preferred.
				 * @param flags Additional option flags. Use any combination of
				 */
				public getPreferredPackages(flags: number): java.util.IList<android.content.pm.PackageInfo>;
				/**
				 *  This is a protected API that should not have been available to third party applications. It is the platform's responsibility for assigning preferred activities and this can not be directly modified.
				 * @param filter The set of intents under which this activity will be
				 * @param match The IntentFilter match category that this preference
				 * @param set The set of activities that the user was picking from when
				 * @param activity The component name of the activity that is to be
				 */
				public addPreferredActivity(filter: android.content.IntentFilter, match: number, set: native.Array<android.content.ComponentName>, activity: android.content.ComponentName): void;
				/**
				 * Remove all preferred activity mappings, previously added with #addPreferredActivity, from the system whose activities are implemented in the given package name. An application can only clear its own package(s).
				 * @param packageName The name of the package whose preferred activity
				 */
				public clearPackagePreferredActivities(packageName: string): void;
				/**
				 * Retrieve all preferred activities, previously added with #addPreferredActivity, that are currently registered with the system.
				 * @param outFilters A list in which to place the filters of all of the
				 * @param outActivities A list in which to place the component names of
				 * @param packageName An option package in which you would like to limit
				 */
				public getPreferredActivities(outFilters: java.util.IList<android.content.IntentFilter>, outActivities: java.util.IList<android.content.ComponentName>, packageName: string): number;
				/**
				 * Set the enabled setting for a package component (activity, receiver, service, provider). This setting will override any enabled state which may have been set by the component in its manifest.
				 * @param componentName The component to enable
				 * @param newState The new enabled state for the component. The legal values for this state
				 * @param flags Optional behavior flags: {@link #DONT_KILL_APP} or 0.
				 */
				public setComponentEnabledSetting(componentName: android.content.ComponentName, newState: number, flags: number): void;
				/**
				 * Return the the enabled setting for a package component (activity, receiver, service, provider). This returns the last value set by #setComponentEnabledSetting(ComponentName, int, int); in most cases this value will be #COMPONENT_ENABLED_STATE_DEFAULT since the value originally specified in the manifest has not been modified.
				 * @param componentName The component to retrieve.
				 */
				public getComponentEnabledSetting(componentName: android.content.ComponentName): number;
				/**
				 * Set the enabled setting for an application This setting will override any enabled state which may have been set by the application in its manifest. It also overrides the enabled state set in the manifest for any of the application's components. It does not override any enabled state set by #setComponentEnabledSetting for any of the application's components.
				 * @param packageName The package name of the application to enable
				 * @param newState The new enabled state for the component. The legal values for this state
				 * @param flags Optional behavior flags: {@link #DONT_KILL_APP} or 0.
				 */
				public setApplicationEnabledSetting(packageName: string, newState: number, flags: number): void;
				/**
				 * Return the the enabled setting for an application. This returns the last value set by #setApplicationEnabledSetting(String, int, int); in most cases this value will be #COMPONENT_ENABLED_STATE_DEFAULT since the value originally specified in the manifest has not been modified.
				 * @param packageName The component to retrieve.
				 */
				public getApplicationEnabledSetting(packageName: string): number;
				/**
				 * Return whether the device has been booted into safe mode.
				 */
				public isSafeMode(): boolean;
			}
			export module PackageManager {
				/**
				 * This exception is thrown when a given package, application, or component name can not be found.
				 */
				export class NameNotFoundException extends android.util.AndroidException {
					constructor();
					constructor(name: string);
					static class: java.lang.Class<android.content.pm.PackageManager.NameNotFoundException>;
				}
			}
			export class LimitedLengthInputStreamTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.content.pm.LimitedLengthInputStreamTest>;
				protected setUp(): void;
				public testConstructor_NegativeOffset_Failure(): void;
				public testConstructor_NegativeLength_Failure(): void;
				public testConstructor_NullInputStream_Failure(): void;
				public testConstructor_OffsetLengthOverflow_Fail(): void;
				public testReadBytesWithOffsetAndLength_ZeroOffset_PartialLength_Success(): void;
				public testReadBytesWithOffsetAndLength_NonZeroOffset_PartialLength_Success(): void;
				public testReadBytesWithOffsetAndLength_ZeroOffset_FullLength_Success(): void;
				public testReadBytesWithOffsetAndLength_NonZeroOffset_FullLength_Success(): void;
				public testReadBytesWithOffsetAndLength_ZeroOffset_PastEnd_Success(): void;
				public testReadBytes_ZeroOffset_PartialLength_Success(): void;
				public testReadBytes_NonZeroOffset_PartialLength_Success(): void;
				public testReadBytes_ZeroOffset_FullLength_Success(): void;
				public testReadBytes_NonZeroOffset_FullLength_Success(): void;
				public testSingleByteRead_ZeroOffset_PartialLength_Success(): void;
				public testSingleByteRead_NonZeroOffset_PartialLength_Success(): void;
				public testSingleByteRead_ZeroOffset_FullLength_Success(): void;
				public testSingleByteRead_NonZeroOffset_FullLength_Success(): void;
			}
			/**
			 * implementation of PackageStats associated with a application package.
			 */
			export class PackageStats extends java.lang.Object implements android.os.IParcelable {
				constructor(pkgName: string);
				constructor(source: android.os.Parcel);
				constructor(pStats: android.content.pm.PackageStats);
				/**
				 * Name of the package to which this stats applies.
				 */
				packageName: string;
				/**
				 * Size of the code (e.g., APK)
				 */
				codeSize: number;
				/**
				 * Size of the internal data size for the application. (e.g., /data/data/<app>)
				 */
				dataSize: number;
				/**
				 * Size of cache used by the application. (e.g., /data/data/<app>/cache)
				 */
				cacheSize: number;
				/**
				 * Size of the secure container on external storage holding the application's code.
				 */
				externalCodeSize: number;
				/**
				 * Size of the external data used by the application (e.g., <sdcard>/Android/data/<app>)
				 */
				externalDataSize: number;
				/**
				 * Size of the external cache used by the application (i.e., on the SD card). If this is a subdirectory of the data directory, this size will be subtracted out of the external data size.
				 */
				externalCacheSize: number;
				/**
				 * Size of the external media size used by the application.
				 */
				externalMediaSize: number;
				/**
				 * Size of the package's OBBs placed on external media.
				 */
				externalObbSize: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.PackageStats>;
				static class: java.lang.Class<android.content.pm.PackageStats>;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * Base class containing information common to all package items held by the package manager. This provides a very common basic set of attributes: a label, icon, and meta-data. This class is not intended to be used by itself; it is simply here to share common definitions between all items returned by the package manager. As such, it does not itself implement Parcelable, but does provide convenience methods to assist in the implementation of Parcelable in subclasses.
			 */
			export class PackageItemInfo extends java.lang.Object {
				constructor();
				constructor(orig: android.content.pm.PackageItemInfo);
				/**
				 * Public name of this item. From the "android:name" attribute.
				 */
				name: string;
				/**
				 * Name of the package that this item is in.
				 */
				packageName: string;
				/**
				 * A string resource identifier (in the package's resources) of this component's label. From the "label" attribute or, if not set, 0.
				 */
				labelRes: number;
				/**
				 * The string provided in the AndroidManifest file, if any. You probably don't want to use this. You probably want PackageManager#getApplicationLabel
				 */
				nonLocalizedLabel: string;
				/**
				 * A drawable resource identifier (in the package's resources) of this component's icon. From the "icon" attribute or, if not set, 0.
				 */
				icon: number;
				/**
				 * A drawable resource identifier (in the package's resources) of this component's logo. Logos may be larger/wider than icons and are displayed by certain UI elements in place of a name or name/icon combination. From the "logo" attribute or, if not set, 0.
				 */
				logo: number;
				/**
				 * Additional meta-data associated with this component. This field will only be filled in if you set the PackageManager#GET_META_DATA flag when requesting the info.
				 */
				metaData: android.os.Bundle;
				static class: java.lang.Class<android.content.pm.PackageItemInfo>;
				/**
				 * Retrieve the current textual label associated with this item. This will call back on the given PackageManager to load the label from the application. 
				 * @param pm A PackageManager from which the label can be loaded; usually
				 */
				public loadLabel(pm: android.content.pm.PackageManager): string;
				/**
				 * Retrieve the current graphical icon associated with this item. This will call back on the given PackageManager to load the icon from the application. 
				 * @param pm A PackageManager from which the icon can be loaded; usually
				 */
				public loadIcon(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
				/**
				 * Retrieve the current graphical logo associated with this item. This will call back on the given PackageManager to load the logo from the application. 
				 * @param pm A PackageManager from which the logo can be loaded; usually
				 */
				public loadLogo(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
				/**
				 * Load an XML resource attached to the meta-data of this item. This will retrieved the name meta-data entry, and if defined call back on the given PackageManager to load its XML file from the application. 
				 * @param pm A PackageManager from which the XML can be loaded; usually
				 * @param name Name of the meta-date you would like to load.
				 */
				public loadXmlMetaData(pm: android.content.pm.PackageManager, name: string): android.content.res.IXmlResourceParser;
				protected dumpFront(pw: android.util.IPrinter, prefix: string): void;
				protected dumpBack(pw: android.util.IPrinter, prefix: string): void;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			export module PackageItemInfo {
				export class DisplayNameComparator extends java.lang.Object {
					constructor(pm: android.content.pm.PackageManager);
					static class: java.lang.Class<android.content.pm.PackageItemInfo.DisplayNameComparator>;
					public compare(aa: android.content.pm.PackageItemInfo, ab: android.content.pm.PackageItemInfo): number;
				}
			}
			/**
			 * A special subclass of Intent that can have a custom label/icon associated with it. Primarily for use with Intent#ACTION_CHOOSER.
			 */
			export class LabeledIntent extends android.content.Intent {
				/**
				 * Create a labeled intent from the given intent, supplying the label and icon resources for it. 
				 * @param origIntent The original Intent to copy.
				 * @param sourcePackage The package in which the label and icon live.
				 * @param labelRes Resource containing the label, or 0 if none.
				 * @param icon Resource containing the icon, or 0 if none.
				 */
				constructor(origIntent: android.content.Intent, sourcePackage: string, labelRes: number, icon: number);
				/**
				 * Create a labeled intent from the given intent, supplying a textual label and icon resource for it. 
				 * @param origIntent The original Intent to copy.
				 * @param sourcePackage The package in which the label and icon live.
				 * @param nonLocalizedLabel Concrete text to use for the label.
				 * @param icon Resource containing the icon, or 0 if none.
				 */
				constructor(origIntent: android.content.Intent, sourcePackage: string, nonLocalizedLabel: string, icon: number);
				/**
				 * Create a labeled intent with no intent data but supplying the label and icon resources for it. 
				 * @param sourcePackage The package in which the label and icon live.
				 * @param labelRes Resource containing the label, or 0 if none.
				 * @param icon Resource containing the icon, or 0 if none.
				 */
				constructor(sourcePackage: string, labelRes: number, icon: number);
				/**
				 * Create a labeled intent with no intent data but supplying a textual label and icon resource for it. 
				 * @param sourcePackage The package in which the label and icon live.
				 * @param nonLocalizedLabel Concrete text to use for the label.
				 * @param icon Resource containing the icon, or 0 if none.
				 */
				constructor(sourcePackage: string, nonLocalizedLabel: string, icon: number);
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.LabeledIntent>;
				static class: java.lang.Class<android.content.pm.LabeledIntent>;
				/**
				 * Return the name of the package holding label and icon resources.
				 */
				public getSourcePackage(): string;
				/**
				 * Return any resource identifier that has been given for the label text.
				 */
				public getLabelResource(): number;
				/**
				 * Return any concrete text that has been given for the label text.
				 */
				public getNonLocalizedLabel(): string;
				/**
				 * Return any resource identifier that has been given for the label icon.
				 */
				public getIconResource(): number;
				/**
				 * Retrieve the label associated with this object. If the object does not have a label, null will be returned, in which case you will probably want to load the label from the underlying resolved info for the Intent.
				 */
				public loadLabel(pm: android.content.pm.PackageManager): string;
				/**
				 * Retrieve the icon associated with this object. If the object does not have a icon, null will be returned, in which case you will probably want to load the icon from the underlying resolved info for the Intent.
				 */
				public loadIcon(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
				public readFromParcel(input: android.os.Parcel): void;
			}
			/**
			 * Tests for disabling and enabling application components.
			 */
			export class ComponentTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.content.pm.ComponentTest>;
				protected setUp(): void;
				public testContextNotNull(): void;
				public testResolveDisabledActivity(): void;
				public testResolveEnabledActivity(): void;
				public testQueryDisabledActivity(): void;
				public testQueryEnabledActivity(): void;
				public testGetDisabledActivityInfo(): void;
				public testGetEnabledActivityInfo(): void;
				public testEnableActivity(): void;
				public testDisableActivity(): void;
				public testResolveDisabledService(): void;
				public testResolveEnabledService(): void;
				public testQueryDisabledService(): void;
				public testQueryEnabledService(): void;
				public testGetDisabledServiceInfo(): void;
				public testGetEnabledServiceInfo(): void;
				public testEnableService(): void;
				public testDisableService(): void;
				public testQueryDisabledReceiver(): void;
				public testQueryEnabledReceiver(): void;
				public testGetDisabledReceiverInfo(): void;
				public testGetEnabledReceiverInfo(): void;
				public testEnableReceiver(): void;
				public testDisableReceiver(): void;
				public testResolveEnabledProvider(): void;
				public testResolveDisabledProvider(): void;
				public testEnableProvider(): void;
				public testDisableProvider(): void;
				public testQueryEnabledProvider(): void;
				public testQueryDisabledProvider(): void;
				public DISABLED_testResolveEnabledActivityInDisabledApp(): void;
				public DISABLED_testEnableApplication(): void;
				public DISABLED_testDisableApplication(): void;
				public testNonExplicitResolveAfterEnabling(): void;
			}
			export class VerifierDeviceIdentityTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.content.pm.VerifierDeviceIdentityTest>;
				public testVerifierDeviceIdentity_Equals_Success(): void;
				public testVerifierDeviceIdentity_Equals_Failure(): void;
				public testVerifierDeviceIdentity_HashCode(): void;
				public testVerifierDeviceIdentity_ToString_Success(): void;
				public testVerifierDeviceIdentity_ToString_Largest(): void;
				public testVerifierDeviceIdentity_ToString_Zero(): void;
				public testVerifierDeviceIdentity_ToString_NegOne(): void;
				public testVerifierDeviceIdentity_ToString_MinValue(): void;
				public testVerifierDeviceIdentity_Parcel_ReadNegative(): void;
				public testVerifierDeviceIdentity_Parcel_Read_Pass(): void;
				public testVerifierDeviceIdentity_Generate_MinValue(): void;
				public testVerifierDeviceIdentity_Generate_Random(): void;
				public testVerifierDeviceIdentity_Parse_Normal(): void;
				public testVerifierDeviceIdentity_Parse_MaxValue(): void;
				public testVerifierDeviceIdentity_Parse_TooShort(): void;
				public testVerifierDeviceIdentity_Parse_WayTooShort(): void;
				public testVerifierDeviceIdentity_Parse_TooLong(): void;
				public testVerifierDeviceIdentity_Parse_Overflow(): void;
				public testVerifierDeviceIdentity_Parse_SquashToUppercase(): void;
				public testVerifierDeviceIdentity_Parse_1I_And_0O_Substitution(): void;
			}
			export module VerifierDeviceIdentityTest {
				export class MockRandom extends java.util.Random {
					constructor();
					static class: java.lang.Class<android.content.pm.VerifierDeviceIdentityTest.MockRandom>;
					public setNextLong(nextLong: number): void;
					public nextLong(): any;
				}
			}
			/**
			 * Information you can retrieve about a particular application activity or receiver. This corresponds to information collected from the AndroidManifest.xml's &lt;activity&gt; and &lt;receiver&gt; tags.
			 */
			export class ActivityInfo extends android.content.pm.ComponentInfo implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.ActivityInfo);
				/**
				 * A style resource identifier (in the package's resources) of this activity's theme. From the "theme" attribute or, if not set, 0.
				 */
				theme: number;
				/**
				 * Constant corresponding to <code>standard</code> in the android.R.attr#launchMode attribute.
				 */
				static LAUNCH_MULTIPLE: number;
				/**
				 * Constant corresponding to <code>singleTop</code> in the android.R.attr#launchMode attribute.
				 */
				static LAUNCH_SINGLE_TOP: number;
				/**
				 * Constant corresponding to <code>singleTask</code> in the android.R.attr#launchMode attribute.
				 */
				static LAUNCH_SINGLE_TASK: number;
				/**
				 * Constant corresponding to <code>singleInstance</code> in the android.R.attr#launchMode attribute.
				 */
				static LAUNCH_SINGLE_INSTANCE: number;
				/**
				 * The launch mode style requested by the activity. From the android.R.attr#launchMode attribute, one of #LAUNCH_MULTIPLE, #LAUNCH_SINGLE_TOP, #LAUNCH_SINGLE_TASK, or #LAUNCH_SINGLE_INSTANCE.
				 */
				launchMode: number;
				/**
				 * Optional name of a permission required to be able to access this Activity. From the "permission" attribute.
				 */
				permission: string;
				/**
				 * The affinity this activity has for another task in the system. The string here is the name of the task, often the package name of the overall package. If null, the activity has no affinity. Set from the android.R.attr#taskAffinity attribute.
				 */
				taskAffinity: string;
				/**
				 * If this is an activity alias, this is the real activity class to run for it. Otherwise, this is null.
				 */
				targetActivity: string;
				/**
				 * Bit in #flags indicating whether this activity is able to run in multiple processes. If true, the system may instantiate it in the some process as the process starting it in order to conserve resources. If false, the default, it always runs in #processName. Set from the android.R.attr#multiprocess attribute.
				 */
				static FLAG_MULTIPROCESS: number;
				/**
				 * Bit in #flags indicating that, when the activity's task is relaunched from home, this activity should be finished. Set from the android.R.attr#finishOnTaskLaunch attribute.
				 */
				static FLAG_FINISH_ON_TASK_LAUNCH: number;
				/**
				 * Bit in #flags indicating that, when the activity is the root of a task, that task's stack should be cleared each time the user re-launches it from home. As a result, the user will always return to the original activity at the top of the task. This flag only applies to activities that are used to start the root of a new task. Set from the android.R.attr#clearTaskOnLaunch attribute.
				 */
				static FLAG_CLEAR_TASK_ON_LAUNCH: number;
				/**
				 * Bit in #flags indicating that, when the activity is the root of a task, that task's stack should never be cleared when it is relaunched from home. Set from the android.R.attr#alwaysRetainTaskState attribute.
				 */
				static FLAG_ALWAYS_RETAIN_TASK_STATE: number;
				/**
				 * Bit in #flags indicating that the activity's state is not required to be saved, so that if there is a failure the activity will not be removed from the activity stack. Set from the android.R.attr#stateNotNeeded attribute.
				 */
				static FLAG_STATE_NOT_NEEDED: number;
				/**
				 * Bit in #flags that indicates that the activity should not appear in the list of recently launched activities. Set from the android.R.attr#excludeFromRecents attribute.
				 */
				static FLAG_EXCLUDE_FROM_RECENTS: number;
				/**
				 * Bit in #flags that indicates that the activity can be moved between tasks based on its task affinity. Set from the android.R.attr#allowTaskReparenting attribute.
				 */
				static FLAG_ALLOW_TASK_REPARENTING: number;
				/**
				 * Bit in #flags indicating that, when the user navigates away from an activity, it should be finished. Set from the android.R.attr#noHistory attribute.
				 */
				static FLAG_NO_HISTORY: number;
				/**
				 * Bit in #flags indicating that, when a request to close system windows happens, this activity is finished. Set from the android.R.attr#finishOnCloseSystemDialogs attribute.
				 */
				static FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS: number;
				/**
				 * Value for #flags: true when the application's rendering should be hardware accelerated.
				 */
				static FLAG_HARDWARE_ACCELERATED: number;
				/**
				 * Bit in #flags: If set, a single instance of the receiver will run for all users on the device. Set from the android.R.attr#singleUser attribute. Note that this flag is only relevant for ActivityInfo structures that are describing receiver components; it is not applied to activities.
				 */
				static FLAG_SINGLE_USER: number;
				/**
				 * Options that have been set in the activity declaration in the manifest. These include: #FLAG_MULTIPROCESS, #FLAG_FINISH_ON_TASK_LAUNCH, #FLAG_CLEAR_TASK_ON_LAUNCH, #FLAG_ALWAYS_RETAIN_TASK_STATE, #FLAG_STATE_NOT_NEEDED, #FLAG_EXCLUDE_FROM_RECENTS, #FLAG_ALLOW_TASK_REPARENTING, #FLAG_NO_HISTORY, #FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS, #FLAG_HARDWARE_ACCELERATED, #FLAG_SINGLE_USER.
				 */
				flags: number;
				/**
				 * Constant corresponding to <code>unspecified</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_UNSPECIFIED: number;
				/**
				 * Constant corresponding to <code>landscape</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_LANDSCAPE: number;
				/**
				 * Constant corresponding to <code>portrait</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_PORTRAIT: number;
				/**
				 * Constant corresponding to <code>user</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_USER: number;
				/**
				 * Constant corresponding to <code>behind</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_BEHIND: number;
				/**
				 * Constant corresponding to <code>sensor</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_SENSOR: number;
				/**
				 * Constant corresponding to <code>nosensor</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_NOSENSOR: number;
				/**
				 * Constant corresponding to <code>sensorLandscape</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_SENSOR_LANDSCAPE: number;
				/**
				 * Constant corresponding to <code>sensorPortrait</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_SENSOR_PORTRAIT: number;
				/**
				 * Constant corresponding to <code>reverseLandscape</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_REVERSE_LANDSCAPE: number;
				/**
				 * Constant corresponding to <code>reversePortrait</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_REVERSE_PORTRAIT: number;
				/**
				 * Constant corresponding to <code>fullSensor</code> in the android.R.attr#screenOrientation attribute.
				 */
				static SCREEN_ORIENTATION_FULL_SENSOR: number;
				/**
				 * The preferred screen orientation this activity would like to run in. From the android.R.attr#screenOrientation attribute, one of #SCREEN_ORIENTATION_UNSPECIFIED, #SCREEN_ORIENTATION_LANDSCAPE, #SCREEN_ORIENTATION_PORTRAIT, #SCREEN_ORIENTATION_USER, #SCREEN_ORIENTATION_BEHIND, #SCREEN_ORIENTATION_SENSOR, #SCREEN_ORIENTATION_NOSENSOR, #SCREEN_ORIENTATION_SENSOR_LANDSCAPE, #SCREEN_ORIENTATION_SENSOR_PORTRAIT, #SCREEN_ORIENTATION_REVERSE_LANDSCAPE, #SCREEN_ORIENTATION_REVERSE_PORTRAIT, #SCREEN_ORIENTATION_FULL_SENSOR.
				 */
				screenOrientation: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the IMSI MCC. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_MCC: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the IMSI MNC. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_MNC: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the locale. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_LOCALE: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the touchscreen type. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_TOUCHSCREEN: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the keyboard type. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_KEYBOARD: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the keyboard or navigation being hidden/exposed. Note that inspite of the name, this applies to the changes to any hidden states: keyboard or navigation. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_KEYBOARD_HIDDEN: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the navigation type. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_NAVIGATION: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the screen orientation. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_ORIENTATION: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the screen layout. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_SCREEN_LAYOUT: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle the ui mode. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_UI_MODE: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle the screen size. Set from the android.R.attr#configChanges attribute. This will be set by default for applications that target an earlier version than android.os.Build.VERSION_CODES#HONEYCOMB_MR2... <b>however</b>, you will not see the bit set here becomes some applications incorrectly compare #configChanges against an absolute value rather than correctly masking out the bits they are interested in. Please don't do that, thanks.
				 */
				static CONFIG_SCREEN_SIZE: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle the smallest screen size. Set from the android.R.attr#configChanges attribute. This will be set by default for applications that target an earlier version than android.os.Build.VERSION_CODES#HONEYCOMB_MR2... <b>however</b>, you will not see the bit set here becomes some applications incorrectly compare #configChanges against an absolute value rather than correctly masking out the bits they are interested in. Please don't do that, thanks.
				 */
				static CONFIG_SMALLEST_SCREEN_SIZE: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle density changes. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_DENSITY: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle the change to layout direction. Set from the android.R.attr#configChanges attribute.
				 */
				static CONFIG_LAYOUT_DIRECTION: number;
				/**
				 * Bit in #configChanges that indicates that the activity can itself handle changes to the font scaling factor. Set from the android.R.attr#configChanges attribute. This is not a core resource configutation, but a higher-level value, so its constant starts at the high bits.
				 */
				static CONFIG_FONT_SCALE: number;
				/**
				 * Bit mask of kinds of configuration changes that this activity can handle itself (without being restarted by the system). Contains any combination of #CONFIG_FONT_SCALE, #CONFIG_MCC, #CONFIG_MNC, #CONFIG_LOCALE, #CONFIG_TOUCHSCREEN, #CONFIG_KEYBOARD, #CONFIG_NAVIGATION, #CONFIG_ORIENTATION, #CONFIG_SCREEN_LAYOUT and #CONFIG_LAYOUT_DIRECTION. Set from the android.R.attr#configChanges attribute.
				 */
				configChanges: number;
				/**
				 * The desired soft input mode for this activity's main window. Set from the android.R.attr#windowSoftInputMode attribute in the activity's manifest. May be any of the same values allowed for android.view.WindowManager.LayoutParams#softInputMode WindowManager.LayoutParams.softInputMode. If 0 (unspecified), the mode from the theme will be used.
				 */
				softInputMode: number;
				/**
				 * The desired extra UI options for this activity and its main window. Set from the android.R.attr#uiOptions attribute in the activity's manifest.
				 */
				uiOptions: number;
				/**
				 * Flag for use with #uiOptions. Indicates that the action bar should put all action items in a separate bar when the screen is narrow.
				 */
				static UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW: number;
				/**
				 * If defined, the activity named here is the logical parent of this activity.
				 */
				parentActivityName: string;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.ActivityInfo>;
				static class: java.lang.Class<android.content.pm.ActivityInfo>;
				/**
				 * Return the theme resource identifier to use for this activity. If the activity defines a theme, that is used; else, the application theme is used. 
				 */
				public getThemeResource(): number;
				public dump(pw: android.util.IPrinter, prefix: string): void;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			export class PackageManagerTests extends android.test.AndroidTestCase {
				constructor();
				static TAG: string;
				MAX_WAIT_TIME: number;
				WAIT_TIME_INCR: number;
				static class: java.lang.Class<android.content.pm.PackageManagerTests>;
				PackageMoveObserver: {
	new (pkgName: string): android.content.pm.PackageManagerTests.PackageMoveObserver;
};
				failStr(errMsg: string): void;
				failStr(e: java.lang.Exception): void;
				protected setUp(): void;
				protected tearDown(): void;
				public invokeInstallPackage(packageURI: android.net.Uri, flags: number, receiver: android.content.pm.PackageManagerTests.GenericReceiver, shouldSucceed: boolean): void;
				public invokeInstallPackageFail(packageURI: android.net.Uri, flags: number, expectedResult: number): void;
				getInstallablePackage(fileResId: number, outFile: java.io.File): android.net.Uri;
				public testInstallNormalInternal(): void;
				public testInstallFwdLockedInternal(): void;
				public testInstallSdcard(): void;
				public testReplaceFailNormalInternal(): void;
				public testReplaceFailFwdLockedInternal(): void;
				public testReplaceFailSdcard(): void;
				public testReplaceNormalInternal(): void;
				public testReplaceFwdLockedInternal(): void;
				public testReplaceSdcard(): void;
				public invokeDeletePackage(pkgName: string, flags: number, receiver: android.content.pm.PackageManagerTests.GenericReceiver): boolean;
				public deleteFromRawResource(iFlags: number, dFlags: number): void;
				public testDeleteNormalInternal(): void;
				public testDeleteFwdLockedInternal(): void;
				public testDeleteSdcard(): void;
				public testDeleteNormalInternalRetainData(): void;
				public testDeleteFwdLockedInternalRetainData(): void;
				public testDeleteSdcardRetainData(): void;
				checkMediaState(desired: string): boolean;
				mountMedia(): boolean;
				public testMountSdNormalInternal(): void;
				cleanUpInstall(ip: android.content.pm.PackageManagerTests.InstallParams): void;
				public testManifestInstallLocationInternal(): void;
				public testManifestInstallLocationSdcard(): void;
				public testManifestInstallLocationAuto(): void;
				public testManifestInstallLocationUnspecified(): void;
				public testManifestInstallLocationFwdLockedFlagSdcard(): void;
				public testManifestInstallLocationFwdLockedSdcard(): void;
				public testReplaceFlagInternalSdcard(): void;
				public testReplaceFlagSdcardInternal(): void;
				public testManifestInstallLocationReplaceInternalSdcard(): void;
				public testManifestInstallLocationReplaceSdcardInternal(): void;
				public invokeMovePackage(pkgName: string, flags: number, receiver: android.content.pm.PackageManagerTests.GenericReceiver): boolean;
				public testMoveAppInternalToExternal(): void;
				public testMoveAppInternalToInternal(): void;
				public testMoveAppExternalToExternal(): void;
				public testMoveAppExternalToInternal(): void;
				public testMoveAppForwardLocked(): void;
				public testMoveAppFailInternalToExternalDelete(): void;
				public testInstallSdcardUnmount(): void;
				public testInstallManifestSdcardUnmount(): void;
				public testFlagI(): void;
				public testFlagE(): void;
				public testFlagF(): void;
				public testFlagIE(): void;
				public testFlagIF(): void;
				public testFlagEF(): void;
				public testFlagIEF(): void;
				public testFlagIManifestI(): void;
				public testFlagIManifestE(): void;
				public testFlagIManifestA(): void;
				public testFlagEManifestI(): void;
				public testFlagEManifestE(): void;
				public testFlagEManifestA(): void;
				public testFlagFManifestI(): void;
				public testFlagFManifestE(): void;
				public testFlagFManifestA(): void;
				public testFlagIExistingI(): void;
				public testFlagIExistingE(): void;
				public testFlagEExistingI(): void;
				public testFlagEExistingE(): void;
				public testFlagFExistingI(): void;
				public testFlagFExistingE(): void;
				public testManifestI(): void;
				public testManifestE(): void;
				public testManifestA(): void;
				public testManifestIExistingI(): void;
				public testManifestIExistingE(): void;
				public testManifestEExistingI(): void;
				public testManifestEExistingE(): void;
				public testManifestAExistingI(): void;
				public testManifestAExistingE(): void;
				public testExistingIUserI(): void;
				public testExistingIUserE(): void;
				public testExistingIUserA(): void;
				public testExistingEUserI(): void;
				public testExistingEUserE(): void;
				public testExistingEUserA(): void;
				public testUserI(): void;
				public testUserE(): void;
				public testUserA(): void;
				public testUserPrefOffUserI(): void;
				public testUserPrefOffUserE(): void;
				public testUserPrefOffA(): void;
				public testInstallDeclaresPermissions(): void;
				public testInstallOnSdPermissionsUnmount(): void;
				public testInstallSdcardStaleContainer(): void;
				public testInstallSdcardStaleContainerReinstall(): void;
				public testReplaceMatchAllCerts(): void;
				public testReplaceMatchNoCerts1(): void;
				public testReplaceMatchNoCerts2(): void;
				public testReplaceMatchSomeCerts1(): void;
				public testReplaceMatchSomeCerts2(): void;
				public testReplaceMatchMoreCerts(): void;
				public testReplaceMatchMoreCertsReplaceSomeCerts(): void;
				public testCheckSignaturesAllMatch(): void;
				public testCheckSignaturesNoMatch(): void;
				public testCheckSignaturesSomeMatch1(): void;
				public testCheckSignaturesSomeMatch2(): void;
				public testCheckSignaturesMoreMatch(): void;
				public testCheckSignaturesUnknown(): void;
				public testInstallNoCertificates(): void;
				public testCheckSignaturesSharedAllMatch(): void;
				public testCheckSignaturesSharedNoMatch(): void;
				public testCheckSignaturesSharedSomeMatch1(): void;
				public testCheckSignaturesSharedSomeMatch2(): void;
				public testCheckSignaturesSharedUnknown(): void;
				public testReplaceFirstSharedMatchAllCerts(): void;
				public testReplaceSecondSharedMatchAllCerts(): void;
				public testReplaceFirstSharedMatchSomeCerts(): void;
				public testReplaceSecondSharedMatchSomeCerts(): void;
				public testReplaceFirstSharedMatchNoCerts(): void;
				public testReplaceSecondSharedMatchNoCerts(): void;
				public testReplaceFirstSharedMatchMoreCerts(): void;
				public testReplaceSecondSharedMatchMoreCerts(): void;
				/**
				 * Unknown features should be allowed to install. This prevents older phones from rejecting new packages that specify features that didn't exist when an older phone existed. All older phones are assumed to have those features.
				 */
				public testUsesFeatureUnknownFeature(): void;
				public testInstallNonexistentFile(): void;
				public testGetVerifierDeviceIdentity(): void;
				public testGetInstalledPackages(): void;
				public testGetUnInstalledPackages(): void;
				/**
				 * Test that getInstalledPackages returns all the data specified in flags.
				 */
				public testGetInstalledPackagesAll(): void;
				/**
				 * Test that getInstalledPackages returns all the data specified in flags when the GET_UNINSTALLED_PACKAGES flag is set.
				 */
				public testGetUnInstalledPackagesAll(): void;
				public testInstall_BadDex_CleanUp(): void;
			}
			export module PackageManagerTests {
				export class DeleteObserver {
					constructor(packageName: string);
					static class: java.lang.Class<android.content.pm.PackageManagerTests.DeleteObserver>;
					public isSuccessful(): boolean;
					public packageDeleted(packageName: string, returnCode: number): void;
					public waitForCompletion(timeoutMillis: number): void;
				}
				export class InstallParams extends java.lang.Object {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.InstallParams>;
					getApkSize(): any;
				}
				export class ReplaceReceiver extends android.content.pm.PackageManagerTests.GenericReceiver {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.ReplaceReceiver>;
					public notifyNow(intent: android.content.Intent): boolean;
				}
				export class GenericReceiver extends android.content.BroadcastReceiver {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.GenericReceiver>;
					notifyNow(intent: android.content.Intent): boolean;
					public onReceive(context: android.content.Context, intent: android.content.Intent): void;
					public isDone(): boolean;
					public setFilter(filter: android.content.IntentFilter): void;
				}
				export class SdMountReceiver extends android.content.pm.PackageManagerTests.GenericReceiver {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.SdMountReceiver>;
					public notifyNow(intent: android.content.Intent): boolean;
				}
				export class MoveReceiver extends android.content.pm.PackageManagerTests.GenericReceiver {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.MoveReceiver>;
					public notifyNow(intent: android.content.Intent): boolean;
				}
				export class InstallReceiver extends android.content.pm.PackageManagerTests.GenericReceiver {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.InstallReceiver>;
					public notifyNow(intent: android.content.Intent): boolean;
				}
				export class DeleteReceiver extends android.content.pm.PackageManagerTests.GenericReceiver {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.DeleteReceiver>;
					public notifyNow(intent: android.content.Intent): boolean;
				}
				export class PackageInstallObserver {
					returnCode: number;
					static class: java.lang.Class<android.content.pm.PackageManagerTests.PackageInstallObserver>;
					public packageInstalled(packageName: string, returnCode: number): void;
					public isDone(): boolean;
				}
				export class SdUnMountReceiver extends android.content.pm.PackageManagerTests.GenericReceiver {
					static class: java.lang.Class<android.content.pm.PackageManagerTests.SdUnMountReceiver>;
					public notifyNow(intent: android.content.Intent): boolean;
				}
				export class PackageMoveObserver {
					returnCode: number;
					packageName: string;
					static class: java.lang.Class<android.content.pm.PackageManagerTests.PackageMoveObserver>;
					public packageMoved(packageName: string, returnCode: number): void;
					public isDone(): boolean;
				}
			}
			/**
			 * Overall information about the contents of a package. This corresponds to all of the information collected from AndroidManifest.xml.
			 */
			export class PackageInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * The name of this package. From the &lt;manifest&gt; tag's "name" attribute.
				 */
				packageName: string;
				/**
				 * The version number of this package, as specified by the &lt;manifest&gt; tag's android.R.styleable#AndroidManifest_versionCode versionCode attribute.
				 */
				versionCode: number;
				/**
				 * The version name of this package, as specified by the &lt;manifest&gt; tag's android.R.styleable#AndroidManifest_versionName versionName attribute.
				 */
				versionName: string;
				/**
				 * The shared user ID name of this package, as specified by the &lt;manifest&gt; tag's android.R.styleable#AndroidManifest_sharedUserId sharedUserId attribute.
				 */
				sharedUserId: string;
				/**
				 * The shared user ID label of this package, as specified by the &lt;manifest&gt; tag's android.R.styleable#AndroidManifest_sharedUserLabel sharedUserLabel attribute.
				 */
				sharedUserLabel: number;
				/**
				 * Information collected from the &lt;application&gt; tag, or null if there was none.
				 */
				applicationInfo: android.content.pm.ApplicationInfo;
				/**
				 * The time at which the app was first installed. Units are as per System#currentTimeMillis().
				 */
				firstInstallTime: number;
				/**
				 * The time at which the app was last updated. Units are as per System#currentTimeMillis().
				 */
				lastUpdateTime: number;
				/**
				 * All kernel group-IDs that have been assigned to this package. This is only filled in if the flag PackageManager#GET_GIDS was set.
				 */
				gids: native.Array<number>;
				/**
				 * Array of all android.R.styleable#AndroidManifestActivity &lt;activity&gt; tags included under &lt;application&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_ACTIVITIES was set.
				 */
				activities: native.Array<android.content.pm.ActivityInfo>;
				/**
				 * Array of all android.R.styleable#AndroidManifestReceiver &lt;receiver&gt; tags included under &lt;application&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_RECEIVERS was set.
				 */
				receivers: native.Array<android.content.pm.ActivityInfo>;
				/**
				 * Array of all android.R.styleable#AndroidManifestService &lt;service&gt; tags included under &lt;application&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_SERVICES was set.
				 */
				services: native.Array<android.content.pm.ServiceInfo>;
				/**
				 * Array of all android.R.styleable#AndroidManifestProvider &lt;provider&gt; tags included under &lt;application&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_PROVIDERS was set.
				 */
				providers: native.Array<android.content.pm.ProviderInfo>;
				/**
				 * Array of all android.R.styleable#AndroidManifestInstrumentation &lt;instrumentation&gt; tags included under &lt;manifest&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_INSTRUMENTATION was set.
				 */
				instrumentation: native.Array<android.content.pm.InstrumentationInfo>;
				/**
				 * Array of all android.R.styleable#AndroidManifestPermission &lt;permission&gt; tags included under &lt;manifest&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_PERMISSIONS was set.
				 */
				permissions: native.Array<android.content.pm.PermissionInfo>;
				/**
				 * Array of all android.R.styleable#AndroidManifestUsesPermission &lt;uses-permission&gt; tags included under &lt;manifest&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_PERMISSIONS was set. This list includes all permissions requested, even those that were not granted or known by the system at install time.
				 */
				requestedPermissions: native.Array<string>;
				/**
				 * Array of flags of all android.R.styleable#AndroidManifestUsesPermission &lt;uses-permission&gt; tags included under &lt;manifest&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_PERMISSIONS was set. Each value matches the corresponding entry in #requestedPermissions, and will have the flags #REQUESTED_PERMISSION_REQUIRED and #REQUESTED_PERMISSION_GRANTED set as appropriate.
				 */
				requestedPermissionsFlags: native.Array<number>;
				/**
				 * Flag for #requestedPermissionsFlags: the requested permission is required for the application to run; the user can not optionally disable it. Currently all permissions are required.
				 */
				static REQUESTED_PERMISSION_REQUIRED: number;
				/**
				 * Flag for #requestedPermissionsFlags: the requested permission is currently granted to the application.
				 */
				static REQUESTED_PERMISSION_GRANTED: number;
				/**
				 * Array of all signatures read from the package file. This is only filled in if the flag PackageManager#GET_SIGNATURES was set.
				 */
				signatures: native.Array<android.content.pm.Signature>;
				/**
				 * Application specified preferred configuration android.R.styleable#AndroidManifestUsesConfiguration &lt;uses-configuration&gt; tags included under &lt;manifest&gt;, or null if there were none. This is only filled in if the flag PackageManager#GET_CONFIGURATIONS was set.
				 */
				configPreferences: native.Array<android.content.pm.ConfigurationInfo>;
				/**
				 * The features that this application has said it requires.
				 */
				reqFeatures: native.Array<android.content.pm.FeatureInfo>;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.PackageInfo>;
				static class: java.lang.Class<android.content.pm.PackageInfo>;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * Description of permissions needed to access a particular path in a ProviderInfo.
			 */
			export class PathPermission extends android.os.PatternMatcher {
				constructor(pattern: string, type: number, readPermission: string, writePermission: string);
				constructor(src: android.os.Parcel);
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.PathPermission>;
				static class: java.lang.Class<android.content.pm.PathPermission>;
				public getReadPermission(): string;
				public getWritePermission(): string;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * Tests the android.content.pm.VerificationParams class
			 */
			export class VerificationParamsTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.content.pm.VerificationParamsTest>;
				public testParcel(): void;
				public testEquals_Success(): void;
				public testEquals_VerificationUri_Failure(): void;
				public testEquals_OriginatingUri_Failure(): void;
				public testEquals_Referrer_Failure(): void;
				public testEquals_Originating_Uid_Failure(): void;
				public testEquals_ManifestDigest_Failure(): void;
				public testEquals_InstallerUid_Failure(): void;
				public testHashCode_Success(): void;
				public testHashCode_VerificationUri_Failure(): void;
				public testHashCode_OriginatingUri_Failure(): void;
				public testHashCode_Referrer_Failure(): void;
				public testHashCode_Originating_Uid_Failure(): void;
				public testHashCode_ManifestDigest_Failure(): void;
				public testHashCode_InstallerUid_Failure(): void;
			}
			export class ContainerEncryptionParamsTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.content.pm.ContainerEncryptionParamsTest>;
				public testParcel(): void;
				public testEquals_Success(): void;
				public testEquals_EncAlgo_Failure(): void;
				public testEquals_EncParams_Failure(): void;
				public testEquals_EncKey_Failure(): void;
				public testEquals_MacAlgo_Failure(): void;
				public testEquals_MacKey_Failure(): void;
				public testEquals_MacTag_Failure(): void;
				public testEquals_AuthenticatedStart_Failure(): void;
				public testEquals_EncryptedStart_Failure(): void;
				public testEquals_DataEnd_Failure(): void;
				public testHashCode_Success(): void;
				public testHashCode_EncAlgo_Failure(): void;
				public testHashCode_EncParams_Failure(): void;
				public testHashCode_EncKey_Failure(): void;
				public testHashCode_MacAlgo_Failure(): void;
				public testHashCode_MacKey_Failure(): void;
				public testHashCode_MacTag_Failure(): void;
				public testHashCode_AuthenticatedStart_Failure(): void;
				public testHashCode_EncryptedStart_Failure(): void;
				public testHashCode_DataEnd_Failure(): void;
			}
			/**
			 * Information you can retrieve about hardware configuration preferences declared by an application. This corresponds to information collected from the AndroidManifest.xml's &lt;uses-configuration&gt; and &lt;uses-feature&gt; tags.
			 */
			export class ConfigurationInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.ConfigurationInfo);
				/**
				 * The kind of touch screen attached to the device. One of: android.content.res.Configuration#TOUCHSCREEN_NOTOUCH, android.content.res.Configuration#TOUCHSCREEN_STYLUS, android.content.res.Configuration#TOUCHSCREEN_FINGER.
				 */
				reqTouchScreen: number;
				/**
				 * Application's input method preference. One of: android.content.res.Configuration#KEYBOARD_UNDEFINED, android.content.res.Configuration#KEYBOARD_NOKEYS, android.content.res.Configuration#KEYBOARD_QWERTY, android.content.res.Configuration#KEYBOARD_12KEY
				 */
				reqKeyboardType: number;
				/**
				 * A flag indicating whether any keyboard is available. one of: android.content.res.Configuration#NAVIGATION_UNDEFINED, android.content.res.Configuration#NAVIGATION_DPAD, android.content.res.Configuration#NAVIGATION_TRACKBALL, android.content.res.Configuration#NAVIGATION_WHEEL
				 */
				reqNavigation: number;
				/**
				 * Value for #reqInputFeatures: if set, indicates that the application requires a hard keyboard
				 */
				static INPUT_FEATURE_HARD_KEYBOARD: number;
				/**
				 * Value for #reqInputFeatures: if set, indicates that the application requires a five way navigation device
				 */
				static INPUT_FEATURE_FIVE_WAY_NAV: number;
				/**
				 * Flags associated with the input features. Any combination of #INPUT_FEATURE_HARD_KEYBOARD, #INPUT_FEATURE_FIVE_WAY_NAV
				 */
				reqInputFeatures: number;
				/**
				 * Default value for #reqGlEsVersion;
				 */
				static GL_ES_VERSION_UNDEFINED: number;
				/**
				 * The GLES version used by an application. The upper order 16 bits represent the major version and the lower order 16 bits the minor version.
				 */
				reqGlEsVersion: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.ConfigurationInfo>;
				static class: java.lang.Class<android.content.pm.ConfigurationInfo>;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
				/**
				 * This method extracts the major and minor version of reqGLEsVersion attribute and returns it as a string. Say reqGlEsVersion value of 0x00010002 is returned as 1.2
				 */
				public getGlEsVersion(): string;
			}
			/**
			 * Information you can retrieve about a particular security permission known to the system. This corresponds to information collected from the AndroidManifest.xml's &lt;permission&gt; tags.
			 */
			export class PermissionInfo extends android.content.pm.PackageItemInfo implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.PermissionInfo);
				/**
				 * A normal application value for #protectionLevel, corresponding to the <code>normal</code> value of android.R.attr#protectionLevel.
				 */
				static PROTECTION_NORMAL: number;
				/**
				 * Dangerous value for #protectionLevel, corresponding to the <code>dangerous</code> value of android.R.attr#protectionLevel.
				 */
				static PROTECTION_DANGEROUS: number;
				/**
				 * System-level value for #protectionLevel, corresponding to the <code>signature</code> value of android.R.attr#protectionLevel.
				 */
				static PROTECTION_SIGNATURE: number;
				/**
				 * System-level value for #protectionLevel, corresponding to the <code>signatureOrSystem</code> value of android.R.attr#protectionLevel.
				 */
				static PROTECTION_SIGNATURE_OR_SYSTEM: number;
				/**
				 * Additional flag for #protectionLevel, corresponding to the <code>system</code> value of android.R.attr#protectionLevel.
				 */
				static PROTECTION_FLAG_SYSTEM: number;
				/**
				 * Additional flag for #protectionLevel, corresponding to the <code>development</code> value of android.R.attr#protectionLevel.
				 */
				static PROTECTION_FLAG_DEVELOPMENT: number;
				/**
				 * Mask for #protectionLevel: the basic protection type.
				 */
				static PROTECTION_MASK_BASE: number;
				/**
				 * Mask for #protectionLevel: additional flag bits.
				 */
				static PROTECTION_MASK_FLAGS: number;
				/**
				 * The level of access this permission is protecting, as per android.R.attr#protectionLevel. Values may be #PROTECTION_NORMAL, #PROTECTION_DANGEROUS, or #PROTECTION_SIGNATURE. May also include the additional flags #PROTECTION_FLAG_SYSTEM or #PROTECTION_FLAG_DEVELOPMENT (which only make sense in combination with the base #PROTECTION_SIGNATURE.
				 */
				protectionLevel: number;
				/**
				 * The group this permission is a part of, as per android.R.attr#permissionGroup.
				 */
				group: string;
				/**
				 * Flag for #flags, corresponding to <code>costsMoney</code> value of android.R.attr#permissionFlags.
				 */
				static FLAG_COSTS_MONEY: number;
				/**
				 * Additional flags about this permission as given by android.R.attr#permissionFlags.
				 */
				flags: number;
				/**
				 * A string resource identifier (in the package's resources) of this permission's description. From the "description" attribute or, if not set, 0.
				 */
				descriptionRes: number;
				/**
				 * The description string provided in the AndroidManifest file, if any. You probably don't want to use this, since it will be null if the description is in a resource. You probably want PermissionInfo#loadDescription instead.
				 */
				nonLocalizedDescription: string;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.PermissionInfo>;
				static class: java.lang.Class<android.content.pm.PermissionInfo>;
				/**
				 * Retrieve the textual description of this permission. This will call back on the given PackageManager to load the description from the application.
				 * @param pm A PackageManager from which the label can be loaded; usually
				 */
				public loadDescription(pm: android.content.pm.PackageManager): string;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * Information you can retrieve about a particular piece of test instrumentation. This corresponds to information collected from the AndroidManifest.xml's &lt;instrumentation&gt; tag.
			 */
			export class InstrumentationInfo extends android.content.pm.PackageItemInfo implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.InstrumentationInfo);
				/**
				 * The name of the application package being instrumented. From the "package" attribute.
				 */
				targetPackage: string;
				/**
				 * Full path to the location of this package.
				 */
				sourceDir: string;
				/**
				 * Full path to the location of the publicly available parts of this package (i.e. the resources and manifest). For non-forward-locked apps this will be the same as { #sourceDir).
				 */
				publicSourceDir: string;
				/**
				 * Full path to a directory assigned to the package for its persistent data.
				 */
				dataDir: string;
				/**
				 * Specifies whether or not this instrumentation will handle profiling.
				 */
				handleProfiling: boolean;
				/**
				 * Specifies whether or not to run this instrumentation as a functional test
				 */
				functionalTest: boolean;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.InstrumentationInfo>;
				static class: java.lang.Class<android.content.pm.InstrumentationInfo>;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * Opaque, immutable representation of a signature associated with an application package.
			 */
			export class Signature extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Create Signature from an existing raw byte array.
				 */
				constructor(signature: native.Array<number>);
				/**
				 * Create Signature from a text representation previously returned by #toChars or #toCharsString(). Signatures are expected to be a hex-encoded ASCII string.
				 * @param text hex-encoded string representing the signature
				 */
				constructor(text: string);
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.Signature>;
				static class: java.lang.Class<android.content.pm.Signature>;
				/**
				 * Encode the Signature as ASCII text.
				 */
				public toChars(): native.Array<string>;
				/**
				 * Encode the Signature as ASCII text in to an existing array.
				 * @param existingArray Existing char array or null.
				 * @param outLen Output parameter for the number of characters written in
				 */
				public toChars(existingArray: native.Array<string>, outLen: native.Array<number>): native.Array<string>;
				/**
				 * Return the result of #toChars() as a String.
				 */
				public toCharsString(): string;
				public toByteArray(): native.Array<number>;
				public equals(obj: any): boolean;
				public hashCode(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * Information you can retrieve about a particular security permission group known to the system. This corresponds to information collected from the AndroidManifest.xml's &lt;permission-group&gt; tags.
			 */
			export class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.IParcelable {
				constructor();
				constructor(orig: android.content.pm.PermissionGroupInfo);
				/**
				 * A string resource identifier (in the package's resources) of this permission's description. From the "description" attribute or, if not set, 0.
				 */
				descriptionRes: number;
				/**
				 * The description string provided in the AndroidManifest file, if any. You probably don't want to use this, since it will be null if the description is in a resource. You probably want PermissionInfo#loadDescription instead.
				 */
				nonLocalizedDescription: string;
				/**
				 * Flag for #flags, corresponding to <code>personalInfo</code> value of android.R.attr#permissionGroupFlags.
				 */
				static FLAG_PERSONAL_INFO: number;
				/**
				 * Additional flags about this group as given by android.R.attr#permissionGroupFlags.
				 */
				flags: number;
				/**
				 * Prioritization of this group, for visually sorting with other groups.
				 */
				priority: number;
				static CREATOR: android.os.Parcelable.ICreator<android.content.pm.PermissionGroupInfo>;
				static class: java.lang.Class<android.content.pm.PermissionGroupInfo>;
				/**
				 * Retrieve the textual description of this permission. This will call back on the given PackageManager to load the description from the application.
				 * @param pm A PackageManager from which the label can be loaded; usually
				 */
				public loadDescription(pm: android.content.pm.PackageManager): string;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * Base class containing information common to all application components (ActivityInfo, ServiceInfo). This class is not intended to be used by itself; it is simply here to share common definitions between all application components. As such, it does not itself implement Parcelable, but does provide convenience methods to assist in the implementation of Parcelable in subclasses.
			 */
			export class ComponentInfo extends android.content.pm.PackageItemInfo {
				constructor();
				constructor(orig: android.content.pm.ComponentInfo);
				/**
				 * Global information about the application/package this component is a part of.
				 */
				applicationInfo: android.content.pm.ApplicationInfo;
				/**
				 * The name of the process this component should run in. From the "android:process" attribute or, if not set, the same as <var>applicationInfo.processName</var>.
				 */
				processName: string;
				/**
				 * A string resource identifier (in the package's resources) containing a user-readable description of the component. From the "description" attribute or, if not set, 0.
				 */
				descriptionRes: number;
				/**
				 * Indicates whether or not this component may be instantiated. Note that this value can be overriden by the one in its parent ApplicationInfo.
				 */
				enabled: boolean;
				/**
				 * Set to true if this component is available for use by other applications. Comes from android.R.attr#exported android:exported of the &lt;activity&gt;, &lt;receiver&gt;, &lt;service&gt;, or &lt;provider&gt; tag.
				 */
				exported: boolean;
				static class: java.lang.Class<android.content.pm.ComponentInfo>;
				public loadLabel(pm: android.content.pm.PackageManager): string;
				/**
				 * Return whether this component and its enclosing application are enabled.
				 */
				public isEnabled(): boolean;
				/**
				 * Return the icon resource identifier to use for this component. If the component defines an icon, that is used; else, the application icon is used. 
				 */
				public getIconResource(): number;
				protected dumpFront(pw: android.util.IPrinter, prefix: string): void;
				protected dumpBack(pw: android.util.IPrinter, prefix: string): void;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
		}
		/**
		 * Simple test provider that runs in the local process.
		 */
		export class MemoryFileProvider extends android.content.ContentProvider {
			constructor();
			static TEST_BLOB: native.Array<number>;
			static class: java.lang.Class<android.content.MemoryFileProvider>;
			public onCreate(): boolean;
			public query(url: android.net.Uri, projectionIn: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sort: string): android.database.ICursor;
			public getType(url: android.net.Uri): string;
			public openFile(url: android.net.Uri, mode: string): android.os.ParcelFileDescriptor;
			public update(url: android.net.Uri, values: android.content.ContentValues, where: string, whereArgs: native.Array<string>): number;
			public insert(url: android.net.Uri, initialValues: android.content.ContentValues): android.net.Uri;
			public delete(url: android.net.Uri, where: string, whereArgs: native.Array<string>): number;
			/**
			 * Implement this to handle query requests from clients with support for cancellation. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI to query. This will be the full URI sent by the client;
			 * @param projection The list of columns to put into the cursor. If
			 * @param selection A selection criteria to apply when filtering rows.
			 * @param selectionArgs You may include ?s in selection, which will be replaced by
			 * @param sortOrder How the rows in the cursor should be sorted.
			 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
			 */
			query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
		}
		export module MemoryFileProvider {
			export class DatabaseHelper extends android.database.sqlite.SQLiteOpenHelper {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.content.MemoryFileProvider.DatabaseHelper>;
				public onCreate(db: android.database.sqlite.SQLiteDatabase): void;
				public onUpgrade(db: android.database.sqlite.SQLiteDatabase, oldVersion: number, currentVersion: number): void;
			}
		}
		/**
		 * Meta-data describing the contents of a ClipData. Provides enough information to know if you can handle the ClipData, but not the data itself.
		 */
		export class ClipDescription extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create a new clip.
			 * @param label Label to show to the user describing this clip.
			 * @param mimeTypes An array of MIME types this data is available as.
			 */
			constructor(label: string, mimeTypes: native.Array<string>);
			/**
			 * Create a copy of a ClipDescription.
			 */
			constructor(o: android.content.ClipDescription);
			/**
			 * The MIME type for a clip holding plain text.
			 */
			static MIMETYPE_TEXT_PLAIN: string;
			/**
			 * The MIME type for a clip holding HTML text.
			 */
			static MIMETYPE_TEXT_HTML: string;
			/**
			 * The MIME type for a clip holding one or more URIs. This should be used for URIs that are meaningful to a user (such as an http: URI). It should <em>not</em> be used for a content: URI that references some other piece of data; in that case the MIME type should be the type of the referenced data.
			 */
			static MIMETYPE_TEXT_URILIST: string;
			/**
			 * The MIME type for a clip holding an Intent.
			 */
			static MIMETYPE_TEXT_INTENT: string;
			static CREATOR: android.os.Parcelable.ICreator<android.content.ClipDescription>;
			static class: java.lang.Class<android.content.ClipDescription>;
			/**
			 * Helper to compare two MIME types, where one may be a pattern.
			 * @param concreteType A fully-specified MIME type.
			 * @param desiredType A desired MIME type that may be a pattern such as *\/*.
			 */
			public static compareMimeTypes(concreteType: string, desiredType: string): boolean;
			/**
			 * Return the label for this clip.
			 */
			public getLabel(): string;
			/**
			 * Check whether the clip description contains the given MIME type.
			 * @param mimeType The desired MIME type. May be a pattern.
			 */
			public hasMimeType(mimeType: string): boolean;
			/**
			 * Filter the clip description MIME types by the given MIME type. Returns all MIME types in the clip that match the given MIME type.
			 * @param mimeType The desired MIME type. May be a pattern.
			 */
			public filterMimeTypes(mimeType: string): native.Array<string>;
			/**
			 * Return the number of MIME types the clip is available in.
			 */
			public getMimeTypeCount(): number;
			/**
			 * Return one of the possible clip MIME types.
			 */
			public getMimeType(index: number): string;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
	}
	export module gesture {
		/**
		 * An implementation of an instance-based learner
		 */
		export class InstanceLearner extends android.gesture.Learner {
			static class: java.lang.Class<android.gesture.InstanceLearner>;
			classify(sequenceType: number, orientationType: number, vector: native.Array<number>): java.util.ArrayList<android.gesture.Prediction>;
		}
		/**
		 * A timed point of a gesture stroke. Multiple points form a stroke.
		 */
		export class GesturePoint extends java.lang.Object {
			constructor(x: number, y: number, t: number);
			x: number;
			y: number;
			timestamp: number;
			static class: java.lang.Class<android.gesture.GesturePoint>;
			static deserialize(input: java.io.DataInputStream): android.gesture.GesturePoint;
			public clone(): any;
		}
		/**
		 * Utility functions for gesture processing & analysis, including methods for: <ul> <li>feature extraction (e.g., samplers and those for calculating bounding boxes and gesture path lengths); <li>geometric transformation (e.g., translation, rotation and scaling); <li>gesture similarity comparison (e.g., calculating Euclidean or Cosine distances between two gestures). </ul>
		 */
		export class GestureUtils extends java.lang.Object {
			static class: java.lang.Class<android.gesture.GestureUtils>;
			/**
			 * Closes the specified stream.
			 * @param stream The stream to close.
			 */
			static closeStream(stream: java.io.ICloseable): void;
			/**
			 * Samples the gesture spatially by rendering the gesture into a 2D grayscale bitmap. Scales the gesture to fit the size of the bitmap. The scaling does not necessarily keep the aspect ratio of the gesture. 
			 * @param gesture the gesture to be sampled
			 * @param bitmapSize the size of the bitmap
			 */
			public static spatialSampling(gesture: android.gesture.Gesture, bitmapSize: number): native.Array<number>;
			/**
			 * Samples the gesture spatially by rendering the gesture into a 2D grayscale bitmap. Scales the gesture to fit the size of the bitmap. 
			 * @param gesture the gesture to be sampled
			 * @param bitmapSize the size of the bitmap
			 * @param keepAspectRatio if the scaling should keep the gesture's
			 */
			public static spatialSampling(gesture: android.gesture.Gesture, bitmapSize: number, keepAspectRatio: boolean): native.Array<number>;
			/**
			 * Samples a stroke temporally into a given number of evenly-distributed points. 
			 * @param stroke the gesture stroke to be sampled
			 * @param numPoints the number of points
			 */
			public static temporalSampling(stroke: android.gesture.GestureStroke, numPoints: number): native.Array<number>;
			/**
			 * Calculates the centroid of a set of points. 
			 * @param points the points in the form of [x1, y1, x2, y2, ..., xn, yn]
			 */
			static computeCentroid(points: native.Array<number>): native.Array<number>;
			static computeTotalLength(points: native.Array<number>): number;
			static computeStraightness(points: native.Array<number>): number;
			static computeStraightness(points: native.Array<number>, totalLen: number): number;
			/**
			 * Calculates the squared Euclidean distance between two vectors. 
			 * @param vector1 
			 * @param vector2 
			 */
			static squaredEuclideanDistance(vector1: native.Array<number>, vector2: native.Array<number>): number;
			/**
			 * Calculates the cosine distance between two instances. 
			 * @param vector1 
			 * @param vector2 
			 */
			static cosineDistance(vector1: native.Array<number>, vector2: native.Array<number>): number;
			/**
			 * Calculates the "minimum" cosine distance between two instances. 
			 * @param vector1 
			 * @param vector2 
			 * @param numOrientations the maximum number of orientation allowed
			 */
			static minimumCosineDistance(vector1: native.Array<number>, vector2: native.Array<number>, numOrientations: number): number;
			/**
			 * Computes an oriented, minimum bounding box of a set of points. 
			 * @param originalPoints 
			 */
			public static computeOrientedBoundingBox(originalPoints: java.util.ArrayList<android.gesture.GesturePoint>): android.gesture.OrientedBoundingBox;
			/**
			 * Computes an oriented, minimum bounding box of a set of points. 
			 * @param originalPoints 
			 */
			public static computeOrientedBoundingBox(originalPoints: native.Array<number>): android.gesture.OrientedBoundingBox;
			static rotate(points: native.Array<number>, angle: number): native.Array<number>;
			static translate(points: native.Array<number>, dx: number, dy: number): native.Array<number>;
			static scale(points: native.Array<number>, sx: number, sy: number): native.Array<number>;
		}
		/**
		 * An instance represents a sample if the label is available or a query if the label is null.
		 */
		export class Instance extends java.lang.Object {
			static class: java.lang.Class<android.gesture.Instance>;
			/**
			 * create a learning instance for a single stroke gesture 
			 * @param sequenceType gesture
			 * @param orientationType label
			 * @param gesture 
			 * @param label 
			 */
			static createInstance(sequenceType: number, orientationType: number, gesture: android.gesture.Gesture, label: string): android.gesture.Instance;
		}
		export class Prediction extends java.lang.Object {
			name: string;
			score: number;
			static class: java.lang.Class<android.gesture.Prediction>;
			public toString(): string;
		}
		/**
		 * GestureLibrary maintains gesture examples and makes predictions on a new gesture
		 */
		export class GestureStore extends java.lang.Object {
			constructor();
			static SEQUENCE_INVARIANT: number;
			static SEQUENCE_SENSITIVE: number;
			static ORIENTATION_INVARIANT: number;
			static ORIENTATION_SENSITIVE: number;
			static class: java.lang.Class<android.gesture.GestureStore>;
			/**
			 * Specify how the gesture library will handle orientation. Use ORIENTATION_INVARIANT or ORIENTATION_SENSITIVE 
			 * @param style 
			 */
			public setOrientationStyle(style: number): void;
			public getOrientationStyle(): number;
			/**
			 * @param type SEQUENCE_INVARIANT or SEQUENCE_SENSITIVE
			 */
			public setSequenceType(type: number): void;
			public getSequenceType(): number;
			/**
			 * Get all the gesture entry names in the library 
			 */
			public getGestureEntries(): java.util.ISet<string>;
			/**
			 * Recognize a gesture 
			 * @param gesture the query
			 */
			public recognize(gesture: android.gesture.Gesture): java.util.ArrayList<android.gesture.Prediction>;
			/**
			 * Add a gesture for the entry 
			 * @param entryName entry name
			 * @param gesture 
			 */
			public addGesture(entryName: string, gesture: android.gesture.Gesture): void;
			/**
			 * Remove a gesture from the library. If there are no more gestures for the given entry, the gesture entry will be removed. 
			 * @param entryName entry name
			 * @param gesture 
			 */
			public removeGesture(entryName: string, gesture: android.gesture.Gesture): void;
			/**
			 * Remove a entry of gestures 
			 * @param entryName the entry name
			 */
			public removeEntry(entryName: string): void;
			/**
			 * Get all the gestures of an entry 
			 * @param entryName 
			 */
			public getGestures(entryName: string): java.util.ArrayList<android.gesture.Gesture>;
			public hasChanged(): boolean;
			/**
			 * Save the gesture library
			 */
			public save(stream: java.io.OutputStream): void;
			public save(stream: java.io.OutputStream, closeStream: boolean): void;
			/**
			 * Load the gesture library
			 */
			public load(stream: java.io.InputStream): void;
			public load(stream: java.io.InputStream, closeStream: boolean): void;
			getLearner(): android.gesture.Learner;
		}
		export class GestureConstants implements android.gesture.IGestureConstants {
			constructor(implementation: android.gesture.IGestureConstants);
			static STROKE_STRING_BUFFER_SIZE: number;
			static STROKE_POINT_BUFFER_SIZE: number;
			static IO_BUFFER_SIZE: number;
			static LOG_TAG: string;
		}
		/**
		 * A transparent overlay for gesture input that can be placed on top of other widgets or contain other widgets.
		 */
		export class GestureOverlayView extends android.widget.FrameLayout {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static GESTURE_STROKE_TYPE_SINGLE: number;
			static GESTURE_STROKE_TYPE_MULTIPLE: number;
			static ORIENTATION_HORIZONTAL: number;
			static ORIENTATION_VERTICAL: number;
			static class: java.lang.Class<android.gesture.GestureOverlayView>;
			public getCurrentStroke(): java.util.ArrayList<android.gesture.GesturePoint>;
			public getOrientation(): number;
			public setOrientation(orientation: number): void;
			public setGestureColor(color: number): void;
			public setUncertainGestureColor(color: number): void;
			public getUncertainGestureColor(): number;
			public getGestureColor(): number;
			public getGestureStrokeWidth(): number;
			public setGestureStrokeWidth(gestureStrokeWidth: number): void;
			public getGestureStrokeType(): number;
			public setGestureStrokeType(gestureStrokeType: number): void;
			public getGestureStrokeLengthThreshold(): number;
			public setGestureStrokeLengthThreshold(gestureStrokeLengthThreshold: number): void;
			public getGestureStrokeSquarenessTreshold(): number;
			public setGestureStrokeSquarenessTreshold(gestureStrokeSquarenessTreshold: number): void;
			public getGestureStrokeAngleThreshold(): number;
			public setGestureStrokeAngleThreshold(gestureStrokeAngleThreshold: number): void;
			public isEventsInterceptionEnabled(): boolean;
			public setEventsInterceptionEnabled(enabled: boolean): void;
			public isFadeEnabled(): boolean;
			public setFadeEnabled(fadeEnabled: boolean): void;
			public getGesture(): android.gesture.Gesture;
			public setGesture(gesture: android.gesture.Gesture): void;
			public getGesturePath(): android.graphics.Path;
			public getGesturePath(path: android.graphics.Path): android.graphics.Path;
			public isGestureVisible(): boolean;
			public setGestureVisible(visible: boolean): void;
			public getFadeOffset(): any;
			public setFadeOffset(fadeOffset: number): void;
			public addOnGestureListener(listener: android.gesture.GestureOverlayView.IOnGestureListener): void;
			public removeOnGestureListener(listener: android.gesture.GestureOverlayView.IOnGestureListener): void;
			public removeAllOnGestureListeners(): void;
			public addOnGesturePerformedListener(listener: android.gesture.GestureOverlayView.IOnGesturePerformedListener): void;
			public removeOnGesturePerformedListener(listener: android.gesture.GestureOverlayView.IOnGesturePerformedListener): void;
			public removeAllOnGesturePerformedListeners(): void;
			public addOnGesturingListener(listener: android.gesture.GestureOverlayView.IOnGesturingListener): void;
			public removeOnGesturingListener(listener: android.gesture.GestureOverlayView.IOnGesturingListener): void;
			public removeAllOnGesturingListeners(): void;
			public isGesturing(): boolean;
			public draw(canvas: android.graphics.Canvas): void;
			public clear(animated: boolean): void;
			public cancelClearAnimation(): void;
			public cancelGesture(): void;
			protected onDetachedFromWindow(): void;
			public dispatchTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
		}
		export module GestureOverlayView {
			interface IOnGesturePerformedListener {
				onGesturePerformed(overlay: android.gesture.GestureOverlayView, gesture: android.gesture.Gesture): void;
			}
			export class OnGestureListener implements android.gesture.GestureOverlayView.IOnGestureListener {
				constructor(implementation: android.gesture.GestureOverlayView.IOnGestureListener);
				public onGestureStarted(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
				public onGesture(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
				public onGestureEnded(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
				public onGestureCancelled(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
			}
			export class FadeOutRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.gesture.GestureOverlayView.FadeOutRunnable>;
				public run(): void;
			}
			interface IOnGestureListener {
				onGestureStarted(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
				onGesture(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
				onGestureEnded(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
				onGestureCancelled(overlay: android.gesture.GestureOverlayView, event: android.view.MotionEvent): void;
			}
			interface IOnGesturingListener {
				onGesturingStarted(overlay: android.gesture.GestureOverlayView): void;
				onGesturingEnded(overlay: android.gesture.GestureOverlayView): void;
			}
			export class OnGesturingListener implements android.gesture.GestureOverlayView.IOnGesturingListener {
				constructor(implementation: android.gesture.GestureOverlayView.IOnGesturingListener);
				public onGesturingStarted(overlay: android.gesture.GestureOverlayView): void;
				public onGesturingEnded(overlay: android.gesture.GestureOverlayView): void;
			}
			export class OnGesturePerformedListener implements android.gesture.GestureOverlayView.IOnGesturePerformedListener {
				constructor(implementation: android.gesture.GestureOverlayView.IOnGesturePerformedListener);
				public onGesturePerformed(overlay: android.gesture.GestureOverlayView, gesture: android.gesture.Gesture): void;
			}
		}
		/**
		 * A gesture stroke started on a touch down and ended on a touch up. A stroke consists of a sequence of timed points. One or multiple strokes form a gesture.
		 */
		export class GestureStroke extends java.lang.Object {
			/**
			 * A constructor that constructs a gesture stroke from a list of gesture points. 
			 * @param points 
			 */
			constructor(points: java.util.ArrayList<android.gesture.GesturePoint>);
			boundingBox: android.graphics.RectF;
			length: number;
			points: native.Array<number>;
			static class: java.lang.Class<android.gesture.GestureStroke>;
			public clone(): any;
			/**
			 * Draws the stroke with a given canvas and paint. 
			 * @param canvas 
			 * @param paint 
			 */
			draw(canvas: android.graphics.Canvas, paint: android.graphics.Paint): void;
			public getPath(): android.graphics.Path;
			/**
			 * Converts the stroke to a Path of a given number of points. 
			 * @param width the width of the bounding box of the target path
			 * @param height the height of the bounding box of the target path
			 * @param numSample the number of points needed
			 */
			public toPath(width: number, height: number, numSample: number): android.graphics.Path;
			serialize(out: java.io.DataOutputStream): void;
			static deserialize(input: java.io.DataInputStream): android.gesture.GestureStroke;
			/**
			 * Invalidates the cached path that is used to render the stroke.
			 */
			public clearPath(): void;
			/**
			 * Computes an oriented bounding box of the stroke. 
			 */
			public computeOrientedBoundingBox(): android.gesture.OrientedBoundingBox;
		}
		/**
		 * The abstract class of a gesture learner
		 */
		export class Learner extends java.lang.Object {
			static class: java.lang.Class<android.gesture.Learner>;
			/**
			 * Add an instance to the learner 
			 * @param instance 
			 */
			addInstance(instance: android.gesture.Instance): void;
			/**
			 * Retrieve all the instances 
			 */
			getInstances(): java.util.ArrayList<android.gesture.Instance>;
			/**
			 * Remove an instance based on its id 
			 * @param id 
			 */
			removeInstance(id: number): void;
			/**
			 * Remove all the instances of a category 
			 * @param name the category name
			 */
			removeInstances(name: string): void;
			classify(sequenceType: number, orientationType: number, vector: native.Array<number>): java.util.ArrayList<android.gesture.Prediction>;
		}
		interface IGestureConstants {
		}
		export module IGestureConstants {
			var STROKE_STRING_BUFFER_SIZE: number;
			var STROKE_POINT_BUFFER_SIZE: number;
			var IO_BUFFER_SIZE: number;
			var LOG_TAG: string;
		}
		/**
		 * An oriented bounding box
		 */
		export class OrientedBoundingBox extends java.lang.Object {
			squareness: number;
			width: number;
			height: number;
			orientation: number;
			centerX: number;
			centerY: number;
			static class: java.lang.Class<android.gesture.OrientedBoundingBox>;
		}
		export class GestureLibrary extends java.lang.Object {
			static class: java.lang.Class<android.gesture.GestureLibrary>;
			public save(): boolean;
			public load(): boolean;
			public isReadOnly(): boolean;
			public setOrientationStyle(style: number): void;
			public getOrientationStyle(): number;
			public setSequenceType(type: number): void;
			public getSequenceType(): number;
			public getGestureEntries(): java.util.ISet<string>;
			public recognize(gesture: android.gesture.Gesture): java.util.ArrayList<android.gesture.Prediction>;
			public addGesture(entryName: string, gesture: android.gesture.Gesture): void;
			public removeGesture(entryName: string, gesture: android.gesture.Gesture): void;
			public removeEntry(entryName: string): void;
			public getGestures(entryName: string): java.util.ArrayList<android.gesture.Gesture>;
		}
		/**
		 * A gesture is a hand-drawn shape on a touch screen. It can have one or multiple strokes. Each stroke is a sequence of timed points. A user-defined gesture can be recognized by a GestureLibrary.
		 */
		export class Gesture extends java.lang.Object implements android.os.IParcelable {
			constructor();
			static CREATOR: android.os.Parcelable.ICreator<android.gesture.Gesture>;
			static class: java.lang.Class<android.gesture.Gesture>;
			public clone(): any;
			public getStrokes(): java.util.ArrayList<android.gesture.GestureStroke>;
			public getStrokesCount(): number;
			/**
			 * Adds a stroke to the gesture. 
			 * @param stroke 
			 */
			public addStroke(stroke: android.gesture.GestureStroke): void;
			/**
			 * Calculates the total length of the gesture. When there are multiple strokes in the gesture, this returns the sum of the lengths of all the strokes. 
			 */
			public getLength(): number;
			public getBoundingBox(): android.graphics.RectF;
			public toPath(): android.graphics.Path;
			public toPath(path: android.graphics.Path): android.graphics.Path;
			public toPath(width: number, height: number, edge: number, numSample: number): android.graphics.Path;
			public toPath(path: android.graphics.Path, width: number, height: number, edge: number, numSample: number): android.graphics.Path;
			/**
			 * Sets the id of the gesture. 
			 * @param id 
			 */
			setID(id: number): void;
			public getID(): any;
			/**
			 * Creates a bitmap of the gesture with a transparent background. 
			 * @param width width of the target bitmap
			 * @param height height of the target bitmap
			 * @param edge the edge
			 * @param numSample 
			 * @param color 
			 */
			public toBitmap(width: number, height: number, edge: number, numSample: number, color: number): android.graphics.Bitmap;
			/**
			 * Creates a bitmap of the gesture with a transparent background. 
			 * @param width 
			 * @param height 
			 * @param inset 
			 * @param color 
			 */
			public toBitmap(width: number, height: number, inset: number, color: number): android.graphics.Bitmap;
			serialize(out: java.io.DataOutputStream): void;
			static deserialize(input: java.io.DataInputStream): android.gesture.Gesture;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			public describeContents(): number;
		}
		export class GestureLibraries extends java.lang.Object {
			static class: java.lang.Class<android.gesture.GestureLibraries>;
			public static fromFile(path: string): android.gesture.GestureLibrary;
			public static fromFile(path: java.io.File): android.gesture.GestureLibrary;
			public static fromPrivateFile(context: android.content.Context, name: string): android.gesture.GestureLibrary;
			public static fromRawResource(context: android.content.Context, resourceId: number): android.gesture.GestureLibrary;
		}
		export module GestureLibraries {
			export class FileGestureLibrary extends android.gesture.GestureLibrary {
				constructor(path: java.io.File);
				static class: java.lang.Class<android.gesture.GestureLibraries.FileGestureLibrary>;
				public isReadOnly(): boolean;
				public save(): boolean;
				public load(): boolean;
			}
			export class ResourceGestureLibrary extends android.gesture.GestureLibrary {
				constructor(context: android.content.Context, resourceId: number);
				static class: java.lang.Class<android.gesture.GestureLibraries.ResourceGestureLibrary>;
				public isReadOnly(): boolean;
				public save(): boolean;
				public load(): boolean;
			}
		}
	}
	export module view {
		/**
		 * This activity contains Views with various widths and heights. The goal is to exercise the drawing cache when width is null, height is null or both.
		 */
		export class ZeroSized extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.ZeroSized>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		export module accessibility {
			/**
			 * This interface is implemented by classes source of AccessibilityEvents.
			 */
			export class AccessibilityEventSource implements android.view.accessibility.IAccessibilityEventSource {
				constructor(implementation: android.view.accessibility.IAccessibilityEventSource);
				/**
				 * Handles the request for sending an AccessibilityEvent given the event type. The method must first check if accessibility is on via calling AccessibilityManager#isEnabled() AccessibilityManager.isEnabled(), obtain an AccessibilityEvent from the event pool through calling AccessibilityEvent#obtain(int) AccessibilityEvent.obtain(int), populate the event, and send it for dispatch via calling AccessibilityManager#sendAccessibilityEvent(AccessibilityEvent) AccessibilityManager.sendAccessibilityEvent(AccessibilityEvent).
				 * @param eventType The event type.
				 */
				public sendAccessibilityEvent(eventType: number): void;
				/**
				 * Handles the request for sending an AccessibilityEvent. The method does not guarantee to check if accessibility is on before sending the event for dispatch. It is responsibility of the caller to do the check via calling AccessibilityManager#isEnabled() AccessibilityManager.isEnabled().
				 * @param event The event.
				 */
				public sendAccessibilityEventUnchecked(event: android.view.accessibility.AccessibilityEvent): void;
			}
			/**
			 * This class exercises the caching and recycling of AccessibilityEvents.
			 */
			export class RecycleAccessibilityEventTest {
				constructor();
				static class: java.lang.Class<android.view.accessibility.RecycleAccessibilityEventTest>;
				/**
				 * If an AccessibilityEvent is marshaled/unmarshaled correctly
				 */
				public testAccessibilityEventViewTextChangedType(): void;
			}
			/**
			 * Represents a record in an AccessibilityEvent and contains information about state change of its source android.view.View. When a view fires an accessibility event it requests from its parent to dispatch the constructed event. The parent may optionally append a record for itself for providing more context to android.accessibilityservice.AccessibilityServices. Hence, accessibility services can facilitate additional accessibility records to enhance feedback. </p>
			 */
			export class AccessibilityRecord extends java.lang.Object {
				static class: java.lang.Class<android.view.accessibility.AccessibilityRecord>;
				/**
				 * Sets the event source.
				 * @param source The source.
				 */
				public setSource(source: android.view.View): void;
				/**
				 * Sets the source to be a virtual descendant of the given <code>root</code>. If <code>virtualDescendantId</code> equals to View#NO_ID the root is set as the source.
				 * @param root The root of the virtual subtree.
				 * @param virtualDescendantId The id of the virtual descendant.
				 */
				public setSource(root: android.view.View, virtualDescendantId: number): void;
				/**
				 * Gets the AccessibilityNodeInfo of the event source.
				 */
				public getSource(): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Gets the id of the window from which the event comes from.
				 */
				public getWindowId(): number;
				/**
				 * Gets if the source is checked.
				 */
				public isChecked(): boolean;
				/**
				 * Sets if the source is checked.
				 * @param isChecked True if the view is checked, false otherwise.
				 */
				public setChecked(isChecked: boolean): void;
				/**
				 * Gets if the source is enabled.
				 */
				public isEnabled(): boolean;
				/**
				 * Sets if the source is enabled.
				 * @param isEnabled True if the view is enabled, false otherwise.
				 */
				public setEnabled(isEnabled: boolean): void;
				/**
				 * Gets if the source is a password field.
				 */
				public isPassword(): boolean;
				/**
				 * Sets if the source is a password field.
				 * @param isPassword True if the view is a password field, false otherwise.
				 */
				public setPassword(isPassword: boolean): void;
				/**
				 * Gets if the source is taking the entire screen.
				 */
				public isFullScreen(): boolean;
				/**
				 * Sets if the source is taking the entire screen.
				 * @param isFullScreen True if the source is full screen, false otherwise.
				 */
				public setFullScreen(isFullScreen: boolean): void;
				/**
				 * Gets if the source is scrollable.
				 */
				public isScrollable(): boolean;
				/**
				 * Sets if the source is scrollable.
				 * @param scrollable True if the source is scrollable, false otherwise.
				 */
				public setScrollable(scrollable: boolean): void;
				/**
				 * Gets the number of items that can be visited.
				 */
				public getItemCount(): number;
				/**
				 * Sets the number of items that can be visited.
				 * @param itemCount The number of items.
				 */
				public setItemCount(itemCount: number): void;
				/**
				 * Gets the index of the source in the list of items the can be visited.
				 */
				public getCurrentItemIndex(): number;
				/**
				 * Sets the index of the source in the list of items that can be visited.
				 * @param currentItemIndex The current item index.
				 */
				public setCurrentItemIndex(currentItemIndex: number): void;
				/**
				 * Gets the index of the first character of the changed sequence, or the beginning of a text selection or the index of the first visible item when scrolling.
				 */
				public getFromIndex(): number;
				/**
				 * Sets the index of the first character of the changed sequence or the beginning of a text selection or the index of the first visible item when scrolling.
				 * @param fromIndex The index of the first character or selection
				 */
				public setFromIndex(fromIndex: number): void;
				/**
				 * Gets the index of text selection end or the index of the last visible item when scrolling.
				 */
				public getToIndex(): number;
				/**
				 * Sets the index of text selection end or the index of the last visible item when scrolling.
				 * @param toIndex The index of selection end or last item index.
				 */
				public setToIndex(toIndex: number): void;
				/**
				 * Gets the scroll offset of the source left edge in pixels.
				 */
				public getScrollX(): number;
				/**
				 * Sets the scroll offset of the source left edge in pixels.
				 * @param scrollX The scroll.
				 */
				public setScrollX(scrollX: number): void;
				/**
				 * Gets the scroll offset of the source top edge in pixels.
				 */
				public getScrollY(): number;
				/**
				 * Sets the scroll offset of the source top edge in pixels.
				 * @param scrollY The scroll.
				 */
				public setScrollY(scrollY: number): void;
				/**
				 * Gets the max scroll offset of the source left edge in pixels.
				 */
				public getMaxScrollX(): number;
				/**
				 * Sets the max scroll offset of the source left edge in pixels.
				 * @param maxScrollX The max scroll.
				 */
				public setMaxScrollX(maxScrollX: number): void;
				/**
				 * Gets the max scroll offset of the source top edge in pixels.
				 */
				public getMaxScrollY(): number;
				/**
				 * Sets the max scroll offset of the source top edge in pixels.
				 * @param maxScrollY The max scroll.
				 */
				public setMaxScrollY(maxScrollY: number): void;
				/**
				 * Gets the number of added characters.
				 */
				public getAddedCount(): number;
				/**
				 * Sets the number of added characters.
				 * @param addedCount The number of added characters.
				 */
				public setAddedCount(addedCount: number): void;
				/**
				 * Gets the number of removed characters.
				 */
				public getRemovedCount(): number;
				/**
				 * Sets the number of removed characters.
				 * @param removedCount The number of removed characters.
				 */
				public setRemovedCount(removedCount: number): void;
				/**
				 * Gets the class name of the source.
				 */
				public getClassName(): string;
				/**
				 * Sets the class name of the source.
				 * @param className The lass name.
				 */
				public setClassName(className: string): void;
				/**
				 * Gets the text of the event. The index in the list represents the priority of the text. Specifically, the lower the index the higher the priority.
				 */
				public getText(): java.util.IList<string>;
				/**
				 * Sets the text before a change.
				 */
				public getBeforeText(): string;
				/**
				 * Sets the text before a change.
				 * @param beforeText The text before the change.
				 */
				public setBeforeText(beforeText: string): void;
				/**
				 * Gets the description of the source.
				 */
				public getContentDescription(): string;
				/**
				 * Sets the description of the source.
				 * @param contentDescription The description.
				 */
				public setContentDescription(contentDescription: string): void;
				/**
				 * Gets the Parcelable data.
				 */
				public getParcelableData(): android.os.IParcelable;
				/**
				 * Sets the Parcelable data of the event.
				 * @param parcelableData The parcelable data.
				 */
				public setParcelableData(parcelableData: android.os.IParcelable): void;
				/**
				 * Gets if this instance is sealed.
				 */
				isSealed(): boolean;
				/**
				 * Enforces that this instance is sealed.
				 */
				enforceSealed(): void;
				/**
				 * Enforces that this instance is not sealed.
				 */
				enforceNotSealed(): void;
				/**
				 * Returns a cached instance if such is available or a new one is instantiated. The instance is initialized with data from the given record.
				 */
				public static obtain(record: android.view.accessibility.AccessibilityRecord): android.view.accessibility.AccessibilityRecord;
				/**
				 * Returns a cached instance if such is available or a new one is instantiated.
				 */
				public static obtain(): android.view.accessibility.AccessibilityRecord;
				/**
				 * Return an instance back to be reused.
				 */
				public recycle(): void;
				/**
				 * Initialize this record from another one.
				 * @param record The to initialize from.
				 */
				init(record: android.view.accessibility.AccessibilityRecord): void;
				/**
				 * Clears the state of this instance.
				 */
				clear(): void;
				public toString(): string;
			}
			/**
			 * System level service that serves as an event dispatch for AccessibilityEvents. Such events are generated when something notable happens in the user interface, for example an android.app.Activity starts, the focus or selection of a android.view.View changes etc. Parties interested in handling accessibility events implement and register an accessibility service which extends android.accessibilityservice.AccessibilityService.
			 */
			export class AccessibilityManager extends java.lang.Object {
				static class: java.lang.Class<android.view.accessibility.AccessibilityManager>;
				/**
				 * Returns if the AccessibilityManager is enabled.
				 */
				public isEnabled(): boolean;
				/**
				 * Sends an AccessibilityEvent. If this AccessibilityManager is not enabled the call is a NOOP.
				 * @param event The {@link AccessibilityEvent}.
				 */
				public sendAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
				/**
				 * Requests interruption of the accessibility feedback from all accessibility services.
				 */
				public interrupt(): void;
				/**
				 * Returns the ServiceInfos of the installed accessibility services.
				 */
				public getAccessibilityServiceList(): java.util.IList<android.content.pm.ServiceInfo>;
				public getInstalledAccessibilityServiceList(): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
				public addAccessibilityStateChangeListener(listener: android.view.accessibility.AccessibilityManager.IAccessibilityStateChangeListener): boolean;
				public removeAccessibilityStateChangeListener(listener: android.view.accessibility.AccessibilityManager.IAccessibilityStateChangeListener): boolean;
			}
			export module AccessibilityManager {
				/**
				 * Listener for the accessibility state.
				 */
				export class AccessibilityStateChangeListener implements android.view.accessibility.AccessibilityManager.IAccessibilityStateChangeListener {
					constructor(implementation: android.view.accessibility.AccessibilityManager.IAccessibilityStateChangeListener);
					/**
					 * Called back on change in the accessibility state.
					 * @param enabled Whether accessibility is enabled.
					 */
					public onAccessibilityStateChanged(enabled: boolean): void;
				}
				/**
				 * Listener for the accessibility state.
				 */
				interface IAccessibilityStateChangeListener {
					/**
					 * Called back on change in the accessibility state.
					 * @param enabled Whether accessibility is enabled.
					 */
					onAccessibilityStateChanged(enabled: boolean): void;
				}
			}
			/**
			 * This class represents a node of the window content as well as actions that can be requested from its source. From the point of view of an android.accessibilityservice.AccessibilityService a window content is presented as tree of accessibility node info which may or may not map one-to-one to the view hierarchy. In other words, a custom view is free to report itself as a tree of accessibility node info. </p>
			 */
			export class AccessibilityNodeInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Action that gives input focus to the node.
				 */
				static ACTION_FOCUS: number;
				/**
				 * Action that clears input focus of the node.
				 */
				static ACTION_CLEAR_FOCUS: number;
				/**
				 * Action that selects the node.
				 */
				static ACTION_SELECT: number;
				/**
				 * Action that unselects the node.
				 */
				static ACTION_CLEAR_SELECTION: number;
				/**
				 * Action that clicks on the node info.
				 */
				static ACTION_CLICK: number;
				/**
				 * Action that long clicks on the node.
				 */
				static ACTION_LONG_CLICK: number;
				/**
				 * Action that gives accessibility focus to the node.
				 */
				static ACTION_ACCESSIBILITY_FOCUS: number;
				/**
				 * Action that clears accessibility focus of the node.
				 */
				static ACTION_CLEAR_ACCESSIBILITY_FOCUS: number;
				/**
				 * Action that requests to go to the next entity in this node's text at a given movement granularity. For example, move to the next character, word, etc.
				 */
				static ACTION_NEXT_AT_MOVEMENT_GRANULARITY: number;
				/**
				 * Action that requests to go to the previous entity in this node's text at a given movement granularity. For example, move to the next character, word, etc.
				 */
				static ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: number;
				/**
				 * Action to move to the next HTML element of a given type. For example, move to the BUTTON, INPUT, TABLE, etc.
				 */
				static ACTION_NEXT_HTML_ELEMENT: number;
				/**
				 * Action to move to the previous HTML element of a given type. For example, move to the BUTTON, INPUT, TABLE, etc.
				 */
				static ACTION_PREVIOUS_HTML_ELEMENT: number;
				/**
				 * Action to scroll the node content forward.
				 */
				static ACTION_SCROLL_FORWARD: number;
				/**
				 * Action to scroll the node content backward.
				 */
				static ACTION_SCROLL_BACKWARD: number;
				/**
				 * Argument for which movement granularity to be used when traversing the node text.
				 */
				static ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT: string;
				/**
				 * Argument for which HTML element to get moving to the next/previous HTML element.
				 */
				static ACTION_ARGUMENT_HTML_ELEMENT_STRING: string;
				/**
				 * The input focus.
				 */
				static FOCUS_INPUT: number;
				/**
				 * The accessibility focus.
				 */
				static FOCUS_ACCESSIBILITY: number;
				/**
				 * Movement granularity bit for traversing the text of a node by character.
				 */
				static MOVEMENT_GRANULARITY_CHARACTER: number;
				/**
				 * Movement granularity bit for traversing the text of a node by word.
				 */
				static MOVEMENT_GRANULARITY_WORD: number;
				/**
				 * Movement granularity bit for traversing the text of a node by line.
				 */
				static MOVEMENT_GRANULARITY_LINE: number;
				/**
				 * Movement granularity bit for traversing the text of a node by paragraph.
				 */
				static MOVEMENT_GRANULARITY_PARAGRAPH: number;
				/**
				 * Movement granularity bit for traversing the text of a node by page.
				 */
				static MOVEMENT_GRANULARITY_PAGE: number;
				/**
				 *  Parcelable.Creator
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.accessibility.AccessibilityNodeInfo>;
				static class: java.lang.Class<android.view.accessibility.AccessibilityNodeInfo>;
				/**
				 * Sets the source.
				 * @param source The info source.
				 */
				public setSource(source: android.view.View): void;
				/**
				 * Sets the source to be a virtual descendant of the given <code>root</code>. If <code>virtualDescendantId</code> is View#NO_ID the root is set as the source.
				 * @param root The root of the virtual subtree.
				 * @param virtualDescendantId The id of the virtual descendant.
				 */
				public setSource(root: android.view.View, virtualDescendantId: number): void;
				/**
				 * Find the view that has the specified focus type. The search starts from the view represented by this node info.
				 * @param focus The focus to find. One of {@link #FOCUS_INPUT} or
				 */
				public findFocus(focus: number): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Searches for the nearest view in the specified direction that can take the input focus.
				 * @param direction The direction. Can be one of:
				 */
				public focusSearch(direction: number): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Gets the id of the window from which the info comes from.
				 */
				public getWindowId(): number;
				/**
				 * Gets the number of children.
				 */
				public getChildCount(): number;
				/**
				 * Get the child at given index.
				 * @param index The child index.
				 */
				public getChild(index: number): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Adds a child.
				 * @param child The child.
				 */
				public addChild(child: android.view.View): void;
				/**
				 * Adds a virtual child which is a descendant of the given <code>root</code>. If <code>virtualDescendantId</code> is View#NO_ID the root is added as a child.
				 * @param root The root of the virtual subtree.
				 * @param virtualDescendantId The id of the virtual child.
				 */
				public addChild(root: android.view.View, virtualDescendantId: number): void;
				/**
				 * Gets the actions that can be performed on the node.
				 */
				public getActions(): number;
				/**
				 * Adds an action that can be performed on the node.
				 * @param action The action.
				 */
				public addAction(action: number): void;
				/**
				 * Sets the movement granularities for traversing the text of this node.
				 * @param granularities The bit mask with granularities.
				 */
				public setMovementGranularities(granularities: number): void;
				/**
				 * Gets the movement granularities for traversing the text of this node.
				 */
				public getMovementGranularities(): number;
				/**
				 * Performs an action on the node.
				 * @param action The action to perform.
				 */
				public performAction(action: number): boolean;
				/**
				 * Performs an action on the node.
				 * @param action The action to perform.
				 * @param arguments A bundle with additional arguments.
				 */
				public performAction(action: number, args: android.os.Bundle): boolean;
				/**
				 * Finds AccessibilityNodeInfos by text. The match is case insensitive containment. The search is relative to this info i.e. this info is the root of the traversed tree.
				 * @param text The searched text.
				 */
				public findAccessibilityNodeInfosByText(text: string): java.util.IList<android.view.accessibility.AccessibilityNodeInfo>;
				/**
				 * Gets the parent.
				 */
				public getParent(): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Sets the parent.
				 * @param parent The parent.
				 */
				public setParent(parent: android.view.View): void;
				/**
				 * Sets the parent to be a virtual descendant of the given <code>root</code>. If <code>virtualDescendantId</code> equals to View#NO_ID the root is set as the parent.
				 * @param root The root of the virtual subtree.
				 * @param virtualDescendantId The id of the virtual descendant.
				 */
				public setParent(root: android.view.View, virtualDescendantId: number): void;
				/**
				 * Gets the node bounds in parent coordinates.
				 * @param outBounds The output node bounds.
				 */
				public getBoundsInParent(outBounds: android.graphics.Rect): void;
				/**
				 * Sets the node bounds in parent coordinates.
				 * @param bounds The node bounds.
				 */
				public setBoundsInParent(bounds: android.graphics.Rect): void;
				/**
				 * Gets the node bounds in screen coordinates.
				 * @param outBounds The output node bounds.
				 */
				public getBoundsInScreen(outBounds: android.graphics.Rect): void;
				/**
				 * Sets the node bounds in screen coordinates.
				 * @param bounds The node bounds.
				 */
				public setBoundsInScreen(bounds: android.graphics.Rect): void;
				/**
				 * Gets whether this node is checkable.
				 */
				public isCheckable(): boolean;
				/**
				 * Sets whether this node is checkable.
				 * @param checkable True if the node is checkable.
				 */
				public setCheckable(checkable: boolean): void;
				/**
				 * Gets whether this node is checked.
				 */
				public isChecked(): boolean;
				/**
				 * Sets whether this node is checked.
				 * @param checked True if the node is checked.
				 */
				public setChecked(checked: boolean): void;
				/**
				 * Gets whether this node is focusable.
				 */
				public isFocusable(): boolean;
				/**
				 * Sets whether this node is focusable.
				 * @param focusable True if the node is focusable.
				 */
				public setFocusable(focusable: boolean): void;
				/**
				 * Gets whether this node is focused.
				 */
				public isFocused(): boolean;
				/**
				 * Sets whether this node is focused.
				 * @param focused True if the node is focused.
				 */
				public setFocused(focused: boolean): void;
				/**
				 * Sets whether this node is visible to the user.
				 */
				public isVisibleToUser(): boolean;
				/**
				 * Sets whether this node is visible to the user.
				 * @param visibleToUser Whether the node is visible to the user.
				 */
				public setVisibleToUser(visibleToUser: boolean): void;
				/**
				 * Gets whether this node is accessibility focused.
				 */
				public isAccessibilityFocused(): boolean;
				/**
				 * Sets whether this node is accessibility focused.
				 * @param focused True if the node is accessibility focused.
				 */
				public setAccessibilityFocused(focused: boolean): void;
				/**
				 * Gets whether this node is selected.
				 */
				public isSelected(): boolean;
				/**
				 * Sets whether this node is selected.
				 * @param selected True if the node is selected.
				 */
				public setSelected(selected: boolean): void;
				/**
				 * Gets whether this node is clickable.
				 */
				public isClickable(): boolean;
				/**
				 * Sets whether this node is clickable.
				 * @param clickable True if the node is clickable.
				 */
				public setClickable(clickable: boolean): void;
				/**
				 * Gets whether this node is long clickable.
				 */
				public isLongClickable(): boolean;
				/**
				 * Sets whether this node is long clickable.
				 * @param longClickable True if the node is long clickable.
				 */
				public setLongClickable(longClickable: boolean): void;
				/**
				 * Gets whether this node is enabled.
				 */
				public isEnabled(): boolean;
				/**
				 * Sets whether this node is enabled.
				 * @param enabled True if the node is enabled.
				 */
				public setEnabled(enabled: boolean): void;
				/**
				 * Gets whether this node is a password.
				 */
				public isPassword(): boolean;
				/**
				 * Sets whether this node is a password.
				 * @param password True if the node is a password.
				 */
				public setPassword(password: boolean): void;
				/**
				 * Gets if the node is scrollable.
				 */
				public isScrollable(): boolean;
				/**
				 * Sets if the node is scrollable.
				 * @param scrollable True if the node is scrollable, false otherwise.
				 */
				public setScrollable(scrollable: boolean): void;
				/**
				 * Gets the package this node comes from.
				 */
				public getPackageName(): string;
				/**
				 * Sets the package this node comes from.
				 * @param packageName The package name.
				 */
				public setPackageName(packageName: string): void;
				/**
				 * Gets the class this node comes from.
				 */
				public getClassName(): string;
				/**
				 * Sets the class this node comes from.
				 * @param className The class name.
				 */
				public setClassName(className: string): void;
				/**
				 * Gets the text of this node.
				 */
				public getText(): string;
				/**
				 * Sets the text of this node.
				 * @param text The text.
				 */
				public setText(text: string): void;
				/**
				 * Gets the content description of this node.
				 */
				public getContentDescription(): string;
				/**
				 * Sets the content description of this node.
				 * @param contentDescription The content description.
				 */
				public setContentDescription(contentDescription: string): void;
				/**
				 * Sets the view for which the view represented by this info serves as a label for accessibility purposes.
				 * @param labeled The view for which this info serves as a label.
				 */
				public setLabelFor(labeled: android.view.View): void;
				/**
				 * Sets the view for which the view represented by this info serves as a label for accessibility purposes. If <code>virtualDescendantId</code> is View#NO_ID the root is set as the labeled.
				 * @param root The root whose virtual descendant serves as a label.
				 * @param virtualDescendantId The id of the virtual descendant.
				 */
				public setLabelFor(root: android.view.View, virtualDescendantId: number): void;
				/**
				 * Gets the node info for which the view represented by this info serves as a label for accessibility purposes.
				 */
				public getLabelFor(): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Sets the view which serves as the label of the view represented by this info for accessibility purposes.
				 * @param label The view that labels this node's source.
				 */
				public setLabeledBy(label: android.view.View): void;
				/**
				 * Sets the view which serves as the label of the view represented by this info for accessibility purposes. If <code>virtualDescendantId</code> is View#NO_ID the root is set as the label.
				 * @param root The root whose virtual descendant labels this node's source.
				 * @param virtualDescendantId The id of the virtual descendant.
				 */
				public setLabeledBy(root: android.view.View, virtualDescendantId: number): void;
				/**
				 * Gets the node info which serves as the label of the view represented by this info for accessibility purposes.
				 */
				public getLabeledBy(): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * 
				 */
				public describeContents(): number;
				/**
				 * Returns a cached instance if such is available otherwise a new one and sets the source.
				 * @param source The source view.
				 */
				public static obtain(source: android.view.View): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Returns a cached instance if such is available otherwise a new one and sets the source.
				 * @param root The root of the virtual subtree.
				 * @param virtualDescendantId The id of the virtual descendant.
				 */
				public static obtain(root: android.view.View, virtualDescendantId: number): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Returns a cached instance if such is available otherwise a new one.
				 */
				public static obtain(): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Returns a cached instance if such is available or a new one is create. The returned instance is initialized from the given <code>info</code>.
				 * @param info The other info.
				 */
				public static obtain(info: android.view.accessibility.AccessibilityNodeInfo): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Return an instance back to be reused.
				 */
				public recycle(): void;
				/**
				 * 
				 */
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
				public equals(object: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
			export class AccessibilityEvent extends android.view.accessibility.AccessibilityRecord implements android.os.IParcelable {
				/**
				 * Invalid selection/focus position.
				 */
				static INVALID_POSITION: number;
				/**
				 * Maximum length of the text fields.
				 */
				static MAX_TEXT_LENGTH: number;
				/**
				 * Represents the event of clicking on a android.view.View like android.widget.Button, android.widget.CompoundButton, etc.
				 */
				static TYPE_VIEW_CLICKED: number;
				/**
				 * Represents the event of long clicking on a android.view.View like android.widget.Button, android.widget.CompoundButton, etc.
				 */
				static TYPE_VIEW_LONG_CLICKED: number;
				/**
				 * Represents the event of selecting an item usually in the context of an android.widget.AdapterView.
				 */
				static TYPE_VIEW_SELECTED: number;
				/**
				 * Represents the event of setting input focus of a android.view.View.
				 */
				static TYPE_VIEW_FOCUSED: number;
				/**
				 * Represents the event of changing the text of an android.widget.EditText.
				 */
				static TYPE_VIEW_TEXT_CHANGED: number;
				/**
				 * Represents the event of opening a android.widget.PopupWindow, android.view.Menu, android.app.Dialog, etc.
				 */
				static TYPE_WINDOW_STATE_CHANGED: number;
				/**
				 * Represents the event showing a android.app.Notification.
				 */
				static TYPE_NOTIFICATION_STATE_CHANGED: number;
				/**
				 * Represents the event of a hover enter over a android.view.View.
				 */
				static TYPE_VIEW_HOVER_ENTER: number;
				/**
				 * Represents the event of a hover exit over a android.view.View.
				 */
				static TYPE_VIEW_HOVER_EXIT: number;
				/**
				 * Represents the event of starting a touch exploration gesture.
				 */
				static TYPE_TOUCH_EXPLORATION_GESTURE_START: number;
				/**
				 * Represents the event of ending a touch exploration gesture.
				 */
				static TYPE_TOUCH_EXPLORATION_GESTURE_END: number;
				/**
				 * Represents the event of changing the content of a window and more specifically the sub-tree rooted at the event's source.
				 */
				static TYPE_WINDOW_CONTENT_CHANGED: number;
				/**
				 * Represents the event of scrolling a view.
				 */
				static TYPE_VIEW_SCROLLED: number;
				/**
				 * Represents the event of changing the selection in an android.widget.EditText.
				 */
				static TYPE_VIEW_TEXT_SELECTION_CHANGED: number;
				/**
				 * Represents the event of an application making an announcement.
				 */
				static TYPE_ANNOUNCEMENT: number;
				/**
				 * Represents the event of gaining accessibility focus.
				 */
				static TYPE_VIEW_ACCESSIBILITY_FOCUSED: number;
				/**
				 * Represents the event of clearing accessibility focus.
				 */
				static TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED: number;
				/**
				 * Represents the event of traversing the text of a view at a given movement granularity.
				 */
				static TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY: number;
				/**
				 * Represents the event of beginning gesture detection.
				 */
				static TYPE_GESTURE_DETECTION_START: number;
				/**
				 * Represents the event of ending gesture detection.
				 */
				static TYPE_GESTURE_DETECTION_END: number;
				/**
				 * Represents the event of the user starting to touch the screen.
				 */
				static TYPE_TOUCH_INTERACTION_START: number;
				/**
				 * Represents the event of the user ending to touch the screen.
				 */
				static TYPE_TOUCH_INTERACTION_END: number;
				/**
				 * Mask for AccessibilityEvent all types.
				 */
				static TYPES_ALL_MASK: number;
				/**
				 *  Parcelable.Creator
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.accessibility.AccessibilityEvent>;
				static class: java.lang.Class<android.view.accessibility.AccessibilityEvent>;
				/**
				 * Initialize an event from another one.
				 * @param event The event to initialize from.
				 */
				init(event: android.view.accessibility.AccessibilityEvent): void;
				/**
				 * Gets the number of records contained in the event.
				 */
				public getRecordCount(): number;
				/**
				 * Appends an AccessibilityRecord to the end of event records.
				 * @param record The record to append.
				 */
				public appendRecord(record: android.view.accessibility.AccessibilityRecord): void;
				/**
				 * Gets the record at a given index.
				 * @param index The index.
				 */
				public getRecord(index: number): android.view.accessibility.AccessibilityRecord;
				/**
				 * Gets the event type.
				 */
				public getEventType(): number;
				/**
				 * Sets the event type.
				 * @param eventType The event type.
				 */
				public setEventType(eventType: number): void;
				/**
				 * Gets the time in which this event was sent.
				 */
				public getEventTime(): any;
				/**
				 * Sets the time in which this event was sent.
				 * @param eventTime The event time.
				 */
				public setEventTime(eventTime: number): void;
				/**
				 * Gets the package name of the source.
				 */
				public getPackageName(): string;
				/**
				 * Sets the package name of the source.
				 * @param packageName The package name.
				 */
				public setPackageName(packageName: string): void;
				/**
				 * Sets the movement granularity that was traversed.
				 * @param granularity The granularity.
				 */
				public setMovementGranularity(granularity: number): void;
				/**
				 * Gets the movement granularity that was traversed.
				 */
				public getMovementGranularity(): number;
				/**
				 * Sets the performed action that triggered this event.
				 * @param action The action.
				 */
				public setAction(action: number): void;
				/**
				 * Gets the performed action that triggered this event.
				 */
				public getAction(): number;
				/**
				 * Returns a cached instance if such is available or a new one is instantiated with its type property set.
				 * @param eventType The event type.
				 */
				public static obtain(eventType: number): android.view.accessibility.AccessibilityEvent;
				/**
				 * Returns a cached instance if such is available or a new one is created. The returned instance is initialized from the given <code>event</code>.
				 * @param event The other event.
				 */
				public static obtain(event: android.view.accessibility.AccessibilityEvent): android.view.accessibility.AccessibilityEvent;
				/**
				 * Returns a cached instance if such is available or a new one is instantiated.
				 */
				public static obtain(): android.view.accessibility.AccessibilityEvent;
				/**
				 * Recycles an instance back to be reused.
				 */
				public recycle(): void;
				/**
				 * Creates a new instance from a Parcel.
				 * @param parcel A parcel containing the state of a {@link AccessibilityEvent}.
				 */
				public initFromParcel(parcel: android.os.Parcel): void;
				/**
				 * 
				 */
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
				/**
				 * 
				 */
				public describeContents(): number;
				public toString(): string;
				/**
				 * Returns the string representation of an event type. For example, #TYPE_VIEW_CLICKED is represented by the string TYPE_VIEW_CLICKED.
				 * @param eventType The event type
				 */
				public static eventTypeToString(eventType: number): string;
				/**
				 * Returns a cached instance if such is available or a new one is instantiated. The instance is initialized with data from the given record.
				 */
				static obtain(record: android.view.accessibility.AccessibilityRecord): android.view.accessibility.AccessibilityRecord;
				/**
				 * Initialize this record from another one.
				 * @param record The to initialize from.
				 */
				init(record: android.view.accessibility.AccessibilityRecord): void;
			}
			/**
			 * This interface is implemented by classes source of AccessibilityEvents.
			 */
			interface IAccessibilityEventSource {
				/**
				 * Handles the request for sending an AccessibilityEvent given the event type. The method must first check if accessibility is on via calling AccessibilityManager#isEnabled() AccessibilityManager.isEnabled(), obtain an AccessibilityEvent from the event pool through calling AccessibilityEvent#obtain(int) AccessibilityEvent.obtain(int), populate the event, and send it for dispatch via calling AccessibilityManager#sendAccessibilityEvent(AccessibilityEvent) AccessibilityManager.sendAccessibilityEvent(AccessibilityEvent).
				 * @param eventType The event type.
				 */
				sendAccessibilityEvent(eventType: number): void;
				/**
				 * Handles the request for sending an AccessibilityEvent. The method does not guarantee to check if accessibility is on before sending the event for dispatch. It is responsibility of the caller to do the check via calling AccessibilityManager#isEnabled() AccessibilityManager.isEnabled().
				 * @param event The event.
				 */
				sendAccessibilityEventUnchecked(event: android.view.accessibility.AccessibilityEvent): void;
			}
			/**
			 * This class is the contract a client should implement to enable support of a virtual view hierarchy rooted at a given view for accessibility purposes. A virtual view hierarchy is a tree of imaginary Views that is reported as a part of the view hierarchy when an AccessibilityService explores the window content. Since the virtual View tree does not exist this class is responsible for managing the AccessibilityNodeInfos describing that tree to accessibility services. </p>
			 */
			export class AccessibilityNodeProvider extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.view.accessibility.AccessibilityNodeProvider>;
				/**
				 * Returns an AccessibilityNodeInfo representing a virtual view, i.e. a descendant of the host View, with the given <code>virtualViewId</code> or the host View itself if <code>virtualViewId</code> equals to View#NO_ID.
				 * @param virtualViewId A client defined virtual view id.
				 */
				public createAccessibilityNodeInfo(virtualViewId: number): android.view.accessibility.AccessibilityNodeInfo;
				/**
				 * Performs an accessibility action on a virtual view, i.e. a descendant of the host View, with the given <code>virtualViewId</code> or the host View itself if <code>virtualViewId</code> equals to View#NO_ID.
				 * @param virtualViewId A client defined virtual view id.
				 * @param action The action to perform.
				 * @param arguments Optional action arguments.
				 */
				public performAction(virtualViewId: number, action: number, args: android.os.Bundle): boolean;
				/**
				 * Finds AccessibilityNodeInfos by text. The match is case insensitive containment. The search is relative to the virtual view, i.e. a descendant of the host View, with the given <code>virtualViewId</code> or the host View itself <code>virtualViewId</code> equals to View#NO_ID.
				 * @param text virtualViewId A client defined virtual view id which defined
				 * @param virtualViewId text The searched text.
				 */
				public findAccessibilityNodeInfosByText(text: string, virtualViewId: number): java.util.IList<android.view.accessibility.AccessibilityNodeInfo>;
			}
		}
		/**
		 * Constants to be used to play sound effects via View#playSoundEffect(int)
		 */
		export class SoundEffectConstants extends java.lang.Object {
			static CLICK: number;
			static NAVIGATION_LEFT: number;
			static NAVIGATION_UP: number;
			static NAVIGATION_RIGHT: number;
			static NAVIGATION_DOWN: number;
			static class: java.lang.Class<android.view.SoundEffectConstants>;
			/**
			 * Get the sonification constant for the focus directions.
			 * @param direction One of {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN},
			 */
			public static getContantForFocusDirection(direction: number): number;
		}
		export module textservice {
			/**
			 * This class is used to specify meta information of a subtype contained in a spell checker. Subtype can describe locale (e.g. en_US, fr_FR...) used for settings.
			 */
			export class SpellCheckerSubtype extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor
				 * @param nameId The name of the subtype
				 * @param locale The locale supported by the subtype
				 * @param extraValue The extra value of the subtype
				 */
				constructor(nameId: number, locale: string, extraValue: string);
				static CREATOR: android.os.Parcelable.ICreator<android.view.textservice.SpellCheckerSubtype>;
				static class: java.lang.Class<android.view.textservice.SpellCheckerSubtype>;
				public getNameResId(): number;
				public getLocale(): string;
				public getExtraValue(): string;
				/**
				 * The string of ExtraValue in subtype should be defined as follows: example: key0,key1=value1,key2,key3,key4=value4
				 * @param key the key of extra value
				 */
				public containsExtraValueKey(key: string): boolean;
				/**
				 * The string of ExtraValue in subtype should be defined as follows: example: key0,key1=value1,key2,key3,key4=value4
				 * @param key the key of extra value
				 */
				public getExtraValueOf(key: string): string;
				public hashCode(): number;
				public equals(o: any): boolean;
				/**
				 * @param context Context will be used for getting Locale and PackageManager.
				 * @param packageName The package name of the spell checker
				 * @param appInfo The application info of the spell checker
				 */
				public getDisplayName(context: android.content.Context, packageName: string, appInfo: android.content.pm.ApplicationInfo): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			/**
			 * The SpellCheckerSession interface provides the per client functionality of SpellCheckerService.
			 */
			export class SpellCheckerSession extends java.lang.Object {
				/**
				 * Name under which a SpellChecker service component publishes information about itself. This meta-data must reference an XML resource.
				 */
				static SERVICE_META_DATA: string;
				static class: java.lang.Class<android.view.textservice.SpellCheckerSession>;
				public isSessionDisconnected(): boolean;
				/**
				 * Get the spell checker service info this spell checker session has.
				 */
				public getSpellChecker(): android.view.textservice.SpellCheckerInfo;
				/**
				 * Cancel pending and running spell check tasks
				 */
				public cancel(): void;
				/**
				 * Finish this session and allow TextServicesManagerService to disconnect the bound spell checker.
				 */
				public close(): void;
				/**
				 * Get suggestions from the specified sentences
				 * @param textInfos an array of text metadata for a spell checker
				 * @param suggestionsLimit the maximum number of suggestions that will be returned
				 */
				public getSentenceSuggestions(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number): void;
				/**
				 * Get candidate strings for a substring of the specified text.
				 * @param textInfo text metadata for a spell checker
				 * @param suggestionsLimit the maximum number of suggestions that will be returned
				 */
				public getSuggestions(textInfo: android.view.textservice.TextInfo, suggestionsLimit: number): void;
				/**
				 * A batch process of getSuggestions
				 * @param textInfos an array of text metadata for a spell checker
				 * @param suggestionsLimit the maximum number of suggestions that will be returned
				 * @param sequentialWords true if textInfos can be treated as sequential words.
				 */
				public getSuggestions(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number, sequentialWords: boolean): void;
				protected finalize(): void;
			}
			export module SpellCheckerSession {
				export class SpellCheckerSessionListenerImpl {
					constructor(handler: android.os.Handler);
					static class: java.lang.Class<android.view.textservice.SpellCheckerSession.SpellCheckerSessionListenerImpl>;
					public cancel(): void;
					public getSuggestionsMultiple(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number, sequentialWords: boolean): void;
					public getSentenceSuggestionsMultiple(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number): void;
					public close(): void;
					public isDisconnected(): boolean;
					public onGetSuggestions(results: native.Array<android.view.textservice.SuggestionsInfo>): void;
					public onGetSentenceSuggestions(results: native.Array<android.view.textservice.SentenceSuggestionsInfo>): void;
				}
				export module SpellCheckerSessionListenerImpl {
					export class SpellCheckerParams extends java.lang.Object {
						constructor(what: number, textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number, sequentialWords: boolean);
						mWhat: number;
						mTextInfos: native.Array<android.view.textservice.TextInfo>;
						mSuggestionsLimit: number;
						mSequentialWords: boolean;
						static class: java.lang.Class<android.view.textservice.SpellCheckerSession.SpellCheckerSessionListenerImpl.SpellCheckerParams>;
					}
				}
				/**
				 * Callback for getting results from text services
				 */
				interface ISpellCheckerSessionListener {
					/**
					 * Callback for SpellCheckerSession#getSuggestions(TextInfo, int) and SpellCheckerSession#getSuggestions(TextInfo[], int, boolean)
					 * @param results an array of {@link SuggestionsInfo}s.
					 */
					onGetSuggestions(results: native.Array<android.view.textservice.SuggestionsInfo>): void;
					/**
					 * Callback for SpellCheckerSession#getSentenceSuggestions(TextInfo[], int)
					 * @param results an array of {@link SentenceSuggestionsInfo}s.
					 */
					onGetSentenceSuggestions(results: native.Array<android.view.textservice.SentenceSuggestionsInfo>): void;
				}
				/**
				 * Callback for getting results from text services
				 */
				export class SpellCheckerSessionListener implements android.view.textservice.SpellCheckerSession.ISpellCheckerSessionListener {
					constructor(implementation: android.view.textservice.SpellCheckerSession.ISpellCheckerSessionListener);
					/**
					 * Callback for SpellCheckerSession#getSuggestions(TextInfo, int) and SpellCheckerSession#getSuggestions(TextInfo[], int, boolean)
					 * @param results an array of {@link SuggestionsInfo}s.
					 */
					public onGetSuggestions(results: native.Array<android.view.textservice.SuggestionsInfo>): void;
					/**
					 * Callback for SpellCheckerSession#getSentenceSuggestions(TextInfo[], int)
					 * @param results an array of {@link SentenceSuggestionsInfo}s.
					 */
					public onGetSentenceSuggestions(results: native.Array<android.view.textservice.SentenceSuggestionsInfo>): void;
				}
				export class InternalListener {
					constructor(spellCheckerSessionListenerImpl: android.view.textservice.SpellCheckerSession.SpellCheckerSessionListenerImpl);
					static class: java.lang.Class<android.view.textservice.SpellCheckerSession.InternalListener>;
				}
			}
			/**
			 * This class contains a metadata of the input of TextService
			 */
			export class TextInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor.
				 * @param text the text which will be input to TextService
				 */
				constructor(text: string);
				/**
				 * Constructor.
				 * @param text the text which will be input to TextService
				 * @param cookie the cookie for this TextInfo
				 * @param sequence the sequence number for this TextInfo
				 */
				constructor(text: string, cookie: number, sequence: number);
				constructor(source: android.os.Parcel);
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.textservice.TextInfo>;
				static class: java.lang.Class<android.view.textservice.TextInfo>;
				/**
				 * Used to package this object into a Parcel.
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getText(): string;
				public getCookie(): number;
				public getSequence(): number;
				/**
				 * Used to make this class parcelable.
				 */
				public describeContents(): number;
			}
			/**
			 * System API to the overall text services, which arbitrates interaction between applications and text services. You can retrieve an instance of this interface with Context#getSystemService(String) Context.getSystemService().
			 */
			export class TextServicesManager extends java.lang.Object {
				static class: java.lang.Class<android.view.textservice.TextServicesManager>;
				/**
				 * Get a spell checker session for the specified spell checker
				 * @param bundle locale the locale for the spell checker. If {@code locale} is null and
				 * @param locale listener a spell checker session lister for getting results from a spell checker.
				 * @param listener referToSpellCheckerLanguageSettings if true, the session for one of enabled
				 * @param referToSpellCheckerLanguageSettings 
				 */
				public newSpellCheckerSession(bundle: android.os.Bundle, locale: java.util.Locale, listener: android.view.textservice.SpellCheckerSession.ISpellCheckerSessionListener, referToSpellCheckerLanguageSettings: boolean): android.view.textservice.SpellCheckerSession;
			}
			/**
			 * This class contains a metadata of suggestions returned from a text service (e.g. android.service.textservice.SpellCheckerService). The text service uses this class to return the suggestions for a sentence. See SuggestionsInfo which is used for suggestions for a word. This class extends the functionality of SuggestionsInfo as far as this class enables you to put multiple SuggestionsInfos on a sentence with the offsets and the lengths of all SuggestionsInfos.
			 */
			export class SentenceSuggestionsInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor.
				 * @param suggestionsInfos from the text service
				 * @param offsets the array of offsets of suggestions
				 * @param lengths the array of lengths of suggestions
				 */
				constructor(suggestionsInfos: native.Array<android.view.textservice.SuggestionsInfo>, offsets: native.Array<number>, lengths: native.Array<number>);
				constructor(source: android.os.Parcel);
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.textservice.SentenceSuggestionsInfo>;
				static class: java.lang.Class<android.view.textservice.SentenceSuggestionsInfo>;
				/**
				 * Used to package this object into a Parcel.
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
				public getSuggestionsCount(): number;
				/**
				 * @param i the id of {@link SuggestionsInfo}s this instance holds.
				 */
				public getSuggestionsInfoAt(i: number): android.view.textservice.SuggestionsInfo;
				/**
				 * @param i the id of {@link SuggestionsInfo}s this instance holds
				 */
				public getOffsetAt(i: number): number;
				/**
				 * @param i the id of {@link SuggestionsInfo}s this instance holds
				 */
				public getLengthAt(i: number): number;
			}
			/**
			 * This class contains a metadata of suggestions from the text service
			 */
			export class SuggestionsInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor.
				 * @param suggestionsAttributes from the text service
				 * @param suggestions from the text service
				 */
				constructor(suggestionsAttributes: number, suggestions: native.Array<string>);
				/**
				 * Constructor.
				 * @param suggestionsAttributes from the text service
				 * @param suggestions from the text service
				 * @param cookie the cookie of the input TextInfo
				 * @param sequence the cookie of the input TextInfo
				 */
				constructor(suggestionsAttributes: number, suggestions: native.Array<string>, cookie: number, sequence: number);
				constructor(source: android.os.Parcel);
				/**
				 * Flag of the attributes of the suggestions that can be obtained by #getSuggestionsAttributes: this tells that the requested word was found in the dictionary in the text service.
				 */
				static RESULT_ATTR_IN_THE_DICTIONARY: number;
				/**
				 * Flag of the attributes of the suggestions that can be obtained by #getSuggestionsAttributes: this tells that the text service thinks the requested word looks like a typo.
				 */
				static RESULT_ATTR_LOOKS_LIKE_TYPO: number;
				/**
				 * Flag of the attributes of the suggestions that can be obtained by #getSuggestionsAttributes: this tells that the text service thinks the result suggestions include highly recommended ones.
				 */
				static RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS: number;
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.textservice.SuggestionsInfo>;
				static class: java.lang.Class<android.view.textservice.SuggestionsInfo>;
				/**
				 * Used to package this object into a Parcel.
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Set the cookie and the sequence of SuggestionsInfo which are set to TextInfo from a client application
				 * @param cookie the cookie of an input TextInfo
				 * @param sequence the cookie of an input TextInfo
				 */
				public setCookieAndSequence(cookie: number, sequence: number): void;
				public getCookie(): number;
				public getSequence(): number;
				public getSuggestionsAttributes(): number;
				public getSuggestionsCount(): number;
				/**
				 * @param i the id of suggestions
				 */
				public getSuggestionAt(i: number): string;
				/**
				 * Used to make this class parcelable.
				 */
				public describeContents(): number;
			}
			/**
			 * This class is used to specify meta information of a spell checker.
			 */
			export class SpellCheckerInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.textservice.SpellCheckerInfo>;
				static class: java.lang.Class<android.view.textservice.SpellCheckerInfo>;
				/**
				 * Return a unique ID for this spell checker. The ID is generated from the package and class name implementing the method.
				 */
				public getId(): string;
				/**
				 * Return the component of the service that implements.
				 */
				public getComponent(): android.content.ComponentName;
				/**
				 * Return the .apk package that implements this.
				 */
				public getPackageName(): string;
				/**
				 * Used to package this object into a Parcel.
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Load the user-displayed label for this spell checker.
				 * @param pm Supply a PackageManager used to load the spell checker's resources.
				 */
				public loadLabel(pm: android.content.pm.PackageManager): string;
				/**
				 * Load the user-displayed icon for this spell checker.
				 * @param pm Supply a PackageManager used to load the spell checker's resources.
				 */
				public loadIcon(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
				/**
				 * Return the raw information about the Service implementing this spell checker. Do not modify the returned object.
				 */
				public getServiceInfo(): android.content.pm.ServiceInfo;
				/**
				 * Return the class name of an activity that provides a settings UI. You can launch this activity be starting it with an android.content.Intent whose action is MAIN and with an explicit android.content.ComponentName composed of #getPackageName and the class name returned here.
				 */
				public getSettingsActivity(): string;
				/**
				 * Return the count of the subtypes.
				 */
				public getSubtypeCount(): number;
				/**
				 * Return the subtype at the specified index.
				 * @param index the index of the subtype to return.
				 */
				public getSubtypeAt(index: number): android.view.textservice.SpellCheckerSubtype;
				/**
				 * Used to make this class parcelable.
				 */
				public describeContents(): number;
			}
		}
		/**
		 * Constants to be used to perform haptic feedback effects via View#performHapticFeedback(int)
		 */
		export class HapticFeedbackConstants extends java.lang.Object {
			/**
			 * The user has performed a long press on an object that is resulting in an action being performed.
			 */
			static LONG_PRESS: number;
			/**
			 * The user has pressed on a virtual on-screen key.
			 */
			static VIRTUAL_KEY: number;
			/**
			 * The user has pressed a soft keyboard key.
			 */
			static KEYBOARD_TAP: number;
			/**
			 * Flag for View#performHapticFeedback(int, int) View.performHapticFeedback(int, int): Ignore the setting in the view for whether to perform haptic feedback, do it always.
			 */
			static FLAG_IGNORE_VIEW_SETTING: number;
			/**
			 * Flag for View#performHapticFeedback(int, int) View.performHapticFeedback(int, int): Ignore the global setting for whether to perform haptic feedback, do it always.
			 */
			static FLAG_IGNORE_GLOBAL_SETTING: number;
			static class: java.lang.Class<android.view.HapticFeedbackConstants>;
		}
		/**
		 * Exercise RemoteViews -- especially filtering
		 */
		export class RemoteViewsActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.RemoteViewsActivity>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		/**
		 * This exception is thrown by an inflater on error conditions.
		 */
		export class InflateException extends java.lang.RuntimeException {
			constructor();
			constructor(detailMessage: string, throwable: java.lang.Throwable);
			constructor(detailMessage: string);
			constructor(throwable: java.lang.Throwable);
			static class: java.lang.Class<android.view.InflateException>;
		}
		/**
		 * Views should obey their background Drawable's minimum size requirements (Drawable#getMinimumHeight() and Drawable#getMinimumWidth()) when possible.
		 */
		export class DrawableBgMinSize extends android.app.Activity implements android.view.View.IOnClickListener {
			constructor();
			static class: java.lang.Class<android.view.DrawableBgMinSize>;
			protected onCreate(icicle: android.os.Bundle): void;
			public onClick(v: android.view.View): void;
		}
		/**
		 * Common base class for input events.
		 */
		export class InputEvent extends java.lang.Object implements android.os.IParcelable {
			static CREATOR: android.os.Parcelable.ICreator<android.view.InputEvent>;
			static class: java.lang.Class<android.view.InputEvent>;
			/**
			 * Gets the id for the device that this event came from. An id of zero indicates that the event didn't come from a physical device and maps to the default keymap. The other numbers are arbitrary and you shouldn't depend on the values. 
			 */
			public getDeviceId(): number;
			/**
			 * Gets the device that this event came from. 
			 */
			public getDevice(): android.view.InputDevice;
			/**
			 * Gets the source of the event. 
			 */
			public getSource(): number;
			/**
			 * Retrieve the time this event occurred, in the android.os.SystemClock#uptimeMillis time base.
			 */
			public getEventTime(): any;
			public describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * An implementation of display list for OpenGL ES 2.0.
		 */
		export class GLES20DisplayList extends java.lang.Object {
			static class: java.lang.Class<android.view.GLES20DisplayList>;
			hasNativeDisplayList(): boolean;
			getNativeDisplayList(): number;
			public invalidate(): void;
			public clear(): void;
			public reset(): void;
			public isValid(): boolean;
			public end(): void;
			public getSize(): number;
			public setCaching(caching: boolean): void;
			public setClipChildren(clipChildren: boolean): void;
			public setStaticMatrix(matrix: android.graphics.Matrix): void;
			public setAnimationMatrix(matrix: android.graphics.Matrix): void;
			public setAlpha(alpha: number): void;
			public setHasOverlappingRendering(hasOverlappingRendering: boolean): void;
			public setTranslationX(translationX: number): void;
			public setTranslationY(translationY: number): void;
			public setRotation(rotation: number): void;
			public setRotationX(rotationX: number): void;
			public setRotationY(rotationY: number): void;
			public setScaleX(scaleX: number): void;
			public setScaleY(scaleY: number): void;
			public setTransformationInfo(alpha: number, translationX: number, translationY: number, rotation: number, rotationX: number, rotationY: number, scaleX: number, scaleY: number): void;
			public setPivotX(pivotX: number): void;
			public setPivotY(pivotY: number): void;
			public setCameraDistance(distance: number): void;
			public setLeft(left: number): void;
			public setTop(top: number): void;
			public setRight(right: number): void;
			public setBottom(bottom: number): void;
			public setLeftTop(left: number, top: number): void;
			public setLeftTopRightBottom(left: number, top: number, right: number, bottom: number): void;
			public offsetLeftRight(offset: number): void;
			public offsetTopBottom(offset: number): void;
		}
		export module GLES20DisplayList {
			export class DisplayListFinalizer extends java.lang.Object {
				constructor(nativeDisplayList: number);
				static class: java.lang.Class<android.view.GLES20DisplayList.DisplayListFinalizer>;
				protected finalize(): void;
			}
		}
		/**
		 * Mock version of the SurfaceView. Only non override public methods from the real SurfaceView have been added in there. Methods that take an unknown class as parameter or as return object, have been removed for now.
		 */
		export class SurfaceView extends android.view.MockView {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.view.SurfaceView>;
			public getHolder(): android.view.ISurfaceHolder;
		}
		export class Longpress extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.Longpress>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
		}
		/**
		 * Basic implementation of IWindowManager so that Display (and Display_Delegate) can return a valid instance.
		 */
		export class IWindowManagerImpl extends java.lang.Object {
			constructor(config: android.content.res.Configuration, metrics: android.util.DisplayMetrics, rotation: number, hasSystemNavBar: boolean, hasNavigationBar: boolean);
			static class: java.lang.Class<android.view.IWindowManagerImpl>;
			public getMetrics(): android.util.DisplayMetrics;
			public getRotation(): number;
			public hasNavigationBar(): boolean;
			public hasSystemNavBar(): boolean;
			public addWindowToken(arg0: android.os.IIBinder, arg1: number): void;
			public clearForcedDisplaySize(displayId: number): void;
			public clearForcedDisplayDensity(displayId: number): void;
			public closeSystemDialogs(arg0: string): void;
			public startFreezingScreen(exitAnim: number, enterAnim: number): void;
			public stopFreezingScreen(): void;
			public disableKeyguard(arg0: android.os.IIBinder, arg1: string): void;
			public executeAppTransition(): void;
			public freezeRotation(arg0: number): void;
			public getAnimationScale(arg0: number): number;
			public getAnimationScales(): native.Array<number>;
			public getPendingAppTransition(): number;
			public inKeyguardRestrictedInputMode(): boolean;
			public isKeyguardLocked(): boolean;
			public isKeyguardSecure(): boolean;
			public isViewServerRunning(): boolean;
			public moveAppToken(arg0: number, arg1: android.os.IIBinder): void;
			public moveAppTokensToBottom(arg0: java.util.IList<android.os.IIBinder>): void;
			public moveAppTokensToTop(arg0: java.util.IList<android.os.IIBinder>): void;
			public overridePendingAppTransitionScaleUp(startX: number, startY: number, startWidth: number, startHeight: number): void;
			public pauseKeyDispatching(arg0: android.os.IIBinder): void;
			public prepareAppTransition(arg0: number, arg1: boolean): void;
			public reenableKeyguard(arg0: android.os.IIBinder): void;
			public removeAppToken(arg0: android.os.IIBinder): void;
			public removeWindowToken(arg0: android.os.IIBinder): void;
			public resumeKeyDispatching(arg0: android.os.IIBinder): void;
			public screenshotApplications(arg0: android.os.IIBinder, displayId: number, arg1: number, arg2: number): android.graphics.Bitmap;
			public setAnimationScale(arg0: number, arg1: number): void;
			public setAnimationScales(arg0: native.Array<number>): void;
			public setAppGroupId(arg0: android.os.IIBinder, arg1: number): void;
			public setAppVisibility(arg0: android.os.IIBinder, arg1: boolean): void;
			public setAppWillBeHidden(arg0: android.os.IIBinder): void;
			public setEventDispatching(arg0: boolean): void;
			public setFocusedApp(arg0: android.os.IIBinder, arg1: boolean): void;
			public setForcedDisplaySize(displayId: number, arg0: number, arg1: number): void;
			public setForcedDisplayDensity(displayId: number, density: number): void;
			public setInTouchMode(arg0: boolean): void;
			public setNewConfiguration(arg0: android.content.res.Configuration): void;
			public updateRotation(arg0: boolean, arg1: boolean): void;
			public setStrictModeVisualIndicatorPreference(arg0: string): void;
			public showStrictModeViolation(arg0: boolean): void;
			public startAppFreezingScreen(arg0: android.os.IIBinder, arg1: number): void;
			public startViewServer(arg0: number): boolean;
			public statusBarVisibilityChanged(arg0: number): void;
			public stopAppFreezingScreen(arg0: android.os.IIBinder, arg1: boolean): void;
			public stopViewServer(): boolean;
			public thawRotation(): void;
			public updateOrientationFromAppTokens(arg0: android.content.res.Configuration, arg1: android.os.IIBinder): android.content.res.Configuration;
			public asBinder(): android.os.IIBinder;
			public getPreferredOptionsPanelGravity(): number;
			public dismissKeyguard(): void;
			public lockNow(options: android.os.Bundle): void;
			public isSafeModeEnabled(): boolean;
			public showAssistant(): void;
			public getFocusedWindowToken(): android.os.IIBinder;
			public getWindowCompatibilityScale(windowToken: android.os.IIBinder): number;
			public magnifyDisplay(dipslayId: number, scale: number, offsetX: number, offsetY: number): void;
		}
		/**
		 * This class is used to instantiate menu XML files into Menu objects.
		 */
		export class MenuInflater extends java.lang.Object {
			/**
			 * Constructs a menu inflater. Activity#getMenuInflater()
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.view.MenuInflater>;
			MenuState: {
	new (menu: android.view.IMenu): android.view.MenuInflater.MenuState;
};
			/**
			 * Inflate a menu hierarchy from the specified XML resource. Throws InflateException if there is an error. 
			 * @param menuRes Resource ID for an XML layout resource to load (e.g.,
			 * @param menu The Menu to inflate into. The items and submenus will be
			 */
			public inflate(menuRes: number, menu: android.view.IMenu): void;
		}
		export module MenuInflater {
			export class InflatedOnMenuItemClickListener extends java.lang.Object implements android.view.MenuItem.IOnMenuItemClickListener {
				constructor(realOwner: any, methodName: string);
				static class: java.lang.Class<android.view.MenuInflater.InflatedOnMenuItemClickListener>;
				public onMenuItemClick(item: android.view.IMenuItem): boolean;
			}
			/**
			 * State for the current menu.
			 */
			export class MenuState extends java.lang.Object {
				static class: java.lang.Class<android.view.MenuInflater.MenuState>;
				public resetGroup(): void;
				/**
				 * Called when the parser is pointing to a group tag.
				 */
				public readGroup(attrs: android.util.IAttributeSet): void;
				/**
				 * Called when the parser is pointing to an item tag.
				 */
				public readItem(attrs: android.util.IAttributeSet): void;
				public addItem(): void;
				public addSubMenuItem(): android.view.ISubMenu;
				public hasAddedItem(): boolean;
			}
		}
		/**
		 * The interface that apps use to talk to the window manager.
		 */
		interface IWindowManager extends android.view.IViewManager {
			/**
			 * Returns the Display upon which this WindowManager instance will create new windows.
			 */
			getDefaultDisplay(): android.view.Display;
			/**
			 * Special variation of #removeView that immediately invokes the given view hierarchy's View#onDetachedFromWindow() View.onDetachedFromWindow() methods before returning. This is not for normal applications; using it correctly requires great care. 
			 * @param view The view to be removed.
			 */
			removeViewImmediate(view: android.view.View): void;
			/**
			 * Assign the passed LayoutParams to the passed View and add the view to the window.
			 * @param view The view to be added to this window.
			 * @param params The LayoutParams to assign to view.
			 */
			addView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			updateViewLayout(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			removeView(view: android.view.View): void;
		}
		/**
		 * A hardware layer can be used to render graphics operations into a hardware friendly buffer. For instance, with an OpenGL backend, a hardware layer would use a Frame Buffer Object (FBO.) The hardware layer can be used as a drawing cache when a complex set of graphics operations needs to be drawn several times.
		 */
		export class HardwareLayer extends java.lang.Object {
			static class: java.lang.Class<android.view.HardwareLayer>;
			/**
			 * Update the paint used when drawing this layer.
			 * @param paint The paint used when the layer is drawn into the destination canvas.
			 */
			setLayerPaint(paint: android.graphics.Paint): void;
			/**
			 * Returns the minimum width of the layer. 
			 */
			getWidth(): number;
			/**
			 * Returns the minimum height of the layer. 
			 */
			getHeight(): number;
			/**
			 * Returns whether or not this layer is opaque. 
			 */
			isOpaque(): boolean;
			/**
			 * Sets whether or not this layer should be considered opaque. 
			 * @param isOpaque True if the layer is opaque, false otherwise
			 */
			setOpaque(isOpaque: boolean): void;
			/**
			 * Indicates whether this layer can be rendered. 
			 */
			isValid(): boolean;
			/**
			 * Resize the layer, if necessary, to be at least as large as the supplied dimensions. 
			 * @param width The new desired minimum width for this layer
			 * @param height The new desired minimum height for this layer
			 */
			resize(width: number, height: number): boolean;
			/**
			 * Destroys resources without waiting for a GC.
			 */
			destroy(): void;
			/**
			 * This must be invoked after drawing onto this layer.
			 * @param currentCanvas 
			 */
			end(currentCanvas: android.graphics.Canvas): void;
			/**
			 * Copies this layer into the specified bitmap. 
			 * @param bitmap The bitmap to copy they layer into
			 */
			copyInto(bitmap: android.graphics.Bitmap): boolean;
			/**
			 * Update the layer's properties. This method should be used when the underlying storage is modified by an external entity. To change the underlying storage, use the #resize(int, int) method instead. 
			 * @param width The new width of this layer
			 * @param height The new height of this layer
			 * @param isOpaque Whether this layer is opaque
			 */
			update(width: number, height: number, isOpaque: boolean): void;
			/**
			 * Sets an optional transform on this layer. 
			 * @param matrix The transform to apply to the layer.
			 */
			setTransform(matrix: android.graphics.Matrix): void;
			/**
			 * Indicates that this layer has lost its underlying storage.
			 */
			clearStorage(): void;
		}
		/**
		 * Exercises android.view.View's longpress plumbing by testing the disabled case.
		 */
		export class DisabledLongpressTest extends android.test.ActivityInstrumentationTestCase<android.view.Longpress> {
			constructor();
			static class: java.lang.Class<android.view.DisabledLongpressTest>;
			public setUp(): void;
			protected tearDown(): void;
			public testSetUpConditions(): void;
			public testKeypadLongClick(): void;
			public testTouchLongClick(): void;
		}
		/**
		 * Interface for direct access to a previously created menu item.
		 */
		interface IMenuItem {
			/**
			 * Return the identifier for this menu item. The identifier can not be changed after the menu is created.
			 */
			getItemId(): number;
			/**
			 * Return the group identifier that this menu item is part of. The group identifier can not be changed after the menu is created. 
			 */
			getGroupId(): number;
			/**
			 * Return the category and order within the category of this item. This item will be shown before all items (within its category) that have order greater than this value.
			 */
			getOrder(): number;
			/**
			 * Change the title associated with this item.
			 * @param title The new text to be displayed.
			 */
			setTitle(title: string): android.view.IMenuItem;
			/**
			 * Change the title associated with this item.
			 * @param title The resource id of the new text to be displayed.
			 */
			setTitle(title: number): android.view.IMenuItem;
			/**
			 * Retrieve the current title of the item.
			 */
			getTitle(): string;
			/**
			 * Change the condensed title associated with this item. The condensed title is used in situations where the normal title may be too long to be displayed. 
			 * @param title The new text to be displayed as the condensed title.
			 */
			setTitleCondensed(title: string): android.view.IMenuItem;
			/**
			 * Retrieve the current condensed title of the item. If a condensed title was never set, it will return the normal title. 
			 */
			getTitleCondensed(): string;
			/**
			 * Change the icon associated with this item. This icon will not always be shown, so the title should be sufficient in describing this item. See Menu for the menu types that support icons. 
			 * @param icon The new icon (as a Drawable) to be displayed.
			 */
			setIcon(icon: android.graphics.drawable.Drawable): android.view.IMenuItem;
			/**
			 * Change the icon associated with this item. This icon will not always be shown, so the title should be sufficient in describing this item. See Menu for the menu types that support icons.
			 * @param iconRes The new icon (as a resource ID) to be displayed.
			 */
			setIcon(iconRes: number): android.view.IMenuItem;
			/**
			 * Returns the icon for this item as a Drawable (getting it from resources if it hasn't been loaded before). 
			 */
			getIcon(): android.graphics.drawable.Drawable;
			/**
			 * Change the Intent associated with this item. By default there is no Intent associated with a menu item. If you set one, and nothing else handles the item, then the default behavior will be to call android.content.Context#startActivity with the given Intent.
			 * @param intent The Intent to associated with the item. This Intent
			 */
			setIntent(intent: android.content.Intent): android.view.IMenuItem;
			/**
			 * Return the Intent associated with this item. This returns a reference to the Intent which you can change as desired to modify what the Item is holding.
			 */
			getIntent(): android.content.Intent;
			/**
			 * Change both the numeric and alphabetic shortcut associated with this item. Note that the shortcut will be triggered when the key that generates the given character is pressed alone or along with with the alt key. Also note that case is not significant and that alphabetic shortcut characters will be displayed in lower case.
			 * @param numericChar The numeric shortcut key. This is the shortcut when
			 * @param alphaChar The alphabetic shortcut key. This is the shortcut when
			 */
			setShortcut(numericChar: string, alphaChar: string): android.view.IMenuItem;
			/**
			 * Change the numeric shortcut associated with this item.
			 * @param numericChar The numeric shortcut key. This is the shortcut when
			 */
			setNumericShortcut(numericChar: string): android.view.IMenuItem;
			/**
			 * Return the char for this menu item's numeric (12-key) shortcut.
			 */
			getNumericShortcut(): string;
			/**
			 * Change the alphabetic shortcut associated with this item. The shortcut will be triggered when the key that generates the given character is pressed alone or along with with the alt key. Case is not significant and shortcut characters will be displayed in lower case. Note that menu items with the characters '\b' or '\n' as shortcuts will get triggered by the Delete key or Carriage Return key, respectively.
			 * @param alphaChar The alphabetic shortcut key. This is the shortcut when
			 */
			setAlphabeticShortcut(alphaChar: string): android.view.IMenuItem;
			/**
			 * Return the char for this menu item's alphabetic shortcut.
			 */
			getAlphabeticShortcut(): string;
			/**
			 * Control whether this item can display a check mark. Setting this does not actually display a check mark (see #setChecked for that); rather, it ensures there is room in the item in which to display a check mark.
			 * @param checkable Set to true to allow a check mark, false to
			 */
			setCheckable(checkable: boolean): android.view.IMenuItem;
			/**
			 * Return whether the item can currently display a check mark.
			 */
			isCheckable(): boolean;
			/**
			 * Control whether this item is shown with a check mark. Note that you must first have enabled checking with #setCheckable or else the check mark will not appear. If this item is a member of a group that contains mutually-exclusive items (set via Menu#setGroupCheckable(int, boolean, boolean), the other items in the group will be unchecked.
			 * @param checked Set to true to display a check mark, false to hide
			 */
			setChecked(checked: boolean): android.view.IMenuItem;
			/**
			 * Return whether the item is currently displaying a check mark.
			 */
			isChecked(): boolean;
			/**
			 * Sets the visibility of the menu item. Even if a menu item is not visible, it may still be invoked via its shortcut (to completely disable an item, set it to invisible and #setEnabled(boolean) disabled). 
			 * @param visible If true then the item will be visible; if false it is
			 */
			setVisible(visible: boolean): android.view.IMenuItem;
			/**
			 * Return the visibility of the menu item.
			 */
			isVisible(): boolean;
			/**
			 * Sets whether the menu item is enabled. Disabling a menu item will not allow it to be invoked via its shortcut. The menu item will still be visible. 
			 * @param enabled If true then the item will be invokable; if false it is
			 */
			setEnabled(enabled: boolean): android.view.IMenuItem;
			/**
			 * Return the enabled state of the menu item.
			 */
			isEnabled(): boolean;
			/**
			 * Check whether this item has an associated sub-menu. I.e. it is a sub-menu of another menu.
			 */
			hasSubMenu(): boolean;
			/**
			 * Get the sub-menu to be invoked when this item is selected, if it has one. See #hasSubMenu().
			 */
			getSubMenu(): android.view.ISubMenu;
			/**
			 * Set a custom listener for invocation of this menu item. In most situations, it is more efficient and easier to use Activity#onOptionsItemSelected(MenuItem) or Activity#onContextItemSelected(MenuItem). 
			 * @param menuItemClickListener The object to receive invokations.
			 */
			setOnMenuItemClickListener(menuItemClickListener: android.view.MenuItem.IOnMenuItemClickListener): android.view.IMenuItem;
			/**
			 * Gets the extra information linked to this menu item. This extra information is set by the View that added this menu item to the menu. OnCreateContextMenuListener
			 */
			getMenuInfo(): android.view.ContextMenu.IContextMenuInfo;
			/**
			 * Sets how this item should display in the presence of an Action Bar. The parameter actionEnum is a flag set. One of #SHOW_AS_ACTION_ALWAYS, #SHOW_AS_ACTION_IF_ROOM, or #SHOW_AS_ACTION_NEVER should be used, and you may optionally OR the value with #SHOW_AS_ACTION_WITH_TEXT. SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, it should be shown with a text label.
			 * @param actionEnum How the item should display. One of
			 */
			setShowAsAction(actionEnum: number): void;
			/**
			 * Sets how this item should display in the presence of an Action Bar. The parameter actionEnum is a flag set. One of #SHOW_AS_ACTION_ALWAYS, #SHOW_AS_ACTION_IF_ROOM, or #SHOW_AS_ACTION_NEVER should be used, and you may optionally OR the value with #SHOW_AS_ACTION_WITH_TEXT. SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, it should be shown with a text label.
			 * @param actionEnum How the item should display. One of
			 */
			setShowAsActionFlags(actionEnum: number): android.view.IMenuItem;
			/**
			 * Set an action view for this menu item. An action view will be displayed in place of an automatically generated menu item element in the UI when this item is shown as an action within a parent.
			 * @param view View to use for presenting this item to the user.
			 */
			setActionView(view: android.view.View): android.view.IMenuItem;
			/**
			 * Set an action view for this menu item. An action view will be displayed in place of an automatically generated menu item element in the UI when this item is shown as an action within a parent.
			 * @param resId Layout resource to use for presenting this item to the user.
			 */
			setActionView(resId: number): android.view.IMenuItem;
			/**
			 * Returns the currently set action view for this menu item.
			 */
			getActionView(): android.view.View;
			/**
			 * Sets the ActionProvider responsible for creating an action view if the item is placed on the action bar. The provider also provides a default action invoked if the item is placed in the overflow menu.
			 * @param actionProvider The action provider.
			 */
			setActionProvider(actionProvider: android.view.ActionProvider): android.view.IMenuItem;
			/**
			 * Gets the ActionProvider.
			 */
			getActionProvider(): android.view.ActionProvider;
			/**
			 * Expand the action view associated with this menu item. The menu item must have an action view set, as well as the showAsAction flag #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW. If a listener has been set using #setOnActionExpandListener(OnActionExpandListener) it will have its OnActionExpandListener#onMenuItemActionExpand(MenuItem) method invoked. The listener may return false from this method to prevent expanding the action view.
			 */
			expandActionView(): boolean;
			/**
			 * Collapse the action view associated with this menu item. The menu item must have an action view set, as well as the showAsAction flag #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW. If a listener has been set using #setOnActionExpandListener(OnActionExpandListener) it will have its OnActionExpandListener#onMenuItemActionCollapse(MenuItem) method invoked. The listener may return false from this method to prevent collapsing the action view.
			 */
			collapseActionView(): boolean;
			/**
			 * Returns true if this menu item's action view has been expanded.
			 */
			isActionViewExpanded(): boolean;
			/**
			 * Set an OnActionExpandListener on this menu item to be notified when the associated action view is expanded or collapsed. The menu item must be configured to expand or collapse its action view using the flag #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.
			 * @param listener Listener that will respond to expand/collapse events
			 */
			setOnActionExpandListener(listener: android.view.MenuItem.IOnActionExpandListener): android.view.IMenuItem;
		}
		export module IMenuItem {
			/**
			 * Never show this item as a button in an Action Bar.
			 */
			var SHOW_AS_ACTION_NEVER: number;
			/**
			 * Show this item as a button in an Action Bar if the system decides there is room for it.
			 */
			var SHOW_AS_ACTION_IF_ROOM: number;
			/**
			 * Always show this item as a button in an Action Bar. Use sparingly! If too many items are set to always show in the Action Bar it can crowd the Action Bar and degrade the user experience on devices with smaller screens. A good rule of thumb is to have no more than 2 items set to always show at a time.
			 */
			var SHOW_AS_ACTION_ALWAYS: number;
			/**
			 * When this item is in the action bar, always show it with a text label even if it also has an icon specified.
			 */
			var SHOW_AS_ACTION_WITH_TEXT: number;
			/**
			 * This item's action view collapses to a normal menu item. When expanded, the action view temporarily takes over a larger segment of its container.
			 */
			var SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW: number;
		}
		/**
		 * Exercises android.view.ViewGroup's ability to add/remove children.
		 */
		export class ViewGroupChildrenTest extends android.test.ActivityInstrumentationTestCase<android.view.ViewGroupChildren> {
			constructor();
			static class: java.lang.Class<android.view.ViewGroupChildrenTest>;
			public setUp(): void;
			public testSetUpConditions(): void;
			public testStartsEmpty(): void;
			public testAddChild(): void;
			public testAddChildAtFront(): void;
			public testAddChildInMiddle(): void;
			public testAddChildren(): void;
			public testRemoveChild(): void;
			public testRemoveChildren(): void;
			public testRemoveChildrenBulk(): void;
			public testRemoveChildrenBulkAtFront(): void;
			public testRemoveChildrenBulkAtEnd(): void;
			public testRemoveChildAtFront(): void;
			public testRemoveChildInMiddle(): void;
		}
		export class BitmapDrawable extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.BitmapDrawable>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		/**
		 * Exercises android.view.View's tags property.
		 */
		export class SetTagsTest extends android.test.ActivityInstrumentationTestCase2<android.view.Disabled> {
			constructor();
			static class: java.lang.Class<android.view.SetTagsTest>;
			public setUp(): void;
			public testSetUpConditions(): void;
			public testSetTag(): void;
			public testGetTag(): void;
			public testSetTagWithKey(): void;
			public testGetTagWithKey(): void;
			public testSetTagWithFrameworkId(): void;
			public testSetTagWithNoPackageId(): void;
			public testSetTagInternalWithFrameworkId(): void;
			public testSetTagInternalWithApplicationId(): void;
		}
		/**
		 * Describes the keys provided by a keyboard device and their associated labels.
		 */
		export class KeyCharacterMap extends java.lang.Object implements android.os.IParcelable {
			/**
			 * The id of the device's primary built in keyboard is always 0.
			 */
			static BUILT_IN_KEYBOARD: number;
			/**
			 * The id of a generic virtual keyboard with a full layout that can be used to synthesize key events. Typically used with #getEvents.
			 */
			static VIRTUAL_KEYBOARD: number;
			/**
			 * A numeric (12-key) keyboard.
			 */
			static NUMERIC: number;
			/**
			 * A keyboard with all the letters, but with more than one letter per key.
			 */
			static PREDICTIVE: number;
			/**
			 * A keyboard with all the letters, and maybe some numbers.
			 */
			static ALPHA: number;
			/**
			 * A full PC-style keyboard.
			 */
			static FULL: number;
			/**
			 * A keyboard that is only used to control special functions rather than for typing.
			 */
			static SPECIAL_FUNCTION: number;
			/**
			 * This private-use character is used to trigger Unicode character input by hex digits.
			 */
			static HEX_INPUT: string;
			/**
			 * This private-use character is used to bring up a character picker for miscellaneous symbols.
			 */
			static PICKER_DIALOG_INPUT: string;
			/**
			 * Modifier keys may be chorded with character keys.
			 */
			static MODIFIER_BEHAVIOR_CHORDED: number;
			/**
			 * Modifier keys may be chorded with character keys or they may toggle into latched or locked states when pressed independently.
			 */
			static MODIFIER_BEHAVIOR_CHORDED_OR_TOGGLED: number;
			static COMBINING_ACCENT: number;
			/**
			 * Mask the return value from #get(int, int) with this value to get a printable representation of the accent character of a "dead key."
			 */
			static COMBINING_ACCENT_MASK: number;
			static CREATOR: android.os.Parcelable.ICreator<android.view.KeyCharacterMap>;
			static class: java.lang.Class<android.view.KeyCharacterMap>;
			protected finalize(): void;
			/**
			 * Loads the key character maps for the keyboard with the specified device id.
			 * @param deviceId The device id of the keyboard.
			 */
			public static load(deviceId: number): android.view.KeyCharacterMap;
			/**
			 * Gets the Unicode character generated by the specified key and meta key state combination.
			 * @param keyCode The key code.
			 * @param metaState The meta key modifier state.
			 */
			public get(keyCode: number, metaState: number): number;
			/**
			 * Gets the number or symbol associated with the key.
			 * @param keyCode The key code.
			 */
			public getNumber(keyCode: number): string;
			/**
			 * Gets the first character in the character array that can be generated by the specified key code.
			 * @param keyCode The keycode.
			 * @param chars The array of matching characters to consider.
			 */
			public getMatch(keyCode: number, chars: native.Array<string>): string;
			/**
			 * Gets the first character in the character array that can be generated by the specified key code. If there are multiple choices, prefers the one that would be generated with the specified meta key modifier state.
			 * @param keyCode The key code.
			 * @param chars The array of matching characters to consider.
			 * @param metaState The preferred meta key modifier state.
			 */
			public getMatch(keyCode: number, chars: native.Array<string>, metaState: number): string;
			/**
			 * Gets the primary character for this key. In other words, the label that is physically printed on it.
			 * @param keyCode The key code.
			 */
			public getDisplayLabel(keyCode: number): string;
			/**
			 * Get the character that is produced by putting accent on the character c. For example, getDeadChar('`', 'e') returns &egrave;.
			 * @param accent The accent character. eg. '`'
			 * @param c The basic character.
			 */
			public static getDeadChar(accent: number, c: number): number;
			/**
			 * Get the character conversion data for a given key code.
			 * @param keyCode The keyCode to query.
			 * @param results A {@link KeyData} instance that will be filled with the results.
			 */
			public getKeyData(keyCode: number, results: android.view.KeyCharacterMap.KeyData): boolean;
			/**
			 * Get an array of KeyEvent objects that if put into the input stream could plausibly generate the provided sequence of characters. It is not guaranteed that the sequence is the only way to generate these events or that it is optimal.
			 * @param chars The sequence of characters to generate.
			 */
			public getEvents(chars: native.Array<string>): native.Array<android.view.KeyEvent>;
			/**
			 * Returns true if the specified key produces a glyph.
			 * @param keyCode The key code.
			 */
			public isPrintingKey(keyCode: number): boolean;
			/**
			 * Gets the keyboard type. Returns #NUMERIC, #PREDICTIVE, #ALPHA, #FULL or #SPECIAL_FUNCTION.
			 */
			public getKeyboardType(): number;
			/**
			 * Gets a constant that describes the behavior of this keyboard's modifier keys such as KeyEvent#KEYCODE_SHIFT_LEFT.
			 */
			public getModifierBehavior(): number;
			/**
			 * Queries the framework about whether any physical keys exist on the any keyboard attached to the device that are capable of producing the given key code.
			 * @param keyCode The key code to query.
			 */
			public static deviceHasKey(keyCode: number): boolean;
			/**
			 * Queries the framework about whether any physical keys exist on the any keyboard attached to the device that are capable of producing the given array of key codes.
			 * @param keyCodes The array of key codes to query.
			 */
			public static deviceHasKeys(keyCodes: native.Array<number>): native.Array<boolean>;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			public describeContents(): number;
		}
		export module KeyCharacterMap {
			/**
			 * Thrown by KeyCharacterMap#load when a key character map could not be loaded.
			 */
			export class UnavailableException extends android.util.AndroidRuntimeException {
				constructor(msg: string);
				static class: java.lang.Class<android.view.KeyCharacterMap.UnavailableException>;
			}
			/**
			 * Describes the character mappings associated with a key.
			 */
			export class KeyData extends java.lang.Object {
				constructor();
				static META_LENGTH: number;
				/**
				 * The display label (see #getDisplayLabel).
				 */
				displayLabel: string;
				/**
				 * The "number" value (see #getNumber).
				 */
				number: string;
				/**
				 * The character that will be generated in various meta states (the same ones used for #get and defined as KeyEvent#META_SHIFT_ON and KeyEvent#META_ALT_ON). <table> <tr><th>Index</th><th align="left">Value</th></tr> <tr><td>0</td><td>no modifiers</td></tr> <tr><td>1</td><td>caps</td></tr> <tr><td>2</td><td>alt</td></tr> <tr><td>3</td><td>caps + alt</td></tr> </table>
				 */
				meta: native.Array<string>;
				static class: java.lang.Class<android.view.KeyCharacterMap.KeyData>;
			}
		}
		export module animation {
			/**
			 * An interpolator where the rate of change starts out quickly and and then decelerates.
			 */
			export class DecelerateInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				/**
				 * Constructor 
				 * @param factor Degree to which the animation should be eased. Setting factor to 1.0f produces
				 */
				constructor(factor: number);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.DecelerateInterpolator>;
				public getInterpolation(input: number): number;
			}
			/**
			 * A layout animation controller is used to animated a grid layout's children.
			 */
			export class GridLayoutAnimationController extends android.view.animation.LayoutAnimationController {
				/**
				 * Creates a new grid layout animation controller from external resources.
				 * @param context the Context the view group is running in, through which
				 * @param attrs the attributes of the XML tag that is inflating the
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Creates a new layout animation controller with a delay of 50% for both rows and columns and the specified animation.
				 * @param animation the animation to use on each child of the view group
				 */
				constructor(animation: android.view.animation.Animation);
				/**
				 * Creates a new layout animation controller with the specified delays and the specified animation.
				 * @param animation the animation to use on each child of the view group
				 * @param columnDelay the delay by which each column animation must be offset
				 * @param rowDelay the delay by which each row animation must be offset
				 */
				constructor(animation: android.view.animation.Animation, columnDelay: number, rowDelay: number);
				/**
				 * Animates the children starting from the left of the grid to the right.
				 */
				static DIRECTION_LEFT_TO_RIGHT: number;
				/**
				 * Animates the children starting from the right of the grid to the left.
				 */
				static DIRECTION_RIGHT_TO_LEFT: number;
				/**
				 * Animates the children starting from the top of the grid to the bottom.
				 */
				static DIRECTION_TOP_TO_BOTTOM: number;
				/**
				 * Animates the children starting from the bottom of the grid to the top.
				 */
				static DIRECTION_BOTTOM_TO_TOP: number;
				/**
				 * Bitmask used to retrieve the horizontal component of the direction.
				 */
				static DIRECTION_HORIZONTAL_MASK: number;
				/**
				 * Bitmask used to retrieve the vertical component of the direction.
				 */
				static DIRECTION_VERTICAL_MASK: number;
				/**
				 * Rows and columns are animated at the same time.
				 */
				static PRIORITY_NONE: number;
				/**
				 * Columns are animated first.
				 */
				static PRIORITY_COLUMN: number;
				/**
				 * Rows are animated first.
				 */
				static PRIORITY_ROW: number;
				static class: java.lang.Class<android.view.animation.GridLayoutAnimationController>;
				/**
				 * Returns the delay by which the children's animation are offset from one column to the other. The delay is expressed as a fraction of the animation duration.
				 */
				public getColumnDelay(): number;
				/**
				 * Sets the delay, as a fraction of the animation duration, by which the children's animations are offset from one column to the other.
				 * @param columnDelay a fraction of the animation duration
				 */
				public setColumnDelay(columnDelay: number): void;
				/**
				 * Returns the delay by which the children's animation are offset from one row to the other. The delay is expressed as a fraction of the animation duration.
				 */
				public getRowDelay(): number;
				/**
				 * Sets the delay, as a fraction of the animation duration, by which the children's animations are offset from one row to the other.
				 * @param rowDelay a fraction of the animation duration
				 */
				public setRowDelay(rowDelay: number): void;
				/**
				 * Returns the direction of the animation. #DIRECTION_HORIZONTAL_MASK and #DIRECTION_VERTICAL_MASK can be used to retrieve the horizontal and vertical components of the direction.
				 */
				public getDirection(): number;
				/**
				 * Sets the direction of the animation. The direction is expressed as an integer containing a horizontal and vertical component. For instance, <code>DIRECTION_BOTTOM_TO_TOP | DIRECTION_RIGHT_TO_LEFT</code>.
				 * @param direction the direction of the animation
				 */
				public setDirection(direction: number): void;
				/**
				 * Returns the direction priority for the animation. The priority can be either #PRIORITY_NONE, #PRIORITY_COLUMN or #PRIORITY_ROW.
				 */
				public getDirectionPriority(): number;
				/**
				 * Specifies the direction priority of the animation. For instance, #PRIORITY_COLUMN will give priority to columns: the animation will first play on the column, then on the rows.Z
				 * @param directionPriority the direction priority of the animation
				 */
				public setDirectionPriority(directionPriority: number): void;
				/**
				 * 
				 */
				public willOverlap(): boolean;
				/**
				 * 
				 */
				protected getDelayForView(view: android.view.View): any;
			}
			export module GridLayoutAnimationController {
				/**
				 * The set of parameters that has to be attached to each view contained in the view group animated by the grid layout animation controller. These parameters are used to compute the start time of each individual view's animation.
				 */
				export class AnimationParameters extends android.view.animation.LayoutAnimationController.AnimationParameters {
					constructor();
					/**
					 * The view group's column to which the view belongs.
					 */
					column: number;
					/**
					 * The view group's row to which the view belongs.
					 */
					row: number;
					/**
					 * The number of columns in the view's enclosing grid layout.
					 */
					columnsCount: number;
					/**
					 * The number of rows in the view's enclosing grid layout.
					 */
					rowsCount: number;
					static class: java.lang.Class<android.view.animation.GridLayoutAnimationController.AnimationParameters>;
				}
			}
			/**
			 * Defines the transformation to be applied at one point in time of an Animation.
			 */
			export class Transformation extends java.lang.Object {
				/**
				 * Creates a new transformation with alpha = 1 and the identity matrix.
				 */
				constructor();
				/**
				 * Indicates a transformation that has no effect (alpha = 1 and identity matrix.)
				 */
				static TYPE_IDENTITY: number;
				/**
				 * Indicates a transformation that applies an alpha only (uses an identity matrix.)
				 */
				static TYPE_ALPHA: number;
				/**
				 * Indicates a transformation that applies a matrix only (alpha = 1.)
				 */
				static TYPE_MATRIX: number;
				/**
				 * Indicates a transformation that applies an alpha and a matrix.
				 */
				static TYPE_BOTH: number;
				static class: java.lang.Class<android.view.animation.Transformation>;
				/**
				 * Reset the transformation to a state that leaves the object being animated in an unmodified state. The transformation type is #TYPE_BOTH by default.
				 */
				public clear(): void;
				/**
				 * Indicates the nature of this transformation.
				 */
				public getTransformationType(): number;
				/**
				 * Sets the transformation type.
				 * @param transformationType One of {@link #TYPE_ALPHA},
				 */
				public setTransformationType(transformationType: number): void;
				/**
				 * Clones the specified transformation.
				 * @param t The transformation to clone.
				 */
				public set(t: android.view.animation.Transformation): void;
				/**
				 * Apply this Transformation to an existing Transformation, e.g. apply a scale effect to something that has already been rotated.
				 * @param t 
				 */
				public compose(t: android.view.animation.Transformation): void;
				public getMatrix(): android.graphics.Matrix;
				/**
				 * Sets the degree of transparency
				 * @param alpha 1.0 means fully opaqe and 0.0 means fully transparent
				 */
				public setAlpha(alpha: number): void;
				public getAlpha(): number;
				public toString(): string;
				/**
				 * Return a string representation of the transformation in a compact form.
				 */
				public toShortString(): string;
			}
			/**
			 * An interpolator where the change flings forward and overshoots the last value then comes back.
			 */
			export class OvershootInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				/**
				 * @param tension Amount of overshoot. When tension equals 0.0f, there is
				 */
				constructor(tension: number);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.OvershootInterpolator>;
				public getInterpolation(t: number): number;
			}
			/**
			 * An interpolator where the rate of change starts out slowly and and then accelerates.
			 */
			export class AccelerateInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				/**
				 * Constructor 
				 * @param factor Degree to which the animation should be eased. Seting
				 */
				constructor(factor: number);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.AccelerateInterpolator>;
				public getInterpolation(input: number): number;
			}
			/**
			 * An interpolator where the change bounces at the end.
			 */
			export class BounceInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.BounceInterpolator>;
				public getInterpolation(t: number): number;
			}
			/**
			 * An animation that controls the position of an object. See the android.view.animation full package description for details and sample code. 
			 */
			export class TranslateAnimation extends android.view.animation.Animation {
				/**
				 * Constructor used when a TranslateAnimation is loaded from a resource. 
				 * @param context Application context to use
				 * @param attrs Attribute set from which to read values
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Constructor to use when building a TranslateAnimation from code 
				 * @param fromXDelta Change in X coordinate to apply at the start of the
				 * @param toXDelta Change in X coordinate to apply at the end of the
				 * @param fromYDelta Change in Y coordinate to apply at the start of the
				 * @param toYDelta Change in Y coordinate to apply at the end of the
				 */
				constructor(fromXDelta: number, toXDelta: number, fromYDelta: number, toYDelta: number);
				/**
				 * Constructor to use when building a TranslateAnimation from code 
				 * @param fromXType Specifies how fromXValue should be interpreted. One of
				 * @param fromXValue Change in X coordinate to apply at the start of the
				 * @param toXType Specifies how toXValue should be interpreted. One of
				 * @param toXValue Change in X coordinate to apply at the end of the
				 * @param fromYType Specifies how fromYValue should be interpreted. One of
				 * @param fromYValue Change in Y coordinate to apply at the start of the
				 * @param toYType Specifies how toYValue should be interpreted. One of
				 * @param toYValue Change in Y coordinate to apply at the end of the
				 */
				constructor(fromXType: number, fromXValue: number, toXType: number, toXValue: number, fromYType: number, fromYValue: number, toYType: number, toYValue: number);
				static class: java.lang.Class<android.view.animation.TranslateAnimation>;
				protected applyTransformation(interpolatedTime: number, t: android.view.animation.Transformation): void;
				public initialize(width: number, height: number, parentWidth: number, parentHeight: number): void;
			}
			/**
			 * An interpolator defines the rate of change of an animation. This allows the basic animation effects (alpha, scale, translate, rotate) to be accelerated, decelerated, repeated, etc.
			 */
			interface IInterpolator extends android.animation.ITimeInterpolator {
				/**
				 * Maps a value representing the elapsed fraction of an animation to a value that represents the interpolated fraction. This interpolated value is then multiplied by the change in value of an animation to derive the animated value at the current elapsed animation time.
				 * @param input A value between 0 and 1.0 indicating our current point
				 */
				getInterpolation(input: number): number;
			}
			/**
			 * Repeats the animation for a specified number of cycles. The rate of change follows a sinusoidal pattern.
			 */
			export class CycleInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor(cycles: number);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.CycleInterpolator>;
				public getInterpolation(input: number): number;
			}
			/**
			 * An interpolator where the change starts backward then flings forward and overshoots the target value and finally goes back to the final value.
			 */
			export class AnticipateOvershootInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				/**
				 * @param tension Amount of anticipation/overshoot. When tension equals 0.0f,
				 */
				constructor(tension: number);
				/**
				 * @param tension Amount of anticipation/overshoot. When tension equals 0.0f,
				 * @param extraTension Amount by which to multiply the tension. For instance,
				 */
				constructor(tension: number, extraTension: number);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.AnticipateOvershootInterpolator>;
				public getInterpolation(t: number): number;
			}
			/**
			 * An animation that controls the alpha level of an object. Useful for fading things in and out. This animation ends up changing the alpha property of a Transformation
			 */
			export class AlphaAnimation extends android.view.animation.Animation {
				/**
				 * Constructor used when an AlphaAnimation is loaded from a resource. 
				 * @param context Application context to use
				 * @param attrs Attribute set from which to read values
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Constructor to use when building an AlphaAnimation from code 
				 * @param fromAlpha Starting alpha value for the animation, where 1.0 means
				 * @param toAlpha Ending alpha value for the animation.
				 */
				constructor(fromAlpha: number, toAlpha: number);
				static class: java.lang.Class<android.view.animation.AlphaAnimation>;
				/**
				 * Changes the alpha property of the supplied Transformation
				 */
				protected applyTransformation(interpolatedTime: number, t: android.view.animation.Transformation): void;
				public willChangeTransformationMatrix(): boolean;
				public willChangeBounds(): boolean;
			}
			/**
			 * An animation that controls the scale of an object. You can specify the point to use for the center of scaling. 
			 */
			export class ScaleAnimation extends android.view.animation.Animation {
				/**
				 * Constructor used when a ScaleAnimation is loaded from a resource. 
				 * @param context Application context to use
				 * @param attrs Attribute set from which to read values
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Constructor to use when building a ScaleAnimation from code 
				 * @param fromX Horizontal scaling factor to apply at the start of the
				 * @param toX Horizontal scaling factor to apply at the end of the animation
				 * @param fromY Vertical scaling factor to apply at the start of the
				 * @param toY Vertical scaling factor to apply at the end of the animation
				 */
				constructor(fromX: number, toX: number, fromY: number, toY: number);
				/**
				 * Constructor to use when building a ScaleAnimation from code 
				 * @param fromX Horizontal scaling factor to apply at the start of the
				 * @param toX Horizontal scaling factor to apply at the end of the animation
				 * @param fromY Vertical scaling factor to apply at the start of the
				 * @param toY Vertical scaling factor to apply at the end of the animation
				 * @param pivotX The X coordinate of the point about which the object is
				 * @param pivotY The Y coordinate of the point about which the object is
				 */
				constructor(fromX: number, toX: number, fromY: number, toY: number, pivotX: number, pivotY: number);
				/**
				 * Constructor to use when building a ScaleAnimation from code 
				 * @param fromX Horizontal scaling factor to apply at the start of the
				 * @param toX Horizontal scaling factor to apply at the end of the animation
				 * @param fromY Vertical scaling factor to apply at the start of the
				 * @param toY Vertical scaling factor to apply at the end of the animation
				 * @param pivotXType Specifies how pivotXValue should be interpreted. One of
				 * @param pivotXValue The X coordinate of the point about which the object
				 * @param pivotYType Specifies how pivotYValue should be interpreted. One of
				 * @param pivotYValue The Y coordinate of the point about which the object
				 */
				constructor(fromX: number, toX: number, fromY: number, toY: number, pivotXType: number, pivotXValue: number, pivotYType: number, pivotYValue: number);
				static class: java.lang.Class<android.view.animation.ScaleAnimation>;
				protected applyTransformation(interpolatedTime: number, t: android.view.animation.Transformation): void;
				resolveScale(scale: number, type: number, data: number, size: number, psize: number): number;
				public initialize(width: number, height: number, parentWidth: number, parentHeight: number): void;
			}
			/**
			 * An interpolator where the change starts backward then flings forward.
			 */
			export class AnticipateInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				/**
				 * @param tension Amount of anticipation. When tension equals 0.0f, there is
				 */
				constructor(tension: number);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.AnticipateInterpolator>;
				public getInterpolation(t: number): number;
			}
			/**
			 * An animation that controls the rotation of an object. This rotation takes place in the X-Y plane. You can specify the point to use for the center of the rotation, where (0,0) is the top left point. If not specified, (0,0) is the default rotation point. 
			 */
			export class RotateAnimation extends android.view.animation.Animation {
				/**
				 * Constructor used when a RotateAnimation is loaded from a resource. 
				 * @param context Application context to use
				 * @param attrs Attribute set from which to read values
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Constructor to use when building a RotateAnimation from code. Default pivotX/pivotY point is (0,0). 
				 * @param fromDegrees Rotation offset to apply at the start of the
				 * @param toDegrees Rotation offset to apply at the end of the animation.
				 */
				constructor(fromDegrees: number, toDegrees: number);
				/**
				 * Constructor to use when building a RotateAnimation from code 
				 * @param fromDegrees Rotation offset to apply at the start of the
				 * @param toDegrees Rotation offset to apply at the end of the animation.
				 * @param pivotX The X coordinate of the point about which the object is
				 * @param pivotY The Y coordinate of the point about which the object is
				 */
				constructor(fromDegrees: number, toDegrees: number, pivotX: number, pivotY: number);
				/**
				 * Constructor to use when building a RotateAnimation from code 
				 * @param fromDegrees Rotation offset to apply at the start of the
				 * @param toDegrees Rotation offset to apply at the end of the animation.
				 * @param pivotXType Specifies how pivotXValue should be interpreted. One of
				 * @param pivotXValue The X coordinate of the point about which the object
				 * @param pivotYType Specifies how pivotYValue should be interpreted. One of
				 * @param pivotYValue The Y coordinate of the point about which the object
				 */
				constructor(fromDegrees: number, toDegrees: number, pivotXType: number, pivotXValue: number, pivotYType: number, pivotYValue: number);
				static class: java.lang.Class<android.view.animation.RotateAnimation>;
				protected applyTransformation(interpolatedTime: number, t: android.view.animation.Transformation): void;
				public initialize(width: number, height: number, parentWidth: number, parentHeight: number): void;
			}
			/**
			 * An interpolator where the rate of change is constant
			 */
			export class LinearInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.LinearInterpolator>;
				public getInterpolation(input: number): number;
			}
			/**
			 * Defines common utilities for working with animations.
			 */
			export class AnimationUtils extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.view.animation.AnimationUtils>;
				/**
				 * Returns the current animation time in milliseconds. This time should be used when invoking Animation#setStartTime(long). Refer to android.os.SystemClock for more information about the different available clocks. The clock used by this method is <em>not</em> the "wall" clock (it is not System#currentTimeMillis).
				 */
				public static currentAnimationTimeMillis(): any;
				/**
				 * Loads an Animation object from a resource
				 * @param context Application context used to access resources
				 * @param id The resource id of the animation to load
				 */
				public static loadAnimation(context: android.content.Context, id: number): android.view.animation.Animation;
				/**
				 * Loads a LayoutAnimationController object from a resource
				 * @param context Application context used to access resources
				 * @param id The resource id of the animation to load
				 */
				public static loadLayoutAnimation(context: android.content.Context, id: number): android.view.animation.LayoutAnimationController;
				/**
				 * Make an animation for objects becoming visible. Uses a slide and fade effect. 
				 * @param c Context for loading resources
				 * @param fromLeft is the object to be animated coming from the left
				 */
				public static makeInAnimation(c: android.content.Context, fromLeft: boolean): android.view.animation.Animation;
				/**
				 * Make an animation for objects becoming invisible. Uses a slide and fade effect. 
				 * @param c Context for loading resources
				 * @param toRight is the object to be animated exiting to the right
				 */
				public static makeOutAnimation(c: android.content.Context, toRight: boolean): android.view.animation.Animation;
				/**
				 * Make an animation for objects becoming visible. Uses a slide up and fade effect. 
				 * @param c Context for loading resources
				 */
				public static makeInChildBottomAnimation(c: android.content.Context): android.view.animation.Animation;
				/**
				 * Loads an Interpolator object from a resource 
				 * @param context Application context used to access resources
				 * @param id The resource id of the animation to load
				 */
				public static loadInterpolator(context: android.content.Context, id: number): android.view.animation.IInterpolator;
			}
			/**
			 * A layout animation controller is used to animated a layout's, or a view group's, children. Each child uses the same animation but for every one of them, the animation starts at a different time. A layout animation controller is used by android.view.ViewGroup to compute the delay by which each child's animation start must be offset. The delay is computed by using characteristics of each child, like its index in the view group.
			 */
			export class LayoutAnimationController extends java.lang.Object {
				/**
				 * Creates a new layout animation controller from external resources.
				 * @param context the Context the view group is running in, through which
				 * @param attrs the attributes of the XML tag that is inflating the
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Creates a new layout animation controller with a delay of 50% and the specified animation.
				 * @param animation the animation to use on each child of the view group
				 */
				constructor(animation: android.view.animation.Animation);
				/**
				 * Creates a new layout animation controller with the specified delay and the specified animation.
				 * @param animation the animation to use on each child of the view group
				 * @param delay the delay by which each child's animation must be offset
				 */
				constructor(animation: android.view.animation.Animation, delay: number);
				/**
				 * Distributes the animation delays in the order in which view were added to their view group.
				 */
				static ORDER_NORMAL: number;
				/**
				 * Distributes the animation delays in the reverse order in which view were added to their view group.
				 */
				static ORDER_REVERSE: number;
				/**
				 * Randomly distributes the animation delays.
				 */
				static ORDER_RANDOM: number;
				static class: java.lang.Class<android.view.animation.LayoutAnimationController>;
				/**
				 * Returns the order used to compute the delay of each child's animation.
				 */
				public getOrder(): number;
				/**
				 * Sets the order used to compute the delay of each child's animation.
				 * @param order one of {@link #ORDER_NORMAL}, {@link #ORDER_REVERSE} or
				 */
				public setOrder(order: number): void;
				/**
				 * Sets the animation to be run on each child of the view group on which this layout animation controller is .
				 * @param context the context from which the animation must be inflated
				 * @param resourceID the resource identifier of the animation
				 */
				public setAnimation(context: android.content.Context, resourceID: number): void;
				/**
				 * Sets the animation to be run on each child of the view group on which this layout animation controller is .
				 * @param animation the animation to run on each child of the view group
				 */
				public setAnimation(animation: android.view.animation.Animation): void;
				/**
				 * Returns the animation applied to each child of the view group on which this controller is set.
				 */
				public getAnimation(): android.view.animation.Animation;
				/**
				 * Sets the interpolator used to interpolate the delays between the children.
				 * @param context the context from which the interpolator must be inflated
				 * @param resourceID the resource identifier of the interpolator
				 */
				public setInterpolator(context: android.content.Context, resourceID: number): void;
				/**
				 * Sets the interpolator used to interpolate the delays between the children.
				 * @param interpolator the interpolator
				 */
				public setInterpolator(interpolator: android.view.animation.IInterpolator): void;
				/**
				 * Returns the interpolator used to interpolate the delays between the children.
				 */
				public getInterpolator(): android.view.animation.IInterpolator;
				/**
				 * Returns the delay by which the children's animation are offset. The delay is expressed as a fraction of the animation duration.
				 */
				public getDelay(): number;
				/**
				 * Sets the delay, as a fraction of the animation duration, by which the children's animations are offset. The general formula is:
				 * @param delay a fraction of the animation duration
				 */
				public setDelay(delay: number): void;
				/**
				 * Indicates whether two children's animations will overlap. Animations overlap when the delay is lower than 100% (or 1.0).
				 */
				public willOverlap(): boolean;
				/**
				 * Starts the animation.
				 */
				public start(): void;
				/**
				 * Returns the animation to be applied to the specified view. The returned animation is delayed by an offset computed according to the information provided by android.view.animation.LayoutAnimationController.AnimationParameters. This method is called by view groups to obtain the animation to set on a specific child.
				 * @param view the view to animate
				 */
				public getAnimationForView(view: android.view.View): android.view.animation.Animation;
				/**
				 * Indicates whether the layout animation is over or not. A layout animation is considered done when the animation with the longest delay is done.
				 */
				public isDone(): boolean;
				/**
				 * Returns the amount of milliseconds by which the specified view's animation must be delayed or offset. Subclasses should override this method to return a suitable value.
				 * @param view the view for which to obtain the animation's delay
				 */
				protected getDelayForView(view: android.view.View): any;
				/**
				 * Transforms the index stored in android.view.animation.LayoutAnimationController.AnimationParameters by the order returned by #getOrder(). Subclasses should override this method to provide additional support for other types of ordering. This method should be invoked by #getDelayForView(android.view.View) prior to any computation.
				 * @param params the animation parameters containing the index
				 */
				protected getTransformedIndex(params: android.view.animation.LayoutAnimationController.AnimationParameters): number;
			}
			export module LayoutAnimationController {
				/**
				 * The set of parameters that has to be attached to each view contained in the view group animated by the layout animation controller. These parameters are used to compute the start time of each individual view's animation.
				 */
				export class AnimationParameters extends java.lang.Object {
					constructor();
					/**
					 * The number of children in the view group containing the view to which these parameters are attached.
					 */
					count: number;
					/**
					 * The index of the view to which these parameters are attached in its containing view group.
					 */
					index: number;
					static class: java.lang.Class<android.view.animation.LayoutAnimationController.AnimationParameters>;
				}
			}
			/**
			 * Abstraction for an Animation that can be applied to Views, Surfaces, or other objects. See the android.view.animation animation package description file.
			 */
			export class Animation extends java.lang.Object implements java.lang.ICloneable {
				/**
				 * Creates a new animation with a duration of 0ms, the default interpolator, with fillBefore set to true and fillAfter set to false
				 */
				constructor();
				/**
				 * Creates a new animation whose parameters come from the specified context and attributes set.
				 * @param context the application environment
				 * @param attrs the set of attributes holding the animation parameters
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Repeat the animation indefinitely.
				 */
				static INFINITE: number;
				/**
				 * When the animation reaches the end and the repeat count is INFINTE_REPEAT or a positive value, the animation restarts from the beginning.
				 */
				static RESTART: number;
				/**
				 * When the animation reaches the end and the repeat count is INFINTE_REPEAT or a positive value, the animation plays backward (and then forward again).
				 */
				static REVERSE: number;
				/**
				 * Can be used as the start time to indicate the start time should be the current time when #getTransformation(long, Transformation) is invoked for the first animation frame. This can is useful for short animations.
				 */
				static START_ON_FIRST_FRAME: number;
				/**
				 * The specified dimension is an absolute number of pixels.
				 */
				static ABSOLUTE: number;
				/**
				 * The specified dimension holds a float and should be multiplied by the height or width of the object being animated.
				 */
				static RELATIVE_TO_SELF: number;
				/**
				 * The specified dimension holds a float and should be multiplied by the height or width of the parent of the object being animated.
				 */
				static RELATIVE_TO_PARENT: number;
				/**
				 * Requests that the content being animated be kept in its current Z order.
				 */
				static ZORDER_NORMAL: number;
				/**
				 * Requests that the content being animated be forced on top of all other content for the duration of the animation.
				 */
				static ZORDER_TOP: number;
				/**
				 * Requests that the content being animated be forced under all other content for the duration of the animation.
				 */
				static ZORDER_BOTTOM: number;
				static class: java.lang.Class<android.view.animation.Animation>;
				protected clone(): android.view.animation.Animation;
				/**
				 * Reset the initialization state of this animation.
				 */
				public reset(): void;
				/**
				 * Cancel the animation. Cancelling an animation invokes the animation listener, if set, to notify the end of the animation. If you cancel an animation manually, you must call #reset() before starting the animation again. #reset() #start() #startNow()
				 */
				public cancel(): void;
				/**
				 * Whether or not the animation has been initialized.
				 */
				public isInitialized(): boolean;
				/**
				 * Initialize this animation with the dimensions of the object being animated as well as the objects parents. (This is to support animation sizes being specified relative to these dimensions.)
				 * @param width Width of the object being animated
				 * @param height Height of the object being animated
				 * @param parentWidth Width of the animated object's parent
				 * @param parentHeight Height of the animated object's parent
				 */
				public initialize(width: number, height: number, parentWidth: number, parentHeight: number): void;
				/**
				 * Sets the acceleration curve for this animation. The interpolator is loaded as a resource from the specified context.
				 * @param context The application environment
				 * @param resID The resource identifier of the interpolator to load
				 */
				public setInterpolator(context: android.content.Context, resID: number): void;
				/**
				 * Sets the acceleration curve for this animation. Defaults to a linear interpolation.
				 * @param i The interpolator which defines the acceleration curve
				 */
				public setInterpolator(i: android.view.animation.IInterpolator): void;
				/**
				 * When this animation should start relative to the start time. This is most useful when composing complex animations using an AnimationSet where some of the animations components start at different times.
				 * @param startOffset When this Animation should start, in milliseconds from
				 */
				public setStartOffset(startOffset: number): void;
				/**
				 * How long this animation should last. The duration cannot be negative. 
				 * @param durationMillis Duration in milliseconds
				 */
				public setDuration(durationMillis: number): void;
				/**
				 * Ensure that the duration that this animation will run is not longer than <var>durationMillis</var>. In addition to adjusting the duration itself, this ensures that the repeat count also will not make it run longer than the given time. 
				 * @param durationMillis The maximum duration the animation is allowed
				 */
				public restrictDuration(durationMillis: number): void;
				/**
				 * How much to scale the duration by.
				 * @param scale The amount to scale the duration.
				 */
				public scaleCurrentDuration(scale: number): void;
				/**
				 * When this animation should start. When the start time is set to #START_ON_FIRST_FRAME, the animation will start the first time #getTransformation(long, Transformation) is invoked. The time passed to this method should be obtained by calling AnimationUtils#currentAnimationTimeMillis() instead of System#currentTimeMillis().
				 * @param startTimeMillis the start time in milliseconds
				 */
				public setStartTime(startTimeMillis: number): void;
				/**
				 * Convenience method to start the animation the first time #getTransformation(long, Transformation) is invoked.
				 */
				public start(): void;
				/**
				 * Convenience method to start the animation at the current time in milliseconds.
				 */
				public startNow(): void;
				/**
				 * Defines what this animation should do when it reaches the end. This setting is applied only when the repeat count is either greater than 0 or #INFINITE. Defaults to #RESTART.
				 * @param repeatMode {@link #RESTART} or {@link #REVERSE}
				 */
				public setRepeatMode(repeatMode: number): void;
				/**
				 * Sets how many times the animation should be repeated. If the repeat count is 0, the animation is never repeated. If the repeat count is greater than 0 or #INFINITE, the repeat mode will be taken into account. The repeat count is 0 by default.
				 * @param repeatCount the number of times the animation should be repeated
				 */
				public setRepeatCount(repeatCount: number): void;
				/**
				 * If fillEnabled is true, this animation will apply the value of fillBefore.
				 */
				public isFillEnabled(): boolean;
				/**
				 * If fillEnabled is true, the animation will apply the value of fillBefore. Otherwise, fillBefore is ignored and the animation transformation is always applied until the animation ends.
				 * @param fillEnabled true if the animation should take the value of fillBefore into account
				 */
				public setFillEnabled(fillEnabled: boolean): void;
				/**
				 * If fillBefore is true, this animation will apply its transformation before the start time of the animation. Defaults to true if #setFillEnabled(boolean) is not set to true. Note that this applies when using an android.view.animation.AnimationSet AnimationSet to chain animations. The transformation is not applied before the AnimationSet itself starts.
				 * @param fillBefore true if the animation should apply its transformation before it starts
				 */
				public setFillBefore(fillBefore: boolean): void;
				/**
				 * If fillAfter is true, the transformation that this animation performed will persist when it is finished. Defaults to false if not set. Note that this applies to individual animations and when using an android.view.animation.AnimationSet AnimationSet to chain animations.
				 * @param fillAfter true if the animation should apply its transformation after it ends
				 */
				public setFillAfter(fillAfter: boolean): void;
				/**
				 * Set the Z ordering mode to use while running the animation. 
				 * @param zAdjustment The desired mode, one of {@link #ZORDER_NORMAL},
				 */
				public setZAdjustment(zAdjustment: number): void;
				/**
				 * Set background behind animation.
				 * @param bg The background color. If 0, no background. Currently must
				 */
				public setBackgroundColor(bg: number): void;
				/**
				 * The scale factor is set by the call to <code>getTransformation</code>. Overrides of #getTransformation(long, Transformation, float) will get this value directly. Overrides of #applyTransformation(float, Transformation) can call this method to get the value. 
				 */
				protected getScaleFactor(): number;
				/**
				 * If detachWallpaper is true, and this is a window animation of a window that has a wallpaper background, then the window will be detached from the wallpaper while it runs. That is, the animation will only be applied to the window, and the wallpaper behind it will remain static.
				 * @param detachWallpaper true if the wallpaper should be detached from the animation
				 */
				public setDetachWallpaper(detachWallpaper: boolean): void;
				/**
				 * Gets the acceleration curve type for this animation.
				 */
				public getInterpolator(): android.view.animation.IInterpolator;
				/**
				 * When this animation should start. If the animation has not startet yet, this method might return #START_ON_FIRST_FRAME.
				 */
				public getStartTime(): any;
				/**
				 * How long this animation should last
				 */
				public getDuration(): any;
				/**
				 * When this animation should start, relative to StartTime
				 */
				public getStartOffset(): any;
				/**
				 * Defines what this animation should do when it reaches the end.
				 */
				public getRepeatMode(): number;
				/**
				 * Defines how many times the animation should repeat. The default value is 0.
				 */
				public getRepeatCount(): number;
				/**
				 * If fillBefore is true, this animation will apply its transformation before the start time of the animation. If fillBefore is false and #isFillEnabled() fillEnabled is true, the transformation will not be applied until the start time of the animation.
				 */
				public getFillBefore(): boolean;
				/**
				 * If fillAfter is true, this animation will apply its transformation after the end time of the animation.
				 */
				public getFillAfter(): boolean;
				/**
				 * Returns the Z ordering mode to use while running the animation as previously set by #setZAdjustment. 
				 */
				public getZAdjustment(): number;
				/**
				 * Returns the background color behind the animation.
				 */
				public getBackgroundColor(): number;
				/**
				 * Return value of #setDetachWallpaper(boolean). ref android.R.styleable#Animation_detachWallpaper
				 */
				public getDetachWallpaper(): boolean;
				public willChangeTransformationMatrix(): boolean;
				public willChangeBounds(): boolean;
				/**
				 * @param listener the animation listener to be notified
				 */
				public setAnimationListener(listener: android.view.animation.Animation.IAnimationListener): void;
				/**
				 * Gurantees that this animation has an interpolator. Will use a AccelerateDecelerateInterpolator is nothing else was specified.
				 */
				protected ensureInterpolator(): void;
				/**
				 * Compute a hint at how long the entire animation may last, in milliseconds. Animations can be written to cause themselves to run for a different duration than what is computed here, but generally this should be accurate.
				 */
				public computeDurationHint(): any;
				/**
				 * Gets the transformation to apply at a specified point in time. Implementations of this method should always replace the specified Transformation or document they are doing otherwise.
				 * @param currentTime Where we are in the animation. This is wall clock time.
				 * @param outTransformation A transformation object that is provided by the
				 */
				public getTransformation(currentTime: number, outTransformation: android.view.animation.Transformation): boolean;
				/**
				 * Gets the transformation to apply at a specified point in time. Implementations of this method should always replace the specified Transformation or document they are doing otherwise.
				 * @param currentTime Where we are in the animation. This is wall clock time.
				 * @param outTransformation A transformation object that is provided by the
				 * @param scale Scaling factor to apply to any inputs to the transform operation, such
				 */
				public getTransformation(currentTime: number, outTransformation: android.view.animation.Transformation, scale: number): boolean;
				public hasStarted(): boolean;
				public hasEnded(): boolean;
				/**
				 * Helper for getTransformation. Subclasses should implement this to apply their transforms given an interpolation value. Implementations of this method should always replace the specified Transformation or document they are doing otherwise. 
				 * @param interpolatedTime The value of the normalized time (0.0 to 1.0)
				 * @param t The Transformation object to fill in with the current
				 */
				protected applyTransformation(interpolatedTime: number, t: android.view.animation.Transformation): void;
				/**
				 * Convert the information in the description of a size to an actual dimension
				 * @param type One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
				 * @param value The dimension associated with the type parameter
				 * @param size The size of the object being animated
				 * @param parentSize The size of the parent of the object being animated
				 */
				protected resolveSize(type: number, value: number, size: number, parentSize: number): number;
				protected finalize(): void;
			}
			export module Animation {
				interface IAnimationListener {
					/**
					 * @param animation The started animation.
					 */
					onAnimationStart(animation: android.view.animation.Animation): void;
					/**
					 * @param animation The animation which reached its end.
					 */
					onAnimationEnd(animation: android.view.animation.Animation): void;
					/**
					 * @param animation The animation which was repeated.
					 */
					onAnimationRepeat(animation: android.view.animation.Animation): void;
				}
				/**
				 * Utility class to parse a string description of a size.
				 */
				export class Description extends java.lang.Object {
					/**
					 * One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
					 */
					type: number;
					/**
					 * The absolute or relative dimension for this Description.
					 */
					value: number;
					static class: java.lang.Class<android.view.animation.Animation.Description>;
					/**
					 * Size descriptions can appear inthree forms: <ol> <li>An absolute size. This is represented by a number.</li> <li>A size relative to the size of the object being animated. This is represented by a number followed by "%".</li> * <li>A size relative to the size of the parent of object being animated. This is represented by a number followed by "%p".</li> </ol>
					 * @param value The typed value to parse
					 */
					static parseValue(value: android.util.TypedValue): android.view.animation.Animation.Description;
				}
				export class AnimationListener implements android.view.animation.Animation.IAnimationListener {
					constructor(implementation: android.view.animation.Animation.IAnimationListener);
					/**
					 * @param animation The started animation.
					 */
					public onAnimationStart(animation: android.view.animation.Animation): void;
					/**
					 * @param animation The animation which reached its end.
					 */
					public onAnimationEnd(animation: android.view.animation.Animation): void;
					/**
					 * @param animation The animation which was repeated.
					 */
					public onAnimationRepeat(animation: android.view.animation.Animation): void;
				}
			}
			/**
			 * An interpolator where the rate of change starts and ends slowly but accelerates through the middle. 
			 */
			export class AccelerateDecelerateInterpolator extends java.lang.Object implements android.view.animation.IInterpolator {
				constructor();
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.animation.AccelerateDecelerateInterpolator>;
				public getInterpolation(input: number): number;
			}
			/**
			 * An interpolator defines the rate of change of an animation. This allows the basic animation effects (alpha, scale, translate, rotate) to be accelerated, decelerated, repeated, etc.
			 */
			export class Interpolator implements android.animation.ITimeInterpolator, android.view.animation.IInterpolator {
				constructor(implementation: android.view.animation.IInterpolator);
				/**
				 * Maps a value representing the elapsed fraction of an animation to a value that represents the interpolated fraction. This interpolated value is then multiplied by the change in value of an animation to derive the animated value at the current elapsed animation time.
				 * @param input A value between 0 and 1.0 indicating our current point
				 */
				getInterpolation(input: number): number;
			}
			/**
			 * Represents a group of Animations that should be played together. The transformation of each individual animation are composed together into a single transform. If AnimationSet sets any properties that its children also set (for example, duration or fillBefore), the values of AnimationSet override the child values.
			 */
			export class AnimationSet extends android.view.animation.Animation {
				/**
				 * Constructor used when an AnimationSet is loaded from a resource. 
				 * @param context Application context to use
				 * @param attrs Attribute set from which to read values
				 */
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Constructor to use when building an AnimationSet from code 
				 * @param shareInterpolator Pass true if all of the animations in this set
				 */
				constructor(shareInterpolator: boolean);
				static class: java.lang.Class<android.view.animation.AnimationSet>;
				protected clone(): android.view.animation.AnimationSet;
				public setFillAfter(fillAfter: boolean): void;
				public setFillBefore(fillBefore: boolean): void;
				public setRepeatMode(repeatMode: number): void;
				public setStartOffset(startOffset: number): void;
				/**
				 * @param durationMillis the duration of the animation, in milliseconds, for
				 */
				public setDuration(durationMillis: number): void;
				/**
				 * Add a child animation to this animation set. The transforms of the child animations are applied in the order that they were added
				 * @param a Animation to add.
				 */
				public addAnimation(a: android.view.animation.Animation): void;
				/**
				 * Sets the start time of this animation and all child animations android.view.animation.Animation#setStartTime(long)
				 */
				public setStartTime(startTimeMillis: number): void;
				public getStartTime(): any;
				public restrictDuration(durationMillis: number): void;
				/**
				 * The duration of an AnimationSet is defined to be the duration of the longest child animation. android.view.animation.Animation#getDuration()
				 */
				public getDuration(): any;
				/**
				 * The duration hint of an animation set is the maximum of the duration hints of all of its component animations. android.view.animation.Animation#computeDurationHint
				 */
				public computeDurationHint(): any;
				/**
				 * The transformation of an animation set is the concatenation of all of its component animations. android.view.animation.Animation#getTransformation
				 */
				public getTransformation(currentTime: number, t: android.view.animation.Transformation): boolean;
				/**
				 *  android.view.animation.Animation#scaleCurrentDuration(float)
				 */
				public scaleCurrentDuration(scale: number): void;
				/**
				 *  android.view.animation.Animation#initialize(int, int, int, int)
				 */
				public initialize(width: number, height: number, parentWidth: number, parentHeight: number): void;
				public reset(): void;
				public getAnimations(): java.util.IList<android.view.animation.Animation>;
				public willChangeTransformationMatrix(): boolean;
				public willChangeBounds(): boolean;
				/**
				 * Gets the transformation to apply at a specified point in time. Implementations of this method should always replace the specified Transformation or document they are doing otherwise.
				 * @param currentTime Where we are in the animation. This is wall clock time.
				 * @param outTransformation A transformation object that is provided by the
				 * @param scale Scaling factor to apply to any inputs to the transform operation, such
				 */
				getTransformation(currentTime: number, outTransformation: android.view.animation.Transformation, scale: number): boolean;
			}
		}
		/**
		 * A ViewStub is an invisible, zero-sized View that can be used to lazily inflate layout resources at runtime.
		 */
		export class ViewStub extends android.view.View {
			constructor(context: android.content.Context);
			/**
			 * Creates a new ViewStub with the specified layout resource.
			 * @param context The application's environment.
			 * @param layoutResource The reference to a layout resource that will be inflated.
			 */
			constructor(context: android.content.Context, layoutResource: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.view.ViewStub>;
			/**
			 * Returns the id taken by the inflated view. If the inflated id is View#NO_ID, the inflated view keeps its original id.
			 */
			public getInflatedId(): number;
			/**
			 * Defines the id taken by the inflated view. If the inflated id is View#NO_ID, the inflated view keeps its original id.
			 * @param inflatedId A positive integer used to identify the inflated view or
			 */
			public setInflatedId(inflatedId: number): void;
			/**
			 * Returns the layout resource that will be used by #setVisibility(int) or #inflate() to replace this StubbedView in its parent by another view.
			 */
			public getLayoutResource(): number;
			/**
			 * Specifies the layout resource to inflate when this StubbedView becomes visible or invisible or when #inflate() is invoked. The View created by inflating the layout resource is used to replace this StubbedView in its parent. 
			 * @param layoutResource A valid layout resource identifier (different from 0.)
			 */
			public setLayoutResource(layoutResource: number): void;
			/**
			 * Set LayoutInflater to use in #inflate(), or null to use the default.
			 */
			public setLayoutInflater(inflater: android.view.LayoutInflater): void;
			/**
			 * Get current LayoutInflater used in #inflate().
			 */
			public getLayoutInflater(): android.view.LayoutInflater;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public draw(canvas: android.graphics.Canvas): void;
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			/**
			 * When visibility is set to #VISIBLE or #INVISIBLE, #inflate() is invoked and this StubbedView is replaced in its parent by the inflated layout resource.
			 * @param visibility One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}.
			 */
			public setVisibility(visibility: number): void;
			/**
			 * Inflates the layout resource identified by #getLayoutResource() and replaces this StubbedView in its parent by the inflated layout resource.
			 */
			public inflate(): android.view.View;
			/**
			 * Specifies the inflate listener to be notified after this ViewStub successfully inflated its layout resource.
			 * @param inflateListener The OnInflateListener to notify of successful inflation.
			 */
			public setOnInflateListener(inflateListener: android.view.ViewStub.IOnInflateListener): void;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
			/**
			 * Inflate a view from an XML resource. This convenience method wraps the LayoutInflater class, which provides a full range of options for view inflation.
			 * @param context The Context object for your activity or application.
			 * @param resource The resource ID to inflate
			 * @param root A view group that will be the parent. Used to properly inflate the
			 */
			static inflate(context: android.content.Context, resource: number, root: android.view.ViewGroup): android.view.View;
		}
		export module ViewStub {
			/**
			 * Listener used to receive a notification after a ViewStub has successfully inflated its layout resource.
			 */
			interface IOnInflateListener {
				/**
				 * Invoked after a ViewStub successfully inflated its layout resource. This method is invoked after the inflated view was added to the hierarchy but before the layout pass.
				 * @param stub The ViewStub that initiated the inflation.
				 * @param inflated The inflated View.
				 */
				onInflate(stub: android.view.ViewStub, inflated: android.view.View): void;
			}
			/**
			 * Listener used to receive a notification after a ViewStub has successfully inflated its layout resource.
			 */
			export class OnInflateListener implements android.view.ViewStub.IOnInflateListener {
				constructor(implementation: android.view.ViewStub.IOnInflateListener);
				/**
				 * Invoked after a ViewStub successfully inflated its layout resource. This method is invoked after the inflated view was added to the hierarchy but before the layout pass.
				 * @param stub The ViewStub that initiated the inflation.
				 * @param inflated The inflated View.
				 */
				public onInflate(stub: android.view.ViewStub, inflated: android.view.View): void;
			}
		}
		/**
		 * An OpenGL ES 2.0 implementation of HardwareLayer. This implementation can be used as a texture. Rendering into this layer is not controlled by a HardwareCanvas.
		 */
		export class GLES20TextureLayer extends android.view.GLES20Layer {
			static class: java.lang.Class<android.view.GLES20TextureLayer>;
			isValid(): boolean;
			resize(width: number, height: number): boolean;
			end(currentCanvas: android.graphics.Canvas): void;
			getSurfaceTexture(): android.graphics.SurfaceTexture;
			setSurfaceTexture(surfaceTexture: android.graphics.SurfaceTexture): void;
			update(width: number, height: number, isOpaque: boolean): void;
			setOpaque(isOpaque: boolean): void;
			setTransform(matrix: android.graphics.Matrix): void;
		}
		/**
		 * An input queue provides a mechanism for an application to receive incoming input events. Currently only usable from native code.
		 */
		export class InputQueue extends java.lang.Object {
			static class: java.lang.Class<android.view.InputQueue>;
		}
		export module InputQueue {
			/**
			 * Interface to receive notification of when an InputQueue is associated and dissociated with a thread.
			 */
			export class Callback implements android.view.InputQueue.ICallback {
				constructor(implementation: android.view.InputQueue.ICallback);
				/**
				 * Called when the given InputQueue is now associated with the thread making this call, so it can start receiving events from it.
				 */
				public onInputQueueCreated(queue: android.view.InputQueue): void;
				/**
				 * Called when the given InputQueue is no longer associated with the thread and thus not dispatching events.
				 */
				public onInputQueueDestroyed(queue: android.view.InputQueue): void;
			}
			/**
			 * Interface to receive notification of when an InputQueue is associated and dissociated with a thread.
			 */
			interface ICallback {
				/**
				 * Called when the given InputQueue is now associated with the thread making this call, so it can start receiving events from it.
				 */
				onInputQueueCreated(queue: android.view.InputQueue): void;
				/**
				 * Called when the given InputQueue is no longer associated with the thread and thus not dispatching events.
				 */
				onInputQueueDestroyed(queue: android.view.InputQueue): void;
			}
		}
		/**
		 * Exercise <ViewStub /> tag in XML files.
		 */
		export class StubbedView extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.StubbedView>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		/**
		 * Represents a contextual mode of the user interface. Action modes can be used to provide alternative interaction modes and replace parts of the normal UI until finished. Examples of good action modes include text selection and contextual actions. <div class="special reference"> <h3>Developer Guides</h3>
		 */
		export class ActionMode extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.ActionMode>;
			/**
			 * Set a tag object associated with this ActionMode.
			 * @param tag Tag to associate with this ActionMode
			 */
			public setTag(tag: any): void;
			/**
			 * Retrieve the tag object associated with this ActionMode.
			 */
			public getTag(): any;
			/**
			 * Set the title of the action mode. This method will have no visible effect if a custom view has been set.
			 * @param title Title string to set
			 */
			public setTitle(title: string): void;
			/**
			 * Set the title of the action mode. This method will have no visible effect if a custom view has been set.
			 * @param resId Resource ID of a string to set as the title
			 */
			public setTitle(resId: number): void;
			/**
			 * Set the subtitle of the action mode. This method will have no visible effect if a custom view has been set.
			 * @param subtitle Subtitle string to set
			 */
			public setSubtitle(subtitle: string): void;
			/**
			 * Set the subtitle of the action mode. This method will have no visible effect if a custom view has been set.
			 * @param resId Resource ID of a string to set as the subtitle
			 */
			public setSubtitle(resId: number): void;
			/**
			 * Set whether or not the title/subtitle display for this action mode is optional.
			 * @param titleOptional true if the title only presents optional information.
			 */
			public setTitleOptionalHint(titleOptional: boolean): void;
			public getTitleOptionalHint(): boolean;
			public isTitleOptional(): boolean;
			/**
			 * Set a custom view for this action mode. The custom view will take the place of the title and subtitle. Useful for things like search boxes.
			 * @param view Custom view to use in place of the title/subtitle.
			 */
			public setCustomView(view: android.view.View): void;
			/**
			 * Invalidate the action mode and refresh menu content. The mode's ActionMode.Callback will have its Callback#onPrepareActionMode(ActionMode, Menu) method called. If it returns true the menu will be scanned for updated content and any relevant changes will be reflected to the user.
			 */
			public invalidate(): void;
			/**
			 * Finish and close this action mode. The action mode's ActionMode.Callback will have its Callback#onDestroyActionMode(ActionMode) method called.
			 */
			public finish(): void;
			/**
			 * Returns the menu of actions that this action mode presents.
			 */
			public getMenu(): android.view.IMenu;
			/**
			 * Returns the current title of this action mode.
			 */
			public getTitle(): string;
			/**
			 * Returns the current subtitle of this action mode.
			 */
			public getSubtitle(): string;
			/**
			 * Returns the current custom view for this action mode.
			 */
			public getCustomView(): android.view.View;
			/**
			 * Returns a MenuInflater with the ActionMode's context.
			 */
			public getMenuInflater(): android.view.MenuInflater;
		}
		export module ActionMode {
			/**
			 * Callback interface for action modes. Supplied to View#startActionMode(Callback), a Callback configures and handles events raised by a user's interaction with an action mode.
			 */
			export class Callback implements android.view.ActionMode.ICallback {
				constructor(implementation: android.view.ActionMode.ICallback);
				/**
				 * Called when action mode is first created. The menu supplied will be used to generate action buttons for the action mode.
				 * @param mode ActionMode being created
				 * @param menu Menu used to populate action buttons
				 */
				public onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to refresh an action mode's action menu whenever it is invalidated.
				 * @param mode ActionMode being prepared
				 * @param menu Menu used to populate action buttons
				 */
				public onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to report a user click on an action button.
				 * @param mode The current ActionMode
				 * @param item The item that was clicked
				 */
				public onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
				/**
				 * Called when an action mode is about to be exited and destroyed.
				 * @param mode The current ActionMode being destroyed
				 */
				public onDestroyActionMode(mode: android.view.ActionMode): void;
			}
			/**
			 * Callback interface for action modes. Supplied to View#startActionMode(Callback), a Callback configures and handles events raised by a user's interaction with an action mode.
			 */
			interface ICallback {
				/**
				 * Called when action mode is first created. The menu supplied will be used to generate action buttons for the action mode.
				 * @param mode ActionMode being created
				 * @param menu Menu used to populate action buttons
				 */
				onCreateActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to refresh an action mode's action menu whenever it is invalidated.
				 * @param mode ActionMode being prepared
				 * @param menu Menu used to populate action buttons
				 */
				onPrepareActionMode(mode: android.view.ActionMode, menu: android.view.IMenu): boolean;
				/**
				 * Called to report a user click on an action button.
				 * @param mode The current ActionMode
				 * @param item The item that was clicked
				 */
				onActionItemClicked(mode: android.view.ActionMode, item: android.view.IMenuItem): boolean;
				/**
				 * Called when an action mode is about to be exited and destroyed.
				 * @param mode The current ActionMode being destroyed
				 */
				onDestroyActionMode(mode: android.view.ActionMode): void;
			}
		}
		/**
		 * Instantiates a layout XML file into its corresponding android.view.View objects. It is never used directly. Instead, use android.app.Activity#getLayoutInflater() or Context#getSystemService to retrieve a standard LayoutInflater instance that is already hooked up to the current context and correctly configured for the device you are running on. For example:
		 */
		export class LayoutInflater extends java.lang.Object {
			static class: java.lang.Class<android.view.LayoutInflater>;
			/**
			 * Obtains the LayoutInflater from the given context.
			 */
			public static from(context: android.content.Context): android.view.LayoutInflater;
			/**
			 * Create a copy of the existing LayoutInflater object, with the copy pointing to a different Context than the original. This is used by ContextThemeWrapper to create a new LayoutInflater to go along with the new Context theme. 
			 * @param newContext The new Context to associate with the new LayoutInflater.
			 */
			public cloneInContext(newContext: android.content.Context): android.view.LayoutInflater;
			/**
			 * Return the context we are running in, for access to resources, class loader, etc.
			 */
			public getContext(): android.content.Context;
			/**
			 * Return the current Factory (or null). This is called on each element name. If the factory returns a View, add that to the hierarchy. If it returns null, proceed to call onCreateView(name).
			 */
			public getFactory(): android.view.LayoutInflater.IFactory;
			/**
			 * Return the current Factory2. Returns null if no factory is set or the set factory does not implement the Factory2 interface. This is called on each element name. If the factory returns a View, add that to the hierarchy. If it returns null, proceed to call onCreateView(name).
			 */
			public getFactory2(): android.view.LayoutInflater.IFactory2;
			/**
			 * Attach a custom Factory interface for creating views while using this LayoutInflater. This must not be null, and can only be set once; after setting, you can not change the factory. This is called on each element name as the xml is parsed. If the factory returns a View, that is added to the hierarchy. If it returns null, the next factory default #onCreateView method is called. 
			 */
			public setFactory(factory: android.view.LayoutInflater.IFactory): void;
			/**
			 * Like #setFactory, but allows you to set a Factory2 interface.
			 */
			public setFactory2(factory: android.view.LayoutInflater.IFactory2): void;
			public getFilter(): android.view.LayoutInflater.IFilter;
			/**
			 * Sets the Filter to by this LayoutInflater. If a view is attempted to be inflated which is not allowed by the Filter, the #inflate(int, ViewGroup) call will throw an InflateException. This filter will replace any previous filter set on this LayoutInflater. 
			 * @param filter The Filter which restricts the set of Views that are allowed to be inflated.
			 */
			public setFilter(filter: android.view.LayoutInflater.IFilter): void;
			/**
			 * Inflate a new view hierarchy from the specified xml resource. Throws InflateException if there is an error. 
			 * @param resource ID for an XML layout resource to load (e.g.,
			 * @param root Optional view to be the parent of the generated hierarchy.
			 */
			public inflate(resource: number, root: android.view.ViewGroup): android.view.View;
			/**
			 * Inflate a new view hierarchy from the specified xml node. Throws InflateException if there is an error. *
			 * @param parser XML dom node containing the description of the view
			 * @param root Optional view to be the parent of the generated hierarchy.
			 */
			public inflate(parser: org.xmlpull.v1.IXmlPullParser, root: android.view.ViewGroup): android.view.View;
			/**
			 * Inflate a new view hierarchy from the specified xml resource. Throws InflateException if there is an error. 
			 * @param resource ID for an XML layout resource to load (e.g.,
			 * @param root Optional view to be the parent of the generated hierarchy (if
			 * @param attachToRoot Whether the inflated hierarchy should be attached to
			 */
			public inflate(resource: number, root: android.view.ViewGroup, attachToRoot: boolean): android.view.View;
			/**
			 * Inflate a new view hierarchy from the specified XML node. Throws InflateException if there is an error.
			 * @param parser XML dom node containing the description of the view
			 * @param root Optional view to be the parent of the generated hierarchy (if
			 * @param attachToRoot Whether the inflated hierarchy should be attached to
			 */
			public inflate(parser: org.xmlpull.v1.IXmlPullParser, root: android.view.ViewGroup, attachToRoot: boolean): android.view.View;
			/**
			 * Low-level function for instantiating a view by name. This attempts to instantiate a view class of the given <var>name</var> found in this LayoutInflater's ClassLoader. 
			 * @param name The full name of the class to be instantiated.
			 * @param prefix attrs The XML attributes supplied for this instance.
			 * @param attrs 
			 */
			public createView(name: string, prefix: string, attrs: android.util.IAttributeSet): android.view.View;
			/**
			 * This routine is responsible for creating the correct subclass of View given the xml element name. Override it to handle custom view objects. If you override this in your subclass be sure to call through to super.onCreateView(name) for names you do not recognize. 
			 * @param name The fully qualified class name of the View to be create.
			 * @param attrs An AttributeSet of attributes to apply to the View.
			 */
			protected onCreateView(name: string, attrs: android.util.IAttributeSet): android.view.View;
			/**
			 * Version of #onCreateView(String, AttributeSet) that also takes the future parent of the view being constructure. The default implementation simply calls #onCreateView(String, AttributeSet).
			 * @param parent The future parent of the returned view. <em>Note that
			 * @param name The fully qualified class name of the View to be create.
			 * @param attrs An AttributeSet of attributes to apply to the View.
			 */
			protected onCreateView(parent: android.view.View, name: string, attrs: android.util.IAttributeSet): android.view.View;
			createViewFromTag(parent: android.view.View, name: string, attrs: android.util.IAttributeSet): android.view.View;
			/**
			 * Recursive method used to descend down the xml hierarchy and instantiate views, instantiate their children, and then call onFinishInflate().
			 */
			rInflate(parser: org.xmlpull.v1.IXmlPullParser, parent: android.view.View, attrs: android.util.IAttributeSet, finishInflate: boolean): void;
		}
		export module LayoutInflater {
			/**
			 * Hook to allow clients of the LayoutInflater to restrict the set of Views that are allowed to be inflated. 
			 */
			interface IFilter {
				/**
				 * Hook to allow clients of the LayoutInflater to restrict the set of Views that are allowed to be inflated. 
				 * @param clazz The class object for the View that is about to be inflated
				 */
				onLoadClass(clazz: java.lang.Class<any>): boolean;
			}
			/**
			 * Hook to allow clients of the LayoutInflater to restrict the set of Views that are allowed to be inflated. 
			 */
			export class Filter implements android.view.LayoutInflater.IFilter {
				constructor(implementation: android.view.LayoutInflater.IFilter);
				/**
				 * Hook to allow clients of the LayoutInflater to restrict the set of Views that are allowed to be inflated. 
				 * @param clazz The class object for the View that is about to be inflated
				 */
				public onLoadClass(clazz: java.lang.Class<any>): boolean;
			}
			interface IFactory {
				/**
				 * Hook you can supply that is called when inflating from a LayoutInflater. You can use this to customize the tag names available in your XML layout files. 
				 * @param name Tag name to be inflated.
				 * @param context The context the view is being created in.
				 * @param attrs Inflation attributes as specified in XML file.
				 */
				onCreateView(name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
			}
			export class Factory implements android.view.LayoutInflater.IFactory {
				constructor(implementation: android.view.LayoutInflater.IFactory);
				/**
				 * Hook you can supply that is called when inflating from a LayoutInflater. You can use this to customize the tag names available in your XML layout files. 
				 * @param name Tag name to be inflated.
				 * @param context The context the view is being created in.
				 * @param attrs Inflation attributes as specified in XML file.
				 */
				public onCreateView(name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
			}
			interface IFactory2 extends android.view.LayoutInflater.IFactory {
				/**
				 * Version of #onCreateView(String, Context, AttributeSet) that also supplies the parent that the view created view will be placed in.
				 * @param parent The parent that the created view will be placed
				 * @param name Tag name to be inflated.
				 * @param context The context the view is being created in.
				 * @param attrs Inflation attributes as specified in XML file.
				 */
				onCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
				/**
				 * Hook you can supply that is called when inflating from a LayoutInflater. You can use this to customize the tag names available in your XML layout files. 
				 * @param name Tag name to be inflated.
				 * @param context The context the view is being created in.
				 * @param attrs Inflation attributes as specified in XML file.
				 */
				onCreateView(name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
			}
			export class BlinkLayout extends android.widget.FrameLayout {
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.LayoutInflater.BlinkLayout>;
				protected onAttachedToWindow(): void;
				protected onDetachedFromWindow(): void;
				protected dispatchDraw(canvas: android.graphics.Canvas): void;
			}
			export class Factory2 implements android.view.LayoutInflater.IFactory, android.view.LayoutInflater.IFactory2 {
				constructor(implementation: android.view.LayoutInflater.IFactory2);
				/**
				 * Version of #onCreateView(String, Context, AttributeSet) that also supplies the parent that the view created view will be placed in.
				 * @param parent The parent that the created view will be placed
				 * @param name Tag name to be inflated.
				 * @param context The context the view is being created in.
				 * @param attrs Inflation attributes as specified in XML file.
				 */
				public onCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
				/**
				 * Hook you can supply that is called when inflating from a LayoutInflater. You can use this to customize the tag names available in your XML layout files. 
				 * @param name Tag name to be inflated.
				 * @param context The context the view is being created in.
				 * @param attrs Inflation attributes as specified in XML file.
				 */
				onCreateView(name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
			}
			export class FactoryMerger extends java.lang.Object implements android.view.LayoutInflater.IFactory2 {
				static class: java.lang.Class<android.view.LayoutInflater.FactoryMerger>;
				public onCreateView(name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
				public onCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
			}
		}
		/**
		 * Defines the responsibilities for a class that will be a parent of a View. This is the API that a view sees when it wants to interact with its parent. 
		 */
		interface IViewParent {
			/**
			 * Called when something has changed which has invalidated the layout of a child of this view parent. This will schedule a layout pass of the view tree.
			 */
			requestLayout(): void;
			/**
			 * Indicates whether layout was requested on this view parent.
			 */
			isLayoutRequested(): boolean;
			/**
			 * Called when a child wants the view hierarchy to gather and report transparent regions to the window compositor. Views that "punch" holes in the view hierarchy, such as SurfaceView can use this API to improve performance of the system. When no such a view is present in the hierarchy, this optimization in unnecessary and might slightly reduce the view hierarchy performance. 
			 * @param child the view requesting the transparent region computation
			 */
			requestTransparentRegion(child: android.view.View): void;
			/**
			 * All or part of a child is dirty and needs to be redrawn. 
			 * @param child The child which is dirty
			 * @param r The area within the child that is invalid
			 */
			invalidateChild(child: android.view.View, r: android.graphics.Rect): void;
			/**
			 * All or part of a child is dirty and needs to be redrawn.
			 * @param location An array of 2 ints containing the left and top
			 * @param r The area within the child that is invalid
			 */
			invalidateChildInParent(location: native.Array<number>, r: android.graphics.Rect): android.view.IViewParent;
			/**
			 * Returns the parent if it exists, or null.
			 */
			getParent(): android.view.IViewParent;
			/**
			 * Called when a child of this parent wants focus 
			 * @param child The child of this ViewParent that wants focus. This view
			 * @param focused The view that is a descendant of child that actually has
			 */
			requestChildFocus(child: android.view.View, focused: android.view.View): void;
			/**
			 * Tell view hierarchy that the global view attributes need to be re-evaluated. 
			 * @param child View whose attributes have changed.
			 */
			recomputeViewAttributes(child: android.view.View): void;
			/**
			 * Called when a child of this parent is giving up focus 
			 * @param child The view that is giving up focus
			 */
			clearChildFocus(child: android.view.View): void;
			/**
			 * Compute the visible part of a rectangular region defined in terms of a child view's coordinates.
			 * @param child A child View, whose rectangular visible region we want to compute
			 * @param r The input rectangle, defined in the child coordinate system. Will be overwritten to
			 * @param offset The input coordinates of a point, defined in the child coordinate system.
			 */
			getChildVisibleRect(child: android.view.View, r: android.graphics.Rect, offset: android.graphics.Point): boolean;
			/**
			 * Find the nearest view in the specified direction that wants to take focus 
			 * @param v The view that currently has focus
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 */
			focusSearch(v: android.view.View, direction: number): android.view.View;
			/**
			 * Change the z order of the child so it's on top of all other children 
			 * @param child 
			 */
			bringChildToFront(child: android.view.View): void;
			/**
			 * Tells the parent that a new focusable view has become available. This is to handle transitions from the case where there are no focusable views to the case where the first focusable view appears. 
			 * @param v The view that has become newly focusable
			 */
			focusableViewAvailable(v: android.view.View): void;
			/**
			 * Bring up a context menu for the specified view or its ancestors.
			 * @param originalView The source view where the context menu was first invoked
			 */
			showContextMenuForChild(originalView: android.view.View): boolean;
			/**
			 * Have the parent populate the specified context menu if it has anything to add (and then recurse on its parent). 
			 * @param menu The menu to populate
			 */
			createContextMenu(menu: android.view.IContextMenu): void;
			/**
			 * Start an action mode for the specified view.
			 * @param originalView The source view where the action mode was first invoked
			 * @param callback The callback that will handle lifecycle events for the action mode
			 */
			startActionModeForChild(originalView: android.view.View, callback: android.view.ActionMode.ICallback): android.view.ActionMode;
			/**
			 * This method is called on the parent when a child's drawable state has changed.
			 * @param child The child whose drawable state has changed.
			 */
			childDrawableStateChanged(child: android.view.View): void;
			/**
			 * Called when a child does not want this parent and its ancestors to intercept touch events with ViewGroup#onInterceptTouchEvent(MotionEvent).
			 * @param disallowIntercept True if the child does not want the parent to
			 */
			requestDisallowInterceptTouchEvent(disallowIntercept: boolean): void;
			/**
			 * Called when a child of this group wants a particular rectangle to be positioned onto the screen. ViewGroups overriding this can trust that: <ul> <li>child will be a direct child of this group</li> <li>rectangle will be in the child's coordinates</li> </ul>
			 * @param child The direct child making the request.
			 * @param rectangle The rectangle in the child's coordinates the child
			 * @param immediate True to forbid animated or delayed scrolling,
			 */
			requestChildRectangleOnScreen(child: android.view.View, rectangle: android.graphics.Rect, immediate: boolean): boolean;
			/**
			 * Called by a child to request from its parent to send an AccessibilityEvent. The child has already populated a record for itself in the event and is delegating to its parent to send the event. The parent can optionally add a record for itself.
			 * @param child The child which requests sending the event.
			 * @param event The event to be sent.
			 */
			requestSendAccessibilityEvent(child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 * Ask that a new dispatch of View#fitSystemWindows(Rect) View.fitSystemWindows(Rect) be performed.
			 */
			requestFitSystemWindows(): void;
			/**
			 * Gets the parent of a given View for accessibility. Since some Views are not exposed to the accessibility layer the parent for accessibility is not necessarily the direct parent of the View, rather it is a predecessor.
			 */
			getParentForAccessibility(): android.view.IViewParent;
		}
		/**
		 * DrawableBgMinSize exercises Views to obey their background drawable's minimum sizes.
		 */
		export class DrawableBgMinSizeTest extends android.test.ActivityInstrumentationTestCase<android.view.DrawableBgMinSize> {
			constructor();
			static class: java.lang.Class<android.view.DrawableBgMinSizeTest>;
			protected setUp(): void;
			public testSetUpConditions(): void;
			public doMinimumSizeTest(view: android.view.View): void;
			public testTextViewMinimumSize(): void;
			public testLinearLayoutMinimumSize(): void;
			public testRelativeLayoutMinimumSize(): void;
			public testAbsoluteLayoutMinimumSize(): void;
			public testFrameLayoutMinimumSize(): void;
			public doDiffBgMinimumSizeTest(view: android.view.View): void;
			public testTextViewDiffBgMinimumSize(): void;
			public testLinearLayoutDiffBgMinimumSize(): void;
			public testRelativeLayoutDiffBgMinimumSize(): void;
			public testAbsoluteLayoutDiffBgMinimumSize(): void;
			public testFrameLayoutDiffBgMinimumSize(): void;
		}
		/**
		 * Subclass of Menu for sub menus.
		 */
		interface ISubMenu extends android.view.IMenu {
			/**
			 * Sets the submenu header's title to the title given in <var>titleRes</var> resource identifier. 
			 * @param titleRes The string resource identifier used for the title.
			 */
			setHeaderTitle(titleRes: number): android.view.ISubMenu;
			/**
			 * Sets the submenu header's title to the title given in <var>title</var>. 
			 * @param title The character sequence used for the title.
			 */
			setHeaderTitle(title: string): android.view.ISubMenu;
			/**
			 * Sets the submenu header's icon to the icon given in <var>iconRes</var> resource id. 
			 * @param iconRes The resource identifier used for the icon.
			 */
			setHeaderIcon(iconRes: number): android.view.ISubMenu;
			/**
			 * Sets the submenu header's icon to the icon given in <var>icon</var> Drawable. 
			 * @param icon The {@link Drawable} used for the icon.
			 */
			setHeaderIcon(icon: android.graphics.drawable.Drawable): android.view.ISubMenu;
			/**
			 * Sets the header of the submenu to the View given in <var>view</var>. This replaces the header title and icon (and those replace this). 
			 * @param view The {@link View} used for the header.
			 */
			setHeaderView(view: android.view.View): android.view.ISubMenu;
			/**
			 * Clears the header of the submenu.
			 */
			clearHeader(): void;
			/**
			 * Change the icon associated with this submenu's item in its parent menu. MenuItem#setIcon(int)
			 * @param iconRes The new icon (as a resource ID) to be displayed.
			 */
			setIcon(iconRes: number): android.view.ISubMenu;
			/**
			 * Change the icon associated with this submenu's item in its parent menu. MenuItem#setIcon(Drawable)
			 * @param icon The new icon (as a Drawable) to be displayed.
			 */
			setIcon(icon: android.graphics.drawable.Drawable): android.view.ISubMenu;
			/**
			 * Gets the MenuItem that represents this submenu in the parent menu. Use this for setting additional item attributes. 
			 */
			getItem(): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param title The text to display for the item.
			 */
			add(title: string): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param titleRes Resource identifier of title string.
			 */
			add(titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			add(groupId: number, itemId: number, order: number, title: string): android.view.IMenuItem;
			/**
			 * Variation on #add(int, int, int, CharSequence) that takes a string resource identifier instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param titleRes Resource identifier of title string.
			 */
			add(groupId: number, itemId: number, order: number, titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param title The text to display for the item.
			 */
			addSubMenu(title: string): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(titleRes: number): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given <var>title</var> for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem().
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, title: string): android.view.ISubMenu;
			/**
			 * Variation on #addSubMenu(int, int, int, CharSequence) that takes a string resource identifier for the title instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a unique ID.
			 * @param order The order for the item. Use {@link #NONE} if you do not care about the
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, titleRes: number): android.view.ISubMenu;
			/**
			 * Add a group of menu items corresponding to actions that can be performed for a particular Intent. The Intent is most often configured with a null action, the data that the current activity is working with, and includes either the Intent#CATEGORY_ALTERNATIVE or Intent#CATEGORY_SELECTED_ALTERNATIVE to find activities that have said they would like to be included as optional action. You can, however, use any Intent you want. 
			 * @param groupId The group identifier that the items should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the items. Use {@link #NONE} if you do not
			 * @param caller The current activity component name as defined by
			 * @param specifics Specific items to place first as defined by
			 * @param intent Intent describing the kinds of items to populate in the
			 * @param flags Additional options controlling how the items are added.
			 * @param outSpecificItems Optional array in which to place the menu items
			 */
			addIntentOptions(groupId: number, itemId: number, order: number, caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number, outSpecificItems: native.Array<android.view.IMenuItem>): number;
			/**
			 * Remove the item with the given identifier.
			 * @param id The item to be removed. If there is no item with this
			 */
			removeItem(id: number): void;
			/**
			 * Remove all items in the given group.
			 * @param groupId The group to be removed. If there are no items in this
			 */
			removeGroup(groupId: number): void;
			/**
			 * Remove all existing items from the menu, leaving it empty as if it had just been created.
			 */
			clear(): void;
			/**
			 * Control whether a particular group of items can show a check mark. This is similar to calling MenuItem#setCheckable on all of the menu items with the given group identifier, but in addition you can control whether this group contains a mutually-exclusive set items. This should be called after the items of the group have been added to the menu.
			 * @param group The group of items to operate on.
			 * @param checkable Set to true to allow a check mark, false to
			 * @param exclusive If set to true, only one item in this group can be
			 */
			setGroupCheckable(group: number, checkable: boolean, exclusive: boolean): void;
			/**
			 * Show or hide all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param visible If true the items are visible, else they are hidden.
			 */
			setGroupVisible(group: number, visible: boolean): void;
			/**
			 * Enable or disable all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param enabled If true the items will be enabled, else they will be disabled.
			 */
			setGroupEnabled(group: number, enabled: boolean): void;
			/**
			 * Return whether the menu currently has item items that are visible.
			 */
			hasVisibleItems(): boolean;
			/**
			 * Return the menu item with a particular identifier.
			 * @param id The identifier to find.
			 */
			findItem(id: number): android.view.IMenuItem;
			/**
			 * Get the number of items in the menu. Note that this will change any times items are added or removed from the menu.
			 */
			size(): number;
			/**
			 * Gets the menu item at the given index. 
			 * @param index The index of the menu item to return.
			 */
			getItem(index: number): android.view.IMenuItem;
			/**
			 * Closes the menu, if open.
			 */
			close(): void;
			/**
			 * Execute the menu item action associated with the given shortcut character.
			 * @param keyCode The keycode of the shortcut key.
			 * @param event Key event message.
			 * @param flags Additional option flags or 0.
			 */
			performShortcut(keyCode: number, event: android.view.KeyEvent, flags: number): boolean;
			/**
			 * Is a keypress one of the defined shortcut keys for this window.
			 * @param keyCode the key code from {@link KeyEvent} to check.
			 * @param event the {@link KeyEvent} to use to help check.
			 */
			isShortcutKey(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Execute the menu item action associated with the given menu identifier. 
			 * @param id Identifier associated with the menu item.
			 * @param flags Additional option flags or 0.
			 */
			performIdentifierAction(id: number, flags: number): boolean;
			/**
			 * Control whether the menu should be running in qwerty mode (alphabetic shortcuts) or 12-key mode (numeric shortcuts). 
			 * @param isQwerty If true the menu will use alphabetic shortcuts; else it
			 */
			setQwertyMode(isQwerty: boolean): void;
		}
		/**
		 * Extension of Menu for context menus providing functionality to modify the header of the context menu.
		 */
		interface IContextMenu extends android.view.IMenu {
			/**
			 * Sets the context menu header's title to the title given in <var>titleRes</var> resource identifier. 
			 * @param titleRes The string resource identifier used for the title.
			 */
			setHeaderTitle(titleRes: number): android.view.IContextMenu;
			/**
			 * Sets the context menu header's title to the title given in <var>title</var>. 
			 * @param title The character sequence used for the title.
			 */
			setHeaderTitle(title: string): android.view.IContextMenu;
			/**
			 * Sets the context menu header's icon to the icon given in <var>iconRes</var> resource id. 
			 * @param iconRes The resource identifier used for the icon.
			 */
			setHeaderIcon(iconRes: number): android.view.IContextMenu;
			/**
			 * Sets the context menu header's icon to the icon given in <var>icon</var> Drawable. 
			 * @param icon The {@link Drawable} used for the icon.
			 */
			setHeaderIcon(icon: android.graphics.drawable.Drawable): android.view.IContextMenu;
			/**
			 * Sets the header of the context menu to the View given in <var>view</var>. This replaces the header title and icon (and those replace this). 
			 * @param view The {@link View} used for the header.
			 */
			setHeaderView(view: android.view.View): android.view.IContextMenu;
			/**
			 * Clears the header of the context menu.
			 */
			clearHeader(): void;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param title The text to display for the item.
			 */
			add(title: string): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param titleRes Resource identifier of title string.
			 */
			add(titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			add(groupId: number, itemId: number, order: number, title: string): android.view.IMenuItem;
			/**
			 * Variation on #add(int, int, int, CharSequence) that takes a string resource identifier instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param titleRes Resource identifier of title string.
			 */
			add(groupId: number, itemId: number, order: number, titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param title The text to display for the item.
			 */
			addSubMenu(title: string): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(titleRes: number): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given <var>title</var> for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem().
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, title: string): android.view.ISubMenu;
			/**
			 * Variation on #addSubMenu(int, int, int, CharSequence) that takes a string resource identifier for the title instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a unique ID.
			 * @param order The order for the item. Use {@link #NONE} if you do not care about the
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, titleRes: number): android.view.ISubMenu;
			/**
			 * Add a group of menu items corresponding to actions that can be performed for a particular Intent. The Intent is most often configured with a null action, the data that the current activity is working with, and includes either the Intent#CATEGORY_ALTERNATIVE or Intent#CATEGORY_SELECTED_ALTERNATIVE to find activities that have said they would like to be included as optional action. You can, however, use any Intent you want. 
			 * @param groupId The group identifier that the items should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the items. Use {@link #NONE} if you do not
			 * @param caller The current activity component name as defined by
			 * @param specifics Specific items to place first as defined by
			 * @param intent Intent describing the kinds of items to populate in the
			 * @param flags Additional options controlling how the items are added.
			 * @param outSpecificItems Optional array in which to place the menu items
			 */
			addIntentOptions(groupId: number, itemId: number, order: number, caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number, outSpecificItems: native.Array<android.view.IMenuItem>): number;
			/**
			 * Remove the item with the given identifier.
			 * @param id The item to be removed. If there is no item with this
			 */
			removeItem(id: number): void;
			/**
			 * Remove all items in the given group.
			 * @param groupId The group to be removed. If there are no items in this
			 */
			removeGroup(groupId: number): void;
			/**
			 * Remove all existing items from the menu, leaving it empty as if it had just been created.
			 */
			clear(): void;
			/**
			 * Control whether a particular group of items can show a check mark. This is similar to calling MenuItem#setCheckable on all of the menu items with the given group identifier, but in addition you can control whether this group contains a mutually-exclusive set items. This should be called after the items of the group have been added to the menu.
			 * @param group The group of items to operate on.
			 * @param checkable Set to true to allow a check mark, false to
			 * @param exclusive If set to true, only one item in this group can be
			 */
			setGroupCheckable(group: number, checkable: boolean, exclusive: boolean): void;
			/**
			 * Show or hide all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param visible If true the items are visible, else they are hidden.
			 */
			setGroupVisible(group: number, visible: boolean): void;
			/**
			 * Enable or disable all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param enabled If true the items will be enabled, else they will be disabled.
			 */
			setGroupEnabled(group: number, enabled: boolean): void;
			/**
			 * Return whether the menu currently has item items that are visible.
			 */
			hasVisibleItems(): boolean;
			/**
			 * Return the menu item with a particular identifier.
			 * @param id The identifier to find.
			 */
			findItem(id: number): android.view.IMenuItem;
			/**
			 * Get the number of items in the menu. Note that this will change any times items are added or removed from the menu.
			 */
			size(): number;
			/**
			 * Gets the menu item at the given index. 
			 * @param index The index of the menu item to return.
			 */
			getItem(index: number): android.view.IMenuItem;
			/**
			 * Closes the menu, if open.
			 */
			close(): void;
			/**
			 * Execute the menu item action associated with the given shortcut character.
			 * @param keyCode The keycode of the shortcut key.
			 * @param event Key event message.
			 * @param flags Additional option flags or 0.
			 */
			performShortcut(keyCode: number, event: android.view.KeyEvent, flags: number): boolean;
			/**
			 * Is a keypress one of the defined shortcut keys for this window.
			 * @param keyCode the key code from {@link KeyEvent} to check.
			 * @param event the {@link KeyEvent} to use to help check.
			 */
			isShortcutKey(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Execute the menu item action associated with the given menu identifier. 
			 * @param id Identifier associated with the menu item.
			 * @param flags Additional option flags or 0.
			 */
			performIdentifierAction(id: number, flags: number): boolean;
			/**
			 * Control whether the menu should be running in qwerty mode (alphabetic shortcuts) or 12-key mode (numeric shortcuts). 
			 * @param isQwerty If true the menu will use alphabetic shortcuts; else it
			 */
			setQwertyMode(isQwerty: boolean): void;
		}
		/**
		 * Detects various gestures and events using the supplied MotionEvents. The OnGestureListener callback will notify users when a particular motion event has occurred. This class should only be used with MotionEvents reported via touch (don't use for trackball events).
		 */
		export class GestureDetector extends java.lang.Object {
			/**
			 * Creates a GestureDetector with the supplied listener. This variant of the constructor should be used from a non-UI thread (as it allows specifying the Handler). 
			 * @param listener the listener invoked for all the callbacks, this must
			 * @param handler the handler to use
			 */
			constructor(listener: android.view.GestureDetector.IOnGestureListener, handler: android.os.Handler);
			/**
			 * Creates a GestureDetector with the supplied listener. You may only use this constructor from a UI thread (this is the usual situation). android.os.Handler#Handler() 
			 * @param listener the listener invoked for all the callbacks, this must
			 */
			constructor(listener: android.view.GestureDetector.IOnGestureListener);
			/**
			 * Creates a GestureDetector with the supplied listener. You may only use this constructor from a UI thread (this is the usual situation). android.os.Handler#Handler()
			 * @param context the application's context
			 * @param listener the listener invoked for all the callbacks, this must
			 */
			constructor(context: android.content.Context, listener: android.view.GestureDetector.IOnGestureListener);
			/**
			 * Creates a GestureDetector with the supplied listener. You may only use this constructor from a UI thread (this is the usual situation). android.os.Handler#Handler()
			 * @param context the application's context
			 * @param listener the listener invoked for all the callbacks, this must
			 * @param handler the handler to use
			 */
			constructor(context: android.content.Context, listener: android.view.GestureDetector.IOnGestureListener, handler: android.os.Handler);
			/**
			 * Creates a GestureDetector with the supplied listener. You may only use this constructor from a UI thread (this is the usual situation). android.os.Handler#Handler()
			 * @param context the application's context
			 * @param listener the listener invoked for all the callbacks, this must
			 * @param handler the handler to use
			 * @param unused 
			 */
			constructor(context: android.content.Context, listener: android.view.GestureDetector.IOnGestureListener, handler: android.os.Handler, unused: boolean);
			static class: java.lang.Class<android.view.GestureDetector>;
			/**
			 * Sets the listener which will be called for double-tap and related gestures. 
			 * @param onDoubleTapListener the listener invoked for all the callbacks, or
			 */
			public setOnDoubleTapListener(onDoubleTapListener: android.view.GestureDetector.IOnDoubleTapListener): void;
			/**
			 * Set whether longpress is enabled, if this is enabled when a user presses and holds down you get a longpress event and nothing further. If it's disabled the user can press and hold down and then later moved their finger and you will get scroll events. By default longpress is enabled.
			 * @param isLongpressEnabled whether longpress should be enabled.
			 */
			public setIsLongpressEnabled(isLongpressEnabled: boolean): void;
			public isLongpressEnabled(): boolean;
			/**
			 * Analyzes the given motion event and if applicable triggers the appropriate callbacks on the OnGestureListener supplied.
			 * @param ev The current motion event.
			 */
			public onTouchEvent(ev: android.view.MotionEvent): boolean;
		}
		export module GestureDetector {
			/**
			 * The listener that is used to notify when gestures occur. If you want to listen for all the different gestures then implement this interface. If you only want to listen for a subset it might be easier to extend SimpleOnGestureListener.
			 */
			export class OnGestureListener implements android.view.GestureDetector.IOnGestureListener {
				constructor(implementation: android.view.GestureDetector.IOnGestureListener);
				/**
				 * Notified when a tap occurs with the down MotionEvent that triggered it. This will be triggered immediately for every down event. All other events should be preceded by this.
				 * @param e The down motion event.
				 */
				public onDown(e: android.view.MotionEvent): boolean;
				/**
				 * The user has performed a down MotionEvent and not performed a move or up yet. This event is commonly used to provide visual feedback to the user to let them know that their action has been recognized i.e. highlight an element.
				 * @param e The down motion event
				 */
				public onShowPress(e: android.view.MotionEvent): void;
				/**
				 * Notified when a tap occurs with the up MotionEvent that triggered it.
				 * @param e The up motion event that completed the first tap
				 */
				public onSingleTapUp(e: android.view.MotionEvent): boolean;
				/**
				 * Notified when a scroll occurs with the initial on down MotionEvent and the current move MotionEvent. The distance in x and y is also supplied for convenience.
				 * @param e1 The first down motion event that started the scrolling.
				 * @param e2 The move motion event that triggered the current onScroll.
				 * @param distanceX The distance along the X axis that has been scrolled since the last
				 * @param distanceY The distance along the Y axis that has been scrolled since the last
				 */
				public onScroll(e1: android.view.MotionEvent, e2: android.view.MotionEvent, distanceX: number, distanceY: number): boolean;
				/**
				 * Notified when a long press occurs with the initial on down MotionEvent that trigged it.
				 * @param e The initial on down motion event that started the longpress.
				 */
				public onLongPress(e: android.view.MotionEvent): void;
				/**
				 * Notified of a fling event when it occurs with the initial on down MotionEvent and the matching up MotionEvent. The calculated velocity is supplied along the x and y axis in pixels per second.
				 * @param e1 The first down motion event that started the fling.
				 * @param e2 The move motion event that triggered the current onFling.
				 * @param velocityX The velocity of this fling measured in pixels per second
				 * @param velocityY The velocity of this fling measured in pixels per second
				 */
				public onFling(e1: android.view.MotionEvent, e2: android.view.MotionEvent, velocityX: number, velocityY: number): boolean;
			}
			/**
			 * The listener that is used to notify when a double-tap or a confirmed single-tap occur.
			 */
			export class OnDoubleTapListener implements android.view.GestureDetector.IOnDoubleTapListener {
				constructor(implementation: android.view.GestureDetector.IOnDoubleTapListener);
				/**
				 * Notified when a single-tap occurs.
				 * @param e The down motion event of the single-tap.
				 */
				public onSingleTapConfirmed(e: android.view.MotionEvent): boolean;
				/**
				 * Notified when a double-tap occurs.
				 * @param e The down motion event of the first tap of the double-tap.
				 */
				public onDoubleTap(e: android.view.MotionEvent): boolean;
				/**
				 * Notified when an event within a double-tap gesture occurs, including the down, move, and up events.
				 * @param e The motion event that occurred during the double-tap gesture.
				 */
				public onDoubleTapEvent(e: android.view.MotionEvent): boolean;
			}
			export class GestureHandler extends android.os.Handler {
				static class: java.lang.Class<android.view.GestureDetector.GestureHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			/**
			 * The listener that is used to notify when a double-tap or a confirmed single-tap occur.
			 */
			interface IOnDoubleTapListener {
				/**
				 * Notified when a single-tap occurs.
				 * @param e The down motion event of the single-tap.
				 */
				onSingleTapConfirmed(e: android.view.MotionEvent): boolean;
				/**
				 * Notified when a double-tap occurs.
				 * @param e The down motion event of the first tap of the double-tap.
				 */
				onDoubleTap(e: android.view.MotionEvent): boolean;
				/**
				 * Notified when an event within a double-tap gesture occurs, including the down, move, and up events.
				 * @param e The motion event that occurred during the double-tap gesture.
				 */
				onDoubleTapEvent(e: android.view.MotionEvent): boolean;
			}
			/**
			 * A convenience class to extend when you only want to listen for a subset of all the gestures. This implements all methods in the OnGestureListener and OnDoubleTapListener but does nothing and return false for all applicable methods.
			 */
			export class SimpleOnGestureListener extends java.lang.Object implements android.view.GestureDetector.IOnGestureListener, android.view.GestureDetector.IOnDoubleTapListener {
				constructor();
				static class: java.lang.Class<android.view.GestureDetector.SimpleOnGestureListener>;
				public onSingleTapUp(e: android.view.MotionEvent): boolean;
				public onLongPress(e: android.view.MotionEvent): void;
				public onScroll(e1: android.view.MotionEvent, e2: android.view.MotionEvent, distanceX: number, distanceY: number): boolean;
				public onFling(e1: android.view.MotionEvent, e2: android.view.MotionEvent, velocityX: number, velocityY: number): boolean;
				public onShowPress(e: android.view.MotionEvent): void;
				public onDown(e: android.view.MotionEvent): boolean;
				public onDoubleTap(e: android.view.MotionEvent): boolean;
				public onDoubleTapEvent(e: android.view.MotionEvent): boolean;
				public onSingleTapConfirmed(e: android.view.MotionEvent): boolean;
			}
			/**
			 * The listener that is used to notify when gestures occur. If you want to listen for all the different gestures then implement this interface. If you only want to listen for a subset it might be easier to extend SimpleOnGestureListener.
			 */
			interface IOnGestureListener {
				/**
				 * Notified when a tap occurs with the down MotionEvent that triggered it. This will be triggered immediately for every down event. All other events should be preceded by this.
				 * @param e The down motion event.
				 */
				onDown(e: android.view.MotionEvent): boolean;
				/**
				 * The user has performed a down MotionEvent and not performed a move or up yet. This event is commonly used to provide visual feedback to the user to let them know that their action has been recognized i.e. highlight an element.
				 * @param e The down motion event
				 */
				onShowPress(e: android.view.MotionEvent): void;
				/**
				 * Notified when a tap occurs with the up MotionEvent that triggered it.
				 * @param e The up motion event that completed the first tap
				 */
				onSingleTapUp(e: android.view.MotionEvent): boolean;
				/**
				 * Notified when a scroll occurs with the initial on down MotionEvent and the current move MotionEvent. The distance in x and y is also supplied for convenience.
				 * @param e1 The first down motion event that started the scrolling.
				 * @param e2 The move motion event that triggered the current onScroll.
				 * @param distanceX The distance along the X axis that has been scrolled since the last
				 * @param distanceY The distance along the Y axis that has been scrolled since the last
				 */
				onScroll(e1: android.view.MotionEvent, e2: android.view.MotionEvent, distanceX: number, distanceY: number): boolean;
				/**
				 * Notified when a long press occurs with the initial on down MotionEvent that trigged it.
				 * @param e The initial on down motion event that started the longpress.
				 */
				onLongPress(e: android.view.MotionEvent): void;
				/**
				 * Notified of a fling event when it occurs with the initial on down MotionEvent and the matching up MotionEvent. The calculated velocity is supplied along the x and y axis in pixels per second.
				 * @param e1 The first down motion event that started the fling.
				 * @param e2 The move motion event that triggered the current onFling.
				 * @param velocityX The velocity of this fling measured in pixels per second
				 * @param velocityY The velocity of this fling measured in pixels per second
				 */
				onFling(e1: android.view.MotionEvent, e2: android.view.MotionEvent, velocityX: number, velocityY: number): boolean;
			}
		}
		/**
		 * Subclass of Menu for sub menus.
		 */
		export class SubMenu implements android.view.IMenu, android.view.ISubMenu {
			constructor(implementation: android.view.ISubMenu);
			/**
			 * Sets the submenu header's title to the title given in <var>titleRes</var> resource identifier. 
			 * @param titleRes The string resource identifier used for the title.
			 */
			public setHeaderTitle(titleRes: number): android.view.ISubMenu;
			/**
			 * Sets the submenu header's title to the title given in <var>title</var>. 
			 * @param title The character sequence used for the title.
			 */
			public setHeaderTitle(title: string): android.view.ISubMenu;
			/**
			 * Sets the submenu header's icon to the icon given in <var>iconRes</var> resource id. 
			 * @param iconRes The resource identifier used for the icon.
			 */
			public setHeaderIcon(iconRes: number): android.view.ISubMenu;
			/**
			 * Sets the submenu header's icon to the icon given in <var>icon</var> Drawable. 
			 * @param icon The {@link Drawable} used for the icon.
			 */
			public setHeaderIcon(icon: android.graphics.drawable.Drawable): android.view.ISubMenu;
			/**
			 * Sets the header of the submenu to the View given in <var>view</var>. This replaces the header title and icon (and those replace this). 
			 * @param view The {@link View} used for the header.
			 */
			public setHeaderView(view: android.view.View): android.view.ISubMenu;
			/**
			 * Clears the header of the submenu.
			 */
			public clearHeader(): void;
			/**
			 * Change the icon associated with this submenu's item in its parent menu. MenuItem#setIcon(int)
			 * @param iconRes The new icon (as a resource ID) to be displayed.
			 */
			public setIcon(iconRes: number): android.view.ISubMenu;
			/**
			 * Change the icon associated with this submenu's item in its parent menu. MenuItem#setIcon(Drawable)
			 * @param icon The new icon (as a Drawable) to be displayed.
			 */
			public setIcon(icon: android.graphics.drawable.Drawable): android.view.ISubMenu;
			/**
			 * Gets the MenuItem that represents this submenu in the parent menu. Use this for setting additional item attributes. 
			 */
			public getItem(): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param title The text to display for the item.
			 */
			add(title: string): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param titleRes Resource identifier of title string.
			 */
			add(titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			add(groupId: number, itemId: number, order: number, title: string): android.view.IMenuItem;
			/**
			 * Variation on #add(int, int, int, CharSequence) that takes a string resource identifier instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param titleRes Resource identifier of title string.
			 */
			add(groupId: number, itemId: number, order: number, titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param title The text to display for the item.
			 */
			addSubMenu(title: string): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(titleRes: number): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given <var>title</var> for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem().
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, title: string): android.view.ISubMenu;
			/**
			 * Variation on #addSubMenu(int, int, int, CharSequence) that takes a string resource identifier for the title instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a unique ID.
			 * @param order The order for the item. Use {@link #NONE} if you do not care about the
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, titleRes: number): android.view.ISubMenu;
			/**
			 * Add a group of menu items corresponding to actions that can be performed for a particular Intent. The Intent is most often configured with a null action, the data that the current activity is working with, and includes either the Intent#CATEGORY_ALTERNATIVE or Intent#CATEGORY_SELECTED_ALTERNATIVE to find activities that have said they would like to be included as optional action. You can, however, use any Intent you want. 
			 * @param groupId The group identifier that the items should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the items. Use {@link #NONE} if you do not
			 * @param caller The current activity component name as defined by
			 * @param specifics Specific items to place first as defined by
			 * @param intent Intent describing the kinds of items to populate in the
			 * @param flags Additional options controlling how the items are added.
			 * @param outSpecificItems Optional array in which to place the menu items
			 */
			addIntentOptions(groupId: number, itemId: number, order: number, caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number, outSpecificItems: native.Array<android.view.IMenuItem>): number;
			/**
			 * Remove the item with the given identifier.
			 * @param id The item to be removed. If there is no item with this
			 */
			removeItem(id: number): void;
			/**
			 * Remove all items in the given group.
			 * @param groupId The group to be removed. If there are no items in this
			 */
			removeGroup(groupId: number): void;
			/**
			 * Remove all existing items from the menu, leaving it empty as if it had just been created.
			 */
			clear(): void;
			/**
			 * Control whether a particular group of items can show a check mark. This is similar to calling MenuItem#setCheckable on all of the menu items with the given group identifier, but in addition you can control whether this group contains a mutually-exclusive set items. This should be called after the items of the group have been added to the menu.
			 * @param group The group of items to operate on.
			 * @param checkable Set to true to allow a check mark, false to
			 * @param exclusive If set to true, only one item in this group can be
			 */
			setGroupCheckable(group: number, checkable: boolean, exclusive: boolean): void;
			/**
			 * Show or hide all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param visible If true the items are visible, else they are hidden.
			 */
			setGroupVisible(group: number, visible: boolean): void;
			/**
			 * Enable or disable all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param enabled If true the items will be enabled, else they will be disabled.
			 */
			setGroupEnabled(group: number, enabled: boolean): void;
			/**
			 * Return whether the menu currently has item items that are visible.
			 */
			hasVisibleItems(): boolean;
			/**
			 * Return the menu item with a particular identifier.
			 * @param id The identifier to find.
			 */
			findItem(id: number): android.view.IMenuItem;
			/**
			 * Get the number of items in the menu. Note that this will change any times items are added or removed from the menu.
			 */
			size(): number;
			/**
			 * Gets the menu item at the given index. 
			 * @param index The index of the menu item to return.
			 */
			getItem(index: number): android.view.IMenuItem;
			/**
			 * Closes the menu, if open.
			 */
			close(): void;
			/**
			 * Execute the menu item action associated with the given shortcut character.
			 * @param keyCode The keycode of the shortcut key.
			 * @param event Key event message.
			 * @param flags Additional option flags or 0.
			 */
			performShortcut(keyCode: number, event: android.view.KeyEvent, flags: number): boolean;
			/**
			 * Is a keypress one of the defined shortcut keys for this window.
			 * @param keyCode the key code from {@link KeyEvent} to check.
			 * @param event the {@link KeyEvent} to use to help check.
			 */
			isShortcutKey(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Execute the menu item action associated with the given menu identifier. 
			 * @param id Identifier associated with the menu item.
			 * @param flags Additional option flags or 0.
			 */
			performIdentifierAction(id: number, flags: number): boolean;
			/**
			 * Control whether the menu should be running in qwerty mode (alphabetic shortcuts) or 12-key mode (numeric shortcuts). 
			 * @param isQwerty If true the menu will use alphabetic shortcuts; else it
			 */
			setQwertyMode(isQwerty: boolean): void;
		}
		/**
		 * A View that will throw a RuntimeException if onAttachedToWindow and onDetachedFromWindow is called in the wrong order for ViewAttachTest
		 */
		export class ViewAttachView extends android.view.View {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static TAG: string;
			static class: java.lang.Class<android.view.ViewAttachView>;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
		}
		/**
		 * This class enables automatic and optimized animation of select properties on View objects. If only one or two properties on a View object are being animated, then using an android.animation.ObjectAnimator is fine; the property setters called by ObjectAnimator are well equipped to do the right thing to set the property and invalidate the view appropriately. But if several properties are animated simultaneously, or if you just want a more convenient syntax to animate a specific property, then ViewPropertyAnimator might be more well-suited to the task.
		 */
		export class ViewPropertyAnimator extends java.lang.Object {
			static class: java.lang.Class<android.view.ViewPropertyAnimator>;
			/**
			 * Sets the duration for the underlying animator that animates the requested properties. By default, the animator uses the default value for ValueAnimator. Calling this method will cause the declared value to be used instead.
			 * @param duration The length of ensuing property animations, in milliseconds. The value
			 */
			public setDuration(duration: number): android.view.ViewPropertyAnimator;
			/**
			 * Returns the current duration of property animations. If the duration was set on this object, that value is returned. Otherwise, the default value of the underlying Animator is returned.
			 */
			public getDuration(): any;
			/**
			 * Returns the current startDelay of property animations. If the startDelay was set on this object, that value is returned. Otherwise, the default value of the underlying Animator is returned.
			 */
			public getStartDelay(): any;
			/**
			 * Sets the startDelay for the underlying animator that animates the requested properties. By default, the animator uses the default value for ValueAnimator. Calling this method will cause the declared value to be used instead.
			 * @param startDelay The delay of ensuing property animations, in milliseconds. The value
			 */
			public setStartDelay(startDelay: number): android.view.ViewPropertyAnimator;
			/**
			 * Sets the interpolator for the underlying animator that animates the requested properties. By default, the animator uses the default interpolator for ValueAnimator. Calling this method will cause the declared object to be used instead. 
			 * @param interpolator The TimeInterpolator to be used for ensuing property animations.
			 */
			public setInterpolator(interpolator: android.animation.ITimeInterpolator): android.view.ViewPropertyAnimator;
			/**
			 * Sets a listener for events in the underlying Animators that run the property animations.
			 * @param listener The listener to be called with AnimatorListener events.
			 */
			public setListener(listener: android.animation.Animator.IAnimatorListener): android.view.ViewPropertyAnimator;
			/**
			 * Starts the currently pending property animations immediately. Calling <code>start()</code> is optional because all animations start automatically at the next opportunity. However, if the animations are needed to start immediately and synchronously (not at the time when the next event is processed by the hierarchy, which is when the animations would begin otherwise), then this method can be used.
			 */
			public start(): void;
			/**
			 * Cancels all property animations that are currently running or pending.
			 */
			public cancel(): void;
			/**
			 * This method will cause the View's <code>x</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public x(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>x</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public xBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>y</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public y(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>y</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public yBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>rotation</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public rotation(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>rotation</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public rotationBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>rotationX</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public rotationX(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>rotationX</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public rotationXBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>rotationY</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public rotationY(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>rotationY</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public rotationYBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>translationX</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public translationX(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>translationX</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public translationXBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>translationY</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public translationY(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>translationY</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public translationYBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>scaleX</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public scaleX(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>scaleX</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public scaleXBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>scaleY</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public scaleY(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>scaleY</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public scaleYBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>alpha</code> property to be animated to the specified value. Animations already running on the property will be canceled.
			 * @param value The value to be animated to.
			 */
			public alpha(value: number): android.view.ViewPropertyAnimator;
			/**
			 * This method will cause the View's <code>alpha</code> property to be animated by the specified value. Animations already running on the property will be canceled.
			 * @param value The amount to be animated by, as an offset from the current value.
			 */
			public alphaBy(value: number): android.view.ViewPropertyAnimator;
			/**
			 * The View associated with this ViewPropertyAnimator will have its View#setLayerType(int, android.graphics.Paint) layer type set to View#LAYER_TYPE_HARDWARE for the duration of the next animation. As stated in the documentation for View#LAYER_TYPE_HARDWARE, the actual type of layer used internally depends on the runtime situation of the view. If the activity and this view are hardware-accelerated, then the layer will be accelerated as well. If the activity or the view is not accelerated, then the layer will effectively be the same as View#LAYER_TYPE_SOFTWARE.
			 */
			public withLayer(): android.view.ViewPropertyAnimator;
			/**
			 * Specifies an action to take place when the next animation runs. If there is a #setStartDelay(long) startDelay set on this ViewPropertyAnimator, then the action will run after that startDelay expires, when the actual animation begins. This method, along with #withEndAction(Runnable), is intended to help facilitate choreographing ViewPropertyAnimator animations with other animations or actions in the application.
			 * @param runnable The action to run when the next animation starts.
			 */
			public withStartAction(runnable: java.lang.IRunnable): android.view.ViewPropertyAnimator;
			/**
			 * Specifies an action to take place when the next animation ends. The action is only run if the animation ends normally; if the ViewPropertyAnimator is canceled during that animation, the runnable will not run. This method, along with #withStartAction(Runnable), is intended to help facilitate choreographing ViewPropertyAnimator animations with other animations or actions in the application.
			 * @param runnable The action to run when the next animation ends.
			 */
			public withEndAction(runnable: java.lang.IRunnable): android.view.ViewPropertyAnimator;
		}
		export module ViewPropertyAnimator {
			/**
			 * This is the information we need to set each property during the animation. mNameConstant is used to set the appropriate field in View, and the from/delta values are used to calculate the animated value for a given animation fraction during the animation.
			 */
			export class NameValuesHolder extends java.lang.Object {
				static class: java.lang.Class<android.view.ViewPropertyAnimator.NameValuesHolder>;
			}
			/**
			 * Utility class that handles the various Animator events. The only ones we care about are the end event (which we use to clean up the animator map when an animator finishes) and the update event (which we use to calculate the current value of each property and then set it on the view object).
			 */
			export class AnimatorEventListener extends java.lang.Object implements android.animation.Animator.IAnimatorListener, android.animation.ValueAnimator.IAnimatorUpdateListener {
				static class: java.lang.Class<android.view.ViewPropertyAnimator.AnimatorEventListener>;
				public onAnimationStart(animation: android.animation.Animator): void;
				public onAnimationCancel(animation: android.animation.Animator): void;
				public onAnimationRepeat(animation: android.animation.Animator): void;
				public onAnimationEnd(animation: android.animation.Animator): void;
				/**
				 * Calculate the current value for each property and set it on the view. Invalidate the view object appropriately, depending on which properties are being animated.
				 * @param animation The animator associated with the properties that need to be
				 */
				public onAnimationUpdate(animation: android.animation.ValueAnimator): void;
			}
			/**
			 * This class holds information about the overall animation being run on the set of properties. The mask describes which properties are being animated and the values holder is the list of all property/value objects.
			 */
			export class PropertyBundle extends java.lang.Object {
				static class: java.lang.Class<android.view.ViewPropertyAnimator.PropertyBundle>;
				/**
				 * Removes the given property from being animated as a part of this PropertyBundle. If the property was a part of this bundle, it returns true to indicate that it was, in fact, canceled. This is an indication to the caller that a cancellation actually occurred.
				 * @param propertyConstant The property whose cancellation is requested.
				 */
				cancel(propertyConstant: number): boolean;
			}
		}
		/**
		 * Handle onto a raw buffer that is being managed by the screen compositor.
		 */
		export class Surface extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create Surface from a SurfaceTexture.
			 * @param surfaceTexture The {@link SurfaceTexture} that is updated by this
			 */
			constructor(surfaceTexture: android.graphics.SurfaceTexture);
			static CREATOR: android.os.Parcelable.ICreator<android.view.Surface>;
			/**
			 * Rotation constant: 0 degree rotation (natural orientation)
			 */
			static ROTATION_0: number;
			/**
			 * Rotation constant: 90 degree rotation.
			 */
			static ROTATION_90: number;
			/**
			 * Rotation constant: 180 degree rotation.
			 */
			static ROTATION_180: number;
			/**
			 * Rotation constant: 270 degree rotation.
			 */
			static ROTATION_270: number;
			static class: java.lang.Class<android.view.Surface>;
			protected finalize(): void;
			/**
			 * Release the local reference to the server-side surface. Always call release() when you're done with a Surface. This will make the surface invalid.
			 */
			public release(): void;
			/**
			 * Returns true if this object holds a valid surface.
			 */
			public isValid(): boolean;
			/**
			 * Gets a Canvas for drawing into this surface.
			 * @param dirty A rectangle that represents the dirty region that the caller wants
			 */
			public lockCanvas(dirty: android.graphics.Rect): android.graphics.Canvas;
			/**
			 * Posts the new contents of the Canvas to the surface and releases the Canvas.
			 * @param canvas The canvas previously obtained from {@link #lockCanvas}.
			 */
			public unlockCanvasAndPost(canvas: android.graphics.Canvas): void;
			public unlockCanvas(canvas: android.graphics.Canvas): void;
			public describeContents(): number;
			public readFromParcel(source: android.os.Parcel): void;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public toString(): string;
		}
		export module Surface {
			/**
			 * Exception thrown when a surface couldn't be created or resized.
			 */
			export class OutOfResourcesException extends java.lang.Exception {
				constructor();
				constructor(name: string);
				static class: java.lang.Class<android.view.Surface.OutOfResourcesException>;
			}
			/**
			 * A Canvas class that can handle the compatibility mode. This does two things differently. <ul> <li>Returns the width and height of the target metrics, rather than native. For example, the canvas returns 320x480 even if an app is running in WVGA high density. <li>Scales the matrix in setMatrix by the application scale, except if the matrix looks like obtained from getMatrix. This is a hack to handle the case that an application uses getMatrix to keep the original matrix, set matrix of its own, then set the original matrix back. There is no perfect solution that works for all cases, and there are a lot of cases that this model does not work, but we hope this works for many apps. </ul>
			 */
			export class CompatibleCanvas extends android.graphics.Canvas {
				static class: java.lang.Class<android.view.Surface.CompatibleCanvas>;
				public getWidth(): number;
				public getHeight(): number;
				public setMatrix(matrix: android.graphics.Matrix): void;
				public getMatrix(m: android.graphics.Matrix): void;
				/**
				 * Return a new matrix with a copy of the canvas' current transformation matrix.
				 */
				getMatrix(): android.graphics.Matrix;
			}
		}
		/**
		 * Abstract interface to someone holding a display surface. Allows you to control the surface size and format, edit the pixels in the surface, and monitor changes to the surface. This interface is typically available through the SurfaceView class. 
		 */
		export class SurfaceHolder implements android.view.ISurfaceHolder {
			constructor(implementation: android.view.ISurfaceHolder);
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			static SURFACE_TYPE_NORMAL: number;
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			static SURFACE_TYPE_HARDWARE: number;
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			static SURFACE_TYPE_GPU: number;
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			static SURFACE_TYPE_PUSH_BUFFERS: number;
			/**
			 * Add a Callback interface for this holder. There can several Callback interfaces associated with a holder. 
			 * @param callback The new Callback interface.
			 */
			public addCallback(callback: android.view.SurfaceHolder.ICallback): void;
			/**
			 * Removes a previously added Callback interface from this holder. 
			 * @param callback The Callback interface to remove.
			 */
			public removeCallback(callback: android.view.SurfaceHolder.ICallback): void;
			/**
			 * Use this method to find out if the surface is in the process of being created from Callback methods. This is intended to be used with Callback#surfaceChanged. 
			 */
			public isCreating(): boolean;
			/**
			 * Sets the surface's type. this is ignored, this value is set automatically when needed.
			 */
			public setType(type: number): void;
			/**
			 * Make the surface a fixed size. It will never change from this size. When working with a SurfaceView, this must be called from the same thread running the SurfaceView's window. 
			 * @param width The surface's width.
			 * @param height The surface's height.
			 */
			public setFixedSize(width: number, height: number): void;
			/**
			 * Allow the surface to resized based on layout of its container (this is the default). When this is enabled, you should monitor Callback#surfaceChanged for changes to the size of the surface. When working with a SurfaceView, this must be called from the same thread running the SurfaceView's window.
			 */
			public setSizeFromLayout(): void;
			/**
			 * Set the desired PixelFormat of the surface. The default is OPAQUE. When working with a SurfaceView, this must be called from the same thread running the SurfaceView's window. 
			 * @param format A constant from PixelFormat.
			 */
			public setFormat(format: number): void;
			/**
			 * Enable or disable option to keep the screen turned on while this surface is displayed. The default is false, allowing it to turn off. This is safe to call from any thread. 
			 * @param screenOn Set to true to force the screen to stay on, false
			 */
			public setKeepScreenOn(screenOn: boolean): void;
			/**
			 * Start editing the pixels in the surface. The returned Canvas can be used to draw into the surface's bitmap. A null is returned if the surface has not been created or otherwise cannot be edited. You will usually need to implement Callback#surfaceCreated Callback.surfaceCreated to find out when the Surface is available for use. 
			 */
			public lockCanvas(): android.graphics.Canvas;
			/**
			 * Just like #lockCanvas() but allows specification of a dirty rectangle. Every pixel within that rectangle must be written; however pixels outside the dirty rectangle will be preserved by the next call to lockCanvas(). android.view.SurfaceHolder#lockCanvas 
			 * @param dirty Area of the Surface that will be modified.
			 */
			public lockCanvas(dirty: android.graphics.Rect): android.graphics.Canvas;
			/**
			 * Finish editing pixels in the surface. After this call, the surface's current pixels will be shown on the screen, but its content is lost, in particular there is no guarantee that the content of the Surface will remain unchanged when lockCanvas() is called again. #lockCanvas()
			 * @param canvas The Canvas previously returned by lockCanvas().
			 */
			public unlockCanvasAndPost(canvas: android.graphics.Canvas): void;
			/**
			 * Retrieve the current size of the surface. Note: do not modify the returned Rect. This is only safe to call from the thread of SurfaceView's window, or while inside of #lockCanvas(). 
			 */
			public getSurfaceFrame(): android.graphics.Rect;
			/**
			 * Direct access to the surface object. The Surface may not always be available -- for example when using a SurfaceView the holder's Surface is not created until the view has been attached to the window manager and performed a layout in order to determine the dimensions and screen position of the Surface. You will thus usually need to implement Callback#surfaceCreated Callback.surfaceCreated to find out when the Surface is available for use. 
			 */
			public getSurface(): android.view.Surface;
		}
		export module SurfaceHolder {
			/**
			 * A client may implement this interface to receive information about changes to the surface. When used with a SurfaceView, the Surface being held is only available between calls to #surfaceCreated(SurfaceHolder) and #surfaceDestroyed(SurfaceHolder). The Callback is set with SurfaceHolder#addCallback SurfaceHolder.addCallback method.
			 */
			export class Callback implements android.view.SurfaceHolder.ICallback {
				constructor(implementation: android.view.SurfaceHolder.ICallback);
				/**
				 * This is called immediately after the surface is first created. Implementations of this should start up whatever rendering code they desire. Note that only one thread can ever draw into a Surface, so you should not draw into the Surface here if your normal rendering will be in another thread. 
				 * @param holder The SurfaceHolder whose surface is being created.
				 */
				public surfaceCreated(holder: android.view.ISurfaceHolder): void;
				/**
				 * This is called immediately after any structural changes (format or size) have been made to the surface. You should at this point update the imagery in the surface. This method is always called at least once, after #surfaceCreated. 
				 * @param holder The SurfaceHolder whose surface has changed.
				 * @param format The new PixelFormat of the surface.
				 * @param width The new width of the surface.
				 * @param height The new height of the surface.
				 */
				public surfaceChanged(holder: android.view.ISurfaceHolder, format: number, width: number, height: number): void;
				/**
				 * This is called immediately before a surface is being destroyed. After returning from this call, you should no longer try to access this surface. If you have a rendering thread that directly accesses the surface, you must ensure that thread is no longer touching the Surface before returning from this function. 
				 * @param holder The SurfaceHolder whose surface is being destroyed.
				 */
				public surfaceDestroyed(holder: android.view.ISurfaceHolder): void;
			}
			/**
			 * A client may implement this interface to receive information about changes to the surface. When used with a SurfaceView, the Surface being held is only available between calls to #surfaceCreated(SurfaceHolder) and #surfaceDestroyed(SurfaceHolder). The Callback is set with SurfaceHolder#addCallback SurfaceHolder.addCallback method.
			 */
			interface ICallback {
				/**
				 * This is called immediately after the surface is first created. Implementations of this should start up whatever rendering code they desire. Note that only one thread can ever draw into a Surface, so you should not draw into the Surface here if your normal rendering will be in another thread. 
				 * @param holder The SurfaceHolder whose surface is being created.
				 */
				surfaceCreated(holder: android.view.ISurfaceHolder): void;
				/**
				 * This is called immediately after any structural changes (format or size) have been made to the surface. You should at this point update the imagery in the surface. This method is always called at least once, after #surfaceCreated. 
				 * @param holder The SurfaceHolder whose surface has changed.
				 * @param format The new PixelFormat of the surface.
				 * @param width The new width of the surface.
				 * @param height The new height of the surface.
				 */
				surfaceChanged(holder: android.view.ISurfaceHolder, format: number, width: number, height: number): void;
				/**
				 * This is called immediately before a surface is being destroyed. After returning from this call, you should no longer try to access this surface. If you have a rendering thread that directly accesses the surface, you must ensure that thread is no longer touching the Surface before returning from this function. 
				 * @param holder The SurfaceHolder whose surface is being destroyed.
				 */
				surfaceDestroyed(holder: android.view.ISurfaceHolder): void;
			}
			/**
			 * Additional callbacks that can be received for Callback.
			 */
			export class Callback2 implements android.view.SurfaceHolder.ICallback, android.view.SurfaceHolder.ICallback2 {
				constructor(implementation: android.view.SurfaceHolder.ICallback2);
				/**
				 * Called when the application needs to redraw the content of its surface, after it is resized or for some other reason. By not returning from here until the redraw is complete, you can ensure that the user will not see your surface in a bad state (at its new size before it has been correctly drawn that way). This will typically be preceeded by a call to #surfaceChanged.
				 * @param holder The SurfaceHolder whose surface has changed.
				 */
				public surfaceRedrawNeeded(holder: android.view.ISurfaceHolder): void;
				/**
				 * This is called immediately after the surface is first created. Implementations of this should start up whatever rendering code they desire. Note that only one thread can ever draw into a Surface, so you should not draw into the Surface here if your normal rendering will be in another thread. 
				 * @param holder The SurfaceHolder whose surface is being created.
				 */
				surfaceCreated(holder: android.view.ISurfaceHolder): void;
				/**
				 * This is called immediately after any structural changes (format or size) have been made to the surface. You should at this point update the imagery in the surface. This method is always called at least once, after #surfaceCreated. 
				 * @param holder The SurfaceHolder whose surface has changed.
				 * @param format The new PixelFormat of the surface.
				 * @param width The new width of the surface.
				 * @param height The new height of the surface.
				 */
				surfaceChanged(holder: android.view.ISurfaceHolder, format: number, width: number, height: number): void;
				/**
				 * This is called immediately before a surface is being destroyed. After returning from this call, you should no longer try to access this surface. If you have a rendering thread that directly accesses the surface, you must ensure that thread is no longer touching the Surface before returning from this function. 
				 * @param holder The SurfaceHolder whose surface is being destroyed.
				 */
				surfaceDestroyed(holder: android.view.ISurfaceHolder): void;
			}
			/**
			 * Exception that is thrown from #lockCanvas when called on a Surface whose type is SURFACE_TYPE_PUSH_BUFFERS.
			 */
			export class BadSurfaceTypeException extends java.lang.RuntimeException {
				constructor();
				constructor(name: string);
				static class: java.lang.Class<android.view.SurfaceHolder.BadSurfaceTypeException>;
			}
			/**
			 * Additional callbacks that can be received for Callback.
			 */
			interface ICallback2 extends android.view.SurfaceHolder.ICallback {
				/**
				 * Called when the application needs to redraw the content of its surface, after it is resized or for some other reason. By not returning from here until the redraw is complete, you can ensure that the user will not see your surface in a bad state (at its new size before it has been correctly drawn that way). This will typically be preceeded by a call to #surfaceChanged.
				 * @param holder The SurfaceHolder whose surface has changed.
				 */
				surfaceRedrawNeeded(holder: android.view.ISurfaceHolder): void;
				/**
				 * This is called immediately after the surface is first created. Implementations of this should start up whatever rendering code they desire. Note that only one thread can ever draw into a Surface, so you should not draw into the Surface here if your normal rendering will be in another thread. 
				 * @param holder The SurfaceHolder whose surface is being created.
				 */
				surfaceCreated(holder: android.view.ISurfaceHolder): void;
				/**
				 * This is called immediately after any structural changes (format or size) have been made to the surface. You should at this point update the imagery in the surface. This method is always called at least once, after #surfaceCreated. 
				 * @param holder The SurfaceHolder whose surface has changed.
				 * @param format The new PixelFormat of the surface.
				 * @param width The new width of the surface.
				 * @param height The new height of the surface.
				 */
				surfaceChanged(holder: android.view.ISurfaceHolder, format: number, width: number, height: number): void;
				/**
				 * This is called immediately before a surface is being destroyed. After returning from this call, you should no longer try to access this surface. If you have a rendering thread that directly accesses the surface, you must ensure that thread is no longer touching the Surface before returning from this function. 
				 * @param holder The SurfaceHolder whose surface is being destroyed.
				 */
				surfaceDestroyed(holder: android.view.ISurfaceHolder): void;
			}
		}
		/**
		 * Contains methods to standard constants used in the UI for timeouts, sizes, and distances.
		 */
		export class ViewConfiguration extends java.lang.Object {
			/**
			 *  Use android.view.ViewConfiguration#get(android.content.Context) instead.
			 */
			constructor();
			static class: java.lang.Class<android.view.ViewConfiguration>;
			/**
			 * Returns a configuration for the specified context. The configuration depends on various parameters of the context, like the dimension of the display or the density of the display.
			 * @param context The application context used to initialize the view configuration.
			 */
			public static get(context: android.content.Context): android.view.ViewConfiguration;
			public static getScrollBarSize(): number;
			public getScaledScrollBarSize(): number;
			public static getScrollBarFadeDuration(): number;
			public static getScrollDefaultDelay(): number;
			public static getFadingEdgeLength(): number;
			public getScaledFadingEdgeLength(): number;
			public static getPressedStateDuration(): number;
			public static getLongPressTimeout(): number;
			public static getKeyRepeatTimeout(): number;
			public static getKeyRepeatDelay(): number;
			public static getTapTimeout(): number;
			public static getJumpTapTimeout(): number;
			public static getDoubleTapTimeout(): number;
			public static getEdgeSlop(): number;
			public getScaledEdgeSlop(): number;
			public static getTouchSlop(): number;
			public getScaledTouchSlop(): number;
			public getScaledPagingTouchSlop(): number;
			public getScaledDoubleTapSlop(): number;
			public static getWindowTouchSlop(): number;
			public getScaledWindowTouchSlop(): number;
			public static getMinimumFlingVelocity(): number;
			public getScaledMinimumFlingVelocity(): number;
			public static getMaximumFlingVelocity(): number;
			public getScaledMaximumFlingVelocity(): number;
			/**
			 * The maximum drawing cache size expressed in bytes.
			 */
			public static getMaximumDrawingCacheSize(): number;
			/**
			 * The maximum drawing cache size expressed in bytes.
			 */
			public getScaledMaximumDrawingCacheSize(): number;
			public getScaledOverscrollDistance(): number;
			public getScaledOverflingDistance(): number;
			/**
			 * The amount of time that the zoom controls should be displayed on the screen expressed in milliseconds.
			 */
			public static getZoomControlsTimeout(): any;
			/**
			 * The amount of time a user needs to press the relevant key to bring up the global actions dialog.
			 */
			public static getGlobalActionKeyTimeout(): any;
			/**
			 * The amount of friction applied to scrolls and flings.
			 */
			public static getScrollFriction(): number;
			/**
			 * Report if the device has a permanent menu key available to the user.
			 */
			public hasPermanentMenuKey(): boolean;
		}
		export class GlobalFocusChange extends android.app.Activity implements android.view.ViewTreeObserver.IOnGlobalFocusChangeListener {
			constructor();
			mOldFocus: android.view.View;
			mNewFocus: android.view.View;
			static class: java.lang.Class<android.view.GlobalFocusChange>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			public reset(): void;
			public onGlobalFocusChanged(oldFocus: android.view.View, newFocus: android.view.View): void;
		}
		/**
		 * Helper class for receiving notifications from the SensorManager when the orientation of the device has changed. use android.view.OrientationEventListener instead. This class internally uses the OrientationEventListener.
		 */
		export class OrientationListener extends java.lang.Object implements android.hardware.ISensorListener {
			/**
			 * Creates a new OrientationListener. 
			 * @param context for the OrientationListener.
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates a new OrientationListener. 
			 * @param context for the OrientationListener.
			 * @param rate at which sensor events are processed (see also
			 */
			constructor(context: android.content.Context, rate: number);
			/**
			 * Returned from onOrientationChanged when the device orientation cannot be determined (typically when the device is in a close to flat position).
			 */
			static ORIENTATION_UNKNOWN: number;
			static class: java.lang.Class<android.view.OrientationListener>;
			/**
			 * Enables the OrientationListener so it will monitor the sensor and call #onOrientationChanged when the device orientation changes.
			 */
			public enable(): void;
			/**
			 * Disables the OrientationListener.
			 */
			public disable(): void;
			public onAccuracyChanged(sensor: number, accuracy: number): void;
			public onSensorChanged(sensor: number, values: native.Array<number>): void;
			/**
			 * Look at android.view.OrientationEventListener#onOrientationChanged for method description and usage
			 * @param orientation The new orientation of the device.
			 */
			public onOrientationChanged(orientation: number): void;
		}
		export module OrientationListener {
			export class OrientationEventListenerInternal extends android.view.OrientationEventListener {
				static class: java.lang.Class<android.view.OrientationListener.OrientationEventListenerInternal>;
				public onOrientationChanged(orientation: number): void;
			}
		}
		/**
		 * Exercise View's ability to change their visibility: GONE, INVISIBLE and VISIBLE.
		 */
		export class VisibilityCallback extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.VisibilityCallback>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		export module VisibilityCallback {
			export class MonitoredTextView extends android.widget.TextView {
				constructor(context: android.content.Context);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
				static class: java.lang.Class<android.view.VisibilityCallback.MonitoredTextView>;
				public getLastVisChangedView(): android.view.View;
				public getLastChangedVisibility(): number;
				protected onVisibilityChanged(changedView: android.view.View, visibility: number): void;
			}
		}
		/**
		 * Interface for managing the items in a menu.
		 */
		export class Menu implements android.view.IMenu {
			constructor(implementation: android.view.IMenu);
			/**
			 * Value to use for group and item identifier integers when you don't care about them.
			 */
			static NONE: number;
			/**
			 * First value for group and item identifier integers.
			 */
			static FIRST: number;
			/**
			 * Category code for the order integer for items/groups that are part of a container -- or/add this with your base value.
			 */
			static CATEGORY_CONTAINER: number;
			/**
			 * Category code for the order integer for items/groups that are provided by the system -- or/add this with your base value.
			 */
			static CATEGORY_SYSTEM: number;
			/**
			 * Category code for the order integer for items/groups that are user-supplied secondary (infrequently used) options -- or/add this with your base value.
			 */
			static CATEGORY_SECONDARY: number;
			/**
			 * Category code for the order integer for items/groups that are alternative actions on the data that is currently displayed -- or/add this with your base value.
			 */
			static CATEGORY_ALTERNATIVE: number;
			/**
			 * Flag for #addIntentOptions: if set, do not automatically remove any existing menu items in the same group.
			 */
			static FLAG_APPEND_TO_GROUP: number;
			/**
			 * Flag for #performShortcut: if set, do not close the menu after executing the shortcut.
			 */
			static FLAG_PERFORM_NO_CLOSE: number;
			/**
			 * Flag for #performShortcut(int, KeyEvent, int): if set, always close the menu after executing the shortcut. Closing the menu also resets the prepared state.
			 */
			static FLAG_ALWAYS_PERFORM_CLOSE: number;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param title The text to display for the item.
			 */
			public add(title: string): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param titleRes Resource identifier of title string.
			 */
			public add(titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			public add(groupId: number, itemId: number, order: number, title: string): android.view.IMenuItem;
			/**
			 * Variation on #add(int, int, int, CharSequence) that takes a string resource identifier instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param titleRes Resource identifier of title string.
			 */
			public add(groupId: number, itemId: number, order: number, titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param title The text to display for the item.
			 */
			public addSubMenu(title: string): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param titleRes Resource identifier of title string.
			 */
			public addSubMenu(titleRes: number): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given <var>title</var> for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem().
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			public addSubMenu(groupId: number, itemId: number, order: number, title: string): android.view.ISubMenu;
			/**
			 * Variation on #addSubMenu(int, int, int, CharSequence) that takes a string resource identifier for the title instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a unique ID.
			 * @param order The order for the item. Use {@link #NONE} if you do not care about the
			 * @param titleRes Resource identifier of title string.
			 */
			public addSubMenu(groupId: number, itemId: number, order: number, titleRes: number): android.view.ISubMenu;
			/**
			 * Add a group of menu items corresponding to actions that can be performed for a particular Intent. The Intent is most often configured with a null action, the data that the current activity is working with, and includes either the Intent#CATEGORY_ALTERNATIVE or Intent#CATEGORY_SELECTED_ALTERNATIVE to find activities that have said they would like to be included as optional action. You can, however, use any Intent you want. 
			 * @param groupId The group identifier that the items should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the items. Use {@link #NONE} if you do not
			 * @param caller The current activity component name as defined by
			 * @param specifics Specific items to place first as defined by
			 * @param intent Intent describing the kinds of items to populate in the
			 * @param flags Additional options controlling how the items are added.
			 * @param outSpecificItems Optional array in which to place the menu items
			 */
			public addIntentOptions(groupId: number, itemId: number, order: number, caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number, outSpecificItems: native.Array<android.view.IMenuItem>): number;
			/**
			 * Remove the item with the given identifier.
			 * @param id The item to be removed. If there is no item with this
			 */
			public removeItem(id: number): void;
			/**
			 * Remove all items in the given group.
			 * @param groupId The group to be removed. If there are no items in this
			 */
			public removeGroup(groupId: number): void;
			/**
			 * Remove all existing items from the menu, leaving it empty as if it had just been created.
			 */
			public clear(): void;
			/**
			 * Control whether a particular group of items can show a check mark. This is similar to calling MenuItem#setCheckable on all of the menu items with the given group identifier, but in addition you can control whether this group contains a mutually-exclusive set items. This should be called after the items of the group have been added to the menu.
			 * @param group The group of items to operate on.
			 * @param checkable Set to true to allow a check mark, false to
			 * @param exclusive If set to true, only one item in this group can be
			 */
			public setGroupCheckable(group: number, checkable: boolean, exclusive: boolean): void;
			/**
			 * Show or hide all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param visible If true the items are visible, else they are hidden.
			 */
			public setGroupVisible(group: number, visible: boolean): void;
			/**
			 * Enable or disable all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param enabled If true the items will be enabled, else they will be disabled.
			 */
			public setGroupEnabled(group: number, enabled: boolean): void;
			/**
			 * Return whether the menu currently has item items that are visible.
			 */
			public hasVisibleItems(): boolean;
			/**
			 * Return the menu item with a particular identifier.
			 * @param id The identifier to find.
			 */
			public findItem(id: number): android.view.IMenuItem;
			/**
			 * Get the number of items in the menu. Note that this will change any times items are added or removed from the menu.
			 */
			public size(): number;
			/**
			 * Gets the menu item at the given index. 
			 * @param index The index of the menu item to return.
			 */
			public getItem(index: number): android.view.IMenuItem;
			/**
			 * Closes the menu, if open.
			 */
			public close(): void;
			/**
			 * Execute the menu item action associated with the given shortcut character.
			 * @param keyCode The keycode of the shortcut key.
			 * @param event Key event message.
			 * @param flags Additional option flags or 0.
			 */
			public performShortcut(keyCode: number, event: android.view.KeyEvent, flags: number): boolean;
			/**
			 * Is a keypress one of the defined shortcut keys for this window.
			 * @param keyCode the key code from {@link KeyEvent} to check.
			 * @param event the {@link KeyEvent} to use to help check.
			 */
			public isShortcutKey(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Execute the menu item action associated with the given menu identifier. 
			 * @param id Identifier associated with the menu item.
			 * @param flags Additional option flags or 0.
			 */
			public performIdentifierAction(id: number, flags: number): boolean;
			/**
			 * Control whether the menu should be running in qwerty mode (alphabetic shortcuts) or 12-key mode (numeric shortcuts). 
			 * @param isQwerty If true the menu will use alphabetic shortcuts; else it
			 */
			public setQwertyMode(isQwerty: boolean): void;
		}
		/**
		 * Abstract base class for a top-level window look and behavior policy. An instance of this class should be used as the top-level view added to the window manager. It provides standard UI policies such as a background, title area, default key processing, etc.
		 */
		export class Window extends java.lang.Object {
			constructor(context: android.content.Context);
			/**
			 * Flag for the "options panel" feature. This is enabled by default.
			 */
			static FEATURE_OPTIONS_PANEL: number;
			/**
			 * Flag for the "no title" feature, turning off the title at the top of the screen.
			 */
			static FEATURE_NO_TITLE: number;
			/**
			 * Flag for the progress indicator feature
			 */
			static FEATURE_PROGRESS: number;
			/**
			 * Flag for having an icon on the left side of the title bar
			 */
			static FEATURE_LEFT_ICON: number;
			/**
			 * Flag for having an icon on the right side of the title bar
			 */
			static FEATURE_RIGHT_ICON: number;
			/**
			 * Flag for indeterminate progress
			 */
			static FEATURE_INDETERMINATE_PROGRESS: number;
			/**
			 * Flag for the context menu. This is enabled by default.
			 */
			static FEATURE_CONTEXT_MENU: number;
			/**
			 * Flag for custom title. You cannot combine this feature with other title features.
			 */
			static FEATURE_CUSTOM_TITLE: number;
			/**
			 * Flag for enabling the Action Bar. This is enabled by default for some devices. The Action Bar replaces the title bar and provides an alternate location for an on-screen menu button on some devices.
			 */
			static FEATURE_ACTION_BAR: number;
			/**
			 * Flag for requesting an Action Bar that overlays window content. Normally an Action Bar will sit in the space above window content, but if this feature is requested along with #FEATURE_ACTION_BAR it will be layered over the window content itself. This is useful if you would like your app to have more control over how the Action Bar is displayed, such as letting application content scroll beneath an Action Bar with a transparent background or otherwise displaying a transparent/translucent Action Bar over application content.
			 */
			static FEATURE_ACTION_BAR_OVERLAY: number;
			/**
			 * Flag for specifying the behavior of action modes when an Action Bar is not present. If overlay is enabled, the action mode UI will be allowed to cover existing window content.
			 */
			static FEATURE_ACTION_MODE_OVERLAY: number;
			/**
			 * Flag for setting the progress bar's visibility to VISIBLE
			 */
			static PROGRESS_VISIBILITY_ON: number;
			/**
			 * Flag for setting the progress bar's visibility to GONE
			 */
			static PROGRESS_VISIBILITY_OFF: number;
			/**
			 * Flag for setting the progress bar's indeterminate mode on
			 */
			static PROGRESS_INDETERMINATE_ON: number;
			/**
			 * Flag for setting the progress bar's indeterminate mode off
			 */
			static PROGRESS_INDETERMINATE_OFF: number;
			/**
			 * Starting value for the (primary) progress
			 */
			static PROGRESS_START: number;
			/**
			 * Ending value for the (primary) progress
			 */
			static PROGRESS_END: number;
			/**
			 * Lowest possible value for the secondary progress
			 */
			static PROGRESS_SECONDARY_START: number;
			/**
			 * Highest possible value for the secondary progress
			 */
			static PROGRESS_SECONDARY_END: number;
			/**
			 * The ID that the main layout in the XML layout file should have.
			 */
			static ID_ANDROID_CONTENT: number;
			static class: java.lang.Class<android.view.Window>;
			/**
			 * Return the Context this window policy is running in, for retrieving resources and other information.
			 */
			public getContext(): android.content.Context;
			/**
			 * Return the android.R.styleable#Window attributes from this window's theme.
			 */
			public getWindowStyle(): android.content.res.TypedArray;
			/**
			 * Set the container for this window. If not set, the DecorWindow operates as a top-level window; otherwise, it negotiates with the container to display itself appropriately.
			 * @param container The desired containing Window.
			 */
			public setContainer(container: android.view.Window): void;
			/**
			 * Return the container for this Window.
			 */
			public getContainer(): android.view.Window;
			public hasChildren(): boolean;
			/**
			 * Set the window manager for use by this Window to, for example, display panels. This is <em>not</em> used for displaying the Window itself -- that must be done by the client.
			 * @param wm The window manager for adding new windows.
			 * @param appToken 
			 * @param appName 
			 */
			public setWindowManager(wm: android.view.IWindowManager, appToken: android.os.IIBinder, appName: string): void;
			/**
			 * Set the window manager for use by this Window to, for example, display panels. This is <em>not</em> used for displaying the Window itself -- that must be done by the client.
			 * @param wm The window manager for adding new windows.
			 * @param appToken 
			 * @param appName 
			 * @param hardwareAccelerated 
			 */
			public setWindowManager(wm: android.view.IWindowManager, appToken: android.os.IIBinder, appName: string, hardwareAccelerated: boolean): void;
			adjustLayoutParamsForSubWindow(wp: android.view.WindowManager.LayoutParams): void;
			/**
			 * Return the window manager allowing this Window to display its own windows.
			 */
			public getWindowManager(): android.view.IWindowManager;
			/**
			 * Set the Callback interface for this window, used to intercept key events and other dynamic operations in the window.
			 * @param callback The desired Callback interface.
			 */
			public setCallback(callback: android.view.Window.ICallback): void;
			/**
			 * Return the current Callback interface for this window.
			 */
			public getCallback(): android.view.Window.ICallback;
			/**
			 * Take ownership of this window's surface. The window's view hierarchy will no longer draw into the surface, though it will otherwise continue to operate (such as for receiving input events). The given SurfaceHolder callback will be used to tell you about state changes to the surface.
			 */
			public takeSurface(callback: android.view.SurfaceHolder.ICallback2): void;
			/**
			 * Take ownership of this window's InputQueue. The window will no longer read and dispatch input events from the queue; it is your responsibility to do so.
			 */
			public takeInputQueue(callback: android.view.InputQueue.ICallback): void;
			/**
			 * Return whether this window is being displayed with a floating style (based on the android.R.attr#windowIsFloating attribute in the style/theme).
			 */
			public isFloating(): boolean;
			/**
			 * Set the width and height layout parameters of the window. The default for both of these is MATCH_PARENT; you can change them to WRAP_CONTENT or an absolute value to make a window that is not full-screen.
			 * @param width The desired layout width of the window.
			 * @param height The desired layout height of the window.
			 */
			public setLayout(width: number, height: number): void;
			/**
			 * Set the gravity of the window, as per the Gravity constants. This controls how the window manager is positioned in the overall window; it is only useful when using WRAP_CONTENT for the layout width or height.
			 * @param gravity The desired gravity constant.
			 */
			public setGravity(gravity: number): void;
			/**
			 * Set the type of the window, as per the WindowManager.LayoutParams types.
			 * @param type The new window type (see WindowManager.LayoutParams).
			 */
			public setType(type: number): void;
			/**
			 * Set the format of window, as per the PixelFormat types. This overrides the default format that is selected by the Window based on its window decorations.
			 * @param format The new window format (see PixelFormat). Use
			 */
			public setFormat(format: number): void;
			/**
			 * Specify custom animations to use for the window, as per WindowManager.LayoutParams#windowAnimations WindowManager.LayoutParams.windowAnimations. Providing anything besides 0 here will override the animations the window would normally retrieve from its theme.
			 */
			public setWindowAnimations(resId: number): void;
			/**
			 * Specify an explicit soft input mode to use for the window, as per WindowManager.LayoutParams#softInputMode WindowManager.LayoutParams.softInputMode. Providing anything besides "unspecified" here will override the input mode the window would normally retrieve from its theme.
			 */
			public setSoftInputMode(mode: number): void;
			/**
			 * Convenience function to set the flag bits as specified in flags, as per #setFlags.
			 * @param flags The flag bits to be set.
			 */
			public addFlags(flags: number): void;
			/**
			 * Convenience function to clear the flag bits as specified in flags, as per #setFlags.
			 * @param flags The flag bits to be cleared.
			 */
			public clearFlags(flags: number): void;
			/**
			 * Set the flags of the window, as per the WindowManager.LayoutParams WindowManager.LayoutParams flags. 
			 * @param flags The new window flags (see WindowManager.LayoutParams).
			 * @param mask Which of the window flag bits to modify.
			 */
			public setFlags(flags: number, mask: number): void;
			/**
			 * Set the amount of dim behind the window when using WindowManager.LayoutParams#FLAG_DIM_BEHIND. This overrides the default dim amount of that is selected by the Window based on its theme.
			 * @param amount The new dim amount, from 0 for no dim to 1 for full dim.
			 */
			public setDimAmount(amount: number): void;
			/**
			 * Specify custom window attributes. <strong>PLEASE NOTE:</strong> the layout params you give here should generally be from values previously retrieved with #getAttributes(); you probably do not want to blindly create and apply your own, since this will blow away any values set by the framework that you are not interested in.
			 * @param a The new window attributes, which will completely override any
			 */
			public setAttributes(a: android.view.WindowManager.LayoutParams): void;
			/**
			 * Retrieve the current window attributes associated with this panel.
			 */
			public getAttributes(): android.view.WindowManager.LayoutParams;
			/**
			 * Return the window flags that have been explicitly set by the client, so will not be modified by #getDecorView.
			 */
			protected getForcedWindowFlags(): number;
			/**
			 * Has the app specified their own soft input mode?
			 */
			protected hasSoftInputMode(): boolean;
			/**
			 * Enable extended screen features. This must be called before setContentView(). May be called as many times as desired as long as it is before setContentView(). If not called, no extended features will be available. You can not turn off a feature once it is requested. You canot use other title features with #FEATURE_CUSTOM_TITLE.
			 * @param featureId The desired features, defined as constants by Window.
			 */
			public requestFeature(featureId: number): boolean;
			public makeActive(): void;
			public isActive(): boolean;
			/**
			 * Finds a view that was identified by the id attribute from the XML that was processed in android.app.Activity#onCreate. This will implicitly call #getDecorView for you, with all of the associated side-effects.
			 */
			public findViewById(id: number): android.view.View;
			/**
			 * Convenience for #setContentView(View, android.view.ViewGroup.LayoutParams) to set the screen content from a layout resource. The resource will be inflated, adding all top-level views to the screen.
			 * @param layoutResID Resource ID to be inflated.
			 */
			public setContentView(layoutResID: number): void;
			/**
			 * Convenience for #setContentView(View, android.view.ViewGroup.LayoutParams) set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarhcy.
			 * @param view The desired content to display.
			 */
			public setContentView(view: android.view.View): void;
			/**
			 * Set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarchy.
			 * @param view The desired content to display.
			 * @param params Layout parameters for the view.
			 */
			public setContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Variation on #setContentView(View, android.view.ViewGroup.LayoutParams) to add an additional content view to the screen. Added after any existing ones in the screen -- existing views are NOT removed.
			 * @param view The desired content to display.
			 * @param params Layout parameters for the view.
			 */
			public addContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Return the view in this Window that currently has focus, or null if there are none. Note that this does not look in any containing Window.
			 */
			public getCurrentFocus(): android.view.View;
			/**
			 * Quick access to the LayoutInflater instance that this Window retrieved from its Context.
			 */
			public getLayoutInflater(): android.view.LayoutInflater;
			public setTitle(title: string): void;
			public setTitleColor(textColor: number): void;
			public openPanel(featureId: number, event: android.view.KeyEvent): void;
			public closePanel(featureId: number): void;
			public togglePanel(featureId: number, event: android.view.KeyEvent): void;
			public invalidatePanelMenu(featureId: number): void;
			public performPanelShortcut(featureId: number, keyCode: number, event: android.view.KeyEvent, flags: number): boolean;
			public performPanelIdentifierAction(featureId: number, id: number, flags: number): boolean;
			public closeAllPanels(): void;
			public performContextMenuIdentifierAction(id: number, flags: number): boolean;
			/**
			 * Should be called when the configuration is changed. 
			 * @param newConfig The new configuration.
			 */
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * Change the background of this window to a Drawable resource. Setting the background to null will make the window be opaque. To make the window transparent, you can use an empty drawable (for instance a ColorDrawable with the color 0 or the system drawable android:drawable/empty.) 
			 * @param resid The resource identifier of a drawable resource which will be
			 */
			public setBackgroundDrawableResource(resid: number): void;
			/**
			 * Change the background of this window to a custom Drawable. Setting the background to null will make the window be opaque. To make the window transparent, you can use an empty drawable (for instance a ColorDrawable with the color 0 or the system drawable android:drawable/empty.)
			 * @param drawable The new Drawable to use for this window's background.
			 */
			public setBackgroundDrawable(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Set the value for a drawable feature of this window, from a resource identifier. You must have called requestFeauture(featureId) before calling this function.
			 * @param featureId The desired drawable feature to change, defined as a
			 * @param resId Resource identifier of the desired image.
			 */
			public setFeatureDrawableResource(featureId: number, resId: number): void;
			/**
			 * Set the value for a drawable feature of this window, from a URI. You must have called requestFeature(featureId) before calling this function.
			 * @param featureId The desired drawable feature to change. Features are
			 * @param uri The desired URI.
			 */
			public setFeatureDrawableUri(featureId: number, uri: android.net.Uri): void;
			/**
			 * Set an explicit Drawable value for feature of this window. You must have called requestFeature(featureId) before calling this function.
			 * @param featureId The desired drawable feature to change.
			 * @param drawable A Drawable object to display.
			 */
			public setFeatureDrawable(featureId: number, drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Set a custom alpha value for the given drawale feature, controlling how much the background is visible through it.
			 * @param featureId The desired drawable feature to change.
			 * @param alpha The alpha amount, 0 is completely transparent and 255 is
			 */
			public setFeatureDrawableAlpha(featureId: number, alpha: number): void;
			/**
			 * Set the integer value for a feature. The range of the value depends on the feature being set. For FEATURE_PROGRESSS, it should go from 0 to 10000. At 10000 the progress is complete and the indicator hidden.
			 * @param featureId The desired feature to change.
			 * @param value The value for the feature. The interpretation of this
			 */
			public setFeatureInt(featureId: number, value: number): void;
			/**
			 * Request that key events come to this activity. Use this if your activity has no views with focus, but the activity still wants a chance to process key events.
			 */
			public takeKeyEvents(get: boolean): void;
			/**
			 * Used by custom windows, such as Dialog, to pass the key press event further down the view hierarchy. Application developers should not need to implement or call this.
			 */
			public superDispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Used by custom windows, such as Dialog, to pass the key shortcut press event further down the view hierarchy. Application developers should not need to implement or call this.
			 */
			public superDispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Used by custom windows, such as Dialog, to pass the touch screen event further down the view hierarchy. Application developers should not need to implement or call this.
			 */
			public superDispatchTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Used by custom windows, such as Dialog, to pass the trackball event further down the view hierarchy. Application developers should not need to implement or call this.
			 */
			public superDispatchTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Used by custom windows, such as Dialog, to pass the generic motion event further down the view hierarchy. Application developers should not need to implement or call this.
			 */
			public superDispatchGenericMotionEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Retrieve the top-level window decor view (containing the standard window frame/decorations and the client's content inside of that), which can be added as a window to the window manager. 
			 */
			public getDecorView(): android.view.View;
			/**
			 * Retrieve the current decor view, but only if it has already been created; otherwise returns null. 
			 */
			public peekDecorView(): android.view.View;
			public saveHierarchyState(): android.os.Bundle;
			public restoreHierarchyState(savedInstanceState: android.os.Bundle): void;
			protected onActive(): void;
			/**
			 * Return the feature bits that are enabled. This is the set of features that were given to requestFeature(), and are being handled by this Window itself or its container. That is, it is the set of requested features that you can actually use.
			 */
			protected getFeatures(): number;
			/**
			 * Query for the availability of a certain feature. 
			 * @param feature The feature ID to check
			 */
			public hasFeature(feature: number): boolean;
			/**
			 * Return the feature bits that are being implemented by this Window. This is the set of features that were given to requestFeature(), and are being handled by only this Window itself, not by its containers.
			 */
			protected getLocalFeatures(): number;
			/**
			 * Set the default format of window, as per the PixelFormat types. This is the format that will be used unless the client specifies in explicit format with setFormat();
			 * @param format The new window format (see PixelFormat).
			 */
			protected setDefaultWindowFormat(format: number): void;
			public setChildDrawable(featureId: number, drawable: android.graphics.drawable.Drawable): void;
			public setChildInt(featureId: number, value: number): void;
			/**
			 * Is a keypress one of the defined shortcut keys for this window.
			 * @param keyCode the key code from {@link android.view.KeyEvent} to check.
			 * @param event the {@link android.view.KeyEvent} to use to help check.
			 */
			public isShortcutKey(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 *  android.app.Activity#setVolumeControlStream(int)
			 */
			public setVolumeControlStream(streamType: number): void;
			/**
			 *  android.app.Activity#getVolumeControlStream()
			 */
			public getVolumeControlStream(): number;
			/**
			 * Set extra options that will influence the UI for this window.
			 * @param uiOptions Flags specifying extra options for this window.
			 */
			public setUiOptions(uiOptions: number): void;
			/**
			 * Set extra options that will influence the UI for this window. Only the bits filtered by mask will be modified.
			 * @param uiOptions Flags specifying extra options for this window.
			 * @param mask Flags specifying which options should be modified. Others will remain unchanged.
			 */
			public setUiOptions(uiOptions: number, mask: number): void;
		}
		export module Window {
			/**
			 * API from a Window back to its caller. This allows the client to intercept key dispatching, panels and menus, etc.
			 */
			export class Callback implements android.view.Window.ICallback {
				constructor(implementation: android.view.Window.ICallback);
				/**
				 * Called to process key events. At the very least your implementation must call android.view.Window#superDispatchKeyEvent to do the standard key processing.
				 * @param event The key event.
				 */
				public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
				/**
				 * Called to process a key shortcut event. At the very least your implementation must call android.view.Window#superDispatchKeyShortcutEvent to do the standard key shortcut processing.
				 * @param event The key shortcut event.
				 */
				public dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
				/**
				 * Called to process touch screen events. At the very least your implementation must call android.view.Window#superDispatchTouchEvent to do the standard touch screen processing.
				 * @param event The touch screen event.
				 */
				public dispatchTouchEvent(event: android.view.MotionEvent): boolean;
				/**
				 * Called to process trackball events. At the very least your implementation must call android.view.Window#superDispatchTrackballEvent to do the standard trackball processing.
				 * @param event The trackball event.
				 */
				public dispatchTrackballEvent(event: android.view.MotionEvent): boolean;
				/**
				 * Called to process generic motion events. At the very least your implementation must call android.view.Window#superDispatchGenericMotionEvent to do the standard processing.
				 * @param event The generic motion event.
				 */
				public dispatchGenericMotionEvent(event: android.view.MotionEvent): boolean;
				/**
				 * Called to process population of AccessibilityEvents.
				 * @param event The event.
				 */
				public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
				/**
				 * Instantiate the view to display in the panel for 'featureId'. You can return null, in which case the default content (typically a menu) will be created for you.
				 * @param featureId Which panel is being created.
				 */
				public onCreatePanelView(featureId: number): android.view.View;
				/**
				 * Initialize the contents of the menu for panel 'featureId'. This is called if onCreatePanelView() returns null, giving you a standard menu in which you can place your items. It is only called once for the panel, the first time it is shown.
				 * @param featureId The panel being created.
				 * @param menu The menu inside the panel.
				 */
				public onCreatePanelMenu(featureId: number, menu: android.view.IMenu): boolean;
				/**
				 * Prepare a panel to be displayed. This is called right before the panel window is shown, every time it is shown.
				 * @param featureId The panel that is being displayed.
				 * @param view The View that was returned by onCreatePanelView().
				 * @param menu If onCreatePanelView() returned null, this is the Menu
				 */
				public onPreparePanel(featureId: number, view: android.view.View, menu: android.view.IMenu): boolean;
				/**
				 * Called when a panel's menu is opened by the user. This may also be called when the menu is changing from one type to another (for example, from the icon menu to the expanded menu). 
				 * @param featureId The panel that the menu is in.
				 * @param menu The menu that is opened.
				 */
				public onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
				/**
				 * Called when a panel's menu item has been selected by the user.
				 * @param featureId The panel that the menu is in.
				 * @param item The menu item that was selected.
				 */
				public onMenuItemSelected(featureId: number, item: android.view.IMenuItem): boolean;
				/**
				 * This is called whenever the current window attributes change.
				 */
				public onWindowAttributesChanged(attrs: android.view.WindowManager.LayoutParams): void;
				/**
				 * This hook is called whenever the content view of the screen changes (due to a call to Window#setContentView(View, android.view.ViewGroup.LayoutParams) Window.setContentView or Window#addContentView(View, android.view.ViewGroup.LayoutParams) Window.addContentView).
				 */
				public onContentChanged(): void;
				/**
				 * This hook is called whenever the window focus changes. See View#onWindowFocusChanged(boolean) View.onWindowFocusChanged(boolean) for more information.
				 * @param hasFocus Whether the window now has focus.
				 */
				public onWindowFocusChanged(hasFocus: boolean): void;
				/**
				 * Called when the window has been attached to the window manager. See View#onAttachedToWindow() View.onAttachedToWindow() for more information.
				 */
				public onAttachedToWindow(): void;
				/**
				 * Called when the window has been attached to the window manager. See View#onDetachedFromWindow() View.onDetachedFromWindow() for more information.
				 */
				public onDetachedFromWindow(): void;
				/**
				 * Called when a panel is being closed. If another logical subsequent panel is being opened (and this panel is being closed to make room for the subsequent panel), this method will NOT be called. 
				 * @param featureId The panel that is being displayed.
				 * @param menu If onCreatePanelView() returned null, this is the Menu
				 */
				public onPanelClosed(featureId: number, menu: android.view.IMenu): void;
				/**
				 * Called when the user signals the desire to start a search. 
				 */
				public onSearchRequested(): boolean;
				/**
				 * Called when an action mode is being started for this window. Gives the callback an opportunity to handle the action mode in its own unique and beautiful way. If this method returns null the system can choose a way to present the mode or choose not to start the mode at all.
				 * @param callback Callback to control the lifecycle of this action mode
				 */
				public onWindowStartingActionMode(callback: android.view.ActionMode.ICallback): android.view.ActionMode;
				/**
				 * Called when an action mode has been started. The appropriate mode callback method will have already been invoked.
				 * @param mode The new mode that has just been started.
				 */
				public onActionModeStarted(mode: android.view.ActionMode): void;
				/**
				 * Called when an action mode has been finished. The appropriate mode callback method will have already been invoked.
				 * @param mode The mode that was just finished.
				 */
				public onActionModeFinished(mode: android.view.ActionMode): void;
			}
			/**
			 * API from a Window back to its caller. This allows the client to intercept key dispatching, panels and menus, etc.
			 */
			interface ICallback {
				/**
				 * Called to process key events. At the very least your implementation must call android.view.Window#superDispatchKeyEvent to do the standard key processing.
				 * @param event The key event.
				 */
				dispatchKeyEvent(event: android.view.KeyEvent): boolean;
				/**
				 * Called to process a key shortcut event. At the very least your implementation must call android.view.Window#superDispatchKeyShortcutEvent to do the standard key shortcut processing.
				 * @param event The key shortcut event.
				 */
				dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
				/**
				 * Called to process touch screen events. At the very least your implementation must call android.view.Window#superDispatchTouchEvent to do the standard touch screen processing.
				 * @param event The touch screen event.
				 */
				dispatchTouchEvent(event: android.view.MotionEvent): boolean;
				/**
				 * Called to process trackball events. At the very least your implementation must call android.view.Window#superDispatchTrackballEvent to do the standard trackball processing.
				 * @param event The trackball event.
				 */
				dispatchTrackballEvent(event: android.view.MotionEvent): boolean;
				/**
				 * Called to process generic motion events. At the very least your implementation must call android.view.Window#superDispatchGenericMotionEvent to do the standard processing.
				 * @param event The generic motion event.
				 */
				dispatchGenericMotionEvent(event: android.view.MotionEvent): boolean;
				/**
				 * Called to process population of AccessibilityEvents.
				 * @param event The event.
				 */
				dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
				/**
				 * Instantiate the view to display in the panel for 'featureId'. You can return null, in which case the default content (typically a menu) will be created for you.
				 * @param featureId Which panel is being created.
				 */
				onCreatePanelView(featureId: number): android.view.View;
				/**
				 * Initialize the contents of the menu for panel 'featureId'. This is called if onCreatePanelView() returns null, giving you a standard menu in which you can place your items. It is only called once for the panel, the first time it is shown.
				 * @param featureId The panel being created.
				 * @param menu The menu inside the panel.
				 */
				onCreatePanelMenu(featureId: number, menu: android.view.IMenu): boolean;
				/**
				 * Prepare a panel to be displayed. This is called right before the panel window is shown, every time it is shown.
				 * @param featureId The panel that is being displayed.
				 * @param view The View that was returned by onCreatePanelView().
				 * @param menu If onCreatePanelView() returned null, this is the Menu
				 */
				onPreparePanel(featureId: number, view: android.view.View, menu: android.view.IMenu): boolean;
				/**
				 * Called when a panel's menu is opened by the user. This may also be called when the menu is changing from one type to another (for example, from the icon menu to the expanded menu). 
				 * @param featureId The panel that the menu is in.
				 * @param menu The menu that is opened.
				 */
				onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
				/**
				 * Called when a panel's menu item has been selected by the user.
				 * @param featureId The panel that the menu is in.
				 * @param item The menu item that was selected.
				 */
				onMenuItemSelected(featureId: number, item: android.view.IMenuItem): boolean;
				/**
				 * This is called whenever the current window attributes change.
				 */
				onWindowAttributesChanged(attrs: android.view.WindowManager.LayoutParams): void;
				/**
				 * This hook is called whenever the content view of the screen changes (due to a call to Window#setContentView(View, android.view.ViewGroup.LayoutParams) Window.setContentView or Window#addContentView(View, android.view.ViewGroup.LayoutParams) Window.addContentView).
				 */
				onContentChanged(): void;
				/**
				 * This hook is called whenever the window focus changes. See View#onWindowFocusChanged(boolean) View.onWindowFocusChanged(boolean) for more information.
				 * @param hasFocus Whether the window now has focus.
				 */
				onWindowFocusChanged(hasFocus: boolean): void;
				/**
				 * Called when the window has been attached to the window manager. See View#onAttachedToWindow() View.onAttachedToWindow() for more information.
				 */
				onAttachedToWindow(): void;
				/**
				 * Called when the window has been attached to the window manager. See View#onDetachedFromWindow() View.onDetachedFromWindow() for more information.
				 */
				onDetachedFromWindow(): void;
				/**
				 * Called when a panel is being closed. If another logical subsequent panel is being opened (and this panel is being closed to make room for the subsequent panel), this method will NOT be called. 
				 * @param featureId The panel that is being displayed.
				 * @param menu If onCreatePanelView() returned null, this is the Menu
				 */
				onPanelClosed(featureId: number, menu: android.view.IMenu): void;
				/**
				 * Called when the user signals the desire to start a search. 
				 */
				onSearchRequested(): boolean;
				/**
				 * Called when an action mode is being started for this window. Gives the callback an opportunity to handle the action mode in its own unique and beautiful way. If this method returns null the system can choose a way to present the mode or choose not to start the mode at all.
				 * @param callback Callback to control the lifecycle of this action mode
				 */
				onWindowStartingActionMode(callback: android.view.ActionMode.ICallback): android.view.ActionMode;
				/**
				 * Called when an action mode has been started. The appropriate mode callback method will have already been invoked.
				 * @param mode The new mode that has just been started.
				 */
				onActionModeStarted(mode: android.view.ActionMode): void;
				/**
				 * Called when an action mode has been finished. The appropriate mode callback method will have already been invoked.
				 * @param mode The mode that was just finished.
				 */
				onActionModeFinished(mode: android.view.ActionMode): void;
			}
		}
		/**
		 * Interface for managing the items in a menu.
		 */
		interface IMenu {
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param title The text to display for the item.
			 */
			add(title: string): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param titleRes Resource identifier of title string.
			 */
			add(titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			add(groupId: number, itemId: number, order: number, title: string): android.view.IMenuItem;
			/**
			 * Variation on #add(int, int, int, CharSequence) that takes a string resource identifier instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param titleRes Resource identifier of title string.
			 */
			add(groupId: number, itemId: number, order: number, titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param title The text to display for the item.
			 */
			addSubMenu(title: string): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(titleRes: number): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given <var>title</var> for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem().
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, title: string): android.view.ISubMenu;
			/**
			 * Variation on #addSubMenu(int, int, int, CharSequence) that takes a string resource identifier for the title instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a unique ID.
			 * @param order The order for the item. Use {@link #NONE} if you do not care about the
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, titleRes: number): android.view.ISubMenu;
			/**
			 * Add a group of menu items corresponding to actions that can be performed for a particular Intent. The Intent is most often configured with a null action, the data that the current activity is working with, and includes either the Intent#CATEGORY_ALTERNATIVE or Intent#CATEGORY_SELECTED_ALTERNATIVE to find activities that have said they would like to be included as optional action. You can, however, use any Intent you want. 
			 * @param groupId The group identifier that the items should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the items. Use {@link #NONE} if you do not
			 * @param caller The current activity component name as defined by
			 * @param specifics Specific items to place first as defined by
			 * @param intent Intent describing the kinds of items to populate in the
			 * @param flags Additional options controlling how the items are added.
			 * @param outSpecificItems Optional array in which to place the menu items
			 */
			addIntentOptions(groupId: number, itemId: number, order: number, caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number, outSpecificItems: native.Array<android.view.IMenuItem>): number;
			/**
			 * Remove the item with the given identifier.
			 * @param id The item to be removed. If there is no item with this
			 */
			removeItem(id: number): void;
			/**
			 * Remove all items in the given group.
			 * @param groupId The group to be removed. If there are no items in this
			 */
			removeGroup(groupId: number): void;
			/**
			 * Remove all existing items from the menu, leaving it empty as if it had just been created.
			 */
			clear(): void;
			/**
			 * Control whether a particular group of items can show a check mark. This is similar to calling MenuItem#setCheckable on all of the menu items with the given group identifier, but in addition you can control whether this group contains a mutually-exclusive set items. This should be called after the items of the group have been added to the menu.
			 * @param group The group of items to operate on.
			 * @param checkable Set to true to allow a check mark, false to
			 * @param exclusive If set to true, only one item in this group can be
			 */
			setGroupCheckable(group: number, checkable: boolean, exclusive: boolean): void;
			/**
			 * Show or hide all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param visible If true the items are visible, else they are hidden.
			 */
			setGroupVisible(group: number, visible: boolean): void;
			/**
			 * Enable or disable all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param enabled If true the items will be enabled, else they will be disabled.
			 */
			setGroupEnabled(group: number, enabled: boolean): void;
			/**
			 * Return whether the menu currently has item items that are visible.
			 */
			hasVisibleItems(): boolean;
			/**
			 * Return the menu item with a particular identifier.
			 * @param id The identifier to find.
			 */
			findItem(id: number): android.view.IMenuItem;
			/**
			 * Get the number of items in the menu. Note that this will change any times items are added or removed from the menu.
			 */
			size(): number;
			/**
			 * Gets the menu item at the given index. 
			 * @param index The index of the menu item to return.
			 */
			getItem(index: number): android.view.IMenuItem;
			/**
			 * Closes the menu, if open.
			 */
			close(): void;
			/**
			 * Execute the menu item action associated with the given shortcut character.
			 * @param keyCode The keycode of the shortcut key.
			 * @param event Key event message.
			 * @param flags Additional option flags or 0.
			 */
			performShortcut(keyCode: number, event: android.view.KeyEvent, flags: number): boolean;
			/**
			 * Is a keypress one of the defined shortcut keys for this window.
			 * @param keyCode the key code from {@link KeyEvent} to check.
			 * @param event the {@link KeyEvent} to use to help check.
			 */
			isShortcutKey(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Execute the menu item action associated with the given menu identifier. 
			 * @param id Identifier associated with the menu item.
			 * @param flags Additional option flags or 0.
			 */
			performIdentifierAction(id: number, flags: number): boolean;
			/**
			 * Control whether the menu should be running in qwerty mode (alphabetic shortcuts) or 12-key mode (numeric shortcuts). 
			 * @param isQwerty If true the menu will use alphabetic shortcuts; else it
			 */
			setQwertyMode(isQwerty: boolean): void;
		}
		export module IMenu {
			/**
			 * Value to use for group and item identifier integers when you don't care about them.
			 */
			var NONE: number;
			/**
			 * First value for group and item identifier integers.
			 */
			var FIRST: number;
			/**
			 * Category code for the order integer for items/groups that are part of a container -- or/add this with your base value.
			 */
			var CATEGORY_CONTAINER: number;
			/**
			 * Category code for the order integer for items/groups that are provided by the system -- or/add this with your base value.
			 */
			var CATEGORY_SYSTEM: number;
			/**
			 * Category code for the order integer for items/groups that are user-supplied secondary (infrequently used) options -- or/add this with your base value.
			 */
			var CATEGORY_SECONDARY: number;
			/**
			 * Category code for the order integer for items/groups that are alternative actions on the data that is currently displayed -- or/add this with your base value.
			 */
			var CATEGORY_ALTERNATIVE: number;
			/**
			 * Flag for #addIntentOptions: if set, do not automatically remove any existing menu items in the same group.
			 */
			var FLAG_APPEND_TO_GROUP: number;
			/**
			 * Flag for #performShortcut: if set, do not close the menu after executing the shortcut.
			 */
			var FLAG_PERFORM_NO_CLOSE: number;
			/**
			 * Flag for #performShortcut(int, KeyEvent, int): if set, always close the menu after executing the shortcut. Closing the menu also resets the prepared state.
			 */
			var FLAG_ALWAYS_PERFORM_CLOSE: number;
		}
		/**
		 * The algorithm used for finding the next focusable view in a given direction from a view that currently has focus.
		 */
		export class FocusFinder extends java.lang.Object {
			static class: java.lang.Class<android.view.FocusFinder>;
			/**
			 * Get the focus finder for this thread.
			 */
			public static getInstance(): android.view.FocusFinder;
			/**
			 * Find the next view to take focus in root's descendants, starting from the view that currently is focused.
			 * @param root Contains focused. Cannot be null.
			 * @param focused Has focus now.
			 * @param direction Direction to look.
			 */
			public findNextFocus(root: android.view.ViewGroup, focused: android.view.View, direction: number): android.view.View;
			/**
			 * Find the next view to take focus in root's descendants, searching from a particular rectangle in root's coordinates.
			 * @param root Contains focusedRect. Cannot be null.
			 * @param focusedRect The starting point of the search.
			 * @param direction Direction to look.
			 */
			public findNextFocusFromRect(root: android.view.ViewGroup, focusedRect: android.graphics.Rect, direction: number): android.view.View;
			findNextFocusInAbsoluteDirection(focusables: java.util.ArrayList<android.view.View>, root: android.view.ViewGroup, focused: android.view.View, focusedRect: android.graphics.Rect, direction: number): android.view.View;
			/**
			 * Is rect1 a better candidate than rect2 for a focus search in a particular direction from a source rect? This is the core routine that determines the order of focus searching.
			 * @param direction the direction (up, down, left, right)
			 * @param source The source we are searching from
			 * @param rect1 The candidate rectangle
			 * @param rect2 The current best candidate.
			 */
			isBetterCandidate(direction: number, source: android.graphics.Rect, rect1: android.graphics.Rect, rect2: android.graphics.Rect): boolean;
			/**
			 * One rectangle may be another candidate than another by virtue of being exclusively in the beam of the source rect.
			 */
			beamBeats(direction: number, source: android.graphics.Rect, rect1: android.graphics.Rect, rect2: android.graphics.Rect): boolean;
			/**
			 * Fudge-factor opportunity: how to calculate distance given major and minor axis distances. Warning: this fudge factor is finely tuned, be sure to run all focus tests if you dare tweak it.
			 */
			getWeightedDistanceFor(majorAxisDistance: number, minorAxisDistance: number): number;
			/**
			 * Is destRect a candidate for the next focus given the direction? This checks whether the dest is at least partially to the direction of (e.g left of) from source.
			 */
			isCandidate(srcRect: android.graphics.Rect, destRect: android.graphics.Rect, direction: number): boolean;
			/**
			 * Do the "beams" w.r.t the given direction's axis of rect1 and rect2 overlap?
			 * @param direction the direction (up, down, left, right)
			 * @param rect1 The first rectangle
			 * @param rect2 The second rectangle
			 */
			beamsOverlap(direction: number, rect1: android.graphics.Rect, rect2: android.graphics.Rect): boolean;
			/**
			 * e.g for left, is 'to left of'
			 */
			isToDirectionOf(direction: number, src: android.graphics.Rect, dest: android.graphics.Rect): boolean;
			static majorAxisDistance(direction: number, source: android.graphics.Rect, dest: android.graphics.Rect): number;
			static majorAxisDistanceRaw(direction: number, source: android.graphics.Rect, dest: android.graphics.Rect): number;
			static majorAxisDistanceToFarEdge(direction: number, source: android.graphics.Rect, dest: android.graphics.Rect): number;
			static majorAxisDistanceToFarEdgeRaw(direction: number, source: android.graphics.Rect, dest: android.graphics.Rect): number;
			/**
			 * Find the distance on the minor axis w.r.t the direction to the nearest edge of the destination rectangle.
			 * @param direction the direction (up, down, left, right)
			 * @param source The source rect.
			 * @param dest The destination rect.
			 */
			static minorAxisDistance(direction: number, source: android.graphics.Rect, dest: android.graphics.Rect): number;
			/**
			 * Find the nearest touchable view to the specified view. 
			 * @param root The root of the tree in which to search
			 * @param x X coordinate from which to start the search
			 * @param y Y coordinate from which to start the search
			 * @param direction Direction to look
			 * @param deltas Offset from the <x, y> to the edge of the nearest view. Note that this array
			 */
			public findNearestTouchable(root: android.view.ViewGroup, x: number, y: number, direction: number, deltas: native.Array<number>): android.view.View;
		}
		export module FocusFinder {
			/**
			 * Sorts views according to their visual layout and geometry for default tab order. This is used for sequential focus traversal.
			 */
			export class SequentialFocusComparator extends java.lang.Object {
				static class: java.lang.Class<android.view.FocusFinder.SequentialFocusComparator>;
				public recycle(): void;
				public setRoot(root: android.view.ViewGroup): void;
				public compare(first: android.view.View, second: android.view.View): number;
			}
		}
		/**
		 * Describes the capabilities of a particular input device.
		 */
		export class InputDevice extends java.lang.Object implements android.os.IParcelable {
			/**
			 * A mask for input source classes. Each distinct input source constant has one or more input source class bits set to specify the desired interpretation for its input events.
			 */
			static SOURCE_CLASS_MASK: number;
			/**
			 * The input source has buttons or keys. Examples: #SOURCE_KEYBOARD, #SOURCE_DPAD. A KeyEvent should be interpreted as a button or key press. Use #getKeyCharacterMap to query the device's button and key mappings.
			 */
			static SOURCE_CLASS_BUTTON: number;
			/**
			 * The input source is a pointing device associated with a display. Examples: #SOURCE_TOUCHSCREEN, #SOURCE_MOUSE. A MotionEvent should be interpreted as absolute coordinates in display units according to the View hierarchy. Pointer down/up indicated when the finger touches the display or when the selection button is pressed/released. Use #getMotionRange to query the range of the pointing device. Some devices permit touches outside the display area so the effective range may be somewhat smaller or larger than the actual display size.
			 */
			static SOURCE_CLASS_POINTER: number;
			/**
			 * The input source is a trackball navigation device. Examples: #SOURCE_TRACKBALL. A MotionEvent should be interpreted as relative movements in device-specific units used for navigation purposes. Pointer down/up indicates when the selection button is pressed/released. Use #getMotionRange to query the range of motion.
			 */
			static SOURCE_CLASS_TRACKBALL: number;
			/**
			 * The input source is an absolute positioning device not associated with a display (unlike #SOURCE_CLASS_POINTER). A MotionEvent should be interpreted as absolute coordinates in device-specific surface units. Use #getMotionRange to query the range of positions.
			 */
			static SOURCE_CLASS_POSITION: number;
			/**
			 * The input source is a joystick.
			 */
			static SOURCE_CLASS_JOYSTICK: number;
			/**
			 * The input source is unknown.
			 */
			static SOURCE_UNKNOWN: number;
			/**
			 * The input source is a keyboard.
			 */
			static SOURCE_KEYBOARD: number;
			/**
			 * The input source is a DPad. #SOURCE_CLASS_BUTTON
			 */
			static SOURCE_DPAD: number;
			/**
			 * The input source is a game pad. (It may also be a #SOURCE_JOYSTICK).
			 */
			static SOURCE_GAMEPAD: number;
			/**
			 * The input source is a touch screen pointing device. #SOURCE_CLASS_POINTER
			 */
			static SOURCE_TOUCHSCREEN: number;
			/**
			 * The input source is a mouse pointing device. This code is also used for other mouse-like pointing devices such as trackpads and trackpoints. #SOURCE_CLASS_POINTER
			 */
			static SOURCE_MOUSE: number;
			/**
			 * The input source is a stylus pointing device.
			 */
			static SOURCE_STYLUS: number;
			/**
			 * The input source is a trackball. #SOURCE_CLASS_TRACKBALL
			 */
			static SOURCE_TRACKBALL: number;
			/**
			 * The input source is a touch pad or digitizer tablet that is not associated with a display (unlike #SOURCE_TOUCHSCREEN). #SOURCE_CLASS_POSITION
			 */
			static SOURCE_TOUCHPAD: number;
			/**
			 * The input source is a joystick. (It may also be a #SOURCE_GAMEPAD).
			 */
			static SOURCE_JOYSTICK: number;
			/**
			 * A special input source constant that is used when filtering input devices to match devices that provide any type of input source.
			 */
			static SOURCE_ANY: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_X. #getMotionRange Use MotionEvent#AXIS_X instead.
			 */
			static MOTION_RANGE_X: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_Y. #getMotionRange Use MotionEvent#AXIS_Y instead.
			 */
			static MOTION_RANGE_Y: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_PRESSURE. #getMotionRange Use MotionEvent#AXIS_PRESSURE instead.
			 */
			static MOTION_RANGE_PRESSURE: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_SIZE. #getMotionRange Use MotionEvent#AXIS_SIZE instead.
			 */
			static MOTION_RANGE_SIZE: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_TOUCH_MAJOR. #getMotionRange Use MotionEvent#AXIS_TOUCH_MAJOR instead.
			 */
			static MOTION_RANGE_TOUCH_MAJOR: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_TOUCH_MINOR. #getMotionRange Use MotionEvent#AXIS_TOUCH_MINOR instead.
			 */
			static MOTION_RANGE_TOUCH_MINOR: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_TOOL_MAJOR. #getMotionRange Use MotionEvent#AXIS_TOOL_MAJOR instead.
			 */
			static MOTION_RANGE_TOOL_MAJOR: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_TOOL_MINOR. #getMotionRange Use MotionEvent#AXIS_TOOL_MINOR instead.
			 */
			static MOTION_RANGE_TOOL_MINOR: number;
			/**
			 * Constant for retrieving the range of values for MotionEvent#AXIS_ORIENTATION. #getMotionRange Use MotionEvent#AXIS_ORIENTATION instead.
			 */
			static MOTION_RANGE_ORIENTATION: number;
			/**
			 * There is no keyboard.
			 */
			static KEYBOARD_TYPE_NONE: number;
			/**
			 * The keyboard is not fully alphabetic. It may be a numeric keypad or an assortment of buttons that are not mapped as alphabetic keys suitable for text input.
			 */
			static KEYBOARD_TYPE_NON_ALPHABETIC: number;
			/**
			 * The keyboard supports a complement of alphabetic keys.
			 */
			static KEYBOARD_TYPE_ALPHABETIC: number;
			static CREATOR: android.os.Parcelable.ICreator<android.view.InputDevice>;
			static class: java.lang.Class<android.view.InputDevice>;
			/**
			 * Gets information about the input device with the specified id.
			 * @param id The device id.
			 */
			public static getDevice(id: number): android.view.InputDevice;
			/**
			 * Gets the ids of all input devices in the system.
			 */
			public static getDeviceIds(): native.Array<number>;
			/**
			 * Gets the input device id.
			 */
			public getId(): number;
			/**
			 * Gets the input device descriptor, which is a stable identifier for an input device.
			 */
			public getDescriptor(): string;
			/**
			 * Returns true if the device is a virtual input device rather than a real one, such as the virtual keyboard (see KeyCharacterMap#VIRTUAL_KEYBOARD).
			 */
			public isVirtual(): boolean;
			/**
			 * Gets the name of this input device.
			 */
			public getName(): string;
			/**
			 * Gets the input sources supported by this input device as a combined bitfield.
			 */
			public getSources(): number;
			/**
			 * Gets the keyboard type.
			 */
			public getKeyboardType(): number;
			/**
			 * Gets the key character map associated with this input device.
			 */
			public getKeyCharacterMap(): android.view.KeyCharacterMap;
			/**
			 * Gets information about the range of values for a particular MotionEvent axis. If the device supports multiple sources, the same axis may have different meanings for each source. Returns information about the first axis found for any source. To obtain information about the axis for a specific source, use #getMotionRange(int, int).
			 * @param axis The axis constant.
			 */
			public getMotionRange(axis: number): android.view.InputDevice.MotionRange;
			/**
			 * Gets information about the range of values for a particular MotionEvent axis used by a particular source on the device. If the device supports multiple sources, the same axis may have different meanings for each source.
			 * @param axis The axis constant.
			 * @param source The source for which to return information.
			 */
			public getMotionRange(axis: number, source: number): android.view.InputDevice.MotionRange;
			/**
			 * Gets the ranges for all axes supported by the device.
			 */
			public getMotionRanges(): java.util.IList<android.view.InputDevice.MotionRange>;
			/**
			 * Gets the vibrator service associated with the device, if there is one. Even if the device does not have a vibrator, the result is never null. Use Vibrator#hasVibrator to determine whether a vibrator is present.
			 */
			public getVibrator(): android.os.Vibrator;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			public describeContents(): number;
			public toString(): string;
		}
		export module InputDevice {
			/**
			 * Provides information about the range of values for a particular MotionEvent axis.
			 */
			export class MotionRange extends java.lang.Object {
				static class: java.lang.Class<android.view.InputDevice.MotionRange>;
				/**
				 * Gets the axis id.
				 */
				public getAxis(): number;
				/**
				 * Gets the source for which the axis is defined.
				 */
				public getSource(): number;
				/**
				 * Gets the inclusive minimum value for the axis.
				 */
				public getMin(): number;
				/**
				 * Gets the inclusive maximum value for the axis.
				 */
				public getMax(): number;
				/**
				 * Gets the range of the axis (difference between maximum and minimum).
				 */
				public getRange(): number;
				/**
				 * Gets the extent of the center flat position with respect to this axis.
				 */
				public getFlat(): number;
				/**
				 * Gets the error tolerance for input device measurements with respect to this axis.
				 */
				public getFuzz(): number;
			}
		}
		export module inputmethod {
			export class ComposingText extends java.lang.Object implements android.text.INoCopySpan {
				static class: java.lang.Class<android.view.inputmethod.ComposingText>;
			}
			/**
			 * This class is used to specify meta information of a subtype contained in an input method editor (IME). Subtype can describe locale (e.g. en_US, fr_FR...) and mode (e.g. voice, keyboard...), and is used for IME switch and settings. The input method subtype allows the system to bring up the specified subtype of the designated IME directly.
			 */
			export class InputMethodSubtype extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor with no subtype ID specified.
				 * @param nameId Resource ID of the subtype name string. The string resource may have exactly
				 * @param iconId Resource ID of the subtype icon drawable.
				 * @param locale The locale supported by the subtype
				 * @param mode The mode supported by the subtype
				 * @param extraValue The extra value of the subtype. This string is free-form, but the API
				 * @param isAuxiliary true when this subtype is auxiliary, false otherwise. An auxiliary
				 * @param overridesImplicitlyEnabledSubtype true when this subtype should be enabled by default
				 */
				constructor(nameId: number, iconId: number, locale: string, mode: string, extraValue: string, isAuxiliary: boolean, overridesImplicitlyEnabledSubtype: boolean);
				/**
				 * Constructor.
				 * @param nameId Resource ID of the subtype name string. The string resource may have exactly
				 * @param iconId Resource ID of the subtype icon drawable.
				 * @param locale The locale supported by the subtype
				 * @param mode The mode supported by the subtype
				 * @param extraValue The extra value of the subtype. This string is free-form, but the API
				 * @param isAuxiliary true when this subtype is auxiliary, false otherwise. An auxiliary
				 * @param overridesImplicitlyEnabledSubtype true when this subtype should be enabled by default
				 * @param id The unique ID for the subtype. The input method framework keeps track of enabled
				 */
				constructor(nameId: number, iconId: number, locale: string, mode: string, extraValue: string, isAuxiliary: boolean, overridesImplicitlyEnabledSubtype: boolean, id: number);
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.InputMethodSubtype>;
				static class: java.lang.Class<android.view.inputmethod.InputMethodSubtype>;
				public getNameResId(): number;
				public getIconResId(): number;
				public getLocale(): string;
				public getMode(): string;
				public getExtraValue(): string;
				public isAuxiliary(): boolean;
				public overridesImplicitlyEnabledSubtype(): boolean;
				/**
				 * @param context Context will be used for getting Locale and PackageManager.
				 * @param packageName The package name of the IME
				 * @param appInfo The application info of the IME
				 */
				public getDisplayName(context: android.content.Context, packageName: string, appInfo: android.content.pm.ApplicationInfo): string;
				/**
				 * The string of ExtraValue in subtype should be defined as follows: example: key0,key1=value1,key2,key3,key4=value4
				 * @param key The key of extra value
				 */
				public containsExtraValueKey(key: string): boolean;
				/**
				 * The string of ExtraValue in subtype should be defined as follows: example: key0,key1=value1,key2,key3,key4=value4
				 * @param key The key of extra value
				 */
				public getExtraValueOf(key: string): string;
				public hashCode(): number;
				public equals(o: any): boolean;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, parcelableFlags: number): void;
			}
			export class InputConnectionWrapper extends java.lang.Object implements android.view.inputmethod.IInputConnection {
				constructor(target: android.view.inputmethod.IInputConnection, mutable: boolean);
				static class: java.lang.Class<android.view.inputmethod.InputConnectionWrapper>;
				/**
				 * Change the target of the input connection.
				 */
				public setTarget(target: android.view.inputmethod.IInputConnection): void;
				public getTextBeforeCursor(n: number, flags: number): string;
				public getTextAfterCursor(n: number, flags: number): string;
				public getSelectedText(flags: number): string;
				public getCursorCapsMode(reqModes: number): number;
				public getExtractedText(request: android.view.inputmethod.ExtractedTextRequest, flags: number): android.view.inputmethod.ExtractedText;
				public deleteSurroundingText(beforeLength: number, afterLength: number): boolean;
				public setComposingText(text: string, newCursorPosition: number): boolean;
				public setComposingRegion(start: number, end: number): boolean;
				public finishComposingText(): boolean;
				public commitText(text: string, newCursorPosition: number): boolean;
				public commitCompletion(text: android.view.inputmethod.CompletionInfo): boolean;
				public commitCorrection(correctionInfo: android.view.inputmethod.CorrectionInfo): boolean;
				public setSelection(start: number, end: number): boolean;
				public performEditorAction(editorAction: number): boolean;
				public performContextMenuAction(id: number): boolean;
				public beginBatchEdit(): boolean;
				public endBatchEdit(): boolean;
				public sendKeyEvent(event: android.view.KeyEvent): boolean;
				public clearMetaKeyStates(states: number): boolean;
				public reportFullscreenMode(enabled: boolean): boolean;
				public performPrivateCommand(action: string, data: android.os.Bundle): boolean;
			}
			/**
			 * The InputMethodSession interface provides the per-client functionality of InputMethod that is safe to expose to applications. 
			 */
			export class InputMethodSession implements android.view.inputmethod.IInputMethodSession {
				constructor(implementation: android.view.inputmethod.IInputMethodSession);
				/**
				 * This method is called when the application would like to stop receiving text input.
				 */
				public finishInput(): void;
				/**
				 * This method is called when the selection or cursor in the current target input field has changed. 
				 * @param oldSelStart The previous text offset of the cursor selection
				 * @param oldSelEnd The previous text offset of the cursor selection
				 * @param newSelStart The new text offset of the cursor selection
				 * @param newSelEnd The new text offset of the cursor selection
				 * @param candidatesStart The text offset of the current candidate
				 * @param candidatesEnd The text offset of the current candidate
				 */
				public updateSelection(oldSelStart: number, oldSelEnd: number, newSelStart: number, newSelEnd: number, candidatesStart: number, candidatesEnd: number): void;
				/**
				 * This method is called when the user tapped a text view. IMEs can't rely on this method being called because this was not part of the original IME protocol, so applications with custom text editing written before this method appeared will not call to inform the IME of this interaction.
				 * @param focusChanged true if the user changed the focused view by this click.
				 */
				public viewClicked(focusChanged: boolean): void;
				/**
				 * This method is called when cursor location of the target input field has changed within its window. This is not normally called, but will only be reported if requested by the input method. 
				 * @param newCursor The rectangle of the cursor currently being shown in
				 */
				public updateCursor(newCursor: android.graphics.Rect): void;
				/**
				 * Called by a text editor that performs auto completion, to tell the input method about the completions it has available. This can be used by the input method to display them to the user to select the text to be inserted. 
				 * @param completions Array of text completions that are available, starting with
				 */
				public displayCompletions(completions: native.Array<android.view.inputmethod.CompletionInfo>): void;
				/**
				 * Called by a text editor to report its new extracted text when its contents change. This will only be called if the input method calls InputConnection#getExtractedText(ExtractedTextRequest, int) InputConnection.getExtractedText() with the option to report updates. 
				 * @param token The input method supplied token for identifying its request.
				 * @param text The new extracted text.
				 */
				public updateExtractedText(token: number, text: android.view.inputmethod.ExtractedText): void;
				/**
				 * This method is called when a key is pressed. When done with the event, the implementation must call back on <var>callback</var> with its result. 
				 * @param seq event The key event.
				 * @param event 
				 * @param callback 
				 */
				public dispatchKeyEvent(seq: number, event: android.view.KeyEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * This method is called when there is a track ball event. 
				 * @param seq event The motion event.
				 * @param event 
				 * @param callback 
				 */
				public dispatchTrackballEvent(seq: number, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * This method is called when there is a generic motion event.
				 * @param seq event The motion event.
				 * @param event 
				 * @param callback 
				 */
				public dispatchGenericMotionEvent(seq: number, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * Process a private command sent from the application to the input method. This can be used to provide domain-specific features that are only known between certain input methods and their clients. 
				 * @param action Name of the command to be performed. This <em>must</em>
				 * @param data Any data to include with the command.
				 */
				public appPrivateCommand(action: string, data: android.os.Bundle): void;
				/**
				 * Toggle the soft input window. Applications can toggle the state of the soft input window.
				 * @param showFlags Provides additional operating flags. May be
				 * @param hideFlags Provides additional operating flags. May be
				 */
				public toggleSoftInput(showFlags: number, hideFlags: number): void;
			}
			export module InputMethodSession {
				interface IEventCallback {
					finishedEvent(seq: number, handled: boolean): void;
				}
				export class EventCallback implements android.view.inputmethod.InputMethodSession.IEventCallback {
					constructor(implementation: android.view.inputmethod.InputMethodSession.IEventCallback);
					public finishedEvent(seq: number, handled: boolean): void;
				}
			}
			/**
			 * The InputMethod interface represents an input method which can generate key events and text, such as digital, email addresses, CJK characters, other language characters, and etc., while handling various input events, and send the text back to the application that requests text input. See InputMethodManager for more general information about the architecture.
			 */
			interface IInputMethod {
				/**
				 * Called first thing after an input method is created, this supplies a unique token for the session it has with the system service. It is needed to identify itself with the service to validate its operations. This token <strong>must not</strong> be passed to applications, since it grants special priviledges that should not be given to applications. 
				 */
				attachToken(token: android.os.IIBinder): void;
				/**
				 * Bind a new application environment in to the input method, so that it can later start and stop input processing. Typically this method is called when this input method is enabled in an application for the first time. 
				 * @param binding Information about the application window that is binding
				 */
				bindInput(binding: android.view.inputmethod.InputBinding): void;
				/**
				 * Unbind an application environment, called when the information previously set by #bindInput is no longer valid for this input method. 
				 */
				unbindInput(): void;
				/**
				 * This method is called when the application starts to receive text and it is ready for this input method to process received events and send result text back to the application. 
				 * @param inputConnection Optional specific input connection for
				 * @param info Information about the text box (typically, an EditText)
				 */
				startInput(inputConnection: android.view.inputmethod.IInputConnection, info: android.view.inputmethod.EditorInfo): void;
				/**
				 * This method is called when the state of this input method needs to be reset. 
				 * @param inputConnection Optional specific input connection for
				 * @param attribute The attribute of the text box (typically, a EditText)
				 */
				restartInput(inputConnection: android.view.inputmethod.IInputConnection, attribute: android.view.inputmethod.EditorInfo): void;
				/**
				 * Create a new InputMethodSession that can be handed to client applications for interacting with the input method. You can later use #revokeSession(InputMethodSession) to destroy the session so that it can no longer be used by any clients. 
				 * @param callback Interface that is called with the newly created session.
				 */
				createSession(callback: android.view.inputmethod.InputMethod.ISessionCallback): void;
				/**
				 * Control whether a particular input method session is active. 
				 * @param session The {@link InputMethodSession} previously provided through
				 * @param enabled 
				 */
				setSessionEnabled(session: android.view.inputmethod.IInputMethodSession, enabled: boolean): void;
				/**
				 * Disable and destroy a session that was previously created with #createSession(android.view.inputmethod.InputMethod.SessionCallback). After this call, the given session interface is no longer active and calls on it will fail. 
				 * @param session The {@link InputMethodSession} previously provided through
				 */
				revokeSession(session: android.view.inputmethod.IInputMethodSession): void;
				/**
				 * Request that any soft input part of the input method be shown to the user. 
				 * @param flags Provides additional information about the show request.
				 * @param resultReceiver The client requesting the show may wish to
				 */
				showSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				/**
				 * Request that any soft input part of the input method be hidden from the user.
				 * @param flags Provides additional information about the show request.
				 * @param resultReceiver The client requesting the show may wish to
				 */
				hideSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				/**
				 * Notify that the input method subtype is being changed in the same input method.
				 * @param subtype New subtype of the notified input method
				 */
				changeInputMethodSubtype(subtype: android.view.inputmethod.InputMethodSubtype): void;
			}
			export module IInputMethod {
				/**
				 * This is the interface name that a service implementing an input method should say that it supports -- that is, this is the action it uses for its intent filter. To be supported, the service must also require the android.Manifest.permission#BIND_INPUT_METHOD permission so that other applications can not abuse it.
				 */
				var SERVICE_INTERFACE: string;
				/**
				 * Name under which an InputMethod service component publishes information about itself. This meta-data must reference an XML resource containing an <code>&lt;android.R.styleable#InputMethod input-method&gt;</code> tag.
				 */
				var SERVICE_META_DATA: string;
				/**
				 * Flag for #showSoftInput: this show has been explicitly requested by the user. If not set, the system has decided it may be a good idea to show the input method based on a navigation operation in the UI.
				 */
				var SHOW_EXPLICIT: number;
				/**
				 * Flag for #showSoftInput: this show has been forced to happen by the user. If set, the input method should remain visible until deliberated dismissed by the user in its UI.
				 */
				var SHOW_FORCED: number;
			}
			/**
			 * Central system API to the overall input method framework (IMF) architecture, which arbitrates interaction between applications and the current input method. You can retrieve an instance of this interface with Context#getSystemService(String) Context.getSystemService(). 
			 */
			export class InputMethodManager extends java.lang.Object {
				/**
				 * Flag for #showSoftInput to indicate that this is an implicit request to show the input window, not as the result of a direct request by the user. The window may not be shown in this case.
				 */
				static SHOW_IMPLICIT: number;
				/**
				 * Flag for #showSoftInput to indicate that the user has forced the input method open (such as by long-pressing menu) so it should not be closed until they explicitly do so.
				 */
				static SHOW_FORCED: number;
				/**
				 * Flag for the ResultReceiver result code from #showSoftInput(View, int, ResultReceiver) and #hideSoftInputFromWindow(IBinder, int, ResultReceiver): the state of the soft input window was unchanged and remains shown.
				 */
				static RESULT_UNCHANGED_SHOWN: number;
				/**
				 * Flag for the ResultReceiver result code from #showSoftInput(View, int, ResultReceiver) and #hideSoftInputFromWindow(IBinder, int, ResultReceiver): the state of the soft input window was unchanged and remains hidden.
				 */
				static RESULT_UNCHANGED_HIDDEN: number;
				/**
				 * Flag for the ResultReceiver result code from #showSoftInput(View, int, ResultReceiver) and #hideSoftInputFromWindow(IBinder, int, ResultReceiver): the state of the soft input window changed from hidden to shown.
				 */
				static RESULT_SHOWN: number;
				/**
				 * Flag for the ResultReceiver result code from #showSoftInput(View, int, ResultReceiver) and #hideSoftInputFromWindow(IBinder, int, ResultReceiver): the state of the soft input window changed from shown to hidden.
				 */
				static RESULT_HIDDEN: number;
				/**
				 * Flag for #hideSoftInputFromWindow to indicate that the soft input window should only be hidden if it was not explicitly shown by the user.
				 */
				static HIDE_IMPLICIT_ONLY: number;
				/**
				 * Flag for #hideSoftInputFromWindow to indicate that the soft input window should normally be hidden, unless it was originally shown with #SHOW_FORCED.
				 */
				static HIDE_NOT_ALWAYS: number;
				static class: java.lang.Class<android.view.inputmethod.InputMethodManager>;
				public getInputMethodList(): java.util.IList<android.view.inputmethod.InputMethodInfo>;
				public getEnabledInputMethodList(): java.util.IList<android.view.inputmethod.InputMethodInfo>;
				/**
				 * Returns a list of enabled input method subtypes for the specified input method info.
				 * @param imi An input method info whose subtypes list will be returned.
				 * @param allowsImplicitlySelectedSubtypes A boolean flag to allow to return the implicitly
				 */
				public getEnabledInputMethodSubtypeList(imi: android.view.inputmethod.InputMethodInfo, allowsImplicitlySelectedSubtypes: boolean): java.util.IList<android.view.inputmethod.InputMethodSubtype>;
				public showStatusIcon(imeToken: android.os.IIBinder, packageName: string, iconId: number): void;
				public hideStatusIcon(imeToken: android.os.IIBinder): void;
				/**
				 * Allows you to discover whether the attached input method is running in fullscreen mode. Return true if it is fullscreen, entirely covering your UI, else returns false.
				 */
				public isFullscreenMode(): boolean;
				/**
				 * Return true if the given view is the currently active view for the input method.
				 */
				public isActive(view: android.view.View): boolean;
				/**
				 * Return true if any view is currently active in the input method.
				 */
				public isActive(): boolean;
				/**
				 * Return true if the currently served view is accepting full text edits. If false, it has no input connection, so can only handle raw key events.
				 */
				public isAcceptingText(): boolean;
				/**
				 * Reset all of the state associated with being bound to an input method.
				 */
				clearBindingLocked(): void;
				/**
				 * Reset all of the state associated with a served view being connected to an input method
				 */
				clearConnectionLocked(): void;
				/**
				 * Disconnect any existing input connection, clearing the served view.
				 */
				finishInputLocked(): void;
				public displayCompletions(view: android.view.View, completions: native.Array<android.view.inputmethod.CompletionInfo>): void;
				public updateExtractedText(view: android.view.View, token: number, text: android.view.inputmethod.ExtractedText): void;
				/**
				 * Synonym for #showSoftInput(View, int, ResultReceiver) without a result receiver: explicitly request that the current input method's soft input area be shown to the user, if needed. 
				 * @param view The currently focused view, which would like to receive
				 * @param flags Provides additional operating flags. Currently may be
				 */
				public showSoftInput(view: android.view.View, flags: number): boolean;
				/**
				 * Explicitly request that the current input method's soft input area be shown to the user, if needed. Call this if the user interacts with your view in such a way that they have expressed they would like to start performing input into it. 
				 * @param view The currently focused view, which would like to receive
				 * @param flags Provides additional operating flags. Currently may be
				 * @param resultReceiver If non-null, this will be called by the IME when
				 */
				public showSoftInput(view: android.view.View, flags: number, resultReceiver: android.os.ResultReceiver): boolean;
				/**
				 * Synonym for #hideSoftInputFromWindow(IBinder, int, ResultReceiver) without a result: request to hide the soft input window from the context of the window that is currently accepting input. 
				 * @param windowToken The token of the window that is making the request,
				 * @param flags Provides additional operating flags. Currently may be
				 */
				public hideSoftInputFromWindow(windowToken: android.os.IIBinder, flags: number): boolean;
				/**
				 * Request to hide the soft input window from the context of the window that is currently accepting input. This should be called as a result of the user doing some actually than fairly explicitly requests to have the input window hidden. 
				 * @param windowToken The token of the window that is making the request,
				 * @param flags Provides additional operating flags. Currently may be
				 * @param resultReceiver If non-null, this will be called by the IME when
				 */
				public hideSoftInputFromWindow(windowToken: android.os.IIBinder, flags: number, resultReceiver: android.os.ResultReceiver): boolean;
				/**
				 * This method toggles the input method window display. If the input window is already displayed, it gets hidden. If not the input window will be displayed.
				 * @param windowToken The token of the window that is making the request,
				 * @param showFlags Provides additional operating flags. May be
				 * @param hideFlags Provides additional operating flags. May be
				 */
				public toggleSoftInputFromWindow(windowToken: android.os.IIBinder, showFlags: number, hideFlags: number): void;
				public toggleSoftInput(showFlags: number, hideFlags: number): void;
				/**
				 * If the input method is currently connected to the given view, restart it with its new contents. You should call this when the text within your view changes outside of the normal input method or key input flow, such as when an application calls TextView.setText(). 
				 * @param view The view whose text has changed.
				 */
				public restartInput(view: android.view.View): void;
				startInputInner(windowGainingFocus: android.os.IIBinder, controlFlags: number, softInputMode: number, windowFlags: number): boolean;
				focusInLocked(view: android.view.View): void;
				static scheduleCheckFocusLocked(view: android.view.View): void;
				closeCurrentInput(): void;
				/**
				 * Report the current selection range.
				 */
				public updateSelection(view: android.view.View, selStart: number, selEnd: number, candidatesStart: number, candidatesEnd: number): void;
				/**
				 * Notify the event when the user tapped or clicked the text view.
				 */
				public viewClicked(view: android.view.View): void;
				/**
				 * Returns true if the current input method wants to watch the location of the input editor's cursor in its window.
				 */
				public isWatchingCursor(view: android.view.View): boolean;
				/**
				 * Report the current cursor location in its window.
				 */
				public updateCursor(view: android.view.View, left: number, top: number, right: number, bottom: number): void;
				/**
				 * Call InputMethodSession#appPrivateCommand(String, Bundle) InputMethodSession.appPrivateCommand() on the current Input Method.
				 * @param view Optional View that is sending the command, or null if
				 * @param action Name of the command to be performed. This <em>must</em>
				 * @param data Any data to include with the command.
				 */
				public sendAppPrivateCommand(view: android.view.View, action: string, data: android.os.Bundle): void;
				/**
				 * Force switch to a new input method component. This can only be called from an application or a service which has a token of the currently active input method.
				 * @param token Supplies the identifying token given to an input method
				 * @param id The unique identifier for the new input method to be switched to.
				 */
				public setInputMethod(token: android.os.IIBinder, id: string): void;
				/**
				 * Force switch to a new input method and subtype. This can only be called from an application or a service which has a token of the currently active input method.
				 * @param token Supplies the identifying token given to an input method
				 * @param id The unique identifier for the new input method to be switched to.
				 * @param subtype The new subtype of the new input method to be switched to.
				 */
				public setInputMethodAndSubtype(token: android.os.IIBinder, id: string, subtype: android.view.inputmethod.InputMethodSubtype): void;
				/**
				 * Close/hide the input method's soft input area, so the user no longer sees it or can interact with it. This can only be called from the currently active input method, as validated by the given token. 
				 * @param token Supplies the identifying token given to an input method
				 * @param flags Provides additional operating flags. Currently may be
				 */
				public hideSoftInputFromInputMethod(token: android.os.IIBinder, flags: number): void;
				/**
				 * Show the input method's soft input area, so the user sees the input method window and can interact with it. This can only be called from the currently active input method, as validated by the given token. 
				 * @param token Supplies the identifying token given to an input method
				 * @param flags Provides additional operating flags. Currently may be
				 */
				public showSoftInputFromInputMethod(token: android.os.IIBinder, flags: number): void;
				finishedEvent(seq: number, handled: boolean): void;
				timeoutEvent(seq: number): void;
				public showInputMethodPicker(): void;
				/**
				 * Show the settings for enabling subtypes of the specified input method.
				 * @param imiId An input method, whose subtypes settings will be shown. If imiId is null,
				 */
				public showInputMethodAndSubtypeEnabler(imiId: string): void;
				/**
				 * Returns the current input method subtype. This subtype is one of the subtypes in the current input method. This method returns null when the current input method doesn't have any input method subtype.
				 */
				public getCurrentInputMethodSubtype(): android.view.inputmethod.InputMethodSubtype;
				/**
				 * Switch to a new input method subtype of the current input method.
				 * @param subtype A new input method subtype to switch.
				 */
				public setCurrentInputMethodSubtype(subtype: android.view.inputmethod.InputMethodSubtype): boolean;
				/**
				 * Returns a map of all shortcut input method info and their subtypes.
				 */
				public getShortcutInputMethodsAndSubtypes(): java.util.IMap<android.view.inputmethod.InputMethodInfo, java.util.IList<android.view.inputmethod.InputMethodSubtype>>;
				/**
				 * Force switch to the last used input method and subtype. If the last input method didn't have any subtypes, the framework will simply switch to the last input method with no subtype specified.
				 * @param imeToken Supplies the identifying token given to an input method when it was started,
				 */
				public switchToLastInputMethod(imeToken: android.os.IIBinder): boolean;
				/**
				 * Force switch to the next input method and subtype. If there is no IME enabled except current IME and subtype, do nothing.
				 * @param imeToken Supplies the identifying token given to an input method when it was started,
				 * @param onlyCurrentIme if true, the framework will find the next subtype which
				 */
				public switchToNextInputMethod(imeToken: android.os.IIBinder, onlyCurrentIme: boolean): boolean;
				/**
				 * Set additional input method subtypes. Only a process which shares the same uid with the IME can add additional input method subtypes to the IME. Please note that a subtype's status is stored in the system. For example, enabled subtypes are remembered by the framework even after they are removed by using this method. If you re-add the same subtypes again, they will just get enabled. If you want to avoid such conflicts, for instance, you may want to create a "different" new subtype even with the same locale and mode, by changing its extra value. The different subtype won't get affected by the stored past status. (You may want to take a look at InputMethodSubtype#hashCode() to refer to the current implementation.)
				 * @param imiId Id of InputMethodInfo which additional input method subtypes will be added to.
				 * @param subtypes subtypes will be added as additional subtypes of the current input method.
				 */
				public setAdditionalInputMethodSubtypes(imiId: string, subtypes: native.Array<android.view.inputmethod.InputMethodSubtype>): void;
				public getLastInputMethodSubtype(): android.view.inputmethod.InputMethodSubtype;
				doDump(fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: native.Array<string>): void;
			}
			export module InputMethodManager {
				export class PendingEvent extends java.lang.Object {
					mNext: android.view.inputmethod.InputMethodManager.PendingEvent;
					mStartTime: number;
					mSeq: number;
					mInputMethodId: string;
					static class: java.lang.Class<android.view.inputmethod.InputMethodManager.PendingEvent>;
				}
				export class ControlledInputConnectionWrapper {
					constructor(mainLooper: android.os.Looper, conn: android.view.inputmethod.IInputConnection, inputMethodManager: android.view.inputmethod.InputMethodManager);
					static class: java.lang.Class<android.view.inputmethod.InputMethodManager.ControlledInputConnectionWrapper>;
					public isActive(): boolean;
					deactivate(): void;
				}
				export class H extends android.os.Handler {
					static class: java.lang.Class<android.view.inputmethod.InputMethodManager.H>;
					public handleMessage(msg: android.os.Message): void;
				}
			}
			/**
			 * Information about text that has been extracted for use by an input method.
			 */
			export class ExtractedText extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * The text that has been extracted.
				 */
				text: string;
				/**
				 * The offset in the overall text at which the extracted text starts.
				 */
				startOffset: number;
				/**
				 * If the content is a report of a partial text change, this is the offset where the change starts and it runs until #partialEndOffset. If the content is the full text, this field is -1.
				 */
				partialStartOffset: number;
				/**
				 * If the content is a report of a partial text change, this is the offset where the change ends. Note that the actual text may be larger or smaller than the difference between this and #partialStartOffset, meaning a reduction or increase, respectively, in the total text.
				 */
				partialEndOffset: number;
				/**
				 * The offset where the selection currently starts within the extracted text. The real selection start position is at <var>startOffset</var>+<var>selectionStart</var>.
				 */
				selectionStart: number;
				/**
				 * The offset where the selection currently ends within the extracted text. The real selection end position is at <var>startOffset</var>+<var>selectionEnd</var>.
				 */
				selectionEnd: number;
				/**
				 * Bit for #flags: set if the text being edited can only be on a single line.
				 */
				static FLAG_SINGLE_LINE: number;
				/**
				 * Bit for #flags: set if the editor is currently in selection mode.
				 */
				static FLAG_SELECTING: number;
				/**
				 * Additional bit flags of information about the edited text.
				 */
				flags: number;
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.ExtractedText>;
				static class: java.lang.Class<android.view.inputmethod.ExtractedText>;
				/**
				 * Used to package this object into a Parcel. 
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * This class is used to specify meta information of an input method.
			 */
			export class InputMethodInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor.
				 * @param context The Context in which we are parsing the input method.
				 * @param service The ResolveInfo returned from the package manager about
				 */
				constructor(context: android.content.Context, service: android.content.pm.ResolveInfo);
				/**
				 * Temporary API for creating a built-in input method.
				 */
				constructor(packageName: string, className: string, label: string, settingsActivity: string);
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.InputMethodInfo>;
				static class: java.lang.Class<android.view.inputmethod.InputMethodInfo>;
				/**
				 * Return a unique ID for this input method. The ID is generated from the package and class name implementing the method.
				 */
				public getId(): string;
				/**
				 * Return the .apk package that implements this input method.
				 */
				public getPackageName(): string;
				/**
				 * Return the class name of the service component that implements this input method.
				 */
				public getServiceName(): string;
				/**
				 * Return the raw information about the Service implementing this input method. Do not modify the returned object.
				 */
				public getServiceInfo(): android.content.pm.ServiceInfo;
				/**
				 * Return the component of the service that implements this input method.
				 */
				public getComponent(): android.content.ComponentName;
				/**
				 * Load the user-displayed label for this input method. 
				 * @param pm Supply a PackageManager used to load the input method's
				 */
				public loadLabel(pm: android.content.pm.PackageManager): string;
				/**
				 * Load the user-displayed icon for this input method. 
				 * @param pm Supply a PackageManager used to load the input method's
				 */
				public loadIcon(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
				/**
				 * Return the class name of an activity that provides a settings UI for the input method. You can launch this activity be starting it with an android.content.Intent whose action is MAIN and with an explicit android.content.ComponentName composed of #getPackageName and the class name returned here. 
				 */
				public getSettingsActivity(): string;
				/**
				 * Return the count of the subtypes of Input Method.
				 */
				public getSubtypeCount(): number;
				/**
				 * Return the Input Method's subtype at the specified index.
				 * @param index the index of the subtype to return.
				 */
				public getSubtypeAt(index: number): android.view.inputmethod.InputMethodSubtype;
				/**
				 * Return the resource identifier of a resource inside of this input method's .apk that determines whether it should be considered a default input method for the system.
				 */
				public getIsDefaultResourceId(): number;
				public dump(pw: android.util.IPrinter, prefix: string): void;
				public toString(): string;
				/**
				 * Used to test whether the given parameter object is an InputMethodInfo and its Id is the same to this one. 
				 */
				public equals(o: any): boolean;
				public hashCode(): number;
				/**
				 * Used to package this object into a Parcel. 
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * The InputConnection interface is the communication channel from an InputMethod back to the application that is receiving its input. It is used to perform such things as reading text around the cursor, committing text to the text box, and sending raw key events to the application. 
			 */
			interface IInputConnection {
				/**
				 * Get <var>n</var> characters of text before the current cursor position. 
				 * @param n The expected length of the text.
				 * @param flags Supplies additional options controlling how the text is
				 */
				getTextBeforeCursor(n: number, flags: number): string;
				/**
				 * Get <var>n</var> characters of text after the current cursor position. 
				 * @param n The expected length of the text.
				 * @param flags Supplies additional options controlling how the text is
				 */
				getTextAfterCursor(n: number, flags: number): string;
				/**
				 * Gets the selected text, if any.
				 * @param flags Supplies additional options controlling how the text is
				 */
				getSelectedText(flags: number): string;
				/**
				 * Retrieve the current capitalization mode in effect at the current cursor position in the text. See android.text.TextUtils#getCapsMode TextUtils.getCapsMode for more information. 
				 * @param reqModes The desired modes to retrieve, as defined by
				 */
				getCursorCapsMode(reqModes: number): number;
				/**
				 * Retrieve the current text in the input connection's editor, and monitor for any changes to it. This function returns with the current text, and optionally the input connection can send updates to the input method when its text changes. 
				 * @param request Description of how the text should be returned.
				 * @param flags Additional options to control the client, either 0 or
				 */
				getExtractedText(request: android.view.inputmethod.ExtractedTextRequest, flags: number): android.view.inputmethod.ExtractedText;
				/**
				 * Delete <var>beforeLength</var> characters of text before the current cursor position, and delete <var>afterLength</var> characters of text after the current cursor position, excluding composing text. Before and after refer to the order of the characters in the string, not to their visual representation. 
				 * @param beforeLength The number of characters to be deleted before the
				 * @param afterLength The number of characters to be deleted after the
				 */
				deleteSurroundingText(beforeLength: number, afterLength: number): boolean;
				/**
				 * Set composing text around the current cursor position with the given text, and set the new cursor position. Any composing text set previously will be removed automatically. 
				 * @param text The composing text with styles if necessary. If no style
				 * @param newCursorPosition The new cursor position around the text. If
				 */
				setComposingText(text: string, newCursorPosition: number): boolean;
				/**
				 * Mark a certain region of text as composing text. Any composing text set previously will be removed automatically. The default style for composing text is used.
				 * @param start the position in the text at which the composing region begins
				 * @param end the position in the text at which the composing region ends
				 */
				setComposingRegion(start: number, end: number): boolean;
				/**
				 * Have the text editor finish whatever composing text is currently active. This simply leaves the text as-is, removing any special composing styling or other state that was around it. The cursor position remains unchanged.
				 */
				finishComposingText(): boolean;
				/**
				 * Commit text to the text box and set the new cursor position. Any composing text set previously will be removed automatically. 
				 * @param text The committed text.
				 * @param newCursorPosition The new cursor position around the text. If
				 */
				commitText(text: string, newCursorPosition: number): boolean;
				/**
				 * Commit a completion the user has selected from the possible ones previously reported to InputMethodSession#displayCompletions InputMethodSession.displayCompletions(). This will result in the same behavior as if the user had selected the completion from the actual UI. 
				 * @param text The committed completion.
				 */
				commitCompletion(text: android.view.inputmethod.CompletionInfo): boolean;
				/**
				 * Commit a correction automatically performed on the raw user's input. A typical example would be to correct typos using a dictionary.
				 * @param correctionInfo Detailed information about the correction.
				 */
				commitCorrection(correctionInfo: android.view.inputmethod.CorrectionInfo): boolean;
				/**
				 * Set the selection of the text editor. To set the cursor position, start and end should have the same value.
				 */
				setSelection(start: number, end: number): boolean;
				/**
				 * Have the editor perform an action it has said it can do. 
				 * @param editorAction This must be one of the action constants for
				 */
				performEditorAction(editorAction: number): boolean;
				/**
				 * Perform a context menu action on the field. The given id may be one of: android.R.id#selectAll, android.R.id#startSelectingText, android.R.id#stopSelectingText, android.R.id#cut, android.R.id#copy, android.R.id#paste, android.R.id#copyUrl, or android.R.id#switchInputMethod
				 */
				performContextMenuAction(id: number): boolean;
				/**
				 * Tell the editor that you are starting a batch of editor operations. The editor will try to avoid sending you updates about its state until #endBatchEdit is called.
				 */
				beginBatchEdit(): boolean;
				/**
				 * Tell the editor that you are done with a batch edit previously initiated with #beginBatchEdit.
				 */
				endBatchEdit(): boolean;
				/**
				 * Send a key event to the process that is currently attached through this input connection. The event will be dispatched like a normal key event, to the currently focused; this generally is the view that is providing this InputConnection, but due to the asynchronous nature of this protocol that can not be guaranteed and the focus may have changed by the time the event is received. 
				 * @param event The key event.
				 */
				sendKeyEvent(event: android.view.KeyEvent): boolean;
				/**
				 * Clear the given meta key pressed states in the given input connection. 
				 * @param states The states to be cleared, may be one or more bits as
				 */
				clearMetaKeyStates(states: number): boolean;
				/**
				 * Called by the IME to tell the client when it switches between fullscreen and normal modes. This will normally be called for you by the standard implementation of android.inputmethodservice.InputMethodService.
				 */
				reportFullscreenMode(enabled: boolean): boolean;
				/**
				 * API to send private commands from an input method to its connected editor. This can be used to provide domain-specific features that are only known between certain input methods and their clients. Note that because the InputConnection protocol is asynchronous, you have no way to get a result back or know if the client understood the command; you can use the information in EditorInfo to determine if a client supports a particular command. 
				 * @param action Name of the command to be performed. This <em>must</em>
				 * @param data Any data to include with the command.
				 */
				performPrivateCommand(action: string, data: android.os.Bundle): boolean;
			}
			export module IInputConnection {
				/**
				 * Flag for use with #getTextAfterCursor and #getTextBeforeCursor to have style information returned along with the text. If not set, you will receive only the raw text. If set, you may receive a complex CharSequence of both text and style spans.
				 */
				var GET_TEXT_WITH_STYLES: number;
				/**
				 * Flag for use with #getExtractedText to indicate you would like to receive updates when the extracted text changes.
				 */
				var GET_EXTRACTED_TEXT_MONITOR: number;
			}
			/**
			 * Information about a single text completion that an editor has reported to an input method.
			 */
			export class CompletionInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Create a simple completion with just text, no label.
				 */
				constructor(id: number, index: number, text: string);
				/**
				 * Create a full completion with both text and label.
				 */
				constructor(id: number, index: number, text: string, label: string);
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.CompletionInfo>;
				static class: java.lang.Class<android.view.inputmethod.CompletionInfo>;
				/**
				 * Return the abstract identifier for this completion, typically corresponding to the id associated with it in the original adapter.
				 */
				public getId(): any;
				/**
				 * Return the original position of this completion, typically corresponding to its position in the original adapter.
				 */
				public getPosition(): number;
				/**
				 * Return the actual text associated with this completion. This is the real text that will be inserted into the editor if the user selects it.
				 */
				public getText(): string;
				/**
				 * Return the user-visible label for the completion, or null if the plain text should be shown. If non-null, this will be what the user sees as the completion option instead of the actual text.
				 */
				public getLabel(): string;
				public toString(): string;
				/**
				 * Used to package this object into a Parcel.
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * The InputConnection interface is the communication channel from an InputMethod back to the application that is receiving its input. It is used to perform such things as reading text around the cursor, committing text to the text box, and sending raw key events to the application. 
			 */
			export class InputConnection implements android.view.inputmethod.IInputConnection {
				constructor(implementation: android.view.inputmethod.IInputConnection);
				/**
				 * Flag for use with #getTextAfterCursor and #getTextBeforeCursor to have style information returned along with the text. If not set, you will receive only the raw text. If set, you may receive a complex CharSequence of both text and style spans.
				 */
				static GET_TEXT_WITH_STYLES: number;
				/**
				 * Flag for use with #getExtractedText to indicate you would like to receive updates when the extracted text changes.
				 */
				static GET_EXTRACTED_TEXT_MONITOR: number;
				/**
				 * Get <var>n</var> characters of text before the current cursor position. 
				 * @param n The expected length of the text.
				 * @param flags Supplies additional options controlling how the text is
				 */
				public getTextBeforeCursor(n: number, flags: number): string;
				/**
				 * Get <var>n</var> characters of text after the current cursor position. 
				 * @param n The expected length of the text.
				 * @param flags Supplies additional options controlling how the text is
				 */
				public getTextAfterCursor(n: number, flags: number): string;
				/**
				 * Gets the selected text, if any.
				 * @param flags Supplies additional options controlling how the text is
				 */
				public getSelectedText(flags: number): string;
				/**
				 * Retrieve the current capitalization mode in effect at the current cursor position in the text. See android.text.TextUtils#getCapsMode TextUtils.getCapsMode for more information. 
				 * @param reqModes The desired modes to retrieve, as defined by
				 */
				public getCursorCapsMode(reqModes: number): number;
				/**
				 * Retrieve the current text in the input connection's editor, and monitor for any changes to it. This function returns with the current text, and optionally the input connection can send updates to the input method when its text changes. 
				 * @param request Description of how the text should be returned.
				 * @param flags Additional options to control the client, either 0 or
				 */
				public getExtractedText(request: android.view.inputmethod.ExtractedTextRequest, flags: number): android.view.inputmethod.ExtractedText;
				/**
				 * Delete <var>beforeLength</var> characters of text before the current cursor position, and delete <var>afterLength</var> characters of text after the current cursor position, excluding composing text. Before and after refer to the order of the characters in the string, not to their visual representation. 
				 * @param beforeLength The number of characters to be deleted before the
				 * @param afterLength The number of characters to be deleted after the
				 */
				public deleteSurroundingText(beforeLength: number, afterLength: number): boolean;
				/**
				 * Set composing text around the current cursor position with the given text, and set the new cursor position. Any composing text set previously will be removed automatically. 
				 * @param text The composing text with styles if necessary. If no style
				 * @param newCursorPosition The new cursor position around the text. If
				 */
				public setComposingText(text: string, newCursorPosition: number): boolean;
				/**
				 * Mark a certain region of text as composing text. Any composing text set previously will be removed automatically. The default style for composing text is used.
				 * @param start the position in the text at which the composing region begins
				 * @param end the position in the text at which the composing region ends
				 */
				public setComposingRegion(start: number, end: number): boolean;
				/**
				 * Have the text editor finish whatever composing text is currently active. This simply leaves the text as-is, removing any special composing styling or other state that was around it. The cursor position remains unchanged.
				 */
				public finishComposingText(): boolean;
				/**
				 * Commit text to the text box and set the new cursor position. Any composing text set previously will be removed automatically. 
				 * @param text The committed text.
				 * @param newCursorPosition The new cursor position around the text. If
				 */
				public commitText(text: string, newCursorPosition: number): boolean;
				/**
				 * Commit a completion the user has selected from the possible ones previously reported to InputMethodSession#displayCompletions InputMethodSession.displayCompletions(). This will result in the same behavior as if the user had selected the completion from the actual UI. 
				 * @param text The committed completion.
				 */
				public commitCompletion(text: android.view.inputmethod.CompletionInfo): boolean;
				/**
				 * Commit a correction automatically performed on the raw user's input. A typical example would be to correct typos using a dictionary.
				 * @param correctionInfo Detailed information about the correction.
				 */
				public commitCorrection(correctionInfo: android.view.inputmethod.CorrectionInfo): boolean;
				/**
				 * Set the selection of the text editor. To set the cursor position, start and end should have the same value.
				 */
				public setSelection(start: number, end: number): boolean;
				/**
				 * Have the editor perform an action it has said it can do. 
				 * @param editorAction This must be one of the action constants for
				 */
				public performEditorAction(editorAction: number): boolean;
				/**
				 * Perform a context menu action on the field. The given id may be one of: android.R.id#selectAll, android.R.id#startSelectingText, android.R.id#stopSelectingText, android.R.id#cut, android.R.id#copy, android.R.id#paste, android.R.id#copyUrl, or android.R.id#switchInputMethod
				 */
				public performContextMenuAction(id: number): boolean;
				/**
				 * Tell the editor that you are starting a batch of editor operations. The editor will try to avoid sending you updates about its state until #endBatchEdit is called.
				 */
				public beginBatchEdit(): boolean;
				/**
				 * Tell the editor that you are done with a batch edit previously initiated with #beginBatchEdit.
				 */
				public endBatchEdit(): boolean;
				/**
				 * Send a key event to the process that is currently attached through this input connection. The event will be dispatched like a normal key event, to the currently focused; this generally is the view that is providing this InputConnection, but due to the asynchronous nature of this protocol that can not be guaranteed and the focus may have changed by the time the event is received. 
				 * @param event The key event.
				 */
				public sendKeyEvent(event: android.view.KeyEvent): boolean;
				/**
				 * Clear the given meta key pressed states in the given input connection. 
				 * @param states The states to be cleared, may be one or more bits as
				 */
				public clearMetaKeyStates(states: number): boolean;
				/**
				 * Called by the IME to tell the client when it switches between fullscreen and normal modes. This will normally be called for you by the standard implementation of android.inputmethodservice.InputMethodService.
				 */
				public reportFullscreenMode(enabled: boolean): boolean;
				/**
				 * API to send private commands from an input method to its connected editor. This can be used to provide domain-specific features that are only known between certain input methods and their clients. Note that because the InputConnection protocol is asynchronous, you have no way to get a result back or know if the client understood the command; you can use the information in EditorInfo to determine if a client supports a particular command. 
				 * @param action Name of the command to be performed. This <em>must</em>
				 * @param data Any data to include with the command.
				 */
				public performPrivateCommand(action: string, data: android.os.Bundle): boolean;
			}
			/**
			 * Base class for implementors of the InputConnection interface, taking care of most of the common behavior for providing a connection to an Editable. Implementors of this class will want to be sure to implement #getEditable to provide access to their own editable object.
			 */
			export class BaseInputConnection extends java.lang.Object implements android.view.inputmethod.IInputConnection {
				constructor(targetView: android.view.View, fullEditor: boolean);
				static class: java.lang.Class<android.view.inputmethod.BaseInputConnection>;
				public static removeComposingSpans(text: android.text.ISpannable): void;
				public static setComposingSpans(text: android.text.ISpannable): void;
				public static getComposingSpanStart(text: android.text.ISpannable): number;
				public static getComposingSpanEnd(text: android.text.ISpannable): number;
				/**
				 * Return the target of edit operations. The default implementation returns its own fake editable that is just used for composing text; subclasses that are real text editors should override this and supply their own.
				 */
				public getEditable(): any;
				/**
				 * Default implementation does nothing.
				 */
				public beginBatchEdit(): boolean;
				/**
				 * Default implementation does nothing.
				 */
				public endBatchEdit(): boolean;
				/**
				 * Default implementation uses MetaKeyKeyListener#clearMetaKeyState(long, int) MetaKeyKeyListener.clearMetaKeyState(long, int) to clear the state.
				 */
				public clearMetaKeyStates(states: number): boolean;
				/**
				 * Default implementation does nothing and returns false.
				 */
				public commitCompletion(text: android.view.inputmethod.CompletionInfo): boolean;
				/**
				 * Default implementation does nothing and returns false.
				 */
				public commitCorrection(correctionInfo: android.view.inputmethod.CorrectionInfo): boolean;
				/**
				 * Default implementation replaces any existing composing text with the given text. In addition, only if dummy mode, a key event is sent for the new text and the current editable buffer cleared.
				 */
				public commitText(text: string, newCursorPosition: number): boolean;
				/**
				 * The default implementation performs the deletion around the current selection position of the editable text.
				 * @param beforeLength 
				 * @param afterLength 
				 */
				public deleteSurroundingText(beforeLength: number, afterLength: number): boolean;
				/**
				 * The default implementation removes the composing state from the current editable text. In addition, only if dummy mode, a key event is sent for the new text and the current editable buffer cleared.
				 */
				public finishComposingText(): boolean;
				/**
				 * The default implementation uses TextUtils.getCapsMode to get the cursor caps mode for the current selection position in the editable text, unless in dummy mode in which case 0 is always returned.
				 */
				public getCursorCapsMode(reqModes: number): number;
				/**
				 * The default implementation always returns null.
				 */
				public getExtractedText(request: android.view.inputmethod.ExtractedTextRequest, flags: number): android.view.inputmethod.ExtractedText;
				/**
				 * The default implementation returns the given amount of text from the current cursor position in the buffer.
				 */
				public getTextBeforeCursor(length: number, flags: number): string;
				/**
				 * The default implementation returns the text currently selected, or null if none is selected.
				 */
				public getSelectedText(flags: number): string;
				/**
				 * The default implementation returns the given amount of text from the current cursor position in the buffer.
				 */
				public getTextAfterCursor(length: number, flags: number): string;
				/**
				 * The default implementation turns this into the enter key.
				 */
				public performEditorAction(actionCode: number): boolean;
				/**
				 * The default implementation does nothing.
				 */
				public performContextMenuAction(id: number): boolean;
				/**
				 * The default implementation does nothing.
				 */
				public performPrivateCommand(action: string, data: android.os.Bundle): boolean;
				/**
				 * The default implementation places the given text into the editable, replacing any existing composing text. The new text is marked as in a composing state with the composing style.
				 */
				public setComposingText(text: string, newCursorPosition: number): boolean;
				public setComposingRegion(start: number, end: number): boolean;
				/**
				 * The default implementation changes the selection position in the current editable text.
				 */
				public setSelection(start: number, end: number): boolean;
				/**
				 * Provides standard implementation for sending a key event to the window attached to the input connection's view.
				 */
				public sendKeyEvent(event: android.view.KeyEvent): boolean;
				/**
				 * Updates InputMethodManager with the current fullscreen mode.
				 */
				public reportFullscreenMode(enabled: boolean): boolean;
			}
			/**
			 * The InputMethodSession interface provides the per-client functionality of InputMethod that is safe to expose to applications. 
			 */
			interface IInputMethodSession {
				/**
				 * This method is called when the application would like to stop receiving text input.
				 */
				finishInput(): void;
				/**
				 * This method is called when the selection or cursor in the current target input field has changed. 
				 * @param oldSelStart The previous text offset of the cursor selection
				 * @param oldSelEnd The previous text offset of the cursor selection
				 * @param newSelStart The new text offset of the cursor selection
				 * @param newSelEnd The new text offset of the cursor selection
				 * @param candidatesStart The text offset of the current candidate
				 * @param candidatesEnd The text offset of the current candidate
				 */
				updateSelection(oldSelStart: number, oldSelEnd: number, newSelStart: number, newSelEnd: number, candidatesStart: number, candidatesEnd: number): void;
				/**
				 * This method is called when the user tapped a text view. IMEs can't rely on this method being called because this was not part of the original IME protocol, so applications with custom text editing written before this method appeared will not call to inform the IME of this interaction.
				 * @param focusChanged true if the user changed the focused view by this click.
				 */
				viewClicked(focusChanged: boolean): void;
				/**
				 * This method is called when cursor location of the target input field has changed within its window. This is not normally called, but will only be reported if requested by the input method. 
				 * @param newCursor The rectangle of the cursor currently being shown in
				 */
				updateCursor(newCursor: android.graphics.Rect): void;
				/**
				 * Called by a text editor that performs auto completion, to tell the input method about the completions it has available. This can be used by the input method to display them to the user to select the text to be inserted. 
				 * @param completions Array of text completions that are available, starting with
				 */
				displayCompletions(completions: native.Array<android.view.inputmethod.CompletionInfo>): void;
				/**
				 * Called by a text editor to report its new extracted text when its contents change. This will only be called if the input method calls InputConnection#getExtractedText(ExtractedTextRequest, int) InputConnection.getExtractedText() with the option to report updates. 
				 * @param token The input method supplied token for identifying its request.
				 * @param text The new extracted text.
				 */
				updateExtractedText(token: number, text: android.view.inputmethod.ExtractedText): void;
				/**
				 * This method is called when a key is pressed. When done with the event, the implementation must call back on <var>callback</var> with its result. 
				 * @param seq event The key event.
				 * @param event 
				 * @param callback 
				 */
				dispatchKeyEvent(seq: number, event: android.view.KeyEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * This method is called when there is a track ball event. 
				 * @param seq event The motion event.
				 * @param event 
				 * @param callback 
				 */
				dispatchTrackballEvent(seq: number, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * This method is called when there is a generic motion event.
				 * @param seq event The motion event.
				 * @param event 
				 * @param callback 
				 */
				dispatchGenericMotionEvent(seq: number, event: android.view.MotionEvent, callback: android.view.inputmethod.InputMethodSession.IEventCallback): void;
				/**
				 * Process a private command sent from the application to the input method. This can be used to provide domain-specific features that are only known between certain input methods and their clients. 
				 * @param action Name of the command to be performed. This <em>must</em>
				 * @param data Any data to include with the command.
				 */
				appPrivateCommand(action: string, data: android.os.Bundle): void;
				/**
				 * Toggle the soft input window. Applications can toggle the state of the soft input window.
				 * @param showFlags Provides additional operating flags. May be
				 * @param hideFlags Provides additional operating flags. May be
				 */
				toggleSoftInput(showFlags: number, hideFlags: number): void;
			}
			/**
			 * An EditorInfo describes several attributes of a text editing object that an input method is communicating with (typically an EditText), most importantly the type of text content it contains.
			 */
			export class EditorInfo extends java.lang.Object implements android.text.IInputType, android.os.IParcelable {
				constructor();
				/**
				 * The content type of the text box, whose bits are defined by InputType. InputType #TYPE_MASK_CLASS #TYPE_MASK_VARIATION #TYPE_MASK_FLAGS
				 */
				inputType: number;
				/**
				 * Set of bits in #imeOptions that provide alternative actions associated with the "enter" key. This both helps the IME provide better feedback about what the enter key will do, and also allows it to provide alternative mechanisms for providing that command.
				 */
				static IME_MASK_ACTION: number;
				/**
				 * Bits of #IME_MASK_ACTION: no specific action has been associated with this editor, let the editor come up with its own if it can.
				 */
				static IME_ACTION_UNSPECIFIED: number;
				/**
				 * Bits of #IME_MASK_ACTION: there is no available action.
				 */
				static IME_ACTION_NONE: number;
				/**
				 * Bits of #IME_MASK_ACTION: the action key performs a "go" operation to take the user to the target of the text they typed. Typically used, for example, when entering a URL.
				 */
				static IME_ACTION_GO: number;
				/**
				 * Bits of #IME_MASK_ACTION: the action key performs a "search" operation, taking the user to the results of searching for the text the have typed (in whatever context is appropriate).
				 */
				static IME_ACTION_SEARCH: number;
				/**
				 * Bits of #IME_MASK_ACTION: the action key performs a "send" operation, delivering the text to its target. This is typically used when composing a message.
				 */
				static IME_ACTION_SEND: number;
				/**
				 * Bits of #IME_MASK_ACTION: the action key performs a "next" operation, taking the user to the next field that will accept text.
				 */
				static IME_ACTION_NEXT: number;
				/**
				 * Bits of #IME_MASK_ACTION: the action key performs a "done" operation, typically meaning the IME will be closed.
				 */
				static IME_ACTION_DONE: number;
				/**
				 * Bits of #IME_MASK_ACTION: Like #IME_ACTION_NEXT, but for moving to the previous field. This will normally not be used to specify an action (since it precludes #IME_ACTION_NEXT, but can be returned to the app if it sets #IME_FLAG_NAVIGATE_PREVIOUS.
				 */
				static IME_ACTION_PREVIOUS: number;
				/**
				 * Flag of #imeOptions: used to request that the IME never go into fullscreen mode. Applications need to be aware that the flag is not a guarantee, and not all IMEs will respect it.
				 */
				static IME_FLAG_NO_FULLSCREEN: number;
				/**
				 * Flag of #imeOptions: like #IME_FLAG_NAVIGATE_NEXT, but specifies there is something interesting that a backward navigation can focus on. If the user selects the IME's facility to backward navigate, this will show up in the application as an #IME_ACTION_PREVIOUS at InputConnection#performEditorAction(int) InputConnection.performEditorAction(int).
				 */
				static IME_FLAG_NAVIGATE_PREVIOUS: number;
				/**
				 * Flag of #imeOptions: used to specify that there is something interesting that a forward navigation can focus on. This is like using #IME_ACTION_NEXT, except allows the IME to be multiline (with an enter key) as well as provide forward navigation. Note that some IMEs may not be able to do this, especially when running on a small screen where there is little space. In that case it does not need to present a UI for this option. Like #IME_ACTION_NEXT, if the user selects the IME's facility to forward navigate, this will show up in the application at InputConnection#performEditorAction(int) InputConnection.performEditorAction(int).
				 */
				static IME_FLAG_NAVIGATE_NEXT: number;
				/**
				 * Flag of #imeOptions: used to specify that the IME does not need to show its extracted text UI. For input methods that may be fullscreen, often when in landscape mode, this allows them to be smaller and let part of the application be shown behind. Though there will likely be limited access to the application available from the user, it can make the experience of a (mostly) fullscreen IME less jarring. Note that when this flag is specified the IME may <em>not</em> be set up to be able to display text, so it should only be used in situations where this is not needed.
				 */
				static IME_FLAG_NO_EXTRACT_UI: number;
				/**
				 * Flag of #imeOptions: used in conjunction with #IME_MASK_ACTION, this indicates that the action should not be available as an accessory button when the input method is full-screen. Note that by setting this flag, there can be cases where the action is simply never available to the user. Setting this generally means that you think showing text being edited is more important than the action you have supplied.
				 */
				static IME_FLAG_NO_ACCESSORY_ACTION: number;
				/**
				 * Flag of #imeOptions: used in conjunction with #IME_MASK_ACTION, this indicates that the action should not be available in-line as a replacement for "enter" key. Typically this is because the action has such a significant impact or is not recoverable enough that accidentally hitting it should be avoided, such as sending a message. Note that android.widget.TextView will automatically set this flag for you on multi-line text views.
				 */
				static IME_FLAG_NO_ENTER_ACTION: number;
				/**
				 * Flag of #imeOptions: used to request that the IME is capable of inputting ASCII characters. The intention of this flag is to ensure that the user can type Roman alphabet characters in a android.widget.TextView used for, typically, account ID or password input. It is expected that IMEs normally are able to input ASCII even without being told so (such IMEs already respect this flag in a sense), but there could be some cases they aren't when, for instance, only non-ASCII input languagaes like Arabic, Greek, Hebrew, Russian are enabled in the IME. Applications need to be aware that the flag is not a guarantee, and not all IMEs will respect it. However, it is strongly recommended for IME authors to respect this flag especially when their IME could end up with a state that has only non-ASCII input languages enabled.
				 */
				static IME_FLAG_FORCE_ASCII: number;
				/**
				 * Generic unspecified type for #imeOptions.
				 */
				static IME_NULL: number;
				/**
				 * Extended type information for the editor, to help the IME better integrate with it.
				 */
				imeOptions: number;
				/**
				 * A string supplying additional information options that are private to a particular IME implementation. The string must be scoped to a package owned by the implementation, to ensure there are no conflicts between implementations, but other than that you can put whatever you want in it to communicate with the IME. For example, you could have a string that supplies an argument like <code>"com.example.myapp.SpecialMode=3"</code>. This field is can be filled in from the android.R.attr#privateImeOptions attribute of a TextView.
				 */
				privateImeOptions: string;
				/**
				 * In some cases an IME may be able to display an arbitrary label for a command the user can perform, which you can specify here. You can not count on this being used.
				 */
				actionLabel: string;
				/**
				 * If #actionLabel has been given, this is the id for that command when the user presses its button that is delivered back with InputConnection#performEditorAction(int) InputConnection.performEditorAction().
				 */
				actionId: number;
				/**
				 * The text offset of the start of the selection at the time editing began; -1 if not known.
				 */
				initialSelStart: number;
				/**
				 * The text offset of the end of the selection at the time editing began; -1 if not known.
				 */
				initialSelEnd: number;
				/**
				 * The capitalization mode of the first character being edited in the text. Values may be any combination of TextUtils#CAP_MODE_CHARACTERS TextUtils.CAP_MODE_CHARACTERS, TextUtils#CAP_MODE_WORDS TextUtils.CAP_MODE_WORDS, and TextUtils#CAP_MODE_SENTENCES TextUtils.CAP_MODE_SENTENCES, though you should generally just take a non-zero value to mean start out in caps mode.
				 */
				initialCapsMode: number;
				/**
				 * The "hint" text of the text view, typically shown in-line when the text is empty to tell the user what to enter.
				 */
				hintText: string;
				/**
				 * A label to show to the user describing the text they are writing.
				 */
				label: string;
				/**
				 * Name of the package that owns this editor.
				 */
				packageName: string;
				/**
				 * Identifier for the editor's field. This is optional, and may be 0. By default it is filled in with the result of android.view.View#getId() View.getId() on the View that is being edited.
				 */
				fieldId: number;
				/**
				 * Additional name for the editor's field. This can supply additional name information for the field. By default it is null. The actual contents have no meaning.
				 */
				fieldName: string;
				/**
				 * Any extra data to supply to the input method. This is for extended communication with specific input methods; the name fields in the bundle should be scoped (such as "com.mydomain.im.SOME_FIELD") so that they don't conflict with others. This field is can be filled in from the android.R.attr#editorExtras attribute of a TextView.
				 */
				extras: android.os.Bundle;
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.EditorInfo>;
				static class: java.lang.Class<android.view.inputmethod.EditorInfo>;
				/**
				 * Ensure that the data in this EditorInfo is compatible with an application that was developed against the given target API version. This can impact the following input types: InputType#TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS, InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD, InputType#TYPE_NUMBER_VARIATION_NORMAL, InputType#TYPE_NUMBER_VARIATION_PASSWORD.
				 * @param targetSdkVersion The API version number that the compatible
				 */
				public makeCompatible(targetSdkVersion: number): void;
				/**
				 * Write debug output of this object.
				 */
				public dump(pw: android.util.IPrinter, prefix: string): void;
				/**
				 * Used to package this object into a Parcel. 
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * The InputMethod interface represents an input method which can generate key events and text, such as digital, email addresses, CJK characters, other language characters, and etc., while handling various input events, and send the text back to the application that requests text input. See InputMethodManager for more general information about the architecture.
			 */
			export class InputMethod implements android.view.inputmethod.IInputMethod {
				constructor(implementation: android.view.inputmethod.IInputMethod);
				/**
				 * This is the interface name that a service implementing an input method should say that it supports -- that is, this is the action it uses for its intent filter. To be supported, the service must also require the android.Manifest.permission#BIND_INPUT_METHOD permission so that other applications can not abuse it.
				 */
				static SERVICE_INTERFACE: string;
				/**
				 * Name under which an InputMethod service component publishes information about itself. This meta-data must reference an XML resource containing an <code>&lt;android.R.styleable#InputMethod input-method&gt;</code> tag.
				 */
				static SERVICE_META_DATA: string;
				/**
				 * Flag for #showSoftInput: this show has been explicitly requested by the user. If not set, the system has decided it may be a good idea to show the input method based on a navigation operation in the UI.
				 */
				static SHOW_EXPLICIT: number;
				/**
				 * Flag for #showSoftInput: this show has been forced to happen by the user. If set, the input method should remain visible until deliberated dismissed by the user in its UI.
				 */
				static SHOW_FORCED: number;
				/**
				 * Called first thing after an input method is created, this supplies a unique token for the session it has with the system service. It is needed to identify itself with the service to validate its operations. This token <strong>must not</strong> be passed to applications, since it grants special priviledges that should not be given to applications. 
				 */
				public attachToken(token: android.os.IIBinder): void;
				/**
				 * Bind a new application environment in to the input method, so that it can later start and stop input processing. Typically this method is called when this input method is enabled in an application for the first time. 
				 * @param binding Information about the application window that is binding
				 */
				public bindInput(binding: android.view.inputmethod.InputBinding): void;
				/**
				 * Unbind an application environment, called when the information previously set by #bindInput is no longer valid for this input method. 
				 */
				public unbindInput(): void;
				/**
				 * This method is called when the application starts to receive text and it is ready for this input method to process received events and send result text back to the application. 
				 * @param inputConnection Optional specific input connection for
				 * @param info Information about the text box (typically, an EditText)
				 */
				public startInput(inputConnection: android.view.inputmethod.IInputConnection, info: android.view.inputmethod.EditorInfo): void;
				/**
				 * This method is called when the state of this input method needs to be reset. 
				 * @param inputConnection Optional specific input connection for
				 * @param attribute The attribute of the text box (typically, a EditText)
				 */
				public restartInput(inputConnection: android.view.inputmethod.IInputConnection, attribute: android.view.inputmethod.EditorInfo): void;
				/**
				 * Create a new InputMethodSession that can be handed to client applications for interacting with the input method. You can later use #revokeSession(InputMethodSession) to destroy the session so that it can no longer be used by any clients. 
				 * @param callback Interface that is called with the newly created session.
				 */
				public createSession(callback: android.view.inputmethod.InputMethod.ISessionCallback): void;
				/**
				 * Control whether a particular input method session is active. 
				 * @param session The {@link InputMethodSession} previously provided through
				 * @param enabled 
				 */
				public setSessionEnabled(session: android.view.inputmethod.IInputMethodSession, enabled: boolean): void;
				/**
				 * Disable and destroy a session that was previously created with #createSession(android.view.inputmethod.InputMethod.SessionCallback). After this call, the given session interface is no longer active and calls on it will fail. 
				 * @param session The {@link InputMethodSession} previously provided through
				 */
				public revokeSession(session: android.view.inputmethod.IInputMethodSession): void;
				/**
				 * Request that any soft input part of the input method be shown to the user. 
				 * @param flags Provides additional information about the show request.
				 * @param resultReceiver The client requesting the show may wish to
				 */
				public showSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				/**
				 * Request that any soft input part of the input method be hidden from the user.
				 * @param flags Provides additional information about the show request.
				 * @param resultReceiver The client requesting the show may wish to
				 */
				public hideSoftInput(flags: number, resultReceiver: android.os.ResultReceiver): void;
				/**
				 * Notify that the input method subtype is being changed in the same input method.
				 * @param subtype New subtype of the notified input method
				 */
				public changeInputMethodSubtype(subtype: android.view.inputmethod.InputMethodSubtype): void;
			}
			export module InputMethod {
				interface ISessionCallback {
					sessionCreated(session: android.view.inputmethod.IInputMethodSession): void;
				}
				export class SessionCallback implements android.view.inputmethod.InputMethod.ISessionCallback {
					constructor(implementation: android.view.inputmethod.InputMethod.ISessionCallback);
					public sessionCreated(session: android.view.inputmethod.IInputMethodSession): void;
				}
			}
			/**
			 * Information given to an InputMethod about a client connecting to it.
			 */
			export class InputBinding extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor. 
				 * @param conn The interface for communicating back with the application.
				 * @param connToken A remoteable token for communicating across processes.
				 * @param uid The user id of the client of this binding.
				 * @param pid The process id of where the binding came from.
				 */
				constructor(conn: android.view.inputmethod.IInputConnection, connToken: android.os.IIBinder, uid: number, pid: number);
				/**
				 * Constructor from an existing InputBinding taking a new local input connection interface. 
				 * @param conn The new connection interface.
				 * @param binding Existing binding to copy.
				 */
				constructor(conn: android.view.inputmethod.IInputConnection, binding: android.view.inputmethod.InputBinding);
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.InputBinding>;
				static class: java.lang.Class<android.view.inputmethod.InputBinding>;
				/**
				 * Return the connection for interacting back with the application.
				 */
				public getConnection(): android.view.inputmethod.IInputConnection;
				/**
				 * Return the token for the connection back to the application. You can not use this directly, it must be converted to a InputConnection for you.
				 */
				public getConnectionToken(): android.os.IIBinder;
				/**
				 * Return the user id of the client associated with this binding.
				 */
				public getUid(): number;
				/**
				 * Return the process id where this binding came from.
				 */
				public getPid(): number;
				public toString(): string;
				/**
				 * Used to package this object into a Parcel. 
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * Description of what an input method would like from an application when extract text from its input editor.
			 */
			export class ExtractedTextRequest extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * Arbitrary integer that can be supplied in the request, which will be delivered back when reporting updates.
				 */
				token: number;
				/**
				 * Additional request flags, having the same possible values as the flags parameter of InputConnection#getTextBeforeCursor InputConnection.getTextBeforeCursor().
				 */
				flags: number;
				/**
				 * Hint for the maximum number of lines to return.
				 */
				hintMaxLines: number;
				/**
				 * Hint for the maximum number of characters to return.
				 */
				hintMaxChars: number;
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.ExtractedTextRequest>;
				static class: java.lang.Class<android.view.inputmethod.ExtractedTextRequest>;
				/**
				 * Used to package this object into a Parcel. 
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * Class allowing access to package-protected methods/fields.
			 */
			export class InputMethodManager_Accessor extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.view.inputmethod.InputMethodManager_Accessor>;
				public static resetInstance(): void;
			}
			/**
			 * Information about a single text correction that an editor has reported to an input method.
			 */
			export class CorrectionInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * @param offset The offset in the edited text where the old and new text start.
				 * @param oldText The old text that has been replaced.
				 * @param newText The replacement text.
				 */
				constructor(offset: number, oldText: string, newText: string);
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.view.inputmethod.CorrectionInfo>;
				static class: java.lang.Class<android.view.inputmethod.CorrectionInfo>;
				/**
				 * Return the offset position of this correction in the text. Both the #getOldText() and #getNewText() start at this offset.
				 */
				public getOffset(): number;
				/**
				 * Return the text that has actually been typed by the user, and which has been corrected.
				 */
				public getOldText(): string;
				/**
				 * Return the new text that corrects what was typed by the user.
				 */
				public getNewText(): string;
				public toString(): string;
				/**
				 * Used to package this object into a Parcel.
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * Delegate used to provide new implementation of a select few methods of InputMethodManager
			 */
			export class InputMethodManager_Delegate extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.view.inputmethod.InputMethodManager_Delegate>;
				static getInstance(mainLooper: android.os.Looper): android.view.inputmethod.InputMethodManager;
				static getInstance(context: android.content.Context): android.view.inputmethod.InputMethodManager;
			}
		}
		/**
		 * An OpenGL ES 2.0 implementation of HardwareLayer. This implementation can be used a rendering target. It generates a Canvas that can be used to render into an FBO using OpenGL.
		 */
		export class GLES20RenderLayer extends android.view.GLES20Layer {
			static class: java.lang.Class<android.view.GLES20RenderLayer>;
			isValid(): boolean;
			resize(width: number, height: number): boolean;
			setOpaque(isOpaque: boolean): void;
			end(currentCanvas: android.graphics.Canvas): void;
			/**
			 * Ignored
			 */
			setTransform(matrix: android.graphics.Matrix): void;
		}
		/**
		 * Helper for tracking the velocity of touch events, for implementing flinging and other such gestures.
		 */
		export class VelocityTracker extends java.lang.Object {
			static class: java.lang.Class<android.view.VelocityTracker>;
			/**
			 * Retrieve a new VelocityTracker object to watch the velocity of a motion. Be sure to call #recycle when done. You should generally only maintain an active object while tracking a movement, so that the VelocityTracker can be re-used elsewhere.
			 */
			public static obtain(): android.view.VelocityTracker;
			/**
			 * Return a VelocityTracker object back to be re-used by others. You must not touch the object after calling this function.
			 */
			public recycle(): void;
			protected finalize(): void;
			/**
			 * Reset the velocity tracker back to its initial state.
			 */
			public clear(): void;
			/**
			 * Add a user's movement to the tracker. You should call this for the initial MotionEvent#ACTION_DOWN, the following MotionEvent#ACTION_MOVE events that you receive, and the final MotionEvent#ACTION_UP. You can, however, call this for whichever events you desire. 
			 * @param event The MotionEvent you received and would like to track.
			 */
			public addMovement(event: android.view.MotionEvent): void;
			/**
			 * Equivalent to invoking #computeCurrentVelocity(int, float) with a maximum velocity of Float.MAX_VALUE. #computeCurrentVelocity(int, float)
			 */
			public computeCurrentVelocity(units: number): void;
			/**
			 * Compute the current velocity based on the points that have been collected. Only call this when you actually want to retrieve velocity information, as it is relatively expensive. You can then retrieve the velocity with #getXVelocity() and #getYVelocity(). 
			 * @param units The units you would like the velocity in. A value of 1
			 * @param maxVelocity The maximum velocity that can be computed by this method.
			 */
			public computeCurrentVelocity(units: number, maxVelocity: number): void;
			/**
			 * Retrieve the last computed X velocity. You must first call #computeCurrentVelocity(int) before calling this function. 
			 */
			public getXVelocity(): number;
			/**
			 * Retrieve the last computed Y velocity. You must first call #computeCurrentVelocity(int) before calling this function. 
			 */
			public getYVelocity(): number;
			/**
			 * Retrieve the last computed X velocity. You must first call #computeCurrentVelocity(int) before calling this function. 
			 * @param id Which pointer's velocity to return.
			 */
			public getXVelocity(id: number): number;
			/**
			 * Retrieve the last computed Y velocity. You must first call #computeCurrentVelocity(int) before calling this function. 
			 * @param id Which pointer's velocity to return.
			 */
			public getYVelocity(id: number): number;
		}
		/**
		 * When a View implements this interface it will receive callbacks when expanded or collapsed as an action view alongside the optional, app-specified callbacks to OnActionExpandListener.
		 */
		export class CollapsibleActionView implements android.view.ICollapsibleActionView {
			constructor(implementation: android.view.ICollapsibleActionView);
			/**
			 * Called when this view is expanded as an action view. See MenuItem#expandActionView().
			 */
			public onActionViewExpanded(): void;
			/**
			 * Called when this view is collapsed as an action view. See MenuItem#collapseActionView().
			 */
			public onActionViewCollapsed(): void;
		}
		/**
		 * Defines the responsibilities for a class that will be a parent of a View. This is the API that a view sees when it wants to interact with its parent. 
		 */
		export class ViewParent implements android.view.IViewParent {
			constructor(implementation: android.view.IViewParent);
			/**
			 * Called when something has changed which has invalidated the layout of a child of this view parent. This will schedule a layout pass of the view tree.
			 */
			public requestLayout(): void;
			/**
			 * Indicates whether layout was requested on this view parent.
			 */
			public isLayoutRequested(): boolean;
			/**
			 * Called when a child wants the view hierarchy to gather and report transparent regions to the window compositor. Views that "punch" holes in the view hierarchy, such as SurfaceView can use this API to improve performance of the system. When no such a view is present in the hierarchy, this optimization in unnecessary and might slightly reduce the view hierarchy performance. 
			 * @param child the view requesting the transparent region computation
			 */
			public requestTransparentRegion(child: android.view.View): void;
			/**
			 * All or part of a child is dirty and needs to be redrawn. 
			 * @param child The child which is dirty
			 * @param r The area within the child that is invalid
			 */
			public invalidateChild(child: android.view.View, r: android.graphics.Rect): void;
			/**
			 * All or part of a child is dirty and needs to be redrawn.
			 * @param location An array of 2 ints containing the left and top
			 * @param r The area within the child that is invalid
			 */
			public invalidateChildInParent(location: native.Array<number>, r: android.graphics.Rect): android.view.IViewParent;
			/**
			 * Returns the parent if it exists, or null.
			 */
			public getParent(): android.view.IViewParent;
			/**
			 * Called when a child of this parent wants focus 
			 * @param child The child of this ViewParent that wants focus. This view
			 * @param focused The view that is a descendant of child that actually has
			 */
			public requestChildFocus(child: android.view.View, focused: android.view.View): void;
			/**
			 * Tell view hierarchy that the global view attributes need to be re-evaluated. 
			 * @param child View whose attributes have changed.
			 */
			public recomputeViewAttributes(child: android.view.View): void;
			/**
			 * Called when a child of this parent is giving up focus 
			 * @param child The view that is giving up focus
			 */
			public clearChildFocus(child: android.view.View): void;
			/**
			 * Compute the visible part of a rectangular region defined in terms of a child view's coordinates.
			 * @param child A child View, whose rectangular visible region we want to compute
			 * @param r The input rectangle, defined in the child coordinate system. Will be overwritten to
			 * @param offset The input coordinates of a point, defined in the child coordinate system.
			 */
			public getChildVisibleRect(child: android.view.View, r: android.graphics.Rect, offset: android.graphics.Point): boolean;
			/**
			 * Find the nearest view in the specified direction that wants to take focus 
			 * @param v The view that currently has focus
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 */
			public focusSearch(v: android.view.View, direction: number): android.view.View;
			/**
			 * Change the z order of the child so it's on top of all other children 
			 * @param child 
			 */
			public bringChildToFront(child: android.view.View): void;
			/**
			 * Tells the parent that a new focusable view has become available. This is to handle transitions from the case where there are no focusable views to the case where the first focusable view appears. 
			 * @param v The view that has become newly focusable
			 */
			public focusableViewAvailable(v: android.view.View): void;
			/**
			 * Bring up a context menu for the specified view or its ancestors.
			 * @param originalView The source view where the context menu was first invoked
			 */
			public showContextMenuForChild(originalView: android.view.View): boolean;
			/**
			 * Have the parent populate the specified context menu if it has anything to add (and then recurse on its parent). 
			 * @param menu The menu to populate
			 */
			public createContextMenu(menu: android.view.IContextMenu): void;
			/**
			 * Start an action mode for the specified view.
			 * @param originalView The source view where the action mode was first invoked
			 * @param callback The callback that will handle lifecycle events for the action mode
			 */
			public startActionModeForChild(originalView: android.view.View, callback: android.view.ActionMode.ICallback): android.view.ActionMode;
			/**
			 * This method is called on the parent when a child's drawable state has changed.
			 * @param child The child whose drawable state has changed.
			 */
			public childDrawableStateChanged(child: android.view.View): void;
			/**
			 * Called when a child does not want this parent and its ancestors to intercept touch events with ViewGroup#onInterceptTouchEvent(MotionEvent).
			 * @param disallowIntercept True if the child does not want the parent to
			 */
			public requestDisallowInterceptTouchEvent(disallowIntercept: boolean): void;
			/**
			 * Called when a child of this group wants a particular rectangle to be positioned onto the screen. ViewGroups overriding this can trust that: <ul> <li>child will be a direct child of this group</li> <li>rectangle will be in the child's coordinates</li> </ul>
			 * @param child The direct child making the request.
			 * @param rectangle The rectangle in the child's coordinates the child
			 * @param immediate True to forbid animated or delayed scrolling,
			 */
			public requestChildRectangleOnScreen(child: android.view.View, rectangle: android.graphics.Rect, immediate: boolean): boolean;
			/**
			 * Called by a child to request from its parent to send an AccessibilityEvent. The child has already populated a record for itself in the event and is delegating to its parent to send the event. The parent can optionally add a record for itself.
			 * @param child The child which requests sending the event.
			 * @param event The event to be sent.
			 */
			public requestSendAccessibilityEvent(child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 * Ask that a new dispatch of View#fitSystemWindows(Rect) View.fitSystemWindows(Rect) be performed.
			 */
			public requestFitSystemWindows(): void;
			/**
			 * Gets the parent of a given View for accessibility. Since some Views are not exposed to the accessibility layer the parent for accessibility is not necessarily the direct parent of the View, rather it is a predecessor.
			 */
			public getParentForAccessibility(): android.view.IViewParent;
		}
		export module menu {
			/**
			 * Utility base class for creating various Menu scenarios. Configurable by the number of menu items. Used ListScenario as a reference.
			 */
			export class MenuScenario extends android.app.Activity implements android.view.MenuItem.IOnMenuItemClickListener {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuScenario>;
				protected onCreate(icicle: android.os.Bundle): void;
				public setParams(params: android.view.menu.MenuScenario.Params): void;
				public onParamsChanged(): void;
				public onCreateOptionsMenu(menu: android.view.IMenu): boolean;
				public onPrepareOptionsMenu(menu: android.view.IMenu): boolean;
				/**
				 * Override this to add an item to the menu. 
				 * @param menu itemPosition The position of the item to add (only for your
				 * @param itemPosition 
				 */
				protected onAddMenuItem(menu: android.view.IMenu, itemPosition: number): android.view.IMenuItem;
				/**
				 * Override this to set the parameters for the scenario. Call through to super first. 
				 * @param params 
				 */
				protected onInitParams(params: android.view.menu.MenuScenario.Params): void;
				public getMenu(): android.view.IMenu;
				public onMenuItemClick(item: android.view.IMenuItem): boolean;
				public wasItemClicked(position: number): boolean;
				/**
				 * Finds the position for a given Item. 
				 * @param item The item to find.
				 */
				public findItemPosition(item: android.view.IMenuItem): number;
			}
			export module MenuScenario {
				export class Params extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.view.menu.MenuScenario.Params>;
					public setShouldShowMenu(shouldShowMenu: boolean): android.view.menu.MenuScenario.Params;
					public setNumItems(numItems: number): android.view.menu.MenuScenario.Params;
					public setListenForClicks(listenForClicks: boolean): android.view.menu.MenuScenario.Params;
					public setItemTitle(itemPos: number, title: string): android.view.menu.MenuScenario.Params;
				}
			}
			export class MenuLayoutPortraitTest extends android.test.ActivityInstrumentationTestCase<android.view.menu.MenuLayoutPortrait> {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuLayoutPortraitTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public test1ShortItem(): void;
				public test1LongItem(): void;
				public test2LongItems(): void;
				public test2ShortItems(): void;
				public test3ShortItems(): void;
				public test3VarietyItems(): void;
				public test3VarietyItems2(): void;
				public test4LongItems(): void;
				public test4ShortItems(): void;
				public test4VarietyItems(): void;
				public test5ShortItems(): void;
				public test5LongItems(): void;
				public test5VarietyItems(): void;
				public test6LongItems(): void;
				public test6ShortItems(): void;
				public test6VarietyItems(): void;
			}
			export class MenuWith1ItemTest extends android.test.ActivityInstrumentationTestCase<android.view.menu.MenuWith1Item> {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuWith1ItemTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public testItemClick(): void;
				public testTouchModeTransfersRemovesFocus(): void;
			}
			export class MenuLayout extends android.view.menu.MenuScenario {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuLayout>;
				protected onInitParams(params: android.view.menu.MenuScenario.Params): void;
				public onPrepareOptionsMenu(menu: android.view.IMenu): boolean;
				public getButton(): android.widget.Button;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			/**
			 * An activity (inherits from MenuLayout) that shows in portrait.
			 */
			export class MenuLayoutPortrait extends android.view.menu.MenuLayout {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuLayoutPortrait>;
			}
			export class MenuLayoutLandscapeTest extends android.test.ActivityInstrumentationTestCase<android.view.menu.MenuLayoutLandscape> {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuLayoutLandscapeTest>;
				protected setUp(): void;
				public testPreconditions(): void;
				public test1ShortItem(): void;
				public test1LongItem(): void;
				public test2LongItems(): void;
				public test2ShortItems(): void;
				public test3ShortItems(): void;
				public test3VarietyItems(): void;
				public test3VarietyItems2(): void;
				public test4LongItems(): void;
				public test4ShortItems(): void;
				public test4VarietyItems(): void;
				public test5ShortItems(): void;
				public test5LongItems(): void;
				public test5VarietyItems(): void;
				public test6LongItems(): void;
				public test6ShortItems(): void;
				public test6VarietyItems(): void;
			}
			export class MenuWith1Item extends android.view.menu.MenuScenario {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuWith1Item>;
				protected onInitParams(params: android.view.menu.MenuScenario.Params): void;
				public getButton(): android.widget.Button;
				protected onCreate(icicle: android.os.Bundle): void;
			}
			/**
			 * An activity (inherits from MenuLayout) that shows in landscape.
			 */
			export class MenuLayoutLandscape extends android.view.menu.MenuLayout {
				constructor();
				static class: java.lang.Class<android.view.menu.MenuLayoutLandscape>;
			}
		}
		export class MenuTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.view.MenuTest>;
			public setUp(): void;
			public testItemId(): void;
			public testGroupId(): void;
			public testGroup(): void;
			public testIsShortcutWithAlpha(): void;
			public testIsShortcutWithNumeric(): void;
			public testIsShortcutWithAlt(): void;
			public testIsNotShortcutWithShift(): void;
			public testIsNotShortcutWithSym(): void;
			public testIsShortcutWithUpperCaseAlpha(): void;
			public testIsShortcutWithBackspace(): void;
			public testIsShortcutWithNewline(): void;
			public testOrder(): void;
			public testTitle(): void;
			public testCheckable(): void;
			public testVisibility(): void;
			public testSubMenu(): void;
			public testRemove(): void;
		}
		/**
		 * Exercises android.view.View's disabled property.
		 */
		export class DisabledTest extends android.test.ActivityInstrumentationTestCase<android.view.Disabled> {
			constructor();
			static class: java.lang.Class<android.view.DisabledTest>;
			public setUp(): void;
			protected tearDown(): void;
			public testSetUpConditions(): void;
			public testKeypadClick(): void;
			public testTouchClick(): void;
		}
		/**
		 * Exercise <merge /> tag in XML files.
		 */
		export class Merge extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.Merge>;
			protected onCreate(icicle: android.os.Bundle): void;
			public getLayout(): android.view.ViewGroup;
		}
		/**
		 * Interface to let you add and remove child views to an Activity. To get an instance of this class, call android.content.Context#getSystemService(java.lang.String) Context.getSystemService().
		 */
		interface IViewManager {
			/**
			 * Assign the passed LayoutParams to the passed View and add the view to the window.
			 * @param view The view to be added to this window.
			 * @param params The LayoutParams to assign to view.
			 */
			addView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			updateViewLayout(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			removeView(view: android.view.View): void;
		}
		export class ViewAttachTest extends android.test.ActivityInstrumentationTestCase2<android.view.ViewAttachTestActivity> {
			constructor();
			static class: java.lang.Class<android.view.ViewAttachTest>;
			/**
			 * Make sure that onAttachedToWindow and onDetachedToWindow is called in the correct order. The ViewAttachTestActivity contains a view that will throw a RuntimeException if onDetachedToWindow and onAttachedToWindow are called in the wrong order.
			 */
			public testAttached(): void;
		}
		/**
		 * Provides information about the size and density of a logical display.
		 */
		export class Display extends java.lang.Object {
			/**
			 * The default Display id, which is the id of the built-in primary display assuming there is one.
			 */
			static DEFAULT_DISPLAY: number;
			/**
			 * Display flag: Indicates that the display supports compositing content that is stored in protected graphics buffers.
			 */
			static FLAG_SUPPORTS_PROTECTED_BUFFERS: number;
			/**
			 * Display flag: Indicates that the display has a secure video output and supports compositing secure surfaces.
			 */
			static FLAG_SECURE: number;
			static class: java.lang.Class<android.view.Display>;
			/**
			 * Gets the display id.
			 */
			public getDisplayId(): number;
			/**
			 * Returns true if this display is still valid, false if the display has been removed.
			 */
			public isValid(): boolean;
			/**
			 * Returns a combination of flags that describe the capabilities of the display.
			 */
			public getFlags(): number;
			/**
			 * Gets the name of the display.
			 */
			public getName(): string;
			/**
			 * Gets the size of the display, in pixels.
			 * @param outSize A {@link Point} object to receive the size information.
			 */
			public getSize(outSize: android.graphics.Point): void;
			/**
			 * Gets the size of the display as a rectangle, in pixels.
			 * @param outSize A {@link Rect} object to receive the size information.
			 */
			public getRectSize(outSize: android.graphics.Rect): void;
			/**
			 * Return the range of display sizes an application can expect to encounter under normal operation, as long as there is no physical change in screen size. This is basically the sizes you will see as the orientation changes, taking into account whatever screen decoration there is in each rotation. For example, the status bar is always at the top of the screen, so it will reduce the height both in landscape and portrait, and the smallest height returned here will be the smaller of the two.
			 * @param outSmallestSize Filled in with the smallest width and height
			 * @param outLargestSize Filled in with the largest width and height
			 */
			public getCurrentSizeRange(outSmallestSize: android.graphics.Point, outLargestSize: android.graphics.Point): void;
			/**
			 *  Use #getSize(Point) instead.
			 */
			public getWidth(): number;
			/**
			 *  Use #getSize(Point) instead.
			 */
			public getHeight(): number;
			/**
			 * Returns the rotation of the screen from its "natural" orientation. The returned value may be Surface#ROTATION_0 Surface.ROTATION_0 (no rotation), Surface#ROTATION_90 Surface.ROTATION_90, Surface#ROTATION_180 Surface.ROTATION_180, or Surface#ROTATION_270 Surface.ROTATION_270. For example, if a device has a naturally tall screen, and the user has turned it on its side to go into a landscape orientation, the value returned here may be either Surface#ROTATION_90 Surface.ROTATION_90 or Surface#ROTATION_270 Surface.ROTATION_270 depending on the direction it was turned. The angle is the rotation of the drawn graphics on the screen, which is the opposite direction of the physical rotation of the device. For example, if the device is rotated 90 degrees counter-clockwise, to compensate rendering will be rotated by 90 degrees clockwise and thus the returned value here will be Surface#ROTATION_90 Surface.ROTATION_90.
			 */
			public getRotation(): number;
			/**
			 *  use #getRotation
			 */
			public getOrientation(): number;
			/**
			 * Gets the pixel format of the display.
			 */
			public getPixelFormat(): number;
			/**
			 * Gets the refresh rate of this display in frames per second.
			 */
			public getRefreshRate(): number;
			/**
			 * Gets display metrics that describe the size and density of this display.
			 * @param outMetrics A {@link DisplayMetrics} object to receive the metrics.
			 */
			public getMetrics(outMetrics: android.util.DisplayMetrics): void;
			/**
			 * Gets the real size of the display without subtracting any window decor or applying any compatibility scale factors.
			 * @param outSize Set to the real size of the display.
			 */
			public getRealSize(outSize: android.graphics.Point): void;
			/**
			 * Gets display metrics based on the real size of this display.
			 * @param outMetrics A {@link DisplayMetrics} object to receive the metrics.
			 */
			public getRealMetrics(outMetrics: android.util.DisplayMetrics): void;
			public toString(): string;
		}
		/**
		 * Custom implementation of LayoutInflater to handle custom views.
		 */
		export class BridgeInflater extends android.view.LayoutInflater {
			static class: java.lang.Class<android.view.BridgeInflater>;
			public onCreateView(name: string, attrs: android.util.IAttributeSet): android.view.View;
			public createViewFromTag(parent: android.view.View, name: string, attrs: android.util.IAttributeSet): android.view.View;
			public inflate(resource: number, root: android.view.ViewGroup): android.view.View;
			public setIsInMerge(isInMerge: boolean): void;
			public cloneInContext(newContext: android.content.Context): android.view.LayoutInflater;
			/**
			 * Inflate a new view hierarchy from the specified xml node. Throws InflateException if there is an error. *
			 * @param parser XML dom node containing the description of the view
			 * @param root Optional view to be the parent of the generated hierarchy.
			 */
			inflate(parser: org.xmlpull.v1.IXmlPullParser, root: android.view.ViewGroup): android.view.View;
			/**
			 * Inflate a new view hierarchy from the specified xml resource. Throws InflateException if there is an error. 
			 * @param resource ID for an XML layout resource to load (e.g.,
			 * @param root Optional view to be the parent of the generated hierarchy (if
			 * @param attachToRoot Whether the inflated hierarchy should be attached to
			 */
			inflate(resource: number, root: android.view.ViewGroup, attachToRoot: boolean): android.view.View;
			/**
			 * Inflate a new view hierarchy from the specified XML node. Throws InflateException if there is an error.
			 * @param parser XML dom node containing the description of the view
			 * @param root Optional view to be the parent of the generated hierarchy (if
			 * @param attachToRoot Whether the inflated hierarchy should be attached to
			 */
			inflate(parser: org.xmlpull.v1.IXmlPullParser, root: android.view.ViewGroup, attachToRoot: boolean): android.view.View;
			/**
			 * Version of #onCreateView(String, AttributeSet) that also takes the future parent of the view being constructure. The default implementation simply calls #onCreateView(String, AttributeSet).
			 * @param parent The future parent of the returned view. <em>Note that
			 * @param name The fully qualified class name of the View to be create.
			 * @param attrs An AttributeSet of attributes to apply to the View.
			 */
			public onCreateView(parent: android.view.View, name: string, attrs: android.util.IAttributeSet): android.view.View;
		}
		/**
		 * Helper class for receiving notifications from the SensorManager when the orientation of the device has changed.
		 */
		export class OrientationEventListener extends java.lang.Object {
			/**
			 * Creates a new OrientationEventListener. 
			 * @param context for the OrientationEventListener.
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates a new OrientationEventListener. 
			 * @param context for the OrientationEventListener.
			 * @param rate at which sensor events are processed (see also
			 */
			constructor(context: android.content.Context, rate: number);
			/**
			 * Returned from onOrientationChanged when the device orientation cannot be determined (typically when the device is in a close to flat position).
			 */
			static ORIENTATION_UNKNOWN: number;
			static class: java.lang.Class<android.view.OrientationEventListener>;
			registerListener(lis: android.view.OrientationListener): void;
			/**
			 * Enables the OrientationEventListener so it will monitor the sensor and call #onOrientationChanged when the device orientation changes.
			 */
			public enable(): void;
			/**
			 * Disables the OrientationEventListener.
			 */
			public disable(): void;
			public canDetectOrientation(): boolean;
			/**
			 * Called when the orientation of the device has changed. orientation parameter is in degrees, ranging from 0 to 359. orientation is 0 degrees when the device is oriented in its natural position, 90 degrees when its left side is at the top, 180 degrees when it is upside down, and 270 degrees when its right side is to the top. #ORIENTATION_UNKNOWN is returned when the device is close to flat and the orientation cannot be determined.
			 * @param orientation The new orientation of the device.
			 */
			public onOrientationChanged(orientation: number): void;
		}
		export module OrientationEventListener {
			export class SensorEventListenerImpl extends java.lang.Object implements android.hardware.ISensorEventListener {
				static class: java.lang.Class<android.view.OrientationEventListener.SensorEventListenerImpl>;
				public onSensorChanged(event: android.hardware.SensorEvent): void;
				public onAccuracyChanged(sensor: android.hardware.Sensor, accuracy: number): void;
			}
		}
		/**
		 * Interface to let you add and remove child views to an Activity. To get an instance of this class, call android.content.Context#getSystemService(java.lang.String) Context.getSystemService().
		 */
		export class ViewManager implements android.view.IViewManager {
			constructor(implementation: android.view.IViewManager);
			/**
			 * Assign the passed LayoutParams to the passed View and add the view to the window.
			 * @param view The view to be added to this window.
			 * @param params The LayoutParams to assign to view.
			 */
			public addView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			public updateViewLayout(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			public removeView(view: android.view.View): void;
		}
		/**
		 * Exercise <include /> tag in XML files.
		 */
		export class Include extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.Include>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		export class ViewStubTest extends android.test.ActivityInstrumentationTestCase<android.view.StubbedView> {
			constructor();
			static class: java.lang.Class<android.view.ViewStubTest>;
			public setUp(): void;
			public testStubbed(): void;
			public testInflated(): void;
			public testInflatedId(): void;
			public testInflatedLayoutParams(): void;
		}
		/**
		 * Delegate used to provide new implementation of a select few methods of View
		 */
		export class View_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.View_Delegate>;
			static isInEditMode(thisView: android.view.View): boolean;
		}
		export class CreateViewTest extends android.test.AndroidTestCase implements android.test.IPerformanceTestCase {
			constructor();
			static class: java.lang.Class<android.view.CreateViewTest>;
			public isPerformanceOnly(): boolean;
			public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			public testLayout1(): void;
			public testLayout2(): void;
			public testLayout3(): void;
			public testLayout4(): void;
			public testLayout5(): void;
			public testLayout6(): void;
		}
		export module CreateViewTest {
			export class ViewOne extends android.view.View {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.view.CreateViewTest.ViewOne>;
			}
		}
		/**
		 * Exercise View's disabled state.
		 */
		export class Disabled extends android.app.Activity implements android.view.View.IOnClickListener {
			constructor();
			static class: java.lang.Class<android.view.Disabled>;
			protected onCreate(icicle: android.os.Bundle): void;
			public onClick(v: android.view.View): void;
		}
		/**
		 * This activity contains two Views, one as big as the screen, one much larger. The large one should not be able to activate its drawing cache.
		 */
		export class BigCache extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.BigCache>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		/**
		 * Various debugging/tracing tools related to View and the view hierarchy.
		 */
		export class ViewDebug extends java.lang.Object {
			constructor();
			/**
			 *  This flag is now unused
			 */
			static TRACE_HIERARCHY: boolean;
			/**
			 *  This flag is now unused
			 */
			static TRACE_RECYCLER: boolean;
			static class: java.lang.Class<android.view.ViewDebug>;
			/**
			 *  This method is now unused and invoking it is a no-op
			 */
			public static trace(view: android.view.View, type: android.view.ViewDebug.RecyclerTraceType, parameters: native.Array<number>): void;
			/**
			 *  This method is now unused and invoking it is a no-op
			 */
			public static startRecyclerTracing(prefix: string, view: android.view.View): void;
			/**
			 *  This method is now unused and invoking it is a no-op
			 */
			public static stopRecyclerTracing(): void;
			/**
			 *  This method is now unused and invoking it is a no-op
			 */
			public static trace(view: android.view.View, type: android.view.ViewDebug.HierarchyTraceType): void;
			/**
			 *  This method is now unused and invoking it is a no-op
			 */
			public static startHierarchyTracing(prefix: string, view: android.view.View): void;
			/**
			 *  This method is now unused and invoking it is a no-op
			 */
			public static stopHierarchyTracing(): void;
			static dispatchCommand(view: android.view.View, command: string, parameters: string, clientStream: java.io.OutputStream): void;
			static resolveId(context: android.content.Context, id: number): any;
			/**
			 * Dump view info for id based instrument test generation (and possibly further data analysis). The results are dumped to the log.
			 * @param tag for log
			 * @param view for dump
			 */
			public static dumpCapturedView(tag: string, view: any): void;
		}
		export module ViewDebug {
			/**
			 * Defines a mapping from an int value to a String. Such a mapping can be used in an to provide more meaningful values to the end user.
			 */
			interface IIntToString extends java.lang.annotation.IAnnotation {
				/**
				 * The original int value to map to a String.
				 */
				from(): number;
				/**
				 * The String to use in place of the original int value.
				 */
				to(): string;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines a mapping from an int value to a String. Such a mapping can be used in an to provide more meaningful values to the end user.
			 */
			export class IntToString implements java.lang.annotation.IAnnotation, android.view.ViewDebug.IIntToString {
				constructor(implementation: android.view.ViewDebug.IIntToString);
				/**
				 * The original int value to map to a String.
				 */
				public from(): number;
				/**
				 * The String to use in place of the original int value.
				 */
				public to(): string;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines a mapping from a flag to a String. Such a mapping can be used in an to provide more meaningful values to the end user.
			 */
			export class FlagToString implements java.lang.annotation.IAnnotation, android.view.ViewDebug.IFlagToString {
				constructor(implementation: android.view.ViewDebug.IFlagToString);
				/**
				 * The mask to apply to the original value.
				 */
				public mask(): number;
				/**
				 * The value to compare to the result of: <code>original value &amp; #mask()</code>.
				 */
				public equals(): number;
				/**
				 * The String to use in place of the original int value.
				 */
				public name(): string;
				/**
				 * Indicates whether to output the flag when the test is true, or false. Defaults to true.
				 */
				public outputIf(): boolean;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			interface IViewOperation<T> {
				pre(): native.Array<T>;
				run(data: native.Array<T>): void;
				post(data: native.Array<T>): void;
			}
			/**
			 * This annotation can be used to mark fields and methods to be dumped by the view server. Only non-void methods with no arguments can be annotated by this annotation.
			 */
			export class ExportedProperty implements java.lang.annotation.IAnnotation, android.view.ViewDebug.IExportedProperty {
				constructor(implementation: android.view.ViewDebug.IExportedProperty);
				/**
				 * When resolveId is true, and if the annotated field/method return value is an int, the value is converted to an Android's resource name.
				 */
				public resolveId(): boolean;
				/**
				 * A mapping can be defined to map int values to specific strings. For instance, View.getVisibility() returns 0, 4 or 8. However, these values actually mean VISIBLE, INVISIBLE and GONE. A mapping can be used to see these human readable values:
				 */
				public mapping(): native.Array<android.view.ViewDebug.IIntToString>;
				/**
				 * A mapping can be defined to map array indices to specific strings. A mapping can be used to see human readable values for the indices of an array:
				 */
				public indexMapping(): native.Array<android.view.ViewDebug.IIntToString>;
				/**
				 * A flags mapping can be defined to map flags encoded in an integer to specific strings. A mapping can be used to see human readable values for the flags of an integer:
				 */
				public flagMapping(): native.Array<android.view.ViewDebug.IFlagToString>;
				/**
				 * When deep export is turned on, this property is not dumped. Instead, the properties contained in this property are dumped. Each child property is prefixed with the name of this property.
				 */
				public deepExport(): boolean;
				/**
				 * The prefix to use on child properties when deep export is enabled
				 */
				public prefix(): string;
				/**
				 * Specifies the category the property falls into, such as measurement, layout, drawing, etc.
				 */
				public category(): string;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * This annotation can be used to mark fields and methods to be dumped when the view is captured. Methods with this annotation must have no arguments and must return a valid type of data.
			 */
			export class CapturedViewProperty implements java.lang.annotation.IAnnotation, android.view.ViewDebug.ICapturedViewProperty {
				constructor(implementation: android.view.ViewDebug.ICapturedViewProperty);
				/**
				 * When retrieveReturn is true, we need to retrieve second level methods e.g., we need myView.getFirstLevelMethod().getSecondLevelMethod() we will set retrieveReturn = true on the annotation of myView.getFirstLevelMethod()
				 */
				public retrieveReturn(): boolean;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * Defines a mapping from a flag to a String. Such a mapping can be used in an to provide more meaningful values to the end user.
			 */
			interface IFlagToString extends java.lang.annotation.IAnnotation {
				/**
				 * The mask to apply to the original value.
				 */
				mask(): number;
				/**
				 * The value to compare to the result of: <code>original value &amp; #mask()</code>.
				 */
				equals(): number;
				/**
				 * The String to use in place of the original int value.
				 */
				name(): string;
				/**
				 * Indicates whether to output the flag when the test is true, or false. Defaults to true.
				 */
				outputIf(): boolean;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 * This annotation can be used to mark fields and methods to be dumped by the view server. Only non-void methods with no arguments can be annotated by this annotation.
			 */
			interface IExportedProperty extends java.lang.annotation.IAnnotation {
				/**
				 * When resolveId is true, and if the annotated field/method return value is an int, the value is converted to an Android's resource name.
				 */
				resolveId(): boolean;
				/**
				 * A mapping can be defined to map int values to specific strings. For instance, View.getVisibility() returns 0, 4 or 8. However, these values actually mean VISIBLE, INVISIBLE and GONE. A mapping can be used to see these human readable values:
				 */
				mapping(): native.Array<android.view.ViewDebug.IIntToString>;
				/**
				 * A mapping can be defined to map array indices to specific strings. A mapping can be used to see human readable values for the indices of an array:
				 */
				indexMapping(): native.Array<android.view.ViewDebug.IIntToString>;
				/**
				 * A flags mapping can be defined to map flags encoded in an integer to specific strings. A mapping can be used to see human readable values for the flags of an integer:
				 */
				flagMapping(): native.Array<android.view.ViewDebug.IFlagToString>;
				/**
				 * When deep export is turned on, this property is not dumped. Instead, the properties contained in this property are dumped. Each child property is prefixed with the name of this property.
				 */
				deepExport(): boolean;
				/**
				 * The prefix to use on child properties when deep export is enabled
				 */
				prefix(): string;
				/**
				 * Specifies the category the property falls into, such as measurement, layout, drawing, etc.
				 */
				category(): string;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
			/**
			 *  This enum is now unused
			 */
			export enum HierarchyTraceType {
				INVALIDATE,
				INVALIDATE_CHILD,
				INVALIDATE_CHILD_IN_PARENT,
				REQUEST_LAYOUT,
				ON_LAYOUT,
				ON_MEASURE,
				DRAW,
				BUILD_CACHE
			}
			/**
			 *  This enum is now unused
			 */
			export enum RecyclerTraceType {
				NEW_VIEW,
				BIND_VIEW,
				RECYCLE_FROM_ACTIVE_HEAP,
				RECYCLE_FROM_SCRAP_HEAP,
				MOVE_TO_SCRAP_HEAP,
				MOVE_FROM_ACTIVE_TO_SCRAP_HEAP
			}
			export class ViewOperation<T> implements android.view.ViewDebug.IViewOperation<T> {
				constructor(implementation: android.view.ViewDebug.IViewOperation<T>);
				public pre(): native.Array<T>;
				public run(data: native.Array<T>): void;
				public post(data: native.Array<T>): void;
			}
			/**
			 * This annotation can be used to mark fields and methods to be dumped when the view is captured. Methods with this annotation must have no arguments and must return a valid type of data.
			 */
			interface ICapturedViewProperty extends java.lang.annotation.IAnnotation {
				/**
				 * When retrieveReturn is true, we need to retrieve second level methods e.g., we need myView.getFirstLevelMethod().getSecondLevelMethod() we will set retrieveReturn = true on the annotation of myView.getFirstLevelMethod()
				 */
				retrieveReturn(): boolean;
				/**
				 * Returns the type of this annotation.
				 */
				annotationType(): java.lang.Class<any>;
				/**
				 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
				 * @param obj 
				 */
				equals(obj: any): boolean;
				/**
				 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
				 */
				hashCode(): number;
				/**
				 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
				 */
				toString(): string;
			}
		}
		/**
		 * Class allowing access to package-protected methods/fields.
		 */
		export class ViewConfiguration_Accessor extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.ViewConfiguration_Accessor>;
			public static clearConfigurations(): void;
		}
		export module GLES20Canvas {
			export class CanvasFinalizer extends java.lang.Object {
				constructor(renderer: number);
				static class: java.lang.Class<android.view.GLES20Canvas.CanvasFinalizer>;
				protected finalize(): void;
			}
		}
		/**
		 * Tests views with popupWindows becoming invisible
		 */
		export class PopupWindowVisibility extends android.app.Activity implements android.view.View.IOnClickListener {
			constructor();
			static class: java.lang.Class<android.view.PopupWindowVisibility>;
			protected onCreate(icicle: android.os.Bundle): void;
			public onClick(v: android.view.View): void;
		}
		export class MergeTest extends android.test.ActivityInstrumentationTestCase<android.view.Merge> {
			constructor();
			static class: java.lang.Class<android.view.MergeTest>;
			public setUp(): void;
			public testMerged(): void;
		}
		export class RunQueueTest extends android.test.ActivityInstrumentationTestCase<android.view.RunQueue> {
			constructor();
			static class: java.lang.Class<android.view.RunQueueTest>;
			public setUp(): void;
			public testRunnableRan(): void;
			public testRunnableCancelled(): void;
			public testListenerFired(): void;
			public testTreeObserverKilled(): void;
		}
		/**
		 * Delegate used to provide new implementation of a select few methods of WindowManagerGlobal
		 */
		export class WindowManagerGlobal_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.WindowManagerGlobal_Delegate>;
		}
		/**
		 * Exercise ViewGroup's ability to add and remove children.
		 */
		export class ViewGroupChildren extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.ViewGroupChildren>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		/**
		 * Helper class to handle situations where you want a view to have a larger touch area than its actual view bounds. The view whose touch area is changed is called the delegate view. This class should be used by an ancestor of the delegate. To use a TouchDelegate, first create an instance that specifies the bounds that should be mapped to the delegate and the delegate view itself.
		 */
		export class TouchDelegate extends java.lang.Object {
			/**
			 * Constructor 
			 * @param bounds Bounds in local coordinates of the containing view that should be mapped to
			 * @param delegateView The view that should receive motion events
			 */
			constructor(bounds: android.graphics.Rect, delegateView: android.view.View);
			/**
			 * The touchable region of the View extends above its actual extent.
			 */
			static ABOVE: number;
			/**
			 * The touchable region of the View extends below its actual extent.
			 */
			static BELOW: number;
			/**
			 * The touchable region of the View extends to the left of its actual extent.
			 */
			static TO_LEFT: number;
			/**
			 * The touchable region of the View extends to the right of its actual extent.
			 */
			static TO_RIGHT: number;
			static class: java.lang.Class<android.view.TouchDelegate>;
			/**
			 * Will forward touch events to the delegate view if the event is within the bounds specified in the constructor. 
			 * @param event The touch event to forward
			 */
			public onTouchEvent(event: android.view.MotionEvent): boolean;
		}
		/**
		 * Exercises context menus in lists
		 */
		export class ListContextMenu extends android.app.ListActivity implements android.view.View.IOnCreateContextMenuListener {
			constructor();
			static class: java.lang.Class<android.view.ListContextMenu>;
			ThrashListAdapter: {
	new (context: android.content.Context): android.view.ListContextMenu.ThrashListAdapter;
};
			public onCreate(icicle: android.os.Bundle): void;
			public onCreateOptionsMenu(menu: android.view.IMenu): boolean;
			public onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
			public onOptionsItemSelected(item: android.view.IMenuItem): boolean;
			public onOptionsMenuClosed(menu: android.view.IMenu): void;
			public onContextItemSelected(item: android.view.IMenuItem): boolean;
			public onContextMenuClosed(menu: android.view.IMenu): void;
		}
		export module ListContextMenu {
			export class ThrashListAdapter extends android.widget.BaseAdapter {
				static class: java.lang.Class<android.view.ListContextMenu.ThrashListAdapter>;
				public getCount(): number;
				public getItem(position: number): any;
				public getItemId(position: number): any;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			}
		}
		/**
		 * Builds the drawing cache of two Views, one smaller than the maximum cache size, one larger than the maximum cache size. The latter should always have a null drawing cache.
		 */
		export class BigCacheTest extends android.test.ActivityInstrumentationTestCase<android.view.BigCache> {
			constructor();
			static class: java.lang.Class<android.view.BigCacheTest>;
			public setUp(): void;
			public testSetUpConditions(): void;
			public testDrawingCacheBelowMaximumSize(): void;
			public testDrawingCacheAboveMaximumSize(): void;
		}
		/**
		 * Delegate used to provide new implementation of a select few methods of Display
		 */
		export class Display_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.Display_Delegate>;
			static updateDisplayInfoLocked(theDisplay: android.view.Display): void;
		}
		export class MutateDrawable extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.MutateDrawable>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
		}
		/**
		 * Exercise View's ability to change their visibility: GONE, INVISIBLE and VISIBLE.
		 */
		export class Visibility extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.view.Visibility>;
			protected onCreate(icicle: android.os.Bundle): void;
		}
		/**
		 * Detects scaling transformation gestures using the supplied MotionEvents. The OnScaleGestureListener callback will notify users when a particular gesture event has occurred.
		 */
		export class ScaleGestureDetector extends java.lang.Object {
			constructor(context: android.content.Context, listener: android.view.ScaleGestureDetector.IOnScaleGestureListener);
			static class: java.lang.Class<android.view.ScaleGestureDetector>;
			/**
			 * Accepts MotionEvents and dispatches events to a OnScaleGestureListener when appropriate.
			 * @param event The event to process
			 */
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Returns true if a scale gesture is in progress.
			 */
			public isInProgress(): boolean;
			/**
			 * Get the X coordinate of the current gesture's focal point. If a gesture is in progress, the focal point is between each of the pointers forming the gesture.
			 */
			public getFocusX(): number;
			/**
			 * Get the Y coordinate of the current gesture's focal point. If a gesture is in progress, the focal point is between each of the pointers forming the gesture.
			 */
			public getFocusY(): number;
			/**
			 * Return the average distance between each of the pointers forming the gesture in progress through the focal point.
			 */
			public getCurrentSpan(): number;
			/**
			 * Return the average X distance between each of the pointers forming the gesture in progress through the focal point.
			 */
			public getCurrentSpanX(): number;
			/**
			 * Return the average Y distance between each of the pointers forming the gesture in progress through the focal point.
			 */
			public getCurrentSpanY(): number;
			/**
			 * Return the previous average distance between each of the pointers forming the gesture in progress through the focal point.
			 */
			public getPreviousSpan(): number;
			/**
			 * Return the previous average X distance between each of the pointers forming the gesture in progress through the focal point.
			 */
			public getPreviousSpanX(): number;
			/**
			 * Return the previous average Y distance between each of the pointers forming the gesture in progress through the focal point.
			 */
			public getPreviousSpanY(): number;
			/**
			 * Return the scaling factor from the previous scale event to the current event. This value is defined as (#getCurrentSpan() / #getPreviousSpan()).
			 */
			public getScaleFactor(): number;
			/**
			 * Return the time difference in milliseconds between the previous accepted scaling event and the current scaling event.
			 */
			public getTimeDelta(): any;
			/**
			 * Return the event time of the current event being processed.
			 */
			public getEventTime(): any;
		}
		export module ScaleGestureDetector {
			/**
			 * A convenience class to extend when you only want to listen for a subset of scaling-related events. This implements all methods in OnScaleGestureListener but does nothing. OnScaleGestureListener#onScale(ScaleGestureDetector) returns false so that a subclass can retrieve the accumulated scale factor in an overridden onScaleEnd. OnScaleGestureListener#onScaleBegin(ScaleGestureDetector) returns true.
			 */
			export class SimpleOnScaleGestureListener extends java.lang.Object implements android.view.ScaleGestureDetector.IOnScaleGestureListener {
				constructor();
				static class: java.lang.Class<android.view.ScaleGestureDetector.SimpleOnScaleGestureListener>;
				public onScale(detector: android.view.ScaleGestureDetector): boolean;
				public onScaleBegin(detector: android.view.ScaleGestureDetector): boolean;
				public onScaleEnd(detector: android.view.ScaleGestureDetector): void;
			}
			/**
			 * The listener for receiving notifications when gestures occur. If you want to listen for all the different gestures then implement this interface. If you only want to listen for a subset it might be easier to extend SimpleOnScaleGestureListener.
			 */
			interface IOnScaleGestureListener {
				/**
				 * Responds to scaling events for a gesture in progress. Reported by pointer motion.
				 * @param detector The detector reporting the event - use this to
				 */
				onScale(detector: android.view.ScaleGestureDetector): boolean;
				/**
				 * Responds to the beginning of a scaling gesture. Reported by new pointers going down.
				 * @param detector The detector reporting the event - use this to
				 */
				onScaleBegin(detector: android.view.ScaleGestureDetector): boolean;
				/**
				 * Responds to the end of a scale gesture. Reported by existing pointers going up.
				 * @param detector The detector reporting the event - use this to
				 */
				onScaleEnd(detector: android.view.ScaleGestureDetector): void;
			}
			/**
			 * The listener for receiving notifications when gestures occur. If you want to listen for all the different gestures then implement this interface. If you only want to listen for a subset it might be easier to extend SimpleOnScaleGestureListener.
			 */
			export class OnScaleGestureListener implements android.view.ScaleGestureDetector.IOnScaleGestureListener {
				constructor(implementation: android.view.ScaleGestureDetector.IOnScaleGestureListener);
				/**
				 * Responds to scaling events for a gesture in progress. Reported by pointer motion.
				 * @param detector The detector reporting the event - use this to
				 */
				public onScale(detector: android.view.ScaleGestureDetector): boolean;
				/**
				 * Responds to the beginning of a scaling gesture. Reported by new pointers going down.
				 * @param detector The detector reporting the event - use this to
				 */
				public onScaleBegin(detector: android.view.ScaleGestureDetector): boolean;
				/**
				 * Responds to the end of a scale gesture. Reported by existing pointers going up.
				 * @param detector The detector reporting the event - use this to
				 */
				public onScaleEnd(detector: android.view.ScaleGestureDetector): void;
			}
		}
		/**
		 * Coordinates the timing of animations, input and drawing.
		 */
		export class Choreographer extends java.lang.Object {
			static class: java.lang.Class<android.view.Choreographer>;
			FrameHandler: {
	new (looper: android.os.Looper): android.view.Choreographer.FrameHandler;
};
			FrameDisplayEventReceiver: {
	new (looper: android.os.Looper): android.view.Choreographer.FrameDisplayEventReceiver;
};
			/**
			 * Gets the choreographer for the calling thread. Must be called from a thread that already has a android.os.Looper associated with it.
			 */
			public static getInstance(): android.view.Choreographer;
			/**
			 * Posts a frame callback to run on the next frame.
			 * @param callback The frame callback to run during the next frame.
			 */
			public postFrameCallback(callback: android.view.Choreographer.IFrameCallback): void;
			/**
			 * Posts a frame callback to run on the next frame after the specified delay.
			 * @param callback The frame callback to run during the next frame.
			 * @param delayMillis The delay time in milliseconds.
			 */
			public postFrameCallbackDelayed(callback: android.view.Choreographer.IFrameCallback, delayMillis: number): void;
			/**
			 * Removes a previously posted frame callback.
			 * @param callback The frame callback to remove.
			 */
			public removeFrameCallback(callback: android.view.Choreographer.IFrameCallback): void;
			doFrame(frameTimeNanos: number, frame: number): void;
			doCallbacks(callbackType: number, frameTimeNanos: number): void;
			doScheduleVsync(): void;
			doScheduleCallback(callbackType: number): void;
		}
		export module Choreographer {
			/**
			 * Implement this interface to receive a callback when a new display frame is being rendered. The callback is invoked on the Looper thread to which the Choreographer is attached.
			 */
			export class FrameCallback implements android.view.Choreographer.IFrameCallback {
				constructor(implementation: android.view.Choreographer.IFrameCallback);
				/**
				 * Called when a new display frame is being rendered.
				 * @param frameTimeNanos The time in nanoseconds when the frame started being rendered,
				 */
				public doFrame(frameTimeNanos: number): void;
			}
			export class FrameHandler extends android.os.Handler {
				static class: java.lang.Class<android.view.Choreographer.FrameHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			export class CallbackRecord extends java.lang.Object {
				next: android.view.Choreographer.CallbackRecord;
				dueTime: number;
				action: any;
				token: any;
				static class: java.lang.Class<android.view.Choreographer.CallbackRecord>;
				public run(frameTimeNanos: number): void;
			}
			/**
			 * Implement this interface to receive a callback when a new display frame is being rendered. The callback is invoked on the Looper thread to which the Choreographer is attached.
			 */
			interface IFrameCallback {
				/**
				 * Called when a new display frame is being rendered.
				 * @param frameTimeNanos The time in nanoseconds when the frame started being rendered,
				 */
				doFrame(frameTimeNanos: number): void;
			}
			export class FrameDisplayEventReceiver extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.view.Choreographer.FrameDisplayEventReceiver>;
				public onVsync(timestampNanos: number, builtInDisplayId: number, frame: number): void;
				public run(): void;
			}
			export class CallbackQueue extends java.lang.Object {
				static class: java.lang.Class<android.view.Choreographer.CallbackQueue>;
				public hasDueCallbacksLocked(now: number): boolean;
				public extractDueCallbacksLocked(now: number): android.view.Choreographer.CallbackRecord;
				public addCallbackLocked(dueTime: number, action: any, token: any): void;
				public removeCallbacksLocked(action: any, token: any): void;
			}
		}
		export class MutateDrawableTest extends android.test.ActivityInstrumentationTestCase2<android.view.MutateDrawable> {
			constructor();
			static class: java.lang.Class<android.view.MutateDrawableTest>;
			protected setUp(): void;
			public testSetUpConditions(): void;
			public testDrawableCanMutate(): void;
		}
		export class GlobalFocusChangeTest extends android.test.ActivityInstrumentationTestCase<android.view.GlobalFocusChange> {
			constructor();
			static class: java.lang.Class<android.view.GlobalFocusChangeTest>;
			public setUp(): void;
			protected tearDown(): void;
			public testFocusChange(): void;
			public testEnterTouchMode(): void;
			public testLeaveTouchMode(): void;
		}
		/**
		 * Extension of Menu for context menus providing functionality to modify the header of the context menu.
		 */
		export class ContextMenu implements android.view.IMenu, android.view.IContextMenu {
			constructor(implementation: android.view.IContextMenu);
			/**
			 * Sets the context menu header's title to the title given in <var>titleRes</var> resource identifier. 
			 * @param titleRes The string resource identifier used for the title.
			 */
			public setHeaderTitle(titleRes: number): android.view.IContextMenu;
			/**
			 * Sets the context menu header's title to the title given in <var>title</var>. 
			 * @param title The character sequence used for the title.
			 */
			public setHeaderTitle(title: string): android.view.IContextMenu;
			/**
			 * Sets the context menu header's icon to the icon given in <var>iconRes</var> resource id. 
			 * @param iconRes The resource identifier used for the icon.
			 */
			public setHeaderIcon(iconRes: number): android.view.IContextMenu;
			/**
			 * Sets the context menu header's icon to the icon given in <var>icon</var> Drawable. 
			 * @param icon The {@link Drawable} used for the icon.
			 */
			public setHeaderIcon(icon: android.graphics.drawable.Drawable): android.view.IContextMenu;
			/**
			 * Sets the header of the context menu to the View given in <var>view</var>. This replaces the header title and icon (and those replace this). 
			 * @param view The {@link View} used for the header.
			 */
			public setHeaderView(view: android.view.View): android.view.IContextMenu;
			/**
			 * Clears the header of the context menu.
			 */
			public clearHeader(): void;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param title The text to display for the item.
			 */
			add(title: string): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param titleRes Resource identifier of title string.
			 */
			add(titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new item to the menu. This item displays the given title for its label. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			add(groupId: number, itemId: number, order: number, title: string): android.view.IMenuItem;
			/**
			 * Variation on #add(int, int, int, CharSequence) that takes a string resource identifier instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param titleRes Resource identifier of title string.
			 */
			add(groupId: number, itemId: number, order: number, titleRes: number): android.view.IMenuItem;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param title The text to display for the item.
			 */
			addSubMenu(title: string): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given title for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem(). 
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(titleRes: number): android.view.ISubMenu;
			/**
			 * Add a new sub-menu to the menu. This item displays the given <var>title</var> for its label. To modify other attributes on the submenu's menu item, use SubMenu#getItem().
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the item. Use {@link #NONE} if you do not care
			 * @param title The text to display for the item.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, title: string): android.view.ISubMenu;
			/**
			 * Variation on #addSubMenu(int, int, int, CharSequence) that takes a string resource identifier for the title instead of the string itself. 
			 * @param groupId The group identifier that this item should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a unique ID.
			 * @param order The order for the item. Use {@link #NONE} if you do not care about the
			 * @param titleRes Resource identifier of title string.
			 */
			addSubMenu(groupId: number, itemId: number, order: number, titleRes: number): android.view.ISubMenu;
			/**
			 * Add a group of menu items corresponding to actions that can be performed for a particular Intent. The Intent is most often configured with a null action, the data that the current activity is working with, and includes either the Intent#CATEGORY_ALTERNATIVE or Intent#CATEGORY_SELECTED_ALTERNATIVE to find activities that have said they would like to be included as optional action. You can, however, use any Intent you want. 
			 * @param groupId The group identifier that the items should be part of.
			 * @param itemId Unique item ID. Use {@link #NONE} if you do not need a
			 * @param order The order for the items. Use {@link #NONE} if you do not
			 * @param caller The current activity component name as defined by
			 * @param specifics Specific items to place first as defined by
			 * @param intent Intent describing the kinds of items to populate in the
			 * @param flags Additional options controlling how the items are added.
			 * @param outSpecificItems Optional array in which to place the menu items
			 */
			addIntentOptions(groupId: number, itemId: number, order: number, caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number, outSpecificItems: native.Array<android.view.IMenuItem>): number;
			/**
			 * Remove the item with the given identifier.
			 * @param id The item to be removed. If there is no item with this
			 */
			removeItem(id: number): void;
			/**
			 * Remove all items in the given group.
			 * @param groupId The group to be removed. If there are no items in this
			 */
			removeGroup(groupId: number): void;
			/**
			 * Remove all existing items from the menu, leaving it empty as if it had just been created.
			 */
			clear(): void;
			/**
			 * Control whether a particular group of items can show a check mark. This is similar to calling MenuItem#setCheckable on all of the menu items with the given group identifier, but in addition you can control whether this group contains a mutually-exclusive set items. This should be called after the items of the group have been added to the menu.
			 * @param group The group of items to operate on.
			 * @param checkable Set to true to allow a check mark, false to
			 * @param exclusive If set to true, only one item in this group can be
			 */
			setGroupCheckable(group: number, checkable: boolean, exclusive: boolean): void;
			/**
			 * Show or hide all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param visible If true the items are visible, else they are hidden.
			 */
			setGroupVisible(group: number, visible: boolean): void;
			/**
			 * Enable or disable all menu items that are in the given group.
			 * @param group The group of items to operate on.
			 * @param enabled If true the items will be enabled, else they will be disabled.
			 */
			setGroupEnabled(group: number, enabled: boolean): void;
			/**
			 * Return whether the menu currently has item items that are visible.
			 */
			hasVisibleItems(): boolean;
			/**
			 * Return the menu item with a particular identifier.
			 * @param id The identifier to find.
			 */
			findItem(id: number): android.view.IMenuItem;
			/**
			 * Get the number of items in the menu. Note that this will change any times items are added or removed from the menu.
			 */
			size(): number;
			/**
			 * Gets the menu item at the given index. 
			 * @param index The index of the menu item to return.
			 */
			getItem(index: number): android.view.IMenuItem;
			/**
			 * Closes the menu, if open.
			 */
			close(): void;
			/**
			 * Execute the menu item action associated with the given shortcut character.
			 * @param keyCode The keycode of the shortcut key.
			 * @param event Key event message.
			 * @param flags Additional option flags or 0.
			 */
			performShortcut(keyCode: number, event: android.view.KeyEvent, flags: number): boolean;
			/**
			 * Is a keypress one of the defined shortcut keys for this window.
			 * @param keyCode the key code from {@link KeyEvent} to check.
			 * @param event the {@link KeyEvent} to use to help check.
			 */
			isShortcutKey(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Execute the menu item action associated with the given menu identifier. 
			 * @param id Identifier associated with the menu item.
			 * @param flags Additional option flags or 0.
			 */
			performIdentifierAction(id: number, flags: number): boolean;
			/**
			 * Control whether the menu should be running in qwerty mode (alphabetic shortcuts) or 12-key mode (numeric shortcuts). 
			 * @param isQwerty If true the menu will use alphabetic shortcuts; else it
			 */
			setQwertyMode(isQwerty: boolean): void;
		}
		export module ContextMenu {
			/**
			 * Additional information regarding the creation of the context menu. For example, AdapterViews use this to pass the exact item position within the adapter that initiated the context menu.
			 */
			export class ContextMenuInfo implements android.view.ContextMenu.IContextMenuInfo {
				constructor(implementation: android.view.ContextMenu.IContextMenuInfo);
			}
			/**
			 * Additional information regarding the creation of the context menu. For example, AdapterViews use this to pass the exact item position within the adapter that initiated the context menu.
			 */
			interface IContextMenuInfo {
			}
		}
		/**
		 * The interface that apps use to talk to the window manager.
		 */
		export class WindowManager implements android.view.IViewManager, android.view.IWindowManager {
			constructor(implementation: android.view.IWindowManager);
			/**
			 * Returns the Display upon which this WindowManager instance will create new windows.
			 */
			public getDefaultDisplay(): android.view.Display;
			/**
			 * Special variation of #removeView that immediately invokes the given view hierarchy's View#onDetachedFromWindow() View.onDetachedFromWindow() methods before returning. This is not for normal applications; using it correctly requires great care. 
			 * @param view The view to be removed.
			 */
			public removeViewImmediate(view: android.view.View): void;
			/**
			 * Assign the passed LayoutParams to the passed View and add the view to the window.
			 * @param view The view to be added to this window.
			 * @param params The LayoutParams to assign to view.
			 */
			addView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			updateViewLayout(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			removeView(view: android.view.View): void;
		}
		export module WindowManager {
			export class LayoutParams extends android.view.ViewGroup.LayoutParams implements android.os.IParcelable {
				constructor();
				constructor(_type: number);
				constructor(_type: number, _flags: number);
				constructor(_type: number, _flags: number, _format: number);
				constructor(w: number, h: number, _type: number, _flags: number, _format: number);
				constructor(w: number, h: number, xpos: number, ypos: number, _type: number, _flags: number, _format: number);
				constructor(input: android.os.Parcel);
				/**
				 * X position for this window. With the default gravity it is ignored. When using Gravity#LEFT or Gravity#START or Gravity#RIGHT or Gravity#END it provides an offset from the given edge.
				 */
				x: number;
				/**
				 * Y position for this window. With the default gravity it is ignored. When using Gravity#TOP or Gravity#BOTTOM it provides an offset from the given edge.
				 */
				y: number;
				/**
				 * Indicates how much of the extra space will be allocated horizontally to the view associated with these LayoutParams. Specify 0 if the view should not be stretched. Otherwise the extra pixels will be pro-rated among all views whose weight is greater than 0.
				 */
				horizontalWeight: number;
				/**
				 * Indicates how much of the extra space will be allocated vertically to the view associated with these LayoutParams. Specify 0 if the view should not be stretched. Otherwise the extra pixels will be pro-rated among all views whose weight is greater than 0.
				 */
				verticalWeight: number;
				/**
				 * The general type of window. There are three main classes of window types: <ul> <li> <strong>Application windows</strong> (ranging from #FIRST_APPLICATION_WINDOW to #LAST_APPLICATION_WINDOW) are normal top-level application windows. For these types of windows, the #token must be set to the token of the activity they are a part of (this will normally be done for you if #token is null). <li> <strong>Sub-windows</strong> (ranging from #FIRST_SUB_WINDOW to #LAST_SUB_WINDOW) are associated with another top-level window. For these types of windows, the #token must be the token of the window it is attached to. <li> <strong>System windows</strong> (ranging from #FIRST_SYSTEM_WINDOW to #LAST_SYSTEM_WINDOW) are special types of windows for use by the system for specific purposes. They should not normally be used by applications, and a special permission is required to use them. </ul> #TYPE_BASE_APPLICATION #TYPE_APPLICATION #TYPE_APPLICATION_STARTING #TYPE_APPLICATION_PANEL #TYPE_APPLICATION_MEDIA #TYPE_APPLICATION_SUB_PANEL #TYPE_APPLICATION_ATTACHED_DIALOG #TYPE_STATUS_BAR #TYPE_SEARCH_BAR #TYPE_PHONE #TYPE_SYSTEM_ALERT #TYPE_KEYGUARD #TYPE_TOAST #TYPE_SYSTEM_OVERLAY #TYPE_PRIORITY_PHONE #TYPE_STATUS_BAR_PANEL #TYPE_SYSTEM_DIALOG #TYPE_KEYGUARD_DIALOG #TYPE_SYSTEM_ERROR #TYPE_INPUT_METHOD #TYPE_INPUT_METHOD_DIALOG
				 */
				type: number;
				/**
				 * Start of window types that represent normal application windows.
				 */
				static FIRST_APPLICATION_WINDOW: number;
				/**
				 * Window type: an application window that serves as the "base" window of the overall application; all other application windows will appear on top of it. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_BASE_APPLICATION: number;
				/**
				 * Window type: a normal application window. The #token must be an Activity token identifying who the window belongs to. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_APPLICATION: number;
				/**
				 * Window type: special application window that is displayed while the application is starting. Not for use by applications themselves; this is used by the system to display something until the application can show its own windows. In multiuser systems shows on all users' windows.
				 */
				static TYPE_APPLICATION_STARTING: number;
				/**
				 * End of types of application windows.
				 */
				static LAST_APPLICATION_WINDOW: number;
				/**
				 * Start of types of sub-windows. The #token of these windows must be set to the window they are attached to. These types of windows are kept next to their attached window in Z-order, and their coordinate space is relative to their attached window.
				 */
				static FIRST_SUB_WINDOW: number;
				/**
				 * Window type: a panel on top of an application window. These windows appear on top of their attached window.
				 */
				static TYPE_APPLICATION_PANEL: number;
				/**
				 * Window type: window for showing media (e.g. video). These windows are displayed behind their attached window.
				 */
				static TYPE_APPLICATION_MEDIA: number;
				/**
				 * Window type: a sub-panel on top of an application window. These windows are displayed on top their attached window and any #TYPE_APPLICATION_PANEL panels.
				 */
				static TYPE_APPLICATION_SUB_PANEL: number;
				/**
				 * Window type: like #TYPE_APPLICATION_PANEL, but layout of the window happens as that of a top-level window, <em>not</em> as a child of its container.
				 */
				static TYPE_APPLICATION_ATTACHED_DIALOG: number;
				/**
				 * End of types of sub-windows.
				 */
				static LAST_SUB_WINDOW: number;
				/**
				 * Start of system-specific window types. These are not normally created by applications.
				 */
				static FIRST_SYSTEM_WINDOW: number;
				/**
				 * Window type: the status bar. There can be only one status bar window; it is placed at the top of the screen, and all other windows are shifted down so they are below it. In multiuser systems shows on all users' windows.
				 */
				static TYPE_STATUS_BAR: number;
				/**
				 * Window type: the search bar. There can be only one search bar window; it is placed at the top of the screen. In multiuser systems shows on all users' windows.
				 */
				static TYPE_SEARCH_BAR: number;
				/**
				 * Window type: phone. These are non-application windows providing user interaction with the phone (in particular incoming calls). These windows are normally placed above all applications, but behind the status bar. In multiuser systems shows on all users' windows.
				 */
				static TYPE_PHONE: number;
				/**
				 * Window type: system window, such as low power alert. These windows are always on top of application windows. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_SYSTEM_ALERT: number;
				/**
				 * Window type: keyguard window. In multiuser systems shows on all users' windows.
				 */
				static TYPE_KEYGUARD: number;
				/**
				 * Window type: transient notifications. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_TOAST: number;
				/**
				 * Window type: system overlay windows, which need to be displayed on top of everything else. These windows must not take input focus, or they will interfere with the keyguard. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_SYSTEM_OVERLAY: number;
				/**
				 * Window type: priority phone UI, which needs to be displayed even if the keyguard is active. These windows must not take input focus, or they will interfere with the keyguard. In multiuser systems shows on all users' windows.
				 */
				static TYPE_PRIORITY_PHONE: number;
				/**
				 * Window type: panel that slides out from the status bar In multiuser systems shows on all users' windows.
				 */
				static TYPE_SYSTEM_DIALOG: number;
				/**
				 * Window type: dialogs that the keyguard shows In multiuser systems shows on all users' windows.
				 */
				static TYPE_KEYGUARD_DIALOG: number;
				/**
				 * Window type: internal system error windows, appear on top of everything they can. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_SYSTEM_ERROR: number;
				/**
				 * Window type: internal input methods windows, which appear above the normal UI. Application windows may be resized or panned to keep the input focus visible while this window is displayed. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_INPUT_METHOD: number;
				/**
				 * Window type: internal input methods dialog windows, which appear above the current input method window. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_INPUT_METHOD_DIALOG: number;
				/**
				 * Window type: wallpaper window, placed behind any window that wants to sit on top of the wallpaper. In multiuser systems shows only on the owning user's window.
				 */
				static TYPE_WALLPAPER: number;
				/**
				 * Window type: panel that slides out from over the status bar In multiuser systems shows on all users' windows.
				 */
				static TYPE_STATUS_BAR_PANEL: number;
				/**
				 * End of types of system windows.
				 */
				static LAST_SYSTEM_WINDOW: number;
				/**
				 *  this is ignored, this value is set automatically when needed.
				 */
				static MEMORY_TYPE_NORMAL: number;
				/**
				 *  this is ignored, this value is set automatically when needed.
				 */
				static MEMORY_TYPE_HARDWARE: number;
				/**
				 *  this is ignored, this value is set automatically when needed.
				 */
				static MEMORY_TYPE_GPU: number;
				/**
				 *  this is ignored, this value is set automatically when needed.
				 */
				static MEMORY_TYPE_PUSH_BUFFERS: number;
				/**
				 *  this is ignored
				 */
				memoryType: number;
				/**
				 * Window flag: as long as this window is visible to the user, allow the lock screen to activate while the screen is on. This can be used independently, or in combination with #FLAG_KEEP_SCREEN_ON and/or #FLAG_SHOW_WHEN_LOCKED
				 */
				static FLAG_ALLOW_LOCK_WHILE_SCREEN_ON: number;
				/**
				 * Window flag: everything behind this window will be dimmed. Use #dimAmount to control the amount of dim.
				 */
				static FLAG_DIM_BEHIND: number;
				/**
				 * Window flag: blur everything behind this window. Blurring is no longer supported.
				 */
				static FLAG_BLUR_BEHIND: number;
				/**
				 * Window flag: this window won't ever get key input focus, so the user can not send key or other button events to it. Those will instead go to whatever focusable window is behind it. This flag will also enable #FLAG_NOT_TOUCH_MODAL whether or not that is explicitly set. 
				 */
				static FLAG_NOT_FOCUSABLE: number;
				/**
				 * Window flag: this window can never receive touch events.
				 */
				static FLAG_NOT_TOUCHABLE: number;
				/**
				 * Window flag: Even when this window is focusable (its { #FLAG_NOT_FOCUSABLE is not set), allow any pointer events outside of the window to be sent to the windows behind it. Otherwise it will consume all pointer events itself, regardless of whether they are inside of the window.
				 */
				static FLAG_NOT_TOUCH_MODAL: number;
				/**
				 * Window flag: When set, if the device is asleep when the touch screen is pressed, you will receive this first touch event. Usually the first touch event is consumed by the system since the user can not see what they are pressing on.
				 */
				static FLAG_TOUCHABLE_WHEN_WAKING: number;
				/**
				 * Window flag: as long as this window is visible to the user, keep the device's screen turned on and bright.
				 */
				static FLAG_KEEP_SCREEN_ON: number;
				/**
				 * Window flag: place the window within the entire screen, ignoring decorations around the border (a.k.a. the status bar). The window must correctly position its contents to take the screen decoration into account. This flag is normally set for you by Window as described in Window#setFlags.
				 */
				static FLAG_LAYOUT_IN_SCREEN: number;
				/**
				 * Window flag: allow window to extend outside of the screen.
				 */
				static FLAG_LAYOUT_NO_LIMITS: number;
				/**
				 * Window flag: Hide all screen decorations (e.g. status bar) while this window is displayed. This allows the window to use the entire display space for itself -- the status bar will be hidden when an app window with this flag set is on the top layer.
				 */
				static FLAG_FULLSCREEN: number;
				/**
				 * Window flag: Override { #FLAG_FULLSCREEN and force the screen decorations (such as status bar) to be shown.
				 */
				static FLAG_FORCE_NOT_FULLSCREEN: number;
				/**
				 * Window flag: turn on dithering when compositing this window to the screen. This flag is no longer used.
				 */
				static FLAG_DITHER: number;
				/**
				 * Window flag: Treat the content of the window as secure, preventing it from appearing in screenshots or from being viewed on non-secure displays.
				 */
				static FLAG_SECURE: number;
				/**
				 * Window flag: a special mode where the layout parameters are used to perform scaling of the surface when it is composited to the screen.
				 */
				static FLAG_SCALED: number;
				/**
				 * Window flag: intended for windows that will often be used when the user is holding the screen against their face, it will aggressively filter the event stream to prevent unintended presses in this situation that may not be desired for a particular window, when such an event stream is detected, the application will receive a CANCEL motion event to indicate this so applications can handle this accordingly by taking no action on the event until the finger is released.
				 */
				static FLAG_IGNORE_CHEEK_PRESSES: number;
				/**
				 * Window flag: a special option only for use in combination with #FLAG_LAYOUT_IN_SCREEN. When requesting layout in the screen your window may appear on top of or behind screen decorations such as the status bar. By also including this flag, the window manager will report the inset rectangle needed to ensure your content is not covered by screen decorations. This flag is normally set for you by Window as described in Window#setFlags.
				 */
				static FLAG_LAYOUT_INSET_DECOR: number;
				/**
				 * Window flag: invert the state of #FLAG_NOT_FOCUSABLE with respect to how this window interacts with the current method. That is, if FLAG_NOT_FOCUSABLE is set and this flag is set, then the window will behave as if it needs to interact with the input method and thus be placed behind/away from it; if FLAG_NOT_FOCUSABLE is not set and this flag is set, then the window will behave as if it doesn't need to interact with the input method and can be placed to use more space and cover the input method.
				 */
				static FLAG_ALT_FOCUSABLE_IM: number;
				/**
				 * Window flag: if you have set #FLAG_NOT_TOUCH_MODAL, you can set this flag to receive a single special MotionEvent with the action MotionEvent#ACTION_OUTSIDE MotionEvent.ACTION_OUTSIDE for touches that occur outside of your window. Note that you will not receive the full down/move/up gesture, only the location of the first down as an ACTION_OUTSIDE.
				 */
				static FLAG_WATCH_OUTSIDE_TOUCH: number;
				/**
				 * Window flag: special flag to let windows be shown when the screen is locked. This will let application windows take precedence over key guard or any other lock screens. Can be used with #FLAG_KEEP_SCREEN_ON to turn screen on and display windows directly before showing the key guard window. Can be used with #FLAG_DISMISS_KEYGUARD to automatically fully dismisss non-secure keyguards. This flag only applies to the top-most full-screen window.
				 */
				static FLAG_SHOW_WHEN_LOCKED: number;
				/**
				 * Window flag: ask that the system wallpaper be shown behind your window. The window surface must be translucent to be able to actually see the wallpaper behind it; this flag just ensures that the wallpaper surface will be there if this window actually has translucent regions.
				 */
				static FLAG_SHOW_WALLPAPER: number;
				/**
				 * Window flag: when set as a window is being added or made visible, once the window has been shown then the system will poke the power manager's user activity (as if the user had woken up the device) to turn the screen on.
				 */
				static FLAG_TURN_SCREEN_ON: number;
				/**
				 * Window flag: when set the window will cause the keyguard to be dismissed, only if it is not a secure lock keyguard. Because such a keyguard is not needed for security, it will never re-appear if the user navigates to another window (in contrast to #FLAG_SHOW_WHEN_LOCKED, which will only temporarily hide both secure and non-secure keyguards but ensure they reappear when the user moves to another UI that doesn't hide them). If the keyguard is currently active and is secure (requires an unlock pattern) than the user will still need to confirm it before seeing this window, unless #FLAG_SHOW_WHEN_LOCKED has also been set.
				 */
				static FLAG_DISMISS_KEYGUARD: number;
				/**
				 * Window flag: when set the window will accept for touch events outside of its bounds to be sent to other windows that also support split touch. When this flag is not set, the first pointer that goes down determines the window to which all subsequent touches go until all pointers go up. When this flag is set, each pointer (not necessarily the first) that goes down determines the window to which all subsequent touches of that pointer will go until that pointer goes up thereby enabling touches with multiple pointers to be split across multiple windows.
				 */
				static FLAG_SPLIT_TOUCH: number;
				static FLAG_HARDWARE_ACCELERATED: number;
				/**
				 * Various behavioral options/flags. Default is none. #FLAG_ALLOW_LOCK_WHILE_SCREEN_ON #FLAG_DIM_BEHIND #FLAG_NOT_FOCUSABLE #FLAG_NOT_TOUCHABLE #FLAG_NOT_TOUCH_MODAL #FLAG_TOUCHABLE_WHEN_WAKING #FLAG_KEEP_SCREEN_ON #FLAG_LAYOUT_IN_SCREEN #FLAG_LAYOUT_NO_LIMITS #FLAG_FULLSCREEN #FLAG_FORCE_NOT_FULLSCREEN #FLAG_SECURE #FLAG_SCALED #FLAG_IGNORE_CHEEK_PRESSES #FLAG_LAYOUT_INSET_DECOR #FLAG_ALT_FOCUSABLE_IM #FLAG_WATCH_OUTSIDE_TOUCH #FLAG_SHOW_WHEN_LOCKED #FLAG_SHOW_WALLPAPER #FLAG_TURN_SCREEN_ON #FLAG_DISMISS_KEYGUARD #FLAG_SPLIT_TOUCH #FLAG_HARDWARE_ACCELERATED
				 */
				flags: number;
				/**
				 * Mask for #softInputMode of the bits that determine the desired visibility state of the soft input area for this window.
				 */
				static SOFT_INPUT_MASK_STATE: number;
				/**
				 * Visibility state for #softInputMode: no state has been specified.
				 */
				static SOFT_INPUT_STATE_UNSPECIFIED: number;
				/**
				 * Visibility state for #softInputMode: please don't change the state of the soft input area.
				 */
				static SOFT_INPUT_STATE_UNCHANGED: number;
				/**
				 * Visibility state for #softInputMode: please hide any soft input area when normally appropriate (when the user is navigating forward to your window).
				 */
				static SOFT_INPUT_STATE_HIDDEN: number;
				/**
				 * Visibility state for #softInputMode: please always hide any soft input area when this window receives focus.
				 */
				static SOFT_INPUT_STATE_ALWAYS_HIDDEN: number;
				/**
				 * Visibility state for #softInputMode: please show the soft input area when normally appropriate (when the user is navigating forward to your window).
				 */
				static SOFT_INPUT_STATE_VISIBLE: number;
				/**
				 * Visibility state for #softInputMode: please always make the soft input area visible when this window receives input focus.
				 */
				static SOFT_INPUT_STATE_ALWAYS_VISIBLE: number;
				/**
				 * Mask for #softInputMode of the bits that determine the way that the window should be adjusted to accommodate the soft input window.
				 */
				static SOFT_INPUT_MASK_ADJUST: number;
				/**
				 * Adjustment option for #softInputMode: nothing specified. The system will try to pick one or the other depending on the contents of the window.
				 */
				static SOFT_INPUT_ADJUST_UNSPECIFIED: number;
				/**
				 * Adjustment option for #softInputMode: set to allow the window to be resized when an input method is shown, so that its contents are not covered by the input method. This can <em>not</em> be combined with #SOFT_INPUT_ADJUST_PAN; if neither of these are set, then the system will try to pick one or the other depending on the contents of the window.
				 */
				static SOFT_INPUT_ADJUST_RESIZE: number;
				/**
				 * Adjustment option for #softInputMode: set to have a window pan when an input method is shown, so it doesn't need to deal with resizing but just panned by the framework to ensure the current input focus is visible. This can <em>not</em> be combined with #SOFT_INPUT_ADJUST_RESIZE; if neither of these are set, then the system will try to pick one or the other depending on the contents of the window.
				 */
				static SOFT_INPUT_ADJUST_PAN: number;
				/**
				 * Adjustment option for #softInputMode: set to have a window not adjust for a shown input method. The window will not be resized, and it will not be panned to make its focus visible.
				 */
				static SOFT_INPUT_ADJUST_NOTHING: number;
				/**
				 * Bit for #softInputMode: set when the user has navigated forward to the window. This is normally set automatically for you by the system, though you may want to set it in certain cases when you are displaying a window yourself. This flag will always be cleared automatically after the window is displayed.
				 */
				static SOFT_INPUT_IS_FORWARD_NAVIGATION: number;
				/**
				 * Desired operating mode for any soft input area. May be any combination of: <ul> <li> One of the visibility states #SOFT_INPUT_STATE_UNSPECIFIED, #SOFT_INPUT_STATE_UNCHANGED, #SOFT_INPUT_STATE_HIDDEN, #SOFT_INPUT_STATE_ALWAYS_VISIBLE, or #SOFT_INPUT_STATE_VISIBLE. <li> One of the adjustment options #SOFT_INPUT_ADJUST_UNSPECIFIED, #SOFT_INPUT_ADJUST_RESIZE, or #SOFT_INPUT_ADJUST_PAN.
				 */
				softInputMode: number;
				/**
				 * Placement of window within the screen as per Gravity. Both Gravity#apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect) Gravity.apply and Gravity#applyDisplay(int, android.graphics.Rect, android.graphics.Rect) Gravity.applyDisplay are used during window layout, with this value given as the desired gravity. For example you can specify Gravity#DISPLAY_CLIP_HORIZONTAL Gravity.DISPLAY_CLIP_HORIZONTAL and Gravity#DISPLAY_CLIP_VERTICAL Gravity.DISPLAY_CLIP_VERTICAL here to control the behavior of Gravity#applyDisplay(int, android.graphics.Rect, android.graphics.Rect) Gravity.applyDisplay.
				 */
				gravity: number;
				/**
				 * The horizontal margin, as a percentage of the container's width, between the container and the widget. See Gravity#apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect) Gravity.apply for how this is used. This field is added with #x to supply the <var>xAdj</var> parameter.
				 */
				horizontalMargin: number;
				/**
				 * The vertical margin, as a percentage of the container's height, between the container and the widget. See Gravity#apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect) Gravity.apply for how this is used. This field is added with #y to supply the <var>yAdj</var> parameter.
				 */
				verticalMargin: number;
				/**
				 * The desired bitmap format. May be one of the constants in android.graphics.PixelFormat. Default is OPAQUE.
				 */
				format: number;
				/**
				 * A style resource defining the animations to use for this window. This must be a system resource; it can not be an application resource because the window manager does not have access to applications.
				 */
				windowAnimations: number;
				/**
				 * An alpha value to apply to this entire window. An alpha of 1.0 means fully opaque and 0.0 means fully transparent
				 */
				alpha: number;
				/**
				 * When #FLAG_DIM_BEHIND is set, this is the amount of dimming to apply. Range is from 1.0 for completely opaque to 0.0 for no dim.
				 */
				dimAmount: number;
				/**
				 * Default value for #screenBrightness and #buttonBrightness indicating that the brightness value is not overridden for this window and normal brightness policy should be used.
				 */
				static BRIGHTNESS_OVERRIDE_NONE: number;
				/**
				 * Value for #screenBrightness and #buttonBrightness indicating that the screen or button backlight brightness should be set to the lowest value when this window is in front.
				 */
				static BRIGHTNESS_OVERRIDE_OFF: number;
				/**
				 * Value for #screenBrightness and #buttonBrightness indicating that the screen or button backlight brightness should be set to the hightest value when this window is in front.
				 */
				static BRIGHTNESS_OVERRIDE_FULL: number;
				/**
				 * This can be used to override the user's preferred brightness of the screen. A value of less than 0, the default, means to use the preferred screen brightness. 0 to 1 adjusts the brightness from dark to full bright.
				 */
				screenBrightness: number;
				/**
				 * This can be used to override the standard behavior of the button and keyboard backlights. A value of less than 0, the default, means to use the standard backlight behavior. 0 to 1 adjusts the brightness from dark to full bright.
				 */
				buttonBrightness: number;
				/**
				 * Identifier for this window. This will usually be filled in for you.
				 */
				token: android.os.IIBinder;
				/**
				 * Name of the package owning this window.
				 */
				packageName: string;
				/**
				 * Specific orientation value for a window. May be any of the same values allowed for android.content.pm.ActivityInfo#screenOrientation. If not set, a default value of android.content.pm.ActivityInfo#SCREEN_ORIENTATION_UNSPECIFIED will be used.
				 */
				screenOrientation: number;
				/**
				 * Control the visibility of the status bar.
				 */
				systemUiVisibility: number;
				static CREATOR: android.os.Parcelable.ICreator<android.view.WindowManager.LayoutParams>;
				static LAYOUT_CHANGED: number;
				static TYPE_CHANGED: number;
				static FLAGS_CHANGED: number;
				static FORMAT_CHANGED: number;
				static ANIMATION_CHANGED: number;
				static DIM_AMOUNT_CHANGED: number;
				static TITLE_CHANGED: number;
				static ALPHA_CHANGED: number;
				static MEMORY_TYPE_CHANGED: number;
				static SOFT_INPUT_MODE_CHANGED: number;
				static SCREEN_ORIENTATION_CHANGED: number;
				static SCREEN_BRIGHTNESS_CHANGED: number;
				static class: java.lang.Class<android.view.WindowManager.LayoutParams>;
				/**
				 * Given a particular set of window manager flags, determine whether such a window may be a target for an input method when it has focus. In particular, this checks the #FLAG_NOT_FOCUSABLE and #FLAG_ALT_FOCUSABLE_IM flags and returns true if the combination of the two corresponds to a window that needs to be behind the input method so that the user can type into it. 
				 * @param flags The current window manager flags.
				 */
				public static mayUseInputMethod(flags: number): boolean;
				public setTitle(title: string): void;
				public getTitle(): string;
				public describeContents(): number;
				public writeToParcel(out: android.os.Parcel, parcelableFlags: number): void;
				public copyFrom(o: android.view.WindowManager.LayoutParams): number;
				public debug(output: string): string;
				public toString(): string;
				/**
				 * Backup the layout parameters used in compatibility mode. LayoutParams#restore()
				 */
				backup(): void;
				/**
				 * Restore the layout params' coordinates, size and gravity LayoutParams#backup()
				 */
				restore(): void;
			}
			/**
			 * Exception that is thrown when calling #addView to a secondary display that cannot be found. See android.app.Presentation for more information on secondary displays.
			 */
			export class InvalidDisplayException extends java.lang.RuntimeException {
				constructor();
				constructor(name: string);
				static class: java.lang.Class<android.view.WindowManager.InvalidDisplayException>;
			}
			/**
			 * Exception that is thrown when trying to add view whose WindowManager.LayoutParams WindowManager.LayoutParams#token is invalid.
			 */
			export class BadTokenException extends java.lang.RuntimeException {
				constructor();
				constructor(name: string);
				static class: java.lang.Class<android.view.WindowManager.BadTokenException>;
			}
		}
		export class FocusFinderTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.view.FocusFinderTest>;
			protected setUp(): void;
			public testPreconditions(): void;
			public testBelowNotCandidateForDirectionUp(): void;
			public testAboveShareEdgeEdgeOkForDirectionUp(): void;
			public testCompletelyContainedNotCandidate(): void;
			public testContinaedWithCommonBottomNotCandidate(): void;
			public testOverlappingIsCandidateWhenBothEdgesAreInDirection(): void;
			public testTopEdgeOfDestAtOrAboveTopOfSrcNotCandidateForDown(): void;
			public testSameRectBeamsOverlap(): void;
			public testOverlapBeamsRightLeftUpToEdge(): void;
			public testOverlapBeamsUpDownUpToEdge(): void;
			public testDirectlyAboveTrumpsAboveLeft(): void;
			public testAboveInBeamTrumpsSlightlyCloserOutOfBeam(): void;
			public testOutOfBeamBeatsInBeamUp(): void;
			/**
			 * A non-candidate (even a much closer one) is always a worse choice than a real candidate.
			 */
			public testSomeCandidateBetterThanNonCandidate(): void;
			/**
			 * Grabbed from android.widget.focus.VerticalFocusSearchTest#testSearchFromMidLeft()
			 */
			public testVerticalFocusSearchScenario(): void;
			/**
			 * Example: going down from a thin button all the way to the left of a screen where, just below, is a very wide button, and just below that, is an equally skinny button all the way to the left. want to make sure any minor axis factor doesn't override the fact that the one below in vertical beam should be next focus
			 */
			public testBeamsOverlapMajorAxisCloserMinorAxisFurther(): void;
			/**
			 * Real scenario grabbed from song playback screen.
			 */
			public testMusicPlaybackScenario(): void;
			/**
			 * more generalized version of #testMusicPlaybackScenario()
			 */
			public testOutOfBeamOverlapBeatsOutOfBeamFurtherOnMajorAxis(): void;
			/**
			 * Make sure that going down prefers views that are actually down (and not those next to but still a candidate because they are overlapping on the major axis)
			 */
			public testInBeamTrumpsOutOfBeamOverlapping(): void;
			public testOverlappingBeatsNonOverlapping(): void;
			public testEditContactScenarioLeftFromDiscardChangesGoesToSaveContactInLandscape(): void;
			/**
			 * A dial pad with 9 squares arranged in a grid. no padding, so the edges are equal. see android.widget.focus.LinearLayoutGrid
			 */
			public testGridWithTouchingEdges(): void;
			public testSearchFromEmptyRect(): void;
			/**
			 * Reproduce bug 1124559, drilling down to actual bug (majorAxisDistance was wrong for direction left)
			 */
			public testGmailReplyButtonsScenario(): void;
			public testGmailScenarioBug1203288(): void;
			public testHomeShortcutScenarioBug1295354(): void;
			public testBeamAlwaysBeatsHoriz(): void;
			public testIsCandidateOverlappingEdgeFromEmptyRect(): void;
		}
		/**
		 * Object used to report key and button events.
		 */
		export class KeyEvent extends android.view.InputEvent implements android.os.IParcelable {
			/**
			 * Create a new key event. 
			 * @param action Action code: either {@link #ACTION_DOWN},
			 * @param code The key code.
			 */
			constructor(action: number, code: number);
			/**
			 * Create a new key event. 
			 * @param downTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param eventTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param action Action code: either {@link #ACTION_DOWN},
			 * @param code The key code.
			 * @param repeat A repeat count for down events (> 0 if this is after the
			 */
			constructor(downTime: number, eventTime: number, action: number, code: number, repeat: number);
			/**
			 * Create a new key event. 
			 * @param downTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param eventTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param action Action code: either {@link #ACTION_DOWN},
			 * @param code The key code.
			 * @param repeat A repeat count for down events (> 0 if this is after the
			 * @param metaState Flags indicating which meta keys are currently pressed.
			 */
			constructor(downTime: number, eventTime: number, action: number, code: number, repeat: number, metaState: number);
			/**
			 * Create a new key event. 
			 * @param downTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param eventTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param action Action code: either {@link #ACTION_DOWN},
			 * @param code The key code.
			 * @param repeat A repeat count for down events (> 0 if this is after the
			 * @param metaState Flags indicating which meta keys are currently pressed.
			 * @param deviceId The device ID that generated the key event.
			 * @param scancode Raw device scan code of the event.
			 */
			constructor(downTime: number, eventTime: number, action: number, code: number, repeat: number, metaState: number, deviceId: number, scancode: number);
			/**
			 * Create a new key event. 
			 * @param downTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param eventTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param action Action code: either {@link #ACTION_DOWN},
			 * @param code The key code.
			 * @param repeat A repeat count for down events (> 0 if this is after the
			 * @param metaState Flags indicating which meta keys are currently pressed.
			 * @param deviceId The device ID that generated the key event.
			 * @param scancode Raw device scan code of the event.
			 * @param flags The flags for this key event
			 */
			constructor(downTime: number, eventTime: number, action: number, code: number, repeat: number, metaState: number, deviceId: number, scancode: number, flags: number);
			/**
			 * Create a new key event. 
			 * @param downTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param eventTime The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param action Action code: either {@link #ACTION_DOWN},
			 * @param code The key code.
			 * @param repeat A repeat count for down events (> 0 if this is after the
			 * @param metaState Flags indicating which meta keys are currently pressed.
			 * @param deviceId The device ID that generated the key event.
			 * @param scancode Raw device scan code of the event.
			 * @param flags The flags for this key event
			 * @param source The input source such as {@link InputDevice#SOURCE_KEYBOARD}.
			 */
			constructor(downTime: number, eventTime: number, action: number, code: number, repeat: number, metaState: number, deviceId: number, scancode: number, flags: number, source: number);
			/**
			 * Create a new key event for a string of characters. The key code, action, repeat count and source will automatically be set to #KEYCODE_UNKNOWN, #ACTION_MULTIPLE, 0, and InputDevice#SOURCE_KEYBOARD for you. 
			 * @param time The time (in {@link android.os.SystemClock#uptimeMillis})
			 * @param characters The string of characters.
			 * @param deviceId The device ID that generated the key event.
			 * @param flags The flags for this key event
			 */
			constructor(time: number, characters: string, deviceId: number, flags: number);
			/**
			 * Make an exact copy of an existing key event.
			 */
			constructor(origEvent: android.view.KeyEvent);
			/**
			 * Copy an existing key event, modifying its time and repeat count. Use #changeTimeRepeat(KeyEvent, long, int) instead. 
			 * @param origEvent The existing event to be copied.
			 * @param eventTime The new event time
			 * @param newRepeat The new repeat count of the event.
			 */
			constructor(origEvent: android.view.KeyEvent, eventTime: number, newRepeat: number);
			/**
			 * Key code constant: Unknown key code.
			 */
			static KEYCODE_UNKNOWN: number;
			/**
			 * Key code constant: Soft Left key. Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom left of the display.
			 */
			static KEYCODE_SOFT_LEFT: number;
			/**
			 * Key code constant: Soft Right key. Usually situated below the display on phones and used as a multi-function feature key for selecting a software defined function shown on the bottom right of the display.
			 */
			static KEYCODE_SOFT_RIGHT: number;
			/**
			 * Key code constant: Home key. This key is handled by the framework and is never delivered to applications.
			 */
			static KEYCODE_HOME: number;
			/**
			 * Key code constant: Back key.
			 */
			static KEYCODE_BACK: number;
			/**
			 * Key code constant: Call key.
			 */
			static KEYCODE_CALL: number;
			/**
			 * Key code constant: End Call key.
			 */
			static KEYCODE_ENDCALL: number;
			/**
			 * Key code constant: '0' key.
			 */
			static KEYCODE_0: number;
			/**
			 * Key code constant: '1' key.
			 */
			static KEYCODE_1: number;
			/**
			 * Key code constant: '2' key.
			 */
			static KEYCODE_2: number;
			/**
			 * Key code constant: '3' key.
			 */
			static KEYCODE_3: number;
			/**
			 * Key code constant: '4' key.
			 */
			static KEYCODE_4: number;
			/**
			 * Key code constant: '5' key.
			 */
			static KEYCODE_5: number;
			/**
			 * Key code constant: '6' key.
			 */
			static KEYCODE_6: number;
			/**
			 * Key code constant: '7' key.
			 */
			static KEYCODE_7: number;
			/**
			 * Key code constant: '8' key.
			 */
			static KEYCODE_8: number;
			/**
			 * Key code constant: '9' key.
			 */
			static KEYCODE_9: number;
			/**
			 * Key code constant: '*' key.
			 */
			static KEYCODE_STAR: number;
			/**
			 * Key code constant: '#' key.
			 */
			static KEYCODE_POUND: number;
			/**
			 * Key code constant: Directional Pad Up key. May also be synthesized from trackball motions.
			 */
			static KEYCODE_DPAD_UP: number;
			/**
			 * Key code constant: Directional Pad Down key. May also be synthesized from trackball motions.
			 */
			static KEYCODE_DPAD_DOWN: number;
			/**
			 * Key code constant: Directional Pad Left key. May also be synthesized from trackball motions.
			 */
			static KEYCODE_DPAD_LEFT: number;
			/**
			 * Key code constant: Directional Pad Right key. May also be synthesized from trackball motions.
			 */
			static KEYCODE_DPAD_RIGHT: number;
			/**
			 * Key code constant: Directional Pad Center key. May also be synthesized from trackball motions.
			 */
			static KEYCODE_DPAD_CENTER: number;
			/**
			 * Key code constant: Volume Up key. Adjusts the speaker volume up.
			 */
			static KEYCODE_VOLUME_UP: number;
			/**
			 * Key code constant: Volume Down key. Adjusts the speaker volume down.
			 */
			static KEYCODE_VOLUME_DOWN: number;
			/**
			 * Key code constant: Power key.
			 */
			static KEYCODE_POWER: number;
			/**
			 * Key code constant: Camera key. Used to launch a camera application or take pictures.
			 */
			static KEYCODE_CAMERA: number;
			/**
			 * Key code constant: Clear key.
			 */
			static KEYCODE_CLEAR: number;
			/**
			 * Key code constant: 'A' key.
			 */
			static KEYCODE_A: number;
			/**
			 * Key code constant: 'B' key.
			 */
			static KEYCODE_B: number;
			/**
			 * Key code constant: 'C' key.
			 */
			static KEYCODE_C: number;
			/**
			 * Key code constant: 'D' key.
			 */
			static KEYCODE_D: number;
			/**
			 * Key code constant: 'E' key.
			 */
			static KEYCODE_E: number;
			/**
			 * Key code constant: 'F' key.
			 */
			static KEYCODE_F: number;
			/**
			 * Key code constant: 'G' key.
			 */
			static KEYCODE_G: number;
			/**
			 * Key code constant: 'H' key.
			 */
			static KEYCODE_H: number;
			/**
			 * Key code constant: 'I' key.
			 */
			static KEYCODE_I: number;
			/**
			 * Key code constant: 'J' key.
			 */
			static KEYCODE_J: number;
			/**
			 * Key code constant: 'K' key.
			 */
			static KEYCODE_K: number;
			/**
			 * Key code constant: 'L' key.
			 */
			static KEYCODE_L: number;
			/**
			 * Key code constant: 'M' key.
			 */
			static KEYCODE_M: number;
			/**
			 * Key code constant: 'N' key.
			 */
			static KEYCODE_N: number;
			/**
			 * Key code constant: 'O' key.
			 */
			static KEYCODE_O: number;
			/**
			 * Key code constant: 'P' key.
			 */
			static KEYCODE_P: number;
			/**
			 * Key code constant: 'Q' key.
			 */
			static KEYCODE_Q: number;
			/**
			 * Key code constant: 'R' key.
			 */
			static KEYCODE_R: number;
			/**
			 * Key code constant: 'S' key.
			 */
			static KEYCODE_S: number;
			/**
			 * Key code constant: 'T' key.
			 */
			static KEYCODE_T: number;
			/**
			 * Key code constant: 'U' key.
			 */
			static KEYCODE_U: number;
			/**
			 * Key code constant: 'V' key.
			 */
			static KEYCODE_V: number;
			/**
			 * Key code constant: 'W' key.
			 */
			static KEYCODE_W: number;
			/**
			 * Key code constant: 'X' key.
			 */
			static KEYCODE_X: number;
			/**
			 * Key code constant: 'Y' key.
			 */
			static KEYCODE_Y: number;
			/**
			 * Key code constant: 'Z' key.
			 */
			static KEYCODE_Z: number;
			/**
			 * Key code constant: ',' key.
			 */
			static KEYCODE_COMMA: number;
			/**
			 * Key code constant: '.' key.
			 */
			static KEYCODE_PERIOD: number;
			/**
			 * Key code constant: Left Alt modifier key.
			 */
			static KEYCODE_ALT_LEFT: number;
			/**
			 * Key code constant: Right Alt modifier key.
			 */
			static KEYCODE_ALT_RIGHT: number;
			/**
			 * Key code constant: Left Shift modifier key.
			 */
			static KEYCODE_SHIFT_LEFT: number;
			/**
			 * Key code constant: Right Shift modifier key.
			 */
			static KEYCODE_SHIFT_RIGHT: number;
			/**
			 * Key code constant: Tab key.
			 */
			static KEYCODE_TAB: number;
			/**
			 * Key code constant: Space key.
			 */
			static KEYCODE_SPACE: number;
			/**
			 * Key code constant: Symbol modifier key. Used to enter alternate symbols.
			 */
			static KEYCODE_SYM: number;
			/**
			 * Key code constant: Explorer special function key. Used to launch a browser application.
			 */
			static KEYCODE_EXPLORER: number;
			/**
			 * Key code constant: Envelope special function key. Used to launch a mail application.
			 */
			static KEYCODE_ENVELOPE: number;
			/**
			 * Key code constant: Enter key.
			 */
			static KEYCODE_ENTER: number;
			/**
			 * Key code constant: Backspace key. Deletes characters before the insertion point, unlike #KEYCODE_FORWARD_DEL.
			 */
			static KEYCODE_DEL: number;
			/**
			 * Key code constant: '`' (backtick) key.
			 */
			static KEYCODE_GRAVE: number;
			/**
			 * Key code constant: '-'.
			 */
			static KEYCODE_MINUS: number;
			/**
			 * Key code constant: '=' key.
			 */
			static KEYCODE_EQUALS: number;
			/**
			 * Key code constant: '[' key.
			 */
			static KEYCODE_LEFT_BRACKET: number;
			/**
			 * Key code constant: ']' key.
			 */
			static KEYCODE_RIGHT_BRACKET: number;
			/**
			 * Key code constant: '\' key.
			 */
			static KEYCODE_BACKSLASH: number;
			/**
			 * Key code constant: ';' key.
			 */
			static KEYCODE_SEMICOLON: number;
			/**
			 * Key code constant: ''' (apostrophe) key.
			 */
			static KEYCODE_APOSTROPHE: number;
			/**
			 * Key code constant: '/' key.
			 */
			static KEYCODE_SLASH: number;
			/**
			 * Key code constant: ' key.
			 */
			static KEYCODE_AT: number;
			/**
			 * Key code constant: Number modifier key. Used to enter numeric symbols. This key is not Num Lock; it is more like #KEYCODE_ALT_LEFT and is interpreted as an ALT key by android.text.method.MetaKeyKeyListener.
			 */
			static KEYCODE_NUM: number;
			/**
			 * Key code constant: Headset Hook key. Used to hang up calls and stop media.
			 */
			static KEYCODE_HEADSETHOOK: number;
			/**
			 * Key code constant: Camera Focus key. Used to focus the camera.
			 */
			static KEYCODE_FOCUS: number;
			/**
			 * Key code constant: '+' key.
			 */
			static KEYCODE_PLUS: number;
			/**
			 * Key code constant: Menu key.
			 */
			static KEYCODE_MENU: number;
			/**
			 * Key code constant: Notification key.
			 */
			static KEYCODE_NOTIFICATION: number;
			/**
			 * Key code constant: Search key.
			 */
			static KEYCODE_SEARCH: number;
			/**
			 * Key code constant: Play/Pause media key.
			 */
			static KEYCODE_MEDIA_PLAY_PAUSE: number;
			/**
			 * Key code constant: Stop media key.
			 */
			static KEYCODE_MEDIA_STOP: number;
			/**
			 * Key code constant: Play Next media key.
			 */
			static KEYCODE_MEDIA_NEXT: number;
			/**
			 * Key code constant: Play Previous media key.
			 */
			static KEYCODE_MEDIA_PREVIOUS: number;
			/**
			 * Key code constant: Rewind media key.
			 */
			static KEYCODE_MEDIA_REWIND: number;
			/**
			 * Key code constant: Fast Forward media key.
			 */
			static KEYCODE_MEDIA_FAST_FORWARD: number;
			/**
			 * Key code constant: Mute key. Mutes the microphone, unlike #KEYCODE_VOLUME_MUTE.
			 */
			static KEYCODE_MUTE: number;
			/**
			 * Key code constant: Page Up key.
			 */
			static KEYCODE_PAGE_UP: number;
			/**
			 * Key code constant: Page Down key.
			 */
			static KEYCODE_PAGE_DOWN: number;
			/**
			 * Key code constant: Picture Symbols modifier key. Used to switch symbol sets (Emoji, Kao-moji).
			 */
			static KEYCODE_PICTSYMBOLS: number;
			/**
			 * Key code constant: Switch Charset modifier key. Used to switch character sets (Kanji, Katakana).
			 */
			static KEYCODE_SWITCH_CHARSET: number;
			/**
			 * Key code constant: A Button key. On a game controller, the A button should be either the button labeled A or the first button on the upper row of controller buttons.
			 */
			static KEYCODE_BUTTON_A: number;
			/**
			 * Key code constant: B Button key. On a game controller, the B button should be either the button labeled B or the second button on the upper row of controller buttons.
			 */
			static KEYCODE_BUTTON_B: number;
			/**
			 * Key code constant: C Button key. On a game controller, the C button should be either the button labeled C or the third button on the upper row of controller buttons.
			 */
			static KEYCODE_BUTTON_C: number;
			/**
			 * Key code constant: X Button key. On a game controller, the X button should be either the button labeled X or the first button on the lower row of controller buttons.
			 */
			static KEYCODE_BUTTON_X: number;
			/**
			 * Key code constant: Y Button key. On a game controller, the Y button should be either the button labeled Y or the second button on the lower row of controller buttons.
			 */
			static KEYCODE_BUTTON_Y: number;
			/**
			 * Key code constant: Z Button key. On a game controller, the Z button should be either the button labeled Z or the third button on the lower row of controller buttons.
			 */
			static KEYCODE_BUTTON_Z: number;
			/**
			 * Key code constant: L1 Button key. On a game controller, the L1 button should be either the button labeled L1 (or L) or the top left trigger button.
			 */
			static KEYCODE_BUTTON_L1: number;
			/**
			 * Key code constant: R1 Button key. On a game controller, the R1 button should be either the button labeled R1 (or R) or the top right trigger button.
			 */
			static KEYCODE_BUTTON_R1: number;
			/**
			 * Key code constant: L2 Button key. On a game controller, the L2 button should be either the button labeled L2 or the bottom left trigger button.
			 */
			static KEYCODE_BUTTON_L2: number;
			/**
			 * Key code constant: R2 Button key. On a game controller, the R2 button should be either the button labeled R2 or the bottom right trigger button.
			 */
			static KEYCODE_BUTTON_R2: number;
			/**
			 * Key code constant: Left Thumb Button key. On a game controller, the left thumb button indicates that the left (or only) joystick is pressed.
			 */
			static KEYCODE_BUTTON_THUMBL: number;
			/**
			 * Key code constant: Right Thumb Button key. On a game controller, the right thumb button indicates that the right joystick is pressed.
			 */
			static KEYCODE_BUTTON_THUMBR: number;
			/**
			 * Key code constant: Start Button key. On a game controller, the button labeled Start.
			 */
			static KEYCODE_BUTTON_START: number;
			/**
			 * Key code constant: Select Button key. On a game controller, the button labeled Select.
			 */
			static KEYCODE_BUTTON_SELECT: number;
			/**
			 * Key code constant: Mode Button key. On a game controller, the button labeled Mode.
			 */
			static KEYCODE_BUTTON_MODE: number;
			/**
			 * Key code constant: Escape key.
			 */
			static KEYCODE_ESCAPE: number;
			/**
			 * Key code constant: Forward Delete key. Deletes characters ahead of the insertion point, unlike #KEYCODE_DEL.
			 */
			static KEYCODE_FORWARD_DEL: number;
			/**
			 * Key code constant: Left Control modifier key.
			 */
			static KEYCODE_CTRL_LEFT: number;
			/**
			 * Key code constant: Right Control modifier key.
			 */
			static KEYCODE_CTRL_RIGHT: number;
			/**
			 * Key code constant: Caps Lock key.
			 */
			static KEYCODE_CAPS_LOCK: number;
			/**
			 * Key code constant: Scroll Lock key.
			 */
			static KEYCODE_SCROLL_LOCK: number;
			/**
			 * Key code constant: Left Meta modifier key.
			 */
			static KEYCODE_META_LEFT: number;
			/**
			 * Key code constant: Right Meta modifier key.
			 */
			static KEYCODE_META_RIGHT: number;
			/**
			 * Key code constant: Function modifier key.
			 */
			static KEYCODE_FUNCTION: number;
			/**
			 * Key code constant: System Request / Print Screen key.
			 */
			static KEYCODE_SYSRQ: number;
			/**
			 * Key code constant: Break / Pause key.
			 */
			static KEYCODE_BREAK: number;
			/**
			 * Key code constant: Home Movement key. Used for scrolling or moving the cursor around to the start of a line or to the top of a list.
			 */
			static KEYCODE_MOVE_HOME: number;
			/**
			 * Key code constant: End Movement key. Used for scrolling or moving the cursor around to the end of a line or to the bottom of a list.
			 */
			static KEYCODE_MOVE_END: number;
			/**
			 * Key code constant: Insert key. Toggles insert / overwrite edit mode.
			 */
			static KEYCODE_INSERT: number;
			/**
			 * Key code constant: Forward key. Navigates forward in the history stack. Complement of #KEYCODE_BACK.
			 */
			static KEYCODE_FORWARD: number;
			/**
			 * Key code constant: Play media key.
			 */
			static KEYCODE_MEDIA_PLAY: number;
			/**
			 * Key code constant: Pause media key.
			 */
			static KEYCODE_MEDIA_PAUSE: number;
			/**
			 * Key code constant: Close media key. May be used to close a CD tray, for example.
			 */
			static KEYCODE_MEDIA_CLOSE: number;
			/**
			 * Key code constant: Eject media key. May be used to eject a CD tray, for example.
			 */
			static KEYCODE_MEDIA_EJECT: number;
			/**
			 * Key code constant: Record media key.
			 */
			static KEYCODE_MEDIA_RECORD: number;
			/**
			 * Key code constant: F1 key.
			 */
			static KEYCODE_F1: number;
			/**
			 * Key code constant: F2 key.
			 */
			static KEYCODE_F2: number;
			/**
			 * Key code constant: F3 key.
			 */
			static KEYCODE_F3: number;
			/**
			 * Key code constant: F4 key.
			 */
			static KEYCODE_F4: number;
			/**
			 * Key code constant: F5 key.
			 */
			static KEYCODE_F5: number;
			/**
			 * Key code constant: F6 key.
			 */
			static KEYCODE_F6: number;
			/**
			 * Key code constant: F7 key.
			 */
			static KEYCODE_F7: number;
			/**
			 * Key code constant: F8 key.
			 */
			static KEYCODE_F8: number;
			/**
			 * Key code constant: F9 key.
			 */
			static KEYCODE_F9: number;
			/**
			 * Key code constant: F10 key.
			 */
			static KEYCODE_F10: number;
			/**
			 * Key code constant: F11 key.
			 */
			static KEYCODE_F11: number;
			/**
			 * Key code constant: F12 key.
			 */
			static KEYCODE_F12: number;
			/**
			 * Key code constant: Num Lock key. This is the Num Lock key; it is different from #KEYCODE_NUM. This key alters the behavior of other keys on the numeric keypad.
			 */
			static KEYCODE_NUM_LOCK: number;
			/**
			 * Key code constant: Numeric keypad '0' key.
			 */
			static KEYCODE_NUMPAD_0: number;
			/**
			 * Key code constant: Numeric keypad '1' key.
			 */
			static KEYCODE_NUMPAD_1: number;
			/**
			 * Key code constant: Numeric keypad '2' key.
			 */
			static KEYCODE_NUMPAD_2: number;
			/**
			 * Key code constant: Numeric keypad '3' key.
			 */
			static KEYCODE_NUMPAD_3: number;
			/**
			 * Key code constant: Numeric keypad '4' key.
			 */
			static KEYCODE_NUMPAD_4: number;
			/**
			 * Key code constant: Numeric keypad '5' key.
			 */
			static KEYCODE_NUMPAD_5: number;
			/**
			 * Key code constant: Numeric keypad '6' key.
			 */
			static KEYCODE_NUMPAD_6: number;
			/**
			 * Key code constant: Numeric keypad '7' key.
			 */
			static KEYCODE_NUMPAD_7: number;
			/**
			 * Key code constant: Numeric keypad '8' key.
			 */
			static KEYCODE_NUMPAD_8: number;
			/**
			 * Key code constant: Numeric keypad '9' key.
			 */
			static KEYCODE_NUMPAD_9: number;
			/**
			 * Key code constant: Numeric keypad '/' key (for division).
			 */
			static KEYCODE_NUMPAD_DIVIDE: number;
			/**
			 * Key code constant: Numeric keypad '*' key (for multiplication).
			 */
			static KEYCODE_NUMPAD_MULTIPLY: number;
			/**
			 * Key code constant: Numeric keypad '-' key (for subtraction).
			 */
			static KEYCODE_NUMPAD_SUBTRACT: number;
			/**
			 * Key code constant: Numeric keypad '+' key (for addition).
			 */
			static KEYCODE_NUMPAD_ADD: number;
			/**
			 * Key code constant: Numeric keypad '.' key (for decimals or digit grouping).
			 */
			static KEYCODE_NUMPAD_DOT: number;
			/**
			 * Key code constant: Numeric keypad ',' key (for decimals or digit grouping).
			 */
			static KEYCODE_NUMPAD_COMMA: number;
			/**
			 * Key code constant: Numeric keypad Enter key.
			 */
			static KEYCODE_NUMPAD_ENTER: number;
			/**
			 * Key code constant: Numeric keypad '=' key.
			 */
			static KEYCODE_NUMPAD_EQUALS: number;
			/**
			 * Key code constant: Numeric keypad '(' key.
			 */
			static KEYCODE_NUMPAD_LEFT_PAREN: number;
			/**
			 * Key code constant: Numeric keypad ')' key.
			 */
			static KEYCODE_NUMPAD_RIGHT_PAREN: number;
			/**
			 * Key code constant: Volume Mute key. Mutes the speaker, unlike #KEYCODE_MUTE. This key should normally be implemented as a toggle such that the first press mutes the speaker and the second press restores the original volume.
			 */
			static KEYCODE_VOLUME_MUTE: number;
			/**
			 * Key code constant: Info key. Common on TV remotes to show additional information related to what is currently being viewed.
			 */
			static KEYCODE_INFO: number;
			/**
			 * Key code constant: Channel up key. On TV remotes, increments the television channel.
			 */
			static KEYCODE_CHANNEL_UP: number;
			/**
			 * Key code constant: Channel down key. On TV remotes, decrements the television channel.
			 */
			static KEYCODE_CHANNEL_DOWN: number;
			/**
			 * Key code constant: Zoom in key.
			 */
			static KEYCODE_ZOOM_IN: number;
			/**
			 * Key code constant: Zoom out key.
			 */
			static KEYCODE_ZOOM_OUT: number;
			/**
			 * Key code constant: TV key. On TV remotes, switches to viewing live TV.
			 */
			static KEYCODE_TV: number;
			/**
			 * Key code constant: Window key. On TV remotes, toggles picture-in-picture mode or other windowing functions.
			 */
			static KEYCODE_WINDOW: number;
			/**
			 * Key code constant: Guide key. On TV remotes, shows a programming guide.
			 */
			static KEYCODE_GUIDE: number;
			/**
			 * Key code constant: DVR key. On some TV remotes, switches to a DVR mode for recorded shows.
			 */
			static KEYCODE_DVR: number;
			/**
			 * Key code constant: Bookmark key. On some TV remotes, bookmarks content or web pages.
			 */
			static KEYCODE_BOOKMARK: number;
			/**
			 * Key code constant: Toggle captions key. Switches the mode for closed-captioning text, for example during television shows.
			 */
			static KEYCODE_CAPTIONS: number;
			/**
			 * Key code constant: Settings key. Starts the system settings activity.
			 */
			static KEYCODE_SETTINGS: number;
			/**
			 * Key code constant: TV power key. On TV remotes, toggles the power on a television screen.
			 */
			static KEYCODE_TV_POWER: number;
			/**
			 * Key code constant: TV input key. On TV remotes, switches the input on a television screen.
			 */
			static KEYCODE_TV_INPUT: number;
			/**
			 * Key code constant: Set-top-box power key. On TV remotes, toggles the power on an external Set-top-box.
			 */
			static KEYCODE_STB_POWER: number;
			/**
			 * Key code constant: Set-top-box input key. On TV remotes, switches the input mode on an external Set-top-box.
			 */
			static KEYCODE_STB_INPUT: number;
			/**
			 * Key code constant: A/V Receiver power key. On TV remotes, toggles the power on an external A/V Receiver.
			 */
			static KEYCODE_AVR_POWER: number;
			/**
			 * Key code constant: A/V Receiver input key. On TV remotes, switches the input mode on an external A/V Receiver.
			 */
			static KEYCODE_AVR_INPUT: number;
			/**
			 * Key code constant: Red "programmable" key. On TV remotes, acts as a contextual/programmable key.
			 */
			static KEYCODE_PROG_RED: number;
			/**
			 * Key code constant: Green "programmable" key. On TV remotes, actsas a contextual/programmable key.
			 */
			static KEYCODE_PROG_GREEN: number;
			/**
			 * Key code constant: Yellow "programmable" key. On TV remotes, acts as a contextual/programmable key.
			 */
			static KEYCODE_PROG_YELLOW: number;
			/**
			 * Key code constant: Blue "programmable" key. On TV remotes, acts as a contextual/programmable key.
			 */
			static KEYCODE_PROG_BLUE: number;
			/**
			 * Key code constant: App switch key. Should bring up the application switcher dialog.
			 */
			static KEYCODE_APP_SWITCH: number;
			/**
			 * Key code constant: Generic Game Pad Button #1.
			 */
			static KEYCODE_BUTTON_1: number;
			/**
			 * Key code constant: Generic Game Pad Button #2.
			 */
			static KEYCODE_BUTTON_2: number;
			/**
			 * Key code constant: Generic Game Pad Button #3.
			 */
			static KEYCODE_BUTTON_3: number;
			/**
			 * Key code constant: Generic Game Pad Button #4.
			 */
			static KEYCODE_BUTTON_4: number;
			/**
			 * Key code constant: Generic Game Pad Button #5.
			 */
			static KEYCODE_BUTTON_5: number;
			/**
			 * Key code constant: Generic Game Pad Button #6.
			 */
			static KEYCODE_BUTTON_6: number;
			/**
			 * Key code constant: Generic Game Pad Button #7.
			 */
			static KEYCODE_BUTTON_7: number;
			/**
			 * Key code constant: Generic Game Pad Button #8.
			 */
			static KEYCODE_BUTTON_8: number;
			/**
			 * Key code constant: Generic Game Pad Button #9.
			 */
			static KEYCODE_BUTTON_9: number;
			/**
			 * Key code constant: Generic Game Pad Button #10.
			 */
			static KEYCODE_BUTTON_10: number;
			/**
			 * Key code constant: Generic Game Pad Button #11.
			 */
			static KEYCODE_BUTTON_11: number;
			/**
			 * Key code constant: Generic Game Pad Button #12.
			 */
			static KEYCODE_BUTTON_12: number;
			/**
			 * Key code constant: Generic Game Pad Button #13.
			 */
			static KEYCODE_BUTTON_13: number;
			/**
			 * Key code constant: Generic Game Pad Button #14.
			 */
			static KEYCODE_BUTTON_14: number;
			/**
			 * Key code constant: Generic Game Pad Button #15.
			 */
			static KEYCODE_BUTTON_15: number;
			/**
			 * Key code constant: Generic Game Pad Button #16.
			 */
			static KEYCODE_BUTTON_16: number;
			/**
			 * Key code constant: Language Switch key. Toggles the current input language such as switching between English and Japanese on a QWERTY keyboard. On some devices, the same function may be performed by pressing Shift+Spacebar.
			 */
			static KEYCODE_LANGUAGE_SWITCH: number;
			/**
			 * Key code constant: Manner Mode key. Toggles silent or vibrate mode on and off to make the device behave more politely in certain settings such as on a crowded train. On some devices, the key may only operate when long-pressed.
			 */
			static KEYCODE_MANNER_MODE: number;
			/**
			 * Key code constant: 3D Mode key. Toggles the display between 2D and 3D mode.
			 */
			static KEYCODE_3D_MODE: number;
			/**
			 * Key code constant: Contacts special function key. Used to launch an address book application.
			 */
			static KEYCODE_CONTACTS: number;
			/**
			 * Key code constant: Calendar special function key. Used to launch a calendar application.
			 */
			static KEYCODE_CALENDAR: number;
			/**
			 * Key code constant: Music special function key. Used to launch a music player application.
			 */
			static KEYCODE_MUSIC: number;
			/**
			 * Key code constant: Calculator special function key. Used to launch a calculator application.
			 */
			static KEYCODE_CALCULATOR: number;
			/**
			 * Key code constant: Japanese full-width / half-width key.
			 */
			static KEYCODE_ZENKAKU_HANKAKU: number;
			/**
			 * Key code constant: Japanese alphanumeric key.
			 */
			static KEYCODE_EISU: number;
			/**
			 * Key code constant: Japanese non-conversion key.
			 */
			static KEYCODE_MUHENKAN: number;
			/**
			 * Key code constant: Japanese conversion key.
			 */
			static KEYCODE_HENKAN: number;
			/**
			 * Key code constant: Japanese katakana / hiragana key.
			 */
			static KEYCODE_KATAKANA_HIRAGANA: number;
			/**
			 * Key code constant: Japanese Yen key.
			 */
			static KEYCODE_YEN: number;
			/**
			 * Key code constant: Japanese Ro key.
			 */
			static KEYCODE_RO: number;
			/**
			 * Key code constant: Japanese kana key.
			 */
			static KEYCODE_KANA: number;
			/**
			 * Key code constant: Assist key. Launches the global assist activity. Not delivered to applications.
			 */
			static KEYCODE_ASSIST: number;
			/**
			 *  There are now more than MAX_KEYCODE keycodes. Use #getMaxKeyCode() instead.
			 */
			static MAX_KEYCODE: number;
			/**
			 * #getAction value: the key has been pressed down.
			 */
			static ACTION_DOWN: number;
			/**
			 * #getAction value: the key has been released.
			 */
			static ACTION_UP: number;
			/**
			 * #getAction value: multiple duplicate key events have occurred in a row, or a complex string is being delivered. If the key code is not {#link #KEYCODE_UNKNOWN then the {#link #getRepeatCount() method returns the number of times the given key code should be executed. Otherwise, if the key code is #KEYCODE_UNKNOWN, then this is a sequence of characters as returned by #getCharacters.
			 */
			static ACTION_MULTIPLE: number;
			static META_ALT_ON: number;
			static META_ALT_LEFT_ON: number;
			static META_ALT_RIGHT_ON: number;
			static META_SHIFT_ON: number;
			static META_SHIFT_LEFT_ON: number;
			static META_SHIFT_RIGHT_ON: number;
			static META_SYM_ON: number;
			static META_FUNCTION_ON: number;
			static META_CTRL_ON: number;
			static META_CTRL_LEFT_ON: number;
			static META_CTRL_RIGHT_ON: number;
			static META_META_ON: number;
			static META_META_LEFT_ON: number;
			static META_META_RIGHT_ON: number;
			static META_CAPS_LOCK_ON: number;
			static META_NUM_LOCK_ON: number;
			static META_SCROLL_LOCK_ON: number;
			/**
			 * This mask is a combination of #META_SHIFT_ON, #META_SHIFT_LEFT_ON and #META_SHIFT_RIGHT_ON.
			 */
			static META_SHIFT_MASK: number;
			/**
			 * This mask is a combination of #META_ALT_ON, #META_ALT_LEFT_ON and #META_ALT_RIGHT_ON.
			 */
			static META_ALT_MASK: number;
			/**
			 * This mask is a combination of #META_CTRL_ON, #META_CTRL_LEFT_ON and #META_CTRL_RIGHT_ON.
			 */
			static META_CTRL_MASK: number;
			/**
			 * This mask is a combination of #META_META_ON, #META_META_LEFT_ON and #META_META_RIGHT_ON.
			 */
			static META_META_MASK: number;
			/**
			 * This mask is set if the device woke because of this key event.
			 */
			static FLAG_WOKE_HERE: number;
			/**
			 * This mask is set if the key event was generated by a software keyboard.
			 */
			static FLAG_SOFT_KEYBOARD: number;
			/**
			 * This mask is set if we don't want the key event to cause us to leave touch mode.
			 */
			static FLAG_KEEP_TOUCH_MODE: number;
			/**
			 * This mask is set if an event was known to come from a trusted part of the system. That is, the event is known to come from the user, and could not have been spoofed by a third party component.
			 */
			static FLAG_FROM_SYSTEM: number;
			/**
			 * This mask is used for compatibility, to identify enter keys that are coming from an IME whose enter key has been auto-labelled "next" or "done". This allows TextView to dispatch these as normal enter keys for old applications, but still do the appropriate action when receiving them.
			 */
			static FLAG_EDITOR_ACTION: number;
			/**
			 * When associated with up key events, this indicates that the key press has been canceled. Typically this is used with virtual touch screen keys, where the user can slide from the virtual key area on to the display: in that case, the application will receive a canceled up event and should not perform the action normally associated with the key. Note that for this to work, the application can not perform an action for a key until it receives an up or the long press timeout has expired.
			 */
			static FLAG_CANCELED: number;
			/**
			 * This key event was generated by a virtual (on-screen) hard key area. Typically this is an area of the touchscreen, outside of the regular display, dedicated to "hardware" buttons.
			 */
			static FLAG_VIRTUAL_HARD_KEY: number;
			/**
			 * This flag is set for the first key repeat that occurs after the long press timeout.
			 */
			static FLAG_LONG_PRESS: number;
			/**
			 * Set when a key event has #FLAG_CANCELED set because a long press action was executed while it was down.
			 */
			static FLAG_CANCELED_LONG_PRESS: number;
			/**
			 * Set for #ACTION_UP when this event's key code is still being tracked from its initial down. That is, somebody requested that tracking started on the key down and a long press has not caused the tracking to be canceled.
			 */
			static FLAG_TRACKING: number;
			/**
			 * Set when a key event has been synthesized to implement default behavior for an event that the application did not handle. Fallback key events are generated by unhandled trackball motions (to emulate a directional keypad) and by certain unhandled key presses that are declared in the key map (such as special function numeric keypad keys when numlock is off).
			 */
			static FLAG_FALLBACK: number;
			static CREATOR: android.os.Parcelable.ICreator<android.view.KeyEvent>;
			static class: java.lang.Class<android.view.KeyEvent>;
			/**
			 * Returns the maximum keycode.
			 */
			public static getMaxKeyCode(): number;
			/**
			 * Get the character that is produced by putting accent on the character c. For example, getDeadChar('`', 'e') returns &egrave;.
			 */
			public static getDeadChar(accent: number, c: number): number;
			/**
			 * Create a new key event that is the same as the given one, but whose event time and repeat count are replaced with the given value. 
			 * @param event The existing event to be copied. This is not modified.
			 * @param eventTime The new event time
			 * @param newRepeat The new repeat count of the event.
			 */
			public static changeTimeRepeat(event: android.view.KeyEvent, eventTime: number, newRepeat: number): android.view.KeyEvent;
			/**
			 * Create a new key event that is the same as the given one, but whose event time and repeat count are replaced with the given value. 
			 * @param event The existing event to be copied. This is not modified.
			 * @param eventTime The new event time
			 * @param newRepeat The new repeat count of the event.
			 * @param newFlags New flags for the event, replacing the entire value
			 */
			public static changeTimeRepeat(event: android.view.KeyEvent, eventTime: number, newRepeat: number, newFlags: number): android.view.KeyEvent;
			/**
			 * Create a new key event that is the same as the given one, but whose action is replaced with the given value. 
			 * @param event The existing event to be copied. This is not modified.
			 * @param action The new action code of the event.
			 */
			public static changeAction(event: android.view.KeyEvent, action: number): android.view.KeyEvent;
			/**
			 * Create a new key event that is the same as the given one, but whose flags are replaced with the given value. 
			 * @param event The existing event to be copied. This is not modified.
			 * @param flags The new flags constant.
			 */
			public static changeFlags(event: android.view.KeyEvent, flags: number): android.view.KeyEvent;
			/**
			 * Is this a system key? System keys can not be used for menu shortcuts. TODO: this information should come from a table somewhere. TODO: should the dpad keys be here? arguably, because they also shouldn't be menu shortcuts
			 */
			public isSystem(): boolean;
			/**
			 * Returns true if the specified keycode is a gamepad button.
			 */
			public static isGamepadButton(keyCode: number): boolean;
			/**
			 * 
			 */
			public getDeviceId(): number;
			/**
			 * 
			 */
			public getSource(): number;
			/**
			 * 
			 */
			public setSource(source: number): void;
			public getMetaState(): number;
			/**
			 * Returns the state of the modifier keys.
			 */
			public getModifiers(): number;
			/**
			 * Returns the flags for this key event.
			 */
			public getFlags(): number;
			/**
			 * Gets a mask that includes all valid modifier key meta state bits.
			 */
			public static getModifierMetaStateMask(): number;
			/**
			 * Returns true if this key code is a modifier key.
			 */
			public static isModifierKey(keyCode: number): boolean;
			/**
			 * Normalizes the specified meta state.
			 * @param metaState The meta state.
			 */
			public static normalizeMetaState(metaState: number): number;
			/**
			 * Returns true if no modifiers keys are pressed according to the specified meta state.
			 * @param metaState The meta state to consider.
			 */
			public static metaStateHasNoModifiers(metaState: number): boolean;
			/**
			 * Returns true if only the specified modifier keys are pressed according to the specified meta state. Returns false if a different combination of modifier keys are pressed.
			 * @param metaState The meta state to consider.
			 * @param modifiers The meta state of the modifier keys to check. May be a combination
			 */
			public static metaStateHasModifiers(metaState: number, modifiers: number): boolean;
			/**
			 * Returns true if no modifier keys are pressed.
			 */
			public hasNoModifiers(): boolean;
			/**
			 * Returns true if only the specified modifiers keys are pressed. Returns false if a different combination of modifier keys are pressed.
			 * @param modifiers The meta state of the modifier keys to check. May be a combination
			 */
			public hasModifiers(modifiers: number): boolean;
			public isAltPressed(): boolean;
			public isShiftPressed(): boolean;
			public isSymPressed(): boolean;
			public isCtrlPressed(): boolean;
			public isMetaPressed(): boolean;
			public isFunctionPressed(): boolean;
			public isCapsLockOn(): boolean;
			public isNumLockOn(): boolean;
			public isScrollLockOn(): boolean;
			/**
			 * Retrieve the action of this key event. May be either #ACTION_DOWN, #ACTION_UP, or #ACTION_MULTIPLE. 
			 */
			public getAction(): number;
			/**
			 * For #ACTION_UP events, indicates that the event has been canceled as per #FLAG_CANCELED.
			 */
			public isCanceled(): boolean;
			/**
			 * Call this during Callback#onKeyDown to have the system track the key through its final up (possibly including a long press). Note that only one key can be tracked at a time -- if another key down event is received while a previous one is being tracked, tracking is stopped on the previous event.
			 */
			public startTracking(): void;
			/**
			 * For #ACTION_UP events, indicates that the event is still being tracked from its initial down event as per #FLAG_TRACKING.
			 */
			public isTracking(): boolean;
			/**
			 * For #ACTION_DOWN events, indicates that the event has been canceled as per #FLAG_LONG_PRESS.
			 */
			public isLongPress(): boolean;
			/**
			 * Retrieve the key code of the key event. This is the physical key that was pressed, <em>not</em> the Unicode character. 
			 */
			public getKeyCode(): number;
			/**
			 * For the special case of a #ACTION_MULTIPLE event with key code of #KEYCODE_UNKNOWN, this is a raw string of characters associated with the event. In all other cases it is null. 
			 */
			public getCharacters(): string;
			/**
			 * Retrieve the hardware key id of this key event. These values are not reliable and vary from device to device.
			 */
			public getScanCode(): number;
			/**
			 * Retrieve the repeat count of the event. For both key up and key down events, this is the number of times the key has repeated with the first down starting at 0 and counting up from there. For multiple key events, this is the number of down/up pairs that have occurred. 
			 */
			public getRepeatCount(): number;
			/**
			 * Retrieve the time of the most recent key down event, in the android.os.SystemClock#uptimeMillis time base. If this is a down event, this will be the same as #getEventTime(). Note that when chording keys, this value is the down time of the most recently pressed key, which may <em>not</em> be the same physical key of this event. 
			 */
			public getDownTime(): any;
			/**
			 * Retrieve the time this event occurred, in the android.os.SystemClock#uptimeMillis time base.
			 */
			public getEventTime(): any;
			/**
			 * Gets the KeyCharacterMap associated with the keyboard device.
			 */
			public getKeyCharacterMap(): android.view.KeyCharacterMap;
			/**
			 * Gets the primary character for this key. In other words, the label that is physically printed on it.
			 */
			public getDisplayLabel(): string;
			/**
			 * Gets the Unicode character generated by the specified key and meta key state combination.
			 */
			public getUnicodeChar(): number;
			/**
			 * Gets the Unicode character generated by the specified key and meta key state combination.
			 * @param metaState The meta key modifier state.
			 */
			public getUnicodeChar(metaState: number): number;
			/**
			 * Get the character conversion data for a given key code.
			 * @param results A {@link KeyCharacterMap.KeyData} instance that will be
			 */
			public getKeyData(results: android.view.KeyCharacterMap.KeyData): boolean;
			/**
			 * Gets the first character in the character array that can be generated by the specified key code.
			 * @param chars The array of matching characters to consider.
			 */
			public getMatch(chars: native.Array<string>): string;
			/**
			 * Gets the first character in the character array that can be generated by the specified key code. If there are multiple choices, prefers the one that would be generated with the specified meta key modifier state.
			 * @param chars The array of matching characters to consider.
			 * @param metaState The preferred meta key modifier state.
			 */
			public getMatch(chars: native.Array<string>, metaState: number): string;
			/**
			 * Gets the number or symbol associated with the key.
			 */
			public getNumber(): string;
			/**
			 * Returns true if this key produces a glyph.
			 */
			public isPrintingKey(): boolean;
			/**
			 *  Use #dispatch(Callback, DispatcherState, Object) instead.
			 */
			public dispatch(receiver: android.view.KeyEvent.ICallback): boolean;
			/**
			 * Deliver this key event to a Callback interface. If this is an ACTION_MULTIPLE event and it is not handled, then an attempt will be made to deliver a single normal event. 
			 * @param receiver The Callback that will be given the event.
			 * @param state State information retained across events.
			 * @param target The target of the dispatch, for use in tracking.
			 */
			public dispatch(receiver: android.view.KeyEvent.ICallback, state: android.view.KeyEvent.DispatcherState, target: any): boolean;
			public toString(): string;
			/**
			 * Returns a string that represents the symbolic name of the specified keycode such as "KEYCODE_A", "KEYCODE_DPAD_UP", or an equivalent numeric constant such as "1001" if unknown.
			 * @param keyCode The key code.
			 */
			public static keyCodeToString(keyCode: number): string;
			/**
			 * Gets a keycode by its symbolic name such as "KEYCODE_A" or an equivalent numeric constant such as "1001".
			 * @param symbolicName The symbolic name of the keycode.
			 */
			public static keyCodeFromString(symbolicName: string): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
		}
		export module KeyEvent {
			/**
			 * Use with KeyEvent#dispatch(Callback, DispatcherState, Object) for more advanced key dispatching, such as long presses.
			 */
			export class DispatcherState extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.view.KeyEvent.DispatcherState>;
				/**
				 * Reset back to initial state.
				 */
				public reset(): void;
				/**
				 * Stop any tracking associated with this target.
				 */
				public reset(target: any): void;
				/**
				 * Start tracking the key code associated with the given event. This can only be called on a key down. It will allow you to see any long press associated with the key, and will result in KeyEvent#isTracking return true on the long press and up events. 
				 */
				public startTracking(event: android.view.KeyEvent, target: any): void;
				/**
				 * Return true if the key event is for a key code that is currently being tracked by the dispatcher.
				 */
				public isTracking(event: android.view.KeyEvent): boolean;
				/**
				 * Keep track of the given event's key code as having performed an action with a long press, so no action should occur on the up.
				 */
				public performedLongPress(event: android.view.KeyEvent): void;
				/**
				 * Handle key up event to stop tracking. This resets the dispatcher state, and updates the key event state based on it.
				 */
				public handleUpEvent(event: android.view.KeyEvent): void;
			}
			export class Callback implements android.view.KeyEvent.ICallback {
				constructor(implementation: android.view.KeyEvent.ICallback);
				/**
				 * Called when a key down event has occurred. If you return true, you can first call KeyEvent#startTracking() KeyEvent.startTracking() to have the framework track the event through its #onKeyUp(int, KeyEvent) and also call your #onKeyLongPress(int, KeyEvent) if it occurs. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param event Description of the key event.
				 */
				public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Called when a long press has occurred. If you return true, the final key up will have KeyEvent#FLAG_CANCELED and KeyEvent#FLAG_CANCELED_LONG_PRESS set. Note that in order to receive this callback, someone in the event change <em>must</em> return true from #onKeyDown <em>and</em> call KeyEvent#startTracking() on the event. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param event Description of the key event.
				 */
				public onKeyLongPress(keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Called when a key up event has occurred. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param event Description of the key event.
				 */
				public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Called when multiple down/up pairs of the same key have occurred in a row. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param count Number of pairs as returned by event.getRepeatCount().
				 * @param event Description of the key event.
				 */
				public onKeyMultiple(keyCode: number, count: number, event: android.view.KeyEvent): boolean;
			}
			interface ICallback {
				/**
				 * Called when a key down event has occurred. If you return true, you can first call KeyEvent#startTracking() KeyEvent.startTracking() to have the framework track the event through its #onKeyUp(int, KeyEvent) and also call your #onKeyLongPress(int, KeyEvent) if it occurs. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param event Description of the key event.
				 */
				onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Called when a long press has occurred. If you return true, the final key up will have KeyEvent#FLAG_CANCELED and KeyEvent#FLAG_CANCELED_LONG_PRESS set. Note that in order to receive this callback, someone in the event change <em>must</em> return true from #onKeyDown <em>and</em> call KeyEvent#startTracking() on the event. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param event Description of the key event.
				 */
				onKeyLongPress(keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Called when a key up event has occurred. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param event Description of the key event.
				 */
				onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Called when multiple down/up pairs of the same key have occurred in a row. 
				 * @param keyCode The value in event.getKeyCode().
				 * @param count Number of pairs as returned by event.getRepeatCount().
				 * @param event Description of the key event.
				 */
				onKeyMultiple(keyCode: number, count: number, event: android.view.KeyEvent): boolean;
			}
		}
		/**
		 * Represents an event that is sent out by the system at various times during a drag and drop operation. It is a complex data structure that contains several important pieces of data about the operation and the underlying data.
		 */
		export class DragEvent extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Action constant returned by #getAction(): Signals the start of a drag and drop operation. The View should return true from its View#onDragEvent(DragEvent) onDragEvent() handler method or View.View.OnDragListener#onDrag(View,DragEvent) OnDragListener.onDrag() listener if it can accept a drop. The onDragEvent() or onDrag() methods usually inspect the metadata from #getClipDescription() to determine if they can accept the data contained in this drag. For an operation that doesn't represent data transfer, these methods may perform other actions to determine whether or not the View should accept the drag. If the View wants to indicate that it is a valid drop target, it can also react by changing its appearance.
			 */
			static ACTION_DRAG_STARTED: number;
			/**
			 * Action constant returned by #getAction(): Sent to a View after #ACTION_DRAG_ENTERED if the drag shadow is still within the View object's bounding box. The #getX() and #getY() methods supply the X and Y position of of the drag point within the View object's bounding box.
			 */
			static ACTION_DRAG_LOCATION: number;
			/**
			 * Action constant returned by #getAction(): Signals to a View that the user has released the drag shadow, and the drag point is within the bounding box of the View. The View should retrieve the data from the DragEvent by calling #getClipData(). The methods #getX() and #getY() return the X and Y position of the drop point within the View object's bounding box.
			 */
			static ACTION_DROP: number;
			/**
			 * Action constant returned by #getAction(): Signals to a View that the drag and drop operation has concluded. A View that changed its appearance during the operation should return to its usual drawing state in response to this event.
			 */
			static ACTION_DRAG_ENDED: number;
			/**
			 * Action constant returned by #getAction(): Signals to a View that the drag point has entered the bounding box of the View.
			 */
			static ACTION_DRAG_ENTERED: number;
			/**
			 * Action constant returned by #getAction(): Signals that the user has moved the drag shadow outside the bounding box of the View. The View can react by changing its appearance in a way that tells the user that View is no longer the immediate drop target.
			 */
			static ACTION_DRAG_EXITED: number;
			/**
			 * A container for creating a DragEvent from a Parcel.
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.view.DragEvent>;
			static class: java.lang.Class<android.view.DragEvent>;
			static obtain(): android.view.DragEvent;
			/**
			 * Inspect the action value of this event.
			 */
			public getAction(): number;
			/**
			 * Gets the X coordinate of the drag point. The value is only valid if the event action is #ACTION_DRAG_LOCATION or #ACTION_DROP.
			 */
			public getX(): number;
			/**
			 * Gets the Y coordinate of the drag point. The value is valid if the event action is #ACTION_DRAG_ENTERED, #ACTION_DRAG_LOCATION, #ACTION_DROP, or #ACTION_DRAG_EXITED.
			 */
			public getY(): number;
			/**
			 * Returns the android.content.ClipData object sent to the system as part of the call to android.view.View#startDrag(ClipData,View.DragShadowBuilder,Object,int) startDrag(). This method only returns valid data if the event action is #ACTION_DROP.
			 */
			public getClipData(): android.content.ClipData;
			/**
			 * Returns the android.content.ClipDescription object contained in the android.content.ClipData object sent to the system as part of the call to android.view.View#startDrag(ClipData,View.DragShadowBuilder,Object,int) startDrag(). The drag handler or listener for a View can use the metadata in this object to decide if the View can accept the dragged View object's data.
			 */
			public getClipDescription(): android.content.ClipDescription;
			/**
			 * Returns the local state object sent to the system as part of the call to android.view.View#startDrag(ClipData,View.DragShadowBuilder,Object,int) startDrag(). The object is intended to provide local information about the drag and drop operation. For example, it can indicate whether the drag and drop operation is a copy or a move.
			 */
			public getLocalState(): any;
			public getResult(): boolean;
			/**
			 * Returns a string containing a concise, human-readable representation of this DragEvent object.
			 */
			public toString(): string;
			/**
			 * Returns information about the android.os.Parcel representation of this DragEvent object.
			 */
			public describeContents(): number;
			/**
			 * Creates a android.os.Parcel object from this DragEvent object.
			 * @param dest A {@link android.os.Parcel} object in which to put the DragEvent object.
			 * @param flags Flags to store in the Parcel.
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Builds the drawing cache of Views of various dimension. The assumption is that a View with a 0-sized dimension (width or height) will always have a null drawing cache.
		 */
		export class ZeroSizedTest extends android.test.ActivityInstrumentationTestCase<android.view.ZeroSized> {
			constructor();
			static class: java.lang.Class<android.view.ZeroSizedTest>;
			public setUp(): void;
			public testSetUpConditions(): void;
			public testDrawingCacheWithDimension(): void;
			public testDrawingCacheWithNoWidth(): void;
			public testDrawingCacheWithNoHeight(): void;
			public testDrawingCacheWithNoDimension(): void;
		}
		/**
		 * Class for managing accessibility interactions initiated from the system and targeting the view hierarchy. A *ClientThread method is to be called from the interaction connection ViewAncestor gives the system to talk to it and a corresponding *UiThread method that is executed on the UI thread.
		 */
		export class AccessibilityInteractionController extends java.lang.Object {
			static class: java.lang.Class<android.view.AccessibilityInteractionController>;
			PrivateHandler: {
	new (looper: android.os.Looper): android.view.AccessibilityInteractionController.PrivateHandler;
};
		}
		export module AccessibilityInteractionController {
			export class PrivateHandler extends android.os.Handler {
				static class: java.lang.Class<android.view.AccessibilityInteractionController.PrivateHandler>;
				public getMessageName(message: android.os.Message): string;
				public handleMessage(message: android.os.Message): void;
			}
			/**
			 * This class encapsulates a prefetching strategy for the accessibility APIs for querying window content. It is responsible to prefetch a batch of AccessibilityNodeInfos in addition to the one for a requested node.
			 */
			export class AccessibilityNodePrefetcher extends java.lang.Object {
				static class: java.lang.Class<android.view.AccessibilityInteractionController.AccessibilityNodePrefetcher>;
				public prefetchAccessibilityNodeInfos(view: android.view.View, virtualViewId: number, prefetchFlags: number, outInfos: java.util.IList<android.view.accessibility.AccessibilityNodeInfo>): void;
			}
		}
		export class TextureView extends android.view.View {
			/**
			 * Creates a new TextureView. 
			 * @param context The context to associate this view with.
			 */
			constructor(context: android.content.Context);
			/**
			 * Creates a new TextureView. 
			 * @param context The context to associate this view with.
			 * @param attrs The attributes of the XML tag that is inflating the view.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Creates a new TextureView. 
			 * @param context The context to associate this view with.
			 * @param attrs The attributes of the XML tag that is inflating the view.
			 * @param defStyle The default style to apply to this view. If 0, no style
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.view.TextureView>;
			/**
			 * 
			 */
			public isOpaque(): boolean;
			/**
			 * Indicates whether the content of this TextureView is opaque. The content is assumed to be opaque by default. 
			 * @param opaque True if the content of this TextureView is opaque,
			 */
			public setOpaque(opaque: boolean): void;
			protected onAttachedToWindow(): void;
			protected onDetachedFromWindow(): void;
			/**
			 * The layer type of a TextureView is ignored since a TextureView is always considered to act as a hardware layer. The optional paint supplied to this method will however be taken into account when rendering the content of this TextureView. 
			 * @param layerType The ype of layer to use with this view, must be one of
			 * @param paint The paint used to compose the layer. This argument is optional
			 */
			public setLayerType(layerType: number, paint: android.graphics.Paint): void;
			/**
			 * Always returns #LAYER_TYPE_HARDWARE.
			 */
			public getLayerType(): number;
			hasStaticLayer(): boolean;
			/**
			 * Calling this method has no effect.
			 */
			public buildLayer(): void;
			/**
			 * Subclasses of TextureView cannot do their own rendering with the Canvas object. 
			 * @param canvas The Canvas to which the View is rendered.
			 */
			public draw(canvas: android.graphics.Canvas): void;
			/**
			 * Subclasses of TextureView cannot do their own rendering with the Canvas object. 
			 * @param canvas The Canvas to which the View is rendered.
			 */
			protected onDraw(canvas: android.graphics.Canvas): void;
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			destroyLayer(valid: boolean): boolean;
			getHardwareLayer(): android.view.HardwareLayer;
			protected onVisibilityChanged(changedView: android.view.View, visibility: number): void;
			/**
			 * @param transform The transform to apply to the content of
			 */
			public setTransform(transform: android.graphics.Matrix): void;
			/**
			 * Returns the transform associated with this texture view. 
			 * @param transform The {@link Matrix} in which to copy the current
			 */
			public getTransform(transform: android.graphics.Matrix): android.graphics.Matrix;
			public getBitmap(): android.graphics.Bitmap;
			/**
			 * @param width The width of the bitmap to create
			 * @param height The height of the bitmap to create
			 */
			public getBitmap(width: number, height: number): android.graphics.Bitmap;
			/**
			 * @param bitmap The bitmap to copy the content of the surface texture into,
			 */
			public getBitmap(bitmap: android.graphics.Bitmap): android.graphics.Bitmap;
			/**
			 * Returns true if the SurfaceTexture associated with this TextureView is available for rendering. When this method returns true, #getSurfaceTexture() returns a valid surface texture.
			 */
			public isAvailable(): boolean;
			public lockCanvas(): android.graphics.Canvas;
			/**
			 * Just like #lockCanvas() but allows specification of a dirty rectangle. Every pixel within that rectangle must be written; however pixels outside the dirty rectangle will be preserved by the next call to lockCanvas(). 
			 * @param dirty Area of the surface that will be modified.
			 */
			public lockCanvas(dirty: android.graphics.Rect): android.graphics.Canvas;
			/**
			 * Finish editing pixels in the surface. After this call, the surface's current pixels will be shown on the screen, but its content is lost, in particular there is no guarantee that the content of the Surface will remain unchanged when lockCanvas() is called again. 
			 * @param canvas The Canvas previously returned by lockCanvas()
			 */
			public unlockCanvasAndPost(canvas: android.graphics.Canvas): void;
			/**
			 * Returns the SurfaceTexture used by this view. This method may return null if the view is not attached to a window or if the surface texture has not been initialized yet. #isAvailable()
			 */
			public getSurfaceTexture(): android.graphics.SurfaceTexture;
			/**
			 * Set the SurfaceTexture for this view to use. If a SurfaceTexture is already being used by this view, it is immediately released and not be usable any more. The SurfaceTextureListener#onSurfaceTextureDestroyed callback is <b>not</b> called for the previous SurfaceTexture. Similarly, the SurfaceTextureListener#onSurfaceTextureAvailable callback is <b>not</b> called for the SurfaceTexture passed to setSurfaceTexture.
			 * @param surfaceTexture The {@link SurfaceTexture} that the view should use.
			 */
			public setSurfaceTexture(surfaceTexture: android.graphics.SurfaceTexture): void;
			/**
			 * Returns the SurfaceTextureListener currently associated with this texture view. #setSurfaceTextureListener(android.view.TextureView.SurfaceTextureListener) SurfaceTextureListener
			 */
			public getSurfaceTextureListener(): android.view.TextureView.ISurfaceTextureListener;
			/**
			 * Sets the SurfaceTextureListener used to listen to surface texture events. #getSurfaceTextureListener() SurfaceTextureListener
			 */
			public setSurfaceTextureListener(listener: android.view.TextureView.ISurfaceTextureListener): void;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
		}
		export module TextureView {
			/**
			 * This listener can be used to be notified when the surface texture associated with this texture view is available.
			 */
			interface ISurfaceTextureListener {
				/**
				 * Invoked when a TextureView's SurfaceTexture is ready for use. 
				 * @param surface The surface returned by
				 * @param width The width of the surface
				 * @param height The height of the surface
				 */
				onSurfaceTextureAvailable(surface: android.graphics.SurfaceTexture, width: number, height: number): void;
				/**
				 * Invoked when the SurfaceTexture's buffers size changed. 
				 * @param surface The surface returned by
				 * @param width The new width of the surface
				 * @param height The new height of the surface
				 */
				onSurfaceTextureSizeChanged(surface: android.graphics.SurfaceTexture, width: number, height: number): void;
				/**
				 * Invoked when the specified SurfaceTexture is about to be destroyed. If returns true, no rendering should happen inside the surface texture after this method is invoked. If returns false, the client needs to call SurfaceTexture#release(). Most applications should return true. 
				 * @param surface The surface about to be destroyed
				 */
				onSurfaceTextureDestroyed(surface: android.graphics.SurfaceTexture): boolean;
				/**
				 * Invoked when the specified SurfaceTexture is updated through SurfaceTexture#updateTexImage(). 
				 * @param surface The surface just updated
				 */
				onSurfaceTextureUpdated(surface: android.graphics.SurfaceTexture): void;
			}
			/**
			 * This listener can be used to be notified when the surface texture associated with this texture view is available.
			 */
			export class SurfaceTextureListener implements android.view.TextureView.ISurfaceTextureListener {
				constructor(implementation: android.view.TextureView.ISurfaceTextureListener);
				/**
				 * Invoked when a TextureView's SurfaceTexture is ready for use. 
				 * @param surface The surface returned by
				 * @param width The width of the surface
				 * @param height The height of the surface
				 */
				public onSurfaceTextureAvailable(surface: android.graphics.SurfaceTexture, width: number, height: number): void;
				/**
				 * Invoked when the SurfaceTexture's buffers size changed. 
				 * @param surface The surface returned by
				 * @param width The new width of the surface
				 * @param height The new height of the surface
				 */
				public onSurfaceTextureSizeChanged(surface: android.graphics.SurfaceTexture, width: number, height: number): void;
				/**
				 * Invoked when the specified SurfaceTexture is about to be destroyed. If returns true, no rendering should happen inside the surface texture after this method is invoked. If returns false, the client needs to call SurfaceTexture#release(). Most applications should return true. 
				 * @param surface The surface about to be destroyed
				 */
				public onSurfaceTextureDestroyed(surface: android.graphics.SurfaceTexture): boolean;
				/**
				 * Invoked when the specified SurfaceTexture is updated through SurfaceTexture#updateTexImage(). 
				 * @param surface The surface just updated
				 */
				public onSurfaceTextureUpdated(surface: android.graphics.SurfaceTexture): void;
			}
		}
		/**
		 * Exercises android.view.View's longpress plumbing.
		 */
		export class LongpressTest extends android.test.ActivityInstrumentationTestCase<android.view.Longpress> {
			constructor();
			static class: java.lang.Class<android.view.LongpressTest>;
			public setUp(): void;
			protected tearDown(): void;
			public testSetUpConditions(): void;
			public testKeypadLongClick(): void;
			public testTouchLongClick(): void;
		}
		/**
		 * Tests views using post*() and getViewTreeObserver() before onAttachedToWindow().
		 */
		export class RunQueue extends android.app.Activity implements android.view.ViewTreeObserver.IOnGlobalLayoutListener {
			constructor();
			runnableRan: boolean;
			runnableCancelled: boolean;
			globalLayout: boolean;
			viewTreeObserver: android.view.ViewTreeObserver;
			static class: java.lang.Class<android.view.RunQueue>;
			protected onCreate(icicle: android.os.Bundle): void;
			public onGlobalLayout(): void;
		}
		/**
		 * A view tree observer is used to register listeners that can be notified of global changes in the view tree. Such global events include, but are not limited to, layout of the whole tree, beginning of the drawing pass, touch mode change....
		 */
		export class ViewTreeObserver extends java.lang.Object {
			static class: java.lang.Class<android.view.ViewTreeObserver>;
			/**
			 * Merges all the listeners registered on the specified observer with the listeners registered on this object. After this method is invoked, the specified observer will return false in #isAlive() and should not be used anymore.
			 * @param observer The ViewTreeObserver whose listeners must be added to this observer
			 */
			merge(observer: android.view.ViewTreeObserver): void;
			/**
			 * Register a callback to be invoked when the focus state within the view tree changes.
			 * @param listener The callback to add
			 */
			public addOnGlobalFocusChangeListener(listener: android.view.ViewTreeObserver.IOnGlobalFocusChangeListener): void;
			/**
			 * Remove a previously installed focus change callback.
			 * @param victim The callback to remove
			 */
			public removeOnGlobalFocusChangeListener(victim: android.view.ViewTreeObserver.IOnGlobalFocusChangeListener): void;
			/**
			 * Register a callback to be invoked when the global layout state or the visibility of views within the view tree changes
			 * @param listener The callback to add
			 */
			public addOnGlobalLayoutListener(listener: android.view.ViewTreeObserver.IOnGlobalLayoutListener): void;
			/**
			 * Remove a previously installed global layout callback
			 * @param victim The callback to remove
			 */
			public removeGlobalOnLayoutListener(victim: android.view.ViewTreeObserver.IOnGlobalLayoutListener): void;
			/**
			 * Remove a previously installed global layout callback
			 * @param victim The callback to remove
			 */
			public removeOnGlobalLayoutListener(victim: android.view.ViewTreeObserver.IOnGlobalLayoutListener): void;
			/**
			 * Register a callback to be invoked when the view tree is about to be drawn
			 * @param listener The callback to add
			 */
			public addOnPreDrawListener(listener: android.view.ViewTreeObserver.IOnPreDrawListener): void;
			/**
			 * Remove a previously installed pre-draw callback
			 * @param victim The callback to remove
			 */
			public removeOnPreDrawListener(victim: android.view.ViewTreeObserver.IOnPreDrawListener): void;
			/**
			 * @param listener The callback to add
			 */
			public addOnDrawListener(listener: android.view.ViewTreeObserver.IOnDrawListener): void;
			/**
			 * @param victim The callback to remove
			 */
			public removeOnDrawListener(victim: android.view.ViewTreeObserver.IOnDrawListener): void;
			/**
			 * Register a callback to be invoked when a view has been scrolled.
			 * @param listener The callback to add
			 */
			public addOnScrollChangedListener(listener: android.view.ViewTreeObserver.IOnScrollChangedListener): void;
			/**
			 * Remove a previously installed scroll-changed callback
			 * @param victim The callback to remove
			 */
			public removeOnScrollChangedListener(victim: android.view.ViewTreeObserver.IOnScrollChangedListener): void;
			/**
			 * Register a callback to be invoked when the invoked when the touch mode changes.
			 * @param listener The callback to add
			 */
			public addOnTouchModeChangeListener(listener: android.view.ViewTreeObserver.IOnTouchModeChangeListener): void;
			/**
			 * Remove a previously installed touch mode change callback
			 * @param victim The callback to remove
			 */
			public removeOnTouchModeChangeListener(victim: android.view.ViewTreeObserver.IOnTouchModeChangeListener): void;
			/**
			 * Indicates whether this ViewTreeObserver is alive. When an observer is not alive, any call to a method (except this one) will throw an exception.
			 */
			public isAlive(): boolean;
			/**
			 * Notifies registered listeners that focus has changed.
			 */
			dispatchOnGlobalFocusChange(oldFocus: android.view.View, newFocus: android.view.View): void;
			/**
			 * Notifies registered listeners that a global layout happened. This can be called manually if you are forcing a layout on a View or a hierarchy of Views that are not attached to a Window or in the GONE state.
			 */
			public dispatchOnGlobalLayout(): void;
			/**
			 * Notifies registered listeners that the drawing pass is about to start. If a listener returns true, then the drawing pass is canceled and rescheduled. This can be called manually if you are forcing the drawing on a View or a hierarchy of Views that are not attached to a Window or in the GONE state.
			 */
			public dispatchOnPreDraw(): boolean;
			/**
			 * Notifies registered listeners that the drawing pass is about to start.
			 */
			public dispatchOnDraw(): void;
			/**
			 * Notifies registered listeners that the touch mode has changed.
			 * @param inTouchMode True if the touch mode is now enabled, false otherwise.
			 */
			dispatchOnTouchModeChanged(inTouchMode: boolean): void;
			/**
			 * Notifies registered listeners that something has scrolled.
			 */
			dispatchOnScrollChanged(): void;
			/**
			 * Returns whether there are listeners for computing internal insets.
			 */
			hasComputeInternalInsetsListeners(): boolean;
		}
		export module ViewTreeObserver {
			/**
			 * Interface definition for a callback to be invoked when the global layout state or the visibility of views within the view tree changes.
			 */
			interface IOnGlobalLayoutListener {
				/**
				 * Callback method to be invoked when the global layout state or the visibility of views within the view tree changes
				 */
				onGlobalLayout(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the global layout state or the visibility of views within the view tree changes.
			 */
			export class OnGlobalLayoutListener implements android.view.ViewTreeObserver.IOnGlobalLayoutListener {
				constructor(implementation: android.view.ViewTreeObserver.IOnGlobalLayoutListener);
				/**
				 * Callback method to be invoked when the global layout state or the visibility of views within the view tree changes
				 */
				public onGlobalLayout(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the view tree is about to be drawn.
			 */
			interface IOnPreDrawListener {
				/**
				 * Callback method to be invoked when the view tree is about to be drawn. At this point, all views in the tree have been measured and given a frame. Clients can use this to adjust their scroll bounds or even to request a new layout before drawing occurs.
				 */
				onPreDraw(): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when the touch mode changes.
			 */
			interface IOnTouchModeChangeListener {
				/**
				 * Callback method to be invoked when the touch mode changes.
				 * @param isInTouchMode True if the view hierarchy is now in touch mode, false otherwise.
				 */
				onTouchModeChanged(isInTouchMode: boolean): void;
			}
			/**
			 * Interface definition for a callback to be invoked when something in the view tree has been scrolled.
			 */
			export class OnScrollChangedListener implements android.view.ViewTreeObserver.IOnScrollChangedListener {
				constructor(implementation: android.view.ViewTreeObserver.IOnScrollChangedListener);
				/**
				 * Callback method to be invoked when something in the view tree has been scrolled.
				 */
				public onScrollChanged(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the focus state within the view tree changes.
			 */
			interface IOnGlobalFocusChangeListener {
				/**
				 * Callback method to be invoked when the focus changes in the view tree. When the view tree transitions from touch mode to non-touch mode, oldFocus is null. When the view tree transitions from non-touch mode to touch mode, newFocus is null. When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.
				 * @param oldFocus The previously focused view, if any.
				 * @param newFocus The newly focused View, if any.
				 */
				onGlobalFocusChanged(oldFocus: android.view.View, newFocus: android.view.View): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the view tree is about to be drawn.
			 */
			interface IOnDrawListener {
				onDraw(): void;
			}
			/**
			 * Copy on write array. This array is not thread safe, and only one loop can iterate over this array at any given time. This class avoids allocations until a concurrent modification happens. Usage: CopyOnWriteArray.Access<MyData> access = array.start(); try { for (int i = 0; i < access.size(); i++) { MyData d = access.get(i); } } finally { access.end(); }
			 */
			export class CopyOnWriteArray<T> extends java.lang.Object {
				static class: java.lang.Class<android.view.ViewTreeObserver.CopyOnWriteArray<any>>;
				start(): android.view.ViewTreeObserver.CopyOnWriteArray.Access<T>;
				end(): void;
				size(): number;
				add(item: T): void;
				addAll(array: android.view.ViewTreeObserver.CopyOnWriteArray<T>): void;
				remove(item: T): void;
				clear(): void;
			}
			export module CopyOnWriteArray {
				export class Access<T> extends java.lang.Object {
					static class: java.lang.Class<android.view.ViewTreeObserver.CopyOnWriteArray.Access<any>>;
					get(index: number): T;
					size(): number;
				}
			}
			/**
			 * Interface definition for a callback to be invoked when the view tree is about to be drawn.
			 */
			export class OnDrawListener implements android.view.ViewTreeObserver.IOnDrawListener {
				constructor(implementation: android.view.ViewTreeObserver.IOnDrawListener);
				public onDraw(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the focus state within the view tree changes.
			 */
			export class OnGlobalFocusChangeListener implements android.view.ViewTreeObserver.IOnGlobalFocusChangeListener {
				constructor(implementation: android.view.ViewTreeObserver.IOnGlobalFocusChangeListener);
				/**
				 * Callback method to be invoked when the focus changes in the view tree. When the view tree transitions from touch mode to non-touch mode, oldFocus is null. When the view tree transitions from non-touch mode to touch mode, newFocus is null. When focus changes in non-touch mode (without transition from or to touch mode) either oldFocus or newFocus can be null.
				 * @param oldFocus The previously focused view, if any.
				 * @param newFocus The newly focused View, if any.
				 */
				public onGlobalFocusChanged(oldFocus: android.view.View, newFocus: android.view.View): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the touch mode changes.
			 */
			export class OnTouchModeChangeListener implements android.view.ViewTreeObserver.IOnTouchModeChangeListener {
				constructor(implementation: android.view.ViewTreeObserver.IOnTouchModeChangeListener);
				/**
				 * Callback method to be invoked when the touch mode changes.
				 * @param isInTouchMode True if the view hierarchy is now in touch mode, false otherwise.
				 */
				public onTouchModeChanged(isInTouchMode: boolean): void;
			}
			/**
			 * Interface definition for a callback to be invoked when something in the view tree has been scrolled.
			 */
			interface IOnScrollChangedListener {
				/**
				 * Callback method to be invoked when something in the view tree has been scrolled.
				 */
				onScrollChanged(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the view tree is about to be drawn.
			 */
			export class OnPreDrawListener implements android.view.ViewTreeObserver.IOnPreDrawListener {
				constructor(implementation: android.view.ViewTreeObserver.IOnPreDrawListener);
				/**
				 * Callback method to be invoked when the view tree is about to be drawn. At this point, all views in the tree have been measured and given a frame. Clients can use this to adjust their scroll bounds or even to request a new layout before drawing occurs.
				 */
				public onPreDraw(): boolean;
			}
		}
		/**
		 * Exercises android.view.View's ability to change visibility between GONE, VISIBLE and INVISIBLE.
		 */
		export class VisibilityTest extends android.test.ActivityInstrumentationTestCase<android.view.Visibility> {
			constructor();
			static class: java.lang.Class<android.view.VisibilityTest>;
			public setUp(): void;
			public testSetUpConditions(): void;
			public testVisibleToInvisible(): void;
			public testVisibleToGone(): void;
			public testGoneToVisible(): void;
			public testGoneToInvisible(): void;
			public testInvisibleToVisible(): void;
			public testInvisibleToGone(): void;
		}
		/**
		 * When a View implements this interface it will receive callbacks when expanded or collapsed as an action view alongside the optional, app-specified callbacks to OnActionExpandListener.
		 */
		interface ICollapsibleActionView {
			/**
			 * Called when this view is expanded as an action view. See MenuItem#expandActionView().
			 */
			onActionViewExpanded(): void;
			/**
			 * Called when this view is collapsed as an action view. See MenuItem#collapseActionView().
			 */
			onActionViewCollapsed(): void;
		}
		/**
		 * Standard constants and tools for placing an object within a potentially larger container.
		 */
		export class Gravity extends java.lang.Object {
			constructor();
			/**
			 * Constant indicating that no gravity has been set
			 */
			static NO_GRAVITY: number;
			/**
			 * Raw bit indicating the gravity for an axis has been specified.
			 */
			static AXIS_SPECIFIED: number;
			/**
			 * Raw bit controlling how the left/top edge is placed.
			 */
			static AXIS_PULL_BEFORE: number;
			/**
			 * Raw bit controlling how the right/bottom edge is placed.
			 */
			static AXIS_PULL_AFTER: number;
			/**
			 * Raw bit controlling whether the right/bottom edge is clipped to its container, based on the gravity direction being applied.
			 */
			static AXIS_CLIP: number;
			/**
			 * Bits defining the horizontal axis.
			 */
			static AXIS_X_SHIFT: number;
			/**
			 * Bits defining the vertical axis.
			 */
			static AXIS_Y_SHIFT: number;
			/**
			 * Push object to the top of its container, not changing its size.
			 */
			static TOP: number;
			/**
			 * Push object to the bottom of its container, not changing its size.
			 */
			static BOTTOM: number;
			/**
			 * Push object to the left of its container, not changing its size.
			 */
			static LEFT: number;
			/**
			 * Push object to the right of its container, not changing its size.
			 */
			static RIGHT: number;
			/**
			 * Place object in the vertical center of its container, not changing its size.
			 */
			static CENTER_VERTICAL: number;
			/**
			 * Grow the vertical size of the object if needed so it completely fills its container.
			 */
			static FILL_VERTICAL: number;
			/**
			 * Place object in the horizontal center of its container, not changing its size.
			 */
			static CENTER_HORIZONTAL: number;
			/**
			 * Grow the horizontal size of the object if needed so it completely fills its container.
			 */
			static FILL_HORIZONTAL: number;
			/**
			 * Place the object in the center of its container in both the vertical and horizontal axis, not changing its size.
			 */
			static CENTER: number;
			/**
			 * Grow the horizontal and vertical size of the object if needed so it completely fills its container.
			 */
			static FILL: number;
			/**
			 * Flag to clip the edges of the object to its container along the vertical axis.
			 */
			static CLIP_VERTICAL: number;
			/**
			 * Flag to clip the edges of the object to its container along the horizontal axis.
			 */
			static CLIP_HORIZONTAL: number;
			/**
			 * Raw bit controlling whether the layout direction is relative or not (START/END instead of absolute LEFT/RIGHT).
			 */
			static RELATIVE_LAYOUT_DIRECTION: number;
			/**
			 * Binary mask to get the absolute horizontal gravity of a gravity.
			 */
			static HORIZONTAL_GRAVITY_MASK: number;
			/**
			 * Binary mask to get the vertical gravity of a gravity.
			 */
			static VERTICAL_GRAVITY_MASK: number;
			/**
			 * Special constant to enable clipping to an overall display along the vertical dimension. This is not applied by default by #apply(int, int, int, Rect, int, int, Rect); you must do so yourself by calling #applyDisplay.
			 */
			static DISPLAY_CLIP_VERTICAL: number;
			/**
			 * Special constant to enable clipping to an overall display along the horizontal dimension. This is not applied by default by #apply(int, int, int, Rect, int, int, Rect); you must do so yourself by calling #applyDisplay.
			 */
			static DISPLAY_CLIP_HORIZONTAL: number;
			/**
			 * Push object to x-axis position at the start of its container, not changing its size.
			 */
			static START: number;
			/**
			 * Push object to x-axis position at the end of its container, not changing its size.
			 */
			static END: number;
			/**
			 * Binary mask for the horizontal gravity and script specific direction bit.
			 */
			static RELATIVE_HORIZONTAL_GRAVITY_MASK: number;
			static class: java.lang.Class<android.view.Gravity>;
			/**
			 * Apply a gravity constant to an object. This suppose that the layout direction is LTR. 
			 * @param gravity The desired placement of the object, as defined by the
			 * @param w The horizontal size of the object.
			 * @param h The vertical size of the object.
			 * @param container The frame of the containing space, in which the object
			 * @param outRect Receives the computed frame of the object in its
			 */
			public static apply(gravity: number, w: number, h: number, container: android.graphics.Rect, outRect: android.graphics.Rect): void;
			/**
			 * Apply a gravity constant to an object and take care if layout direction is RTL or not.
			 * @param gravity The desired placement of the object, as defined by the
			 * @param w The horizontal size of the object.
			 * @param h The vertical size of the object.
			 * @param container The frame of the containing space, in which the object
			 * @param outRect Receives the computed frame of the object in its
			 * @param layoutDirection The layout direction.
			 */
			public static apply(gravity: number, w: number, h: number, container: android.graphics.Rect, outRect: android.graphics.Rect, layoutDirection: number): void;
			/**
			 * Apply a gravity constant to an object. 
			 * @param gravity The desired placement of the object, as defined by the
			 * @param w The horizontal size of the object.
			 * @param h The vertical size of the object.
			 * @param container The frame of the containing space, in which the object
			 * @param xAdj Offset to apply to the X axis. If gravity is LEFT this
			 * @param yAdj Offset to apply to the Y axis. If gravity is TOP this pushes
			 * @param outRect Receives the computed frame of the object in its
			 */
			public static apply(gravity: number, w: number, h: number, container: android.graphics.Rect, xAdj: number, yAdj: number, outRect: android.graphics.Rect): void;
			/**
			 * Apply a gravity constant to an object.
			 * @param gravity The desired placement of the object, as defined by the
			 * @param w The horizontal size of the object.
			 * @param h The vertical size of the object.
			 * @param container The frame of the containing space, in which the object
			 * @param xAdj Offset to apply to the X axis. If gravity is LEFT this
			 * @param yAdj Offset to apply to the Y axis. If gravity is TOP this pushes
			 * @param outRect Receives the computed frame of the object in its
			 * @param layoutDirection The layout direction.
			 */
			public static apply(gravity: number, w: number, h: number, container: android.graphics.Rect, xAdj: number, yAdj: number, outRect: android.graphics.Rect, layoutDirection: number): void;
			/**
			 * Apply additional gravity behavior based on the overall "display" that an object exists in. This can be used after #apply(int, int, int, Rect, int, int, Rect) to place the object within a visible display. By default this moves or clips the object to be visible in the display; the gravity flags #DISPLAY_CLIP_HORIZONTAL and #DISPLAY_CLIP_VERTICAL can be used to change this behavior. 
			 * @param gravity Gravity constants to modify the placement within the
			 * @param display The rectangle of the display in which the object is
			 * @param inoutObj Supplies the current object position; returns with it
			 */
			public static applyDisplay(gravity: number, display: android.graphics.Rect, inoutObj: android.graphics.Rect): void;
			/**
			 * Apply additional gravity behavior based on the overall "display" that an object exists in. This can be used after #apply(int, int, int, Rect, int, int, Rect) to place the object within a visible display. By default this moves or clips the object to be visible in the display; the gravity flags #DISPLAY_CLIP_HORIZONTAL and #DISPLAY_CLIP_VERTICAL can be used to change this behavior.
			 * @param gravity Gravity constants to modify the placement within the
			 * @param display The rectangle of the display in which the object is
			 * @param inoutObj Supplies the current object position; returns with it
			 * @param layoutDirection The layout direction.
			 */
			public static applyDisplay(gravity: number, display: android.graphics.Rect, inoutObj: android.graphics.Rect, layoutDirection: number): void;
			/**
			 * @param gravity the gravity to check for vertical pull
			 */
			public static isVertical(gravity: number): boolean;
			/**
			 * @param gravity the gravity to check for horizontal pull
			 */
			public static isHorizontal(gravity: number): boolean;
			/**
			 * @param gravity The gravity to convert to absolute (horizontal) values.
			 * @param layoutDirection The layout direction.
			 */
			public static getAbsoluteGravity(gravity: number, layoutDirection: number): number;
		}
		/**
		 * An ActionProvider defines rich menu interaction in a single component. ActionProvider can generate action views for use in the action bar, dynamically populate submenus of a MenuItem, and handle default menu item invocations.
		 */
		export class ActionProvider extends java.lang.Object {
			/**
			 * Creates a new instance. ActionProvider classes should always implement a constructor that takes a single Context parameter for inflating from menu XML.
			 * @param context Context for accessing resources.
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.view.ActionProvider>;
			/**
			 * Factory method called by the Android framework to create new action views.
			 */
			public onCreateActionView(): android.view.View;
			/**
			 * Factory method called by the Android framework to create new action views. This method returns a new action view for the given MenuItem.
			 * @param forItem MenuItem to create the action view for
			 */
			public onCreateActionView(forItem: android.view.IMenuItem): android.view.View;
			/**
			 * The result of this method determines whether or not #isVisible() will be used by the MenuItem this ActionProvider is bound to help determine its visibility.
			 */
			public overridesItemVisibility(): boolean;
			/**
			 * If #overridesItemVisibility() returns true, the return value of this method will help determine the visibility of the MenuItem this ActionProvider is bound to.
			 */
			public isVisible(): boolean;
			/**
			 * If this ActionProvider is associated with an item in a menu, refresh the visibility of the item based on #overridesItemVisibility() and #isVisible(). If #overridesItemVisibility() returns false, this call will have no effect.
			 */
			public refreshVisibility(): void;
			/**
			 * Performs an optional default action.
			 */
			public onPerformDefaultAction(): boolean;
			/**
			 * Determines if this ActionProvider has a submenu associated with it.
			 */
			public hasSubMenu(): boolean;
			/**
			 * Called to prepare an associated submenu for the menu item backed by this ActionProvider.
			 * @param subMenu Submenu that will be displayed
			 */
			public onPrepareSubMenu(subMenu: android.view.ISubMenu): void;
			/**
			 * Set a listener to be notified when this ActionProvider's overridden visibility changes. This should only be used by MenuItem implementations.
			 * @param listener listener to set
			 */
			public setVisibilityListener(listener: android.view.ActionProvider.IVisibilityListener): void;
		}
		export module ActionProvider {
			/**
			 * Listens to changes in visibility as reported by ActionProvider#refreshVisibility().
			 */
			export class VisibilityListener implements android.view.ActionProvider.IVisibilityListener {
				constructor(implementation: android.view.ActionProvider.IVisibilityListener);
				public onActionProviderVisibilityChanged(isVisible: boolean): void;
			}
			/**
			 * Listens to changes in visibility as reported by ActionProvider#refreshVisibility().
			 */
			interface IVisibilityListener {
				onActionProviderVisibilityChanged(isVisible: boolean): void;
			}
		}
		/**
		 * Mock View class for testing
		 */
		export class MockView extends android.view.View {
			constructor();
			static class: java.lang.Class<android.view.MockView>;
		}
		export class ViewGroup extends android.view.View implements android.view.IViewParent, android.view.IViewManager {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * This view will get focus before any of its descendants.
			 */
			static FOCUS_BEFORE_DESCENDANTS: number;
			/**
			 * This view will get focus only if none of its descendants want it.
			 */
			static FOCUS_AFTER_DESCENDANTS: number;
			/**
			 * This view will block any of its descendants from getting focus, even if they are focusable.
			 */
			static FOCUS_BLOCK_DESCENDANTS: number;
			/**
			 * Used to indicate that no drawing cache should be kept in memory.
			 */
			static PERSISTENT_NO_CACHE: number;
			/**
			 * Used to indicate that the animation drawing cache should be kept in memory.
			 */
			static PERSISTENT_ANIMATION_CACHE: number;
			/**
			 * Used to indicate that the scrolling drawing cache should be kept in memory.
			 */
			static PERSISTENT_SCROLLING_CACHE: number;
			/**
			 * Used to indicate that all drawing caches should be kept in memory.
			 */
			static PERSISTENT_ALL_CACHES: number;
			static class: java.lang.Class<android.view.ViewGroup>;
			/**
			 * Gets the descendant focusability of this view group. The descendant focusability defines the relationship between this view group and its descendants when looking for a view to take focus in #requestFocus(int, android.graphics.Rect).
			 */
			public getDescendantFocusability(): number;
			/**
			 * Set the descendant focusability of this view group. This defines the relationship between this view group and its descendants when looking for a view to take focus in #requestFocus(int, android.graphics.Rect).
			 * @param focusability one of {@link #FOCUS_BEFORE_DESCENDANTS}, {@link #FOCUS_AFTER_DESCENDANTS},
			 */
			public setDescendantFocusability(focusability: number): void;
			/**
			 * 
			 */
			handleFocusGainInternal(direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			/**
			 * 
			 */
			public requestChildFocus(child: android.view.View, focused: android.view.View): void;
			/**
			 * 
			 */
			public focusableViewAvailable(v: android.view.View): void;
			/**
			 * 
			 */
			public showContextMenuForChild(originalView: android.view.View): boolean;
			/**
			 * 
			 */
			public startActionModeForChild(originalView: android.view.View, callback: android.view.ActionMode.ICallback): android.view.ActionMode;
			/**
			 * Find the nearest view in the specified direction that wants to take focus.
			 * @param focused The view that currently has focus
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and
			 */
			public focusSearch(focused: android.view.View, direction: number): android.view.View;
			/**
			 * 
			 */
			public requestChildRectangleOnScreen(child: android.view.View, rectangle: android.graphics.Rect, immediate: boolean): boolean;
			/**
			 * 
			 */
			public requestSendAccessibilityEvent(child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 * Called when a child has requested sending an AccessibilityEvent and gives an opportunity to its parent to augment the event.
			 * @param child The child which requests sending the event.
			 * @param event The event to be sent.
			 */
			public onRequestSendAccessibilityEvent(child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 *  #onRequestSendAccessibilityEvent(View, AccessibilityEvent)
			 */
			onRequestSendAccessibilityEventInternal(child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 * 
			 */
			public dispatchUnhandledMove(focused: android.view.View, direction: number): boolean;
			/**
			 * 
			 */
			public clearChildFocus(child: android.view.View): void;
			/**
			 * 
			 */
			public clearFocus(): void;
			/**
			 * 
			 */
			unFocus(): void;
			/**
			 * Returns the focused child of this view, if any. The child may have focus or contain focus.
			 */
			public getFocusedChild(): android.view.View;
			/**
			 * Returns true if this view has or contains focus
			 */
			public hasFocus(): boolean;
			public findFocus(): android.view.View;
			/**
			 * 
			 */
			public hasFocusable(): boolean;
			/**
			 * 
			 */
			public addFocusables(views: java.util.ArrayList<android.view.View>, direction: number, focusableMode: number): void;
			public findViewsWithText(outViews: java.util.ArrayList<android.view.View>, text: string, flags: number): void;
			findViewByAccessibilityIdTraversal(accessibilityId: number): android.view.View;
			/**
			 * 
			 */
			public dispatchWindowFocusChanged(hasFocus: boolean): void;
			/**
			 * 
			 */
			public addTouchables(views: java.util.ArrayList<android.view.View>): void;
			/**
			 * 
			 */
			public dispatchDisplayHint(hint: number): void;
			/**
			 * 
			 */
			protected dispatchVisibilityChanged(changedView: android.view.View, visibility: number): void;
			/**
			 * 
			 */
			public dispatchWindowVisibilityChanged(visibility: number): void;
			/**
			 * 
			 */
			public dispatchConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * 
			 */
			public recomputeViewAttributes(child: android.view.View): void;
			dispatchCollectViewAttributes(attachInfo: android.view.View.AttachInfo, visibility: number): void;
			/**
			 * 
			 */
			public bringChildToFront(child: android.view.View): void;
			/**
			 * 
			 */
			public dispatchDragEvent(event: android.view.DragEvent): boolean;
			findFrontmostDroppableChildAt(x: number, y: number, outLocalPoint: android.graphics.PointF): android.view.View;
			notifyChildOfDrag(child: android.view.View): boolean;
			public dispatchWindowSystemUiVisiblityChanged(visible: number): void;
			public dispatchSystemUiVisibilityChanged(visible: number): void;
			updateLocalSystemUiVisibility(localValue: number, localChanges: number): boolean;
			/**
			 * 
			 */
			public dispatchKeyEventPreIme(event: android.view.KeyEvent): boolean;
			/**
			 * 
			 */
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * 
			 */
			public dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
			/**
			 * 
			 */
			public dispatchTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			protected dispatchHoverEvent(event: android.view.MotionEvent): boolean;
			public addChildrenForAccessibility(childrenForAccessibility: java.util.ArrayList<android.view.View>): void;
			/**
			 * Implement this method to intercept hover events before they are handled by child views.
			 * @param event The motion event that describes the hover.
			 */
			public onInterceptHoverEvent(event: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			protected dispatchGenericPointerEvent(event: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			protected dispatchGenericFocusedEvent(event: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			public dispatchTouchEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * Enable or disable the splitting of MotionEvents to multiple children during touch event dispatch. This behavior is enabled by default for applications that target an SDK version of Build.VERSION_CODES#HONEYCOMB or newer.
			 * @param split <code>true</code> to allow MotionEvents to be split and dispatched to multiple
			 */
			public setMotionEventSplittingEnabled(split: boolean): void;
			/**
			 * Returns true if MotionEvents dispatched to this ViewGroup can be split to multiple children.
			 */
			public isMotionEventSplittingEnabled(): boolean;
			/**
			 * 
			 */
			public requestDisallowInterceptTouchEvent(disallowIntercept: boolean): void;
			/**
			 * Implement this method to intercept all touch screen motion events. This allows you to watch events as they are dispatched to your children, and take ownership of the current gesture at any point.
			 * @param ev The motion event being dispatched down the hierarchy.
			 */
			public onInterceptTouchEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * 
			 */
			public requestFocus(direction: number, previouslyFocusedRect: android.graphics.Rect): boolean;
			/**
			 * Look for a descendant to call View#requestFocus on. Called by ViewGroup#requestFocus(int, android.graphics.Rect) when it wants to request focus within its children. Override this to customize how your ViewGroup requests focus within its children.
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 * @param previouslyFocusedRect The rectangle (in this View's coordinate system)
			 */
			protected onRequestFocusInDescendants(direction: number, previouslyFocusedRect: android.graphics.Rect): boolean;
			/**
			 * 
			 */
			dispatchAttachedToWindow(info: android.view.View.AttachInfo, visibility: number): void;
			dispatchScreenStateChanged(screenState: number): void;
			dispatchPopulateAccessibilityEventInternal(event: android.view.accessibility.AccessibilityEvent): boolean;
			onInitializeAccessibilityNodeInfoInternal(info: android.view.accessibility.AccessibilityNodeInfo): void;
			onInitializeAccessibilityEventInternal(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * 
			 */
			dispatchDetachedFromWindow(): void;
			/**
			 * 
			 */
			protected dispatchSaveInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Perform dispatching of a #saveHierarchyState(android.util.SparseArray) freeze()} to only this view, not to its children. For use when overriding #dispatchSaveInstanceState(android.util.SparseArray) dispatchFreeze()} to allow subclasses to freeze their own state but not the state of their children.
			 * @param container the container
			 */
			protected dispatchFreezeSelfOnly(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * 
			 */
			protected dispatchRestoreInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Perform dispatching of a #restoreHierarchyState(android.util.SparseArray) to only this view, not to its children. For use when overriding #dispatchRestoreInstanceState(android.util.SparseArray) to allow subclasses to thaw their own state but not the state of their children.
			 * @param container the container
			 */
			protected dispatchThawSelfOnly(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Enables or disables the drawing cache for each child of this view group.
			 * @param enabled true to enable the cache, false to dispose of it
			 */
			protected setChildrenDrawingCacheEnabled(enabled: boolean): void;
			protected onAnimationStart(): void;
			protected onAnimationEnd(): void;
			createSnapshot(quality: android.graphics.Bitmap.Config, backgroundColor: number, skipChildren: boolean): android.graphics.Bitmap;
			/**
			 * 
			 */
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			/**
			 * Returns the index of the child to draw for this iteration. Override this if you want to change the drawing order of children. By default, it returns i.
			 * @param childCount i The current iteration.
			 * @param i 
			 */
			protected getChildDrawingOrder(childCount: number, i: number): number;
			/**
			 * Draw one child of this View Group. This method is responsible for getting the canvas in the right state. This includes clipping, translating so that the child's scrolled origin is at 0, 0, and applying any animation transformations.
			 * @param canvas The canvas on which to draw the child
			 * @param child Who to draw
			 * @param drawingTime The time at which draw is occurring
			 */
			protected drawChild(canvas: android.graphics.Canvas, child: android.view.View, drawingTime: number): boolean;
			/**
			 * By default, children are clipped to their bounds before drawing. This allows view groups to override this behavior for animations, etc.
			 * @param clipChildren true to clip children to their bounds,
			 */
			public setClipChildren(clipChildren: boolean): void;
			/**
			 * By default, children are clipped to the padding of the ViewGroup. This allows view groups to override this behavior
			 * @param clipToPadding true to clip children to the padding of the
			 */
			public setClipToPadding(clipToPadding: boolean): void;
			/**
			 * 
			 */
			public dispatchSetSelected(selected: boolean): void;
			/**
			 * 
			 */
			public dispatchSetActivated(activated: boolean): void;
			protected dispatchSetPressed(pressed: boolean): void;
			/**
			 * When this property is set to true, this ViewGroup supports static transformations on children; this causes #getChildStaticTransformation(View, android.view.animation.Transformation) to be invoked when a child is drawn.
			 * @param enabled True to enable static transformations on children, false otherwise.
			 */
			protected setStaticTransformationsEnabled(enabled: boolean): void;
			/**
			 * Sets <code>t</code> to be the static transformation of the child, if set, returning a boolean to indicate whether a static transform was set. The default implementation simply returns <code>false</code>; subclasses may override this method for different behavior. #setStaticTransformationsEnabled(boolean) must be set to true for this method to be called.
			 * @param child The child view whose static transform is being requested
			 * @param t The Transformation which will hold the result
			 */
			protected getChildStaticTransformation(child: android.view.View, t: android.view.animation.Transformation): boolean;
			/**
			 * @param child the child view to add
			 */
			public addView(child: android.view.View): void;
			/**
			 * Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child. 
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 */
			public addView(child: android.view.View, index: number): void;
			/**
			 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
			 * @param child the child view to add
			 * @param width 
			 * @param height 
			 */
			public addView(child: android.view.View, width: number, height: number): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param params the layout parameters to set on the child
			 */
			public addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Adds a child view with the specified layout parameters.
			 * @param child the child view to add
			 * @param index the position at which to add the child
			 * @param params the layout parameters to set on the child
			 */
			public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * 
			 */
			public updateViewLayout(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * 
			 */
			protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
			/**
			 * Register a callback to be invoked when a child is added to or removed from this view.
			 * @param listener the callback to invoke on hierarchy change
			 */
			public setOnHierarchyChangeListener(listener: android.view.ViewGroup.IOnHierarchyChangeListener): void;
			/**
			 * Adds a view during layout. This is useful if in your onLayout() method, you need to add more views (as does the list view for example).
			 * @param child the view to add to the group
			 * @param index the index at which the child must be added
			 * @param params the layout parameters to associate with the child
			 */
			protected addViewInLayout(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): boolean;
			/**
			 * Adds a view during layout. This is useful if in your onLayout() method, you need to add more views (as does the list view for example).
			 * @param child the view to add to the group
			 * @param index the index at which the child must be added
			 * @param params the layout parameters to associate with the child
			 * @param preventRequestLayout if true, calling this method will not trigger a
			 */
			protected addViewInLayout(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams, preventRequestLayout: boolean): boolean;
			/**
			 * Prevents the specified child to be laid out during the next layout pass.
			 * @param child the child on which to perform the cleanup
			 */
			protected cleanupLayoutState(child: android.view.View): void;
			/**
			 * Subclasses should override this method to set layout animation parameters on the supplied child.
			 * @param child the child to associate with animation parameters
			 * @param params the child's layout parameters which hold the animation
			 * @param index the index of the child in the view group
			 * @param count the number of children in the view group
			 */
			protected attachLayoutAnimationParameters(child: android.view.View, params: android.view.ViewGroup.LayoutParams, index: number, count: number): void;
			/**
			 *  
			 */
			public removeView(view: android.view.View): void;
			/**
			 * Removes a view during layout. This is useful if in your onLayout() method, you need to remove more views.
			 * @param view the view to remove from the group
			 */
			public removeViewInLayout(view: android.view.View): void;
			/**
			 * Removes a range of views during layout. This is useful if in your onLayout() method, you need to remove more views.
			 * @param start the index of the first view to remove from the group
			 * @param count the number of views to remove from the group
			 */
			public removeViewsInLayout(start: number, count: number): void;
			/**
			 * Removes the view at the specified position in the group.
			 * @param index the position in the group of the view to remove
			 */
			public removeViewAt(index: number): void;
			/**
			 * Removes the specified range of views from the group.
			 * @param start the first position in the group of the range of views to remove
			 * @param count the number of views to remove
			 */
			public removeViews(start: number, count: number): void;
			/**
			 * Sets the LayoutTransition object for this ViewGroup. If the LayoutTransition object is not null, changes in layout which occur because of children being added to or removed from the ViewGroup will be animated according to the animations defined in that LayoutTransition object. By default, the transition object is null (so layout changes are not animated).
			 * @param transition The LayoutTransition object that will animated changes in layout. A value
			 */
			public setLayoutTransition(transition: android.animation.LayoutTransition): void;
			/**
			 * Gets the LayoutTransition object for this ViewGroup. If the LayoutTransition object is not null, changes in layout which occur because of children being added to or removed from the ViewGroup will be animated according to the animations defined in that LayoutTransition object. By default, the transition object is null (so layout changes are not animated).
			 */
			public getLayoutTransition(): android.animation.LayoutTransition;
			/**
			 * Call this method to remove all child views from the ViewGroup. 
			 */
			public removeAllViews(): void;
			/**
			 * Called by a ViewGroup subclass to remove child views from itself, when it must first know its size on screen before it can calculate how many child views it will render. An example is a Gallery or a ListView, which may "have" 50 children, but actually only render the number of children that can currently fit inside the object on screen. Do not call this method unless you are extending ViewGroup and understand the view measuring and layout pipeline.
			 */
			public removeAllViewsInLayout(): void;
			/**
			 * Finishes the removal of a detached view. This method will dispatch the detached from window event and notify the hierarchy change listener.
			 * @param child the child to be definitely removed from the view hierarchy
			 * @param animate if true and the view has an animation, the view is placed in the
			 */
			protected removeDetachedView(child: android.view.View, animate: boolean): void;
			/**
			 * Attaches a view to this view group. Attaching a view assigns this group as the parent, sets the layout parameters and puts the view in the list of children so that it can be retrieved by calling #getChildAt(int).
			 * @param child the child to attach
			 * @param index the index at which the child should be attached
			 * @param params the layout parameters of the child
			 */
			protected attachViewToParent(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Detaches a view from its parent. Detaching a view should be followed either by a call to #attachViewToParent(View, int, android.view.ViewGroup.LayoutParams) or a call to #removeDetachedView(View, boolean). Detachment should only be temporary; reattachment or removal should happen within the same drawing cycle as detachment. When a view is detached, its parent is null and cannot be retrieved by a call to #getChildAt(int).
			 * @param child the child to detach
			 */
			protected detachViewFromParent(child: android.view.View): void;
			/**
			 * Detaches a view from its parent. Detaching a view should be followed either by a call to #attachViewToParent(View, int, android.view.ViewGroup.LayoutParams) or a call to #removeDetachedView(View, boolean). Detachment should only be temporary; reattachment or removal should happen within the same drawing cycle as detachment. When a view is detached, its parent is null and cannot be retrieved by a call to #getChildAt(int).
			 * @param index the index of the child to detach
			 */
			protected detachViewFromParent(index: number): void;
			/**
			 * Detaches a range of views from their parents. Detaching a view should be followed either by a call to #attachViewToParent(View, int, android.view.ViewGroup.LayoutParams) or a call to #removeDetachedView(View, boolean). Detachment should only be temporary; reattachment or removal should happen within the same drawing cycle as detachment. When a view is detached, its parent is null and cannot be retrieved by a call to #getChildAt(int).
			 * @param start the first index of the childrend range to detach
			 * @param count the number of children to detach
			 */
			protected detachViewsFromParent(start: number, count: number): void;
			/**
			 * Detaches all views from the parent. Detaching a view should be followed either by a call to #attachViewToParent(View, int, android.view.ViewGroup.LayoutParams) or a call to #removeDetachedView(View, boolean). Detachment should only be temporary; reattachment or removal should happen within the same drawing cycle as detachment. When a view is detached, its parent is null and cannot be retrieved by a call to #getChildAt(int).
			 */
			protected detachAllViewsFromParent(): void;
			/**
			 * Don't call or override this method. It is used for the implementation of the view hierarchy.
			 */
			public invalidateChild(child: android.view.View, dirty: android.graphics.Rect): void;
			/**
			 * Don't call or override this method. It is used for the implementation of the view hierarchy.
			 */
			public invalidateChildInParent(location: native.Array<number>, dirty: android.graphics.Rect): android.view.IViewParent;
			/**
			 * Offset a rectangle that is in a descendant's coordinate space into our coordinate space.
			 * @param descendant A descendant of this view
			 * @param rect A rectangle defined in descendant's coordinate space.
			 */
			public offsetDescendantRectToMyCoords(descendant: android.view.View, rect: android.graphics.Rect): void;
			/**
			 * Offset a rectangle that is in our coordinate space into an ancestor's coordinate space.
			 * @param descendant A descendant of this view
			 * @param rect A rectangle defined in descendant's coordinate space.
			 */
			public offsetRectIntoDescendantCoords(descendant: android.view.View, rect: android.graphics.Rect): void;
			/**
			 * Helper method that offsets a rect either from parent to descendant or descendant to parent.
			 */
			offsetRectBetweenParentAndChild(descendant: android.view.View, rect: android.graphics.Rect, offsetFromChildToParent: boolean, clipToBounds: boolean): void;
			/**
			 * 
			 */
			public getChildVisibleRect(child: android.view.View, r: android.graphics.Rect, offset: android.graphics.Point): boolean;
			/**
			 * 
			 */
			public layout(l: number, t: number, r: number, b: number): void;
			/**
			 * 
			 */
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			/**
			 * Indicates whether the view group has the ability to animate its children after the first layout.
			 */
			protected canAnimate(): boolean;
			/**
			 * Runs the layout animation. Calling this method triggers a relayout of this view group.
			 */
			public startLayoutAnimation(): void;
			/**
			 * Schedules the layout animation to be played after the next layout pass of this view group. This can be used to restart the layout animation when the content of the view group changes or when the activity is paused and resumed.
			 */
			public scheduleLayoutAnimation(): void;
			/**
			 * Sets the layout animation controller used to animate the group's children after the first layout.
			 * @param controller the animation controller
			 */
			public setLayoutAnimation(controller: android.view.animation.LayoutAnimationController): void;
			/**
			 * Returns the layout animation controller used to animate the group's children.
			 */
			public getLayoutAnimation(): android.view.animation.LayoutAnimationController;
			/**
			 * Indicates whether the children's drawing cache is used during a layout animation. By default, the drawing cache is enabled but this will prevent nested layout animations from working. To nest animations, you must disable the cache.
			 */
			public isAnimationCacheEnabled(): boolean;
			/**
			 * Enables or disables the children's drawing cache during a layout animation. By default, the drawing cache is enabled but this will prevent nested layout animations from working. To nest animations, you must disable the cache.
			 * @param enabled true to enable the animation cache, false otherwise
			 */
			public setAnimationCacheEnabled(enabled: boolean): void;
			/**
			 * Indicates whether this ViewGroup will always try to draw its children using their drawing cache. By default this property is enabled.
			 */
			public isAlwaysDrawnWithCacheEnabled(): boolean;
			/**
			 * Indicates whether this ViewGroup will always try to draw its children using their drawing cache. This property can be set to true when the cache rendering is slightly different from the children's normal rendering. Renderings can be different, for instance, when the cache's quality is set to low.
			 * @param always true to always draw with the drawing cache, false otherwise
			 */
			public setAlwaysDrawnWithCacheEnabled(always: boolean): void;
			/**
			 * Indicates whether the ViewGroup is currently drawing its children using their drawing cache.
			 */
			protected isChildrenDrawnWithCacheEnabled(): boolean;
			/**
			 * Tells the ViewGroup to draw its children using their drawing cache. This property is ignored when #isAlwaysDrawnWithCacheEnabled() is true. A child's drawing cache will be used only if it has been enabled.
			 * @param enabled true if children should be drawn with their cache, false otherwise
			 */
			protected setChildrenDrawnWithCacheEnabled(enabled: boolean): void;
			/**
			 * Indicates whether the ViewGroup is drawing its children in the order defined by #getChildDrawingOrder(int, int).
			 */
			protected isChildrenDrawingOrderEnabled(): boolean;
			/**
			 * Tells the ViewGroup whether to draw its children in the order defined by the method #getChildDrawingOrder(int, int).
			 * @param enabled true if the order of the children when drawing is determined by
			 */
			protected setChildrenDrawingOrderEnabled(enabled: boolean): void;
			/**
			 * Returns an integer indicating what types of drawing caches are kept in memory.
			 */
			public getPersistentDrawingCache(): number;
			/**
			 * Indicates what types of drawing caches should be kept in memory after they have been created.
			 * @param drawingCacheToKeep one or a combination of {@link #PERSISTENT_NO_CACHE},
			 */
			public setPersistentDrawingCache(drawingCacheToKeep: number): void;
			/**
			 * Returns a new set of layout parameters based on the supplied attributes set.
			 * @param attrs the attributes to build the layout parameters from
			 */
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.view.ViewGroup.LayoutParams;
			/**
			 * Returns a safe set of layout parameters based on the supplied layout params. When a ViewGroup is passed a View whose layout params do not pass the test of #checkLayoutParams(android.view.ViewGroup.LayoutParams), this method is invoked. This method should return a new set of layout params suitable for this ViewGroup, possibly by copying the appropriate attributes from the specified set of layout params.
			 * @param p The layout parameters to convert into a suitable set of layout parameters
			 */
			public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.view.ViewGroup.LayoutParams;
			/**
			 * Returns a set of default layout parameters. These parameters are requested when the View passed to #addView(View) has no layout parameters already set. If null is returned, an exception is thrown from addView.
			 */
			protected generateDefaultLayoutParams(): android.view.ViewGroup.LayoutParams;
			/**
			 * 
			 */
			protected debug(depth: number): void;
			/**
			 * Returns the position in the group of the specified child view.
			 * @param child the view for which to get the position
			 */
			public indexOfChild(child: android.view.View): number;
			/**
			 * Returns the number of children in the group.
			 */
			public getChildCount(): number;
			/**
			 * Returns the view at the specified position in the group.
			 * @param index the position at which to get the view from
			 */
			public getChildAt(index: number): android.view.View;
			/**
			 * Ask all of the children of this view to measure themselves, taking into account both the MeasureSpec requirements for this view and its padding. We skip children that are in the GONE state The heavy lifting is done in getChildMeasureSpec.
			 * @param widthMeasureSpec The width requirements for this view
			 * @param heightMeasureSpec The height requirements for this view
			 */
			protected measureChildren(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * Ask one of the children of this view to measure itself, taking into account both the MeasureSpec requirements for this view and its padding. The heavy lifting is done in getChildMeasureSpec.
			 * @param child The child to measure
			 * @param parentWidthMeasureSpec The width requirements for this view
			 * @param parentHeightMeasureSpec The height requirements for this view
			 */
			protected measureChild(child: android.view.View, parentWidthMeasureSpec: number, parentHeightMeasureSpec: number): void;
			/**
			 * Ask one of the children of this view to measure itself, taking into account both the MeasureSpec requirements for this view and its padding and margins. The child must have MarginLayoutParams The heavy lifting is done in getChildMeasureSpec.
			 * @param child The child to measure
			 * @param parentWidthMeasureSpec The width requirements for this view
			 * @param widthUsed Extra space that has been used up by the parent
			 * @param parentHeightMeasureSpec The height requirements for this view
			 * @param heightUsed Extra space that has been used up by the parent
			 */
			protected measureChildWithMargins(child: android.view.View, parentWidthMeasureSpec: number, widthUsed: number, parentHeightMeasureSpec: number, heightUsed: number): void;
			/**
			 * Does the hard part of measureChildren: figuring out the MeasureSpec to pass to a particular child. This method figures out the right MeasureSpec for one dimension (height or width) of one child view.
			 * @param spec The requirements for this view
			 * @param padding The padding of this view for the current dimension and
			 * @param childDimension How big the child wants to be in the current
			 */
			public static getChildMeasureSpec(spec: number, padding: number, childDimension: number): number;
			/**
			 * Removes any pending animations for views that have been removed. Call this if you don't want animations for exiting views to stack up.
			 */
			public clearDisappearingChildren(): void;
			/**
			 * Cleanup a view when its animation is done. This may mean removing it from the list of disappearing views.
			 * @param view The view whose animation has finished
			 * @param animation The animation, cannot be null
			 */
			finishAnimatingView(view: android.view.View, animation: android.view.animation.Animation): void;
			/**
			 * Utility function called by View during invalidation to determine whether a view that is invisible or gone should still be invalidated because it is being transitioned (and therefore still needs to be drawn).
			 */
			isViewTransitioning(view: android.view.View): boolean;
			/**
			 * This method tells the ViewGroup that the given View object, which should have this ViewGroup as its parent, should be kept around (re-displayed when the ViewGroup draws its children) even if it is removed from its parent. This allows animations, such as those used by android.app.Fragment and android.animation.LayoutTransition to animate the removal of views. A call to this method should always be accompanied by a later call to #endViewTransition(View), such as after an animation on the View has finished, so that the View finally gets removed.
			 * @param view The View object to be kept visible even if it gets removed from its parent.
			 */
			public startViewTransition(view: android.view.View): void;
			/**
			 * This method should always be called following an earlier call to #startViewTransition(View). The given View is finally removed from its parent and will no longer be displayed. Note that this method does not perform the functionality of removing a view from its parent; it just discontinues the display of a View that has previously been removed.
			 */
			public endViewTransition(view: android.view.View): void;
			/**
			 * 
			 */
			public gatherTransparentRegion(region: android.graphics.Region): boolean;
			/**
			 * 
			 */
			public requestTransparentRegion(child: android.view.View): void;
			protected fitSystemWindows(insets: android.graphics.Rect): boolean;
			/**
			 * Returns the animation listener to which layout animation events are sent.
			 */
			public getLayoutAnimationListener(): android.view.animation.Animation.IAnimationListener;
			protected drawableStateChanged(): void;
			public jumpDrawablesToCurrentState(): void;
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			/**
			 * Sets whether this ViewGroup's drawable states also include its children's drawable states. This is used, for example, to make a group appear to be focused when its child EditText or button is focused.
			 */
			public setAddStatesFromChildren(addsStates: boolean): void;
			/**
			 * Returns whether this ViewGroup's drawable states also include its children's drawable states. This is used, for example, to make a group appear to be focused when its child EditText or button is focused.
			 */
			public addStatesFromChildren(): boolean;
			/**
			 * If #addStatesFromChildren is true, refreshes this group's drawable state (to include the states from its children).
			 */
			public childDrawableStateChanged(child: android.view.View): void;
			/**
			 * Specifies the animation listener to which layout animation events must be sent. Only android.view.animation.Animation.AnimationListener#onAnimationStart(Animation) and android.view.animation.Animation.AnimationListener#onAnimationEnd(Animation) are invoked.
			 * @param animationListener the layout animation listener
			 */
			public setLayoutAnimationListener(animationListener: android.view.animation.Animation.IAnimationListener): void;
			/**
			 * Return true if the pressed state should be delayed for children or descendants of this ViewGroup. Generally, this should be done for containers that can scroll, such as a List. This prevents the pressed state from appearing when the user is actually trying to scroll the content.
			 */
			public shouldDelayChildPressedState(): boolean;
			/**
			 * Called when something has changed which has invalidated the layout of a child of this view parent. This will schedule a layout pass of the view tree.
			 */
			requestLayout(): void;
			/**
			 * Indicates whether layout was requested on this view parent.
			 */
			isLayoutRequested(): boolean;
			/**
			 * Returns the parent if it exists, or null.
			 */
			getParent(): android.view.IViewParent;
			/**
			 * Have the parent populate the specified context menu if it has anything to add (and then recurse on its parent). 
			 * @param menu The menu to populate
			 */
			createContextMenu(menu: android.view.IContextMenu): void;
			/**
			 * Ask that a new dispatch of View#fitSystemWindows(Rect) View.fitSystemWindows(Rect) be performed.
			 */
			requestFitSystemWindows(): void;
			/**
			 * Gets the parent of a given View for accessibility. Since some Views are not exposed to the accessibility layer the parent for accessibility is not necessarily the direct parent of the View, rather it is a predecessor.
			 */
			getParentForAccessibility(): android.view.IViewParent;
			/**
			 * Find the nearest view in the specified direction that can take focus. This does not actually give focus to that view.
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 */
			focusSearch(direction: number): android.view.View;
			/**
			 * Add any focusable views that are descendants of this view (possibly including this view if it is focusable itself) to views. If we are in touch mode, only add views that are also focusable in touch mode.
			 * @param views Focusable views found so far
			 * @param direction The direction of the focus
			 */
			addFocusables(views: java.util.ArrayList<android.view.View>, direction: number): void;
			/**
			 * Call this to try to give focus to a specific view or to one of its descendants.
			 */
			requestFocus(): boolean;
			/**
			 * Call this to try to give focus to a specific view or to one of its descendants and give it a hint about what direction focus is heading.
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 */
			requestFocus(direction: number): boolean;
		}
		export module ViewGroup {
			/**
			 * LayoutParams are used by views to tell their parents how they want to be laid out. See android.R.styleable#ViewGroup_Layout ViewGroup Layout Attributes for a list of all child view attributes that this class supports.
			 */
			export class LayoutParams extends java.lang.Object {
				/**
				 * Creates a new set of layout parameters. The values are extracted from the supplied attributes set and context. The XML attributes mapped to this set of layout parameters are:
				 * @param c the application environment
				 * @param attrs the set of attributes from which to extract the layout
				 */
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * Creates a new set of layout parameters with the specified width and height.
				 * @param width the width, either {@link #WRAP_CONTENT},
				 * @param height the height, either {@link #WRAP_CONTENT},
				 */
				constructor(width: number, height: number);
				/**
				 * Copy constructor. Clones the width and height values of the source.
				 * @param source The layout params to copy from.
				 */
				constructor(source: android.view.ViewGroup.LayoutParams);
				/**
				 * Special value for the height or width requested by a View. FILL_PARENT means that the view wants to be as big as its parent, minus the parent's padding, if any. This value is deprecated starting in API Level 8 and replaced by #MATCH_PARENT.
				 */
				static FILL_PARENT: number;
				/**
				 * Special value for the height or width requested by a View. MATCH_PARENT means that the view wants to be as big as its parent, minus the parent's padding, if any. Introduced in API Level 8.
				 */
				static MATCH_PARENT: number;
				/**
				 * Special value for the height or width requested by a View. WRAP_CONTENT means that the view wants to be just large enough to fit its own internal content, taking its own padding into account.
				 */
				static WRAP_CONTENT: number;
				/**
				 * Information about how wide the view wants to be. Can be one of the constants FILL_PARENT (replaced by MATCH_PARENT , in API Level 8) or WRAP_CONTENT. or an exact size.
				 */
				width: number;
				/**
				 * Information about how tall the view wants to be. Can be one of the constants FILL_PARENT (replaced by MATCH_PARENT , in API Level 8) or WRAP_CONTENT. or an exact size.
				 */
				height: number;
				/**
				 * Used to animate layouts.
				 */
				layoutAnimationParameters: android.view.animation.LayoutAnimationController.AnimationParameters;
				static class: java.lang.Class<android.view.ViewGroup.LayoutParams>;
				/**
				 * Extracts the layout parameters from the supplied attributes.
				 * @param a the style attributes to extract the parameters from
				 * @param widthAttr the identifier of the width attribute
				 * @param heightAttr the identifier of the height attribute
				 */
				protected setBaseAttributes(a: android.content.res.TypedArray, widthAttr: number, heightAttr: number): void;
				/**
				 * Resolve layout parameters depending on the layout direction. Subclasses that care about layoutDirection changes should override this method. The default implementation does nothing.
				 * @param layoutDirection the direction of the layout
				 */
				public resolveLayoutDirection(layoutDirection: number): void;
			}
			/**
			 * Pooled class that orderes the children of a ViewGroup from start to end based on how they are laid out and the layout direction.
			 */
			export class ChildListForAccessibility extends java.lang.Object {
				static class: java.lang.Class<android.view.ViewGroup.ChildListForAccessibility>;
				public static obtain(parent: android.view.ViewGroup, sort: boolean): android.view.ViewGroup.ChildListForAccessibility;
				public recycle(): void;
				public getChildCount(): number;
				public getChildAt(index: number): android.view.View;
				public getChildIndex(child: android.view.View): number;
			}
			export class HoverTarget extends java.lang.Object {
				child: android.view.View;
				next: android.view.ViewGroup.HoverTarget;
				static class: java.lang.Class<android.view.ViewGroup.HoverTarget>;
				public static obtain(child: android.view.View): android.view.ViewGroup.HoverTarget;
				public recycle(): void;
			}
			export class TouchTarget extends java.lang.Object {
				static ALL_POINTER_IDS: number;
				child: android.view.View;
				pointerIdBits: number;
				next: android.view.ViewGroup.TouchTarget;
				static class: java.lang.Class<android.view.ViewGroup.TouchTarget>;
				public static obtain(child: android.view.View, pointerIdBits: number): android.view.ViewGroup.TouchTarget;
				public recycle(): void;
			}
			/**
			 * Pooled class that holds a View and its location with respect to a specified root. This enables sorting of views based on their coordinates without recomputing the position relative to the root on every comparison.
			 */
			export class ViewLocationHolder extends java.lang.Object {
				mView: android.view.View;
				static class: java.lang.Class<android.view.ViewGroup.ViewLocationHolder>;
				public static obtain(root: android.view.ViewGroup, view: android.view.View): android.view.ViewGroup.ViewLocationHolder;
				public recycle(): void;
				public compareTo(another: android.view.ViewGroup.ViewLocationHolder): number;
			}
			/**
			 * Interface definition for a callback to be invoked when the hierarchy within this view changed. The hierarchy changes whenever a child is added to or removed from this view.
			 */
			export class OnHierarchyChangeListener implements android.view.ViewGroup.IOnHierarchyChangeListener {
				constructor(implementation: android.view.ViewGroup.IOnHierarchyChangeListener);
				/**
				 * Called when a new child is added to a parent view.
				 * @param parent the view in which a child was added
				 * @param child the new child view added in the hierarchy
				 */
				public onChildViewAdded(parent: android.view.View, child: android.view.View): void;
				/**
				 * Called when a child is removed from a parent view.
				 * @param parent the view from which the child was removed
				 * @param child the child removed from the hierarchy
				 */
				public onChildViewRemoved(parent: android.view.View, child: android.view.View): void;
			}
			/**
			 * Per-child layout information for layouts that support margins. See android.R.styleable#ViewGroup_MarginLayout ViewGroup Margin Layout Attributes for a list of all child view attributes that this class supports.
			 */
			export class MarginLayoutParams extends android.view.ViewGroup.LayoutParams {
				/**
				 * Creates a new set of layout parameters. The values are extracted from the supplied attributes set and context.
				 * @param c the application environment
				 * @param attrs the set of attributes from which to extract the layout
				 */
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				/**
				 * 
				 */
				constructor(width: number, height: number);
				/**
				 * Copy constructor. Clones the width, height and margin values of the source.
				 * @param source The layout params to copy from.
				 */
				constructor(source: android.view.ViewGroup.MarginLayoutParams);
				/**
				 * 
				 */
				constructor(source: android.view.ViewGroup.LayoutParams);
				/**
				 * The left margin in pixels of the child. Call ViewGroup#setLayoutParams(LayoutParams) after reassigning a new value to this field.
				 */
				leftMargin: number;
				/**
				 * The top margin in pixels of the child. Call ViewGroup#setLayoutParams(LayoutParams) after reassigning a new value to this field.
				 */
				topMargin: number;
				/**
				 * The right margin in pixels of the child. Call ViewGroup#setLayoutParams(LayoutParams) after reassigning a new value to this field.
				 */
				rightMargin: number;
				/**
				 * The bottom margin in pixels of the child. Call ViewGroup#setLayoutParams(LayoutParams) after reassigning a new value to this field.
				 */
				bottomMargin: number;
				static class: java.lang.Class<android.view.ViewGroup.MarginLayoutParams>;
				/**
				 * Sets the margins, in pixels. A call to android.view.View#requestLayout() needs to be done so that the new margins are taken into account. Left and right margins may be overriden by android.view.View#requestLayout() depending on layout direction.
				 * @param left the left margin size
				 * @param top the top margin size
				 * @param right the right margin size
				 * @param bottom the bottom margin size
				 */
				public setMargins(left: number, top: number, right: number, bottom: number): void;
				/**
				 * Sets the relative start margin.
				 * @param start the start margin size
				 */
				public setMarginStart(start: number): void;
				/**
				 * Returns the start margin in pixels.
				 */
				public getMarginStart(): number;
				/**
				 * Sets the relative end margin.
				 * @param end the end margin size
				 */
				public setMarginEnd(end: number): void;
				/**
				 * Returns the end margin in pixels.
				 */
				public getMarginEnd(): number;
				/**
				 * Check if margins are relative.
				 */
				public isMarginRelative(): boolean;
				/**
				 * Set the layout direction
				 * @param layoutDirection the layout direction.
				 */
				public setLayoutDirection(layoutDirection: number): void;
				/**
				 * Retuns the layout direction. Can be either View#LAYOUT_DIRECTION_LTR or View#LAYOUT_DIRECTION_RTL.
				 */
				public getLayoutDirection(): number;
				/**
				 * This will be called by android.view.View#requestLayout(). Left and Right margins may be overridden depending on layout direction.
				 */
				public resolveLayoutDirection(layoutDirection: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the hierarchy within this view changed. The hierarchy changes whenever a child is added to or removed from this view.
			 */
			interface IOnHierarchyChangeListener {
				/**
				 * Called when a new child is added to a parent view.
				 * @param parent the view in which a child was added
				 * @param child the new child view added in the hierarchy
				 */
				onChildViewAdded(parent: android.view.View, child: android.view.View): void;
				/**
				 * Called when a child is removed from a parent view.
				 * @param parent the view from which the child was removed
				 * @param child the child removed from the hierarchy
				 */
				onChildViewRemoved(parent: android.view.View, child: android.view.View): void;
			}
		}
		export class IncludeTest extends android.test.ActivityInstrumentationTestCase<android.view.Include> {
			constructor();
			static class: java.lang.Class<android.view.IncludeTest>;
			public setUp(): void;
			public testIncluded(): void;
			public testIncludedWithLayoutParams(): void;
			public testIncludedWithVisibility(): void;
			public testIncludedWithSize(): void;
		}
		/**
		 * Interface for direct access to a previously created menu item.
		 */
		export class MenuItem implements android.view.IMenuItem {
			constructor(implementation: android.view.IMenuItem);
			/**
			 * Never show this item as a button in an Action Bar.
			 */
			static SHOW_AS_ACTION_NEVER: number;
			/**
			 * Show this item as a button in an Action Bar if the system decides there is room for it.
			 */
			static SHOW_AS_ACTION_IF_ROOM: number;
			/**
			 * Always show this item as a button in an Action Bar. Use sparingly! If too many items are set to always show in the Action Bar it can crowd the Action Bar and degrade the user experience on devices with smaller screens. A good rule of thumb is to have no more than 2 items set to always show at a time.
			 */
			static SHOW_AS_ACTION_ALWAYS: number;
			/**
			 * When this item is in the action bar, always show it with a text label even if it also has an icon specified.
			 */
			static SHOW_AS_ACTION_WITH_TEXT: number;
			/**
			 * This item's action view collapses to a normal menu item. When expanded, the action view temporarily takes over a larger segment of its container.
			 */
			static SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW: number;
			/**
			 * Return the identifier for this menu item. The identifier can not be changed after the menu is created.
			 */
			public getItemId(): number;
			/**
			 * Return the group identifier that this menu item is part of. The group identifier can not be changed after the menu is created. 
			 */
			public getGroupId(): number;
			/**
			 * Return the category and order within the category of this item. This item will be shown before all items (within its category) that have order greater than this value.
			 */
			public getOrder(): number;
			/**
			 * Change the title associated with this item.
			 * @param title The new text to be displayed.
			 */
			public setTitle(title: string): android.view.IMenuItem;
			/**
			 * Change the title associated with this item.
			 * @param title The resource id of the new text to be displayed.
			 */
			public setTitle(title: number): android.view.IMenuItem;
			/**
			 * Retrieve the current title of the item.
			 */
			public getTitle(): string;
			/**
			 * Change the condensed title associated with this item. The condensed title is used in situations where the normal title may be too long to be displayed. 
			 * @param title The new text to be displayed as the condensed title.
			 */
			public setTitleCondensed(title: string): android.view.IMenuItem;
			/**
			 * Retrieve the current condensed title of the item. If a condensed title was never set, it will return the normal title. 
			 */
			public getTitleCondensed(): string;
			/**
			 * Change the icon associated with this item. This icon will not always be shown, so the title should be sufficient in describing this item. See Menu for the menu types that support icons. 
			 * @param icon The new icon (as a Drawable) to be displayed.
			 */
			public setIcon(icon: android.graphics.drawable.Drawable): android.view.IMenuItem;
			/**
			 * Change the icon associated with this item. This icon will not always be shown, so the title should be sufficient in describing this item. See Menu for the menu types that support icons.
			 * @param iconRes The new icon (as a resource ID) to be displayed.
			 */
			public setIcon(iconRes: number): android.view.IMenuItem;
			/**
			 * Returns the icon for this item as a Drawable (getting it from resources if it hasn't been loaded before). 
			 */
			public getIcon(): android.graphics.drawable.Drawable;
			/**
			 * Change the Intent associated with this item. By default there is no Intent associated with a menu item. If you set one, and nothing else handles the item, then the default behavior will be to call android.content.Context#startActivity with the given Intent.
			 * @param intent The Intent to associated with the item. This Intent
			 */
			public setIntent(intent: android.content.Intent): android.view.IMenuItem;
			/**
			 * Return the Intent associated with this item. This returns a reference to the Intent which you can change as desired to modify what the Item is holding.
			 */
			public getIntent(): android.content.Intent;
			/**
			 * Change both the numeric and alphabetic shortcut associated with this item. Note that the shortcut will be triggered when the key that generates the given character is pressed alone or along with with the alt key. Also note that case is not significant and that alphabetic shortcut characters will be displayed in lower case.
			 * @param numericChar The numeric shortcut key. This is the shortcut when
			 * @param alphaChar The alphabetic shortcut key. This is the shortcut when
			 */
			public setShortcut(numericChar: string, alphaChar: string): android.view.IMenuItem;
			/**
			 * Change the numeric shortcut associated with this item.
			 * @param numericChar The numeric shortcut key. This is the shortcut when
			 */
			public setNumericShortcut(numericChar: string): android.view.IMenuItem;
			/**
			 * Return the char for this menu item's numeric (12-key) shortcut.
			 */
			public getNumericShortcut(): string;
			/**
			 * Change the alphabetic shortcut associated with this item. The shortcut will be triggered when the key that generates the given character is pressed alone or along with with the alt key. Case is not significant and shortcut characters will be displayed in lower case. Note that menu items with the characters '\b' or '\n' as shortcuts will get triggered by the Delete key or Carriage Return key, respectively.
			 * @param alphaChar The alphabetic shortcut key. This is the shortcut when
			 */
			public setAlphabeticShortcut(alphaChar: string): android.view.IMenuItem;
			/**
			 * Return the char for this menu item's alphabetic shortcut.
			 */
			public getAlphabeticShortcut(): string;
			/**
			 * Control whether this item can display a check mark. Setting this does not actually display a check mark (see #setChecked for that); rather, it ensures there is room in the item in which to display a check mark.
			 * @param checkable Set to true to allow a check mark, false to
			 */
			public setCheckable(checkable: boolean): android.view.IMenuItem;
			/**
			 * Return whether the item can currently display a check mark.
			 */
			public isCheckable(): boolean;
			/**
			 * Control whether this item is shown with a check mark. Note that you must first have enabled checking with #setCheckable or else the check mark will not appear. If this item is a member of a group that contains mutually-exclusive items (set via Menu#setGroupCheckable(int, boolean, boolean), the other items in the group will be unchecked.
			 * @param checked Set to true to display a check mark, false to hide
			 */
			public setChecked(checked: boolean): android.view.IMenuItem;
			/**
			 * Return whether the item is currently displaying a check mark.
			 */
			public isChecked(): boolean;
			/**
			 * Sets the visibility of the menu item. Even if a menu item is not visible, it may still be invoked via its shortcut (to completely disable an item, set it to invisible and #setEnabled(boolean) disabled). 
			 * @param visible If true then the item will be visible; if false it is
			 */
			public setVisible(visible: boolean): android.view.IMenuItem;
			/**
			 * Return the visibility of the menu item.
			 */
			public isVisible(): boolean;
			/**
			 * Sets whether the menu item is enabled. Disabling a menu item will not allow it to be invoked via its shortcut. The menu item will still be visible. 
			 * @param enabled If true then the item will be invokable; if false it is
			 */
			public setEnabled(enabled: boolean): android.view.IMenuItem;
			/**
			 * Return the enabled state of the menu item.
			 */
			public isEnabled(): boolean;
			/**
			 * Check whether this item has an associated sub-menu. I.e. it is a sub-menu of another menu.
			 */
			public hasSubMenu(): boolean;
			/**
			 * Get the sub-menu to be invoked when this item is selected, if it has one. See #hasSubMenu().
			 */
			public getSubMenu(): android.view.ISubMenu;
			/**
			 * Set a custom listener for invocation of this menu item. In most situations, it is more efficient and easier to use Activity#onOptionsItemSelected(MenuItem) or Activity#onContextItemSelected(MenuItem). 
			 * @param menuItemClickListener The object to receive invokations.
			 */
			public setOnMenuItemClickListener(menuItemClickListener: android.view.MenuItem.IOnMenuItemClickListener): android.view.IMenuItem;
			/**
			 * Gets the extra information linked to this menu item. This extra information is set by the View that added this menu item to the menu. OnCreateContextMenuListener
			 */
			public getMenuInfo(): android.view.ContextMenu.IContextMenuInfo;
			/**
			 * Sets how this item should display in the presence of an Action Bar. The parameter actionEnum is a flag set. One of #SHOW_AS_ACTION_ALWAYS, #SHOW_AS_ACTION_IF_ROOM, or #SHOW_AS_ACTION_NEVER should be used, and you may optionally OR the value with #SHOW_AS_ACTION_WITH_TEXT. SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, it should be shown with a text label.
			 * @param actionEnum How the item should display. One of
			 */
			public setShowAsAction(actionEnum: number): void;
			/**
			 * Sets how this item should display in the presence of an Action Bar. The parameter actionEnum is a flag set. One of #SHOW_AS_ACTION_ALWAYS, #SHOW_AS_ACTION_IF_ROOM, or #SHOW_AS_ACTION_NEVER should be used, and you may optionally OR the value with #SHOW_AS_ACTION_WITH_TEXT. SHOW_AS_ACTION_WITH_TEXT requests that when the item is shown as an action, it should be shown with a text label.
			 * @param actionEnum How the item should display. One of
			 */
			public setShowAsActionFlags(actionEnum: number): android.view.IMenuItem;
			/**
			 * Set an action view for this menu item. An action view will be displayed in place of an automatically generated menu item element in the UI when this item is shown as an action within a parent.
			 * @param view View to use for presenting this item to the user.
			 */
			public setActionView(view: android.view.View): android.view.IMenuItem;
			/**
			 * Set an action view for this menu item. An action view will be displayed in place of an automatically generated menu item element in the UI when this item is shown as an action within a parent.
			 * @param resId Layout resource to use for presenting this item to the user.
			 */
			public setActionView(resId: number): android.view.IMenuItem;
			/**
			 * Returns the currently set action view for this menu item.
			 */
			public getActionView(): android.view.View;
			/**
			 * Sets the ActionProvider responsible for creating an action view if the item is placed on the action bar. The provider also provides a default action invoked if the item is placed in the overflow menu.
			 * @param actionProvider The action provider.
			 */
			public setActionProvider(actionProvider: android.view.ActionProvider): android.view.IMenuItem;
			/**
			 * Gets the ActionProvider.
			 */
			public getActionProvider(): android.view.ActionProvider;
			/**
			 * Expand the action view associated with this menu item. The menu item must have an action view set, as well as the showAsAction flag #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW. If a listener has been set using #setOnActionExpandListener(OnActionExpandListener) it will have its OnActionExpandListener#onMenuItemActionExpand(MenuItem) method invoked. The listener may return false from this method to prevent expanding the action view.
			 */
			public expandActionView(): boolean;
			/**
			 * Collapse the action view associated with this menu item. The menu item must have an action view set, as well as the showAsAction flag #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW. If a listener has been set using #setOnActionExpandListener(OnActionExpandListener) it will have its OnActionExpandListener#onMenuItemActionCollapse(MenuItem) method invoked. The listener may return false from this method to prevent collapsing the action view.
			 */
			public collapseActionView(): boolean;
			/**
			 * Returns true if this menu item's action view has been expanded.
			 */
			public isActionViewExpanded(): boolean;
			/**
			 * Set an OnActionExpandListener on this menu item to be notified when the associated action view is expanded or collapsed. The menu item must be configured to expand or collapse its action view using the flag #SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW.
			 * @param listener Listener that will respond to expand/collapse events
			 */
			public setOnActionExpandListener(listener: android.view.MenuItem.IOnActionExpandListener): android.view.IMenuItem;
		}
		export module MenuItem {
			/**
			 * Interface definition for a callback to be invoked when a menu item marked with MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is expanded or collapsed.
			 */
			interface IOnActionExpandListener {
				/**
				 * Called when a menu item with MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is expanded.
				 * @param item Item that was expanded
				 */
				onMenuItemActionExpand(item: android.view.IMenuItem): boolean;
				/**
				 * Called when a menu item with MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is collapsed.
				 * @param item Item that was collapsed
				 */
				onMenuItemActionCollapse(item: android.view.IMenuItem): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a menu item is clicked.
			 */
			export class OnMenuItemClickListener implements android.view.MenuItem.IOnMenuItemClickListener {
				constructor(implementation: android.view.MenuItem.IOnMenuItemClickListener);
				/**
				 * Called when a menu item has been invoked. This is the first code that is executed; if it returns true, no other callbacks will be executed.
				 * @param item The menu item that was invoked.
				 */
				public onMenuItemClick(item: android.view.IMenuItem): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a menu item marked with MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is expanded or collapsed.
			 */
			export class OnActionExpandListener implements android.view.MenuItem.IOnActionExpandListener {
				constructor(implementation: android.view.MenuItem.IOnActionExpandListener);
				/**
				 * Called when a menu item with MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is expanded.
				 * @param item Item that was expanded
				 */
				public onMenuItemActionExpand(item: android.view.IMenuItem): boolean;
				/**
				 * Called when a menu item with MenuItem#SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW is collapsed.
				 * @param item Item that was collapsed
				 */
				public onMenuItemActionCollapse(item: android.view.IMenuItem): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a menu item is clicked.
			 */
			interface IOnMenuItemClickListener {
				/**
				 * Called when a menu item has been invoked. This is the first code that is executed; if it returns true, no other callbacks will be executed.
				 * @param item The menu item that was invoked.
				 */
				onMenuItemClick(item: android.view.IMenuItem): boolean;
			}
		}
		export class ViewGroupAttributesTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.view.ViewGroupAttributesTest>;
			protected setUp(): void;
			public testDescendantFocusabilityEnum(): void;
			public testWrongIntSetForDescendantFocusabilityEnum(): void;
		}
		export module ViewGroupAttributesTest {
			export class MyViewGroup extends android.view.ViewGroup {
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.view.ViewGroupAttributesTest.MyViewGroup>;
				protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
				public isChildrenDrawnWithCacheEnabled(): boolean;
			}
		}
		export class ViewAttachTestActivity extends android.app.Activity {
			constructor();
			static TAG: string;
			static class: java.lang.Class<android.view.ViewAttachTestActivity>;
			public onCreate(savedInstanceState: android.os.Bundle): void;
		}
		/**
		 * Delegate used to provide new implementation of a select few methods of ViewRootImpl
		 */
		export class ViewRootImpl_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.ViewRootImpl_Delegate>;
			static isInTouchMode(): boolean;
		}
		/**
		 * An OpenGL ES 2.0 implementation of HardwareLayer.
		 */
		export class GLES20Layer extends android.view.HardwareLayer {
			static class: java.lang.Class<android.view.GLES20Layer>;
			/**
			 * Returns the native layer object used to render this layer. 
			 */
			public getLayer(): number;
			setLayerPaint(paint: android.graphics.Paint): void;
			copyInto(bitmap: android.graphics.Bitmap): boolean;
			destroy(): void;
			clearStorage(): void;
		}
		export module GLES20Layer {
			export class Finalizer extends java.lang.Object {
				constructor(layerId: number);
				static class: java.lang.Class<android.view.GLES20Layer.Finalizer>;
				protected finalize(): void;
				destroy(): void;
			}
		}
		/**
		 * Exercises android.view.View's ability to change visibility between GONE, VISIBLE and INVISIBLE.
		 */
		export class VisibilityCallbackTest extends android.test.ActivityInstrumentationTestCase2<android.view.VisibilityCallback> {
			constructor();
			static class: java.lang.Class<android.view.VisibilityCallbackTest>;
			public setUp(): void;
			public testSetUpConditions(): void;
			public testDirect(): void;
			public testChild(): void;
		}
		export class View extends java.lang.Object implements android.graphics.drawable.Drawable.ICallback, android.view.KeyEvent.ICallback, android.view.accessibility.IAccessibilityEventSource {
			/**
			 * Simple constructor to use when creating a view from code.
			 * @param context The Context the view is running in, through which it can
			 */
			constructor(context: android.content.Context);
			/**
			 * Constructor that is called when inflating a view from XML. This is called when a view is being constructed from an XML file, supplying attributes that were specified in the XML file. This version uses a default style of 0, so the only attribute values applied are those in the Context's Theme and the given AttributeSet.
			 * @param context The Context the view is running in, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the view.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Perform inflation from XML and apply a class-specific base style. This constructor of View allows subclasses to use their own base style when they are inflating. For example, a Button class's constructor would call this version of the super class constructor and supply <code>R.attr.buttonStyle</code> for <var>defStyle</var>; this allows the theme's button style to modify all of the base view attributes (in particular its background) as well as the Button class's attributes.
			 * @param context The Context the view is running in, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the view.
			 * @param defStyle The default style to apply to this view. If 0, no style
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * Used to mark a View that has no ID.
			 */
			static NO_ID: number;
			/**
			 * This view is visible. Use with #setVisibility and <a href="#attr_android:visibility">android:visibility.
			 */
			static VISIBLE: number;
			/**
			 * This view is invisible, but it still takes up space for layout purposes. Use with #setVisibility and <a href="#attr_android:visibility">android:visibility.
			 */
			static INVISIBLE: number;
			/**
			 * This view is invisible, and it doesn't take any space for layout purposes. Use with #setVisibility and <a href="#attr_android:visibility">android:visibility.
			 */
			static GONE: number;
			static DRAWING_CACHE_QUALITY_LOW: number;
			static DRAWING_CACHE_QUALITY_HIGH: number;
			static DRAWING_CACHE_QUALITY_AUTO: number;
			/**
			 * The scrollbar style to display the scrollbars inside the content area, without increasing the padding. The scrollbars will be overlaid with translucency on the view's content.
			 */
			static SCROLLBARS_INSIDE_OVERLAY: number;
			/**
			 * The scrollbar style to display the scrollbars inside the padded area, increasing the padding of the view. The scrollbars will not overlap the content area of the view.
			 */
			static SCROLLBARS_INSIDE_INSET: number;
			/**
			 * The scrollbar style to display the scrollbars at the edge of the view, without increasing the padding. The scrollbars will be overlaid with translucency.
			 */
			static SCROLLBARS_OUTSIDE_OVERLAY: number;
			/**
			 * The scrollbar style to display the scrollbars at the edge of the view, increasing the padding of the view. The scrollbars will only overlap the background, if any.
			 */
			static SCROLLBARS_OUTSIDE_INSET: number;
			/**
			 * View flag indicating that the screen should remain on while the window containing this view is visible to the user. This effectively takes care of automatically setting the WindowManager's WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON.
			 */
			static KEEP_SCREEN_ON: number;
			/**
			 * View flag indicating whether this view should have sound effects enabled for events such as clicking and touching.
			 */
			static SOUND_EFFECTS_ENABLED: number;
			/**
			 * View flag indicating whether this view should have haptic feedback enabled for events such as long presses.
			 */
			static HAPTIC_FEEDBACK_ENABLED: number;
			/**
			 * View flag indicating whether #addFocusables(ArrayList, int, int) should add all focusable Views regardless if they are focusable in touch mode.
			 */
			static FOCUSABLES_ALL: number;
			/**
			 * View flag indicating whether #addFocusables(ArrayList, int, int) should add only Views focusable in touch mode.
			 */
			static FOCUSABLES_TOUCH_MODE: number;
			/**
			 * Use with #focusSearch(int). Move focus to the previous selectable item.
			 */
			static FOCUS_BACKWARD: number;
			/**
			 * Use with #focusSearch(int). Move focus to the next selectable item.
			 */
			static FOCUS_FORWARD: number;
			/**
			 * Use with #focusSearch(int). Move focus to the left.
			 */
			static FOCUS_LEFT: number;
			/**
			 * Use with #focusSearch(int). Move focus up.
			 */
			static FOCUS_UP: number;
			/**
			 * Use with #focusSearch(int). Move focus to the right.
			 */
			static FOCUS_RIGHT: number;
			/**
			 * Use with #focusSearch(int). Move focus down.
			 */
			static FOCUS_DOWN: number;
			/**
			 * Bits of #getMeasuredWidthAndState() and #getMeasuredWidthAndState() that provide the actual measured size.
			 */
			static MEASURED_SIZE_MASK: number;
			/**
			 * Bits of #getMeasuredWidthAndState() and #getMeasuredWidthAndState() that provide the additional state bits.
			 */
			static MEASURED_STATE_MASK: number;
			/**
			 * Bit shift of #MEASURED_STATE_MASK to get to the height bits for functions that combine both width and height into a single int, such as #getMeasuredState() and the childState argument of #resolveSizeAndState(int, int, int).
			 */
			static MEASURED_HEIGHT_STATE_SHIFT: number;
			/**
			 * Bit of #getMeasuredWidthAndState() and #getMeasuredWidthAndState() that indicates the measured size is smaller that the space the view would like to have.
			 */
			static MEASURED_STATE_TOO_SMALL: number;
			/**
			 * Horizontal layout direction of this view is from Left to Right. Use with #setLayoutDirection.
			 */
			static LAYOUT_DIRECTION_LTR: number;
			/**
			 * Horizontal layout direction of this view is from Right to Left. Use with #setLayoutDirection.
			 */
			static LAYOUT_DIRECTION_RTL: number;
			/**
			 * Horizontal layout direction of this view is inherited from its parent. Use with #setLayoutDirection.
			 */
			static LAYOUT_DIRECTION_INHERIT: number;
			/**
			 * Horizontal layout direction of this view is from deduced from the default language script for the locale. Use with #setLayoutDirection.
			 */
			static LAYOUT_DIRECTION_LOCALE: number;
			/**
			 * Text direction is inherited thru ViewGroup
			 */
			static TEXT_DIRECTION_INHERIT: number;
			/**
			 * Text direction is using "first strong algorithm". The first strong directional character determines the paragraph direction. If there is no strong directional character, the paragraph direction is the view's resolved layout direction.
			 */
			static TEXT_DIRECTION_FIRST_STRONG: number;
			/**
			 * Text direction is using "any-RTL" algorithm. The paragraph direction is RTL if it contains any strong RTL character, otherwise it is LTR if it contains any strong LTR characters. If there are neither, the paragraph direction is the view's resolved layout direction.
			 */
			static TEXT_DIRECTION_ANY_RTL: number;
			/**
			 * Text direction is forced to LTR.
			 */
			static TEXT_DIRECTION_LTR: number;
			/**
			 * Text direction is forced to RTL.
			 */
			static TEXT_DIRECTION_RTL: number;
			/**
			 * Text direction is coming from the system Locale.
			 */
			static TEXT_DIRECTION_LOCALE: number;
			static TEXT_ALIGNMENT_INHERIT: number;
			/**
			 * Default for the root view. The gravity determines the text alignment, ALIGN_NORMAL, ALIGN_CENTER, or ALIGN_OPPOSITE, which are relative to each paragraph0x5500x336360x33922s text direction.
			 */
			static TEXT_ALIGNMENT_GRAVITY: number;
			/**
			 * Align to the start of the paragraph, e.g. ALIGN_NORMAL.
			 */
			static TEXT_ALIGNMENT_TEXT_START: number;
			/**
			 * Align to the end of the paragraph, e.g. ALIGN_OPPOSITE.
			 */
			static TEXT_ALIGNMENT_TEXT_END: number;
			/**
			 * Center the paragraph, e.g. ALIGN_CENTER.
			 */
			static TEXT_ALIGNMENT_CENTER: number;
			/**
			 * Align to the start of the view, which is ALIGN_LEFT if the view0x5500x336360x33922s resolved layoutDirection is LTR, and ALIGN_RIGHT otherwise.
			 */
			static TEXT_ALIGNMENT_VIEW_START: number;
			/**
			 * Align to the end of the view, which is ALIGN_RIGHT if the view0x5500x336360x33922s resolved layoutDirection is LTR, and ALIGN_LEFT otherwise.
			 */
			static TEXT_ALIGNMENT_VIEW_END: number;
			/**
			 * Automatically determine whether a view is important for accessibility.
			 */
			static IMPORTANT_FOR_ACCESSIBILITY_AUTO: number;
			/**
			 * The view is important for accessibility.
			 */
			static IMPORTANT_FOR_ACCESSIBILITY_YES: number;
			/**
			 * The view is not important for accessibility.
			 */
			static IMPORTANT_FOR_ACCESSIBILITY_NO: number;
			/**
			 * Always allow a user to over-scroll this view, provided it is a view that can scroll.
			 */
			static OVER_SCROLL_ALWAYS: number;
			/**
			 * Allow a user to over-scroll this view only if the content is large enough to meaningfully scroll, provided it is a view that can scroll.
			 */
			static OVER_SCROLL_IF_CONTENT_SCROLLS: number;
			/**
			 * Never allow a user to over-scroll this view.
			 */
			static OVER_SCROLL_NEVER: number;
			/**
			 * Special constant for #setSystemUiVisibility(int): View has requested the system UI (status bar) to be visible (the default).
			 */
			static SYSTEM_UI_FLAG_VISIBLE: number;
			/**
			 * Flag for #setSystemUiVisibility(int): View has requested the system UI to enter an unobtrusive "low profile" mode.
			 */
			static SYSTEM_UI_FLAG_LOW_PROFILE: number;
			/**
			 * Flag for #setSystemUiVisibility(int): View has requested that the system navigation be temporarily hidden.
			 */
			static SYSTEM_UI_FLAG_HIDE_NAVIGATION: number;
			/**
			 * Flag for #setSystemUiVisibility(int): View has requested to go into the normal fullscreen mode so that its content can take over the screen while still allowing the user to interact with the application.
			 */
			static SYSTEM_UI_FLAG_FULLSCREEN: number;
			/**
			 * Flag for #setSystemUiVisibility(int): When using other layout flags, we would like a stable view of the content insets given to #fitSystemWindows(Rect). This means that the insets seen there will always represent the worst case that the application can expect as a continuous state. In the stock Android UI this is the space for the system bar, nav bar, and status bar, but not more transient elements such as an input method.
			 */
			static SYSTEM_UI_FLAG_LAYOUT_STABLE: number;
			/**
			 * Flag for #setSystemUiVisibility(int): View would like its window to be layed out as if it has requested #SYSTEM_UI_FLAG_HIDE_NAVIGATION, even if it currently hasn't. This allows it to avoid artifacts when switching in and out of that mode, at the expense that some of its user interface may be covered by screen decorations when they are shown. You can perform layout of your inner UI elements to account for the navagation system UI through the #fitSystemWindows(Rect) method.
			 */
			static SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION: number;
			/**
			 * Flag for #setSystemUiVisibility(int): View would like its window to be layed out as if it has requested #SYSTEM_UI_FLAG_FULLSCREEN, even if it currently hasn't. This allows it to avoid artifacts when switching in and out of that mode, at the expense that some of its user interface may be covered by screen decorations when they are shown. You can perform layout of your inner UI elements to account for non-fullscreen system UI through the #fitSystemWindows(Rect) method.
			 */
			static SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN: number;
			/**
			 *  Use #SYSTEM_UI_FLAG_LOW_PROFILE instead.
			 */
			static STATUS_BAR_HIDDEN: number;
			/**
			 *  Use #SYSTEM_UI_FLAG_VISIBLE instead.
			 */
			static STATUS_BAR_VISIBLE: number;
			/**
			 * Flags that can impact the layout in relation to system UI.
			 */
			static SYSTEM_UI_LAYOUT_FLAGS: number;
			/**
			 * Find views that render the specified text.
			 */
			static FIND_VIEWS_WITH_TEXT: number;
			/**
			 * Find find views that contain the specified content description.
			 */
			static FIND_VIEWS_WITH_CONTENT_DESCRIPTION: number;
			/**
			 * Indicates that the screen has changed state and is now off.
			 */
			static SCREEN_STATE_OFF: number;
			/**
			 * Indicates that the screen has changed state and is now on.
			 */
			static SCREEN_STATE_ON: number;
			/**
			 * Position the scroll bar at the default position as determined by the system.
			 */
			static SCROLLBAR_POSITION_DEFAULT: number;
			/**
			 * Position the scroll bar along the left edge.
			 */
			static SCROLLBAR_POSITION_LEFT: number;
			/**
			 * Position the scroll bar along the right edge.
			 */
			static SCROLLBAR_POSITION_RIGHT: number;
			/**
			 * Indicates that the view does not have a layer.
			 */
			static LAYER_TYPE_NONE: number;
			static LAYER_TYPE_SOFTWARE: number;
			static LAYER_TYPE_HARDWARE: number;
			/**
			 * A Property wrapper around the <code>alpha</code> functionality handled by the View#setAlpha(float) and View#getAlpha() methods.
			 */
			static ALPHA: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>translationX</code> functionality handled by the View#setTranslationX(float) and View#getTranslationX() methods.
			 */
			static TRANSLATION_X: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>translationY</code> functionality handled by the View#setTranslationY(float) and View#getTranslationY() methods.
			 */
			static TRANSLATION_Y: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>x</code> functionality handled by the View#setX(float) and View#getX() methods.
			 */
			static X: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>y</code> functionality handled by the View#setY(float) and View#getY() methods.
			 */
			static Y: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>rotation</code> functionality handled by the View#setRotation(float) and View#getRotation() methods.
			 */
			static ROTATION: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>rotationX</code> functionality handled by the View#setRotationX(float) and View#getRotationX() methods.
			 */
			static ROTATION_X: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>rotationY</code> functionality handled by the View#setRotationY(float) and View#getRotationY() methods.
			 */
			static ROTATION_Y: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>scaleX</code> functionality handled by the View#setScaleX(float) and View#getScaleX() methods.
			 */
			static SCALE_X: android.util.Property<android.view.View, java.lang.Float>;
			/**
			 * A Property wrapper around the <code>scaleY</code> functionality handled by the View#setScaleY(float) and View#getScaleY() methods.
			 */
			static SCALE_Y: android.util.Property<android.view.View, java.lang.Float>;
			static class: java.lang.Class<android.view.View>;
			public toString(): string;
			/**
			 * @param a the styled attributes set to initialize the fading edges from
			 */
			protected initializeFadingEdge(a: android.content.res.TypedArray): void;
			/**
			 * Returns the size of the vertical faded edges used to indicate that more content in this view is visible.
			 */
			public getVerticalFadingEdgeLength(): number;
			/**
			 * Set the size of the faded edge used to indicate that more content in this view is available. Will not change whether the fading edge is enabled; use #setVerticalFadingEdgeEnabled(boolean) or #setHorizontalFadingEdgeEnabled(boolean) to enable the fading edge for the vertical or horizontal fading edges.
			 * @param length The size in pixels of the faded edge used to indicate that more
			 */
			public setFadingEdgeLength(length: number): void;
			/**
			 * Returns the size of the horizontal faded edges used to indicate that more content in this view is visible.
			 */
			public getHorizontalFadingEdgeLength(): number;
			/**
			 * Returns the width of the vertical scrollbar.
			 */
			public getVerticalScrollbarWidth(): number;
			/**
			 * Returns the height of the horizontal scrollbar.
			 */
			protected getHorizontalScrollbarHeight(): number;
			/**
			 * @param a the styled attributes set to initialize the scrollbars from
			 */
			protected initializeScrollbars(a: android.content.res.TypedArray): void;
			/**
			 * Set the position of the vertical scroll bar. Should be one of #SCROLLBAR_POSITION_DEFAULT, #SCROLLBAR_POSITION_LEFT or #SCROLLBAR_POSITION_RIGHT.
			 * @param position Where the vertical scroll bar should be positioned.
			 */
			public setVerticalScrollbarPosition(position: number): void;
			public getVerticalScrollbarPosition(): number;
			getListenerInfo(): android.view.View.ListenerInfo;
			/**
			 * Register a callback to be invoked when focus of this view changed.
			 * @param l The callback that will run.
			 */
			public setOnFocusChangeListener(l: android.view.View.IOnFocusChangeListener): void;
			/**
			 * Add a listener that will be called when the bounds of the view change due to layout processing.
			 * @param listener The listener that will be called when layout bounds change.
			 */
			public addOnLayoutChangeListener(listener: android.view.View.IOnLayoutChangeListener): void;
			/**
			 * Remove a listener for layout changes.
			 * @param listener The listener for layout bounds change.
			 */
			public removeOnLayoutChangeListener(listener: android.view.View.IOnLayoutChangeListener): void;
			/**
			 * Add a listener for attach state changes.
			 * @param listener Listener to attach
			 */
			public addOnAttachStateChangeListener(listener: android.view.View.IOnAttachStateChangeListener): void;
			/**
			 * Remove a listener for attach state changes. The listener will receive no further notification of window attach/detach events.
			 * @param listener Listener to remove
			 */
			public removeOnAttachStateChangeListener(listener: android.view.View.IOnAttachStateChangeListener): void;
			/**
			 * Returns the focus-change callback registered for this view.
			 */
			public getOnFocusChangeListener(): android.view.View.IOnFocusChangeListener;
			/**
			 * Register a callback to be invoked when this view is clicked. If this view is not clickable, it becomes clickable.
			 * @param l The callback that will run
			 */
			public setOnClickListener(l: android.view.View.IOnClickListener): void;
			/**
			 * Return whether this view has an attached OnClickListener. Returns true if there is a listener, false if there is none.
			 */
			public hasOnClickListeners(): boolean;
			/**
			 * Register a callback to be invoked when this view is clicked and held. If this view is not long clickable, it becomes long clickable.
			 * @param l The callback that will run
			 */
			public setOnLongClickListener(l: android.view.View.IOnLongClickListener): void;
			/**
			 * Register a callback to be invoked when the context menu for this view is being built. If this view is not long clickable, it becomes long clickable.
			 * @param l The callback that will run
			 */
			public setOnCreateContextMenuListener(l: android.view.View.IOnCreateContextMenuListener): void;
			/**
			 * Call this view's OnClickListener, if it is defined. Performs all normal actions associated with clicking: reporting accessibility event, playing a sound, etc.
			 */
			public performClick(): boolean;
			/**
			 * Directly call any attached OnClickListener. Unlike #performClick(), this only calls the listener, and does not do any associated clicking actions like reporting an accessibility event.
			 */
			public callOnClick(): boolean;
			/**
			 * Call this view's OnLongClickListener, if it is defined. Invokes the context menu if the OnLongClickListener did not consume the event.
			 */
			public performLongClick(): boolean;
			/**
			 * Bring up the context menu for this view.
			 */
			public showContextMenu(): boolean;
			/**
			 * Start an action mode.
			 * @param callback Callback that will control the lifecycle of the action mode
			 */
			public startActionMode(callback: android.view.ActionMode.ICallback): android.view.ActionMode;
			/**
			 * Register a callback to be invoked when a hardware key is pressed in this view. Key presses in software input methods will generally not trigger the methods of this listener.
			 * @param l the key listener to attach to this view
			 */
			public setOnKeyListener(l: android.view.View.IOnKeyListener): void;
			/**
			 * Register a callback to be invoked when a touch event is sent to this view.
			 * @param l the touch listener to attach to this view
			 */
			public setOnTouchListener(l: android.view.View.IOnTouchListener): void;
			/**
			 * Register a callback to be invoked when a generic motion event is sent to this view.
			 * @param l the generic motion listener to attach to this view
			 */
			public setOnGenericMotionListener(l: android.view.View.IOnGenericMotionListener): void;
			/**
			 * Register a callback to be invoked when a hover event is sent to this view.
			 * @param l the hover listener to attach to this view
			 */
			public setOnHoverListener(l: android.view.View.IOnHoverListener): void;
			/**
			 * Register a drag event listener callback object for this View. The parameter is an implementation of android.view.View.OnDragListener. To send a drag event to a View, the system calls the android.view.View.OnDragListener#onDrag(View,DragEvent) method.
			 * @param l An implementation of {@link android.view.View.OnDragListener}.
			 */
			public setOnDragListener(l: android.view.View.IOnDragListener): void;
			/**
			 * Give this view focus. This will cause #onFocusChanged(boolean, int, android.graphics.Rect) to be called.
			 * @param direction values are {@link View#FOCUS_UP}, {@link View#FOCUS_DOWN},
			 * @param previouslyFocusedRect The rectangle of the view that had focus
			 */
			handleFocusGainInternal(direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			/**
			 * Request that a rectangle of this view be visible on the screen, scrolling if necessary just enough.
			 * @param rectangle The rectangle.
			 */
			public requestRectangleOnScreen(rectangle: android.graphics.Rect): boolean;
			/**
			 * Request that a rectangle of this view be visible on the screen, scrolling if necessary just enough.
			 * @param rectangle The rectangle.
			 * @param immediate True to forbid animated scrolling, false otherwise
			 */
			public requestRectangleOnScreen(rectangle: android.graphics.Rect, immediate: boolean): boolean;
			/**
			 * Called when this view wants to give up focus. If focus is cleared #onFocusChanged(boolean, int, android.graphics.Rect) is called.
			 */
			public clearFocus(): void;
			ensureInputFocusOnFirstFocusable(): void;
			/**
			 * Called internally by the view system when a new view is getting focus. This is what clears the old focus.
			 */
			unFocus(): void;
			/**
			 * Returns true if this view has focus iteself, or is the ancestor of the view that has focus.
			 */
			public hasFocus(): boolean;
			/**
			 * Returns true if this view is focusable or if it contains a reachable View for which #hasFocusable() returns true. A "reachable hasFocusable()" is a View whose parents do not block descendants focus.
			 */
			public hasFocusable(): boolean;
			/**
			 * Called by the view system when the focus state of this view changes. When the focus change event is caused by directional navigation, direction and previouslyFocusedRect provide insight into where the focus is coming from. When overriding, be sure to call up through to the super class so that the standard focus handling will occur.
			 * @param gainFocus True if the View has focus; false otherwise.
			 * @param direction The direction focus has moved when requestFocus()
			 * @param previouslyFocusedRect The rectangle, in this view's coordinate
			 */
			protected onFocusChanged(gainFocus: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			/**
			 * Sends an accessibility event of the given type. If accessibility is not enabled this method has no effect. The default implementation calls #onInitializeAccessibilityEvent(AccessibilityEvent) first to populate information about the event source (this View), then calls #dispatchPopulateAccessibilityEvent(AccessibilityEvent) to populate the text content of the event source including its descendants, and last calls ViewParent#requestSendAccessibilityEvent(View, AccessibilityEvent) on its parent to resuest sending of the event to interested parties.
			 * @param eventType The type of the event to send, as defined by several types from
			 */
			public sendAccessibilityEvent(eventType: number): void;
			/**
			 * Convenience method for sending a AccessibilityEvent#TYPE_ANNOUNCEMENT AccessibilityEvent to make an announcement which is related to some sort of a context change for which none of the events representing UI transitions is a good fit. For example, announcing a new page in a book. If accessibility is not enabled this method does nothing.
			 * @param text The announcement text.
			 */
			public announceForAccessibility(text: string): void;
			/**
			 *  #sendAccessibilityEvent(int)
			 */
			sendAccessibilityEventInternal(eventType: number): void;
			/**
			 * This method behaves exactly as #sendAccessibilityEvent(int) but takes as an argument an empty AccessibilityEvent and does not perform a check whether accessibility is enabled.
			 * @param event The event to send.
			 */
			public sendAccessibilityEventUnchecked(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 *  #sendAccessibilityEventUnchecked(AccessibilityEvent)
			 */
			sendAccessibilityEventUncheckedInternal(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * Dispatches an AccessibilityEvent to the View first and then to its children for adding their text content to the event. Note that the event text is populated in a separate dispatch path since we add to the event not only the text of the source but also the text of all its descendants. A typical implementation will call #onPopulateAccessibilityEvent(AccessibilityEvent) on the this view and then call the #dispatchPopulateAccessibilityEvent(AccessibilityEvent) on each child. Override this method if custom population of the event text content is required.
			 * @param event The event.
			 */
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 *  #dispatchPopulateAccessibilityEvent(AccessibilityEvent)
			 */
			dispatchPopulateAccessibilityEventInternal(event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 * Called from #dispatchPopulateAccessibilityEvent(AccessibilityEvent) giving a chance to this View to populate the accessibility event with its text content. While this method is free to modify event attributes other than text content, doing so should normally be performed in #onInitializeAccessibilityEvent(AccessibilityEvent).
			 * @param event The accessibility event which to populate.
			 */
			public onPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 *  #onPopulateAccessibilityEvent(AccessibilityEvent)
			 */
			onPopulateAccessibilityEventInternal(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * Initializes an AccessibilityEvent with information about this View which is the event source. In other words, the source of an accessibility event is the view whose state change triggered firing the event.
			 * @param event The event to initialize.
			 */
			public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 *  #onInitializeAccessibilityEvent(AccessibilityEvent)
			 */
			onInitializeAccessibilityEventInternal(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * Returns an AccessibilityNodeInfo representing this view from the point of view of an android.accessibilityservice.AccessibilityService. This method is responsible for obtaining an accessibility node info from a pool of reusable instances and calling #onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo) on this view to initialize the former.
			 */
			public createAccessibilityNodeInfo(): android.view.accessibility.AccessibilityNodeInfo;
			/**
			 * Initializes an AccessibilityNodeInfo with information about this view. The base implementation sets: <ul> <li>AccessibilityNodeInfo#setParent(View),</li> <li>AccessibilityNodeInfo#setBoundsInParent(Rect),</li> <li>AccessibilityNodeInfo#setBoundsInScreen(Rect),</li> <li>AccessibilityNodeInfo#setPackageName(CharSequence),</li> <li>AccessibilityNodeInfo#setClassName(CharSequence),</li> <li>AccessibilityNodeInfo#setContentDescription(CharSequence),</li> <li>AccessibilityNodeInfo#setEnabled(boolean),</li> <li>AccessibilityNodeInfo#setClickable(boolean),</li> <li>AccessibilityNodeInfo#setFocusable(boolean),</li> <li>AccessibilityNodeInfo#setFocused(boolean),</li> <li>AccessibilityNodeInfo#setLongClickable(boolean),</li> <li>AccessibilityNodeInfo#setSelected(boolean),</li> </ul>
			 * @param info The instance to initialize.
			 */
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Gets the location of this view in screen coordintates.
			 * @param outRect The output location
			 */
			getBoundsOnScreen(outRect: android.graphics.Rect): void;
			/**
			 *  #onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo)
			 */
			onInitializeAccessibilityNodeInfoInternal(info: android.view.accessibility.AccessibilityNodeInfo): void;
			/**
			 * Sets a delegate for implementing accessibility support via composition as opposed to inheritance. The delegate's primary use is for implementing backwards compatible widgets. For more details see AccessibilityDelegate.
			 * @param delegate The delegate instance.
			 */
			public setAccessibilityDelegate(delegate: android.view.View.AccessibilityDelegate): void;
			/**
			 * Gets the provider for managing a virtual view hierarchy rooted at this View and reported to android.accessibilityservice.AccessibilityServices that explore the window content.
			 */
			public getAccessibilityNodeProvider(): android.view.accessibility.AccessibilityNodeProvider;
			/**
			 * Gets the View description. It briefly describes the view and is primarily used for accessibility support. Set this property to enable better accessibility support for your application. This is especially true for views that do not have textual representation (For example, ImageButton).
			 */
			public getContentDescription(): string;
			/**
			 * Sets the View description. It briefly describes the view and is primarily used for accessibility support. Set this property to enable better accessibility support for your application. This is especially true for views that do not have textual representation (For example, ImageButton).
			 * @param contentDescription The content description.
			 */
			public setContentDescription(contentDescription: string): void;
			/**
			 * Gets the id of a view for which this view serves as a label for accessibility purposes.
			 */
			public getLabelFor(): number;
			/**
			 * Sets the id of a view for which this view serves as a label for accessibility purposes.
			 * @param id The labeled view id.
			 */
			public setLabelFor(id: number): void;
			/**
			 * Returns true if this view has focus
			 */
			public isFocused(): boolean;
			/**
			 * Find the view in the hierarchy rooted at this view that currently has focus.
			 */
			public findFocus(): android.view.View;
			/**
			 * Indicates whether this view is one of the set of scrollable containers in its window.
			 */
			public isScrollContainer(): boolean;
			/**
			 * Change whether this view is one of the set of scrollable containers in its window. This will be used to determine whether the window can resize or must pan when a soft input area is open -- scrollable containers allow the window to use resize mode since the container will appropriately shrink.
			 */
			public setScrollContainer(isScrollContainer: boolean): void;
			/**
			 * Returns the quality of the drawing cache.
			 */
			public getDrawingCacheQuality(): number;
			/**
			 * Set the drawing cache quality of this view. This value is used only when the drawing cache is enabled
			 * @param quality One of {@link #DRAWING_CACHE_QUALITY_AUTO},
			 */
			public setDrawingCacheQuality(quality: number): void;
			/**
			 * Returns whether the screen should remain on, corresponding to the current value of #KEEP_SCREEN_ON.
			 */
			public getKeepScreenOn(): boolean;
			/**
			 * Controls whether the screen should remain on, modifying the value of #KEEP_SCREEN_ON.
			 * @param keepScreenOn Supply true to set {@link #KEEP_SCREEN_ON}.
			 */
			public setKeepScreenOn(keepScreenOn: boolean): void;
			/**
			 * Gets the id of the view to use when the next focus is #FOCUS_LEFT.
			 */
			public getNextFocusLeftId(): number;
			/**
			 * Sets the id of the view to use when the next focus is #FOCUS_LEFT.
			 * @param nextFocusLeftId The next focus ID, or {@link #NO_ID} if the framework should
			 */
			public setNextFocusLeftId(nextFocusLeftId: number): void;
			/**
			 * Gets the id of the view to use when the next focus is #FOCUS_RIGHT.
			 */
			public getNextFocusRightId(): number;
			/**
			 * Sets the id of the view to use when the next focus is #FOCUS_RIGHT.
			 * @param nextFocusRightId The next focus ID, or {@link #NO_ID} if the framework should
			 */
			public setNextFocusRightId(nextFocusRightId: number): void;
			/**
			 * Gets the id of the view to use when the next focus is #FOCUS_UP.
			 */
			public getNextFocusUpId(): number;
			/**
			 * Sets the id of the view to use when the next focus is #FOCUS_UP.
			 * @param nextFocusUpId The next focus ID, or {@link #NO_ID} if the framework should
			 */
			public setNextFocusUpId(nextFocusUpId: number): void;
			/**
			 * Gets the id of the view to use when the next focus is #FOCUS_DOWN.
			 */
			public getNextFocusDownId(): number;
			/**
			 * Sets the id of the view to use when the next focus is #FOCUS_DOWN.
			 * @param nextFocusDownId The next focus ID, or {@link #NO_ID} if the framework should
			 */
			public setNextFocusDownId(nextFocusDownId: number): void;
			/**
			 * Gets the id of the view to use when the next focus is #FOCUS_FORWARD.
			 */
			public getNextFocusForwardId(): number;
			/**
			 * Sets the id of the view to use when the next focus is #FOCUS_FORWARD.
			 * @param nextFocusForwardId The next focus ID, or {@link #NO_ID} if the framework should
			 */
			public setNextFocusForwardId(nextFocusForwardId: number): void;
			/**
			 * Returns the visibility of this view and all of its ancestors
			 */
			public isShown(): boolean;
			/**
			 * Called by the view hierarchy when the content insets for a window have changed, to allow it to adjust its content to fit within those windows. The content insets tell you the space that the status bar, input method, and other system windows infringe on the application's window.
			 * @param insets Current content insets of the window. Prior to
			 */
			protected fitSystemWindows(insets: android.graphics.Rect): boolean;
			/**
			 * Sets whether or not this view should account for system screen decorations such as the status bar and inset its content; that is, controlling whether the default implementation of #fitSystemWindows(Rect) will be executed. See that method for more details.
			 * @param fitSystemWindows If true, then the default implementation of
			 */
			public setFitsSystemWindows(fitSystemWindows: boolean): void;
			/**
			 * Check for state of #setFitsSystemWindows(boolean). If this method returns true, the default implementation of { #fitSystemWindows(Rect) will be executed.
			 */
			public getFitsSystemWindows(): boolean;
			/**
			 * Ask that a new dispatch of #fitSystemWindows(Rect) be performed.
			 */
			public requestFitSystemWindows(): void;
			/**
			 * Returns the visibility status for this view.
			 */
			public getVisibility(): number;
			/**
			 * Set the enabled state of this view.
			 * @param visibility One of {@link #VISIBLE}, {@link #INVISIBLE}, or {@link #GONE}.
			 */
			public setVisibility(visibility: number): void;
			/**
			 * Returns the enabled status for this view. The interpretation of the enabled state varies by subclass.
			 */
			public isEnabled(): boolean;
			/**
			 * Set the enabled state of this view. The interpretation of the enabled state varies by subclass.
			 * @param enabled True if this view is enabled, false otherwise.
			 */
			public setEnabled(enabled: boolean): void;
			/**
			 * Set whether this view can receive the focus.
			 * @param focusable If true, this view can receive the focus.
			 */
			public setFocusable(focusable: boolean): void;
			/**
			 * Set whether this view can receive focus while in touch mode.
			 * @param focusableInTouchMode If true, this view can receive the focus while
			 */
			public setFocusableInTouchMode(focusableInTouchMode: boolean): void;
			/**
			 * Set whether this view should have sound effects enabled for events such as clicking and touching.
			 * @param soundEffectsEnabled whether sound effects are enabled for this view.
			 */
			public setSoundEffectsEnabled(soundEffectsEnabled: boolean): void;
			public isSoundEffectsEnabled(): boolean;
			/**
			 * Set whether this view should have haptic feedback for events such as long presses.
			 * @param hapticFeedbackEnabled whether haptic feedback enabled for this view.
			 */
			public setHapticFeedbackEnabled(hapticFeedbackEnabled: boolean): void;
			public isHapticFeedbackEnabled(): boolean;
			/**
			 * Set the layout direction for this view. This will propagate a reset of layout direction resolution to the view's children and resolve layout direction for this view.
			 * @param layoutDirection the layout direction to set. Should be one of:
			 */
			public setLayoutDirection(layoutDirection: number): void;
			/**
			 * Returns the resolved layout direction for this view.
			 */
			public getLayoutDirection(): number;
			/**
			 * Indicates whether the view is currently tracking transient state that the app should not need to concern itself with saving and restoring, but that the framework should take special note to preserve when possible.
			 */
			public hasTransientState(): boolean;
			/**
			 * Set whether this view is currently tracking transient state that the framework should attempt to preserve when possible. This flag is reference counted, so every call to setHasTransientState(true) should be paired with a later call to setHasTransientState(false).
			 * @param hasTransientState true if this view has transient state
			 */
			public setHasTransientState(hasTransientState: boolean): void;
			/**
			 * If this view doesn't do any drawing on its own, set this flag to allow further optimizations. By default, this flag is not set on View, but could be set on some View subclasses such as ViewGroup.
			 * @param willNotDraw whether or not this View draw on its own
			 */
			public setWillNotDraw(willNotDraw: boolean): void;
			/**
			 * Returns whether or not this View draws on its own.
			 */
			public willNotDraw(): boolean;
			/**
			 * When a View's drawing cache is enabled, drawing is redirected to an offscreen bitmap. Some views, like an ImageView, must be able to bypass this mechanism if they already draw a single bitmap, to avoid unnecessary usage of the memory.
			 * @param willNotCacheDrawing true if this view does not cache its
			 */
			public setWillNotCacheDrawing(willNotCacheDrawing: boolean): void;
			/**
			 * Returns whether or not this View can cache its drawing or not.
			 */
			public willNotCacheDrawing(): boolean;
			/**
			 * Indicates whether this view reacts to click events or not.
			 */
			public isClickable(): boolean;
			/**
			 * Enables or disables click events for this view. When a view is clickable it will change its state to "pressed" on every click. Subclasses should set the view clickable to visually react to user's clicks.
			 * @param clickable true to make the view clickable, false otherwise
			 */
			public setClickable(clickable: boolean): void;
			/**
			 * Indicates whether this view reacts to long click events or not.
			 */
			public isLongClickable(): boolean;
			/**
			 * Enables or disables long click events for this view. When a view is long clickable it reacts to the user holding down the button for a longer duration than a tap. This event can either launch the listener or a context menu.
			 * @param longClickable true to make the view long clickable, false otherwise
			 */
			public setLongClickable(longClickable: boolean): void;
			/**
			 * Sets the pressed state for this view.
			 * @param pressed Pass true to set the View's internal state to "pressed", or false to reverts
			 */
			public setPressed(pressed: boolean): void;
			/**
			 * Dispatch setPressed to all of this View's children.
			 * @param pressed The new pressed state
			 */
			protected dispatchSetPressed(pressed: boolean): void;
			/**
			 * Indicates whether the view is currently in pressed state. Unless #setPressed(boolean) is explicitly called, only clickable views can enter the pressed state.
			 */
			public isPressed(): boolean;
			/**
			 * Indicates whether this view will save its state (that is, whether its #onSaveInstanceState method will be called).
			 */
			public isSaveEnabled(): boolean;
			/**
			 * Controls whether the saving of this view's state is enabled (that is, whether its #onSaveInstanceState method will be called). Note that even if freezing is enabled, the view still must have an id assigned to it (via #setId(int)) for its state to be saved. This flag can only disable the saving of this view; any child views may still have their state saved.
			 * @param enabled Set to false to <em>disable</em> state saving, or true
			 */
			public setSaveEnabled(enabled: boolean): void;
			/**
			 * Gets whether the framework should discard touches when the view's window is obscured by another visible window. Refer to the View security documentation for more details.
			 */
			public getFilterTouchesWhenObscured(): boolean;
			/**
			 * Sets whether the framework should discard touches when the view's window is obscured by another visible window. Refer to the View security documentation for more details.
			 * @param enabled True if touch filtering should be enabled.
			 */
			public setFilterTouchesWhenObscured(enabled: boolean): void;
			/**
			 * Indicates whether the entire hierarchy under this view will save its state when a state saving traversal occurs from its parent. The default is true; if false, these views will not be saved unless #saveHierarchyState(SparseArray) is called directly on this view.
			 */
			public isSaveFromParentEnabled(): boolean;
			/**
			 * Controls whether the entire hierarchy under this view will save its state when a state saving traversal occurs from its parent. The default is true; if false, these views will not be saved unless #saveHierarchyState(SparseArray) is called directly on this view.
			 * @param enabled Set to false to <em>disable</em> state saving, or true
			 */
			public setSaveFromParentEnabled(enabled: boolean): void;
			/**
			 * Returns whether this View is able to take focus.
			 */
			public isFocusable(): boolean;
			/**
			 * When a view is focusable, it may not want to take focus when in touch mode. For example, a button would like focus when the user is navigating via a D-pad so that the user can click on it, but once the user starts touching the screen, the button shouldn't take focus
			 */
			public isFocusableInTouchMode(): boolean;
			/**
			 * Find the nearest view in the specified direction that can take focus. This does not actually give focus to that view.
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 */
			public focusSearch(direction: number): android.view.View;
			/**
			 * This method is the last chance for the focused view and its ancestors to respond to an arrow key. This is called when the focused view did not consume the key internally, nor could the view system find a new view in the requested direction to give focus to.
			 * @param focused The currently focused view.
			 * @param direction The direction focus wants to move. One of FOCUS_UP,
			 */
			public dispatchUnhandledMove(focused: android.view.View, direction: number): boolean;
			/**
			 * If a user manually specified the next view id for a particular direction, use the root to look up the view.
			 * @param root The root view of the hierarchy containing this view.
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_FORWARD,
			 */
			findUserSetNextFocus(root: android.view.View, direction: number): android.view.View;
			/**
			 * Find and return all focusable views that are descendants of this view, possibly including this view if it is focusable itself.
			 * @param direction The direction of the focus
			 */
			public getFocusables(direction: number): java.util.ArrayList<android.view.View>;
			/**
			 * Add any focusable views that are descendants of this view (possibly including this view if it is focusable itself) to views. If we are in touch mode, only add views that are also focusable in touch mode.
			 * @param views Focusable views found so far
			 * @param direction The direction of the focus
			 */
			public addFocusables(views: java.util.ArrayList<android.view.View>, direction: number): void;
			/**
			 * Adds any focusable views that are descendants of this view (possibly including this view if it is focusable itself) to views. This method adds all focusable views regardless if we are in touch mode or only views focusable in touch mode if we are in touch mode or only views that can take accessibility focus if accessibility is enabeld depending on the focusable mode paramater.
			 * @param views Focusable views found so far or null if all we are interested is
			 * @param direction The direction of the focus.
			 * @param focusableMode The type of focusables to be added.
			 */
			public addFocusables(views: java.util.ArrayList<android.view.View>, direction: number, focusableMode: number): void;
			/**
			 * Finds the Views that contain given text. The containment is case insensitive. The search is performed by either the text that the View renders or the content description that describes the view for accessibility purposes and the view does not render or both. Clients can specify how the search is to be performed via passing the #FIND_VIEWS_WITH_TEXT and #FIND_VIEWS_WITH_CONTENT_DESCRIPTION flags.
			 * @param outViews The output list of matching Views.
			 * @param searched The text to match against.
			 * @param flags 
			 */
			public findViewsWithText(outViews: java.util.ArrayList<android.view.View>, searched: string, flags: number): void;
			/**
			 * Find and return all touchable views that are descendants of this view, possibly including this view if it is touchable itself.
			 */
			public getTouchables(): java.util.ArrayList<android.view.View>;
			/**
			 * Add any touchable views that are descendants of this view (possibly including this view if it is touchable itself) to views.
			 * @param views Touchable views found so far
			 */
			public addTouchables(views: java.util.ArrayList<android.view.View>): void;
			/**
			 * Returns whether this View is accessibility focused.
			 */
			isAccessibilityFocused(): boolean;
			/**
			 * Clears accessibility focus without calling any callback methods normally invoked in #clearAccessibilityFocus(). This method is used for clearing accessibility focus when giving this focus to another view.
			 */
			clearAccessibilityFocusNoCallbacks(): void;
			/**
			 * Call this to try to give focus to a specific view or to one of its descendants.
			 */
			public requestFocus(): boolean;
			/**
			 * Call this to try to give focus to a specific view or to one of its descendants and give it a hint about what direction focus is heading.
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 */
			public requestFocus(direction: number): boolean;
			/**
			 * Call this to try to give focus to a specific view or to one of its descendants and give it hints about the direction and a specific rectangle that the focus is coming from. The rectangle can help give larger views a finer grained hint about where focus is coming from, and therefore, where to show selection, or forward focus change internally.
			 * @param direction One of FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, and FOCUS_RIGHT
			 * @param previouslyFocusedRect The rectangle (in this View's coordinate system)
			 */
			public requestFocus(direction: number, previouslyFocusedRect: android.graphics.Rect): boolean;
			/**
			 * Call this to try to give focus to a specific view or to one of its descendants. This is a special variant of #requestFocus() that will allow views that are not focuable in touch mode to request focus when they are touched.
			 */
			public requestFocusFromTouch(): boolean;
			/**
			 * Gets the mode for determining whether this View is important for accessibility which is if it fires accessibility events and if it is reported to accessibility services that query the screen.
			 */
			public getImportantForAccessibility(): number;
			/**
			 * Sets how to determine whether this view is important for accessibility which is if it fires accessibility events and if it is reported to accessibility services that query the screen.
			 * @param mode How to determine whether this view is important for accessibility.
			 */
			public setImportantForAccessibility(mode: number): void;
			/**
			 * Gets the parent for accessibility purposes. Note that the parent for accessibility is not necessary the immediate parent. It is the first predecessor that is important for accessibility.
			 */
			public getParentForAccessibility(): android.view.IViewParent;
			/**
			 * Adds the children of a given View for accessibility. Since some Views are not important for accessibility the children for accessibility are not necessarily direct children of the riew, rather they are the first level of descendants important for accessibility.
			 * @param children The list of children for accessibility.
			 */
			public addChildrenForAccessibility(children: java.util.ArrayList<android.view.View>): void;
			/**
			 * Performs the specified accessibility action on the view. For possible accessibility actions look at AccessibilityNodeInfo.
			 * @param action The action to perform.
			 * @param arguments Optional action arguments.
			 */
			public performAccessibilityAction(action: number, args: android.os.Bundle): boolean;
			/**
			 *  #performAccessibilityAction(int, Bundle)
			 */
			performAccessibilityActionInternal(action: number, args: android.os.Bundle): boolean;
			/**
			 * This is called when a container is going to temporarily detach a child, with ViewGroup#detachViewFromParent(View) ViewGroup.detachViewFromParent. It will either be followed by #onFinishTemporaryDetach() or #onDetachedFromWindow() when the container is done.
			 */
			public onStartTemporaryDetach(): void;
			/**
			 * Called after #onStartTemporaryDetach when the container is done changing the view.
			 */
			public onFinishTemporaryDetach(): void;
			/**
			 * Return the global KeyEvent.DispatcherState KeyEvent.DispatcherState for this view's window. Returns null if the view is not currently attached to the window. Normally you will not need to use this directly, but just use the standard high-level event callbacks like #onKeyDown(int, KeyEvent).
			 */
			public getKeyDispatcherState(): android.view.KeyEvent.DispatcherState;
			/**
			 * Dispatch a key event before it is processed by any input method associated with the view hierarchy. This can be used to intercept key events in special situations before the IME consumes them; a typical example would be handling the BACK key to update the application's UI instead of allowing the IME to see it and close itself.
			 * @param event The key event to be dispatched.
			 */
			public dispatchKeyEventPreIme(event: android.view.KeyEvent): boolean;
			/**
			 * Dispatch a key event to the next view on the focus path. This path runs from the top of the view tree down to the currently focused view. If this view has focus, it will dispatch to itself. Otherwise it will dispatch the next node down the focus path. This method also fires any key listeners.
			 * @param event The key event to be dispatched.
			 */
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Dispatches a key shortcut event.
			 * @param event The key event to be dispatched.
			 */
			public dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Pass the touch screen motion event down to the target view, or this view if it is the target.
			 * @param event The motion event to be dispatched.
			 */
			public dispatchTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Filter the touch event to apply security policies.
			 * @param event The motion event to be filtered.
			 */
			public onFilterTouchEventForSecurity(event: android.view.MotionEvent): boolean;
			/**
			 * Pass a trackball motion event down to the focused view.
			 * @param event The motion event to be dispatched.
			 */
			public dispatchTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Dispatch a generic motion event.
			 * @param event The motion event to be dispatched.
			 */
			public dispatchGenericMotionEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Dispatch a hover event.
			 * @param event The motion event to be dispatched.
			 */
			protected dispatchHoverEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Dispatch a generic motion event to the view under the first pointer.
			 * @param event The motion event to be dispatched.
			 */
			protected dispatchGenericPointerEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Dispatch a generic motion event to the currently focused view.
			 * @param event The motion event to be dispatched.
			 */
			protected dispatchGenericFocusedEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Called when the window containing this view gains or loses window focus. ViewGroups should override to route to their children.
			 * @param hasFocus True if the window containing this view now has focus,
			 */
			public dispatchWindowFocusChanged(hasFocus: boolean): void;
			/**
			 * Called when the window containing this view gains or loses focus. Note that this is separate from view focus: to receive key events, both your view and its window must have focus. If a window is displayed on top of yours that takes input focus, then your own window will lose focus but the view focus will remain unchanged.
			 * @param hasWindowFocus True if the window containing this view now has
			 */
			public onWindowFocusChanged(hasWindowFocus: boolean): void;
			/**
			 * Returns true if this view is in a window that currently has window focus. Note that this is not the same as the view itself having focus.
			 */
			public hasWindowFocus(): boolean;
			/**
			 * Dispatch a view visibility change down the view hierarchy. ViewGroups should override to route to their children.
			 * @param changedView The view whose visibility changed. Could be 'this' or
			 * @param visibility The new visibility of changedView: {@link #VISIBLE},
			 */
			protected dispatchVisibilityChanged(changedView: android.view.View, visibility: number): void;
			/**
			 * Called when the visibility of the view or an ancestor of the view is changed.
			 * @param changedView The view whose visibility changed. Could be 'this' or
			 * @param visibility The new visibility of changedView: {@link #VISIBLE},
			 */
			protected onVisibilityChanged(changedView: android.view.View, visibility: number): void;
			/**
			 * Dispatch a hint about whether this view is displayed. For instance, when a View moves out of the screen, it might receives a display hint indicating the view is not displayed. Applications should not <em>rely</em> on this hint as there is no guarantee that they will receive one.
			 * @param hint A hint about whether or not this view is displayed:
			 */
			public dispatchDisplayHint(hint: number): void;
			/**
			 * Gives this view a hint about whether is displayed or not. For instance, when a View moves out of the screen, it might receives a display hint indicating the view is not displayed. Applications should not <em>rely</em> on this hint as there is no guarantee that they will receive one.
			 * @param hint A hint about whether or not this view is displayed:
			 */
			protected onDisplayHint(hint: number): void;
			/**
			 * Dispatch a window visibility change down the view hierarchy. ViewGroups should override to route to their children.
			 * @param visibility The new visibility of the window.
			 */
			public dispatchWindowVisibilityChanged(visibility: number): void;
			/**
			 * Called when the window containing has change its visibility (between #GONE, #INVISIBLE, and #VISIBLE). Note that this tells you whether or not your window is being made visible to the window manager; this does <em>not</em> tell you whether or not your window is obscured by other windows on the screen, even if it is itself visible.
			 * @param visibility The new visibility of the window.
			 */
			protected onWindowVisibilityChanged(visibility: number): void;
			/**
			 * Returns the current visibility of the window this view is attached to (either #GONE, #INVISIBLE, or #VISIBLE).
			 */
			public getWindowVisibility(): number;
			/**
			 * Retrieve the overall visible display size in which the window this view is attached to has been positioned in. This takes into account screen decorations above the window, for both cases where the window itself is being position inside of them or the window is being placed under then and covered insets are used for the window to position its content inside. In effect, this tells you the available area where content can be placed and remain visible to users.
			 * @param outRect Filled in with the visible display frame. If the view
			 */
			public getWindowVisibleDisplayFrame(outRect: android.graphics.Rect): void;
			/**
			 * Dispatch a notification about a resource configuration change down the view hierarchy. ViewGroups should override to route to their children.
			 * @param newConfig The new resource configuration.
			 */
			public dispatchConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * Called when the current configuration of the resources being used by the application have changed. You can use this to decide when to reload resources that can changed based on orientation and other configuration characterstics. You only need to use this if you are not relying on the normal android.app.Activity mechanism of recreating the activity instance upon a configuration change.
			 * @param newConfig The new resource configuration.
			 */
			protected onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * Private function to aggregate all per-view attributes in to the view root.
			 */
			dispatchCollectViewAttributes(attachInfo: android.view.View.AttachInfo, visibility: number): void;
			performCollectViewAttributes(attachInfo: android.view.View.AttachInfo, visibility: number): void;
			needGlobalAttributesUpdate(force: boolean): void;
			/**
			 * Returns whether the device is currently in touch mode. Touch mode is entered once the user begins interacting with the device by touch, and affects various things like whether focus is always visible to the user.
			 */
			public isInTouchMode(): boolean;
			/**
			 * Returns the context the view is running in, through which it can access the current theme, resources, etc.
			 */
			public getContext(): android.content.Context;
			/**
			 * Handle a key event before it is processed by any input method associated with the view hierarchy. This can be used to intercept key events in special situations before the IME consumes them; a typical example would be handling the BACK key to update the application's UI instead of allowing the IME to see it and close itself.
			 * @param keyCode The value in event.getKeyCode().
			 * @param event Description of the key event.
			 */
			public onKeyPreIme(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyDown(int, KeyEvent) KeyEvent.Callback.onKeyDown(): perform press of the view when KeyEvent#KEYCODE_DPAD_CENTER or KeyEvent#KEYCODE_ENTER is released, if the view is enabled and clickable.
			 * @param keyCode A key code that represents the button pressed, from
			 * @param event The KeyEvent object that defines the button action.
			 */
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyLongPress(int, KeyEvent) KeyEvent.Callback.onKeyLongPress(): always returns false (doesn't handle the event).
			 */
			public onKeyLongPress(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyUp(int, KeyEvent) KeyEvent.Callback.onKeyUp(): perform clicking of the view when KeyEvent#KEYCODE_DPAD_CENTER or KeyEvent#KEYCODE_ENTER is released.
			 * @param keyCode A key code that represents the button pressed, from
			 * @param event The KeyEvent object that defines the button action.
			 */
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyMultiple(int, int, KeyEvent) KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).
			 * @param keyCode A key code that represents the button pressed, from
			 * @param repeatCount The number of times the action was made.
			 * @param event The KeyEvent object that defines the button action.
			 */
			public onKeyMultiple(keyCode: number, repeatCount: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called on the focused view when a key shortcut event is not handled. Override this method to implement local key shortcuts for the View. Key shortcuts can also be implemented by setting the MenuItem#setShortcut(char, char) shortcut property of menu items.
			 * @param keyCode The value in event.getKeyCode().
			 * @param event Description of the key event.
			 */
			public onKeyShortcut(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Check whether the called view is a text editor, in which case it would make sense to automatically display a soft input window for it. Subclasses should override this if they implement #onCreateInputConnection(EditorInfo) to return true if a call on that method would return a non-null InputConnection, and they are really a first-class editor that the user would normally start typing on when the go into a window containing your view.
			 */
			public onCheckIsTextEditor(): boolean;
			/**
			 * Create a new InputConnection for an InputMethod to interact with the view. The default implementation returns null, since it doesn't support input methods. You can override this to implement such support. This is only needed for views that take focus and text input.
			 * @param outAttrs Fill in with attribute information about the connection.
			 */
			public onCreateInputConnection(outAttrs: android.view.inputmethod.EditorInfo): android.view.inputmethod.IInputConnection;
			/**
			 * Called by the android.view.inputmethod.InputMethodManager when a view who is not the current input connection target is trying to make a call on the manager. The default implementation returns false; you can override this to return true for certain views if you are performing InputConnection proxying to them.
			 * @param view The View that is making the InputMethodManager call.
			 */
			public checkInputConnectionProxy(view: android.view.View): boolean;
			/**
			 * Show the context menu for this view. It is not safe to hold on to the menu after returning from this method.
			 * @param menu The context menu to populate
			 */
			public createContextMenu(menu: android.view.IContextMenu): void;
			/**
			 * Views should implement this if they have extra information to associate with the context menu. The return result is supplied as a parameter to the OnCreateContextMenuListener#onCreateContextMenu(ContextMenu, View, ContextMenuInfo) callback.
			 */
			protected getContextMenuInfo(): android.view.ContextMenu.IContextMenuInfo;
			/**
			 * Views should implement this if the view itself is going to add items to the context menu.
			 * @param menu the context menu to populate
			 */
			protected onCreateContextMenu(menu: android.view.IContextMenu): void;
			/**
			 * Implement this method to handle trackball motion events. The <em>relative</em> movement of the trackball since the last event can be retrieve with MotionEvent#getX MotionEvent.getX() and MotionEvent#getY MotionEvent.getY(). These are normalized so that a movement of 1 corresponds to the user pressing one DPAD key (so they will often be fractional values, representing the more fine-grained movement information available from a trackball).
			 * @param event The motion event.
			 */
			public onTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Implement this method to handle generic motion events.
			 * @param event The generic motion event being processed.
			 */
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Implement this method to handle hover events.
			 * @param event The motion event that describes the hover.
			 */
			public onHoverEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Returns true if the view is currently hovered.
			 */
			public isHovered(): boolean;
			/**
			 * Sets whether the view is currently hovered.
			 * @param hovered True if the view is hovered.
			 */
			public setHovered(hovered: boolean): void;
			/**
			 * Implement this method to handle hover state changes.
			 * @param hovered The current hover state, as returned by {@link #isHovered}.
			 */
			public onHoverChanged(hovered: boolean): void;
			/**
			 * Implement this method to handle touch screen motion events.
			 * @param event The motion event.
			 */
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Cancels a pending long press. Your subclass can use this if you want the context menu to come up if the user presses and holds at the same place, but you don't want it to come up if they press and then move around enough to cause scrolling.
			 */
			public cancelLongPress(): void;
			/**
			 * Sets the TouchDelegate for this View.
			 */
			public setTouchDelegate(delegate: android.view.TouchDelegate): void;
			/**
			 * Gets the TouchDelegate for this View.
			 */
			public getTouchDelegate(): android.view.TouchDelegate;
			/**
			 * Set flags controlling behavior of this view.
			 * @param flags Constant indicating the value which should be set
			 * @param mask Constant indicating the bit range that should be changed
			 */
			setFlags(flags: number, mask: number): void;
			/**
			 * Change the view's z order in the tree, so it's on top of other sibling views
			 */
			public bringToFront(): void;
			/**
			 * This is called in response to an internal scroll in this view (i.e., the view scrolled its own contents). This is typically as a result of #scrollBy(int, int) or #scrollTo(int, int) having been called.
			 * @param l Current horizontal scroll origin.
			 * @param t Current vertical scroll origin.
			 * @param oldl Previous horizontal scroll origin.
			 * @param oldt Previous vertical scroll origin.
			 */
			protected onScrollChanged(l: number, t: number, oldl: number, oldt: number): void;
			/**
			 * This is called during layout when the size of this view has changed. If you were just added to the view hierarchy, you're called with the old values of 0.
			 * @param w Current width of this view.
			 * @param h Current height of this view.
			 * @param oldw Old width of this view.
			 * @param oldh Old height of this view.
			 */
			protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
			/**
			 * Called by draw to draw the child views. This may be overridden by derived classes to gain control just before its children are drawn (but after its own view has been drawn).
			 * @param canvas the canvas on which to draw the view
			 */
			protected dispatchDraw(canvas: android.graphics.Canvas): void;
			/**
			 * Gets the parent of this view. Note that the parent is a ViewParent and not necessarily a View.
			 */
			public getParent(): android.view.IViewParent;
			/**
			 * Set the horizontal scrolled position of your view. This will cause a call to #onScrollChanged(int, int, int, int) and the view will be invalidated.
			 * @param value the x position to scroll to
			 */
			public setScrollX(value: number): void;
			/**
			 * Set the vertical scrolled position of your view. This will cause a call to #onScrollChanged(int, int, int, int) and the view will be invalidated.
			 * @param value the y position to scroll to
			 */
			public setScrollY(value: number): void;
			/**
			 * Return the scrolled left position of this view. This is the left edge of the displayed part of your view. You do not need to draw any pixels farther left, since those are outside of the frame of your view on screen.
			 */
			public getScrollX(): number;
			/**
			 * Return the scrolled top position of this view. This is the top edge of the displayed part of your view. You do not need to draw any pixels above it, since those are outside of the frame of your view on screen.
			 */
			public getScrollY(): number;
			/**
			 * Return the width of the your view.
			 */
			public getWidth(): number;
			/**
			 * Return the height of your view.
			 */
			public getHeight(): number;
			/**
			 * Return the visible drawing bounds of your view. Fills in the output rectangle with the values from getScrollX(), getScrollY(), getWidth(), and getHeight(). These bounds do not account for any transformation properties currently set on the view, such as #setScaleX(float) or #setRotation(float).
			 * @param outRect The (scrolled) drawing bounds of the view.
			 */
			public getDrawingRect(outRect: android.graphics.Rect): void;
			/**
			 * Like #getMeasuredWidthAndState(), but only returns the raw width component (that is the result is masked by #MEASURED_SIZE_MASK).
			 */
			public getMeasuredWidth(): number;
			/**
			 * Return the full width measurement information for this view as computed by the most recent call to #measure(int, int). This result is a bit mask as defined by #MEASURED_SIZE_MASK and #MEASURED_STATE_TOO_SMALL. This should be used during measurement and layout calculations only. Use #getWidth() to see how wide a view is after layout.
			 */
			public getMeasuredWidthAndState(): number;
			/**
			 * Like #getMeasuredHeightAndState(), but only returns the raw width component (that is the result is masked by #MEASURED_SIZE_MASK).
			 */
			public getMeasuredHeight(): number;
			/**
			 * Return the full height measurement information for this view as computed by the most recent call to #measure(int, int). This result is a bit mask as defined by #MEASURED_SIZE_MASK and #MEASURED_STATE_TOO_SMALL. This should be used during measurement and layout calculations only. Use #getHeight() to see how wide a view is after layout.
			 */
			public getMeasuredHeightAndState(): number;
			/**
			 * Return only the state bits of #getMeasuredWidthAndState() and #getMeasuredHeightAndState(), combined into one integer. The width component is in the regular bits #MEASURED_STATE_MASK and the height component is at the shifted bits #MEASURED_HEIGHT_STATE_SHIFT>>#MEASURED_STATE_MASK.
			 */
			public getMeasuredState(): number;
			/**
			 * The transform matrix of this view, which is calculated based on the current roation, scale, and pivot properties.
			 */
			public getMatrix(): android.graphics.Matrix;
			/**
			 * Returns true if the transform matrix is the identity matrix. Recomputes the matrix if necessary.
			 */
			hasIdentityMatrix(): boolean;
			ensureTransformationInfo(): void;
			/**
			 * Utility method to retrieve the inverse of the current mMatrix property. We cache the matrix to avoid recalculating it when transform properties have not changed.
			 */
			getInverseMatrix(): android.graphics.Matrix;
			/**
			 * Gets the distance along the Z axis from the camera to this view.
			 */
			public getCameraDistance(): number;
			/**
			 * @param distance The distance in "depth pixels", if negative the opposite
			 */
			public setCameraDistance(distance: number): void;
			/**
			 * The degrees that the view is rotated around the pivot point.
			 */
			public getRotation(): number;
			/**
			 * Sets the degrees that the view is rotated around the pivot point. Increasing values result in clockwise rotation.
			 * @param rotation The degrees of rotation.
			 */
			public setRotation(rotation: number): void;
			/**
			 * The degrees that the view is rotated around the vertical axis through the pivot point.
			 */
			public getRotationY(): number;
			/**
			 * Sets the degrees that the view is rotated around the vertical axis through the pivot point. Increasing values result in counter-clockwise rotation from the viewpoint of looking down the y axis.
			 * @param rotationY The degrees of Y rotation.
			 */
			public setRotationY(rotationY: number): void;
			/**
			 * The degrees that the view is rotated around the horizontal axis through the pivot point.
			 */
			public getRotationX(): number;
			/**
			 * Sets the degrees that the view is rotated around the horizontal axis through the pivot point. Increasing values result in clockwise rotation from the viewpoint of looking down the x axis.
			 * @param rotationX The degrees of X rotation.
			 */
			public setRotationX(rotationX: number): void;
			/**
			 * The amount that the view is scaled in x around the pivot point, as a proportion of the view's unscaled width. A value of 1, the default, means that no scaling is applied.
			 */
			public getScaleX(): number;
			/**
			 * Sets the amount that the view is scaled in x around the pivot point, as a proportion of the view's unscaled width. A value of 1 means that no scaling is applied.
			 * @param scaleX The scaling factor.
			 */
			public setScaleX(scaleX: number): void;
			/**
			 * The amount that the view is scaled in y around the pivot point, as a proportion of the view's unscaled height. A value of 1, the default, means that no scaling is applied.
			 */
			public getScaleY(): number;
			/**
			 * Sets the amount that the view is scaled in Y around the pivot point, as a proportion of the view's unscaled width. A value of 1 means that no scaling is applied.
			 * @param scaleY The scaling factor.
			 */
			public setScaleY(scaleY: number): void;
			/**
			 * The x location of the point around which the view is #setRotation(float) rotated and #setScaleX(float) scaled.
			 */
			public getPivotX(): number;
			/**
			 * Sets the x location of the point around which the view is #setRotation(float) rotated and #setScaleX(float) scaled. By default, the pivot point is centered on the object. Setting this property disables this behavior and causes the view to use only the explicitly set pivotX and pivotY values.
			 * @param pivotX The x location of the pivot point.
			 */
			public setPivotX(pivotX: number): void;
			/**
			 * The y location of the point around which the view is #setRotation(float) rotated and #setScaleY(float) scaled.
			 */
			public getPivotY(): number;
			/**
			 * Sets the y location of the point around which the view is #setRotation(float) rotated and #setScaleY(float) scaled. By default, the pivot point is centered on the object. Setting this property disables this behavior and causes the view to use only the explicitly set pivotX and pivotY values.
			 * @param pivotY The y location of the pivot point.
			 */
			public setPivotY(pivotY: number): void;
			/**
			 * The opacity of the view. This is a value from 0 to 1, where 0 means the view is completely transparent and 1 means the view is completely opaque.
			 */
			public getAlpha(): number;
			/**
			 * Returns whether this View has content which overlaps. This function, intended to be overridden by specific View types, is an optimization when alpha is set on a view. If rendering overlaps in a view with alpha < 1, that view is drawn to an offscreen buffer and then composited it into place, which can be expensive. If the view has no overlapping rendering, the view can draw each primitive with the appropriate alpha value directly. An example of overlapping rendering is a TextView with a background image, such as a Button. An example of non-overlapping rendering is a TextView with no background, or an ImageView with only the foreground image. The default implementation returns true; subclasses should override if they have cases which can be optimized.
			 */
			public hasOverlappingRendering(): boolean;
			/**
			 * @param alpha The opacity of the view.
			 */
			public setAlpha(alpha: number): void;
			/**
			 * Faster version of setAlpha() which performs the same steps except there are no calls to invalidate(). The caller of this function should perform proper invalidation on the parent and this object. The return value indicates whether the subclass handles alpha (the return value for onSetAlpha()).
			 * @param alpha The new value for the alpha property
			 */
			setAlphaNoInvalidation(alpha: number): boolean;
			/**
			 * Top position of this view relative to its parent.
			 */
			public getTop(): number;
			/**
			 * Sets the top position of this view relative to its parent. This method is meant to be called by the layout system and should not generally be called otherwise, because the property may be changed at any time by the layout.
			 * @param top The top of this view, in pixels.
			 */
			public setTop(top: number): void;
			/**
			 * Bottom position of this view relative to its parent.
			 */
			public getBottom(): number;
			/**
			 * True if this view has changed since the last time being drawn.
			 */
			public isDirty(): boolean;
			/**
			 * Sets the bottom position of this view relative to its parent. This method is meant to be called by the layout system and should not generally be called otherwise, because the property may be changed at any time by the layout.
			 * @param bottom The bottom of this view, in pixels.
			 */
			public setBottom(bottom: number): void;
			/**
			 * Left position of this view relative to its parent.
			 */
			public getLeft(): number;
			/**
			 * Sets the left position of this view relative to its parent. This method is meant to be called by the layout system and should not generally be called otherwise, because the property may be changed at any time by the layout.
			 * @param left The bottom of this view, in pixels.
			 */
			public setLeft(left: number): void;
			/**
			 * Right position of this view relative to its parent.
			 */
			public getRight(): number;
			/**
			 * Sets the right position of this view relative to its parent. This method is meant to be called by the layout system and should not generally be called otherwise, because the property may be changed at any time by the layout.
			 * @param right The bottom of this view, in pixels.
			 */
			public setRight(right: number): void;
			/**
			 * The visual x position of this view, in pixels. This is equivalent to the #setTranslationX(float) translationX property plus the current #getLeft() left property.
			 */
			public getX(): number;
			/**
			 * Sets the visual x position of this view, in pixels. This is equivalent to setting the #setTranslationX(float) translationX property to be the difference between the x value passed in and the current #getLeft() left property.
			 * @param x The visual x position of this view, in pixels.
			 */
			public setX(x: number): void;
			/**
			 * The visual y position of this view, in pixels. This is equivalent to the #setTranslationY(float) translationY property plus the current #getTop() top property.
			 */
			public getY(): number;
			/**
			 * Sets the visual y position of this view, in pixels. This is equivalent to setting the #setTranslationY(float) translationY property to be the difference between the y value passed in and the current #getTop() top property.
			 * @param y The visual y position of this view, in pixels.
			 */
			public setY(y: number): void;
			/**
			 * The horizontal location of this view relative to its #getLeft() left position. This position is post-layout, in addition to wherever the object's layout placed it.
			 */
			public getTranslationX(): number;
			/**
			 * Sets the horizontal location of this view relative to its #getLeft() left position. This effectively positions the object post-layout, in addition to wherever the object's layout placed it.
			 * @param translationX The horizontal position of this view relative to its left position,
			 */
			public setTranslationX(translationX: number): void;
			/**
			 * The horizontal location of this view relative to its #getTop() top position. This position is post-layout, in addition to wherever the object's layout placed it.
			 */
			public getTranslationY(): number;
			/**
			 * Sets the vertical location of this view relative to its #getTop() top position. This effectively positions the object post-layout, in addition to wherever the object's layout placed it.
			 * @param translationY The vertical position of this view relative to its top position,
			 */
			public setTranslationY(translationY: number): void;
			/**
			 * Hit rectangle in parent's coordinates
			 * @param outRect The hit rectangle of the view.
			 */
			public getHitRect(outRect: android.graphics.Rect): void;
			/**
			 * Determines whether the given point, in local coordinates is inside the view.
			 */
			pointInView(localX: number, localY: number): boolean;
			/**
			 * When a view has focus and the user navigates away from it, the next view is searched for starting from the rectangle filled in by this method.
			 * @param r The rectangle to fill in, in this view's coordinates.
			 */
			public getFocusedRect(r: android.graphics.Rect): void;
			/**
			 * If some part of this view is not clipped by any of its parents, then return that area in r in global (root) coordinates. To convert r to local coordinates (without taking possible View rotations into account), offset it by -globalOffset (e.g. r.offset(-globalOffset.x, -globalOffset.y)). If the view is completely clipped or translated out, return false.
			 * @param r If true is returned, r holds the global coordinates of the
			 * @param globalOffset If true is returned, globalOffset holds the dx,dy
			 */
			public getGlobalVisibleRect(r: android.graphics.Rect, globalOffset: android.graphics.Point): boolean;
			public getGlobalVisibleRect(r: android.graphics.Rect): boolean;
			public getLocalVisibleRect(r: android.graphics.Rect): boolean;
			/**
			 * Offset this view's vertical location by the specified number of pixels.
			 * @param offset the number of pixels to offset the view by
			 */
			public offsetTopAndBottom(offset: number): void;
			/**
			 * Offset this view's horizontal location by the specified amount of pixels.
			 * @param offset the numer of pixels to offset the view by
			 */
			public offsetLeftAndRight(offset: number): void;
			/**
			 * Get the LayoutParams associated with this view. All views should have layout parameters. These supply parameters to the <i>parent</i> of this view specifying how it should be arranged. There are many subclasses of ViewGroup.LayoutParams, and these correspond to the different subclasses of ViewGroup that are responsible for arranging their children.
			 */
			public getLayoutParams(): android.view.ViewGroup.LayoutParams;
			/**
			 * Set the layout parameters associated with this view. These supply parameters to the <i>parent</i> of this view specifying how it should be arranged. There are many subclasses of ViewGroup.LayoutParams, and these correspond to the different subclasses of ViewGroup that are responsible for arranging their children.
			 * @param params The layout parameters for this view, cannot be null
			 */
			public setLayoutParams(params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Set the scrolled position of your view. This will cause a call to #onScrollChanged(int, int, int, int) and the view will be invalidated.
			 * @param x the x position to scroll to
			 * @param y the y position to scroll to
			 */
			public scrollTo(x: number, y: number): void;
			/**
			 * Move the scrolled position of your view. This will cause a call to #onScrollChanged(int, int, int, int) and the view will be invalidated.
			 * @param x the amount of pixels to scroll by horizontally
			 * @param y the amount of pixels to scroll by vertically
			 */
			public scrollBy(x: number, y: number): void;
			protected awakenScrollBars(): boolean;
			/**
			 * @param startDelay the delay, in milliseconds, after which the animation
			 */
			protected awakenScrollBars(startDelay: number): boolean;
			/**
			 * @param startDelay the delay, in milliseconds, after which the animation
			 * @param invalidate Wheter this method should call invalidate
			 */
			protected awakenScrollBars(startDelay: number, invalidate: boolean): boolean;
			/**
			 * Mark the area defined by dirty as needing to be drawn. If the view is visible, #onDraw(android.graphics.Canvas) will be called at some point in the future. This must be called from a UI thread. To call from a non-UI thread, call #postInvalidate().
			 * @param dirty the rectangle representing the bounds of the dirty region
			 */
			public invalidate(dirty: android.graphics.Rect): void;
			/**
			 * Mark the area defined by the rect (l,t,r,b) as needing to be drawn. The coordinates of the dirty rect are relative to the view. If the view is visible, #onDraw(android.graphics.Canvas) will be called at some point in the future. This must be called from a UI thread. To call from a non-UI thread, call #postInvalidate().
			 * @param l the left position of the dirty region
			 * @param t the top position of the dirty region
			 * @param r the right position of the dirty region
			 * @param b the bottom position of the dirty region
			 */
			public invalidate(l: number, t: number, r: number, b: number): void;
			/**
			 * Invalidate the whole view. If the view is visible, #onDraw(android.graphics.Canvas) will be called at some point in the future. This must be called from a UI thread. To call from a non-UI thread, call #postInvalidate().
			 */
			public invalidate(): void;
			/**
			 * This is where the invalidate() work actually happens. A full invalidate() causes the drawing cache to be invalidated, but this function can be called with invalidateCache set to false to skip that invalidation step for cases that do not need it (for example, a component that remains at the same dimensions with the same content).
			 * @param invalidateCache Whether the drawing cache for this view should be invalidated as
			 */
			invalidate(invalidateCache: boolean): void;
			/**
			 * Quick invalidation for View property changes (alpha, translationXY, etc.). We don't want to set any flags or handle all of the cases handled by the default invalidation methods. Instead, we just want to schedule a traversal in ViewRootImpl with the appropriate dirty rect. This method calls into fast invalidation methods in ViewGroup that walk up the hierarchy, transforming the dirty rect as necessary.
			 * @param invalidateParent Force a call to invalidateParentCaches() if display list properties
			 * @param forceRedraw Mark the view as DRAWN to force the invalidation to propagate, if display
			 */
			invalidateViewProperty(invalidateParent: boolean, forceRedraw: boolean): void;
			/**
			 * Utility method to transform a given Rect by the current matrix of this view.
			 */
			transformRect(rect: android.graphics.Rect): void;
			/**
			 * Indicates whether this View is opaque. An opaque View guarantees that it will draw all the pixels overlapping its bounds using a fully opaque color.
			 */
			public isOpaque(): boolean;
			public getHandler(): android.os.Handler;
			/**
			 * @param action The Runnable that will be executed.
			 */
			public post(action: java.lang.IRunnable): boolean;
			/**
			 * @param action The Runnable that will be executed.
			 * @param delayMillis The delay (in milliseconds) until the Runnable
			 */
			public postDelayed(action: java.lang.IRunnable, delayMillis: number): boolean;
			/**
			 * @param action The Runnable that will be executed.
			 */
			public postOnAnimation(action: java.lang.IRunnable): void;
			/**
			 * @param action The Runnable that will be executed.
			 * @param delayMillis The delay (in milliseconds) until the Runnable
			 */
			public postOnAnimationDelayed(action: java.lang.IRunnable, delayMillis: number): void;
			/**
			 * @param action The Runnable to remove from the message handling queue
			 */
			public removeCallbacks(action: java.lang.IRunnable): boolean;
			public postInvalidate(): void;
			/**
			 * @param left The left coordinate of the rectangle to invalidate.
			 * @param top The top coordinate of the rectangle to invalidate.
			 * @param right The right coordinate of the rectangle to invalidate.
			 * @param bottom The bottom coordinate of the rectangle to invalidate.
			 */
			public postInvalidate(left: number, top: number, right: number, bottom: number): void;
			/**
			 * @param delayMilliseconds the duration in milliseconds to delay the
			 */
			public postInvalidateDelayed(delayMilliseconds: number): void;
			/**
			 * @param delayMilliseconds the duration in milliseconds to delay the
			 * @param left The left coordinate of the rectangle to invalidate.
			 * @param top The top coordinate of the rectangle to invalidate.
			 * @param right The right coordinate of the rectangle to invalidate.
			 * @param bottom The bottom coordinate of the rectangle to invalidate.
			 */
			public postInvalidateDelayed(delayMilliseconds: number, left: number, top: number, right: number, bottom: number): void;
			public postInvalidateOnAnimation(): void;
			/**
			 * @param left The left coordinate of the rectangle to invalidate.
			 * @param top The top coordinate of the rectangle to invalidate.
			 * @param right The right coordinate of the rectangle to invalidate.
			 * @param bottom The bottom coordinate of the rectangle to invalidate.
			 */
			public postInvalidateOnAnimation(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Called by a parent to request that a child update its values for mScrollX and mScrollY if necessary. This will typically be done if the child is animating a scroll using a android.widget.Scroller Scroller object.
			 */
			public computeScroll(): void;
			public isHorizontalFadingEdgeEnabled(): boolean;
			/**
			 * @param horizontalFadingEdgeEnabled true if the horizontal edges should
			 */
			public setHorizontalFadingEdgeEnabled(horizontalFadingEdgeEnabled: boolean): void;
			public isVerticalFadingEdgeEnabled(): boolean;
			/**
			 * @param verticalFadingEdgeEnabled true if the vertical edges should
			 */
			public setVerticalFadingEdgeEnabled(verticalFadingEdgeEnabled: boolean): void;
			/**
			 * Returns the strength, or intensity, of the top faded edge. The strength is a value between 0.0 (no fade) and 1.0 (full fade). The default implementation returns 0.0 or 1.0 but no value in between.
			 */
			protected getTopFadingEdgeStrength(): number;
			/**
			 * Returns the strength, or intensity, of the bottom faded edge. The strength is a value between 0.0 (no fade) and 1.0 (full fade). The default implementation returns 0.0 or 1.0 but no value in between.
			 */
			protected getBottomFadingEdgeStrength(): number;
			/**
			 * Returns the strength, or intensity, of the left faded edge. The strength is a value between 0.0 (no fade) and 1.0 (full fade). The default implementation returns 0.0 or 1.0 but no value in between.
			 */
			protected getLeftFadingEdgeStrength(): number;
			/**
			 * Returns the strength, or intensity, of the right faded edge. The strength is a value between 0.0 (no fade) and 1.0 (full fade). The default implementation returns 0.0 or 1.0 but no value in between.
			 */
			protected getRightFadingEdgeStrength(): number;
			public isHorizontalScrollBarEnabled(): boolean;
			/**
			 * @param horizontalScrollBarEnabled true if the horizontal scrollbar should
			 */
			public setHorizontalScrollBarEnabled(horizontalScrollBarEnabled: boolean): void;
			public isVerticalScrollBarEnabled(): boolean;
			/**
			 * @param verticalScrollBarEnabled true if the vertical scrollbar should
			 */
			public setVerticalScrollBarEnabled(verticalScrollBarEnabled: boolean): void;
			/**
			 * Define whether scrollbars will fade when the view is not scrolling.
			 * @param fadeScrollbars wheter to enable fading
			 */
			public setScrollbarFadingEnabled(fadeScrollbars: boolean): void;
			public isScrollbarFadingEnabled(): boolean;
			public getScrollBarDefaultDelayBeforeFade(): number;
			/**
			 * Define the delay before scrollbars fade.
			 * @param scrollBarDefaultDelayBeforeFade - the delay before scrollbars fade
			 */
			public setScrollBarDefaultDelayBeforeFade(scrollBarDefaultDelayBeforeFade: number): void;
			public getScrollBarFadeDuration(): number;
			/**
			 * Define the scrollbar fade duration.
			 * @param scrollBarFadeDuration - the scrollbar fade duration
			 */
			public setScrollBarFadeDuration(scrollBarFadeDuration: number): void;
			public getScrollBarSize(): number;
			/**
			 * Define the scrollbar size.
			 * @param scrollBarSize - the scrollbar size
			 */
			public setScrollBarSize(scrollBarSize: number): void;
			/**
			 * @param style the style of the scrollbars. Should be one of
			 */
			public setScrollBarStyle(style: number): void;
			public getScrollBarStyle(): number;
			protected computeHorizontalScrollRange(): number;
			protected computeHorizontalScrollOffset(): number;
			protected computeHorizontalScrollExtent(): number;
			protected computeVerticalScrollRange(): number;
			protected computeVerticalScrollOffset(): number;
			protected computeVerticalScrollExtent(): number;
			/**
			 * Check if this view can be scrolled horizontally in a certain direction.
			 * @param direction Negative to check scrolling left, positive to check scrolling right.
			 */
			public canScrollHorizontally(direction: number): boolean;
			/**
			 * Check if this view can be scrolled vertically in a certain direction.
			 * @param direction Negative to check scrolling up, positive to check scrolling down.
			 */
			public canScrollVertically(direction: number): boolean;
			/**
			 * @param canvas the canvas on which to draw the scrollbars
			 */
			protected onDrawScrollBars(canvas: android.graphics.Canvas): void;
			/**
			 * Implement this to do your drawing.
			 * @param canvas the canvas on which the background will be drawn
			 */
			protected onDraw(canvas: android.graphics.Canvas): void;
			assignParent(parent: android.view.IViewParent): void;
			/**
			 * This is called when the view is attached to a window. At this point it has a Surface and will start drawing. Note that this function is guaranteed to be called before #onDraw(android.graphics.Canvas), however it may be called any time before the first onDraw -- including before or after #onMeasure(int, int).
			 */
			protected onAttachedToWindow(): void;
			/**
			 *  #onScreenStateChanged(int)
			 */
			dispatchScreenStateChanged(screenState: number): void;
			/**
			 * This method is called whenever the state of the screen this view is attached to changes. A state change will usually occurs when the screen turns on or off (whether it happens automatically or the user does it manually.)
			 * @param screenState The new state of the screen. Can be either
			 */
			public onScreenStateChanged(screenState: number): void;
			/**
			 * Called when any RTL property (layout direction or text direction or text alignment) has been changed.
			 * @param layoutDirection the direction of the layout
			 */
			public onRtlPropertiesChanged(layoutDirection: number): void;
			/**
			 * This is called when the view is detached from a window. At this point it no longer has a surface for drawing.
			 */
			protected onDetachedFromWindow(): void;
			protected getWindowAttachCount(): number;
			/**
			 * Retrieve a unique token identifying the window this view is attached to.
			 */
			public getWindowToken(): android.os.IIBinder;
			/**
			 * Retrieve a unique token identifying the top-level "real" window of the window that this view is attached to. That is, this is like #getWindowToken, except if the window this view in is a panel window (attached to another containing window), then the token of the containing window is returned instead.
			 */
			public getApplicationWindowToken(): android.os.IIBinder;
			/**
			 * Gets the logical display to which the view's window has been attached.
			 */
			public getDisplay(): android.view.Display;
			/**
			 * @param info the {@link android.view.View.AttachInfo} to associated with
			 * @param visibility 
			 */
			dispatchAttachedToWindow(info: android.view.View.AttachInfo, visibility: number): void;
			dispatchDetachedFromWindow(): void;
			/**
			 * Store this view hierarchy's frozen state into the given container.
			 * @param container The SparseArray in which to save the view's state.
			 */
			public saveHierarchyState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Called by #saveHierarchyState(android.util.SparseArray) to store the state for this view and its children. May be overridden to modify how freezing happens to a view's children; for example, some views may want to not store state for their children.
			 * @param container The SparseArray in which to save the view's state.
			 */
			protected dispatchSaveInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Hook allowing a view to generate a representation of its internal state that can later be used to create a new instance with that same state. This state should only contain information that is not persistent or can not be reconstructed later. For example, you will never store your current position on screen because that will be computed again when a new instance of the view is placed in its view hierarchy.
			 */
			protected onSaveInstanceState(): android.os.IParcelable;
			/**
			 * Restore this view hierarchy's frozen state from the given container.
			 * @param container The SparseArray which holds previously frozen states.
			 */
			public restoreHierarchyState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Called by #restoreHierarchyState(android.util.SparseArray) to retrieve the state for this view and its children. May be overridden to modify how restoring happens to a view's children; for example, some views may want to not store state for their children.
			 * @param container The SparseArray which holds previously saved state.
			 */
			protected dispatchRestoreInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Hook allowing a view to re-apply a representation of its internal state that had previously been generated by #onSaveInstanceState. This function will never be called with a null state.
			 * @param state The frozen state that had previously been returned by
			 */
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
			public getDrawingTime(): any;
			/**
			 * @param enabled True to enable duplication of the parent's drawable state, false
			 */
			public setDuplicateParentStateEnabled(enabled: boolean): void;
			public isDuplicateParentStateEnabled(): boolean;
			/**
			 * @param layerType The type of layer to use with this view, must be one of
			 * @param paint The paint used to compose the layer. This argument is optional
			 */
			public setLayerType(layerType: number, paint: android.graphics.Paint): void;
			/**
			 * Updates the Paint object used with the current layer (used only if the current layer type is not set to #LAYER_TYPE_NONE). Changed properties of the Paint provided to #setLayerType(int, android.graphics.Paint) will be used the next time the View is redrawn, but #setLayerPaint(android.graphics.Paint) must be called to ensure that the view gets redrawn immediately.
			 * @param paint The paint used to compose the layer. This argument is optional
			 */
			public setLayerPaint(paint: android.graphics.Paint): void;
			/**
			 * Indicates whether this view has a static layer. A view with layer type #LAYER_TYPE_NONE is a static layer. Other types of layers are dynamic.
			 */
			hasStaticLayer(): boolean;
			/**
			 * Indicates what type of layer is currently associated with this view. By default a view does not have a layer, and the layer type is #LAYER_TYPE_NONE. Refer to the documentation of #setLayerType(int, android.graphics.Paint) for more information on the different types of layers.
			 */
			public getLayerType(): number;
			/**
			 * Forces this view's layer to be created and this view to be rendered into its layer. If this view's layer type is set to #LAYER_TYPE_NONE, invoking this method will have no effect.
			 */
			public buildLayer(): void;
			getHardwareLayer(): android.view.HardwareLayer;
			/**
			 * Destroys this View's hardware layer if possible.
			 */
			destroyLayer(valid: boolean): boolean;
			/**
			 * @param enabled true to enable the drawing cache, false otherwise
			 */
			public setDrawingCacheEnabled(enabled: boolean): void;
			public isDrawingCacheEnabled(): boolean;
			public getDrawingCache(): android.graphics.Bitmap;
			/**
			 * @param autoScale Indicates whether the generated bitmap should be scaled based on
			 */
			public getDrawingCache(autoScale: boolean): android.graphics.Bitmap;
			public destroyDrawingCache(): void;
			/**
			 * Setting a solid background color for the drawing cache's bitmaps will improve performance and memory usage. Note, though that this should only be used if this view will always be drawn on top of a solid color.
			 * @param color The background color to use for the drawing cache's bitmap
			 */
			public setDrawingCacheBackgroundColor(color: number): void;
			/**
			 *  #setDrawingCacheBackgroundColor(int)
			 */
			public getDrawingCacheBackgroundColor(): number;
			public buildDrawingCache(): void;
			public buildDrawingCache(autoScale: boolean): void;
			/**
			 * Create a snapshot of the view into a bitmap. We should probably make some form of this public, but should think about the API.
			 */
			createSnapshot(quality: android.graphics.Bitmap.Config, backgroundColor: number, skipChildren: boolean): android.graphics.Bitmap;
			/**
			 * Indicates whether this View is currently in edit mode. A View is usually in edit mode when displayed within a developer tool. For instance, if this View is being drawn by a visual user interface builder, this method should return true.
			 */
			public isInEditMode(): boolean;
			/**
			 * If the View draws content inside its padding and enables fading edges, it needs to support padding offsets. Padding offsets are added to the fading edges to extend the length of the fade so that it covers pixels drawn inside the padding.
			 */
			protected isPaddingOffsetRequired(): boolean;
			/**
			 * Amount by which to extend the left fading region. Called only when #isPaddingOffsetRequired() returns true.
			 */
			protected getLeftPaddingOffset(): number;
			/**
			 * Amount by which to extend the right fading region. Called only when #isPaddingOffsetRequired() returns true.
			 */
			protected getRightPaddingOffset(): number;
			/**
			 * Amount by which to extend the top fading region. Called only when #isPaddingOffsetRequired() returns true.
			 */
			protected getTopPaddingOffset(): number;
			/**
			 * Amount by which to extend the bottom fading region. Called only when #isPaddingOffsetRequired() returns true.
			 */
			protected getBottomPaddingOffset(): number;
			public isHardwareAccelerated(): boolean;
			/**
			 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
			 */
			draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
			/**
			 * Manually render this view (and all of its children) to the given Canvas. The view must have already done a full layout before this function is called. When implementing a view, implement #onDraw(android.graphics.Canvas) instead of overriding this method. If you do need to override this method, call the superclass version.
			 * @param canvas The Canvas to which the View is rendered.
			 */
			public draw(canvas: android.graphics.Canvas): void;
			/**
			 * Override this if your view is known to always be drawn on top of a solid color background, and needs to draw fading edges. Returning a non-zero color enables the view system to optimize the drawing of the fading edges. If you do return a non-zero color, the alpha should be set to 0xFF.
			 */
			public getSolidColor(): number;
			public isLayoutRequested(): boolean;
			/**
			 * Assign a size and position to a view and all of its descendants
			 * @param l Left position, relative to parent
			 * @param t Top position, relative to parent
			 * @param r Right position, relative to parent
			 * @param b Bottom position, relative to parent
			 */
			public layout(l: number, t: number, r: number, b: number): void;
			/**
			 * Called from layout when this view should assign a size and position to each of its children.
			 * @param changed This is a new size or position for this view
			 * @param left Left position, relative to parent
			 * @param top Top position, relative to parent
			 * @param right Right position, relative to parent
			 * @param bottom Bottom position, relative to parent
			 */
			protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
			/**
			 * Finalize inflating a view from XML. This is called as the last phase of inflation, after all child views have been added.
			 */
			protected onFinishInflate(): void;
			/**
			 * Returns the resources associated with this view.
			 */
			public getResources(): android.content.res.Resources;
			/**
			 * Invalidates the specified Drawable.
			 * @param drawable the drawable to invalidate
			 */
			public invalidateDrawable(drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Schedules an action on a drawable to occur at a specified time.
			 * @param who the recipient of the action
			 * @param what the action to run on the drawable
			 * @param when the time at which the action must occur. Uses the
			 */
			public scheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable, when: number): void;
			/**
			 * Cancels a scheduled action on a drawable.
			 * @param who the recipient of the action
			 * @param what the action to cancel
			 */
			public unscheduleDrawable(who: android.graphics.drawable.Drawable, what: java.lang.IRunnable): void;
			/**
			 * Unschedule any events associated with the given Drawable. This can be used when selecting a new Drawable into a view, so that the previous one is completely unscheduled.
			 * @param who The Drawable to unschedule.
			 */
			public unscheduleDrawable(who: android.graphics.drawable.Drawable): void;
			/**
			 * If your view subclass is displaying its own Drawable objects, it should override this function and return true for any Drawable it is displaying. This allows animations for those drawables to be scheduled.
			 * @param who The Drawable to verify. Return true if it is one you are
			 */
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			/**
			 * This function is called whenever the state of the view changes in such a way that it impacts the state of drawables being shown.
			 */
			protected drawableStateChanged(): void;
			/**
			 * Call this to force a view to update its drawable state. This will cause drawableStateChanged to be called on this view. Views that are interested in the new state should call getDrawableState.
			 */
			public refreshDrawableState(): void;
			/**
			 * Return an array of resource IDs of the drawable states representing the current state of the view.
			 */
			public getDrawableState(): native.Array<number>;
			/**
			 * Generate the new android.graphics.drawable.Drawable state for this view. This is called by the view system when the cached Drawable state is determined to be invalid. To retrieve the current state, you should use #getDrawableState.
			 * @param extraSpace if non-zero, this is the number of extra entries you
			 */
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			/**
			 * Merge your own state values in <var>additionalState</var> into the base state values <var>baseState</var> that were returned by #onCreateDrawableState(int).
			 * @param baseState The base state values returned by
			 * @param additionalState The additional state values you would like
			 */
			protected static mergeDrawableStates(baseState: native.Array<number>, additionalState: native.Array<number>): native.Array<number>;
			/**
			 * Call Drawable#jumpToCurrentState() Drawable.jumpToCurrentState() on all Drawable objects associated with this view.
			 */
			public jumpDrawablesToCurrentState(): void;
			/**
			 * Sets the background color for this view.
			 * @param color the color of the background
			 */
			public setBackgroundColor(color: number): void;
			/**
			 * Set the background to a given resource. The resource should refer to a Drawable object or 0 to remove the background.
			 * @param resid The identifier of the resource.
			 */
			public setBackgroundResource(resid: number): void;
			/**
			 * Set the background to a given Drawable, or remove the background. If the background has padding, this View's padding is set to the background's padding. However, when a background is removed, this View's padding isn't touched. If setting the padding is desired, please use #setPadding(int, int, int, int).
			 * @param background The Drawable to use as the background, or null to remove the
			 */
			public setBackground(background: android.graphics.drawable.Drawable): void;
			/**
			 *  use #setBackground(Drawable) instead
			 */
			public setBackgroundDrawable(background: android.graphics.drawable.Drawable): void;
			/**
			 * Gets the background drawable
			 */
			public getBackground(): android.graphics.drawable.Drawable;
			/**
			 * Sets the padding. The view may add on the space required to display the scrollbars, depending on the style and visibility of the scrollbars. So the values returned from #getPaddingLeft, #getPaddingTop, #getPaddingRight and #getPaddingBottom may be different from the values set in this call.
			 * @param left the left padding in pixels
			 * @param top the top padding in pixels
			 * @param right the right padding in pixels
			 * @param bottom the bottom padding in pixels
			 */
			public setPadding(left: number, top: number, right: number, bottom: number): void;
			/**
			 * Sets the relative padding. The view may add on the space required to display the scrollbars, depending on the style and visibility of the scrollbars. So the values returned from #getPaddingStart, #getPaddingTop, #getPaddingEnd and #getPaddingBottom may be different from the values set in this call.
			 * @param start the start padding in pixels
			 * @param top the top padding in pixels
			 * @param end the end padding in pixels
			 * @param bottom the bottom padding in pixels
			 */
			public setPaddingRelative(start: number, top: number, end: number, bottom: number): void;
			/**
			 * Returns the top padding of this view.
			 */
			public getPaddingTop(): number;
			/**
			 * Returns the bottom padding of this view. If there are inset and enabled scrollbars, this value may include the space required to display the scrollbars as well.
			 */
			public getPaddingBottom(): number;
			/**
			 * Returns the left padding of this view. If there are inset and enabled scrollbars, this value may include the space required to display the scrollbars as well.
			 */
			public getPaddingLeft(): number;
			/**
			 * Returns the start padding of this view depending on its resolved layout direction. If there are inset and enabled scrollbars, this value may include the space required to display the scrollbars as well.
			 */
			public getPaddingStart(): number;
			/**
			 * Returns the right padding of this view. If there are inset and enabled scrollbars, this value may include the space required to display the scrollbars as well.
			 */
			public getPaddingRight(): number;
			/**
			 * Returns the end padding of this view depending on its resolved layout direction. If there are inset and enabled scrollbars, this value may include the space required to display the scrollbars as well.
			 */
			public getPaddingEnd(): number;
			/**
			 * Return if the padding as been set thru relative values #setPaddingRelative(int, int, int, int) or thru ref android.R.styleable#View_paddingStart or ref android.R.styleable#View_paddingEnd
			 */
			public isPaddingRelative(): boolean;
			/**
			 * Changes the selection state of this view. A view can be selected or not. Note that selection is not the same as focus. Views are typically selected in the context of an AdapterView like ListView or GridView; the selected view is the view that is highlighted.
			 * @param selected true if the view must be selected, false otherwise
			 */
			public setSelected(selected: boolean): void;
			/**
			 * Dispatch setSelected to all of this View's children.
			 * @param selected The new selected state
			 */
			protected dispatchSetSelected(selected: boolean): void;
			/**
			 * Indicates the selection state of this view.
			 */
			public isSelected(): boolean;
			/**
			 * Changes the activated state of this view. A view can be activated or not. Note that activation is not the same as selection. Selection is a transient property, representing the view (hierarchy) the user is currently interacting with. Activation is a longer-term state that the user can move views in and out of. For example, in a list view with single or multiple selection enabled, the views in the current selection set are activated. (Um, yeah, we are deeply sorry about the terminology here.) The activated state is propagated down to children of the view it is set on.
			 * @param activated true if the view must be activated, false otherwise
			 */
			public setActivated(activated: boolean): void;
			/**
			 * Dispatch setActivated to all of this View's children.
			 * @param activated The new activated state
			 */
			protected dispatchSetActivated(activated: boolean): void;
			/**
			 * Indicates the activation state of this view.
			 */
			public isActivated(): boolean;
			/**
			 * Returns the ViewTreeObserver for this view's hierarchy. The view tree observer can be used to get notifications when global events, like layout, happen.
			 */
			public getViewTreeObserver(): android.view.ViewTreeObserver;
			public getRootView(): android.view.View;
			/**
			 * @param location an array of two integers in which to hold the coordinates
			 */
			public getLocationOnScreen(location: native.Array<number>): void;
			/**
			 * @param location an array of two integers in which to hold the coordinates
			 */
			public getLocationInWindow(location: native.Array<number>): void;
			/**
			 * Look for a child view with the given id. If this view has the given id, return this view.
			 * @param id The id to search for.
			 */
			public findViewById(id: number): android.view.View;
			/**
			 * Finds a view by its unuque and stable accessibility id.
			 * @param accessibilityId The searched accessibility id.
			 */
			findViewByAccessibilityId(accessibilityId: number): android.view.View;
			/**
			 * Performs the traversal to find a view by its unuque and stable accessibility id.
			 * @param accessibilityId The accessibility id.
			 */
			findViewByAccessibilityIdTraversal(accessibilityId: number): android.view.View;
			/**
			 * Look for a child view with the given tag. If this view has the given tag, return this view.
			 * @param tag The tag to search for, using "tag.equals(getTag())".
			 */
			public findViewWithTag(tag: any): android.view.View;
			/**
			 * Sets the identifier for this view. The identifier does not have to be unique in this view's hierarchy. The identifier should be a positive number.
			 * @param id a number used to identify the view
			 */
			public setId(id: number): void;
			/**
			 * Returns this view's identifier.
			 */
			public getId(): number;
			/**
			 * Returns this view's tag.
			 */
			public getTag(): any;
			/**
			 * Sets the tag associated with this view. A tag can be used to mark a view in its hierarchy and does not have to be unique within the hierarchy. Tags can also be used to store data within a view without resorting to another data structure.
			 * @param tag an Object to tag the view with
			 */
			public setTag(tag: any): void;
			/**
			 * Returns the tag associated with this view and the specified key.
			 * @param key The key identifying the tag
			 */
			public getTag(key: number): any;
			/**
			 * Sets a tag associated with this view and a key. A tag can be used to mark a view in its hierarchy and does not have to be unique within the hierarchy. Tags can also be used to store data within a view without resorting to another data structure.
			 * @param key The key identifying the tag
			 * @param tag An Object to tag the view with
			 */
			public setTag(key: number, tag: any): void;
			public getBaseline(): number;
			/**
			 * Call this when something has changed which has invalidated the layout of this view. This will schedule a layout pass of the view tree.
			 */
			public requestLayout(): void;
			/**
			 * Forces this view to be laid out during the next layout pass. This method does not call requestLayout() or forceLayout() on the parent.
			 */
			public forceLayout(): void;
			/**
			 * @param widthMeasureSpec Horizontal space requirements as imposed by the
			 * @param heightMeasureSpec Vertical space requirements as imposed by the
			 */
			public measure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * @param widthMeasureSpec horizontal space requirements as imposed by the parent.
			 * @param heightMeasureSpec vertical space requirements as imposed by the parent.
			 */
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			/**
			 * @param measuredWidth The measured width of this view. May be a complex
			 * @param measuredHeight The measured height of this view. May be a complex
			 */
			protected setMeasuredDimension(measuredWidth: number, measuredHeight: number): void;
			/**
			 * Merge two states as returned by #getMeasuredState().
			 * @param curState The current state as returned from a view or the result
			 * @param newState The new view state to combine.
			 */
			public static combineMeasuredStates(curState: number, newState: number): number;
			/**
			 * Version of #resolveSizeAndState(int, int, int) returning only the #MEASURED_SIZE_MASK bits of the result.
			 */
			public static resolveSize(size: number, measureSpec: number): number;
			/**
			 * Utility to reconcile a desired size and state, with constraints imposed by a MeasureSpec. Will take the desired size, unless a different size is imposed by the constraints. The returned value is a compound integer, with the resolved size in the #MEASURED_SIZE_MASK bits and optionally the bit #MEASURED_STATE_TOO_SMALL set if the resulting size is smaller than the size the view wants to be.
			 * @param size How big the view wants to be
			 * @param measureSpec Constraints imposed by the parent
			 * @param childMeasuredState 
			 */
			public static resolveSizeAndState(size: number, measureSpec: number, childMeasuredState: number): number;
			/**
			 * Utility to return a default size. Uses the supplied size if the MeasureSpec imposed no constraints. Will get larger if allowed by the MeasureSpec.
			 * @param size Default size for this view
			 * @param measureSpec Constraints imposed by the parent
			 */
			public static getDefaultSize(size: number, measureSpec: number): number;
			/**
			 * Returns the suggested minimum height that the view should use. This returns the maximum of the view's minimum height and the background's minimum height (android.graphics.drawable.Drawable#getMinimumHeight()).
			 */
			protected getSuggestedMinimumHeight(): number;
			/**
			 * Returns the suggested minimum width that the view should use. This returns the maximum of the view's minimum width) and the background's minimum width (android.graphics.drawable.Drawable#getMinimumWidth()).
			 */
			protected getSuggestedMinimumWidth(): number;
			/**
			 * Returns the minimum height of the view.
			 */
			public getMinimumHeight(): number;
			/**
			 * Sets the minimum height of the view. It is not guaranteed the view will be able to achieve this minimum height (for example, if its parent layout constrains it with less available height).
			 * @param minHeight The minimum height the view will try to be.
			 */
			public setMinimumHeight(minHeight: number): void;
			/**
			 * Returns the minimum width of the view.
			 */
			public getMinimumWidth(): number;
			/**
			 * Sets the minimum width of the view. It is not guaranteed the view will be able to achieve this minimum width (for example, if its parent layout constrains it with less available width).
			 * @param minWidth The minimum width the view will try to be.
			 */
			public setMinimumWidth(minWidth: number): void;
			/**
			 * Get the animation currently associated with this view.
			 */
			public getAnimation(): android.view.animation.Animation;
			/**
			 * Start the specified animation now.
			 * @param animation the animation to start now
			 */
			public startAnimation(animation: android.view.animation.Animation): void;
			/**
			 * Cancels any animations for this view.
			 */
			public clearAnimation(): void;
			/**
			 * Sets the next animation to play for this view. If you want the animation to play immediately, use #startAnimation(android.view.animation.Animation) instead. This method provides allows fine-grained control over the start time and invalidation, but you must make sure that 1) the animation has a start time set, and 2) the view's parent (which controls animations on its children) will be invalidated when the animation is supposed to start.
			 * @param animation The next animation, or null.
			 */
			public setAnimation(animation: android.view.animation.Animation): void;
			/**
			 * Invoked by a parent ViewGroup to notify the start of the animation currently associated with this view. If you override this method, always call super.onAnimationStart();
			 */
			protected onAnimationStart(): void;
			/**
			 * Invoked by a parent ViewGroup to notify the end of the animation currently associated with this view. If you override this method, always call super.onAnimationEnd();
			 */
			protected onAnimationEnd(): void;
			/**
			 * Invoked if there is a Transform that involves alpha. Subclass that can draw themselves with the specified alpha should return true, and then respect that alpha when their onDraw() is called. If this returns false then the view may be redirected to draw into an offscreen buffer to fulfill the request, which will look fine, but may be slower than if the subclass handles it internally. The default implementation returns false.
			 * @param alpha The alpha (0..255) to apply to the view's drawing
			 */
			protected onSetAlpha(alpha: number): boolean;
			/**
			 * Play a sound effect for this view.
			 * @param soundConstant One of the constants defined in {@link SoundEffectConstants}
			 */
			public playSoundEffect(soundConstant: number): void;
			/**
			 * BZZZTT!!1!
			 * @param feedbackConstant One of the constants defined in
			 */
			public performHapticFeedback(feedbackConstant: number): boolean;
			/**
			 * BZZZTT!!1!
			 * @param feedbackConstant One of the constants defined in
			 * @param flags Additional flags as per {@link HapticFeedbackConstants}.
			 */
			public performHapticFeedback(feedbackConstant: number, flags: number): boolean;
			/**
			 * Request that the visibility of the status bar or other screen/window decorations be changed.
			 * @param visibility Bitwise-or of flags {@link #SYSTEM_UI_FLAG_LOW_PROFILE},
			 */
			public setSystemUiVisibility(visibility: number): void;
			/**
			 * Returns the last { #setSystemUiVisibility(int) that this view has requested.
			 */
			public getSystemUiVisibility(): number;
			/**
			 * Returns the current system UI visibility that is currently set for the entire window. This is the combination of the #setSystemUiVisibility(int) values supplied by all of the views in the window.
			 */
			public getWindowSystemUiVisibility(): number;
			/**
			 * Override to find out when the window's requested system UI visibility has changed, that is the value returned by #getWindowSystemUiVisibility(). This is different from the callbacks recieved through #setOnSystemUiVisibilityChangeListener(OnSystemUiVisibilityChangeListener) in that this is only telling you about the local request of the window, not the actual values applied by the system.
			 */
			public onWindowSystemUiVisibilityChanged(visible: number): void;
			/**
			 * Dispatch callbacks to #onWindowSystemUiVisibilityChanged(int) down the view hierarchy.
			 */
			public dispatchWindowSystemUiVisiblityChanged(visible: number): void;
			/**
			 * Set a listener to receive callbacks when the visibility of the system bar changes.
			 * @param l The {@link OnSystemUiVisibilityChangeListener} to receive callbacks.
			 */
			public setOnSystemUiVisibilityChangeListener(l: android.view.View.IOnSystemUiVisibilityChangeListener): void;
			/**
			 * Dispatch callbacks to #setOnSystemUiVisibilityChangeListener down the view hierarchy.
			 */
			public dispatchSystemUiVisibilityChanged(visibility: number): void;
			updateLocalSystemUiVisibility(localValue: number, localChanges: number): boolean;
			/**
			 * Starts a drag and drop operation. When your application calls this method, it passes a android.view.View.DragShadowBuilder object to the system. The system calls this object's DragShadowBuilder#onProvideShadowMetrics(Point, Point) to get metrics for the drag shadow, and then calls the object's DragShadowBuilder#onDrawShadow(Canvas) to draw the drag shadow itself.
			 * @param data A {@link android.content.ClipData} object pointing to the data to be
			 * @param shadowBuilder A {@link android.view.View.DragShadowBuilder} object for building the
			 * @param myLocalState An {@link java.lang.Object} containing local data about the drag and
			 * @param flags Flags that control the drag and drop operation. No flags are currently defined,
			 */
			public startDrag(data: android.content.ClipData, shadowBuilder: android.view.View.DragShadowBuilder, myLocalState: any, flags: number): boolean;
			/**
			 * Handles drag events sent by the system following a call to android.view.View#startDrag(ClipData,DragShadowBuilder,Object,int) startDrag().
			 * @param event The {@link android.view.DragEvent} sent by the system.
			 */
			public onDragEvent(event: android.view.DragEvent): boolean;
			/**
			 * Detects if this View is enabled and has a drag event listener. If both are true, then it calls the drag event listener with the android.view.DragEvent it received. If the drag event listener returns true, then dispatchDragEvent() returns true.
			 */
			public dispatchDragEvent(event: android.view.DragEvent): boolean;
			canAcceptDrag(): boolean;
			/**
			 * Inflate a view from an XML resource. This convenience method wraps the LayoutInflater class, which provides a full range of options for view inflation.
			 * @param context The Context object for your activity or application.
			 * @param resource The resource ID to inflate
			 * @param root A view group that will be the parent. Used to properly inflate the
			 */
			public static inflate(context: android.content.Context, resource: number, root: android.view.ViewGroup): android.view.View;
			/**
			 * Scroll the view with standard behavior for scrolling beyond the normal content boundaries. Views that call this method should override #onOverScrolled(int, int, boolean, boolean) to respond to the results of an over-scroll operation.
			 * @param deltaX Change in X in pixels
			 * @param deltaY Change in Y in pixels
			 * @param scrollX Current X scroll value in pixels before applying deltaX
			 * @param scrollY Current Y scroll value in pixels before applying deltaY
			 * @param scrollRangeX Maximum content scroll range along the X axis
			 * @param scrollRangeY Maximum content scroll range along the Y axis
			 * @param maxOverScrollX Number of pixels to overscroll by in either direction
			 * @param maxOverScrollY Number of pixels to overscroll by in either direction
			 * @param isTouchEvent true if this scroll operation is the result of a touch event.
			 */
			protected overScrollBy(deltaX: number, deltaY: number, scrollX: number, scrollY: number, scrollRangeX: number, scrollRangeY: number, maxOverScrollX: number, maxOverScrollY: number, isTouchEvent: boolean): boolean;
			/**
			 * Called by #overScrollBy(int, int, int, int, int, int, int, int, boolean) to respond to the results of an over-scroll operation.
			 * @param scrollX New X scroll value in pixels
			 * @param scrollY New Y scroll value in pixels
			 * @param clampedX True if scrollX was clamped to an over-scroll boundary
			 * @param clampedY True if scrollY was clamped to an over-scroll boundary
			 */
			protected onOverScrolled(scrollX: number, scrollY: number, clampedX: boolean, clampedY: boolean): void;
			/**
			 * Returns the over-scroll mode for this view. The result will be one of #OVER_SCROLL_ALWAYS (default), #OVER_SCROLL_IF_CONTENT_SCROLLS (allow over-scrolling only if the view content is larger than the container), or #OVER_SCROLL_NEVER.
			 */
			public getOverScrollMode(): number;
			/**
			 * Set the over-scroll mode for this view. Valid over-scroll modes are #OVER_SCROLL_ALWAYS (default), #OVER_SCROLL_IF_CONTENT_SCROLLS (allow over-scrolling only if the view content is larger than the container), or #OVER_SCROLL_NEVER.
			 * @param overScrollMode The new over-scroll mode for this view.
			 */
			public setOverScrollMode(overScrollMode: number): void;
			/**
			 * Set the text direction.
			 * @param textDirection the direction to set. Should be one of:
			 */
			public setTextDirection(textDirection: number): void;
			/**
			 * Return the resolved text direction.
			 */
			public getTextDirection(): number;
			/**
			 * Set the text alignment.
			 * @param textAlignment The text alignment to set. Should be one of
			 */
			public setTextAlignment(textAlignment: number): void;
			/**
			 * Return the resolved text alignment.
			 */
			public getTextAlignment(): number;
			/**
			 * Generate a value suitable for use in #setId(int). This value will not collide with ID values generated at build time by aapt for R.id.
			 */
			public static generateViewId(): number;
			/**
			 * This method returns a ViewPropertyAnimator object, which can be used to animate specific properties on this View.
			 */
			public animate(): android.view.ViewPropertyAnimator;
		}
		export module View {
			/**
			 * Interface definition for a callback to be invoked when the focus state of a view changed.
			 */
			export class OnFocusChangeListener implements android.view.View.IOnFocusChangeListener {
				constructor(implementation: android.view.View.IOnFocusChangeListener);
				/**
				 * Called when the focus state of a view has changed.
				 * @param v The view whose state has changed.
				 * @param hasFocus The new focus state of v.
				 */
				public onFocusChange(v: android.view.View, hasFocus: boolean): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a touch event is dispatched to this view. The callback will be invoked before the touch event is given to the view.
			 */
			export class OnTouchListener implements android.view.View.IOnTouchListener {
				constructor(implementation: android.view.View.IOnTouchListener);
				/**
				 * Called when a touch event is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the touch event has been dispatched to.
				 * @param event The MotionEvent object containing full information about
				 */
				public onTouch(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
			export class PerformClick extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.view.View.PerformClick>;
				public run(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a hover event is dispatched to this view. The callback will be invoked before the hover event is given to the view.
			 */
			export class OnHoverListener implements android.view.View.IOnHoverListener {
				constructor(implementation: android.view.View.IOnHoverListener);
				/**
				 * Called when a hover event is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the hover event has been dispatched to.
				 * @param event The MotionEvent object containing full information about
				 */
				public onHover(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a hover event is dispatched to this view. The callback will be invoked before the hover event is given to the view.
			 */
			interface IOnHoverListener {
				/**
				 * Called when a hover event is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the hover event has been dispatched to.
				 * @param event The MotionEvent object containing full information about
				 */
				onHover(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a view is clicked.
			 */
			interface IOnClickListener {
				/**
				 * Called when a view has been clicked.
				 * @param v The view that was clicked.
				 */
				onClick(v: android.view.View): void;
			}
			/**
			 * A MeasureSpec encapsulates the layout requirements passed from parent to child. Each MeasureSpec represents a requirement for either the width or the height. A MeasureSpec is comprised of a size and a mode. There are three possible modes: <dl> <dt>UNSPECIFIED</dt> <dd> The parent has not imposed any constraint on the child. It can be whatever size it wants. </dd>
			 */
			export class MeasureSpec extends java.lang.Object {
				constructor();
				/**
				 * Measure specification mode: The parent has not imposed any constraint on the child. It can be whatever size it wants.
				 */
				static UNSPECIFIED: number;
				/**
				 * Measure specification mode: The parent has determined an exact size for the child. The child is going to be given those bounds regardless of how big it wants to be.
				 */
				static EXACTLY: number;
				/**
				 * Measure specification mode: The child can be as large as it wants up to the specified size.
				 */
				static AT_MOST: number;
				static class: java.lang.Class<android.view.View.MeasureSpec>;
				/**
				 * Creates a measure specification based on the supplied size and mode.
				 * @param size the size of the measure specification
				 * @param mode the mode of the measure specification
				 */
				public static makeMeasureSpec(size: number, mode: number): number;
				/**
				 * Extracts the mode from the supplied measure specification.
				 * @param measureSpec the measure specification to extract the mode from
				 */
				public static getMode(measureSpec: number): number;
				/**
				 * Extracts the size from the supplied measure specification.
				 * @param measureSpec the measure specification to extract the size from
				 */
				public static getSize(measureSpec: number): number;
				/**
				 * Returns a String representation of the specified measure specification.
				 * @param measureSpec the measure specification to convert to a String
				 */
				public static toString(measureSpec: number): string;
				/**
				 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
				 */
				toString(): string;
			}
			/**
			 * Interface definition for a callback to be invoked when a generic motion event is dispatched to this view. The callback will be invoked before the generic motion event is given to the view.
			 */
			export class OnGenericMotionListener implements android.view.View.IOnGenericMotionListener {
				constructor(implementation: android.view.View.IOnGenericMotionListener);
				/**
				 * Called when a generic motion event is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the generic motion event has been dispatched to.
				 * @param event The MotionEvent object containing full information about
				 */
				public onGenericMotion(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
			/**
			 * A set of information given to a view when it is attached to its parent window.
			 */
			export class AttachInfo extends java.lang.Object {
				static class: java.lang.Class<android.view.View.AttachInfo>;
			}
			export module AttachInfo {
				/**
				 * InvalidateInfo is used to post invalidate(int, int, int, int) messages to a Handler. This class contains the target (View) to invalidate and the coordinates of the dirty rectangle.
				 */
				export class InvalidateInfo extends java.lang.Object {
					static class: java.lang.Class<android.view.View.AttachInfo.InvalidateInfo>;
					public setNextPoolable(element: android.view.View.AttachInfo.InvalidateInfo): void;
					public getNextPoolable(): android.view.View.AttachInfo.InvalidateInfo;
					static acquire(): android.view.View.AttachInfo.InvalidateInfo;
					release(): void;
					public isPooled(): boolean;
					public setPooled(isPooled: boolean): void;
				}
				export class Callbacks implements android.view.View.AttachInfo.ICallbacks {
					constructor(implementation: android.view.View.AttachInfo.ICallbacks);
					public playSoundEffect(effectId: number): void;
					public performHapticFeedback(effectId: number, always: boolean): boolean;
				}
				interface ICallbacks {
					playSoundEffect(effectId: number): void;
					performHapticFeedback(effectId: number, always: boolean): boolean;
				}
			}
			/**
			 * Interface definition for a callback to be invoked when a view has been clicked and held.
			 */
			export class OnLongClickListener implements android.view.View.IOnLongClickListener {
				constructor(implementation: android.view.View.IOnLongClickListener);
				/**
				 * Called when a view has been clicked and held.
				 * @param v The view that was clicked and held.
				 */
				public onLongClick(v: android.view.View): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a hardware key event is dispatched to this view. The callback will be invoked before the key event is given to the view. This is only useful for hardware keyboards; a software input method has no obligation to trigger this listener.
			 */
			export class OnKeyListener implements android.view.View.IOnKeyListener {
				constructor(implementation: android.view.View.IOnKeyListener);
				/**
				 * Called when a hardware key is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the key has been dispatched to.
				 * @param keyCode The code for the physical key that was pressed
				 * @param event The KeyEvent object containing full information about
				 */
				public onKey(v: android.view.View, keyCode: number, event: android.view.KeyEvent): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when the context menu for this view is being built.
			 */
			interface IOnCreateContextMenuListener {
				/**
				 * Called when the context menu for this view is being built. It is not safe to hold onto the menu after this method returns.
				 * @param menu The context menu that is being built
				 * @param v The view for which the context menu is being built
				 * @param menuInfo Extra information about the item for which the
				 */
				onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the layout bounds of a view changes due to layout processing.
			 */
			interface IOnLayoutChangeListener {
				/**
				 * Called when the focus state of a view has changed.
				 * @param v The view whose state has changed.
				 * @param left The new value of the view's left property.
				 * @param top The new value of the view's top property.
				 * @param right The new value of the view's right property.
				 * @param bottom The new value of the view's bottom property.
				 * @param oldLeft The previous value of the view's left property.
				 * @param oldTop The previous value of the view's top property.
				 * @param oldRight The previous value of the view's right property.
				 * @param oldBottom The previous value of the view's bottom property.
				 */
				onLayoutChange(v: android.view.View, left: number, top: number, right: number, bottom: number, oldLeft: number, oldTop: number, oldRight: number, oldBottom: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a touch event is dispatched to this view. The callback will be invoked before the touch event is given to the view.
			 */
			interface IOnTouchListener {
				/**
				 * Called when a touch event is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the touch event has been dispatched to.
				 * @param event The MotionEvent object containing full information about
				 */
				onTouch(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when the status bar changes visibility. This reports <strong>global</strong> changes to the system UI state, not what the application is requesting.
			 */
			interface IOnSystemUiVisibilityChangeListener {
				/**
				 * Called when the status bar changes visibility because of a call to View#setSystemUiVisibility(int).
				 * @param visibility Bitwise-or of flags {@link #SYSTEM_UI_FLAG_LOW_PROFILE},
				 */
				onSystemUiVisibilityChange(visibility: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a drag is being dispatched to this view. The callback will be invoked before the hosting view's own onDrag(event) method. If the listener wants to fall back to the hosting view's onDrag(event) behavior, it should return 'false' from this callback.
			 */
			export class OnDragListener implements android.view.View.IOnDragListener {
				constructor(implementation: android.view.View.IOnDragListener);
				/**
				 * Called when a drag event is dispatched to a view. This allows listeners to get a chance to override base View behavior.
				 * @param v The View that received the drag event.
				 * @param event The {@link android.view.DragEvent} object for the drag event.
				 */
				public onDrag(v: android.view.View, event: android.view.DragEvent): boolean;
			}
			/**
			 * Creates an image that the system displays during the drag and drop operation. This is called a &quot;drag shadow&quot;. The default implementation for a DragShadowBuilder based on a View returns an image that has exactly the same appearance as the given View. The default also positions the center of the drag shadow directly under the touch point. If no View is provided (the constructor with no parameters is used), and #onProvideShadowMetrics(Point,Point) onProvideShadowMetrics() and #onDrawShadow(Canvas) onDrawShadow() are not overriden, then the default is an invisible drag shadow.
			 */
			export class DragShadowBuilder extends java.lang.Object {
				/**
				 * Constructs a shadow image builder based on a View. By default, the resulting drag shadow will have the same appearance and dimensions as the View, with the touch point over the center of the View.
				 * @param view A View. Any View in scope can be used.
				 */
				constructor(view: android.view.View);
				/**
				 * Construct a shadow builder object with no associated View. This constructor variant is only useful when the #onProvideShadowMetrics(Point, Point) and #onDrawShadow(Canvas) methods are also overridden in order to supply the drag shadow's dimensions and appearance without reference to any View object. If they are not overridden, then the result is an invisible drag shadow.
				 */
				constructor();
				static class: java.lang.Class<android.view.View.DragShadowBuilder>;
				/**
				 * Returns the View object that had been passed to the #View.DragShadowBuilder(View) constructor. If that View parameter was null or if the #View.DragShadowBuilder() constructor was used to instantiate the builder object, this method will return null.
				 */
				public getView(): android.view.View;
				/**
				 * Provides the metrics for the shadow image. These include the dimensions of the shadow image, and the point within that shadow that should be centered under the touch location while dragging.
				 * @param shadowSize A {@link android.graphics.Point} containing the width and height
				 * @param shadowTouchPoint A {@link android.graphics.Point} for the position within the
				 */
				public onProvideShadowMetrics(shadowSize: android.graphics.Point, shadowTouchPoint: android.graphics.Point): void;
				/**
				 * Draws the shadow image. The system creates the android.graphics.Canvas object based on the dimensions it received from the #onProvideShadowMetrics(Point, Point) callback.
				 * @param canvas A {@link android.graphics.Canvas} object in which to draw the shadow image.
				 */
				public onDrawShadow(canvas: android.graphics.Canvas): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a generic motion event is dispatched to this view. The callback will be invoked before the generic motion event is given to the view.
			 */
			interface IOnGenericMotionListener {
				/**
				 * Called when a generic motion event is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the generic motion event has been dispatched to.
				 * @param event The MotionEvent object containing full information about
				 */
				onGenericMotion(v: android.view.View, event: android.view.MotionEvent): boolean;
			}
			export class CheckForLongPress extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.view.View.CheckForLongPress>;
				public run(): void;
				public rememberWindowAttachCount(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a view has been clicked and held.
			 */
			interface IOnLongClickListener {
				/**
				 * Called when a view has been clicked and held.
				 * @param v The view that was clicked and held.
				 */
				onLongClick(v: android.view.View): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when the layout bounds of a view changes due to layout processing.
			 */
			export class OnLayoutChangeListener implements android.view.View.IOnLayoutChangeListener {
				constructor(implementation: android.view.View.IOnLayoutChangeListener);
				/**
				 * Called when the focus state of a view has changed.
				 * @param v The view whose state has changed.
				 * @param left The new value of the view's left property.
				 * @param top The new value of the view's top property.
				 * @param right The new value of the view's right property.
				 * @param bottom The new value of the view's bottom property.
				 * @param oldLeft The previous value of the view's left property.
				 * @param oldTop The previous value of the view's top property.
				 * @param oldRight The previous value of the view's right property.
				 * @param oldBottom The previous value of the view's bottom property.
				 */
				public onLayoutChange(v: android.view.View, left: number, top: number, right: number, bottom: number, oldLeft: number, oldTop: number, oldRight: number, oldBottom: number): void;
			}
			export class CheckForTap extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.view.View.CheckForTap>;
				public run(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a hardware key event is dispatched to this view. The callback will be invoked before the key event is given to the view. This is only useful for hardware keyboards; a software input method has no obligation to trigger this listener.
			 */
			interface IOnKeyListener {
				/**
				 * Called when a hardware key is dispatched to a view. This allows listeners to get a chance to respond before the target view.
				 * @param v The view the key has been dispatched to.
				 * @param keyCode The code for the physical key that was pressed
				 * @param event The KeyEvent object containing full information about
				 */
				onKey(v: android.view.View, keyCode: number, event: android.view.KeyEvent): boolean;
			}
			export class ScrollabilityCache extends java.lang.Object implements java.lang.IRunnable {
				constructor(configuration: android.view.ViewConfiguration, host: android.view.View);
				/**
				 * Scrollbars are not visible
				 */
				static OFF: number;
				/**
				 * Scrollbars are visible
				 */
				static ON: number;
				/**
				 * Scrollbars are fading away
				 */
				static FADING: number;
				fadeScrollBars: boolean;
				fadingEdgeLength: number;
				scrollBarDefaultDelayBeforeFade: number;
				scrollBarFadeDuration: number;
				scrollBarSize: number;
				interpolatorValues: native.Array<number>;
				host: android.view.View;
				paint: android.graphics.Paint;
				matrix: android.graphics.Matrix;
				shader: android.graphics.Shader;
				scrollBarInterpolator: android.graphics.Interpolator;
				/**
				 * When fading should start. This time moves into the future every time a new scroll happens. Measured based on SystemClock.uptimeMillis()
				 */
				fadeStartTime: number;
				/**
				 * The current state of the scrollbars: ON, OFF, or FADING
				 */
				state: number;
				static class: java.lang.Class<android.view.View.ScrollabilityCache>;
				public setFadeColor(color: number): void;
				public run(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when this view is attached or detached from its window.
			 */
			interface IOnAttachStateChangeListener {
				/**
				 * Called when the view is attached to a window.
				 * @param v The view that was attached
				 */
				onViewAttachedToWindow(v: android.view.View): void;
				/**
				 * Called when the view is detached from a window.
				 * @param v The view that was detached
				 */
				onViewDetachedFromWindow(v: android.view.View): void;
			}
			/**
			 * Interface definition for a callback to be invoked when the context menu for this view is being built.
			 */
			export class OnCreateContextMenuListener implements android.view.View.IOnCreateContextMenuListener {
				constructor(implementation: android.view.View.IOnCreateContextMenuListener);
				/**
				 * Called when the context menu for this view is being built. It is not safe to hold onto the menu after this method returns.
				 * @param menu The context menu that is being built
				 * @param v The view for which the context menu is being built
				 * @param menuInfo Extra information about the item for which the
				 */
				public onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
			}
			export class MatchIdPredicate extends java.lang.Object {
				mId: number;
				static class: java.lang.Class<android.view.View.MatchIdPredicate>;
				public apply(view: android.view.View): boolean;
			}
			export class MatchLabelForPredicate extends java.lang.Object {
				static class: java.lang.Class<android.view.View.MatchLabelForPredicate>;
				public apply(view: android.view.View): boolean;
			}
			/**
			 * Resuable callback for sending AccessibilityEvent#TYPE_VIEW_SCROLLED accessibility event.
			 */
			export class SendViewScrolledAccessibilityEvent extends java.lang.Object implements java.lang.IRunnable {
				mIsPending: boolean;
				static class: java.lang.Class<android.view.View.SendViewScrolledAccessibilityEvent>;
				public run(): void;
			}
			export class ListenerInfo extends java.lang.Object {
				static class: java.lang.Class<android.view.View.ListenerInfo>;
			}
			/**
			 * Interface definition for a callback to be invoked when the status bar changes visibility. This reports <strong>global</strong> changes to the system UI state, not what the application is requesting.
			 */
			export class OnSystemUiVisibilityChangeListener implements android.view.View.IOnSystemUiVisibilityChangeListener {
				constructor(implementation: android.view.View.IOnSystemUiVisibilityChangeListener);
				/**
				 * Called when the status bar changes visibility because of a call to View#setSystemUiVisibility(int).
				 * @param visibility Bitwise-or of flags {@link #SYSTEM_UI_FLAG_LOW_PROFILE},
				 */
				public onSystemUiVisibilityChange(visibility: number): void;
			}
			export class AccessibilityDelegate extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.view.View.AccessibilityDelegate>;
				/**
				 * Sends an accessibility event of the given type. If accessibility is not enabled this method has no effect.
				 * @param host The View hosting the delegate.
				 * @param eventType The type of the event to send.
				 */
				public sendAccessibilityEvent(host: android.view.View, eventType: number): void;
				/**
				 * Performs the specified accessibility action on the view. For possible accessibility actions look at AccessibilityNodeInfo.
				 * @param host action The action to perform.
				 * @param action 
				 * @param args 
				 */
				public performAccessibilityAction(host: android.view.View, action: number, args: android.os.Bundle): boolean;
				/**
				 * Sends an accessibility event. This method behaves exactly as #sendAccessibilityEvent(View, int) but takes as an argument an empty AccessibilityEvent and does not perform a check whether accessibility is enabled.
				 * @param host The View hosting the delegate.
				 * @param event The event to send.
				 */
				public sendAccessibilityEventUnchecked(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
				/**
				 * Dispatches an AccessibilityEvent to the host View first and then to its children for adding their text content to the event.
				 * @param host The View hosting the delegate.
				 * @param event The event.
				 */
				public dispatchPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
				/**
				 * Gives a chance to the host View to populate the accessibility event with its text content.
				 * @param host The View hosting the delegate.
				 * @param event The accessibility event which to populate.
				 */
				public onPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
				/**
				 * Initializes an AccessibilityEvent with information about the the host View which is the event source.
				 * @param host The View hosting the delegate.
				 * @param event The event to initialize.
				 */
				public onInitializeAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
				/**
				 * Initializes an AccessibilityNodeInfo with information about the host view.
				 * @param host The View hosting the delegate.
				 * @param info The instance to initialize.
				 */
				public onInitializeAccessibilityNodeInfo(host: android.view.View, info: android.view.accessibility.AccessibilityNodeInfo): void;
				/**
				 * Called when a child of the host View has requested sending an AccessibilityEvent and gives an opportunity to the parent (the host) to augment the event.
				 * @param host The View hosting the delegate.
				 * @param child The child which requests sending the event.
				 * @param event The event to be sent.
				 */
				public onRequestSendAccessibilityEvent(host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
				/**
				 * Gets the provider for managing a virtual view hierarchy rooted at this View and reported to android.accessibilityservice.AccessibilityServices that explore the window content.
				 */
				public getAccessibilityNodeProvider(host: android.view.View): android.view.accessibility.AccessibilityNodeProvider;
			}
			/**
			 * Interface definition for a callback to be invoked when the focus state of a view changed.
			 */
			interface IOnFocusChangeListener {
				/**
				 * Called when the focus state of a view has changed.
				 * @param v The view whose state has changed.
				 * @param hasFocus The new focus state of v.
				 */
				onFocusChange(v: android.view.View, hasFocus: boolean): void;
			}
			/**
			 * Interface definition for a callback to be invoked when this view is attached or detached from its window.
			 */
			export class OnAttachStateChangeListener implements android.view.View.IOnAttachStateChangeListener {
				constructor(implementation: android.view.View.IOnAttachStateChangeListener);
				/**
				 * Called when the view is attached to a window.
				 * @param v The view that was attached
				 */
				public onViewAttachedToWindow(v: android.view.View): void;
				/**
				 * Called when the view is detached from a window.
				 * @param v The view that was detached
				 */
				public onViewDetachedFromWindow(v: android.view.View): void;
			}
			export class UnsetPressedState extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.view.View.UnsetPressedState>;
				public run(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a view is clicked.
			 */
			export class OnClickListener implements android.view.View.IOnClickListener {
				constructor(implementation: android.view.View.IOnClickListener);
				/**
				 * Called when a view has been clicked.
				 * @param v The view that was clicked.
				 */
				public onClick(v: android.view.View): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a drag is being dispatched to this view. The callback will be invoked before the hosting view's own onDrag(event) method. If the listener wants to fall back to the hosting view's onDrag(event) behavior, it should return 'false' from this callback.
			 */
			interface IOnDragListener {
				/**
				 * Called when a drag event is dispatched to a view. This allows listeners to get a chance to override base View behavior.
				 * @param v The View that received the drag event.
				 * @param event The {@link android.view.DragEvent} object for the drag event.
				 */
				onDrag(v: android.view.View, event: android.view.DragEvent): boolean;
			}
			/**
			 * Base class for derived classes that want to save and restore their own state in android.view.View#onSaveInstanceState().
			 */
			export class BaseSavedState extends android.view.AbsSavedState {
				/**
				 * Constructor used when reading from a parcel. Reads the state of the superclass.
				 * @param source 
				 */
				constructor(source: android.os.Parcel);
				/**
				 * Constructor called by derived classes when creating their SavedState objects
				 * @param superState The state of the superclass of this view
				 */
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.view.View.BaseSavedState>;
				static class: java.lang.Class<android.view.View.BaseSavedState>;
			}
			export class TransformationInfo extends java.lang.Object {
				static class: java.lang.Class<android.view.View.TransformationInfo>;
			}
		}
		/**
		 * Delegate used to provide new implementation of a select few methods of Choreographer
		 */
		export class Choreographer_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.Choreographer_Delegate>;
			public static getRefreshRate(): number;
		}
		/**
		 * Object used to report movement (mouse, pen, finger, trackball) events. Motion events may hold either absolute or relative movements and other data, depending on the type of device.
		 */
		export class MotionEvent extends android.view.InputEvent implements android.os.IParcelable {
			/**
			 * An invalid pointer id.
			 */
			static INVALID_POINTER_ID: number;
			/**
			 * Bit mask of the parts of the action code that are the action itself.
			 */
			static ACTION_MASK: number;
			/**
			 * Constant for #getActionMasked: A pressed gesture has started, the motion contains the initial starting location.
			 */
			static ACTION_DOWN: number;
			/**
			 * Constant for #getActionMasked: A pressed gesture has finished, the motion contains the final release location as well as any intermediate points since the last down or move event.
			 */
			static ACTION_UP: number;
			/**
			 * Constant for #getActionMasked: A change has happened during a press gesture (between #ACTION_DOWN and #ACTION_UP). The motion contains the most recent point, as well as any intermediate points since the last down or move event.
			 */
			static ACTION_MOVE: number;
			/**
			 * Constant for #getActionMasked: The current gesture has been aborted. You will not receive any more points in it. You should treat this as an up event, but not perform any action that you normally would.
			 */
			static ACTION_CANCEL: number;
			/**
			 * Constant for #getActionMasked: A movement has happened outside of the normal bounds of the UI element. This does not provide a full gesture, but only the initial location of the movement/touch.
			 */
			static ACTION_OUTSIDE: number;
			/**
			 * Constant for #getActionMasked: A non-primary pointer has gone down.
			 */
			static ACTION_POINTER_DOWN: number;
			/**
			 * Constant for #getActionMasked: A non-primary pointer has gone up.
			 */
			static ACTION_POINTER_UP: number;
			/**
			 * Constant for #getActionMasked: A change happened but the pointer is not down (unlike #ACTION_MOVE). The motion contains the most recent point, as well as any intermediate points since the last hover move event.
			 */
			static ACTION_HOVER_MOVE: number;
			/**
			 * Constant for #getActionMasked: The motion event contains relative vertical and/or horizontal scroll offsets. Use #getAxisValue(int) to retrieve the information from #AXIS_VSCROLL and #AXIS_HSCROLL. The pointer may or may not be down when this event is dispatched.
			 */
			static ACTION_SCROLL: number;
			/**
			 * Constant for #getActionMasked: The pointer is not down but has entered the boundaries of a window or view.
			 */
			static ACTION_HOVER_ENTER: number;
			/**
			 * Constant for #getActionMasked: The pointer is not down but has exited the boundaries of a window or view.
			 */
			static ACTION_HOVER_EXIT: number;
			/**
			 * Bits in the action code that represent a pointer index, used with #ACTION_POINTER_DOWN and #ACTION_POINTER_UP. Shifting down by #ACTION_POINTER_INDEX_SHIFT provides the actual pointer index where the data for the pointer going up or down can be found; you can get its identifier with #getPointerId(int) and the actual data with #getX(int) etc.
			 */
			static ACTION_POINTER_INDEX_MASK: number;
			/**
			 * Bit shift for the action bits holding the pointer index as defined by #ACTION_POINTER_INDEX_MASK.
			 */
			static ACTION_POINTER_INDEX_SHIFT: number;
			/**
			 *  Use #ACTION_POINTER_INDEX_MASK to retrieve the data index associated with #ACTION_POINTER_DOWN.
			 */
			static ACTION_POINTER_1_DOWN: number;
			/**
			 *  Use #ACTION_POINTER_INDEX_MASK to retrieve the data index associated with #ACTION_POINTER_DOWN.
			 */
			static ACTION_POINTER_2_DOWN: number;
			/**
			 *  Use #ACTION_POINTER_INDEX_MASK to retrieve the data index associated with #ACTION_POINTER_DOWN.
			 */
			static ACTION_POINTER_3_DOWN: number;
			/**
			 *  Use #ACTION_POINTER_INDEX_MASK to retrieve the data index associated with #ACTION_POINTER_UP.
			 */
			static ACTION_POINTER_1_UP: number;
			/**
			 *  Use #ACTION_POINTER_INDEX_MASK to retrieve the data index associated with #ACTION_POINTER_UP.
			 */
			static ACTION_POINTER_2_UP: number;
			/**
			 *  Use #ACTION_POINTER_INDEX_MASK to retrieve the data index associated with #ACTION_POINTER_UP.
			 */
			static ACTION_POINTER_3_UP: number;
			/**
			 *  Renamed to #ACTION_POINTER_INDEX_MASK to match the actual data contained in these bits.
			 */
			static ACTION_POINTER_ID_MASK: number;
			/**
			 *  Renamed to #ACTION_POINTER_INDEX_SHIFT to match the actual data contained in these bits.
			 */
			static ACTION_POINTER_ID_SHIFT: number;
			/**
			 * This flag indicates that the window that received this motion event is partly or wholly obscured by another visible window above it. This flag is set to true even if the event did not directly pass through the obscured area. A security sensitive application can check this flag to identify situations in which a malicious application may have covered up part of its content for the purpose of misleading the user or hijacking touches. An appropriate response might be to drop the suspect touches or to take additional precautions to confirm the user's actual intent.
			 */
			static FLAG_WINDOW_IS_OBSCURED: number;
			/**
			 * Flag indicating the motion event intersected the top edge of the screen.
			 */
			static EDGE_TOP: number;
			/**
			 * Flag indicating the motion event intersected the bottom edge of the screen.
			 */
			static EDGE_BOTTOM: number;
			/**
			 * Flag indicating the motion event intersected the left edge of the screen.
			 */
			static EDGE_LEFT: number;
			/**
			 * Flag indicating the motion event intersected the right edge of the screen.
			 */
			static EDGE_RIGHT: number;
			/**
			 * Axis constant: X axis of a motion event.
			 */
			static AXIS_X: number;
			/**
			 * Axis constant: Y axis of a motion event.
			 */
			static AXIS_Y: number;
			/**
			 * Axis constant: Pressure axis of a motion event.
			 */
			static AXIS_PRESSURE: number;
			/**
			 * Axis constant: Size axis of a motion event.
			 */
			static AXIS_SIZE: number;
			/**
			 * Axis constant: TouchMajor axis of a motion event.
			 */
			static AXIS_TOUCH_MAJOR: number;
			/**
			 * Axis constant: TouchMinor axis of a motion event.
			 */
			static AXIS_TOUCH_MINOR: number;
			/**
			 * Axis constant: ToolMajor axis of a motion event.
			 */
			static AXIS_TOOL_MAJOR: number;
			/**
			 * Axis constant: ToolMinor axis of a motion event.
			 */
			static AXIS_TOOL_MINOR: number;
			/**
			 * Axis constant: Orientation axis of a motion event.
			 */
			static AXIS_ORIENTATION: number;
			/**
			 * Axis constant: Vertical Scroll axis of a motion event.
			 */
			static AXIS_VSCROLL: number;
			/**
			 * Axis constant: Horizontal Scroll axis of a motion event.
			 */
			static AXIS_HSCROLL: number;
			/**
			 * Axis constant: Z axis of a motion event.
			 */
			static AXIS_Z: number;
			/**
			 * Axis constant: X Rotation axis of a motion event.
			 */
			static AXIS_RX: number;
			/**
			 * Axis constant: Y Rotation axis of a motion event.
			 */
			static AXIS_RY: number;
			/**
			 * Axis constant: Z Rotation axis of a motion event.
			 */
			static AXIS_RZ: number;
			/**
			 * Axis constant: Hat X axis of a motion event.
			 */
			static AXIS_HAT_X: number;
			/**
			 * Axis constant: Hat Y axis of a motion event.
			 */
			static AXIS_HAT_Y: number;
			/**
			 * Axis constant: Left Trigger axis of a motion event.
			 */
			static AXIS_LTRIGGER: number;
			/**
			 * Axis constant: Right Trigger axis of a motion event.
			 */
			static AXIS_RTRIGGER: number;
			/**
			 * Axis constant: Throttle axis of a motion event.
			 */
			static AXIS_THROTTLE: number;
			/**
			 * Axis constant: Rudder axis of a motion event.
			 */
			static AXIS_RUDDER: number;
			/**
			 * Axis constant: Wheel axis of a motion event.
			 */
			static AXIS_WHEEL: number;
			/**
			 * Axis constant: Gas axis of a motion event.
			 */
			static AXIS_GAS: number;
			/**
			 * Axis constant: Brake axis of a motion event.
			 */
			static AXIS_BRAKE: number;
			/**
			 * Axis constant: Distance axis of a motion event.
			 */
			static AXIS_DISTANCE: number;
			/**
			 * Axis constant: Tilt axis of a motion event.
			 */
			static AXIS_TILT: number;
			/**
			 * Axis constant: Generic 1 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_1: number;
			/**
			 * Axis constant: Generic 2 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_2: number;
			/**
			 * Axis constant: Generic 3 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_3: number;
			/**
			 * Axis constant: Generic 4 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_4: number;
			/**
			 * Axis constant: Generic 5 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_5: number;
			/**
			 * Axis constant: Generic 6 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_6: number;
			/**
			 * Axis constant: Generic 7 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_7: number;
			/**
			 * Axis constant: Generic 8 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_8: number;
			/**
			 * Axis constant: Generic 9 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_9: number;
			/**
			 * Axis constant: Generic 10 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_10: number;
			/**
			 * Axis constant: Generic 11 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_11: number;
			/**
			 * Axis constant: Generic 12 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_12: number;
			/**
			 * Axis constant: Generic 13 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_13: number;
			/**
			 * Axis constant: Generic 14 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_14: number;
			/**
			 * Axis constant: Generic 15 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_15: number;
			/**
			 * Axis constant: Generic 16 axis of a motion event. The interpretation of a generic axis is device-specific.
			 */
			static AXIS_GENERIC_16: number;
			/**
			 * Button constant: Primary button (left mouse button).
			 */
			static BUTTON_PRIMARY: number;
			/**
			 * Button constant: Secondary button (right mouse button, stylus first button).
			 */
			static BUTTON_SECONDARY: number;
			/**
			 * Button constant: Tertiary button (middle mouse button, stylus second button).
			 */
			static BUTTON_TERTIARY: number;
			/**
			 * Button constant: Back button pressed (mouse back button).
			 */
			static BUTTON_BACK: number;
			/**
			 * Button constant: Forward button pressed (mouse forward button).
			 */
			static BUTTON_FORWARD: number;
			/**
			 * Tool type constant: Unknown tool type. This constant is used when the tool type is not known or is not relevant, such as for a trackball or other non-pointing device.
			 */
			static TOOL_TYPE_UNKNOWN: number;
			/**
			 * Tool type constant: The tool is a finger.
			 */
			static TOOL_TYPE_FINGER: number;
			/**
			 * Tool type constant: The tool is a stylus.
			 */
			static TOOL_TYPE_STYLUS: number;
			/**
			 * Tool type constant: The tool is a mouse or trackpad.
			 */
			static TOOL_TYPE_MOUSE: number;
			/**
			 * Tool type constant: The tool is an eraser or a stylus being used in an inverted posture.
			 */
			static TOOL_TYPE_ERASER: number;
			static CREATOR: android.os.Parcelable.ICreator<android.view.MotionEvent>;
			static class: java.lang.Class<android.view.MotionEvent>;
			protected finalize(): void;
			/**
			 * Create a new MotionEvent, filling in all of the basic values that define the motion.
			 * @param downTime The time (in ms) when the user originally pressed down to start
			 * @param eventTime The the time (in ms) when this specific event was generated. This
			 * @param action The kind of action being performed, such as {@link #ACTION_DOWN}.
			 * @param pointerCount The number of pointers that will be in this event.
			 * @param pointerProperties An array of <em>pointerCount</em> values providing
			 * @param pointerCoords An array of <em>pointerCount</em> values providing
			 * @param metaState The state of any meta / modifier keys that were in effect when
			 * @param buttonState The state of buttons that are pressed.
			 * @param xPrecision The precision of the X coordinate being reported.
			 * @param yPrecision The precision of the Y coordinate being reported.
			 * @param deviceId The id for the device that this event came from. An id of
			 * @param edgeFlags A bitfield indicating which edges, if any, were touched by this
			 * @param source The source of this event.
			 * @param flags The motion event flags.
			 */
			public static obtain(downTime: number, eventTime: number, action: number, pointerCount: number, pointerProperties: native.Array<android.view.MotionEvent.PointerProperties>, pointerCoords: native.Array<android.view.MotionEvent.PointerCoords>, metaState: number, buttonState: number, xPrecision: number, yPrecision: number, deviceId: number, edgeFlags: number, source: number, flags: number): android.view.MotionEvent;
			/**
			 * Create a new MotionEvent, filling in all of the basic values that define the motion. 
			 * @param downTime The time (in ms) when the user originally pressed down to start
			 * @param eventTime The the time (in ms) when this specific event was generated. This
			 * @param action The kind of action being performed, such as {@link #ACTION_DOWN}.
			 * @param pointerCount The number of pointers that will be in this event.
			 * @param pointerIds An array of <em>pointerCount</em> values providing
			 * @param pointerCoords An array of <em>pointerCount</em> values providing
			 * @param metaState The state of any meta / modifier keys that were in effect when
			 * @param xPrecision The precision of the X coordinate being reported.
			 * @param yPrecision The precision of the Y coordinate being reported.
			 * @param deviceId The id for the device that this event came from. An id of
			 * @param edgeFlags A bitfield indicating which edges, if any, were touched by this
			 * @param source The source of this event.
			 * @param flags The motion event flags.
			 */
			public static obtain(downTime: number, eventTime: number, action: number, pointerCount: number, pointerIds: native.Array<number>, pointerCoords: native.Array<android.view.MotionEvent.PointerCoords>, metaState: number, xPrecision: number, yPrecision: number, deviceId: number, edgeFlags: number, source: number, flags: number): android.view.MotionEvent;
			/**
			 * Create a new MotionEvent, filling in all of the basic values that define the motion.
			 * @param downTime The time (in ms) when the user originally pressed down to start
			 * @param eventTime The the time (in ms) when this specific event was generated. This
			 * @param action The kind of action being performed, such as {@link #ACTION_DOWN}.
			 * @param x The X coordinate of this event.
			 * @param y The Y coordinate of this event.
			 * @param pressure The current pressure of this event. The pressure generally
			 * @param size A scaled value of the approximate size of the area being pressed when
			 * @param metaState The state of any meta / modifier keys that were in effect when
			 * @param xPrecision The precision of the X coordinate being reported.
			 * @param yPrecision The precision of the Y coordinate being reported.
			 * @param deviceId The id for the device that this event came from. An id of
			 * @param edgeFlags A bitfield indicating which edges, if any, were touched by this
			 */
			public static obtain(downTime: number, eventTime: number, action: number, x: number, y: number, pressure: number, size: number, metaState: number, xPrecision: number, yPrecision: number, deviceId: number, edgeFlags: number): android.view.MotionEvent;
			/**
			 * Create a new MotionEvent, filling in all of the basic values that define the motion.
			 * @param downTime The time (in ms) when the user originally pressed down to start
			 * @param eventTime The the time (in ms) when this specific event was generated. This
			 * @param action The kind of action being performed, such as {@link #ACTION_DOWN}.
			 * @param pointerCount The number of pointers that are active in this event.
			 * @param x The X coordinate of this event.
			 * @param y The Y coordinate of this event.
			 * @param pressure The current pressure of this event. The pressure generally
			 * @param size A scaled value of the approximate size of the area being pressed when
			 * @param metaState The state of any meta / modifier keys that were in effect when
			 * @param xPrecision The precision of the X coordinate being reported.
			 * @param yPrecision The precision of the Y coordinate being reported.
			 * @param deviceId The id for the device that this event came from. An id of
			 * @param edgeFlags A bitfield indicating which edges, if any, were touched by this
			 */
			public static obtain(downTime: number, eventTime: number, action: number, pointerCount: number, x: number, y: number, pressure: number, size: number, metaState: number, xPrecision: number, yPrecision: number, deviceId: number, edgeFlags: number): android.view.MotionEvent;
			/**
			 * Create a new MotionEvent, filling in a subset of the basic motion values. Those not specified here are: device id (always 0), pressure and size (always 1), x and y precision (always 1), and edgeFlags (always 0).
			 * @param downTime The time (in ms) when the user originally pressed down to start
			 * @param eventTime The the time (in ms) when this specific event was generated. This
			 * @param action The kind of action being performed, such as {@link #ACTION_DOWN}.
			 * @param x The X coordinate of this event.
			 * @param y The Y coordinate of this event.
			 * @param metaState The state of any meta / modifier keys that were in effect when
			 */
			public static obtain(downTime: number, eventTime: number, action: number, x: number, y: number, metaState: number): android.view.MotionEvent;
			/**
			 * Create a new MotionEvent, copying from an existing one.
			 */
			public static obtain(other: android.view.MotionEvent): android.view.MotionEvent;
			/**
			 * Create a new MotionEvent, copying from an existing one, but not including any historical point information.
			 */
			public static obtainNoHistory(other: android.view.MotionEvent): android.view.MotionEvent;
			/**
			 * Recycle the MotionEvent, to be re-used by a later caller. After calling this function you must not ever touch the event again.
			 */
			public recycle(): void;
			/**
			 * 
			 */
			public getDeviceId(): number;
			/**
			 * 
			 */
			public getSource(): number;
			/**
			 * 
			 */
			public setSource(source: number): void;
			/**
			 * Return the kind of action being performed. Consider using #getActionMasked and #getActionIndex to retrieve the separate masked action and pointer index.
			 */
			public getAction(): number;
			/**
			 * Return the masked action being performed, without pointer index information. Use #getActionIndex to return the index associated with pointer actions.
			 */
			public getActionMasked(): number;
			/**
			 * For #ACTION_POINTER_DOWN or #ACTION_POINTER_UP as returned by #getActionMasked, this returns the associated pointer index. The index may be used with #getPointerId(int), #getX(int), #getY(int), #getPressure(int), and #getSize(int) to get information about the pointer that has gone down or up.
			 */
			public getActionIndex(): number;
			/**
			 * Gets the motion event flags.
			 */
			public getFlags(): number;
			/**
			 * Returns the time (in ms) when the user originally pressed down to start a stream of position events.
			 */
			public getDownTime(): any;
			/**
			 * Retrieve the time this event occurred, in the android.os.SystemClock#uptimeMillis time base.
			 */
			public getEventTime(): any;
			/**
			 * #getX(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getX(): number;
			/**
			 * #getY(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getY(): number;
			/**
			 * #getPressure(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getPressure(): number;
			/**
			 * #getSize(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getSize(): number;
			/**
			 * #getTouchMajor(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getTouchMajor(): number;
			/**
			 * #getTouchMinor(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getTouchMinor(): number;
			/**
			 * #getToolMajor(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getToolMajor(): number;
			/**
			 * #getToolMinor(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getToolMinor(): number;
			/**
			 * #getOrientation(int) for the first pointer index (may be an arbitrary pointer identifier).
			 */
			public getOrientation(): number;
			/**
			 * #getAxisValue(int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param axis The axis identifier for the axis value to retrieve.
			 */
			public getAxisValue(axis: number): number;
			/**
			 * The number of pointers of data contained in this event. Always >= 1.
			 */
			public getPointerCount(): number;
			/**
			 * Return the pointer identifier associated with a particular pointer data index is this event. The identifier tells you the actual pointer number associated with the data, accounting for individual pointers going up and down since the start of the current gesture.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getPointerId(pointerIndex: number): number;
			/**
			 * Gets the tool type of a pointer for the given pointer index. The tool type indicates the type of tool used to make contact such as a finger or stylus, if known.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getToolType(pointerIndex: number): number;
			/**
			 * Given a pointer identifier, find the index of its data in the event. 
			 * @param pointerId The identifier of the pointer to be found.
			 */
			public findPointerIndex(pointerId: number): number;
			/**
			 * Returns the X coordinate of this event for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index). Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getX(pointerIndex: number): number;
			/**
			 * Returns the Y coordinate of this event for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index). Whole numbers are pixels; the value may have a fraction for input devices that are sub-pixel precise.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getY(pointerIndex: number): number;
			/**
			 * Returns the current pressure of this event for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index). The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure), however values higher than 1 may be generated depending on the calibration of the input device.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getPressure(pointerIndex: number): number;
			/**
			 * Returns a scaled value of the approximate size for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index). This represents some approximation of the area of the screen being pressed; the actual value in pixels corresponding to the touch is normalized with the device specific range of values and scaled to a value between 0 and 1. The value of size can be used to determine fat touch events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getSize(pointerIndex: number): number;
			/**
			 * Returns the length of the major axis of an ellipse that describes the touch area at the point of contact for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index).
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getTouchMajor(pointerIndex: number): number;
			/**
			 * Returns the length of the minor axis of an ellipse that describes the touch area at the point of contact for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index).
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getTouchMinor(pointerIndex: number): number;
			/**
			 * Returns the length of the major axis of an ellipse that describes the size of the approaching tool for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index). The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getToolMajor(pointerIndex: number): number;
			/**
			 * Returns the length of the minor axis of an ellipse that describes the size of the approaching tool for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index). The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getToolMinor(pointerIndex: number): number;
			/**
			 * Returns the orientation of the touch area and tool area in radians clockwise from vertical for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index). An angle of 0 radians indicates that the major axis of contact is oriented upwards, is perfectly circular or is of unknown orientation. A positive angle indicates that the major axis of contact is oriented to the right. A negative angle indicates that the major axis of contact is oriented to the left. The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians (finger pointing fully right).
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getOrientation(pointerIndex: number): number;
			/**
			 * Returns the value of the requested axis for the given pointer <em>index</em> (use #getPointerId(int) to find the pointer identifier for this index).
			 * @param axis The axis identifier for the axis value to retrieve.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 */
			public getAxisValue(axis: number, pointerIndex: number): number;
			/**
			 * Populates a PointerCoords object with pointer coordinate data for the specified pointer index. 
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param outPointerCoords The pointer coordinate object to populate.
			 */
			public getPointerCoords(pointerIndex: number, outPointerCoords: android.view.MotionEvent.PointerCoords): void;
			/**
			 * Populates a PointerProperties object with pointer properties for the specified pointer index.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param outPointerProperties The pointer properties object to populate.
			 */
			public getPointerProperties(pointerIndex: number, outPointerProperties: android.view.MotionEvent.PointerProperties): void;
			/**
			 * Returns the state of any meta / modifier keys that were in effect when the event was generated. This is the same values as those returned by KeyEvent#getMetaState() KeyEvent.getMetaState.
			 */
			public getMetaState(): number;
			/**
			 * Gets the state of all buttons that are pressed such as a mouse or stylus button.
			 */
			public getButtonState(): number;
			/**
			 * Returns the original raw X coordinate of this event. For touch events on the screen, this is the original location of the event on the screen, before it had been adjusted for the containing window and views.
			 */
			public getRawX(): number;
			/**
			 * Returns the original raw Y coordinate of this event. For touch events on the screen, this is the original location of the event on the screen, before it had been adjusted for the containing window and views.
			 */
			public getRawY(): number;
			/**
			 * Return the precision of the X coordinates being reported. You can multiply this number with #getX to find the actual hardware value of the X coordinate.
			 */
			public getXPrecision(): number;
			/**
			 * Return the precision of the Y coordinates being reported. You can multiply this number with #getY to find the actual hardware value of the Y coordinate.
			 */
			public getYPrecision(): number;
			/**
			 * Returns the number of historical points in this event. These are movements that have occurred between this event and the previous event. This only applies to ACTION_MOVE events -- all other actions will have a size of 0.
			 */
			public getHistorySize(): number;
			/**
			 * Returns the time that a historical movement occurred between this event and the previous event, in the android.os.SystemClock#uptimeMillis time base.
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalEventTime(pos: number): any;
			/**
			 * #getHistoricalX(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalX(pos: number): number;
			/**
			 * #getHistoricalY(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalY(pos: number): number;
			/**
			 * #getHistoricalPressure(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalPressure(pos: number): number;
			/**
			 * #getHistoricalSize(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalSize(pos: number): number;
			/**
			 * #getHistoricalTouchMajor(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalTouchMajor(pos: number): number;
			/**
			 * #getHistoricalTouchMinor(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalTouchMinor(pos: number): number;
			/**
			 * #getHistoricalToolMajor(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalToolMajor(pos: number): number;
			/**
			 * #getHistoricalToolMinor(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalToolMinor(pos: number): number;
			/**
			 * #getHistoricalOrientation(int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalOrientation(pos: number): number;
			/**
			 * #getHistoricalAxisValue(int, int, int) for the first pointer index (may be an arbitrary pointer identifier).
			 * @param axis The axis identifier for the axis value to retrieve.
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalAxisValue(axis: number, pos: number): number;
			/**
			 * Returns a historical X coordinate, as per #getX(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalX(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical Y coordinate, as per #getY(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalY(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical pressure coordinate, as per #getPressure(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalPressure(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical size coordinate, as per #getSize(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalSize(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical touch major axis coordinate, as per #getTouchMajor(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalTouchMajor(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical touch minor axis coordinate, as per #getTouchMinor(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalTouchMinor(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical tool major axis coordinate, as per #getToolMajor(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalToolMajor(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical tool minor axis coordinate, as per #getToolMinor(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalToolMinor(pointerIndex: number, pos: number): number;
			/**
			 * Returns a historical orientation coordinate, as per #getOrientation(int), that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalOrientation(pointerIndex: number, pos: number): number;
			/**
			 * Returns the historical value of the requested axis, as per #getAxisValue(int, int), occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events.
			 * @param axis The axis identifier for the axis value to retrieve.
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 */
			public getHistoricalAxisValue(axis: number, pointerIndex: number, pos: number): number;
			/**
			 * Populates a PointerCoords object with historical pointer coordinate data, as per #getPointerCoords, that occurred between this event and the previous event for the given pointer. Only applies to ACTION_MOVE events. 
			 * @param pointerIndex Raw index of pointer to retrieve. Value may be from 0
			 * @param pos Which historical value to return; must be less than
			 * @param outPointerCoords The pointer coordinate object to populate.
			 */
			public getHistoricalPointerCoords(pointerIndex: number, pos: number, outPointerCoords: android.view.MotionEvent.PointerCoords): void;
			/**
			 * Returns a bitfield indicating which edges, if any, were touched by this MotionEvent. For touch events, clients can use this to determine if the user's finger was touching the edge of the display.
			 */
			public getEdgeFlags(): number;
			/**
			 * Sets the bitfield indicating which edges, if any, were touched by this MotionEvent.
			 */
			public setEdgeFlags(flags: number): void;
			/**
			 * Sets this event's action.
			 */
			public setAction(action: number): void;
			/**
			 * Adjust this event's location.
			 * @param deltaX Amount to add to the current X coordinate of the event.
			 * @param deltaY Amount to add to the current Y coordinate of the event.
			 */
			public offsetLocation(deltaX: number, deltaY: number): void;
			/**
			 * Set this event's location. Applies #offsetLocation with a delta from the current location to the given new location.
			 * @param x New absolute X location.
			 * @param y New absolute Y location.
			 */
			public setLocation(x: number, y: number): void;
			/**
			 * Applies a transformation matrix to all of the points in the event.
			 * @param matrix The transformation matrix to apply.
			 */
			public transform(matrix: android.graphics.Matrix): void;
			/**
			 * Add a new movement to the batch of movements in this event. The event's current location, position and size is updated to the new values. The current values in the event are added to a list of historical values.
			 * @param eventTime The time stamp (in ms) for this data.
			 * @param x The new X position.
			 * @param y The new Y position.
			 * @param pressure The new pressure.
			 * @param size The new size.
			 * @param metaState Meta key state.
			 */
			public addBatch(eventTime: number, x: number, y: number, pressure: number, size: number, metaState: number): void;
			/**
			 * Add a new movement to the batch of movements in this event. The event's current location, position and size is updated to the new values. The current values in the event are added to a list of historical values.
			 * @param eventTime The time stamp (in ms) for this data.
			 * @param pointerCoords The new pointer coordinates.
			 * @param metaState Meta key state.
			 */
			public addBatch(eventTime: number, pointerCoords: native.Array<android.view.MotionEvent.PointerCoords>, metaState: number): void;
			public toString(): string;
			/**
			 * Returns a string that represents the symbolic name of the specified axis such as "AXIS_X" or an equivalent numeric constant such as "42" if unknown.
			 * @param axis The axis
			 */
			public static axisToString(axis: number): string;
			/**
			 * Gets an axis by its symbolic name such as "AXIS_X" or an equivalent numeric constant such as "42".
			 * @param symbolicName The symbolic name of the axis.
			 */
			public static axisFromString(symbolicName: string): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
		}
		export module MotionEvent {
			/**
			 * Transfer object for pointer coordinates. Objects of this type can be used to specify the pointer coordinates when creating new MotionEvent objects and to query pointer coordinates in bulk. Refer to InputDevice for information about how different kinds of input devices and sources represent pointer coordinates.
			 */
			export class PointerCoords extends java.lang.Object {
				/**
				 * Creates a pointer coords object with all axes initialized to zero.
				 */
				constructor();
				/**
				 * Creates a pointer coords object as a copy of the contents of another pointer coords object.
				 * @param other The pointer coords object to copy.
				 */
				constructor(other: android.view.MotionEvent.PointerCoords);
				/**
				 * The X component of the pointer movement.
				 */
				x: number;
				/**
				 * The Y component of the pointer movement.
				 */
				y: number;
				/**
				 * A normalized value that describes the pressure applied to the device by a finger or other tool. The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure), although values higher than 1 may be generated depending on the calibration of the input device.
				 */
				pressure: number;
				/**
				 * A normalized value that describes the approximate size of the pointer touch area in relation to the maximum detectable size of the device. It represents some approximation of the area of the screen being pressed; the actual value in pixels corresponding to the touch is normalized with the device specific range of values and scaled to a value between 0 and 1. The value of size can be used to determine fat touch events.
				 */
				size: number;
				/**
				 * The length of the major axis of an ellipse that describes the touch area at the point of contact. If the device is a touch screen, the length is reported in pixels, otherwise it is reported in device-specific units.
				 */
				touchMajor: number;
				/**
				 * The length of the minor axis of an ellipse that describes the touch area at the point of contact. If the device is a touch screen, the length is reported in pixels, otherwise it is reported in device-specific units.
				 */
				touchMinor: number;
				/**
				 * The length of the major axis of an ellipse that describes the size of the approaching tool. The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact. If the device is a touch screen, the length is reported in pixels, otherwise it is reported in device-specific units.
				 */
				toolMajor: number;
				/**
				 * The length of the minor axis of an ellipse that describes the size of the approaching tool. The tool area represents the estimated size of the finger or pen that is touching the device independent of its actual touch area at the point of contact. If the device is a touch screen, the length is reported in pixels, otherwise it is reported in device-specific units.
				 */
				toolMinor: number;
				/**
				 * The orientation of the touch area and tool area in radians clockwise from vertical. An angle of 0 radians indicates that the major axis of contact is oriented upwards, is perfectly circular or is of unknown orientation. A positive angle indicates that the major axis of contact is oriented to the right. A negative angle indicates that the major axis of contact is oriented to the left. The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians (finger pointing fully right).
				 */
				orientation: number;
				static class: java.lang.Class<android.view.MotionEvent.PointerCoords>;
				/**
				 * Clears the contents of this object. Resets all axes to zero.
				 */
				public clear(): void;
				/**
				 * Copies the contents of another pointer coords object.
				 * @param other The pointer coords object to copy.
				 */
				public copyFrom(other: android.view.MotionEvent.PointerCoords): void;
				/**
				 * Gets the value associated with the specified axis.
				 * @param axis The axis identifier for the axis value to retrieve.
				 */
				public getAxisValue(axis: number): number;
				/**
				 * Sets the value associated with the specified axis.
				 * @param axis The axis identifier for the axis value to assign.
				 * @param value The value to set.
				 */
				public setAxisValue(axis: number, value: number): void;
			}
			/**
			 * Transfer object for pointer properties.
			 */
			export class PointerProperties extends java.lang.Object {
				/**
				 * Creates a pointer properties object with an invalid pointer id.
				 */
				constructor();
				/**
				 * Creates a pointer properties object as a copy of the contents of another pointer properties object.
				 * @param other 
				 */
				constructor(other: android.view.MotionEvent.PointerProperties);
				/**
				 * The pointer id. Initially set to #INVALID_POINTER_ID (-1).
				 */
				id: number;
				/**
				 * The pointer tool type. Initially set to 0.
				 */
				toolType: number;
				static class: java.lang.Class<android.view.MotionEvent.PointerProperties>;
				/**
				 * Resets the pointer properties to their initial values.
				 */
				public clear(): void;
				/**
				 * Copies the contents of another pointer properties object.
				 * @param other The pointer properties object to copy.
				 */
				public copyFrom(other: android.view.MotionEvent.PointerProperties): void;
				public equals(other: any): boolean;
				public hashCode(): number;
			}
		}
		/**
		 * A Parcelable implementation that should be used by inheritance hierarchies to ensure the state of all classes along the chain is saved.
		 */
		export class AbsSavedState extends java.lang.Object implements android.os.IParcelable {
			static EMPTY_STATE: android.view.AbsSavedState;
			static CREATOR: android.os.Parcelable.ICreator<android.view.AbsSavedState>;
			static class: java.lang.Class<android.view.AbsSavedState>;
			public getSuperState(): android.os.IParcelable;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Tests views with popupWindows becoming invisible
		 */
		export class PreDrawListener extends android.app.Activity implements android.view.View.IOnClickListener {
			constructor();
			static class: java.lang.Class<android.view.PreDrawListener>;
			protected onCreate(icicle: android.os.Bundle): void;
			public onClick(v: android.view.View): void;
		}
		export module PreDrawListener {
			export class MyLinearLayout extends android.widget.LinearLayout implements android.view.ViewTreeObserver.IOnPreDrawListener {
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				constructor(context: android.content.Context);
				mCancelNextDraw: boolean;
				static class: java.lang.Class<android.view.PreDrawListener.MyLinearLayout>;
				protected onAttachedToWindow(): void;
				public onPreDraw(): boolean;
			}
		}
		/**
		 * Class allowing access to package-protected methods/fields.
		 */
		export class AttachInfo_Accessor extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.view.AttachInfo_Accessor>;
			public static setAttachInfo(view: android.view.View): void;
			public static dispatchOnPreDraw(view: android.view.View): void;
		}
		/**
		 * A ContextWrapper that allows you to modify the theme from what is in the wrapped context.
		 */
		export class ContextThemeWrapper extends android.content.ContextWrapper {
			constructor();
			constructor(base: android.content.Context, themeres: number);
			static class: java.lang.Class<android.view.ContextThemeWrapper>;
			protected attachBaseContext(newBase: android.content.Context): void;
			/**
			 * Call to set an "override configuration" on this context -- this is a configuration that replies one or more values of the standard configuration that is applied to the context. See Context#createConfigurationContext(Configuration) for more information.
			 */
			public applyOverrideConfiguration(overrideConfiguration: android.content.res.Configuration): void;
			public getResources(): android.content.res.Resources;
			public setTheme(resid: number): void;
			public getTheme(): android.content.res.Resources.Theme;
			public getSystemService(name: string): any;
			/**
			 * Called by #setTheme and #getTheme to apply a theme resource to the current Theme object. Can override to change the default (simple) behavior. This method will not be called in multiple threads simultaneously.
			 * @param theme The Theme object being modified.
			 * @param resid The theme style resource being applied to <var>theme</var>.
			 * @param first Set to true if this is the first time a style is being
			 */
			protected onApplyThemeResource(theme: android.content.res.Resources.Theme, resid: number, first: boolean): void;
		}
		/**
		 * Delegate used to provide new implementation of a select few methods of LayoutInflater
		 */
		export class LayoutInflater_Delegate extends java.lang.Object {
			constructor();
			static sIsInInclude: boolean;
			static class: java.lang.Class<android.view.LayoutInflater_Delegate>;
			/**
			 * Recursive method used to descend down the xml hierarchy and instantiate views, instantiate their children, and then call onFinishInflate().
			 */
			static rInflate(thisInflater: android.view.LayoutInflater, parser: org.xmlpull.v1.IXmlPullParser, parent: android.view.View, attrs: android.util.IAttributeSet, finishInflate: boolean): void;
			public static parseInclude(thisInflater: android.view.LayoutInflater, parser: org.xmlpull.v1.IXmlPullParser, parent: android.view.View, attrs: android.util.IAttributeSet): void;
		}
		export class InflateTest extends android.test.AndroidTestCase implements android.test.IPerformanceTestCase {
			constructor();
			static class: java.lang.Class<android.view.InflateTest>;
			protected setUp(): void;
			public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			public isPerformanceOnly(): boolean;
			public inflateTest(resourceId: number): void;
			public inflateCachedTest(resourceId: number): void;
			public testLayout1(): void;
			public testLayout2(): void;
			public testLayout3(): void;
			public testLayout4(): void;
			public testLayout5(): void;
			public testLayout6(): void;
			public testCachedLayout1(): void;
			public testCachedLayout2(): void;
			public testCachedLayout3(): void;
			public testCachedLayout4(): void;
			public testCachedLayout5(): void;
			public testCachedLayout6(): void;
		}
		export module InflateTest {
			export class ViewOne extends android.view.View {
				constructor(context: android.content.Context);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.view.InflateTest.ViewOne>;
			}
		}
		/**
		 * Abstract interface to someone holding a display surface. Allows you to control the surface size and format, edit the pixels in the surface, and monitor changes to the surface. This interface is typically available through the SurfaceView class. 
		 */
		interface ISurfaceHolder {
			/**
			 * Add a Callback interface for this holder. There can several Callback interfaces associated with a holder. 
			 * @param callback The new Callback interface.
			 */
			addCallback(callback: android.view.SurfaceHolder.ICallback): void;
			/**
			 * Removes a previously added Callback interface from this holder. 
			 * @param callback The Callback interface to remove.
			 */
			removeCallback(callback: android.view.SurfaceHolder.ICallback): void;
			/**
			 * Use this method to find out if the surface is in the process of being created from Callback methods. This is intended to be used with Callback#surfaceChanged. 
			 */
			isCreating(): boolean;
			/**
			 * Sets the surface's type. this is ignored, this value is set automatically when needed.
			 */
			setType(type: number): void;
			/**
			 * Make the surface a fixed size. It will never change from this size. When working with a SurfaceView, this must be called from the same thread running the SurfaceView's window. 
			 * @param width The surface's width.
			 * @param height The surface's height.
			 */
			setFixedSize(width: number, height: number): void;
			/**
			 * Allow the surface to resized based on layout of its container (this is the default). When this is enabled, you should monitor Callback#surfaceChanged for changes to the size of the surface. When working with a SurfaceView, this must be called from the same thread running the SurfaceView's window.
			 */
			setSizeFromLayout(): void;
			/**
			 * Set the desired PixelFormat of the surface. The default is OPAQUE. When working with a SurfaceView, this must be called from the same thread running the SurfaceView's window. 
			 * @param format A constant from PixelFormat.
			 */
			setFormat(format: number): void;
			/**
			 * Enable or disable option to keep the screen turned on while this surface is displayed. The default is false, allowing it to turn off. This is safe to call from any thread. 
			 * @param screenOn Set to true to force the screen to stay on, false
			 */
			setKeepScreenOn(screenOn: boolean): void;
			/**
			 * Start editing the pixels in the surface. The returned Canvas can be used to draw into the surface's bitmap. A null is returned if the surface has not been created or otherwise cannot be edited. You will usually need to implement Callback#surfaceCreated Callback.surfaceCreated to find out when the Surface is available for use. 
			 */
			lockCanvas(): android.graphics.Canvas;
			/**
			 * Just like #lockCanvas() but allows specification of a dirty rectangle. Every pixel within that rectangle must be written; however pixels outside the dirty rectangle will be preserved by the next call to lockCanvas(). android.view.SurfaceHolder#lockCanvas 
			 * @param dirty Area of the Surface that will be modified.
			 */
			lockCanvas(dirty: android.graphics.Rect): android.graphics.Canvas;
			/**
			 * Finish editing pixels in the surface. After this call, the surface's current pixels will be shown on the screen, but its content is lost, in particular there is no guarantee that the content of the Surface will remain unchanged when lockCanvas() is called again. #lockCanvas()
			 * @param canvas The Canvas previously returned by lockCanvas().
			 */
			unlockCanvasAndPost(canvas: android.graphics.Canvas): void;
			/**
			 * Retrieve the current size of the surface. Note: do not modify the returned Rect. This is only safe to call from the thread of SurfaceView's window, or while inside of #lockCanvas(). 
			 */
			getSurfaceFrame(): android.graphics.Rect;
			/**
			 * Direct access to the surface object. The Surface may not always be available -- for example when using a SurfaceView the holder's Surface is not created until the view has been attached to the window manager and performed a layout in order to determine the dimensions and screen position of the Surface. You will thus usually need to implement Callback#surfaceCreated Callback.surfaceCreated to find out when the Surface is available for use. 
			 */
			getSurface(): android.view.Surface;
		}
		export module ISurfaceHolder {
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			var SURFACE_TYPE_NORMAL: number;
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			var SURFACE_TYPE_HARDWARE: number;
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			var SURFACE_TYPE_GPU: number;
			/**
			 *  this is ignored, this value is set automatically when needed.
			 */
			var SURFACE_TYPE_PUSH_BUFFERS: number;
		}
		export class WindowLeaked extends android.util.AndroidRuntimeException {
			constructor(msg: string);
			static class: java.lang.Class<android.view.WindowLeaked>;
		}
	}
	export module database {
		/**
		 * A specialization of Observable for DataSetObserver that provides methods for sending notifications to a list of DataSetObserver objects.
		 */
		export class DataSetObservable extends android.database.Observable<android.database.DataSetObserver> {
			constructor();
			static class: java.lang.Class<android.database.DataSetObservable>;
			/**
			 * Invokes DataSetObserver#onChanged on each observer. Called when the contents of the data set have changed. The recipient will obtain the new contents the next time it queries the data set.
			 */
			public notifyChanged(): void;
			/**
			 * Invokes DataSetObserver#onInvalidated on each observer. Called when the data set is no longer valid and cannot be queried again, such as when the data set has been closed.
			 */
			public notifyInvalidated(): void;
		}
		/**
		 * An exception that indicates there was an error with SQL parsing or execution.
		 */
		export class SQLException extends java.lang.RuntimeException {
			constructor();
			constructor(error: string);
			constructor(error: string, cause: java.lang.Throwable);
			static class: java.lang.Class<android.database.SQLException>;
		}
		/**
		 * This is used for Cursor#copyStringToBuffer
		 */
		export class CharArrayBuffer extends java.lang.Object {
			constructor(size: number);
			constructor(buf: native.Array<string>);
			data: native.Array<string>;
			sizeCopied: number;
			static class: java.lang.Class<android.database.CharArrayBuffer>;
		}
		/**
		 * A buffer containing multiple cursor rows.
		 */
		export class CursorWindow extends android.database.sqlite.SQLiteClosable implements android.os.IParcelable {
			/**
			 * Creates a new empty cursor window and gives it a name.
			 * @param name The name of the cursor window, or null if none.
			 */
			constructor(name: string);
			/**
			 * Creates a new empty cursor window.
			 * @param localWindow True if this window will be used in this process only,
			 */
			constructor(localWindow: boolean);
			static CREATOR: android.os.Parcelable.ICreator<android.database.CursorWindow>;
			static class: java.lang.Class<android.database.CursorWindow>;
			protected finalize(): void;
			/**
			 * Clears out the existing contents of the window, making it safe to reuse for new data.
			 */
			public clear(): void;
			/**
			 * Gets the start position of this cursor window.
			 */
			public getStartPosition(): number;
			/**
			 * Sets the start position of this cursor window.
			 * @param pos The new zero-based start position.
			 */
			public setStartPosition(pos: number): void;
			/**
			 * Gets the number of rows in this window.
			 */
			public getNumRows(): number;
			/**
			 * Sets the number of columns in this window.
			 * @param columnNum The new number of columns.
			 */
			public setNumColumns(columnNum: number): boolean;
			/**
			 * Allocates a new row at the end of this cursor window.
			 */
			public allocRow(): boolean;
			/**
			 * Frees the last row in this cursor window.
			 */
			public freeLastRow(): void;
			/**
			 * Returns true if the field at the specified row and column index has type Cursor#FIELD_TYPE_NULL.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public isNull(row: number, column: number): boolean;
			/**
			 * Returns true if the field at the specified row and column index has type Cursor#FIELD_TYPE_BLOB or Cursor#FIELD_TYPE_NULL.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public isBlob(row: number, column: number): boolean;
			/**
			 * Returns true if the field at the specified row and column index has type Cursor#FIELD_TYPE_INTEGER.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public isLong(row: number, column: number): boolean;
			/**
			 * Returns true if the field at the specified row and column index has type Cursor#FIELD_TYPE_FLOAT.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public isFloat(row: number, column: number): boolean;
			/**
			 * Returns true if the field at the specified row and column index has type Cursor#FIELD_TYPE_STRING or Cursor#FIELD_TYPE_NULL.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public isString(row: number, column: number): boolean;
			/**
			 * Returns the type of the field at the specified row and column index.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getType(row: number, column: number): number;
			/**
			 * Gets the value of the field at the specified row and column index as a byte array.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getBlob(row: number, column: number): native.Array<number>;
			/**
			 * Gets the value of the field at the specified row and column index as a string.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getString(row: number, column: number): string;
			/**
			 * Copies the text of the field at the specified row and column index into a CharArrayBuffer.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 * @param buffer The {@link CharArrayBuffer} to hold the string. It is automatically
			 */
			public copyStringToBuffer(row: number, column: number, buffer: android.database.CharArrayBuffer): void;
			/**
			 * Gets the value of the field at the specified row and column index as a <code>long</code>.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getLong(row: number, column: number): any;
			/**
			 * Gets the value of the field at the specified row and column index as a <code>double</code>.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getDouble(row: number, column: number): any;
			/**
			 * Gets the value of the field at the specified row and column index as a <code>short</code>.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getShort(row: number, column: number): number;
			/**
			 * Gets the value of the field at the specified row and column index as an <code>int</code>.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getInt(row: number, column: number): number;
			/**
			 * Gets the value of the field at the specified row and column index as a <code>float</code>.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public getFloat(row: number, column: number): number;
			/**
			 * Copies a byte array into the field at the specified row and column index.
			 * @param value The value to store.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public putBlob(value: native.Array<number>, row: number, column: number): boolean;
			/**
			 * Copies a string into the field at the specified row and column index.
			 * @param value The value to store.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public putString(value: string, row: number, column: number): boolean;
			/**
			 * Puts a long integer into the field at the specified row and column index.
			 * @param value The value to store.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public putLong(value: number, row: number, column: number): boolean;
			/**
			 * Puts a double-precision floating point value into the field at the specified row and column index.
			 * @param value The value to store.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public putDouble(value: number, row: number, column: number): boolean;
			/**
			 * Puts a null value into the field at the specified row and column index.
			 * @param row The zero-based row index.
			 * @param column The zero-based column index.
			 */
			public putNull(row: number, column: number): boolean;
			public static newFromParcel(p: android.os.Parcel): android.database.CursorWindow;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			protected onAllReferencesReleased(): void;
			public toString(): string;
		}
		/**
		 * Default class used to define the actions to take when the database corruption is reported by sqlite.
		 */
		export class DefaultDatabaseErrorHandler extends java.lang.Object implements android.database.IDatabaseErrorHandler {
			constructor();
			static class: java.lang.Class<android.database.DefaultDatabaseErrorHandler>;
			/**
			 * defines the default method to be invoked when database corruption is detected.
			 * @param dbObj the {@link SQLiteDatabase} object representing the database on which corruption
			 */
			public onCorruption(dbObj: android.database.sqlite.SQLiteDatabase): void;
		}
		/**
		 * This interface provides random read-write access to the result set returned by a database query.
		 */
		export class Cursor implements java.io.ICloseable, android.database.ICursor {
			constructor(implementation: android.database.ICursor);
			/**
			 * Value returned by #getType(int) if the specified column is null
			 */
			static FIELD_TYPE_NULL: number;
			/**
			 * Value returned by #getType(int) if the specified column type is integer
			 */
			static FIELD_TYPE_INTEGER: number;
			/**
			 * Value returned by #getType(int) if the specified column type is float
			 */
			static FIELD_TYPE_FLOAT: number;
			/**
			 * Value returned by #getType(int) if the specified column type is string
			 */
			static FIELD_TYPE_STRING: number;
			/**
			 * Value returned by #getType(int) if the specified column type is blob
			 */
			static FIELD_TYPE_BLOB: number;
			/**
			 * Returns the numbers of rows in the cursor.
			 */
			public getCount(): number;
			/**
			 * Returns the current position of the cursor in the row set. The value is zero-based. When the row set is first returned the cursor will be at positon -1, which is before the first row. After the last row is returned another call to next() will leave the cursor past the last entry, at a position of count().
			 */
			public getPosition(): number;
			/**
			 * Move the cursor by a relative amount, forward or backward, from the current position. Positive offsets move forwards, negative offsets move backwards. If the final position is outside of the bounds of the result set then the resultant position will be pinned to -1 or count() depending on whether the value is off the front or end of the set, respectively.
			 * @param offset the offset to be applied from the current position.
			 */
			public move(offset: number): boolean;
			/**
			 * Move the cursor to an absolute position. The valid range of values is -1 &lt;= position &lt;= count.
			 * @param position the zero-based position to move to.
			 */
			public moveToPosition(position: number): boolean;
			/**
			 * Move the cursor to the first row.
			 */
			public moveToFirst(): boolean;
			/**
			 * Move the cursor to the last row.
			 */
			public moveToLast(): boolean;
			/**
			 * Move the cursor to the next row.
			 */
			public moveToNext(): boolean;
			/**
			 * Move the cursor to the previous row.
			 */
			public moveToPrevious(): boolean;
			/**
			 * Returns whether the cursor is pointing to the first row.
			 */
			public isFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the last row.
			 */
			public isLast(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position before the first row.
			 */
			public isBeforeFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position after the last row.
			 */
			public isAfterLast(): boolean;
			/**
			 * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. If you expect the column to exist use #getColumnIndexOrThrow(String) instead, which will make the error more clear.
			 * @param columnName the name of the target column.
			 */
			public getColumnIndex(columnName: string): number;
			/**
			 * Returns the zero-based index for the given column name, or throws IllegalArgumentException if the column doesn't exist. If you're not sure if a column will exist or not use #getColumnIndex(String) and check for -1, which is more efficient than catching the exceptions.
			 * @param columnName the name of the target column.
			 */
			public getColumnIndexOrThrow(columnName: string): number;
			/**
			 * Returns the column name at the given zero-based column index.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getColumnName(columnIndex: number): string;
			/**
			 * Returns a string array holding the names of all of the columns in the result set in the order in which they were listed in the result.
			 */
			public getColumnNames(): native.Array<string>;
			/**
			 * Return total number of columns
			 */
			public getColumnCount(): number;
			/**
			 * Returns the value of the requested column as a byte array.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getBlob(columnIndex: number): native.Array<number>;
			/**
			 * Returns the value of the requested column as a String.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getString(columnIndex: number): string;
			/**
			 * Retrieves the requested column text and stores it in the buffer provided. If the buffer size is not sufficient, a new char buffer will be allocated and assigned to CharArrayBuffer.data
			 * @param columnIndex the zero-based index of the target column.
			 * @param buffer the buffer to copy the text into.
			 */
			public copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			/**
			 * Returns the value of the requested column as a short.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getShort(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as an int.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getInt(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a long.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getLong(columnIndex: number): any;
			/**
			 * Returns the value of the requested column as a float.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getFloat(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a double.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getDouble(columnIndex: number): any;
			/**
			 * Returns data type of the given column's value. The preferred type of the column is returned but the data may be converted to other types as documented in the get-type methods such as #getInt(int), #getFloat(int) etc.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public getType(columnIndex: number): number;
			/**
			 * Returns <code>true</code> if the value in the indicated column is null.
			 * @param columnIndex the zero-based index of the target column.
			 */
			public isNull(columnIndex: number): boolean;
			/**
			 * Deactivates the Cursor, making all calls on it fail until #requery is called. Inactive Cursors use fewer resources than active Cursors. Calling #requery will make the cursor active again. Since #requery() is deprecated, so too is this.
			 */
			public deactivate(): void;
			/**
			 * Performs the query that created the cursor again, refreshing its contents. This may be done at any time, including after a call to #deactivate.
			 */
			public requery(): boolean;
			/**
			 * Closes the Cursor, releasing all of its resources and making it completely invalid. Unlike #deactivate() a call to #requery() will not make the Cursor valid again.
			 */
			public close(): void;
			/**
			 * return true if the cursor is closed
			 */
			public isClosed(): boolean;
			/**
			 * Register an observer that is called when changes happen to the content backing this cursor. Typically the data set won't change until #requery() is called.
			 * @param observer the object that gets notified when the content backing the cursor changes.
			 */
			public registerContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			public unregisterContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Register an observer that is called when changes happen to the contents of the this cursors data set, for example, when the data set is changed via #requery(), #deactivate(), or #close().
			 * @param observer the object that gets notified when the cursors data set changes.
			 */
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Register to watch a content URI for changes. This can be the URI of a specific data row (for example, "content://my_provider_type/23"), or a a generic URI for a content type. 
			 * @param cr The content resolver from the caller's context. The listener attached to
			 * @param uri The content URI to watch.
			 */
			public setNotificationUri(cr: android.content.ContentResolver, uri: android.net.Uri): void;
			/**
			 * onMove() will only be called across processes if this method returns true.
			 */
			public getWantsAllOnMoveCalls(): boolean;
			/**
			 * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band metadata to their users. One use of this is for reporting on the progress of network requests that are required to fetch data for the cursor.
			 */
			public getExtras(): android.os.Bundle;
			/**
			 * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The structure of each bundle is entirely defined by the cursor.
			 * @param extras extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}.
			 */
			public respond(extras: android.os.Bundle): android.os.Bundle;
		}
		/**
		 * A specialization of Observable for ContentObserver that provides methods for sending notifications to a list of ContentObserver objects.
		 */
		export class ContentObservable extends android.database.Observable<android.database.ContentObserver> {
			constructor();
			static class: java.lang.Class<android.database.ContentObservable>;
			public registerObserver(observer: android.database.ContentObserver): void;
			/**
			 * Invokes ContentObserver#dispatchChange(boolean) on each observer.
			 * @param selfChange True if this is a self-change notification.
			 */
			public dispatchChange(selfChange: boolean): void;
			/**
			 * Invokes ContentObserver#dispatchChange(boolean, Uri) on each observer. Includes the changed content Uri when available.
			 * @param selfChange True if this is a self-change notification.
			 * @param uri The Uri of the changed content, or null if unknown.
			 */
			public dispatchChange(selfChange: boolean, uri: android.net.Uri): void;
			/**
			 * Invokes ContentObserver#onChange on each observer.
			 * @param selfChange True if this is a self-change notification.
			 */
			public notifyChange(selfChange: boolean): void;
		}
		export class DatabaseLockTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.database.DatabaseLockTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testLockFairness(): void;
			public testLockLatency(): void;
		}
		export module DatabaseLockTest {
			export class DatabaseLatencyThread extends java.lang.Thread {
				static class: java.lang.Class<android.database.DatabaseLockTest.DatabaseLatencyThread>;
				public run(): void;
			}
			export class DatabaseFairnessThread extends java.lang.Thread {
				static class: java.lang.Class<android.database.DatabaseLockTest.DatabaseFairnessThread>;
				public run(): void;
			}
		}
		/**
		 * A mutable cursor implementation backed by an array of Objects. Use #newRow() to add rows. Automatically expands internal capacity as needed.
		 */
		export class MatrixCursor extends android.database.AbstractCursor {
			/**
			 * Constructs a new cursor with the given initial capacity.
			 * @param columnNames names of the columns, the ordering of which
			 * @param initialCapacity in rows
			 */
			constructor(columnNames: native.Array<string>, initialCapacity: number);
			/**
			 * Constructs a new cursor.
			 * @param columnNames names of the columns, the ordering of which
			 */
			constructor(columnNames: native.Array<string>);
			static class: java.lang.Class<android.database.MatrixCursor>;
			/**
			 * Adds a new row to the end and returns a builder for that row. Not safe for concurrent use.
			 */
			public newRow(): android.database.MatrixCursor.RowBuilder;
			/**
			 * Adds a new row to the end with the given column values. Not safe for concurrent use.
			 * @param columnValues in the same order as the the column names specified
			 */
			public addRow(columnValues: native.Array<any>): void;
			/**
			 * Adds a new row to the end with the given column values. Not safe for concurrent use.
			 * @param columnValues in the same order as the the column names specified
			 */
			public addRow(columnValues: java.lang.IIterable<any>): void;
			public getCount(): number;
			public getColumnNames(): native.Array<string>;
			public getString(column: number): string;
			public getShort(column: number): number;
			public getInt(column: number): number;
			public getLong(column: number): any;
			public getFloat(column: number): number;
			public getDouble(column: number): any;
			public getBlob(column: number): native.Array<number>;
			public getType(column: number): number;
			public isNull(column: number): boolean;
		}
		export module MatrixCursor {
			/**
			 * Builds a row, starting from the left-most column and adding one column value at a time. Follows the same ordering as the column names specified at cursor construction time.
			 */
			export class RowBuilder extends java.lang.Object {
				static class: java.lang.Class<android.database.MatrixCursor.RowBuilder>;
				/**
				 * Sets the next column value in this row.
				 */
				public add(columnValue: any): android.database.MatrixCursor.RowBuilder;
			}
		}
		/**
		 * This is an abstract cursor class that handles a lot of the common code that all cursors need to deal with and is provided for convenience reasons.
		 */
		export class AbstractCursor extends java.lang.Object implements android.database.ICrossProcessCursor {
			constructor();
			static class: java.lang.Class<android.database.AbstractCursor>;
			public getCount(): number;
			public getColumnNames(): native.Array<string>;
			public getString(column: number): string;
			public getShort(column: number): number;
			public getInt(column: number): number;
			public getLong(column: number): any;
			public getFloat(column: number): number;
			public getDouble(column: number): any;
			public isNull(column: number): boolean;
			public getType(column: number): number;
			public getBlob(column: number): native.Array<number>;
			/**
			 * If the cursor is backed by a CursorWindow, returns a pre-filled window with the contents of the cursor, otherwise null.
			 */
			public getWindow(): android.database.CursorWindow;
			public getColumnCount(): number;
			public deactivate(): void;
			public requery(): boolean;
			public isClosed(): boolean;
			public close(): void;
			/**
			 * This function is called every time the cursor is successfully scrolled to a new position, giving the subclass a chance to update any state it may have. If it returns false the move function will also do so and the cursor will scroll to the beforeFirst position.
			 * @param oldPosition the position that we're moving from
			 * @param newPosition the position that we're moving to
			 */
			public onMove(oldPosition: number, newPosition: number): boolean;
			public copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			public getPosition(): number;
			public moveToPosition(position: number): boolean;
			public fillWindow(position: number, window: android.database.CursorWindow): void;
			public move(offset: number): boolean;
			public moveToFirst(): boolean;
			public moveToLast(): boolean;
			public moveToNext(): boolean;
			public moveToPrevious(): boolean;
			public isFirst(): boolean;
			public isLast(): boolean;
			public isBeforeFirst(): boolean;
			public isAfterLast(): boolean;
			public getColumnIndex(columnName: string): number;
			public getColumnIndexOrThrow(columnName: string): number;
			public getColumnName(columnIndex: number): string;
			public registerContentObserver(observer: android.database.ContentObserver): void;
			public unregisterContentObserver(observer: android.database.ContentObserver): void;
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Subclasses must call this method when they finish committing updates to notify all observers.
			 * @param selfChange 
			 */
			protected onChange(selfChange: boolean): void;
			/**
			 * Specifies a content URI to watch for changes.
			 * @param cr The content resolver from the caller's context.
			 * @param notifyUri The URI to watch for changes. This can be a
			 */
			public setNotificationUri(cr: android.content.ContentResolver, notifyUri: android.net.Uri): void;
			public getNotificationUri(): android.net.Uri;
			public getWantsAllOnMoveCalls(): boolean;
			public getExtras(): android.os.Bundle;
			public respond(extras: android.os.Bundle): android.os.Bundle;
			/**
			 *  Always returns false since Cursors do not support updating rows
			 */
			protected isFieldUpdated(columnIndex: number): boolean;
			/**
			 *  Always returns null since Cursors do not support updating rows
			 */
			protected getUpdatedField(columnIndex: number): any;
			/**
			 * This function throws CursorIndexOutOfBoundsException if the cursor position is out of bounds. Subclass implementations of the get functions should call this before attempting to retrieve data.
			 */
			protected checkPosition(): void;
			protected finalize(): void;
		}
		export module AbstractCursor {
			/**
			 * Cursors use this class to track changes others make to their URI.
			 */
			export class SelfContentObserver extends android.database.ContentObserver {
				constructor(cursor: android.database.AbstractCursor);
				static class: java.lang.Class<android.database.AbstractCursor.SelfContentObserver>;
				public deliverSelfNotifications(): boolean;
				public onChange(selfChange: boolean): void;
				/**
				 * This method is called when a content change occurs. Includes the changed content Uri when available.
				 * @param selfChange True if this is a self-change notification.
				 * @param uri The Uri of the changed content, or null if unknown.
				 */
				onChange(selfChange: boolean, uri: android.net.Uri): void;
			}
		}
		/**
		 * A cross process cursor is an extension of a Cursor that also supports usage from remote processes.
		 */
		export class CrossProcessCursor implements android.database.ICursor, android.database.ICrossProcessCursor {
			constructor(implementation: android.database.ICrossProcessCursor);
			/**
			 * Returns a pre-filled window that contains the data within this cursor.
			 */
			public getWindow(): android.database.CursorWindow;
			/**
			 * Copies cursor data into the window.
			 * @param position The zero-based index of the first row to copy into the window.
			 * @param window The window to fill.
			 */
			public fillWindow(position: number, window: android.database.CursorWindow): void;
			/**
			 * This function is called every time the cursor is successfully scrolled to a new position, giving the subclass a chance to update any state it may have. If it returns false the move function will also do so and the cursor will scroll to the beforeFirst position.
			 * @param oldPosition The position that we're moving from.
			 * @param newPosition The position that we're moving to.
			 */
			public onMove(oldPosition: number, newPosition: number): boolean;
			/**
			 * Returns the numbers of rows in the cursor.
			 */
			getCount(): number;
			/**
			 * Returns the current position of the cursor in the row set. The value is zero-based. When the row set is first returned the cursor will be at positon -1, which is before the first row. After the last row is returned another call to next() will leave the cursor past the last entry, at a position of count().
			 */
			getPosition(): number;
			/**
			 * Move the cursor by a relative amount, forward or backward, from the current position. Positive offsets move forwards, negative offsets move backwards. If the final position is outside of the bounds of the result set then the resultant position will be pinned to -1 or count() depending on whether the value is off the front or end of the set, respectively.
			 * @param offset the offset to be applied from the current position.
			 */
			move(offset: number): boolean;
			/**
			 * Move the cursor to an absolute position. The valid range of values is -1 &lt;= position &lt;= count.
			 * @param position the zero-based position to move to.
			 */
			moveToPosition(position: number): boolean;
			/**
			 * Move the cursor to the first row.
			 */
			moveToFirst(): boolean;
			/**
			 * Move the cursor to the last row.
			 */
			moveToLast(): boolean;
			/**
			 * Move the cursor to the next row.
			 */
			moveToNext(): boolean;
			/**
			 * Move the cursor to the previous row.
			 */
			moveToPrevious(): boolean;
			/**
			 * Returns whether the cursor is pointing to the first row.
			 */
			isFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the last row.
			 */
			isLast(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position before the first row.
			 */
			isBeforeFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position after the last row.
			 */
			isAfterLast(): boolean;
			/**
			 * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. If you expect the column to exist use #getColumnIndexOrThrow(String) instead, which will make the error more clear.
			 * @param columnName the name of the target column.
			 */
			getColumnIndex(columnName: string): number;
			/**
			 * Returns the zero-based index for the given column name, or throws IllegalArgumentException if the column doesn't exist. If you're not sure if a column will exist or not use #getColumnIndex(String) and check for -1, which is more efficient than catching the exceptions.
			 * @param columnName the name of the target column.
			 */
			getColumnIndexOrThrow(columnName: string): number;
			/**
			 * Returns the column name at the given zero-based column index.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getColumnName(columnIndex: number): string;
			/**
			 * Returns a string array holding the names of all of the columns in the result set in the order in which they were listed in the result.
			 */
			getColumnNames(): native.Array<string>;
			/**
			 * Return total number of columns
			 */
			getColumnCount(): number;
			/**
			 * Returns the value of the requested column as a byte array.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getBlob(columnIndex: number): native.Array<number>;
			/**
			 * Returns the value of the requested column as a String.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getString(columnIndex: number): string;
			/**
			 * Retrieves the requested column text and stores it in the buffer provided. If the buffer size is not sufficient, a new char buffer will be allocated and assigned to CharArrayBuffer.data
			 * @param columnIndex the zero-based index of the target column.
			 * @param buffer the buffer to copy the text into.
			 */
			copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			/**
			 * Returns the value of the requested column as a short.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getShort(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as an int.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getInt(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a long.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getLong(columnIndex: number): any;
			/**
			 * Returns the value of the requested column as a float.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getFloat(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a double.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getDouble(columnIndex: number): any;
			/**
			 * Returns data type of the given column's value. The preferred type of the column is returned but the data may be converted to other types as documented in the get-type methods such as #getInt(int), #getFloat(int) etc.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getType(columnIndex: number): number;
			/**
			 * Returns <code>true</code> if the value in the indicated column is null.
			 * @param columnIndex the zero-based index of the target column.
			 */
			isNull(columnIndex: number): boolean;
			/**
			 * Deactivates the Cursor, making all calls on it fail until #requery is called. Inactive Cursors use fewer resources than active Cursors. Calling #requery will make the cursor active again. Since #requery() is deprecated, so too is this.
			 */
			deactivate(): void;
			/**
			 * Performs the query that created the cursor again, refreshing its contents. This may be done at any time, including after a call to #deactivate.
			 */
			requery(): boolean;
			/**
			 * Closes the Cursor, releasing all of its resources and making it completely invalid. Unlike #deactivate() a call to #requery() will not make the Cursor valid again.
			 */
			close(): void;
			/**
			 * return true if the cursor is closed
			 */
			isClosed(): boolean;
			/**
			 * Register an observer that is called when changes happen to the content backing this cursor. Typically the data set won't change until #requery() is called.
			 * @param observer the object that gets notified when the content backing the cursor changes.
			 */
			registerContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Register an observer that is called when changes happen to the contents of the this cursors data set, for example, when the data set is changed via #requery(), #deactivate(), or #close().
			 * @param observer the object that gets notified when the cursors data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Register to watch a content URI for changes. This can be the URI of a specific data row (for example, "content://my_provider_type/23"), or a a generic URI for a content type. 
			 * @param cr The content resolver from the caller's context. The listener attached to
			 * @param uri The content URI to watch.
			 */
			setNotificationUri(cr: android.content.ContentResolver, uri: android.net.Uri): void;
			/**
			 * onMove() will only be called across processes if this method returns true.
			 */
			getWantsAllOnMoveCalls(): boolean;
			/**
			 * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band metadata to their users. One use of this is for reporting on the progress of network requests that are required to fetch data for the cursor.
			 */
			getExtras(): android.os.Bundle;
			/**
			 * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The structure of each bundle is entirely defined by the cursor.
			 * @param extras extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}.
			 */
			respond(extras: android.os.Bundle): android.os.Bundle;
		}
		/**
		 * Database Performance Tests 
		 */
		export class NewDatabasePerformanceTests extends java.lang.Object {
			constructor();
			static ONES: native.Array<string>;
			static TENS: native.Array<string>;
			static class: java.lang.Class<android.database.NewDatabasePerformanceTests>;
		}
		export module NewDatabasePerformanceTests {
			/**
			 * INNER JOIN without an index
			 */
			export class InnerJoin100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InnerJoin100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs on integer with index
			 */
			export class SelectIntegerIndex100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectIntegerIndex100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 selects for a String -starts with
			 */
			export class SelectStringStartsWith10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectStringStartsWith10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 1000 Deletes
			 */
			export class Delete1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.Delete1000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 selects for a String - contains 'e'
			 */
			export class SelectStringContains10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectStringContains10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 selects for an integer -indexed table
			 */
			export class SelectIntegerIndexed10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectIntegerIndexed10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * Test 1000 inserts into an indexed table.
			 */
			export class InsertIndexed1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InsertIndexed1000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs with subqueries. Subquery is using an index
			 */
			export class SelectSubQIndex100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectSubQIndex100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * INNER JOIN without an index on one side
			 */
			export class InnerJoinNoIndex100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InnerJoinNoIndex100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs on String with starts with
			 */
			export class SelectStringStartsWith100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectStringStartsWith100>;
				public setUp(): void;
				public testRun(): void;
			}
			export class PerformanceBase implements android.test.IPerformanceTestCase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.PerformanceBase>;
				public setUp(): void;
				public tearDown(): void;
				public isPerformanceOnly(): boolean;
				public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
				public numberName(number: number): string;
			}
			/**
			 * 10000 inserts for a String - indexed table
			 */
			export class InsertStringIndexed10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InsertStringIndexed10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs on String with index
			 */
			export class SelectIndexString100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectIndexString100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs on integer
			 */
			export class SelectInteger100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectInteger100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs on string comparison with Index
			 */
			export class SelectIndexStringComparison100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectIndexStringComparison100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 1000 Deletes on an indexed table
			 */
			export class DeleteIndexed1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.DeleteIndexed1000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 inserts for an integer -indexed table
			 */
			export class InsertIntegerIndex10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InsertIntegerIndex10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 inserts for a String
			 */
			export class InsertString10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InsertString10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs with an index
			 */
			export class SelectIndex100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectIndex100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs on String
			 */
			export class SelectString100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectString100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 1000 update's without an index with where clause
			 */
			export class UpdateWhere1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.UpdateWhere1000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * INNER JOIN without an index on one side
			 */
			export class InnerJoinOneSide100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InnerJoinOneSide100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 inserts for an integer
			 */
			export class InsertInteger10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.InsertInteger10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 selects for an integer -
			 */
			export class SelectInteger10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectInteger10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * Test 1000 inserts.
			 */
			export class Insert1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.Insert1000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs on a string comparison
			 */
			export class SelectStringComparison100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectStringComparison100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 selects for a String - contains 'e'-indexed table
			 */
			export class SelectStringIndexedContains10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectStringIndexedContains10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 10000 selects for a String - indexed table -starts with
			 */
			export class SelectStringIndexedStartsWith10000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.SelectStringIndexedStartsWith10000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 1000 DELETE's with an index with where clause
			 */
			export class DeleteIndexWhere1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.DeleteIndexWhere1000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 1000 DELETE's without an index with where clause
			 */
			export class DeleteWhere1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.DeleteWhere1000>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 100 SELECTs without an index
			 */
			export class Select100 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.Select100>;
				public setUp(): void;
				public testRun(): void;
			}
			/**
			 * 1000 update's with an index with where clause
			 */
			export class UpdateIndexWhere1000 extends android.database.NewDatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.NewDatabasePerformanceTests.UpdateIndexWhere1000>;
				public setUp(): void;
				public testRun(): void;
			}
		}
		/**
		 * Static utility methods for dealing with databases and Cursors.
		 */
		export class DatabaseUtils extends java.lang.Object {
			constructor();
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_SELECT: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_UPDATE: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_ATTACH: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_BEGIN: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_COMMIT: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_ABORT: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_PRAGMA: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_DDL: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_UNPREPARED: number;
			/**
			 * One of the values returned by #getSqlStatementType(String).
			 */
			static STATEMENT_OTHER: number;
			static class: java.lang.Class<android.database.DatabaseUtils>;
			/**
			 * Special function for writing an exception result at the header of a parcel, to be used when returning an exception from a transaction. exception will be re-thrown by the function in another process
			 * @param reply Parcel to write to
			 * @param e The Exception to be written.
			 */
			public static writeExceptionToParcel(reply: android.os.Parcel, e: java.lang.Exception): void;
			/**
			 * Special function for reading an exception result from the header of a parcel, to be used after receiving the result of a transaction. This will throw the exception for you if it had been written to the Parcel, otherwise return and let you read the normal result data from the Parcel.
			 * @param reply Parcel to read from
			 */
			public static readExceptionFromParcel(reply: android.os.Parcel): void;
			public static readExceptionWithFileNotFoundExceptionFromParcel(reply: android.os.Parcel): void;
			public static readExceptionWithOperationApplicationExceptionFromParcel(reply: android.os.Parcel): void;
			/**
			 * Binds the given Object to the given SQLiteProgram using the proper typing. For example, bind numbers as longs/doubles, and everything else as a string by call toString() on it.
			 * @param prog the program to bind the object to
			 * @param index the 1-based index to bind at
			 * @param value the value to bind
			 */
			public static bindObjectToProgram(prog: android.database.sqlite.SQLiteProgram, index: number, value: any): void;
			/**
			 * Appends an SQL string to the given StringBuilder, including the opening and closing single quotes. Any single quotes internal to sqlString will be escaped.
			 * @param sb the StringBuilder that the SQL string will be appended to
			 * @param sqlString the raw string to be appended, which may contain single
			 */
			public static appendEscapedSQLString(sb: java.lang.StringBuilder, sqlString: string): void;
			/**
			 * SQL-escape a string.
			 */
			public static sqlEscapeString(value: string): string;
			/**
			 * Appends an Object to an SQL string with the proper escaping, etc.
			 */
			public static appendValueToSql(sql: java.lang.StringBuilder, value: any): void;
			/**
			 * Concatenates two SQL WHERE clauses, handling empty or null values.
			 */
			public static concatenateWhere(a: string, b: string): string;
			/**
			 * return the collation key
			 * @param name 
			 */
			public static getCollationKey(name: string): string;
			/**
			 * return the collation key in hex format
			 * @param name 
			 */
			public static getHexCollationKey(name: string): string;
			/**
			 * Prints the contents of a Cursor to System.out. The position is restored after printing.
			 * @param cursor the cursor to print
			 */
			public static dumpCursor(cursor: android.database.ICursor): void;
			/**
			 * Prints the contents of a Cursor to a PrintSteam. The position is restored after printing.
			 * @param cursor the cursor to print
			 * @param stream the stream to print to
			 */
			public static dumpCursor(cursor: android.database.ICursor, stream: java.io.PrintStream): void;
			/**
			 * Prints the contents of a Cursor to a StringBuilder. The position is restored after printing.
			 * @param cursor the cursor to print
			 * @param sb the StringBuilder to print to
			 */
			public static dumpCursor(cursor: android.database.ICursor, sb: java.lang.StringBuilder): void;
			/**
			 * Prints the contents of a Cursor to a String. The position is restored after printing.
			 * @param cursor the cursor to print
			 */
			public static dumpCursorToString(cursor: android.database.ICursor): string;
			/**
			 * Prints the contents of a Cursor's current row to System.out.
			 * @param cursor the cursor to print from
			 */
			public static dumpCurrentRow(cursor: android.database.ICursor): void;
			/**
			 * Prints the contents of a Cursor's current row to a PrintSteam.
			 * @param cursor the cursor to print
			 * @param stream the stream to print to
			 */
			public static dumpCurrentRow(cursor: android.database.ICursor, stream: java.io.PrintStream): void;
			/**
			 * Prints the contents of a Cursor's current row to a StringBuilder.
			 * @param cursor the cursor to print
			 * @param sb the StringBuilder to print to
			 */
			public static dumpCurrentRow(cursor: android.database.ICursor, sb: java.lang.StringBuilder): void;
			/**
			 * Dump the contents of a Cursor's current row to a String.
			 * @param cursor the cursor to print
			 */
			public static dumpCurrentRowToString(cursor: android.database.ICursor): string;
			/**
			 * Reads a String out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The TEXT field to read
			 * @param values The {@link ContentValues} to put the value into, with the field as the key
			 */
			public static cursorStringToContentValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues): void;
			/**
			 * Reads a String out of a field in a Cursor and writes it to an InsertHelper.
			 * @param cursor The cursor to read from
			 * @param field The TEXT field to read
			 * @param inserter The InsertHelper to bind into
			 * @param index the index of the bind entry in the InsertHelper
			 */
			public static cursorStringToInsertHelper(cursor: android.database.ICursor, field: string, inserter: android.database.DatabaseUtils.InsertHelper, index: number): void;
			/**
			 * Reads a String out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The TEXT field to read
			 * @param values The {@link ContentValues} to put the value into, with the field as the key
			 * @param key The key to store the value with in the map
			 */
			public static cursorStringToContentValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues, key: string): void;
			/**
			 * Reads an Integer out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The INTEGER field to read
			 * @param values The {@link ContentValues} to put the value into, with the field as the key
			 */
			public static cursorIntToContentValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues): void;
			/**
			 * Reads a Integer out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The INTEGER field to read
			 * @param values The {@link ContentValues} to put the value into, with the field as the key
			 * @param key The key to store the value with in the map
			 */
			public static cursorIntToContentValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues, key: string): void;
			/**
			 * Reads a Long out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The INTEGER field to read
			 * @param values The {@link ContentValues} to put the value into, with the field as the key
			 */
			public static cursorLongToContentValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues): void;
			/**
			 * Reads a Long out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The INTEGER field to read
			 * @param values The {@link ContentValues} to put the value into
			 * @param key The key to store the value with in the map
			 */
			public static cursorLongToContentValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues, key: string): void;
			/**
			 * Reads a Double out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The REAL field to read
			 * @param values The {@link ContentValues} to put the value into
			 */
			public static cursorDoubleToCursorValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues): void;
			/**
			 * Reads a Double out of a field in a Cursor and writes it to a Map.
			 * @param cursor The cursor to read from
			 * @param field The REAL field to read
			 * @param values The {@link ContentValues} to put the value into
			 * @param key The key to store the value with in the map
			 */
			public static cursorDoubleToContentValues(cursor: android.database.ICursor, field: string, values: android.content.ContentValues, key: string): void;
			/**
			 * Read the entire contents of a cursor row and store them in a ContentValues.
			 * @param cursor the cursor to read from.
			 * @param values the {@link ContentValues} to put the row into.
			 */
			public static cursorRowToContentValues(cursor: android.database.ICursor, values: android.content.ContentValues): void;
			/**
			 * Query the table for the number of rows in the table.
			 * @param db the database the table is in
			 * @param table the name of the table to query
			 */
			public static queryNumEntries(db: android.database.sqlite.SQLiteDatabase, table: string): any;
			/**
			 * Query the table for the number of rows in the table.
			 * @param db the database the table is in
			 * @param table the name of the table to query
			 * @param selection A filter declaring which rows to return,
			 */
			public static queryNumEntries(db: android.database.sqlite.SQLiteDatabase, table: string, selection: string): any;
			/**
			 * Query the table for the number of rows in the table.
			 * @param db the database the table is in
			 * @param table the name of the table to query
			 * @param selection A filter declaring which rows to return,
			 * @param selectionArgs You may include ?s in selection,
			 */
			public static queryNumEntries(db: android.database.sqlite.SQLiteDatabase, table: string, selection: string, selectionArgs: native.Array<string>): any;
			/**
			 * Utility method to run the query on the db and return the value in the first column of the first row.
			 */
			public static longForQuery(db: android.database.sqlite.SQLiteDatabase, query: string, selectionArgs: native.Array<string>): any;
			/**
			 * Utility method to run the pre-compiled query and return the value in the first column of the first row.
			 */
			public static longForQuery(prog: android.database.sqlite.SQLiteStatement, selectionArgs: native.Array<string>): any;
			/**
			 * Utility method to run the query on the db and return the value in the first column of the first row.
			 */
			public static stringForQuery(db: android.database.sqlite.SQLiteDatabase, query: string, selectionArgs: native.Array<string>): string;
			/**
			 * Utility method to run the pre-compiled query and return the value in the first column of the first row.
			 */
			public static stringForQuery(prog: android.database.sqlite.SQLiteStatement, selectionArgs: native.Array<string>): string;
			/**
			 * Utility method to run the query on the db and return the blob value in the first column of the first row.
			 */
			public static blobFileDescriptorForQuery(db: android.database.sqlite.SQLiteDatabase, query: string, selectionArgs: native.Array<string>): android.os.ParcelFileDescriptor;
			/**
			 * Utility method to run the pre-compiled query and return the blob value in the first column of the first row.
			 */
			public static blobFileDescriptorForQuery(prog: android.database.sqlite.SQLiteStatement, selectionArgs: native.Array<string>): android.os.ParcelFileDescriptor;
			/**
			 * Reads a String out of a column in a Cursor and writes it to a ContentValues. Adds nothing to the ContentValues if the column isn't present or if its value is null.
			 * @param cursor The cursor to read from
			 * @param values column The column to read
			 * @param column values The {@link ContentValues} to put the value into
			 */
			public static cursorStringToContentValuesIfPresent(cursor: android.database.ICursor, values: android.content.ContentValues, column: string): void;
			/**
			 * Reads a Long out of a column in a Cursor and writes it to a ContentValues. Adds nothing to the ContentValues if the column isn't present or if its value is null.
			 * @param cursor The cursor to read from
			 * @param values column The column to read
			 * @param column values The {@link ContentValues} to put the value into
			 */
			public static cursorLongToContentValuesIfPresent(cursor: android.database.ICursor, values: android.content.ContentValues, column: string): void;
			/**
			 * Reads a Short out of a column in a Cursor and writes it to a ContentValues. Adds nothing to the ContentValues if the column isn't present or if its value is null.
			 * @param cursor The cursor to read from
			 * @param values column The column to read
			 * @param column values The {@link ContentValues} to put the value into
			 */
			public static cursorShortToContentValuesIfPresent(cursor: android.database.ICursor, values: android.content.ContentValues, column: string): void;
			/**
			 * Reads a Integer out of a column in a Cursor and writes it to a ContentValues. Adds nothing to the ContentValues if the column isn't present or if its value is null.
			 * @param cursor The cursor to read from
			 * @param values column The column to read
			 * @param column values The {@link ContentValues} to put the value into
			 */
			public static cursorIntToContentValuesIfPresent(cursor: android.database.ICursor, values: android.content.ContentValues, column: string): void;
			/**
			 * Reads a Float out of a column in a Cursor and writes it to a ContentValues. Adds nothing to the ContentValues if the column isn't present or if its value is null.
			 * @param cursor The cursor to read from
			 * @param values column The column to read
			 * @param column values The {@link ContentValues} to put the value into
			 */
			public static cursorFloatToContentValuesIfPresent(cursor: android.database.ICursor, values: android.content.ContentValues, column: string): void;
			/**
			 * Reads a Double out of a column in a Cursor and writes it to a ContentValues. Adds nothing to the ContentValues if the column isn't present or if its value is null.
			 * @param cursor The cursor to read from
			 * @param values column The column to read
			 * @param column values The {@link ContentValues} to put the value into
			 */
			public static cursorDoubleToContentValuesIfPresent(cursor: android.database.ICursor, values: android.content.ContentValues, column: string): void;
			/**
			 * Creates a db and populates it with the sql statements in sqlStatements.
			 * @param context the context to use to create the db
			 * @param dbName the name of the db to create
			 * @param dbVersion the version to set on the db
			 * @param sqlStatements the statements to use to populate the db. This should be a single string
			 */
			public static createDbFromSqlStatements(context: android.content.Context, dbName: string, dbVersion: number, sqlStatements: string): void;
			/**
			 * Returns one of the following which represent the type of the given SQL statement. <ol> <li>#STATEMENT_SELECT</li> <li>#STATEMENT_UPDATE</li> <li>#STATEMENT_ATTACH</li> <li>#STATEMENT_BEGIN</li> <li>#STATEMENT_COMMIT</li> <li>#STATEMENT_ABORT</li> <li>#STATEMENT_OTHER</li> </ol>
			 * @param sql the SQL statement whose type is returned by this method
			 */
			public static getSqlStatementType(sql: string): number;
			/**
			 * Appends one set of selection args to another. This is useful when adding a selection argument to a user provided set.
			 */
			public static appendSelectionArgs(originalValues: native.Array<string>, newValues: native.Array<string>): native.Array<string>;
		}
		export module DatabaseUtils {
			/**
			 * This class allows users to do multiple inserts into a table using the same statement.
			 */
			export class InsertHelper extends java.lang.Object {
				/**
				 * @param db the SQLiteDatabase to insert into
				 * @param tableName the name of the table to insert into
				 */
				constructor(db: android.database.sqlite.SQLiteDatabase, tableName: string);
				static class: java.lang.Class<android.database.DatabaseUtils.InsertHelper>;
				/**
				 * Returns the index of the specified column. This is index is suitagble for use in calls to bind().
				 * @param key the column name
				 */
				public getColumnIndex(key: string): number;
				/**
				 * Bind the value to an index. A prepareForInsert() or prepareForReplace() without a matching execute() must have already have been called.
				 * @param index the index of the slot to which to bind
				 * @param value the value to bind
				 */
				public bind(index: number, value: number): void;
				/**
				 * Bind the value to an index. A prepareForInsert() or prepareForReplace() without a matching execute() must have already have been called.
				 * @param index the index of the slot to which to bind
				 * @param value the value to bind
				 */
				public bind(index: number, value: boolean): void;
				/**
				 * Bind null to an index. A prepareForInsert() or prepareForReplace() without a matching execute() must have already have been called.
				 * @param index the index of the slot to which to bind
				 */
				public bindNull(index: number): void;
				/**
				 * Bind the value to an index. A prepareForInsert() or prepareForReplace() without a matching execute() must have already have been called.
				 * @param index the index of the slot to which to bind
				 * @param value the value to bind
				 */
				public bind(index: number, value: native.Array<number>): void;
				/**
				 * Bind the value to an index. A prepareForInsert() or prepareForReplace() without a matching execute() must have already have been called.
				 * @param index the index of the slot to which to bind
				 * @param value the value to bind
				 */
				public bind(index: number, value: string): void;
				/**
				 * Performs an insert, adding a new row with the given values. If the table contains conflicting rows, an error is returned.
				 * @param values the set of values with which to populate the
				 */
				public insert(values: android.content.ContentValues): any;
				/**
				 * Execute the previously prepared insert or replace using the bound values since the last call to prepareForInsert or prepareForReplace.
				 */
				public execute(): any;
				/**
				 * Prepare the InsertHelper for an insert. The pattern for this is: <ul> <li>prepareForInsert() <li>bind(index, value); <li>bind(index, value); <li>... <li>bind(index, value); <li>execute(); </ul>
				 */
				public prepareForInsert(): void;
				/**
				 * Prepare the InsertHelper for a replace. The pattern for this is: <ul> <li>prepareForReplace() <li>bind(index, value); <li>bind(index, value); <li>... <li>bind(index, value); <li>execute(); </ul>
				 */
				public prepareForReplace(): void;
				/**
				 * Performs an insert, adding a new row with the given values. If the table contains conflicting rows, they are deleted and replaced with the new row.
				 * @param values the set of values with which to populate the
				 */
				public replace(values: android.content.ContentValues): any;
				/**
				 * Close this object and release any resources associated with it. The behavior of calling <code>insert()</code> after calling this method is undefined.
				 */
				public close(): void;
			}
		}
		export class BulkCursorProxy extends java.lang.Object {
			constructor(remote: android.os.IIBinder);
			static class: java.lang.Class<android.database.BulkCursorProxy>;
			public asBinder(): android.os.IIBinder;
			public getWindow(position: number): android.database.CursorWindow;
			public onMove(position: number): void;
			public deactivate(): void;
			public close(): void;
			public getExtras(): android.os.Bundle;
			public respond(extras: android.os.Bundle): android.os.Bundle;
		}
		/**
		 * This interface provides random read-write access to the result set returned by a database query.
		 */
		interface ICursor extends java.io.ICloseable {
			/**
			 * Returns the numbers of rows in the cursor.
			 */
			getCount(): number;
			/**
			 * Returns the current position of the cursor in the row set. The value is zero-based. When the row set is first returned the cursor will be at positon -1, which is before the first row. After the last row is returned another call to next() will leave the cursor past the last entry, at a position of count().
			 */
			getPosition(): number;
			/**
			 * Move the cursor by a relative amount, forward or backward, from the current position. Positive offsets move forwards, negative offsets move backwards. If the final position is outside of the bounds of the result set then the resultant position will be pinned to -1 or count() depending on whether the value is off the front or end of the set, respectively.
			 * @param offset the offset to be applied from the current position.
			 */
			move(offset: number): boolean;
			/**
			 * Move the cursor to an absolute position. The valid range of values is -1 &lt;= position &lt;= count.
			 * @param position the zero-based position to move to.
			 */
			moveToPosition(position: number): boolean;
			/**
			 * Move the cursor to the first row.
			 */
			moveToFirst(): boolean;
			/**
			 * Move the cursor to the last row.
			 */
			moveToLast(): boolean;
			/**
			 * Move the cursor to the next row.
			 */
			moveToNext(): boolean;
			/**
			 * Move the cursor to the previous row.
			 */
			moveToPrevious(): boolean;
			/**
			 * Returns whether the cursor is pointing to the first row.
			 */
			isFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the last row.
			 */
			isLast(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position before the first row.
			 */
			isBeforeFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position after the last row.
			 */
			isAfterLast(): boolean;
			/**
			 * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. If you expect the column to exist use #getColumnIndexOrThrow(String) instead, which will make the error more clear.
			 * @param columnName the name of the target column.
			 */
			getColumnIndex(columnName: string): number;
			/**
			 * Returns the zero-based index for the given column name, or throws IllegalArgumentException if the column doesn't exist. If you're not sure if a column will exist or not use #getColumnIndex(String) and check for -1, which is more efficient than catching the exceptions.
			 * @param columnName the name of the target column.
			 */
			getColumnIndexOrThrow(columnName: string): number;
			/**
			 * Returns the column name at the given zero-based column index.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getColumnName(columnIndex: number): string;
			/**
			 * Returns a string array holding the names of all of the columns in the result set in the order in which they were listed in the result.
			 */
			getColumnNames(): native.Array<string>;
			/**
			 * Return total number of columns
			 */
			getColumnCount(): number;
			/**
			 * Returns the value of the requested column as a byte array.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getBlob(columnIndex: number): native.Array<number>;
			/**
			 * Returns the value of the requested column as a String.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getString(columnIndex: number): string;
			/**
			 * Retrieves the requested column text and stores it in the buffer provided. If the buffer size is not sufficient, a new char buffer will be allocated and assigned to CharArrayBuffer.data
			 * @param columnIndex the zero-based index of the target column.
			 * @param buffer the buffer to copy the text into.
			 */
			copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			/**
			 * Returns the value of the requested column as a short.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getShort(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as an int.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getInt(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a long.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getLong(columnIndex: number): any;
			/**
			 * Returns the value of the requested column as a float.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getFloat(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a double.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getDouble(columnIndex: number): any;
			/**
			 * Returns data type of the given column's value. The preferred type of the column is returned but the data may be converted to other types as documented in the get-type methods such as #getInt(int), #getFloat(int) etc.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getType(columnIndex: number): number;
			/**
			 * Returns <code>true</code> if the value in the indicated column is null.
			 * @param columnIndex the zero-based index of the target column.
			 */
			isNull(columnIndex: number): boolean;
			/**
			 * Deactivates the Cursor, making all calls on it fail until #requery is called. Inactive Cursors use fewer resources than active Cursors. Calling #requery will make the cursor active again. Since #requery() is deprecated, so too is this.
			 */
			deactivate(): void;
			/**
			 * Performs the query that created the cursor again, refreshing its contents. This may be done at any time, including after a call to #deactivate.
			 */
			requery(): boolean;
			/**
			 * Closes the Cursor, releasing all of its resources and making it completely invalid. Unlike #deactivate() a call to #requery() will not make the Cursor valid again.
			 */
			close(): void;
			/**
			 * return true if the cursor is closed
			 */
			isClosed(): boolean;
			/**
			 * Register an observer that is called when changes happen to the content backing this cursor. Typically the data set won't change until #requery() is called.
			 * @param observer the object that gets notified when the content backing the cursor changes.
			 */
			registerContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Register an observer that is called when changes happen to the contents of the this cursors data set, for example, when the data set is changed via #requery(), #deactivate(), or #close().
			 * @param observer the object that gets notified when the cursors data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Register to watch a content URI for changes. This can be the URI of a specific data row (for example, "content://my_provider_type/23"), or a a generic URI for a content type. 
			 * @param cr The content resolver from the caller's context. The listener attached to
			 * @param uri The content URI to watch.
			 */
			setNotificationUri(cr: android.content.ContentResolver, uri: android.net.Uri): void;
			/**
			 * onMove() will only be called across processes if this method returns true.
			 */
			getWantsAllOnMoveCalls(): boolean;
			/**
			 * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band metadata to their users. One use of this is for reporting on the progress of network requests that are required to fetch data for the cursor.
			 */
			getExtras(): android.os.Bundle;
			/**
			 * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The structure of each bundle is entirely defined by the cursor.
			 * @param extras extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}.
			 */
			respond(extras: android.os.Bundle): android.os.Bundle;
		}
		export module ICursor {
			/**
			 * Value returned by #getType(int) if the specified column is null
			 */
			var FIELD_TYPE_NULL: number;
			/**
			 * Value returned by #getType(int) if the specified column type is integer
			 */
			var FIELD_TYPE_INTEGER: number;
			/**
			 * Value returned by #getType(int) if the specified column type is float
			 */
			var FIELD_TYPE_FLOAT: number;
			/**
			 * Value returned by #getType(int) if the specified column type is string
			 */
			var FIELD_TYPE_STRING: number;
			/**
			 * Value returned by #getType(int) if the specified column type is blob
			 */
			var FIELD_TYPE_BLOB: number;
		}
		/**
		 * Does a join on two cursors using the specified columns. The cursors must already be sorted on each of the specified columns in ascending order. This joiner only supports the case where the tuple of key column values is unique.
		 */
		export class CursorJoiner extends java.lang.Object {
			/**
			 * Initializes the CursorJoiner and resets the cursors to the first row. The left and right column name arrays must have the same number of columns.
			 * @param cursorLeft The left cursor to compare
			 * @param columnNamesLeft The column names to compare from the left cursor
			 * @param cursorRight The right cursor to compare
			 * @param columnNamesRight The column names to compare from the right cursor
			 */
			constructor(cursorLeft: android.database.ICursor, columnNamesLeft: native.Array<string>, cursorRight: android.database.ICursor, columnNamesRight: native.Array<string>);
			static class: java.lang.Class<android.database.CursorJoiner>;
			public iterator(): java.util.IIterator<android.database.CursorJoiner.Result>;
			/**
			 * Returns whether or not there are more rows to compare using next().
			 */
			public hasNext(): boolean;
			/**
			 * Returns the comparison result of the next row from each cursor. If one cursor has no more rows but the other does then subsequent calls to this will indicate that the remaining rows are unique.
			 */
			public next(): android.database.CursorJoiner.Result;
			public remove(): void;
		}
		export module CursorJoiner {
			/**
			 * The result of a call to next().
			 */
			export enum Result {
				RIGHT,
				LEFT,
				BOTH
			}
		}
		export class NewDatabasePerformanceTestSuite {
			constructor();
			static class: java.lang.Class<android.database.NewDatabasePerformanceTestSuite>;
		}
		/**
		 * Receives call backs for changes to content. Must be implemented by objects which are added to a ContentObservable.
		 */
		export class ContentObserver extends java.lang.Object {
			/**
			 * Creates a content observer.
			 * @param handler The handler to run {@link #onChange} on, or null if none.
			 */
			constructor(handler: android.os.Handler);
			static class: java.lang.Class<android.database.ContentObserver>;
			NotificationRunnable: {
	new (selfChange: boolean, uri: android.net.Uri): android.database.ContentObserver.NotificationRunnable;
};
			/**
			 * Returns true if this observer is interested receiving self-change notifications.
			 */
			public deliverSelfNotifications(): boolean;
			/**
			 * This method is called when a content change occurs.
			 * @param selfChange True if this is a self-change notification.
			 */
			public onChange(selfChange: boolean): void;
			/**
			 * This method is called when a content change occurs. Includes the changed content Uri when available.
			 * @param selfChange True if this is a self-change notification.
			 * @param uri The Uri of the changed content, or null if unknown.
			 */
			public onChange(selfChange: boolean, uri: android.net.Uri): void;
			/**
			 * Dispatches a change notification to the observer.
			 * @param selfChange True if this is a self-change notification.
			 */
			public dispatchChange(selfChange: boolean): void;
			/**
			 * Dispatches a change notification to the observer. Includes the changed content Uri when available.
			 * @param selfChange True if this is a self-change notification.
			 * @param uri The Uri of the changed content, or null if unknown.
			 */
			public dispatchChange(selfChange: boolean, uri: android.net.Uri): void;
		}
		export module ContentObserver {
			export class NotificationRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.database.ContentObserver.NotificationRunnable>;
				public run(): void;
			}
			export class Transport {
				constructor(contentObserver: android.database.ContentObserver);
				static class: java.lang.Class<android.database.ContentObserver.Transport>;
				public onChange(selfChange: boolean, uri: android.net.Uri): void;
				public releaseContentObserver(): void;
			}
		}
		/**
		 * This exception is thrown when a Cursor contains stale data and must be requeried before being used again.
		 */
		export class StaleDataException extends java.lang.RuntimeException {
			constructor();
			constructor(description: string);
			static class: java.lang.Class<android.database.StaleDataException>;
		}
		export module sqlite {
			export class SQLiteBlobTooBigException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteBlobTooBigException>;
			}
			/**
			 * A driver for SQLiteCursors that is used to create them and gets notified by the cursors it creates on significant events in their lifetimes.
			 */
			export class SQLiteCursorDriver implements android.database.sqlite.ISQLiteCursorDriver {
				constructor(implementation: android.database.sqlite.ISQLiteCursorDriver);
				/**
				 * Executes the query returning a Cursor over the result set. 
				 * @param factory The CursorFactory to use when creating the Cursors, or
				 * @param bindArgs 
				 */
				public query(factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, bindArgs: native.Array<string>): android.database.ICursor;
				/**
				 * Called by a SQLiteCursor when it is released.
				 */
				public cursorDeactivated(): void;
				/**
				 * Called by a SQLiteCursor when it is requeried.
				 */
				public cursorRequeried(cursor: android.database.ICursor): void;
				/**
				 * Called by a SQLiteCursor when it it closed to destroy this object as well.
				 */
				public cursorClosed(): void;
				/**
				 * Set new bind arguments. These will take effect in cursorRequeried().
				 * @param bindArgs the new arguments
				 */
				public setBindArguments(bindArgs: native.Array<string>): void;
			}
			export class SQLiteCursorTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.database.sqlite.SQLiteCursorTest>;
				protected setUp(): void;
				protected tearDown(): void;
				/**
				 * this test could take a while to execute. so, designate it as LargeTest
				 */
				public testFillWindow(): void;
			}
			export class SQLiteReadOnlyDatabaseException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteReadOnlyDatabaseException>;
			}
			export class SQLiteCantOpenDatabaseException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteCantOpenDatabaseException>;
			}
			export class SQLiteOutOfMemoryException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteOutOfMemoryException>;
			}
			/**
			 * An exception that indicates that the SQLite program is done. Thrown when an operation that expects a row (such as SQLiteStatement#simpleQueryForString or SQLiteStatement#simpleQueryForLong) does not get one.
			 */
			export class SQLiteDoneException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteDoneException>;
			}
			/**
			 * An exception that indicates that the SQLite database file is corrupt.
			 */
			export class SQLiteDatabaseCorruptException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteDatabaseCorruptException>;
			}
			export class SQLiteDatatypeMismatchException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteDatatypeMismatchException>;
			}
			/**
			 * This exception class is used when sqlite can't access the database file due to lack of permissions on the file.
			 */
			export class SQLiteAccessPermException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteAccessPermException>;
			}
			/**
			 * A driver for SQLiteCursors that is used to create them and gets notified by the cursors it creates on significant events in their lifetimes.
			 */
			interface ISQLiteCursorDriver {
				/**
				 * Executes the query returning a Cursor over the result set. 
				 * @param factory The CursorFactory to use when creating the Cursors, or
				 * @param bindArgs 
				 */
				query(factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, bindArgs: native.Array<string>): android.database.ICursor;
				/**
				 * Called by a SQLiteCursor when it is released.
				 */
				cursorDeactivated(): void;
				/**
				 * Called by a SQLiteCursor when it is requeried.
				 */
				cursorRequeried(cursor: android.database.ICursor): void;
				/**
				 * Called by a SQLiteCursor when it it closed to destroy this object as well.
				 */
				cursorClosed(): void;
				/**
				 * Set new bind arguments. These will take effect in cursorRequeried().
				 * @param bindArgs the new arguments
				 */
				setBindArguments(bindArgs: native.Array<string>): void;
			}
			/**
			 * A Cursor implementation that exposes results from a query on a SQLiteDatabase.
			 */
			export class SQLiteCursor extends android.database.AbstractWindowedCursor {
				/**
				 * Execute a query and provide access to its result set through a Cursor interface. For a query such as: SELECT name, birth, phone FROM myTable WHERE ... LIMIT 1,20 ORDER BY... the column names (name, birth, phone) would be in the projection argument and everything from FROM onward would be in the params argument.
				 * @param db a reference to a Database object that is already constructed
				 * @param driver editTable the name of the table used for this query
				 * @param editTable query the rest of the query terms
				 * @param query 
				 */
				constructor(db: android.database.sqlite.SQLiteDatabase, driver: android.database.sqlite.ISQLiteCursorDriver, editTable: string, query: android.database.sqlite.SQLiteQuery);
				/**
				 * Execute a query and provide access to its result set through a Cursor interface. For a query such as: SELECT name, birth, phone FROM myTable WHERE ... LIMIT 1,20 ORDER BY... the column names (name, birth, phone) would be in the projection argument and everything from FROM onward would be in the params argument.
				 * @param driver editTable the name of the table used for this query
				 * @param editTable query the {@link SQLiteQuery} object associated with this cursor object.
				 * @param query 
				 */
				constructor(driver: android.database.sqlite.ISQLiteCursorDriver, editTable: string, query: android.database.sqlite.SQLiteQuery);
				static class: java.lang.Class<android.database.sqlite.SQLiteCursor>;
				/**
				 * Get the database that this cursor is associated with.
				 */
				public getDatabase(): android.database.sqlite.SQLiteDatabase;
				public onMove(oldPosition: number, newPosition: number): boolean;
				public getCount(): number;
				public getColumnIndex(columnName: string): number;
				public getColumnNames(): native.Array<string>;
				public deactivate(): void;
				public close(): void;
				public requery(): boolean;
				public setWindow(window: android.database.CursorWindow): void;
				/**
				 * Changes the selection arguments. The new values take effect after a call to requery().
				 */
				public setSelectionArguments(selectionArgs: native.Array<string>): void;
				/**
				 * Release the native resources, if they haven't been released yet.
				 */
				protected finalize(): void;
			}
			/**
			 * A listener for transaction events.
			 */
			interface ISQLiteTransactionListener {
				/**
				 * Called immediately after the transaction begins.
				 */
				onBegin(): void;
				/**
				 * Called immediately before commiting the transaction.
				 */
				onCommit(): void;
				/**
				 * Called if the transaction is about to be rolled back.
				 */
				onRollback(): void;
			}
			/**
			 * A listener for transaction events.
			 */
			export class SQLiteTransactionListener implements android.database.sqlite.ISQLiteTransactionListener {
				constructor(implementation: android.database.sqlite.ISQLiteTransactionListener);
				/**
				 * Called immediately after the transaction begins.
				 */
				public onBegin(): void;
				/**
				 * Called immediately before commiting the transaction.
				 */
				public onCommit(): void;
				/**
				 * Called if the transaction is about to be rolled back.
				 */
				public onRollback(): void;
			}
			/**
			 * An object created from a SQLiteDatabase that can be closed.
			 */
			export class SQLiteClosable extends java.lang.Object implements java.io.ICloseable {
				constructor();
				static class: java.lang.Class<android.database.sqlite.SQLiteClosable>;
				/**
				 * Called when the last reference to the object was released by a call to #releaseReference() or #close().
				 */
				protected onAllReferencesReleased(): void;
				/**
				 * Called when the last reference to the object was released by a call to #releaseReferenceFromContainer().
				 */
				protected onAllReferencesReleasedFromContainer(): void;
				/**
				 * Acquires a reference to the object.
				 */
				public acquireReference(): void;
				/**
				 * Releases a reference to the object, closing the object if the last reference was released.
				 */
				public releaseReference(): void;
				/**
				 * Releases a reference to the object that was owned by the container of the object, closing the object if the last reference was released.
				 */
				public releaseReferenceFromContainer(): void;
				/**
				 * Releases a reference to the object, closing the object if the last reference was released.
				 */
				public close(): void;
			}
			/**
			 * An exception that indicates that an integrity constraint was violated.
			 */
			export class SQLiteConstraintException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteConstraintException>;
			}
			/**
			 * Represents a query that reads the resulting rows into a SQLiteQuery. This class is used by SQLiteCursor and isn't useful itself.
			 */
			export class SQLiteQuery extends android.database.sqlite.SQLiteProgram {
				static class: java.lang.Class<android.database.sqlite.SQLiteQuery>;
				/**
				 * Reads rows into a buffer.
				 * @param window The window to fill into
				 * @param startPos The start position for filling the window.
				 * @param requiredPos The position of a row that MUST be in the window.
				 * @param countAllRows True to count all rows that the query would
				 */
				fillWindow(window: android.database.CursorWindow, startPos: number, requiredPos: number, countAllRows: boolean): number;
				public toString(): string;
			}
			/**
			 * This is a convience class that helps build SQL queries to be sent to SQLiteDatabase objects.
			 */
			export class SQLiteQueryBuilder extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.database.sqlite.SQLiteQueryBuilder>;
				/**
				 * Mark the query as DISTINCT.
				 * @param distinct if true the query is DISTINCT, otherwise it isn't
				 */
				public setDistinct(distinct: boolean): void;
				/**
				 * Returns the list of tables being queried
				 */
				public getTables(): string;
				/**
				 * Sets the list of tables to query. Multiple tables can be specified to perform a join. For example: setTables("foo, bar") setTables("foo LEFT OUTER JOIN bar ON (foo.id = bar.foo_id)")
				 * @param inTables the list of tables to query on
				 */
				public setTables(inTables: string): void;
				/**
				 * Append a chunk to the WHERE clause of the query. All chunks appended are surrounded by parenthesis and ANDed with the selection passed to #query. The final WHERE clause looks like:
				 * @param inWhere the chunk of text to append to the WHERE clause.
				 */
				public appendWhere(inWhere: string): void;
				/**
				 * Append a chunk to the WHERE clause of the query. All chunks appended are surrounded by parenthesis and ANDed with the selection passed to #query. The final WHERE clause looks like:
				 * @param inWhere the chunk of text to append to the WHERE clause. it will be escaped
				 */
				public appendWhereEscapeString(inWhere: string): void;
				/**
				 * Sets the projection map for the query. The projection map maps from column names that the caller passes into query to database column names. This is useful for renaming columns as well as disambiguating column names when doing joins. For example you could map "name" to "people.name". If a projection map is set it must contain all column names the user may request, even if the key and value are the same.
				 * @param columnMap maps from the user column names to the database column names
				 */
				public setProjectionMap(columnMap: java.util.IMap<string, string>): void;
				/**
				 * Sets the cursor factory to be used for the query. You can use one factory for all queries on a database but it is normally easier to specify the factory when doing this query.
				 * @param factory the factory to use.
				 */
				public setCursorFactory(factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): void;
				/**
				 * When set, the selection is verified against malicious arguments. When using this class to create a statement using #buildQueryString(boolean, String, String[], String, String, String, String, String), non-numeric limits will raise an exception. If a projection map is specified, fields not in that map will be ignored. If this class is used to execute the statement directly using #query(SQLiteDatabase, String[], String, String[], String, String, String) or #query(SQLiteDatabase, String[], String, String[], String, String, String, String), additionally also parenthesis escaping selection are caught.
				 */
				public setStrict(flag: boolean): void;
				/**
				 * Build an SQL query string from the given clauses.
				 * @param distinct true if you want each row to be unique, false otherwise.
				 * @param tables The table names to compile the query against.
				 * @param columns A list of which columns to return. Passing null will
				 * @param where A filter declaring which rows to return, formatted as an SQL
				 * @param groupBy A filter declaring how to group rows, formatted as an SQL
				 * @param having A filter declare which row groups to include in the cursor,
				 * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
				 * @param limit Limits the number of rows returned by the query,
				 */
				public static buildQueryString(distinct: boolean, tables: string, columns: native.Array<string>, where: string, groupBy: string, having: string, orderBy: string, limit: string): string;
				/**
				 * Add the names that are non-null in columns to s, separating them with commas.
				 */
				public static appendColumns(s: java.lang.StringBuilder, columns: native.Array<string>): void;
				/**
				 * Perform a query by combining all current settings and the information passed into this method.
				 * @param db the database to query on
				 * @param projectionIn A list of which columns to return. Passing
				 * @param selection A filter declaring which rows to return,
				 * @param selectionArgs You may include ?s in selection, which
				 * @param groupBy A filter declaring how to group rows, formatted
				 * @param having A filter declare which row groups to include in
				 * @param sortOrder How to order the rows, formatted as an SQL
				 */
				public query(db: android.database.sqlite.SQLiteDatabase, projectionIn: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, sortOrder: string): android.database.ICursor;
				/**
				 * Perform a query by combining all current settings and the information passed into this method.
				 * @param db the database to query on
				 * @param projectionIn A list of which columns to return. Passing
				 * @param selection A filter declaring which rows to return,
				 * @param selectionArgs You may include ?s in selection, which
				 * @param groupBy A filter declaring how to group rows, formatted
				 * @param having A filter declare which row groups to include in
				 * @param sortOrder How to order the rows, formatted as an SQL
				 * @param limit Limits the number of rows returned by the query,
				 */
				public query(db: android.database.sqlite.SQLiteDatabase, projectionIn: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, sortOrder: string, limit: string): android.database.ICursor;
				/**
				 * Perform a query by combining all current settings and the information passed into this method.
				 * @param db the database to query on
				 * @param projectionIn A list of which columns to return. Passing
				 * @param selection A filter declaring which rows to return,
				 * @param selectionArgs You may include ?s in selection, which
				 * @param groupBy A filter declaring how to group rows, formatted
				 * @param having A filter declare which row groups to include in
				 * @param sortOrder How to order the rows, formatted as an SQL
				 * @param limit Limits the number of rows returned by the query,
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				public query(db: android.database.sqlite.SQLiteDatabase, projectionIn: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, sortOrder: string, limit: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
				/**
				 * Construct a SELECT statement suitable for use in a group of SELECT statements that will be joined through UNION operators in buildUnionQuery.
				 * @param projectionIn A list of which columns to return. Passing
				 * @param selection A filter declaring which rows to return,
				 * @param groupBy A filter declaring how to group rows, formatted
				 * @param having A filter declare which row groups to include in
				 * @param sortOrder How to order the rows, formatted as an SQL
				 * @param limit Limits the number of rows returned by the query,
				 */
				public buildQuery(projectionIn: native.Array<string>, selection: string, groupBy: string, having: string, sortOrder: string, limit: string): string;
				/**
				 *  This method's signature is misleading since no SQL parameter substitution is carried out. The selection arguments parameter does not get used at all. To avoid confusion, call #buildQuery(String[], String, String, String, String, String) instead.
				 */
				public buildQuery(projectionIn: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, sortOrder: string, limit: string): string;
				/**
				 * Construct a SELECT statement suitable for use in a group of SELECT statements that will be joined through UNION operators in buildUnionQuery.
				 * @param typeDiscriminatorColumn the name of the result column
				 * @param unionColumns the names of the columns to appear in the
				 * @param columnsPresentInTable a Set of the names of the columns
				 * @param computedColumnsOffset all columns in unionColumns before
				 * @param typeDiscriminatorValue the value used for the
				 * @param selection A filter declaring which rows to return,
				 * @param groupBy A filter declaring how to group rows, formatted
				 * @param having A filter declare which row groups to include in
				 */
				public buildUnionSubQuery(typeDiscriminatorColumn: string, unionColumns: native.Array<string>, columnsPresentInTable: java.util.ISet<string>, computedColumnsOffset: number, typeDiscriminatorValue: string, selection: string, groupBy: string, having: string): string;
				/**
				 *  This method's signature is misleading since no SQL parameter substitution is carried out. The selection arguments parameter does not get used at all. To avoid confusion, call #buildUnionSubQuery instead.
				 */
				public buildUnionSubQuery(typeDiscriminatorColumn: string, unionColumns: native.Array<string>, columnsPresentInTable: java.util.ISet<string>, computedColumnsOffset: number, typeDiscriminatorValue: string, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string): string;
				/**
				 * Given a set of subqueries, all of which are SELECT statements, construct a query that returns the union of what those subqueries return.
				 * @param subQueries an array of SQL SELECT statements, all of
				 * @param sortOrder How to order the rows, formatted as an SQL
				 * @param limit The limit clause, which applies to the entire union result set
				 */
				public buildUnionQuery(subQueries: native.Array<string>, sortOrder: string, limit: string): string;
			}
			export class SQLiteTableLockedException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteTableLockedException>;
			}
			/**
			 * A helper class to manage database creation and version management.
			 */
			export class SQLiteOpenHelper extends java.lang.Object {
				/**
				 * Create a helper object to create, open, and/or manage a database. This method always returns very quickly. The database is not actually created or opened until one of #getWritableDatabase or #getReadableDatabase is called.
				 * @param context to use to open or create the database
				 * @param name of the database file, or null for an in-memory database
				 * @param factory to use for creating cursor objects, or null for the default
				 * @param version number of the database (starting at 1); if the database is older,
				 */
				constructor(context: android.content.Context, name: string, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, version: number);
				/**
				 * Create a helper object to create, open, and/or manage a database. The database is not actually created or opened until one of #getWritableDatabase or #getReadableDatabase is called.
				 * @param context to use to open or create the database
				 * @param name of the database file, or null for an in-memory database
				 * @param factory to use for creating cursor objects, or null for the default
				 * @param version number of the database (starting at 1); if the database is older,
				 * @param errorHandler the {@link DatabaseErrorHandler} to be used when sqlite reports database
				 */
				constructor(context: android.content.Context, name: string, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, version: number, errorHandler: android.database.IDatabaseErrorHandler);
				static class: java.lang.Class<android.database.sqlite.SQLiteOpenHelper>;
				/**
				 * Return the name of the SQLite database being opened, as given to the constructor.
				 */
				public getDatabaseName(): string;
				/**
				 * Enables or disables the use of write-ahead logging for the database.
				 * @param enabled True if write-ahead logging should be enabled, false if it
				 */
				public setWriteAheadLoggingEnabled(enabled: boolean): void;
				/**
				 * Create and/or open a database that will be used for reading and writing. The first time this is called, the database will be opened and #onCreate, #onUpgrade and/or #onOpen will be called.
				 */
				public getWritableDatabase(): android.database.sqlite.SQLiteDatabase;
				/**
				 * Create and/or open a database. This will be the same object returned by #getWritableDatabase unless some problem, such as a full disk, requires the database to be opened read-only. In that case, a read-only database object will be returned. If the problem is fixed, a future call to #getWritableDatabase may succeed, in which case the read-only database object will be closed and the read/write object will be returned in the future.
				 */
				public getReadableDatabase(): android.database.sqlite.SQLiteDatabase;
				/**
				 * Close any open database object.
				 */
				public close(): void;
				/**
				 * Called when the database connection is being configured, to enable features such as write-ahead logging or foreign key support.
				 * @param db The database.
				 */
				public onConfigure(db: android.database.sqlite.SQLiteDatabase): void;
				/**
				 * Called when the database is created for the first time. This is where the creation of tables and the initial population of the tables should happen.
				 * @param db The database.
				 */
				public onCreate(db: android.database.sqlite.SQLiteDatabase): void;
				/**
				 * Called when the database needs to be upgraded. The implementation should use this method to drop tables, add tables, or do anything else it needs to upgrade to the new schema version.
				 * @param db The database.
				 * @param oldVersion The old database version.
				 * @param newVersion The new database version.
				 */
				public onUpgrade(db: android.database.sqlite.SQLiteDatabase, oldVersion: number, newVersion: number): void;
				/**
				 * Called when the database needs to be downgraded. This is strictly similar to #onUpgrade method, but is called whenever current version is newer than requested one. However, this method is not abstract, so it is not mandatory for a customer to implement it. If not overridden, default implementation will reject downgrade and throws SQLiteException
				 * @param db The database.
				 * @param oldVersion The old database version.
				 * @param newVersion The new database version.
				 */
				public onDowngrade(db: android.database.sqlite.SQLiteDatabase, oldVersion: number, newVersion: number): void;
				/**
				 * Called when the database has been opened. The implementation should check SQLiteDatabase#isReadOnly before updating the database.
				 * @param db The database.
				 */
				public onOpen(db: android.database.sqlite.SQLiteDatabase): void;
			}
			/**
			 * This error can occur if the application creates a SQLiteStatement object and allows multiple threads in the application use it at the same time. Sqlite returns this error if bind and execute methods on this object occur at the same time from multiple threads, like so: thread # 1: in execute() method of the SQLiteStatement object while thread # 2: is in bind..() on the same object. </p> FIX this by NEVER sharing the same SQLiteStatement object between threads. Create a local instance of the SQLiteStatement whenever it is needed, use it and close it ASAP. NEVER make it globally available.
			 */
			export class SQLiteMisuseException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteMisuseException>;
			}
			/**
			 * Thrown if the database engine was unable to acquire the database locks it needs to do its job. If the statement is a [COMMIT] or occurs outside of an explicit transaction, then you can retry the statement. If the statement is not a [COMMIT] and occurs within a explicit transaction then you should rollback the transaction before continuing.
			 */
			export class SQLiteDatabaseLockedException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteDatabaseLockedException>;
			}
			/**
			 * An exception that indicates that the SQLite database is full.
			 */
			export class SQLiteFullException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteFullException>;
			}
			/**
			 * A SQLite exception that indicates there was an error with SQL parsing or execution.
			 */
			export class SQLiteException extends android.database.SQLException {
				constructor();
				constructor(error: string);
				constructor(error: string, cause: java.lang.Throwable);
				static class: java.lang.Class<android.database.sqlite.SQLiteException>;
			}
			/**
			 * A base class for compiled SQLite programs.
			 */
			export class SQLiteProgram extends android.database.sqlite.SQLiteClosable {
				static class: java.lang.Class<android.database.sqlite.SQLiteProgram>;
				getDatabase(): android.database.sqlite.SQLiteDatabase;
				getSql(): string;
				getBindArgs(): native.Array<any>;
				getColumnNames(): native.Array<string>;
				/**
				 * Unimplemented. This method is deprecated and must not be used.
				 */
				public getUniqueId(): number;
				/**
				 * Bind a NULL value to this statement. The value remains bound until #clearBindings is called.
				 * @param index The 1-based index to the parameter to bind null to
				 */
				public bindNull(index: number): void;
				/**
				 * Bind a long value to this statement. The value remains bound until #clearBindings is called. addToBindArgs
				 * @param index The 1-based index to the parameter to bind
				 * @param value The value to bind
				 */
				public bindLong(index: number, value: number): void;
				/**
				 * Bind a double value to this statement. The value remains bound until #clearBindings is called.
				 * @param index The 1-based index to the parameter to bind
				 * @param value The value to bind
				 */
				public bindDouble(index: number, value: number): void;
				/**
				 * Bind a String value to this statement. The value remains bound until #clearBindings is called.
				 * @param index The 1-based index to the parameter to bind
				 * @param value The value to bind, must not be null
				 */
				public bindString(index: number, value: string): void;
				/**
				 * Bind a byte array value to this statement. The value remains bound until #clearBindings is called.
				 * @param index The 1-based index to the parameter to bind
				 * @param value The value to bind, must not be null
				 */
				public bindBlob(index: number, value: native.Array<number>): void;
				/**
				 * Clears all existing bindings. Unset bindings are treated as NULL.
				 */
				public clearBindings(): void;
				/**
				 * Given an array of String bindArgs, this method binds all of them in one single call.
				 * @param bindArgs the String array of bind args, none of which must be null.
				 */
				public bindAllArgsAsStrings(bindArgs: native.Array<string>): void;
				protected onAllReferencesReleased(): void;
			}
			/**
			 * An exception that indicates that the SQLite program was aborted. This can happen either through a call to ABORT in a trigger, or as the result of using the ABORT conflict clause.
			 */
			export class SQLiteAbortException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteAbortException>;
			}
			/**
			 * Thrown if the the bind or column parameter index is out of range
			 */
			export class SQLiteBindOrColumnIndexOutOfRangeException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteBindOrColumnIndexOutOfRangeException>;
			}
			/**
			 * Represents a statement that can be executed against a database. The statement cannot return multiple rows or columns, but single value (1 x 1) result sets are supported.
			 */
			export class SQLiteStatement extends android.database.sqlite.SQLiteProgram {
				static class: java.lang.Class<android.database.sqlite.SQLiteStatement>;
				/**
				 * Execute this SQL statement, if it is not a SELECT / INSERT / DELETE / UPDATE, for example CREATE / DROP table, view, trigger, index etc.
				 */
				public execute(): void;
				/**
				 * Execute this SQL statement, if the the number of rows affected by execution of this SQL statement is of any importance to the caller - for example, UPDATE / DELETE SQL statements.
				 */
				public executeUpdateDelete(): number;
				/**
				 * Execute this SQL statement and return the ID of the row inserted due to this call. The SQL statement should be an INSERT for this to be a useful call.
				 */
				public executeInsert(): any;
				/**
				 * Execute a statement that returns a 1 by 1 table with a numeric value. For example, SELECT COUNT(*) FROM table;
				 */
				public simpleQueryForLong(): any;
				/**
				 * Execute a statement that returns a 1 by 1 table with a text value. For example, SELECT COUNT(*) FROM table;
				 */
				public simpleQueryForString(): string;
				/**
				 * Executes a statement that returns a 1 by 1 table with a blob value.
				 */
				public simpleQueryForBlobFileDescriptor(): android.os.ParcelFileDescriptor;
				public toString(): string;
			}
			/**
			 * Exposes methods to manage a SQLite database.
			 */
			export class SQLiteDatabase extends android.database.sqlite.SQLiteClosable {
				/**
				 * When a constraint violation occurs, an immediate ROLLBACK occurs, thus ending the current transaction, and the command aborts with a return code of SQLITE_CONSTRAINT. If no transaction is active (other than the implied transaction that is created on every command) then this algorithm works the same as ABORT.
				 */
				static CONFLICT_ROLLBACK: number;
				/**
				 * When a constraint violation occurs,no ROLLBACK is executed so changes from prior commands within the same transaction are preserved. This is the default behavior.
				 */
				static CONFLICT_ABORT: number;
				/**
				 * When a constraint violation occurs, the command aborts with a return code SQLITE_CONSTRAINT. But any changes to the database that the command made prior to encountering the constraint violation are preserved and are not backed out.
				 */
				static CONFLICT_FAIL: number;
				/**
				 * When a constraint violation occurs, the one row that contains the constraint violation is not inserted or changed. But the command continues executing normally. Other rows before and after the row that contained the constraint violation continue to be inserted or updated normally. No error is returned.
				 */
				static CONFLICT_IGNORE: number;
				/**
				 * When a UNIQUE constraint violation occurs, the pre-existing rows that are causing the constraint violation are removed prior to inserting or updating the current row. Thus the insert or update always occurs. The command continues executing normally. No error is returned. If a NOT NULL constraint violation occurs, the NULL value is replaced by the default value for that column. If the column has no default value, then the ABORT algorithm is used. If a CHECK constraint violation occurs then the IGNORE algorithm is used. When this conflict resolution strategy deletes rows in order to satisfy a constraint, it does not invoke delete triggers on those rows. This behavior might change in a future release.
				 */
				static CONFLICT_REPLACE: number;
				/**
				 * Use the following when no conflict action is specified.
				 */
				static CONFLICT_NONE: number;
				/**
				 * Maximum Length Of A LIKE Or GLOB Pattern The pattern matching algorithm used in the default LIKE and GLOB implementation of SQLite can exhibit O(N^2) performance (where N is the number of characters in the pattern) for certain pathological cases. To avoid denial-of-service attacks the length of the LIKE or GLOB pattern is limited to SQLITE_MAX_LIKE_PATTERN_LENGTH bytes. The default value of this limit is 50000. A modern workstation can evaluate even a pathological LIKE or GLOB pattern of 50000 bytes relatively quickly. The denial of service problem only comes into play when the pattern length gets into millions of bytes. Nevertheless, since most useful LIKE or GLOB patterns are at most a few dozen bytes in length, paranoid application developers may want to reduce this parameter to something in the range of a few hundred if they know that external users are able to generate arbitrary patterns.
				 */
				static SQLITE_MAX_LIKE_PATTERN_LENGTH: number;
				/**
				 * Open flag: Flag for #openDatabase to open the database for reading and writing. If the disk is full, this may fail even before you actually write anything.
				 */
				static OPEN_READWRITE: number;
				/**
				 * Open flag: Flag for #openDatabase to open the database for reading only. This is the only reliable way to open a database if the disk may be full.
				 */
				static OPEN_READONLY: number;
				/**
				 * Open flag: Flag for #openDatabase to open the database without support for localized collators.
				 */
				static NO_LOCALIZED_COLLATORS: number;
				/**
				 * Open flag: Flag for #openDatabase to create the database file if it does not already exist.
				 */
				static CREATE_IF_NECESSARY: number;
				/**
				 * Open flag: Flag for #openDatabase to open the database file with write-ahead logging enabled by default. Using this flag is more efficient than calling #enableWriteAheadLogging.
				 */
				static ENABLE_WRITE_AHEAD_LOGGING: number;
				/**
				 * Absolute max value that can be set by #setMaxSqlCacheSize(int).
				 */
				static MAX_SQL_CACHE_SIZE: number;
				static class: java.lang.Class<android.database.sqlite.SQLiteDatabase>;
				protected finalize(): void;
				protected onAllReferencesReleased(): void;
				/**
				 * Attempts to release memory that SQLite holds but does not require to operate properly. Typically this memory will come from the page cache.
				 */
				public static releaseMemory(): number;
				/**
				 * Control whether or not the SQLiteDatabase is made thread-safe by using locks around critical sections. This is pretty expensive, so if you know that your DB will only be used by a single thread then you should set this to false. The default is true.
				 * @param lockingEnabled set to true to enable locks, false otherwise
				 */
				public setLockingEnabled(lockingEnabled: boolean): void;
				/**
				 * Gets a label to use when describing the database in log messages.
				 */
				getLabel(): string;
				/**
				 * Sends a corruption message to the database error handler.
				 */
				onCorruption(): void;
				/**
				 * Gets default connection flags that are appropriate for this thread, taking into account whether the thread is acting on behalf of the UI.
				 * @param readOnly True if the connection should be read-only.
				 */
				getThreadDefaultConnectionFlags(readOnly: boolean): number;
				/**
				 * Begins a transaction in EXCLUSIVE mode.
				 */
				public beginTransaction(): void;
				/**
				 * Begins a transaction in IMMEDIATE mode. Transactions can be nested. When the outer transaction is ended all of the work done in that transaction and all of the nested transactions will be committed or rolled back. The changes will be rolled back if any transaction is ended without being marked as clean (by calling setTransactionSuccessful). Otherwise they will be committed.
				 */
				public beginTransactionNonExclusive(): void;
				/**
				 * Begins a transaction in EXCLUSIVE mode.
				 * @param transactionListener listener that should be notified when the transaction begins,
				 */
				public beginTransactionWithListener(transactionListener: android.database.sqlite.ISQLiteTransactionListener): void;
				/**
				 * Begins a transaction in IMMEDIATE mode. Transactions can be nested. When the outer transaction is ended all of the work done in that transaction and all of the nested transactions will be committed or rolled back. The changes will be rolled back if any transaction is ended without being marked as clean (by calling setTransactionSuccessful). Otherwise they will be committed.
				 * @param transactionListener listener that should be notified when the
				 */
				public beginTransactionWithListenerNonExclusive(transactionListener: android.database.sqlite.ISQLiteTransactionListener): void;
				/**
				 * End a transaction. See beginTransaction for notes about how to use this and when transactions are committed and rolled back.
				 */
				public endTransaction(): void;
				/**
				 * Marks the current transaction as successful. Do not do any more database work between calling this and calling endTransaction. Do as little non-database work as possible in that situation too. If any errors are encountered between this and endTransaction the transaction will still be committed.
				 */
				public setTransactionSuccessful(): void;
				/**
				 * Returns true if the current thread has a transaction pending.
				 */
				public inTransaction(): boolean;
				/**
				 * Returns true if the current thread is holding an active connection to the database.
				 */
				public isDbLockedByCurrentThread(): boolean;
				/**
				 * Always returns false.
				 */
				public isDbLockedByOtherThreads(): boolean;
				/**
				 * Temporarily end the transaction to let other threads run. The transaction is assumed to be successful so far. Do not call setTransactionSuccessful before calling this. When this returns a new transaction will have been created but not marked as successful.
				 */
				public yieldIfContended(): boolean;
				/**
				 * Temporarily end the transaction to let other threads run. The transaction is assumed to be successful so far. Do not call setTransactionSuccessful before calling this. When this returns a new transaction will have been created but not marked as successful. This assumes that there are no nested transactions (beginTransaction has only been called once) and will throw an exception if that is not the case.
				 */
				public yieldIfContendedSafely(): boolean;
				/**
				 * Temporarily end the transaction to let other threads run. The transaction is assumed to be successful so far. Do not call setTransactionSuccessful before calling this. When this returns a new transaction will have been created but not marked as successful. This assumes that there are no nested transactions (beginTransaction has only been called once) and will throw an exception if that is not the case.
				 * @param sleepAfterYieldDelay if > 0, sleep this long before starting a new transaction if
				 */
				public yieldIfContendedSafely(sleepAfterYieldDelay: number): boolean;
				/**
				 * Deprecated. This method no longer serves any useful purpose and has been deprecated.
				 */
				public getSyncedTables(): java.util.IMap<string, string>;
				/**
				 * Open the database according to the flags #OPEN_READWRITE #OPEN_READONLY #CREATE_IF_NECESSARY and/or #NO_LOCALIZED_COLLATORS.
				 * @param path to database file to open and/or create
				 * @param factory an optional factory class that is called to instantiate a
				 * @param flags to control database access mode
				 */
				public static openDatabase(path: string, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, flags: number): android.database.sqlite.SQLiteDatabase;
				/**
				 * Open the database according to the flags #OPEN_READWRITE #OPEN_READONLY #CREATE_IF_NECESSARY and/or #NO_LOCALIZED_COLLATORS.
				 * @param path to database file to open and/or create
				 * @param factory an optional factory class that is called to instantiate a
				 * @param flags to control database access mode
				 * @param errorHandler the {@link DatabaseErrorHandler} obj to be used to handle corruption
				 */
				public static openDatabase(path: string, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, flags: number, errorHandler: android.database.IDatabaseErrorHandler): android.database.sqlite.SQLiteDatabase;
				/**
				 * Equivalent to openDatabase(file.getPath(), factory, CREATE_IF_NECESSARY).
				 */
				public static openOrCreateDatabase(file: java.io.File, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
				/**
				 * Equivalent to openDatabase(path, factory, CREATE_IF_NECESSARY).
				 */
				public static openOrCreateDatabase(path: string, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
				/**
				 * Equivalent to openDatabase(path, factory, CREATE_IF_NECESSARY, errorHandler).
				 */
				public static openOrCreateDatabase(path: string, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, errorHandler: android.database.IDatabaseErrorHandler): android.database.sqlite.SQLiteDatabase;
				/**
				 * Deletes a database including its journal file and other auxiliary files that may have been created by the database engine.
				 * @param file The database file path.
				 */
				public static deleteDatabase(file: java.io.File): boolean;
				/**
				 * Create a memory backed SQLite database. Its contents will be destroyed when the database is closed.
				 * @param factory an optional factory class that is called to instantiate a
				 */
				public static create(factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
				/**
				 * Gets the database version.
				 */
				public getVersion(): number;
				/**
				 * Sets the database version.
				 * @param version the new database version
				 */
				public setVersion(version: number): void;
				/**
				 * Returns the maximum size the database may grow to.
				 */
				public getMaximumSize(): any;
				/**
				 * Sets the maximum size the database will grow to. The maximum size cannot be set below the current size.
				 * @param numBytes the maximum database size, in bytes
				 */
				public setMaximumSize(numBytes: number): any;
				/**
				 * Returns the current database page size, in bytes.
				 */
				public getPageSize(): any;
				/**
				 * Sets the database page size. The page size must be a power of two. This method does not work if any data has been written to the database file, and must be called right after the database has been created.
				 * @param numBytes the database page size, in bytes
				 */
				public setPageSize(numBytes: number): void;
				/**
				 * Mark this table as syncable. When an update occurs in this table the _sync_dirty field will be set to ensure proper syncing operation.
				 * @param table the table to mark as syncable
				 * @param deletedTable The deleted table that corresponds to the
				 */
				public markTableSyncable(table: string, deletedTable: string): void;
				/**
				 * Mark this table as syncable, with the _sync_dirty residing in another table. When an update occurs in this table the _sync_dirty field of the row in updateTable with the _id in foreignKey will be set to ensure proper syncing operation.
				 * @param table an update on this table will trigger a sync time removal
				 * @param foreignKey this is the column in table whose value is an _id in
				 * @param updateTable this is the table that will have its _sync_dirty
				 */
				public markTableSyncable(table: string, foreignKey: string, updateTable: string): void;
				/**
				 * Finds the name of the first table, which is editable.
				 * @param tables a list of tables
				 */
				public static findEditTable(tables: string): string;
				/**
				 * Compiles an SQL statement into a reusable pre-compiled statement object. The parameters are identical to #execSQL(String). You may put ?s in the statement and fill in those values with SQLiteProgram#bindString and SQLiteProgram#bindLong each time you want to run the statement. Statements may not return result sets larger than 1x1.
				 * @param sql The raw SQL statement, may contain ? for unknown values to be
				 */
				public compileStatement(sql: string): android.database.sqlite.SQLiteStatement;
				/**
				 * Query the given URL, returning a Cursor over the result set.
				 * @param distinct true if you want each row to be unique, false otherwise.
				 * @param table The table name to compile the query against.
				 * @param columns A list of which columns to return. Passing null will
				 * @param selection A filter declaring which rows to return, formatted as an
				 * @param selectionArgs You may include ?s in selection, which will be
				 * @param groupBy A filter declaring how to group rows, formatted as an SQL
				 * @param having A filter declare which row groups to include in the cursor,
				 * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
				 * @param limit Limits the number of rows returned by the query,
				 */
				public query(distinct: boolean, table: string, columns: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, orderBy: string, limit: string): android.database.ICursor;
				/**
				 * Query the given URL, returning a Cursor over the result set.
				 * @param distinct true if you want each row to be unique, false otherwise.
				 * @param table The table name to compile the query against.
				 * @param columns A list of which columns to return. Passing null will
				 * @param selection A filter declaring which rows to return, formatted as an
				 * @param selectionArgs You may include ?s in selection, which will be
				 * @param groupBy A filter declaring how to group rows, formatted as an SQL
				 * @param having A filter declare which row groups to include in the cursor,
				 * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
				 * @param limit Limits the number of rows returned by the query,
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				public query(distinct: boolean, table: string, columns: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, orderBy: string, limit: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
				/**
				 * Query the given URL, returning a Cursor over the result set.
				 * @param cursorFactory the cursor factory to use, or null for the default factory
				 * @param distinct true if you want each row to be unique, false otherwise.
				 * @param table The table name to compile the query against.
				 * @param columns A list of which columns to return. Passing null will
				 * @param selection A filter declaring which rows to return, formatted as an
				 * @param selectionArgs You may include ?s in selection, which will be
				 * @param groupBy A filter declaring how to group rows, formatted as an SQL
				 * @param having A filter declare which row groups to include in the cursor,
				 * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
				 * @param limit Limits the number of rows returned by the query,
				 */
				public queryWithFactory(cursorFactory: android.database.sqlite.SQLiteDatabase.ICursorFactory, distinct: boolean, table: string, columns: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, orderBy: string, limit: string): android.database.ICursor;
				/**
				 * Query the given URL, returning a Cursor over the result set.
				 * @param cursorFactory the cursor factory to use, or null for the default factory
				 * @param distinct true if you want each row to be unique, false otherwise.
				 * @param table The table name to compile the query against.
				 * @param columns A list of which columns to return. Passing null will
				 * @param selection A filter declaring which rows to return, formatted as an
				 * @param selectionArgs You may include ?s in selection, which will be
				 * @param groupBy A filter declaring how to group rows, formatted as an SQL
				 * @param having A filter declare which row groups to include in the cursor,
				 * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
				 * @param limit Limits the number of rows returned by the query,
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				public queryWithFactory(cursorFactory: android.database.sqlite.SQLiteDatabase.ICursorFactory, distinct: boolean, table: string, columns: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, orderBy: string, limit: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
				/**
				 * Query the given table, returning a Cursor over the result set.
				 * @param table The table name to compile the query against.
				 * @param columns A list of which columns to return. Passing null will
				 * @param selection A filter declaring which rows to return, formatted as an
				 * @param selectionArgs You may include ?s in selection, which will be
				 * @param groupBy A filter declaring how to group rows, formatted as an SQL
				 * @param having A filter declare which row groups to include in the cursor,
				 * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
				 */
				public query(table: string, columns: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, orderBy: string): android.database.ICursor;
				/**
				 * Query the given table, returning a Cursor over the result set.
				 * @param table The table name to compile the query against.
				 * @param columns A list of which columns to return. Passing null will
				 * @param selection A filter declaring which rows to return, formatted as an
				 * @param selectionArgs You may include ?s in selection, which will be
				 * @param groupBy A filter declaring how to group rows, formatted as an SQL
				 * @param having A filter declare which row groups to include in the cursor,
				 * @param orderBy How to order the rows, formatted as an SQL ORDER BY clause
				 * @param limit Limits the number of rows returned by the query,
				 */
				public query(table: string, columns: native.Array<string>, selection: string, selectionArgs: native.Array<string>, groupBy: string, having: string, orderBy: string, limit: string): android.database.ICursor;
				/**
				 * Runs the provided SQL and returns a Cursor over the result set.
				 * @param sql the SQL query. The SQL string must not be ; terminated
				 * @param selectionArgs You may include ?s in where clause in the query,
				 */
				public rawQuery(sql: string, selectionArgs: native.Array<string>): android.database.ICursor;
				/**
				 * Runs the provided SQL and returns a Cursor over the result set.
				 * @param sql the SQL query. The SQL string must not be ; terminated
				 * @param selectionArgs You may include ?s in where clause in the query,
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				public rawQuery(sql: string, selectionArgs: native.Array<string>, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
				/**
				 * Runs the provided SQL and returns a cursor over the result set.
				 * @param cursorFactory the cursor factory to use, or null for the default factory
				 * @param sql the SQL query. The SQL string must not be ; terminated
				 * @param selectionArgs You may include ?s in where clause in the query,
				 * @param editTable the name of the first table, which is editable
				 */
				public rawQueryWithFactory(cursorFactory: android.database.sqlite.SQLiteDatabase.ICursorFactory, sql: string, selectionArgs: native.Array<string>, editTable: string): android.database.ICursor;
				/**
				 * Runs the provided SQL and returns a cursor over the result set.
				 * @param cursorFactory the cursor factory to use, or null for the default factory
				 * @param sql the SQL query. The SQL string must not be ; terminated
				 * @param selectionArgs You may include ?s in where clause in the query,
				 * @param editTable the name of the first table, which is editable
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				public rawQueryWithFactory(cursorFactory: android.database.sqlite.SQLiteDatabase.ICursorFactory, sql: string, selectionArgs: native.Array<string>, editTable: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
				/**
				 * Convenience method for inserting a row into the database.
				 * @param table the table to insert the row into
				 * @param nullColumnHack optional; may be <code>null</code>.
				 * @param values this map contains the initial column values for the
				 */
				public insert(table: string, nullColumnHack: string, values: android.content.ContentValues): any;
				/**
				 * Convenience method for inserting a row into the database.
				 * @param table the table to insert the row into
				 * @param nullColumnHack optional; may be <code>null</code>.
				 * @param values this map contains the initial column values for the
				 */
				public insertOrThrow(table: string, nullColumnHack: string, values: android.content.ContentValues): any;
				/**
				 * Convenience method for replacing a row in the database.
				 * @param table the table in which to replace the row
				 * @param nullColumnHack optional; may be <code>null</code>.
				 * @param initialValues this map contains the initial column values for
				 */
				public replace(table: string, nullColumnHack: string, initialValues: android.content.ContentValues): any;
				/**
				 * Convenience method for replacing a row in the database.
				 * @param table the table in which to replace the row
				 * @param nullColumnHack optional; may be <code>null</code>.
				 * @param initialValues this map contains the initial column values for
				 */
				public replaceOrThrow(table: string, nullColumnHack: string, initialValues: android.content.ContentValues): any;
				/**
				 * General method for inserting a row into the database.
				 * @param table the table to insert the row into
				 * @param nullColumnHack optional; may be <code>null</code>.
				 * @param initialValues this map contains the initial column values for the
				 * @param conflictAlgorithm for insert conflict resolver
				 */
				public insertWithOnConflict(table: string, nullColumnHack: string, initialValues: android.content.ContentValues, conflictAlgorithm: number): any;
				/**
				 * Convenience method for deleting rows in the database.
				 * @param table the table to delete from
				 * @param whereClause the optional WHERE clause to apply when deleting.
				 * @param whereArgs 
				 */
				public delete(table: string, whereClause: string, whereArgs: native.Array<string>): number;
				/**
				 * Convenience method for updating rows in the database.
				 * @param table the table to update in
				 * @param values a map from column names to new column values. null is a
				 * @param whereClause the optional WHERE clause to apply when updating.
				 * @param whereArgs 
				 */
				public update(table: string, values: android.content.ContentValues, whereClause: string, whereArgs: native.Array<string>): number;
				/**
				 * Convenience method for updating rows in the database.
				 * @param table the table to update in
				 * @param values a map from column names to new column values. null is a
				 * @param whereClause the optional WHERE clause to apply when updating.
				 * @param whereArgs conflictAlgorithm for update conflict resolver
				 * @param conflictAlgorithm 
				 */
				public updateWithOnConflict(table: string, values: android.content.ContentValues, whereClause: string, whereArgs: native.Array<string>, conflictAlgorithm: number): number;
				/**
				 * Execute a single SQL statement that is NOT a SELECT or any other SQL statement that returns data.
				 * @param sql the SQL statement to be executed. Multiple statements separated by semicolons are
				 */
				public execSQL(sql: string): void;
				/**
				 * Execute a single SQL statement that is NOT a SELECT/INSERT/UPDATE/DELETE.
				 * @param sql the SQL statement to be executed. Multiple statements separated by semicolons are
				 * @param bindArgs only byte[], String, Long and Double are supported in bindArgs.
				 */
				public execSQL(sql: string, bindArgs: native.Array<any>): void;
				/**
				 * Returns true if the database is opened as read only.
				 */
				public isReadOnly(): boolean;
				/**
				 * Returns true if the database is currently open.
				 */
				public isOpen(): boolean;
				/**
				 * Returns true if the new version code is greater than the current database version.
				 * @param newVersion The new version code.
				 */
				public needUpgrade(newVersion: number): boolean;
				/**
				 * Gets the path to the database file.
				 */
				public getPath(): string;
				/**
				 * Sets the locale for this database. Does nothing if this database has the #NO_LOCALIZED_COLLATORS flag set or was opened read only.
				 * @param locale The new locale.
				 */
				public setLocale(locale: java.util.Locale): void;
				/**
				 * Sets the maximum size of the prepared-statement cache for this database. (size of the cache = number of compiled-sql-statements stored in the cache).
				 * @param cacheSize the size of the cache. can be (0 to {@link #MAX_SQL_CACHE_SIZE})
				 */
				public setMaxSqlCacheSize(cacheSize: number): void;
				/**
				 * Sets whether foreign key constraints are enabled for the database.
				 * @param enable True to enable foreign key constraints, false to disable them.
				 */
				public setForeignKeyConstraintsEnabled(enable: boolean): void;
				/**
				 * This method enables parallel execution of queries from multiple threads on the same database. It does this by opening multiple connections to the database and using a different database connection for each query. The database journal mode is also changed to enable writes to proceed concurrently with reads.
				 */
				public enableWriteAheadLogging(): boolean;
				/**
				 * This method disables the features enabled by #enableWriteAheadLogging().
				 */
				public disableWriteAheadLogging(): void;
				/**
				 * Returns true if write-ahead logging has been enabled for this database.
				 */
				public isWriteAheadLoggingEnabled(): boolean;
				/**
				 * Dump detailed information about all open databases in the current process. Used by bug report.
				 */
				static dumpAll(printer: android.util.IPrinter, verbose: boolean): void;
				/**
				 * Returns list of full pathnames of all attached databases including the main database by executing 'pragma database_list' on the database.
				 */
				public getAttachedDbs(): java.util.IList<android.util.Pair<string, string>>;
				/**
				 * Runs 'pragma integrity_check' on the given database (and all the attached databases) and returns true if the given database (and all its attached databases) pass integrity_check, false otherwise.
				 */
				public isDatabaseIntegrityOk(): boolean;
				public toString(): string;
			}
			export module SQLiteDatabase {
				/**
				 * Used to allow returning sub-classes of Cursor when calling query.
				 */
				export class CursorFactory implements android.database.sqlite.SQLiteDatabase.ICursorFactory {
					constructor(implementation: android.database.sqlite.SQLiteDatabase.ICursorFactory);
					/**
					 * See SQLiteCursor#SQLiteCursor(SQLiteCursorDriver, String, SQLiteQuery).
					 */
					public newCursor(db: android.database.sqlite.SQLiteDatabase, masterQuery: android.database.sqlite.ISQLiteCursorDriver, editTable: string, query: android.database.sqlite.SQLiteQuery): android.database.ICursor;
				}
				/**
				 * Used to allow returning sub-classes of Cursor when calling query.
				 */
				interface ICursorFactory {
					/**
					 * See SQLiteCursor#SQLiteCursor(SQLiteCursorDriver, String, SQLiteQuery).
					 */
					newCursor(db: android.database.sqlite.SQLiteDatabase, masterQuery: android.database.sqlite.ISQLiteCursorDriver, editTable: string, query: android.database.sqlite.SQLiteQuery): android.database.ICursor;
				}
			}
			/**
			 * An exception that indicates that an IO error occured while accessing the SQLite database file.
			 */
			export class SQLiteDiskIOException extends android.database.sqlite.SQLiteException {
				constructor();
				constructor(error: string);
				static class: java.lang.Class<android.database.sqlite.SQLiteDiskIOException>;
			}
		}
		/**
		 * A base class for Cursors that store their data in CursorWindows.
		 */
		export class AbstractWindowedCursor extends android.database.AbstractCursor {
			constructor();
			static class: java.lang.Class<android.database.AbstractWindowedCursor>;
			public getBlob(columnIndex: number): native.Array<number>;
			public getString(columnIndex: number): string;
			public copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			public getShort(columnIndex: number): number;
			public getInt(columnIndex: number): number;
			public getLong(columnIndex: number): any;
			public getFloat(columnIndex: number): number;
			public getDouble(columnIndex: number): any;
			public isNull(columnIndex: number): boolean;
			/**
			 *  Use #getType
			 */
			public isBlob(columnIndex: number): boolean;
			/**
			 *  Use #getType
			 */
			public isString(columnIndex: number): boolean;
			/**
			 *  Use #getType
			 */
			public isLong(columnIndex: number): boolean;
			/**
			 *  Use #getType
			 */
			public isFloat(columnIndex: number): boolean;
			public getType(columnIndex: number): number;
			protected checkPosition(): void;
			public getWindow(): android.database.CursorWindow;
			/**
			 * Sets a new cursor window for the cursor to use.
			 * @param window The new cursor window, typically a remote cursor window.
			 */
			public setWindow(window: android.database.CursorWindow): void;
			/**
			 * Returns true if the cursor has an associated cursor window.
			 */
			public hasWindow(): boolean;
		}
		/**
		 * A cross process cursor is an extension of a Cursor that also supports usage from remote processes.
		 */
		interface ICrossProcessCursor extends android.database.ICursor {
			/**
			 * Returns a pre-filled window that contains the data within this cursor.
			 */
			getWindow(): android.database.CursorWindow;
			/**
			 * Copies cursor data into the window.
			 * @param position The zero-based index of the first row to copy into the window.
			 * @param window The window to fill.
			 */
			fillWindow(position: number, window: android.database.CursorWindow): void;
			/**
			 * This function is called every time the cursor is successfully scrolled to a new position, giving the subclass a chance to update any state it may have. If it returns false the move function will also do so and the cursor will scroll to the beforeFirst position.
			 * @param oldPosition The position that we're moving from.
			 * @param newPosition The position that we're moving to.
			 */
			onMove(oldPosition: number, newPosition: number): boolean;
			/**
			 * Returns the numbers of rows in the cursor.
			 */
			getCount(): number;
			/**
			 * Returns the current position of the cursor in the row set. The value is zero-based. When the row set is first returned the cursor will be at positon -1, which is before the first row. After the last row is returned another call to next() will leave the cursor past the last entry, at a position of count().
			 */
			getPosition(): number;
			/**
			 * Move the cursor by a relative amount, forward or backward, from the current position. Positive offsets move forwards, negative offsets move backwards. If the final position is outside of the bounds of the result set then the resultant position will be pinned to -1 or count() depending on whether the value is off the front or end of the set, respectively.
			 * @param offset the offset to be applied from the current position.
			 */
			move(offset: number): boolean;
			/**
			 * Move the cursor to an absolute position. The valid range of values is -1 &lt;= position &lt;= count.
			 * @param position the zero-based position to move to.
			 */
			moveToPosition(position: number): boolean;
			/**
			 * Move the cursor to the first row.
			 */
			moveToFirst(): boolean;
			/**
			 * Move the cursor to the last row.
			 */
			moveToLast(): boolean;
			/**
			 * Move the cursor to the next row.
			 */
			moveToNext(): boolean;
			/**
			 * Move the cursor to the previous row.
			 */
			moveToPrevious(): boolean;
			/**
			 * Returns whether the cursor is pointing to the first row.
			 */
			isFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the last row.
			 */
			isLast(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position before the first row.
			 */
			isBeforeFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position after the last row.
			 */
			isAfterLast(): boolean;
			/**
			 * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. If you expect the column to exist use #getColumnIndexOrThrow(String) instead, which will make the error more clear.
			 * @param columnName the name of the target column.
			 */
			getColumnIndex(columnName: string): number;
			/**
			 * Returns the zero-based index for the given column name, or throws IllegalArgumentException if the column doesn't exist. If you're not sure if a column will exist or not use #getColumnIndex(String) and check for -1, which is more efficient than catching the exceptions.
			 * @param columnName the name of the target column.
			 */
			getColumnIndexOrThrow(columnName: string): number;
			/**
			 * Returns the column name at the given zero-based column index.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getColumnName(columnIndex: number): string;
			/**
			 * Returns a string array holding the names of all of the columns in the result set in the order in which they were listed in the result.
			 */
			getColumnNames(): native.Array<string>;
			/**
			 * Return total number of columns
			 */
			getColumnCount(): number;
			/**
			 * Returns the value of the requested column as a byte array.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getBlob(columnIndex: number): native.Array<number>;
			/**
			 * Returns the value of the requested column as a String.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getString(columnIndex: number): string;
			/**
			 * Retrieves the requested column text and stores it in the buffer provided. If the buffer size is not sufficient, a new char buffer will be allocated and assigned to CharArrayBuffer.data
			 * @param columnIndex the zero-based index of the target column.
			 * @param buffer the buffer to copy the text into.
			 */
			copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			/**
			 * Returns the value of the requested column as a short.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getShort(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as an int.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getInt(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a long.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getLong(columnIndex: number): any;
			/**
			 * Returns the value of the requested column as a float.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getFloat(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a double.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getDouble(columnIndex: number): any;
			/**
			 * Returns data type of the given column's value. The preferred type of the column is returned but the data may be converted to other types as documented in the get-type methods such as #getInt(int), #getFloat(int) etc.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getType(columnIndex: number): number;
			/**
			 * Returns <code>true</code> if the value in the indicated column is null.
			 * @param columnIndex the zero-based index of the target column.
			 */
			isNull(columnIndex: number): boolean;
			/**
			 * Deactivates the Cursor, making all calls on it fail until #requery is called. Inactive Cursors use fewer resources than active Cursors. Calling #requery will make the cursor active again. Since #requery() is deprecated, so too is this.
			 */
			deactivate(): void;
			/**
			 * Performs the query that created the cursor again, refreshing its contents. This may be done at any time, including after a call to #deactivate.
			 */
			requery(): boolean;
			/**
			 * Closes the Cursor, releasing all of its resources and making it completely invalid. Unlike #deactivate() a call to #requery() will not make the Cursor valid again.
			 */
			close(): void;
			/**
			 * return true if the cursor is closed
			 */
			isClosed(): boolean;
			/**
			 * Register an observer that is called when changes happen to the content backing this cursor. Typically the data set won't change until #requery() is called.
			 * @param observer the object that gets notified when the content backing the cursor changes.
			 */
			registerContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Register an observer that is called when changes happen to the contents of the this cursors data set, for example, when the data set is changed via #requery(), #deactivate(), or #close().
			 * @param observer the object that gets notified when the cursors data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Register to watch a content URI for changes. This can be the URI of a specific data row (for example, "content://my_provider_type/23"), or a a generic URI for a content type. 
			 * @param cr The content resolver from the caller's context. The listener attached to
			 * @param uri The content URI to watch.
			 */
			setNotificationUri(cr: android.content.ContentResolver, uri: android.net.Uri): void;
			/**
			 * onMove() will only be called across processes if this method returns true.
			 */
			getWantsAllOnMoveCalls(): boolean;
			/**
			 * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band metadata to their users. One use of this is for reporting on the progress of network requests that are required to fetch data for the cursor.
			 */
			getExtras(): android.os.Bundle;
			/**
			 * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The structure of each bundle is entirely defined by the cursor.
			 * @param extras extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}.
			 */
			respond(extras: android.os.Bundle): android.os.Bundle;
		}
		/**
		 * A convience class that lets you present an array of Cursors as a single linear Cursor. The schema of the cursors presented is entirely up to the creator of the MergeCursor, and may be different if that is desired. Calls to getColumns, getColumnIndex, etc will return the value for the row that the MergeCursor is currently pointing at.
		 */
		export class MergeCursor extends android.database.AbstractCursor {
			constructor(cursors: native.Array<android.database.ICursor>);
			static class: java.lang.Class<android.database.MergeCursor>;
			public getCount(): number;
			public onMove(oldPosition: number, newPosition: number): boolean;
			public getString(column: number): string;
			public getShort(column: number): number;
			public getInt(column: number): number;
			public getLong(column: number): any;
			public getFloat(column: number): number;
			public getDouble(column: number): any;
			public getType(column: number): number;
			public isNull(column: number): boolean;
			public getBlob(column: number): native.Array<number>;
			public getColumnNames(): native.Array<string>;
			public deactivate(): void;
			public close(): void;
			public registerContentObserver(observer: android.database.ContentObserver): void;
			public unregisterContentObserver(observer: android.database.ContentObserver): void;
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			public requery(): boolean;
		}
		/**
		 * An interface to let the apps define the actions to take when the following errors are detected database corruption
		 */
		export class DatabaseErrorHandler implements android.database.IDatabaseErrorHandler {
			constructor(implementation: android.database.IDatabaseErrorHandler);
			/**
			 * defines the method to be invoked when database corruption is detected.
			 * @param dbObj the {@link SQLiteDatabase} object representing the database on which corruption
			 */
			public onCorruption(dbObj: android.database.sqlite.SQLiteDatabase): void;
		}
		/**
		 * Wrapper class for Cursor that delegates all calls to the actual cursor object. The primary use for this class is to extend a cursor while overriding only a subset of its methods.
		 */
		export class CursorWrapper extends java.lang.Object implements android.database.ICursor {
			/**
			 * Creates a cursor wrapper.
			 * @param cursor The underlying cursor to wrap.
			 */
			constructor(cursor: android.database.ICursor);
			static class: java.lang.Class<android.database.CursorWrapper>;
			/**
			 * Gets the underlying cursor that is wrapped by this instance.
			 */
			public getWrappedCursor(): android.database.ICursor;
			public close(): void;
			public isClosed(): boolean;
			public getCount(): number;
			public deactivate(): void;
			public moveToFirst(): boolean;
			public getColumnCount(): number;
			public getColumnIndex(columnName: string): number;
			public getColumnIndexOrThrow(columnName: string): number;
			public getColumnName(columnIndex: number): string;
			public getColumnNames(): native.Array<string>;
			public getDouble(columnIndex: number): any;
			public getExtras(): android.os.Bundle;
			public getFloat(columnIndex: number): number;
			public getInt(columnIndex: number): number;
			public getLong(columnIndex: number): any;
			public getShort(columnIndex: number): number;
			public getString(columnIndex: number): string;
			public copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			public getBlob(columnIndex: number): native.Array<number>;
			public getWantsAllOnMoveCalls(): boolean;
			public isAfterLast(): boolean;
			public isBeforeFirst(): boolean;
			public isFirst(): boolean;
			public isLast(): boolean;
			public getType(columnIndex: number): number;
			public isNull(columnIndex: number): boolean;
			public moveToLast(): boolean;
			public move(offset: number): boolean;
			public moveToPosition(position: number): boolean;
			public moveToNext(): boolean;
			public getPosition(): number;
			public moveToPrevious(): boolean;
			public registerContentObserver(observer: android.database.ContentObserver): void;
			public registerDataSetObserver(observer: android.database.DataSetObserver): void;
			public requery(): boolean;
			public respond(extras: android.os.Bundle): android.os.Bundle;
			public setNotificationUri(cr: android.content.ContentResolver, uri: android.net.Uri): void;
			public unregisterContentObserver(observer: android.database.ContentObserver): void;
			public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
		}
		/**
		 * Receives call backs when a data set has been changed, or made invalid. The typically data sets that are observed are Cursors or android.widget.Adapters. DataSetObserver must be implemented by objects which are added to a DataSetObservable.
		 */
		export class DataSetObserver extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.database.DataSetObserver>;
			/**
			 * This method is called when the entire data set has changed, most likely through a call to Cursor#requery() on a Cursor.
			 */
			public onChanged(): void;
			/**
			 * This method is called when the entire data becomes invalid, most likely through a call to Cursor#deactivate() or Cursor#close() on a Cursor.
			 */
			public onInvalidated(): void;
		}
		/**
		 * Provides methods for registering or unregistering arbitrary observers in an ArrayList.
		 */
		export class Observable<T> extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.database.Observable<any>>;
			/**
			 * Adds an observer to the list. The observer cannot be null and it must not already be registered.
			 * @param observer the observer to register
			 */
			public registerObserver(observer: T): void;
			/**
			 * Removes a previously registered observer. The observer must not be null and it must already have been registered.
			 * @param observer the observer to unregister
			 */
			public unregisterObserver(observer: T): void;
			/**
			 * Remove all registered observers.
			 */
			public unregisterAll(): void;
		}
		export class DatabaseStatementTest extends android.test.AndroidTestCase implements android.test.IPerformanceTestCase {
			constructor();
			static class: java.lang.Class<android.database.DatabaseStatementTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public isPerformanceOnly(): boolean;
			public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			public testExecuteStatement(): void;
			public testSimpleQuery(): void;
			public testStatementLongBinding(): void;
			public testStatementStringBinding(): void;
			public testStatementClearBindings(): void;
			public testSimpleStringBinding(): void;
			public testStatementMultipleBindings(): void;
			public testStatementMultiThreaded(): void;
			public testStatementConstraint(): void;
		}
		export module DatabaseStatementTest {
			export class StatementTestThread extends java.lang.Thread {
				constructor(db: android.database.sqlite.SQLiteDatabase, statement: android.database.sqlite.SQLiteStatement);
				static class: java.lang.Class<android.database.DatabaseStatementTest.StatementTestThread>;
				public run(): void;
			}
		}
		export class CursorWindowTest implements android.test.IPerformanceTestCase {
			constructor();
			static class: java.lang.Class<android.database.CursorWindowTest>;
			public isPerformanceOnly(): boolean;
			public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			public testConstructor_WithName(): void;
			public testConstructorWithEmptyName(): void;
			public testConstructorWithNullName(): void;
			public testDeprecatedConstructor(): void;
			public testValues(): void;
		}
		/**
		 * An exception indicating that a cursor is out of bounds.
		 */
		export class CursorIndexOutOfBoundsException extends java.lang.IndexOutOfBoundsException {
			constructor(index: number, size: number);
			constructor(message: string);
			static class: java.lang.Class<android.database.CursorIndexOutOfBoundsException>;
		}
		export class DatabaseGeneralTest extends android.test.AndroidTestCase implements android.test.IPerformanceTestCase {
			constructor();
			static class: java.lang.Class<android.database.DatabaseGeneralTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public isPerformanceOnly(): boolean;
			public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			public testVersion(): void;
			public testUpdate(): void;
			public testPhoneNumbersEqual(): void;
			/**
			 * Tests international matching issues for the PHONE_NUMBERS_EQUAL function. Exception
			 */
			public testPhoneNumbersEqualInternationl(): void;
			public testCopyString(): void;
			public testSchemaChange1(): void;
			public testSchemaChange2(): void;
			public testSchemaChange3(): void;
			public testSelectionArgs(): void;
			public testTokenize(): void;
			public testTransactions(): void;
			public xxtestMem1(): void;
			public xxtestMem2(): void;
			public xxtestMem3(): void;
			public testContentValues(): void;
			public testTableInfoPragma(): void;
			public testInsertHelper(): void;
			public testSemicolonsInStatements(): void;
			public testUnionsWithBindArgs(): void;
			/**
			 * This test is available only when the platform has a locale with the language "ja". It finishes without failure when it is not available.
			 */
			public testCollateLocalizedForJapanese(): void;
			public testSetMaxCahesize(): void;
			public testDefaultDatabaseErrorHandler(): void;
		}
		/**
		 * An interface to let the apps define the actions to take when the following errors are detected database corruption
		 */
		interface IDatabaseErrorHandler {
			/**
			 * defines the method to be invoked when database corruption is detected.
			 * @param dbObj the {@link SQLiteDatabase} object representing the database on which corruption
			 */
			onCorruption(dbObj: android.database.sqlite.SQLiteDatabase): void;
		}
		export class DatabaseCursorTest extends android.test.AndroidTestCase implements android.test.IPerformanceTestCase {
			constructor();
			static class: java.lang.Class<android.database.DatabaseCursorTest>;
			TestObserver: {
	new (total_: number, cursor: android.database.sqlite.SQLiteCursor): android.database.DatabaseCursorTest.TestObserver;
};
			protected setUp(): void;
			protected tearDown(): void;
			public isPerformanceOnly(): boolean;
			public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			public testBlob(): void;
			public testRealColumns(): void;
			public testCursor1(): void;
			public testCursor2(): void;
			public testLargeField(): void;
			public testManyRowsLong(): void;
			public testManyRowsTxt(): void;
			public testManyRowsTxtLong(): void;
			public testRequery(): void;
			public testRequeryWithSelection(): void;
			public testRequeryWithSelectionArgs(): void;
			public testRequeryWithAlteredSelectionArgs(): void;
			/**
			 * sometimes CursorWindow creation fails due to non-availability of memory create another CursorWindow object. One of the scenarios of its occurrence is when there are too many CursorWindow objects already opened by the process. This test is for that scenario.
			 */
			public testCursorWindowFailureWhenTooManyCursorWindowsLeftOpen(): void;
		}
		export module DatabaseCursorTest {
			export class TestObserver extends android.database.DataSetObserver {
				static class: java.lang.Class<android.database.DatabaseCursorTest.TestObserver>;
				public onChanged(): void;
				public onInvalidated(): void;
			}
		}
		export class DatabaseStressTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.database.DatabaseStressTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testSingleThreadInsertDelete(): void;
			/**
			 * use fillup -p 90 before run the test and when disk run out start delete some fillup files and see if db recover
			 */
			public testOutOfSpace(): void;
		}
		/**
		 * Cursor wrapper that implements CrossProcessCursor.
		 */
		export class CrossProcessCursorWrapper extends android.database.CursorWrapper implements android.database.ICrossProcessCursor {
			/**
			 * Creates a cross process cursor wrapper.
			 * @param cursor The underlying cursor to wrap.
			 */
			constructor(cursor: android.database.ICursor);
			static class: java.lang.Class<android.database.CrossProcessCursorWrapper>;
			public fillWindow(position: number, window: android.database.CursorWindow): void;
			public getWindow(): android.database.CursorWindow;
			public onMove(oldPosition: number, newPosition: number): boolean;
			/**
			 * Returns the numbers of rows in the cursor.
			 */
			getCount(): number;
			/**
			 * Returns the current position of the cursor in the row set. The value is zero-based. When the row set is first returned the cursor will be at positon -1, which is before the first row. After the last row is returned another call to next() will leave the cursor past the last entry, at a position of count().
			 */
			getPosition(): number;
			/**
			 * Move the cursor by a relative amount, forward or backward, from the current position. Positive offsets move forwards, negative offsets move backwards. If the final position is outside of the bounds of the result set then the resultant position will be pinned to -1 or count() depending on whether the value is off the front or end of the set, respectively.
			 * @param offset the offset to be applied from the current position.
			 */
			move(offset: number): boolean;
			/**
			 * Move the cursor to an absolute position. The valid range of values is -1 &lt;= position &lt;= count.
			 * @param position the zero-based position to move to.
			 */
			moveToPosition(position: number): boolean;
			/**
			 * Move the cursor to the first row.
			 */
			moveToFirst(): boolean;
			/**
			 * Move the cursor to the last row.
			 */
			moveToLast(): boolean;
			/**
			 * Move the cursor to the next row.
			 */
			moveToNext(): boolean;
			/**
			 * Move the cursor to the previous row.
			 */
			moveToPrevious(): boolean;
			/**
			 * Returns whether the cursor is pointing to the first row.
			 */
			isFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the last row.
			 */
			isLast(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position before the first row.
			 */
			isBeforeFirst(): boolean;
			/**
			 * Returns whether the cursor is pointing to the position after the last row.
			 */
			isAfterLast(): boolean;
			/**
			 * Returns the zero-based index for the given column name, or -1 if the column doesn't exist. If you expect the column to exist use #getColumnIndexOrThrow(String) instead, which will make the error more clear.
			 * @param columnName the name of the target column.
			 */
			getColumnIndex(columnName: string): number;
			/**
			 * Returns the zero-based index for the given column name, or throws IllegalArgumentException if the column doesn't exist. If you're not sure if a column will exist or not use #getColumnIndex(String) and check for -1, which is more efficient than catching the exceptions.
			 * @param columnName the name of the target column.
			 */
			getColumnIndexOrThrow(columnName: string): number;
			/**
			 * Returns the column name at the given zero-based column index.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getColumnName(columnIndex: number): string;
			/**
			 * Returns a string array holding the names of all of the columns in the result set in the order in which they were listed in the result.
			 */
			getColumnNames(): native.Array<string>;
			/**
			 * Return total number of columns
			 */
			getColumnCount(): number;
			/**
			 * Returns the value of the requested column as a byte array.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getBlob(columnIndex: number): native.Array<number>;
			/**
			 * Returns the value of the requested column as a String.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getString(columnIndex: number): string;
			/**
			 * Retrieves the requested column text and stores it in the buffer provided. If the buffer size is not sufficient, a new char buffer will be allocated and assigned to CharArrayBuffer.data
			 * @param columnIndex the zero-based index of the target column.
			 * @param buffer the buffer to copy the text into.
			 */
			copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
			/**
			 * Returns the value of the requested column as a short.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getShort(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as an int.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getInt(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a long.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getLong(columnIndex: number): any;
			/**
			 * Returns the value of the requested column as a float.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getFloat(columnIndex: number): number;
			/**
			 * Returns the value of the requested column as a double.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getDouble(columnIndex: number): any;
			/**
			 * Returns data type of the given column's value. The preferred type of the column is returned but the data may be converted to other types as documented in the get-type methods such as #getInt(int), #getFloat(int) etc.
			 * @param columnIndex the zero-based index of the target column.
			 */
			getType(columnIndex: number): number;
			/**
			 * Returns <code>true</code> if the value in the indicated column is null.
			 * @param columnIndex the zero-based index of the target column.
			 */
			isNull(columnIndex: number): boolean;
			/**
			 * Deactivates the Cursor, making all calls on it fail until #requery is called. Inactive Cursors use fewer resources than active Cursors. Calling #requery will make the cursor active again. Since #requery() is deprecated, so too is this.
			 */
			deactivate(): void;
			/**
			 * Performs the query that created the cursor again, refreshing its contents. This may be done at any time, including after a call to #deactivate.
			 */
			requery(): boolean;
			/**
			 * Closes the Cursor, releasing all of its resources and making it completely invalid. Unlike #deactivate() a call to #requery() will not make the Cursor valid again.
			 */
			close(): void;
			/**
			 * return true if the cursor is closed
			 */
			isClosed(): boolean;
			/**
			 * Register an observer that is called when changes happen to the content backing this cursor. Typically the data set won't change until #requery() is called.
			 * @param observer the object that gets notified when the content backing the cursor changes.
			 */
			registerContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterContentObserver(observer: android.database.ContentObserver): void;
			/**
			 * Register an observer that is called when changes happen to the contents of the this cursors data set, for example, when the data set is changed via #requery(), #deactivate(), or #close().
			 * @param observer the object that gets notified when the cursors data set changes.
			 */
			registerDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Unregister an observer that has previously been registered with this cursor via #registerContentObserver.
			 * @param observer the object to unregister.
			 */
			unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
			/**
			 * Register to watch a content URI for changes. This can be the URI of a specific data row (for example, "content://my_provider_type/23"), or a a generic URI for a content type. 
			 * @param cr The content resolver from the caller's context. The listener attached to
			 * @param uri The content URI to watch.
			 */
			setNotificationUri(cr: android.content.ContentResolver, uri: android.net.Uri): void;
			/**
			 * onMove() will only be called across processes if this method returns true.
			 */
			getWantsAllOnMoveCalls(): boolean;
			/**
			 * Returns a bundle of extra values. This is an optional way for cursors to provide out-of-band metadata to their users. One use of this is for reporting on the progress of network requests that are required to fetch data for the cursor.
			 */
			getExtras(): android.os.Bundle;
			/**
			 * This is an out-of-band way for the the user of a cursor to communicate with the cursor. The structure of each bundle is entirely defined by the cursor.
			 * @param extras extra values, or {@link android.os.Bundle#EMPTY Bundle.EMPTY}.
			 */
			respond(extras: android.os.Bundle): android.os.Bundle;
		}
		/**
		 * Database Performance Tests 
		 */
		export class DatabasePerformanceTests extends java.lang.Object {
			constructor();
			static ONES: native.Array<string>;
			static TENS: native.Array<string>;
			static class: java.lang.Class<android.database.DatabasePerformanceTests>;
			public static children(): native.Array<string>;
		}
		export module DatabasePerformanceTests {
			/**
			 * 10000 inserts for an integer -indexed table
			 */
			export class Perf23Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf23Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 selects for an integer -
			 */
			export class Perf28Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf28Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs on string comparison with Index
			 */
			export class Perf10Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf10Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs on String with index
			 */
			export class Perf14Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf14Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * INNER JOIN without an index on one side
			 */
			export class Perf8Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf8Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * Test 1000 inserts into and indexed table
			 */
			export class Perf2Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf2Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 selects for a String - contains 'e'-indexed table
			 */
			export class Perf31Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf31Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			export class PerformanceBase extends java.lang.Object implements android.test.IPerformanceTestCase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.PerformanceBase>;
				public setUp(c: android.content.Context): void;
				public tearDown(): void;
				public isPerformanceOnly(): boolean;
				public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
				public run(): void;
				public numberName(number: number): string;
			}
			/**
			 * 10000 selects for a String - contains 'e'
			 */
			export class Perf30Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf30Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * INNER JOIN without an index
			 */
			export class Perf6Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf6Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * Test reading all contact data.
			 */
			export class ContactReadingTest1 extends java.lang.Object implements android.test.IPerformanceTestCase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.ContactReadingTest1>;
				public setUp(c: android.content.Context): void;
				public tearDown(): void;
				public isPerformanceOnly(): boolean;
				public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
				public run(): void;
			}
			/**
			 * Test 1000 inserts
			 */
			export class Perf1Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf1Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 1000 Deletes on an indexed table
			 */
			export class Perf16Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf16Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 selects for an integer -indexed table
			 */
			export class Perf29Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf29Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 inserts for an integer
			 */
			export class Perf22Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf22Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs on integer with index
			 */
			export class Perf13Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf13Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 selects for a String -starts with
			 */
			export class Perf26Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf26Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs with subqueries. Subquery is using an index
			 */
			export class Perf9Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf9Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 1000 update's without an index with where clause
			 */
			export class Perf21Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf21Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs with an index
			 */
			export class Perf5Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf5Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 1000 Deletes
			 */
			export class Perf17Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf17Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs on String
			 */
			export class Perf12Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf12Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 inserts for a String - indexed table
			 */
			export class Perf25Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf25Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 1000 update's with an index with where clause
			 */
			export class Perf20Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf20Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 1000 DELETE's without an index with where clause
			 */
			export class Perf18Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf18Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs on a string comparison
			 */
			export class Perf4Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf4Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 selects for a String - indexed table -starts with
			 */
			export class Perf27Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf27Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 10000 inserts for a String
			 */
			export class Perf24Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf24Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs on integer
			 */
			export class Perf11Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf11Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs without an index
			 */
			export class Perf3Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf3Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 100 SELECTs on String with starts with
			 */
			export class Perf15Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf15Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * INNER JOIN without an index on one side
			 */
			export class Perf7Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf7Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
			/**
			 * 1000 DELETE's with an index with where clause
			 */
			export class Perf19Test extends android.database.DatabasePerformanceTests.PerformanceBase {
				constructor();
				static class: java.lang.Class<android.database.DatabasePerformanceTests.Perf19Test>;
				public setUp(c: android.content.Context): void;
				public run(): void;
			}
		}
		export class DatabaseErrorHandlerTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.database.DatabaseErrorHandlerTest>;
			MyDatabaseCorruptionHandler: {
	new (): android.database.DatabaseErrorHandlerTest.MyDatabaseCorruptionHandler;
};
			protected setUp(): void;
			protected tearDown(): void;
			public testNoCorruptionCase(): void;
			public testDatabaseIsCorrupt(): void;
		}
		export module DatabaseErrorHandlerTest {
			/**
			 * An example implementation of DatabaseErrorHandler to demonstrate database corruption handler which checks to make sure database is indeed corrupt before deleting the file.
			 */
			export class MyDatabaseCorruptionHandler extends java.lang.Object implements android.database.IDatabaseErrorHandler {
				static class: java.lang.Class<android.database.DatabaseErrorHandlerTest.MyDatabaseCorruptionHandler>;
				public onCorruption(dbObj: android.database.sqlite.SQLiteDatabase): void;
			}
		}
		export class MatrixCursorTest {
			constructor();
			static class: java.lang.Class<android.database.MatrixCursorTest>;
			public testEmptyCursor(): void;
			public testNullValue(): void;
			public testMatrixCursor(): void;
			public testAddArray(): void;
			public testAddIterable(): void;
			public testAddArrayList(): void;
		}
		export module MatrixCursorTest {
			export class NonIterableArrayList<T> extends java.util.ArrayList<T> {
				static class: java.lang.Class<android.database.MatrixCursorTest.NonIterableArrayList<any>>;
				public iterator(): java.util.IIterator<T>;
			}
		}
		export class DatabaseLocaleTest {
			constructor();
			static class: java.lang.Class<android.database.DatabaseLocaleTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testLocaleInsertOrder(): void;
			public testLocaleenUS(): void;
			public testHoge(): void;
		}
	}
	export module security {
		export class AndroidKeyStoreTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.security.AndroidKeyStoreTest>;
			protected setUp(): void;
			public testKeyStore_Aliases_Success(): void;
			public testKeyStore_Aliases_NotInitialized_Failure(): void;
			public testKeyStore_ContainsAliases_PrivateAndCA_Success(): void;
			public testKeyStore_ContainsAliases_CAOnly_Success(): void;
			public testKeyStore_ContainsAliases_NonExistent_Failure(): void;
			public testKeyStore_DeleteEntry_Success(): void;
			public testKeyStore_DeleteEntry_EmptyStore_Failure(): void;
			public testKeyStore_DeleteEntry_NonExistent_Failure(): void;
			public testKeyStore_GetCertificate_Single_Success(): void;
			public testKeyStore_GetCertificate_NonExist_Failure(): void;
			public testKeyStore_GetCertificateAlias_CAEntry_Success(): void;
			public testKeyStore_GetCertificateAlias_PrivateKeyEntry_Success(): void;
			public testKeyStore_GetCertificateAlias_CAEntry_WithPrivateKeyUsingCA_Success(): void;
			public testKeyStore_GetCertificateAlias_NonExist_Empty_Failure(): void;
			public testKeyStore_GetCertificateAlias_NonExist_Failure(): void;
			public testKeyStore_GetCertificateChain_SingleLength_Success(): void;
			public testKeyStore_GetCertificateChain_NonExist_Failure(): void;
			public testKeyStore_GetCreationDate_PrivateKeyEntry_Success(): void;
			public testKeyStore_GetCreationDate_CAEntry_Success(): void;
			public testKeyStore_GetEntry_NullParams_Success(): void;
			public testKeyStore_GetEntry_Nonexistent_NullParams_Failure(): void;
			public testKeyStore_GetKey_NoPassword_Success(): void;
			public testKeyStore_GetKey_Certificate_Failure(): void;
			public testKeyStore_GetKey_NonExistent_Failure(): void;
			public testKeyStore_GetProvider_Success(): void;
			public testKeyStore_GetType_Success(): void;
			public testKeyStore_IsCertificateEntry_CA_Success(): void;
			public testKeyStore_IsCertificateEntry_PrivateKey_Failure(): void;
			public testKeyStore_IsCertificateEntry_NonExist_Failure(): void;
			public testKeyStore_IsKeyEntry_PrivateKey_Success(): void;
			public testKeyStore_IsKeyEntry_CA_Failure(): void;
			public testKeyStore_IsKeyEntry_NonExist_Failure(): void;
			public testKeyStore_SetCertificate_CA_Success(): void;
			public testKeyStore_SetCertificate_CAExists_Overwrite_Success(): void;
			public testKeyStore_SetCertificate_PrivateKeyExists_Failure(): void;
			public testKeyStore_SetEntry_PrivateKeyEntry_Success(): void;
			public testKeyStore_SetEntry_PrivateKeyEntry_Overwrites_PrivateKeyEntry_Success(): void;
			public testKeyStore_SetEntry_CAEntry_Overwrites_PrivateKeyEntry_Success(): void;
			public testKeyStore_SetEntry_PrivateKeyEntry_Overwrites_CAEntry_Success(): void;
			public testKeyStore_SetEntry_PrivateKeyEntry_Overwrites_ShortPrivateKeyEntry_Success(): void;
			public testKeyStore_SetEntry_CAEntry_Overwrites_CAEntry_Success(): void;
			public testKeyStore_SetKeyEntry_ProtectedKey_Failure(): void;
			public testKeyStore_SetKeyEntry_Success(): void;
			public testKeyStore_SetKeyEntry_Replaced_Success(): void;
			public testKeyStore_SetKeyEntry_ReplacedChain_Success(): void;
			public testKeyStore_SetKeyEntry_ReplacedChain_DifferentPrivateKey_Failure(): void;
			public testKeyStore_Size_Success(): void;
			public testKeyStore_Store_LoadStoreParam_Failure(): void;
			public testKeyStore_Load_InputStreamSupplied_Failure(): void;
			public testKeyStore_Load_PasswordSupplied_Failure(): void;
			public testKeyStore_Store_OutputStream_Failure(): void;
		}
		/**
		 * Junit / Instrumentation test case for KeyStore class
		 */
		export class KeyStoreTest extends android.test.ActivityUnitTestCase<android.app.Activity> {
			constructor();
			static class: java.lang.Class<android.security.KeyStoreTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public teststate(): void;
			public testPassword(): void;
			public testGet(): void;
			public testPut(): void;
			public testI18n(): void;
			public testDelete(): void;
			public testContains(): void;
			public testSaw(): void;
			public testLock(): void;
			public testUnlock(): void;
			public testIsEmpty(): void;
			public testGenerate_NotInitialized_Fail(): void;
			public testGenerate_Locked_Fail(): void;
			public testGenerate_Success(): void;
			public testImport_Success(): void;
			public testImport_Failure_BadEncoding(): void;
			public testSign_Success(): void;
			public testVerify_Success(): void;
			public testSign_NotInitialized_Failure(): void;
			public testSign_NotGenerated_Failure(): void;
			public testGrant_Generated_Success(): void;
			public testGrant_Imported_Success(): void;
			public testGrant_NoKey_Failure(): void;
			public testGrant_NotInitialized_Failure(): void;
			public testUngrant_Generated_Success(): void;
			public testUngrant_Imported_Success(): void;
			public testUngrant_NotInitialized_Failure(): void;
			public testUngrant_NoGrant_Failure(): void;
			public testUngrant_DoubleUngrant_Failure(): void;
			public testUngrant_DoubleGrantUngrant_Failure(): void;
			public testGetmtime_Success(): void;
			public testGetmtime_NonExist_Failure(): void;
		}
		/**
		 * Thrown on problems accessing the KeyChain.
		 */
		export class KeyChainException extends java.lang.Exception {
			/**
			 * Constructs a new KeyChainException that includes the current stack trace.
			 */
			constructor();
			/**
			 * Constructs a new KeyChainException with the current stack trace and the specified detail message.
			 * @param detailMessage 
			 */
			constructor(detailMessage: string);
			/**
			 * Constructs a new KeyChainException with the current stack trace, the specified detail message and the specified cause.
			 * @param message 
			 * @param cause 
			 */
			constructor(message: string, cause: java.lang.Throwable);
			/**
			 * Constructs a new KeyChainException with the current stack trace and the specified cause.
			 * @param cause 
			 */
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<android.security.KeyChainException>;
		}
		/**
		 * Junit / Instrumentation test case for KeyStore class
		 */
		export class SystemKeyStoreTest extends android.test.ActivityUnitTestCase<android.app.Activity> {
			constructor();
			static class: java.lang.Class<android.security.SystemKeyStoreTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testBasicAccess(): void;
		}
		/**
		 * The KeyChain class provides access to private keys and their corresponding certificate chains in credential storage.
		 */
		export class KeyChain extends java.lang.Object {
			constructor();
			/**
			 * Optional extra to specify a String credential name on the Intent returned by #createInstallIntent.
			 */
			static EXTRA_NAME: string;
			/**
			 * Optional extra to specify an X.509 certificate to install on the Intent returned by #createInstallIntent. The extra value should be a PEM or ASN.1 DER encoded byte[]. An X509Certificate can be converted to DER encoded bytes with X509Certificate#getEncoded.
			 */
			static EXTRA_CERTIFICATE: string;
			/**
			 * Optional extra for use with the Intent returned by #createInstallIntent to specify a PKCS#12 key store to install. The extra value should be a byte[]. The bytes may come from an external source or be generated with java.security.KeyStore#store on a "PKCS12" instance.
			 */
			static EXTRA_PKCS12: string;
			/**
			 * Broadcast Action: Indicates the trusted storage has changed. Sent when one of this happens:
			 */
			static ACTION_STORAGE_CHANGED: string;
			static class: java.lang.Class<android.security.KeyChain>;
			/**
			 * Returns an Intent that can be used for credential installation. The intent may be used without any extras, in which case the user will be able to install credentials from their own source.
			 */
			public static createInstallIntent(): android.content.Intent;
			/**
			 * Launches an Activity for the user to select the alias for a private key and certificate pair for authentication. The selected alias or null will be returned via the KeyChainAliasCallback callback.
			 * @param activity The {@link Activity} context to use for
			 * @param response Callback to invoke when the request completes;
			 * @param keyTypes The acceptable types of asymmetric keys such as
			 * @param issuers The acceptable certificate issuers for the
			 * @param host The host name of the server requesting the
			 * @param port The port number of the server requesting the
			 * @param alias The alias to preselect if available, or null if
			 */
			public static choosePrivateKeyAlias(activity: android.app.Activity, response: android.security.IKeyChainAliasCallback, keyTypes: native.Array<string>, issuers: native.Array<java.security.IPrincipal>, host: string, port: number, alias: string): void;
			/**
			 * Returns the PrivateKey for the requested alias, or null if no there is no result.
			 * @param context alias The alias of the desired private key, typically
			 * @param alias 
			 */
			public static getPrivateKey(context: android.content.Context, alias: string): java.security.IPrivateKey;
			/**
			 * Returns the X509Certificate chain for the requested alias, or null if no there is no result.
			 * @param context alias The alias of the desired certificate chain, typically
			 * @param alias 
			 */
			public static getCertificateChain(context: android.content.Context, alias: string): native.Array<java.security.cert.X509Certificate>;
		}
		export module KeyChain {
			export class AliasResponse {
				static class: java.lang.Class<android.security.KeyChain.AliasResponse>;
				public alias(alias: string): void;
			}
		}
		/**
		 * The KeyChainAliasCallback is the callback for KeyChain#choosePrivateKeyAlias.
		 */
		interface IKeyChainAliasCallback {
			/**
			 * Called with the alias of the certificate chosen by the user, or null if no value was chosen.
			 */
			alias(alias: string): void;
		}
		export class AndroidKeyPairGeneratorSpecTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.security.AndroidKeyPairGeneratorSpecTest>;
			public testConstructor_Success(): void;
			public testConstructor_NullContext_Failure(): void;
			public testConstructor_NullKeystoreAlias_Failure(): void;
			public testConstructor_NullSubjectDN_Failure(): void;
			public testConstructor_NullSerial_Failure(): void;
			public testConstructor_NullStartDate_Failure(): void;
			public testConstructor_NullEndDate_Failure(): void;
			public testConstructor_EndBeforeStart_Failure(): void;
		}
		export class AndroidKeyPairGeneratorTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.security.AndroidKeyPairGeneratorTest>;
			protected setUp(): void;
			public testKeyPairGenerator_Initialize_Params_Success(): void;
			public testKeyPairGenerator_Initialize_KeySize_Failure(): void;
			public testKeyPairGenerator_Initialize_KeySizeAndSecureRandom_Failure(): void;
			public testKeyPairGenerator_Initialize_ParamsAndSecureRandom_Failure(): void;
			public testKeyPairGenerator_GenerateKeyPair_Success(): void;
			public testKeyPairGenerator_GenerateKeyPair_Replaced_Success(): void;
		}
		/**
		 * The KeyChainAliasCallback is the callback for KeyChain#choosePrivateKeyAlias.
		 */
		export class KeyChainAliasCallback implements android.security.IKeyChainAliasCallback {
			constructor(implementation: android.security.IKeyChainAliasCallback);
			/**
			 * Called with the alias of the certificate chosen by the user, or null if no value was chosen.
			 */
			public alias(alias: string): void;
		}
	}
	export module provider {
		/**
		 * Very simple provider that I can instantiate right here.
		 */
		export class TestProvider extends android.content.SearchRecentSuggestionsProvider {
			constructor();
			static class: java.lang.Class<android.provider.TestProvider>;
		}
		/**
		 * The ContentProvider contract for associating data with ana data array account. This may be used by providers that want to store this data in a standard way.
		 */
		export class SyncStateContract extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.provider.SyncStateContract>;
		}
		export module SyncStateContract {
			export class Helpers extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.provider.SyncStateContract.Helpers>;
				/**
				 * Get the sync state that is associated with the account or null.
				 * @param provider the {@link ContentProviderClient} that is to be used to communicate
				 * @param uri the uri of the sync state
				 * @param account the {@link Account} whose sync state should be returned
				 */
				public static get(provider: android.content.ContentProviderClient, uri: android.net.Uri, account: android.accounts.Account): native.Array<number>;
				/**
				 * Assigns the data array as the sync state for the given account.
				 * @param provider the {@link ContentProviderClient} that is to be used to communicate
				 * @param uri the uri of the sync state
				 * @param account the {@link Account} whose sync state should be set
				 * @param data the byte[] that contains the sync state
				 */
				public static set(provider: android.content.ContentProviderClient, uri: android.net.Uri, account: android.accounts.Account, data: native.Array<number>): void;
				public static insert(provider: android.content.ContentProviderClient, uri: android.net.Uri, account: android.accounts.Account, data: native.Array<number>): android.net.Uri;
				public static update(provider: android.content.ContentProviderClient, uri: android.net.Uri, data: native.Array<number>): void;
				public static getWithUri(provider: android.content.ContentProviderClient, uri: android.net.Uri, account: android.accounts.Account): android.util.Pair<android.net.Uri, native.Array<number>>;
				/**
				 * Creates and returns a ContentProviderOperation that assigns the data array as the sync state for the given account.
				 * @param uri the uri of the sync state
				 * @param account the {@link Account} whose sync state should be set
				 * @param data the byte[] that contains the sync state
				 */
				public static newSetOperation(uri: android.net.Uri, account: android.accounts.Account, data: native.Array<number>): android.content.ContentProviderOperation;
				/**
				 * Creates and returns a ContentProviderOperation that assigns the data array as the sync state for the given account.
				 * @param uri the uri of the specific sync state to set
				 * @param data the byte[] that contains the sync state
				 */
				public static newUpdateOperation(uri: android.net.Uri, data: native.Array<number>): android.content.ContentProviderOperation;
			}
			export class Columns implements android.provider.IBaseColumns, android.provider.SyncStateContract.IColumns {
				constructor(implementation: android.provider.SyncStateContract.IColumns);
				/**
				 * A reference to the name of the account to which this data belongs <P>Type: STRING</P>
				 */
				static ACCOUNT_NAME: string;
				/**
				 * A reference to the type of the account to which this data belongs <P>Type: STRING</P>
				 */
				static ACCOUNT_TYPE: string;
				/**
				 * The sync data associated with this account. <P>Type: NONE</P>
				 */
				static DATA: string;
			}
			export class Constants extends java.lang.Object implements android.provider.SyncStateContract.IColumns {
				constructor();
				static CONTENT_DIRECTORY: string;
				static class: java.lang.Class<android.provider.SyncStateContract.Constants>;
			}
			interface IColumns extends android.provider.IBaseColumns {
			}
			export module IColumns {
				/**
				 * A reference to the name of the account to which this data belongs <P>Type: STRING</P>
				 */
				var ACCOUNT_NAME: string;
				/**
				 * A reference to the type of the account to which this data belongs <P>Type: STRING</P>
				 */
				var ACCOUNT_TYPE: string;
				/**
				 * The sync data associated with this account. <P>Type: NONE</P>
				 */
				var DATA: string;
			}
		}
		export class SmsProviderTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.provider.SmsProviderTest>;
			public testProvider(): void;
		}
		/**
		 * A provider of user defined words for input methods to use for predictive text input. Applications and input methods may add words into the dictionary. Words can have associated frequency information and locale information.
		 */
		export class UserDictionary extends java.lang.Object {
			constructor();
			/**
			 * Authority string for this provider.
			 */
			static AUTHORITY: string;
			/**
			 * The content:// style URL for this provider
			 */
			static CONTENT_URI: android.net.Uri;
			static class: java.lang.Class<android.provider.UserDictionary>;
		}
		export module UserDictionary {
			/**
			 * Contains the user defined words.
			 */
			export class Words extends java.lang.Object implements android.provider.IBaseColumns {
				constructor();
				/**
				 * The content:// style URL for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of words.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI sub-directory of a single word.
				 */
				static CONTENT_ITEM_TYPE: string;
				static _ID: string;
				/**
				 * The word column.
				 */
				static WORD: string;
				/**
				 * The frequency column. A value between 1 and 255. Higher values imply higher frequency.
				 */
				static FREQUENCY: string;
				/**
				 * The locale that this word belongs to. Null if it pertains to all locales. Locale is as defined by the string returned by Locale.toString().
				 */
				static LOCALE: string;
				/**
				 * The uid of the application that inserted the word.
				 */
				static APP_ID: string;
				/**
				 * An optional shortcut for this word. When the shortcut is typed, supporting IMEs should suggest the word in this row as an alternate spelling too.
				 */
				static SHORTCUT: string;
				/**
				 *  Use #addWord(Context, String, int, String, Locale).
				 */
				static LOCALE_TYPE_ALL: number;
				/**
				 *  Use #addWord(Context, String, int, String, Locale).
				 */
				static LOCALE_TYPE_CURRENT: number;
				/**
				 * Sort by descending order of frequency.
				 */
				static DEFAULT_SORT_ORDER: string;
				static class: java.lang.Class<android.provider.UserDictionary.Words>;
				/**
				 * Adds a word to the dictionary, with the given frequency and the specified specified locale type.
				 * @param context the current application context
				 * @param word the word to add to the dictionary. This should not be null or
				 * @param frequency localeType the locale type for this word. It should be one of
				 * @param localeType 
				 */
				public static addWord(context: android.content.Context, word: string, frequency: number, localeType: number): void;
				/**
				 * Adds a word to the dictionary, with the given frequency and the specified locale type.
				 * @param context the current application context
				 * @param word the word to add to the dictionary. This should not be null or
				 * @param frequency shortcut optional shortcut spelling for this word. When the shortcut
				 * @param shortcut locale the locale to insert the word for, or null to insert the word
				 * @param locale 
				 */
				public static addWord(context: android.content.Context, word: string, frequency: number, shortcut: string, locale: java.util.Locale): void;
			}
		}
		/**
		 * The contract between the voicemail provider and applications. Contains definitions for the supported URIs and columns.
		 */
		export class VoicemailContract extends java.lang.Object {
			/**
			 * The authority used by the voicemail provider.
			 */
			static AUTHORITY: string;
			/**
			 * Parameter key used in the URI to specify the voicemail source package name.
			 */
			static PARAM_KEY_SOURCE_PACKAGE: string;
			/**
			 * Broadcast intent when a new voicemail record is inserted.
			 */
			static ACTION_NEW_VOICEMAIL: string;
			/**
			 * Broadcast intent to request a voicemail source to fetch voicemail content of a specific voicemail from the remote server. The voicemail to fetch is specified by the data uri of the intent.
			 */
			static ACTION_FETCH_VOICEMAIL: string;
			/**
			 * Extra included in Intent#ACTION_PROVIDER_CHANGED broadcast intents to indicate if the receiving package made this change.
			 */
			static EXTRA_SELF_CHANGE: string;
			static class: java.lang.Class<android.provider.VoicemailContract>;
		}
		export module VoicemailContract {
			/**
			 * Defines fields exposed through the /status path of this content provider.
			 */
			export class Status extends java.lang.Object implements android.provider.IBaseColumns {
				/**
				 * URI to insert/retrieve status of voicemail source.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type for a collection of voicemail source statuses.
				 */
				static DIR_TYPE: string;
				/**
				 * The MIME type for a single voicemail source status entry.
				 */
				static ITEM_TYPE: string;
				/**
				 * The package name of the voicemail source. There can only be a one entry per source. <P>Type: TEXT</P>
				 */
				static SOURCE_PACKAGE: string;
				/**
				 * The URI to call to invoke source specific voicemail settings screen. On a user request to setup voicemail an intent with action VIEW with this URI will be fired by the system. <P>Type: TEXT</P>
				 */
				static SETTINGS_URI: string;
				/**
				 * The URI to call when the user requests to directly access the voicemail from the remote server. In case of an IVR voicemail system this is typically set to the the voicemail number specified using a tel:/ URI. <P>Type: TEXT</P>
				 */
				static VOICEMAIL_ACCESS_URI: string;
				/**
				 * The configuration state of the voicemail source. <P> Possible values: #CONFIGURATION_STATE_OK, #CONFIGURATION_STATE_NOT_CONFIGURED, #CONFIGURATION_STATE_CAN_BE_CONFIGURED <P>Type: INTEGER</P>
				 */
				static CONFIGURATION_STATE: string;
				/**
				 * Value of #CONFIGURATION_STATE to indicate an all OK configuration status.
				 */
				static CONFIGURATION_STATE_OK: number;
				/**
				 * Value of #CONFIGURATION_STATE to indicate the visual voicemail is not yet configured on this device.
				 */
				static CONFIGURATION_STATE_NOT_CONFIGURED: number;
				/**
				 * Value of #CONFIGURATION_STATE to indicate the visual voicemail is not yet configured on this device but can be configured by the user.
				 */
				static CONFIGURATION_STATE_CAN_BE_CONFIGURED: number;
				/**
				 * The data channel state of the voicemail source. This the channel through which the source pulls voicemail data from a remote server. <P> Possible values: #DATA_CHANNEL_STATE_OK, #DATA_CHANNEL_STATE_NO_CONNECTION </P> <P>Type: INTEGER</P>
				 */
				static DATA_CHANNEL_STATE: string;
				/**
				 * Value of #DATA_CHANNEL_STATE to indicate that data channel is working fine.
				 */
				static DATA_CHANNEL_STATE_OK: number;
				/**
				 * Value of #DATA_CHANNEL_STATE to indicate that data channel connection is not working.
				 */
				static DATA_CHANNEL_STATE_NO_CONNECTION: number;
				/**
				 * The notification channel state of the voicemail source. This is the channel through which the source gets notified of new voicemails on the remote server. <P> Possible values: #NOTIFICATION_CHANNEL_STATE_OK, #NOTIFICATION_CHANNEL_STATE_NO_CONNECTION, #NOTIFICATION_CHANNEL_STATE_MESSAGE_WAITING </P> <P>Type: INTEGER</P>
				 */
				static NOTIFICATION_CHANNEL_STATE: string;
				/**
				 * Value of #NOTIFICATION_CHANNEL_STATE to indicate that the notification channel is working fine.
				 */
				static NOTIFICATION_CHANNEL_STATE_OK: number;
				/**
				 * Value of #NOTIFICATION_CHANNEL_STATE to indicate that the notification channel connection is not working.
				 */
				static NOTIFICATION_CHANNEL_STATE_NO_CONNECTION: number;
				/**
				 * Value of #NOTIFICATION_CHANNEL_STATE to indicate that there are messages waiting on the server but the details are not known.
				 */
				static NOTIFICATION_CHANNEL_STATE_MESSAGE_WAITING: number;
				static class: java.lang.Class<android.provider.VoicemailContract.Status>;
				/**
				 * A convenience method to build status URI specific to a source package by appending VoicemailContract#PARAM_KEY_SOURCE_PACKAGE param to the base URI.
				 */
				public static buildSourceUri(packageName: string): android.net.Uri;
			}
			/**
			 * Defines fields exposed through the /voicemail path of this content provider.
			 */
			export class Voicemails extends java.lang.Object implements android.provider.IBaseColumns, android.provider.IOpenableColumns {
				/**
				 * URI to insert/retrieve voicemails.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type for a collection of voicemails.
				 */
				static DIR_TYPE: string;
				/**
				 * The MIME type for a single voicemail.
				 */
				static ITEM_TYPE: string;
				/**
				 * Phone number of the voicemail sender. <P>Type: TEXT</P>
				 */
				static NUMBER: string;
				/**
				 * The date the voicemail was sent, in milliseconds since the epoch <P>Type: INTEGER (long)</P>
				 */
				static DATE: string;
				/**
				 * The duration of the voicemail in seconds. <P>Type: INTEGER (long)</P>
				 */
				static DURATION: string;
				/**
				 * Whether this item has been read or otherwise consumed by the user. <P>Type: INTEGER (boolean)</P>
				 */
				static IS_READ: string;
				/**
				 * Package name of the source application that inserted the voicemail. <P>Type: TEXT</P>
				 */
				static SOURCE_PACKAGE: string;
				/**
				 * Application-specific data available to the source application that inserted the voicemail. This is typically used to store the source specific message id to identify this voicemail on the remote voicemail server. <P>Type: TEXT</P> <P> Note that this is NOT the voicemail media content data.
				 */
				static SOURCE_DATA: string;
				/**
				 * Whether the media content for this voicemail is available for consumption. <P>Type: INTEGER (boolean)</P>
				 */
				static HAS_CONTENT: string;
				/**
				 * MIME type of the media content for the voicemail. <P>Type: TEXT</P>
				 */
				static MIME_TYPE: string;
				static class: java.lang.Class<android.provider.VoicemailContract.Voicemails>;
				/**
				 * A convenience method to build voicemail URI specific to a source package by appending VoicemailContract#PARAM_KEY_SOURCE_PACKAGE param to the base URI.
				 */
				public static buildSourceUri(packageName: string): android.net.Uri;
			}
		}
		export class CalendarContract extends java.lang.Object {
			/**
			 * Broadcast Action: This is the intent that gets fired when an alarm notification needs to be posted for a reminder.
			 */
			static ACTION_EVENT_REMINDER: string;
			/**
			 * Activity Action: Display the event to the user in the custom app as specified in EventsColumns#CUSTOM_APP_PACKAGE. The custom app will be started via Activity#startActivityForResult(Intent, int) and it should call Activity#setResult(int) with Activity#RESULT_OK or Activity#RESULT_CANCELED to acknowledge whether the action was handled or not.
			 */
			static ACTION_HANDLE_CUSTOM_EVENT: string;
			/**
			 * Intent Extras key: EventsColumns#CUSTOM_APP_URI for the event in the #ACTION_HANDLE_CUSTOM_EVENT intent
			 */
			static EXTRA_CUSTOM_APP_URI: string;
			/**
			 * Intent Extras key: The start time of an event or an instance of a recurring event. (milliseconds since epoch)
			 */
			static EXTRA_EVENT_BEGIN_TIME: string;
			/**
			 * Intent Extras key: The end time of an event or an instance of a recurring event. (milliseconds since epoch)
			 */
			static EXTRA_EVENT_END_TIME: string;
			/**
			 * Intent Extras key: When creating an event, set this to true to create an all-day event by default
			 */
			static EXTRA_EVENT_ALL_DAY: string;
			/**
			 * This authority is used for writing to or querying from the calendar provider. Note: This is set at first run and cannot be changed without breaking apps that access the provider.
			 */
			static AUTHORITY: string;
			/**
			 * The content:// style URL for the top-level calendar authority
			 */
			static CONTENT_URI: android.net.Uri;
			/**
			 * An optional insert, update or delete URI parameter that allows the caller to specify that it is a sync adapter. The default value is false. If set to true, the modified row is not marked as "dirty" (needs to be synced) and when the provider calls ContentResolver#notifyChange(android.net.Uri, android.database.ContentObserver, boolean) , the third parameter "syncToNetwork" is set to false. Furthermore, if set to true, the caller must also include Calendars#ACCOUNT_NAME and Calendars#ACCOUNT_TYPE as query parameters.
			 */
			static CALLER_IS_SYNCADAPTER: string;
			/**
			 * A special account type for calendars not associated with any account. Normally calendars that do not match an account on the device will be removed. Setting the account_type on a calendar to this will prevent it from being wiped if it does not match an existing account.
			 */
			static ACCOUNT_TYPE_LOCAL: string;
			static class: java.lang.Class<android.provider.CalendarContract>;
		}
		export module CalendarContract {
			/**
			 * Columns from the Attendees table that other tables join into themselves.
			 */
			export class AttendeesColumns implements android.provider.CalendarContract.IAttendeesColumns {
				constructor(implementation: android.provider.CalendarContract.IAttendeesColumns);
				/**
				 * The id of the event. Column name. <P>Type: INTEGER</P>
				 */
				static EVENT_ID: string;
				/**
				 * The name of the attendee. Column name. <P>Type: STRING</P>
				 */
				static ATTENDEE_NAME: string;
				/**
				 * The email address of the attendee. Column name. <P>Type: STRING</P>
				 */
				static ATTENDEE_EMAIL: string;
				/**
				 * The relationship of the attendee to the user. Column name. <P>Type: INTEGER (one of #RELATIONSHIP_ATTENDEE, ...}.</P>
				 */
				static ATTENDEE_RELATIONSHIP: string;
				static RELATIONSHIP_NONE: number;
				static RELATIONSHIP_ATTENDEE: number;
				static RELATIONSHIP_ORGANIZER: number;
				static RELATIONSHIP_PERFORMER: number;
				static RELATIONSHIP_SPEAKER: number;
				/**
				 * The type of attendee. Column name. <P> Type: Integer (one of #TYPE_NONE, #TYPE_REQUIRED, #TYPE_OPTIONAL, #TYPE_RESOURCE) </P>
				 */
				static ATTENDEE_TYPE: string;
				static TYPE_NONE: number;
				static TYPE_REQUIRED: number;
				static TYPE_OPTIONAL: number;
				/**
				 * This specifies that an attendee is a resource, like a room, a cabbage, or something and not an actual person.
				 */
				static TYPE_RESOURCE: number;
				/**
				 * The attendance status of the attendee. Column name. <P>Type: Integer (one of #ATTENDEE_STATUS_ACCEPTED, ...).</P>
				 */
				static ATTENDEE_STATUS: string;
				static ATTENDEE_STATUS_NONE: number;
				static ATTENDEE_STATUS_ACCEPTED: number;
				static ATTENDEE_STATUS_DECLINED: number;
				static ATTENDEE_STATUS_INVITED: number;
				static ATTENDEE_STATUS_TENTATIVE: number;
				/**
				 * The identity of the attendee as referenced in ContactsContract.CommonDataKinds.Identity#IDENTITY. This is required only if #ATTENDEE_ID_NAMESPACE is present. Column name. <P>Type: STRING</P>
				 */
				static ATTENDEE_IDENTITY: string;
				/**
				 * The identity name space of the attendee as referenced in ContactsContract.CommonDataKinds.Identity#NAMESPACE. This is required only if #ATTENDEE_IDENTITY is present. Column name. <P>Type: STRING</P>
				 */
				static ATTENDEE_ID_NAMESPACE: string;
			}
			/**
			 * Columns from the Events table that other tables join into themselves.
			 */
			interface IEventsColumns {
			}
			export module IEventsColumns {
				/**
				 * The Calendars#_ID of the calendar the event belongs to. Column name. <P>Type: INTEGER</P>
				 */
				var CALENDAR_ID: string;
				/**
				 * The title of the event. Column name. <P>Type: TEXT</P>
				 */
				var TITLE: string;
				/**
				 * The description of the event. Column name. <P>Type: TEXT</P>
				 */
				var DESCRIPTION: string;
				/**
				 * Where the event takes place. Column name. <P>Type: TEXT</P>
				 */
				var EVENT_LOCATION: string;
				/**
				 * A secondary color for the individual event. This should only be updated by the sync adapter for a given account. <P>Type: INTEGER</P>
				 */
				var EVENT_COLOR: string;
				/**
				 * A secondary color key for the individual event. NULL or an empty string are reserved for indicating that the event does not use a key for looking up the color. The provider will update #EVENT_COLOR automatically when a valid key is written to this column. The key must reference an existing row of the Colors table. Colors <P> Type: TEXT </P>
				 */
				var EVENT_COLOR_KEY: string;
				/**
				 * This will be #EVENT_COLOR if it is not null; otherwise, this will be Calendars#CALENDAR_COLOR. Read-only value. To modify, write to #EVENT_COLOR or Calendars#CALENDAR_COLOR directly. <P> Type: INTEGER </P>
				 */
				var DISPLAY_COLOR: string;
				/**
				 * The event status. Column name. <P>Type: INTEGER (one of #STATUS_TENTATIVE...)</P>
				 */
				var STATUS: string;
				var STATUS_TENTATIVE: number;
				var STATUS_CONFIRMED: number;
				var STATUS_CANCELED: number;
				/**
				 * This is a copy of the attendee status for the owner of this event. This field is copied here so that we can efficiently filter out events that are declined without having to look in the Attendees table. Column name.
				 */
				var SELF_ATTENDEE_STATUS: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA1: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA2: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA3: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA4: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA5: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA6: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA7: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA8: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA9: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var SYNC_DATA10: string;
				/**
				 * Used to indicate that a row is not a real event but an original copy of a locally modified event. A copy is made when an event changes from non-dirty to dirty and the event is on a calendar with Calendars#CAN_PARTIALLY_UPDATE set to 1. This copy does not get expanded in the instances table and is only visible in queries made by a sync adapter. The copy gets removed when the event is changed back to non-dirty by a sync adapter. <P>Type: INTEGER (boolean)</P>
				 */
				var LAST_SYNCED: string;
				/**
				 * The time the event starts in UTC millis since epoch. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var DTSTART: string;
				/**
				 * The time the event ends in UTC millis since epoch. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var DTEND: string;
				/**
				 * The duration of the event in RFC2445 format. Column name. <P>Type: TEXT (duration in RFC2445 format)</P>
				 */
				var DURATION: string;
				/**
				 * The timezone for the event. Column name. <P>Type: TEXT</P>
				 */
				var EVENT_TIMEZONE: string;
				/**
				 * The timezone for the end time of the event. Column name. <P>Type: TEXT</P>
				 */
				var EVENT_END_TIMEZONE: string;
				/**
				 * Is the event all day (time zone independent). Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var ALL_DAY: string;
				/**
				 * Defines how the event shows up for others when the calendar is shared. Column name. <P>Type: INTEGER (One of #ACCESS_DEFAULT, ...)</P>
				 */
				var ACCESS_LEVEL: string;
				/**
				 * Default access is controlled by the server and will be treated as public on the device.
				 */
				var ACCESS_DEFAULT: number;
				/**
				 * Confidential is not used by the app.
				 */
				var ACCESS_CONFIDENTIAL: number;
				/**
				 * Private shares the event as a free/busy slot with no details.
				 */
				var ACCESS_PRIVATE: number;
				/**
				 * Public makes the contents visible to anyone with access to the calendar.
				 */
				var ACCESS_PUBLIC: number;
				/**
				 * If this event counts as busy time or is still free time that can be scheduled over. Column name. <P> Type: INTEGER (One of #AVAILABILITY_BUSY, #AVAILABILITY_FREE, #AVAILABILITY_TENTATIVE) </P>
				 */
				var AVAILABILITY: string;
				/**
				 * Indicates that this event takes up time and will conflict with other events.
				 */
				var AVAILABILITY_BUSY: number;
				/**
				 * Indicates that this event is free time and will not conflict with other events.
				 */
				var AVAILABILITY_FREE: number;
				/**
				 * Indicates that the owner's availability may change, but should be considered busy time that will conflict.
				 */
				var AVAILABILITY_TENTATIVE: number;
				/**
				 * Whether the event has an alarm or not. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var HAS_ALARM: string;
				/**
				 * Whether the event has extended properties or not. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var HAS_EXTENDED_PROPERTIES: string;
				/**
				 * The recurrence rule for the event. Column name. <P>Type: TEXT</P>
				 */
				var RRULE: string;
				/**
				 * The recurrence dates for the event. Column name. <P>Type: TEXT</P>
				 */
				var RDATE: string;
				/**
				 * The recurrence exception rule for the event. Column name. <P>Type: TEXT</P>
				 */
				var EXRULE: string;
				/**
				 * The recurrence exception dates for the event. Column name. <P>Type: TEXT</P>
				 */
				var EXDATE: string;
				/**
				 * The Events#_ID of the original recurring event for which this event is an exception. Column name. <P>Type: TEXT</P>
				 */
				var ORIGINAL_ID: string;
				/**
				 * The _sync_id of the original recurring event for which this event is an exception. The provider should keep the original_id in sync when this is updated. Column name. <P>Type: TEXT</P>
				 */
				var ORIGINAL_SYNC_ID: string;
				/**
				 * The original instance time of the recurring event for which this event is an exception. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var ORIGINAL_INSTANCE_TIME: string;
				/**
				 * The allDay status (true or false) of the original recurring event for which this event is an exception. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var ORIGINAL_ALL_DAY: string;
				/**
				 * The last date this event repeats on, or NULL if it never ends. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var LAST_DATE: string;
				/**
				 * Whether the event has attendee information. True if the event has full attendee data, false if the event has information about self only. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var HAS_ATTENDEE_DATA: string;
				/**
				 * Whether guests can modify the event. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var GUESTS_CAN_MODIFY: string;
				/**
				 * Whether guests can invite other guests. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var GUESTS_CAN_INVITE_OTHERS: string;
				/**
				 * Whether guests can see the list of attendees. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var GUESTS_CAN_SEE_GUESTS: string;
				/**
				 * Email of the organizer (owner) of the event. Column name. <P>Type: STRING</P>
				 */
				var ORGANIZER: string;
				/**
				 * Are we the organizer of this event. If this column is not explicitly set, the provider will return 1 if #ORGANIZER is equal to Calendars#OWNER_ACCOUNT. Column name. <P>Type: STRING</P>
				 */
				var IS_ORGANIZER: string;
				/**
				 * Whether the user can invite others to the event. The GUESTS_CAN_INVITE_OTHERS is a setting that applies to an arbitrary guest, while CAN_INVITE_OTHERS indicates if the user can invite others (either through GUESTS_CAN_INVITE_OTHERS or because the user has modify access to the event). Column name. <P>Type: INTEGER (boolean, readonly)</P>
				 */
				var CAN_INVITE_OTHERS: string;
				/**
				 * The package name of the custom app that can provide a richer experience for the event. See the ACTION TYPE CalendarContract#ACTION_HANDLE_CUSTOM_EVENT for details. Column name. <P> Type: TEXT </P>
				 */
				var CUSTOM_APP_PACKAGE: string;
				/**
				 * The URI used by the custom app for the event. Column name. <P>Type: TEXT</P>
				 */
				var CUSTOM_APP_URI: string;
				/**
				 * The UID for events added from the RFC 2445 iCalendar format. Column name. <P>Type: TEXT</P>
				 */
				var UID_2445: string;
			}
			export class CalendarAlertsColumns implements android.provider.CalendarContract.ICalendarAlertsColumns {
				constructor(implementation: android.provider.CalendarContract.ICalendarAlertsColumns);
				/**
				 * The event that the alert belongs to. Column name. <P>Type: INTEGER (foreign key to the Events table)</P>
				 */
				static EVENT_ID: string;
				/**
				 * The start time of the event, in UTC. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static BEGIN: string;
				/**
				 * The end time of the event, in UTC. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static END: string;
				/**
				 * The alarm time of the event, in UTC. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static ALARM_TIME: string;
				/**
				 * The creation time of this database entry, in UTC. Useful for debugging missed reminders. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static CREATION_TIME: string;
				/**
				 * The time that the alarm broadcast was received by the Calendar app, in UTC. Useful for debugging missed reminders. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static RECEIVED_TIME: string;
				/**
				 * The time that the notification was created by the Calendar app, in UTC. Useful for debugging missed reminders. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static NOTIFY_TIME: string;
				/**
				 * The state of this alert. It starts out as #STATE_SCHEDULED, then when the alarm goes off, it changes to #STATE_FIRED, and then when the user dismisses the alarm it changes to #STATE_DISMISSED. Column name. <P>Type: INTEGER</P>
				 */
				static STATE: string;
				/**
				 * An alert begins in this state when it is first created.
				 */
				static STATE_SCHEDULED: number;
				/**
				 * After a notification for an alert has been created it should be updated to fired.
				 */
				static STATE_FIRED: number;
				/**
				 * Once the user has dismissed the notification the alert's state should be set to dismissed so it is not fired again.
				 */
				static STATE_DISMISSED: number;
				/**
				 * The number of minutes that this alarm precedes the start time. Column name. <P>Type: INTEGER</P>
				 */
				static MINUTES: string;
				/**
				 * The default sort order for this alerts queries
				 */
				static DEFAULT_SORT_ORDER: string;
			}
			interface IRemindersColumns {
			}
			export module IRemindersColumns {
				/**
				 * The event the reminder belongs to. Column name. <P>Type: INTEGER (foreign key to the Events table)</P>
				 */
				var EVENT_ID: string;
				/**
				 * The minutes prior to the event that the alarm should ring. -1 specifies that we should use the default value for the system. Column name. <P>Type: INTEGER</P>
				 */
				var MINUTES: string;
				/**
				 * Passing this as a minutes value will use the default reminder minutes.
				 */
				var MINUTES_DEFAULT: number;
				/**
				 * The alarm method, as set on the server. #METHOD_DEFAULT, #METHOD_ALERT, #METHOD_EMAIL, #METHOD_SMS and #METHOD_ALARM are possible values; the device will only process #METHOD_DEFAULT and #METHOD_ALERT reminders (the other types are simply stored so we can send the same reminder info back to the server when we make changes).
				 */
				var METHOD: string;
				var METHOD_DEFAULT: number;
				var METHOD_ALERT: number;
				var METHOD_EMAIL: number;
				var METHOD_SMS: number;
				var METHOD_ALARM: number;
			}
			/**
			 * Fields and helpers for interacting with Attendees. Each row of this table represents a single attendee or guest of an event. Calling #query(ContentResolver, long, String[]) will return a list of attendees for the event with the given eventId. Both apps and sync adapters may write to this table. There are six writable fields and all of them except #ATTENDEE_NAME must be included when inserting a new attendee. They are: <ul> <li>#EVENT_ID</li> <li>#ATTENDEE_NAME</li> <li>#ATTENDEE_EMAIL</li> <li>#ATTENDEE_RELATIONSHIP</li> <li>#ATTENDEE_TYPE</li> <li>#ATTENDEE_STATUS</li> <li>#ATTENDEE_IDENTITY</li> <li>#ATTENDEE_ID_NAMESPACE</li> </ul>
			 */
			export class Attendees extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.IAttendeesColumns, android.provider.CalendarContract.IEventsColumns {
				/**
				 * The content:// style URL for accessing Attendees data
				 */
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.Attendees>;
				/**
				 * Queries all attendees associated with the given event. This is a blocking call and should not be done on the UI thread.
				 * @param cr The content resolver to use for the query
				 * @param eventId The id of the event to retrieve attendees for
				 * @param projection the columns to return in the cursor
				 */
				public static query(cr: android.content.ContentResolver, eventId: number, projection: native.Array<string>): android.database.ICursor;
			}
			/**
			 * Generic columns for use by sync adapters. The specific functions of these columns are private to the sync adapter. Other clients of the API should not attempt to either read or write this column. These columns are editable as part of the Calendars Uri, but can only be read if accessed through any other Uri.
			 */
			interface ICalendarSyncColumns {
			}
			export module ICalendarSyncColumns {
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC1: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC2: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC3: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC4: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC5: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC6: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC7: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC8: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC9: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				var CAL_SYNC10: string;
			}
			/**
			 * CalendarCache stores some settings for calendar including the current time zone for the instances. These settings are stored using a key/value scheme. A #KEY must be specified when updating these values.
			 */
			export class CalendarCache extends java.lang.Object implements android.provider.CalendarContract.ICalendarCacheColumns {
				/**
				 * The URI to use for retrieving the properties from the Calendar db.
				 */
				static URI: android.net.Uri;
				/**
				 * They key for updating the use of auto/home time zones in Calendar. Valid values are #TIMEZONE_TYPE_AUTO or #TIMEZONE_TYPE_HOME.
				 */
				static KEY_TIMEZONE_TYPE: string;
				/**
				 * The key for updating the time zone used by the provider when it generates the instances table. This should only be written if the type is set to #TIMEZONE_TYPE_HOME. A valid time zone id should be written to this field.
				 */
				static KEY_TIMEZONE_INSTANCES: string;
				/**
				 * The key for reading the last time zone set by the user. This should only be read by apps and it will be automatically updated whenever #KEY_TIMEZONE_INSTANCES is updated with #TIMEZONE_TYPE_HOME set.
				 */
				static KEY_TIMEZONE_INSTANCES_PREVIOUS: string;
				/**
				 * The value to write to #KEY_TIMEZONE_TYPE if the provider should stay in sync with the device's time zone.
				 */
				static TIMEZONE_TYPE_AUTO: string;
				/**
				 * The value to write to #KEY_TIMEZONE_TYPE if the provider should use a fixed time zone set by the user.
				 */
				static TIMEZONE_TYPE_HOME: string;
				static class: java.lang.Class<android.provider.CalendarContract.CalendarCache>;
			}
			export class EventDaysColumns implements android.provider.CalendarContract.IEventDaysColumns {
				constructor(implementation: android.provider.CalendarContract.IEventDaysColumns);
				/**
				 * The Julian starting day number. Column name. <P>Type: INTEGER (int)</P>
				 */
				static STARTDAY: string;
				/**
				 * The Julian ending day number. Column name. <P>Type: INTEGER (int)</P>
				 */
				static ENDDAY: string;
			}
			/**
			 * Columns for Sync information used by Calendars and Events tables. These have specific uses which are expected to be consistent by the app and sync adapter.
			 */
			export class SyncColumns implements android.provider.CalendarContract.ICalendarSyncColumns, android.provider.CalendarContract.ISyncColumns {
				constructor(implementation: android.provider.CalendarContract.ISyncColumns);
				/**
				 * The account that was used to sync the entry to the device. If the account_type is not #ACCOUNT_TYPE_LOCAL then the name and type must match an account on the device or the calendar will be deleted. <P>Type: TEXT</P>
				 */
				static ACCOUNT_NAME: string;
				/**
				 * The type of the account that was used to sync the entry to the device. A type of #ACCOUNT_TYPE_LOCAL will keep this event form being deleted if there are no matching accounts on the device. <P>Type: TEXT</P>
				 */
				static ACCOUNT_TYPE: string;
				/**
				 * The unique ID for a row assigned by the sync source. NULL if the row has never been synced. This is used as a reference id for exceptions along with BaseColumns#_ID. <P>Type: TEXT</P>
				 */
				static _SYNC_ID: string;
				/**
				 * Used to indicate that local, unsynced, changes are present. <P>Type: INTEGER (long)</P>
				 */
				static DIRTY: string;
				/**
				 * Whether the row has been deleted but not synced to the server. A deleted row should be ignored. <P> Type: INTEGER (boolean) </P>
				 */
				static DELETED: string;
				/**
				 * If set to 1 this causes events on this calendar to be duplicated with Events#LAST_SYNCED set to 1 whenever the event transitions from non-dirty to dirty. The duplicated event will not be expanded in the instances table and will only show up in sync adapter queries of the events table. It will also be deleted when the originating event has its dirty flag cleared by the sync adapter. <P>Type: INTEGER (boolean)</P>
				 */
				static CAN_PARTIALLY_UPDATE: string;
			}
			/**
			 * Fields for accessing the Extended Properties. This is a generic set of name/value pairs for use by sync adapters to add extra information to events. There are three writable columns and all three must be present when inserting a new value. They are: <ul> <li>#EVENT_ID</li> <li>#NAME</li> <li>#VALUE</li> </ul>
			 */
			export class ExtendedProperties extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.IExtendedPropertiesColumns, android.provider.CalendarContract.IEventsColumns {
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.ExtendedProperties>;
			}
			/**
			 * Columns specific to the Calendars Uri that other Uris can query.
			 */
			export class CalendarColumns implements android.provider.CalendarContract.ICalendarColumns {
				constructor(implementation: android.provider.CalendarContract.ICalendarColumns);
				/**
				 * The color of the calendar. This should only be updated by the sync adapter, not other apps, as changing a calendar's color can adversely affect its display. <P>Type: INTEGER (color value)</P>
				 */
				static CALENDAR_COLOR: string;
				/**
				 * A key for looking up a color from the Colors table. NULL or an empty string are reserved for indicating that the calendar does not use a key for looking up the color. The provider will update #CALENDAR_COLOR automatically when a valid key is written to this column. The key must reference an existing row of the Colors table. Colors <P> Type: TEXT </P>
				 */
				static CALENDAR_COLOR_KEY: string;
				/**
				 * The display name of the calendar. Column name. <P> Type: TEXT </P>
				 */
				static CALENDAR_DISPLAY_NAME: string;
				/**
				 * The level of access that the user has for the calendar <P>Type: INTEGER (one of the values below)</P>
				 */
				static CALENDAR_ACCESS_LEVEL: string;
				/**
				 * Cannot access the calendar
				 */
				static CAL_ACCESS_NONE: number;
				/**
				 * Can only see free/busy information about the calendar
				 */
				static CAL_ACCESS_FREEBUSY: number;
				/**
				 * Can read all event details
				 */
				static CAL_ACCESS_READ: number;
				/**
				 * Can reply yes/no/maybe to an event
				 */
				static CAL_ACCESS_RESPOND: number;
				/**
				 * not used
				 */
				static CAL_ACCESS_OVERRIDE: number;
				/**
				 * Full access to modify the calendar, but not the access control settings
				 */
				static CAL_ACCESS_CONTRIBUTOR: number;
				/**
				 * Full access to modify the calendar, but not the access control settings
				 */
				static CAL_ACCESS_EDITOR: number;
				/**
				 * Full access to the calendar
				 */
				static CAL_ACCESS_OWNER: number;
				/**
				 * Domain admin
				 */
				static CAL_ACCESS_ROOT: number;
				/**
				 * Is the calendar selected to be displayed? 0 - do not show events associated with this calendar. 1 - show events associated with this calendar <P>Type: INTEGER (boolean)</P>
				 */
				static VISIBLE: string;
				/**
				 * The time zone the calendar is associated with. <P>Type: TEXT</P>
				 */
				static CALENDAR_TIME_ZONE: string;
				/**
				 * Is this calendar synced and are its events stored on the device? 0 - Do not sync this calendar or store events for this calendar. 1 - Sync down events for this calendar.
				 */
				static SYNC_EVENTS: string;
				/**
				 * The owner account for this calendar, based on the calendar feed. This will be different from the _SYNC_ACCOUNT for delegated calendars. Column name. <P>Type: String</P>
				 */
				static OWNER_ACCOUNT: string;
				/**
				 * Can the organizer respond to the event? If no, the status of the organizer should not be shown by the UI. Defaults to 1. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static CAN_ORGANIZER_RESPOND: string;
				/**
				 * Can the organizer modify the time zone of the event? Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static CAN_MODIFY_TIME_ZONE: string;
				/**
				 * The maximum number of reminders allowed for an event. Column name. <P>Type: INTEGER</P>
				 */
				static MAX_REMINDERS: string;
				/**
				 * A comma separated list of reminder methods supported for this calendar in the format "#,#,#". Valid types are Reminders#METHOD_DEFAULT, Reminders#METHOD_ALERT, Reminders#METHOD_EMAIL, Reminders#METHOD_SMS, Reminders#METHOD_ALARM. Column name. <P>Type: TEXT</P>
				 */
				static ALLOWED_REMINDERS: string;
				/**
				 * A comma separated list of availability types supported for this calendar in the format "#,#,#". Valid types are Events#AVAILABILITY_BUSY, Events#AVAILABILITY_FREE, Events#AVAILABILITY_TENTATIVE. Setting this field to only Events#AVAILABILITY_BUSY should be used to indicate that changing the availability is not supported.
				 */
				static ALLOWED_AVAILABILITY: string;
				/**
				 * A comma separated list of attendee types supported for this calendar in the format "#,#,#". Valid types are Attendees#TYPE_NONE, Attendees#TYPE_OPTIONAL, Attendees#TYPE_REQUIRED, Attendees#TYPE_RESOURCE. Setting this field to only Attendees#TYPE_NONE should be used to indicate that changing the attendee type is not supported.
				 */
				static ALLOWED_ATTENDEE_TYPES: string;
				/**
				 * Is this the primary calendar for this account. If this column is not explicitly set, the provider will return 1 if Calendars#ACCOUNT_NAME is equal to Calendars#OWNER_ACCOUNT.
				 */
				static IS_PRIMARY: string;
			}
			/**
			 * Fields and helpers for accessing reminders for an event. Each row of this table represents a single reminder for an event. Calling #query(ContentResolver, long, String[]) will return a list of reminders for the event with the given eventId. Both apps and sync adapters may write to this table. There are three writable fields and all of them must be included when inserting a new reminder. They are: <ul> <li>#EVENT_ID</li> <li>#MINUTES</li> <li>#METHOD</li> </ul>
			 */
			export class Reminders extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.IRemindersColumns, android.provider.CalendarContract.IEventsColumns {
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.Reminders>;
				/**
				 * Queries all reminders associated with the given event. This is a blocking call and should not be done on the UI thread.
				 * @param cr The content resolver to use for the query
				 * @param eventId The id of the event to retrieve reminders for
				 * @param projection the columns to return in the cursor
				 */
				public static query(cr: android.content.ContentResolver, eventId: number, projection: native.Array<string>): android.database.ICursor;
			}
			/**
			 * Constants and helpers for the Events table, which contains details for individual events. <h3>Operations</h3> All operations can be done either as an app or as a sync adapter. To perform an operation as a sync adapter #CALLER_IS_SYNCADAPTER should be set to true and #ACCOUNT_NAME and #ACCOUNT_TYPE must be set in the Uri parameters. See Uri.Builder#appendQueryParameter(java.lang.String, java.lang.String) for details on adding parameters. Sync adapters have write access to more columns but are restricted to a single account at a time. <dl> <dt><b>Insert</b></dt> <dd>When inserting a new event the following fields must be included: <ul> <li>dtstart</li> <li>dtend if the event is non-recurring</li> <li>duration if the event is recurring</li> <li>rrule or rdate if the event is recurring</li> <li>eventTimezone</li> <li>a calendar_id</li> </ul> There are also further requirements when inserting or updating an event. See the section on Writing to Events.</dd> <dt><b>Update</b></dt> <dd>To perform an update of an Event the Events#_ID of the event should be provided either as an appended id to the Uri ( ContentUris#withAppendedId) or as the first selection item--the selection should start with "_id=?" and the first selectionArg should be the _id of the event. Updates may also be done using a selection and no id. Updating an event must respect the same rules as inserting and is further restricted in the fields that can be written. See the section on Writing to Events.</dd> <dt><b>Delete</b></dt> <dd>Events can be deleted either by the Events#_ID as an appended id on the Uri or using any standard selection. If an appended id is used a selection is not allowed. There are two versions of delete: as an app and as a sync adapter. An app delete will set the deleted column on an event and remove all instances of that event. A sync adapter delete will remove the event from the database and all associated data.</dd> <dt><b>Query</b></dt> <dd>Querying the Events table will get you all information about a set of events except their reminders, attendees, and extended properties. There will be one row returned for each event that matches the query selection, or at most a single row if the Events#_ID is appended to the Uri. Recurring events will only return a single row regardless of the number of times that event repeats.</dd> </dl> <h3>Writing to Events</h3> There are further restrictions on all Updates and Inserts in the Events table: <ul> <li>If allDay is set to 1 eventTimezone must be Time#TIMEZONE_UTC and the time must correspond to a midnight boundary.</li> <li>Exceptions are not allowed to recur. If rrule or rdate is not empty, original_id and original_sync_id must be empty.</li> <li>In general a calendar_id should not be modified after insertion. This is not explicitly forbidden but many sync adapters will not behave in an expected way if the calendar_id is modified.</li> </ul> The following Events columns are writable by both an app and a sync adapter. <ul> <li>#CALENDAR_ID</li> <li>#ORGANIZER</li> <li>#TITLE</li> <li>#EVENT_LOCATION</li> <li>#DESCRIPTION</li> <li>#EVENT_COLOR</li> <li>#DTSTART</li> <li>#DTEND</li> <li>#EVENT_TIMEZONE</li> <li>#EVENT_END_TIMEZONE</li> <li>#DURATION</li> <li>#ALL_DAY</li> <li>#RRULE</li> <li>#RDATE</li> <li>#EXRULE</li> <li>#EXDATE</li> <li>#ORIGINAL_ID</li> <li>#ORIGINAL_SYNC_ID</li> <li>#ORIGINAL_INSTANCE_TIME</li> <li>#ORIGINAL_ALL_DAY</li> <li>#ACCESS_LEVEL</li> <li>#AVAILABILITY</li> <li>#GUESTS_CAN_MODIFY</li> <li>#GUESTS_CAN_INVITE_OTHERS</li> <li>#GUESTS_CAN_SEE_GUESTS</li> <li>#CUSTOM_APP_PACKAGE</li> <li>#CUSTOM_APP_URI</li> <li>#UID_2445</li> </ul> The following Events columns are writable only by a sync adapter <ul> <li>#DIRTY</li> <li>#_SYNC_ID</li> <li>#SYNC_DATA1</li> <li>#SYNC_DATA2</li> <li>#SYNC_DATA3</li> <li>#SYNC_DATA4</li> <li>#SYNC_DATA5</li> <li>#SYNC_DATA6</li> <li>#SYNC_DATA7</li> <li>#SYNC_DATA8</li> <li>#SYNC_DATA9</li> <li>#SYNC_DATA10</li> </ul> The remaining columns are either updated by the provider only or are views into other tables and cannot be changed through the Events table.
			 */
			export class Events extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.ISyncColumns, android.provider.CalendarContract.IEventsColumns, android.provider.CalendarContract.ICalendarColumns {
				/**
				 * The content:// style URL for interacting with events. Appending an event id using ContentUris#withAppendedId(Uri, long) will specify a single event.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URI for recurring event exceptions. Insertions require an appended event ID. Deletion of exceptions requires both the original event ID and the exception event ID (see Uri.Builder#appendPath).
				 */
				static CONTENT_EXCEPTION_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.Events>;
			}
			/**
			 * A table provided for sync adapters to use for storing private sync state data.
			 */
			export class SyncState extends java.lang.Object implements android.provider.SyncStateContract.IColumns {
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.SyncState>;
			}
			/**
			 * Class that represents an Event Entity. There is one entry per event. Recurring events show up as a single entry. This is a helper class to make batch operations easier. A ContentResolver or ContentProviderClient is required as the helper does additional queries to add reminders and attendees to each entry.
			 */
			export class EventsEntity extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.ISyncColumns, android.provider.CalendarContract.IEventsColumns {
				/**
				 * The content:// style URL for this table
				 */
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.EventsEntity>;
				/**
				 * Creates a new iterator for events
				 * @param cursor An event query
				 * @param resolver For performing additional queries
				 */
				public static newEntityIterator(cursor: android.database.ICursor, resolver: android.content.ContentResolver): android.content.IEntityIterator;
				/**
				 * Creates a new iterator for events
				 * @param cursor An event query
				 * @param provider For performing additional queries
				 */
				public static newEntityIterator(cursor: android.database.ICursor, provider: android.content.ContentProviderClient): android.content.IEntityIterator;
			}
			export module EventsEntity {
				export class EntityIteratorImpl extends java.lang.Object {
					constructor(cursor: android.database.ICursor, resolver: android.content.ContentResolver);
					constructor(cursor: android.database.ICursor, provider: android.content.ContentProviderClient);
					static class: java.lang.Class<android.provider.CalendarContract.EventsEntity.EntityIteratorImpl>;
					public getEntityAndIncrementCursor(cursor: android.database.ICursor): android.content.Entity;
				}
			}
			/**
			 * Fields and helpers for accessing calendar alerts information. These fields are for tracking which alerts have been fired. Scheduled alarms will generate an intent using #ACTION_EVENT_REMINDER. Apps that receive this action may update the #STATE for the reminder when they have finished handling it. Apps that have their notifications disabled should not modify the table to ensure that they do not conflict with another app that is generating a notification. In general, apps should not need to write to this table directly except to update the state of a reminder.
			 */
			export class CalendarAlerts extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.ICalendarAlertsColumns, android.provider.CalendarContract.IEventsColumns, android.provider.CalendarContract.ICalendarColumns {
				/**
				 * The Uri for querying calendar alert information
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * This URI is for grouping the query results by event_id and begin time. This will return one result per instance of an event. So events with multiple alarms will appear just once, but multiple instances of a repeating event will show up multiple times.
				 */
				static CONTENT_URI_BY_INSTANCE: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.CalendarAlerts>;
			}
			interface IColorsColumns extends android.provider.SyncStateContract.IColumns {
			}
			export module IColorsColumns {
				/**
				 * The type of color, which describes how it should be used. Valid types are #TYPE_CALENDAR and #TYPE_EVENT. Column name. <P> Type: INTEGER (NOT NULL) </P>
				 */
				var COLOR_TYPE: string;
				/**
				 * This indicateds a color that can be used for calendars.
				 */
				var TYPE_CALENDAR: number;
				/**
				 * This indicates a color that can be used for events.
				 */
				var TYPE_EVENT: number;
				/**
				 * The key used to reference this color. This can be any non-empty string, but must be unique for a given #ACCOUNT_TYPE and #ACCOUNT_NAME. Column name. <P> Type: TEXT </P>
				 */
				var COLOR_KEY: string;
				/**
				 * The color as an 8-bit ARGB integer value. Colors should specify alpha as fully opaque (eg 0xFF993322) as the alpha may be ignored or modified for display. It is reccomended that colors be usable with light (near white) text. Apps should not depend on that assumption, however. Column name. <P> Type: INTEGER (NOT NULL) </P>
				 */
				var COLOR: string;
			}
			/**
			 * Columns from the Events table that other tables join into themselves.
			 */
			export class EventsColumns implements android.provider.CalendarContract.IEventsColumns {
				constructor(implementation: android.provider.CalendarContract.IEventsColumns);
				/**
				 * The Calendars#_ID of the calendar the event belongs to. Column name. <P>Type: INTEGER</P>
				 */
				static CALENDAR_ID: string;
				/**
				 * The title of the event. Column name. <P>Type: TEXT</P>
				 */
				static TITLE: string;
				/**
				 * The description of the event. Column name. <P>Type: TEXT</P>
				 */
				static DESCRIPTION: string;
				/**
				 * Where the event takes place. Column name. <P>Type: TEXT</P>
				 */
				static EVENT_LOCATION: string;
				/**
				 * A secondary color for the individual event. This should only be updated by the sync adapter for a given account. <P>Type: INTEGER</P>
				 */
				static EVENT_COLOR: string;
				/**
				 * A secondary color key for the individual event. NULL or an empty string are reserved for indicating that the event does not use a key for looking up the color. The provider will update #EVENT_COLOR automatically when a valid key is written to this column. The key must reference an existing row of the Colors table. Colors <P> Type: TEXT </P>
				 */
				static EVENT_COLOR_KEY: string;
				/**
				 * This will be #EVENT_COLOR if it is not null; otherwise, this will be Calendars#CALENDAR_COLOR. Read-only value. To modify, write to #EVENT_COLOR or Calendars#CALENDAR_COLOR directly. <P> Type: INTEGER </P>
				 */
				static DISPLAY_COLOR: string;
				/**
				 * The event status. Column name. <P>Type: INTEGER (one of #STATUS_TENTATIVE...)</P>
				 */
				static STATUS: string;
				static STATUS_TENTATIVE: number;
				static STATUS_CONFIRMED: number;
				static STATUS_CANCELED: number;
				/**
				 * This is a copy of the attendee status for the owner of this event. This field is copied here so that we can efficiently filter out events that are declined without having to look in the Attendees table. Column name.
				 */
				static SELF_ATTENDEE_STATUS: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA1: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA2: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA3: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA4: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA5: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA6: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA7: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA8: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA9: string;
				/**
				 * This column is available for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static SYNC_DATA10: string;
				/**
				 * Used to indicate that a row is not a real event but an original copy of a locally modified event. A copy is made when an event changes from non-dirty to dirty and the event is on a calendar with Calendars#CAN_PARTIALLY_UPDATE set to 1. This copy does not get expanded in the instances table and is only visible in queries made by a sync adapter. The copy gets removed when the event is changed back to non-dirty by a sync adapter. <P>Type: INTEGER (boolean)</P>
				 */
				static LAST_SYNCED: string;
				/**
				 * The time the event starts in UTC millis since epoch. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static DTSTART: string;
				/**
				 * The time the event ends in UTC millis since epoch. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static DTEND: string;
				/**
				 * The duration of the event in RFC2445 format. Column name. <P>Type: TEXT (duration in RFC2445 format)</P>
				 */
				static DURATION: string;
				/**
				 * The timezone for the event. Column name. <P>Type: TEXT</P>
				 */
				static EVENT_TIMEZONE: string;
				/**
				 * The timezone for the end time of the event. Column name. <P>Type: TEXT</P>
				 */
				static EVENT_END_TIMEZONE: string;
				/**
				 * Is the event all day (time zone independent). Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static ALL_DAY: string;
				/**
				 * Defines how the event shows up for others when the calendar is shared. Column name. <P>Type: INTEGER (One of #ACCESS_DEFAULT, ...)</P>
				 */
				static ACCESS_LEVEL: string;
				/**
				 * Default access is controlled by the server and will be treated as public on the device.
				 */
				static ACCESS_DEFAULT: number;
				/**
				 * Confidential is not used by the app.
				 */
				static ACCESS_CONFIDENTIAL: number;
				/**
				 * Private shares the event as a free/busy slot with no details.
				 */
				static ACCESS_PRIVATE: number;
				/**
				 * Public makes the contents visible to anyone with access to the calendar.
				 */
				static ACCESS_PUBLIC: number;
				/**
				 * If this event counts as busy time or is still free time that can be scheduled over. Column name. <P> Type: INTEGER (One of #AVAILABILITY_BUSY, #AVAILABILITY_FREE, #AVAILABILITY_TENTATIVE) </P>
				 */
				static AVAILABILITY: string;
				/**
				 * Indicates that this event takes up time and will conflict with other events.
				 */
				static AVAILABILITY_BUSY: number;
				/**
				 * Indicates that this event is free time and will not conflict with other events.
				 */
				static AVAILABILITY_FREE: number;
				/**
				 * Indicates that the owner's availability may change, but should be considered busy time that will conflict.
				 */
				static AVAILABILITY_TENTATIVE: number;
				/**
				 * Whether the event has an alarm or not. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static HAS_ALARM: string;
				/**
				 * Whether the event has extended properties or not. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static HAS_EXTENDED_PROPERTIES: string;
				/**
				 * The recurrence rule for the event. Column name. <P>Type: TEXT</P>
				 */
				static RRULE: string;
				/**
				 * The recurrence dates for the event. Column name. <P>Type: TEXT</P>
				 */
				static RDATE: string;
				/**
				 * The recurrence exception rule for the event. Column name. <P>Type: TEXT</P>
				 */
				static EXRULE: string;
				/**
				 * The recurrence exception dates for the event. Column name. <P>Type: TEXT</P>
				 */
				static EXDATE: string;
				/**
				 * The Events#_ID of the original recurring event for which this event is an exception. Column name. <P>Type: TEXT</P>
				 */
				static ORIGINAL_ID: string;
				/**
				 * The _sync_id of the original recurring event for which this event is an exception. The provider should keep the original_id in sync when this is updated. Column name. <P>Type: TEXT</P>
				 */
				static ORIGINAL_SYNC_ID: string;
				/**
				 * The original instance time of the recurring event for which this event is an exception. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static ORIGINAL_INSTANCE_TIME: string;
				/**
				 * The allDay status (true or false) of the original recurring event for which this event is an exception. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static ORIGINAL_ALL_DAY: string;
				/**
				 * The last date this event repeats on, or NULL if it never ends. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static LAST_DATE: string;
				/**
				 * Whether the event has attendee information. True if the event has full attendee data, false if the event has information about self only. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static HAS_ATTENDEE_DATA: string;
				/**
				 * Whether guests can modify the event. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static GUESTS_CAN_MODIFY: string;
				/**
				 * Whether guests can invite other guests. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static GUESTS_CAN_INVITE_OTHERS: string;
				/**
				 * Whether guests can see the list of attendees. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				static GUESTS_CAN_SEE_GUESTS: string;
				/**
				 * Email of the organizer (owner) of the event. Column name. <P>Type: STRING</P>
				 */
				static ORGANIZER: string;
				/**
				 * Are we the organizer of this event. If this column is not explicitly set, the provider will return 1 if #ORGANIZER is equal to Calendars#OWNER_ACCOUNT. Column name. <P>Type: STRING</P>
				 */
				static IS_ORGANIZER: string;
				/**
				 * Whether the user can invite others to the event. The GUESTS_CAN_INVITE_OTHERS is a setting that applies to an arbitrary guest, while CAN_INVITE_OTHERS indicates if the user can invite others (either through GUESTS_CAN_INVITE_OTHERS or because the user has modify access to the event). Column name. <P>Type: INTEGER (boolean, readonly)</P>
				 */
				static CAN_INVITE_OTHERS: string;
				/**
				 * The package name of the custom app that can provide a richer experience for the event. See the ACTION TYPE CalendarContract#ACTION_HANDLE_CUSTOM_EVENT for details. Column name. <P> Type: TEXT </P>
				 */
				static CUSTOM_APP_PACKAGE: string;
				/**
				 * The URI used by the custom app for the event. Column name. <P>Type: TEXT</P>
				 */
				static CUSTOM_APP_URI: string;
				/**
				 * The UID for events added from the RFC 2445 iCalendar format. Column name. <P>Type: TEXT</P>
				 */
				static UID_2445: string;
			}
			/**
			 * Columns specific to the Calendars Uri that other Uris can query.
			 */
			interface ICalendarColumns {
			}
			export module ICalendarColumns {
				/**
				 * The color of the calendar. This should only be updated by the sync adapter, not other apps, as changing a calendar's color can adversely affect its display. <P>Type: INTEGER (color value)</P>
				 */
				var CALENDAR_COLOR: string;
				/**
				 * A key for looking up a color from the Colors table. NULL or an empty string are reserved for indicating that the calendar does not use a key for looking up the color. The provider will update #CALENDAR_COLOR automatically when a valid key is written to this column. The key must reference an existing row of the Colors table. Colors <P> Type: TEXT </P>
				 */
				var CALENDAR_COLOR_KEY: string;
				/**
				 * The display name of the calendar. Column name. <P> Type: TEXT </P>
				 */
				var CALENDAR_DISPLAY_NAME: string;
				/**
				 * The level of access that the user has for the calendar <P>Type: INTEGER (one of the values below)</P>
				 */
				var CALENDAR_ACCESS_LEVEL: string;
				/**
				 * Cannot access the calendar
				 */
				var CAL_ACCESS_NONE: number;
				/**
				 * Can only see free/busy information about the calendar
				 */
				var CAL_ACCESS_FREEBUSY: number;
				/**
				 * Can read all event details
				 */
				var CAL_ACCESS_READ: number;
				/**
				 * Can reply yes/no/maybe to an event
				 */
				var CAL_ACCESS_RESPOND: number;
				/**
				 * not used
				 */
				var CAL_ACCESS_OVERRIDE: number;
				/**
				 * Full access to modify the calendar, but not the access control settings
				 */
				var CAL_ACCESS_CONTRIBUTOR: number;
				/**
				 * Full access to modify the calendar, but not the access control settings
				 */
				var CAL_ACCESS_EDITOR: number;
				/**
				 * Full access to the calendar
				 */
				var CAL_ACCESS_OWNER: number;
				/**
				 * Domain admin
				 */
				var CAL_ACCESS_ROOT: number;
				/**
				 * Is the calendar selected to be displayed? 0 - do not show events associated with this calendar. 1 - show events associated with this calendar <P>Type: INTEGER (boolean)</P>
				 */
				var VISIBLE: string;
				/**
				 * The time zone the calendar is associated with. <P>Type: TEXT</P>
				 */
				var CALENDAR_TIME_ZONE: string;
				/**
				 * Is this calendar synced and are its events stored on the device? 0 - Do not sync this calendar or store events for this calendar. 1 - Sync down events for this calendar.
				 */
				var SYNC_EVENTS: string;
				/**
				 * The owner account for this calendar, based on the calendar feed. This will be different from the _SYNC_ACCOUNT for delegated calendars. Column name. <P>Type: String</P>
				 */
				var OWNER_ACCOUNT: string;
				/**
				 * Can the organizer respond to the event? If no, the status of the organizer should not be shown by the UI. Defaults to 1. Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var CAN_ORGANIZER_RESPOND: string;
				/**
				 * Can the organizer modify the time zone of the event? Column name. <P>Type: INTEGER (boolean)</P>
				 */
				var CAN_MODIFY_TIME_ZONE: string;
				/**
				 * The maximum number of reminders allowed for an event. Column name. <P>Type: INTEGER</P>
				 */
				var MAX_REMINDERS: string;
				/**
				 * A comma separated list of reminder methods supported for this calendar in the format "#,#,#". Valid types are Reminders#METHOD_DEFAULT, Reminders#METHOD_ALERT, Reminders#METHOD_EMAIL, Reminders#METHOD_SMS, Reminders#METHOD_ALARM. Column name. <P>Type: TEXT</P>
				 */
				var ALLOWED_REMINDERS: string;
				/**
				 * A comma separated list of availability types supported for this calendar in the format "#,#,#". Valid types are Events#AVAILABILITY_BUSY, Events#AVAILABILITY_FREE, Events#AVAILABILITY_TENTATIVE. Setting this field to only Events#AVAILABILITY_BUSY should be used to indicate that changing the availability is not supported.
				 */
				var ALLOWED_AVAILABILITY: string;
				/**
				 * A comma separated list of attendee types supported for this calendar in the format "#,#,#". Valid types are Attendees#TYPE_NONE, Attendees#TYPE_OPTIONAL, Attendees#TYPE_REQUIRED, Attendees#TYPE_RESOURCE. Setting this field to only Attendees#TYPE_NONE should be used to indicate that changing the attendee type is not supported.
				 */
				var ALLOWED_ATTENDEE_TYPES: string;
				/**
				 * Is this the primary calendar for this account. If this column is not explicitly set, the provider will return 1 if Calendars#ACCOUNT_NAME is equal to Calendars#OWNER_ACCOUNT.
				 */
				var IS_PRIMARY: string;
			}
			interface ICalendarCacheColumns {
			}
			export module ICalendarCacheColumns {
				/**
				 * The key for the setting. Keys are defined in CalendarCache.
				 */
				var KEY: string;
				/**
				 * The value of the given setting.
				 */
				var VALUE: string;
			}
			interface IEventDaysColumns {
			}
			export module IEventDaysColumns {
				/**
				 * The Julian starting day number. Column name. <P>Type: INTEGER (int)</P>
				 */
				var STARTDAY: string;
				/**
				 * The Julian ending day number. Column name. <P>Type: INTEGER (int)</P>
				 */
				var ENDDAY: string;
			}
			/**
			 * Class that represents a Calendar Entity. There is one entry per calendar. This is a helper class to make batch operations easier.
			 */
			export class CalendarEntity extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.ISyncColumns, android.provider.CalendarContract.ICalendarColumns {
				/**
				 * The default Uri used when creating a new calendar EntityIterator.
				 */
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.CalendarEntity>;
				/**
				 * Creates an entity iterator for the given cursor. It assumes the cursor contains a calendars query.
				 * @param cursor query on {@link #CONTENT_URI}
				 */
				public static newEntityIterator(cursor: android.database.ICursor): android.content.IEntityIterator;
			}
			export module CalendarEntity {
				export class EntityIteratorImpl extends java.lang.Object {
					constructor(cursor: android.database.ICursor);
					static class: java.lang.Class<android.provider.CalendarContract.CalendarEntity.EntityIteratorImpl>;
					public getEntityAndIncrementCursor(cursor: android.database.ICursor): android.content.Entity;
				}
			}
			/**
			 * Constants and helpers for the Calendars table, which contains details for individual calendars. <h3>Operations</h3> All operations can be done either as an app or as a sync adapter. To perform an operation as a sync adapter #CALLER_IS_SYNCADAPTER should be set to true and #ACCOUNT_NAME and #ACCOUNT_TYPE must be set in the Uri parameters. See Uri.Builder#appendQueryParameter(java.lang.String, java.lang.String) for details on adding parameters. Sync adapters have write access to more columns but are restricted to a single account at a time. Calendars are designed to be primarily managed by a sync adapter and inserting new calendars should be done as a sync adapter. For the most part, apps should only update calendars (such as changing the color or display name). If a local calendar is required an app can do so by inserting as a sync adapter and using an #ACCOUNT_TYPE of #ACCOUNT_TYPE_LOCAL . <dl> <dt><b>Insert</b></dt> <dd>When inserting a new calendar the following fields must be included: <ul> <li>#ACCOUNT_NAME</li> <li>#ACCOUNT_TYPE</li> <li>#NAME</li> <li>#CALENDAR_DISPLAY_NAME</li> <li>#CALENDAR_COLOR</li> <li>#CALENDAR_ACCESS_LEVEL</li> <li>#OWNER_ACCOUNT</li> </ul> The following fields are not required when inserting a Calendar but are generally a good idea to include: <ul> <li>#SYNC_EVENTS set to 1</li> <li>#CALENDAR_TIME_ZONE</li> <li>#ALLOWED_REMINDERS</li> <li>#ALLOWED_AVAILABILITY</li> <li>#ALLOWED_ATTENDEE_TYPES</li> </ul> <dt><b>Update</b></dt> <dd>To perform an update on a calendar the #_ID of the calendar should be provided either as an appended id to the Uri ( ContentUris#withAppendedId) or as the first selection item--the selection should start with "_id=?" and the first selectionArg should be the _id of the calendar. Calendars may also be updated using a selection without the id. In general, the #ACCOUNT_NAME and #ACCOUNT_TYPE should not be changed after a calendar is created as this can cause issues for sync adapters. <dt><b>Delete</b></dt> <dd>Calendars can be deleted either by the #_ID as an appended id on the Uri or using any standard selection. Deleting a calendar should generally be handled by a sync adapter as it will remove the calendar from the database and all associated data (aka events).</dd> <dt><b>Query</b></dt> <dd>Querying the Calendars table will get you all information about a set of calendars. There will be one row returned for each calendar that matches the query selection, or at most a single row if the #_ID is appended to the Uri.</dd> </dl> <h3>Calendar Columns</h3> The following Calendar columns are writable by both an app and a sync adapter. <ul> <li>#NAME</li> <li>#CALENDAR_DISPLAY_NAME</li> <li>#VISIBLE</li> <li>#SYNC_EVENTS</li> </ul> The following Calendars columns are writable only by a sync adapter <ul> <li>#ACCOUNT_NAME</li> <li>#ACCOUNT_TYPE</li> <li>#CALENDAR_COLOR</li> <li>#_SYNC_ID</li> <li>#DIRTY</li> <li>#OWNER_ACCOUNT</li> <li>#MAX_REMINDERS</li> <li>#ALLOWED_REMINDERS</li> <li>#ALLOWED_AVAILABILITY</li> <li>#ALLOWED_ATTENDEE_TYPES</li> <li>#CAN_MODIFY_TIME_ZONE</li> <li>#CAN_ORGANIZER_RESPOND</li> <li>#CAN_PARTIALLY_UPDATE</li> <li>#CALENDAR_LOCATION</li> <li>#CALENDAR_TIME_ZONE</li> <li>#CALENDAR_ACCESS_LEVEL</li> <li>#DELETED</li> <li>#CAL_SYNC1</li> <li>#CAL_SYNC2</li> <li>#CAL_SYNC3</li> <li>#CAL_SYNC4</li> <li>#CAL_SYNC5</li> <li>#CAL_SYNC6</li> <li>#CAL_SYNC7</li> <li>#CAL_SYNC8</li> <li>#CAL_SYNC9</li> <li>#CAL_SYNC10</li> </ul>
			 */
			export class Calendars extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.ISyncColumns, android.provider.CalendarContract.ICalendarColumns {
				/**
				 * The content:// style URL for accessing Calendars
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The default sort order for this table
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * The name of the calendar. Column name. <P>Type: TEXT</P>
				 */
				static NAME: string;
				/**
				 * The default location for the calendar. Column name. <P>Type: TEXT</P>
				 */
				static CALENDAR_LOCATION: string;
				static class: java.lang.Class<android.provider.CalendarContract.Calendars>;
			}
			/**
			 * Generic columns for use by sync adapters. The specific functions of these columns are private to the sync adapter. Other clients of the API should not attempt to either read or write this column. These columns are editable as part of the Calendars Uri, but can only be read if accessed through any other Uri.
			 */
			export class CalendarSyncColumns implements android.provider.CalendarContract.ICalendarSyncColumns {
				constructor(implementation: android.provider.CalendarContract.ICalendarSyncColumns);
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC1: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC2: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC3: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC4: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC5: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC6: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC7: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC8: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC9: string;
				/**
				 * Generic column for use by sync adapters. Column name. <P>Type: TEXT</P>
				 */
				static CAL_SYNC10: string;
			}
			/**
			 * Columns for Sync information used by Calendars and Events tables. These have specific uses which are expected to be consistent by the app and sync adapter.
			 */
			interface ISyncColumns extends android.provider.CalendarContract.ICalendarSyncColumns {
			}
			export module ISyncColumns {
				/**
				 * The account that was used to sync the entry to the device. If the account_type is not #ACCOUNT_TYPE_LOCAL then the name and type must match an account on the device or the calendar will be deleted. <P>Type: TEXT</P>
				 */
				var ACCOUNT_NAME: string;
				/**
				 * The type of the account that was used to sync the entry to the device. A type of #ACCOUNT_TYPE_LOCAL will keep this event form being deleted if there are no matching accounts on the device. <P>Type: TEXT</P>
				 */
				var ACCOUNT_TYPE: string;
				/**
				 * The unique ID for a row assigned by the sync source. NULL if the row has never been synced. This is used as a reference id for exceptions along with BaseColumns#_ID. <P>Type: TEXT</P>
				 */
				var _SYNC_ID: string;
				/**
				 * Used to indicate that local, unsynced, changes are present. <P>Type: INTEGER (long)</P>
				 */
				var DIRTY: string;
				/**
				 * Whether the row has been deleted but not synced to the server. A deleted row should be ignored. <P> Type: INTEGER (boolean) </P>
				 */
				var DELETED: string;
				/**
				 * If set to 1 this causes events on this calendar to be duplicated with Events#LAST_SYNCED set to 1 whenever the event transitions from non-dirty to dirty. The duplicated event will not be expanded in the instances table and will only show up in sync adapter queries of the events table. It will also be deleted when the originating event has its dirty flag cleared by the sync adapter. <P>Type: INTEGER (boolean)</P>
				 */
				var CAN_PARTIALLY_UPDATE: string;
			}
			/**
			 * Fields and helpers for interacting with Instances. An instance is a single occurrence of an event including time zone specific start and end days and minutes. The instances table is not writable and only provides a way to query event occurrences.
			 */
			export class Instances extends java.lang.Object implements android.provider.IBaseColumns, android.provider.CalendarContract.IEventsColumns, android.provider.CalendarContract.ICalendarColumns {
				/**
				 * The content:// style URL for querying an instance range. The begin and end of the range to query should be added as path segments if this is used directly.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URL for querying an instance range by Julian Day. The start and end day should be added as path segments if this is used directly.
				 */
				static CONTENT_BY_DAY_URI: android.net.Uri;
				/**
				 * The content:// style URL for querying an instance range with a search term. The begin, end, and search string should be appended as path segments if this is used directly.
				 */
				static CONTENT_SEARCH_URI: android.net.Uri;
				/**
				 * The content:// style URL for querying an instance range with a search term. The start day, end day, and search string should be appended as path segments if this is used directly.
				 */
				static CONTENT_SEARCH_BY_DAY_URI: android.net.Uri;
				/**
				 * The beginning time of the instance, in UTC milliseconds. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static BEGIN: string;
				/**
				 * The ending time of the instance, in UTC milliseconds. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				static END: string;
				/**
				 * The _id of the event for this instance. Column name. <P>Type: INTEGER (long, foreign key to the Events table)</P>
				 */
				static EVENT_ID: string;
				/**
				 * The Julian start day of the instance, relative to the local time zone. Column name. <P>Type: INTEGER (int)</P>
				 */
				static START_DAY: string;
				/**
				 * The Julian end day of the instance, relative to the local time zone. Column name. <P>Type: INTEGER (int)</P>
				 */
				static END_DAY: string;
				/**
				 * The start minute of the instance measured from midnight in the local time zone. Column name. <P>Type: INTEGER (int)</P>
				 */
				static START_MINUTE: string;
				/**
				 * The end minute of the instance measured from midnight in the local time zone. Column name. <P>Type: INTEGER (int)</P>
				 */
				static END_MINUTE: string;
				static class: java.lang.Class<android.provider.CalendarContract.Instances>;
				/**
				 * Performs a query to return all visible instances in the given range. This is a blocking function and should not be done on the UI thread. This will cause an expansion of recurring events to fill this time range if they are not already expanded and will slow down for larger time ranges with many recurring events.
				 * @param cr The ContentResolver to use for the query
				 * @param projection The columns to return
				 * @param begin The start of the time range to query in UTC millis since
				 * @param end The end of the time range to query in UTC millis since
				 */
				public static query(cr: android.content.ContentResolver, projection: native.Array<string>, begin: number, end: number): android.database.ICursor;
				/**
				 * Performs a query to return all visible instances in the given range that match the given query. This is a blocking function and should not be done on the UI thread. This will cause an expansion of recurring events to fill this time range if they are not already expanded and will slow down for larger time ranges with many recurring events.
				 * @param cr The ContentResolver to use for the query
				 * @param projection The columns to return
				 * @param begin The start of the time range to query in UTC millis since
				 * @param end The end of the time range to query in UTC millis since
				 * @param searchQuery A string of space separated search terms. Segments
				 */
				public static query(cr: android.content.ContentResolver, projection: native.Array<string>, begin: number, end: number, searchQuery: string): android.database.ICursor;
			}
			interface IExtendedPropertiesColumns {
			}
			export module IExtendedPropertiesColumns {
				/**
				 * The event the extended property belongs to. Column name. <P>Type: INTEGER (foreign key to the Events table)</P>
				 */
				var EVENT_ID: string;
				/**
				 * The name of the extended property. This is a uri of the form {scheme}#{local-name} convention. Column name. <P>Type: TEXT</P>
				 */
				var NAME: string;
				/**
				 * The value of the extended property. Column name. <P>Type: TEXT</P>
				 */
				var VALUE: string;
			}
			interface ICalendarAlertsColumns {
			}
			export module ICalendarAlertsColumns {
				/**
				 * The event that the alert belongs to. Column name. <P>Type: INTEGER (foreign key to the Events table)</P>
				 */
				var EVENT_ID: string;
				/**
				 * The start time of the event, in UTC. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var BEGIN: string;
				/**
				 * The end time of the event, in UTC. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var END: string;
				/**
				 * The alarm time of the event, in UTC. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var ALARM_TIME: string;
				/**
				 * The creation time of this database entry, in UTC. Useful for debugging missed reminders. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var CREATION_TIME: string;
				/**
				 * The time that the alarm broadcast was received by the Calendar app, in UTC. Useful for debugging missed reminders. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var RECEIVED_TIME: string;
				/**
				 * The time that the notification was created by the Calendar app, in UTC. Useful for debugging missed reminders. Column name. <P>Type: INTEGER (long; millis since epoch)</P>
				 */
				var NOTIFY_TIME: string;
				/**
				 * The state of this alert. It starts out as #STATE_SCHEDULED, then when the alarm goes off, it changes to #STATE_FIRED, and then when the user dismisses the alarm it changes to #STATE_DISMISSED. Column name. <P>Type: INTEGER</P>
				 */
				var STATE: string;
				/**
				 * An alert begins in this state when it is first created.
				 */
				var STATE_SCHEDULED: number;
				/**
				 * After a notification for an alert has been created it should be updated to fired.
				 */
				var STATE_FIRED: number;
				/**
				 * Once the user has dismissed the notification the alert's state should be set to dismissed so it is not fired again.
				 */
				var STATE_DISMISSED: number;
				/**
				 * The number of minutes that this alarm precedes the start time. Column name. <P>Type: INTEGER</P>
				 */
				var MINUTES: string;
				/**
				 * The default sort order for this alerts queries
				 */
				var DEFAULT_SORT_ORDER: string;
			}
			export class ExtendedPropertiesColumns implements android.provider.CalendarContract.IExtendedPropertiesColumns {
				constructor(implementation: android.provider.CalendarContract.IExtendedPropertiesColumns);
				/**
				 * The event the extended property belongs to. Column name. <P>Type: INTEGER (foreign key to the Events table)</P>
				 */
				static EVENT_ID: string;
				/**
				 * The name of the extended property. This is a uri of the form {scheme}#{local-name} convention. Column name. <P>Type: TEXT</P>
				 */
				static NAME: string;
				/**
				 * The value of the extended property. Column name. <P>Type: TEXT</P>
				 */
				static VALUE: string;
			}
			export class RemindersColumns implements android.provider.CalendarContract.IRemindersColumns {
				constructor(implementation: android.provider.CalendarContract.IRemindersColumns);
				/**
				 * The event the reminder belongs to. Column name. <P>Type: INTEGER (foreign key to the Events table)</P>
				 */
				static EVENT_ID: string;
				/**
				 * The minutes prior to the event that the alarm should ring. -1 specifies that we should use the default value for the system. Column name. <P>Type: INTEGER</P>
				 */
				static MINUTES: string;
				/**
				 * Passing this as a minutes value will use the default reminder minutes.
				 */
				static MINUTES_DEFAULT: number;
				/**
				 * The alarm method, as set on the server. #METHOD_DEFAULT, #METHOD_ALERT, #METHOD_EMAIL, #METHOD_SMS and #METHOD_ALARM are possible values; the device will only process #METHOD_DEFAULT and #METHOD_ALERT reminders (the other types are simply stored so we can send the same reminder info back to the server when we make changes).
				 */
				static METHOD: string;
				static METHOD_DEFAULT: number;
				static METHOD_ALERT: number;
				static METHOD_EMAIL: number;
				static METHOD_SMS: number;
				static METHOD_ALARM: number;
			}
			/**
			 * Fields for accessing colors available for a given account. Colors are referenced by #COLOR_KEY which must be unique for a given account name/type. These values can only be updated by the sync adapter. Only #COLOR may be updated after the initial insert. In addition, a row can only be deleted once all references to that color have been removed from the Calendars or Events tables.
			 */
			export class Colors extends java.lang.Object implements android.provider.CalendarContract.IColorsColumns {
				/**
				 * The Uri for querying color information
				 */
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.Colors>;
			}
			export class ColorsColumns implements android.provider.SyncStateContract.IColumns, android.provider.CalendarContract.IColorsColumns {
				constructor(implementation: android.provider.CalendarContract.IColorsColumns);
				/**
				 * The type of color, which describes how it should be used. Valid types are #TYPE_CALENDAR and #TYPE_EVENT. Column name. <P> Type: INTEGER (NOT NULL) </P>
				 */
				static COLOR_TYPE: string;
				/**
				 * This indicateds a color that can be used for calendars.
				 */
				static TYPE_CALENDAR: number;
				/**
				 * This indicates a color that can be used for events.
				 */
				static TYPE_EVENT: number;
				/**
				 * The key used to reference this color. This can be any non-empty string, but must be unique for a given #ACCOUNT_TYPE and #ACCOUNT_NAME. Column name. <P> Type: TEXT </P>
				 */
				static COLOR_KEY: string;
				/**
				 * The color as an 8-bit ARGB integer value. Colors should specify alpha as fully opaque (eg 0xFF993322) as the alpha may be ignored or modified for display. It is reccomended that colors be usable with light (near white) text. Apps should not depend on that assumption, however. Column name. <P> Type: INTEGER (NOT NULL) </P>
				 */
				static COLOR: string;
			}
			/**
			 * Columns from the Attendees table that other tables join into themselves.
			 */
			interface IAttendeesColumns {
			}
			export module IAttendeesColumns {
				/**
				 * The id of the event. Column name. <P>Type: INTEGER</P>
				 */
				var EVENT_ID: string;
				/**
				 * The name of the attendee. Column name. <P>Type: STRING</P>
				 */
				var ATTENDEE_NAME: string;
				/**
				 * The email address of the attendee. Column name. <P>Type: STRING</P>
				 */
				var ATTENDEE_EMAIL: string;
				/**
				 * The relationship of the attendee to the user. Column name. <P>Type: INTEGER (one of #RELATIONSHIP_ATTENDEE, ...}.</P>
				 */
				var ATTENDEE_RELATIONSHIP: string;
				var RELATIONSHIP_NONE: number;
				var RELATIONSHIP_ATTENDEE: number;
				var RELATIONSHIP_ORGANIZER: number;
				var RELATIONSHIP_PERFORMER: number;
				var RELATIONSHIP_SPEAKER: number;
				/**
				 * The type of attendee. Column name. <P> Type: Integer (one of #TYPE_NONE, #TYPE_REQUIRED, #TYPE_OPTIONAL, #TYPE_RESOURCE) </P>
				 */
				var ATTENDEE_TYPE: string;
				var TYPE_NONE: number;
				var TYPE_REQUIRED: number;
				var TYPE_OPTIONAL: number;
				/**
				 * This specifies that an attendee is a resource, like a room, a cabbage, or something and not an actual person.
				 */
				var TYPE_RESOURCE: number;
				/**
				 * The attendance status of the attendee. Column name. <P>Type: Integer (one of #ATTENDEE_STATUS_ACCEPTED, ...).</P>
				 */
				var ATTENDEE_STATUS: string;
				var ATTENDEE_STATUS_NONE: number;
				var ATTENDEE_STATUS_ACCEPTED: number;
				var ATTENDEE_STATUS_DECLINED: number;
				var ATTENDEE_STATUS_INVITED: number;
				var ATTENDEE_STATUS_TENTATIVE: number;
				/**
				 * The identity of the attendee as referenced in ContactsContract.CommonDataKinds.Identity#IDENTITY. This is required only if #ATTENDEE_ID_NAMESPACE is present. Column name. <P>Type: STRING</P>
				 */
				var ATTENDEE_IDENTITY: string;
				/**
				 * The identity name space of the attendee as referenced in ContactsContract.CommonDataKinds.Identity#NAMESPACE. This is required only if #ATTENDEE_IDENTITY is present. Column name. <P>Type: STRING</P>
				 */
				var ATTENDEE_ID_NAMESPACE: string;
			}
			/**
			 * Fields and helpers for querying for a list of days that contain events.
			 */
			export class EventDays extends java.lang.Object implements android.provider.CalendarContract.IEventDaysColumns {
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.CalendarContract.EventDays>;
				/**
				 * Retrieves the days with events for the Julian days starting at "startDay" for "numDays". It returns a cursor containing startday and endday representing the max range of days for all events beginning on each startday.This is a blocking function and should not be done on the UI thread.
				 * @param cr the ContentResolver
				 * @param startDay the first Julian day in the range
				 * @param numDays the number of days to load (must be at least 1)
				 * @param projection the columns to return in the cursor
				 */
				public static query(cr: android.content.ContentResolver, startDay: number, numDays: number, projection: native.Array<string>): android.database.ICursor;
			}
			export class CalendarCacheColumns implements android.provider.CalendarContract.ICalendarCacheColumns {
				constructor(implementation: android.provider.CalendarContract.ICalendarCacheColumns);
				/**
				 * The key for the setting. Keys are defined in CalendarCache.
				 */
				static KEY: string;
				/**
				 * The value of the given setting.
				 */
				static VALUE: string;
			}
		}
		/**
		 * These are standard columns for openable URIs. (See android.content.Intent#CATEGORY_OPENABLE.) If possible providers that have openable URIs should support these columns. To find the content type of a URI use android.content.ContentResolver#getType(android.net.Uri) as normal.
		 */
		export class OpenableColumns implements android.provider.IOpenableColumns {
			constructor(implementation: android.provider.IOpenableColumns);
			/**
			 * The human-friendly name of file. If this is not provided then the name should default to the the last segment of the file's URI.
			 */
			static DISPLAY_NAME: string;
			/**
			 * The number of bytes in the file identified by the openable URI. Null if unknown.
			 */
			static SIZE: string;
		}
		/**
		 * This is a utility class providing access to android.content.SearchRecentSuggestionsProvider.
		 */
		export class SearchRecentSuggestions extends java.lang.Object {
			/**
			 * Although provider utility classes are typically static, this one must be constructed because it needs to be initialized using the same values that you provided in your android.content.SearchRecentSuggestionsProvider.
			 * @param context authority This must match the authority that you've declared in your manifest.
			 * @param authority mode You can use mode flags here to determine certain functional aspects of your
			 * @param mode 
			 */
			constructor(context: android.content.Context, authority: string, mode: number);
			/**
			 * This is the database projection that can be used to view saved queries, when configured for one-line operation.
			 */
			static QUERIES_PROJECTION_1LINE: native.Array<string>;
			/**
			 * This is the database projection that can be used to view saved queries, when configured for two-line operation.
			 */
			static QUERIES_PROJECTION_2LINE: native.Array<string>;
			/**
			 * Index into the provided query projections. For use with Cursor.update methods.
			 */
			static QUERIES_PROJECTION_DATE_INDEX: number;
			/**
			 * Index into the provided query projections. For use with Cursor.update methods.
			 */
			static QUERIES_PROJECTION_QUERY_INDEX: number;
			/**
			 * Index into the provided query projections. For use with Cursor.update methods.
			 */
			static QUERIES_PROJECTION_DISPLAY1_INDEX: number;
			/**
			 * Index into the provided query projections. For use with Cursor.update methods.
			 */
			static QUERIES_PROJECTION_DISPLAY2_INDEX: number;
			static class: java.lang.Class<android.provider.SearchRecentSuggestions>;
			/**
			 * Add a query to the recent queries list. Returns immediately, performing the save in the background.
			 * @param queryString The string as typed by the user. This string will be displayed as
			 * @param line2 If you have configured your recent suggestions provider with
			 */
			public saveRecentQuery(queryString: string, line2: string): void;
			waitForSave(): void;
			/**
			 * Completely delete the history. Use this call to implement a "clear history" UI.
			 */
			public clearHistory(): void;
			/**
			 * Reduces the length of the history table, to prevent it from growing too large.
			 * @param cr Convenience copy of the content resolver.
			 * @param maxEntries Max entries to leave in the table. 0 means remove all entries.
			 */
			protected truncateHistory(cr: android.content.ContentResolver, maxEntries: number): void;
		}
		export module SearchRecentSuggestions {
			export class SuggestionColumns extends java.lang.Object implements android.provider.IBaseColumns {
				static DISPLAY1: string;
				static DISPLAY2: string;
				static QUERY: string;
				static DATE: string;
				static class: java.lang.Class<android.provider.SearchRecentSuggestions.SuggestionColumns>;
			}
		}
		/**
		 * The CallLog provider contains information about placed and received calls.
		 */
		export class CallLog extends java.lang.Object {
			constructor();
			static AUTHORITY: string;
			/**
			 * The content:// style URL for this provider
			 */
			static CONTENT_URI: android.net.Uri;
			static class: java.lang.Class<android.provider.CallLog>;
		}
		export module CallLog {
			/**
			 * Contains the recent calls.
			 */
			export class Calls extends java.lang.Object implements android.provider.IBaseColumns {
				constructor();
				/**
				 * The content:// style URL for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URL for filtering this table on phone numbers
				 */
				static CONTENT_FILTER_URI: android.net.Uri;
				/**
				 * Query parameter used to limit the number of call logs returned.
				 */
				static LIMIT_PARAM_KEY: string;
				/**
				 * Query parameter used to specify the starting record to return.
				 */
				static OFFSET_PARAM_KEY: string;
				/**
				 * The default sort order for this table
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * The MIME type of #CONTENT_URI and #CONTENT_FILTER_URI providing a directory of calls.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI sub-directory of a single call.
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The type of the call (incoming, outgoing or missed). <P>Type: INTEGER (int)</P>
				 */
				static TYPE: string;
				/**
				 * Call log type for incoming calls.
				 */
				static INCOMING_TYPE: number;
				/**
				 * Call log type for outgoing calls.
				 */
				static OUTGOING_TYPE: number;
				/**
				 * Call log type for missed calls.
				 */
				static MISSED_TYPE: number;
				/**
				 * The phone number as the user entered it. <P>Type: TEXT</P>
				 */
				static NUMBER: string;
				/**
				 * The date the call occured, in milliseconds since the epoch <P>Type: INTEGER (long)</P>
				 */
				static DATE: string;
				/**
				 * The duration of the call in seconds <P>Type: INTEGER (long)</P>
				 */
				static DURATION: string;
				/**
				 * Whether or not the call has been acknowledged <P>Type: INTEGER (boolean)</P>
				 */
				static NEW: string;
				/**
				 * The cached name associated with the phone number, if it exists. This value is not guaranteed to be current, if the contact information associated with this number has changed. <P>Type: TEXT</P>
				 */
				static CACHED_NAME: string;
				/**
				 * The cached number type (Home, Work, etc) associated with the phone number, if it exists. This value is not guaranteed to be current, if the contact information associated with this number has changed. <P>Type: INTEGER</P>
				 */
				static CACHED_NUMBER_TYPE: string;
				/**
				 * The cached number label, for a custom number type, associated with the phone number, if it exists. This value is not guaranteed to be current, if the contact information associated with this number has changed. <P>Type: TEXT</P>
				 */
				static CACHED_NUMBER_LABEL: string;
				/**
				 * Whether this item has been read or otherwise consumed by the user.
				 */
				static IS_READ: string;
				static class: java.lang.Class<android.provider.CallLog.Calls>;
				/**
				 * Query the call log database for the last dialed number.
				 * @param context Used to get the content resolver.
				 */
				public static getLastOutgoingCall(context: android.content.Context): string;
			}
		}
		/**
		 * Unit test for SettingsProvider.
		 */
		export class SettingsProviderTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.provider.SettingsProviderTest>;
			public testNameValueCache(): void;
			public testRowNameContentUri(): void;
			public testRowNumberContentUri(): void;
			public testParseProviderList(): void;
			public testPerUserSettings(): void;
			public testSettings(): void;
		}
		export class ContactsContract extends java.lang.Object {
			constructor();
			/**
			 * The authority for the contacts provider
			 */
			static AUTHORITY: string;
			/**
			 * A content:// style uri to the authority for the contacts provider
			 */
			static AUTHORITY_URI: android.net.Uri;
			/**
			 * An optional URI parameter for insert, update, or delete queries that allows the caller to specify that it is a sync adapter. The default value is false. If true RawContacts#DIRTY is not automatically set and the "syncToNetwork" parameter is set to false when calling ContentResolver#notifyChange(android.net.Uri, android.database.ContentObserver, boolean). This prevents an unnecessary extra synchronization, see the discussion of the delete operation in RawContacts.
			 */
			static CALLER_IS_SYNCADAPTER: string;
			/**
			 * Query parameter that should be used by the client to access a specific Directory. The parameter value should be the _ID of the corresponding directory, e.g. content://com.android.contacts/data/emails/filter/acme?directory=3
			 */
			static DIRECTORY_PARAM_KEY: string;
			/**
			 * A query parameter that limits the number of results returned. The parameter value should be an integer.
			 */
			static LIMIT_PARAM_KEY: string;
			/**
			 * A query parameter specifing a primary account. This parameter should be used with #PRIMARY_ACCOUNT_TYPE. The contacts provider handling a query may rely on this information to optimize its query results.
			 */
			static PRIMARY_ACCOUNT_NAME: string;
			/**
			 * A query parameter specifing a primary account. This parameter should be used with #PRIMARY_ACCOUNT_NAME. See the doc in #PRIMARY_ACCOUNT_NAME.
			 */
			static PRIMARY_ACCOUNT_TYPE: string;
			static class: java.lang.Class<android.provider.ContactsContract>;
			/**
			 * This method can be used to identify whether the given ID is associated with profile data. It does not necessarily indicate that the ID is tied to valid data, merely that accessing data using this ID will result in profile access checks and will only return data from the profile.
			 * @param id The ID to check.
			 */
			public static isProfileId(id: number): boolean;
		}
		export module ContactsContract {
			interface IRawContactsColumns {
			}
			export module IRawContactsColumns {
				/**
				 * A reference to the ContactsContract.Contacts#_ID that this data belongs to. <P>Type: INTEGER</P>
				 */
				var CONTACT_ID: string;
				/**
				 * The data set within the account that this row belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' data.
				 */
				var DATA_SET: string;
				/**
				 * The aggregation mode for this contact. <P>Type: INTEGER</P>
				 */
				var AGGREGATION_MODE: string;
				/**
				 * The "deleted" flag: "0" by default, "1" if the row has been marked for deletion. When android.content.ContentResolver#delete is called on a raw contact, it is marked for deletion and removed from its aggregate contact. The sync adaptor deletes the raw contact on the server and then calls ContactResolver.delete once more, this time passing the ContactsContract#CALLER_IS_SYNCADAPTER query parameter to finalize the data removal. <P>Type: INTEGER</P>
				 */
				var DELETED: string;
				/**
				 * The "read-only" flag: "0" by default, "1" if the row cannot be modified or deleted except by a sync adapter. See ContactsContract#CALLER_IS_SYNCADAPTER. <P>Type: INTEGER</P>
				 */
				var RAW_CONTACT_IS_READ_ONLY: string;
				/**
				 * Flag that reflects whether this raw contact belongs to the user's personal profile entry.
				 */
				var RAW_CONTACT_IS_USER_PROFILE: string;
			}
			/**
			 * Constants for various styles of capturing the pronunciation of a person's name.
			 */
			interface IPhoneticNameStyle {
			}
			export module IPhoneticNameStyle {
				var UNDEFINED: number;
				/**
				 * Pinyin is a phonetic method of entering Chinese characters. Typically not explicitly shown in UIs, but used for searches and sorting.
				 */
				var PINYIN: number;
				/**
				 * Hiragana and Katakana are two common styles of writing out the pronunciation of a Japanese names.
				 */
				var JAPANESE: number;
				/**
				 * Hangul is the Korean phonetic alphabet.
				 */
				var KOREAN: number;
			}
			/**
			 * Columns of ContactsContract.Contacts that refer to intrinsic properties of the contact, as opposed to the user-specified options found in ContactOptionsColumns.
			 */
			export class ContactsColumns implements android.provider.ContactsContract.IContactsColumns {
				constructor(implementation: android.provider.ContactsContract.IContactsColumns);
				/**
				 * The display name for the contact. <P>Type: TEXT</P>
				 */
				static DISPLAY_NAME: string;
				/**
				 * Reference to the row in the data table holding the photo. A photo can be referred to either by ID (this field) or by URI (see #PHOTO_THUMBNAIL_URI and #PHOTO_URI). If PHOTO_ID is null, consult #PHOTO_URI or #PHOTO_THUMBNAIL_URI, which is a more generic mechanism for referencing the contact photo, especially for contacts returned by non-local directories (see Directory).
				 */
				static PHOTO_ID: string;
				/**
				 * Photo file ID of the full-size photo. If present, this will be used to populate #PHOTO_URI. The ID can also be used with ContactsContract.DisplayPhoto#CONTENT_URI to create a URI to the photo. If this is present, #PHOTO_ID is also guaranteed to be populated.
				 */
				static PHOTO_FILE_ID: string;
				/**
				 * A URI that can be used to retrieve the contact's full-size photo. If PHOTO_FILE_ID is not null, this will be populated with a URI based off ContactsContract.DisplayPhoto#CONTENT_URI. Otherwise, this will be populated with the same value as #PHOTO_THUMBNAIL_URI. A photo can be referred to either by a URI (this field) or by ID (see #PHOTO_ID). If either PHOTO_FILE_ID or PHOTO_ID is not null, PHOTO_URI and PHOTO_THUMBNAIL_URI shall not be null (but not necessarily vice versa). Thus using PHOTO_URI is a more robust method of retrieving contact photos.
				 */
				static PHOTO_URI: string;
				/**
				 * A URI that can be used to retrieve a thumbnail of the contact's photo. A photo can be referred to either by a URI (this field or #PHOTO_URI) or by ID (see #PHOTO_ID). If PHOTO_ID is not null, PHOTO_URI and PHOTO_THUMBNAIL_URI shall not be null (but not necessarily vice versa). If the content provider does not differentiate between full-size photos and thumbnail photos, PHOTO_THUMBNAIL_URI and #PHOTO_URI can contain the same value, but either both shall be null or both not null.
				 */
				static PHOTO_THUMBNAIL_URI: string;
				/**
				 * Flag that reflects the Groups#GROUP_VISIBLE state of any CommonDataKinds.GroupMembership for this contact.
				 */
				static IN_VISIBLE_GROUP: string;
				/**
				 * Flag that reflects whether this contact represents the user's personal profile entry.
				 */
				static IS_USER_PROFILE: string;
				/**
				 * An indicator of whether this contact has at least one phone number. "1" if there is at least one phone number, "0" otherwise. <P>Type: INTEGER</P>
				 */
				static HAS_PHONE_NUMBER: string;
				/**
				 * An opaque value that contains hints on how to find the contact if its row id changed as a result of a sync or aggregation.
				 */
				static LOOKUP_KEY: string;
			}
			/**
			 * Columns of ContactsContract.Contacts that refer to intrinsic properties of the contact, as opposed to the user-specified options found in ContactOptionsColumns.
			 */
			interface IContactsColumns {
			}
			export module IContactsColumns {
				/**
				 * The display name for the contact. <P>Type: TEXT</P>
				 */
				var DISPLAY_NAME: string;
				/**
				 * Reference to the row in the data table holding the photo. A photo can be referred to either by ID (this field) or by URI (see #PHOTO_THUMBNAIL_URI and #PHOTO_URI). If PHOTO_ID is null, consult #PHOTO_URI or #PHOTO_THUMBNAIL_URI, which is a more generic mechanism for referencing the contact photo, especially for contacts returned by non-local directories (see Directory).
				 */
				var PHOTO_ID: string;
				/**
				 * Photo file ID of the full-size photo. If present, this will be used to populate #PHOTO_URI. The ID can also be used with ContactsContract.DisplayPhoto#CONTENT_URI to create a URI to the photo. If this is present, #PHOTO_ID is also guaranteed to be populated.
				 */
				var PHOTO_FILE_ID: string;
				/**
				 * A URI that can be used to retrieve the contact's full-size photo. If PHOTO_FILE_ID is not null, this will be populated with a URI based off ContactsContract.DisplayPhoto#CONTENT_URI. Otherwise, this will be populated with the same value as #PHOTO_THUMBNAIL_URI. A photo can be referred to either by a URI (this field) or by ID (see #PHOTO_ID). If either PHOTO_FILE_ID or PHOTO_ID is not null, PHOTO_URI and PHOTO_THUMBNAIL_URI shall not be null (but not necessarily vice versa). Thus using PHOTO_URI is a more robust method of retrieving contact photos.
				 */
				var PHOTO_URI: string;
				/**
				 * A URI that can be used to retrieve a thumbnail of the contact's photo. A photo can be referred to either by a URI (this field or #PHOTO_URI) or by ID (see #PHOTO_ID). If PHOTO_ID is not null, PHOTO_URI and PHOTO_THUMBNAIL_URI shall not be null (but not necessarily vice versa). If the content provider does not differentiate between full-size photos and thumbnail photos, PHOTO_THUMBNAIL_URI and #PHOTO_URI can contain the same value, but either both shall be null or both not null.
				 */
				var PHOTO_THUMBNAIL_URI: string;
				/**
				 * Flag that reflects the Groups#GROUP_VISIBLE state of any CommonDataKinds.GroupMembership for this contact.
				 */
				var IN_VISIBLE_GROUP: string;
				/**
				 * Flag that reflects whether this contact represents the user's personal profile entry.
				 */
				var IS_USER_PROFILE: string;
				/**
				 * An indicator of whether this contact has at least one phone number. "1" if there is at least one phone number, "0" otherwise. <P>Type: INTEGER</P>
				 */
				var HAS_PHONE_NUMBER: string;
				/**
				 * An opaque value that contains hints on how to find the contact if its row id changed as a result of a sync or aggregation.
				 */
				var LOOKUP_KEY: string;
			}
			/**
			 * Columns in the StreamItemPhotos table.
			 */
			export class StreamItemPhotosColumns implements android.provider.ContactsContract.IStreamItemPhotosColumns {
				constructor(implementation: android.provider.ContactsContract.IStreamItemPhotosColumns);
				/**
				 * A reference to the StreamItems#_ID this photo is associated with. <P>Type: NUMBER</P>
				 */
				static STREAM_ITEM_ID: string;
				/**
				 * An integer to use for sort order for photos in the stream item. If not specified, the StreamItemPhotos#_ID will be used for sorting. <P>Type: NUMBER</P>
				 */
				static SORT_INDEX: string;
				/**
				 * Photo file ID for the photo. See ContactsContract.DisplayPhoto. <P>Type: NUMBER</P>
				 */
				static PHOTO_FILE_ID: string;
				/**
				 * URI for retrieving the photo content, automatically populated. Callers may retrieve the photo content by opening this URI as an asset file. <P>Type: TEXT</P>
				 */
				static PHOTO_URI: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC4: string;
			}
			/**
			 * Columns in the Data table.
			 */
			export class DataColumns implements android.provider.ContactsContract.IDataColumns {
				constructor(implementation: android.provider.ContactsContract.IDataColumns);
				/**
				 * The MIME type of the item represented by this row.
				 */
				static MIMETYPE: string;
				/**
				 * A reference to the RawContacts#_ID that this data belongs to.
				 */
				static RAW_CONTACT_ID: string;
				/**
				 * Whether this is the primary entry of its kind for the raw contact it belongs to. <P>Type: INTEGER (if set, non-0 means true)</P>
				 */
				static IS_PRIMARY: string;
				/**
				 * Whether this is the primary entry of its kind for the aggregate contact it belongs to. Any data record that is "super primary" must also be "primary". <P>Type: INTEGER (if set, non-0 means true)</P>
				 */
				static IS_SUPER_PRIMARY: string;
				/**
				 * The "read-only" flag: "0" by default, "1" if the row cannot be modified or deleted except by a sync adapter. See ContactsContract#CALLER_IS_SYNCADAPTER. <P>Type: INTEGER</P>
				 */
				static IS_READ_ONLY: string;
				/**
				 * The version of this data record. This is a read-only value. The data column is guaranteed to not change without the version going up. This value is monotonically increasing. <P>Type: INTEGER</P>
				 */
				static DATA_VERSION: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA1: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA2: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA3: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA4: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA5: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA6: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA7: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA8: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA9: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA10: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA11: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA12: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA13: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				static DATA14: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific. By convention, this field is used to store BLOBs (binary data).
				 */
				static DATA15: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC4: string;
			}
			/**
			 * Helper class for accessing full-size photos by photo file ID.
			 */
			export class DisplayPhoto extends java.lang.Object {
				/**
				 * The content:// style URI for this class, which allows access to full-size photos, given a key.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * This URI allows the caller to query for the maximum dimensions of a display photo or thumbnail. Requests to this URI can be performed on the UI thread because they are always unblocking.
				 */
				static CONTENT_MAX_DIMENSIONS_URI: android.net.Uri;
				/**
				 * Queries to ContactsContract.DisplayPhoto#CONTENT_MAX_DIMENSIONS_URI will contain this column, populated with the maximum height and width (in pixels) that will be stored for a display photo. Larger photos will be down-sized to fit within a square of this many pixels.
				 */
				static DISPLAY_MAX_DIM: string;
				/**
				 * Queries to ContactsContract.DisplayPhoto#CONTENT_MAX_DIMENSIONS_URI will contain this column, populated with the height and width (in pixels) for photo thumbnails.
				 */
				static THUMBNAIL_MAX_DIM: string;
				static class: java.lang.Class<android.provider.ContactsContract.DisplayPhoto>;
			}
			/**
			 * Columns that appear when each row of a table belongs to a specific account, including sync information that an account may need.
			 */
			export class SyncColumns implements android.provider.ContactsContract.IBaseSyncColumns, android.provider.ContactsContract.ISyncColumns {
				constructor(implementation: android.provider.ContactsContract.ISyncColumns);
				/**
				 * The name of the account instance to which this row belongs, which when paired with #ACCOUNT_TYPE identifies a specific account. <P>Type: TEXT</P>
				 */
				static ACCOUNT_NAME: string;
				/**
				 * The type of account to which this row belongs, which when paired with #ACCOUNT_NAME identifies a specific account. <P>Type: TEXT</P>
				 */
				static ACCOUNT_TYPE: string;
				/**
				 * String that uniquely identifies this row to its source account. <P>Type: TEXT</P>
				 */
				static SOURCE_ID: string;
				/**
				 * Version number that is updated whenever this row or its related data changes. <P>Type: INTEGER</P>
				 */
				static VERSION: string;
				/**
				 * Flag indicating that #VERSION has changed, and this row needs to be synchronized by its owning account. <P>Type: INTEGER (boolean)</P>
				 */
				static DIRTY: string;
			}
			/**
			 * Additional data mixed in with StatusColumns to link back to specific ContactsContract.Data#_ID entries.
			 */
			interface IPresenceColumns {
			}
			export module IPresenceColumns {
				/**
				 * Reference to the Data#_ID entry that owns this presence. <P>Type: INTEGER</P>
				 */
				var DATA_ID: string;
				/**
				 * See CommonDataKinds.Im for a list of defined protocol constants.
				 */
				var PROTOCOL: string;
				/**
				 * Name of the custom protocol. Should be supplied along with the #PROTOCOL value ContactsContract.CommonDataKinds.Im#PROTOCOL_CUSTOM. Should be null or omitted if #PROTOCOL value is not ContactsContract.CommonDataKinds.Im#PROTOCOL_CUSTOM.
				 */
				var CUSTOM_PROTOCOL: string;
				/**
				 * The IM handle the presence item is for. The handle is scoped to #PROTOCOL. <P>Type: TEXT</P>
				 */
				var IM_HANDLE: string;
				/**
				 * The IM account for the local user that the presence data came from. <P>Type: TEXT</P>
				 */
				var IM_ACCOUNT: string;
			}
			/**
			 * A table provided for sync adapters to use for storing private sync state data for the user's personal profile.
			 */
			export class ProfileSyncState extends java.lang.Object implements android.provider.SyncStateContract.IColumns {
				static CONTENT_DIRECTORY: string;
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.ContactsContract.ProfileSyncState>;
				/**
				 *  android.provider.SyncStateContract.Helpers#get
				 */
				public static get(provider: android.content.ContentProviderClient, account: android.accounts.Account): native.Array<number>;
				/**
				 *  android.provider.SyncStateContract.Helpers#get
				 */
				public static getWithUri(provider: android.content.ContentProviderClient, account: android.accounts.Account): android.util.Pair<android.net.Uri, native.Array<number>>;
				/**
				 *  android.provider.SyncStateContract.Helpers#set
				 */
				public static set(provider: android.content.ContentProviderClient, account: android.accounts.Account, data: native.Array<number>): void;
				/**
				 *  android.provider.SyncStateContract.Helpers#newSetOperation
				 */
				public static newSetOperation(account: android.accounts.Account, data: native.Array<number>): android.content.ContentProviderOperation;
			}
			/**
			 * Constants for the raw contacts table, which contains one row of contact information for each person in each synced account. Sync adapters and contact management apps are the primary consumers of this API.
			 */
			export class RawContacts extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IRawContactsColumns, android.provider.ContactsContract.IContactOptionsColumns, android.provider.ContactsContract.IContactNameColumns, android.provider.ContactsContract.ISyncColumns {
				/**
				 * The content:// style URI for this table, which requests a directory of raw contact rows matching the selection criteria.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of the results from #CONTENT_URI when a specific ID value is not provided, and multiple raw contacts may be returned.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of the results when a raw contact ID is appended to #CONTENT_URI, yielding a subdirectory of a single person.
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * Aggregation mode: aggregate immediately after insert or update operation(s) are complete.
				 */
				static AGGREGATION_MODE_DEFAULT: number;
				/**
				 * Aggregation mode: aggregate at the time the raw contact is inserted/updated. Aggregation is synchronous, this historic value is a no-op
				 */
				static AGGREGATION_MODE_IMMEDIATE: number;
				static AGGREGATION_MODE_SUSPENDED: number;
				static AGGREGATION_MODE_DISABLED: number;
				static class: java.lang.Class<android.provider.ContactsContract.RawContacts>;
				/**
				 * Build a android.provider.ContactsContract.Contacts#CONTENT_LOOKUP_URI style Uri for the parent android.provider.ContactsContract.Contacts entry of the given RawContacts entry.
				 */
				public static getContactLookupUri(resolver: android.content.ContentResolver, rawContactUri: android.net.Uri): android.net.Uri;
				/**
				 * TODO: javadoc
				 * @param cursor 
				 */
				public static newEntityIterator(cursor: android.database.ICursor): android.content.IEntityIterator;
			}
			export module RawContacts {
				export class Entity extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IDataColumns {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					/**
					 * The ID of the data row. The value will be null if this raw contact has no data rows. <P>Type: INTEGER</P>
					 */
					static DATA_ID: string;
					static class: java.lang.Class<android.provider.ContactsContract.RawContacts.Entity>;
				}
				export class StreamItems extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IStreamItemsColumns {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					static class: java.lang.Class<android.provider.ContactsContract.RawContacts.StreamItems>;
				}
				export class DisplayPhoto extends java.lang.Object {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					static class: java.lang.Class<android.provider.ContactsContract.RawContacts.DisplayPhoto>;
				}
				export class EntityIteratorImpl extends java.lang.Object {
					constructor(cursor: android.database.ICursor);
					static class: java.lang.Class<android.provider.ContactsContract.RawContacts.EntityIteratorImpl>;
					public getEntityAndIncrementCursor(cursor: android.database.ICursor): android.content.Entity;
				}
				/**
				 * A sub-directory of a single raw contact that contains all of its ContactsContract.Data rows. To access this directory append Data#CONTENT_DIRECTORY to the raw contact URI.
				 */
				export class Data extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IDataColumns {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					static class: java.lang.Class<android.provider.ContactsContract.RawContacts.Data>;
				}
			}
			export class Settings extends java.lang.Object implements android.provider.ContactsContract.ISettingsColumns {
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME-type of #CONTENT_URI providing a directory of settings.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME-type of #CONTENT_URI providing a single setting.
				 */
				static CONTENT_ITEM_TYPE: string;
				static class: java.lang.Class<android.provider.ContactsContract.Settings>;
			}
			/**
			 * Columns in the StreamItemPhotos table.
			 */
			interface IStreamItemPhotosColumns {
			}
			export module IStreamItemPhotosColumns {
				/**
				 * A reference to the StreamItems#_ID this photo is associated with. <P>Type: NUMBER</P>
				 */
				var STREAM_ITEM_ID: string;
				/**
				 * An integer to use for sort order for photos in the stream item. If not specified, the StreamItemPhotos#_ID will be used for sorting. <P>Type: NUMBER</P>
				 */
				var SORT_INDEX: string;
				/**
				 * Photo file ID for the photo. See ContactsContract.DisplayPhoto. <P>Type: NUMBER</P>
				 */
				var PHOTO_FILE_ID: string;
				/**
				 * URI for retrieving the photo content, automatically populated. Callers may retrieve the photo content by opening this URI as an asset file. <P>Type: TEXT</P>
				 */
				var PHOTO_URI: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC4: string;
			}
			/**
			 * Constants for various styles of combining given name, family name etc into a full name. For example, the western tradition follows the pattern 'given name' 'middle name' 'family name' with the alternative pattern being 'family name', 'given name' 'middle name'. The CJK tradition is 'family name' 'middle name' 'given name', with Japanese favoring a space between the names and Chinese omitting the space.
			 */
			export class FullNameStyle implements android.provider.ContactsContract.IFullNameStyle {
				constructor(implementation: android.provider.ContactsContract.IFullNameStyle);
				static UNDEFINED: number;
				static WESTERN: number;
				/**
				 * Used if the name is written in Hanzi/Kanji/Hanja and we could not determine which specific language it belongs to: Chinese, Japanese or Korean.
				 */
				static CJK: number;
				static CHINESE: number;
				static JAPANESE: number;
				static KOREAN: number;
			}
			/**
			 * Generic columns for use by sync adapters. The specific functions of these columns are private to the sync adapter. Other clients of the API should not attempt to either read or write this column.
			 */
			export class BaseSyncColumns implements android.provider.ContactsContract.IBaseSyncColumns {
				constructor(implementation: android.provider.ContactsContract.IBaseSyncColumns);
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC4: string;
			}
			/**
			 * Columns in the Data table.
			 */
			interface IDataColumns {
			}
			export module IDataColumns {
				/**
				 * The MIME type of the item represented by this row.
				 */
				var MIMETYPE: string;
				/**
				 * A reference to the RawContacts#_ID that this data belongs to.
				 */
				var RAW_CONTACT_ID: string;
				/**
				 * Whether this is the primary entry of its kind for the raw contact it belongs to. <P>Type: INTEGER (if set, non-0 means true)</P>
				 */
				var IS_PRIMARY: string;
				/**
				 * Whether this is the primary entry of its kind for the aggregate contact it belongs to. Any data record that is "super primary" must also be "primary". <P>Type: INTEGER (if set, non-0 means true)</P>
				 */
				var IS_SUPER_PRIMARY: string;
				/**
				 * The "read-only" flag: "0" by default, "1" if the row cannot be modified or deleted except by a sync adapter. See ContactsContract#CALLER_IS_SYNCADAPTER. <P>Type: INTEGER</P>
				 */
				var IS_READ_ONLY: string;
				/**
				 * The version of this data record. This is a read-only value. The data column is guaranteed to not change without the version going up. This value is monotonically increasing. <P>Type: INTEGER</P>
				 */
				var DATA_VERSION: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA1: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA2: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA3: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA4: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA5: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA6: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA7: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA8: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA9: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA10: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA11: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA12: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA13: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific
				 */
				var DATA14: string;
				/**
				 * Generic data column, the meaning is #MIMETYPE specific. By convention, this field is used to store BLOBs (binary data).
				 */
				var DATA15: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC4: string;
			}
			/**
			 * Social status update columns.
			 */
			interface IStatusColumns {
			}
			export module IStatusColumns {
				/**
				 * Contact's latest presence level. <P>Type: INTEGER (one of the values below)</P>
				 */
				var PRESENCE: string;
				/**
				 *  use #PRESENCE
				 */
				var PRESENCE_STATUS: string;
				/**
				 * An allowed value of #PRESENCE.
				 */
				var OFFLINE: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				var INVISIBLE: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				var AWAY: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				var IDLE: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				var DO_NOT_DISTURB: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				var AVAILABLE: number;
				/**
				 * Contact latest status update.
				 */
				var STATUS: string;
				/**
				 *  use #STATUS
				 */
				var PRESENCE_CUSTOM_STATUS: string;
				/**
				 * The absolute time in milliseconds when the latest status was inserted/updated.
				 */
				var STATUS_TIMESTAMP: string;
				/**
				 * The package containing resources for this status: label and icon.
				 */
				var STATUS_RES_PACKAGE: string;
				/**
				 * The resource ID of the label describing the source of the status update, e.g. "Google Talk". This resource should be scoped by the #STATUS_RES_PACKAGE.
				 */
				var STATUS_LABEL: string;
				/**
				 * The resource ID of the icon for the source of the status update. This resource should be scoped by the #STATUS_RES_PACKAGE.
				 */
				var STATUS_ICON: string;
				/**
				 * Contact's audio/video chat capability level. <P>Type: INTEGER (one of the values below)</P>
				 */
				var CHAT_CAPABILITY: string;
				/**
				 * An allowed flag of #CHAT_CAPABILITY. Indicates audio-chat capability (microphone and speaker)
				 */
				var CAPABILITY_HAS_VOICE: number;
				/**
				 * An allowed flag of #CHAT_CAPABILITY. Indicates that the contact's device can display a video feed.
				 */
				var CAPABILITY_HAS_VIDEO: number;
				/**
				 * An allowed flag of #CHAT_CAPABILITY. Indicates that the contact's device has a camera that can be used for video chat (e.g. a front-facing camera on a phone).
				 */
				var CAPABILITY_HAS_CAMERA: number;
			}
			export class StreamItemPhotos extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IStreamItemPhotosColumns {
				static PHOTO: string;
				static class: java.lang.Class<android.provider.ContactsContract.StreamItemPhotos>;
			}
			/**
			 * Combines all columns returned by ContactsContract.Data table queries.
			 */
			export class DataColumnsWithJoins implements android.provider.IBaseColumns, android.provider.ContactsContract.IDataColumns, android.provider.ContactsContract.IStatusColumns, android.provider.ContactsContract.IRawContactsColumns, android.provider.ContactsContract.IContactsColumns, android.provider.ContactsContract.IContactNameColumns, android.provider.ContactsContract.IContactOptionsColumns, android.provider.ContactsContract.IContactStatusColumns, android.provider.ContactsContract.IDataColumnsWithJoins {
				constructor(implementation: android.provider.ContactsContract.IDataColumnsWithJoins);
			}
			/**
			 * Contact name and contact name metadata columns in the RawContacts table.
			 */
			interface IContactNameColumns {
			}
			export module IContactNameColumns {
				/**
				 * The kind of data that is used as the display name for the contact, such as structured name or email address. See DisplayNameSources.
				 */
				var DISPLAY_NAME_SOURCE: string;
				var DISPLAY_NAME_PRIMARY: string;
				var DISPLAY_NAME_ALTERNATIVE: string;
				/**
				 * The phonetic alphabet used to represent the #PHONETIC_NAME. See PhoneticNameStyle.
				 */
				var PHONETIC_NAME_STYLE: string;
				var PHONETIC_NAME: string;
				/**
				 * Sort key that takes into account locale-based traditions for sorting names in address books. The default sort key is #DISPLAY_NAME_PRIMARY. For Chinese names the sort key is the name's Pinyin spelling, and for Japanese names it is the Hiragana version of the phonetic name.
				 */
				var SORT_KEY_PRIMARY: string;
				/**
				 * Sort key based on the alternative representation of the full name, #DISPLAY_NAME_ALTERNATIVE. Thus for Western names, it is the one using the "family name first" format.
				 */
				var SORT_KEY_ALTERNATIVE: string;
			}
			export class AggregationExceptions extends java.lang.Object implements android.provider.IBaseColumns {
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of data.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of an aggregation exception
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The type of exception: #TYPE_KEEP_TOGETHER, #TYPE_KEEP_SEPARATE or #TYPE_AUTOMATIC.
				 */
				static TYPE: string;
				/**
				 * Allows the provider to automatically decide whether the specified raw contacts should be included in the same aggregate contact or not.
				 */
				static TYPE_AUTOMATIC: number;
				/**
				 * Makes sure that the specified raw contacts are included in the same aggregate contact.
				 */
				static TYPE_KEEP_TOGETHER: number;
				/**
				 * Makes sure that the specified raw contacts are NOT included in the same aggregate contact.
				 */
				static TYPE_KEEP_SEPARATE: number;
				/**
				 * A reference to the RawContacts#_ID of the raw contact that the rule applies to.
				 */
				static RAW_CONTACT_ID1: string;
				/**
				 * A reference to the other RawContacts#_ID of the raw contact that the rule applies to.
				 */
				static RAW_CONTACT_ID2: string;
				static class: java.lang.Class<android.provider.ContactsContract.AggregationExceptions>;
			}
			export class StreamItems extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IStreamItemsColumns {
				/**
				 * The content:// style URI for this table, which handles social network stream updates for the user's contacts.
				 */
				static CONTENT_URI: android.net.Uri;
				static CONTENT_PHOTO_URI: android.net.Uri;
				/**
				 * This URI allows the caller to query for the maximum number of stream items that will be stored under any single raw contact.
				 */
				static CONTENT_LIMIT_URI: android.net.Uri;
				/**
				 * The MIME type of a directory of stream items.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a single stream item.
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * Queries to ContactsContract.StreamItems#CONTENT_LIMIT_URI will contain this column, with the value indicating the maximum number of stream items that will be stored under any single raw contact.
				 */
				static MAX_ITEMS: string;
				static class: java.lang.Class<android.provider.ContactsContract.StreamItems>;
			}
			export module StreamItems {
				export class StreamItemPhotos extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IStreamItemPhotosColumns {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					/**
					 * The MIME type of a directory of stream item photos.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The MIME type of a single stream item photo.
					 */
					static CONTENT_ITEM_TYPE: string;
					static class: java.lang.Class<android.provider.ContactsContract.StreamItems.StreamItemPhotos>;
				}
			}
			export class RawContactsColumns implements android.provider.ContactsContract.IRawContactsColumns {
				constructor(implementation: android.provider.ContactsContract.IRawContactsColumns);
				/**
				 * A reference to the ContactsContract.Contacts#_ID that this data belongs to. <P>Type: INTEGER</P>
				 */
				static CONTACT_ID: string;
				/**
				 * The data set within the account that this row belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' data.
				 */
				static DATA_SET: string;
				/**
				 * The aggregation mode for this contact. <P>Type: INTEGER</P>
				 */
				static AGGREGATION_MODE: string;
				/**
				 * The "deleted" flag: "0" by default, "1" if the row has been marked for deletion. When android.content.ContentResolver#delete is called on a raw contact, it is marked for deletion and removed from its aggregate contact. The sync adaptor deletes the raw contact on the server and then calls ContactResolver.delete once more, this time passing the ContactsContract#CALLER_IS_SYNCADAPTER query parameter to finalize the data removal. <P>Type: INTEGER</P>
				 */
				static DELETED: string;
				/**
				 * The "read-only" flag: "0" by default, "1" if the row cannot be modified or deleted except by a sync adapter. See ContactsContract#CALLER_IS_SYNCADAPTER. <P>Type: INTEGER</P>
				 */
				static RAW_CONTACT_IS_READ_ONLY: string;
				/**
				 * Flag that reflects whether this raw contact belongs to the user's personal profile entry.
				 */
				static RAW_CONTACT_IS_USER_PROFILE: string;
			}
			/**
			 * Constants for various styles of combining given name, family name etc into a full name. For example, the western tradition follows the pattern 'given name' 'middle name' 'family name' with the alternative pattern being 'family name', 'given name' 'middle name'. The CJK tradition is 'family name' 'middle name' 'given name', with Japanese favoring a space between the names and Chinese omitting the space.
			 */
			interface IFullNameStyle {
			}
			export module IFullNameStyle {
				var UNDEFINED: number;
				var WESTERN: number;
				/**
				 * Used if the name is written in Hanzi/Kanji/Hanja and we could not determine which specific language it belongs to: Chinese, Japanese or Korean.
				 */
				var CJK: number;
				var CHINESE: number;
				var JAPANESE: number;
				var KOREAN: number;
			}
			/**
			 * Social status update columns.
			 */
			export class StatusColumns implements android.provider.ContactsContract.IStatusColumns {
				constructor(implementation: android.provider.ContactsContract.IStatusColumns);
				/**
				 * Contact's latest presence level. <P>Type: INTEGER (one of the values below)</P>
				 */
				static PRESENCE: string;
				/**
				 *  use #PRESENCE
				 */
				static PRESENCE_STATUS: string;
				/**
				 * An allowed value of #PRESENCE.
				 */
				static OFFLINE: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				static INVISIBLE: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				static AWAY: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				static IDLE: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				static DO_NOT_DISTURB: number;
				/**
				 * An allowed value of #PRESENCE.
				 */
				static AVAILABLE: number;
				/**
				 * Contact latest status update.
				 */
				static STATUS: string;
				/**
				 *  use #STATUS
				 */
				static PRESENCE_CUSTOM_STATUS: string;
				/**
				 * The absolute time in milliseconds when the latest status was inserted/updated.
				 */
				static STATUS_TIMESTAMP: string;
				/**
				 * The package containing resources for this status: label and icon.
				 */
				static STATUS_RES_PACKAGE: string;
				/**
				 * The resource ID of the label describing the source of the status update, e.g. "Google Talk". This resource should be scoped by the #STATUS_RES_PACKAGE.
				 */
				static STATUS_LABEL: string;
				/**
				 * The resource ID of the icon for the source of the status update. This resource should be scoped by the #STATUS_RES_PACKAGE.
				 */
				static STATUS_ICON: string;
				/**
				 * Contact's audio/video chat capability level. <P>Type: INTEGER (one of the values below)</P>
				 */
				static CHAT_CAPABILITY: string;
				/**
				 * An allowed flag of #CHAT_CAPABILITY. Indicates audio-chat capability (microphone and speaker)
				 */
				static CAPABILITY_HAS_VOICE: number;
				/**
				 * An allowed flag of #CHAT_CAPABILITY. Indicates that the contact's device can display a video feed.
				 */
				static CAPABILITY_HAS_VIDEO: number;
				/**
				 * An allowed flag of #CHAT_CAPABILITY. Indicates that the contact's device has a camera that can be used for video chat (e.g. a front-facing camera on a phone).
				 */
				static CAPABILITY_HAS_CAMERA: number;
			}
			/**
			 * Combines all columns returned by ContactsContract.Data table queries.
			 */
			interface IDataColumnsWithJoins extends android.provider.IBaseColumns, android.provider.ContactsContract.IDataColumns, android.provider.ContactsContract.IStatusColumns, android.provider.ContactsContract.IRawContactsColumns, android.provider.ContactsContract.IContactsColumns, android.provider.ContactsContract.IContactNameColumns, android.provider.ContactsContract.IContactOptionsColumns, android.provider.ContactsContract.IContactStatusColumns {
			}
			/**
			 * Contact name and contact name metadata columns in the RawContacts table.
			 */
			export class ContactNameColumns implements android.provider.ContactsContract.IContactNameColumns {
				constructor(implementation: android.provider.ContactsContract.IContactNameColumns);
				/**
				 * The kind of data that is used as the display name for the contact, such as structured name or email address. See DisplayNameSources.
				 */
				static DISPLAY_NAME_SOURCE: string;
				static DISPLAY_NAME_PRIMARY: string;
				static DISPLAY_NAME_ALTERNATIVE: string;
				/**
				 * The phonetic alphabet used to represent the #PHONETIC_NAME. See PhoneticNameStyle.
				 */
				static PHONETIC_NAME_STYLE: string;
				static PHONETIC_NAME: string;
				/**
				 * Sort key that takes into account locale-based traditions for sorting names in address books. The default sort key is #DISPLAY_NAME_PRIMARY. For Chinese names the sort key is the name's Pinyin spelling, and for Japanese names it is the Hiragana version of the phonetic name.
				 */
				static SORT_KEY_PRIMARY: string;
				/**
				 * Sort key based on the alternative representation of the full name, #DISPLAY_NAME_ALTERNATIVE. Thus for Western names, it is the one using the "family name first" format.
				 */
				static SORT_KEY_ALTERNATIVE: string;
			}
			/**
			 * Columns in the StreamItems table.
			 */
			export class StreamItemsColumns implements android.provider.ContactsContract.IStreamItemsColumns {
				constructor(implementation: android.provider.ContactsContract.IStreamItemsColumns);
				/**
				 * A reference to the android.provider.ContactsContract.Contacts#_ID that this stream item belongs to.
				 */
				static CONTACT_ID: string;
				/**
				 * A reference to the android.provider.ContactsContract.Contacts#LOOKUP_KEY that this stream item belongs to.
				 */
				static CONTACT_LOOKUP_KEY: string;
				/**
				 * A reference to the RawContacts#_ID that this stream item belongs to.
				 */
				static RAW_CONTACT_ID: string;
				/**
				 * The package name to use when creating Resources objects for this stream item. This value is only designed for use when building user interfaces, and should not be used to infer the owner. <P>Type: TEXT</P>
				 */
				static RES_PACKAGE: string;
				/**
				 * The account type to which the raw_contact of this item is associated. See RawContacts#ACCOUNT_TYPE
				 */
				static ACCOUNT_TYPE: string;
				/**
				 * The account name to which the raw_contact of this item is associated. See RawContacts#ACCOUNT_NAME
				 */
				static ACCOUNT_NAME: string;
				/**
				 * The data set within the account that the raw_contact of this row belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' data. RawContacts#DATA_SET
				 */
				static DATA_SET: string;
				/**
				 * The source_id of the raw_contact that this row belongs to. RawContacts#SOURCE_ID
				 */
				static RAW_CONTACT_SOURCE_ID: string;
				/**
				 * The resource name of the icon for the source of the stream item. This resource should be scoped by the #RES_PACKAGE. As this can only reference drawables, the " prefix must be omitted. <P>Type: TEXT</P>
				 */
				static RES_ICON: string;
				/**
				 * The resource name of the label describing the source of the status update, e.g. "Google Talk". This resource should be scoped by the #RES_PACKAGE. As this can only reference strings, the " prefix must be omitted.
				 */
				static RES_LABEL: string;
				/**
				 * <P> The main textual contents of the item. Typically this is content that was posted by the source of this stream item, but it can also be a textual representation of an action (e.g. 0x5500x336360x415027Checked in at Joe's0x5500x336360x415027). This text is displayed to the user and allows formatting and embedded resource images via HTML (as parseable via android.text.Html#fromHtml). </P> <P> Long content may be truncated and/or ellipsized - the exact behavior is unspecified, but it should not break tags. </P> <P>Type: TEXT</P>
				 */
				static TEXT: string;
				/**
				 * The absolute time (milliseconds since epoch) when this stream item was inserted/updated. <P>Type: NUMBER</P>
				 */
				static TIMESTAMP: string;
				/**
				 * <P> Summary information about the stream item, for example to indicate how many people have reshared it, how many have liked it, how many thumbs up and/or thumbs down it has, what the original source was, etc. </P> <P> This text is displayed to the user and allows simple formatting via HTML, in the same manner as #TEXT allows. </P> <P> Long content may be truncated and/or ellipsized - the exact behavior is unspecified, but it should not break tags. </P> <P>Type: TEXT</P>
				 */
				static COMMENTS: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				static SYNC4: string;
			}
			/**
			 *  PhoneLookup
			 */
			interface IPhoneLookupColumns {
			}
			export module IPhoneLookupColumns {
				/**
				 * The phone number as the user entered it. <P>Type: TEXT</P>
				 */
				var NUMBER: string;
				/**
				 * The type of phone number, for example Home or Work. <P>Type: INTEGER</P>
				 */
				var TYPE: string;
				/**
				 * The user defined label for the phone number. <P>Type: TEXT</P>
				 */
				var LABEL: string;
				/**
				 * The phone number's E164 representation. <P>Type: TEXT</P>
				 */
				var NORMALIZED_NUMBER: string;
			}
			/**
			 * Constants for various styles of capturing the pronunciation of a person's name.
			 */
			export class PhoneticNameStyle implements android.provider.ContactsContract.IPhoneticNameStyle {
				constructor(implementation: android.provider.ContactsContract.IPhoneticNameStyle);
				static UNDEFINED: number;
				/**
				 * Pinyin is a phonetic method of entering Chinese characters. Typically not explicitly shown in UIs, but used for searches and sorting.
				 */
				static PINYIN: number;
				/**
				 * Hiragana and Katakana are two common styles of writing out the pronunciation of a Japanese names.
				 */
				static JAPANESE: number;
				/**
				 * Hangul is the Korean phonetic alphabet.
				 */
				static KOREAN: number;
			}
			/**
			 *  Contacts
			 */
			export class ContactStatusColumns implements android.provider.ContactsContract.IContactStatusColumns {
				constructor(implementation: android.provider.ContactsContract.IContactStatusColumns);
				/**
				 * Contact presence status. See StatusUpdates for individual status definitions.
				 */
				static CONTACT_PRESENCE: string;
				/**
				 * Contact Chat Capabilities. See StatusUpdates for individual definitions.
				 */
				static CONTACT_CHAT_CAPABILITY: string;
				/**
				 * Contact's latest status update.
				 */
				static CONTACT_STATUS: string;
				/**
				 * The absolute time in milliseconds when the latest status was inserted/updated.
				 */
				static CONTACT_STATUS_TIMESTAMP: string;
				/**
				 * The package containing resources for this status: label and icon.
				 */
				static CONTACT_STATUS_RES_PACKAGE: string;
				/**
				 * The resource ID of the label describing the source of contact status, e.g. "Google Talk". This resource is scoped by the #CONTACT_STATUS_RES_PACKAGE.
				 */
				static CONTACT_STATUS_LABEL: string;
				/**
				 * The resource ID of the icon for the source of contact status. This resource is scoped by the #CONTACT_STATUS_RES_PACKAGE.
				 */
				static CONTACT_STATUS_ICON: string;
			}
			/**
			 *  Settings
			 */
			interface ISettingsColumns {
			}
			export module ISettingsColumns {
				/**
				 * The name of the account instance to which this row belongs. <P>Type: TEXT</P>
				 */
				var ACCOUNT_NAME: string;
				/**
				 * The type of account to which this row belongs, which when paired with #ACCOUNT_NAME identifies a specific account. <P>Type: TEXT</P>
				 */
				var ACCOUNT_TYPE: string;
				/**
				 * The data set within the account that this row belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' data.
				 */
				var DATA_SET: string;
				/**
				 * Depending on the mode defined by the sync-adapter, this flag controls the top-level sync behavior for this data source.
				 */
				var SHOULD_SYNC: string;
				/**
				 * Flag indicating if contacts without any CommonDataKinds.GroupMembership entries should be visible in any user interface.
				 */
				var UNGROUPED_VISIBLE: string;
				/**
				 * Read-only flag indicating if this #SHOULD_SYNC or any Groups#SHOULD_SYNC under this account have been marked as unsynced.
				 */
				var ANY_UNSYNCED: string;
				/**
				 * Read-only count of Contacts from a specific source that have no CommonDataKinds.GroupMembership entries.
				 */
				var UNGROUPED_COUNT: string;
				/**
				 * Read-only count of Contacts from a specific source that have no CommonDataKinds.GroupMembership entries, and also have phone numbers.
				 */
				var UNGROUPED_WITH_PHONES: string;
			}
			/**
			 * Helper methods to display QuickContact dialogs that allow users to pivot on a specific Contacts entry.
			 */
			export class QuickContact extends java.lang.Object {
				constructor();
				/**
				 * Small QuickContact mode, usually presented with minimal actions.
				 */
				static MODE_SMALL: number;
				/**
				 * Medium QuickContact mode, includes actions and light summary describing the Contacts entry being shown. This may include social status and presence details.
				 */
				static MODE_MEDIUM: number;
				/**
				 * Large QuickContact mode, includes actions and larger, card-like summary of the Contacts entry being shown. This may include detailed information, such as a photo.
				 */
				static MODE_LARGE: number;
				static class: java.lang.Class<android.provider.ContactsContract.QuickContact>;
				/**
				 * Trigger a dialog that lists the various methods of interacting with the requested Contacts entry. This may be based on available ContactsContract.Data rows under that contact, and may also include social status and presence details.
				 * @param context The parent {@link Context} that may be used as the
				 * @param target Specific {@link View} from your layout that this dialog
				 * @param lookupUri A {@link ContactsContract.Contacts#CONTENT_LOOKUP_URI} style
				 * @param mode Any of {@link #MODE_SMALL}, {@link #MODE_MEDIUM}, or
				 * @param excludeMimes Optional list of {@link Data#MIMETYPE} MIME-types
				 */
				public static showQuickContact(context: android.content.Context, target: android.view.View, lookupUri: android.net.Uri, mode: number, excludeMimes: native.Array<string>): void;
				/**
				 * Trigger a dialog that lists the various methods of interacting with the requested Contacts entry. This may be based on available ContactsContract.Data rows under that contact, and may also include social status and presence details.
				 * @param context The parent {@link Context} that may be used as the
				 * @param target Specific {@link Rect} that this dialog should be
				 * @param lookupUri A
				 * @param mode Any of {@link #MODE_SMALL}, {@link #MODE_MEDIUM}, or
				 * @param excludeMimes Optional list of {@link Data#MIMETYPE} MIME-types
				 */
				public static showQuickContact(context: android.content.Context, target: android.graphics.Rect, lookupUri: android.net.Uri, mode: number, excludeMimes: native.Array<string>): void;
			}
			export class Profile extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IContactsColumns, android.provider.ContactsContract.IContactOptionsColumns, android.provider.ContactsContract.IContactNameColumns, android.provider.ContactsContract.IContactStatusColumns {
				/**
				 * The content:// style URI for this table, which requests the contact entry representing the user's personal profile data.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * Uri for referencing the user's profile Contacts entry, Provides OpenableColumns columns when queried, or returns the user's profile contact formatted as a vCard when opened through ContentResolver#openAssetFileDescriptor(Uri, String).
				 */
				static CONTENT_VCARD_URI: android.net.Uri;
				/**
				 * Uri for referencing the raw contacts that make up the user's profile Contacts entry. An individual raw contact entry within the profile can be addressed by appending the raw contact ID. The entities or data within that specific raw contact can be requested by appending the entity or data path as well.
				 */
				static CONTENT_RAW_CONTACTS_URI: android.net.Uri;
				/**
				 * The minimum ID for any entity that belongs to the profile. This essentially defines an ID-space in which profile data is stored, and is used by the provider to determine whether a request via a non-profile-specific URI should be directed to the profile data rather than general contacts data, along with all the special permission checks that entails.
				 */
				static MIN_ID: number;
				static class: java.lang.Class<android.provider.ContactsContract.Profile>;
			}
			export class StatusUpdates extends java.lang.Object implements android.provider.ContactsContract.IStatusColumns, android.provider.ContactsContract.IPresenceColumns {
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URI for this table, specific to the user's profile.
				 */
				static PROFILE_CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of status update details.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single status update detail.
				 */
				static CONTENT_ITEM_TYPE: string;
				static class: java.lang.Class<android.provider.ContactsContract.StatusUpdates>;
				/**
				 * Gets the resource ID for the proper presence icon.
				 * @param status the status to get the icon for
				 */
				public static getPresenceIconResourceId(status: number): number;
				/**
				 * Returns the precedence of the status code the higher number being the higher precedence.
				 * @param status The status code.
				 */
				public static getPresencePrecedence(status: number): number;
			}
			export class DataUsageFeedback extends java.lang.Object {
				constructor();
				/**
				 * The content:// style URI for sending usage feedback. Must be used with ContentResolver#update(Uri, ContentValues, String, String[]).
				 */
				static FEEDBACK_URI: android.net.Uri;
				/**
				 * The content:// style URI for deleting all usage information. Must be used with ContentResolver#delete(Uri, String, String[]). The where and selectionArgs parameters are ignored.
				 */
				static DELETE_USAGE_URI: android.net.Uri;
				static USAGE_TYPE: string;
				static USAGE_TYPE_CALL: string;
				static USAGE_TYPE_LONG_TEXT: string;
				static USAGE_TYPE_SHORT_TEXT: string;
				static class: java.lang.Class<android.provider.ContactsContract.DataUsageFeedback>;
			}
			/**
			 *  Groups
			 */
			export class GroupsColumns implements android.provider.ContactsContract.IGroupsColumns {
				constructor(implementation: android.provider.ContactsContract.IGroupsColumns);
				/**
				 * The data set within the account that this group belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' group data.
				 */
				static DATA_SET: string;
				/**
				 * The display title of this group.
				 */
				static TITLE: string;
				/**
				 * Notes about the group.
				 */
				static NOTES: string;
				/**
				 * The ID of this group if it is a System Group, i.e. a group that has a special meaning to the sync adapter, null otherwise. <P>Type: TEXT</P>
				 */
				static SYSTEM_ID: string;
				/**
				 * The total number of Contacts that have CommonDataKinds.GroupMembership in this group. Read-only value that is only present when querying Groups#CONTENT_SUMMARY_URI.
				 */
				static SUMMARY_COUNT: string;
				/**
				 * The total number of Contacts that have both CommonDataKinds.GroupMembership in this group, and also have phone numbers. Read-only value that is only present when querying Groups#CONTENT_SUMMARY_URI.
				 */
				static SUMMARY_WITH_PHONES: string;
				/**
				 * Flag indicating if the contacts belonging to this group should be visible in any user interface.
				 */
				static GROUP_VISIBLE: string;
				/**
				 * The "deleted" flag: "0" by default, "1" if the row has been marked for deletion. When android.content.ContentResolver#delete is called on a group, it is marked for deletion. The sync adaptor deletes the group on the server and then calls ContactResolver.delete once more, this time setting the the ContactsContract#CALLER_IS_SYNCADAPTER query parameter to finalize the data removal. <P>Type: INTEGER</P>
				 */
				static DELETED: string;
				/**
				 * Whether this group should be synced if the SYNC_EVERYTHING settings is false for this group's account.
				 */
				static SHOULD_SYNC: string;
				/**
				 * Any newly created contacts will automatically be added to groups that have this flag set to true.
				 */
				static AUTO_ADD: string;
				/**
				 * When a contacts is marked as a favorites it will be automatically added to the groups that have this flag set, and when it is removed from favorites it will be removed from these groups.
				 */
				static FAVORITES: string;
				/**
				 * The "read-only" flag: "0" by default, "1" if the row cannot be modified or deleted except by a sync adapter. See ContactsContract#CALLER_IS_SYNCADAPTER. <P>Type: INTEGER</P>
				 */
				static GROUP_IS_READ_ONLY: string;
			}
			/**
			 * Types of data used to produce the display name for a contact. In the order of increasing priority: #EMAIL, #PHONE, #ORGANIZATION, #NICKNAME, #STRUCTURED_NAME.
			 */
			interface IDisplayNameSources {
			}
			export module IDisplayNameSources {
				var UNDEFINED: number;
				var EMAIL: number;
				var PHONE: number;
				var ORGANIZATION: number;
				var NICKNAME: number;
				var STRUCTURED_NAME: number;
			}
			/**
			 *  PhoneLookup
			 */
			export class PhoneLookupColumns implements android.provider.ContactsContract.IPhoneLookupColumns {
				constructor(implementation: android.provider.ContactsContract.IPhoneLookupColumns);
				/**
				 * The phone number as the user entered it. <P>Type: TEXT</P>
				 */
				static NUMBER: string;
				/**
				 * The type of phone number, for example Home or Work. <P>Type: INTEGER</P>
				 */
				static TYPE: string;
				/**
				 * The user defined label for the phone number. <P>Type: TEXT</P>
				 */
				static LABEL: string;
				/**
				 * The phone number's E164 representation. <P>Type: TEXT</P>
				 */
				static NORMALIZED_NUMBER: string;
			}
			/**
			 * Columns in the StreamItems table.
			 */
			interface IStreamItemsColumns {
			}
			export module IStreamItemsColumns {
				/**
				 * A reference to the android.provider.ContactsContract.Contacts#_ID that this stream item belongs to.
				 */
				var CONTACT_ID: string;
				/**
				 * A reference to the android.provider.ContactsContract.Contacts#LOOKUP_KEY that this stream item belongs to.
				 */
				var CONTACT_LOOKUP_KEY: string;
				/**
				 * A reference to the RawContacts#_ID that this stream item belongs to.
				 */
				var RAW_CONTACT_ID: string;
				/**
				 * The package name to use when creating Resources objects for this stream item. This value is only designed for use when building user interfaces, and should not be used to infer the owner. <P>Type: TEXT</P>
				 */
				var RES_PACKAGE: string;
				/**
				 * The account type to which the raw_contact of this item is associated. See RawContacts#ACCOUNT_TYPE
				 */
				var ACCOUNT_TYPE: string;
				/**
				 * The account name to which the raw_contact of this item is associated. See RawContacts#ACCOUNT_NAME
				 */
				var ACCOUNT_NAME: string;
				/**
				 * The data set within the account that the raw_contact of this row belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' data. RawContacts#DATA_SET
				 */
				var DATA_SET: string;
				/**
				 * The source_id of the raw_contact that this row belongs to. RawContacts#SOURCE_ID
				 */
				var RAW_CONTACT_SOURCE_ID: string;
				/**
				 * The resource name of the icon for the source of the stream item. This resource should be scoped by the #RES_PACKAGE. As this can only reference drawables, the " prefix must be omitted. <P>Type: TEXT</P>
				 */
				var RES_ICON: string;
				/**
				 * The resource name of the label describing the source of the status update, e.g. "Google Talk". This resource should be scoped by the #RES_PACKAGE. As this can only reference strings, the " prefix must be omitted.
				 */
				var RES_LABEL: string;
				/**
				 * <P> The main textual contents of the item. Typically this is content that was posted by the source of this stream item, but it can also be a textual representation of an action (e.g. 0x5500x336360x415027Checked in at Joe's0x5500x336360x415027). This text is displayed to the user and allows formatting and embedded resource images via HTML (as parseable via android.text.Html#fromHtml). </P> <P> Long content may be truncated and/or ellipsized - the exact behavior is unspecified, but it should not break tags. </P> <P>Type: TEXT</P>
				 */
				var TEXT: string;
				/**
				 * The absolute time (milliseconds since epoch) when this stream item was inserted/updated. <P>Type: NUMBER</P>
				 */
				var TIMESTAMP: string;
				/**
				 * <P> Summary information about the stream item, for example to indicate how many people have reshared it, how many have liked it, how many thumbs up and/or thumbs down it has, what the original source was, etc. </P> <P> This text is displayed to the user and allows simple formatting via HTML, in the same manner as #TEXT allows. </P> <P> Long content may be truncated and/or ellipsized - the exact behavior is unspecified, but it should not break tags. </P> <P>Type: TEXT</P>
				 */
				var COMMENTS: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC4: string;
			}
			/**
			 * A table provided for sync adapters to use for storing private sync state data for contacts.
			 */
			export class SyncState extends java.lang.Object implements android.provider.SyncStateContract.IColumns {
				static CONTENT_DIRECTORY: string;
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.ContactsContract.SyncState>;
				/**
				 *  android.provider.SyncStateContract.Helpers#get
				 */
				public static get(provider: android.content.ContentProviderClient, account: android.accounts.Account): native.Array<number>;
				/**
				 *  android.provider.SyncStateContract.Helpers#get
				 */
				public static getWithUri(provider: android.content.ContentProviderClient, account: android.accounts.Account): android.util.Pair<android.net.Uri, native.Array<number>>;
				/**
				 *  android.provider.SyncStateContract.Helpers#set
				 */
				public static set(provider: android.content.ContentProviderClient, account: android.accounts.Account, data: native.Array<number>): void;
				/**
				 *  android.provider.SyncStateContract.Helpers#newSetOperation
				 */
				public static newSetOperation(account: android.accounts.Account, data: native.Array<number>): android.content.ContentProviderOperation;
			}
			/**
			 * Constants for the groups table. Only per-account groups are supported. <h2>Columns</h2> <table class="jd-sumtable"> <tr> <th colspan='4'>Groups</th> </tr> <tr> <td>long</td> <td>#_ID</td> <td>read-only</td> <td>Row ID. Sync adapter should try to preserve row IDs during updates. In other words, it would be a really bad idea to delete and reinsert a group. A sync adapter should always do an update instead.</td> </tr> # <tr> <td>String</td> <td>#DATA_SET</td> <td>read/write-once</td> <td>
			 */
			export class Groups extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IGroupsColumns, android.provider.ContactsContract.ISyncColumns {
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URI for this table joined with details data from ContactsContract.Data.
				 */
				static CONTENT_SUMMARY_URI: android.net.Uri;
				/**
				 * The MIME type of a directory of groups.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a single group.
				 */
				static CONTENT_ITEM_TYPE: string;
				static class: java.lang.Class<android.provider.ContactsContract.Groups>;
				public static newEntityIterator(cursor: android.database.ICursor): android.content.IEntityIterator;
			}
			export module Groups {
				export class EntityIteratorImpl extends java.lang.Object {
					constructor(cursor: android.database.ICursor);
					static class: java.lang.Class<android.provider.ContactsContract.Groups.EntityIteratorImpl>;
					public getEntityAndIncrementCursor(cursor: android.database.ICursor): android.content.Entity;
				}
			}
			/**
			 *  This old name was never meant to be made public. Do not use.
			 */
			export class Presence extends android.provider.ContactsContract.StatusUpdates {
				constructor();
				static class: java.lang.Class<android.provider.ContactsContract.Presence>;
			}
			/**
			 * Contains helper classes used to create or manage android.content.Intent Intents that involve contacts.
			 */
			export class Intents extends java.lang.Object {
				constructor();
				/**
				 * This is the intent that is fired when a search suggestion is clicked on.
				 */
				static SEARCH_SUGGESTION_CLICKED: string;
				/**
				 * This is the intent that is fired when a search suggestion for dialing a number is clicked on.
				 */
				static SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED: string;
				/**
				 * This is the intent that is fired when a search suggestion for creating a contact is clicked on.
				 */
				static SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED: string;
				/**
				 * Starts an Activity that lets the user pick a contact to attach an image to. After picking the contact it launches the image cropper in face detection mode.
				 */
				static ATTACH_IMAGE: string;
				/**
				 * This is the intent that is fired when the user clicks the "invite to the network" button on a contact. Only sent to an activity which is explicitly registered by a contact provider which supports the "invite to the network" feature.
				 */
				static INVITE_CONTACT: string;
				/**
				 * Takes as input a data URI with a mailto: or tel: scheme. If a single contact exists with the given data it will be shown. If no contact exists, a dialog will ask the user if they want to create a new contact with the provided details filled in. If multiple contacts share the data the user will be prompted to pick which contact they want to view.
				 */
				static SHOW_OR_CREATE_CONTACT: string;
				/**
				 * Used with #SHOW_OR_CREATE_CONTACT to force creating a new contact if no matching contact found. Otherwise, default behavior is to prompt user with dialog before creating.
				 */
				static EXTRA_FORCE_CREATE: string;
				/**
				 * Used with #SHOW_OR_CREATE_CONTACT to specify an exact description to be shown when prompting user about creating a new contact.
				 */
				static EXTRA_CREATE_DESCRIPTION: string;
				static class: java.lang.Class<android.provider.ContactsContract.Intents>;
			}
			export module Intents {
				/**
				 * Convenience class that contains string constants used to create contact android.content.Intent Intents.
				 */
				export class Insert extends java.lang.Object {
					constructor();
					/**
					 * The action code to use when adding a contact
					 */
					static ACTION: string;
					/**
					 * If present, forces a bypass of quick insert mode.
					 */
					static FULL_MODE: string;
					/**
					 * The extra field for the contact name. <P>Type: String</P>
					 */
					static NAME: string;
					/**
					 * The extra field for the contact phonetic name. <P>Type: String</P>
					 */
					static PHONETIC_NAME: string;
					/**
					 * The extra field for the contact company. <P>Type: String</P>
					 */
					static COMPANY: string;
					/**
					 * The extra field for the contact job title. <P>Type: String</P>
					 */
					static JOB_TITLE: string;
					/**
					 * The extra field for the contact notes. <P>Type: String</P>
					 */
					static NOTES: string;
					/**
					 * The extra field for the contact phone number. <P>Type: String</P>
					 */
					static PHONE: string;
					/**
					 * The extra field for the contact phone number type. <P>Type: Either an integer value from CommonDataKinds.Phone, or a string specifying a custom label.</P>
					 */
					static PHONE_TYPE: string;
					/**
					 * The extra field for the phone isprimary flag. <P>Type: boolean</P>
					 */
					static PHONE_ISPRIMARY: string;
					/**
					 * The extra field for an optional second contact phone number. <P>Type: String</P>
					 */
					static SECONDARY_PHONE: string;
					/**
					 * The extra field for an optional second contact phone number type. <P>Type: Either an integer value from CommonDataKinds.Phone, or a string specifying a custom label.</P>
					 */
					static SECONDARY_PHONE_TYPE: string;
					/**
					 * The extra field for an optional third contact phone number. <P>Type: String</P>
					 */
					static TERTIARY_PHONE: string;
					/**
					 * The extra field for an optional third contact phone number type. <P>Type: Either an integer value from CommonDataKinds.Phone, or a string specifying a custom label.</P>
					 */
					static TERTIARY_PHONE_TYPE: string;
					/**
					 * The extra field for the contact email address. <P>Type: String</P>
					 */
					static EMAIL: string;
					/**
					 * The extra field for the contact email type. <P>Type: Either an integer value from CommonDataKinds.Email or a string specifying a custom label.</P>
					 */
					static EMAIL_TYPE: string;
					/**
					 * The extra field for the email isprimary flag. <P>Type: boolean</P>
					 */
					static EMAIL_ISPRIMARY: string;
					/**
					 * The extra field for an optional second contact email address. <P>Type: String</P>
					 */
					static SECONDARY_EMAIL: string;
					/**
					 * The extra field for an optional second contact email type. <P>Type: Either an integer value from CommonDataKinds.Email or a string specifying a custom label.</P>
					 */
					static SECONDARY_EMAIL_TYPE: string;
					/**
					 * The extra field for an optional third contact email address. <P>Type: String</P>
					 */
					static TERTIARY_EMAIL: string;
					/**
					 * The extra field for an optional third contact email type. <P>Type: Either an integer value from CommonDataKinds.Email or a string specifying a custom label.</P>
					 */
					static TERTIARY_EMAIL_TYPE: string;
					/**
					 * The extra field for the contact postal address. <P>Type: String</P>
					 */
					static POSTAL: string;
					/**
					 * The extra field for the contact postal address type. <P>Type: Either an integer value from CommonDataKinds.StructuredPostal or a string specifying a custom label.</P>
					 */
					static POSTAL_TYPE: string;
					/**
					 * The extra field for the postal isprimary flag. <P>Type: boolean</P>
					 */
					static POSTAL_ISPRIMARY: string;
					/**
					 * The extra field for an IM handle. <P>Type: String</P>
					 */
					static IM_HANDLE: string;
					/**
					 * The extra field for the IM protocol
					 */
					static IM_PROTOCOL: string;
					/**
					 * The extra field for the IM isprimary flag. <P>Type: boolean</P>
					 */
					static IM_ISPRIMARY: string;
					/**
					 * The extra field that allows the client to supply multiple rows of arbitrary data for a single contact created using the Intent#ACTION_INSERT or edited using Intent#ACTION_EDIT. It is an ArrayList of ContentValues, one per data row. Supplying this extra is similar to inserting multiple rows into the Data table, except the user gets a chance to see and edit them before saving. Each ContentValues object must have a value for Data#MIMETYPE. If supplied values are not visible in the editor UI, they will be dropped. Duplicate data will dropped. Some fields like CommonDataKinds.Email#TYPE Email.TYPE may be automatically adjusted to comply with the constraints of the specific account type. For example, an Exchange contact can only have one phone numbers of type Home, so the contact editor may choose a different type for this phone number to avoid dropping the valueable part of the row, which is the phone number.
					 */
					static DATA: string;
					static class: java.lang.Class<android.provider.ContactsContract.Intents.Insert>;
				}
			}
			/**
			 * A Directory represents a contacts corpus, e.g. Local contacts, Google Apps Global Address List or Corporate Global Address List.
			 */
			export class Directory extends java.lang.Object implements android.provider.IBaseColumns {
				/**
				 * The content:// style URI for this table. Requests to this URI can be performed on the UI thread because they are always unblocking.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME-type of #CONTENT_URI providing a directory of contact directories.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI item.
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * _ID of the default directory, which represents locally stored contacts.
				 */
				static DEFAULT: number;
				/**
				 * _ID of the directory that represents locally stored invisible contacts.
				 */
				static LOCAL_INVISIBLE: number;
				/**
				 * The name of the package that owns this directory. Contacts Provider fill it in with the name of the package containing the directory provider. If the package is later uninstalled, the directories it owns are automatically removed from this table.
				 */
				static PACKAGE_NAME: string;
				/**
				 * The type of directory captured as a resource ID in the context of the package #PACKAGE_NAME, e.g. "Corporate Directory"
				 */
				static TYPE_RESOURCE_ID: string;
				/**
				 * An optional name that can be used in the UI to represent this directory, e.g. "Acme Corp"
				 */
				static DISPLAY_NAME: string;
				static DIRECTORY_AUTHORITY: string;
				/**
				 * The account type which this directory is associated.
				 */
				static ACCOUNT_TYPE: string;
				/**
				 * The account with which this directory is associated. If the account is later removed, the directories it owns are automatically removed from this table.
				 */
				static ACCOUNT_NAME: string;
				/**
				 * One of #EXPORT_SUPPORT_NONE, #EXPORT_SUPPORT_ANY_ACCOUNT, #EXPORT_SUPPORT_SAME_ACCOUNT_ONLY. This is the expectation the directory has for data exported from it. Clients must obey this setting.
				 */
				static EXPORT_SUPPORT: string;
				/**
				 * An #EXPORT_SUPPORT setting that indicates that the directory does not allow any data to be copied out of it.
				 */
				static EXPORT_SUPPORT_NONE: number;
				/**
				 * An #EXPORT_SUPPORT setting that indicates that the directory allow its data copied only to the account specified by #ACCOUNT_TYPE/#ACCOUNT_NAME.
				 */
				static EXPORT_SUPPORT_SAME_ACCOUNT_ONLY: number;
				/**
				 * An #EXPORT_SUPPORT setting that indicates that the directory allow its data copied to any contacts account.
				 */
				static EXPORT_SUPPORT_ANY_ACCOUNT: number;
				/**
				 * One of #SHORTCUT_SUPPORT_NONE, #SHORTCUT_SUPPORT_DATA_ITEMS_ONLY, #SHORTCUT_SUPPORT_FULL. This is the expectation the directory has for shortcuts created for its elements. Clients must obey this setting.
				 */
				static SHORTCUT_SUPPORT: string;
				/**
				 * An #SHORTCUT_SUPPORT setting that indicates that the directory does not allow any shortcuts created for its contacts.
				 */
				static SHORTCUT_SUPPORT_NONE: number;
				/**
				 * An #SHORTCUT_SUPPORT setting that indicates that the directory allow creation of shortcuts for data items like email, phone or postal address, but not the entire contact.
				 */
				static SHORTCUT_SUPPORT_DATA_ITEMS_ONLY: number;
				/**
				 * An #SHORTCUT_SUPPORT setting that indicates that the directory allow creation of shortcuts for contact as well as their constituent elements.
				 */
				static SHORTCUT_SUPPORT_FULL: number;
				/**
				 * One of #PHOTO_SUPPORT_NONE, #PHOTO_SUPPORT_THUMBNAIL_ONLY, #PHOTO_SUPPORT_FULL. This is a feature flag indicating the extent to which the directory supports contact photos.
				 */
				static PHOTO_SUPPORT: string;
				/**
				 * An #PHOTO_SUPPORT setting that indicates that the directory does not provide any photos.
				 */
				static PHOTO_SUPPORT_NONE: number;
				/**
				 * An #PHOTO_SUPPORT setting that indicates that the directory can only produce small size thumbnails of contact photos.
				 */
				static PHOTO_SUPPORT_THUMBNAIL_ONLY: number;
				/**
				 * An #PHOTO_SUPPORT setting that indicates that the directory has full-size contact photos, but cannot provide scaled thumbnails.
				 */
				static PHOTO_SUPPORT_FULL_SIZE_ONLY: number;
				/**
				 * An #PHOTO_SUPPORT setting that indicates that the directory can produce thumbnails as well as full-size contact photos.
				 */
				static PHOTO_SUPPORT_FULL: number;
				static class: java.lang.Class<android.provider.ContactsContract.Directory>;
				/**
				 * Notifies the system of a change in the list of directories handled by a particular directory provider. The Contacts provider will turn around and send a query to the directory provider for the full list of directories, which will replace the previous list.
				 */
				public static notifyDirectoryChange(resolver: android.content.ContentResolver): void;
			}
			export class Data extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins {
				/**
				 * The content:// style URI for this table, which requests a directory of data rows matching the selection criteria.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of the results from #CONTENT_URI.
				 */
				static CONTENT_TYPE: string;
				static class: java.lang.Class<android.provider.ContactsContract.Data>;
				public static getContactLookupUri(resolver: android.content.ContentResolver, dataUri: android.net.Uri): android.net.Uri;
			}
			/**
			 * Columns that appear when each row of a table belongs to a specific account, including sync information that an account may need.
			 */
			interface ISyncColumns extends android.provider.ContactsContract.IBaseSyncColumns {
			}
			export module ISyncColumns {
				/**
				 * The name of the account instance to which this row belongs, which when paired with #ACCOUNT_TYPE identifies a specific account. <P>Type: TEXT</P>
				 */
				var ACCOUNT_NAME: string;
				/**
				 * The type of account to which this row belongs, which when paired with #ACCOUNT_NAME identifies a specific account. <P>Type: TEXT</P>
				 */
				var ACCOUNT_TYPE: string;
				/**
				 * String that uniquely identifies this row to its source account. <P>Type: TEXT</P>
				 */
				var SOURCE_ID: string;
				/**
				 * Version number that is updated whenever this row or its related data changes. <P>Type: INTEGER</P>
				 */
				var VERSION: string;
				/**
				 * Flag indicating that #VERSION has changed, and this row needs to be synchronized by its owning account. <P>Type: INTEGER (boolean)</P>
				 */
				var DIRTY: string;
			}
			/**
			 * Container for definitions of common data types stored in the ContactsContract.Data table.
			 */
			export class CommonDataKinds extends java.lang.Object {
				static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds>;
			}
			export module CommonDataKinds {
				export class Email extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * The MIME type of #CONTENT_URI providing a directory of email addresses.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The content:// style URI for all data records of the #CONTENT_ITEM_TYPE MIME type, combined with the associated raw contact and aggregate contact data.
					 */
					static CONTENT_URI: android.net.Uri;
					static CONTENT_LOOKUP_URI: android.net.Uri;
					static CONTENT_FILTER_URI: android.net.Uri;
					/**
					 * The email address. <P>Type: TEXT</P>
					 */
					static ADDRESS: string;
					static TYPE_HOME: number;
					static TYPE_WORK: number;
					static TYPE_OTHER: number;
					static TYPE_MOBILE: number;
					/**
					 * The display name for the email address <P>Type: TEXT</P>
					 */
					static DISPLAY_NAME: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Email>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given type, possibly substituting the given #LABEL value for #TYPE_CUSTOM.
					 */
					public static getTypeLabel(res: android.content.res.Resources, type: number, label: string): string;
				}
				export class Organization extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					static TYPE_WORK: number;
					static TYPE_OTHER: number;
					/**
					 * The company as the user entered it. <P>Type: TEXT</P>
					 */
					static COMPANY: string;
					/**
					 * The position title at this company as the user entered it. <P>Type: TEXT</P>
					 */
					static TITLE: string;
					/**
					 * The department at this company as the user entered it. <P>Type: TEXT</P>
					 */
					static DEPARTMENT: string;
					/**
					 * The job description at this company as the user entered it. <P>Type: TEXT</P>
					 */
					static JOB_DESCRIPTION: string;
					/**
					 * The symbol of this company as the user entered it. <P>Type: TEXT</P>
					 */
					static SYMBOL: string;
					/**
					 * The phonetic name of this company as the user entered it. <P>Type: TEXT</P>
					 */
					static PHONETIC_NAME: string;
					/**
					 * The office location of this organization. <P>Type: TEXT</P>
					 */
					static OFFICE_LOCATION: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Organization>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given type, possibly substituting the given #LABEL value for #TYPE_CUSTOM.
					 */
					public static getTypeLabel(res: android.content.res.Resources, type: number, label: string): string;
				}
				export class Im extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					static TYPE_HOME: number;
					static TYPE_WORK: number;
					static TYPE_OTHER: number;
					/**
					 * This column should be populated with one of the defined constants, e.g. #PROTOCOL_YAHOO. If the value of this column is #PROTOCOL_CUSTOM, the #CUSTOM_PROTOCOL should contain the name of the custom protocol.
					 */
					static PROTOCOL: string;
					static CUSTOM_PROTOCOL: string;
					static PROTOCOL_CUSTOM: number;
					static PROTOCOL_AIM: number;
					static PROTOCOL_MSN: number;
					static PROTOCOL_YAHOO: number;
					static PROTOCOL_SKYPE: number;
					static PROTOCOL_QQ: number;
					static PROTOCOL_GOOGLE_TALK: number;
					static PROTOCOL_ICQ: number;
					static PROTOCOL_JABBER: number;
					static PROTOCOL_NETMEETING: number;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Im>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given type, possibly substituting the given #LABEL value for #TYPE_CUSTOM.
					 */
					public static getTypeLabel(res: android.content.res.Resources, type: number, label: string): string;
					/**
					 * Return the string resource that best describes the given #PROTOCOL. Will always return a valid resource.
					 */
					public static getProtocolLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given protocol, possibly substituting the given #CUSTOM_PROTOCOL value for #PROTOCOL_CUSTOM.
					 */
					public static getProtocolLabel(res: android.content.res.Resources, type: number, label: string): string;
				}
				export class GroupMembership extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * The row id of the group that this group membership refers to. Exactly one of this or #GROUP_SOURCE_ID must be set when inserting a row. <P>Type: INTEGER</P>
					 */
					static GROUP_ROW_ID: string;
					/**
					 * The sourceid of the group that this group membership refers to. Exactly one of this or #GROUP_ROW_ID must be set when inserting a row. <P>Type: TEXT</P>
					 */
					static GROUP_SOURCE_ID: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.GroupMembership>;
				}
				export class Website extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					static TYPE_HOMEPAGE: number;
					static TYPE_BLOG: number;
					static TYPE_PROFILE: number;
					static TYPE_HOME: number;
					static TYPE_WORK: number;
					static TYPE_FTP: number;
					static TYPE_OTHER: number;
					/**
					 * The website URL string. <P>Type: TEXT</P>
					 */
					static URL: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Website>;
				}
				/**
				 * Columns common across the specific types.
				 */
				export class CommonColumns implements android.provider.ContactsContract.CommonDataKinds.IBaseTypes, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					constructor(implementation: android.provider.ContactsContract.CommonDataKinds.ICommonColumns);
					/**
					 * The data for the contact method. <P>Type: TEXT</P>
					 */
					static DATA: string;
					/**
					 * The type of data, for example Home or Work. <P>Type: INTEGER</P>
					 */
					static TYPE: string;
					/**
					 * The user defined label for the the contact method. <P>Type: TEXT</P>
					 */
					static LABEL: string;
				}
				export class StructuredPostal extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * The MIME type of #CONTENT_URI providing a directory of postal addresses.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The content:// style URI for all data records of the StructuredPostal#CONTENT_ITEM_TYPE MIME type.
					 */
					static CONTENT_URI: android.net.Uri;
					static TYPE_HOME: number;
					static TYPE_WORK: number;
					static TYPE_OTHER: number;
					/**
					 * The full, unstructured postal address. <i>This field must be consistent with any structured data.</i>
					 */
					static FORMATTED_ADDRESS: string;
					/**
					 * Can be street, avenue, road, etc. This element also includes the house number and room/apartment/flat/floor number.
					 */
					static STREET: string;
					/**
					 * Covers actual P.O. boxes, drawers, locked bags, etc. This is usually but not always mutually exclusive with street.
					 */
					static POBOX: string;
					/**
					 * This is used to disambiguate a street address when a city contains more than one street with the same name, or to specify a small place whose mail is routed through a larger postal town. In China it could be a county or a minor city.
					 */
					static NEIGHBORHOOD: string;
					/**
					 * Can be city, village, town, borough, etc. This is the postal town and not necessarily the place of residence or place of business.
					 */
					static CITY: string;
					/**
					 * A state, province, county (in Ireland), Land (in Germany), departement (in France), etc.
					 */
					static REGION: string;
					/**
					 * Postal code. Usually country-wide, but sometimes specific to the city (e.g. "2" in "Dublin 2, Ireland" addresses).
					 */
					static POSTCODE: string;
					/**
					 * The name or code of the country.
					 */
					static COUNTRY: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.StructuredPostal>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given type, possibly substituting the given #LABEL value for #TYPE_CUSTOM.
					 */
					public static getTypeLabel(res: android.content.res.Resources, type: number, label: string): string;
				}
				export class Photo extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * Photo file ID for the display photo of the raw contact. See ContactsContract.DisplayPhoto.
					 */
					static PHOTO_FILE_ID: string;
					/**
					 * Thumbnail photo of the raw contact. This is the raw bytes of an image that could be inflated using android.graphics.BitmapFactory.
					 */
					static PHOTO: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Photo>;
				}
				export class SipAddress extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					static TYPE_HOME: number;
					static TYPE_WORK: number;
					static TYPE_OTHER: number;
					/**
					 * The SIP address. <P>Type: TEXT</P>
					 */
					static SIP_ADDRESS: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.SipAddress>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given type, possibly substituting the given #LABEL value for #TYPE_CUSTOM.
					 */
					public static getTypeLabel(res: android.content.res.Resources, type: number, label: string): string;
				}
				export class Relation extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					static TYPE_ASSISTANT: number;
					static TYPE_BROTHER: number;
					static TYPE_CHILD: number;
					static TYPE_DOMESTIC_PARTNER: number;
					static TYPE_FATHER: number;
					static TYPE_FRIEND: number;
					static TYPE_MANAGER: number;
					static TYPE_MOTHER: number;
					static TYPE_PARENT: number;
					static TYPE_PARTNER: number;
					static TYPE_REFERRED_BY: number;
					static TYPE_RELATIVE: number;
					static TYPE_SISTER: number;
					static TYPE_SPOUSE: number;
					/**
					 * The name of the relative as the user entered it. <P>Type: TEXT</P>
					 */
					static NAME: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Relation>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given type, possibly substituting the given #LABEL value for #TYPE_CUSTOM.
					 */
					public static getTypeLabel(res: android.content.res.Resources, type: number, label: string): string;
				}
				export class Phone extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * The MIME type of #CONTENT_URI providing a directory of phones.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The content:// style URI for all data records of the #CONTENT_ITEM_TYPE MIME type, combined with the associated raw contact and aggregate contact data.
					 */
					static CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URL for phone lookup using a filter. The filter returns records of MIME type #CONTENT_ITEM_TYPE. The filter is applied to display names as well as phone numbers. The filter argument should be passed as an additional path segment after this URI.
					 */
					static CONTENT_FILTER_URI: android.net.Uri;
					/**
					 * A boolean query parameter that can be used with #CONTENT_FILTER_URI. If "1" or "true", display names are searched. If "0" or "false", display names are not searched. Default is "1".
					 */
					static SEARCH_DISPLAY_NAME_KEY: string;
					/**
					 * A boolean query parameter that can be used with #CONTENT_FILTER_URI. If "1" or "true", phone numbers are searched. If "0" or "false", phone numbers are not searched. Default is "1".
					 */
					static SEARCH_PHONE_NUMBER_KEY: string;
					static TYPE_HOME: number;
					static TYPE_MOBILE: number;
					static TYPE_WORK: number;
					static TYPE_FAX_WORK: number;
					static TYPE_FAX_HOME: number;
					static TYPE_PAGER: number;
					static TYPE_OTHER: number;
					static TYPE_CALLBACK: number;
					static TYPE_CAR: number;
					static TYPE_COMPANY_MAIN: number;
					static TYPE_ISDN: number;
					static TYPE_MAIN: number;
					static TYPE_OTHER_FAX: number;
					static TYPE_RADIO: number;
					static TYPE_TELEX: number;
					static TYPE_TTY_TDD: number;
					static TYPE_WORK_MOBILE: number;
					static TYPE_WORK_PAGER: number;
					static TYPE_ASSISTANT: number;
					static TYPE_MMS: number;
					/**
					 * The phone number as the user entered it. <P>Type: TEXT</P>
					 */
					static NUMBER: string;
					/**
					 * The phone number's E164 representation. This value can be omitted in which case the provider will try to automatically infer it. (It'll be left null if the provider fails to infer.) If present, #NUMBER has to be set as well (it will be ignored otherwise). <P>Type: TEXT</P>
					 */
					static NORMALIZED_NUMBER: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Phone>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeLabelResource(type: number): number;
					/**
					 * Return a CharSequence that best describes the given type, possibly substituting the given #LABEL value for #TYPE_CUSTOM.
					 */
					public static getTypeLabel(res: android.content.res.Resources, type: number, label: string): string;
				}
				export class Note extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * The note text. <P>Type: TEXT</P>
					 */
					static NOTE: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Note>;
				}
				/**
				 * The base types that all "Typed" data kinds support.
				 */
				interface IBaseTypes {
				}
				export module IBaseTypes {
					/**
					 * A custom type. The custom label should be supplied by user.
					 */
					var TYPE_CUSTOM: number;
				}
				export class Event extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					static TYPE_ANNIVERSARY: number;
					static TYPE_OTHER: number;
					static TYPE_BIRTHDAY: number;
					/**
					 * The event start date as the user entered it. <P>Type: TEXT</P>
					 */
					static START_DATE: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Event>;
					/**
					 * Return the string resource that best describes the given #TYPE. Will always return a valid resource.
					 */
					public static getTypeResource(type: java.lang.Integer): number;
				}
				/**
				 * A data kind representing an Identity related to the contact.
				 */
				export class Identity extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * The identity string. <P>Type: TEXT</P>
					 */
					static IDENTITY: string;
					/**
					 * The namespace of the identity string, e.g. "com.google" <P>Type: TEXT</P>
					 */
					static NAMESPACE: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Identity>;
				}
				/**
				 * The base types that all "Typed" data kinds support.
				 */
				export class BaseTypes implements android.provider.ContactsContract.CommonDataKinds.IBaseTypes {
					constructor(implementation: android.provider.ContactsContract.CommonDataKinds.IBaseTypes);
					/**
					 * A custom type. The custom label should be supplied by user.
					 */
					static TYPE_CUSTOM: number;
				}
				/**
				 * A data kind representing the contact's proper name. You can use all columns defined for ContactsContract.Data as well as the following aliases.
				 */
				export class StructuredName extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					/**
					 * The name that should be used to display the contact. <i>Unstructured component of the name should be consistent with its structured representation.</i>
					 */
					static DISPLAY_NAME: string;
					/**
					 * The given name for the contact. <P>Type: TEXT</P>
					 */
					static GIVEN_NAME: string;
					/**
					 * The family name for the contact. <P>Type: TEXT</P>
					 */
					static FAMILY_NAME: string;
					/**
					 * The contact's honorific prefix, e.g. "Sir" <P>Type: TEXT</P>
					 */
					static PREFIX: string;
					/**
					 * The contact's middle name <P>Type: TEXT</P>
					 */
					static MIDDLE_NAME: string;
					/**
					 * The contact's honorific suffix, e.g. "Jr"
					 */
					static SUFFIX: string;
					/**
					 * The phonetic version of the given name for the contact. <P>Type: TEXT</P>
					 */
					static PHONETIC_GIVEN_NAME: string;
					/**
					 * The phonetic version of the additional name for the contact. <P>Type: TEXT</P>
					 */
					static PHONETIC_MIDDLE_NAME: string;
					/**
					 * The phonetic version of the family name for the contact. <P>Type: TEXT</P>
					 */
					static PHONETIC_FAMILY_NAME: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.StructuredName>;
				}
				/**
				 * Columns common across the specific types.
				 */
				interface ICommonColumns extends android.provider.ContactsContract.CommonDataKinds.IBaseTypes {
				}
				export module ICommonColumns {
					/**
					 * The data for the contact method. <P>Type: TEXT</P>
					 */
					var DATA: string;
					/**
					 * The type of data, for example Home or Work. <P>Type: INTEGER</P>
					 */
					var TYPE: string;
					/**
					 * The user defined label for the the contact method. <P>Type: TEXT</P>
					 */
					var LABEL: string;
				}
				export class Nickname extends java.lang.Object implements android.provider.ContactsContract.IDataColumnsWithJoins, android.provider.ContactsContract.CommonDataKinds.ICommonColumns {
					/**
					 * MIME type used when storing this in data table.
					 */
					static CONTENT_ITEM_TYPE: string;
					static TYPE_DEFAULT: number;
					static TYPE_OTHER_NAME: number;
					static TYPE_MAIDEN_NAME: number;
					/**
					 *  Use TYPE_MAIDEN_NAME instead.
					 */
					static TYPE_MAINDEN_NAME: number;
					static TYPE_SHORT_NAME: number;
					static TYPE_INITIALS: number;
					/**
					 * The name itself
					 */
					static NAME: string;
					static class: java.lang.Class<android.provider.ContactsContract.CommonDataKinds.Nickname>;
				}
			}
			/**
			 * Columns of ContactsContract.Contacts that track the user's preferences for, or interactions with, the contact.
			 */
			interface IContactOptionsColumns {
			}
			export module IContactOptionsColumns {
				/**
				 * The number of times a contact has been contacted <P>Type: INTEGER</P>
				 */
				var TIMES_CONTACTED: string;
				/**
				 * The last time a contact was contacted. <P>Type: INTEGER</P>
				 */
				var LAST_TIME_CONTACTED: string;
				/**
				 * Is the contact starred? <P>Type: INTEGER (boolean)</P>
				 */
				var STARRED: string;
				/**
				 * URI for a custom ringtone associated with the contact. If null or missing, the default ringtone is used. <P>Type: TEXT (URI to the ringtone)</P>
				 */
				var CUSTOM_RINGTONE: string;
				/**
				 * Whether the contact should always be sent to voicemail. If missing, defaults to false. <P>Type: INTEGER (0 for false, 1 for true)</P>
				 */
				var SEND_TO_VOICEMAIL: string;
			}
			/**
			 * Constants for the contacts table, which contains a record per aggregate of raw contacts representing the same person. <h3>Operations</h3> <dl> <dt><b>Insert</b></dt> <dd>A Contact cannot be created explicitly. When a raw contact is inserted, the provider will first try to find a Contact representing the same person. If one is found, the raw contact's RawContacts#CONTACT_ID column gets the _ID of the aggregate Contact. If no match is found, the provider automatically inserts a new Contact and puts its _ID into the RawContacts#CONTACT_ID column of the newly inserted raw contact.</dd> <dt><b>Update</b></dt> <dd>Only certain columns of Contact are modifiable: #TIMES_CONTACTED, #LAST_TIME_CONTACTED, #STARRED, #CUSTOM_RINGTONE, #SEND_TO_VOICEMAIL. Changing any of these columns on the Contact also changes them on all constituent raw contacts.</dd> <dt><b>Delete</b></dt> <dd>Be careful with deleting Contacts! Deleting an aggregate contact deletes all constituent raw contacts. The corresponding sync adapters will notice the deletions of their respective raw contacts and remove them from their back end storage.</dd> <dt><b>Query</b></dt> <dd> <ul> <li>If you need to read an individual contact, consider using #CONTENT_LOOKUP_URI instead of #CONTENT_URI.</li> <li>If you need to look up a contact by the phone number, use PhoneLookup#CONTENT_FILTER_URI PhoneLookup.CONTENT_FILTER_URI, which is optimized for this purpose.</li> <li>If you need to look up a contact by partial name, e.g. to produce filter-as-you-type suggestions, use the #CONTENT_FILTER_URI URI. <li>If you need to look up a contact by some data element like email address, nickname, etc, use a query against the ContactsContract.Data table. The result will contain contact ID, name etc. </ul> </dd> </dl> <h2>Columns</h2> <table class="jd-sumtable"> <tr> <th colspan='4'>Contacts</th> </tr> <tr> <td>long</td> <td>#_ID</td> <td>read-only</td> <td>Row ID. Consider using #LOOKUP_KEY instead.</td> </tr> <tr> <td>String</td> <td>#LOOKUP_KEY</td> <td>read-only</td> <td>An opaque value that contains hints on how to find the contact if its row id changed as a result of a sync or aggregation.</td> </tr> <tr> <td>long</td> <td>NAME_RAW_CONTACT_ID</td> <td>read-only</td> <td>The ID of the raw contact that contributes the display name to the aggregate contact. During aggregation one of the constituent raw contacts is chosen using a heuristic: a longer name or a name with more diacritic marks or more upper case characters is chosen.</td> </tr> <tr> <td>String</td> <td>DISPLAY_NAME_PRIMARY</td> <td>read-only</td> <td>The display name for the contact. It is the display name contributed by the raw contact referred to by the NAME_RAW_CONTACT_ID column.</td> </tr> <tr> <td>long</td> <td>#PHOTO_ID</td> <td>read-only</td> <td>Reference to the row in the ContactsContract.Data table holding the photo. That row has the mime type CommonDataKinds.Photo#CONTENT_ITEM_TYPE. The value of this field is computed automatically based on the CommonDataKinds.Photo#IS_SUPER_PRIMARY field of the data rows of that mime type.</td> </tr> <tr> <td>long</td> <td>#PHOTO_URI</td> <td>read-only</td> <td>A URI that can be used to retrieve the contact's full-size photo. This column is the preferred method of retrieving the contact photo.</td> </tr> <tr> <td>long</td> <td>#PHOTO_THUMBNAIL_URI</td> <td>read-only</td> <td>A URI that can be used to retrieve the thumbnail of contact's photo. This column is the preferred method of retrieving the contact photo.</td> </tr> <tr> <td>int</td> <td>#IN_VISIBLE_GROUP</td> <td>read-only</td> <td>An indicator of whether this contact is supposed to be visible in the UI. "1" if the contact has at least one raw contact that belongs to a visible group; "0" otherwise.</td> </tr> <tr> <td>int</td> <td>#HAS_PHONE_NUMBER</td> <td>read-only</td> <td>An indicator of whether this contact has at least one phone number. "1" if there is at least one phone number, "0" otherwise.</td> </tr> <tr> <td>int</td> <td>#TIMES_CONTACTED</td> <td>read/write</td> <td>The number of times the contact has been contacted. See #markAsContacted. When raw contacts are aggregated, this field is computed automatically as the maximum number of times contacted among all constituent raw contacts. Setting this field automatically changes the corresponding field on all constituent raw contacts.</td> </tr> <tr> <td>long</td> <td>#LAST_TIME_CONTACTED</td> <td>read/write</td> <td>The timestamp of the last time the contact was contacted. See #markAsContacted. Setting this field also automatically increments #TIMES_CONTACTED. When raw contacts are aggregated, this field is computed automatically as the latest time contacted of all constituent raw contacts. Setting this field automatically changes the corresponding field on all constituent raw contacts.</td> </tr> <tr> <td>int</td> <td>#STARRED</td> <td>read/write</td> <td>An indicator for favorite contacts: '1' if favorite, '0' otherwise. When raw contacts are aggregated, this field is automatically computed: if any constituent raw contacts are starred, then this field is set to '1'. Setting this field automatically changes the corresponding field on all constituent raw contacts.</td> </tr> <tr> <td>String</td> <td>#CUSTOM_RINGTONE</td> <td>read/write</td> <td>A custom ringtone associated with a contact. Typically this is the URI returned by an activity launched with the android.media.RingtoneManager#ACTION_RINGTONE_PICKER intent.</td> </tr> <tr> <td>int</td> <td>#SEND_TO_VOICEMAIL</td> <td>read/write</td> <td>An indicator of whether calls from this contact should be forwarded directly to voice mail ('1') or not ('0'). When raw contacts are aggregated, this field is automatically computed: if <i>all</i> constituent raw contacts have SEND_TO_VOICEMAIL=1, then this field is set to '1'. Setting this field automatically changes the corresponding field on all constituent raw contacts.</td> </tr> <tr> <td>int</td> <td>#CONTACT_PRESENCE</td> <td>read-only</td> <td>Contact IM presence status. See StatusUpdates for individual status definitions. Automatically computed as the highest presence of all constituent raw contacts. The provider may choose not to store this value in persistent storage. The expectation is that presence status will be updated on a regular basic.</td> </tr> <tr> <td>String</td> <td>#CONTACT_STATUS</td> <td>read-only</td> <td>Contact's latest status update. Automatically computed as the latest of all constituent raw contacts' status updates.</td> </tr> <tr> <td>long</td> <td>#CONTACT_STATUS_TIMESTAMP</td> <td>read-only</td> <td>The absolute time in milliseconds when the latest status was inserted/updated.</td> </tr> <tr> <td>String</td> <td>#CONTACT_STATUS_RES_PACKAGE</td> <td>read-only</td> <td> The package containing resources for this status: label and icon.</td> </tr> <tr> <td>long</td> <td>#CONTACT_STATUS_LABEL</td> <td>read-only</td> <td>The resource ID of the label describing the source of contact status, e.g. "Google Talk". This resource is scoped by the #CONTACT_STATUS_RES_PACKAGE.</td> </tr> <tr> <td>long</td> <td>#CONTACT_STATUS_ICON</td> <td>read-only</td> <td>The resource ID of the icon for the source of contact status. This resource is scoped by the #CONTACT_STATUS_RES_PACKAGE.</td> </tr> </table>
			 */
			export class Contacts extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IContactsColumns, android.provider.ContactsContract.IContactOptionsColumns, android.provider.ContactsContract.IContactNameColumns, android.provider.ContactsContract.IContactStatusColumns {
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * A content:// style URI for this table that should be used to create shortcuts or otherwise create long-term links to contacts. This URI should always be followed by a "/" and the contact's #LOOKUP_KEY. It can optionally also have a "/" and last known contact ID appended after that. This "complete" format is an important optimization and is highly recommended.
				 */
				static CONTENT_LOOKUP_URI: android.net.Uri;
				/**
				 * Base Uri for referencing a single Contacts entry, created by appending #LOOKUP_KEY using Uri#withAppendedPath(Uri, String). Provides OpenableColumns columns when queried, or returns the referenced contact formatted as a vCard when opened through ContentResolver#openAssetFileDescriptor(Uri, String).
				 */
				static CONTENT_VCARD_URI: android.net.Uri;
				/**
				 * The content:// style URI used for "type-to-filter" functionality on the #CONTENT_URI URI. The filter string will be used to match various parts of the contact name. The filter argument should be passed as an additional path segment after this URI.
				 */
				static CONTENT_FILTER_URI: android.net.Uri;
				/**
				 * The content:// style URI for this table joined with useful data from ContactsContract.Data, filtered to include only starred contacts and the most frequently contacted contacts.
				 */
				static CONTENT_STREQUENT_URI: android.net.Uri;
				/**
				 * The content:// style URI used for "type-to-filter" functionality on the #CONTENT_STREQUENT_URI URI. The filter string will be used to match various parts of the contact name. The filter argument should be passed as an additional path segment after this URI.
				 */
				static CONTENT_STREQUENT_FILTER_URI: android.net.Uri;
				static CONTENT_GROUP_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of people.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single person.
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single person.
				 */
				static CONTENT_VCARD_TYPE: string;
				static class: java.lang.Class<android.provider.ContactsContract.Contacts>;
				/**
				 * Builds a #CONTENT_LOOKUP_URI style Uri describing the requested Contacts entry.
				 * @param resolver contactUri A {@link #CONTENT_URI} row, or an existing
				 * @param contactUri 
				 */
				public static getLookupUri(resolver: android.content.ContentResolver, contactUri: android.net.Uri): android.net.Uri;
				/**
				 * Build a #CONTENT_LOOKUP_URI lookup Uri using the given ContactsContract.Contacts#_ID and #LOOKUP_KEY.
				 */
				public static getLookupUri(contactId: number, lookupKey: string): android.net.Uri;
				/**
				 * Computes a content URI (see #CONTENT_URI) given a lookup URI.
				 */
				public static lookupContact(resolver: android.content.ContentResolver, lookupUri: android.net.Uri): android.net.Uri;
				/**
				 * Mark a contact as having been contacted. Updates two fields: #TIMES_CONTACTED and #LAST_TIME_CONTACTED. The TIMES_CONTACTED field is incremented by 1 and the LAST_TIME_CONTACTED field is populated with the current system time.
				 * @param resolver the ContentResolver to use
				 * @param contactId the person who was contacted
				 */
				public static markAsContacted(resolver: android.content.ContentResolver, contactId: number): void;
				/**
				 * Opens an InputStream for the contacts's photo and returns the photo as a byte stream.
				 * @param cr The content resolver to use for querying
				 * @param contactUri the contact whose photo should be used. This can be used with
				 * @param preferHighres If this is true and the contact has a higher resolution photo
				 */
				public static openContactPhotoInputStream(cr: android.content.ContentResolver, contactUri: android.net.Uri, preferHighres: boolean): java.io.InputStream;
				/**
				 * Opens an InputStream for the contacts's thumbnail photo and returns the photo as a byte stream.
				 * @param cr The content resolver to use for querying
				 * @param contactUri the contact whose photo should be used. This can be used with
				 */
				public static openContactPhotoInputStream(cr: android.content.ContentResolver, contactUri: android.net.Uri): java.io.InputStream;
			}
			export module Contacts {
				export class Entity extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IContactsColumns, android.provider.ContactsContract.IContactNameColumns, android.provider.ContactsContract.IRawContactsColumns, android.provider.ContactsContract.IBaseSyncColumns, android.provider.ContactsContract.ISyncColumns, android.provider.ContactsContract.IDataColumns, android.provider.ContactsContract.IStatusColumns, android.provider.ContactsContract.IContactOptionsColumns, android.provider.ContactsContract.IContactStatusColumns {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					/**
					 * The ID of the raw contact row. <P>Type: INTEGER</P>
					 */
					static RAW_CONTACT_ID: string;
					/**
					 * The ID of the data row. The value will be null if this raw contact has no data rows. <P>Type: INTEGER</P>
					 */
					static DATA_ID: string;
					static class: java.lang.Class<android.provider.ContactsContract.Contacts.Entity>;
				}
				export class AggregationSuggestions extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IContactsColumns, android.provider.ContactsContract.IContactOptionsColumns, android.provider.ContactsContract.IContactStatusColumns {
					/**
					 * The directory twig for this sub-table. The URI can be followed by an optional type-to-filter, similar to android.provider.ContactsContract.Contacts#CONTENT_FILTER_URI.
					 */
					static CONTENT_DIRECTORY: string;
					static class: java.lang.Class<android.provider.ContactsContract.Contacts.AggregationSuggestions>;
				}
				export class StreamItems extends java.lang.Object implements android.provider.ContactsContract.IStreamItemsColumns {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					static class: java.lang.Class<android.provider.ContactsContract.Contacts.StreamItems>;
				}
				/**
				 * A sub-directory of a single contact that contains all of the constituent raw contact ContactsContract.Data rows. This directory can be used either with a #CONTENT_URI or #CONTENT_LOOKUP_URI.
				 */
				export class Data extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IDataColumns {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					static class: java.lang.Class<android.provider.ContactsContract.Contacts.Data>;
				}
				/**
				 * A <i>read-only</i> sub-directory of a single contact that contains the contact's primary photo. The photo may be stored in up to two ways - the default "photo" is a thumbnail-sized image stored directly in the data row, while the "display photo", if present, is a larger version stored as a file.
				 */
				export class Photo extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IDataColumnsWithJoins {
					/**
					 * The directory twig for this sub-table
					 */
					static CONTENT_DIRECTORY: string;
					/**
					 * The directory twig for retrieving the full-size display photo.
					 */
					static DISPLAY_PHOTO: string;
					/**
					 * Full-size photo file ID of the raw contact. See ContactsContract.DisplayPhoto.
					 */
					static PHOTO_FILE_ID: string;
					/**
					 * Thumbnail photo of the raw contact. This is the raw bytes of an image that could be inflated using android.graphics.BitmapFactory.
					 */
					static PHOTO: string;
					static class: java.lang.Class<android.provider.ContactsContract.Contacts.Photo>;
				}
			}
			/**
			 *  Groups
			 */
			interface IGroupsColumns {
			}
			export module IGroupsColumns {
				/**
				 * The data set within the account that this group belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' group data.
				 */
				var DATA_SET: string;
				/**
				 * The display title of this group.
				 */
				var TITLE: string;
				/**
				 * Notes about the group.
				 */
				var NOTES: string;
				/**
				 * The ID of this group if it is a System Group, i.e. a group that has a special meaning to the sync adapter, null otherwise. <P>Type: TEXT</P>
				 */
				var SYSTEM_ID: string;
				/**
				 * The total number of Contacts that have CommonDataKinds.GroupMembership in this group. Read-only value that is only present when querying Groups#CONTENT_SUMMARY_URI.
				 */
				var SUMMARY_COUNT: string;
				/**
				 * The total number of Contacts that have both CommonDataKinds.GroupMembership in this group, and also have phone numbers. Read-only value that is only present when querying Groups#CONTENT_SUMMARY_URI.
				 */
				var SUMMARY_WITH_PHONES: string;
				/**
				 * Flag indicating if the contacts belonging to this group should be visible in any user interface.
				 */
				var GROUP_VISIBLE: string;
				/**
				 * The "deleted" flag: "0" by default, "1" if the row has been marked for deletion. When android.content.ContentResolver#delete is called on a group, it is marked for deletion. The sync adaptor deletes the group on the server and then calls ContactResolver.delete once more, this time setting the the ContactsContract#CALLER_IS_SYNCADAPTER query parameter to finalize the data removal. <P>Type: INTEGER</P>
				 */
				var DELETED: string;
				/**
				 * Whether this group should be synced if the SYNC_EVERYTHING settings is false for this group's account.
				 */
				var SHOULD_SYNC: string;
				/**
				 * Any newly created contacts will automatically be added to groups that have this flag set to true.
				 */
				var AUTO_ADD: string;
				/**
				 * When a contacts is marked as a favorites it will be automatically added to the groups that have this flag set, and when it is removed from favorites it will be removed from these groups.
				 */
				var FAVORITES: string;
				/**
				 * The "read-only" flag: "0" by default, "1" if the row cannot be modified or deleted except by a sync adapter. See ContactsContract#CALLER_IS_SYNCADAPTER. <P>Type: INTEGER</P>
				 */
				var GROUP_IS_READ_ONLY: string;
			}
			/**
			 * Generic columns for use by sync adapters. The specific functions of these columns are private to the sync adapter. Other clients of the API should not attempt to either read or write this column.
			 */
			interface IBaseSyncColumns {
			}
			export module IBaseSyncColumns {
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC1: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC2: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC3: string;
				/**
				 * Generic column for use by sync adapters.
				 */
				var SYNC4: string;
			}
			/**
			 * A table that represents the result of looking up a phone number, for example for caller ID. To perform a lookup you must append the number you want to find to #CONTENT_FILTER_URI. This query is highly optimized. <pre> Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber)); resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,... </pre>
			 */
			export class PhoneLookup extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IPhoneLookupColumns, android.provider.ContactsContract.IContactsColumns, android.provider.ContactsContract.IContactOptionsColumns {
				/**
				 * The content:// style URI for this table. Append the phone number you want to lookup to this URI and query it to perform a lookup. For example: <pre> Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_URI, Uri.encode(phoneNumber)); </pre>
				 */
				static CONTENT_FILTER_URI: android.net.Uri;
				static class: java.lang.Class<android.provider.ContactsContract.PhoneLookup>;
			}
			/**
			 * Types of data used to produce the display name for a contact. In the order of increasing priority: #EMAIL, #PHONE, #ORGANIZATION, #NICKNAME, #STRUCTURED_NAME.
			 */
			export class DisplayNameSources implements android.provider.ContactsContract.IDisplayNameSources {
				constructor(implementation: android.provider.ContactsContract.IDisplayNameSources);
				static UNDEFINED: number;
				static EMAIL: number;
				static PHONE: number;
				static ORGANIZATION: number;
				static NICKNAME: number;
				static STRUCTURED_NAME: number;
			}
			/**
			 *  Settings
			 */
			export class SettingsColumns implements android.provider.ContactsContract.ISettingsColumns {
				constructor(implementation: android.provider.ContactsContract.ISettingsColumns);
				/**
				 * The name of the account instance to which this row belongs. <P>Type: TEXT</P>
				 */
				static ACCOUNT_NAME: string;
				/**
				 * The type of account to which this row belongs, which when paired with #ACCOUNT_NAME identifies a specific account. <P>Type: TEXT</P>
				 */
				static ACCOUNT_TYPE: string;
				/**
				 * The data set within the account that this row belongs to. This allows multiple sync adapters for the same account type to distinguish between each others' data.
				 */
				static DATA_SET: string;
				/**
				 * Depending on the mode defined by the sync-adapter, this flag controls the top-level sync behavior for this data source.
				 */
				static SHOULD_SYNC: string;
				/**
				 * Flag indicating if contacts without any CommonDataKinds.GroupMembership entries should be visible in any user interface.
				 */
				static UNGROUPED_VISIBLE: string;
				/**
				 * Read-only flag indicating if this #SHOULD_SYNC or any Groups#SHOULD_SYNC under this account have been marked as unsynced.
				 */
				static ANY_UNSYNCED: string;
				/**
				 * Read-only count of Contacts from a specific source that have no CommonDataKinds.GroupMembership entries.
				 */
				static UNGROUPED_COUNT: string;
				/**
				 * Read-only count of Contacts from a specific source that have no CommonDataKinds.GroupMembership entries, and also have phone numbers.
				 */
				static UNGROUPED_WITH_PHONES: string;
			}
			/**
			 * Additional data mixed in with StatusColumns to link back to specific ContactsContract.Data#_ID entries.
			 */
			export class PresenceColumns implements android.provider.ContactsContract.IPresenceColumns {
				constructor(implementation: android.provider.ContactsContract.IPresenceColumns);
				/**
				 * Reference to the Data#_ID entry that owns this presence. <P>Type: INTEGER</P>
				 */
				static DATA_ID: string;
				/**
				 * See CommonDataKinds.Im for a list of defined protocol constants.
				 */
				static PROTOCOL: string;
				/**
				 * Name of the custom protocol. Should be supplied along with the #PROTOCOL value ContactsContract.CommonDataKinds.Im#PROTOCOL_CUSTOM. Should be null or omitted if #PROTOCOL value is not ContactsContract.CommonDataKinds.Im#PROTOCOL_CUSTOM.
				 */
				static CUSTOM_PROTOCOL: string;
				/**
				 * The IM handle the presence item is for. The handle is scoped to #PROTOCOL. <P>Type: TEXT</P>
				 */
				static IM_HANDLE: string;
				/**
				 * The IM account for the local user that the presence data came from. <P>Type: TEXT</P>
				 */
				static IM_ACCOUNT: string;
			}
			/**
			 * Columns of ContactsContract.Contacts that track the user's preferences for, or interactions with, the contact.
			 */
			export class ContactOptionsColumns implements android.provider.ContactsContract.IContactOptionsColumns {
				constructor(implementation: android.provider.ContactsContract.IContactOptionsColumns);
				/**
				 * The number of times a contact has been contacted <P>Type: INTEGER</P>
				 */
				static TIMES_CONTACTED: string;
				/**
				 * The last time a contact was contacted. <P>Type: INTEGER</P>
				 */
				static LAST_TIME_CONTACTED: string;
				/**
				 * Is the contact starred? <P>Type: INTEGER (boolean)</P>
				 */
				static STARRED: string;
				/**
				 * URI for a custom ringtone associated with the contact. If null or missing, the default ringtone is used. <P>Type: TEXT (URI to the ringtone)</P>
				 */
				static CUSTOM_RINGTONE: string;
				/**
				 * Whether the contact should always be sent to voicemail. If missing, defaults to false. <P>Type: INTEGER (0 for false, 1 for true)</P>
				 */
				static SEND_TO_VOICEMAIL: string;
			}
			/**
			 *  Contacts
			 */
			interface IContactStatusColumns {
			}
			export module IContactStatusColumns {
				/**
				 * Contact presence status. See StatusUpdates for individual status definitions.
				 */
				var CONTACT_PRESENCE: string;
				/**
				 * Contact Chat Capabilities. See StatusUpdates for individual definitions.
				 */
				var CONTACT_CHAT_CAPABILITY: string;
				/**
				 * Contact's latest status update.
				 */
				var CONTACT_STATUS: string;
				/**
				 * The absolute time in milliseconds when the latest status was inserted/updated.
				 */
				var CONTACT_STATUS_TIMESTAMP: string;
				/**
				 * The package containing resources for this status: label and icon.
				 */
				var CONTACT_STATUS_RES_PACKAGE: string;
				/**
				 * The resource ID of the label describing the source of contact status, e.g. "Google Talk". This resource is scoped by the #CONTACT_STATUS_RES_PACKAGE.
				 */
				var CONTACT_STATUS_LABEL: string;
				/**
				 * The resource ID of the icon for the source of contact status. This resource is scoped by the #CONTACT_STATUS_RES_PACKAGE.
				 */
				var CONTACT_STATUS_ICON: string;
			}
			export class RawContactsEntity extends java.lang.Object implements android.provider.IBaseColumns, android.provider.ContactsContract.IDataColumns, android.provider.ContactsContract.IRawContactsColumns {
				/**
				 * The content:// style URI for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URI for this table, specific to the user's profile.
				 */
				static PROFILE_CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of raw contact entities.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The ID of the data column. The value will be null if this raw contact has no data rows. <P>Type: INTEGER</P>
				 */
				static DATA_ID: string;
				static class: java.lang.Class<android.provider.ContactsContract.RawContactsEntity>;
			}
		}
		/**
		 * The Contacts provider stores all information about contacts.
		 */
		export class Contacts extends java.lang.Object {
			/**
			 *  see android.provider.ContactsContract
			 */
			static AUTHORITY: string;
			/**
			 * The content:// style URL for this provider see android.provider.ContactsContract
			 */
			static CONTENT_URI: android.net.Uri;
			static KIND_EMAIL: number;
			/**
			 * Signifies a postal address row that is stored in the ContactMethods table see android.provider.ContactsContract
			 */
			static KIND_POSTAL: number;
			/**
			 * Signifies an IM address row that is stored in the ContactMethods table see android.provider.ContactsContract
			 */
			static KIND_IM: number;
			/**
			 * Signifies an Organization row that is stored in the Organizations table see android.provider.ContactsContract
			 */
			static KIND_ORGANIZATION: number;
			/**
			 * Signifies a Phone row that is stored in the Phones table see android.provider.ContactsContract
			 */
			static KIND_PHONE: number;
			static class: java.lang.Class<android.provider.Contacts>;
		}
		export module Contacts {
			/**
			 * Columns from the Phones table that other columns join into themselves. see android.provider.ContactsContract
			 */
			interface IPhonesColumns {
			}
			export module IPhonesColumns {
				/**
				 * The type of the the phone number. <P>Type: INTEGER (one of the constants below)</P> see android.provider.ContactsContract
				 */
				var TYPE: string;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_CUSTOM: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_HOME: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_MOBILE: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_FAX_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_FAX_HOME: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_PAGER: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_OTHER: number;
				/**
				 * The user provided label for the phone number, only used if TYPE is TYPE_CUSTOM. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var LABEL: string;
				/**
				 * The phone number as the user entered it. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var NUMBER: string;
				/**
				 * The normalized phone number <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var NUMBER_KEY: string;
				/**
				 * Whether this is the primary phone number <P>Type: INTEGER (if set, non-0 means true)</P> see android.provider.ContactsContract
				 */
				var ISPRIMARY: string;
			}
			/**
			 * This table stores all non-phone contact methods and a reference to the person that the contact method belongs to. see android.provider.ContactsContract
			 */
			export class ContactMethods extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IContactMethodsColumns, android.provider.Contacts.IPeopleColumns {
				/**
				 * The column with latitude data for postal locations <P>Type: REAL</P> see android.provider.ContactsContract
				 */
				static POSTAL_LOCATION_LATITUDE: string;
				/**
				 * The column with longitude data for postal locations <P>Type: REAL</P> see android.provider.ContactsContract
				 */
				static POSTAL_LOCATION_LONGITUDE: string;
				/**
				 * The predefined IM protocol types. The protocol can either be non-present, one of these types, or a free-form string. These cases are encoded in the AUX_DATA column as: - null - pre:<an integer, one of the protocols below> - custom:<a string> see android.provider.ContactsContract
				 */
				static PROTOCOL_AIM: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static PROTOCOL_MSN: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static PROTOCOL_YAHOO: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static PROTOCOL_SKYPE: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static PROTOCOL_QQ: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static PROTOCOL_GOOGLE_TALK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static PROTOCOL_ICQ: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static PROTOCOL_JABBER: number;
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URL for sub-directory of e-mail addresses. see android.provider.ContactsContract
				 */
				static CONTENT_EMAIL_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of see android.provider.ContactsContract phones.
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_EMAIL_URI sub-directory of multiple Contacts#KIND_EMAIL entries. see android.provider.ContactsContract
				 */
				static CONTENT_EMAIL_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_EMAIL_URI sub-directory of multiple Contacts#KIND_POSTAL entries. see android.provider.ContactsContract
				 */
				static CONTENT_POSTAL_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI sub-directory of a single Contacts#KIND_EMAIL entry. see android.provider.ContactsContract
				 */
				static CONTENT_EMAIL_ITEM_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI sub-directory of a single Contacts#KIND_POSTAL entry. see android.provider.ContactsContract
				 */
				static CONTENT_POSTAL_ITEM_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI sub-directory of a single Contacts#KIND_IM entry. see android.provider.ContactsContract
				 */
				static CONTENT_IM_ITEM_TYPE: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * The ID of the person this contact method is assigned to. <P>Type: INTEGER (long)</P> see android.provider.ContactsContract
				 */
				static PERSON_ID: string;
				static class: java.lang.Class<android.provider.Contacts.ContactMethods>;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static encodePredefinedImProtocol(protocol: number): string;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static encodeCustomImProtocol(protocolString: string): string;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static decodeImProtocol(encodedString: string): any;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static getDisplayLabel(context: android.content.Context, kind: number, type: number, label: string): string;
				/**
				 * Add a longitude and latitude location to a postal address.
				 * @param context the context to use when updating the database
				 * @param postalId the address to update
				 * @param latitude the latitude for the address
				 * @param longitude the longitude for the address
				 */
				public addPostalLocation(context: android.content.Context, postalId: number, latitude: number, longitude: number): void;
			}
			export module ContactMethods {
				/**
				 * TODO find a place to put the canonical version of these.
				 */
				interface IProviderNames {
				}
				export module IProviderNames {
					var YAHOO: string;
					var GTALK: string;
					var MSN: string;
					var ICQ: string;
					var AIM: string;
					var XMPP: string;
					var JABBER: string;
					var SKYPE: string;
					var QQ: string;
				}
				/**
				 * TODO find a place to put the canonical version of these.
				 */
				export class ProviderNames implements android.provider.Contacts.ContactMethods.IProviderNames {
					constructor(implementation: android.provider.Contacts.ContactMethods.IProviderNames);
					static YAHOO: string;
					static GTALK: string;
					static MSN: string;
					static ICQ: string;
					static AIM: string;
					static XMPP: string;
					static JABBER: string;
					static SKYPE: string;
					static QQ: string;
				}
			}
			/**
			 *  see android.provider.ContactsContract
			 */
			export class GroupMembership extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IGroupsColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static RAW_CONTENT_URI: android.net.Uri;
				/**
				 * The directory twig for this sub-table see android.provider.ContactsContract
				 */
				static CONTENT_DIRECTORY: string;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of all person groups. see android.provider.ContactsContract
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single person group. see android.provider.ContactsContract
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * The row id of the accounts group. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static GROUP_ID: string;
				/**
				 * The sync id of the group. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static GROUP_SYNC_ID: string;
				/**
				 * The account of the group. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static GROUP_SYNC_ACCOUNT: string;
				/**
				 * The account type of the group. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static GROUP_SYNC_ACCOUNT_TYPE: string;
				/**
				 * The row id of the person. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static PERSON_ID: string;
				static class: java.lang.Class<android.provider.Contacts.GroupMembership>;
			}
			/**
			 * Columns from the Photos table that other columns join into themselves. see android.provider.ContactsContract
			 */
			export class PhotosColumns implements android.provider.Contacts.IPhotosColumns {
				constructor(implementation: android.provider.Contacts.IPhotosColumns);
				/**
				 * The _SYNC_VERSION of the photo that was last downloaded <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static LOCAL_VERSION: string;
				/**
				 * The person this photo is associated with. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static PERSON_ID: string;
				/**
				 * non-zero if a download is required and the photo isn't marked as a bad resource. You must specify this in the columns in order to use it in the where clause. <P>Type: INTEGER(boolean)</P> see android.provider.ContactsContract
				 */
				static DOWNLOAD_REQUIRED: string;
				/**
				 * non-zero if this photo is known to exist on the server <P>Type: INTEGER(boolean)</P> see android.provider.ContactsContract
				 */
				static EXISTS_ON_SERVER: string;
				/**
				 * Contains the description of the upload or download error from the previous attempt. If null then the previous attempt succeeded. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static SYNC_ERROR: string;
				/**
				 * The image data, or null if there is no image. <P>Type: BLOB</P> see android.provider.ContactsContract
				 */
				static DATA: string;
			}
			/**
			 * Columns from the Settings table that other columns join into themselves. see android.provider.ContactsContract
			 */
			interface ISettingsColumns {
			}
			export module ISettingsColumns {
				/**
				 * The _SYNC_ACCOUNT to which this setting corresponds. This may be null. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var _SYNC_ACCOUNT: string;
				/**
				 * The _SYNC_ACCOUNT_TYPE to which this setting corresponds. This may be null. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var _SYNC_ACCOUNT_TYPE: string;
				/**
				 * The key of this setting. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var KEY: string;
				/**
				 * The value of this setting. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var VALUE: string;
			}
			/**
			 * The extensions for a person see android.provider.ContactsContract
			 */
			export class Extensions extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IExtensionsColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of phones. see android.provider.ContactsContract
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single phone. see android.provider.ContactsContract
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * The ID of the person this phone number is assigned to. <P>Type: INTEGER (long)</P> see android.provider.ContactsContract
				 */
				static PERSON_ID: string;
				static class: java.lang.Class<android.provider.Contacts.Extensions>;
			}
			/**
			 * The IM presence columns with some contacts specific columns mixed in. see android.provider.ContactsContract
			 */
			interface IPresenceColumns {
			}
			export module IPresenceColumns {
				/**
				 * The priority, an integer, used by XMPP presence <P>Type: INTEGER</P>
				 */
				var PRIORITY: string;
				/**
				 * The server defined status. <P>Type: INTEGER (one of the values below)</P>
				 */
				var PRESENCE_STATUS: string;
				/**
				 * Presence Status definition
				 */
				var OFFLINE: number;
				var INVISIBLE: number;
				var AWAY: number;
				var IDLE: number;
				var DO_NOT_DISTURB: number;
				var AVAILABLE: number;
				/**
				 * The user defined status line. <P>Type: TEXT</P>
				 */
				var PRESENCE_CUSTOM_STATUS: string;
				/**
				 * The IM service the presence is coming from. Formatted using either Contacts.ContactMethods#encodePredefinedImProtocol or Contacts.ContactMethods#encodeCustomImProtocol. <P>Type: STRING</P> see android.provider.ContactsContract
				 */
				var IM_PROTOCOL: string;
				/**
				 * The IM handle the presence item is for. The handle is scoped to the #IM_PROTOCOL. <P>Type: STRING</P> see android.provider.ContactsContract
				 */
				var IM_HANDLE: string;
				/**
				 * The IM account for the local user that the presence data came from. <P>Type: STRING</P> see android.provider.ContactsContract
				 */
				var IM_ACCOUNT: string;
			}
			/**
			 * The photos over all of the people see android.provider.ContactsContract
			 */
			export class Photos extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IPhotosColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The directory twig for this sub-table see android.provider.ContactsContract
				 */
				static CONTENT_DIRECTORY: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				static class: java.lang.Class<android.provider.Contacts.Photos>;
			}
			/**
			 * Columns from the groups table. see android.provider.ContactsContract
			 */
			export class GroupsColumns implements android.provider.Contacts.IGroupsColumns {
				constructor(implementation: android.provider.Contacts.IGroupsColumns);
				/**
				 * The group name. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static NAME: string;
				/**
				 * Notes about the group. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static NOTES: string;
				/**
				 * Whether this group should be synced if the SYNC_EVERYTHING settings is false for this group's account. <P>Type: INTEGER (boolean)</P> see android.provider.ContactsContract
				 */
				static SHOULD_SYNC: string;
				/**
				 * The ID of this group if it is a System Group, null otherwise. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static SYSTEM_ID: string;
			}
			/**
			 * This table stores phone numbers and a reference to the person that the contact method belongs to. Phone numbers are stored separately from other contact methods to make caller ID lookup more efficient. see android.provider.ContactsContract
			 */
			export class Phones extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IPhonesColumns, android.provider.Contacts.IPeopleColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URL for filtering phone numbers see android.provider.ContactsContract
				 */
				static CONTENT_FILTER_URL: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of phones. see android.provider.ContactsContract
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single phone. see android.provider.ContactsContract
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * The ID of the person this phone number is assigned to. <P>Type: INTEGER (long)</P> see android.provider.ContactsContract
				 */
				static PERSON_ID: string;
				static class: java.lang.Class<android.provider.Contacts.Phones>;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static getDisplayLabel(context: android.content.Context, type: number, label: string, labelArray: native.Array<string>): string;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static getDisplayLabel(context: android.content.Context, type: number, label: string): string;
			}
			/**
			 * This table contains the groups for an account. see android.provider.ContactsContract
			 */
			export class Groups extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IGroupsColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URL for the table that holds the deleted groups. see android.provider.ContactsContract
				 */
				static DELETED_CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of groups. see android.provider.ContactsContract
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single group. see android.provider.ContactsContract
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 *  see android.provider.ContactsContract
				 */
				static GROUP_ANDROID_STARRED: string;
				/**
				 * The "My Contacts" system group. see android.provider.ContactsContract
				 */
				static GROUP_MY_CONTACTS: string;
				static class: java.lang.Class<android.provider.Contacts.Groups>;
			}
			/**
			 * Contains helper classes used to create or manage android.content.Intent Intents that involve contacts. see android.provider.ContactsContract
			 */
			export class Intents extends java.lang.Object {
				/**
				 *  see android.provider.ContactsContract
				 */
				constructor();
				/**
				 * This is the intent that is fired when a search suggestion is clicked on. see android.provider.ContactsContract
				 */
				static SEARCH_SUGGESTION_CLICKED: string;
				/**
				 * This is the intent that is fired when a search suggestion for dialing a number is clicked on. see android.provider.ContactsContract
				 */
				static SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED: string;
				/**
				 * This is the intent that is fired when a search suggestion for creating a contact is clicked on. see android.provider.ContactsContract
				 */
				static SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED: string;
				/**
				 * Starts an Activity that lets the user pick a contact to attach an image to. After picking the contact it launches the image cropper in face detection mode. see android.provider.ContactsContract
				 */
				static ATTACH_IMAGE: string;
				/**
				 * Takes as input a data URI with a mailto: or tel: scheme. If a single contact exists with the given data it will be shown. If no contact exists, a dialog will ask the user if they want to create a new contact with the provided details filled in. If multiple contacts share the data the user will be prompted to pick which contact they want to view.
				 */
				static SHOW_OR_CREATE_CONTACT: string;
				/**
				 * Used with #SHOW_OR_CREATE_CONTACT to force creating a new contact if no matching contact found. Otherwise, default behavior is to prompt user with dialog before creating.
				 */
				static EXTRA_FORCE_CREATE: string;
				/**
				 * Used with #SHOW_OR_CREATE_CONTACT to specify an exact description to be shown when prompting user about creating a new contact.
				 */
				static EXTRA_CREATE_DESCRIPTION: string;
				static class: java.lang.Class<android.provider.Contacts.Intents>;
			}
			export module Intents {
				/**
				 * Intents related to the Contacts app UI. see android.provider.ContactsContract
				 */
				export class UI extends java.lang.Object {
					/**
					 *  see android.provider.ContactsContract
					 */
					constructor();
					/**
					 * The action for the default contacts list tab. see android.provider.ContactsContract
					 */
					static LIST_DEFAULT: string;
					/**
					 * The action for the contacts list tab. see android.provider.ContactsContract
					 */
					static LIST_GROUP_ACTION: string;
					/**
					 * When in LIST_GROUP_ACTION mode, this is the group to display. see android.provider.ContactsContract
					 */
					static GROUP_NAME_EXTRA_KEY: string;
					/**
					 * The action for the all contacts list tab. see android.provider.ContactsContract
					 */
					static LIST_ALL_CONTACTS_ACTION: string;
					/**
					 * The action for the contacts with phone numbers list tab. see android.provider.ContactsContract
					 */
					static LIST_CONTACTS_WITH_PHONES_ACTION: string;
					/**
					 * The action for the starred contacts list tab. see android.provider.ContactsContract
					 */
					static LIST_STARRED_ACTION: string;
					/**
					 * The action for the frequent contacts list tab. see android.provider.ContactsContract
					 */
					static LIST_FREQUENT_ACTION: string;
					/**
					 * The action for the "strequent" contacts list tab. It first lists the starred contacts in alphabetical order and then the frequent contacts in descending order of the number of times they have been contacted. see android.provider.ContactsContract
					 */
					static LIST_STREQUENT_ACTION: string;
					/**
					 * A key for to be used as an intent extra to set the activity title to a custom String value. see android.provider.ContactsContract
					 */
					static TITLE_EXTRA_KEY: string;
					/**
					 * Activity Action: Display a filtered list of contacts
					 */
					static FILTER_CONTACTS_ACTION: string;
					/**
					 * Used as an int extra field in #FILTER_CONTACTS_ACTION intents to supply the text on which to filter. see android.provider.ContactsContract
					 */
					static FILTER_TEXT_EXTRA_KEY: string;
					static class: java.lang.Class<android.provider.Contacts.Intents.UI>;
				}
				/**
				 * Convenience class that contains string constants used to create contact android.content.Intent Intents. see android.provider.ContactsContract
				 */
				export class Insert extends java.lang.Object {
					/**
					 *  see android.provider.ContactsContract
					 */
					constructor();
					/**
					 * The action code to use when adding a contact see android.provider.ContactsContract
					 */
					static ACTION: string;
					/**
					 * If present, forces a bypass of quick insert mode. see android.provider.ContactsContract
					 */
					static FULL_MODE: string;
					/**
					 * The extra field for the contact name. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static NAME: string;
					/**
					 * The extra field for the contact phonetic name. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static PHONETIC_NAME: string;
					/**
					 * The extra field for the contact company. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static COMPANY: string;
					/**
					 * The extra field for the contact job title. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static JOB_TITLE: string;
					/**
					 * The extra field for the contact notes. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static NOTES: string;
					/**
					 * The extra field for the contact phone number. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static PHONE: string;
					/**
					 * The extra field for the contact phone number type. <P>Type: Either an integer value from android.provider.Contacts.PhonesColumns PhonesColumns, or a string specifying a custom label.</P> see android.provider.ContactsContract
					 */
					static PHONE_TYPE: string;
					/**
					 * The extra field for the phone isprimary flag. <P>Type: boolean</P> see android.provider.ContactsContract
					 */
					static PHONE_ISPRIMARY: string;
					/**
					 * The extra field for an optional second contact phone number. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static SECONDARY_PHONE: string;
					/**
					 * The extra field for an optional second contact phone number type. <P>Type: Either an integer value from android.provider.Contacts.PhonesColumns PhonesColumns, or a string specifying a custom label.</P> see android.provider.ContactsContract
					 */
					static SECONDARY_PHONE_TYPE: string;
					/**
					 * The extra field for an optional third contact phone number. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static TERTIARY_PHONE: string;
					/**
					 * The extra field for an optional third contact phone number type. <P>Type: Either an integer value from android.provider.Contacts.PhonesColumns PhonesColumns, or a string specifying a custom label.</P> see android.provider.ContactsContract
					 */
					static TERTIARY_PHONE_TYPE: string;
					/**
					 * The extra field for the contact email address. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static EMAIL: string;
					/**
					 * The extra field for the contact email type. <P>Type: Either an integer value from android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns or a string specifying a custom label.</P> see android.provider.ContactsContract
					 */
					static EMAIL_TYPE: string;
					/**
					 * The extra field for the email isprimary flag. <P>Type: boolean</P> see android.provider.ContactsContract
					 */
					static EMAIL_ISPRIMARY: string;
					/**
					 * The extra field for an optional second contact email address. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static SECONDARY_EMAIL: string;
					/**
					 * The extra field for an optional second contact email type. <P>Type: Either an integer value from android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns or a string specifying a custom label.</P> see android.provider.ContactsContract
					 */
					static SECONDARY_EMAIL_TYPE: string;
					/**
					 * The extra field for an optional third contact email address. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static TERTIARY_EMAIL: string;
					/**
					 * The extra field for an optional third contact email type. <P>Type: Either an integer value from android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns or a string specifying a custom label.</P> see android.provider.ContactsContract
					 */
					static TERTIARY_EMAIL_TYPE: string;
					/**
					 * The extra field for the contact postal address. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static POSTAL: string;
					/**
					 * The extra field for the contact postal address type. <P>Type: Either an integer value from android.provider.Contacts.ContactMethodsColumns ContactMethodsColumns or a string specifying a custom label.</P> see android.provider.ContactsContract
					 */
					static POSTAL_TYPE: string;
					/**
					 * The extra field for the postal isprimary flag. <P>Type: boolean</P> see android.provider.ContactsContract
					 */
					static POSTAL_ISPRIMARY: string;
					/**
					 * The extra field for an IM handle. <P>Type: String</P> see android.provider.ContactsContract
					 */
					static IM_HANDLE: string;
					/**
					 * The extra field for the IM protocol <P>Type: the result of Contacts.ContactMethods#encodePredefinedImProtocol or Contacts.ContactMethods#encodeCustomImProtocol.</P> see android.provider.ContactsContract
					 */
					static IM_PROTOCOL: string;
					/**
					 * The extra field for the IM isprimary flag. <P>Type: boolean</P> see android.provider.ContactsContract
					 */
					static IM_ISPRIMARY: string;
					static class: java.lang.Class<android.provider.Contacts.Intents.Insert>;
				}
			}
			/**
			 * The settings over all of the people see android.provider.ContactsContract
			 */
			export class Settings extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.ISettingsColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The directory twig for this sub-table see android.provider.ContactsContract
				 */
				static CONTENT_DIRECTORY: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * A setting that is used to indicate if we should sync down all groups for the specified account. For this setting the _SYNC_ACCOUNT column must be set. If this isn't set then we will only sync the groups whose SHOULD_SYNC column is set to true.
				 */
				static SYNC_EVERYTHING: string;
				static class: java.lang.Class<android.provider.Contacts.Settings>;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static getSetting(cr: android.content.ContentResolver, account: string, key: string): string;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static setSetting(cr: android.content.ContentResolver, account: string, key: string, value: string): void;
			}
			/**
			 * Columns from the People table that other tables join into themselves. see android.provider.ContactsContract
			 */
			interface IPeopleColumns {
			}
			export module IPeopleColumns {
				/**
				 * The person's name. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var NAME: string;
				/**
				 * Phonetic equivalent of the person's name, in a locale-dependent character set (e.g. hiragana for Japanese). Used for pronunciation and/or collation in some languages.
				 */
				var PHONETIC_NAME: string;
				/**
				 * The display name. If name is not null name, else if number is not null number, else if email is not null email. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var DISPLAY_NAME: string;
				/**
				 * Notes about the person. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var NOTES: string;
				/**
				 * The number of times a person has been contacted <P>Type: INTEGER</P> see android.provider.ContactsContract
				 */
				var TIMES_CONTACTED: string;
				/**
				 * The last time a person was contacted. <P>Type: INTEGER</P> see android.provider.ContactsContract
				 */
				var LAST_TIME_CONTACTED: string;
				/**
				 * A custom ringtone associated with a person. Not always present. <P>Type: TEXT (URI to the ringtone)</P> see android.provider.ContactsContract
				 */
				var CUSTOM_RINGTONE: string;
				/**
				 * Whether the person should always be sent to voicemail. Not always present. <P>Type: INTEGER (0 for false, 1 for true)</P> see android.provider.ContactsContract
				 */
				var SEND_TO_VOICEMAIL: string;
				/**
				 * Is the contact starred? <P>Type: INTEGER (boolean)</P> see android.provider.ContactsContract
				 */
				var STARRED: string;
				/**
				 * The server version of the photo <P>Type: TEXT (the version number portion of the photo URI)</P> see android.provider.ContactsContract
				 */
				var PHOTO_VERSION: string;
			}
			/**
			 * Columns from the Organizations table that other columns join into themselves. see android.provider.ContactsContract
			 */
			export class OrganizationColumns implements android.provider.Contacts.IOrganizationColumns {
				constructor(implementation: android.provider.Contacts.IOrganizationColumns);
				/**
				 * The type of the organizations. <P>Type: INTEGER (one of the constants below)</P> see android.provider.ContactsContract
				 */
				static TYPE: string;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_CUSTOM: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_OTHER: number;
				/**
				 * The user provided label, only used if TYPE is TYPE_CUSTOM. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static LABEL: string;
				/**
				 * The name of the company for this organization. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static COMPANY: string;
				/**
				 * The title within this organization. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static TITLE: string;
				/**
				 * The person this organization is tied to. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static PERSON_ID: string;
				/**
				 * Whether this is the primary organization <P>Type: INTEGER (if set, non-0 means true)</P> see android.provider.ContactsContract
				 */
				static ISPRIMARY: string;
			}
			/**
			 * Columns from the Photos table that other columns join into themselves. see android.provider.ContactsContract
			 */
			interface IPhotosColumns {
			}
			export module IPhotosColumns {
				/**
				 * The _SYNC_VERSION of the photo that was last downloaded <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var LOCAL_VERSION: string;
				/**
				 * The person this photo is associated with. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var PERSON_ID: string;
				/**
				 * non-zero if a download is required and the photo isn't marked as a bad resource. You must specify this in the columns in order to use it in the where clause. <P>Type: INTEGER(boolean)</P> see android.provider.ContactsContract
				 */
				var DOWNLOAD_REQUIRED: string;
				/**
				 * non-zero if this photo is known to exist on the server <P>Type: INTEGER(boolean)</P> see android.provider.ContactsContract
				 */
				var EXISTS_ON_SERVER: string;
				/**
				 * Contains the description of the upload or download error from the previous attempt. If null then the previous attempt succeeded. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var SYNC_ERROR: string;
				/**
				 * The image data, or null if there is no image. <P>Type: BLOB</P> see android.provider.ContactsContract
				 */
				var DATA: string;
			}
			/**
			 * This table contains people. see android.provider.ContactsContract
			 */
			export class People extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IPeopleColumns, android.provider.Contacts.IPhonesColumns, android.provider.Contacts.IPresenceColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The content:// style URL for filtering people by name. The filter argument should be passed as an additional path segment after this URI. see android.provider.ContactsContract
				 */
				static CONTENT_FILTER_URI: android.net.Uri;
				/**
				 * The content:// style URL for the table that holds the deleted contacts. see android.provider.ContactsContract
				 */
				static DELETED_CONTENT_URI: android.net.Uri;
				/**
				 * The MIME type of #CONTENT_URI providing a directory of people. see android.provider.ContactsContract
				 */
				static CONTENT_TYPE: string;
				/**
				 * The MIME type of a #CONTENT_URI subdirectory of a single person. see android.provider.ContactsContract
				 */
				static CONTENT_ITEM_TYPE: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				/**
				 * The ID of the persons preferred phone number. <P>Type: INTEGER (foreign key to phones table on the _ID field)</P> see android.provider.ContactsContract
				 */
				static PRIMARY_PHONE_ID: string;
				/**
				 * The ID of the persons preferred email. <P>Type: INTEGER (foreign key to contact_methods table on the _ID field)</P> see android.provider.ContactsContract
				 */
				static PRIMARY_EMAIL_ID: string;
				/**
				 * The ID of the persons preferred organization. <P>Type: INTEGER (foreign key to organizations table on the _ID field)</P> see android.provider.ContactsContract
				 */
				static PRIMARY_ORGANIZATION_ID: string;
				static class: java.lang.Class<android.provider.Contacts.People>;
				/**
				 * Mark a person as having been contacted.
				 * @param resolver the ContentResolver to use
				 * @param personId the person who was contacted
				 */
				public static markAsContacted(resolver: android.content.ContentResolver, personId: number): void;
				/**
				 * Adds a person to the My Contacts group.
				 * @param resolver the resolver to use
				 * @param personId the person to add to the group
				 */
				public static addToMyContactsGroup(resolver: android.content.ContentResolver, personId: number): android.net.Uri;
				/**
				 * Adds a person to a group referred to by name.
				 * @param resolver the resolver to use
				 * @param personId the person to add to the group
				 * @param groupName the name of the group to add the contact to
				 */
				public static addToGroup(resolver: android.content.ContentResolver, personId: number, groupName: string): android.net.Uri;
				/**
				 * Adds a person to a group.
				 * @param resolver the resolver to use
				 * @param personId the person to add to the group
				 * @param groupId the group to add the person to
				 */
				public static addToGroup(resolver: android.content.ContentResolver, personId: number, groupId: number): android.net.Uri;
				/**
				 * Creates a new contacts and adds it to the "My Contacts" group.
				 * @param resolver the ContentResolver to use
				 * @param values the values to use when creating the contact
				 */
				public static createPersonInMyContactsGroup(resolver: android.content.ContentResolver, values: android.content.ContentValues): android.net.Uri;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static queryGroups(resolver: android.content.ContentResolver, person: number): android.database.ICursor;
				/**
				 * Set the photo for this person. data may be null
				 * @param cr the ContentResolver to use
				 * @param person the Uri of the person whose photo is to be updated
				 * @param data the byte[] that represents the photo
				 */
				public static setPhotoData(cr: android.content.ContentResolver, person: android.net.Uri, data: native.Array<number>): void;
				/**
				 * Opens an InputStream for the person's photo and returns the photo as a Bitmap. If the person's photo isn't present returns the placeholderImageResource instead.
				 * @param cr person the person whose photo should be used
				 * @param person 
				 */
				public static openContactPhotoInputStream(cr: android.content.ContentResolver, person: android.net.Uri): java.io.InputStream;
				/**
				 * Opens an InputStream for the person's photo and returns the photo as a Bitmap. If the person's photo isn't present returns the placeholderImageResource instead.
				 * @param context the Context
				 * @param person the person whose photo should be used
				 * @param placeholderImageResource the image resource to use if the person doesn't
				 * @param options the decoding options, can be set to null
				 */
				public static loadContactPhoto(context: android.content.Context, person: android.net.Uri, placeholderImageResource: number, options: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
			}
			export module People {
				/**
				 * A subdirectory of a single person that contains all of their ContactMethods. see android.provider.ContactsContract
				 */
				export class ContactMethods extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IContactMethodsColumns, android.provider.Contacts.IPeopleColumns {
					/**
					 * The directory twig for this sub-table see android.provider.ContactsContract
					 */
					static CONTENT_DIRECTORY: string;
					/**
					 * The default sort order for this table see android.provider.ContactsContract
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.Contacts.People.ContactMethods>;
				}
				/**
				 * A sub directory of a single person that contains all of their Phones. see android.provider.ContactsContract
				 */
				export class Phones extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IPhonesColumns, android.provider.Contacts.IPeopleColumns {
					/**
					 * The directory twig for this sub-table see android.provider.ContactsContract
					 */
					static CONTENT_DIRECTORY: string;
					/**
					 * The default sort order for this table see android.provider.ContactsContract
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.Contacts.People.Phones>;
				}
				/**
				 * The extensions for a person see android.provider.ContactsContract
				 */
				export class Extensions extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IExtensionsColumns {
					/**
					 * The directory twig for this sub-table see android.provider.ContactsContract
					 */
					static CONTENT_DIRECTORY: string;
					/**
					 * The default sort order for this table see android.provider.ContactsContract
					 */
					static DEFAULT_SORT_ORDER: string;
					/**
					 * The ID of the person this phone number is assigned to. <P>Type: INTEGER (long)</P> see android.provider.ContactsContract
					 */
					static PERSON_ID: string;
					static class: java.lang.Class<android.provider.Contacts.People.Extensions>;
				}
			}
			/**
			 * Columns from the Phones table that other columns join into themselves. see android.provider.ContactsContract
			 */
			export class PhonesColumns implements android.provider.Contacts.IPhonesColumns {
				constructor(implementation: android.provider.Contacts.IPhonesColumns);
				/**
				 * The type of the the phone number. <P>Type: INTEGER (one of the constants below)</P> see android.provider.ContactsContract
				 */
				static TYPE: string;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_CUSTOM: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_HOME: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_MOBILE: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_FAX_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_FAX_HOME: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_PAGER: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_OTHER: number;
				/**
				 * The user provided label for the phone number, only used if TYPE is TYPE_CUSTOM. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static LABEL: string;
				/**
				 * The phone number as the user entered it. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static NUMBER: string;
				/**
				 * The normalized phone number <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static NUMBER_KEY: string;
				/**
				 * Whether this is the primary phone number <P>Type: INTEGER (if set, non-0 means true)</P> see android.provider.ContactsContract
				 */
				static ISPRIMARY: string;
			}
			/**
			 * Columns from the Organizations table that other columns join into themselves. see android.provider.ContactsContract
			 */
			interface IOrganizationColumns {
			}
			export module IOrganizationColumns {
				/**
				 * The type of the organizations. <P>Type: INTEGER (one of the constants below)</P> see android.provider.ContactsContract
				 */
				var TYPE: string;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_CUSTOM: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_OTHER: number;
				/**
				 * The user provided label, only used if TYPE is TYPE_CUSTOM. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var LABEL: string;
				/**
				 * The name of the company for this organization. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var COMPANY: string;
				/**
				 * The title within this organization. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var TITLE: string;
				/**
				 * The person this organization is tied to. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var PERSON_ID: string;
				/**
				 * Whether this is the primary organization <P>Type: INTEGER (if set, non-0 means true)</P> see android.provider.ContactsContract
				 */
				var ISPRIMARY: string;
			}
			/**
			 *  see android.provider.ContactsContract
			 */
			interface IExtensionsColumns {
			}
			export module IExtensionsColumns {
				/**
				 * The name of this extension. May not be null. There may be at most one row for each name. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var NAME: string;
				/**
				 * The value of this extension. May not be null. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var VALUE: string;
			}
			/**
			 *  see android.provider.ContactsContract
			 */
			export class ExtensionsColumns implements android.provider.Contacts.IExtensionsColumns {
				constructor(implementation: android.provider.Contacts.IExtensionsColumns);
				/**
				 * The name of this extension. May not be null. There may be at most one row for each name. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static NAME: string;
				/**
				 * The value of this extension. May not be null. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static VALUE: string;
			}
			/**
			 * Columns from the People table that other tables join into themselves. see android.provider.ContactsContract
			 */
			export class PeopleColumns implements android.provider.Contacts.IPeopleColumns {
				constructor(implementation: android.provider.Contacts.IPeopleColumns);
				/**
				 * The person's name. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static NAME: string;
				/**
				 * Phonetic equivalent of the person's name, in a locale-dependent character set (e.g. hiragana for Japanese). Used for pronunciation and/or collation in some languages.
				 */
				static PHONETIC_NAME: string;
				/**
				 * The display name. If name is not null name, else if number is not null number, else if email is not null email. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static DISPLAY_NAME: string;
				/**
				 * Notes about the person. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static NOTES: string;
				/**
				 * The number of times a person has been contacted <P>Type: INTEGER</P> see android.provider.ContactsContract
				 */
				static TIMES_CONTACTED: string;
				/**
				 * The last time a person was contacted. <P>Type: INTEGER</P> see android.provider.ContactsContract
				 */
				static LAST_TIME_CONTACTED: string;
				/**
				 * A custom ringtone associated with a person. Not always present. <P>Type: TEXT (URI to the ringtone)</P> see android.provider.ContactsContract
				 */
				static CUSTOM_RINGTONE: string;
				/**
				 * Whether the person should always be sent to voicemail. Not always present. <P>Type: INTEGER (0 for false, 1 for true)</P> see android.provider.ContactsContract
				 */
				static SEND_TO_VOICEMAIL: string;
				/**
				 * Is the contact starred? <P>Type: INTEGER (boolean)</P> see android.provider.ContactsContract
				 */
				static STARRED: string;
				/**
				 * The server version of the photo <P>Type: TEXT (the version number portion of the photo URI)</P> see android.provider.ContactsContract
				 */
				static PHOTO_VERSION: string;
			}
			/**
			 * Columns from the ContactMethods table that other tables join into themseleves. see android.provider.ContactsContract
			 */
			interface IContactMethodsColumns {
			}
			export module IContactMethodsColumns {
				/**
				 * The kind of the the contact method. For example, email address, postal address, etc. <P>Type: INTEGER (one of the values below)</P> see android.provider.ContactsContract
				 */
				var KIND: string;
				/**
				 * The type of the contact method, must be one of the types below. <P>Type: INTEGER (one of the values below)</P> see android.provider.ContactsContract
				 */
				var TYPE: string;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_CUSTOM: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_HOME: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				var TYPE_OTHER: number;
				/**
				 * The user defined label for the the contact method. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var LABEL: string;
				/**
				 * The data for the contact method. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var DATA: string;
				/**
				 * Auxiliary data for the contact method. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var AUX_DATA: string;
				/**
				 * Whether this is the primary organization <P>Type: INTEGER (if set, non-0 means true)</P> see android.provider.ContactsContract
				 */
				var ISPRIMARY: string;
			}
			/**
			 * Columns from the groups table. see android.provider.ContactsContract
			 */
			interface IGroupsColumns {
			}
			export module IGroupsColumns {
				/**
				 * The group name. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var NAME: string;
				/**
				 * Notes about the group. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var NOTES: string;
				/**
				 * Whether this group should be synced if the SYNC_EVERYTHING settings is false for this group's account. <P>Type: INTEGER (boolean)</P> see android.provider.ContactsContract
				 */
				var SHOULD_SYNC: string;
				/**
				 * The ID of this group if it is a System Group, null otherwise. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				var SYSTEM_ID: string;
			}
			/**
			 * A sub directory of a single person that contains all of their Phones. see android.provider.ContactsContract
			 */
			export class Organizations extends java.lang.Object implements android.provider.IBaseColumns, android.provider.Contacts.IOrganizationColumns {
				/**
				 * The content:// style URL for this table see android.provider.ContactsContract
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * The directory twig for this sub-table see android.provider.ContactsContract
				 */
				static CONTENT_DIRECTORY: string;
				/**
				 * The default sort order for this table see android.provider.ContactsContract
				 */
				static DEFAULT_SORT_ORDER: string;
				static class: java.lang.Class<android.provider.Contacts.Organizations>;
				/**
				 *  see android.provider.ContactsContract
				 */
				public static getDisplayLabel(context: android.content.Context, type: number, label: string): string;
			}
			/**
			 * Columns from the Settings table that other columns join into themselves. see android.provider.ContactsContract
			 */
			export class SettingsColumns implements android.provider.Contacts.ISettingsColumns {
				constructor(implementation: android.provider.Contacts.ISettingsColumns);
				/**
				 * The _SYNC_ACCOUNT to which this setting corresponds. This may be null. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static _SYNC_ACCOUNT: string;
				/**
				 * The _SYNC_ACCOUNT_TYPE to which this setting corresponds. This may be null. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static _SYNC_ACCOUNT_TYPE: string;
				/**
				 * The key of this setting. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static KEY: string;
				/**
				 * The value of this setting. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static VALUE: string;
			}
			/**
			 * The IM presence columns with some contacts specific columns mixed in. see android.provider.ContactsContract
			 */
			export class PresenceColumns implements android.provider.Contacts.IPresenceColumns {
				constructor(implementation: android.provider.Contacts.IPresenceColumns);
				/**
				 * The priority, an integer, used by XMPP presence <P>Type: INTEGER</P>
				 */
				static PRIORITY: string;
				/**
				 * The server defined status. <P>Type: INTEGER (one of the values below)</P>
				 */
				static PRESENCE_STATUS: string;
				/**
				 * Presence Status definition
				 */
				static OFFLINE: number;
				static INVISIBLE: number;
				static AWAY: number;
				static IDLE: number;
				static DO_NOT_DISTURB: number;
				static AVAILABLE: number;
				/**
				 * The user defined status line. <P>Type: TEXT</P>
				 */
				static PRESENCE_CUSTOM_STATUS: string;
				/**
				 * The IM service the presence is coming from. Formatted using either Contacts.ContactMethods#encodePredefinedImProtocol or Contacts.ContactMethods#encodeCustomImProtocol. <P>Type: STRING</P> see android.provider.ContactsContract
				 */
				static IM_PROTOCOL: string;
				/**
				 * The IM handle the presence item is for. The handle is scoped to the #IM_PROTOCOL. <P>Type: STRING</P> see android.provider.ContactsContract
				 */
				static IM_HANDLE: string;
				/**
				 * The IM account for the local user that the presence data came from. <P>Type: STRING</P> see android.provider.ContactsContract
				 */
				static IM_ACCOUNT: string;
			}
			/**
			 * Columns from the ContactMethods table that other tables join into themseleves. see android.provider.ContactsContract
			 */
			export class ContactMethodsColumns implements android.provider.Contacts.IContactMethodsColumns {
				constructor(implementation: android.provider.Contacts.IContactMethodsColumns);
				/**
				 * The kind of the the contact method. For example, email address, postal address, etc. <P>Type: INTEGER (one of the values below)</P> see android.provider.ContactsContract
				 */
				static KIND: string;
				/**
				 * The type of the contact method, must be one of the types below. <P>Type: INTEGER (one of the values below)</P> see android.provider.ContactsContract
				 */
				static TYPE: string;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_CUSTOM: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_HOME: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_WORK: number;
				/**
				 *  see android.provider.ContactsContract
				 */
				static TYPE_OTHER: number;
				/**
				 * The user defined label for the the contact method. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static LABEL: string;
				/**
				 * The data for the contact method. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static DATA: string;
				/**
				 * Auxiliary data for the contact method. <P>Type: TEXT</P> see android.provider.ContactsContract
				 */
				static AUX_DATA: string;
				/**
				 * Whether this is the primary organization <P>Type: INTEGER (if set, non-0 means true)</P> see android.provider.ContactsContract
				 */
				static ISPRIMARY: string;
			}
		}
		/**
		 * The Media provider contains meta data for all available media on both internal and external storage devices.
		 */
		export class MediaStore extends java.lang.Object {
			constructor();
			static AUTHORITY: string;
			/**
			 * Activity Action: Launch a music player. The activity should be able to play, browse, or manipulate music files stored on the device.
			 */
			static INTENT_ACTION_MUSIC_PLAYER: string;
			/**
			 * Activity Action: Perform a search for media. Contains at least the android.app.SearchManager#QUERY extra. May also contain any combination of the following extras: EXTRA_MEDIA_ARTIST, EXTRA_MEDIA_ALBUM, EXTRA_MEDIA_TITLE, EXTRA_MEDIA_FOCUS
			 */
			static INTENT_ACTION_MEDIA_SEARCH: string;
			/**
			 * An intent to perform a search for music media and automatically play content from the result when possible. This can be fired, for example, by the result of a voice recognition command to listen to music.
			 */
			static INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH: string;
			/**
			 * An intent to perform a search for readable media and automatically play content from the result when possible. This can be fired, for example, by the result of a voice recognition command to read a book or magazine.
			 */
			static INTENT_ACTION_TEXT_OPEN_FROM_SEARCH: string;
			/**
			 * An intent to perform a search for video media and automatically play content from the result when possible. This can be fired, for example, by the result of a voice recognition command to play movies.
			 */
			static INTENT_ACTION_VIDEO_PLAY_FROM_SEARCH: string;
			/**
			 * The name of the Intent-extra used to define the artist
			 */
			static EXTRA_MEDIA_ARTIST: string;
			/**
			 * The name of the Intent-extra used to define the album
			 */
			static EXTRA_MEDIA_ALBUM: string;
			/**
			 * The name of the Intent-extra used to define the song title
			 */
			static EXTRA_MEDIA_TITLE: string;
			/**
			 * The name of the Intent-extra used to define the search focus. The search focus indicates whether the search should be for things related to the artist, album or song that is identified by the other extras.
			 */
			static EXTRA_MEDIA_FOCUS: string;
			/**
			 * The name of the Intent-extra used to control the orientation of a ViewImage or a MovieView. This is an int property that overrides the activity's requestedOrientation. android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
			 */
			static EXTRA_SCREEN_ORIENTATION: string;
			/**
			 * The name of an Intent-extra used to control the UI of a ViewImage. This is a boolean property that overrides the activity's default fullscreen state.
			 */
			static EXTRA_FULL_SCREEN: string;
			/**
			 * The name of an Intent-extra used to control the UI of a ViewImage. This is a boolean property that specifies whether or not to show action icons.
			 */
			static EXTRA_SHOW_ACTION_ICONS: string;
			/**
			 * The name of the Intent-extra used to control the onCompletion behavior of a MovieView. This is a boolean property that specifies whether or not to finish the MovieView activity when the movie completes playing. The default value is true, which means to automatically exit the movie player activity when the movie completes playing.
			 */
			static EXTRA_FINISH_ON_COMPLETION: string;
			/**
			 * The name of the Intent action used to launch a camera in still image mode.
			 */
			static INTENT_ACTION_STILL_IMAGE_CAMERA: string;
			/**
			 * The name of the Intent action used to launch a camera in still image mode for use when the device is secured (e.g. with a pin, password, pattern, or face unlock). Applications responding to this intent must not expose any personal content like existing photos or videos on the device. The applications should be careful not to share any photo or video with other applications or internet. The activity should use android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED to display on top of the lock screen while secured. There is no activity stack when this flag is used, so launching more than one activity is strongly discouraged.
			 */
			static INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE: string;
			/**
			 * The name of the Intent action used to launch a camera in video mode.
			 */
			static INTENT_ACTION_VIDEO_CAMERA: string;
			/**
			 * Standard Intent action that can be sent to have the camera application capture an image and return it.
			 */
			static ACTION_IMAGE_CAPTURE: string;
			/**
			 * Intent action that can be sent to have the camera application capture an image and return it when the device is secured (e.g. with a pin, password, pattern, or face unlock). Applications responding to this intent must not expose any personal content like existing photos or videos on the device. The applications should be careful not to share any photo or video with other applications or internet. The activity should use android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED to display on top of the lock screen while secured. There is no activity stack when this flag is used, so launching more than one activity is strongly discouraged.
			 */
			static ACTION_IMAGE_CAPTURE_SECURE: string;
			/**
			 * Standard Intent action that can be sent to have the camera application capture a video and return it.
			 */
			static ACTION_VIDEO_CAPTURE: string;
			/**
			 * The name of the Intent-extra used to control the quality of a recorded video. This is an integer property. Currently value 0 means low quality, suitable for MMS messages, and value 1 means high quality. In the future other quality levels may be added.
			 */
			static EXTRA_VIDEO_QUALITY: string;
			/**
			 * Specify the maximum allowed size.
			 */
			static EXTRA_SIZE_LIMIT: string;
			/**
			 * Specify the maximum allowed recording duration in seconds.
			 */
			static EXTRA_DURATION_LIMIT: string;
			/**
			 * The name of the Intent-extra used to indicate a content resolver Uri to be used to store the requested image or video.
			 */
			static EXTRA_OUTPUT: string;
			/**
			 * The string that is used when a media attribute is not known. For example, if an audio file does not have any meta data, the artist and album columns will be set to this value.
			 */
			static UNKNOWN_STRING: string;
			/**
			 * Name of current volume being scanned by the media scanner.
			 */
			static MEDIA_SCANNER_VOLUME: string;
			/**
			 * Name of the file signaling the media scanner to ignore media in the containing directory and its subdirectories. Developers should use this to avoid application graphics showing up in the Gallery and likewise prevent application sounds and music from showing up in the Music app.
			 */
			static MEDIA_IGNORE_FILENAME: string;
			static class: java.lang.Class<android.provider.MediaStore>;
			/**
			 * Uri for querying the state of the media scanner.
			 */
			public static getMediaScannerUri(): android.net.Uri;
			/**
			 * Get the media provider's version. Applications that import data from the media provider into their own caches can use this to detect that the media provider changed, and reimport data as needed. No other assumptions should be made about the meaning of the version.
			 * @param context Context to use for performing the query.
			 */
			public static getVersion(context: android.content.Context): string;
		}
		export module MediaStore {
			export class Video extends java.lang.Object {
				constructor();
				/**
				 * The default sort order for this table.
				 */
				static DEFAULT_SORT_ORDER: string;
				static class: java.lang.Class<android.provider.MediaStore.Video>;
				public static query(cr: android.content.ContentResolver, uri: android.net.Uri, projection: native.Array<string>): android.database.ICursor;
			}
			export module Video {
				export class VideoColumns implements android.provider.MediaStore.IMediaColumns, android.provider.MediaStore.Video.IVideoColumns {
					constructor(implementation: android.provider.MediaStore.Video.IVideoColumns);
					/**
					 * The duration of the video file, in ms <P>Type: INTEGER (long)</P>
					 */
					static DURATION: string;
					/**
					 * The artist who created the video file, if any <P>Type: TEXT</P>
					 */
					static ARTIST: string;
					/**
					 * The album the video file is from, if any <P>Type: TEXT</P>
					 */
					static ALBUM: string;
					/**
					 * The resolution of the video file, formatted as "XxY" <P>Type: TEXT</P>
					 */
					static RESOLUTION: string;
					/**
					 * The description of the video recording <P>Type: TEXT</P>
					 */
					static DESCRIPTION: string;
					/**
					 * Whether the video should be published as public or private <P>Type: INTEGER</P>
					 */
					static IS_PRIVATE: string;
					/**
					 * The user-added tags associated with a video <P>Type: TEXT</P>
					 */
					static TAGS: string;
					/**
					 * The YouTube category of the video <P>Type: TEXT</P>
					 */
					static CATEGORY: string;
					/**
					 * The language of the video <P>Type: TEXT</P>
					 */
					static LANGUAGE: string;
					/**
					 * The latitude where the video was captured. <P>Type: DOUBLE</P>
					 */
					static LATITUDE: string;
					/**
					 * The longitude where the video was captured. <P>Type: DOUBLE</P>
					 */
					static LONGITUDE: string;
					/**
					 * The date & time that the video was taken in units of milliseconds since jan 1, 1970. <P>Type: INTEGER</P>
					 */
					static DATE_TAKEN: string;
					/**
					 * The mini thumb id. <P>Type: INTEGER</P>
					 */
					static MINI_THUMB_MAGIC: string;
					/**
					 * The bucket id of the video. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					static BUCKET_ID: string;
					/**
					 * The bucket display name of the video. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					static BUCKET_DISPLAY_NAME: string;
					/**
					 * The bookmark for the video. Time in ms. Represents the location in the video that the video should start playing at the next time it is opened. If the value is null or out of the range 0..DURATION-1 then the video should start playing from the beginning. <P>Type: INTEGER</P>
					 */
					static BOOKMARK: string;
				}
				interface IVideoColumns extends android.provider.MediaStore.IMediaColumns {
				}
				export module IVideoColumns {
					/**
					 * The duration of the video file, in ms <P>Type: INTEGER (long)</P>
					 */
					var DURATION: string;
					/**
					 * The artist who created the video file, if any <P>Type: TEXT</P>
					 */
					var ARTIST: string;
					/**
					 * The album the video file is from, if any <P>Type: TEXT</P>
					 */
					var ALBUM: string;
					/**
					 * The resolution of the video file, formatted as "XxY" <P>Type: TEXT</P>
					 */
					var RESOLUTION: string;
					/**
					 * The description of the video recording <P>Type: TEXT</P>
					 */
					var DESCRIPTION: string;
					/**
					 * Whether the video should be published as public or private <P>Type: INTEGER</P>
					 */
					var IS_PRIVATE: string;
					/**
					 * The user-added tags associated with a video <P>Type: TEXT</P>
					 */
					var TAGS: string;
					/**
					 * The YouTube category of the video <P>Type: TEXT</P>
					 */
					var CATEGORY: string;
					/**
					 * The language of the video <P>Type: TEXT</P>
					 */
					var LANGUAGE: string;
					/**
					 * The latitude where the video was captured. <P>Type: DOUBLE</P>
					 */
					var LATITUDE: string;
					/**
					 * The longitude where the video was captured. <P>Type: DOUBLE</P>
					 */
					var LONGITUDE: string;
					/**
					 * The date & time that the video was taken in units of milliseconds since jan 1, 1970. <P>Type: INTEGER</P>
					 */
					var DATE_TAKEN: string;
					/**
					 * The mini thumb id. <P>Type: INTEGER</P>
					 */
					var MINI_THUMB_MAGIC: string;
					/**
					 * The bucket id of the video. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					var BUCKET_ID: string;
					/**
					 * The bucket display name of the video. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					var BUCKET_DISPLAY_NAME: string;
					/**
					 * The bookmark for the video. Time in ms. Represents the location in the video that the video should start playing at the next time it is opened. If the value is null or out of the range 0..DURATION-1 then the video should start playing from the beginning. <P>Type: INTEGER</P>
					 */
					var BOOKMARK: string;
				}
				export class Media extends java.lang.Object implements android.provider.MediaStore.Video.IVideoColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The MIME type for this table.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.MediaStore.Video.Media>;
					/**
					 * Get the content:// style URI for the video media table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
				}
				/**
				 * This class allows developers to query and get two kinds of thumbnails: MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail
				 */
				export class Thumbnails extends java.lang.Object implements android.provider.IBaseColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					/**
					 * The data stream for the thumbnail <P>Type: DATA STREAM</P>
					 */
					static DATA: string;
					/**
					 * The original image for the thumbnal <P>Type: INTEGER (ID from Video table)</P>
					 */
					static VIDEO_ID: string;
					/**
					 * The kind of the thumbnail <P>Type: INTEGER (One of the values below)</P>
					 */
					static KIND: string;
					static MINI_KIND: number;
					static FULL_SCREEN_KIND: number;
					static MICRO_KIND: number;
					/**
					 * The width of the thumbnal <P>Type: INTEGER (long)</P>
					 */
					static WIDTH: string;
					/**
					 * The height of the thumbnail <P>Type: INTEGER (long)</P>
					 */
					static HEIGHT: string;
					static class: java.lang.Class<android.provider.MediaStore.Video.Thumbnails>;
					/**
					 * This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately. Only the original process which made the getThumbnail requests can cancel their own requests.
					 * @param cr ContentResolver
					 * @param origId original video id
					 */
					public static cancelThumbnailRequest(cr: android.content.ContentResolver, origId: number): void;
					/**
					 * This method checks if the thumbnails of the specified image (origId) has been created. It will be blocked until the thumbnails are generated.
					 * @param cr ContentResolver used to dispatch queries to MediaProvider.
					 * @param origId Original image id associated with thumbnail of interest.
					 * @param kind The type of thumbnail to fetch. Should be either MINI_KIND or MICRO_KIND.
					 * @param options this is only used for MINI_KIND when decoding the Bitmap
					 */
					public static getThumbnail(cr: android.content.ContentResolver, origId: number, kind: number, options: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
					/**
					 * This method checks if the thumbnails of the specified image (origId) has been created. It will be blocked until the thumbnails are generated.
					 * @param cr ContentResolver used to dispatch queries to MediaProvider.
					 * @param origId Original image id associated with thumbnail of interest.
					 * @param groupId the id of group to which this request belongs
					 * @param kind The type of thumbnail to fetch. Should be either MINI_KIND or MICRO_KIND
					 * @param options this is only used for MINI_KIND when decoding the Bitmap
					 */
					public static getThumbnail(cr: android.content.ContentResolver, origId: number, groupId: number, kind: number, options: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
					/**
					 * This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately. Only the original process which made the getThumbnail requests can cancel their own requests.
					 * @param cr ContentResolver
					 * @param origId original video id
					 * @param groupId the same groupId used in getThumbnail.
					 */
					public static cancelThumbnailRequest(cr: android.content.ContentResolver, origId: number, groupId: number): void;
					/**
					 * Get the content:// style URI for the image media table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
				}
			}
			/**
			 * Contains meta data for all available images.
			 */
			export class Images extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.provider.MediaStore.Images>;
			}
			export module Images {
				interface IImageColumns extends android.provider.MediaStore.IMediaColumns {
				}
				export module IImageColumns {
					/**
					 * The description of the image <P>Type: TEXT</P>
					 */
					var DESCRIPTION: string;
					/**
					 * The picasa id of the image <P>Type: TEXT</P>
					 */
					var PICASA_ID: string;
					/**
					 * Whether the video should be published as public or private <P>Type: INTEGER</P>
					 */
					var IS_PRIVATE: string;
					/**
					 * The latitude where the image was captured. <P>Type: DOUBLE</P>
					 */
					var LATITUDE: string;
					/**
					 * The longitude where the image was captured. <P>Type: DOUBLE</P>
					 */
					var LONGITUDE: string;
					/**
					 * The date & time that the image was taken in units of milliseconds since jan 1, 1970. <P>Type: INTEGER</P>
					 */
					var DATE_TAKEN: string;
					/**
					 * The orientation for the image expressed as degrees. Only degrees 0, 90, 180, 270 will work. <P>Type: INTEGER</P>
					 */
					var ORIENTATION: string;
					/**
					 * The mini thumb id. <P>Type: INTEGER</P>
					 */
					var MINI_THUMB_MAGIC: string;
					/**
					 * The bucket id of the image. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					var BUCKET_ID: string;
					/**
					 * The bucket display name of the image. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					var BUCKET_DISPLAY_NAME: string;
				}
				export class Media extends java.lang.Object implements android.provider.MediaStore.Images.IImageColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The MIME type of of this directory of images. Note that each entry in this directory will have a standard image MIME type as appropriate -- for example, image/jpeg.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.MediaStore.Images.Media>;
					public static query(cr: android.content.ContentResolver, uri: android.net.Uri, projection: native.Array<string>): android.database.ICursor;
					public static query(cr: android.content.ContentResolver, uri: android.net.Uri, projection: native.Array<string>, where: string, orderBy: string): android.database.ICursor;
					public static query(cr: android.content.ContentResolver, uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, orderBy: string): android.database.ICursor;
					/**
					 * Retrieves an image for the given url as a Bitmap.
					 * @param cr The content resolver to use
					 * @param url The url of the image
					 */
					public static getBitmap(cr: android.content.ContentResolver, url: android.net.Uri): android.graphics.Bitmap;
					/**
					 * Insert an image and create a thumbnail for it.
					 * @param cr The content resolver to use
					 * @param imagePath The path to the image to insert
					 * @param name The name of the image
					 * @param description The description of the image
					 */
					public static insertImage(cr: android.content.ContentResolver, imagePath: string, name: string, description: string): string;
					/**
					 * Insert an image and create a thumbnail for it.
					 * @param cr The content resolver to use
					 * @param source The stream to use for the image
					 * @param title The name of the image
					 * @param description The description of the image
					 */
					public static insertImage(cr: android.content.ContentResolver, source: android.graphics.Bitmap, title: string, description: string): string;
					/**
					 * Get the content:// style URI for the image media table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
				}
				/**
				 * This class allows developers to query and get two kinds of thumbnails: MINI_KIND: 512 x 384 thumbnail MICRO_KIND: 96 x 96 thumbnail
				 */
				export class Thumbnails extends java.lang.Object implements android.provider.IBaseColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					/**
					 * The data stream for the thumbnail <P>Type: DATA STREAM</P>
					 */
					static DATA: string;
					/**
					 * The original image for the thumbnal <P>Type: INTEGER (ID from Images table)</P>
					 */
					static IMAGE_ID: string;
					/**
					 * The kind of the thumbnail <P>Type: INTEGER (One of the values below)</P>
					 */
					static KIND: string;
					static MINI_KIND: number;
					static FULL_SCREEN_KIND: number;
					static MICRO_KIND: number;
					/**
					 * The blob raw data of thumbnail <P>Type: DATA STREAM</P>
					 */
					static THUMB_DATA: string;
					/**
					 * The width of the thumbnal <P>Type: INTEGER (long)</P>
					 */
					static WIDTH: string;
					/**
					 * The height of the thumbnail <P>Type: INTEGER (long)</P>
					 */
					static HEIGHT: string;
					static class: java.lang.Class<android.provider.MediaStore.Images.Thumbnails>;
					public static query(cr: android.content.ContentResolver, uri: android.net.Uri, projection: native.Array<string>): android.database.ICursor;
					public static queryMiniThumbnails(cr: android.content.ContentResolver, uri: android.net.Uri, kind: number, projection: native.Array<string>): android.database.ICursor;
					public static queryMiniThumbnail(cr: android.content.ContentResolver, origId: number, kind: number, projection: native.Array<string>): android.database.ICursor;
					/**
					 * This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately. Only the original process which made the getThumbnail requests can cancel their own requests.
					 * @param cr ContentResolver
					 * @param origId original image id
					 */
					public static cancelThumbnailRequest(cr: android.content.ContentResolver, origId: number): void;
					/**
					 * This method checks if the thumbnails of the specified image (origId) has been created. It will be blocked until the thumbnails are generated.
					 * @param cr ContentResolver used to dispatch queries to MediaProvider.
					 * @param origId Original image id associated with thumbnail of interest.
					 * @param kind The type of thumbnail to fetch. Should be either MINI_KIND or MICRO_KIND.
					 * @param options this is only used for MINI_KIND when decoding the Bitmap
					 */
					public static getThumbnail(cr: android.content.ContentResolver, origId: number, kind: number, options: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
					/**
					 * This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately. Only the original process which made the getThumbnail requests can cancel their own requests.
					 * @param cr ContentResolver
					 * @param origId original image id
					 * @param groupId the same groupId used in getThumbnail.
					 */
					public static cancelThumbnailRequest(cr: android.content.ContentResolver, origId: number, groupId: number): void;
					/**
					 * This method checks if the thumbnails of the specified image (origId) has been created. It will be blocked until the thumbnails are generated.
					 * @param cr ContentResolver used to dispatch queries to MediaProvider.
					 * @param origId Original image id associated with thumbnail of interest.
					 * @param groupId the id of group to which this request belongs
					 * @param kind The type of thumbnail to fetch. Should be either MINI_KIND or MICRO_KIND.
					 * @param options this is only used for MINI_KIND when decoding the Bitmap
					 */
					public static getThumbnail(cr: android.content.ContentResolver, origId: number, groupId: number, kind: number, options: android.graphics.BitmapFactory.Options): android.graphics.Bitmap;
					/**
					 * Get the content:// style URI for the image media table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
				}
				export class ImageColumns implements android.provider.MediaStore.IMediaColumns, android.provider.MediaStore.Images.IImageColumns {
					constructor(implementation: android.provider.MediaStore.Images.IImageColumns);
					/**
					 * The description of the image <P>Type: TEXT</P>
					 */
					static DESCRIPTION: string;
					/**
					 * The picasa id of the image <P>Type: TEXT</P>
					 */
					static PICASA_ID: string;
					/**
					 * Whether the video should be published as public or private <P>Type: INTEGER</P>
					 */
					static IS_PRIVATE: string;
					/**
					 * The latitude where the image was captured. <P>Type: DOUBLE</P>
					 */
					static LATITUDE: string;
					/**
					 * The longitude where the image was captured. <P>Type: DOUBLE</P>
					 */
					static LONGITUDE: string;
					/**
					 * The date & time that the image was taken in units of milliseconds since jan 1, 1970. <P>Type: INTEGER</P>
					 */
					static DATE_TAKEN: string;
					/**
					 * The orientation for the image expressed as degrees. Only degrees 0, 90, 180, 270 will work. <P>Type: INTEGER</P>
					 */
					static ORIENTATION: string;
					/**
					 * The mini thumb id. <P>Type: INTEGER</P>
					 */
					static MINI_THUMB_MAGIC: string;
					/**
					 * The bucket id of the image. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					static BUCKET_ID: string;
					/**
					 * The bucket display name of the image. This is a read-only property that is automatically computed from the DATA column. <P>Type: TEXT</P>
					 */
					static BUCKET_DISPLAY_NAME: string;
				}
			}
			/**
			 * Common fields for most MediaProvider tables
			 */
			export class MediaColumns implements android.provider.IBaseColumns, android.provider.MediaStore.IMediaColumns {
				constructor(implementation: android.provider.MediaStore.IMediaColumns);
				/**
				 * The data stream for the file <P>Type: DATA STREAM</P>
				 */
				static DATA: string;
				/**
				 * The size of the file in bytes <P>Type: INTEGER (long)</P>
				 */
				static SIZE: string;
				/**
				 * The display name of the file <P>Type: TEXT</P>
				 */
				static DISPLAY_NAME: string;
				/**
				 * The title of the content <P>Type: TEXT</P>
				 */
				static TITLE: string;
				/**
				 * The time the file was added to the media provider Units are seconds since 1970. <P>Type: INTEGER (long)</P>
				 */
				static DATE_ADDED: string;
				/**
				 * The time the file was last modified Units are seconds since 1970. NOTE: This is for internal use by the media scanner. Do not modify this field. <P>Type: INTEGER (long)</P>
				 */
				static DATE_MODIFIED: string;
				/**
				 * The MIME type of the file <P>Type: TEXT</P>
				 */
				static MIME_TYPE: string;
				/**
				 * The width of the image/video in pixels.
				 */
				static WIDTH: string;
				/**
				 * The height of the image/video in pixels.
				 */
				static HEIGHT: string;
			}
			/**
			 * Common fields for most MediaProvider tables
			 */
			interface IMediaColumns extends android.provider.IBaseColumns {
			}
			export module IMediaColumns {
				/**
				 * The data stream for the file <P>Type: DATA STREAM</P>
				 */
				var DATA: string;
				/**
				 * The size of the file in bytes <P>Type: INTEGER (long)</P>
				 */
				var SIZE: string;
				/**
				 * The display name of the file <P>Type: TEXT</P>
				 */
				var DISPLAY_NAME: string;
				/**
				 * The title of the content <P>Type: TEXT</P>
				 */
				var TITLE: string;
				/**
				 * The time the file was added to the media provider Units are seconds since 1970. <P>Type: INTEGER (long)</P>
				 */
				var DATE_ADDED: string;
				/**
				 * The time the file was last modified Units are seconds since 1970. NOTE: This is for internal use by the media scanner. Do not modify this field. <P>Type: INTEGER (long)</P>
				 */
				var DATE_MODIFIED: string;
				/**
				 * The MIME type of the file <P>Type: TEXT</P>
				 */
				var MIME_TYPE: string;
				/**
				 * The width of the image/video in pixels.
				 */
				var WIDTH: string;
				/**
				 * The height of the image/video in pixels.
				 */
				var HEIGHT: string;
			}
			/**
			 * Media provider table containing an index of all files in the media storage, including non-media files. This should be used by applications that work with non-media file types (text, HTML, PDF, etc) as well as applications that need to work with multiple media file types in a single query.
			 */
			export class Files extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.provider.MediaStore.Files>;
				/**
				 * Get the content:// style URI for the files table on the given volume.
				 * @param volumeName the name of the volume to get the URI for
				 */
				public static getContentUri(volumeName: string): android.net.Uri;
				/**
				 * Get the content:// style URI for a single row in the files table on the given volume.
				 * @param volumeName the name of the volume to get the URI for
				 * @param rowId the file to get the URI for
				 */
				public static getContentUri(volumeName: string, rowId: number): android.net.Uri;
			}
			export module Files {
				/**
				 * Fields for master table for all media files. Table also contains MediaColumns._ID, DATA, SIZE and DATE_MODIFIED.
				 */
				export class FileColumns implements android.provider.MediaStore.IMediaColumns, android.provider.MediaStore.Files.IFileColumns {
					constructor(implementation: android.provider.MediaStore.Files.IFileColumns);
					/**
					 * The index of the parent directory of the file <P>Type: INTEGER</P>
					 */
					static PARENT: string;
					/**
					 * The MIME type of the file <P>Type: TEXT</P>
					 */
					static MIME_TYPE: string;
					/**
					 * The title of the content <P>Type: TEXT</P>
					 */
					static TITLE: string;
					/**
					 * The media type (audio, video, image or playlist) of the file, or 0 for not a media file <P>Type: TEXT</P>
					 */
					static MEDIA_TYPE: string;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is not an audio, image, video or playlist file.
					 */
					static MEDIA_TYPE_NONE: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is an image file.
					 */
					static MEDIA_TYPE_IMAGE: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is an audio file.
					 */
					static MEDIA_TYPE_AUDIO: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is a video file.
					 */
					static MEDIA_TYPE_VIDEO: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is a playlist file.
					 */
					static MEDIA_TYPE_PLAYLIST: number;
				}
				/**
				 * Fields for master table for all media files. Table also contains MediaColumns._ID, DATA, SIZE and DATE_MODIFIED.
				 */
				interface IFileColumns extends android.provider.MediaStore.IMediaColumns {
				}
				export module IFileColumns {
					/**
					 * The index of the parent directory of the file <P>Type: INTEGER</P>
					 */
					var PARENT: string;
					/**
					 * The MIME type of the file <P>Type: TEXT</P>
					 */
					var MIME_TYPE: string;
					/**
					 * The title of the content <P>Type: TEXT</P>
					 */
					var TITLE: string;
					/**
					 * The media type (audio, video, image or playlist) of the file, or 0 for not a media file <P>Type: TEXT</P>
					 */
					var MEDIA_TYPE: string;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is not an audio, image, video or playlist file.
					 */
					var MEDIA_TYPE_NONE: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is an image file.
					 */
					var MEDIA_TYPE_IMAGE: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is an audio file.
					 */
					var MEDIA_TYPE_AUDIO: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is a video file.
					 */
					var MEDIA_TYPE_VIDEO: number;
					/**
					 * Constant for the #MEDIA_TYPE column indicating that file is a playlist file.
					 */
					var MEDIA_TYPE_PLAYLIST: number;
				}
			}
			/**
			 * Container for all audio content.
			 */
			export class Audio extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.provider.MediaStore.Audio>;
				/**
				 * Converts a name to a "key" that can be used for grouping, sorting and searching. The rules that govern this conversion are: - remove 'special' characters like ()[]'!?., - remove leading/trailing spaces - convert everything to lowercase - remove leading "the ", "an " and "a " - remove trailing ", the|an|a" - remove accents. This step leaves us with CollationKey data, which is not human readable
				 * @param name The artist or album name to convert
				 */
				public static keyFor(name: string): string;
			}
			export module Audio {
				/**
				 * Columns representing an album
				 */
				export class AlbumColumns implements android.provider.MediaStore.Audio.IAlbumColumns {
					constructor(implementation: android.provider.MediaStore.Audio.IAlbumColumns);
					/**
					 * The id for the album <P>Type: INTEGER</P>
					 */
					static ALBUM_ID: string;
					/**
					 * The album on which the audio file appears, if any <P>Type: TEXT</P>
					 */
					static ALBUM: string;
					/**
					 * The artist whose songs appear on this album <P>Type: TEXT</P>
					 */
					static ARTIST: string;
					/**
					 * The number of songs on this album <P>Type: INTEGER</P>
					 */
					static NUMBER_OF_SONGS: string;
					/**
					 * This column is available when getting album info via artist, and indicates the number of songs on the album by the given artist. <P>Type: INTEGER</P>
					 */
					static NUMBER_OF_SONGS_FOR_ARTIST: string;
					/**
					 * The year in which the earliest songs on this album were released. This will often be the same as #LAST_YEAR, but for compilation albums they might differ. <P>Type: INTEGER</P>
					 */
					static FIRST_YEAR: string;
					/**
					 * The year in which the latest songs on this album were released. This will often be the same as #FIRST_YEAR, but for compilation albums they might differ. <P>Type: INTEGER</P>
					 */
					static LAST_YEAR: string;
					/**
					 * A non human readable key calculated from the ALBUM, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					static ALBUM_KEY: string;
					/**
					 * Cached album art. <P>Type: TEXT</P>
					 */
					static ALBUM_ART: string;
				}
				/**
				 * Columns representing a playlist
				 */
				export class PlaylistsColumns implements android.provider.MediaStore.Audio.IPlaylistsColumns {
					constructor(implementation: android.provider.MediaStore.Audio.IPlaylistsColumns);
					/**
					 * The name of the playlist <P>Type: TEXT</P>
					 */
					static NAME: string;
					/**
					 * The data stream for the playlist file <P>Type: DATA STREAM</P>
					 */
					static DATA: string;
					/**
					 * The time the file was added to the media provider Units are seconds since 1970. <P>Type: INTEGER (long)</P>
					 */
					static DATE_ADDED: string;
					/**
					 * The time the file was last modified Units are seconds since 1970. NOTE: This is for internal use by the media scanner. Do not modify this field. <P>Type: INTEGER (long)</P>
					 */
					static DATE_MODIFIED: string;
				}
				/**
				 * Columns for audio file that show up in multiple tables.
				 */
				interface IAudioColumns extends android.provider.MediaStore.IMediaColumns {
				}
				export module IAudioColumns {
					/**
					 * A non human readable key calculated from the TITLE, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					var TITLE_KEY: string;
					/**
					 * The duration of the audio file, in ms <P>Type: INTEGER (long)</P>
					 */
					var DURATION: string;
					/**
					 * The position, in ms, playback was at when playback for this file was last stopped. <P>Type: INTEGER (long)</P>
					 */
					var BOOKMARK: string;
					/**
					 * The id of the artist who created the audio file, if any <P>Type: INTEGER (long)</P>
					 */
					var ARTIST_ID: string;
					/**
					 * The artist who created the audio file, if any <P>Type: TEXT</P>
					 */
					var ARTIST: string;
					/**
					 * A non human readable key calculated from the ARTIST, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					var ARTIST_KEY: string;
					/**
					 * The composer of the audio file, if any <P>Type: TEXT</P>
					 */
					var COMPOSER: string;
					/**
					 * The id of the album the audio file is from, if any <P>Type: INTEGER (long)</P>
					 */
					var ALBUM_ID: string;
					/**
					 * The album the audio file is from, if any <P>Type: TEXT</P>
					 */
					var ALBUM: string;
					/**
					 * A non human readable key calculated from the ALBUM, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					var ALBUM_KEY: string;
					/**
					 * The track number of this song on the album, if any. This number encodes both the track number and the disc number. For multi-disc sets, this number will be 1xxx for tracks on the first disc, 2xxx for tracks on the second disc, etc. <P>Type: INTEGER</P>
					 */
					var TRACK: string;
					/**
					 * The year the audio file was recorded, if any <P>Type: INTEGER</P>
					 */
					var YEAR: string;
					/**
					 * Non-zero if the audio file is music <P>Type: INTEGER (boolean)</P>
					 */
					var IS_MUSIC: string;
					/**
					 * Non-zero if the audio file is a podcast <P>Type: INTEGER (boolean)</P>
					 */
					var IS_PODCAST: string;
					/**
					 * Non-zero if the audio file may be a ringtone <P>Type: INTEGER (boolean)</P>
					 */
					var IS_RINGTONE: string;
					/**
					 * Non-zero if the audio file may be an alarm <P>Type: INTEGER (boolean)</P>
					 */
					var IS_ALARM: string;
					/**
					 * Non-zero if the audio file may be a notification sound <P>Type: INTEGER (boolean)</P>
					 */
					var IS_NOTIFICATION: string;
				}
				export class Media extends java.lang.Object implements android.provider.MediaStore.Audio.IAudioColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The MIME type for this table.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					/**
					 * Activity Action: Start SoundRecorder application.
					 */
					static RECORD_SOUND_ACTION: string;
					/**
					 * The name of the Intent-extra used to define a maximum file size for a recording made by the SoundRecorder application.
					 */
					static EXTRA_MAX_BYTES: string;
					static class: java.lang.Class<android.provider.MediaStore.Audio.Media>;
					/**
					 * Get the content:// style URI for the audio media table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
					public static getContentUriForPath(path: string): android.net.Uri;
				}
				/**
				 * Columns representing an audio genre
				 */
				export class GenresColumns implements android.provider.MediaStore.Audio.IGenresColumns {
					constructor(implementation: android.provider.MediaStore.Audio.IGenresColumns);
					/**
					 * The name of the genre <P>Type: TEXT</P>
					 */
					static NAME: string;
				}
				/**
				 * Columns representing a playlist
				 */
				interface IPlaylistsColumns {
				}
				export module IPlaylistsColumns {
					/**
					 * The name of the playlist <P>Type: TEXT</P>
					 */
					var NAME: string;
					/**
					 * The data stream for the playlist file <P>Type: DATA STREAM</P>
					 */
					var DATA: string;
					/**
					 * The time the file was added to the media provider Units are seconds since 1970. <P>Type: INTEGER (long)</P>
					 */
					var DATE_ADDED: string;
					/**
					 * The time the file was last modified Units are seconds since 1970. NOTE: This is for internal use by the media scanner. Do not modify this field. <P>Type: INTEGER (long)</P>
					 */
					var DATE_MODIFIED: string;
				}
				/**
				 * Columns representing an artist
				 */
				export class ArtistColumns implements android.provider.MediaStore.Audio.IArtistColumns {
					constructor(implementation: android.provider.MediaStore.Audio.IArtistColumns);
					/**
					 * The artist who created the audio file, if any <P>Type: TEXT</P>
					 */
					static ARTIST: string;
					/**
					 * A non human readable key calculated from the ARTIST, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					static ARTIST_KEY: string;
					/**
					 * The number of albums in the database for this artist
					 */
					static NUMBER_OF_ALBUMS: string;
					/**
					 * The number of albums in the database for this artist
					 */
					static NUMBER_OF_TRACKS: string;
				}
				/**
				 * Contains artists for audio files
				 */
				export class Albums extends java.lang.Object implements android.provider.IBaseColumns, android.provider.MediaStore.Audio.IAlbumColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The MIME type for this table.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The MIME type for entries in this table.
					 */
					static ENTRY_CONTENT_TYPE: string;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.MediaStore.Audio.Albums>;
					/**
					 * Get the content:// style URI for the albums table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
				}
				/**
				 * Columns representing an artist
				 */
				interface IArtistColumns {
				}
				export module IArtistColumns {
					/**
					 * The artist who created the audio file, if any <P>Type: TEXT</P>
					 */
					var ARTIST: string;
					/**
					 * A non human readable key calculated from the ARTIST, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					var ARTIST_KEY: string;
					/**
					 * The number of albums in the database for this artist
					 */
					var NUMBER_OF_ALBUMS: string;
					/**
					 * The number of albums in the database for this artist
					 */
					var NUMBER_OF_TRACKS: string;
				}
				/**
				 * Contains playlists for audio files
				 */
				export class Playlists extends java.lang.Object implements android.provider.IBaseColumns, android.provider.MediaStore.Audio.IPlaylistsColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The MIME type for this table.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The MIME type for entries in this table.
					 */
					static ENTRY_CONTENT_TYPE: string;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.MediaStore.Audio.Playlists>;
					/**
					 * Get the content:// style URI for the audio playlists table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
				}
				export module Playlists {
					/**
					 * Sub-directory of each playlist containing all members.
					 */
					export class Members extends java.lang.Object implements android.provider.MediaStore.Audio.IAudioColumns {
						constructor();
						/**
						 * The ID within the playlist.
						 */
						static _ID: string;
						/**
						 * A subdirectory of each playlist containing all member audio files.
						 */
						static CONTENT_DIRECTORY: string;
						/**
						 * The ID of the audio file <P>Type: INTEGER (long)</P>
						 */
						static AUDIO_ID: string;
						/**
						 * The ID of the playlist <P>Type: INTEGER (long)</P>
						 */
						static PLAYLIST_ID: string;
						/**
						 * The order of the songs in the playlist <P>Type: INTEGER (long)></P>
						 */
						static PLAY_ORDER: string;
						/**
						 * The default sort order for this table
						 */
						static DEFAULT_SORT_ORDER: string;
						static class: java.lang.Class<android.provider.MediaStore.Audio.Playlists.Members>;
						public static getContentUri(volumeName: string, playlistId: number): android.net.Uri;
						/**
						 * Convenience method to move a playlist item to a new location
						 * @param res The content resolver to use
						 * @param playlistId The numeric id of the playlist
						 * @param from The position of the item to move
						 * @param to The position to move the item to
						 */
						public static moveItem(res: android.content.ContentResolver, playlistId: number, from: number, to: number): boolean;
					}
				}
				/**
				 * Columns representing an audio genre
				 */
				interface IGenresColumns {
				}
				export module IGenresColumns {
					/**
					 * The name of the genre <P>Type: TEXT</P>
					 */
					var NAME: string;
				}
				/**
				 * Contains all genres for audio files
				 */
				export class Genres extends java.lang.Object implements android.provider.IBaseColumns, android.provider.MediaStore.Audio.IGenresColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The MIME type for this table.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The MIME type for entries in this table.
					 */
					static ENTRY_CONTENT_TYPE: string;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.MediaStore.Audio.Genres>;
					/**
					 * Get the content:// style URI for the audio genres table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
					/**
					 * Get the content:// style URI for querying the genres of an audio file.
					 * @param volumeName the name of the volume to get the URI for
					 * @param audioId the ID of the audio file for which to retrieve the genres
					 */
					public static getContentUriForAudioId(volumeName: string, audioId: number): android.net.Uri;
				}
				export module Genres {
					/**
					 * Sub-directory of each genre containing all members.
					 */
					export class Members extends java.lang.Object implements android.provider.MediaStore.Audio.IAudioColumns {
						constructor();
						/**
						 * A subdirectory of each genre containing all member audio files.
						 */
						static CONTENT_DIRECTORY: string;
						/**
						 * The default sort order for this table
						 */
						static DEFAULT_SORT_ORDER: string;
						/**
						 * The ID of the audio file <P>Type: INTEGER (long)</P>
						 */
						static AUDIO_ID: string;
						/**
						 * The ID of the genre <P>Type: INTEGER (long)</P>
						 */
						static GENRE_ID: string;
						static class: java.lang.Class<android.provider.MediaStore.Audio.Genres.Members>;
						public static getContentUri(volumeName: string, genreId: number): android.net.Uri;
					}
				}
				/**
				 * Columns representing an album
				 */
				interface IAlbumColumns {
				}
				export module IAlbumColumns {
					/**
					 * The id for the album <P>Type: INTEGER</P>
					 */
					var ALBUM_ID: string;
					/**
					 * The album on which the audio file appears, if any <P>Type: TEXT</P>
					 */
					var ALBUM: string;
					/**
					 * The artist whose songs appear on this album <P>Type: TEXT</P>
					 */
					var ARTIST: string;
					/**
					 * The number of songs on this album <P>Type: INTEGER</P>
					 */
					var NUMBER_OF_SONGS: string;
					/**
					 * This column is available when getting album info via artist, and indicates the number of songs on the album by the given artist. <P>Type: INTEGER</P>
					 */
					var NUMBER_OF_SONGS_FOR_ARTIST: string;
					/**
					 * The year in which the earliest songs on this album were released. This will often be the same as #LAST_YEAR, but for compilation albums they might differ. <P>Type: INTEGER</P>
					 */
					var FIRST_YEAR: string;
					/**
					 * The year in which the latest songs on this album were released. This will often be the same as #FIRST_YEAR, but for compilation albums they might differ. <P>Type: INTEGER</P>
					 */
					var LAST_YEAR: string;
					/**
					 * A non human readable key calculated from the ALBUM, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					var ALBUM_KEY: string;
					/**
					 * Cached album art. <P>Type: TEXT</P>
					 */
					var ALBUM_ART: string;
				}
				/**
				 * Contains artists for audio files
				 */
				export class Artists extends java.lang.Object implements android.provider.IBaseColumns, android.provider.MediaStore.Audio.IArtistColumns {
					constructor();
					/**
					 * The content:// style URI for the internal storage.
					 */
					static INTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The content:// style URI for the "primary" external storage volume.
					 */
					static EXTERNAL_CONTENT_URI: android.net.Uri;
					/**
					 * The MIME type for this table.
					 */
					static CONTENT_TYPE: string;
					/**
					 * The MIME type for entries in this table.
					 */
					static ENTRY_CONTENT_TYPE: string;
					/**
					 * The default sort order for this table
					 */
					static DEFAULT_SORT_ORDER: string;
					static class: java.lang.Class<android.provider.MediaStore.Audio.Artists>;
					/**
					 * Get the content:// style URI for the artists table on the given volume.
					 * @param volumeName the name of the volume to get the URI for
					 */
					public static getContentUri(volumeName: string): android.net.Uri;
				}
				export module Artists {
					/**
					 * Sub-directory of each artist containing all albums on which a song by the artist appears.
					 */
					export class Albums extends java.lang.Object implements android.provider.MediaStore.Audio.IAlbumColumns {
						constructor();
						static class: java.lang.Class<android.provider.MediaStore.Audio.Artists.Albums>;
						public static getContentUri(volumeName: string, artistId: number): android.net.Uri;
					}
				}
				/**
				 * Columns for audio file that show up in multiple tables.
				 */
				export class AudioColumns implements android.provider.MediaStore.IMediaColumns, android.provider.MediaStore.Audio.IAudioColumns {
					constructor(implementation: android.provider.MediaStore.Audio.IAudioColumns);
					/**
					 * A non human readable key calculated from the TITLE, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					static TITLE_KEY: string;
					/**
					 * The duration of the audio file, in ms <P>Type: INTEGER (long)</P>
					 */
					static DURATION: string;
					/**
					 * The position, in ms, playback was at when playback for this file was last stopped. <P>Type: INTEGER (long)</P>
					 */
					static BOOKMARK: string;
					/**
					 * The id of the artist who created the audio file, if any <P>Type: INTEGER (long)</P>
					 */
					static ARTIST_ID: string;
					/**
					 * The artist who created the audio file, if any <P>Type: TEXT</P>
					 */
					static ARTIST: string;
					/**
					 * A non human readable key calculated from the ARTIST, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					static ARTIST_KEY: string;
					/**
					 * The composer of the audio file, if any <P>Type: TEXT</P>
					 */
					static COMPOSER: string;
					/**
					 * The id of the album the audio file is from, if any <P>Type: INTEGER (long)</P>
					 */
					static ALBUM_ID: string;
					/**
					 * The album the audio file is from, if any <P>Type: TEXT</P>
					 */
					static ALBUM: string;
					/**
					 * A non human readable key calculated from the ALBUM, used for searching, sorting and grouping <P>Type: TEXT</P>
					 */
					static ALBUM_KEY: string;
					/**
					 * The track number of this song on the album, if any. This number encodes both the track number and the disc number. For multi-disc sets, this number will be 1xxx for tracks on the first disc, 2xxx for tracks on the second disc, etc. <P>Type: INTEGER</P>
					 */
					static TRACK: string;
					/**
					 * The year the audio file was recorded, if any <P>Type: INTEGER</P>
					 */
					static YEAR: string;
					/**
					 * Non-zero if the audio file is music <P>Type: INTEGER (boolean)</P>
					 */
					static IS_MUSIC: string;
					/**
					 * Non-zero if the audio file is a podcast <P>Type: INTEGER (boolean)</P>
					 */
					static IS_PODCAST: string;
					/**
					 * Non-zero if the audio file may be a ringtone <P>Type: INTEGER (boolean)</P>
					 */
					static IS_RINGTONE: string;
					/**
					 * Non-zero if the audio file may be an alarm <P>Type: INTEGER (boolean)</P>
					 */
					static IS_ALARM: string;
					/**
					 * Non-zero if the audio file may be a notification sound <P>Type: INTEGER (boolean)</P>
					 */
					static IS_NOTIFICATION: string;
				}
			}
			/**
			 * This class is used internally by Images.Thumbnails and Video.Thumbnails, it's not intended to be accessed elsewhere.
			 */
			export class InternalThumbnails extends java.lang.Object implements android.provider.IBaseColumns {
				static class: java.lang.Class<android.provider.MediaStore.InternalThumbnails>;
				/**
				 * This method cancels the thumbnail request so clients waiting for getThumbnail will be interrupted and return immediately. Only the original process which made the getThumbnail requests can cancel their own requests.
				 * @param cr ContentResolver
				 * @param origId original image or video id. use -1 to cancel all requests.
				 * @param baseUri groupId the same groupId used in getThumbnail
				 * @param groupId baseUri the base URI of requested thumbnails
				 */
				static cancelThumbnailRequest(cr: android.content.ContentResolver, origId: number, baseUri: android.net.Uri, groupId: number): void;
				/**
				 * This method ensure thumbnails associated with origId are generated and decode the byte stream from database (MICRO_KIND) or file (MINI_KIND).
				 * @param cr ContentResolver
				 * @param origId original image or video id
				 * @param groupId kind could be MINI_KIND or MICRO_KIND
				 * @param kind options this is only used for MINI_KIND when decoding the Bitmap
				 * @param options baseUri the base URI of requested thumbnails
				 * @param baseUri groupId the id of group to which this request belongs
				 * @param isVideo 
				 */
				static getThumbnail(cr: android.content.ContentResolver, origId: number, groupId: number, kind: number, options: android.graphics.BitmapFactory.Options, baseUri: android.net.Uri, isVideo: boolean): android.graphics.Bitmap;
			}
		}
		interface IBaseColumns {
		}
		export module IBaseColumns {
			/**
			 * The unique ID for a row. <P>Type: INTEGER (long)</P>
			 */
			var _ID: string;
			/**
			 * The count of rows in a directory. <P>Type: INTEGER</P>
			 */
			var _COUNT: string;
		}
		/**
		 * ProviderTestCase that performs unit tests of SearchRecentSuggestionsProvider.
		 */
		export class SearchRecentSuggestionsProviderTest extends android.test.ProviderTestCase2<android.provider.TestProvider> {
			constructor();
			static class: java.lang.Class<android.provider.SearchRecentSuggestionsProviderTest>;
			/**
			 * During setup, grab a helper for DB access
			 */
			public setUp(): void;
			/**
			 * Simple test to see if we can instantiate the whole mess.
			 */
			public testSetup(): void;
			/**
			 * Simple test to see if we can write and read back a single query
			 */
			public testOneQuery(): void;
			/**
			 * Simple test to see if we can write and read back a diverse set of queries
			 */
			public testMixedQueries(): void;
			/**
			 * Test that the reordering code works properly. The most recently injected queries should replace existing queries and be sorted to the top of the list.
			 */
			public testReordering(): void;
			/**
			 * Test that the pruning code works properly, The database should not go beyond 250 entries, and the oldest entries should always be discarded first.
			 */
			public testPruning(): void;
			/**
			 * Test that the clear history code works properly.
			 */
			public testClear(): void;
		}
		/**
		 * These are standard columns for openable URIs. (See android.content.Intent#CATEGORY_OPENABLE.) If possible providers that have openable URIs should support these columns. To find the content type of a URI use android.content.ContentResolver#getType(android.net.Uri) as normal.
		 */
		interface IOpenableColumns {
		}
		export module IOpenableColumns {
			/**
			 * The human-friendly name of file. If this is not provided then the name should default to the the last segment of the file's URI.
			 */
			var DISPLAY_NAME: string;
			/**
			 * The number of bytes in the file identified by the openable URI. Null if unknown.
			 */
			var SIZE: string;
		}
		/**
		 * The Download Manager
		 */
		export class Downloads extends java.lang.Object {
			static class: java.lang.Class<android.provider.Downloads>;
			/**
			 * Delete all the downloads for a package/class pair.
			 */
			public static removeAllDownloadsByPackage(context: android.content.Context, notification_package: string, notification_class: string): void;
		}
		export class LiveFolders extends java.lang.Object implements android.provider.IBaseColumns {
			static NAME: string;
			static DESCRIPTION: string;
			static INTENT: string;
			static ICON_BITMAP: string;
			static ICON_PACKAGE: string;
			static ICON_RESOURCE: string;
			/**
			 * Displays a live folder's content in a grid.
			 */
			static DISPLAY_MODE_GRID: number;
			/**
			 * Displays a live folder's content in a list.
			 */
			static DISPLAY_MODE_LIST: number;
			/**
			 * The name of the extra used to define the name of a live folder.
			 */
			static EXTRA_LIVE_FOLDER_NAME: string;
			/**
			 * The name of the extra used to define the icon of a live folder.
			 */
			static EXTRA_LIVE_FOLDER_ICON: string;
			/**
			 * The name of the extra used to define the display mode of a live folder.
			 */
			static EXTRA_LIVE_FOLDER_DISPLAY_MODE: string;
			/**
			 * The name of the extra used to define the base Intent of a live folder.
			 */
			static EXTRA_LIVE_FOLDER_BASE_INTENT: string;
			/**
			 * Activity Action: Creates a live folder.
			 */
			static ACTION_CREATE_LIVE_FOLDER: string;
			static class: java.lang.Class<android.provider.LiveFolders>;
		}
		/**
		 * The AlarmClock provider contains an Intent action and extras that can be used to start an Activity to set a new alarm in an alarm clock application.
		 */
		export class AlarmClock extends java.lang.Object {
			constructor();
			/**
			 * Activity Action: Set an alarm.
			 */
			static ACTION_SET_ALARM: string;
			/**
			 * Activity Extra: Provide a custom message for the alarm.
			 */
			static EXTRA_MESSAGE: string;
			/**
			 * Activity Extra: The hour of the alarm being set.
			 */
			static EXTRA_HOUR: string;
			/**
			 * Activity Extra: The minutes of the alarm being set.
			 */
			static EXTRA_MINUTES: string;
			/**
			 * Activity Extra: Optionally skip the application UI.
			 */
			static EXTRA_SKIP_UI: string;
			static class: java.lang.Class<android.provider.AlarmClock>;
		}
		export class BaseColumns implements android.provider.IBaseColumns {
			constructor(implementation: android.provider.IBaseColumns);
			/**
			 * The unique ID for a row. <P>Type: INTEGER (long)</P>
			 */
			static _ID: string;
			/**
			 * The count of rows in a directory. <P>Type: INTEGER</P>
			 */
			static _COUNT: string;
		}
		/**
		 * The Settings provider contains global system-level device preferences.
		 */
		export class Settings extends java.lang.Object {
			constructor();
			/**
			 * Activity Action: Show system settings.
			 */
			static ACTION_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of APNs.
			 */
			static ACTION_APN_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of current location sources.
			 */
			static ACTION_LOCATION_SOURCE_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of wireless controls such as Wi-Fi, Bluetooth and Mobile networks.
			 */
			static ACTION_WIRELESS_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow entering/exiting airplane mode.
			 */
			static ACTION_AIRPLANE_MODE_SETTINGS: string;
			/**
			 * Activity Action: Show settings for accessibility modules.
			 */
			static ACTION_ACCESSIBILITY_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of security and location privacy.
			 */
			static ACTION_SECURITY_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of privacy options.
			 */
			static ACTION_PRIVACY_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of Wi-Fi.
			 */
			static ACTION_WIFI_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of a static IP address for Wi-Fi.
			 */
			static ACTION_WIFI_IP_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of Bluetooth.
			 */
			static ACTION_BLUETOOTH_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of date and time.
			 */
			static ACTION_DATE_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of sound and volume.
			 */
			static ACTION_SOUND_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of display.
			 */
			static ACTION_DISPLAY_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of locale.
			 */
			static ACTION_LOCALE_SETTINGS: string;
			/**
			 * Activity Action: Show settings to configure input methods, in particular allowing the user to enable input methods.
			 */
			static ACTION_INPUT_METHOD_SETTINGS: string;
			/**
			 * Activity Action: Show settings to enable/disable input method subtypes.
			 */
			static ACTION_INPUT_METHOD_SUBTYPE_SETTINGS: string;
			/**
			 * Activity Action: Show settings to manage the user input dictionary.
			 */
			static ACTION_USER_DICTIONARY_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of application-related settings.
			 */
			static ACTION_APPLICATION_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of application development-related settings. As of android.os.Build.VERSION_CODES#JELLY_BEAN_MR1 this action is a required part of the platform.
			 */
			static ACTION_APPLICATION_DEVELOPMENT_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of quick launch shortcuts.
			 */
			static ACTION_QUICK_LAUNCH_SETTINGS: string;
			/**
			 * Activity Action: Show settings to manage installed applications.
			 */
			static ACTION_MANAGE_APPLICATIONS_SETTINGS: string;
			/**
			 * Activity Action: Show settings to manage all applications.
			 */
			static ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS: string;
			/**
			 * Activity Action: Show screen of details about a particular application.
			 */
			static ACTION_APPLICATION_DETAILS_SETTINGS: string;
			/**
			 * Activity Action: Show settings to allow configuration of sync settings.
			 */
			static ACTION_SYNC_SETTINGS: string;
			/**
			 * Activity Action: Show add account screen for creating a new account.
			 */
			static ACTION_ADD_ACCOUNT: string;
			/**
			 * Activity Action: Show settings for selecting the network operator.
			 */
			static ACTION_NETWORK_OPERATOR_SETTINGS: string;
			/**
			 * Activity Action: Show settings for selection of 2G/3G.
			 */
			static ACTION_DATA_ROAMING_SETTINGS: string;
			/**
			 * Activity Action: Show settings for internal storage.
			 */
			static ACTION_INTERNAL_STORAGE_SETTINGS: string;
			/**
			 * Activity Action: Show settings for memory card storage.
			 */
			static ACTION_MEMORY_CARD_SETTINGS: string;
			/**
			 * Activity Action: Show settings for global search.
			 */
			static ACTION_SEARCH_SETTINGS: string;
			/**
			 * Activity Action: Show general device information settings (serial number, software version, phone number, etc.).
			 */
			static ACTION_DEVICE_INFO_SETTINGS: string;
			/**
			 * Activity Action: Show NFC settings.
			 */
			static ACTION_NFC_SETTINGS: string;
			/**
			 * Activity Action: Show NFC Sharing settings.
			 */
			static ACTION_NFCSHARING_SETTINGS: string;
			/**
			 * Activity Extra: Limit available options in launched activity based on the given authority.
			 */
			static EXTRA_AUTHORITIES: string;
			static EXTRA_INPUT_METHOD_ID: string;
			static AUTHORITY: string;
			static class: java.lang.Class<android.provider.Settings>;
		}
		export module Settings {
			/**
			 * Common base for tables of name/value settings.
			 */
			export class NameValueTable extends java.lang.Object implements android.provider.IBaseColumns {
				constructor();
				static NAME: string;
				static VALUE: string;
				static class: java.lang.Class<android.provider.Settings.NameValueTable>;
				protected static putString(resolver: android.content.ContentResolver, uri: android.net.Uri, name: string, value: string): boolean;
				public static getUriFor(uri: android.net.Uri, name: string): android.net.Uri;
			}
			/**
			 * Secure system settings, containing system preferences that applications can read but are not allowed to write. These are for preferences that the user must explicitly modify through the system UI or specialized APIs for those values, not modified directly by applications.
			 */
			export class Secure extends android.provider.Settings.NameValueTable {
				constructor();
				static SYS_PROP_SETTING_VERSION: string;
				/**
				 * The content:// style URL for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 *  Use android.provider.Settings.Global#DEVELOPMENT_SETTINGS_ENABLED instead
				 */
				static DEVELOPMENT_SETTINGS_ENABLED: string;
				/**
				 *  Use android.provider.Settings.Global#ADB_ENABLED instead
				 */
				static ADB_ENABLED: string;
				/**
				 * Setting to allow mock locations and location provider status to be injected into the LocationManager service for testing purposes during application development. These locations and status values override actual location and status information generated by network, gps, or other location providers.
				 */
				static ALLOW_MOCK_LOCATION: string;
				/**
				 * A 64-bit number (as a hex string) that is randomly generated on the device's first boot and should remain constant for the lifetime of the device. (The value may change if a factory reset is performed on the device.)
				 */
				static ANDROID_ID: string;
				/**
				 *  Use android.provider.Settings.Global#BLUETOOTH_ON instead
				 */
				static BLUETOOTH_ON: string;
				/**
				 *  Use android.provider.Settings.Global#DATA_ROAMING instead
				 */
				static DATA_ROAMING: string;
				/**
				 * Setting to record the input method used by default, holding the ID of the desired method.
				 */
				static DEFAULT_INPUT_METHOD: string;
				/**
				 * Setting to record the input method subtype used by default, holding the ID of the desired method.
				 */
				static SELECTED_INPUT_METHOD_SUBTYPE: string;
				/**
				 * Setting to record the visibility of input method selector
				 */
				static INPUT_METHOD_SELECTOR_VISIBILITY: string;
				/**
				 *  Use android.provider.Settings.Global#DEVICE_PROVISIONED instead
				 */
				static DEVICE_PROVISIONED: string;
				/**
				 * List of input methods that are currently enabled. This is a string containing the IDs of all enabled input methods, each ID separated by ':'.
				 */
				static ENABLED_INPUT_METHODS: string;
				/**
				 * Host name and port for global http proxy. Uses ':' seperator for between host and port.
				 */
				static HTTP_PROXY: string;
				/**
				 *  Use android.provider.Settings.Global#INSTALL_NON_MARKET_APPS instead
				 */
				static INSTALL_NON_MARKET_APPS: string;
				/**
				 * Comma-separated list of location providers that activities may access.
				 */
				static LOCATION_PROVIDERS_ALLOWED: string;
				/**
				 * Whether autolock is enabled (0 = false, 1 = true)
				 */
				static LOCK_PATTERN_ENABLED: string;
				/**
				 * Whether lock pattern is visible as user enters (0 = false, 1 = true)
				 */
				static LOCK_PATTERN_VISIBLE: string;
				/**
				 * Whether lock pattern will vibrate as user enters (0 = false, 1 = true)
				 */
				static LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED: string;
				/**
				 * The Logging ID (a unique 64-bit value) as a hex string. Used as a pseudonymous identifier for logging. This identifier is poorly initialized and has many collisions. It should not be used.
				 */
				static LOGGING_ID: string;
				/**
				 *  Use android.provider.Settings.Global#NETWORK_PREFERENCE instead
				 */
				static NETWORK_PREFERENCE: string;
				/**
				 * No longer supported.
				 */
				static PARENTAL_CONTROL_ENABLED: string;
				/**
				 * No longer supported.
				 */
				static PARENTAL_CONTROL_LAST_UPDATE: string;
				/**
				 * No longer supported.
				 */
				static PARENTAL_CONTROL_REDIRECT_URL: string;
				/**
				 * Settings classname to launch when Settings is clicked from All Applications. Needed because of user testing between the old and new Settings apps.
				 */
				static SETTINGS_CLASSNAME: string;
				/**
				 *  Use android.provider.Settings.Global#USB_MASS_STORAGE_ENABLED instead
				 */
				static USB_MASS_STORAGE_ENABLED: string;
				/**
				 *  Use android.provider.Settings.Global#USE_GOOGLE_MAIL instead
				 */
				static USE_GOOGLE_MAIL: string;
				/**
				 * If accessibility is enabled.
				 */
				static ACCESSIBILITY_ENABLED: string;
				/**
				 * If touch exploration is enabled.
				 */
				static TOUCH_EXPLORATION_ENABLED: string;
				/**
				 * List of the enabled accessibility providers.
				 */
				static ENABLED_ACCESSIBILITY_SERVICES: string;
				/**
				 * Whether to speak passwords while in accessibility mode.
				 */
				static ACCESSIBILITY_SPEAK_PASSWORD: string;
				/**
				 * Setting to always use the default text-to-speech settings regardless of the application settings. 1 = override application settings, 0 = use application settings (if specified).
				 */
				static TTS_USE_DEFAULTS: string;
				/**
				 * Default text-to-speech engine speech rate. 100 = 1x
				 */
				static TTS_DEFAULT_RATE: string;
				/**
				 * Default text-to-speech engine pitch. 100 = 1x
				 */
				static TTS_DEFAULT_PITCH: string;
				/**
				 * Default text-to-speech engine.
				 */
				static TTS_DEFAULT_SYNTH: string;
				/**
				 * Default text-to-speech language.
				 */
				static TTS_DEFAULT_LANG: string;
				/**
				 * Default text-to-speech country.
				 */
				static TTS_DEFAULT_COUNTRY: string;
				/**
				 * Default text-to-speech locale variant.
				 */
				static TTS_DEFAULT_VARIANT: string;
				/**
				 * Space delimited list of plugin packages that are enabled.
				 */
				static TTS_ENABLED_PLUGINS: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON instead.
				 */
				static WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY instead.
				 */
				static WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_NUM_OPEN_NETWORKS_KEPT instead.
				 */
				static WIFI_NUM_OPEN_NETWORKS_KEPT: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_ON instead.
				 */
				static WIFI_ON: string;
				/**
				 * The acceptable packet loss percentage (range 0 - 100) before trying another AP on the same network. This setting is not used.
				 */
				static WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE: string;
				/**
				 * The number of access points required for a network in order for the watchdog to monitor it. This setting is not used.
				 */
				static WIFI_WATCHDOG_AP_COUNT: string;
				/**
				 * The delay between background checks. This setting is not used.
				 */
				static WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS: string;
				/**
				 * Whether the Wi-Fi watchdog is enabled for background checking even after it thinks the user has connected to a good access point. This setting is not used.
				 */
				static WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED: string;
				/**
				 * The timeout for a background ping This setting is not used.
				 */
				static WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS: string;
				/**
				 * The number of initial pings to perform that *may* be ignored if they fail. Again, if these fail, they will *not* be used in packet loss calculation. For example, one network always seemed to time out for the first couple pings, so this is set to 3 by default. This setting is not used.
				 */
				static WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT: string;
				/**
				 * The maximum number of access points (per network) to attempt to test. If this number is reached, the watchdog will no longer monitor the initial connection state for the network. This is a safeguard for networks containing multiple APs whose DNS does not respond to pings. This setting is not used.
				 */
				static WIFI_WATCHDOG_MAX_AP_CHECKS: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_WATCHDOG_ON instead
				 */
				static WIFI_WATCHDOG_ON: string;
				/**
				 * A comma-separated list of SSIDs for which the Wi-Fi watchdog should be enabled. This setting is not used.
				 */
				static WIFI_WATCHDOG_WATCH_LIST: string;
				/**
				 * The number of pings to test if an access point is a good connection. This setting is not used.
				 */
				static WIFI_WATCHDOG_PING_COUNT: string;
				/**
				 * The delay between pings. This setting is not used.
				 */
				static WIFI_WATCHDOG_PING_DELAY_MS: string;
				/**
				 * The timeout per ping. This setting is not used.
				 */
				static WIFI_WATCHDOG_PING_TIMEOUT_MS: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_MAX_DHCP_RETRY_COUNT instead
				 */
				static WIFI_MAX_DHCP_RETRY_COUNT: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS instead
				 */
				static WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS: string;
				/**
				 * Whether background data usage is allowed.
				 */
				static BACKGROUND_DATA: string;
				/**
				 * Origins for which browsers should allow geolocation by default. The value is a space-separated list of origins.
				 */
				static ALLOWED_GEOLOCATION_ORIGINS: string;
				static class: java.lang.Class<android.provider.Settings.Secure>;
				/**
				 * Look up a name in the database.
				 * @param resolver to access the database with
				 * @param name to look up in the table
				 */
				public static getString(resolver: android.content.ContentResolver, name: string): string;
				/**
				 * Store a name/value pair into the database.
				 * @param resolver to access the database with
				 * @param name to store
				 * @param value to associate with the name
				 */
				public static putString(resolver: android.content.ContentResolver, name: string, value: string): boolean;
				/**
				 * Construct the content URI for a particular name/value pair, useful for monitoring changes with a ContentObserver.
				 * @param name to look up in the table
				 */
				public static getUriFor(name: string): android.net.Uri;
				/**
				 * Convenience function for retrieving a single secure settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you. The default value will be returned if the setting is not defined or not an integer.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getInt(cr: android.content.ContentResolver, name: string, def: number): number;
				/**
				 * Convenience function for retrieving a single secure settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getInt(cr: android.content.ContentResolver, name: string): number;
				/**
				 * Convenience function for updating a single settings value as an integer. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putInt(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Convenience function for retrieving a single secure settings value as a long. Note that internally setting values are always stored as strings; this function converts the string to a long for you. The default value will be returned if the setting is not defined or not a long.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getLong(cr: android.content.ContentResolver, name: string, def: number): any;
				/**
				 * Convenience function for retrieving a single secure settings value as a long. Note that internally setting values are always stored as strings; this function converts the string to a long for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getLong(cr: android.content.ContentResolver, name: string): any;
				/**
				 * Convenience function for updating a secure settings value as a long integer. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putLong(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Convenience function for retrieving a single secure settings value as a floating point number. Note that internally setting values are always stored as strings; this function converts the string to an float for you. The default value will be returned if the setting is not defined or not a valid float.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getFloat(cr: android.content.ContentResolver, name: string, def: number): number;
				/**
				 * Convenience function for retrieving a single secure settings value as a float. Note that internally setting values are always stored as strings; this function converts the string to a float for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getFloat(cr: android.content.ContentResolver, name: string): number;
				/**
				 * Convenience function for updating a single settings value as a floating point number. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putFloat(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Helper method for determining if a location provider is enabled.
				 * @param cr the content resolver to use
				 * @param provider the location provider to query
				 */
				public static isLocationProviderEnabled(cr: android.content.ContentResolver, provider: string): boolean;
				/**
				 * Thread-safe method for enabling or disabling a single location provider.
				 * @param cr the content resolver to use
				 * @param provider the location provider to enable or disable
				 * @param enabled true if the provider should be enabled
				 */
				public static setLocationProviderEnabled(cr: android.content.ContentResolver, provider: string, enabled: boolean): void;
				public static putString(resolver: android.content.ContentResolver, uri: android.net.Uri, name: string, value: string): boolean;
				static getUriFor(uri: android.net.Uri, name: string): android.net.Uri;
			}
			export class SettingNotFoundException extends android.util.AndroidException {
				constructor(msg: string);
				static class: java.lang.Class<android.provider.Settings.SettingNotFoundException>;
			}
			export class NameValueCache extends java.lang.Object {
				constructor(versionSystemProperty: string, uri: android.net.Uri, getCommand: string, setCommand: string);
				static class: java.lang.Class<android.provider.Settings.NameValueCache>;
				public putStringForUser(cr: android.content.ContentResolver, name: string, value: string, userHandle: number): boolean;
				public getStringForUser(cr: android.content.ContentResolver, name: string, userHandle: number): string;
			}
			/**
			 * System settings, containing miscellaneous system preferences. This table holds simple name/value pairs. There are convenience functions for accessing individual settings entries.
			 */
			export class System extends android.provider.Settings.NameValueTable {
				constructor();
				static SYS_PROP_SETTING_VERSION: string;
				/**
				 * The content:// style URL for this table
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 *  Use android.provider.Settings.Global#STAY_ON_WHILE_PLUGGED_IN instead
				 */
				static STAY_ON_WHILE_PLUGGED_IN: string;
				/**
				 * What happens when the user presses the end call button if they're not on a call.<br/> <b>Values:</b><br/> 0 - The end button does nothing.<br/> 1 - The end button goes to the home screen.<br/> 2 - The end button puts the device to sleep and locks the keyguard.<br/> 3 - The end button goes to the home screen. If the user is already on the home screen, it puts the device to sleep.
				 */
				static END_BUTTON_BEHAVIOR: string;
				/**
				 *  Use android.provider.Settings.Global#AIRPLANE_MODE_ON instead
				 */
				static AIRPLANE_MODE_ON: string;
				/**
				 *  Use android.provider.Settings.Global#RADIO_BLUETOOTH instead
				 */
				static RADIO_BLUETOOTH: string;
				/**
				 *  Use android.provider.Settings.Global#RADIO_WIFI instead
				 */
				static RADIO_WIFI: string;
				/**
				 *  Use android.provider.Settings.Global#RADIO_CELL instead
				 */
				static RADIO_CELL: string;
				/**
				 *  Use android.provider.Settings.Global#RADIO_NFC instead
				 */
				static RADIO_NFC: string;
				/**
				 *  Use android.provider.Settings.Global#AIRPLANE_MODE_RADIOS instead
				 */
				static AIRPLANE_MODE_RADIOS: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_SLEEP_POLICY instead
				 */
				static WIFI_SLEEP_POLICY: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_SLEEP_POLICY_DEFAULT instead
				 */
				static WIFI_SLEEP_POLICY_DEFAULT: number;
				/**
				 *  Use android.provider.Settings.Global#WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED instead
				 */
				static WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED: number;
				/**
				 *  Use android.provider.Settings.Global#WIFI_SLEEP_POLICY_NEVER instead
				 */
				static WIFI_SLEEP_POLICY_NEVER: number;
				/**
				 *  Use android.provider.Settings.Global#MODE_RINGER instead
				 */
				static MODE_RINGER: string;
				/**
				 * Whether to use static IP and other static network attributes.
				 */
				static WIFI_USE_STATIC_IP: string;
				/**
				 * The static IP address.
				 */
				static WIFI_STATIC_IP: string;
				/**
				 * If using static IP, the gateway's IP address.
				 */
				static WIFI_STATIC_GATEWAY: string;
				/**
				 * If using static IP, the net mask.
				 */
				static WIFI_STATIC_NETMASK: string;
				/**
				 * If using static IP, the primary DNS's IP address.
				 */
				static WIFI_STATIC_DNS1: string;
				/**
				 * If using static IP, the secondary DNS's IP address.
				 */
				static WIFI_STATIC_DNS2: string;
				/**
				 * Determines whether remote devices may discover and/or connect to this device. <P>Type: INT</P> 2 -- discoverable and connectable 1 -- connectable but not discoverable 0 -- neither connectable nor discoverable
				 */
				static BLUETOOTH_DISCOVERABILITY: string;
				/**
				 * Bluetooth discoverability timeout. If this value is nonzero, then Bluetooth becomes discoverable for a certain number of seconds, after which is becomes simply connectable. The value is in seconds.
				 */
				static BLUETOOTH_DISCOVERABILITY_TIMEOUT: string;
				/**
				 *  Use android.provider.Settings.Secure#LOCK_PATTERN_ENABLED instead
				 */
				static LOCK_PATTERN_ENABLED: string;
				/**
				 *  Use android.provider.Settings.Secure#LOCK_PATTERN_VISIBLE instead
				 */
				static LOCK_PATTERN_VISIBLE: string;
				/**
				 *  Use android.provider.Settings.Secure#LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED instead
				 */
				static LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED: string;
				/**
				 * A formatted string of the next alarm that is set, or the empty string if there is no alarm set.
				 */
				static NEXT_ALARM_FORMATTED: string;
				/**
				 * Scaling factor for fonts, float.
				 */
				static FONT_SCALE: string;
				/**
				 * Name of an application package to be debugged.
				 */
				static DEBUG_APP: string;
				/**
				 * If 1, when launching DEBUG_APP it will wait for the debugger before starting user code. If 0, it will run normally.
				 */
				static WAIT_FOR_DEBUGGER: string;
				/**
				 * Whether or not to dim the screen. 0=no 1=yes This setting is no longer used.
				 */
				static DIM_SCREEN: string;
				/**
				 * The timeout before the screen turns off.
				 */
				static SCREEN_OFF_TIMEOUT: string;
				/**
				 * The screen backlight brightness between 0 and 255.
				 */
				static SCREEN_BRIGHTNESS: string;
				/**
				 * Control whether to enable automatic brightness mode.
				 */
				static SCREEN_BRIGHTNESS_MODE: string;
				/**
				 * SCREEN_BRIGHTNESS_MODE value for manual mode.
				 */
				static SCREEN_BRIGHTNESS_MODE_MANUAL: number;
				/**
				 * SCREEN_BRIGHTNESS_MODE value for automatic mode.
				 */
				static SCREEN_BRIGHTNESS_MODE_AUTOMATIC: number;
				/**
				 * Control whether the process CPU usage meter should be shown.
				 */
				static SHOW_PROCESSES: string;
				/**
				 * If 1, the activity manager will aggressively finish activities and processes as soon as they are no longer needed. If 0, the normal extended lifetime is used.
				 */
				static ALWAYS_FINISH_ACTIVITIES: string;
				/**
				 * Determines which streams are affected by ringer mode changes. The stream type's bit should be set to 1 if it should be muted when going into an inaudible ringer mode.
				 */
				static MODE_RINGER_STREAMS_AFFECTED: string;
				/**
				 * Determines which streams are affected by mute. The stream type's bit should be set to 1 if it should be muted when a mute request is received.
				 */
				static MUTE_STREAMS_AFFECTED: string;
				/**
				 * Whether vibrate is on for different events. This is used internally, changing this value will not change the vibrate. See AudioManager.
				 */
				static VIBRATE_ON: string;
				/**
				 * Ringer volume. This is used internally, changing this value will not change the volume. See AudioManager.
				 */
				static VOLUME_RING: string;
				/**
				 * System/notifications volume. This is used internally, changing this value will not change the volume. See AudioManager.
				 */
				static VOLUME_SYSTEM: string;
				/**
				 * Voice call volume. This is used internally, changing this value will not change the volume. See AudioManager.
				 */
				static VOLUME_VOICE: string;
				/**
				 * Music/media/gaming volume. This is used internally, changing this value will not change the volume. See AudioManager.
				 */
				static VOLUME_MUSIC: string;
				/**
				 * Alarm volume. This is used internally, changing this value will not change the volume. See AudioManager.
				 */
				static VOLUME_ALARM: string;
				/**
				 * Notification volume. This is used internally, changing this value will not change the volume. See AudioManager.
				 */
				static VOLUME_NOTIFICATION: string;
				/**
				 * Bluetooth Headset volume. This is used internally, changing this value will not change the volume. See AudioManager.
				 */
				static VOLUME_BLUETOOTH_SCO: string;
				/**
				 * The mapping of stream type (integer) to its setting.
				 */
				static VOLUME_SETTINGS: native.Array<string>;
				/**
				 * Appended to various volume related settings to record the previous values before they the settings were affected by a silent/vibrate ringer mode change.
				 */
				static APPEND_FOR_LAST_AUDIBLE: string;
				/**
				 * Persistent store for the system-wide default ringtone URI.
				 */
				static RINGTONE: string;
				/**
				 * A Uri that will point to the current default ringtone at any given time.
				 */
				static DEFAULT_RINGTONE_URI: android.net.Uri;
				/**
				 * Persistent store for the system-wide default notification sound.
				 */
				static NOTIFICATION_SOUND: string;
				/**
				 * A Uri that will point to the current default notification sound at any given time.
				 */
				static DEFAULT_NOTIFICATION_URI: android.net.Uri;
				/**
				 * Persistent store for the system-wide default alarm alert.
				 */
				static ALARM_ALERT: string;
				/**
				 * A Uri that will point to the current default alarm alert at any given time.
				 */
				static DEFAULT_ALARM_ALERT_URI: android.net.Uri;
				/**
				 * Setting to enable Auto Replace (AutoText) in text editors. 1 = On, 0 = Off
				 */
				static TEXT_AUTO_REPLACE: string;
				/**
				 * Setting to enable Auto Caps in text editors. 1 = On, 0 = Off
				 */
				static TEXT_AUTO_CAPS: string;
				/**
				 * Setting to enable Auto Punctuate in text editors. 1 = On, 0 = Off. This feature converts two spaces to a "." and space.
				 */
				static TEXT_AUTO_PUNCTUATE: string;
				/**
				 * Setting to showing password characters in text editors. 1 = On, 0 = Off
				 */
				static TEXT_SHOW_PASSWORD: string;
				static SHOW_GTALK_SERVICE_STATUS: string;
				/**
				 * Name of activity to use for wallpaper on the home screen.
				 */
				static WALLPAPER_ACTIVITY: string;
				/**
				 *  Use android.provider.Settings.Global#AUTO_TIME instead
				 */
				static AUTO_TIME: string;
				/**
				 *  Use android.provider.Settings.Global#AUTO_TIME_ZONE instead
				 */
				static AUTO_TIME_ZONE: string;
				/**
				 * Display times as 12 or 24 hours 12 24
				 */
				static TIME_12_24: string;
				/**
				 * Date format string mm/dd/yyyy dd/mm/yyyy yyyy/mm/dd
				 */
				static DATE_FORMAT: string;
				/**
				 * Whether the setup wizard has been run before (on first boot), or if it still needs to be run.
				 */
				static SETUP_WIZARD_HAS_RUN: string;
				/**
				 * Scaling factor for normal window animations. Setting to 0 will disable window animations.
				 */
				static WINDOW_ANIMATION_SCALE: string;
				/**
				 * Scaling factor for activity transition animations. Setting to 0 will disable window animations.
				 */
				static TRANSITION_ANIMATION_SCALE: string;
				/**
				 * Scaling factor for Animator-based animations. This affects both the start delay and duration of all such animations. Setting to 0 will cause animations to end immediately. The default value is 1.
				 */
				static ANIMATOR_DURATION_SCALE: string;
				/**
				 * Control whether the accelerometer will be used to change screen orientation. If 0, it will not be used unless explicitly requested by the application; if 1, it will be used by default unless explicitly disabled by the application.
				 */
				static ACCELEROMETER_ROTATION: string;
				/**
				 * Default screen rotation when no other policy applies. When #ACCELEROMETER_ROTATION is zero and no on-screen Activity expresses a preference, this rotation value will be used. Must be one of the android.view.Surface#ROTATION_0 Surface rotation constants.
				 */
				static USER_ROTATION: string;
				/**
				 * Whether the audible DTMF tones are played by the dialer when dialing. The value is boolean (1 or 0).
				 */
				static DTMF_TONE_WHEN_DIALING: string;
				/**
				 * Whether the sounds effects (key clicks, lid open ...) are enabled. The value is boolean (1 or 0).
				 */
				static SOUND_EFFECTS_ENABLED: string;
				/**
				 * Whether the haptic feedback (long presses, ...) are enabled. The value is boolean (1 or 0).
				 */
				static HAPTIC_FEEDBACK_ENABLED: string;
				/**
				 *  Each application that shows web suggestions should have its own setting for this.
				 */
				static SHOW_WEB_SUGGESTIONS: string;
				/**
				 *  Use android.provider.Settings.Global#ADB_ENABLED instead
				 */
				static ADB_ENABLED: string;
				/**
				 *  Use android.provider.Settings.Secure#ANDROID_ID instead
				 */
				static ANDROID_ID: string;
				/**
				 *  Use android.provider.Settings.Global#BLUETOOTH_ON instead
				 */
				static BLUETOOTH_ON: string;
				/**
				 *  Use android.provider.Settings.Global#DATA_ROAMING instead
				 */
				static DATA_ROAMING: string;
				/**
				 *  Use android.provider.Settings.Global#DEVICE_PROVISIONED instead
				 */
				static DEVICE_PROVISIONED: string;
				/**
				 *  Use android.provider.Settings.Global#HTTP_PROXY instead
				 */
				static HTTP_PROXY: string;
				/**
				 *  Use android.provider.Settings.Global#INSTALL_NON_MARKET_APPS instead
				 */
				static INSTALL_NON_MARKET_APPS: string;
				/**
				 *  Use android.provider.Settings.Secure#LOCATION_PROVIDERS_ALLOWED instead
				 */
				static LOCATION_PROVIDERS_ALLOWED: string;
				/**
				 *  Use android.provider.Settings.Secure#LOGGING_ID instead
				 */
				static LOGGING_ID: string;
				/**
				 *  Use android.provider.Settings.Global#NETWORK_PREFERENCE instead
				 */
				static NETWORK_PREFERENCE: string;
				/**
				 *  Use android.provider.Settings.Secure#PARENTAL_CONTROL_ENABLED instead
				 */
				static PARENTAL_CONTROL_ENABLED: string;
				/**
				 *  Use android.provider.Settings.Secure#PARENTAL_CONTROL_LAST_UPDATE instead
				 */
				static PARENTAL_CONTROL_LAST_UPDATE: string;
				/**
				 *  Use android.provider.Settings.Secure#PARENTAL_CONTROL_REDIRECT_URL instead
				 */
				static PARENTAL_CONTROL_REDIRECT_URL: string;
				/**
				 *  Use android.provider.Settings.Secure#SETTINGS_CLASSNAME instead
				 */
				static SETTINGS_CLASSNAME: string;
				/**
				 *  Use android.provider.Settings.Global#USB_MASS_STORAGE_ENABLED instead
				 */
				static USB_MASS_STORAGE_ENABLED: string;
				/**
				 *  Use android.provider.Settings.Global#USE_GOOGLE_MAIL instead
				 */
				static USE_GOOGLE_MAIL: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_MAX_DHCP_RETRY_COUNT instead
				 */
				static WIFI_MAX_DHCP_RETRY_COUNT: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS instead
				 */
				static WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON instead
				 */
				static WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY instead
				 */
				static WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_NUM_OPEN_NETWORKS_KEPT instead
				 */
				static WIFI_NUM_OPEN_NETWORKS_KEPT: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_ON instead
				 */
				static WIFI_ON: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE instead
				 */
				static WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_AP_COUNT instead
				 */
				static WIFI_WATCHDOG_AP_COUNT: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS instead
				 */
				static WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED instead
				 */
				static WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS instead
				 */
				static WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT instead
				 */
				static WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_MAX_AP_CHECKS instead
				 */
				static WIFI_WATCHDOG_MAX_AP_CHECKS: string;
				/**
				 *  Use android.provider.Settings.Global#WIFI_WATCHDOG_ON instead
				 */
				static WIFI_WATCHDOG_ON: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_PING_COUNT instead
				 */
				static WIFI_WATCHDOG_PING_COUNT: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_PING_DELAY_MS instead
				 */
				static WIFI_WATCHDOG_PING_DELAY_MS: string;
				/**
				 *  Use android.provider.Settings.Secure#WIFI_WATCHDOG_PING_TIMEOUT_MS instead
				 */
				static WIFI_WATCHDOG_PING_TIMEOUT_MS: string;
				static class: java.lang.Class<android.provider.Settings.System>;
				/**
				 * Look up a name in the database.
				 * @param resolver to access the database with
				 * @param name to look up in the table
				 */
				public static getString(resolver: android.content.ContentResolver, name: string): string;
				/**
				 * Store a name/value pair into the database.
				 * @param resolver to access the database with
				 * @param name to store
				 * @param value to associate with the name
				 */
				public static putString(resolver: android.content.ContentResolver, name: string, value: string): boolean;
				/**
				 * Construct the content URI for a particular name/value pair, useful for monitoring changes with a ContentObserver.
				 * @param name to look up in the table
				 */
				public static getUriFor(name: string): android.net.Uri;
				/**
				 * Convenience function for retrieving a single system settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you. The default value will be returned if the setting is not defined or not an integer.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getInt(cr: android.content.ContentResolver, name: string, def: number): number;
				/**
				 * Convenience function for retrieving a single system settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getInt(cr: android.content.ContentResolver, name: string): number;
				/**
				 * Convenience function for updating a single settings value as an integer. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putInt(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Convenience function for retrieving a single system settings value as a long. Note that internally setting values are always stored as strings; this function converts the string to a long for you. The default value will be returned if the setting is not defined or not a long.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getLong(cr: android.content.ContentResolver, name: string, def: number): any;
				/**
				 * Convenience function for retrieving a single system settings value as a long. Note that internally setting values are always stored as strings; this function converts the string to a long for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getLong(cr: android.content.ContentResolver, name: string): any;
				/**
				 * Convenience function for updating a single settings value as a long integer. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putLong(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Convenience function for retrieving a single system settings value as a floating point number. Note that internally setting values are always stored as strings; this function converts the string to an float for you. The default value will be returned if the setting is not defined or not a valid float.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getFloat(cr: android.content.ContentResolver, name: string, def: number): number;
				/**
				 * Convenience function for retrieving a single system settings value as a float. Note that internally setting values are always stored as strings; this function converts the string to a float for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getFloat(cr: android.content.ContentResolver, name: string): number;
				/**
				 * Convenience function for updating a single settings value as a floating point number. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putFloat(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Convenience function to read all of the current configuration-related settings into a Configuration object.
				 * @param cr The ContentResolver to access.
				 * @param outConfig Where to place the configuration settings.
				 */
				public static getConfiguration(cr: android.content.ContentResolver, outConfig: android.content.res.Configuration): void;
				/**
				 * Convenience function to write a batch of configuration-related settings from a Configuration object.
				 * @param cr The ContentResolver to access.
				 * @param config The settings to write.
				 */
				public static putConfiguration(cr: android.content.ContentResolver, config: android.content.res.Configuration): boolean;
				/**
				 *  - Do not use
				 */
				public static getShowGTalkServiceStatus(cr: android.content.ContentResolver): boolean;
				/**
				 *  - Do not use
				 */
				public static setShowGTalkServiceStatus(cr: android.content.ContentResolver, flag: boolean): void;
				public static putString(resolver: android.content.ContentResolver, uri: android.net.Uri, name: string, value: string): boolean;
				static getUriFor(uri: android.net.Uri, name: string): android.net.Uri;
			}
			/**
			 * Global system settings, containing preferences that always apply identically to all defined users. Applications can read these but are not allowed to write; like the "Secure" settings, these are for preferences that the user must explicitly modify through the system UI or specialized APIs for those values.
			 */
			export class Global extends android.provider.Settings.NameValueTable {
				constructor();
				static SYS_PROP_SETTING_VERSION: string;
				/**
				 * The content:// style URL for global secure settings items. Not public.
				 */
				static CONTENT_URI: android.net.Uri;
				/**
				 * Whether Airplane Mode is on.
				 */
				static AIRPLANE_MODE_ON: string;
				/**
				 * Constant for use in AIRPLANE_MODE_RADIOS to specify Bluetooth radio.
				 */
				static RADIO_BLUETOOTH: string;
				/**
				 * Constant for use in AIRPLANE_MODE_RADIOS to specify Wi-Fi radio.
				 */
				static RADIO_WIFI: string;
				/**
				 * Constant for use in AIRPLANE_MODE_RADIOS to specify Cellular radio.
				 */
				static RADIO_CELL: string;
				/**
				 * Constant for use in AIRPLANE_MODE_RADIOS to specify NFC radio.
				 */
				static RADIO_NFC: string;
				/**
				 * A comma separated list of radios that need to be disabled when airplane mode is on. This overrides WIFI_ON and BLUETOOTH_ON, if Wi-Fi and bluetooth are included in the comma separated list.
				 */
				static AIRPLANE_MODE_RADIOS: string;
				/**
				 * The policy for deciding when Wi-Fi should go to sleep (which will in turn switch to using the mobile data as an Internet connection).
				 */
				static WIFI_SLEEP_POLICY: string;
				/**
				 * Value for #WIFI_SLEEP_POLICY to use the default Wi-Fi sleep policy, which is to sleep shortly after the turning off according to the #STAY_ON_WHILE_PLUGGED_IN setting.
				 */
				static WIFI_SLEEP_POLICY_DEFAULT: number;
				/**
				 * Value for #WIFI_SLEEP_POLICY to use the default policy when the device is on battery, and never go to sleep when the device is plugged in.
				 */
				static WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED: number;
				/**
				 * Value for #WIFI_SLEEP_POLICY to never go to sleep.
				 */
				static WIFI_SLEEP_POLICY_NEVER: number;
				/**
				 * Value to specify if the user prefers the date, time and time zone to be automatically fetched from the network (NITZ). 1=yes, 0=no
				 */
				static AUTO_TIME: string;
				/**
				 * Value to specify if the user prefers the time zone to be automatically fetched from the network (NITZ). 1=yes, 0=no
				 */
				static AUTO_TIME_ZONE: string;
				/**
				 * Whether we keep the device on while the device is plugged in. Supported values are: <ul> <li>0 to never stay on while plugged in</li> <li>BatteryManager#BATTERY_PLUGGED_AC to stay on for AC charger</li> <li>BatteryManager#BATTERY_PLUGGED_USB to stay on for USB charger</li> <li>BatteryManager#BATTERY_PLUGGED_WIRELESS to stay on for wireless charger</li> </ul> These values can be OR-ed together.
				 */
				static STAY_ON_WHILE_PLUGGED_IN: string;
				/**
				 * Whether ADB is enabled.
				 */
				static ADB_ENABLED: string;
				/**
				 * Whether bluetooth is enabled/disabled 0=disabled. 1=enabled.
				 */
				static BLUETOOTH_ON: string;
				/**
				 * Whether or not data roaming is enabled. (0 = false, 1 = true)
				 */
				static DATA_ROAMING: string;
				/**
				 * Whether user has enabled development settings.
				 */
				static DEVELOPMENT_SETTINGS_ENABLED: string;
				/**
				 * Whether the device has been provisioned (0 = false, 1 = true)
				 */
				static DEVICE_PROVISIONED: string;
				/**
				 * Whether the package installer should allow installation of apps downloaded from sources other than Google Play.
				 */
				static INSTALL_NON_MARKET_APPS: string;
				/**
				 * User preference for which network(s) should be used. Only the connectivity service should touch this.
				 */
				static NETWORK_PREFERENCE: string;
				/**
				 * USB Mass Storage Enabled
				 */
				static USB_MASS_STORAGE_ENABLED: string;
				/**
				 * If this setting is set (to anything), then all references to Gmail on the device must change to Google Mail.
				 */
				static USE_GOOGLE_MAIL: string;
				/**
				 * Whether to notify the user of open networks.
				 */
				static WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON: string;
				/**
				 * Delay (in seconds) before repeating the Wi-Fi networks available notification. Connecting to a network will reset the timer.
				 */
				static WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY: string;
				/**
				 * When the number of open networks exceeds this number, the least-recently-used excess networks will be removed.
				 */
				static WIFI_NUM_OPEN_NETWORKS_KEPT: string;
				/**
				 * Whether the Wi-Fi should be on. Only the Wi-Fi service should touch this.
				 */
				static WIFI_ON: string;
				/**
				 * Whether the Wi-Fi watchdog is enabled.
				 */
				static WIFI_WATCHDOG_ON: string;
				/**
				 * The maximum number of times we will retry a connection to an access point for which we have failed in acquiring an IP address from DHCP. A value of N means that we will make N+1 connection attempts in all.
				 */
				static WIFI_MAX_DHCP_RETRY_COUNT: string;
				/**
				 * Maximum amount of time in milliseconds to hold a wakelock while waiting for mobile data connectivity to be established after a disconnect from Wi-Fi.
				 */
				static WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS: string;
				/**
				 * Ringer mode. This is used internally, changing this value will not change the ringer mode. See AudioManager.
				 */
				static MODE_RINGER: string;
				/**
				 * Host name and port for global http proxy. Uses ':' seperator for between host and port.
				 */
				static HTTP_PROXY: string;
				/**
				 * Scaling factor for normal window animations. Setting to 0 will disable window animations.
				 */
				static WINDOW_ANIMATION_SCALE: string;
				/**
				 * Scaling factor for activity transition animations. Setting to 0 will disable window animations.
				 */
				static TRANSITION_ANIMATION_SCALE: string;
				/**
				 * Scaling factor for Animator-based animations. This affects both the start delay and duration of all such animations. Setting to 0 will cause animations to end immediately. The default value is 1.
				 */
				static ANIMATOR_DURATION_SCALE: string;
				/**
				 * Name of an application package to be debugged.
				 */
				static DEBUG_APP: string;
				/**
				 * If 1, when launching DEBUG_APP it will wait for the debugger before starting user code. If 0, it will run normally.
				 */
				static WAIT_FOR_DEBUGGER: string;
				/**
				 * Control whether the process CPU usage meter should be shown.
				 */
				static SHOW_PROCESSES: string;
				/**
				 * If 1, the activity manager will aggressively finish activities and processes as soon as they are no longer needed. If 0, the normal extended lifetime is used.
				 */
				static ALWAYS_FINISH_ACTIVITIES: string;
				static class: java.lang.Class<android.provider.Settings.Global>;
				/**
				 * Look up a name in the database.
				 * @param resolver to access the database with
				 * @param name to look up in the table
				 */
				public static getString(resolver: android.content.ContentResolver, name: string): string;
				/**
				 * Store a name/value pair into the database.
				 * @param resolver to access the database with
				 * @param name to store
				 * @param value to associate with the name
				 */
				public static putString(resolver: android.content.ContentResolver, name: string, value: string): boolean;
				/**
				 * Construct the content URI for a particular name/value pair, useful for monitoring changes with a ContentObserver.
				 * @param name to look up in the table
				 */
				public static getUriFor(name: string): android.net.Uri;
				/**
				 * Convenience function for retrieving a single secure settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you. The default value will be returned if the setting is not defined or not an integer.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getInt(cr: android.content.ContentResolver, name: string, def: number): number;
				/**
				 * Convenience function for retrieving a single secure settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getInt(cr: android.content.ContentResolver, name: string): number;
				/**
				 * Convenience function for updating a single settings value as an integer. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putInt(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Convenience function for retrieving a single secure settings value as a long. Note that internally setting values are always stored as strings; this function converts the string to a long for you. The default value will be returned if the setting is not defined or not a long.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getLong(cr: android.content.ContentResolver, name: string, def: number): any;
				/**
				 * Convenience function for retrieving a single secure settings value as a long. Note that internally setting values are always stored as strings; this function converts the string to a long for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getLong(cr: android.content.ContentResolver, name: string): any;
				/**
				 * Convenience function for updating a secure settings value as a long integer. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putLong(cr: android.content.ContentResolver, name: string, value: number): boolean;
				/**
				 * Convenience function for retrieving a single secure settings value as a floating point number. Note that internally setting values are always stored as strings; this function converts the string to an float for you. The default value will be returned if the setting is not defined or not a valid float.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 * @param def Value to return if the setting is not defined.
				 */
				public static getFloat(cr: android.content.ContentResolver, name: string, def: number): number;
				/**
				 * Convenience function for retrieving a single secure settings value as a float. Note that internally setting values are always stored as strings; this function converts the string to a float for you.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to retrieve.
				 */
				public static getFloat(cr: android.content.ContentResolver, name: string): number;
				/**
				 * Convenience function for updating a single settings value as a floating point number. This will either create a new entry in the table if the given name does not exist, or modify the value of the existing row with that name. Note that internally setting values are always stored as strings, so this function converts the given value to a string before storing it.
				 * @param cr The ContentResolver to access.
				 * @param name The name of the setting to modify.
				 * @param value The new value for the setting.
				 */
				public static putFloat(cr: android.content.ContentResolver, name: string, value: number): boolean;
				public static putString(resolver: android.content.ContentResolver, uri: android.net.Uri, name: string, value: string): boolean;
				static getUriFor(uri: android.net.Uri, name: string): android.net.Uri;
			}
		}
		export class Browser extends java.lang.Object {
			constructor();
			/**
			 * A table containing both bookmarks and history items. The columns of the table are defined in BookmarkColumns. Reading this table requires the android.Manifest.permission#READ_HISTORY_BOOKMARKS permission and writing to it requires the android.Manifest.permission#WRITE_HISTORY_BOOKMARKS permission.
			 */
			static BOOKMARKS_URI: android.net.Uri;
			/**
			 * The name of extra data when starting Browser with ACTION_VIEW or ACTION_SEARCH intent.
			 */
			static INITIAL_ZOOM_LEVEL: string;
			/**
			 * The name of the extra data when starting the Browser from another application.
			 */
			static EXTRA_APPLICATION_ID: string;
			/**
			 * The name of the extra data in the VIEW intent. The data are key/value pairs in the format of Bundle. They will be sent in the HTTP request headers for the provided url. The keys can't be the standard HTTP headers as they are set by the WebView. The url's schema must be http(s).
			 */
			static EXTRA_HEADERS: string;
			static HISTORY_PROJECTION: native.Array<string>;
			static HISTORY_PROJECTION_ID_INDEX: number;
			static HISTORY_PROJECTION_URL_INDEX: number;
			static HISTORY_PROJECTION_VISITS_INDEX: number;
			static HISTORY_PROJECTION_DATE_INDEX: number;
			static HISTORY_PROJECTION_BOOKMARK_INDEX: number;
			static HISTORY_PROJECTION_TITLE_INDEX: number;
			static HISTORY_PROJECTION_FAVICON_INDEX: number;
			static TRUNCATE_HISTORY_PROJECTION: native.Array<string>;
			static TRUNCATE_HISTORY_PROJECTION_ID_INDEX: number;
			static TRUNCATE_N_OLDEST: number;
			/**
			 * A table containing a log of browser searches. The columns of the table are defined in SearchColumns. Reading this table requires the android.Manifest.permission#READ_HISTORY_BOOKMARKS permission and writing to it requires the android.Manifest.permission#WRITE_HISTORY_BOOKMARKS permission.
			 */
			static SEARCHES_URI: android.net.Uri;
			/**
			 * A projection of #SEARCHES_URI that contains SearchColumns#_ID, SearchColumns#SEARCH, and SearchColumns#DATE.
			 */
			static SEARCHES_PROJECTION: native.Array<string>;
			static SEARCHES_PROJECTION_SEARCH_INDEX: number;
			static SEARCHES_PROJECTION_DATE_INDEX: number;
			/**
			 * Boolean extra passed along with an Intent to a browser, specifying that a new tab be created. Overrides EXTRA_APPLICATION_ID; if both are set, a new tab will be used, rather than using the same one.
			 */
			static EXTRA_CREATE_NEW_TAB: string;
			static class: java.lang.Class<android.provider.Browser>;
			/**
			 * Open an activity to save a bookmark. Launch with a title and/or a url, both of which can be edited by the user before saving.
			 * @param c Context used to launch the activity to add a bookmark.
			 * @param title Title for the bookmark. Can be null or empty string.
			 * @param url Url for the bookmark. Can be null or empty string.
			 */
			public static saveBookmark(c: android.content.Context, title: string, url: string): void;
			/**
			 * Sends the given string using an Intent with Intent#ACTION_SEND and a mime type of text/plain. The string is put into Intent#EXTRA_TEXT.
			 * @param context the context used to start the activity
			 * @param string the string to send
			 */
			public static sendString(context: android.content.Context, string: string): void;
			/**
			 * Return a cursor pointing to a list of all the bookmarks. The cursor will have a single column, BookmarkColumns#URL.
			 * @param cr The ContentResolver used to access the database.
			 */
			public static getAllBookmarks(cr: android.content.ContentResolver): android.database.ICursor;
			/**
			 * Return a cursor pointing to a list of all visited site urls. The cursor will have a single column, BookmarkColumns#URL.
			 * @param cr The ContentResolver used to access the database.
			 */
			public static getAllVisitedUrls(cr: android.content.ContentResolver): android.database.ICursor;
			/**
			 * Update the visited history to acknowledge that a site has been visited. Requires android.Manifest.permission#READ_HISTORY_BOOKMARKS Requires android.Manifest.permission#WRITE_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 * @param url The site being visited.
			 * @param real If true, this is an actual visit, and should add to the
			 */
			public static updateVisitedHistory(cr: android.content.ContentResolver, url: string, real: boolean): void;
			/**
			 * If there are more than MAX_HISTORY_COUNT non-bookmark history items in the bookmark/history table, delete TRUNCATE_N_OLDEST of them. This is used to keep our history table to a reasonable size. Note: it does not prune bookmarks. If the user wants 1000 bookmarks, the user gets 1000 bookmarks. Requires android.Manifest.permission#READ_HISTORY_BOOKMARKS Requires android.Manifest.permission#WRITE_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 */
			public static truncateHistory(cr: android.content.ContentResolver): void;
			/**
			 * Returns whether there is any history to clear. Requires android.Manifest.permission#READ_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 */
			public static canClearHistory(cr: android.content.ContentResolver): boolean;
			/**
			 * Delete all entries from the bookmarks/history table which are not bookmarks. Also set all visited bookmarks to unvisited. Requires android.Manifest.permission#WRITE_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 */
			public static clearHistory(cr: android.content.ContentResolver): void;
			/**
			 * Delete all history items from begin to end. Requires android.Manifest.permission#WRITE_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 * @param begin First date to remove. If -1, all dates before end.
			 * @param end Last date to remove. If -1, all dates after begin.
			 */
			public static deleteHistoryTimeFrame(cr: android.content.ContentResolver, begin: number, end: number): void;
			/**
			 * Remove a specific url from the history database. Requires android.Manifest.permission#WRITE_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 * @param url url to remove.
			 */
			public static deleteFromHistory(cr: android.content.ContentResolver, url: string): void;
			/**
			 * Add a search string to the searches database. Requires android.Manifest.permission#READ_HISTORY_BOOKMARKS Requires android.Manifest.permission#WRITE_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 * @param search The string to add to the searches database.
			 */
			public static addSearchUrl(cr: android.content.ContentResolver, search: string): void;
			/**
			 * Remove all searches from the search database. Requires android.Manifest.permission#WRITE_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 */
			public static clearSearches(cr: android.content.ContentResolver): void;
			/**
			 * Request all icons from the database. This call must either be called in the main thread or have had Looper.prepare() invoked in the calling thread. Requires android.Manifest.permission#READ_HISTORY_BOOKMARKS
			 * @param cr The ContentResolver used to access the database.
			 * @param where Clause to be used to limit the query from the database.
			 * @param listener IconListener that gets the icons once they are
			 */
			public static requestAllIcons(cr: android.content.ContentResolver, where: string, listener: android.webkit.WebIconDatabase.IIconListener): void;
		}
		export module Browser {
			/**
			 * Column definitions for the search history table, available at #SEARCHES_URI.
			 */
			export class SearchColumns extends java.lang.Object implements android.provider.IBaseColumns {
				constructor();
				/**
				 *  Not used.
				 */
				static URL: string;
				/**
				 * The user entered search term.
				 */
				static SEARCH: string;
				/**
				 * The date the search was performed, in milliseconds since the epoch.
				 */
				static DATE: string;
				static class: java.lang.Class<android.provider.Browser.SearchColumns>;
			}
			/**
			 * Column definitions for the mixed bookmark and history items available at #BOOKMARKS_URI.
			 */
			export class BookmarkColumns extends java.lang.Object implements android.provider.IBaseColumns {
				constructor();
				/**
				 * The URL of the bookmark or history item.
				 */
				static URL: string;
				/**
				 * The number of time the item has been visited.
				 */
				static VISITS: string;
				/**
				 * The date the item was last visited, in milliseconds since the epoch.
				 */
				static DATE: string;
				/**
				 * Flag indicating that an item is a bookmark. A value of 1 indicates a bookmark, a value of 0 indicates a history item.
				 */
				static BOOKMARK: string;
				/**
				 * The user visible title of the bookmark or history item.
				 */
				static TITLE: string;
				/**
				 * The date the item created, in milliseconds since the epoch.
				 */
				static CREATED: string;
				/**
				 * The favicon of the bookmark. Must decode via BitmapFactory#decodeByteArray.
				 */
				static FAVICON: string;
				static class: java.lang.Class<android.provider.Browser.BookmarkColumns>;
			}
		}
	}
	export module appwidget {
		/**
		 * Provides the glue to show AppWidget views. This class offers automatic animation between updates, and will try recycling old views for each incoming RemoteViews.
		 */
		export class AppWidgetHostView extends android.widget.FrameLayout {
			/**
			 * Create a host view. Uses default fade animations.
			 */
			constructor(context: android.content.Context);
			/**
			 * Create a host view. Uses specified animations when pushing #updateAppWidget(RemoteViews).
			 * @param context animationIn Resource ID of in animation to use
			 * @param animationIn animationOut Resource ID of out animation to use
			 * @param animationOut 
			 */
			constructor(context: android.content.Context, animationIn: number, animationOut: number);
			static class: java.lang.Class<android.appwidget.AppWidgetHostView>;
			/**
			 * Set the AppWidget that will be displayed by this view. This method also adds default padding to widgets, as described in #getDefaultPaddingForWidget(Context, ComponentName, Rect) and can be overridden in order to add custom padding.
			 */
			public setAppWidget(appWidgetId: number, info: android.appwidget.AppWidgetProviderInfo): void;
			/**
			 * As of ICE_CREAM_SANDWICH we are automatically adding padding to widgets targeting ICE_CREAM_SANDWICH and higher. The new widget design guidelines strongly recommend that widget developers do not add extra padding to their widgets. This will help achieve consistency among widgets.
			 * @param context the current context
			 * @param component the component name of the widget
			 * @param padding Rect in which to place the output, if null, a new Rect will be allocated and
			 */
			public static getDefaultPaddingForWidget(context: android.content.Context, component: android.content.ComponentName, padding: android.graphics.Rect): android.graphics.Rect;
			public getAppWidgetId(): number;
			public getAppWidgetInfo(): android.appwidget.AppWidgetProviderInfo;
			protected dispatchSaveInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			protected dispatchRestoreInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
			/**
			 * Provide guidance about the size of this widget to the AppWidgetManager. The widths and heights should correspond to the full area the AppWidgetHostView is given. Padding added by the framework will be accounted for automatically. This information gets embedded into the AppWidget options and causes a callback to the AppWidgetProvider. AppWidgetProvider#onAppWidgetOptionsChanged(Context, AppWidgetManager, int, Bundle)
			 * @param newOptions The bundle of options, in addition to the size information,
			 * @param minWidth The minimum width in dips that the widget will be displayed at.
			 * @param minHeight The maximum height in dips that the widget will be displayed at.
			 * @param maxWidth The maximum width in dips that the widget will be displayed at.
			 * @param maxHeight The maximum height in dips that the widget will be displayed at.
			 */
			public updateAppWidgetSize(newOptions: android.os.Bundle, minWidth: number, minHeight: number, maxWidth: number, maxHeight: number): void;
			/**
			 * Specify some extra information for the widget provider. Causes a callback to the AppWidgetProvider. AppWidgetProvider#onAppWidgetOptionsChanged(Context, AppWidgetManager, int, Bundle)
			 * @param options The bundle of options information.
			 */
			public updateAppWidgetOptions(options: android.os.Bundle): void;
			/**
			 * 
			 */
			public generateLayoutParams(attrs: android.util.IAttributeSet): android.widget.FrameLayout.LayoutParams;
			/**
			 * Update the AppWidgetProviderInfo for this view, and reset it to the initial layout.
			 */
			resetAppWidget(info: android.appwidget.AppWidgetProviderInfo): void;
			/**
			 * Process a set of RemoteViews coming in as an update from the AppWidget provider. Will animate into these new views as needed
			 */
			public updateAppWidget(remoteViews: android.widget.RemoteViews): void;
			/**
			 * Process data-changed notifications for the specified view in the specified set of RemoteViews views.
			 */
			viewDataChanged(viewId: number): void;
			protected drawChild(canvas: android.graphics.Canvas, child: android.view.View, drawingTime: number): boolean;
			/**
			 * Prepare the given view to be shown. This might include adjusting FrameLayout.LayoutParams before inserting.
			 */
			protected prepareView(view: android.view.View): void;
			/**
			 * Inflate and return the default layout requested by AppWidget provider.
			 */
			protected getDefaultView(): android.view.View;
			/**
			 * Inflate and return a view that represents an error state.
			 */
			protected getErrorView(): android.view.View;
			public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
			generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.view.ViewGroup.LayoutParams;
		}
		export module AppWidgetHostView {
			export class ParcelableSparseArray extends android.util.SparseArray<android.os.IParcelable> implements android.os.IParcelable {
				static CREATOR: android.os.Parcelable.ICreator<android.appwidget.AppWidgetHostView.ParcelableSparseArray>;
				static class: java.lang.Class<android.appwidget.AppWidgetHostView.ParcelableSparseArray>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * AppWidgetHost provides the interaction with the AppWidget service for apps, like the home screen, that want to embed AppWidgets in their UI.
		 */
		export class AppWidgetHost extends java.lang.Object {
			constructor(context: android.content.Context, hostId: number);
			static class: java.lang.Class<android.appwidget.AppWidgetHost>;
			UpdateHandler: {
	new (looper: android.os.Looper): android.appwidget.AppWidgetHost.UpdateHandler;
};
			/**
			 * Start receiving onAppWidgetChanged calls for your AppWidgets. Call this when your activity becomes visible, i.e. from onStart() in your Activity.
			 */
			public startListening(): void;
			/**
			 * Stop receiving onAppWidgetChanged calls for your AppWidgets. Call this when your activity is no longer visible, i.e. from onStop() in your Activity.
			 */
			public stopListening(): void;
			/**
			 * Get a appWidgetId for a host in the calling process.
			 */
			public allocateAppWidgetId(): number;
			/**
			 * Stop listening to changes for this AppWidget.
			 */
			public deleteAppWidgetId(appWidgetId: number): void;
			/**
			 * Remove all records about this host from the AppWidget manager. <ul> <li>Call this when initializing your database, as it might be because of a data wipe.</li> <li>Call this to have the AppWidget manager release all resources associated with your host. Any future calls about this host will cause the records to be re-allocated.</li> </ul>
			 */
			public deleteHost(): void;
			/**
			 * Remove all records about all hosts for your package. <ul> <li>Call this when initializing your database, as it might be because of a data wipe.</li> <li>Call this to have the AppWidget manager release all resources associated with your host. Any future calls about this host will cause the records to be re-allocated.</li> </ul>
			 */
			public static deleteAllHosts(): void;
			/**
			 * Create the AppWidgetHostView for the given widget. The AppWidgetHost retains a pointer to the newly-created View.
			 */
			public createView(context: android.content.Context, appWidgetId: number, appWidget: android.appwidget.AppWidgetProviderInfo): android.appwidget.AppWidgetHostView;
			/**
			 * Called to create the AppWidgetHostView. Override to return a custom subclass if you need it. 
			 */
			protected onCreateView(context: android.content.Context, appWidgetId: number, appWidget: android.appwidget.AppWidgetProviderInfo): android.appwidget.AppWidgetHostView;
			/**
			 * Called when the AppWidget provider for a AppWidget has been upgraded to a new apk.
			 */
			protected onProviderChanged(appWidgetId: number, appWidget: android.appwidget.AppWidgetProviderInfo): void;
			/**
			 * Called when the set of available widgets changes (ie. widget containing packages are added, updated or removed, or widget components are enabled or disabled.)
			 */
			protected onProvidersChanged(): void;
			updateAppWidgetView(appWidgetId: number, views: android.widget.RemoteViews): void;
			viewDataChanged(appWidgetId: number, viewId: number): void;
			/**
			 * Clear the list of Views that have been created by this AppWidgetHost.
			 */
			protected clearViews(): void;
		}
		export module AppWidgetHost {
			export class UpdateHandler extends android.os.Handler {
				static class: java.lang.Class<android.appwidget.AppWidgetHost.UpdateHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			export class Callbacks {
				static class: java.lang.Class<android.appwidget.AppWidgetHost.Callbacks>;
				public updateAppWidget(appWidgetId: number, views: android.widget.RemoteViews): void;
				public providerChanged(appWidgetId: number, info: android.appwidget.AppWidgetProviderInfo): void;
				public providersChanged(): void;
				public viewDataChanged(appWidgetId: number, viewId: number): void;
			}
		}
		/**
		 * A convenience class to aid in implementing an AppWidget provider. Everything you can do with AppWidgetProvider, you can do with a regular BroadcastReceiver. AppWidgetProvider merely parses the relevant fields out of the Intent that is received in #onReceive(Context,Intent) onReceive(Context,Intent), and calls hook methods with the received extras.
		 */
		export class AppWidgetProvider extends android.content.BroadcastReceiver {
			/**
			 * Constructor to initialize AppWidgetProvider.
			 */
			constructor();
			static class: java.lang.Class<android.appwidget.AppWidgetProvider>;
			/**
			 * Implements BroadcastReceiver#onReceive to dispatch calls to the various other methods on AppWidgetProvider.
			 * @param context The Context in which the receiver is running.
			 * @param intent The Intent being received.
			 */
			public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			/**
			 * Called in response to the AppWidgetManager#ACTION_APPWIDGET_UPDATE broadcast when this AppWidget provider is being asked to provide android.widget.RemoteViews RemoteViews for a set of AppWidgets. Override this method to implement your own AppWidget functionality.
			 * @param context The {@link android.content.Context Context} in which this receiver is
			 * @param appWidgetManager A {@link AppWidgetManager} object you can call {@link
			 * @param appWidgetIds The appWidgetIds for which an update is needed. Note that this
			 */
			public onUpdate(context: android.content.Context, appWidgetManager: android.appwidget.AppWidgetManager, appWidgetIds: native.Array<number>): void;
			/**
			 * Called in response to the AppWidgetManager#ACTION_APPWIDGET_OPTIONS_CHANGED broadcast when this widget has been layed out at a new size.
			 * @param context The {@link android.content.Context Context} in which this receiver is
			 * @param appWidgetManager A {@link AppWidgetManager} object you can call {@link
			 * @param appWidgetId The appWidgetId of the widget who's size changed.
			 * @param newOptions The appWidgetId of the widget who's size changed.
			 */
			public onAppWidgetOptionsChanged(context: android.content.Context, appWidgetManager: android.appwidget.AppWidgetManager, appWidgetId: number, newOptions: android.os.Bundle): void;
			/**
			 * Called in response to the AppWidgetManager#ACTION_APPWIDGET_DELETED broadcast when one or more AppWidget instances have been deleted. Override this method to implement your own AppWidget functionality.
			 * @param context The {@link android.content.Context Context} in which this receiver is
			 * @param appWidgetIds The appWidgetIds that have been deleted from their host.
			 */
			public onDeleted(context: android.content.Context, appWidgetIds: native.Array<number>): void;
			/**
			 * Called in response to the AppWidgetManager#ACTION_APPWIDGET_ENABLED broadcast when the a AppWidget for this provider is instantiated. Override this method to implement your own AppWidget functionality.
			 * @param context The {@link android.content.Context Context} in which this receiver is
			 */
			public onEnabled(context: android.content.Context): void;
			/**
			 * Called in response to the AppWidgetManager#ACTION_APPWIDGET_DISABLED broadcast, which is sent when the last AppWidget instance for this provider is deleted. Override this method to implement your own AppWidget functionality.
			 * @param context The {@link android.content.Context Context} in which this receiver is
			 */
			public onDisabled(context: android.content.Context): void;
		}
		/**
		 * Describes the meta data for an installed AppWidget provider. The fields in this class correspond to the fields in the <code>&lt;appwidget-provider&gt;</code> xml tag.
		 */
		export class AppWidgetProviderInfo extends java.lang.Object implements android.os.IParcelable {
			constructor();
			/**
			 * Unflatten the AppWidgetProviderInfo from a parcel.
			 */
			constructor(input: android.os.Parcel);
			/**
			 * Widget is not resizable.
			 */
			static RESIZE_NONE: number;
			/**
			 * Widget is resizable in the horizontal axis only.
			 */
			static RESIZE_HORIZONTAL: number;
			/**
			 * Widget is resizable in the vertical axis only.
			 */
			static RESIZE_VERTICAL: number;
			/**
			 * Widget is resizable in both the horizontal and vertical axes.
			 */
			static RESIZE_BOTH: number;
			/**
			 * Indicates that the widget can be displayed on the home screen. This is the default value.
			 */
			static WIDGET_CATEGORY_HOME_SCREEN: number;
			/**
			 * Indicates that the widget can be displayed on the keyguard.
			 */
			static WIDGET_CATEGORY_KEYGUARD: number;
			/**
			 * Identity of this AppWidget component. This component should be a android.content.BroadcastReceiver, and it will be sent the AppWidget intents android.appwidget as described in the AppWidget package documentation.
			 */
			provider: android.content.ComponentName;
			/**
			 * The default height of the widget when added to a host, in dp. The widget will get at least this width, and will often be given more, depending on the host.
			 */
			minWidth: number;
			/**
			 * The default height of the widget when added to a host, in dp. The widget will get at least this height, and will often be given more, depending on the host.
			 */
			minHeight: number;
			/**
			 * Minimum width (in dp) which the widget can be resized to. This field has no effect if it is greater than minWidth or if horizontal resizing isn't enabled (see #resizeMode).
			 */
			minResizeWidth: number;
			/**
			 * Minimum height (in dp) which the widget can be resized to. This field has no effect if it is greater than minHeight or if vertical resizing isn't enabled (see #resizeMode).
			 */
			minResizeHeight: number;
			/**
			 * How often, in milliseconds, that this AppWidget wants to be updated. The AppWidget manager may place a limit on how often a AppWidget is updated.
			 */
			updatePeriodMillis: number;
			/**
			 * The resource id of the initial layout for this AppWidget. This should be displayed until the RemoteViews for the AppWidget is available.
			 */
			initialLayout: number;
			/**
			 * The resource id of the initial layout for this AppWidget when it is displayed on keyguard. This parameter only needs to be provided if the widget can be displayed on the keyguard, see #widgetCategory.
			 */
			initialKeyguardLayout: number;
			/**
			 * The activity to launch that will configure the AppWidget.
			 */
			configure: android.content.ComponentName;
			/**
			 * The label to display to the user in the AppWidget picker. If not supplied in the xml, the application label will be used.
			 */
			label: string;
			/**
			 * The icon to display for this AppWidget in the AppWidget picker. If not supplied in the xml, the application icon will be used.
			 */
			icon: number;
			/**
			 * The view id of the AppWidget subview which should be auto-advanced by the widget's host.
			 */
			autoAdvanceViewId: number;
			/**
			 * A preview of what the AppWidget will look like after it's configured. If not supplied, the AppWidget's icon will be used.
			 */
			previewImage: number;
			/**
			 * The rules by which a widget can be resized. See #RESIZE_NONE, #RESIZE_NONE, #RESIZE_HORIZONTAL, #RESIZE_VERTICAL, #RESIZE_BOTH.
			 */
			resizeMode: number;
			/**
			 * Determines whether this widget can be displayed on the home screen, the keyguard, or both. A widget which is displayed on both needs to ensure that it follows the design guidelines for both widget classes. This can be achieved by querying the AppWidget options in its widget provider's update method.
			 */
			widgetCategory: number;
			/**
			 * Parcelable.Creator that instantiates AppWidgetProviderInfo objects
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.appwidget.AppWidgetProviderInfo>;
			static class: java.lang.Class<android.appwidget.AppWidgetProviderInfo>;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			public clone(): android.appwidget.AppWidgetProviderInfo;
			public describeContents(): number;
			public toString(): string;
		}
		/**
		 * Updates AppWidget state; gets information about installed AppWidget providers and other AppWidget related state.
		 */
		export class AppWidgetManager extends java.lang.Object {
			/**
			 * Send this from your AppWidgetHost activity when you want to pick an AppWidget to display. The AppWidget picker activity will be launched.
			 */
			static ACTION_APPWIDGET_PICK: string;
			/**
			 * Send this from your AppWidgetHost activity when you want to bind an AppWidget to display and bindAppWidgetIdIfAllowed returns false.
			 */
			static ACTION_APPWIDGET_BIND: string;
			/**
			 * Sent when it is time to configure your AppWidget while it is being added to a host. This action is not sent as a broadcast to the AppWidget provider, but as a startActivity to the activity specified in the AppWidgetProviderInfo AppWidgetProviderInfo meta-data.
			 */
			static ACTION_APPWIDGET_CONFIGURE: string;
			/**
			 * An intent extra that contains one appWidgetId.
			 */
			static EXTRA_APPWIDGET_ID: string;
			/**
			 * A bundle extra that contains the lower bound on the current width, in dips, of a widget instance.
			 */
			static OPTION_APPWIDGET_MIN_WIDTH: string;
			/**
			 * A bundle extra that contains the lower bound on the current height, in dips, of a widget instance.
			 */
			static OPTION_APPWIDGET_MIN_HEIGHT: string;
			/**
			 * A bundle extra that contains the upper bound on the current width, in dips, of a widget instance.
			 */
			static OPTION_APPWIDGET_MAX_WIDTH: string;
			/**
			 * A bundle extra that contains the upper bound on the current width, in dips, of a widget instance.
			 */
			static OPTION_APPWIDGET_MAX_HEIGHT: string;
			/**
			 * A bundle extra that hints to the AppWidgetProvider the category of host that owns this this widget. Can have the value AppWidgetProviderInfo#WIDGET_CATEGORY_HOME_SCREEN or AppWidgetProviderInfo#WIDGET_CATEGORY_KEYGUARD.
			 */
			static OPTION_APPWIDGET_HOST_CATEGORY: string;
			/**
			 * An intent extra which points to a bundle of extra information for a particular widget id. In particular this bundle can contain EXTRA_APPWIDGET_WIDTH and EXTRA_APPWIDGET_HEIGHT.
			 */
			static EXTRA_APPWIDGET_OPTIONS: string;
			/**
			 * An intent extra that contains multiple appWidgetIds.
			 */
			static EXTRA_APPWIDGET_IDS: string;
			/**
			 * An intent extra that contains the component name of a AppWidget provider.
			 */
			static EXTRA_APPWIDGET_PROVIDER: string;
			/**
			 * An intent extra to pass to the AppWidget picker containing a java.util.List of AppWidgetProviderInfo objects to mix in to the list of AppWidgets that are installed. (This is how the launcher shows the search widget).
			 */
			static EXTRA_CUSTOM_INFO: string;
			/**
			 * An intent extra to pass to the AppWidget picker containing a java.util.List of android.os.Bundle objects to mix in to the list of AppWidgets that are installed. It will be added to the extras object on the android.content.Intent that is returned from the picker activity.
			 */
			static EXTRA_CUSTOM_EXTRAS: string;
			/**
			 * A sentiel value that the AppWidget manager will never return as a appWidgetId.
			 */
			static INVALID_APPWIDGET_ID: number;
			/**
			 * Sent when it is time to update your AppWidget.
			 */
			static ACTION_APPWIDGET_UPDATE: string;
			/**
			 * Sent when the custom extras for an AppWidget change.
			 */
			static ACTION_APPWIDGET_OPTIONS_CHANGED: string;
			/**
			 * Sent when an instance of an AppWidget is deleted from its host.
			 */
			static ACTION_APPWIDGET_DELETED: string;
			/**
			 * Sent when an instance of an AppWidget is removed from the last host.
			 */
			static ACTION_APPWIDGET_DISABLED: string;
			/**
			 * Sent when an instance of an AppWidget is added to a host for the first time. This broadcast is sent at boot time if there is a AppWidgetHost installed with an instance for this provider.
			 */
			static ACTION_APPWIDGET_ENABLED: string;
			/**
			 * Field for the manifest meta-data tag.
			 */
			static META_DATA_APPWIDGET_PROVIDER: string;
			static class: java.lang.Class<android.appwidget.AppWidgetManager>;
			/**
			 * Get the AppWidgetManager instance to use for the supplied android.content.Context Context object.
			 */
			public static getInstance(context: android.content.Context): android.appwidget.AppWidgetManager;
			/**
			 * Set the RemoteViews to use for the specified appWidgetIds.
			 * @param appWidgetIds The AppWidget instances for which to set the RemoteViews.
			 * @param views The RemoteViews object to show.
			 */
			public updateAppWidget(appWidgetIds: native.Array<number>, views: android.widget.RemoteViews): void;
			/**
			 * Update the extras for a given widget instance.
			 * @param appWidgetId The AppWidget instances for which to set the RemoteViews.
			 * @param options The options to associate with this widget
			 */
			public updateAppWidgetOptions(appWidgetId: number, options: android.os.Bundle): void;
			/**
			 * Get the extras associated with a given widget instance.
			 * @param appWidgetId The AppWidget instances for which to set the RemoteViews.
			 */
			public getAppWidgetOptions(appWidgetId: number): android.os.Bundle;
			/**
			 * Set the RemoteViews to use for the specified appWidgetId.
			 * @param appWidgetId The AppWidget instance for which to set the RemoteViews.
			 * @param views The RemoteViews object to show.
			 */
			public updateAppWidget(appWidgetId: number, views: android.widget.RemoteViews): void;
			/**
			 * Perform an incremental update or command on the widget(s) specified by appWidgetIds.
			 * @param appWidgetIds The AppWidget instances for which to set the RemoteViews.
			 * @param views The RemoteViews object containing the incremental update / command.
			 */
			public partiallyUpdateAppWidget(appWidgetIds: native.Array<number>, views: android.widget.RemoteViews): void;
			/**
			 * Perform an incremental update or command on the widget specified by appWidgetId.
			 * @param appWidgetId The AppWidget instance for which to set the RemoteViews.
			 * @param views The RemoteViews object containing the incremental update / command.
			 */
			public partiallyUpdateAppWidget(appWidgetId: number, views: android.widget.RemoteViews): void;
			/**
			 * Set the RemoteViews to use for all AppWidget instances for the supplied AppWidget provider.
			 * @param provider The {@link ComponentName} for the {@link
			 * @param views The RemoteViews object to show.
			 */
			public updateAppWidget(provider: android.content.ComponentName, views: android.widget.RemoteViews): void;
			/**
			 * Notifies the specified collection view in all the specified AppWidget instances to invalidate their currently data.
			 * @param appWidgetIds The AppWidget instances for which to notify of view data changes.
			 * @param viewId The collection view id.
			 */
			public notifyAppWidgetViewDataChanged(appWidgetIds: native.Array<number>, viewId: number): void;
			/**
			 * Notifies the specified collection view in all the specified AppWidget instance to invalidate it's currently data.
			 * @param appWidgetId The AppWidget instance for which to notify of view data changes.
			 * @param viewId The collection view id.
			 */
			public notifyAppWidgetViewDataChanged(appWidgetId: number, viewId: number): void;
			/**
			 * Return a list of the AppWidget providers that are currently installed.
			 */
			public getInstalledProviders(): java.util.IList<android.appwidget.AppWidgetProviderInfo>;
			/**
			 * Get the available info about the AppWidget.
			 */
			public getAppWidgetInfo(appWidgetId: number): android.appwidget.AppWidgetProviderInfo;
			/**
			 * Set the component for a given appWidgetId.
			 * @param appWidgetId The AppWidget instance for which to set the RemoteViews.
			 * @param provider The {@link android.content.BroadcastReceiver} that will be the AppWidget
			 */
			public bindAppWidgetIdIfAllowed(appWidgetId: number, provider: android.content.ComponentName): boolean;
			/**
			 * Set the component for a given appWidgetId.
			 * @param appWidgetId The AppWidget instance for which to set the RemoteViews.
			 * @param provider The {@link android.content.BroadcastReceiver} that will be the AppWidget
			 * @param options Bundle containing options for the AppWidget. See also
			 */
			public bindAppWidgetIdIfAllowed(appWidgetId: number, provider: android.content.ComponentName, options: android.os.Bundle): boolean;
			/**
			 * Get the list of appWidgetIds that have been bound to the given AppWidget provider.
			 * @param provider The {@link android.content.BroadcastReceiver} that is the
			 */
			public getAppWidgetIds(provider: android.content.ComponentName): native.Array<number>;
		}
	}
	export module filterpacks {
		export module imageproc {
			export class NegativeFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.NegativeFilter>;
				public setupPorts(): void;
			}
			export class LomoishFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.LomoishFilter>;
				public setupPorts(): void;
			}
			export class CrossProcessFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.CrossProcessFilter>;
				public setupPorts(): void;
			}
			export class ImageSlicer extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.ImageSlicer>;
				public setupPorts(): void;
			}
			export class SaturateFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.SaturateFilter>;
				public setupPorts(): void;
			}
			export class AutoFixFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.AutoFixFilter>;
				public setupPorts(): void;
			}
			export class BlackWhiteFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.BlackWhiteFilter>;
				public setupPorts(): void;
			}
			export class SharpenFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.SharpenFilter>;
				public setupPorts(): void;
			}
			export class DocumentaryFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.DocumentaryFilter>;
				public setupPorts(): void;
			}
			export class ColorTemperatureFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.ColorTemperatureFilter>;
				public setupPorts(): void;
			}
			export class GrainFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.GrainFilter>;
				public setupPorts(): void;
			}
			export class PosterizeFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.PosterizeFilter>;
				public setupPorts(): void;
			}
			export class VignetteFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.VignetteFilter>;
				public setupPorts(): void;
			}
			export class DuotoneFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.DuotoneFilter>;
				public setupPorts(): void;
			}
			export class SepiaFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.SepiaFilter>;
				public setupPorts(): void;
			}
			export class FillLightFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.FillLightFilter>;
				public setupPorts(): void;
			}
			export class TintFilter extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.TintFilter>;
				public setupPorts(): void;
			}
			export class ImageStitcher extends java.lang.Object {
				constructor(name: string);
				static class: java.lang.Class<android.filterpacks.imageproc.ImageStitcher>;
				public setupPorts(): void;
			}
		}
	}
	export module text {
		export class StaticLayoutDirectionsTest {
			constructor();
			static class: java.lang.Class<android.text.StaticLayoutDirectionsTest>;
			public testDirections(): void;
			public testTrailingWhitespace(): void;
			public testNextToRightOf(): void;
			public testNextToLeftOf(): void;
		}
		export class TextLayoutTest {
			constructor();
			static class: java.lang.Class<android.text.TextLayoutTest>;
			protected setUp(): void;
			public testStaticLayout(): void;
			public testDynamicLayoutTest(): void;
		}
		/**
		 * This is the class for text whose content and markup are immutable. For mutable markup, see SpannableString; for mutable text, see SpannableStringBuilder.
		 */
		export class SpannedString extends android.text.SpannableStringInternal implements java.lang.ICharSequence, android.text.IGetChars, android.text.ISpanned {
			constructor(source: string);
			static class: java.lang.Class<android.text.SpannedString>;
			public subSequence(start: number, end: number): string;
			public static valueOf(source: string): android.text.SpannedString;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
			/**
			 * Exactly like String.getChars(): copy chars <code>start</code> through <code>end - 1</code> from this CharSequence into <code>dest</code> beginning at offset <code>destoff</code>.
			 */
			getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
		}
		/**
		 * This class accesses a dictionary of corrections to frequent misspellings.
		 */
		export class AutoText extends java.lang.Object {
			static class: java.lang.Class<android.text.AutoText>;
			/**
			 * Retrieves a possible spelling correction for the specified range of text. Returns null if no correction can be found. The View is used to get the current Locale and Resources.
			 */
			public static get(src: string, start: number, end: number, view: android.view.View): string;
			/**
			 * Returns the size of the auto text dictionary. The return value can be zero if there is no auto correction data available for the current locale.
			 * @param view used to retrieve the current Locale and Resources.
			 */
			public static getSize(view: android.view.View): number;
		}
		/**
		 * DynamicLayout is a text layout that updates itself as the text is edited.
		 */
		export class DynamicLayout extends android.text.Layout {
			/**
			 * Make a layout for the specified text that will be updated as the text is changed.
			 */
			constructor(base: string, paint: android.text.TextPaint, width: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, includepad: boolean);
			/**
			 * Make a layout for the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed.
			 */
			constructor(base: string, display: string, paint: android.text.TextPaint, width: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, includepad: boolean);
			/**
			 * Make a layout for the transformed text (password transformation being the primary example of a transformation) that will be updated as the base text is changed. If ellipsize is non-null, the Layout will ellipsize the text down to ellipsizedWidth.
			 */
			constructor(base: string, display: string, paint: android.text.TextPaint, width: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, includepad: boolean, ellipsize: android.text.TextUtils.TruncateAt, ellipsizedWidth: number);
			static class: java.lang.Class<android.text.DynamicLayout>;
			public getLineCount(): number;
			public getLineTop(line: number): number;
			public getLineDescent(line: number): number;
			public getLineStart(line: number): number;
			public getLineContainsTab(line: number): boolean;
			public getParagraphDirection(line: number): number;
			public getLineDirections(line: number): android.text.Layout.Directions;
			public getTopPadding(): number;
			public getBottomPadding(): number;
			public getEllipsizedWidth(): number;
			public getEllipsisStart(line: number): number;
			public getEllipsisCount(line: number): number;
		}
		export module DynamicLayout {
			export class ChangeWatcher extends java.lang.Object implements android.text.ITextWatcher, android.text.ISpanWatcher {
				constructor(layout: android.text.DynamicLayout);
				static class: java.lang.Class<android.text.DynamicLayout.ChangeWatcher>;
				public beforeTextChanged(s: string, where: number, before: number, after: number): void;
				public onTextChanged(s: string, where: number, before: number, after: number): void;
				public afterTextChanged(s: any): void;
				public onSpanAdded(s: android.text.ISpannable, o: any, start: number, end: number): void;
				public onSpanRemoved(s: android.text.ISpannable, o: any, start: number, end: number): void;
				public onSpanChanged(s: android.text.ISpannable, o: any, start: number, end: number, nstart: number, nend: number): void;
			}
		}
		/**
		 * Please implement this interface if your CharSequence has a getChars() method like the one in String that is faster than calling charAt() multiple times.
		 */
		interface IGetChars extends java.lang.ICharSequence {
			/**
			 * Exactly like String.getChars(): copy chars <code>start</code> through <code>end - 1</code> from this CharSequence into <code>dest</code> beginning at offset <code>destoff</code>.
			 */
			getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
		}
		/**
		 * TextUtilsTest tests TextUtils.
		 */
		export class TextUtilsTest {
			constructor();
			static class: java.lang.Class<android.text.TextUtilsTest>;
			public testBasic(): void;
			public testTemplateString(): void;
			public testTemplateSpan(): void;
			public testStringSplitterSimple(): void;
			public testStringSplitterEmpty(): void;
			public testStringSplitterWithLeadingEmptyString(): void;
			public testStringSplitterWithInternalEmptyString(): void;
			public testStringSplitterWithTrailingEmptyString(): void;
			public testTrim(): void;
			public testRfc822TokenizerFullAddress(): void;
			public testRfc822TokenizeItemWithError(): void;
			public testRfc822FindToken(): void;
			public testRfc822FindTokenWithError(): void;
			public testEllipsize(): void;
			public testDelimitedStringContains(): void;
			public testCharSequenceCreator(): void;
			public testCharSequenceCreatorNull(): void;
			public testCharSequenceCreatorSpannable(): void;
			public testCharSequenceCreatorString(): void;
			public testRemoveEmptySpans(): void;
		}
		export module TextUtilsTest {
			/**
			 * CharSequence wrapper for testing the cases where text is copied into a char array instead of working from a String or a Spanned.
			 */
			export class Wrapper extends java.lang.Object implements java.lang.ICharSequence {
				constructor(s: string);
				static class: java.lang.Class<android.text.TextUtilsTest.Wrapper>;
				public length(): number;
				public charAt(off: number): string;
				public toString(): string;
				public subSequence(start: number, end: number): string;
			}
			export class MockSpanned extends java.lang.Object implements android.text.ISpanned {
				static class: java.lang.Class<android.text.TextUtilsTest.MockSpanned>;
				public clear(): void;
				public addSpan(): android.text.TextUtilsTest.MockSpanned;
				public addEmptySpan(): android.text.TextUtilsTest.MockSpanned;
				public test(): void;
				public charAt(arg0: number): string;
				public length(): number;
				public subSequence(arg0: number, arg1: number): string;
				public getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
				public getSpanStart(tag: any): number;
				public getSpanEnd(tag: any): number;
				public getSpanFlags(tag: any): number;
				public nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
				/**
				 * Returns a string with the same characters in the same order as in this sequence.
				 */
				toString(): string;
			}
		}
		export class HtmlToSpannedConverter extends java.lang.Object implements org.xml.sax.IContentHandler {
			static class: java.lang.Class<android.text.HtmlToSpannedConverter>;
			public convert(): android.text.ISpanned;
			public setDocumentLocator(locator: org.xml.sax.ILocator): void;
			public startDocument(): void;
			public endDocument(): void;
			public startPrefixMapping(prefix: string, uri: string): void;
			public endPrefixMapping(prefix: string): void;
			public startElement(uri: string, localName: string, qName: string, attributes: org.xml.sax.IAttributes): void;
			public endElement(uri: string, localName: string, qName: string): void;
			public characters(ch: native.Array<string>, start: number, length: number): void;
			public ignorableWhitespace(ch: native.Array<string>, start: number, length: number): void;
			public processingInstruction(target: string, data: string): void;
			public skippedEntity(name: string): void;
		}
		export module HtmlToSpannedConverter {
			export class Blockquote extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Blockquote>;
			}
			export class Big extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Big>;
			}
			export class Sub extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Sub>;
			}
			export class Italic extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Italic>;
			}
			export class Small extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Small>;
			}
			export class Super extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Super>;
			}
			export class Header extends java.lang.Object {
				constructor(level: number);
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Header>;
			}
			export class Underline extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Underline>;
			}
			export class Href extends java.lang.Object {
				constructor(href: string);
				mHref: string;
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Href>;
			}
			export class Bold extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Bold>;
			}
			export class Monospace extends java.lang.Object {
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Monospace>;
			}
			export class Font extends java.lang.Object {
				constructor(color: string, face: string);
				mColor: string;
				mFace: string;
				static class: java.lang.Class<android.text.HtmlToSpannedConverter.Font>;
			}
		}
		/**
		 * PackedIntVectorTest tests the features of android.util.PackedIntVector.
		 */
		export class PackedIntVectorTest {
			constructor();
			static class: java.lang.Class<android.text.PackedIntVectorTest>;
			public testBasic(): void;
		}
		/**
		 * Tests StaticLayout vertical metrics behavior. Requires disabling access checks in the vm since this calls package-private APIs. 
		 */
		export class StaticLayoutTest {
			constructor();
			static class: java.lang.Class<android.text.StaticLayoutTest>;
			/**
			 * Basic test showing expected behavior and relationship between font metrics and line metrics.
			 */
			public testGetters1(): void;
			/**
			 * Basic test showing effect of includePad = true with 1 line. Top and bottom padding are affected, as is the line descent and height.
			 */
			public testGetters2(): void;
			/**
			 * Basic test showing effect of includePad = true wrapping to 2 lines. Ascent of top line and descent of bottom line are affected.
			 */
			public testGetters3(): void;
			/**
			 * Basic test showing effect of includePad = true wrapping to 3 lines. First line ascent is top, bottom line descent is bottom.
			 */
			public testGetters4(): void;
			/**
			 * Basic test showing effect of includePad = true wrapping to 3 lines and large text. See effect of leading. Currently, we don't expect there to even be non-zero leading.
			 */
			public testGetters5(): void;
			/**
			 * Basic test showing effect of includePad = true, spacingAdd = 2, wrapping to 3 lines.
			 */
			public testGetters6(): void;
			/**
			 * Basic test showing effect of includePad = true, spacingAdd = 2, spacingMult = 1.5, wrapping to 3 lines.
			 */
			public testGetters7(): void;
			/**
			 * Basic test showing effect of includePad = true, spacingAdd = 0, spacingMult = 0.8 when wrapping to 3 lines.
			 */
			public testGetters8(): void;
			static builder(): android.text.StaticLayoutTest.LayoutBuilder;
		}
		export module StaticLayoutTest {
			export class LayoutBuilder extends java.lang.Object {
				static class: java.lang.Class<android.text.StaticLayoutTest.LayoutBuilder>;
				setText(text: string): android.text.StaticLayoutTest.LayoutBuilder;
				setPaint(paint: android.text.TextPaint): android.text.StaticLayoutTest.LayoutBuilder;
				setWidth(width: number): android.text.StaticLayoutTest.LayoutBuilder;
				setAlignment(align: android.text.Layout.Alignment): android.text.StaticLayoutTest.LayoutBuilder;
				setSpacingMult(spacingMult: number): android.text.StaticLayoutTest.LayoutBuilder;
				setSpacingAdd(spacingAdd: number): android.text.StaticLayoutTest.LayoutBuilder;
				setIncludePad(includePad: boolean): android.text.StaticLayoutTest.LayoutBuilder;
				build(): android.text.Layout;
			}
			export class Scaler extends java.lang.Object {
				static class: java.lang.Class<android.text.StaticLayoutTest.Scaler>;
				public scale(height: number): number;
			}
		}
		/**
		 * Delegate used to provide new implementation for the native methods of AndroidBidi
		 */
		export class AndroidBidi_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.text.AndroidBidi_Delegate>;
			static runBidi(dir: number, chs: native.Array<string>, chInfo: native.Array<number>, n: number, haveInfo: boolean): number;
		}
		/**
		 * A special kind of Parcelable for objects that will serve as text spans. This can only be used by code in the framework; it is not intended for applications to implement their own Parcelable spans.
		 */
		interface IParcelableSpan extends android.os.IParcelable {
			/**
			 * Return a special type identifier for this span class.
			 */
			getSpanTypeId(): number;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export class SpannableTest extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.text.SpannableTest>;
			protected newSpannableWithText(text: string): android.text.ISpannable;
			public testGetSpans(): void;
		}
		/**
		 * This interface should be added to a span object that should not be copied into a new Spenned when performing a slice or copy operation on the original Spanned it was placed in.
		 */
		interface INoCopySpan {
		}
		/**
		 *  Old text-only interface to the clipboard. See android.content.ClipboardManager for the modern API.
		 */
		export class ClipboardManager extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.text.ClipboardManager>;
			/**
			 * Returns the text on the clipboard. It will eventually be possible to store types other than text too, in which case this will return null if the type cannot be coerced to text.
			 */
			public getText(): string;
			/**
			 * Sets the contents of the clipboard to the specified text.
			 */
			public setText(text: string): void;
			/**
			 * Returns true if the clipboard contains text; false otherwise.
			 */
			public hasText(): boolean;
		}
		/**
		 * InputFilters can be attached to Editables to constrain the changes that can be made to them.
		 */
		export class InputFilter implements android.text.IInputFilter {
			constructor(implementation: android.text.IInputFilter);
			/**
			 * This method is called when the buffer is going to replace the range <code>dstart &hellip; dend</code> of <code>dest</code> with the new text from the range <code>start &hellip; end</code> of <code>source</code>. Return the CharSequence that you would like to have placed there instead, including an empty string if appropriate, or <code>null</code> to accept the original replacement. Be careful to not to reject 0-length replacements, as this is what happens when you delete text. Also beware that you should not attempt to make any changes to <code>dest</code> from this method; you may only examine it for context. Note: If <var>source</var> is an instance of Spanned or Spannable, the span objects in the <var>source</var> should be copied into the filtered result (i.e. the non-null return value). TextUtils#copySpansFrom can be used for convenience.
			 */
			public filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
		}
		export module InputFilter {
			/**
			 * This filter will capitalize all the lower case letters that are added through edits.
			 */
			export class AllCaps extends java.lang.Object implements android.text.IInputFilter {
				constructor();
				static class: java.lang.Class<android.text.InputFilter.AllCaps>;
				public filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
			}
			/**
			 * This filter will constrain edits not to make the length of the text greater than the specified length.
			 */
			export class LengthFilter extends java.lang.Object implements android.text.IInputFilter {
				constructor(max: number);
				static class: java.lang.Class<android.text.InputFilter.LengthFilter>;
				public filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
			}
		}
		export module method {
			/**
			 * TextView uses TransformationMethods to do things like replacing the characters of passwords with dots, or keeping the newline characters from causing line breaks in single-line text fields.
			 */
			interface ITransformationMethod {
				/**
				 * Returns a CharSequence that is a transformation of the source text -- for example, replacing each character with a dot in a password field. Beware that the returned text must be exactly the same length as the source text, and that if the source text is Editable, the returned text must mirror it dynamically instead of doing a one-time copy.
				 */
				getTransformation(source: string, view: android.view.View): string;
				/**
				 * This method is called when the TextView that uses this TransformationMethod gains or loses focus.
				 */
				onFocusChanged(view: android.view.View, sourceText: string, focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			}
			/**
			 * For digits-only text entry
			 */
			export class DigitsKeyListener extends android.text.method.NumberKeyListener {
				/**
				 * Allocates a DigitsKeyListener that accepts the digits 0 through 9.
				 */
				constructor();
				/**
				 * Allocates a DigitsKeyListener that accepts the digits 0 through 9, plus the minus sign (only at the beginning) and/or decimal point (only one per field) if specified.
				 */
				constructor(sign: boolean, decimal: boolean);
				static class: java.lang.Class<android.text.method.DigitsKeyListener>;
				protected getAcceptedChars(): native.Array<string>;
				/**
				 * Returns a DigitsKeyListener that accepts the digits 0 through 9.
				 */
				public static getInstance(): android.text.method.DigitsKeyListener;
				/**
				 * Returns a DigitsKeyListener that accepts the digits 0 through 9, plus the minus sign (only at the beginning) and/or decimal point (only one per field) if specified.
				 */
				public static getInstance(sign: boolean, decimal: boolean): android.text.method.DigitsKeyListener;
				/**
				 * Returns a DigitsKeyListener that accepts only the characters that appear in the specified String. Note that not all characters may be available on every keyboard.
				 */
				public static getInstance(accepted: string): android.text.method.DigitsKeyListener;
				public getInputType(): number;
				public filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
			}
			/**
			 * For entering times in a text field.
			 */
			export class TimeKeyListener extends android.text.method.NumberKeyListener {
				constructor();
				/**
				 * The characters that are used.
				 */
				static CHARACTERS: native.Array<string>;
				static class: java.lang.Class<android.text.method.TimeKeyListener>;
				public getInputType(): number;
				protected getAcceptedChars(): native.Array<string>;
				public static getInstance(): android.text.method.TimeKeyListener;
			}
			export class Touch extends java.lang.Object {
				static class: java.lang.Class<android.text.method.Touch>;
				/**
				 * Scrolls the specified widget to the specified coordinates, except constrains the X scrolling position to the horizontal regions of the text that will be visible after scrolling to the specified Y position.
				 */
				public static scrollTo(widget: android.widget.TextView, layout: android.text.Layout, x: number, y: number): void;
				/**
				 * Handles touch events for dragging. You may want to do other actions like moving the cursor on touch as well.
				 */
				public static onTouchEvent(widget: android.widget.TextView, buffer: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				/**
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				public static getInitialScrollX(widget: android.widget.TextView, buffer: android.text.ISpannable): number;
				/**
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				public static getInitialScrollY(widget: android.widget.TextView, buffer: android.text.ISpannable): number;
			}
			export module Touch {
				export class DragState extends java.lang.Object implements android.text.INoCopySpan {
					constructor(x: number, y: number, scrollX: number, scrollY: number);
					mX: number;
					mY: number;
					mScrollX: number;
					mScrollY: number;
					mFarEnough: boolean;
					mUsed: boolean;
					static class: java.lang.Class<android.text.method.Touch.DragState>;
				}
			}
			export class PasswordTransformationMethod extends java.lang.Object implements android.text.method.ITransformationMethod, android.text.ITextWatcher {
				constructor();
				static class: java.lang.Class<android.text.method.PasswordTransformationMethod>;
				public getTransformation(source: string, view: android.view.View): string;
				public static getInstance(): android.text.method.PasswordTransformationMethod;
				public beforeTextChanged(s: string, start: number, count: number, after: number): void;
				public onTextChanged(s: string, start: number, before: number, count: number): void;
				public afterTextChanged(s: any): void;
				public onFocusChanged(view: android.view.View, sourceText: string, focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			}
			export module PasswordTransformationMethod {
				export class Visible extends android.os.Handler implements android.text.style.IUpdateLayout, java.lang.IRunnable {
					constructor(sp: android.text.ISpannable, ptm: android.text.method.PasswordTransformationMethod);
					static class: java.lang.Class<android.text.method.PasswordTransformationMethod.Visible>;
					public run(): void;
				}
				export class PasswordCharSequence extends java.lang.Object implements java.lang.ICharSequence, android.text.IGetChars {
					constructor(source: string);
					static class: java.lang.Class<android.text.method.PasswordTransformationMethod.PasswordCharSequence>;
					public length(): number;
					public charAt(i: number): string;
					public subSequence(start: number, end: number): string;
					public toString(): string;
					public getChars(start: number, end: number, dest: native.Array<string>, off: number): void;
				}
				/**
				 * Used to stash a reference back to the View in the Editable so we can use it to check the settings.
				 */
				export class ViewReference extends java.lang.ref.WeakReference<android.view.View> implements android.text.INoCopySpan {
					constructor(v: android.view.View);
					static class: java.lang.Class<android.text.method.PasswordTransformationMethod.ViewReference>;
				}
			}
			/**
			 * Dialog for choosing accented characters related to a base character.
			 */
			export class CharacterPickerDialog extends android.app.Dialog implements android.widget.AdapterView.IOnItemClickListener, android.view.View.IOnClickListener {
				/**
				 * Creates a new CharacterPickerDialog that presents the specified <code>options</code> for insertion or replacement (depending on the sense of <code>insert</code>) into <code>text</code>.
				 */
				constructor(context: android.content.Context, view: android.view.View, text: any, options: string, insert: boolean);
				static class: java.lang.Class<android.text.method.CharacterPickerDialog>;
				OptionsAdapter: {
	new (context: android.content.Context): android.text.method.CharacterPickerDialog.OptionsAdapter;
};
				protected onCreate(savedInstanceState: android.os.Bundle): void;
				/**
				 * Handles clicks on the character buttons.
				 */
				public onItemClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
				/**
				 * Handles clicks on the Cancel button.
				 */
				public onClick(v: android.view.View): void;
			}
			export module CharacterPickerDialog {
				export class OptionsAdapter extends android.widget.BaseAdapter {
					static class: java.lang.Class<android.text.method.CharacterPickerDialog.OptionsAdapter>;
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
					public getCount(): number;
					public getItem(position: number): any;
					public getItemId(position: number): any;
				}
			}
			/**
			 * For dialing-only text entry
			 */
			export class DialerKeyListener extends android.text.method.NumberKeyListener {
				constructor();
				/**
				 * The characters that are used.
				 */
				static CHARACTERS: native.Array<string>;
				static class: java.lang.Class<android.text.method.DialerKeyListener>;
				protected getAcceptedChars(): native.Array<string>;
				public static getInstance(): android.text.method.DialerKeyListener;
				public getInputType(): number;
				/**
				 * Overrides the superclass's lookup method to prefer the number field from the KeyEvent.
				 */
				protected lookup(event: android.view.KeyEvent, content: android.text.ISpannable): number;
			}
			/**
			 * A movement method that traverses links in the text buffer and scrolls if necessary. Supports clicking on links with DPad Center or Enter.
			 */
			export class LinkMovementMethod extends android.text.method.ScrollingMovementMethod {
				constructor();
				static class: java.lang.Class<android.text.method.LinkMovementMethod>;
				protected handleMovementKey(widget: android.widget.TextView, buffer: android.text.ISpannable, keyCode: number, movementMetaState: number, event: android.view.KeyEvent): boolean;
				protected up(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected down(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected left(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected right(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				public onTouchEvent(widget: android.widget.TextView, buffer: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				public initialize(widget: android.widget.TextView, text: android.text.ISpannable): void;
				public onTakeFocus(view: android.widget.TextView, text: android.text.ISpannable, dir: number): void;
				public static getInstance(): android.text.method.IMovementMethod;
			}
			/**
			 * This transformation method causes the characters in the #getOriginal array to be replaced by the corresponding characters in the #getReplacement array.
			 */
			export class ReplacementTransformationMethod extends java.lang.Object implements android.text.method.ITransformationMethod {
				constructor();
				static class: java.lang.Class<android.text.method.ReplacementTransformationMethod>;
				/**
				 * Returns the list of characters that are to be replaced by other characters when displayed.
				 */
				protected getOriginal(): native.Array<string>;
				/**
				 * Returns a parallel array of replacement characters for the ones that are to be replaced.
				 */
				protected getReplacement(): native.Array<string>;
				/**
				 * Returns a CharSequence that will mirror the contents of the source CharSequence but with the characters in #getOriginal replaced by ones from #getReplacement.
				 */
				public getTransformation(source: string, v: android.view.View): string;
				public onFocusChanged(view: android.view.View, sourceText: string, focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			}
			export module ReplacementTransformationMethod {
				export class ReplacementCharSequence extends java.lang.Object implements java.lang.ICharSequence, android.text.IGetChars {
					constructor(source: string, original: native.Array<string>, replacement: native.Array<string>);
					static class: java.lang.Class<android.text.method.ReplacementTransformationMethod.ReplacementCharSequence>;
					public length(): number;
					public charAt(i: number): string;
					public subSequence(start: number, end: number): string;
					public toString(): string;
					public getChars(start: number, end: number, dest: native.Array<string>, off: number): void;
				}
				export class SpannedReplacementCharSequence extends android.text.method.ReplacementTransformationMethod.ReplacementCharSequence implements android.text.ISpanned {
					constructor(source: android.text.ISpanned, original: native.Array<string>, replacement: native.Array<string>);
					static class: java.lang.Class<android.text.method.ReplacementTransformationMethod.SpannedReplacementCharSequence>;
					public subSequence(start: number, end: number): string;
					public getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
					public getSpanStart(tag: any): number;
					public getSpanEnd(tag: any): number;
					public getSpanFlags(tag: any): number;
					public nextSpanTransition(start: number, end: number, type: java.lang.Class<any>): number;
					/**
					 * Returns the number of characters in this sequence.
					 */
					length(): number;
					/**
					 * Returns the character at the specified index, with the first character having index zero.
					 * @param index 
					 */
					charAt(index: number): string;
					/**
					 * Returns a string with the same characters in the same order as in this sequence.
					 */
					toString(): string;
				}
			}
			/**
			 * A movement method that interprets movement keys by scrolling the text buffer.
			 */
			export class ScrollingMovementMethod extends android.text.method.BaseMovementMethod implements android.text.method.IMovementMethod {
				constructor();
				static class: java.lang.Class<android.text.method.ScrollingMovementMethod>;
				protected left(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected right(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected up(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected down(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected pageUp(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected pageDown(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected top(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected bottom(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected lineStart(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected lineEnd(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected home(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected end(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				public onTouchEvent(widget: android.widget.TextView, buffer: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				public onTakeFocus(widget: android.widget.TextView, text: android.text.ISpannable, dir: number): void;
				public static getInstance(): android.text.method.IMovementMethod;
				initialize(widget: android.widget.TextView, text: android.text.ISpannable): void;
				onKeyDown(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				onKeyUp(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to other kinds of key events, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				onKeyOther(view: android.widget.TextView, text: android.text.ISpannable, event: android.view.KeyEvent): boolean;
				onTrackballEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				onGenericMotionEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				/**
				 * Returns true if this movement method allows arbitrary selection of any text; false if it has no selection (like a movement method that only scrolls) or a constrained selection (for example limited to links. The "Select All" menu item is disabled if arbitrary selection is not allowed.
				 */
				canSelectArbitrarily(): boolean;
			}
			/**
			 * Provides cursor positioning, scrolling and text selection functionality in a TextView.
			 */
			interface IMovementMethod {
				initialize(widget: android.widget.TextView, text: android.text.ISpannable): void;
				onKeyDown(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				onKeyUp(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to other kinds of key events, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				onKeyOther(view: android.widget.TextView, text: android.text.ISpannable, event: android.view.KeyEvent): boolean;
				onTakeFocus(widget: android.widget.TextView, text: android.text.ISpannable, direction: number): void;
				onTrackballEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				onTouchEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				onGenericMotionEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				/**
				 * Returns true if this movement method allows arbitrary selection of any text; false if it has no selection (like a movement method that only scrolls) or a constrained selection (for example limited to links. The "Select All" menu item is disabled if arbitrary selection is not allowed.
				 */
				canSelectArbitrarily(): boolean;
			}
			/**
			 * This transformation method causes any carriage return characters (\r) to be hidden by displaying them as zero-width non-breaking space characters (0x414329).
			 */
			export class HideReturnsTransformationMethod extends android.text.method.ReplacementTransformationMethod {
				constructor();
				static class: java.lang.Class<android.text.method.HideReturnsTransformationMethod>;
				/**
				 * The character to be replaced is \r.
				 */
				protected getOriginal(): native.Array<string>;
				/**
				 * The character that \r is replaced with is 0x414329.
				 */
				protected getReplacement(): native.Array<string>;
				public static getInstance(): android.text.method.HideReturnsTransformationMethod;
			}
			/**
			 * This is the standard key listener for alphabetic input on 12-key keyboards. You should generally not need to instantiate this yourself; TextKeyListener will do it for you.
			 */
			export class MultiTapKeyListener extends android.text.method.BaseKeyListener implements android.text.ISpanWatcher {
				constructor(cap: android.text.method.TextKeyListener.Capitalize, autotext: boolean);
				static class: java.lang.Class<android.text.method.MultiTapKeyListener>;
				Timeout: {
	new (buffer: any): android.text.method.MultiTapKeyListener.Timeout;
};
				/**
				 * Returns a new or existing instance with the specified capitalization and correction properties.
				 */
				public static getInstance(autotext: boolean, cap: android.text.method.TextKeyListener.Capitalize): android.text.method.MultiTapKeyListener;
				public getInputType(): number;
				public onKeyDown(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				public onSpanChanged(buf: android.text.ISpannable, what: any, s: number, e: number, start: number, stop: number): void;
				public onSpanAdded(s: android.text.ISpannable, what: any, start: number, end: number): void;
				public onSpanRemoved(s: android.text.ISpannable, what: any, start: number, end: number): void;
			}
			export module MultiTapKeyListener {
				export class Timeout extends android.os.Handler implements java.lang.IRunnable {
					static class: java.lang.Class<android.text.method.MultiTapKeyListener.Timeout>;
					public run(): void;
				}
			}
			/**
			 * This base class encapsulates the behavior for tracking the state of meta keys such as SHIFT, ALT and SYM as well as the pseudo-meta state of selecting text.
			 */
			export class MetaKeyKeyListener extends java.lang.Object {
				constructor();
				/**
				 * Flag that indicates that the SHIFT key is on. Value equals KeyEvent#META_SHIFT_ON.
				 */
				static META_SHIFT_ON: number;
				/**
				 * Flag that indicates that the ALT key is on. Value equals KeyEvent#META_ALT_ON.
				 */
				static META_ALT_ON: number;
				/**
				 * Flag that indicates that the SYM key is on. Value equals KeyEvent#META_SYM_ON.
				 */
				static META_SYM_ON: number;
				/**
				 * Flag that indicates that the SHIFT key is locked in CAPS mode.
				 */
				static META_CAP_LOCKED: number;
				/**
				 * Flag that indicates that the ALT key is locked.
				 */
				static META_ALT_LOCKED: number;
				/**
				 * Flag that indicates that the SYM key is locked.
				 */
				static META_SYM_LOCKED: number;
				static class: java.lang.Class<android.text.method.MetaKeyKeyListener>;
				/**
				 * Resets all meta state to inactive.
				 */
				public static resetMetaState(text: android.text.ISpannable): void;
				/**
				 * Gets the state of the meta keys. 
				 * @param text the buffer in which the meta key would have been pressed.
				 */
				public static getMetaState(text: string): number;
				/**
				 * Gets the state of a particular meta key.
				 * @param text meta META_SHIFT_ON, META_ALT_ON, META_SYM_ON, or META_SELECTING
				 * @param meta text the buffer in which the meta key would have been pressed.
				 */
				public static getMetaState(text: string, meta: number): number;
				/**
				 * Call this method after you handle a keypress so that the meta state will be reset to unshifted (if it is not still down) or primed to be reset to unshifted (once it is released).
				 */
				public static adjustMetaAfterKeypress(content: android.text.ISpannable): void;
				/**
				 * Returns true if this object is one that this class would use to keep track of any meta state in the specified text.
				 */
				public static isMetaTracker(text: string, what: any): boolean;
				/**
				 * Returns true if this object is one that this class would use to keep track of the selecting meta state in the specified text.
				 */
				public static isSelectingMetaTracker(text: string, what: any): boolean;
				/**
				 * Call this if you are a method that ignores the locked meta state (arrow keys, for example) and you handle a key.
				 */
				public static resetLockedMeta(content: android.text.ISpannable): void;
				/**
				 * Handles presses of the meta keys.
				 */
				public onKeyDown(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Handles release of the meta keys.
				 */
				public onKeyUp(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				public clearMetaKeyState(view: android.view.View, content: any, states: number): void;
				public static clearMetaKeyState(content: any, states: number): void;
				/**
				 * Call this if you are a method that ignores the locked meta state (arrow keys, for example) and you handle a key.
				 */
				public static resetLockedMeta(state: number): any;
				/**
				 * Gets the state of the meta keys. 
				 * @param state the current meta state bits.
				 */
				public static getMetaState(state: number): number;
				/**
				 * Gets the state of a particular meta key.
				 * @param state the current state bits.
				 * @param meta META_SHIFT_ON, META_ALT_ON, or META_SYM_ON
				 */
				public static getMetaState(state: number, meta: number): number;
				/**
				 * Call this method after you handle a keypress so that the meta state will be reset to unshifted (if it is not still down) or primed to be reset to unshifted (once it is released). Takes the current state, returns the new state.
				 */
				public static adjustMetaAfterKeypress(state: number): any;
				/**
				 * Handles presses of the meta keys.
				 */
				public static handleKeyDown(state: number, keyCode: number, event: android.view.KeyEvent): any;
				/**
				 * Handles release of the meta keys.
				 */
				public static handleKeyUp(state: number, keyCode: number, event: android.view.KeyEvent): any;
				/**
				 * Clears the state of the specified meta key if it is locked.
				 * @param state the meta key state
				 * @param which meta keys to clear, may be a combination of {@link #META_SHIFT_ON},
				 */
				public clearMetaKeyState(state: number, which: number): any;
			}
			/**
			 * Abstract base class for key listeners.
			 */
			export class BaseKeyListener extends android.text.method.MetaKeyKeyListener implements android.text.method.IKeyListener {
				constructor();
				static class: java.lang.Class<android.text.method.BaseKeyListener>;
				/**
				 * Performs the action that happens when you press the KeyEvent#KEYCODE_DEL key in a TextView. If there is a selection, deletes the selection; otherwise, deletes the character before the cursor, if any; ALT+DEL deletes everything on the line the cursor is on.
				 */
				public backspace(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Performs the action that happens when you press the KeyEvent#KEYCODE_FORWARD_DEL key in a TextView. If there is a selection, deletes the selection; otherwise, deletes the character before the cursor, if any; ALT+FORWARD_DEL deletes everything on the line the cursor is on.
				 */
				public forwardDelete(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				static makeTextContentType(caps: android.text.method.TextKeyListener.Capitalize, autoText: boolean): number;
				public onKeyDown(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Base implementation handles ACTION_MULTIPLE KEYCODE_UNKNOWN by inserting the event's text into the content.
				 */
				public onKeyOther(view: android.view.View, content: any, event: android.view.KeyEvent): boolean;
				/**
				 * Return the type of text that this key listener is manipulating, as per android.text.InputType. This is used to determine the mode of the soft keyboard that is shown for the editor. 
				 */
				getInputType(): number;
				/**
				 * If the key listener wants to handle this key release, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				onKeyUp(view: android.view.View, text: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Remove the given shift states from the edited text.
				 */
				clearMetaKeyState(view: android.view.View, content: any, states: number): void;
				static clearMetaKeyState(content: any, states: number): void;
				/**
				 * Clears the state of the specified meta key if it is locked.
				 * @param state the meta key state
				 * @param which meta keys to clear, may be a combination of {@link #META_SHIFT_ON},
				 */
				clearMetaKeyState(state: number, which: number): any;
			}
			/**
			 * For entering dates in a text field.
			 */
			export class DateKeyListener extends android.text.method.NumberKeyListener {
				constructor();
				/**
				 * The characters that are used.
				 */
				static CHARACTERS: native.Array<string>;
				static class: java.lang.Class<android.text.method.DateKeyListener>;
				public getInputType(): number;
				protected getAcceptedChars(): native.Array<string>;
				public static getInstance(): android.text.method.DateKeyListener;
			}
			/**
			 * For entering dates and times in the same text field.
			 */
			export class DateTimeKeyListener extends android.text.method.NumberKeyListener {
				constructor();
				/**
				 * The characters that are used.
				 */
				static CHARACTERS: native.Array<string>;
				static class: java.lang.Class<android.text.method.DateTimeKeyListener>;
				public getInputType(): number;
				protected getAcceptedChars(): native.Array<string>;
				public static getInstance(): android.text.method.DateTimeKeyListener;
			}
			/**
			 * This is the key listener for typing normal text. It delegates to other key listeners appropriate to the current keyboard and language.
			 */
			export class TextKeyListener extends android.text.method.BaseKeyListener implements android.text.ISpanWatcher {
				/**
				 * Creates a new TextKeyListener with the specified capitalization and correction properties.
				 * @param cap when, if ever, to automatically capitalize.
				 * @param autotext whether to automatically do spelling corrections.
				 */
				constructor(cap: android.text.method.TextKeyListener.Capitalize, autotext: boolean);
				static class: java.lang.Class<android.text.method.TextKeyListener>;
				SettingsObserver: {
	new (): android.text.method.TextKeyListener.SettingsObserver;
};
				/**
				 * Returns a new or existing instance with the specified capitalization and correction properties.
				 * @param autotext cap when, if ever, to automatically capitalize.
				 * @param cap autotext whether to automatically do spelling corrections.
				 */
				public static getInstance(autotext: boolean, cap: android.text.method.TextKeyListener.Capitalize): android.text.method.TextKeyListener;
				/**
				 * Returns a new or existing instance with no automatic capitalization or correction.
				 */
				public static getInstance(): android.text.method.TextKeyListener;
				/**
				 * Returns whether it makes sense to automatically capitalize at the specified position in the specified text, with the specified rules.
				 * @param cap the capitalization rules to consider.
				 * @param cs the text in which an insertion is being made.
				 * @param off the offset into that text where the insertion is being made.
				 */
				public static shouldCap(cap: android.text.method.TextKeyListener.Capitalize, cs: string, off: number): boolean;
				public getInputType(): number;
				public onKeyDown(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				public onKeyUp(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				public onKeyOther(view: android.view.View, content: any, event: android.view.KeyEvent): boolean;
				/**
				 * Clear all the input state (autotext, autocap, multitap, undo) from the specified Editable, going beyond Editable.clear(), which just clears the text but not the input state.
				 * @param e the buffer whose text and state are to be cleared.
				 */
				public static clear(e: any): void;
				public onSpanAdded(s: android.text.ISpannable, what: any, start: number, end: number): void;
				public onSpanRemoved(s: android.text.ISpannable, what: any, start: number, end: number): void;
				public onSpanChanged(s: android.text.ISpannable, what: any, start: number, end: number, st: number, en: number): void;
				public release(): void;
				getPrefs(context: android.content.Context): number;
			}
			export module TextKeyListener {
				export class NullKeyListener extends java.lang.Object implements android.text.method.IKeyListener {
					static class: java.lang.Class<android.text.method.TextKeyListener.NullKeyListener>;
					public getInputType(): number;
					public onKeyDown(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
					public onKeyUp(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
					public onKeyOther(view: android.view.View, content: any, event: android.view.KeyEvent): boolean;
					public clearMetaKeyState(view: android.view.View, content: any, states: number): void;
					public static getInstance(): android.text.method.TextKeyListener.NullKeyListener;
				}
				export enum Capitalize {
					NONE,
					SENTENCES,
					WORDS,
					CHARACTERS
				}
				export class SettingsObserver extends android.database.ContentObserver {
					static class: java.lang.Class<android.text.method.TextKeyListener.SettingsObserver>;
					public onChange(selfChange: boolean): void;
					/**
					 * This method is called when a content change occurs. Includes the changed content Uri when available.
					 * @param selfChange True if this is a self-change notification.
					 * @param uri The Uri of the changed content, or null if unknown.
					 */
					onChange(selfChange: boolean, uri: android.net.Uri): void;
				}
			}
			/**
			 * Provides cursor positioning, scrolling and text selection functionality in a TextView.
			 */
			export class MovementMethod implements android.text.method.IMovementMethod {
				constructor(implementation: android.text.method.IMovementMethod);
				public initialize(widget: android.widget.TextView, text: android.text.ISpannable): void;
				public onKeyDown(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				public onKeyUp(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to other kinds of key events, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				public onKeyOther(view: android.widget.TextView, text: android.text.ISpannable, event: android.view.KeyEvent): boolean;
				public onTakeFocus(widget: android.widget.TextView, text: android.text.ISpannable, direction: number): void;
				public onTrackballEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				public onTouchEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				public onGenericMotionEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				/**
				 * Returns true if this movement method allows arbitrary selection of any text; false if it has no selection (like a movement method that only scrolls) or a constrained selection (for example limited to links. The "Select All" menu item is disabled if arbitrary selection is not allowed.
				 */
				public canSelectArbitrarily(): boolean;
			}
			/**
			 * Base classes for movement methods.
			 */
			export class BaseMovementMethod extends java.lang.Object implements android.text.method.IMovementMethod {
				constructor();
				static class: java.lang.Class<android.text.method.BaseMovementMethod>;
				public canSelectArbitrarily(): boolean;
				public initialize(widget: android.widget.TextView, text: android.text.ISpannable): void;
				public onKeyDown(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				public onKeyOther(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.KeyEvent): boolean;
				public onKeyUp(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				public onTakeFocus(widget: android.widget.TextView, text: android.text.ISpannable, direction: number): void;
				public onTouchEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				public onTrackballEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				public onGenericMotionEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				/**
				 * Gets the meta state used for movement using the modifiers tracked by the text buffer as well as those present in the key event.
				 * @param buffer The text buffer.
				 * @param event The key event.
				 */
				protected getMovementMetaState(buffer: android.text.ISpannable, event: android.view.KeyEvent): number;
				/**
				 * Performs a movement key action. The default implementation decodes the key down and invokes movement actions such as #down and #up. #onKeyDown(TextView, Spannable, int, KeyEvent) calls this method once to handle an KeyEvent#ACTION_DOWN. #onKeyOther(TextView, Spannable, KeyEvent) calls this method repeatedly to handle each repetition of an KeyEvent#ACTION_MULTIPLE.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 * @param keyCode event The key event.
				 * @param movementMetaState keyCode The key code.
				 * @param event movementMetaState The keyboard meta states used for movement.
				 */
				protected handleMovementKey(widget: android.widget.TextView, buffer: android.text.ISpannable, keyCode: number, movementMetaState: number, event: android.view.KeyEvent): boolean;
				/**
				 * Performs a left movement action. Moves the cursor or scrolls left by one character.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected left(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a right movement action. Moves the cursor or scrolls right by one character.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected right(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs an up movement action. Moves the cursor or scrolls up by one line.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected up(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a down movement action. Moves the cursor or scrolls down by one line.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected down(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a page-up movement action. Moves the cursor or scrolls up by one page.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected pageUp(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a page-down movement action. Moves the cursor or scrolls down by one page.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected pageDown(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a top movement action. Moves the cursor or scrolls to the top of the buffer.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected top(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a bottom movement action. Moves the cursor or scrolls to the bottom of the buffer.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected bottom(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a line-start movement action. Moves the cursor or scrolls to the start of the line.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected lineStart(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a line-end movement action. Moves the cursor or scrolls to the end of the line.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected lineEnd(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs a home movement action. Moves the cursor or scrolls to the start of the line or to the top of the document depending on whether the insertion point is being moved or the document is being scrolled.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected home(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				/**
				 * Performs an end movement action. Moves the cursor or scrolls to the start of the line or to the top of the document depending on whether the insertion point is being moved or the document is being scrolled.
				 * @param widget The text view.
				 * @param buffer The text buffer.
				 */
				protected end(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
			}
			/**
			 * TextView uses TransformationMethods to do things like replacing the characters of passwords with dots, or keeping the newline characters from causing line breaks in single-line text fields.
			 */
			export class TransformationMethod implements android.text.method.ITransformationMethod {
				constructor(implementation: android.text.method.ITransformationMethod);
				/**
				 * Returns a CharSequence that is a transformation of the source text -- for example, replacing each character with a dot in a password field. Beware that the returned text must be exactly the same length as the source text, and that if the source text is Editable, the returned text must mirror it dynamically instead of doing a one-time copy.
				 */
				public getTransformation(source: string, view: android.view.View): string;
				/**
				 * This method is called when the TextView that uses this TransformationMethod gains or loses focus.
				 */
				public onFocusChanged(view: android.view.View, sourceText: string, focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			}
			/**
			 * A movement method that provides cursor movement and selection. Supports displaying the context menu on DPad Center.
			 */
			export class ArrowKeyMovementMethod extends android.text.method.BaseMovementMethod implements android.text.method.IMovementMethod {
				constructor();
				static class: java.lang.Class<android.text.method.ArrowKeyMovementMethod>;
				protected handleMovementKey(widget: android.widget.TextView, buffer: android.text.ISpannable, keyCode: number, movementMetaState: number, event: android.view.KeyEvent): boolean;
				protected left(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected right(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected up(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected down(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected pageUp(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected pageDown(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected top(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected bottom(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected lineStart(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected lineEnd(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected home(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				protected end(widget: android.widget.TextView, buffer: android.text.ISpannable): boolean;
				public onTouchEvent(widget: android.widget.TextView, buffer: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				public canSelectArbitrarily(): boolean;
				public initialize(widget: android.widget.TextView, text: android.text.ISpannable): void;
				public onTakeFocus(view: android.widget.TextView, text: android.text.ISpannable, dir: number): void;
				public static getInstance(): android.text.method.IMovementMethod;
				onKeyDown(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				onKeyUp(widget: android.widget.TextView, text: android.text.ISpannable, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to other kinds of key events, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				onKeyOther(view: android.widget.TextView, text: android.text.ISpannable, event: android.view.KeyEvent): boolean;
				onTrackballEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
				onGenericMotionEvent(widget: android.widget.TextView, text: android.text.ISpannable, event: android.view.MotionEvent): boolean;
			}
			/**
			 * This is the standard key listener for alphabetic input on qwerty keyboards. You should generally not need to instantiate this yourself; TextKeyListener will do it for you.
			 */
			export class QwertyKeyListener extends android.text.method.BaseKeyListener {
				constructor(cap: android.text.method.TextKeyListener.Capitalize, autoText: boolean);
				static class: java.lang.Class<android.text.method.QwertyKeyListener>;
				/**
				 * Returns a new or existing instance with the specified capitalization and correction properties.
				 */
				public static getInstance(autoText: boolean, cap: android.text.method.TextKeyListener.Capitalize): android.text.method.QwertyKeyListener;
				/**
				 * Gets an instance of the listener suitable for use with full keyboards. Disables auto-capitalization, auto-text and long-press initiated on-screen character pickers.
				 */
				public static getInstanceForFullKeyboard(): android.text.method.QwertyKeyListener;
				public getInputType(): number;
				public onKeyDown(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * Marks the specified region of <code>content</code> as having contained <code>original</code> prior to AutoText replacement. Call this method when you have done or are about to do an AutoText-style replacement on a region of text and want to let the same mechanism (the user pressing DEL immediately after the change) undo the replacement.
				 * @param content the Editable text where the replacement was made
				 * @param start the start of the replaced region
				 * @param end the end of the replaced region; the location of the cursor
				 * @param original the text to be restored if the user presses DEL
				 */
				public static markAsReplaced(content: android.text.ISpannable, start: number, end: number, original: string): void;
			}
			export module QwertyKeyListener {
				export class Replaced extends java.lang.Object implements android.text.INoCopySpan {
					constructor(text: native.Array<string>);
					static class: java.lang.Class<android.text.method.QwertyKeyListener.Replaced>;
				}
			}
			/**
			 * This transformation method causes any newline characters (\n) to be displayed as spaces instead of causing line breaks, and causes carriage return characters (\r) to have no appearance.
			 */
			export class SingleLineTransformationMethod extends android.text.method.ReplacementTransformationMethod {
				constructor();
				static class: java.lang.Class<android.text.method.SingleLineTransformationMethod>;
				/**
				 * The characters to be replaced are \n and \r.
				 */
				protected getOriginal(): native.Array<string>;
				/**
				 * The character \n is replaced with is space; the character \r is replaced with is FEFF (zero width space).
				 */
				protected getReplacement(): native.Array<string>;
				public static getInstance(): android.text.method.SingleLineTransformationMethod;
			}
			/**
			 * Interface for converting text key events into edit operations on an Editable class. Note that for most cases this interface has been superceded by general soft input methods as defined by android.view.inputmethod.InputMethod; it should only be used for cases where an application has its own on-screen keypad and also wants to process hard keyboard events to match it.
			 */
			export class KeyListener implements android.text.method.IKeyListener {
				constructor(implementation: android.text.method.IKeyListener);
				/**
				 * Return the type of text that this key listener is manipulating, as per android.text.InputType. This is used to determine the mode of the soft keyboard that is shown for the editor. 
				 */
				public getInputType(): number;
				/**
				 * If the key listener wants to handle this key, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				public onKeyDown(view: android.view.View, text: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to handle this key release, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				public onKeyUp(view: android.view.View, text: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to other kinds of key events, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				public onKeyOther(view: android.view.View, text: any, event: android.view.KeyEvent): boolean;
				/**
				 * Remove the given shift states from the edited text.
				 */
				public clearMetaKeyState(view: android.view.View, content: any, states: number): void;
			}
			/**
			 * Interface for converting text key events into edit operations on an Editable class. Note that for most cases this interface has been superceded by general soft input methods as defined by android.view.inputmethod.InputMethod; it should only be used for cases where an application has its own on-screen keypad and also wants to process hard keyboard events to match it.
			 */
			interface IKeyListener {
				/**
				 * Return the type of text that this key listener is manipulating, as per android.text.InputType. This is used to determine the mode of the soft keyboard that is shown for the editor. 
				 */
				getInputType(): number;
				/**
				 * If the key listener wants to handle this key, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				onKeyDown(view: android.view.View, text: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to handle this key release, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				onKeyUp(view: android.view.View, text: any, keyCode: number, event: android.view.KeyEvent): boolean;
				/**
				 * If the key listener wants to other kinds of key events, return true, otherwise return false and the caller (i.e. the widget host) will handle the key.
				 */
				onKeyOther(view: android.view.View, text: any, event: android.view.KeyEvent): boolean;
				/**
				 * Remove the given shift states from the edited text.
				 */
				clearMetaKeyState(view: android.view.View, content: any, states: number): void;
			}
			/**
			 * For numeric text entry
			 */
			export class NumberKeyListener extends android.text.method.BaseKeyListener implements android.text.IInputFilter {
				constructor();
				static class: java.lang.Class<android.text.method.NumberKeyListener>;
				/**
				 * You can say which characters you can accept.
				 */
				protected getAcceptedChars(): native.Array<string>;
				protected lookup(event: android.view.KeyEvent, content: android.text.ISpannable): number;
				public filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
				protected static ok(accept: native.Array<string>, c: string): boolean;
				public onKeyDown(view: android.view.View, content: any, keyCode: number, event: android.view.KeyEvent): boolean;
			}
		}
		/**
		 * This is the interface for text to which markup objects can be attached and detached. Not all Spannable classes have mutable text; see Editable for that.
		 */
		interface ISpannable extends android.text.ISpanned {
			/**
			 * Attach the specified markup object to the range <code>start&hellip;end</code> of the text, or move the object to that range if it was already attached elsewhere. See Spanned for an explanation of what the flags mean. The object can be one that has meaning only within your application, or it can be one that the text system will use to affect text display or behavior. Some noteworthy ones are the subclasses of android.text.style.CharacterStyle and android.text.style.ParagraphStyle, and android.text.TextWatcher and android.text.SpanWatcher.
			 */
			setSpan(what: any, start: number, end: number, flags: number): void;
			/**
			 * Remove the specified object from the range of text to which it was attached, if any. It is OK to remove an object that was never attached in the first place.
			 */
			removeSpan(what: any): void;
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
		}
		export module format {
			/**
			 * Utility class to aid in formatting common values that are not covered by the java.util.Formatter class in java.util
			 */
			export class Formatter extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.text.format.Formatter>;
				/**
				 * Formats a content size to be in the form of bytes, kilobytes, megabytes, etc
				 * @param context Context to use to load the localized units
				 * @param number size value to be formatted
				 */
				public static formatFileSize(context: android.content.Context, number: number): string;
				/**
				 * Like #formatFileSize, but trying to generate shorter numbers (showing fewer digits of precision).
				 */
				public static formatShortFileSize(context: android.content.Context, number: number): string;
				/**
				 * Returns a string in the canonical IP format ###.###.###.### from a packed integer containing the IP address. The IP address is expected to be in little-endian format (LSB first). That is, 0x01020304 will return "4.3.2.1".
				 * @param ipv4Address the IP address as a packed integer with LSB first.
				 */
				public static formatIpAddress(ipv4Address: number): string;
			}
			/**
			 * Utility class for producing strings with formatted date/time.
			 */
			export class DateFormat extends java.lang.Object {
				constructor();
				/**
				 * Text in the format string that should be copied verbatim rather that interpreted as formatting codes must be surrounded by the <code>QUOTE</code> character. If you need to embed a literal <code>QUOTE</code> character in the output text then use two in a row.
				 */
				static QUOTE: string;
				/**
				 * This designator indicates whether the <code>HOUR</code> field is before or after noon. The output is lower-case. Examples: a -> a or p aa -> am or pm
				 */
				static AM_PM: string;
				/**
				 * This designator indicates whether the <code>HOUR</code> field is before or after noon. The output is capitalized. Examples: A -> A or P AA -> AM or PM
				 */
				static CAPITAL_AM_PM: string;
				/**
				 * This designator indicates the day of the month. Examples for the 9th of the month: d -> 9 dd -> 09
				 */
				static DATE: string;
				/**
				 * This designator indicates the name of the day of the week. Examples for Sunday: E -> Sun EEEE -> Sunday
				 */
				static DAY: string;
				/**
				 * This designator indicates the hour of the day in 12 hour format. Examples for 3pm: h -> 3 hh -> 03
				 */
				static HOUR: string;
				/**
				 * This designator indicates the hour of the day in 24 hour format. Example for 3pm: k -> 15
				 */
				static HOUR_OF_DAY: string;
				/**
				 * This designator indicates the minute of the hour. Examples for 7 minutes past the hour: m -> 7 mm -> 07
				 */
				static MINUTE: string;
				/**
				 * This designator indicates the month of the year. See also #STANDALONE_MONTH. Examples for September: M -> 9 MM -> 09 MMM -> Sep MMMM -> September
				 */
				static MONTH: string;
				/**
				 * This designator indicates the standalone month of the year, necessary in some format strings in some languages. For example, Russian distinguishes between the "June" in "June" and that in "June 2010".
				 */
				static STANDALONE_MONTH: string;
				/**
				 * This designator indicates the seconds of the minute. Examples for 7 seconds past the minute: s -> 7 ss -> 07
				 */
				static SECONDS: string;
				/**
				 * This designator indicates the offset of the timezone from GMT. Example for US/Pacific timezone: z -> -0800 zz -> PST
				 */
				static TIME_ZONE: string;
				/**
				 * This designator indicates the year. Examples for 2006 y -> 06 yyyy -> 2006
				 */
				static YEAR: string;
				static class: java.lang.Class<android.text.format.DateFormat>;
				/**
				 * Returns true if user preference is set to 24-hour format.
				 * @param context the context to use for the content resolver
				 */
				public static is24HourFormat(context: android.content.Context): boolean;
				/**
				 * Returns a java.text.DateFormat object that can format the time according to the current locale and the user's 12-/24-hour clock preference.
				 * @param context the application context
				 */
				public static getTimeFormat(context: android.content.Context): java.text.DateFormat;
				/**
				 * Returns a java.text.DateFormat object that can format the date in short form (such as 12/31/1999) according to the current locale and the user's date-order preference.
				 * @param context the application context
				 */
				public static getDateFormat(context: android.content.Context): java.text.DateFormat;
				/**
				 * Returns a java.text.DateFormat object that can format the date in long form (such as December 31, 1999) for the current locale.
				 * @param context the application context
				 */
				public static getLongDateFormat(context: android.content.Context): java.text.DateFormat;
				/**
				 * Returns a java.text.DateFormat object that can format the date in medium form (such as Dec. 31, 1999) for the current locale.
				 * @param context the application context
				 */
				public static getMediumDateFormat(context: android.content.Context): java.text.DateFormat;
				/**
				 * Gets the current date format stored as a char array. The array will contain 3 elements (#DATE, #MONTH, and #YEAR) in the order specified by the user's format preference. Note that this order is only appropriate for all-numeric dates; spelled-out (MEDIUM and LONG) dates will generally contain other punctuation, spaces, or words, not just the day, month, and year, and not necessarily in the same order returned here.
				 */
				public static getDateFormatOrder(context: android.content.Context): native.Array<string>;
				/**
				 * Given a format string and a time in milliseconds since Jan 1, 1970 GMT, returns a CharSequence containing the requested date.
				 * @param inFormat the format string, as described in {@link android.text.format.DateFormat}
				 * @param inTimeInMillis in milliseconds since Jan 1, 1970 GMT
				 */
				public static format(inFormat: string, inTimeInMillis: number): string;
				/**
				 * Given a format string and a java.util.Date object, returns a CharSequence containing the requested date.
				 * @param inFormat the format string, as described in {@link android.text.format.DateFormat}
				 * @param inDate the date to format
				 */
				public static format(inFormat: string, inDate: java.util.Date): string;
				/**
				 * Given a format string and a java.util.Calendar object, returns a CharSequence containing the requested date.
				 * @param inFormat the format string, as described in {@link android.text.format.DateFormat}
				 * @param inDate the date to format
				 */
				public static format(inFormat: string, inDate: java.util.Calendar): string;
			}
			export class TimeTest {
				constructor();
				static class: java.lang.Class<android.text.format.TimeTest>;
				public testNormalize0(): void;
				public testNormalize1(): void;
				public testSwitchTimezone0(): void;
				public testCtor0(): void;
				public testGetActualMaximum0(): void;
				public testClear0(): void;
				public testCompare0(): void;
				public testFormat0(): void;
				public testToString0(): void;
				public testGetCurrentTimezone0(): void;
				public testSetToNow0(): void;
				public testMillis0(): void;
				public testMillis1(): void;
				public testParse0(): void;
				public testParse33390(): void;
				public testSet0(): void;
				public testSet1(): void;
				public disableTestGetJulianDay(): void;
				public disableTestSetJulianDay(): void;
			}
			export module TimeTest {
				export class DateTest extends java.lang.Object {
					constructor(year1: number, month1: number, day1: number, hour1: number, minute1: number, dst1: number, offset: number, year2: number, month2: number, day2: number, hour2: number, minute2: number, dst2: number);
					constructor(year1: number, month1: number, day1: number, hour1: number, minute1: number, offset: number, year2: number, month2: number, day2: number, hour2: number, minute2: number);
					year1: number;
					month1: number;
					day1: number;
					hour1: number;
					minute1: number;
					dst1: number;
					offset: number;
					year2: number;
					month2: number;
					day2: number;
					hour2: number;
					minute2: number;
					dst2: number;
					static class: java.lang.Class<android.text.format.TimeTest.DateTest>;
				}
			}
			/**
			 * An alternative to the java.util.Calendar and java.util.GregorianCalendar classes. An instance of the Time class represents a moment in time, specified with second precision. It is modelled after struct tm, and in fact, uses struct tm to implement most of the functionality.
			 */
			export class Time extends java.lang.Object {
				/**
				 * Construct a Time object in the timezone named by the string argument "timezone". The time is initialized to Jan 1, 1970.
				 * @param timezone string containing the timezone to use.
				 */
				constructor(timezone: string);
				/**
				 * Construct a Time object in the default timezone. The time is initialized to Jan 1, 1970.
				 */
				constructor();
				/**
				 * A copy constructor. Construct a Time object by copying the given Time object. No normalization occurs.
				 * @param other 
				 */
				constructor(other: android.text.format.Time);
				static TIMEZONE_UTC: string;
				/**
				 * The Julian day of the epoch, that is, January 1, 1970 on the Gregorian calendar.
				 */
				static EPOCH_JULIAN_DAY: number;
				/**
				 * The Julian day of the Monday in the week of the epoch, December 29, 1969 on the Gregorian calendar.
				 */
				static MONDAY_BEFORE_JULIAN_EPOCH: number;
				/**
				 * True if this is an allDay event. The hour, minute, second fields are all zero, and the date is displayed the same in all time zones.
				 */
				allDay: boolean;
				/**
				 * Seconds [0-61] (2 leap seconds allowed)
				 */
				second: number;
				/**
				 * Minute [0-59]
				 */
				minute: number;
				/**
				 * Hour of day [0-23]
				 */
				hour: number;
				/**
				 * Day of month [1-31]
				 */
				monthDay: number;
				/**
				 * Month [0-11]
				 */
				month: number;
				/**
				 * Year. For example, 1970.
				 */
				year: number;
				/**
				 * Day of week [0-6]
				 */
				weekDay: number;
				/**
				 * Day of year [0-365]
				 */
				yearDay: number;
				/**
				 * This time is in daylight savings time. One of: <ul> <li><b>positive</b> - in dst</li> <li><b>0</b> - not in dst</li> <li><b>negative</b> - unknown</li> </ul>
				 */
				isDst: number;
				/**
				 * Offset from UTC (in seconds).
				 */
				gmtoff: number;
				/**
				 * The timezone for this Time. Should not be null.
				 */
				timezone: string;
				static SECOND: number;
				static MINUTE: number;
				static HOUR: number;
				static MONTH_DAY: number;
				static MONTH: number;
				static YEAR: number;
				static WEEK_DAY: number;
				static YEAR_DAY: number;
				static WEEK_NUM: number;
				static SUNDAY: number;
				static MONDAY: number;
				static TUESDAY: number;
				static WEDNESDAY: number;
				static THURSDAY: number;
				static FRIDAY: number;
				static SATURDAY: number;
				static class: java.lang.Class<android.text.format.Time>;
				/**
				 * Ensures the values in each field are in range. For example if the current value of this calendar is March 32, normalize() will convert it to April 1. It also fills in weekDay, yearDay, isDst and gmtoff.
				 */
				public normalize(ignoreDst: boolean): any;
				/**
				 * Convert this time object so the time represented remains the same, but is instead located in a different timezone. This method automatically calls normalize() in some cases
				 */
				public switchTimezone(timezone: string): void;
				/**
				 * Return the maximum possible value for the given field given the value of the other fields. Requires that it be normalized for MONTH_DAY and YEAR_DAY.
				 * @param field one of the constants for HOUR, MINUTE, SECOND, etc.
				 */
				public getActualMaximum(field: number): number;
				/**
				 * Clears all values, setting the timezone to the given timezone. Sets isDst to a negative value to mean "unknown".
				 * @param timezone the timezone to use.
				 */
				public clear(timezone: string): void;
				/**
				 * Compare two Time objects and return a negative number if a is less than b, a positive number if a is greater than b, or 0 if they are equal.
				 * @param a first {@code Time} instance to compare
				 * @param b second {@code Time} instance to compare
				 */
				public static compare(a: android.text.format.Time, b: android.text.format.Time): number;
				/**
				 * Print the current value given the format string provided. See man strftime for what means what. The final string must be less than 256 characters.
				 * @param format a string containing the desired format.
				 */
				public format(format: string): string;
				/**
				 * Return the current time in YYYYMMDDTHHMMSS<tz> format
				 */
				public toString(): string;
				/**
				 * Parses a date-time string in either the RFC 2445 format or an abbreviated format that does not include the "time" field. For example, all of the following strings are valid:
				 * @param s the string to parse
				 */
				public parse(s: string): boolean;
				/**
				 * Parse a time in RFC 3339 format. This method also parses simple dates (that is, strings that contain no time or time offset). For example, all of the following strings are valid:
				 * @param s the string to parse
				 */
				public parse3339(s: string): boolean;
				/**
				 * Returns the timezone string that is currently set for the device.
				 */
				public static getCurrentTimezone(): string;
				/**
				 * Sets the time of the given Time object to the current time.
				 */
				public setToNow(): void;
				/**
				 * Converts this time to milliseconds. Suitable for interacting with the standard java libraries. The time is in UTC milliseconds since the epoch. This does an implicit normalization to compute the milliseconds but does <em>not</em> change any of the fields in this Time object. If you want to normalize the fields in this Time object and also get the milliseconds then use #normalize(boolean).
				 */
				public toMillis(ignoreDst: boolean): any;
				/**
				 * Sets the fields in this Time object given the UTC milliseconds. After this method returns, all the fields are normalized. This also sets the "isDst" field to the correct value.
				 * @param millis the time in UTC milliseconds since the epoch.
				 */
				public set(millis: number): void;
				/**
				 * Format according to RFC 2445 DATETIME type.
				 */
				public format2445(): string;
				/**
				 * Copy the value of that to this Time object. No normalization happens.
				 */
				public set(that: android.text.format.Time): void;
				/**
				 * Sets the fields. Sets weekDay, yearDay and gmtoff to 0, and isDst to -1. Call #normalize(boolean) if you need those.
				 */
				public set(second: number, minute: number, hour: number, monthDay: number, month: number, year: number): void;
				/**
				 * Sets the date from the given fields. Also sets allDay to true. Sets weekDay, yearDay and gmtoff to 0, and isDst to -1. Call #normalize(boolean) if you need those.
				 * @param monthDay the day of the month (in the range [1,31])
				 * @param month the zero-based month number (in the range [0,11])
				 * @param year the year
				 */
				public set(monthDay: number, month: number, year: number): void;
				/**
				 * Returns true if the time represented by this Time object occurs before the given time.
				 * @param that a given Time object to compare against
				 */
				public before(that: android.text.format.Time): boolean;
				/**
				 * Returns true if the time represented by this Time object occurs after the given time.
				 * @param that a given Time object to compare against
				 */
				public after(that: android.text.format.Time): boolean;
				/**
				 * Computes the week number according to ISO 8601. The current Time object must already be normalized because this method uses the yearDay and weekDay fields.
				 */
				public getWeekNumber(): number;
				/**
				 * Return a string in the RFC 3339 format.
				 * @param allDay 
				 */
				public format3339(allDay: boolean): string;
				/**
				 * Returns true if the day of the given time is the epoch on the Julian Calendar (January 1, 1970 on the Gregorian calendar).
				 * @param time the time to test
				 */
				public static isEpoch(time: android.text.format.Time): boolean;
				/**
				 * Computes the Julian day number, given the UTC milliseconds and the offset (in seconds) from UTC. The Julian day for a given date will be the same for every timezone. For example, the Julian day for July 1, 2008 is 2454649. This is the same value no matter what timezone is being used. The Julian day is useful for testing if two events occur on the same day and for determining the relative time of an event from the present ("yesterday", "3 days ago", etc.).
				 * @param millis the time in UTC milliseconds
				 * @param gmtoff the offset from UTC in seconds
				 */
				public static getJulianDay(millis: number, gmtoff: number): number;
				/**
				 * @param julianDay the Julian day in the timezone for this Time object
				 */
				public setJulianDay(julianDay: number): any;
				/**
				 * Returns the week since #EPOCH_JULIAN_DAY (Jan 1, 1970) adjusted for first day of week. This takes a julian day and the week start day and calculates which week since #EPOCH_JULIAN_DAY that day occurs in, starting at 0. *Do not* use this to compute the ISO week number for the year.
				 * @param julianDay The julian day to calculate the week number for
				 * @param firstDayOfWeek Which week day is the first day of the week, see
				 */
				public static getWeeksSinceEpochFromJulianDay(julianDay: number, firstDayOfWeek: number): number;
				/**
				 * Takes a number of weeks since the epoch and calculates the Julian day of the Monday for that week. This assumes that the week containing the #EPOCH_JULIAN_DAY is considered week 0. It returns the Julian day for the Monday week weeks after the Monday of the week containing the epoch.
				 * @param week Number of weeks since the epoch
				 */
				public static getJulianMondayFromWeeksSinceEpoch(week: number): number;
			}
			/**
			 * This class contains various date-related utilities for creating text for things like elapsed time and date ranges, strings for days of the week and months, and AM/PM text etc.
			 */
			export class DateUtils extends java.lang.Object {
				constructor();
				static SECOND_IN_MILLIS: number;
				static MINUTE_IN_MILLIS: number;
				static HOUR_IN_MILLIS: number;
				static DAY_IN_MILLIS: number;
				static WEEK_IN_MILLIS: number;
				/**
				 * This constant is actually the length of 364 days, not of a year!
				 */
				static YEAR_IN_MILLIS: number;
				static FORMAT_SHOW_TIME: number;
				static FORMAT_SHOW_WEEKDAY: number;
				static FORMAT_SHOW_YEAR: number;
				static FORMAT_NO_YEAR: number;
				static FORMAT_SHOW_DATE: number;
				static FORMAT_NO_MONTH_DAY: number;
				static FORMAT_12HOUR: number;
				static FORMAT_24HOUR: number;
				static FORMAT_CAP_AMPM: number;
				static FORMAT_NO_NOON: number;
				static FORMAT_CAP_NOON: number;
				static FORMAT_NO_MIDNIGHT: number;
				static FORMAT_CAP_MIDNIGHT: number;
				/**
				 *  Use #formatDateRange(Context, Formatter, long, long, int, String) formatDateRange and pass in Time#TIMEZONE_UTC Time.TIMEZONE_UTC for the timeZone instead.
				 */
				static FORMAT_UTC: number;
				static FORMAT_ABBREV_TIME: number;
				static FORMAT_ABBREV_WEEKDAY: number;
				static FORMAT_ABBREV_MONTH: number;
				static FORMAT_NUMERIC_DATE: number;
				static FORMAT_ABBREV_RELATIVE: number;
				static FORMAT_ABBREV_ALL: number;
				static FORMAT_CAP_NOON_MIDNIGHT: number;
				static FORMAT_NO_NOON_MIDNIGHT: number;
				/**
				 * This is not actually the preferred 24-hour date format in all locales. use java.text.SimpleDateFormat instead.
				 */
				static HOUR_MINUTE_24: string;
				static MONTH_FORMAT: string;
				/**
				 * This is not actually a useful month name in all locales. use java.text.SimpleDateFormat instead.
				 */
				static ABBREV_MONTH_FORMAT: string;
				static NUMERIC_MONTH_FORMAT: string;
				static MONTH_DAY_FORMAT: string;
				static YEAR_FORMAT: string;
				static YEAR_FORMAT_TWO_DIGITS: string;
				static WEEKDAY_FORMAT: string;
				static ABBREV_WEEKDAY_FORMAT: string;
				/**
				 *  do not use.
				 */
				static sameYearTable: native.Array<number>;
				/**
				 *  do not use.
				 */
				static sameMonthTable: native.Array<number>;
				/**
				 * Request the full spelled-out name. For use with the 'abbrev' parameter of #getDayOfWeekString and #getMonthString.
				 */
				static LENGTH_LONG: number;
				/**
				 * Request an abbreviated version of the name. For use with the 'abbrev' parameter of #getDayOfWeekString and #getMonthString.
				 */
				static LENGTH_MEDIUM: number;
				/**
				 * Request a shorter abbreviated version of the name. For use with the 'abbrev' parameter of #getDayOfWeekString and #getMonthString. 
				 */
				static LENGTH_SHORT: number;
				/**
				 * Request an even shorter abbreviated version of the name. Do not use this. Currently this will always return the same result as #LENGTH_SHORT. use java.text.SimpleDateFormat instead.
				 */
				static LENGTH_SHORTER: number;
				/**
				 * Request an even shorter abbreviated version of the name. For use with the 'abbrev' parameter of #getDayOfWeekString and #getMonthString. 
				 */
				static LENGTH_SHORTEST: number;
				static class: java.lang.Class<android.text.format.DateUtils>;
				/**
				 * Return a string for the day of the week.
				 * @param dayOfWeek One of {@link Calendar#SUNDAY Calendar.SUNDAY},
				 * @param abbrev One of {@link #LENGTH_LONG}, {@link #LENGTH_SHORT},
				 */
				public static getDayOfWeekString(dayOfWeek: number, abbrev: number): string;
				/**
				 * Return a localized string for AM or PM.
				 * @param ampm Either {@link Calendar#AM Calendar.AM} or {@link Calendar#PM Calendar.PM}.
				 */
				public static getAMPMString(ampm: number): string;
				/**
				 * Return a localized string for the month of the year.
				 * @param month One of {@link Calendar#JANUARY Calendar.JANUARY},
				 * @param abbrev One of {@link #LENGTH_LONG}, {@link #LENGTH_MEDIUM},
				 */
				public static getMonthString(month: number, abbrev: number): string;
				/**
				 * Returns a string describing the elapsed time since startTime.
				 * @param startTime some time in the past.
				 */
				public static getRelativeTimeSpanString(startTime: number): string;
				/**
				 * Returns a string describing 'time' as a time relative to 'now'.
				 * @param time the time to describe, in milliseconds
				 * @param now the current time in milliseconds
				 * @param minResolution the minimum timespan to report. For example, a time 3 seconds in the
				 */
				public static getRelativeTimeSpanString(time: number, now: number, minResolution: number): string;
				/**
				 * Returns a string describing 'time' as a time relative to 'now'.
				 * @param time the time to describe, in milliseconds
				 * @param now the current time in milliseconds
				 * @param minResolution the minimum timespan to report. For example, a time
				 * @param flags a bit mask of formatting options, such as
				 */
				public static getRelativeTimeSpanString(time: number, now: number, minResolution: number, flags: number): string;
				/**
				 * Return string describing the elapsed time since startTime formatted like "[relative time/date], [time]".
				 * @param c time some time in the past.
				 * @param time minResolution the minimum elapsed time (in milliseconds) to report
				 * @param minResolution transitionResolution the elapsed time (in milliseconds) at which
				 * @param transitionResolution 
				 * @param flags 
				 */
				public static getRelativeDateTimeString(c: android.content.Context, time: number, minResolution: number, transitionResolution: number, flags: number): string;
				/**
				 * Formats an elapsed time in the form "MM:SS" or "H:MM:SS" for display on the call-in-progress screen.
				 * @param elapsedSeconds the elapsed time in seconds.
				 */
				public static formatElapsedTime(elapsedSeconds: number): string;
				/**
				 * Formats an elapsed time in the form "MM:SS" or "H:MM:SS" for display on the call-in-progress screen.
				 * @param recycle {@link StringBuilder} to recycle, if possible
				 * @param elapsedSeconds the elapsed time in seconds.
				 */
				public static formatElapsedTime(recycle: java.lang.StringBuilder, elapsedSeconds: number): string;
				/**
				 * Format a date / time such that if the then is on the same day as now, it shows just the time and if it's a different day, it shows just the date.
				 * @param then the date to format
				 * @param now the base time
				 * @param dateStyle how to format the date portion.
				 * @param timeStyle how to format the time portion.
				 */
				public static formatSameDayTime(then: number, now: number, dateStyle: number, timeStyle: number): string;
				public static isToday(when: number): boolean;
				/**
				 * Formats a date or a time range according to the local conventions.
				 * @param context the context is required only if the time is shown
				 * @param startMillis the start time in UTC milliseconds
				 * @param endMillis the end time in UTC milliseconds
				 * @param flags a bit mask of options See
				 */
				public static formatDateRange(context: android.content.Context, startMillis: number, endMillis: number, flags: number): string;
				/**
				 * Formats a date or a time range according to the local conventions.
				 * @param context the context is required only if the time is shown
				 * @param formatter the Formatter used for formatting the date range.
				 * @param startMillis the start time in UTC milliseconds
				 * @param endMillis the end time in UTC milliseconds
				 * @param flags a bit mask of options See
				 */
				public static formatDateRange(context: android.content.Context, formatter: java.util.Formatter, startMillis: number, endMillis: number, flags: number): java.util.Formatter;
				/**
				 * Formats a date or a time range according to the local conventions.
				 * @param context the context is required only if the time is shown
				 * @param formatter the Formatter used for formatting the date range.
				 * @param startMillis the start time in UTC milliseconds
				 * @param endMillis the end time in UTC milliseconds
				 * @param flags a bit mask of options
				 * @param timeZone the time zone to compute the string in. Use null for local
				 */
				public static formatDateRange(context: android.content.Context, formatter: java.util.Formatter, startMillis: number, endMillis: number, flags: number, timeZone: string): java.util.Formatter;
				/**
				 * Formats a date or a time according to the local conventions. There are lots of options that allow the caller to control, for example, if the time is shown, if the day of the week is shown, if the month name is abbreviated, if noon is shown instead of 12pm, and so on. For the complete list of options, see the documentation for #formatDateRange.
				 * @param context the context is required only if the time is shown
				 * @param millis a point in time in UTC milliseconds
				 * @param flags a bit mask of formatting options
				 */
				public static formatDateTime(context: android.content.Context, millis: number, flags: number): string;
				/**
				 * @param c withPreposition If true, the string returned will include the correct
				 * @param millis 
				 * @param withPreposition 
				 */
				public static getRelativeTimeSpanString(c: android.content.Context, millis: number, withPreposition: boolean): string;
				/**
				 * Convenience function to return relative time string without preposition.
				 * @param c context for resources
				 * @param millis time in milliseconds
				 */
				public static getRelativeTimeSpanString(c: android.content.Context, millis: number): string;
			}
		}
		/**
		 * This is the interface for text whose content and markup can be changed (as opposed to immutable text like Strings). If you make a DynamicLayout of an Editable, the layout will be reflowed as the text is changed.
		 */
		interface IEditable extends java.lang.ICharSequence, android.text.IGetChars, android.text.ISpannable, java.lang.IAppendable {
			/**
			 * Replaces the specified range (<code>st&hellip;en</code>) of text in this Editable with a copy of the slice <code>start&hellip;end</code> from <code>source</code>. The destination slice may be empty, in which case the operation is an insertion, or the source slice may be empty, in which case the operation is a deletion.
			 */
			replace(st: number, en: number, source: string, start: number, end: number): any;
			/**
			 * Convenience for replace(st, en, text, 0, text.length()) #replace(int, int, CharSequence, int, int)
			 */
			replace(st: number, en: number, text: string): any;
			/**
			 * Convenience for replace(where, where, text, start, end) #replace(int, int, CharSequence, int, int)
			 */
			insert(where: number, text: string, start: number, end: number): any;
			/**
			 * Convenience for replace(where, where, text, 0, text.length()); #replace(int, int, CharSequence, int, int)
			 */
			insert(where: number, text: string): any;
			/**
			 * Convenience for replace(st, en, "", 0, 0) #replace(int, int, CharSequence, int, int)
			 */
			delete(st: number, en: number): any;
			/**
			 * Convenience for replace(length(), length(), text, 0, text.length()) #replace(int, int, CharSequence, int, int)
			 */
			append(text: string): any;
			/**
			 * Convenience for replace(length(), length(), text, start, end) #replace(int, int, CharSequence, int, int)
			 */
			append(text: string, start: number, end: number): any;
			/**
			 * Convenience for replace(0, length(), "", 0, 0) #replace(int, int, CharSequence, int, int) Note that this clears the text, not the spans; use #clearSpans if you need that.
			 */
			clear(): void;
			/**
			 * Removes all spans from the Editable, as if by calling #removeSpan on each of them.
			 */
			clearSpans(): void;
			/**
			 * Sets the series of filters that will be called in succession whenever the text of this Editable is changed, each of which has the opportunity to limit or transform the text that is being inserted.
			 */
			setFilters(filters: native.Array<android.text.IInputFilter>): void;
			/**
			 * Returns the array of input filters that are currently applied to changes to this Editable.
			 */
			getFilters(): native.Array<android.text.IInputFilter>;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
			/**
			 * Exactly like String.getChars(): copy chars <code>start</code> through <code>end - 1</code> from this CharSequence into <code>dest</code> beginning at offset <code>destoff</code>.
			 */
			getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			/**
			 * Attach the specified markup object to the range <code>start&hellip;end</code> of the text, or move the object to that range if it was already attached elsewhere. See Spanned for an explanation of what the flags mean. The object can be one that has meaning only within your application, or it can be one that the text system will use to affect text display or behavior. Some noteworthy ones are the subclasses of android.text.style.CharacterStyle and android.text.style.ParagraphStyle, and android.text.TextWatcher and android.text.SpanWatcher.
			 */
			setSpan(what: any, start: number, end: number, flags: number): void;
			/**
			 * Remove the specified object from the range of text to which it was attached, if any. It is OK to remove an object that was never attached in the first place.
			 */
			removeSpan(what: any): void;
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
		}
		/**
		 * This is the interface for text that has markup objects attached to ranges of it. Not all text classes have mutable markup or text; see Spannable for mutable markup and Editable for mutable text.
		 */
		export class Spanned implements java.lang.ICharSequence, android.text.ISpanned {
			constructor(implementation: android.text.ISpanned);
			/**
			 * Bitmask of bits that are relevent for controlling point/mark behavior of spans.
			 */
			static SPAN_POINT_MARK_MASK: number;
			/**
			 * 0-length spans with type SPAN_MARK_MARK behave like text marks: they remain at their original offset when text is inserted at that offset. Conceptually, the text is added after the mark.
			 */
			static SPAN_MARK_MARK: number;
			/**
			 * SPAN_MARK_POINT is a synonym for #SPAN_INCLUSIVE_INCLUSIVE.
			 */
			static SPAN_MARK_POINT: number;
			/**
			 * SPAN_POINT_MARK is a synonym for #SPAN_EXCLUSIVE_EXCLUSIVE.
			 */
			static SPAN_POINT_MARK: number;
			/**
			 * 0-length spans with type SPAN_POINT_POINT behave like cursors: they are pushed forward by the length of the insertion when text is inserted at their offset. The text is conceptually inserted before the point.
			 */
			static SPAN_POINT_POINT: number;
			/**
			 * SPAN_PARAGRAPH behaves like SPAN_INCLUSIVE_EXCLUSIVE (SPAN_MARK_MARK), except that if either end of the span is at the end of the buffer, that end behaves like _POINT instead (so SPAN_INCLUSIVE_INCLUSIVE if it starts in the middle and ends at the end, or SPAN_EXCLUSIVE_INCLUSIVE if it both starts and ends at the end).
			 */
			static SPAN_PARAGRAPH: number;
			/**
			 * Non-0-length spans of type SPAN_INCLUSIVE_EXCLUSIVE expand to include text inserted at their starting point but not at their ending point. When 0-length, they behave like marks.
			 */
			static SPAN_INCLUSIVE_EXCLUSIVE: number;
			/**
			 * Spans of type SPAN_INCLUSIVE_INCLUSIVE expand to include text inserted at either their starting or ending point.
			 */
			static SPAN_INCLUSIVE_INCLUSIVE: number;
			/**
			 * Spans of type SPAN_EXCLUSIVE_EXCLUSIVE do not expand to include text inserted at either their starting or ending point. They can never have a length of 0 and are automatically removed from the buffer if all the text they cover is removed.
			 */
			static SPAN_EXCLUSIVE_EXCLUSIVE: number;
			/**
			 * Non-0-length spans of type SPAN_EXCLUSIVE_INCLUSIVE expand to include text inserted at their ending point but not at their starting point. When 0-length, they behave like points.
			 */
			static SPAN_EXCLUSIVE_INCLUSIVE: number;
			/**
			 * This flag is set on spans that are being used to apply temporary styling information on the composing text of an input method, so that they can be found and removed when the composing text is being replaced.
			 */
			static SPAN_COMPOSING: number;
			/**
			 * This flag will be set for intermediate span changes, meaning there is guaranteed to be another change following it. Typically it is used for Selection which automatically uses this with the first offset it sets when updating the selection.
			 */
			static SPAN_INTERMEDIATE: number;
			/**
			 * The bits numbered SPAN_USER_SHIFT and above are available for callers to use to store scalar data associated with their span object.
			 */
			static SPAN_USER_SHIFT: number;
			/**
			 * The bits specified by the SPAN_USER bitfield are available for callers to use to store scalar data associated with their span object.
			 */
			static SPAN_USER: number;
			/**
			 * The bits numbered just above SPAN_PRIORITY_SHIFT determine the order of change notifications -- higher numbers go first. You probably don't need to set this; it is used so that when text changes, the text layout gets the chance to update itself before any other callbacks can inquire about the layout of the text.
			 */
			static SPAN_PRIORITY_SHIFT: number;
			/**
			 * The bits specified by the SPAN_PRIORITY bitmap determine the order of change notifications -- higher numbers go first. You probably don't need to set this; it is used so that when text changes, the text layout gets the chance to update itself before any other callbacks can inquire about the layout of the text.
			 */
			static SPAN_PRIORITY: number;
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			public getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			public getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			public getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			public getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			public nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
		}
		/**
		 * TextPaint is an extension of Paint that leaves room for some extra data used during text measuring and drawing.
		 */
		export class TextPaint extends android.graphics.Paint {
			constructor();
			constructor(flags: number);
			constructor(p: android.graphics.Paint);
			bgColor: number;
			baselineShift: number;
			linkColor: number;
			drawableState: native.Array<number>;
			density: number;
			static class: java.lang.Class<android.text.TextPaint>;
			/**
			 * Copy the fields from tp into this TextPaint, including the fields inherited from Paint.
			 */
			public set(tp: android.text.TextPaint): void;
			/**
			 * Copy the fields from src into this paint. This is equivalent to calling get() on all of the src fields, and calling the corresponding set() methods on this.
			 */
			set(src: android.graphics.Paint): void;
		}
		/**
		 * This is the class for text whose content is immutable but to which markup objects can be attached and detached. For mutable text, see SpannableStringBuilder.
		 */
		export class SpannableString extends android.text.SpannableStringInternal implements java.lang.ICharSequence, android.text.IGetChars, android.text.ISpannable {
			constructor(source: string);
			static class: java.lang.Class<android.text.SpannableString>;
			public static valueOf(source: string): android.text.SpannableString;
			public setSpan(what: any, start: number, end: number, flags: number): void;
			public removeSpan(what: any): void;
			public subSequence(start: number, end: number): string;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
			/**
			 * Exactly like String.getChars(): copy chars <code>start</code> through <code>end - 1</code> from this CharSequence into <code>dest</code> beginning at offset <code>destoff</code>.
			 */
			getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
		}
		/**
		 * Tests DynamciLayout updateBlocks method.
		 */
		export class DynamicLayoutBlocksTest {
			constructor();
			static class: java.lang.Class<android.text.DynamicLayoutBlocksTest>;
			public printBlocks(message: string): void;
			public checkInvariants(): void;
			public testFrom0(): void;
			public testFrom1ReplaceByEmpty(): void;
			public testFrom1ReplaceFromFirstLine(): void;
			public testFrom1ReplaceFromCenter(): void;
			public testFrom1ReplaceFromEnd(): void;
			public testFrom2ReplaceFromFirstLine(): void;
			public testFrom2ReplaceFromFirstBlock(): void;
			public testFrom2ReplaceFromBottomBoundary(): void;
			public testFrom2ReplaceFromTopBoundary(): void;
			public testFrom2ReplaceFromSecondBlock(): void;
			public testFrom2RemoveFromFirst(): void;
			public testFrom2RemoveFromFirstBlock(): void;
			public testFrom2RemoveFromSecondBlock(): void;
			public testFrom3ReplaceFromFirstBlock(): void;
			public testFrom3ReplaceFromSecondBlock(): void;
		}
		export module util {
			export class LinkSpec extends java.lang.Object {
				static class: java.lang.Class<android.text.util.LinkSpec>;
			}
			/**
			 * LinkifyTest tests Linkify.
			 */
			export class LinkifyTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.text.util.LinkifyTest>;
				public testNothing(): void;
				public testNormal(): void;
				public testUnclickable(): void;
			}
			/**
			 * Linkify take a piece of text and a regular expression and turns all of the regex matches in the text into clickable links. This is particularly useful for matching things like email addresses, web urls, etc. and making them actionable.
			 */
			export class Linkify extends java.lang.Object {
				constructor();
				/**
				 * Bit field indicating that web URLs should be matched in methods that take an options mask
				 */
				static WEB_URLS: number;
				/**
				 * Bit field indicating that email addresses should be matched in methods that take an options mask
				 */
				static EMAIL_ADDRESSES: number;
				/**
				 * Bit field indicating that phone numbers should be matched in methods that take an options mask
				 */
				static PHONE_NUMBERS: number;
				/**
				 * Bit field indicating that street addresses should be matched in methods that take an options mask
				 */
				static MAP_ADDRESSES: number;
				/**
				 * Bit mask indicating that all available patterns should be matched in methods that take an options mask
				 */
				static ALL: number;
				/**
				 * Filters out web URL matches that occur after an at-sign ( This is to prevent turning the domain name in an email address into a web link.
				 */
				static sUrlMatchFilter: android.text.util.Linkify.IMatchFilter;
				/**
				 * Filters out URL matches that don't have enough digits to be a phone number.
				 */
				static sPhoneNumberMatchFilter: android.text.util.Linkify.IMatchFilter;
				/**
				 * Transforms matched phone number text into something suitable to be used in a tel: URL. It does this by removing everything but the digits and plus signs. For instance: &apos;+1 (919) 555-1212&apos; becomes &apos;+19195551212&apos;
				 */
				static sPhoneNumberTransformFilter: android.text.util.Linkify.ITransformFilter;
				static class: java.lang.Class<android.text.util.Linkify>;
				/**
				 * Scans the text of the provided Spannable and turns all occurrences of the link types indicated in the mask into clickable links. If the mask is nonzero, it also removes any existing URLSpans attached to the Spannable, to avoid problems if you call it repeatedly on the same text.
				 */
				public static addLinks(text: android.text.ISpannable, mask: number): boolean;
				/**
				 * Scans the text of the provided TextView and turns all occurrences of the link types indicated in the mask into clickable links. If matches are found the movement method for the TextView is set to LinkMovementMethod.
				 */
				public static addLinks(text: android.widget.TextView, mask: number): boolean;
				/**
				 * Applies a regex to the text of a TextView turning the matches into links. If links are found then UrlSpans are applied to the link text match areas, and the movement method for the text is changed to LinkMovementMethod.
				 * @param text TextView whose text is to be marked-up with links
				 * @param pattern Regex pattern to be used for finding links
				 * @param scheme Url scheme string (eg <code>http://</code> to be
				 */
				public static addLinks(text: android.widget.TextView, pattern: java.util.regex.Pattern, scheme: string): void;
				/**
				 * Applies a regex to the text of a TextView turning the matches into links. If links are found then UrlSpans are applied to the link text match areas, and the movement method for the text is changed to LinkMovementMethod.
				 * @param text TextView whose text is to be marked-up with links
				 * @param p Regex pattern to be used for finding links
				 * @param scheme Url scheme string (eg <code>http://</code> to be
				 * @param matchFilter The filter that is used to allow the client code
				 * @param transformFilter 
				 */
				public static addLinks(text: android.widget.TextView, p: java.util.regex.Pattern, scheme: string, matchFilter: android.text.util.Linkify.IMatchFilter, transformFilter: android.text.util.Linkify.ITransformFilter): void;
				/**
				 * Applies a regex to a Spannable turning the matches into links.
				 * @param text Spannable whose text is to be marked-up with
				 * @param pattern Regex pattern to be used for finding links
				 * @param scheme Url scheme string (eg <code>http://</code> to be
				 */
				public static addLinks(text: android.text.ISpannable, pattern: java.util.regex.Pattern, scheme: string): boolean;
				/**
				 * Applies a regex to a Spannable turning the matches into links.
				 * @param s Spannable whose text is to be marked-up with
				 * @param p Regex pattern to be used for finding links
				 * @param scheme Url scheme string (eg <code>http://</code> to be
				 * @param matchFilter The filter that is used to allow the client code
				 * @param transformFilter 
				 */
				public static addLinks(s: android.text.ISpannable, p: java.util.regex.Pattern, scheme: string, matchFilter: android.text.util.Linkify.IMatchFilter, transformFilter: android.text.util.Linkify.ITransformFilter): boolean;
			}
			export module Linkify {
				/**
				 * TransformFilter enables client code to have more control over how matched patterns are represented as URLs.
				 */
				interface ITransformFilter {
					/**
					 * Examines the matched text and either passes it through or uses the data in the Matcher state to produce a replacement.
					 * @param match The regex matcher state that found this URL text
					 * @param url The text that was matched
					 */
					transformUrl(match: java.util.regex.Matcher, url: string): string;
				}
				/**
				 * MatchFilter enables client code to have more control over what is allowed to match and become a link, and what is not.
				 */
				interface IMatchFilter {
					/**
					 * Examines the character span matched by the pattern and determines if the match should be turned into an actionable link.
					 * @param s The body of text against which the pattern
					 * @param start The index of the first character in s that was
					 * @param end The index of the last character in s that was
					 */
					acceptMatch(s: string, start: number, end: number): boolean;
				}
				/**
				 * MatchFilter enables client code to have more control over what is allowed to match and become a link, and what is not.
				 */
				export class MatchFilter implements android.text.util.Linkify.IMatchFilter {
					constructor(implementation: android.text.util.Linkify.IMatchFilter);
					/**
					 * Examines the character span matched by the pattern and determines if the match should be turned into an actionable link.
					 * @param s The body of text against which the pattern
					 * @param start The index of the first character in s that was
					 * @param end The index of the last character in s that was
					 */
					public acceptMatch(s: string, start: number, end: number): boolean;
				}
				/**
				 * TransformFilter enables client code to have more control over how matched patterns are represented as URLs.
				 */
				export class TransformFilter implements android.text.util.Linkify.ITransformFilter {
					constructor(implementation: android.text.util.Linkify.ITransformFilter);
					/**
					 * Examines the matched text and either passes it through or uses the data in the Matcher state to produce a replacement.
					 * @param match The regex matcher state that found this URL text
					 * @param url The text that was matched
					 */
					public transformUrl(match: java.util.regex.Matcher, url: string): string;
				}
			}
			/**
			 * This class works as a Tokenizer for MultiAutoCompleteTextView for address list fields, and also provides a method for converting a string of addresses (such as might be typed into such a field) into a series of Rfc822Tokens.
			 */
			export class Rfc822Tokenizer extends java.lang.Object implements android.widget.MultiAutoCompleteTextView.ITokenizer {
				constructor();
				static class: java.lang.Class<android.text.util.Rfc822Tokenizer>;
				/**
				 * This constructor will try to take a string like "Foo Bar (something) &lt;foo\ blah\ (something)" and convert it into one or more Rfc822Tokens, output into the supplied collection.
				 */
				public static tokenize(text: string, out: java.util.ICollection<android.text.util.Rfc822Token>): void;
				/**
				 * This method will try to take a string like "Foo Bar (something) &lt;foo\ blah\ (something)" and convert it into one or more Rfc822Tokens. It does *not* decode MIME encoded-words; charset conversion must already have taken place if necessary. It will try to be tolerant of broken syntax instead of returning an error.
				 */
				public static tokenize(text: string): native.Array<android.text.util.Rfc822Token>;
				/**
				 * 
				 */
				public findTokenStart(text: string, cursor: number): number;
				/**
				 * 
				 */
				public findTokenEnd(text: string, cursor: number): number;
				/**
				 * Terminates the specified address with a comma and space. This assumes that the specified text already has valid syntax. The Adapter subclass's convertToString() method must make that guarantee.
				 */
				public terminateToken(text: string): string;
			}
			/**
			 * This class stores an RFC 822-like name, address, and comment, and provides methods to convert them to quoted strings.
			 */
			export class Rfc822Token extends java.lang.Object {
				/**
				 * Creates a new Rfc822Token with the specified name, address, and comment.
				 */
				constructor(name: string, address: string, comment: string);
				static class: java.lang.Class<android.text.util.Rfc822Token>;
				/**
				 * Returns the name part.
				 */
				public getName(): string;
				/**
				 * Returns the address part.
				 */
				public getAddress(): string;
				/**
				 * Returns the comment part.
				 */
				public getComment(): string;
				/**
				 * Changes the name to the specified name.
				 */
				public setName(name: string): void;
				/**
				 * Changes the address to the specified address.
				 */
				public setAddress(address: string): void;
				/**
				 * Changes the comment to the specified comment.
				 */
				public setComment(comment: string): void;
				/**
				 * Returns the name (with quoting added if necessary), the comment (in parentheses), and the address (in angle brackets). This should be suitable for inclusion in an RFC 822 address list.
				 */
				public toString(): string;
				/**
				 * Returns the name, conservatively quoting it if there are any characters that are likely to cause trouble outside of a quoted string, or returning it literally if it seems safe.
				 */
				public static quoteNameIfNecessary(name: string): string;
				/**
				 * Returns the name, with internal backslashes and quotation marks preceded by backslashes. The outer quote marks themselves are not added by this method.
				 */
				public static quoteName(name: string): string;
				/**
				 * Returns the comment, with internal backslashes and parentheses preceded by backslashes. The outer parentheses themselves are not added by this method.
				 */
				public static quoteComment(comment: string): string;
				public hashCode(): number;
				public equals(o: any): boolean;
			}
		}
		/**
		 * Bit definitions for an integer defining the basic content type of text held in an Editable object. Supported classes may be combined with variations and flags to indicate desired behaviors.
		 */
		export class InputType implements android.text.IInputType {
			constructor(implementation: android.text.IInputType);
			/**
			 * Mask of bits that determine the overall class of text being given. Currently supported classes are: #TYPE_CLASS_TEXT, #TYPE_CLASS_NUMBER, #TYPE_CLASS_PHONE, #TYPE_CLASS_DATETIME. If the class is not one you understand, assume #TYPE_CLASS_TEXT with NO variation or flags.
			 */
			static TYPE_MASK_CLASS: number;
			/**
			 * Mask of bits that determine the variation of the base content class.
			 */
			static TYPE_MASK_VARIATION: number;
			/**
			 * Mask of bits that provide addition bit flags of options.
			 */
			static TYPE_MASK_FLAGS: number;
			/**
			 * Special content type for when no explicit type has been specified. This should be interpreted to mean that the target input connection is not rich, it can not process and show things like candidate text nor retrieve the current text, so the input method will need to run in a limited "generate key events" mode.
			 */
			static TYPE_NULL: number;
			/**
			 * Class for normal text. This class supports the following flags (only one of which should be set): #TYPE_TEXT_FLAG_CAP_CHARACTERS, #TYPE_TEXT_FLAG_CAP_WORDS, and. #TYPE_TEXT_FLAG_CAP_SENTENCES. It also supports the following variations: #TYPE_TEXT_VARIATION_NORMAL, and #TYPE_TEXT_VARIATION_URI. If you do not recognize the variation, normal should be assumed.
			 */
			static TYPE_CLASS_TEXT: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: capitalize all characters. Overrides #TYPE_TEXT_FLAG_CAP_WORDS and #TYPE_TEXT_FLAG_CAP_SENTENCES. This value is explicitly defined to be the same as TextUtils#CAP_MODE_CHARACTERS.
			 */
			static TYPE_TEXT_FLAG_CAP_CHARACTERS: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: capitalize first character of all words. Overrides #TYPE_TEXT_FLAG_CAP_SENTENCES. This value is explicitly defined to be the same as TextUtils#CAP_MODE_WORDS.
			 */
			static TYPE_TEXT_FLAG_CAP_WORDS: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: capitalize first character of each sentence. This value is explicitly defined to be the same as TextUtils#CAP_MODE_SENTENCES.
			 */
			static TYPE_TEXT_FLAG_CAP_SENTENCES: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the user is entering free-form text that should have auto-correction applied to it.
			 */
			static TYPE_TEXT_FLAG_AUTO_CORRECT: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the text editor is performing auto-completion of the text being entered based on its own semantics, which it will present to the user as they type. This generally means that the input method should not be showing candidates itself, but can expect for the editor to supply its own completions/candidates from android.view.inputmethod.InputMethodSession#displayCompletions InputMethodSession.displayCompletions() as a result of the editor calling android.view.inputmethod.InputMethodManager#displayCompletions InputMethodManager.displayCompletions().
			 */
			static TYPE_TEXT_FLAG_AUTO_COMPLETE: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: multiple lines of text can be entered into the field. If this flag is not set, the text field will be constrained to a single line.
			 */
			static TYPE_TEXT_FLAG_MULTI_LINE: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the regular text view associated with this should not be multi-line, but when a fullscreen input method is providing text it should use multiple lines if it can.
			 */
			static TYPE_TEXT_FLAG_IME_MULTI_LINE: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the input method does not need to display any dictionary-based candidates. This is useful for text views that do not contain words from the language and do not benefit from any dictionary-based completions or corrections. It overrides the #TYPE_TEXT_FLAG_AUTO_CORRECT value when set.
			 */
			static TYPE_TEXT_FLAG_NO_SUGGESTIONS: number;
			/**
			 * Default variation of #TYPE_CLASS_TEXT: plain old normal text.
			 */
			static TYPE_TEXT_VARIATION_NORMAL: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a URI.
			 */
			static TYPE_TEXT_VARIATION_URI: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering an e-mail address.
			 */
			static TYPE_TEXT_VARIATION_EMAIL_ADDRESS: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering the subject line of an e-mail.
			 */
			static TYPE_TEXT_VARIATION_EMAIL_SUBJECT: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a short, possibly informal message such as an instant message or a text message.
			 */
			static TYPE_TEXT_VARIATION_SHORT_MESSAGE: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering the content of a long, possibly formal message such as the body of an e-mail.
			 */
			static TYPE_TEXT_VARIATION_LONG_MESSAGE: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering the name of a person.
			 */
			static TYPE_TEXT_VARIATION_PERSON_NAME: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a postal mailing address.
			 */
			static TYPE_TEXT_VARIATION_POSTAL_ADDRESS: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a password.
			 */
			static TYPE_TEXT_VARIATION_PASSWORD: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a password, which should be visible to the user.
			 */
			static TYPE_TEXT_VARIATION_VISIBLE_PASSWORD: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering text inside of a web form.
			 */
			static TYPE_TEXT_VARIATION_WEB_EDIT_TEXT: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering text to filter contents of a list etc.
			 */
			static TYPE_TEXT_VARIATION_FILTER: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering text for phonetic pronunciation, such as a phonetic name field in contacts.
			 */
			static TYPE_TEXT_VARIATION_PHONETIC: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering e-mail address inside of a web form. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be seen as #TYPE_TEXT_VARIATION_EMAIL_ADDRESS when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			static TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering password inside of a web form. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be seen as #TYPE_TEXT_VARIATION_PASSWORD when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			static TYPE_TEXT_VARIATION_WEB_PASSWORD: number;
			/**
			 * Class for numeric text. This class supports the following flag: #TYPE_NUMBER_FLAG_SIGNED and #TYPE_NUMBER_FLAG_DECIMAL. It also supports the following variations: #TYPE_NUMBER_VARIATION_NORMAL and #TYPE_NUMBER_VARIATION_PASSWORD. If you do not recognize the variation, normal should be assumed.
			 */
			static TYPE_CLASS_NUMBER: number;
			/**
			 * Flag of #TYPE_CLASS_NUMBER: the number is signed, allowing a positive or negative sign at the start.
			 */
			static TYPE_NUMBER_FLAG_SIGNED: number;
			/**
			 * Flag of #TYPE_CLASS_NUMBER: the number is decimal, allowing a decimal point to provide fractional values.
			 */
			static TYPE_NUMBER_FLAG_DECIMAL: number;
			/**
			 * Default variation of #TYPE_CLASS_NUMBER: plain normal numeric text. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be dropped when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			static TYPE_NUMBER_VARIATION_NORMAL: number;
			/**
			 * Variation of #TYPE_CLASS_NUMBER: entering a numeric password. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be dropped when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			static TYPE_NUMBER_VARIATION_PASSWORD: number;
			/**
			 * Class for a phone number. This class currently supports no variations or flags.
			 */
			static TYPE_CLASS_PHONE: number;
			/**
			 * Class for dates and times. It supports the following variations: #TYPE_DATETIME_VARIATION_NORMAL #TYPE_DATETIME_VARIATION_DATE, and #TYPE_DATETIME_VARIATION_TIME,.
			 */
			static TYPE_CLASS_DATETIME: number;
			/**
			 * Default variation of #TYPE_CLASS_DATETIME: allows entering both a date and time.
			 */
			static TYPE_DATETIME_VARIATION_NORMAL: number;
			/**
			 * Default variation of #TYPE_CLASS_DATETIME: allows entering only a date.
			 */
			static TYPE_DATETIME_VARIATION_DATE: number;
			/**
			 * Default variation of #TYPE_CLASS_DATETIME: allows entering only a time.
			 */
			static TYPE_DATETIME_VARIATION_TIME: number;
		}
		export module style {
			/**
			 * Provides an easy way to edit a portion of text.
			 */
			export class EasyEditSpan extends java.lang.Object implements android.text.IParcelableSpan {
				constructor();
				static class: java.lang.Class<android.text.style.EasyEditSpan>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getSpanTypeId(): number;
			}
			export class AlignmentSpan implements android.text.style.IParagraphStyle, android.text.style.IAlignmentSpan {
				constructor(implementation: android.text.style.IAlignmentSpan);
				public getAlignment(): android.text.Layout.Alignment;
			}
			export module AlignmentSpan {
				export class Standard extends java.lang.Object implements android.text.style.IAlignmentSpan, android.text.IParcelableSpan {
					constructor(align: android.text.Layout.Alignment);
					constructor(src: android.os.Parcel);
					static class: java.lang.Class<android.text.style.AlignmentSpan.Standard>;
					public getSpanTypeId(): number;
					public describeContents(): number;
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
					public getAlignment(): android.text.Layout.Alignment;
				}
			}
			export class SuperscriptSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				constructor();
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.SuperscriptSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public updateDrawState(tp: android.text.TextPaint): void;
				public updateMeasureState(tp: android.text.TextPaint): void;
			}
			/**
			 * Sets the text color, size, style, and typeface to match a TextAppearance resource.
			 */
			export class TextAppearanceSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				/**
				 * Uses the specified TextAppearance resource to determine the text appearance. The <code>appearance</code> should be, for example, <code>android.R.style.TextAppearance_Small</code>.
				 */
				constructor(context: android.content.Context, appearance: number);
				/**
				 * Uses the specified TextAppearance resource to determine the text appearance, and the specified text color resource to determine the color. The <code>appearance</code> should be, for example, <code>android.R.style.TextAppearance_Small</code>, and the <code>colorList</code> should be, for example, <code>android.R.styleable.Theme_textColorPrimary</code>.
				 */
				constructor(context: android.content.Context, appearance: number, colorList: number);
				/**
				 * Makes text be drawn with the specified typeface, size, style, and colors.
				 */
				constructor(family: string, style: number, size: number, color: android.content.res.ColorStateList, linkColor: android.content.res.ColorStateList);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.TextAppearanceSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Returns the typeface family specified by this span, or <code>null</code> if it does not specify one.
				 */
				public getFamily(): string;
				/**
				 * Returns the text color specified by this span, or <code>null</code> if it does not specify one.
				 */
				public getTextColor(): android.content.res.ColorStateList;
				/**
				 * Returns the link color specified by this span, or <code>null</code> if it does not specify one.
				 */
				public getLinkTextColor(): android.content.res.ColorStateList;
				/**
				 * Returns the text size specified by this span, or <code>-1</code> if it does not specify one.
				 */
				public getTextSize(): number;
				/**
				 * Returns the text style specified by this span, or <code>0</code> if it does not specify one.
				 */
				public getTextStyle(): number;
				public updateDrawState(ds: android.text.TextPaint): void;
				public updateMeasureState(ds: android.text.TextPaint): void;
			}
			export class LineHeightSpan implements android.text.style.IParagraphStyle, android.text.style.IWrapTogetherSpan, android.text.style.ILineHeightSpan {
				constructor(implementation: android.text.style.ILineHeightSpan);
				public chooseHeight(text: string, start: number, end: number, spanstartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt): void;
			}
			export module LineHeightSpan {
				interface IWithDensity extends android.text.style.ILineHeightSpan {
					chooseHeight(text: string, start: number, end: number, spanstartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt, paint: android.text.TextPaint): void;
					chooseHeight(text: string, start: number, end: number, spanstartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt): void;
				}
				export class WithDensity implements android.text.style.ILineHeightSpan, android.text.style.LineHeightSpan.IWithDensity {
					constructor(implementation: android.text.style.LineHeightSpan.IWithDensity);
					public chooseHeight(text: string, start: number, end: number, spanstartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt, paint: android.text.TextPaint): void;
					chooseHeight(text: string, start: number, end: number, spanstartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt): void;
				}
			}
			export class RasterizerSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateAppearance {
				constructor(r: android.graphics.Rasterizer);
				static class: java.lang.Class<android.text.style.RasterizerSpan>;
				public getRasterizer(): android.graphics.Rasterizer;
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			export class ScaleXSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				constructor(proportion: number);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.ScaleXSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getScaleX(): number;
				public updateDrawState(ds: android.text.TextPaint): void;
				public updateMeasureState(ds: android.text.TextPaint): void;
			}
			/**
			 * The classes that affect paragraph-level text formatting implement this interface.
			 */
			export class ParagraphStyle implements android.text.style.IParagraphStyle {
				constructor(implementation: android.text.style.IParagraphStyle);
			}
			/**
			 * A paragraph style affecting the leading margin. There can be multiple leading margin spans on a single paragraph; they will be rendered in order, each adding its margin to the ones before it. The leading margin is on the right for lines in a right-to-left paragraph.
			 */
			interface ILeadingMarginSpan extends android.text.style.IParagraphStyle {
				/**
				 * Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it. 
				 * @param first true if the request is for the first line of a paragraph,
				 */
				getLeadingMargin(first: boolean): number;
				/**
				 * Renders the leading margin. This is called before the margin has been adjusted by the value returned by #getLeadingMargin(boolean). 
				 * @param c the canvas
				 * @param p the paint. The this should be left unchanged on exit.
				 * @param x the current position of the margin
				 * @param dir the base direction of the paragraph; if negative, the margin
				 * @param top the top of the line
				 * @param baseline the baseline of the line
				 * @param bottom the bottom of the line
				 * @param text the text
				 * @param start the start of the line
				 * @param end the end of the line
				 * @param first true if this is the first line of its paragraph
				 * @param layout the layout containing this line
				 */
				drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
			}
			export class QuoteSpan extends java.lang.Object implements android.text.style.ILeadingMarginSpan, android.text.IParcelableSpan {
				constructor();
				constructor(color: number);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.QuoteSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getColor(): number;
				public getLeadingMargin(first: boolean): number;
				public drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
			}
			export class RelativeSizeSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				constructor(proportion: number);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.RelativeSizeSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getSizeChange(): number;
				public updateDrawState(ds: android.text.TextPaint): void;
				public updateMeasureState(ds: android.text.TextPaint): void;
			}
			export class URLSpan extends android.text.style.ClickableSpan implements android.text.IParcelableSpan {
				constructor(url: string);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.URLSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getURL(): string;
				public onClick(widget: android.view.View): void;
			}
			export class ReplacementSpan extends android.text.style.MetricAffectingSpan {
				constructor();
				static class: java.lang.Class<android.text.style.ReplacementSpan>;
				public getSize(paint: android.graphics.Paint, text: string, start: number, end: number, fm: android.graphics.Paint.FontMetricsInt): number;
				public draw(canvas: android.graphics.Canvas, text: string, start: number, end: number, x: number, top: number, y: number, bottom: number, paint: android.graphics.Paint): void;
				/**
				 * This method does nothing, since ReplacementSpans are measured explicitly instead of affecting Paint properties.
				 */
				public updateMeasureState(p: android.text.TextPaint): void;
				/**
				 * This method does nothing, since ReplacementSpans are drawn explicitly instead of affecting Paint properties.
				 */
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			/**
			 * The classes that affect character-level text formatting extend this class. Most extend its subclass MetricAffectingSpan, but simple ones may just implement UpdateAppearance.
			 */
			export class CharacterStyle extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.text.style.CharacterStyle>;
				public updateDrawState(tp: android.text.TextPaint): void;
				/**
				 * A given CharacterStyle can only applied to a single region of a given Spanned. If you need to attach the same CharacterStyle to multiple regions, you can use this method to wrap it with a new object that will have the same effect but be a distinct object so that it can also be attached without conflict.
				 */
				public static wrap(cs: android.text.style.CharacterStyle): android.text.style.CharacterStyle;
				/**
				 * Returns "this" for most CharacterStyles, but for CharacterStyles that were generated by #wrap, returns the underlying CharacterStyle.
				 */
				public getUnderlying(): android.text.style.CharacterStyle;
			}
			export module CharacterStyle {
				/**
				 * A Passthrough CharacterStyle is one that passes #updateDrawState calls through to the specified CharacterStyle while still being a distinct object, and is therefore able to be attached to the same Spannable to which the specified CharacterStyle is already attached.
				 */
				export class Passthrough extends android.text.style.CharacterStyle {
					/**
					 * Creates a new Passthrough of the specfied CharacterStyle.
					 */
					constructor(cs: android.text.style.CharacterStyle);
					static class: java.lang.Class<android.text.style.CharacterStyle.Passthrough>;
					/**
					 * Passes updateDrawState through to the underlying CharacterStyle.
					 */
					public updateDrawState(tp: android.text.TextPaint): void;
					/**
					 * Returns the CharacterStyle underlying this one, or the one underlying it if it too is a Passthrough.
					 */
					public getUnderlying(): android.text.style.CharacterStyle;
				}
			}
			/**
			 * Represents a single tab stop on a line.
			 */
			interface ITabStopSpan extends android.text.style.IParagraphStyle {
				/**
				 * Returns the offset of the tab stop from the leading margin of the line.
				 */
				getTabStop(): number;
			}
			interface ILineHeightSpan extends android.text.style.IParagraphStyle, android.text.style.IWrapTogetherSpan {
				chooseHeight(text: string, start: number, end: number, spanstartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt): void;
			}
			export class WrapTogetherSpan implements android.text.style.IParagraphStyle, android.text.style.IWrapTogetherSpan {
				constructor(implementation: android.text.style.IWrapTogetherSpan);
			}
			export class IconMarginSpan extends java.lang.Object implements android.text.style.ILeadingMarginSpan, android.text.style.ILineHeightSpan {
				constructor(b: android.graphics.Bitmap);
				constructor(b: android.graphics.Bitmap, pad: number);
				static class: java.lang.Class<android.text.style.IconMarginSpan>;
				public getLeadingMargin(first: boolean): number;
				public drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
				public chooseHeight(text: string, start: number, end: number, istartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt): void;
			}
			/**
			 * The classes that affect paragraph-level text formatting implement this interface.
			 */
			interface IParagraphStyle {
			}
			export class LineBackgroundSpan implements android.text.style.IParagraphStyle, android.text.style.ILineBackgroundSpan {
				constructor(implementation: android.text.style.ILineBackgroundSpan);
				public drawBackground(c: android.graphics.Canvas, p: android.graphics.Paint, left: number, right: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, lnum: number): void;
			}
			interface IWrapTogetherSpan extends android.text.style.IParagraphStyle {
			}
			/**
			 * Holds suggestion candidates for the text enclosed in this span.
			 */
			export class SuggestionSpan extends android.text.style.CharacterStyle implements android.text.IParcelableSpan {
				/**
				 * @param context Context for the application
				 * @param suggestions Suggestions for the string under the span
				 * @param flags Additional flags indicating how this span is handled in TextView
				 */
				constructor(context: android.content.Context, suggestions: native.Array<string>, flags: number);
				/**
				 * @param locale Locale of the suggestions
				 * @param suggestions Suggestions for the string under the span
				 * @param flags Additional flags indicating how this span is handled in TextView
				 */
				constructor(locale: java.util.Locale, suggestions: native.Array<string>, flags: number);
				/**
				 * @param context Context for the application
				 * @param locale locale Locale of the suggestions
				 * @param suggestions Suggestions for the string under the span. Only the first up to
				 * @param flags Additional flags indicating how this span is handled in TextView
				 * @param notificationTargetClass if not null, this class will get notified when the user
				 */
				constructor(context: android.content.Context, locale: java.util.Locale, suggestions: native.Array<string>, flags: number, notificationTargetClass: java.lang.Class<any>);
				constructor(src: android.os.Parcel);
				/**
				 * Sets this flag if the suggestions should be easily accessible with few interactions. This flag should be set for every suggestions that the user is likely to use.
				 */
				static FLAG_EASY_CORRECT: number;
				/**
				 * Sets this flag if the suggestions apply to a misspelled word/text. This type of suggestion is rendered differently to highlight the error.
				 */
				static FLAG_MISSPELLED: number;
				/**
				 * Sets this flag if the auto correction is about to be applied to a word/text that the user is typing/composing. This type of suggestion is rendered differently to indicate the auto correction is happening.
				 */
				static FLAG_AUTO_CORRECTION: number;
				static ACTION_SUGGESTION_PICKED: string;
				static SUGGESTION_SPAN_PICKED_AFTER: string;
				static SUGGESTION_SPAN_PICKED_BEFORE: string;
				static SUGGESTION_SPAN_PICKED_HASHCODE: string;
				static SUGGESTIONS_MAX_SIZE: number;
				static CREATOR: android.os.Parcelable.ICreator<android.text.style.SuggestionSpan>;
				static class: java.lang.Class<android.text.style.SuggestionSpan>;
				public getSuggestions(): native.Array<string>;
				public getLocale(): string;
				public getFlags(): number;
				public setFlags(flags: number): void;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getSpanTypeId(): number;
				public equals(o: any): boolean;
				public hashCode(): number;
				public updateDrawState(tp: android.text.TextPaint): void;
			}
			export class SubscriptSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				constructor();
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.SubscriptSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public updateDrawState(tp: android.text.TextPaint): void;
				public updateMeasureState(tp: android.text.TextPaint): void;
			}
			/**
			 * The classes that affect character-level text formatting in a way that triggers a text layout update when one is added or removed must implement this interface. This interface also includes UpdateAppearance since such a change implicitly also impacts the appearance.
			 */
			interface IUpdateLayout extends android.text.style.IUpdateAppearance {
			}
			/**
			 * Represents a single tab stop on a line.
			 */
			export class TabStopSpan implements android.text.style.IParagraphStyle, android.text.style.ITabStopSpan {
				constructor(implementation: android.text.style.ITabStopSpan);
				/**
				 * Returns the offset of the tab stop from the leading margin of the line.
				 */
				public getTabStop(): number;
			}
			export module TabStopSpan {
				/**
				 * The default implementation of TabStopSpan.
				 */
				export class Standard extends java.lang.Object implements android.text.style.ITabStopSpan {
					/**
					 * Constructor.
					 * @param where the offset of the tab stop from the leading margin of
					 */
					constructor(where: number);
					static class: java.lang.Class<android.text.style.TabStopSpan.Standard>;
					public getTabStop(): number;
				}
			}
			export class DrawableMarginSpan extends java.lang.Object implements android.text.style.ILeadingMarginSpan, android.text.style.ILineHeightSpan {
				constructor(b: android.graphics.drawable.Drawable);
				constructor(b: android.graphics.drawable.Drawable, pad: number);
				static class: java.lang.Class<android.text.style.DrawableMarginSpan>;
				public getLeadingMargin(first: boolean): number;
				public drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
				public chooseHeight(text: string, start: number, end: number, istartv: number, v: number, fm: android.graphics.Paint.FontMetricsInt): void;
			}
			export class ForegroundColorSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateAppearance, android.text.IParcelableSpan {
				constructor(color: number);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.ForegroundColorSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getForegroundColor(): number;
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			/**
			 * Changes the Locale of the text to which the span is attached.
			 */
			export class LocaleSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				/**
				 * Creates a LocaleSpan.
				 * @param locale The {@link Locale} of the text to which the span is
				 */
				constructor(locale: java.util.Locale);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.LocaleSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Returns the Locale.
				 */
				public getLocale(): java.util.Locale;
				public updateDrawState(ds: android.text.TextPaint): void;
				public updateMeasureState(paint: android.text.TextPaint): void;
			}
			/**
			 * If an object of this type is attached to the text of a TextView with a movement method of LinkMovementMethod, the affected spans of text can be selected. If clicked, the #onClick method will be called.
			 */
			export class ClickableSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateAppearance {
				constructor();
				static class: java.lang.Class<android.text.style.ClickableSpan>;
				/**
				 * Performs the click action associated with this span.
				 */
				public onClick(widget: android.view.View): void;
				/**
				 * Makes the text underlined and in the link color.
				 */
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			export class UnderlineSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateAppearance, android.text.IParcelableSpan {
				constructor();
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.UnderlineSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			export class DynamicDrawableSpan extends android.text.style.ReplacementSpan {
				constructor();
				/**
				 * A constant indicating that the bottom of this span should be aligned with the bottom of the surrounding text, i.e., at the same level as the lowest descender in the text.
				 */
				static ALIGN_BOTTOM: number;
				/**
				 * A constant indicating that the bottom of this span should be aligned with the baseline of the surrounding text.
				 */
				static ALIGN_BASELINE: number;
				static class: java.lang.Class<android.text.style.DynamicDrawableSpan>;
				/**
				 * Returns the vertical alignment of this span, one of #ALIGN_BOTTOM or #ALIGN_BASELINE.
				 */
				public getVerticalAlignment(): number;
				/**
				 * Your subclass must implement this method to provide the bitmap to be drawn. The dimensions of the bitmap must be the same from each call to the next.
				 */
				public getDrawable(): android.graphics.drawable.Drawable;
				public getSize(paint: android.graphics.Paint, text: string, start: number, end: number, fm: android.graphics.Paint.FontMetricsInt): number;
				public draw(canvas: android.graphics.Canvas, text: string, start: number, end: number, x: number, top: number, y: number, bottom: number, paint: android.graphics.Paint): void;
			}
			interface IAlignmentSpan extends android.text.style.IParagraphStyle {
				getAlignment(): android.text.Layout.Alignment;
			}
			export class AbsoluteSizeSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				/**
				 * Set the text size to <code>size</code> physical pixels.
				 */
				constructor(size: number);
				/**
				 * Set the text size to <code>size</code> physical pixels, or to <code>size</code> device-independent pixels if <code>dip</code> is true.
				 */
				constructor(size: number, dip: boolean);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.AbsoluteSizeSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getSize(): number;
				public getDip(): boolean;
				public updateDrawState(ds: android.text.TextPaint): void;
				public updateMeasureState(ds: android.text.TextPaint): void;
			}
			export class MaskFilterSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateAppearance {
				constructor(filter: android.graphics.MaskFilter);
				static class: java.lang.Class<android.text.style.MaskFilterSpan>;
				public getMaskFilter(): android.graphics.MaskFilter;
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			export class BulletSpan extends java.lang.Object implements android.text.style.ILeadingMarginSpan, android.text.IParcelableSpan {
				constructor();
				constructor(gapWidth: number);
				constructor(gapWidth: number, color: number);
				constructor(src: android.os.Parcel);
				static STANDARD_GAP_WIDTH: number;
				static class: java.lang.Class<android.text.style.BulletSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getLeadingMargin(first: boolean): number;
				public drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, l: android.text.Layout): void;
			}
			/**
			 * The classes that affect character-level text in a way that modifies their appearance when one is added or removed must implement this interface. Note that if the class also impacts size or other metrics, it should instead implement UpdateLayout.
			 */
			export class UpdateAppearance implements android.text.style.IUpdateAppearance {
				constructor(implementation: android.text.style.IUpdateAppearance);
			}
			/**
			 * The classes that affect character-level text formatting in a way that triggers a text layout update when one is added or removed must implement this interface. This interface also includes UpdateAppearance since such a change implicitly also impacts the appearance.
			 */
			export class UpdateLayout implements android.text.style.IUpdateAppearance, android.text.style.IUpdateLayout {
				constructor(implementation: android.text.style.IUpdateLayout);
			}
			/**
			 *  Describes a style in a span. Note that styles are cumulative -- if both bold and italic are set in separate spans, or if the base style is bold and a span calls for italic, you get bold italic. You can't turn off a style from the base style.
			 */
			export class StyleSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				/**
				 * @param style An integer constant describing the style for this span. Examples
				 */
				constructor(style: number);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.StyleSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Returns the style constant defined in android.graphics.Typeface.
				 */
				public getStyle(): number;
				public updateDrawState(ds: android.text.TextPaint): void;
				public updateMeasureState(paint: android.text.TextPaint): void;
			}
			/**
			 * A paragraph style affecting the leading margin. There can be multiple leading margin spans on a single paragraph; they will be rendered in order, each adding its margin to the ones before it. The leading margin is on the right for lines in a right-to-left paragraph.
			 */
			export class LeadingMarginSpan implements android.text.style.IParagraphStyle, android.text.style.ILeadingMarginSpan {
				constructor(implementation: android.text.style.ILeadingMarginSpan);
				/**
				 * Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it. 
				 * @param first true if the request is for the first line of a paragraph,
				 */
				public getLeadingMargin(first: boolean): number;
				/**
				 * Renders the leading margin. This is called before the margin has been adjusted by the value returned by #getLeadingMargin(boolean). 
				 * @param c the canvas
				 * @param p the paint. The this should be left unchanged on exit.
				 * @param x the current position of the margin
				 * @param dir the base direction of the paragraph; if negative, the margin
				 * @param top the top of the line
				 * @param baseline the baseline of the line
				 * @param bottom the bottom of the line
				 * @param text the text
				 * @param start the start of the line
				 * @param end the end of the line
				 * @param first true if this is the first line of its paragraph
				 * @param layout the layout containing this line
				 */
				public drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
			}
			export module LeadingMarginSpan {
				/**
				 * An extended version of LeadingMarginSpan, which allows the implementor to specify the number of lines of text to which this object is attached that the "first line of paragraph" margin width will be applied to.
				 */
				export class LeadingMarginSpan2 implements android.text.style.ILeadingMarginSpan, android.text.style.IWrapTogetherSpan, android.text.style.LeadingMarginSpan.ILeadingMarginSpan2 {
					constructor(implementation: android.text.style.LeadingMarginSpan.ILeadingMarginSpan2);
					/**
					 * Returns the number of lines of text to which this object is attached that the "first line" margin will apply to. Note that if this returns N, the first N lines of the region, not the first N lines of each paragraph, will be given the special margin width.
					 */
					public getLeadingMarginLineCount(): number;
					/**
					 * Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it. 
					 * @param first true if the request is for the first line of a paragraph,
					 */
					getLeadingMargin(first: boolean): number;
					/**
					 * Renders the leading margin. This is called before the margin has been adjusted by the value returned by #getLeadingMargin(boolean). 
					 * @param c the canvas
					 * @param p the paint. The this should be left unchanged on exit.
					 * @param x the current position of the margin
					 * @param dir the base direction of the paragraph; if negative, the margin
					 * @param top the top of the line
					 * @param baseline the baseline of the line
					 * @param bottom the bottom of the line
					 * @param text the text
					 * @param start the start of the line
					 * @param end the end of the line
					 * @param first true if this is the first line of its paragraph
					 * @param layout the layout containing this line
					 */
					drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
				}
				/**
				 * An extended version of LeadingMarginSpan, which allows the implementor to specify the number of lines of text to which this object is attached that the "first line of paragraph" margin width will be applied to.
				 */
				interface ILeadingMarginSpan2 extends android.text.style.ILeadingMarginSpan, android.text.style.IWrapTogetherSpan {
					/**
					 * Returns the number of lines of text to which this object is attached that the "first line" margin will apply to. Note that if this returns N, the first N lines of the region, not the first N lines of each paragraph, will be given the special margin width.
					 */
					getLeadingMarginLineCount(): number;
					/**
					 * Returns the amount by which to adjust the leading margin. Positive values move away from the leading edge of the paragraph, negative values move towards it. 
					 * @param first true if the request is for the first line of a paragraph,
					 */
					getLeadingMargin(first: boolean): number;
					/**
					 * Renders the leading margin. This is called before the margin has been adjusted by the value returned by #getLeadingMargin(boolean). 
					 * @param c the canvas
					 * @param p the paint. The this should be left unchanged on exit.
					 * @param x the current position of the margin
					 * @param dir the base direction of the paragraph; if negative, the margin
					 * @param top the top of the line
					 * @param baseline the baseline of the line
					 * @param bottom the bottom of the line
					 * @param text the text
					 * @param start the start of the line
					 * @param end the end of the line
					 * @param first true if this is the first line of its paragraph
					 * @param layout the layout containing this line
					 */
					drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
				}
				/**
				 * The standard implementation of LeadingMarginSpan, which adjusts the margin but does not do any rendering.
				 */
				export class Standard extends java.lang.Object implements android.text.style.ILeadingMarginSpan, android.text.IParcelableSpan {
					/**
					 * Constructor taking separate indents for the first and subsequent lines. 
					 * @param first the indent for the first line of the paragraph
					 * @param rest the indent for the remaining lines of the paragraph
					 */
					constructor(first: number, rest: number);
					/**
					 * Constructor taking an indent for all lines.
					 * @param every the indent of each line
					 */
					constructor(every: number);
					constructor(src: android.os.Parcel);
					static class: java.lang.Class<android.text.style.LeadingMarginSpan.Standard>;
					public getSpanTypeId(): number;
					public describeContents(): number;
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
					public getLeadingMargin(first: boolean): number;
					public drawLeadingMargin(c: android.graphics.Canvas, p: android.graphics.Paint, x: number, dir: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, first: boolean, layout: android.text.Layout): void;
				}
			}
			interface ILineBackgroundSpan extends android.text.style.IParagraphStyle {
				drawBackground(c: android.graphics.Canvas, p: android.graphics.Paint, left: number, right: number, top: number, baseline: number, bottom: number, text: string, start: number, end: number, lnum: number): void;
			}
			/**
			 * The classes that affect character-level text in a way that modifies their appearance when one is added or removed must implement this interface. Note that if the class also impacts size or other metrics, it should instead implement UpdateLayout.
			 */
			interface IUpdateAppearance {
			}
			export class BackgroundColorSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateAppearance, android.text.IParcelableSpan {
				constructor(color: number);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.BackgroundColorSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public getBackgroundColor(): number;
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			/**
			 * The classes that affect character-level text formatting in a way that changes the width or height of characters extend this class.
			 */
			export class MetricAffectingSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateLayout {
				constructor();
				static class: java.lang.Class<android.text.style.MetricAffectingSpan>;
				public updateMeasureState(p: android.text.TextPaint): void;
				/**
				 * Returns "this" for most MetricAffectingSpans, but for MetricAffectingSpans that were generated by #wrap, returns the underlying MetricAffectingSpan.
				 */
				public getUnderlying(): android.text.style.MetricAffectingSpan;
			}
			export module MetricAffectingSpan {
				/**
				 * A Passthrough MetricAffectingSpan is one that passes #updateDrawState and #updateMeasureState calls through to the specified MetricAffectingSpan while still being a distinct object, and is therefore able to be attached to the same Spannable to which the specified MetricAffectingSpan is already attached.
				 */
				export class Passthrough extends android.text.style.MetricAffectingSpan {
					/**
					 * Creates a new Passthrough of the specfied MetricAffectingSpan.
					 */
					constructor(cs: android.text.style.MetricAffectingSpan);
					static class: java.lang.Class<android.text.style.MetricAffectingSpan.Passthrough>;
					/**
					 * Passes updateDrawState through to the underlying MetricAffectingSpan.
					 */
					public updateDrawState(tp: android.text.TextPaint): void;
					/**
					 * Passes updateMeasureState through to the underlying MetricAffectingSpan.
					 */
					public updateMeasureState(tp: android.text.TextPaint): void;
					/**
					 * Returns the MetricAffectingSpan underlying this one, or the one underlying it if it too is a Passthrough.
					 */
					public getUnderlying(): android.text.style.MetricAffectingSpan;
				}
			}
			export class StrikethroughSpan extends android.text.style.CharacterStyle implements android.text.style.IUpdateAppearance, android.text.IParcelableSpan {
				constructor();
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.StrikethroughSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public updateDrawState(ds: android.text.TextPaint): void;
			}
			export class ImageSpan extends android.text.style.DynamicDrawableSpan {
				/**
				 *  Use #ImageSpan(Context, Bitmap) instead.
				 */
				constructor(b: android.graphics.Bitmap);
				/**
				 *  Use { #ImageSpan(Context, Bitmap, int) instead.
				 */
				constructor(b: android.graphics.Bitmap, verticalAlignment: number);
				constructor(context: android.content.Context, b: android.graphics.Bitmap);
				/**
				 * @param context verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or
				 * @param b 
				 * @param verticalAlignment 
				 */
				constructor(context: android.content.Context, b: android.graphics.Bitmap, verticalAlignment: number);
				constructor(d: android.graphics.drawable.Drawable);
				/**
				 * @param d verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or
				 * @param verticalAlignment 
				 */
				constructor(d: android.graphics.drawable.Drawable, verticalAlignment: number);
				constructor(d: android.graphics.drawable.Drawable, source: string);
				/**
				 * @param d verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or
				 * @param source 
				 * @param verticalAlignment 
				 */
				constructor(d: android.graphics.drawable.Drawable, source: string, verticalAlignment: number);
				constructor(context: android.content.Context, uri: android.net.Uri);
				/**
				 * @param context verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or
				 * @param uri 
				 * @param verticalAlignment 
				 */
				constructor(context: android.content.Context, uri: android.net.Uri, verticalAlignment: number);
				constructor(context: android.content.Context, resourceId: number);
				/**
				 * @param context verticalAlignment one of {@link DynamicDrawableSpan#ALIGN_BOTTOM} or
				 * @param resourceId 
				 * @param verticalAlignment 
				 */
				constructor(context: android.content.Context, resourceId: number, verticalAlignment: number);
				static class: java.lang.Class<android.text.style.ImageSpan>;
				public getDrawable(): android.graphics.drawable.Drawable;
				/**
				 * Returns the source string that was saved during construction.
				 */
				public getSource(): string;
			}
			/**
			 * Changes the typeface family of the text to which the span is attached.
			 */
			export class TypefaceSpan extends android.text.style.MetricAffectingSpan implements android.text.IParcelableSpan {
				/**
				 * @param family The font family for this typeface. Examples include
				 */
				constructor(family: string);
				constructor(src: android.os.Parcel);
				static class: java.lang.Class<android.text.style.TypefaceSpan>;
				public getSpanTypeId(): number;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Returns the font family name.
				 */
				public getFamily(): string;
				public updateDrawState(ds: android.text.TextPaint): void;
				public updateMeasureState(paint: android.text.TextPaint): void;
			}
		}
		export class HtmlTest {
			constructor();
			static class: java.lang.Class<android.text.HtmlTest>;
			public testSingleTagOnWhileString(): void;
			public testEmptyFontTag(): void;
			/**
			 * Tests that the parser can handle mal-formed HTML.
			 */
			public testBadHtml(): void;
			public testSymbols(): void;
			public testColor(): void;
			public testResourceColor(): void;
			public testParagraphs(): void;
			public testBlockquote(): void;
			public testEntities(): void;
			public testMarkup(): void;
			public testImg(): void;
			public testUtf8(): void;
		}
		/**
		 * A special kind of Parcelable for objects that will serve as text spans. This can only be used by code in the framework; it is not intended for applications to implement their own Parcelable spans.
		 */
		export class ParcelableSpan implements android.os.IParcelable, android.text.IParcelableSpan {
			constructor(implementation: android.text.IParcelableSpan);
			/**
			 * Return a special type identifier for this span class.
			 */
			public getSpanTypeId(): number;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * When an object of this type is attached to a Spannable, its methods will be called to notify it that other markup objects have been added, changed, or removed.
		 */
		export class SpanWatcher implements android.text.INoCopySpan, android.text.ISpanWatcher {
			constructor(implementation: android.text.ISpanWatcher);
			/**
			 * This method is called to notify you that the specified object has been attached to the specified range of the text.
			 */
			public onSpanAdded(text: android.text.ISpannable, what: any, start: number, end: number): void;
			/**
			 * This method is called to notify you that the specified object has been detached from the specified range of the text.
			 */
			public onSpanRemoved(text: android.text.ISpannable, what: any, start: number, end: number): void;
			/**
			 * This method is called to notify you that the specified object has been relocated from the range <code>ostart&hellip;oend</code> to the new range <code>nstart&hellip;nend</code> of the text.
			 */
			public onSpanChanged(text: android.text.ISpannable, what: any, ostart: number, oend: number, nstart: number, nend: number): void;
		}
		export class SpannableStringBuilderTest extends android.text.SpannableTest {
			constructor();
			static class: java.lang.Class<android.text.SpannableStringBuilderTest>;
			protected newSpannableWithText(text: string): android.text.ISpannable;
		}
		/**
		 * Utility class for manipulating cursors and selections in CharSequences. A cursor is a selection where the start and end are at the same offset.
		 */
		export class Selection extends java.lang.Object {
			static SELECTION_START: any;
			static SELECTION_END: any;
			static class: java.lang.Class<android.text.Selection>;
			/**
			 * Return the offset of the selection anchor or cursor, or -1 if there is no selection or cursor.
			 */
			public static getSelectionStart(text: string): number;
			/**
			 * Return the offset of the selection edge or cursor, or -1 if there is no selection or cursor.
			 */
			public static getSelectionEnd(text: string): number;
			/**
			 * Set the selection anchor to <code>start</code> and the selection edge to <code>stop</code>.
			 */
			public static setSelection(text: android.text.ISpannable, start: number, stop: number): void;
			/**
			 * Move the cursor to offset <code>index</code>.
			 */
			public static setSelection(text: android.text.ISpannable, index: number): void;
			/**
			 * Select the entire text.
			 */
			public static selectAll(text: android.text.ISpannable): void;
			/**
			 * Move the selection edge to offset <code>index</code>.
			 */
			public static extendSelection(text: android.text.ISpannable, index: number): void;
			/**
			 * Remove the selection or cursor, if any, from the text.
			 */
			public static removeSelection(text: android.text.ISpannable): void;
			/**
			 * Move the cursor to the buffer offset physically above the current offset, or return false if the cursor is already on the top line.
			 */
			public static moveUp(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			/**
			 * Move the cursor to the buffer offset physically below the current offset, or return false if the cursor is already on the bottom line.
			 */
			public static moveDown(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			/**
			 * Move the cursor to the buffer offset physically to the left of the current offset, or return false if the cursor is already at the left edge of the line and there is not another line to move it to.
			 */
			public static moveLeft(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			/**
			 * Move the cursor to the buffer offset physically to the right of the current offset, or return false if the cursor is already at at the right edge of the line and there is not another line to move it to.
			 */
			public static moveRight(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			/**
			 * Move the selection end to the buffer offset physically above the current selection end.
			 */
			public static extendUp(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			/**
			 * Move the selection end to the buffer offset physically below the current selection end.
			 */
			public static extendDown(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			/**
			 * Move the selection end to the buffer offset physically to the left of the current selection end.
			 */
			public static extendLeft(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			/**
			 * Move the selection end to the buffer offset physically to the right of the current selection end.
			 */
			public static extendRight(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			public static extendToLeftEdge(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			public static extendToRightEdge(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			public static moveToLeftEdge(text: android.text.ISpannable, layout: android.text.Layout): boolean;
			public static moveToRightEdge(text: android.text.ISpannable, layout: android.text.Layout): boolean;
		}
		export module Selection {
			export class START extends java.lang.Object implements android.text.INoCopySpan {
				static class: java.lang.Class<android.text.Selection.START>;
			}
			export class END extends java.lang.Object implements android.text.INoCopySpan {
				static class: java.lang.Class<android.text.Selection.END>;
			}
		}
		export class SpannableStringTest extends android.text.SpannableTest {
			constructor();
			static class: java.lang.Class<android.text.SpannableStringTest>;
			protected newSpannableWithText(text: string): android.text.ISpannable;
		}
		/**
		 * InputFilters can be attached to Editables to constrain the changes that can be made to them.
		 */
		interface IInputFilter {
			/**
			 * This method is called when the buffer is going to replace the range <code>dstart &hellip; dend</code> of <code>dest</code> with the new text from the range <code>start &hellip; end</code> of <code>source</code>. Return the CharSequence that you would like to have placed there instead, including an empty string if appropriate, or <code>null</code> to accept the original replacement. Be careful to not to reject 0-length replacements, as this is what happens when you delete text. Also beware that you should not attempt to make any changes to <code>dest</code> from this method; you may only examine it for context. Note: If <var>source</var> is an instance of Spanned or Spannable, the span objects in the <var>source</var> should be copied into the filtered result (i.e. the non-null return value). TextUtils#copySpansFrom can be used for convenience.
			 */
			filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
		}
		/**
		 * When an object of a type is attached to an Editable, its methods will be called when the text is changed.
		 */
		interface ITextWatcher extends android.text.INoCopySpan {
			/**
			 * This method is called to notify you that, within <code>s</code>, the <code>count</code> characters beginning at <code>start</code> are about to be replaced by new text with length <code>after</code>. It is an error to attempt to make changes to <code>s</code> from this callback.
			 */
			beforeTextChanged(s: string, start: number, count: number, after: number): void;
			/**
			 * This method is called to notify you that, within <code>s</code>, the <code>count</code> characters beginning at <code>start</code> have just replaced old text that had length <code>before</code>. It is an error to attempt to make changes to <code>s</code> from this callback.
			 */
			onTextChanged(s: string, start: number, before: number, count: number): void;
			/**
			 * This method is called to notify you that, somewhere within <code>s</code>, the text has been changed. It is legitimate to make further changes to <code>s</code> from this callback, but be careful not to get yourself into an infinite loop, because any changes you make will cause this method to be called again recursively. (You are not told where the change took place because other afterTextChanged() methods may already have made other changes and invalidated the offsets. But if you need to know here, you can use Spannable#setSpan in #onTextChanged to mark your place and then look up from here where the span ended up.
			 */
			afterTextChanged(s: any): void;
		}
		/**
		 * When an object of a type is attached to an Editable, its methods will be called when the text is changed.
		 */
		export class TextWatcher implements android.text.INoCopySpan, android.text.ITextWatcher {
			constructor(implementation: android.text.ITextWatcher);
			/**
			 * This method is called to notify you that, within <code>s</code>, the <code>count</code> characters beginning at <code>start</code> are about to be replaced by new text with length <code>after</code>. It is an error to attempt to make changes to <code>s</code> from this callback.
			 */
			public beforeTextChanged(s: string, start: number, count: number, after: number): void;
			/**
			 * This method is called to notify you that, within <code>s</code>, the <code>count</code> characters beginning at <code>start</code> have just replaced old text that had length <code>before</code>. It is an error to attempt to make changes to <code>s</code> from this callback.
			 */
			public onTextChanged(s: string, start: number, before: number, count: number): void;
			/**
			 * This method is called to notify you that, somewhere within <code>s</code>, the text has been changed. It is legitimate to make further changes to <code>s</code> from this callback, but be careful not to get yourself into an infinite loop, because any changes you make will cause this method to be called again recursively. (You are not told where the change took place because other afterTextChanged() methods may already have made other changes and invalidated the offsets. But if you need to know here, you can use Spannable#setSpan in #onTextChanged to mark your place and then look up from here where the span ended up.
			 */
			public afterTextChanged(s: any): void;
		}
		/**
		 * This is the interface for text whose content and markup can be changed (as opposed to immutable text like Strings). If you make a DynamicLayout of an Editable, the layout will be reflowed as the text is changed.
		 */
		export class Editable implements java.lang.ICharSequence, android.text.IGetChars, android.text.ISpannable, java.lang.IAppendable, android.text.IEditable {
			constructor(implementation: android.text.IEditable);
			/**
			 * Replaces the specified range (<code>st&hellip;en</code>) of text in this Editable with a copy of the slice <code>start&hellip;end</code> from <code>source</code>. The destination slice may be empty, in which case the operation is an insertion, or the source slice may be empty, in which case the operation is a deletion.
			 */
			public replace(st: number, en: number, source: string, start: number, end: number): any;
			/**
			 * Convenience for replace(st, en, text, 0, text.length()) #replace(int, int, CharSequence, int, int)
			 */
			public replace(st: number, en: number, text: string): any;
			/**
			 * Convenience for replace(where, where, text, start, end) #replace(int, int, CharSequence, int, int)
			 */
			public insert(where: number, text: string, start: number, end: number): any;
			/**
			 * Convenience for replace(where, where, text, 0, text.length()); #replace(int, int, CharSequence, int, int)
			 */
			public insert(where: number, text: string): any;
			/**
			 * Convenience for replace(st, en, "", 0, 0) #replace(int, int, CharSequence, int, int)
			 */
			public delete(st: number, en: number): any;
			/**
			 * Convenience for replace(length(), length(), text, 0, text.length()) #replace(int, int, CharSequence, int, int)
			 */
			public append(text: string): any;
			/**
			 * Convenience for replace(length(), length(), text, start, end) #replace(int, int, CharSequence, int, int)
			 */
			public append(text: string, start: number, end: number): any;
			/**
			 * Convenience for replace(0, length(), "", 0, 0) #replace(int, int, CharSequence, int, int) Note that this clears the text, not the spans; use #clearSpans if you need that.
			 */
			public clear(): void;
			/**
			 * Removes all spans from the Editable, as if by calling #removeSpan on each of them.
			 */
			public clearSpans(): void;
			/**
			 * Sets the series of filters that will be called in succession whenever the text of this Editable is changed, each of which has the opportunity to limit or transform the text that is being inserted.
			 */
			public setFilters(filters: native.Array<android.text.IInputFilter>): void;
			/**
			 * Returns the array of input filters that are currently applied to changes to this Editable.
			 */
			public getFilters(): native.Array<android.text.IInputFilter>;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
			/**
			 * Exactly like String.getChars(): copy chars <code>start</code> through <code>end - 1</code> from this CharSequence into <code>dest</code> beginning at offset <code>destoff</code>.
			 */
			getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			/**
			 * Attach the specified markup object to the range <code>start&hellip;end</code> of the text, or move the object to that range if it was already attached elsewhere. See Spanned for an explanation of what the flags mean. The object can be one that has meaning only within your application, or it can be one that the text system will use to affect text display or behavior. Some noteworthy ones are the subclasses of android.text.style.CharacterStyle and android.text.style.ParagraphStyle, and android.text.TextWatcher and android.text.SpanWatcher.
			 */
			setSpan(what: any, start: number, end: number, flags: number): void;
			/**
			 * Remove the specified object from the range of text to which it was attached, if any. It is OK to remove an object that was never attached in the first place.
			 */
			removeSpan(what: any): void;
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
		}
		export module Editable {
			/**
			 * Factory used by TextView to create new Editables. You can subclass it to provide something other than SpannableStringBuilder.
			 */
			export class Factory extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.text.Editable.Factory>;
				/**
				 * Returns the standard Editable Factory.
				 */
				public static getInstance(): android.text.Editable.Factory;
				/**
				 * Returns a new SpannedStringBuilder from the specified CharSequence. You can override this to provide a different kind of Spanned.
				 */
				public newEditable(source: string): any;
			}
		}
		/**
		 * An AlteredCharSequence is a CharSequence that is largely mirrored from another CharSequence, except that a specified range of characters are mirrored from a different char array instead.
		 */
		export class AlteredCharSequence extends java.lang.Object implements java.lang.ICharSequence, android.text.IGetChars {
			static class: java.lang.Class<android.text.AlteredCharSequence>;
			/**
			 * Create an AlteredCharSequence whose text (and possibly spans) are mirrored from <code>source</code>, except that the range of offsets <code>substart</code> inclusive to <code>subend</code> exclusive are mirrored instead from <code>sub</code>, beginning at offset 0.
			 */
			public static make(source: string, sub: native.Array<string>, substart: number, subend: number): android.text.AlteredCharSequence;
			update(sub: native.Array<string>, substart: number, subend: number): void;
			public charAt(off: number): string;
			public length(): number;
			public subSequence(start: number, end: number): string;
			public getChars(start: number, end: number, dest: native.Array<string>, off: number): void;
			public toString(): string;
		}
		export module AlteredCharSequence {
			export class AlteredSpanned extends android.text.AlteredCharSequence implements android.text.ISpanned {
				static class: java.lang.Class<android.text.AlteredCharSequence.AlteredSpanned>;
				public getSpans<T>(start: number, end: number, kind: java.lang.Class<T>): native.Array<T>;
				public getSpanStart(span: any): number;
				public getSpanEnd(span: any): number;
				public getSpanFlags(span: any): number;
				public nextSpanTransition(start: number, end: number, kind: java.lang.Class<any>): number;
				/**
				 * Returns the number of characters in this sequence.
				 */
				length(): number;
				/**
				 * Returns the character at the specified index, with the first character having index zero.
				 * @param index 
				 */
				charAt(index: number): string;
				/**
				 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
				 * @param start 
				 * @param end 
				 */
				subSequence(start: number, end: number): string;
				/**
				 * Returns a string with the same characters in the same order as in this sequence.
				 */
				toString(): string;
			}
		}
		/**
		 * Please implement this interface if your CharSequence has a getChars() method like the one in String that is faster than calling charAt() multiple times.
		 */
		export class GetChars implements java.lang.ICharSequence, android.text.IGetChars {
			constructor(implementation: android.text.IGetChars);
			/**
			 * Exactly like String.getChars(): copy chars <code>start</code> through <code>end - 1</code> from this CharSequence into <code>dest</code> beginning at offset <code>destoff</code>.
			 */
			public getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
		}
		/**
		 * Abstract class for filtering login-related text (user names and passwords) 
		 */
		export class LoginFilter extends java.lang.Object implements android.text.IInputFilter {
			static class: java.lang.Class<android.text.LoginFilter>;
			/**
			 * This method is called when the buffer is going to replace the range <code>dstart &hellip; dend</code> of <code>dest</code> with the new text from the range <code>start &hellip; end</code> of <code>source</code>. Returns the CharSequence that we want placed there instead, including an empty string if appropriate, or <code>null</code> to accept the original replacement. Be careful to not to reject 0-length replacements, as this is what happens when you delete text.
			 */
			public filter(source: string, start: number, end: number, dest: android.text.ISpanned, dstart: number, dend: number): string;
			/**
			 * Called when we start processing filter.
			 */
			public onStart(): void;
			/**
			 * Called whenever we encounter an invalid character.
			 * @param c the invalid character
			 */
			public onInvalidCharacter(c: string): void;
			/**
			 * Called when we're done processing filter
			 */
			public onStop(): void;
			/**
			 * Returns whether or not we allow character c. Subclasses must override this method.
			 */
			public isAllowed(c: string): boolean;
		}
		export module LoginFilter {
			/**
			 * This filter is compatible with GMail passwords which restricts characters to the Latin-1 (ISO8859-1) char set. 
			 */
			export class PasswordFilterGMail extends android.text.LoginFilter {
				constructor();
				constructor(appendInvalid: boolean);
				static class: java.lang.Class<android.text.LoginFilter.PasswordFilterGMail>;
				public isAllowed(c: string): boolean;
			}
			/**
			 * This filter rejects characters in the user name that are not compatible with GMail account creation. It prevents the user from entering user names with characters other than [a-zA-Z0-9.]. 
			 */
			export class UsernameFilterGMail extends android.text.LoginFilter {
				constructor();
				constructor(appendInvalid: boolean);
				static class: java.lang.Class<android.text.LoginFilter.UsernameFilterGMail>;
				public isAllowed(c: string): boolean;
			}
			/**
			 * This filter rejects characters in the user name that are not compatible with Google login. It is slightly less restrictive than the above filter in that it allows [a-zA-Z0-9._-+]. 
			 */
			export class UsernameFilterGeneric extends android.text.LoginFilter {
				constructor();
				constructor(appendInvalid: boolean);
				static class: java.lang.Class<android.text.LoginFilter.UsernameFilterGeneric>;
				public isAllowed(c: string): boolean;
			}
		}
		/**
		 * PackedIntVector stores a two-dimensional array of integers, optimized for inserting and deleting rows and for offsetting the values in segments of a given column.
		 */
		export class PackedIntVector extends java.lang.Object {
			/**
			 * Creates a new PackedIntVector with the specified width and a height of 0.
			 * @param columns the width of the PackedIntVector.
			 */
			constructor(columns: number);
			static class: java.lang.Class<android.text.PackedIntVector>;
			/**
			 * Returns the value at the specified row and column.
			 * @param row the index of the row to return.
			 * @param column the index of the column to return.
			 */
			public getValue(row: number, column: number): number;
			/**
			 * Sets the value at the specified row and column.
			 * @param row the index of the row to set.
			 * @param column the index of the column to set.
			 * @param value 
			 */
			public setValue(row: number, column: number, value: number): void;
			/**
			 * Increments all values in the specified column whose row >= the specified row by the specified delta.
			 * @param startRow the row at which to begin incrementing.
			 * @param column the index of the column to set.
			 * @param delta 
			 */
			public adjustValuesBelow(startRow: number, column: number, delta: number): void;
			/**
			 * Inserts a new row of values at the specified row offset.
			 * @param row the row above which to insert the new row.
			 * @param values the new values to be added. If this is null,
			 */
			public insertAt(row: number, values: native.Array<number>): void;
			/**
			 * Deletes the specified number of rows starting with the specified row.
			 * @param row the index of the first row to be deleted.
			 * @param count the number of rows to delete.
			 */
			public deleteAt(row: number, count: number): void;
			/**
			 * Returns the number of rows in the PackedIntVector. This number will change as rows are inserted and deleted.
			 */
			public size(): number;
			/**
			 * Returns the width of the PackedIntVector. This number is set at construction and will not change.
			 */
			public width(): number;
		}
		/**
		 * This interface should be added to a span object that should not be copied into a new Spenned when performing a slice or copy operation on the original Spanned it was placed in.
		 */
		export class NoCopySpan implements android.text.INoCopySpan {
			constructor(implementation: android.text.INoCopySpan);
		}
		export module NoCopySpan {
			/**
			 * Convenience equivalent for when you would just want a new Object() for a span but want it to be no-copy. Use this instead.
			 */
			export class Concrete extends java.lang.Object implements android.text.INoCopySpan {
				constructor();
				static class: java.lang.Class<android.text.NoCopySpan.Concrete>;
			}
		}
		/**
		 * AndroidCharacter exposes some character properties that are not easily accessed from java.lang.Character.
		 */
		export class AndroidCharacter extends java.lang.Object {
			constructor();
			static EAST_ASIAN_WIDTH_NEUTRAL: number;
			static EAST_ASIAN_WIDTH_AMBIGUOUS: number;
			static EAST_ASIAN_WIDTH_HALF_WIDTH: number;
			static EAST_ASIAN_WIDTH_FULL_WIDTH: number;
			static EAST_ASIAN_WIDTH_NARROW: number;
			static EAST_ASIAN_WIDTH_WIDE: number;
			static class: java.lang.Class<android.text.AndroidCharacter>;
			/**
			 * Fill in the first <code>count</code> bytes of <code>dest</code> with the directionalities from the first <code>count</code> chars of <code>src</code>. This is just like Character.getDirectionality() except it is a batch operation.
			 */
			public static getDirectionalities(src: native.Array<string>, dest: native.Array<number>, count: number): void;
			/**
			 * Calculate the East Asian Width of a character according to <a href="http://unicode.org/reports/tr11/">Unicode TR#11</a>. The return will be one of #EAST_ASIAN_WIDTH_NEUTRAL, #EAST_ASIAN_WIDTH_AMBIGUOUS, #EAST_ASIAN_WIDTH_HALF_WIDTH, #EAST_ASIAN_WIDTH_FULL_WIDTH, #EAST_ASIAN_WIDTH_NARROW, or #EAST_ASIAN_WIDTH_WIDE. 
			 * @param input the character to measure
			 */
			public static getEastAsianWidth(input: string): number;
			/**
			 * Fill the first <code>count</code> bytes of <code>dest</code> with the East Asian Width from <code>count</code> chars of <code>src</code> starting at <code>start</code>. East Asian Width is calculated based on <a href="http://unicode.org/reports/tr11/">Unicode TR#11</a>. Each entry in <code>dest</code> will be one of #EAST_ASIAN_WIDTH_NEUTRAL, #EAST_ASIAN_WIDTH_AMBIGUOUS, #EAST_ASIAN_WIDTH_HALF_WIDTH, #EAST_ASIAN_WIDTH_FULL_WIDTH, #EAST_ASIAN_WIDTH_NARROW, or #EAST_ASIAN_WIDTH_WIDE. 
			 * @param src character array of input to measure
			 * @param start first character in array to measure
			 * @param count maximum number of characters to measure
			 * @param dest byte array of results for each character in src
			 */
			public static getEastAsianWidths(src: native.Array<string>, start: number, count: number, dest: native.Array<number>): void;
			/**
			 * Replace the specified slice of <code>text</code> with the chars' right-to-left mirrors (if any), returning true if any replacements were made.
			 * @param text array of characters to apply mirror operation
			 * @param start first character in array to mirror
			 * @param count maximum number of characters to mirror
			 */
			public static mirror(text: native.Array<string>, start: number, count: number): boolean;
			/**
			 * Return the right-to-left mirror (or the original char if none) of the specified char.
			 */
			public static getMirror(ch: string): string;
		}
		/**
		 * This class processes HTML strings into displayable styled text. Not all HTML tags are supported.
		 */
		export class Html extends java.lang.Object {
			static class: java.lang.Class<android.text.Html>;
			/**
			 * Returns displayable styled text from the provided HTML string. Any &lt;img&gt; tags in the HTML will display as a generic replacement image which your program can then go through and replace with real images.
			 */
			public static fromHtml(source: string): android.text.ISpanned;
			/**
			 * Returns displayable styled text from the provided HTML string. Any &lt;img&gt; tags in the HTML will use the specified ImageGetter to request a representation of the image (use null if you don't want this) and the specified TagHandler to handle unknown tags (specify null if you don't want this).
			 */
			public static fromHtml(source: string, imageGetter: android.text.Html.IImageGetter, tagHandler: android.text.Html.ITagHandler): android.text.ISpanned;
			/**
			 * Returns an HTML representation of the provided Spanned text.
			 */
			public static toHtml(text: android.text.ISpanned): string;
			/**
			 * Returns an HTML escaped representation of the given plain text.
			 */
			public static escapeHtml(text: string): string;
		}
		export module Html {
			/**
			 * Retrieves images for HTML &lt;img&gt; tags.
			 */
			export class ImageGetter implements android.text.Html.IImageGetter {
				constructor(implementation: android.text.Html.IImageGetter);
				/**
				 * This methos is called when the HTML parser encounters an &lt;img&gt; tag. The <code>source</code> argument is the string from the "src" attribute; the return value should be a Drawable representation of the image or <code>null</code> for a generic replacement image. Make sure you call setBounds() on your Drawable if it doesn't already have its bounds set.
				 */
				public getDrawable(source: string): android.graphics.drawable.Drawable;
			}
			/**
			 * Lazy initialization holder for HTML parser. This class will a) be preloaded by the zygote, or b) not loaded until absolutely necessary.
			 */
			export class HtmlParser extends java.lang.Object {
				static class: java.lang.Class<android.text.Html.HtmlParser>;
			}
			/**
			 * Is notified when HTML tags are encountered that the parser does not know how to interpret.
			 */
			interface ITagHandler {
				/**
				 * This method will be called whenn the HTML parser encounters a tag that it does not know how to interpret.
				 */
				handleTag(opening: boolean, tag: string, output: any, xmlReader: org.xml.sax.IXMLReader): void;
			}
			/**
			 * Retrieves images for HTML &lt;img&gt; tags.
			 */
			interface IImageGetter {
				/**
				 * This methos is called when the HTML parser encounters an &lt;img&gt; tag. The <code>source</code> argument is the string from the "src" attribute; the return value should be a Drawable representation of the image or <code>null</code> for a generic replacement image. Make sure you call setBounds() on your Drawable if it doesn't already have its bounds set.
				 */
				getDrawable(source: string): android.graphics.drawable.Drawable;
			}
			/**
			 * Is notified when HTML tags are encountered that the parser does not know how to interpret.
			 */
			export class TagHandler implements android.text.Html.ITagHandler {
				constructor(implementation: android.text.Html.ITagHandler);
				/**
				 * This method will be called whenn the HTML parser encounters a tag that it does not know how to interpret.
				 */
				public handleTag(opening: boolean, tag: string, output: any, xmlReader: org.xml.sax.IXMLReader): void;
			}
		}
		export class TextUtils extends java.lang.Object {
			static CHAR_SEQUENCE_CREATOR: android.os.Parcelable.ICreator<string>;
			/**
			 * Capitalization mode for #getCapsMode: capitalize all characters. This value is explicitly defined to be the same as InputType#TYPE_TEXT_FLAG_CAP_CHARACTERS.
			 */
			static CAP_MODE_CHARACTERS: number;
			/**
			 * Capitalization mode for #getCapsMode: capitalize the first character of all words. This value is explicitly defined to be the same as InputType#TYPE_TEXT_FLAG_CAP_WORDS.
			 */
			static CAP_MODE_WORDS: number;
			/**
			 * Capitalization mode for #getCapsMode: capitalize the first character of each sentence. This value is explicitly defined to be the same as InputType#TYPE_TEXT_FLAG_CAP_SENTENCES.
			 */
			static CAP_MODE_SENTENCES: number;
			static class: java.lang.Class<android.text.TextUtils>;
			public static getChars(s: string, start: number, end: number, dest: native.Array<string>, destoff: number): void;
			public static indexOf(s: string, ch: string): number;
			public static indexOf(s: string, ch: string, start: number): number;
			public static indexOf(s: string, ch: string, start: number, end: number): number;
			public static lastIndexOf(s: string, ch: string): number;
			public static lastIndexOf(s: string, ch: string, last: number): number;
			public static lastIndexOf(s: string, ch: string, start: number, last: number): number;
			public static regionMatches(one: string, toffset: number, two: string, ooffset: number, len: number): boolean;
			/**
			 * Create a new String object containing the given range of characters from the source string. This is different than simply calling CharSequence#subSequence(int, int) CharSequence.subSequence in that it does not preserve any style runs in the source sequence, allowing a more efficient implementation.
			 */
			public static substring(source: string, start: number, end: number): string;
			/**
			 * Returns a string containing the tokens joined by delimiters.
			 * @param delimiter tokens an array objects to be joined. Strings will be formed from
			 * @param tokens 
			 */
			public static join(delimiter: string, tokens: native.Array<any>): string;
			/**
			 * Returns a string containing the tokens joined by delimiters.
			 * @param delimiter tokens an array objects to be joined. Strings will be formed from
			 * @param tokens 
			 */
			public static join(delimiter: string, tokens: java.lang.IIterable<any>): string;
			/**
			 * String.split() returns [''] when the string to be split is empty. This returns []. This does not remove any empty strings from the result. For example split("a,", "," ) returns {"a", ""}.
			 * @param text the string to split
			 * @param expression the regular expression to match
			 */
			public static split(text: string, expression: string): native.Array<string>;
			/**
			 * Splits a string on a pattern. String.split() returns [''] when the string to be split is empty. This returns []. This does not remove any empty strings from the result.
			 * @param text the string to split
			 * @param pattern the regular expression to match
			 */
			public static split(text: string, pattern: java.util.regex.Pattern): native.Array<string>;
			public static stringOrSpannedString(source: string): string;
			/**
			 * Returns true if the string is null or 0-length.
			 * @param str the string to be examined
			 */
			public static isEmpty(str: string): boolean;
			/**
			 * Returns the length that the specified CharSequence would have if spaces and control characters were trimmed from the start and end, as by String#trim.
			 */
			public static getTrimmedLength(s: string): number;
			/**
			 * Returns true if a and b are equal, including if they are both null.
			 * @param a first CharSequence to check
			 * @param b second CharSequence to check
			 */
			public static equals(a: string, b: string): boolean;
			public static getReverse(source: string, start: number, end: number): string;
			/**
			 * Flatten a CharSequence and whatever styles can be copied across processes into the parcel.
			 */
			public static writeToParcel(cs: string, p: android.os.Parcel, parcelableFlags: number): void;
			/**
			 * Debugging tool to print the spans in a CharSequence. The output will be printed one span per line. If the CharSequence is not a Spanned, then the entire string will be printed on a single line.
			 */
			public static dumpSpans(cs: string, printer: android.util.IPrinter, prefix: string): void;
			/**
			 * Return a new CharSequence in which each of the source strings is replaced by the corresponding element of the destinations.
			 */
			public static replace(template: string, sources: native.Array<string>, destinations: native.Array<string>): string;
			/**
			 * Replace instances of "^1", "^2", etc. in the <code>template</code> CharSequence with the corresponding <code>values</code>. "^^" is used to produce a single caret in the output. Only up to 9 replacement values are supported, "^10" will be produce the first replacement value followed by a '0'.
			 * @param template the input text containing "^1"-style
			 * @param values CharSequences substituted into the template. The
			 */
			public static expandTemplate(template: string, values: native.Array<string>): string;
			public static getOffsetBefore(text: string, offset: number): number;
			public static getOffsetAfter(text: string, offset: number): number;
			/**
			 * Copies the spans from the region <code>start...end</code> in <code>source</code> to the region <code>destoff...destoff+end-start</code> in <code>dest</code>. Spans in <code>source</code> that begin before <code>start</code> or end after <code>end</code> but overlap this range are trimmed as if they began at <code>start</code> or ended at <code>end</code>.
			 */
			public static copySpansFrom(source: android.text.ISpanned, start: number, end: number, kind: java.lang.Class<any>, dest: android.text.ISpannable, destoff: number): void;
			/**
			 * Returns the original text if it fits in the specified width given the properties of the specified Paint, or, if it does not fit, a truncated copy with ellipsis character added at the specified edge or center.
			 */
			public static ellipsize(text: string, p: android.text.TextPaint, avail: number, where: android.text.TextUtils.TruncateAt): string;
			/**
			 * Returns the original text if it fits in the specified width given the properties of the specified Paint, or, if it does not fit, a copy with ellipsis character added at the specified edge or center. If <code>preserveLength</code> is specified, the returned copy will be padded with zero-width spaces to preserve the original length and offsets instead of truncating. If <code>callback</code> is non-null, it will be called to report the start and end of the ellipsized range. TextDirection is determined by the first strong directional character.
			 */
			public static ellipsize(text: string, paint: android.text.TextPaint, avail: number, where: android.text.TextUtils.TruncateAt, preserveLength: boolean, callback: android.text.TextUtils.IEllipsizeCallback): string;
			/**
			 * Converts a CharSequence of the comma-separated form "Andy, Bob, Charles, David" that is too wide to fit into the specified width into one like "Andy, Bob, 2 more".
			 * @param text the text to truncate
			 * @param p the Paint with which to measure the text
			 * @param avail the horizontal width available for the text
			 * @param oneMore the string for "1 more" in the current locale
			 * @param more the string for "%d more" in the current locale
			 */
			public static commaEllipsize(text: string, p: android.text.TextPaint, avail: number, oneMore: string, more: string): string;
			static doesNotNeedBidi(s: string, start: number, end: number): boolean;
			static doesNotNeedBidi(text: native.Array<string>, start: number, len: number): boolean;
			static obtain(len: number): native.Array<string>;
			static recycle(temp: native.Array<string>): void;
			/**
			 * Html-encode the string.
			 * @param s the string to be encoded
			 */
			public static htmlEncode(s: string): string;
			/**
			 * Returns a CharSequence concatenating the specified CharSequences, retaining their spans if any.
			 */
			public static concat(text: native.Array<string>): string;
			/**
			 * Returns whether the given CharSequence contains any printable characters.
			 */
			public static isGraphic(str: string): boolean;
			/**
			 * Returns whether the given CharSequence contains only digits.
			 */
			public static isDigitsOnly(str: string): boolean;
			/**
			 * Determine what caps mode should be in effect at the current offset in the text. Only the mode bits set in <var>reqModes</var> will be checked. Note that the caps mode flags here are explicitly defined to match those in InputType.
			 * @param cs The text that should be checked for caps modes.
			 * @param off Location in the text at which to check.
			 * @param reqModes The modes to be checked: may be any combination of
			 */
			public static getCapsMode(cs: string, off: number, reqModes: number): number;
			/**
			 * Return the layout direction for a given Locale
			 * @param locale the Locale for which we want the layout direction. Can be null.
			 */
			public static getLayoutDirectionFromLocale(locale: java.util.Locale): number;
			/**
			 * Compares this instance with the specified object and indicates if they are equal. In order to be equal, o must represent the same object as this instance using a class-specific comparison. The general contract is that this comparison should be reflexive, symmetric, and transitive. Also, no object reference other than null is equal to null.
			 * @param o 
			 */
			equals(o: any): boolean;
		}
		export module TextUtils {
			interface IEllipsizeCallback {
				/**
				 * This method is called to report that the specified region of text was ellipsized away by a call to #ellipsize.
				 */
				ellipsized(start: number, end: number): void;
			}
			/**
			 * An interface for splitting strings according to rules that are opaque to the user of this interface. This also has less overhead than split, which uses regular expressions and allocates an array to hold the results.
			 */
			export class StringSplitter implements android.text.TextUtils.IStringSplitter {
				constructor(implementation: android.text.TextUtils.IStringSplitter);
				public setString(string: string): void;
			}
			export class Reverser extends java.lang.Object implements java.lang.ICharSequence, android.text.IGetChars {
				constructor(source: string, start: number, end: number);
				static class: java.lang.Class<android.text.TextUtils.Reverser>;
				public length(): number;
				public subSequence(start: number, end: number): string;
				public toString(): string;
				public charAt(off: number): string;
				public getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			}
			/**
			 * A simple string splitter.
			 */
			export class SimpleStringSplitter extends java.lang.Object implements android.text.TextUtils.IStringSplitter {
				/**
				 * Initializes the splitter. setString may be called later.
				 * @param delimiter the delimeter on which to split
				 */
				constructor(delimiter: string);
				static class: java.lang.Class<android.text.TextUtils.SimpleStringSplitter>;
				/**
				 * Sets the string to split
				 * @param string the string to split
				 */
				public setString(string: string): void;
				public iterator(): java.util.IIterator<string>;
				public hasNext(): boolean;
				public next(): string;
				public remove(): void;
			}
			/**
			 * An interface for splitting strings according to rules that are opaque to the user of this interface. This also has less overhead than split, which uses regular expressions and allocates an array to hold the results.
			 */
			interface IStringSplitter {
				setString(string: string): void;
			}
			export class EllipsizeCallback implements android.text.TextUtils.IEllipsizeCallback {
				constructor(implementation: android.text.TextUtils.IEllipsizeCallback);
				/**
				 * This method is called to report that the specified region of text was ellipsized away by a call to #ellipsize.
				 */
				public ellipsized(start: number, end: number): void;
			}
			export enum TruncateAt {
				START,
				MIDDLE,
				END,
				MARQUEE
			}
		}
		/**
		 * StaticLayout is a Layout for text that will not be edited after it is laid out. Use DynamicLayout for text that may change.
		 */
		export class StaticLayout extends android.text.Layout {
			constructor(source: string, paint: android.text.TextPaint, width: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, includepad: boolean);
			constructor(source: string, bufstart: number, bufend: number, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, includepad: boolean);
			constructor(source: string, bufstart: number, bufend: number, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, includepad: boolean, ellipsize: android.text.TextUtils.TruncateAt, ellipsizedWidth: number);
			static class: java.lang.Class<android.text.StaticLayout>;
			public getLineForVertical(vertical: number): number;
			public getLineCount(): number;
			public getLineTop(line: number): number;
			public getLineDescent(line: number): number;
			public getLineStart(line: number): number;
			public getParagraphDirection(line: number): number;
			public getLineContainsTab(line: number): boolean;
			public getLineDirections(line: number): android.text.Layout.Directions;
			public getTopPadding(): number;
			public getBottomPadding(): number;
			public getEllipsisCount(line: number): number;
			public getEllipsisStart(line: number): number;
			public getEllipsizedWidth(): number;
			prepare(): void;
			finish(): void;
		}
		/**
		 * Quick check of native bidi implementation.
		 */
		export class StaticLayoutBidiTest {
			constructor();
			static REQ_DL: number;
			static REQ_DR: number;
			static REQ_L: number;
			static REQ_R: number;
			static L: number;
			static R: number;
			static SP: string;
			static ALEF: string;
			static BET: string;
			static GIMEL: string;
			static DALET: string;
			static class: java.lang.Class<android.text.StaticLayoutBidiTest>;
			public testAllLtr(): void;
			public testLtrRtl(): void;
			public testAllRtl(): void;
			public testRtlLtr(): void;
			public testRAllLtr(): void;
			public testRLtrRtl(): void;
			public testLAllRtl(): void;
			public testLRtlLtr(): void;
			public testNativeBidi(): void;
		}
		/**
		 * Annotations are simple key-value pairs that are preserved across TextView save/restore cycles and can be used to keep application-specific data that needs to be maintained for regions of text.
		 */
		export class Annotation extends java.lang.Object implements android.text.IParcelableSpan {
			constructor(key: string, value: string);
			constructor(src: android.os.Parcel);
			static class: java.lang.Class<android.text.Annotation>;
			public getSpanTypeId(): number;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public getKey(): string;
			public getValue(): string;
		}
		/**
		 * SpannedTest tests some features of Spanned
		 */
		export class SpannedTest {
			constructor();
			static class: java.lang.Class<android.text.SpannedTest>;
			Watcher: {
	new (sequence: number): android.text.SpannedTest.Watcher;
};
			public testSpannableString(): void;
			public testSpannableStringBuilder(): void;
			public testAppend(): void;
			public testWrapParcel(): void;
		}
		export module SpannedTest {
			export class Watcher extends java.lang.Object implements android.text.ISpanWatcher, android.text.ITextWatcher {
				static class: java.lang.Class<android.text.SpannedTest.Watcher>;
				public onSpanChanged(b: android.text.ISpannable, o: any, s: number, e: number, st: number, en: number): void;
				public onSpanRemoved(b: android.text.ISpannable, o: any, s: number, e: number): void;
				public onSpanAdded(b: android.text.ISpannable, o: any, s: number, e: number): void;
				public beforeTextChanged(s: string, start: number, count: number, after: number): void;
				public onTextChanged(s: string, start: number, before: number, count: number): void;
				public afterTextChanged(s: any): void;
			}
		}
		export class PackedObjectVector<E> extends java.lang.Object {
			constructor(columns: number);
			static class: java.lang.Class<android.text.PackedObjectVector<any>>;
			public getValue(row: number, column: number): E;
			public setValue(row: number, column: number, value: E): void;
			public insertAt(row: number, values: native.Array<E>): void;
			public deleteAt(row: number, count: number): void;
			public size(): number;
			public width(): number;
			public dump(): void;
		}
		/**
		 * A base class that manages text layout in visual elements on the screen.
		 */
		export class Layout extends java.lang.Object {
			static DIR_LEFT_TO_RIGHT: number;
			static DIR_RIGHT_TO_LEFT: number;
			static class: java.lang.Class<android.text.Layout>;
			/**
			 * Return how wide a layout must be in order to display the specified text with one line per paragraph.
			 */
			public static getDesiredWidth(source: string, paint: android.text.TextPaint): number;
			/**
			 * Return how wide a layout must be in order to display the specified text slice with one line per paragraph.
			 */
			public static getDesiredWidth(source: string, start: number, end: number, paint: android.text.TextPaint): number;
			/**
			 * Replace constructor properties of this Layout with new ones. Be careful.
			 */
			replaceWith(text: string, paint: android.text.TextPaint, width: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number): void;
			/**
			 * Draw this Layout on the specified Canvas.
			 */
			public draw(c: android.graphics.Canvas): void;
			/**
			 * Draw this Layout on the specified canvas, with the highlight path drawn between the background and the text.
			 * @param canvas the canvas
			 * @param highlight the path of the highlight or cursor; can be null
			 * @param highlightPaint the paint for the highlight
			 * @param cursorOffsetVertical the amount to temporarily translate the
			 */
			public draw(canvas: android.graphics.Canvas, highlight: android.graphics.Path, highlightPaint: android.graphics.Paint, cursorOffsetVertical: number): void;
			/**
			 * Return the text that is displayed by this Layout.
			 */
			public getText(): string;
			/**
			 * Return the base Paint properties for this layout. Do NOT change the paint, which may result in funny drawing for this layout.
			 */
			public getPaint(): android.text.TextPaint;
			/**
			 * Return the width of this layout.
			 */
			public getWidth(): number;
			/**
			 * Return the width to which this Layout is ellipsizing, or #getWidth if it is not doing anything special.
			 */
			public getEllipsizedWidth(): number;
			/**
			 * Increase the width of this layout to the specified width. Be careful to use this only when you know it is appropriate&mdash; it does not cause the text to reflow to use the full new width.
			 */
			public increaseWidthTo(wid: number): void;
			/**
			 * Return the total height of this layout.
			 */
			public getHeight(): number;
			/**
			 * Return the base alignment of this layout.
			 */
			public getAlignment(): android.text.Layout.Alignment;
			/**
			 * Return what the text height is multiplied by to get the line height.
			 */
			public getSpacingMultiplier(): number;
			/**
			 * Return the number of units of leading that are added to each line.
			 */
			public getSpacingAdd(): number;
			/**
			 * Return the number of lines of text in this layout.
			 */
			public getLineCount(): number;
			/**
			 * Return the baseline for the specified line (0&hellip;getLineCount() - 1) If bounds is not null, return the top, left, right, bottom extents of the specified line in it.
			 * @param line which line to examine (0..getLineCount() - 1)
			 * @param bounds Optional. If not null, it returns the extent of the line
			 */
			public getLineBounds(line: number, bounds: android.graphics.Rect): number;
			/**
			 * Return the vertical position of the top of the specified line (0&hellip;getLineCount()). If the specified line is equal to the line count, returns the bottom of the last line.
			 */
			public getLineTop(line: number): number;
			/**
			 * Return the descent of the specified line(0&hellip;getLineCount() - 1).
			 */
			public getLineDescent(line: number): number;
			/**
			 * Return the text offset of the beginning of the specified line ( 0&hellip;getLineCount()). If the specified line is equal to the line count, returns the length of the text.
			 */
			public getLineStart(line: number): number;
			/**
			 * Returns the primary directionality of the paragraph containing the specified line, either 1 for left-to-right lines, or -1 for right-to-left lines (see #DIR_LEFT_TO_RIGHT, #DIR_RIGHT_TO_LEFT).
			 */
			public getParagraphDirection(line: number): number;
			/**
			 * Returns whether the specified line contains one or more characters that need to be handled specially, like tabs or emoji.
			 */
			public getLineContainsTab(line: number): boolean;
			/**
			 * Returns the directional run information for the specified line. The array alternates counts of characters in left-to-right and right-to-left segments of the line.
			 */
			public getLineDirections(line: number): android.text.Layout.Directions;
			/**
			 * Returns the (negative) number of extra pixels of ascent padding in the top line of the Layout.
			 */
			public getTopPadding(): number;
			/**
			 * Returns the number of extra pixels of descent padding in the bottom line of the Layout.
			 */
			public getBottomPadding(): number;
			/**
			 * Returns true if the character at offset is right to left (RTL).
			 * @param offset the offset
			 */
			public isRtlCharAt(offset: number): boolean;
			/**
			 * Get the primary horizontal position for the specified text offset. This is the location where a new character would be inserted in the paragraph's primary direction.
			 */
			public getPrimaryHorizontal(offset: number): number;
			/**
			 * Get the secondary horizontal position for the specified text offset. This is the location where a new character would be inserted in the direction other than the paragraph's primary direction.
			 */
			public getSecondaryHorizontal(offset: number): number;
			/**
			 * Get the leftmost position that should be exposed for horizontal scrolling on the specified line.
			 */
			public getLineLeft(line: number): number;
			/**
			 * Get the rightmost position that should be exposed for horizontal scrolling on the specified line.
			 */
			public getLineRight(line: number): number;
			/**
			 * Gets the unsigned horizontal extent of the specified line, including leading margin indent, but excluding trailing whitespace.
			 */
			public getLineMax(line: number): number;
			/**
			 * Gets the unsigned horizontal extent of the specified line, including leading margin indent and trailing whitespace.
			 */
			public getLineWidth(line: number): number;
			/**
			 * Get the line number corresponding to the specified vertical position. If you ask for a position above 0, you get 0; if you ask for a position below the bottom of the text, you get the last line.
			 */
			public getLineForVertical(vertical: number): number;
			/**
			 * Get the line number on which the specified text offset appears. If you ask for a position before 0, you get 0; if you ask for a position beyond the end of the text, you get the last line.
			 */
			public getLineForOffset(offset: number): number;
			/**
			 * Get the character offset on the specified line whose position is closest to the specified horizontal position.
			 */
			public getOffsetForHorizontal(line: number, horiz: number): number;
			/**
			 * Return the text offset after the last character on the specified line.
			 */
			public getLineEnd(line: number): number;
			/**
			 * Return the text offset after the last visible character (so whitespace is not counted) on the specified line.
			 */
			public getLineVisibleEnd(line: number): number;
			/**
			 * Return the vertical position of the bottom of the specified line.
			 */
			public getLineBottom(line: number): number;
			/**
			 * Return the vertical position of the baseline of the specified line.
			 */
			public getLineBaseline(line: number): number;
			/**
			 * Get the ascent of the text on the specified line. The return value is negative to match the Paint.ascent() convention.
			 */
			public getLineAscent(line: number): number;
			public getOffsetToLeftOf(offset: number): number;
			public getOffsetToRightOf(offset: number): number;
			/**
			 * Fills in the specified Path with a representation of a cursor at the specified offset. This will often be a vertical line but can be multiple discontinuous lines in text with multiple directionalities.
			 */
			public getCursorPath(point: number, dest: android.graphics.Path, editingBuffer: string): void;
			/**
			 * Fills in the specified Path with a representation of a highlight between the specified offsets. This will often be a rectangle or a potentially discontinuous set of rectangles. If the start and end are the same, the returned path is empty.
			 */
			public getSelectionPath(start: number, end: number, dest: android.graphics.Path): void;
			/**
			 * Get the alignment of the specified paragraph, taking into account markup attached to it.
			 */
			public getParagraphAlignment(line: number): android.text.Layout.Alignment;
			/**
			 * Get the left edge of the specified paragraph, inset by left margins.
			 */
			public getParagraphLeft(line: number): number;
			/**
			 * Get the right edge of the specified paragraph, inset by right margins.
			 */
			public getParagraphRight(line: number): number;
			static measurePara(paint: android.text.TextPaint, text: string, start: number, end: number): number;
			/**
			 * Returns the position of the next tab stop after h on the line.
			 * @param text the text
			 * @param start start of the line
			 * @param end limit of the line
			 * @param h the current horizontal offset
			 * @param tabs the tabs, can be null. If it is null, any tabs in effect
			 */
			static nextTab(text: string, start: number, end: number, h: number, tabs: native.Array<any>): number;
			protected isSpanned(): boolean;
			/**
			 * Returns the same as <code>text.getSpans()</code>, except where <code>start</code> and <code>end</code> are the same and are not at the very beginning of the text, in which case an empty array is returned instead.
			 */
			static getParagraphSpans<T>(text: android.text.ISpanned, start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the offset of the first character to be ellipsized away, relative to the start of the line. (So 0 if the beginning of the line is ellipsized, not getLineStart().)
			 */
			public getEllipsisStart(line: number): number;
			/**
			 * Returns the number of characters to be ellipsized away, or 0 if no ellipsis is to take place.
			 */
			public getEllipsisCount(line: number): number;
		}
		export module Layout {
			export class SpannedEllipsizer extends android.text.Layout.Ellipsizer implements android.text.ISpanned {
				constructor(display: string);
				static class: java.lang.Class<android.text.Layout.SpannedEllipsizer>;
				public getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
				public getSpanStart(tag: any): number;
				public getSpanEnd(tag: any): number;
				public getSpanFlags(tag: any): number;
				public nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
				public subSequence(start: number, end: number): string;
				/**
				 * Returns the number of characters in this sequence.
				 */
				length(): number;
				/**
				 * Returns the character at the specified index, with the first character having index zero.
				 * @param index 
				 */
				charAt(index: number): string;
				/**
				 * Returns a string with the same characters in the same order as in this sequence.
				 */
				toString(): string;
			}
			export enum Alignment {
				ALIGN_NORMAL,
				ALIGN_OPPOSITE,
				ALIGN_CENTER
			}
			/**
			 * Stores information about bidirectional (left-to-right or right-to-left) text within the layout of a line.
			 */
			export class Directions extends java.lang.Object {
				static class: java.lang.Class<android.text.Layout.Directions>;
			}
			export class Ellipsizer extends java.lang.Object implements java.lang.ICharSequence, android.text.IGetChars {
				constructor(s: string);
				static class: java.lang.Class<android.text.Layout.Ellipsizer>;
				public charAt(off: number): string;
				public getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
				public length(): number;
				public subSequence(start: number, end: number): string;
				public toString(): string;
			}
		}
		/**
		 * A BoringLayout is a very simple Layout implementation for text that fits on a single line and is all left-to-right characters. You will probably never want to make one of these yourself; if you do, be sure to call #isBoring first to make sure the text meets the criteria.
		 */
		export class BoringLayout extends android.text.Layout implements android.text.TextUtils.IEllipsizeCallback {
			constructor(source: string, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, metrics: android.text.BoringLayout.Metrics, includepad: boolean);
			constructor(source: string, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, metrics: android.text.BoringLayout.Metrics, includepad: boolean, ellipsize: android.text.TextUtils.TruncateAt, ellipsizedWidth: number);
			static class: java.lang.Class<android.text.BoringLayout>;
			public static make(source: string, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, metrics: android.text.BoringLayout.Metrics, includepad: boolean): android.text.BoringLayout;
			public static make(source: string, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, metrics: android.text.BoringLayout.Metrics, includepad: boolean, ellipsize: android.text.TextUtils.TruncateAt, ellipsizedWidth: number): android.text.BoringLayout;
			/**
			 * Returns a BoringLayout for the specified text, potentially reusing this one if it is already suitable. The caller must make sure that no one is still using this Layout.
			 */
			public replaceOrMake(source: string, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, metrics: android.text.BoringLayout.Metrics, includepad: boolean): android.text.BoringLayout;
			/**
			 * Returns a BoringLayout for the specified text, potentially reusing this one if it is already suitable. The caller must make sure that no one is still using this Layout.
			 */
			public replaceOrMake(source: string, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, metrics: android.text.BoringLayout.Metrics, includepad: boolean, ellipsize: android.text.TextUtils.TruncateAt, ellipsizedWidth: number): android.text.BoringLayout;
			init(source: string, paint: android.text.TextPaint, outerwidth: number, align: android.text.Layout.Alignment, spacingmult: number, spacingadd: number, metrics: android.text.BoringLayout.Metrics, includepad: boolean, trustWidth: boolean): void;
			/**
			 * Returns null if not boring; the width, ascent, and descent if boring.
			 */
			public static isBoring(text: string, paint: android.text.TextPaint): android.text.BoringLayout.Metrics;
			/**
			 * Returns null if not boring; the width, ascent, and descent in the provided Metrics object (or a new one if the provided one was null) if boring.
			 */
			public static isBoring(text: string, paint: android.text.TextPaint, metrics: android.text.BoringLayout.Metrics): android.text.BoringLayout.Metrics;
			public getHeight(): number;
			public getLineCount(): number;
			public getLineTop(line: number): number;
			public getLineDescent(line: number): number;
			public getLineStart(line: number): number;
			public getParagraphDirection(line: number): number;
			public getLineContainsTab(line: number): boolean;
			public getLineMax(line: number): number;
			public getLineDirections(line: number): android.text.Layout.Directions;
			public getTopPadding(): number;
			public getBottomPadding(): number;
			public getEllipsisCount(line: number): number;
			public getEllipsisStart(line: number): number;
			public getEllipsizedWidth(): number;
			public draw(c: android.graphics.Canvas, highlight: android.graphics.Path, highlightpaint: android.graphics.Paint, cursorOffset: number): void;
			/**
			 * Callback for the ellipsizer to report what region it ellipsized.
			 */
			public ellipsized(start: number, end: number): void;
			/**
			 * Draw this Layout on the specified Canvas.
			 */
			draw(c: android.graphics.Canvas): void;
		}
		export module BoringLayout {
			export class Metrics extends android.graphics.Paint.FontMetricsInt {
				constructor();
				width: number;
				static class: java.lang.Class<android.text.BoringLayout.Metrics>;
				public toString(): string;
			}
		}
		export class SpannableStringInternal extends java.lang.Object {
			static class: java.lang.Class<android.text.SpannableStringInternal>;
			public length(): number;
			public charAt(i: number): string;
			public toString(): string;
			public getChars(start: number, end: number, dest: native.Array<string>, off: number): void;
			setSpan(what: any, start: number, end: number, flags: number): void;
			removeSpan(what: any): void;
			public getSpanStart(what: any): number;
			public getSpanEnd(what: any): number;
			public getSpanFlags(what: any): number;
			public getSpans<T>(queryStart: number, queryEnd: number, kind: java.lang.Class<T>): native.Array<T>;
			public nextSpanTransition(start: number, limit: number, kind: java.lang.Class<any>): number;
		}
		/**
		 * Bit definitions for an integer defining the basic content type of text held in an Editable object. Supported classes may be combined with variations and flags to indicate desired behaviors.
		 */
		interface IInputType {
		}
		export module IInputType {
			/**
			 * Mask of bits that determine the overall class of text being given. Currently supported classes are: #TYPE_CLASS_TEXT, #TYPE_CLASS_NUMBER, #TYPE_CLASS_PHONE, #TYPE_CLASS_DATETIME. If the class is not one you understand, assume #TYPE_CLASS_TEXT with NO variation or flags.
			 */
			var TYPE_MASK_CLASS: number;
			/**
			 * Mask of bits that determine the variation of the base content class.
			 */
			var TYPE_MASK_VARIATION: number;
			/**
			 * Mask of bits that provide addition bit flags of options.
			 */
			var TYPE_MASK_FLAGS: number;
			/**
			 * Special content type for when no explicit type has been specified. This should be interpreted to mean that the target input connection is not rich, it can not process and show things like candidate text nor retrieve the current text, so the input method will need to run in a limited "generate key events" mode.
			 */
			var TYPE_NULL: number;
			/**
			 * Class for normal text. This class supports the following flags (only one of which should be set): #TYPE_TEXT_FLAG_CAP_CHARACTERS, #TYPE_TEXT_FLAG_CAP_WORDS, and. #TYPE_TEXT_FLAG_CAP_SENTENCES. It also supports the following variations: #TYPE_TEXT_VARIATION_NORMAL, and #TYPE_TEXT_VARIATION_URI. If you do not recognize the variation, normal should be assumed.
			 */
			var TYPE_CLASS_TEXT: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: capitalize all characters. Overrides #TYPE_TEXT_FLAG_CAP_WORDS and #TYPE_TEXT_FLAG_CAP_SENTENCES. This value is explicitly defined to be the same as TextUtils#CAP_MODE_CHARACTERS.
			 */
			var TYPE_TEXT_FLAG_CAP_CHARACTERS: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: capitalize first character of all words. Overrides #TYPE_TEXT_FLAG_CAP_SENTENCES. This value is explicitly defined to be the same as TextUtils#CAP_MODE_WORDS.
			 */
			var TYPE_TEXT_FLAG_CAP_WORDS: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: capitalize first character of each sentence. This value is explicitly defined to be the same as TextUtils#CAP_MODE_SENTENCES.
			 */
			var TYPE_TEXT_FLAG_CAP_SENTENCES: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the user is entering free-form text that should have auto-correction applied to it.
			 */
			var TYPE_TEXT_FLAG_AUTO_CORRECT: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the text editor is performing auto-completion of the text being entered based on its own semantics, which it will present to the user as they type. This generally means that the input method should not be showing candidates itself, but can expect for the editor to supply its own completions/candidates from android.view.inputmethod.InputMethodSession#displayCompletions InputMethodSession.displayCompletions() as a result of the editor calling android.view.inputmethod.InputMethodManager#displayCompletions InputMethodManager.displayCompletions().
			 */
			var TYPE_TEXT_FLAG_AUTO_COMPLETE: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: multiple lines of text can be entered into the field. If this flag is not set, the text field will be constrained to a single line.
			 */
			var TYPE_TEXT_FLAG_MULTI_LINE: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the regular text view associated with this should not be multi-line, but when a fullscreen input method is providing text it should use multiple lines if it can.
			 */
			var TYPE_TEXT_FLAG_IME_MULTI_LINE: number;
			/**
			 * Flag for #TYPE_CLASS_TEXT: the input method does not need to display any dictionary-based candidates. This is useful for text views that do not contain words from the language and do not benefit from any dictionary-based completions or corrections. It overrides the #TYPE_TEXT_FLAG_AUTO_CORRECT value when set.
			 */
			var TYPE_TEXT_FLAG_NO_SUGGESTIONS: number;
			/**
			 * Default variation of #TYPE_CLASS_TEXT: plain old normal text.
			 */
			var TYPE_TEXT_VARIATION_NORMAL: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a URI.
			 */
			var TYPE_TEXT_VARIATION_URI: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering an e-mail address.
			 */
			var TYPE_TEXT_VARIATION_EMAIL_ADDRESS: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering the subject line of an e-mail.
			 */
			var TYPE_TEXT_VARIATION_EMAIL_SUBJECT: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a short, possibly informal message such as an instant message or a text message.
			 */
			var TYPE_TEXT_VARIATION_SHORT_MESSAGE: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering the content of a long, possibly formal message such as the body of an e-mail.
			 */
			var TYPE_TEXT_VARIATION_LONG_MESSAGE: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering the name of a person.
			 */
			var TYPE_TEXT_VARIATION_PERSON_NAME: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a postal mailing address.
			 */
			var TYPE_TEXT_VARIATION_POSTAL_ADDRESS: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a password.
			 */
			var TYPE_TEXT_VARIATION_PASSWORD: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering a password, which should be visible to the user.
			 */
			var TYPE_TEXT_VARIATION_VISIBLE_PASSWORD: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering text inside of a web form.
			 */
			var TYPE_TEXT_VARIATION_WEB_EDIT_TEXT: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering text to filter contents of a list etc.
			 */
			var TYPE_TEXT_VARIATION_FILTER: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering text for phonetic pronunciation, such as a phonetic name field in contacts.
			 */
			var TYPE_TEXT_VARIATION_PHONETIC: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering e-mail address inside of a web form. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be seen as #TYPE_TEXT_VARIATION_EMAIL_ADDRESS when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			var TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS: number;
			/**
			 * Variation of #TYPE_CLASS_TEXT: entering password inside of a web form. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be seen as #TYPE_TEXT_VARIATION_PASSWORD when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			var TYPE_TEXT_VARIATION_WEB_PASSWORD: number;
			/**
			 * Class for numeric text. This class supports the following flag: #TYPE_NUMBER_FLAG_SIGNED and #TYPE_NUMBER_FLAG_DECIMAL. It also supports the following variations: #TYPE_NUMBER_VARIATION_NORMAL and #TYPE_NUMBER_VARIATION_PASSWORD. If you do not recognize the variation, normal should be assumed.
			 */
			var TYPE_CLASS_NUMBER: number;
			/**
			 * Flag of #TYPE_CLASS_NUMBER: the number is signed, allowing a positive or negative sign at the start.
			 */
			var TYPE_NUMBER_FLAG_SIGNED: number;
			/**
			 * Flag of #TYPE_CLASS_NUMBER: the number is decimal, allowing a decimal point to provide fractional values.
			 */
			var TYPE_NUMBER_FLAG_DECIMAL: number;
			/**
			 * Default variation of #TYPE_CLASS_NUMBER: plain normal numeric text. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be dropped when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			var TYPE_NUMBER_VARIATION_NORMAL: number;
			/**
			 * Variation of #TYPE_CLASS_NUMBER: entering a numeric password. This was added in android.os.Build.VERSION_CODES#HONEYCOMB. An IME must target this API version or later to see this input type; if it doesn't, a request for this type will be dropped when passed through android.view.inputmethod.EditorInfo#makeCompatible(int) EditorInfo.makeCompatible(int).
			 */
			var TYPE_NUMBER_VARIATION_PASSWORD: number;
			/**
			 * Class for a phone number. This class currently supports no variations or flags.
			 */
			var TYPE_CLASS_PHONE: number;
			/**
			 * Class for dates and times. It supports the following variations: #TYPE_DATETIME_VARIATION_NORMAL #TYPE_DATETIME_VARIATION_DATE, and #TYPE_DATETIME_VARIATION_TIME,.
			 */
			var TYPE_CLASS_DATETIME: number;
			/**
			 * Default variation of #TYPE_CLASS_DATETIME: allows entering both a date and time.
			 */
			var TYPE_DATETIME_VARIATION_NORMAL: number;
			/**
			 * Default variation of #TYPE_CLASS_DATETIME: allows entering only a date.
			 */
			var TYPE_DATETIME_VARIATION_DATE: number;
			/**
			 * Default variation of #TYPE_CLASS_DATETIME: allows entering only a time.
			 */
			var TYPE_DATETIME_VARIATION_TIME: number;
		}
		/**
		 * When an object of this type is attached to a Spannable, its methods will be called to notify it that other markup objects have been added, changed, or removed.
		 */
		interface ISpanWatcher extends android.text.INoCopySpan {
			/**
			 * This method is called to notify you that the specified object has been attached to the specified range of the text.
			 */
			onSpanAdded(text: android.text.ISpannable, what: any, start: number, end: number): void;
			/**
			 * This method is called to notify you that the specified object has been detached from the specified range of the text.
			 */
			onSpanRemoved(text: android.text.ISpannable, what: any, start: number, end: number): void;
			/**
			 * This method is called to notify you that the specified object has been relocated from the range <code>ostart&hellip;oend</code> to the new range <code>nstart&hellip;nend</code> of the text.
			 */
			onSpanChanged(text: android.text.ISpannable, what: any, ostart: number, oend: number, nstart: number, nend: number): void;
		}
		/**
		 * This is the interface for text that has markup objects attached to ranges of it. Not all text classes have mutable markup or text; see Spannable for mutable markup and Editable for mutable text.
		 */
		interface ISpanned extends java.lang.ICharSequence {
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
		}
		export module ISpanned {
			/**
			 * Bitmask of bits that are relevent for controlling point/mark behavior of spans.
			 */
			var SPAN_POINT_MARK_MASK: number;
			/**
			 * 0-length spans with type SPAN_MARK_MARK behave like text marks: they remain at their original offset when text is inserted at that offset. Conceptually, the text is added after the mark.
			 */
			var SPAN_MARK_MARK: number;
			/**
			 * SPAN_MARK_POINT is a synonym for #SPAN_INCLUSIVE_INCLUSIVE.
			 */
			var SPAN_MARK_POINT: number;
			/**
			 * SPAN_POINT_MARK is a synonym for #SPAN_EXCLUSIVE_EXCLUSIVE.
			 */
			var SPAN_POINT_MARK: number;
			/**
			 * 0-length spans with type SPAN_POINT_POINT behave like cursors: they are pushed forward by the length of the insertion when text is inserted at their offset. The text is conceptually inserted before the point.
			 */
			var SPAN_POINT_POINT: number;
			/**
			 * SPAN_PARAGRAPH behaves like SPAN_INCLUSIVE_EXCLUSIVE (SPAN_MARK_MARK), except that if either end of the span is at the end of the buffer, that end behaves like _POINT instead (so SPAN_INCLUSIVE_INCLUSIVE if it starts in the middle and ends at the end, or SPAN_EXCLUSIVE_INCLUSIVE if it both starts and ends at the end).
			 */
			var SPAN_PARAGRAPH: number;
			/**
			 * Non-0-length spans of type SPAN_INCLUSIVE_EXCLUSIVE expand to include text inserted at their starting point but not at their ending point. When 0-length, they behave like marks.
			 */
			var SPAN_INCLUSIVE_EXCLUSIVE: number;
			/**
			 * Spans of type SPAN_INCLUSIVE_INCLUSIVE expand to include text inserted at either their starting or ending point.
			 */
			var SPAN_INCLUSIVE_INCLUSIVE: number;
			/**
			 * Spans of type SPAN_EXCLUSIVE_EXCLUSIVE do not expand to include text inserted at either their starting or ending point. They can never have a length of 0 and are automatically removed from the buffer if all the text they cover is removed.
			 */
			var SPAN_EXCLUSIVE_EXCLUSIVE: number;
			/**
			 * Non-0-length spans of type SPAN_EXCLUSIVE_INCLUSIVE expand to include text inserted at their ending point but not at their starting point. When 0-length, they behave like points.
			 */
			var SPAN_EXCLUSIVE_INCLUSIVE: number;
			/**
			 * This flag is set on spans that are being used to apply temporary styling information on the composing text of an input method, so that they can be found and removed when the composing text is being replaced.
			 */
			var SPAN_COMPOSING: number;
			/**
			 * This flag will be set for intermediate span changes, meaning there is guaranteed to be another change following it. Typically it is used for Selection which automatically uses this with the first offset it sets when updating the selection.
			 */
			var SPAN_INTERMEDIATE: number;
			/**
			 * The bits numbered SPAN_USER_SHIFT and above are available for callers to use to store scalar data associated with their span object.
			 */
			var SPAN_USER_SHIFT: number;
			/**
			 * The bits specified by the SPAN_USER bitfield are available for callers to use to store scalar data associated with their span object.
			 */
			var SPAN_USER: number;
			/**
			 * The bits numbered just above SPAN_PRIORITY_SHIFT determine the order of change notifications -- higher numbers go first. You probably don't need to set this; it is used so that when text changes, the text layout gets the chance to update itself before any other callbacks can inquire about the layout of the text.
			 */
			var SPAN_PRIORITY_SHIFT: number;
			/**
			 * The bits specified by the SPAN_PRIORITY bitmap determine the order of change notifications -- higher numbers go first. You probably don't need to set this; it is used so that when text changes, the text layout gets the chance to update itself before any other callbacks can inquire about the layout of the text.
			 */
			var SPAN_PRIORITY: number;
		}
		/**
		 * This is the class for text whose content and markup can both be changed.
		 */
		export class SpannableStringBuilder extends java.lang.Object implements java.lang.ICharSequence, android.text.IGetChars, android.text.ISpannable, android.text.IEditable, java.lang.IAppendable {
			/**
			 * Create a new SpannableStringBuilder with empty contents
			 */
			constructor();
			/**
			 * Create a new SpannableStringBuilder containing a copy of the specified text, including its spans if any.
			 */
			constructor(text: string);
			/**
			 * Create a new SpannableStringBuilder containing a copy of the specified slice of the specified text, including its spans if any.
			 */
			constructor(text: string, start: number, end: number);
			static class: java.lang.Class<android.text.SpannableStringBuilder>;
			public static valueOf(source: string): android.text.SpannableStringBuilder;
			/**
			 * Return the char at the specified offset within the buffer.
			 */
			public charAt(where: number): string;
			/**
			 * Return the number of chars in the buffer.
			 */
			public length(): number;
			public insert(where: number, tb: string, start: number, end: number): android.text.SpannableStringBuilder;
			public insert(where: number, tb: string): android.text.SpannableStringBuilder;
			public delete(start: number, end: number): android.text.SpannableStringBuilder;
			public clear(): void;
			public clearSpans(): void;
			public append(text: string): android.text.SpannableStringBuilder;
			public append(text: string, start: number, end: number): android.text.SpannableStringBuilder;
			public replace(start: number, end: number, tb: string): android.text.SpannableStringBuilder;
			public replace(start: number, end: number, tb: string, tbstart: number, tbend: number): android.text.SpannableStringBuilder;
			/**
			 * Mark the specified range of text with the specified object. The flags determine how the span will behave when text is inserted at the start or end of the span's range.
			 */
			public setSpan(what: any, start: number, end: number, flags: number): void;
			/**
			 * Remove the specified markup object from the buffer.
			 */
			public removeSpan(what: any): void;
			/**
			 * Return the buffer offset of the beginning of the specified markup object, or -1 if it is not attached to this buffer.
			 */
			public getSpanStart(what: any): number;
			/**
			 * Return the buffer offset of the end of the specified markup object, or -1 if it is not attached to this buffer.
			 */
			public getSpanEnd(what: any): number;
			/**
			 * Return the flags of the end of the specified markup object, or 0 if it is not attached to this buffer.
			 */
			public getSpanFlags(what: any): number;
			/**
			 * Return an array of the spans of the specified type that overlap the specified range of the buffer. The kind may be Object.class to get a list of all the spans regardless of type.
			 */
			public getSpans<T>(queryStart: number, queryEnd: number, kind: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the next offset after <code>start</code> but less than or equal to <code>limit</code> where a span of the specified type begins or ends.
			 */
			public nextSpanTransition(start: number, limit: number, kind: java.lang.Class<any>): number;
			/**
			 * Return a new CharSequence containing a copy of the specified range of this buffer, including the overlapping spans.
			 */
			public subSequence(start: number, end: number): string;
			/**
			 * Copy the specified range of chars from this buffer into the specified array, beginning at the specified offset.
			 */
			public getChars(start: number, end: number, dest: native.Array<string>, destoff: number): void;
			/**
			 * Return a String containing a copy of the chars in this buffer.
			 */
			public toString(): string;
			/**
			 * Returns the next cursor position in the run. This avoids placing the cursor between surrogates, between characters that form conjuncts, between base characters and combining marks, or within a reordering cluster.
			 * @param contextStart the start index of the context
			 * @param contextEnd the (non-inclusive) end index of the context
			 * @param flags either DIRECTION_RTL or DIRECTION_LTR
			 * @param offset the cursor position to move from
			 * @param cursorOpt how to move the cursor, one of CURSOR_AFTER,
			 * @param p the Paint object that is requesting this information
			 */
			public getTextRunCursor(contextStart: number, contextEnd: number, flags: number, offset: number, cursorOpt: number, p: android.graphics.Paint): number;
			public setFilters(filters: native.Array<android.text.IInputFilter>): void;
			public getFilters(): native.Array<android.text.IInputFilter>;
		}
		/**
		 * This is the interface for text to which markup objects can be attached and detached. Not all Spannable classes have mutable text; see Editable for that.
		 */
		export class Spannable implements android.text.ISpanned, android.text.ISpannable {
			constructor(implementation: android.text.ISpannable);
			/**
			 * Attach the specified markup object to the range <code>start&hellip;end</code> of the text, or move the object to that range if it was already attached elsewhere. See Spanned for an explanation of what the flags mean. The object can be one that has meaning only within your application, or it can be one that the text system will use to affect text display or behavior. Some noteworthy ones are the subclasses of android.text.style.CharacterStyle and android.text.style.ParagraphStyle, and android.text.TextWatcher and android.text.SpanWatcher.
			 */
			public setSpan(what: any, start: number, end: number, flags: number): void;
			/**
			 * Remove the specified object from the range of text to which it was attached, if any. It is OK to remove an object that was never attached in the first place.
			 */
			public removeSpan(what: any): void;
			/**
			 * Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.
			 */
			getSpans<T>(start: number, end: number, type: java.lang.Class<T>): native.Array<T>;
			/**
			 * Return the beginning of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanStart(tag: any): number;
			/**
			 * Return the end of the range of text to which the specified markup object is attached, or -1 if the object is not attached.
			 */
			getSpanEnd(tag: any): number;
			/**
			 * Return the flags that were specified when Spannable#setSpan was used to attach the specified markup object, or 0 if the specified object has not been attached.
			 */
			getSpanFlags(tag: any): number;
			/**
			 * Return the first offset greater than or equal to <code>start</code> where a markup object of class <code>type</code> begins or ends, or <code>limit</code> if there are no starts or ends greater than or equal to <code>start</code> but less than <code>limit</code>. Specify <code>null</code> or Object.class for the type if you want every transition regardless of type.
			 */
			nextSpanTransition(start: number, limit: number, type: java.lang.Class<any>): number;
			/**
			 * Returns the number of characters in this sequence.
			 */
			length(): number;
			/**
			 * Returns the character at the specified index, with the first character having index zero.
			 * @param index 
			 */
			charAt(index: number): string;
			/**
			 * Returns a CharSequence from the start index (inclusive) to the end index (exclusive) of this sequence.
			 * @param start 
			 * @param end 
			 */
			subSequence(start: number, end: number): string;
			/**
			 * Returns a string with the same characters in the same order as in this sequence.
			 */
			toString(): string;
		}
		export module Spannable {
			/**
			 * Factory used by TextView to create new Spannables. You can subclass it to provide something other than SpannableString.
			 */
			export class Factory extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.text.Spannable.Factory>;
				/**
				 * Returns the standard Spannable Factory.
				 */
				public static getInstance(): android.text.Spannable.Factory;
				/**
				 * Returns a new SpannableString from the specified CharSequence. You can override this to provide a different kind of Spannable.
				 */
				public newSpannable(source: string): android.text.ISpannable;
			}
		}
	}
	export module net {
		export class SSLTest {
			constructor();
			static class: java.lang.Class<android.net.SSLTest>;
			public testCertificate(): void;
			public testStringsToNpnBytes(): void;
			public testStringsToNpnBytesEmptyArray(): void;
			public testStringsToNpnBytesEmptyByteArray(): void;
			public testStringsToNpnBytesOversizedInput(): void;
		}
		export class NetworkStatsHistoryTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.net.NetworkStatsHistoryTest>;
			protected tearDown(): void;
			public testReadOriginalVersion(): void;
			public testRecordSingleBucket(): void;
			public testRecordEqualBuckets(): void;
			public testRecordTouchingBuckets(): void;
			public testRecordGapBuckets(): void;
			public testRecordOverlapBuckets(): void;
			public testRecordEntireGapIdentical(): void;
			public testRecordEntireOverlapVaryingBuckets(): void;
			public testRemove(): void;
			public testTotalData(): void;
			public testFuzzing(): void;
			public testIgnoreFields(): void;
			public testIgnoreFieldsRecordIn(): void;
			public testIgnoreFieldsRecordOut(): void;
			public testSerialize(): void;
			public testVarLong(): void;
			public testIndexBeforeAfter(): void;
		}
		export class LinkPropertiesTest {
			constructor();
			static class: java.lang.Class<android.net.LinkPropertiesTest>;
			public testEqualsNull(): void;
			public testEqualsSameOrder(): void;
			public testEqualsDifferentOrder(): void;
			public testEqualsDuplicated(): void;
		}
		/**
		 * Class that answers queries about the state of network connectivity. It also notifies applications when network connectivity changes. Get an instance of this class by calling android.content.Context#getSystemService(String) Context.getSystemService(Context.CONNECTIVITY_SERVICE).
		 */
		export class ConnectivityManager extends java.lang.Object {
			/**
			 * A change in network connectivity has occurred. A connection has either been established or lost. The NetworkInfo for the affected network is sent as an extra; it should be consulted to see what kind of connectivity event occurred. <p/> If this is a connection that was the result of failing over from a disconnected network, then the FAILOVER_CONNECTION boolean extra is set to true. <p/> For a loss of connectivity, if the connectivity manager is attempting to connect (or has already connected) to another network, the NetworkInfo for the new network is also passed as an extra. This lets any receivers of the broadcast know that they should not necessarily tell the user that no data traffic will be possible. Instead, the reciever should expect another broadcast soon, indicating either that the failover attempt succeeded (and so there is still overall data connectivity), or that the failover attempt failed, meaning that all connectivity has been lost. <p/> For a disconnect event, the boolean extra EXTRA_NO_CONNECTIVITY is set to true if there are no connected networks at all.
			 */
			static CONNECTIVITY_ACTION: string;
			/**
			 * The lookup key for a NetworkInfo object. Retrieve with android.content.Intent#getParcelableExtra(String).
			 */
			static EXTRA_NETWORK_INFO: string;
			/**
			 * Network type which triggered a #CONNECTIVITY_ACTION broadcast. Can be used with #getNetworkInfo(int) to get NetworkInfo state based on the calling application.
			 */
			static EXTRA_NETWORK_TYPE: string;
			/**
			 * The lookup key for a boolean that indicates whether a connect event is for a network to which the connectivity manager was failing over following a disconnect on another network. Retrieve it with android.content.Intent#getBooleanExtra(String,boolean).
			 */
			static EXTRA_IS_FAILOVER: string;
			/**
			 * The lookup key for a NetworkInfo object. This is supplied when there is another network that it may be possible to connect to. Retrieve with android.content.Intent#getParcelableExtra(String).
			 */
			static EXTRA_OTHER_NETWORK_INFO: string;
			/**
			 * The lookup key for a boolean that indicates whether there is a complete lack of connectivity, i.e., no network is available. Retrieve it with android.content.Intent#getBooleanExtra(String,boolean).
			 */
			static EXTRA_NO_CONNECTIVITY: string;
			/**
			 * The lookup key for a string that indicates why an attempt to connect to a network failed. The string has no particular structure. It is intended to be used in notifications presented to users. Retrieve it with android.content.Intent#getStringExtra(String).
			 */
			static EXTRA_REASON: string;
			/**
			 * The lookup key for a string that provides optionally supplied extra information about the network state. The information may be passed up from the lower networking layers, and its meaning may be specific to a particular network type. Retrieve it with android.content.Intent#getStringExtra(String).
			 */
			static EXTRA_EXTRA_INFO: string;
			/**
			 * Broadcast Action: The setting for background data usage has changed values. Use #getBackgroundDataSetting() to get the current value.
			 */
			static ACTION_BACKGROUND_DATA_SETTING_CHANGED: string;
			/**
			 * The Default Mobile data connection. When active, all data traffic will use this connection by default.
			 */
			static TYPE_MOBILE: number;
			/**
			 * The Default WIFI data connection. When active, all data traffic will use this connection by default.
			 */
			static TYPE_WIFI: number;
			/**
			 * An MMS-specific Mobile data connection. This connection may be the same as #TYPE_MOBILE but it may be different. This is used by applications needing to talk to the carrier's Multimedia Messaging Service servers. It may coexist with default data connections.
			 */
			static TYPE_MOBILE_MMS: number;
			/**
			 * A SUPL-specific Mobile data connection. This connection may be the same as #TYPE_MOBILE but it may be different. This is used by applications needing to talk to the carrier's Secure User Plane Location servers for help locating the device. It may coexist with default data connections.
			 */
			static TYPE_MOBILE_SUPL: number;
			/**
			 * A DUN-specific Mobile data connection. This connection may be the same as #TYPE_MOBILE but it may be different. This is used by applicaitons performing a Dial Up Networking bridge so that the carrier is aware of DUN traffic. It may coexist with default data connections.
			 */
			static TYPE_MOBILE_DUN: number;
			/**
			 * A High Priority Mobile data connection. This connection is typically the same as #TYPE_MOBILE but the routing setup is different. Only requesting processes will have access to the Mobile DNS servers and only IP's explicitly requested via #requestRouteToHost will route over this interface if a default route exists.
			 */
			static TYPE_MOBILE_HIPRI: number;
			/**
			 * The Default WiMAX data connection. When active, all data traffic will use this connection by default.
			 */
			static TYPE_WIMAX: number;
			/**
			 * The Default Bluetooth data connection. When active, all data traffic will use this connection by default.
			 */
			static TYPE_BLUETOOTH: number;
			/**
			 * Dummy data connection. This should not be used on shipping devices.
			 */
			static TYPE_DUMMY: number;
			/**
			 * The Default Ethernet data connection. When active, all data traffic will use this connection by default.
			 */
			static TYPE_ETHERNET: number;
			static DEFAULT_NETWORK_PREFERENCE: number;
			static class: java.lang.Class<android.net.ConnectivityManager>;
			public static isNetworkTypeValid(networkType: number): boolean;
			public setNetworkPreference(preference: number): void;
			public getNetworkPreference(): number;
			/**
			 * Returns details about the currently active data network. When connected, this network is the default route for outgoing connections. You should always check NetworkInfo#isConnected() before initiating network traffic. This may return null when no networks are available.
			 */
			public getActiveNetworkInfo(): android.net.NetworkInfo;
			public getNetworkInfo(networkType: number): android.net.NetworkInfo;
			public getAllNetworkInfo(): native.Array<android.net.NetworkInfo>;
			/**
			 * Tells the underlying networking system that the caller wants to begin using the named feature. The interpretation of feature is completely up to each networking implementation.
			 * @param networkType specifies which network the request pertains to
			 * @param feature the name of the feature to be used
			 */
			public startUsingNetworkFeature(networkType: number, feature: string): number;
			/**
			 * Tells the underlying networking system that the caller is finished using the named feature. The interpretation of feature is completely up to each networking implementation.
			 * @param networkType specifies which network the request pertains to
			 * @param feature the name of the feature that is no longer needed
			 */
			public stopUsingNetworkFeature(networkType: number, feature: string): number;
			/**
			 * Ensure that a network route exists to deliver traffic to the specified host via the specified network interface. An attempt to add a route that already exists is ignored, but treated as successful.
			 * @param networkType the type of the network over which traffic to the specified
			 * @param hostAddress the IP address of the host to which the route is desired
			 */
			public requestRouteToHost(networkType: number, hostAddress: number): boolean;
			/**
			 * Returns the value of the setting for background data usage. If false, applications should not use the network if the application is not in the foreground. Developers should respect this setting, and check the value of this before performing any background data operations.
			 */
			public getBackgroundDataSetting(): boolean;
			/**
			 * Returns if the currently active data network is metered. A network is classified as metered when the user is sensitive to heavy data usage on that connection. You should check this before doing large data transfers, and warn the user or delay the operation until another network is available.
			 */
			public isActiveNetworkMetered(): boolean;
		}
		/**
		 * Creates a (non-server) socket in the UNIX-domain namespace. The interface here is not entirely unlike that of java.net.Socket
		 */
		export class LocalSocket extends java.lang.Object implements java.io.ICloseable {
			/**
			 * Creates a AF_LOCAL/UNIX domain stream socket.
			 */
			constructor();
			static class: java.lang.Class<android.net.LocalSocket>;
			/**
			 * 
			 */
			public toString(): string;
			/**
			 * Connects this socket to an endpoint. May only be called on an instance that has not yet been connected.
			 * @param endpoint endpoint address
			 */
			public connect(endpoint: android.net.LocalSocketAddress): void;
			/**
			 * Binds this socket to an endpoint name. May only be called on an instance that has not yet been bound.
			 * @param bindpoint endpoint address
			 */
			public bind(bindpoint: android.net.LocalSocketAddress): void;
			/**
			 * Retrieves the name that this socket is bound to, if any.
			 */
			public getLocalSocketAddress(): android.net.LocalSocketAddress;
			/**
			 * Retrieves the input stream for this instance.
			 */
			public getInputStream(): java.io.InputStream;
			/**
			 * Retrieves the output stream for this instance.
			 */
			public getOutputStream(): java.io.OutputStream;
			/**
			 * Closes the socket.
			 */
			public close(): void;
			/**
			 * Shuts down the input side of the socket.
			 */
			public shutdownInput(): void;
			/**
			 * Shuts down the output side of the socket.
			 */
			public shutdownOutput(): void;
			public setReceiveBufferSize(size: number): void;
			public getReceiveBufferSize(): number;
			public setSoTimeout(n: number): void;
			public getSoTimeout(): number;
			public setSendBufferSize(n: number): void;
			public getSendBufferSize(): number;
			public getRemoteSocketAddress(): android.net.LocalSocketAddress;
			public isConnected(): boolean;
			public isClosed(): boolean;
			public isBound(): boolean;
			public isOutputShutdown(): boolean;
			public isInputShutdown(): boolean;
			public connect(endpoint: android.net.LocalSocketAddress, timeout: number): void;
			/**
			 * Enqueues a set of file descriptors to send to the peer. The queue is one deep. The file descriptors will be sent with the next write of normal data, and will be delivered in a single ancillary message. See "man 7 unix" SCM_RIGHTS on a desktop Linux machine.
			 * @param fds non-null; file descriptors to send.
			 */
			public setFileDescriptorsForSend(fds: native.Array<java.io.FileDescriptor>): void;
			/**
			 * Retrieves a set of file descriptors that a peer has sent through an ancillary message. This method retrieves the most recent set sent, and then returns null until a new set arrives. File descriptors may only be passed along with regular data, so this method can only return a non-null after a read operation.
			 */
			public getAncillaryFileDescriptors(): native.Array<java.io.FileDescriptor>;
			/**
			 * Retrieves the credentials of this socket's peer. Only valid on connected sockets.
			 */
			public getPeerCredentials(): android.net.Credentials;
			/**
			 * Returns file descriptor or null if not yet open/already closed
			 */
			public getFileDescriptor(): java.io.FileDescriptor;
		}
		/**
		 * A simple object for retrieving the results of a DHCP request.
		 */
		export class DhcpInfo extends java.lang.Object implements android.os.IParcelable {
			constructor();
			ipAddress: number;
			gateway: number;
			netmask: number;
			dns1: number;
			dns2: number;
			serverAddress: number;
			leaseDuration: number;
			static class: java.lang.Class<android.net.DhcpInfo>;
			public toString(): string;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Immutable URI reference. A URI reference includes a URI and a fragment, the component of the URI following a '#'. Builds and parses URI references which conform to <a href="http://www.faqs.org/rfcs/rfc2396.html">RFC 2396</a>.
		 */
		export class Uri extends java.lang.Object implements android.os.IParcelable {
			/**
			 * The empty URI, equivalent to "".
			 */
			static EMPTY: android.net.Uri;
			/**
			 * Reads Uris from Parcels.
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.net.Uri>;
			static class: java.lang.Class<android.net.Uri>;
			/**
			 * Returns true if this URI is hierarchical like "http://google.com". Absolute URIs are hierarchical if the scheme-specific part starts with a '/'. Relative URIs are always hierarchical.
			 */
			public isHierarchical(): boolean;
			/**
			 * Returns true if this URI is opaque like "mailto:nobody The scheme-specific part of an opaque URI cannot start with a '/'.
			 */
			public isOpaque(): boolean;
			/**
			 * Returns true if this URI is relative, i.e. if it doesn't contain an explicit scheme.
			 */
			public isRelative(): boolean;
			/**
			 * Returns true if this URI is absolute, i.e. if it contains an explicit scheme.
			 */
			public isAbsolute(): boolean;
			/**
			 * Gets the scheme of this URI. Example: "http"
			 */
			public getScheme(): string;
			/**
			 * Gets the scheme-specific part of this URI, i.e. everything between the scheme separator ':' and the fragment separator '#'. If this is a relative URI, this method returns the entire URI. Decodes escaped octets.
			 */
			public getSchemeSpecificPart(): string;
			/**
			 * Gets the scheme-specific part of this URI, i.e. everything between the scheme separator ':' and the fragment separator '#'. If this is a relative URI, this method returns the entire URI. Leaves escaped octets intact.
			 */
			public getEncodedSchemeSpecificPart(): string;
			/**
			 * Gets the decoded authority part of this URI. For server addresses, the authority is structured as follows: [ userinfo ' ] host [ ':' port ]
			 */
			public getAuthority(): string;
			/**
			 * Gets the encoded authority part of this URI. For server addresses, the authority is structured as follows: [ userinfo ' ] host [ ':' port ]
			 */
			public getEncodedAuthority(): string;
			/**
			 * Gets the decoded user information from the authority. For example, if the authority is "nobody this method will return "nobody".
			 */
			public getUserInfo(): string;
			/**
			 * Gets the encoded user information from the authority. For example, if the authority is "nobody this method will return "nobody".
			 */
			public getEncodedUserInfo(): string;
			/**
			 * Gets the encoded host from the authority for this URI. For example, if the authority is "bob this method will return "google.com".
			 */
			public getHost(): string;
			/**
			 * Gets the port from the authority for this URI. For example, if the authority is "google.com:80", this method will return 80.
			 */
			public getPort(): number;
			/**
			 * Gets the decoded path.
			 */
			public getPath(): string;
			/**
			 * Gets the encoded path.
			 */
			public getEncodedPath(): string;
			/**
			 * Gets the decoded query component from this URI. The query comes after the query separator ('?') and before the fragment separator ('#'). This method would return "q=android" for "http://www.google.com/search?q=android".
			 */
			public getQuery(): string;
			/**
			 * Gets the encoded query component from this URI. The query comes after the query separator ('?') and before the fragment separator ('#'). This method would return "q=android" for "http://www.google.com/search?q=android".
			 */
			public getEncodedQuery(): string;
			/**
			 * Gets the decoded fragment part of this URI, everything after the '#'.
			 */
			public getFragment(): string;
			/**
			 * Gets the encoded fragment part of this URI, everything after the '#'.
			 */
			public getEncodedFragment(): string;
			/**
			 * Gets the decoded path segments.
			 */
			public getPathSegments(): java.util.IList<string>;
			/**
			 * Gets the decoded last segment in the path.
			 */
			public getLastPathSegment(): string;
			/**
			 * Compares this Uri to another object for equality. Returns true if the encoded string representations of this Uri and the given Uri are equal. Case counts. Paths are not normalized. If one Uri specifies a default port explicitly and the other leaves it implicit, they will not be considered equal.
			 */
			public equals(o: any): boolean;
			/**
			 * Hashes the encoded string represention of this Uri consistently with #equals(Object).
			 */
			public hashCode(): number;
			/**
			 * Compares the string representation of this Uri with that of another.
			 */
			public compareTo(other: android.net.Uri): number;
			/**
			 * Returns the encoded string representation of this URI. Example: "http://google.com/"
			 */
			public toString(): string;
			/**
			 * Constructs a new builder, copying the attributes from this Uri.
			 */
			public buildUpon(): android.net.Uri.Builder;
			/**
			 * Creates a Uri which parses the given encoded URI string.
			 * @param uriString an RFC 2396-compliant, encoded URI
			 */
			public static parse(uriString: string): android.net.Uri;
			/**
			 * Creates a Uri from a file. The URI has the form "file://<absolute path>". Encodes path characters with the exception of '/'.
			 */
			public static fromFile(file: java.io.File): android.net.Uri;
			/**
			 * Creates an opaque Uri from the given components. Encodes the ssp which means this method cannot be used to create hierarchical URIs.
			 * @param scheme of the URI
			 * @param ssp scheme-specific-part, everything between the
			 * @param fragment fragment, everything after the '#', null if undefined,
			 */
			public static fromParts(scheme: string, ssp: string, fragment: string): android.net.Uri;
			/**
			 * Returns a set of the unique names of all query parameters. Iterating over the set will return the names in order of their first occurrence.
			 */
			public getQueryParameterNames(): java.util.ISet<string>;
			/**
			 * Searches the query string for parameter values with the given key.
			 * @param key which will be encoded
			 */
			public getQueryParameters(key: string): java.util.IList<string>;
			/**
			 * Searches the query string for the first value with the given key.
			 * @param key which will be encoded
			 */
			public getQueryParameter(key: string): string;
			/**
			 * Searches the query string for the first value with the given key and interprets it as a boolean value. "false" and "0" are interpreted as <code>false</code>, everything else is interpreted as <code>true</code>.
			 * @param key which will be decoded
			 * @param defaultValue the default value to return if there is no query parameter for key
			 */
			public getBooleanQueryParameter(key: string, defaultValue: boolean): boolean;
			/**
			 * Return an equivalent URI with a lowercase scheme component. This aligns the Uri with Android best practices for intent filtering.
			 */
			public normalizeScheme(): android.net.Uri;
			/**
			 * Writes a Uri to a Parcel.
			 * @param out parcel to write to
			 * @param uri to write, can be null
			 */
			public static writeToParcel(out: android.os.Parcel, uri: android.net.Uri): void;
			/**
			 * Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme. Leaves letters ("A-Z", "a-z"), numbers ("0-9"), and unreserved characters ("_-!.~'()*") intact. Encodes all other characters.
			 * @param s string to encode
			 */
			public static encode(s: string): string;
			/**
			 * Encodes characters in the given string as '%'-escaped octets using the UTF-8 scheme. Leaves letters ("A-Z", "a-z"), numbers ("0-9"), and unreserved characters ("_-!.~'()*") intact. Encodes all other characters with the exception of those specified in the allow argument.
			 * @param s string to encode
			 * @param allow set of additional characters to allow in the encoded form,
			 */
			public static encode(s: string, allow: string): string;
			/**
			 * Decodes '%'-escaped octets in the given string using the UTF-8 scheme. Replaces invalid octets with the unicode replacement character ("\\uFFFD").
			 * @param s encoded string to decode
			 */
			public static decode(s: string): string;
			/**
			 * Creates a new Uri by appending an already-encoded path segment to a base Uri.
			 * @param baseUri Uri to append path segment to
			 * @param pathSegment encoded path segment to append
			 */
			public static withAppendedPath(baseUri: android.net.Uri, pathSegment: string): android.net.Uri;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export module Uri {
			/**
			 * An implementation which wraps a String URI. This URI can be opaque or hierarchical, but we extend AbstractHierarchicalUri in case we need the hierarchical functionality.
			 */
			export class StringUri extends android.net.Uri.AbstractHierarchicalUri {
				static class: java.lang.Class<android.net.Uri.StringUri>;
				static readFrom(parcel: android.os.Parcel): android.net.Uri;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
				public isHierarchical(): boolean;
				public isRelative(): boolean;
				public getScheme(): string;
				public getEncodedSchemeSpecificPart(): string;
				public getSchemeSpecificPart(): string;
				public getEncodedAuthority(): string;
				public getAuthority(): string;
				public getPath(): string;
				public getEncodedPath(): string;
				public getPathSegments(): java.util.IList<string>;
				public getEncodedQuery(): string;
				public getQuery(): string;
				public getEncodedFragment(): string;
				public getFragment(): string;
				public toString(): string;
				/**
				 * Parses an authority out of the given URI string.
				 * @param uriString URI string
				 * @param ssi scheme separator index, -1 for a relative URI
				 */
				static parseAuthority(uriString: string, ssi: number): string;
				/**
				 * Parses a path out of this given URI string.
				 * @param uriString URI string
				 * @param ssi scheme separator index, -1 for a relative URI
				 */
				static parsePath(uriString: string, ssi: number): string;
				public buildUpon(): android.net.Uri.Builder;
				/**
				 * Writes a Uri to a Parcel.
				 * @param out parcel to write to
				 * @param uri to write, can be null
				 */
				static writeToParcel(out: android.os.Parcel, uri: android.net.Uri): void;
			}
			/**
			 * Support for hierarchical URIs.
			 */
			export class AbstractHierarchicalUri extends android.net.Uri {
				static class: java.lang.Class<android.net.Uri.AbstractHierarchicalUri>;
				public getLastPathSegment(): string;
				public getEncodedUserInfo(): string;
				public getUserInfo(): string;
				public getHost(): string;
				public getPort(): number;
			}
			/**
			 * Immutable wrapper of encoded and decoded versions of a path part. Lazily creates the encoded or decoded version from the other.
			 */
			export class PathPart extends android.net.Uri.AbstractPart {
				static class: java.lang.Class<android.net.Uri.PathPart>;
				getEncoded(): string;
				/**
				 * Gets the individual path segments. Parses them if necessary.
				 */
				getPathSegments(): android.net.Uri.PathSegments;
				static appendEncodedSegment(oldPart: android.net.Uri.PathPart, newSegment: string): android.net.Uri.PathPart;
				static appendDecodedSegment(oldPart: android.net.Uri.PathPart, decoded: string): android.net.Uri.PathPart;
				static readFrom(parcel: android.os.Parcel): android.net.Uri.PathPart;
				/**
				 * Creates a path from the encoded string.
				 * @param encoded part string
				 */
				static fromEncoded(encoded: string): android.net.Uri.PathPart;
				/**
				 * Creates a path from the decoded string.
				 * @param decoded part string
				 */
				static fromDecoded(decoded: string): android.net.Uri.PathPart;
				/**
				 * Creates a path from the encoded and decoded strings.
				 * @param encoded part string
				 * @param decoded part string
				 */
				static from(encoded: string, decoded: string): android.net.Uri.PathPart;
				/**
				 * Prepends path values with "/" if they're present, not empty, and they don't already start with "/".
				 */
				static makeAbsolute(oldPart: android.net.Uri.PathPart): android.net.Uri.PathPart;
			}
			/**
			 * Immutable wrapper of encoded and decoded versions of a URI part. Lazily creates the encoded or decoded version from the other.
			 */
			export class Part extends android.net.Uri.AbstractPart {
				static class: java.lang.Class<android.net.Uri.Part>;
				isEmpty(): boolean;
				getEncoded(): string;
				static readFrom(parcel: android.os.Parcel): android.net.Uri.Part;
				/**
				 * Returns given part or #NULL if the given part is null.
				 */
				static nonNull(part: android.net.Uri.Part): android.net.Uri.Part;
				/**
				 * Creates a part from the encoded string.
				 * @param encoded part string
				 */
				static fromEncoded(encoded: string): android.net.Uri.Part;
				/**
				 * Creates a part from the decoded string.
				 * @param decoded part string
				 */
				static fromDecoded(decoded: string): android.net.Uri.Part;
				/**
				 * Creates a part from the encoded and decoded strings.
				 * @param encoded part string
				 * @param decoded part string
				 */
				static from(encoded: string, decoded: string): android.net.Uri.Part;
			}
			export module Part {
				export class EmptyPart extends android.net.Uri.Part {
					constructor(value: string);
					static class: java.lang.Class<android.net.Uri.Part.EmptyPart>;
					isEmpty(): boolean;
				}
			}
			/**
			 * Helper class for building or manipulating URI references. Not safe for concurrent use.
			 */
			export class Builder extends java.lang.Object {
				/**
				 * Constructs a new Builder.
				 */
				constructor();
				static class: java.lang.Class<android.net.Uri.Builder>;
				/**
				 * Sets the scheme.
				 * @param scheme name or {@code null} if this is a relative Uri
				 */
				public scheme(scheme: string): android.net.Uri.Builder;
				opaquePart(opaquePart: android.net.Uri.Part): android.net.Uri.Builder;
				/**
				 * Encodes and sets the given opaque scheme-specific-part.
				 * @param opaquePart decoded opaque part
				 */
				public opaquePart(opaquePart: string): android.net.Uri.Builder;
				/**
				 * Sets the previously encoded opaque scheme-specific-part.
				 * @param opaquePart encoded opaque part
				 */
				public encodedOpaquePart(opaquePart: string): android.net.Uri.Builder;
				authority(authority: android.net.Uri.Part): android.net.Uri.Builder;
				/**
				 * Encodes and sets the authority.
				 */
				public authority(authority: string): android.net.Uri.Builder;
				/**
				 * Sets the previously encoded authority.
				 */
				public encodedAuthority(authority: string): android.net.Uri.Builder;
				path(path: android.net.Uri.PathPart): android.net.Uri.Builder;
				/**
				 * Sets the path. Leaves '/' characters intact but encodes others as necessary.
				 */
				public path(path: string): android.net.Uri.Builder;
				/**
				 * Sets the previously encoded path.
				 */
				public encodedPath(path: string): android.net.Uri.Builder;
				/**
				 * Encodes the given segment and appends it to the path.
				 */
				public appendPath(newSegment: string): android.net.Uri.Builder;
				/**
				 * Appends the given segment to the path.
				 */
				public appendEncodedPath(newSegment: string): android.net.Uri.Builder;
				query(query: android.net.Uri.Part): android.net.Uri.Builder;
				/**
				 * Encodes and sets the query.
				 */
				public query(query: string): android.net.Uri.Builder;
				/**
				 * Sets the previously encoded query.
				 */
				public encodedQuery(query: string): android.net.Uri.Builder;
				fragment(fragment: android.net.Uri.Part): android.net.Uri.Builder;
				/**
				 * Encodes and sets the fragment.
				 */
				public fragment(fragment: string): android.net.Uri.Builder;
				/**
				 * Sets the previously encoded fragment.
				 */
				public encodedFragment(fragment: string): android.net.Uri.Builder;
				/**
				 * Encodes the key and value and then appends the parameter to the query string.
				 * @param key which will be encoded
				 * @param value which will be encoded
				 */
				public appendQueryParameter(key: string, value: string): android.net.Uri.Builder;
				/**
				 * Clears the the previously set query.
				 */
				public clearQuery(): android.net.Uri.Builder;
				/**
				 * Constructs a Uri with the current attributes.
				 */
				public build(): android.net.Uri;
				public toString(): string;
			}
			/**
			 * Support for part implementations.
			 */
			export class AbstractPart extends java.lang.Object {
				static class: java.lang.Class<android.net.Uri.AbstractPart>;
				getEncoded(): string;
				getDecoded(): string;
				writeTo(parcel: android.os.Parcel): void;
			}
			export module AbstractPart {
				/**
				 * Enum which indicates which representation of a given part we have.
				 */
				export class Representation extends java.lang.Object {
					static class: java.lang.Class<android.net.Uri.AbstractPart.Representation>;
				}
			}
			/**
			 * Builds PathSegments.
			 */
			export class PathSegmentsBuilder extends java.lang.Object {
				static class: java.lang.Class<android.net.Uri.PathSegmentsBuilder>;
				add(segment: string): void;
				build(): android.net.Uri.PathSegments;
			}
			/**
			 * Opaque URI.
			 */
			export class OpaqueUri extends android.net.Uri {
				static class: java.lang.Class<android.net.Uri.OpaqueUri>;
				static readFrom(parcel: android.os.Parcel): android.net.Uri;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
				public isHierarchical(): boolean;
				public isRelative(): boolean;
				public getScheme(): string;
				public getEncodedSchemeSpecificPart(): string;
				public getSchemeSpecificPart(): string;
				public getAuthority(): string;
				public getEncodedAuthority(): string;
				public getPath(): string;
				public getEncodedPath(): string;
				public getQuery(): string;
				public getEncodedQuery(): string;
				public getFragment(): string;
				public getEncodedFragment(): string;
				public getPathSegments(): java.util.IList<string>;
				public getLastPathSegment(): string;
				public getUserInfo(): string;
				public getEncodedUserInfo(): string;
				public getHost(): string;
				public getPort(): number;
				public toString(): string;
				public buildUpon(): android.net.Uri.Builder;
				/**
				 * Writes a Uri to a Parcel.
				 * @param out parcel to write to
				 * @param uri to write, can be null
				 */
				static writeToParcel(out: android.os.Parcel, uri: android.net.Uri): void;
			}
			/**
			 * Wrapper for path segment array.
			 */
			export class PathSegments extends java.util.AbstractList<string> implements java.util.IRandomAccess {
				static class: java.lang.Class<android.net.Uri.PathSegments>;
				public get(index: number): string;
				public size(): number;
			}
			/**
			 * Hierarchical Uri.
			 */
			export class HierarchicalUri extends android.net.Uri.AbstractHierarchicalUri {
				static class: java.lang.Class<android.net.Uri.HierarchicalUri>;
				static readFrom(parcel: android.os.Parcel): android.net.Uri;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
				public isHierarchical(): boolean;
				public isRelative(): boolean;
				public getScheme(): string;
				public getEncodedSchemeSpecificPart(): string;
				public getSchemeSpecificPart(): string;
				public getAuthority(): string;
				public getEncodedAuthority(): string;
				public getEncodedPath(): string;
				public getPath(): string;
				public getQuery(): string;
				public getEncodedQuery(): string;
				public getFragment(): string;
				public getEncodedFragment(): string;
				public getPathSegments(): java.util.IList<string>;
				public toString(): string;
				public buildUpon(): android.net.Uri.Builder;
				/**
				 * Writes a Uri to a Parcel.
				 * @param out parcel to write to
				 * @param uri to write, can be null
				 */
				static writeToParcel(out: android.os.Parcel, uri: android.net.Uri): void;
			}
		}
		/**
		 * A convenience class for accessing the user and default proxy settings.
		 */
		export class Proxy extends java.lang.Object {
			constructor();
			/**
			 * Used to notify an app that's caching the default connection proxy that either the default connection or its proxy has changed. The intent will have the following extra value:</p> <ul> <li><em>EXTRA_PROXY_INFO</em> - The ProxyProperties for the proxy. Non-null, though if the proxy is undefined the host string will be empty. </ul>
			 */
			static PROXY_CHANGE_ACTION: string;
			static class: java.lang.Class<android.net.Proxy>;
			/**
			 * Return the proxy host set by the user.
			 * @param ctx A Context used to get the settings for the proxy host.
			 */
			public static getHost(ctx: android.content.Context): string;
			/**
			 * Return the proxy port set by the user.
			 * @param ctx A Context used to get the settings for the proxy port.
			 */
			public static getPort(ctx: android.content.Context): number;
			/**
			 * Return the default proxy host specified by the carrier.
			 */
			public static getDefaultHost(): string;
			/**
			 * Return the default proxy port specified by the carrier.
			 */
			public static getDefaultPort(): number;
		}
		export module Proxy {
			export class AndroidProxySelectorRoutePlanner {
				static class: java.lang.Class<android.net.Proxy.AndroidProxySelectorRoutePlanner>;
			}
		}
		/**
		 * Class that provides network traffic statistics. These statistics include bytes transmitted and received and network packets transmitted and received, over all interfaces, over the mobile interface, and on a per-UID basis.
		 */
		export class TrafficStats extends java.lang.Object {
			constructor();
			/**
			 * The return value to indicate that the device does not support the statistic.
			 */
			static UNSUPPORTED: number;
			static class: java.lang.Class<android.net.TrafficStats>;
			/**
			 * Set active tag to use when accounting Socket traffic originating from the current thread. Only one active tag per thread is supported.
			 */
			public static setThreadStatsTag(tag: number): void;
			/**
			 * Get the active tag used when accounting Socket traffic originating from the current thread. Only one active tag per thread is supported. #tagSocket(Socket).
			 */
			public static getThreadStatsTag(): number;
			public static clearThreadStatsTag(): void;
			/**
			 * Tag the given Socket with any statistics parameters active for the current thread. Subsequent calls always replace any existing parameters. When finished, call #untagSocket(Socket) to remove statistics parameters.
			 */
			public static tagSocket(socket: java.net.Socket): void;
			/**
			 * Remove any statistics parameters from the given Socket.
			 */
			public static untagSocket(socket: java.net.Socket): void;
			/**
			 * Increment count of network operations performed under the accounting tag currently active on the calling thread. This can be used to derive bytes-per-operation.
			 * @param operationCount Number of operations to increment count by.
			 */
			public static incrementOperationCount(operationCount: number): void;
			/**
			 * Increment count of network operations performed under the given accounting tag. This can be used to derive bytes-per-operation.
			 * @param tag Accounting tag used in {@link #setThreadStatsTag(int)}.
			 * @param operationCount Number of operations to increment count by.
			 */
			public static incrementOperationCount(tag: number, operationCount: number): void;
			/**
			 * Get the total number of packets transmitted through the mobile interface.
			 */
			public static getMobileTxPackets(): any;
			/**
			 * Get the total number of packets received through the mobile interface.
			 */
			public static getMobileRxPackets(): any;
			/**
			 * Get the total number of bytes transmitted through the mobile interface.
			 */
			public static getMobileTxBytes(): any;
			/**
			 * Get the total number of bytes received through the mobile interface.
			 */
			public static getMobileRxBytes(): any;
			/**
			 * Get the total number of packets sent through all network interfaces.
			 */
			public static getTotalTxPackets(): any;
			/**
			 * Get the total number of packets received through all network interfaces.
			 */
			public static getTotalRxPackets(): any;
			/**
			 * Get the total number of bytes sent through all network interfaces.
			 */
			public static getTotalTxBytes(): any;
			/**
			 * Get the total number of bytes received through all network interfaces.
			 */
			public static getTotalRxBytes(): any;
			/**
			 * Get the number of bytes sent through the network for this UID. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidTxBytes(uid: number): any;
			/**
			 * Get the number of bytes received through the network for this UID. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidRxBytes(uid: number): any;
			/**
			 * Get the number of packets (TCP segments + UDP) sent through the network for this UID. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidTxPackets(uid: number): any;
			/**
			 * Get the number of packets (TCP segments + UDP) received through the network for this UID. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidRxPackets(uid: number): any;
			/**
			 * Get the number of TCP payload bytes sent for this UID. This total does not include protocol and control overheads at the transport and the lower layers of the networking stack. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidTcpTxBytes(uid: number): any;
			/**
			 * Get the number of TCP payload bytes received for this UID. This total does not include protocol and control overheads at the transport and the lower layers of the networking stack. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidTcpRxBytes(uid: number): any;
			/**
			 * Get the number of UDP payload bytes sent for this UID. This total does not include protocol and control overheads at the transport and the lower layers of the networking stack. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidUdpTxBytes(uid: number): any;
			/**
			 * Get the number of UDP payload bytes received for this UID. This total does not include protocol and control overheads at the transport and the lower layers of the networking stack. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidUdpRxBytes(uid: number): any;
			/**
			 * Get the number of TCP segments sent for this UID. Does not include TCP control packets (SYN/ACKs/FIN/..). The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidTcpTxSegments(uid: number): any;
			/**
			 * Get the number of TCP segments received for this UID. Does not include TCP control packets (SYN/ACKs/FIN/..). The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidTcpRxSegments(uid: number): any;
			/**
			 * Get the number of UDP packets sent for this UID. Includes DNS requests. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidUdpTxPackets(uid: number): any;
			/**
			 * Get the number of UDP packets received for this UID. Includes DNS responses. The statistics are across all interfaces.
			 * @param uid The UID of the process to examine.
			 */
			public static getUidUdpRxPackets(uid: number): any;
		}
		export class UriTest {
			constructor();
			static class: java.lang.Class<android.net.UriTest>;
			public testToStringWithPathOnly(): void;
			public testParcelling(): void;
			public testBuildUponOpaqueStringUri(): void;
			public testStringUri(): void;
			public testStringUriIsHierarchical(): void;
			public testNullUriString(): void;
			public testNullFile(): void;
			public testCompareTo(): void;
			public testEqualsAndHashCode(): void;
			public testAuthorityParsing(): void;
			public testBuildUponOpaqueUri(): void;
			public testBuildUponEncodedOpaqueUri(): void;
			public testPathSegmentDecoding(): void;
			public testSms(): void;
			public testEncodeWithAllowedChars(): void;
			public testEncodeDecode(): void;
			public testFile(): void;
			public testQueryParameters(): void;
			public testHostWithTrailingDot(): void;
			public testSchemeOnly(): void;
			public testEmptyPath(): void;
			public testPathOperations(): void;
			public testOpaqueUri(): void;
			public testHierarchicalUris(): void;
			public testEmptyToStringNotNull(): void;
			public testParcellingWithoutFragment(): void;
			public testGetQueryParameter(): void;
			public testGetQueryParameterWorkaround(): void;
			public testGetQueryParameterEdgeCases(): void;
			public testGetQueryParameterEmptyKey(): void;
			public testGetQueryParameterEmptyKey2(): void;
			public testGetQueryParameterEmptyKey3(): void;
			public testGetQueryParameterEmptyKey4(): void;
			public testGetQueryParametersEmptyKey(): void;
			public testGetQueryParametersEmptyKey2(): void;
			public testGetQueryParametersEmptyKey3(): void;
			public testGetQueryParameterNames(): void;
			public testGetQueryParameterNamesEmptyKey(): void;
			public testGetQueryParameterNamesEmptyKey2(): void;
			public testGetQueryParameterNamesEmptyValues(): void;
			public testGetQueryParameterNamesEdgeCases(): void;
			public testGetQueryParameterNamesEscapedKeys(): void;
			public testGetQueryParameterEscapedKeys(): void;
			public testClearQueryParameters(): void;
			/**
			 * Query parameters may omit the '='. http://b/3124097
			 */
			public testGetQueryParametersEmptyValue(): void;
			public testPlusCharacterInQuery(): void;
		}
		/**
		 * File-based cache of established SSL sessions. When re-establishing a connection to the same server, using an SSL session cache can save some time, power, and bandwidth by skipping directly to an encrypted stream. This is a persistent cache which can span executions of the application.
		 */
		export class SSLSessionCache extends java.lang.Object {
			/**
			 * Create a session cache using the specified directory. Individual session entries will be files within the directory. Multiple instances for the same directory share data internally.
			 * @param dir to store session files in (created if necessary)
			 */
			constructor(dir: java.io.File);
			/**
			 * Create a session cache at the default location for this app. Multiple instances share data internally.
			 * @param context for the application
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.net.SSLSessionCache>;
		}
		export module sip {
			/**
			 * Represents a SIP session that is associated with a SIP dialog or a standalone transaction not within a dialog.
			 */
			export class SipSession extends java.lang.Object {
				static class: java.lang.Class<android.net.sip.SipSession>;
				/**
				 * Gets the IP address of the local host on which this SIP session runs.
				 */
				public getLocalIp(): string;
				/**
				 * Gets the SIP profile that this session is associated with.
				 */
				public getLocalProfile(): android.net.sip.SipProfile;
				/**
				 * Gets the SIP profile that this session is connected to. Only available when the session is associated with a SIP dialog.
				 */
				public getPeerProfile(): android.net.sip.SipProfile;
				/**
				 * Gets the session state. The value returned must be one of the states in State.
				 */
				public getState(): number;
				/**
				 * Checks if the session is in a call.
				 */
				public isInCall(): boolean;
				/**
				 * Gets the call ID of the session.
				 */
				public getCallId(): string;
				/**
				 * Sets the listener to listen to the session events. A SipSession can only hold one listener at a time. Subsequent calls to this method override the previous listener.
				 * @param listener to listen to the session events of this object
				 */
				public setListener(listener: android.net.sip.SipSession.Listener): void;
				/**
				 * Performs registration to the server specified by the associated local profile. The session listener is called back upon success or failure of registration. The method is only valid to call when the session state is in State#READY_TO_CALL.
				 * @param duration duration in second before the registration expires
				 */
				public register(duration: number): void;
				/**
				 * Performs unregistration to the server specified by the associated local profile. Unregistration is technically the same as registration with zero expiration duration. The session listener is called back upon success or failure of unregistration. The method is only valid to call when the session state is in State#READY_TO_CALL.
				 */
				public unregister(): void;
				/**
				 * Initiates a call to the specified profile. The session listener is called back upon defined session events. The method is only valid to call when the session state is in State#READY_TO_CALL.
				 * @param callee the SIP profile to make the call to
				 * @param sessionDescription the session description of this call
				 * @param timeout the session will be timed out if the call is not
				 */
				public makeCall(callee: android.net.sip.SipProfile, sessionDescription: string, timeout: number): void;
				/**
				 * Answers an incoming call with the specified session description. The method is only valid to call when the session state is in State#INCOMING_CALL.
				 * @param sessionDescription the session description to answer this call
				 * @param timeout the session will be timed out if the call is not
				 */
				public answerCall(sessionDescription: string, timeout: number): void;
				/**
				 * Ends an established call, terminates an outgoing call or rejects an incoming call. The method is only valid to call when the session state is in State#IN_CALL, State#INCOMING_CALL, State#OUTGOING_CALL or State#OUTGOING_CALL_RING_BACK.
				 */
				public endCall(): void;
				/**
				 * Changes the session description during a call. The method is only valid to call when the session state is in State#IN_CALL.
				 * @param sessionDescription the new session description
				 * @param timeout the session will be timed out if the call is not
				 */
				public changeCall(sessionDescription: string, timeout: number): void;
			}
			export module SipSession {
				/**
				 * Listener for events relating to a SIP session, such as when a session is being registered ("on registering") or a call is outgoing ("on calling").
				 */
				export class Listener extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.net.sip.SipSession.Listener>;
					/**
					 * Called when an INVITE request is sent to initiate a new call.
					 * @param session the session object that carries out the transaction
					 */
					public onCalling(session: android.net.sip.SipSession): void;
					/**
					 * Called when an INVITE request is received.
					 * @param session the session object that carries out the transaction
					 * @param caller the SIP profile of the caller
					 * @param sessionDescription the caller's session description
					 */
					public onRinging(session: android.net.sip.SipSession, caller: android.net.sip.SipProfile, sessionDescription: string): void;
					/**
					 * Called when a RINGING response is received for the INVITE request sent
					 * @param session the session object that carries out the transaction
					 */
					public onRingingBack(session: android.net.sip.SipSession): void;
					/**
					 * Called when the session is established.
					 * @param session the session object that is associated with the dialog
					 * @param sessionDescription the peer's session description
					 */
					public onCallEstablished(session: android.net.sip.SipSession, sessionDescription: string): void;
					/**
					 * Called when the session is terminated.
					 * @param session the session object that is associated with the dialog
					 */
					public onCallEnded(session: android.net.sip.SipSession): void;
					/**
					 * Called when the peer is busy during session initialization.
					 * @param session the session object that carries out the transaction
					 */
					public onCallBusy(session: android.net.sip.SipSession): void;
					/**
					 * Called when an error occurs during session initialization and termination.
					 * @param session the session object that carries out the transaction
					 * @param errorCode error code defined in {@link SipErrorCode}
					 * @param errorMessage error message
					 */
					public onError(session: android.net.sip.SipSession, errorCode: number, errorMessage: string): void;
					/**
					 * Called when an error occurs during session modification negotiation.
					 * @param session the session object that carries out the transaction
					 * @param errorCode error code defined in {@link SipErrorCode}
					 * @param errorMessage error message
					 */
					public onCallChangeFailed(session: android.net.sip.SipSession, errorCode: number, errorMessage: string): void;
					/**
					 * Called when a registration request is sent.
					 * @param session the session object that carries out the transaction
					 */
					public onRegistering(session: android.net.sip.SipSession): void;
					/**
					 * Called when registration is successfully done.
					 * @param session the session object that carries out the transaction
					 * @param duration duration in second before the registration expires
					 */
					public onRegistrationDone(session: android.net.sip.SipSession, duration: number): void;
					/**
					 * Called when the registration fails.
					 * @param session the session object that carries out the transaction
					 * @param errorCode error code defined in {@link SipErrorCode}
					 * @param errorMessage error message
					 */
					public onRegistrationFailed(session: android.net.sip.SipSession, errorCode: number, errorMessage: string): void;
					/**
					 * Called when the registration gets timed out.
					 * @param session the session object that carries out the transaction
					 */
					public onRegistrationTimeout(session: android.net.sip.SipSession): void;
				}
				/**
				 * Defines SIP session states, such as "registering", "outgoing call", and "in call".
				 */
				export class State extends java.lang.Object {
					/**
					 * When session is ready to initiate a call or transaction.
					 */
					static READY_TO_CALL: number;
					/**
					 * When the registration request is sent out.
					 */
					static REGISTERING: number;
					/**
					 * When the unregistration request is sent out.
					 */
					static DEREGISTERING: number;
					/**
					 * When an INVITE request is received.
					 */
					static INCOMING_CALL: number;
					/**
					 * When an OK response is sent for the INVITE request received.
					 */
					static INCOMING_CALL_ANSWERING: number;
					/**
					 * When an INVITE request is sent.
					 */
					static OUTGOING_CALL: number;
					/**
					 * When a RINGING response is received for the INVITE request sent.
					 */
					static OUTGOING_CALL_RING_BACK: number;
					/**
					 * When a CANCEL request is sent for the INVITE request sent.
					 */
					static OUTGOING_CALL_CANCELING: number;
					/**
					 * When a call is established.
					 */
					static IN_CALL: number;
					/**
					 * When an OPTIONS request is sent.
					 */
					static PINGING: number;
					/**
					 * Not defined.
					 */
					static NOT_DEFINED: number;
					static class: java.lang.Class<android.net.sip.SipSession.State>;
					/**
					 * Converts the state to string.
					 */
					public static toString(state: number): string;
					/**
					 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
					 */
					toString(): string;
				}
			}
			/**
			 * Listener for SIP registration events.
			 */
			export class SipRegistrationListener implements android.net.sip.ISipRegistrationListener {
				constructor(implementation: android.net.sip.ISipRegistrationListener);
				/**
				 * Called when a registration request is sent.
				 * @param localProfileUri the URI string of the SIP profile to register with
				 */
				public onRegistering(localProfileUri: string): void;
				/**
				 * Called when the registration succeeded.
				 * @param localProfileUri the URI string of the SIP profile to register with
				 * @param expiryTime duration in seconds before the registration expires
				 */
				public onRegistrationDone(localProfileUri: string, expiryTime: number): void;
				/**
				 * Called when the registration failed.
				 * @param localProfileUri the URI string of the SIP profile to register with
				 * @param errorCode error code of this error
				 * @param errorMessage error message
				 */
				public onRegistrationFailed(localProfileUri: string, errorCode: number, errorMessage: string): void;
			}
			/**
			 * Handles an Internet audio call over SIP. You can instantiate this class with SipManager, using SipManager#makeAudioCall makeAudioCall() and SipManager#takeAudioCall takeAudioCall().
			 */
			export class SipAudioCall extends java.lang.Object {
				/**
				 * Creates a call object with the local SIP profile.
				 * @param context the context for accessing system services such as
				 * @param localProfile 
				 */
				constructor(context: android.content.Context, localProfile: android.net.sip.SipProfile);
				static class: java.lang.Class<android.net.sip.SipAudioCall>;
				/**
				 * Sets the listener to listen to the audio call events. The method calls #setListener setListener(listener, false).
				 * @param listener to listen to the audio call events of this object
				 */
				public setListener(listener: android.net.sip.SipAudioCall.Listener): void;
				/**
				 * Sets the listener to listen to the audio call events. A SipAudioCall can only hold one listener at a time. Subsequent calls to this method override the previous listener.
				 * @param listener to listen to the audio call events of this object
				 * @param callbackImmediately set to true if the caller wants to be called
				 */
				public setListener(listener: android.net.sip.SipAudioCall.Listener, callbackImmediately: boolean): void;
				/**
				 * Checks if the call is established.
				 */
				public isInCall(): boolean;
				/**
				 * Checks if the call is on hold.
				 */
				public isOnHold(): boolean;
				/**
				 * Closes this object. This object is not usable after being closed.
				 */
				public close(): void;
				/**
				 * Gets the local SIP profile.
				 */
				public getLocalProfile(): android.net.sip.SipProfile;
				/**
				 * Gets the peer's SIP profile.
				 */
				public getPeerProfile(): android.net.sip.SipProfile;
				/**
				 * Gets the state of the SipSession that carries this call. The value returned must be one of the states in SipSession.State.
				 */
				public getState(): number;
				/**
				 * Attaches an incoming call to this call object.
				 * @param session the session that receives the incoming call
				 * @param sessionDescription the session description of the incoming call
				 */
				public attachCall(session: android.net.sip.SipSession, sessionDescription: string): void;
				/**
				 * Initiates an audio call to the specified profile. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError onError(SipAudioCall, SipErrorCode.TIME_OUT, String) will be called.
				 * @param peerProfile the SIP profile to make the call to
				 * @param sipSession the {@link SipSession} for carrying out the call
				 * @param timeout the timeout value in seconds. Default value (defined by
				 */
				public makeCall(peerProfile: android.net.sip.SipProfile, sipSession: android.net.sip.SipSession, timeout: number): void;
				/**
				 * Ends a call. SipException if the SIP service fails to end the call
				 */
				public endCall(): void;
				/**
				 * Puts a call on hold. When succeeds, Listener#onCallHeld is called. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError onError(SipAudioCall, SipErrorCode.TIME_OUT, String) will be called.
				 * @param timeout the timeout value in seconds. Default value (defined by
				 */
				public holdCall(timeout: number): void;
				/**
				 * Answers a call. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError onError(SipAudioCall, SipErrorCode.TIME_OUT, String) will be called.
				 * @param timeout the timeout value in seconds. Default value (defined by
				 */
				public answerCall(timeout: number): void;
				/**
				 * Continues a call that's on hold. When succeeds, Listener#onCallEstablished is called. The attempt will be timed out if the call is not established within timeout seconds and Listener#onError onError(SipAudioCall, SipErrorCode.TIME_OUT, String) will be called.
				 * @param timeout the timeout value in seconds. Default value (defined by
				 */
				public continueCall(timeout: number): void;
				/**
				 * Toggles mute.
				 */
				public toggleMute(): void;
				/**
				 * Checks if the call is muted.
				 */
				public isMuted(): boolean;
				/**
				 * Puts the device to speaker mode. <p class="note"><strong>Note:</strong> Requires the android.Manifest.permission#MODIFY_AUDIO_SETTINGS permission.</p>
				 * @param speakerMode set true to enable speaker mode; false to disable
				 */
				public setSpeakerMode(speakerMode: boolean): void;
				/**
				 * Sends a DTMF code. According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2883</a>, event 0--9 maps to decimal value 0--9, '*' to 10, '#' to 11, event 'A'--'D' to 12--15, and event flash to 16. Currently, event flash is not supported.
				 * @param code the DTMF code to send. Value 0 to 15 (inclusive) are valid
				 */
				public sendDtmf(code: number): void;
				/**
				 * Sends a DTMF code. According to <a href="http://tools.ietf.org/html/rfc2833">RFC 2883</a>, event 0--9 maps to decimal value 0--9, '*' to 10, '#' to 11, event 'A'--'D' to 12--15, and event flash to 16. Currently, event flash is not supported.
				 * @param code the DTMF code to send. Value 0 to 15 (inclusive) are valid
				 * @param result the result message to send when done
				 */
				public sendDtmf(code: number, result: android.os.Message): void;
				/**
				 * Starts the audio for the established call. This method should be called after Listener#onCallEstablished is called. <p class="note"><strong>Note:</strong> Requires the android.Manifest.permission#RECORD_AUDIO, android.Manifest.permission#ACCESS_WIFI_STATE and android.Manifest.permission#WAKE_LOCK permissions.</p>
				 */
				public startAudio(): void;
			}
			export module SipAudioCall {
				/**
				 * Listener for events relating to a SIP call, such as when a call is being recieved ("on ringing") or a call is outgoing ("on calling").
				 */
				export class Listener extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.net.sip.SipAudioCall.Listener>;
					/**
					 * Called when the call object is ready to make another call. The default implementation calls #onChanged.
					 * @param call the call object that is ready to make another call
					 */
					public onReadyToCall(call: android.net.sip.SipAudioCall): void;
					/**
					 * Called when a request is sent out to initiate a new call. The default implementation calls #onChanged.
					 * @param call the call object that carries out the audio call
					 */
					public onCalling(call: android.net.sip.SipAudioCall): void;
					/**
					 * Called when a new call comes in. The default implementation calls #onChanged.
					 * @param call the call object that carries out the audio call
					 * @param caller the SIP profile of the caller
					 */
					public onRinging(call: android.net.sip.SipAudioCall, caller: android.net.sip.SipProfile): void;
					/**
					 * Called when a RINGING response is received for the INVITE request sent. The default implementation calls #onChanged.
					 * @param call the call object that carries out the audio call
					 */
					public onRingingBack(call: android.net.sip.SipAudioCall): void;
					/**
					 * Called when the session is established. The default implementation calls #onChanged.
					 * @param call the call object that carries out the audio call
					 */
					public onCallEstablished(call: android.net.sip.SipAudioCall): void;
					/**
					 * Called when the session is terminated. The default implementation calls #onChanged.
					 * @param call the call object that carries out the audio call
					 */
					public onCallEnded(call: android.net.sip.SipAudioCall): void;
					/**
					 * Called when the peer is busy during session initialization. The default implementation calls #onChanged.
					 * @param call the call object that carries out the audio call
					 */
					public onCallBusy(call: android.net.sip.SipAudioCall): void;
					/**
					 * Called when the call is on hold. The default implementation calls #onChanged.
					 * @param call the call object that carries out the audio call
					 */
					public onCallHeld(call: android.net.sip.SipAudioCall): void;
					/**
					 * Called when an error occurs. The default implementation is no op.
					 * @param call the call object that carries out the audio call
					 * @param errorCode error code of this error
					 * @param errorMessage error message
					 */
					public onError(call: android.net.sip.SipAudioCall, errorCode: number, errorMessage: string): void;
					/**
					 * Called when an event occurs and the corresponding callback is not overridden. The default implementation is no op. Error events are not re-directed to this callback and are handled in #onError.
					 */
					public onChanged(call: android.net.sip.SipAudioCall): void;
				}
			}
			/**
			 * Defines a SIP profile, including a SIP account, domain and server information.
			 */
			export class SipProfile extends java.lang.Object implements android.os.IParcelable, java.io.ISerializable, java.lang.ICloneable {
				static CREATOR: android.os.Parcelable.ICreator<android.net.sip.SipProfile>;
				static class: java.lang.Class<android.net.sip.SipProfile>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public describeContents(): number;
				/**
				 * Gets the SIP URI string of this profile.
				 */
				public getUriString(): string;
				/**
				 * Gets the display name of the user.
				 */
				public getDisplayName(): string;
				/**
				 * Gets the username.
				 */
				public getUserName(): string;
				/**
				 * Gets the username for authentication. If it is null, then the username is used in authentication instead.
				 */
				public getAuthUserName(): string;
				/**
				 * Gets the password.
				 */
				public getPassword(): string;
				/**
				 * Gets the SIP domain.
				 */
				public getSipDomain(): string;
				/**
				 * Gets the port number of the SIP server.
				 */
				public getPort(): number;
				/**
				 * Gets the protocol used to connect to the server.
				 */
				public getProtocol(): string;
				/**
				 * Gets the network address of the server outbound proxy.
				 */
				public getProxyAddress(): string;
				/**
				 * Gets the (user-defined) name of the profile.
				 */
				public getProfileName(): string;
				/**
				 * Gets the flag of 'Sending keep-alive'.
				 */
				public getSendKeepAlive(): boolean;
				/**
				 * Gets the flag of 'Auto Registration'.
				 */
				public getAutoRegistration(): boolean;
			}
			export module SipProfile {
				/**
				 * Helper class for creating a SipProfile.
				 */
				export class Builder extends java.lang.Object {
					/**
					 * Creates a builder based on the given profile.
					 */
					constructor(profile: android.net.sip.SipProfile);
					/**
					 * Constructor.
					 * @param uriString the URI string as "sip:<user_name>@<domain>"
					 */
					constructor(uriString: string);
					/**
					 * Constructor.
					 * @param username username of the SIP account
					 * @param serverDomain the SIP server domain; if the network address
					 */
					constructor(username: string, serverDomain: string);
					static class: java.lang.Class<android.net.sip.SipProfile.Builder>;
					/**
					 * Sets the username used for authentication.
					 * @param name authentication username of the profile
					 */
					public setAuthUserName(name: string): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the name of the profile. This name is given by user.
					 * @param name name of the profile
					 */
					public setProfileName(name: string): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the password of the SIP account
					 * @param password password of the SIP account
					 */
					public setPassword(password: string): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the port number of the server. By default, it is 5060.
					 * @param port port number of the server
					 */
					public setPort(port: number): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the protocol used to connect to the SIP server. Currently, only "UDP" and "TCP" are supported.
					 * @param protocol the protocol string
					 */
					public setProtocol(protocol: string): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the outbound proxy of the SIP server.
					 * @param outboundProxy the network address of the outbound proxy
					 */
					public setOutboundProxy(outboundProxy: string): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the display name of the user.
					 * @param displayName display name of the user
					 */
					public setDisplayName(displayName: string): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the send keep-alive flag.
					 * @param flag true if sending keep-alive message is required,
					 */
					public setSendKeepAlive(flag: boolean): android.net.sip.SipProfile.Builder;
					/**
					 * Sets the auto. registration flag.
					 * @param flag true if the profile will be registered automatically,
					 */
					public setAutoRegistration(flag: boolean): android.net.sip.SipProfile.Builder;
					/**
					 * Builds and returns the SIP profile object.
					 */
					public build(): android.net.sip.SipProfile;
				}
			}
			/**
			 * Provides APIs for SIP tasks, such as initiating SIP connections, and provides access to related SIP services. This class is the starting point for any SIP actions. You can acquire an instance of it with #newInstance newInstance().</p>
			 */
			export class SipManager extends java.lang.Object {
				/**
				 * The result code to be sent back with the incoming call PendingIntent. #open(SipProfile, PendingIntent, SipRegistrationListener)
				 */
				static INCOMING_CALL_RESULT_CODE: number;
				/**
				 * Key to retrieve the call ID from an incoming call intent. #open(SipProfile, PendingIntent, SipRegistrationListener)
				 */
				static EXTRA_CALL_ID: string;
				/**
				 * Key to retrieve the offered session description from an incoming call intent. #open(SipProfile, PendingIntent, SipRegistrationListener)
				 */
				static EXTRA_OFFER_SD: string;
				static class: java.lang.Class<android.net.sip.SipManager>;
				/**
				 * Creates a manager instance. Returns null if SIP API is not supported.
				 * @param context application context for creating the manager object
				 */
				public static newInstance(context: android.content.Context): android.net.sip.SipManager;
				/**
				 * Returns true if the SIP API is supported by the system.
				 */
				public static isApiSupported(context: android.content.Context): boolean;
				/**
				 * Returns true if the system supports SIP-based VOIP API.
				 */
				public static isVoipSupported(context: android.content.Context): boolean;
				/**
				 * Returns true if SIP is only available on WIFI.
				 */
				public static isSipWifiOnly(context: android.content.Context): boolean;
				/**
				 * Opens the profile for making generic SIP calls. The caller may make subsequent calls through #makeAudioCall. If one also wants to receive calls on the profile, use #open(SipProfile, PendingIntent, SipRegistrationListener) instead.
				 * @param localProfile the SIP profile to make calls from
				 */
				public open(localProfile: android.net.sip.SipProfile): void;
				/**
				 * Opens the profile for making calls and/or receiving generic SIP calls. The caller may make subsequent calls through #makeAudioCall. If the auto-registration option is enabled in the profile, the SIP service will register the profile to the corresponding SIP provider periodically in order to receive calls from the provider. When the SIP service receives a new call, it will send out an intent with the provided action string. The intent contains a call ID extra and an offer session description string extra. Use #getCallId and #getOfferSessionDescription to retrieve those extras.
				 * @param localProfile the SIP profile to receive incoming calls for
				 * @param incomingCallPendingIntent When an incoming call is received, the
				 * @param listener to listen to registration events; can be null
				 */
				public open(localProfile: android.net.sip.SipProfile, incomingCallPendingIntent: android.app.PendingIntent, listener: android.net.sip.ISipRegistrationListener): void;
				/**
				 * Sets the listener to listen to registration events. No effect if the profile has not been opened to receive calls (see #open(SipProfile, PendingIntent, SipRegistrationListener)).
				 * @param localProfileUri the URI of the profile
				 * @param listener to listen to registration events; can be null
				 */
				public setRegistrationListener(localProfileUri: string, listener: android.net.sip.ISipRegistrationListener): void;
				/**
				 * Closes the specified profile to not make/receive calls. All the resources that were allocated to the profile are also released.
				 * @param localProfileUri the URI of the profile to close
				 */
				public close(localProfileUri: string): void;
				/**
				 * Checks if the specified profile is opened in the SIP service for making and/or receiving calls.
				 * @param localProfileUri the URI of the profile in question
				 */
				public isOpened(localProfileUri: string): boolean;
				/**
				 * Checks if the SIP service has successfully registered the profile to the SIP provider (specified in the profile) for receiving calls. Returning true from this method also implies the profile is opened (#isOpened).
				 * @param localProfileUri the URI of the profile in question
				 */
				public isRegistered(localProfileUri: string): boolean;
				/**
				 * Creates a SipAudioCall to make a call. The attempt will be timed out if the call is not established within timeout seconds and SipAudioCall.Listener#onError onError(SipAudioCall, SipErrorCode.TIME_OUT, String) will be called.
				 * @param localProfile the SIP profile to make the call from
				 * @param peerProfile the SIP profile to make the call to
				 * @param listener to listen to the call events from {@link SipAudioCall};
				 * @param timeout the timeout value in seconds. Default value (defined by
				 */
				public makeAudioCall(localProfile: android.net.sip.SipProfile, peerProfile: android.net.sip.SipProfile, listener: android.net.sip.SipAudioCall.Listener, timeout: number): android.net.sip.SipAudioCall;
				/**
				 * Creates a SipAudioCall to make an audio call. The attempt will be timed out if the call is not established within timeout seconds and SipAudioCall.Listener#onError onError(SipAudioCall, SipErrorCode.TIME_OUT, String) will be called.
				 * @param localProfileUri URI of the SIP profile to make the call from
				 * @param peerProfileUri URI of the SIP profile to make the call to
				 * @param listener to listen to the call events from {@link SipAudioCall};
				 * @param timeout the timeout value in seconds. Default value (defined by
				 */
				public makeAudioCall(localProfileUri: string, peerProfileUri: string, listener: android.net.sip.SipAudioCall.Listener, timeout: number): android.net.sip.SipAudioCall;
				/**
				 * Creates a SipAudioCall to take an incoming call. Before the call is returned, the listener will receive a SipAudioCall.Listener#onRinging callback.
				 * @param incomingCallIntent the incoming call broadcast intent
				 * @param listener to listen to the call events from {@link SipAudioCall};
				 */
				public takeAudioCall(incomingCallIntent: android.content.Intent, listener: android.net.sip.SipAudioCall.Listener): android.net.sip.SipAudioCall;
				/**
				 * Checks if the intent is an incoming call broadcast intent.
				 * @param intent the intent in question
				 */
				public static isIncomingCallIntent(intent: android.content.Intent): boolean;
				/**
				 * Gets the call ID from the specified incoming call broadcast intent.
				 * @param incomingCallIntent the incoming call broadcast intent
				 */
				public static getCallId(incomingCallIntent: android.content.Intent): string;
				/**
				 * Gets the offer session description from the specified incoming call broadcast intent.
				 * @param incomingCallIntent the incoming call broadcast intent
				 */
				public static getOfferSessionDescription(incomingCallIntent: android.content.Intent): string;
				/**
				 * Manually registers the profile to the corresponding SIP provider for receiving calls. #open(SipProfile, PendingIntent, SipRegistrationListener) is still needed to be called at least once in order for the SIP service to notify the caller with the android.app.PendingIntent when an incoming call is received.
				 * @param localProfile the SIP profile to register with
				 * @param expiryTime registration expiration time (in seconds)
				 * @param listener to listen to the registration events
				 */
				public register(localProfile: android.net.sip.SipProfile, expiryTime: number, listener: android.net.sip.ISipRegistrationListener): void;
				/**
				 * Manually unregisters the profile from the corresponding SIP provider for stop receiving further calls. This may interference with the auto registration process in the SIP service if the auto-registration option in the profile is enabled.
				 * @param localProfile the SIP profile to register with
				 * @param listener to listen to the registration events
				 */
				public unregister(localProfile: android.net.sip.SipProfile, listener: android.net.sip.ISipRegistrationListener): void;
				/**
				 * Gets the SipSession that handles the incoming call. For audio calls, consider to use SipAudioCall to handle the incoming call. See #takeAudioCall. Note that the method may be called only once for the same intent. For subsequent calls on the same intent, the method returns null.
				 * @param incomingCallIntent the incoming call broadcast intent
				 */
				public getSessionFor(incomingCallIntent: android.content.Intent): android.net.sip.SipSession;
				/**
				 * Creates a SipSession with the specified profile. Use other methods, if applicable, instead of interacting with SipSession directly.
				 * @param localProfile the SIP profile the session is associated with
				 * @param listener to listen to SIP session events
				 */
				public createSipSession(localProfile: android.net.sip.SipProfile, listener: android.net.sip.SipSession.Listener): android.net.sip.SipSession;
			}
			export module SipManager {
				export class ListenerRelay {
					constructor(listener: android.net.sip.ISipRegistrationListener, uri: string);
					static class: java.lang.Class<android.net.sip.SipManager.ListenerRelay>;
				}
			}
			/**
			 * Listener for SIP registration events.
			 */
			interface ISipRegistrationListener {
				/**
				 * Called when a registration request is sent.
				 * @param localProfileUri the URI string of the SIP profile to register with
				 */
				onRegistering(localProfileUri: string): void;
				/**
				 * Called when the registration succeeded.
				 * @param localProfileUri the URI string of the SIP profile to register with
				 * @param expiryTime duration in seconds before the registration expires
				 */
				onRegistrationDone(localProfileUri: string, expiryTime: number): void;
				/**
				 * Called when the registration failed.
				 * @param localProfileUri the URI string of the SIP profile to register with
				 * @param errorCode error code of this error
				 * @param errorMessage error message
				 */
				onRegistrationFailed(localProfileUri: string, errorCode: number, errorMessage: string): void;
			}
			/**
			 * Indicates a general SIP-related exception.
			 */
			export class SipException extends java.lang.Exception {
				constructor();
				constructor(message: string);
				constructor(message: string, cause: java.lang.Throwable);
				static class: java.lang.Class<android.net.sip.SipException>;
			}
			/**
			 * Defines error codes returned during SIP actions. For example, during SipRegistrationListener#onRegistrationFailed onRegistrationFailed(), SipSession.Listener#onError onError(), SipSession.Listener#onCallChangeFailed onCallChangeFailed() and SipSession.Listener#onRegistrationFailed onRegistrationFailed().
			 */
			export class SipErrorCode extends java.lang.Object {
				/**
				 * Not an error.
				 */
				static NO_ERROR: number;
				/**
				 * When some socket error occurs.
				 */
				static SOCKET_ERROR: number;
				/**
				 * When server responds with an error.
				 */
				static SERVER_ERROR: number;
				/**
				 * When transaction is terminated unexpectedly.
				 */
				static TRANSACTION_TERMINTED: number;
				/**
				 * When some error occurs on the device, possibly due to a bug.
				 */
				static CLIENT_ERROR: number;
				/**
				 * When the transaction gets timed out.
				 */
				static TIME_OUT: number;
				/**
				 * When the remote URI is not valid.
				 */
				static INVALID_REMOTE_URI: number;
				/**
				 * When the peer is not reachable.
				 */
				static PEER_NOT_REACHABLE: number;
				/**
				 * When invalid credentials are provided.
				 */
				static INVALID_CREDENTIALS: number;
				/**
				 * The client is in a transaction and cannot initiate a new one.
				 */
				static IN_PROGRESS: number;
				/**
				 * When data connection is lost.
				 */
				static DATA_CONNECTION_LOST: number;
				/**
				 * Cross-domain authentication required.
				 */
				static CROSS_DOMAIN_AUTHENTICATION: number;
				/**
				 * When the server is not reachable.
				 */
				static SERVER_UNREACHABLE: number;
				static class: java.lang.Class<android.net.sip.SipErrorCode>;
				public static toString(errorCode: number): string;
				/**
				 * Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression: <pre> getClass().getName() + ' + Integer.toHexString(hashCode())</pre>
				 */
				toString(): string;
			}
		}
		/**
		 * VpnService is a base class for applications to extend and build their own VPN solutions. In general, it creates a virtual network interface, configures addresses and routing rules, and returns a file descriptor to the application. Each read from the descriptor retrieves an outgoing packet which was routed to the interface. Each write to the descriptor injects an incoming packet just like it was received from the interface. The interface is running on Internet Protocol (IP), so packets are always started with IP headers. The application then completes a VPN connection by processing and exchanging packets with the remote server over a tunnel.
		 */
		export class VpnService extends android.app.Service {
			constructor();
			/**
			 * The action must be matched by the intent filter of this service. It also needs to require android.Manifest.permission#BIND_VPN_SERVICE permission so that other applications cannot abuse it.
			 */
			static SERVICE_INTERFACE: string;
			static class: java.lang.Class<android.net.VpnService>;
			Builder: {
	new (): android.net.VpnService.Builder;
};
			/**
			 * Prepare to establish a VPN connection. This method returns null if the VPN application is already prepared. Otherwise, it returns an Intent to a system activity. The application should launch the activity using Activity#startActivityForResult to get itself prepared. The activity may pop up a dialog to require user action, and the result will come back via its Activity#onActivityResult. If the result is Activity#RESULT_OK, the application becomes prepared and is granted to use other methods in this class.
			 */
			public static prepare(context: android.content.Context): android.content.Intent;
			/**
			 * Protect a socket from VPN connections. The socket will be bound to the current default network interface, so its traffic will not be forwarded through VPN. This method is useful if some connections need to be kept outside of VPN. For example, a VPN tunnel should protect itself if its destination is covered by VPN routes. Otherwise its outgoing packets will be sent back to the VPN interface and cause an infinite loop. This method will fail if the application is not prepared or is revoked.
			 */
			public protect(socket: number): boolean;
			/**
			 * Convenience method to protect a Socket from VPN connections.
			 */
			public protect(socket: java.net.Socket): boolean;
			/**
			 * Convenience method to protect a DatagramSocket from VPN connections.
			 */
			public protect(socket: java.net.DatagramSocket): boolean;
			/**
			 * Return the communication interface to the service. This method returns null on Intents other than #SERVICE_INTERFACE action. Applications overriding this method must identify the intent and return the corresponding interface accordingly.
			 */
			public onBind(intent: android.content.Intent): android.os.IIBinder;
			/**
			 * Invoked when the application is revoked. At this moment, the VPN interface is already deactivated by the system. The application should close the file descriptor and shut down gracefully. The default implementation of this method is calling Service#stopSelf().
			 */
			public onRevoke(): void;
		}
		export module VpnService {
			/**
			 * Use raw Binder instead of AIDL since now there is only one usage.
			 */
			export class Callback extends android.os.Binder {
				static class: java.lang.Class<android.net.VpnService.Callback>;
				protected onTransact(code: number, data: android.os.Parcel, reply: android.os.Parcel, flags: number): boolean;
			}
			/**
			 * Helper class to create a VPN interface. This class should be always used within the scope of the outer VpnService.
			 */
			export class Builder extends java.lang.Object {
				static class: java.lang.Class<android.net.VpnService.Builder>;
				/**
				 * Set the name of this session. It will be displayed in system-managed dialogs and notifications. This is recommended not required.
				 */
				public setSession(session: string): android.net.VpnService.Builder;
				/**
				 * Set the PendingIntent to an activity for users to configure the VPN connection. If it is not set, the button to configure will not be shown in system-managed dialogs.
				 */
				public setConfigureIntent(intent: android.app.PendingIntent): android.net.VpnService.Builder;
				/**
				 * Set the maximum transmission unit (MTU) of the VPN interface. If it is not set, the default value in the operating system will be used.
				 */
				public setMtu(mtu: number): android.net.VpnService.Builder;
				/**
				 * Add a network address to the VPN interface. Both IPv4 and IPv6 addresses are supported. At least one address must be set before calling #establish.
				 */
				public addAddress(address: java.net.InetAddress, prefixLength: number): android.net.VpnService.Builder;
				/**
				 * Convenience method to add a network address to the VPN interface using a numeric address string. See InetAddress for the definitions of numeric address formats.
				 */
				public addAddress(address: string, prefixLength: number): android.net.VpnService.Builder;
				/**
				 * Add a network route to the VPN interface. Both IPv4 and IPv6 routes are supported.
				 */
				public addRoute(address: java.net.InetAddress, prefixLength: number): android.net.VpnService.Builder;
				/**
				 * Convenience method to add a network route to the VPN interface using a numeric address string. See InetAddress for the definitions of numeric address formats.
				 */
				public addRoute(address: string, prefixLength: number): android.net.VpnService.Builder;
				/**
				 * Add a DNS server to the VPN connection. Both IPv4 and IPv6 addresses are supported. If none is set, the DNS servers of the default network will be used.
				 */
				public addDnsServer(address: java.net.InetAddress): android.net.VpnService.Builder;
				/**
				 * Convenience method to add a DNS server to the VPN connection using a numeric address string. See InetAddress for the definitions of numeric address formats.
				 */
				public addDnsServer(address: string): android.net.VpnService.Builder;
				/**
				 * Add a search domain to the DNS resolver.
				 */
				public addSearchDomain(domain: string): android.net.VpnService.Builder;
				/**
				 * Create a VPN interface using the parameters supplied to this builder. The interface works on IP packets, and a file descriptor is returned for the application to access them. Each read retrieves an outgoing packet which was routed to the interface. Each write injects an incoming packet just like it was received from the interface. The file descriptor is put into non-blocking mode by default to avoid blocking Java threads. To use the file descriptor completely in native space, see ParcelFileDescriptor#detachFd(). The application MUST close the file descriptor when the VPN connection is terminated. The VPN interface will be removed and the network will be restored by the system automatically.
				 */
				public establish(): android.os.ParcelFileDescriptor;
			}
		}
		export module dhcp {
			/**
			 * This class implements the DHCP-NAK packet.
			 */
			export class DhcpNakPacket extends android.net.dhcp.DhcpPacket {
				static class: java.lang.Class<android.net.dhcp.DhcpNakPacket>;
				public toString(): string;
				/**
				 * Fills in a packet with the requested NAK attributes.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Adds the optional parameters to the client-generated NAK packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Notifies the specified state machine of the newly-arrived NAK packet.
				 */
				public doNextOp(machine: android.net.dhcp.IDhcpStateMachine): void;
			}
			/**
			 * This class implements the DHCP-ACK packet.
			 */
			export class DhcpAckPacket extends android.net.dhcp.DhcpPacket {
				static class: java.lang.Class<android.net.dhcp.DhcpAckPacket>;
				public toString(): string;
				/**
				 * Fills in a packet with the requested ACK parameters.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Adds the optional parameters to the client-generated ACK packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Notifies the specified state machine of the ACK packet parameters.
				 */
				public doNextOp(machine: android.net.dhcp.IDhcpStateMachine): void;
			}
			/**
			 * This class implements the DHCP-OFFER packet.
			 */
			export class DhcpOfferPacket extends android.net.dhcp.DhcpPacket {
				static class: java.lang.Class<android.net.dhcp.DhcpOfferPacket>;
				public toString(): string;
				/**
				 * Fills in a packet with the specified OFFER attributes.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Adds the optional parameters to the server-generated OFFER packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Notifies the state machine of the OFFER packet parameters.
				 */
				public doNextOp(machine: android.net.dhcp.IDhcpStateMachine): void;
			}
			/**
			 * This class implements the DHCP-DECLINE packet.
			 */
			export class DhcpDeclinePacket extends android.net.dhcp.DhcpPacket {
				static class: java.lang.Class<android.net.dhcp.DhcpDeclinePacket>;
				public toString(): string;
				/**
				 * Fills in a packet with the requested DECLINE attributes.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Adds optional parameters to the DECLINE packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Informs the state machine of the arrival of a DECLINE packet.
				 */
				public doNextOp(machine: android.net.dhcp.IDhcpStateMachine): void;
			}
			/**
			 * This class implements the DHCP-DISCOVER packet.
			 */
			export class DhcpDiscoverPacket extends android.net.dhcp.DhcpPacket {
				static class: java.lang.Class<android.net.dhcp.DhcpDiscoverPacket>;
				public toString(): string;
				/**
				 * Fills in a packet with the requested DISCOVER parameters.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Adds optional parameters to a DISCOVER packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Informs the state machine of the arrival of a DISCOVER packet.
				 */
				public doNextOp(machine: android.net.dhcp.IDhcpStateMachine): void;
			}
			/**
			 * This class defines the "next steps" which occur after a given DHCP packet has been received.
			 */
			interface IDhcpStateMachine {
				/**
				 * Signals that an offer packet has been received with the specified parameters.
				 */
				onOfferReceived(broadcast: boolean, transactionId: number, myMac: native.Array<number>, offeredIpAddress: java.net.InetAddress, serverIpAddress: java.net.InetAddress): void;
				/**
				 * Signals that a NAK packet has been received.
				 */
				onNakReceived(): void;
				/**
				 * Signals that the final ACK has been received from the server.
				 */
				onAckReceived(myIpAddress: java.net.InetAddress, myNetMask: java.net.InetAddress, myGateway: java.net.InetAddress, myDnsServers: java.util.IList<java.net.InetAddress>, myDhcpServer: java.net.InetAddress, leaseTime: number): void;
				/**
				 * Signals that a client's DISCOVER packet has been received with the specified parameters.
				 */
				onDiscoverReceived(broadcast: boolean, transactionId: number, clientMac: native.Array<number>, requestedParameterList: native.Array<number>): void;
				/**
				 * Signals that a client's REQUEST packet has been received with the specified parameters.
				 */
				onRequestReceived(broadcast: boolean, transactionId: number, clientMac: native.Array<number>, requestedIp: java.net.InetAddress, requestedParams: native.Array<number>, clientHostName: string): void;
				/**
				 * Signals that a client's INFORM packet has been received with the specified parameters.
				 */
				onInformReceived(transactionId: number, clientMac: native.Array<number>, preassignedIp: java.net.InetAddress, requestedParams: native.Array<number>): void;
				/**
				 * Signals that a client's DECLINE packet has been received with the specified parameters.
				 */
				onDeclineReceived(clientMac: native.Array<number>, declinedIp: java.net.InetAddress): void;
			}
			/**
			 * This class defines the "next steps" which occur after a given DHCP packet has been received.
			 */
			export class DhcpStateMachine implements android.net.dhcp.IDhcpStateMachine {
				constructor(implementation: android.net.dhcp.IDhcpStateMachine);
				/**
				 * Signals that an offer packet has been received with the specified parameters.
				 */
				public onOfferReceived(broadcast: boolean, transactionId: number, myMac: native.Array<number>, offeredIpAddress: java.net.InetAddress, serverIpAddress: java.net.InetAddress): void;
				/**
				 * Signals that a NAK packet has been received.
				 */
				public onNakReceived(): void;
				/**
				 * Signals that the final ACK has been received from the server.
				 */
				public onAckReceived(myIpAddress: java.net.InetAddress, myNetMask: java.net.InetAddress, myGateway: java.net.InetAddress, myDnsServers: java.util.IList<java.net.InetAddress>, myDhcpServer: java.net.InetAddress, leaseTime: number): void;
				/**
				 * Signals that a client's DISCOVER packet has been received with the specified parameters.
				 */
				public onDiscoverReceived(broadcast: boolean, transactionId: number, clientMac: native.Array<number>, requestedParameterList: native.Array<number>): void;
				/**
				 * Signals that a client's REQUEST packet has been received with the specified parameters.
				 */
				public onRequestReceived(broadcast: boolean, transactionId: number, clientMac: native.Array<number>, requestedIp: java.net.InetAddress, requestedParams: native.Array<number>, clientHostName: string): void;
				/**
				 * Signals that a client's INFORM packet has been received with the specified parameters.
				 */
				public onInformReceived(transactionId: number, clientMac: native.Array<number>, preassignedIp: java.net.InetAddress, requestedParams: native.Array<number>): void;
				/**
				 * Signals that a client's DECLINE packet has been received with the specified parameters.
				 */
				public onDeclineReceived(clientMac: native.Array<number>, declinedIp: java.net.InetAddress): void;
			}
			/**
			 * This class implements the DHCP-REQUEST packet.
			 */
			export class DhcpRequestPacket extends android.net.dhcp.DhcpPacket {
				static class: java.lang.Class<android.net.dhcp.DhcpRequestPacket>;
				public toString(): string;
				/**
				 * Fills in a packet with the requested REQUEST attributes.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Adds the optional parameters to the client-generated REQUEST packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Notifies the specified state machine of the REQUEST packet parameters.
				 */
				public doNextOp(machine: android.net.dhcp.IDhcpStateMachine): void;
			}
			/**
			 * This class implements the (unused) DHCP-INFORM packet.
			 */
			export class DhcpInformPacket extends android.net.dhcp.DhcpPacket {
				static class: java.lang.Class<android.net.dhcp.DhcpInformPacket>;
				public toString(): string;
				/**
				 * Builds an INFORM packet.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Adds additional parameters to the INFORM packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Informs the state machine of the arrival of an INFORM packet. Not used currently.
				 */
				public doNextOp(machine: android.net.dhcp.IDhcpStateMachine): void;
			}
			/**
			 * Defines basic data and operations needed to build and use packets for the DHCP protocol. Subclasses create the specific packets used at each stage of the negotiation.
			 */
			export class DhcpPacket extends java.lang.Object {
				/**
				 * Packet encapsulations.
				 */
				static ENCAP_L2: number;
				static ENCAP_L3: number;
				static ENCAP_BOOTP: number;
				static class: java.lang.Class<android.net.dhcp.DhcpPacket>;
				/**
				 * Asks the packet object to signal the next operation in the DHCP protocol. The available actions are methods defined in the DhcpStateMachine interface.
				 */
				public doNextOp(stateMachine: android.net.dhcp.IDhcpStateMachine): void;
				/**
				 * Asks the packet object to create a ByteBuffer serialization of the packet for transmission.
				 */
				public buildPacket(encap: number, destUdp: number, srcUdp: number): java.nio.ByteBuffer;
				/**
				 * Allows the concrete class to fill in packet-type-specific details, typically optional parameters at the end of the packet.
				 */
				finishPacket(buffer: java.nio.ByteBuffer): void;
				/**
				 * Returns the transaction ID.
				 */
				public getTransactionId(): number;
				/**
				 * Creates a new L3 packet (including IP header) containing the DHCP udp packet. This method relies upon the delegated method finishPacket() to insert the per-packet contents.
				 */
				protected fillInPacket(encap: number, destIp: java.net.InetAddress, srcIp: java.net.InetAddress, destUdp: number, srcUdp: number, buf: java.nio.ByteBuffer, requestCode: number, broadcast: boolean): void;
				/**
				 * Adds an optional parameter containing a single byte value.
				 */
				protected addTlv(buf: java.nio.ByteBuffer, type: number, value: number): void;
				/**
				 * Adds an optional parameter containing an array of bytes.
				 */
				protected addTlv(buf: java.nio.ByteBuffer, type: number, payload: native.Array<number>): void;
				/**
				 * Adds an optional parameter containing an IP address.
				 */
				protected addTlv(buf: java.nio.ByteBuffer, type: number, addr: java.net.InetAddress): void;
				/**
				 * Adds an optional parameter containing a list of IP addresses.
				 */
				protected addTlv(buf: java.nio.ByteBuffer, type: number, addrs: java.util.IList<java.net.InetAddress>): void;
				/**
				 * Adds an optional parameter containing a simple integer
				 */
				protected addTlv(buf: java.nio.ByteBuffer, type: number, value: java.lang.Integer): void;
				/**
				 * Adds an optional parameter containing and ASCII string.
				 */
				protected addTlv(buf: java.nio.ByteBuffer, type: number, str: string): void;
				/**
				 * Adds the special end-of-optional-parameters indicator.
				 */
				protected addTlvEnd(buf: java.nio.ByteBuffer): void;
				/**
				 * Converts a MAC from an array of octets to an ASCII string.
				 */
				public static macToString(mac: native.Array<number>): string;
				public toString(): string;
				/**
				 * Creates a concrete DhcpPacket from the supplied ByteBuffer. The buffer may have an L2 encapsulation (which is the full EthernetII format starting with the source-address MAC) or an L3 encapsulation (which starts with the IP header). <br> A subset of the optional parameters are parsed and are stored in object fields.
				 */
				public static decodeFullPacket(packet: java.nio.ByteBuffer, pktType: number): android.net.dhcp.DhcpPacket;
				/**
				 * Parse a packet from an array of bytes.
				 */
				public static decodeFullPacket(packet: native.Array<number>, pktType: number): android.net.dhcp.DhcpPacket;
				/**
				 * Builds a DHCP-DISCOVER packet from the required specified parameters.
				 */
				public static buildDiscoverPacket(encap: number, transactionId: number, clientMac: native.Array<number>, broadcast: boolean, expectedParams: native.Array<number>): java.nio.ByteBuffer;
				/**
				 * Builds a DHCP-OFFER packet from the required specified parameters.
				 */
				public static buildOfferPacket(encap: number, transactionId: number, broadcast: boolean, serverIpAddr: java.net.InetAddress, clientIpAddr: java.net.InetAddress, mac: native.Array<number>, timeout: java.lang.Integer, netMask: java.net.InetAddress, bcAddr: java.net.InetAddress, gateway: java.net.InetAddress, dnsServers: java.util.IList<java.net.InetAddress>, dhcpServerIdentifier: java.net.InetAddress, domainName: string): java.nio.ByteBuffer;
				/**
				 * Builds a DHCP-ACK packet from the required specified parameters.
				 */
				public static buildAckPacket(encap: number, transactionId: number, broadcast: boolean, serverIpAddr: java.net.InetAddress, clientIpAddr: java.net.InetAddress, mac: native.Array<number>, timeout: java.lang.Integer, netMask: java.net.InetAddress, bcAddr: java.net.InetAddress, gateway: java.net.InetAddress, dnsServers: java.util.IList<java.net.InetAddress>, dhcpServerIdentifier: java.net.InetAddress, domainName: string): java.nio.ByteBuffer;
				/**
				 * Builds a DHCP-NAK packet from the required specified parameters.
				 */
				public static buildNakPacket(encap: number, transactionId: number, serverIpAddr: java.net.InetAddress, clientIpAddr: java.net.InetAddress, mac: native.Array<number>): java.nio.ByteBuffer;
				/**
				 * Builds a DHCP-REQUEST packet from the required specified parameters.
				 */
				public static buildRequestPacket(encap: number, transactionId: number, clientIp: java.net.InetAddress, broadcast: boolean, clientMac: native.Array<number>, requestedIpAddress: java.net.InetAddress, serverIdentifier: java.net.InetAddress, requestedParams: native.Array<number>, hostName: string): java.nio.ByteBuffer;
			}
		}
		export class MailTo extends java.lang.Object {
			static MAILTO_SCHEME: string;
			static class: java.lang.Class<android.net.MailTo>;
			/**
			 * Test to see if the given string is a mailto URL
			 * @param url string to be tested
			 */
			public static isMailTo(url: string): boolean;
			/**
			 * Parse and decode a mailto scheme string. This parser implements RFC 2368. The returned object can be queried for the parsed parameters.
			 * @param url String containing a mailto URL
			 */
			public static parse(url: string): android.net.MailTo;
			/**
			 * Retrieve the To address line from the parsed mailto URL. This could be several email address that are comma-space delimited. If no To line was specified, then null is return
			 */
			public getTo(): string;
			/**
			 * Retrieve the CC address line from the parsed mailto URL. This could be several email address that are comma-space delimited. If no CC line was specified, then null is return
			 */
			public getCc(): string;
			/**
			 * Retrieve the subject line from the parsed mailto URL. If no subject line was specified, then null is return
			 */
			public getSubject(): string;
			/**
			 * Retrieve the body line from the parsed mailto URL. If no body line was specified, then null is return
			 */
			public getBody(): string;
			/**
			 * Retrieve all the parsed email headers from the mailto URL
			 */
			public getHeaders(): java.util.IMap<string, string>;
			public toString(): string;
		}
		export module wifi {
			/**
			 * Provides API to the WifiStateMachine for doing read/write access to soft access point configuration
			 */
			export class WifiApConfigStore {
				static class: java.lang.Class<android.net.wifi.WifiApConfigStore>;
				public static makeWifiApConfigStore(context: android.content.Context, target: android.os.Handler): android.net.wifi.WifiApConfigStore;
				loadApConfiguration(): void;
				getMessenger(): android.os.Messenger;
			}
			export module WifiApConfigStore {
				export class DefaultState {
					static class: java.lang.Class<android.net.wifi.WifiApConfigStore.DefaultState>;
					public processMessage(message: android.os.Message): boolean;
				}
				export class InactiveState {
					static class: java.lang.Class<android.net.wifi.WifiApConfigStore.InactiveState>;
					public processMessage(message: android.os.Message): boolean;
				}
				export class ActiveState {
					static class: java.lang.Class<android.net.wifi.WifiApConfigStore.ActiveState>;
					public enter(): void;
					public processMessage(message: android.os.Message): boolean;
				}
			}
			/**
			 * Tracks the state changes in supplicant and provides functionality that is based on these state changes: - detect a failed WPA handshake that loops indefinitely - authentication failure handling
			 */
			export class SupplicantStateTracker {
				static class: java.lang.Class<android.net.wifi.SupplicantStateTracker>;
			}
			export module SupplicantStateTracker {
				/**
				 * HSM states
				 */
				export class DefaultState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.DefaultState>;
					public enter(): void;
					public processMessage(message: android.os.Message): boolean;
				}
				export class HandshakeState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.HandshakeState>;
					public enter(): void;
					public processMessage(message: android.os.Message): boolean;
				}
				export class UninitializedState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.UninitializedState>;
					public enter(): void;
				}
				export class CompletedState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.CompletedState>;
					public enter(): void;
					public processMessage(message: android.os.Message): boolean;
				}
				export class InactiveState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.InactiveState>;
					public enter(): void;
				}
				export class ScanState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.ScanState>;
					public enter(): void;
				}
				export class DormantState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.DormantState>;
					public enter(): void;
				}
				export class DisconnectedState {
					static class: java.lang.Class<android.net.wifi.SupplicantStateTracker.DisconnectedState>;
					public enter(): void;
				}
			}
			/**
			 * This class provides the primary API for managing all aspects of Wi-Fi connectivity. Get an instance of this class by calling android.content.Context#getSystemService(String) Context.getSystemService(Context.WIFI_SERVICE).
			 */
			export class WifiManager extends java.lang.Object {
				/**
				 * The error code if there was a problem authenticating.
				 */
				static ERROR_AUTHENTICATING: number;
				/**
				 * Broadcast intent action indicating that Wi-Fi has been enabled, disabled, enabling, disabling, or unknown. One extra provides this state as an int. Another extra provides the previous state, if available.
				 */
				static WIFI_STATE_CHANGED_ACTION: string;
				/**
				 * The lookup key for an int that indicates whether Wi-Fi is enabled, disabled, enabling, disabling, or unknown. Retrieve it with android.content.Intent#getIntExtra(String,int).
				 */
				static EXTRA_WIFI_STATE: string;
				/**
				 * The previous Wi-Fi state.
				 */
				static EXTRA_PREVIOUS_WIFI_STATE: string;
				/**
				 * Wi-Fi is currently being disabled. The state will change to #WIFI_STATE_DISABLED if it finishes successfully.
				 */
				static WIFI_STATE_DISABLING: number;
				/**
				 * Wi-Fi is disabled.
				 */
				static WIFI_STATE_DISABLED: number;
				/**
				 * Wi-Fi is currently being enabled. The state will change to #WIFI_STATE_ENABLED if it finishes successfully.
				 */
				static WIFI_STATE_ENABLING: number;
				/**
				 * Wi-Fi is enabled.
				 */
				static WIFI_STATE_ENABLED: number;
				/**
				 * Wi-Fi is in an unknown state. This state will occur when an error happens while enabling or disabling.
				 */
				static WIFI_STATE_UNKNOWN: number;
				/**
				 * Broadcast intent action indicating that a connection to the supplicant has been established (and it is now possible to perform Wi-Fi operations) or the connection to the supplicant has been lost. One extra provides the connection state as a boolean, where true means CONNECTED. #EXTRA_SUPPLICANT_CONNECTED
				 */
				static SUPPLICANT_CONNECTION_CHANGE_ACTION: string;
				/**
				 * The lookup key for a boolean that indicates whether a connection to the supplicant daemon has been gained or lost. true means a connection now exists. Retrieve it with android.content.Intent#getBooleanExtra(String,boolean).
				 */
				static EXTRA_SUPPLICANT_CONNECTED: string;
				/**
				 * Broadcast intent action indicating that the state of Wi-Fi connectivity has changed. One extra provides the new state in the form of a android.net.NetworkInfo object. If the new state is CONNECTED, additional extras may provide the BSSID and WifiInfo of the access point. as a String. #EXTRA_NETWORK_INFO #EXTRA_BSSID #EXTRA_WIFI_INFO
				 */
				static NETWORK_STATE_CHANGED_ACTION: string;
				/**
				 * The lookup key for a android.net.NetworkInfo object associated with the Wi-Fi network. Retrieve with android.content.Intent#getParcelableExtra(String).
				 */
				static EXTRA_NETWORK_INFO: string;
				/**
				 * The lookup key for a String giving the BSSID of the access point to which we are connected. Only present when the new state is CONNECTED. Retrieve with android.content.Intent#getStringExtra(String).
				 */
				static EXTRA_BSSID: string;
				/**
				 * The lookup key for a android.net.wifi.WifiInfo object giving the information about the access point to which we are connected. Only present when the new state is CONNECTED. Retrieve with android.content.Intent#getParcelableExtra(String).
				 */
				static EXTRA_WIFI_INFO: string;
				/**
				 * Broadcast intent action indicating that the state of establishing a connection to an access point has changed.One extra provides the new SupplicantState. Note that the supplicant state is Wi-Fi specific, and is not generally the most useful thing to look at if you are just interested in the overall state of connectivity. #EXTRA_NEW_STATE #EXTRA_SUPPLICANT_ERROR
				 */
				static SUPPLICANT_STATE_CHANGED_ACTION: string;
				/**
				 * The lookup key for a SupplicantState describing the new state Retrieve with android.content.Intent#getParcelableExtra(String).
				 */
				static EXTRA_NEW_STATE: string;
				/**
				 * The lookup key for a SupplicantState describing the supplicant error code if any Retrieve with android.content.Intent#getIntExtra(String, int). #ERROR_AUTHENTICATING
				 */
				static EXTRA_SUPPLICANT_ERROR: string;
				/**
				 * An access point scan has completed, and results are available from the supplicant. Call #getScanResults() to obtain the results.
				 */
				static SCAN_RESULTS_AVAILABLE_ACTION: string;
				/**
				 * The RSSI (signal strength) has changed. #EXTRA_NEW_RSSI
				 */
				static RSSI_CHANGED_ACTION: string;
				/**
				 * The lookup key for an int giving the new RSSI in dBm.
				 */
				static EXTRA_NEW_RSSI: string;
				/**
				 * The network IDs of the configured networks could have changed.
				 */
				static NETWORK_IDS_CHANGED_ACTION: string;
				/**
				 * Activity Action: Pick a Wi-Fi network to connect to.
				 */
				static ACTION_PICK_WIFI_NETWORK: string;
				/**
				 * In this Wi-Fi lock mode, Wi-Fi will be kept active, and will behave normally, i.e., it will attempt to automatically establish a connection to a remembered access point that is within range, and will do periodic scans if there are remembered access points but none are in range.
				 */
				static WIFI_MODE_FULL: number;
				/**
				 * In this Wi-Fi lock mode, Wi-Fi will be kept active, but the only operation that will be supported is initiation of scans, and the subsequent reporting of scan results. No attempts will be made to automatically connect to remembered access points, nor will periodic scans be automatically performed looking for remembered access points. Scans must be explicitly requested by an application in this mode.
				 */
				static WIFI_MODE_SCAN_ONLY: number;
				/**
				 * In this Wi-Fi lock mode, Wi-Fi will be kept active as in mode #WIFI_MODE_FULL but it operates at high performance with minimum packet loss and low packet latency even when the device screen is off. This mode will consume more power and hence should be used only when there is a need for such an active connection.
				 */
				static WIFI_MODE_FULL_HIGH_PERF: number;
				static class: java.lang.Class<android.net.wifi.WifiManager>;
				/**
				 * Return a list of all the networks configured in the supplicant. Not all fields of WifiConfiguration are returned. Only the following fields are filled in: <ul> <li>networkId</li> <li>SSID</li> <li>BSSID</li> <li>priority</li> <li>allowedProtocols</li> <li>allowedKeyManagement</li> <li>allowedAuthAlgorithms</li> <li>allowedPairwiseCiphers</li> <li>allowedGroupCiphers</li> </ul>
				 */
				public getConfiguredNetworks(): java.util.IList<android.net.wifi.WifiConfiguration>;
				/**
				 * Add a new network description to the set of configured networks. The networkId field of the supplied configuration object is ignored. <p/> The new network will be marked DISABLED by default. To enable it, called #enableNetwork.
				 * @param config the set of variables that describe the configuration,
				 */
				public addNetwork(config: android.net.wifi.WifiConfiguration): number;
				/**
				 * Update the network description of an existing configured network.
				 * @param config the set of variables that describe the configuration,
				 */
				public updateNetwork(config: android.net.wifi.WifiConfiguration): number;
				/**
				 * Remove the specified network from the list of configured networks. This may result in the asynchronous delivery of state change events.
				 * @param netId the integer that identifies the network configuration
				 */
				public removeNetwork(netId: number): boolean;
				/**
				 * Allow a previously configured network to be associated with. If <code>disableOthers</code> is true, then all other configured networks are disabled, and an attempt to connect to the selected network is initiated. This may result in the asynchronous delivery of state change events.
				 * @param netId the ID of the network in the list of configured networks
				 * @param disableOthers if true, disable all other networks. The way to
				 */
				public enableNetwork(netId: number, disableOthers: boolean): boolean;
				/**
				 * Disable a configured network. The specified network will not be a candidate for associating. This may result in the asynchronous delivery of state change events.
				 * @param netId the ID of the network as returned by {@link #addNetwork}.
				 */
				public disableNetwork(netId: number): boolean;
				/**
				 * Disassociate from the currently active access point. This may result in the asynchronous delivery of state change events.
				 */
				public disconnect(): boolean;
				/**
				 * Reconnect to the currently active access point, if we are currently disconnected. This may result in the asynchronous delivery of state change events.
				 */
				public reconnect(): boolean;
				/**
				 * Reconnect to the currently active access point, even if we are already connected. This may result in the asynchronous delivery of state change events.
				 */
				public reassociate(): boolean;
				/**
				 * Check that the supplicant daemon is responding to requests.
				 */
				public pingSupplicant(): boolean;
				/**
				 * Request a scan for access points. Returns immediately. The availability of the results is made known later by means of an asynchronous event sent on completion of the scan.
				 */
				public startScan(): boolean;
				/**
				 * Return dynamic information about the current Wi-Fi connection, if any is active.
				 */
				public getConnectionInfo(): android.net.wifi.WifiInfo;
				/**
				 * Return the results of the latest access point scan.
				 */
				public getScanResults(): java.util.IList<android.net.wifi.ScanResult>;
				/**
				 * Tell the supplicant to persist the current list of configured networks.
				 */
				public saveConfiguration(): boolean;
				/**
				 * Return the DHCP-assigned addresses from the last successful DHCP request, if any.
				 */
				public getDhcpInfo(): android.net.DhcpInfo;
				/**
				 * Enable or disable Wi-Fi.
				 * @param enabled {@code true} to enable, {@code false} to disable.
				 */
				public setWifiEnabled(enabled: boolean): boolean;
				/**
				 * Gets the Wi-Fi enabled state.
				 */
				public getWifiState(): number;
				/**
				 * Return whether Wi-Fi is enabled or disabled.
				 */
				public isWifiEnabled(): boolean;
				/**
				 * Calculates the level of the signal. This should be used any time a signal is being shown.
				 * @param rssi The power of the signal measured in RSSI.
				 * @param numLevels The number of levels to consider in the calculated
				 */
				public static calculateSignalLevel(rssi: number, numLevels: number): number;
				/**
				 * Compares two signal strengths.
				 * @param rssiA The power of the first signal measured in RSSI.
				 * @param rssiB The power of the second signal measured in RSSI.
				 */
				public static compareSignalLevel(rssiA: number, rssiB: number): number;
				/**
				 * Creates a new WifiLock.
				 * @param lockType the type of lock to create. See {@link #WIFI_MODE_FULL},
				 * @param tag a tag for the WifiLock to identify it in debugging messages. This string is
				 */
				public createWifiLock(lockType: number, tag: string): android.net.wifi.WifiManager.WifiLock;
				/**
				 * Creates a new WifiLock.
				 * @param tag a tag for the WifiLock to identify it in debugging messages. This string is
				 */
				public createWifiLock(tag: string): android.net.wifi.WifiManager.WifiLock;
				/**
				 * Create a new MulticastLock
				 * @param tag a tag for the MulticastLock to identify it in debugging
				 */
				public createMulticastLock(tag: string): android.net.wifi.WifiManager.MulticastLock;
				protected finalize(): void;
			}
			export module WifiManager {
				/**
				 * Allows an application to receive Wifi Multicast packets. Normally the Wifi stack filters out packets not explicitly addressed to this device. Acquring a MulticastLock will cause the stack to receive packets addressed to multicast addresses. Processing these extra packets can cause a noticable battery drain and should be disabled when not needed.
				 */
				export class MulticastLock extends java.lang.Object {
					static class: java.lang.Class<android.net.wifi.WifiManager.MulticastLock>;
					/**
					 * Locks Wifi Multicast on until #release is called.
					 */
					public acquire(): void;
					/**
					 * Unlocks Wifi Multicast, restoring the filter of packets not addressed specifically to this device and saving power.
					 */
					public release(): void;
					/**
					 * Controls whether this is a reference-counted or non-reference- counted MulticastLock.
					 * @param refCounted true if this MulticastLock should keep a reference
					 */
					public setReferenceCounted(refCounted: boolean): void;
					/**
					 * Checks whether this MulticastLock is currently held.
					 */
					public isHeld(): boolean;
					public toString(): string;
					protected finalize(): void;
				}
				export class ServiceHandler extends android.os.Handler {
					static class: java.lang.Class<android.net.wifi.WifiManager.ServiceHandler>;
					public handleMessage(message: android.os.Message): void;
				}
				/**
				 * Allows an application to keep the Wi-Fi radio awake. Normally the Wi-Fi radio may turn off when the user has not used the device in a while. Acquiring a WifiLock will keep the radio on until the lock is released. Multiple applications may hold WifiLocks, and the radio will only be allowed to turn off when no WifiLocks are held in any application.
				 */
				export class WifiLock extends java.lang.Object {
					static class: java.lang.Class<android.net.wifi.WifiManager.WifiLock>;
					/**
					 * Locks the Wi-Fi radio on until #release is called.
					 */
					public acquire(): void;
					/**
					 * Unlocks the Wi-Fi radio, allowing it to turn off when the device is idle.
					 */
					public release(): void;
					/**
					 * Controls whether this is a reference-counted or non-reference-counted WifiLock.
					 * @param refCounted true if this WifiLock should keep a reference count
					 */
					public setReferenceCounted(refCounted: boolean): void;
					/**
					 * Checks whether this WifiLock is currently held.
					 */
					public isHeld(): boolean;
					public setWorkSource(ws: android.os.WorkSource): void;
					public toString(): string;
					protected finalize(): void;
				}
			}
			/**
			 * Describes information about a detected access point. In addition to the attributes described here, the supplicant keeps track of quality, noise, and maxbitrate attributes, but does not currently report them to external clients.
			 */
			export class ScanResult extends java.lang.Object implements android.os.IParcelable {
				/**
				 * The network name.
				 */
				SSID: string;
				/**
				 * The address of the access point.
				 */
				BSSID: string;
				/**
				 * Describes the authentication, key management, and encryption schemes supported by the access point.
				 */
				capabilities: string;
				/**
				 * The detected signal level in dBm. At least those are the units used by the TI driver.
				 */
				level: number;
				/**
				 * The frequency in MHz of the channel over which the client is communicating with the access point.
				 */
				frequency: number;
				/**
				 * Time Synchronization Function (tsf) timestamp in microseconds when this result was last seen.
				 */
				timestamp: number;
				static class: java.lang.Class<android.net.wifi.ScanResult>;
				public toString(): string;
				/**
				 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
				 */
				describeContents(): number;
				/**
				 * Flatten this object in to a Parcel. 
				 * @param dest The Parcel in which the object should be written.
				 * @param flags Additional flags about how the object should be written.
				 */
				writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * A class representing a configured Wi-Fi network, including the security configuration. Android will not necessarily support all of these security schemes initially.
			 */
			export class WifiConfiguration extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * The ID number that the supplicant uses to identify this network configuration entry. This must be passed as an argument to most calls into the supplicant.
				 */
				networkId: number;
				/**
				 * The current status of this network configuration entry. Status
				 */
				status: number;
				/**
				 * The network's SSID. Can either be an ASCII string, which must be enclosed in double quotation marks (e.g., "MyNetwork", or a string of hex digits,which are not enclosed in quotes (e.g., 01a243f405).
				 */
				SSID: string;
				/**
				 * When set, this network configuration entry should only be used when associating with the AP having the specified BSSID. The value is a string in the format of an Ethernet MAC address, e.g., <code>XX:XX:XX:XX:XX:XX</code> where each <code>X</code> is a hex digit.
				 */
				BSSID: string;
				/**
				 * Pre-shared key for use with WPA-PSK. <p/> When the value of this key is read, the actual key is not returned, just a "*" if the key has a value, or the null string otherwise.
				 */
				preSharedKey: string;
				/**
				 * Up to four WEP keys. Either an ASCII string enclosed in double quotation marks (e.g., "abcdef" or a string of hex digits (e.g., 0102030405). <p/> When the value of one of these keys is read, the actual key is not returned, just a "*" if the key has a value, or the null string otherwise.
				 */
				wepKeys: native.Array<string>;
				/**
				 * Default WEP key index, ranging from 0 to 3.
				 */
				wepTxKeyIndex: number;
				/**
				 * Priority determines the preference given to a network by wpa_supplicant when choosing an access point with which to associate.
				 */
				priority: number;
				/**
				 * This is a network that does not broadcast its SSID, so an SSID-specific probe request must be used for scans.
				 */
				hiddenSSID: boolean;
				/**
				 * The set of key management protocols supported by this configuration. See KeyMgmt for descriptions of the values. Defaults to WPA-PSK WPA-EAP.
				 */
				allowedKeyManagement: java.util.BitSet;
				/**
				 * The set of security protocols supported by this configuration. See Protocol for descriptions of the values. Defaults to WPA RSN.
				 */
				allowedProtocols: java.util.BitSet;
				/**
				 * The set of authentication protocols supported by this configuration. See AuthAlgorithm for descriptions of the values. Defaults to automatic selection.
				 */
				allowedAuthAlgorithms: java.util.BitSet;
				/**
				 * The set of pairwise ciphers for WPA supported by this configuration. See PairwiseCipher for descriptions of the values. Defaults to CCMP TKIP.
				 */
				allowedPairwiseCiphers: java.util.BitSet;
				/**
				 * The set of group ciphers supported by this configuration. See GroupCipher for descriptions of the values. Defaults to CCMP TKIP WEP104 WEP40.
				 */
				allowedGroupCiphers: java.util.BitSet;
				static class: java.lang.Class<android.net.wifi.WifiConfiguration>;
				public toString(): string;
				/**
				 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
				 */
				describeContents(): number;
				/**
				 * Flatten this object in to a Parcel. 
				 * @param dest The Parcel in which the object should be written.
				 * @param flags Additional flags about how the object should be written.
				 */
				writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			export module WifiConfiguration {
				/**
				 * Possible status of a network configuration.
				 */
				export class Status extends java.lang.Object {
					/**
					 * this is the network we are currently connected to
					 */
					static CURRENT: number;
					/**
					 * supplicant will not attempt to use this network
					 */
					static DISABLED: number;
					/**
					 * supplicant will consider this network available for association
					 */
					static ENABLED: number;
					static strings: native.Array<string>;
					static class: java.lang.Class<android.net.wifi.WifiConfiguration.Status>;
				}
				/**
				 * Recognized pairwise ciphers for WPA.
				 */
				export class PairwiseCipher extends java.lang.Object {
					/**
					 * Use only Group keys (deprecated)
					 */
					static NONE: number;
					/**
					 * Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
					 */
					static TKIP: number;
					/**
					 * AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
					 */
					static CCMP: number;
					static varName: string;
					static strings: native.Array<string>;
					static class: java.lang.Class<android.net.wifi.WifiConfiguration.PairwiseCipher>;
				}
				/**
				 * Recognized IEEE 802.11 authentication algorithms.
				 */
				export class AuthAlgorithm extends java.lang.Object {
					/**
					 * Open System authentication (required for WPA/WPA2)
					 */
					static OPEN: number;
					/**
					 * Shared Key authentication (requires static WEP keys)
					 */
					static SHARED: number;
					/**
					 * LEAP/Network EAP (only used with LEAP)
					 */
					static LEAP: number;
					static varName: string;
					static strings: native.Array<string>;
					static class: java.lang.Class<android.net.wifi.WifiConfiguration.AuthAlgorithm>;
				}
				/**
				 * Recognized group ciphers. <pre> CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key (original 802.11) </pre>
				 */
				export class GroupCipher extends java.lang.Object {
					/**
					 * WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key (original 802.11)
					 */
					static WEP40: number;
					/**
					 * WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key
					 */
					static WEP104: number;
					/**
					 * Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
					 */
					static TKIP: number;
					/**
					 * AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
					 */
					static CCMP: number;
					static varName: string;
					static strings: native.Array<string>;
					static class: java.lang.Class<android.net.wifi.WifiConfiguration.GroupCipher>;
				}
				/**
				 * Recognized key management schemes.
				 */
				export class KeyMgmt extends java.lang.Object {
					/**
					 * WPA is not used; plaintext or static WEP could be used.
					 */
					static NONE: number;
					/**
					 * WPA pre-shared key (requires preSharedKey to be specified).
					 */
					static WPA_PSK: number;
					/**
					 * WPA using EAP authentication. Generally used with an external authentication server.
					 */
					static WPA_EAP: number;
					/**
					 * IEEE 802.1X using EAP authentication and (optionally) dynamically generated WEP keys.
					 */
					static IEEE8021X: number;
					static varName: string;
					static strings: native.Array<string>;
					static class: java.lang.Class<android.net.wifi.WifiConfiguration.KeyMgmt>;
				}
				/**
				 * Recognized security protocols.
				 */
				export class Protocol extends java.lang.Object {
					/**
					 * WPA/IEEE 802.11i/D3.0
					 */
					static WPA: number;
					/**
					 * WPA2/IEEE 802.11i
					 */
					static RSN: number;
					static varName: string;
					static strings: native.Array<string>;
					static class: java.lang.Class<android.net.wifi.WifiConfiguration.Protocol>;
				}
			}
			export class NetworkUpdateResult extends java.lang.Object {
				constructor(id: number);
				constructor(ip: boolean, proxy: boolean);
				static class: java.lang.Class<android.net.wifi.NetworkUpdateResult>;
				public setNetworkId(id: number): void;
				public getNetworkId(): number;
				public setIpChanged(ip: boolean): void;
				public hasIpChanged(): boolean;
				public setProxyChanged(proxy: boolean): void;
				public hasProxyChanged(): boolean;
				public isNewNetwork(): boolean;
				public setIsNewNetwork(isNew: boolean): void;
			}
			/**
			 * From <code>defs.h</code> in <code>wpa_supplicant</code>. <p/> These enumeration values are used to indicate the current wpa_supplicant state. This is more fine-grained than most users will be interested in. In general, it is better to use android.net.NetworkInfo.State NetworkInfo.State. <p/> Note, the order of these enum constants must match the numerical values of the state constants in <code>defs.h</code> in <code>wpa_supplicant</code>.
			 */
			export enum SupplicantState {
				DISCONNECTED,
				INTERFACE_DISABLED,
				INACTIVE,
				SCANNING,
				AUTHENTICATING,
				ASSOCIATING,
				ASSOCIATED,
				FOUR_WAY_HANDSHAKE,
				GROUP_HANDSHAKE,
				COMPLETED,
				DORMANT,
				UNINITIALIZED,
				INVALID
			}
			export module SupplicantState {
				/**
				 * Returns true if the supplicant state is valid and false otherwise.
				 * @param state The supplicant state
				 */
				export function isValidState(state: android.net.wifi.SupplicantState): boolean;
			}
			/**
			 * A class representing Wi-Fi Protected Setup
			 */
			export class WpsInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				constructor(source: android.net.wifi.WpsInfo);
				/**
				 * Push button configuration
				 */
				static PBC: number;
				/**
				 * Display pin method configuration - pin is generated and displayed on device
				 */
				static DISPLAY: number;
				/**
				 * Keypad pin method configuration - pin is entered on device
				 */
				static KEYPAD: number;
				/**
				 * Label pin method configuration - pin is labelled on device
				 */
				static LABEL: number;
				/**
				 * Invalid configuration
				 */
				static INVALID: number;
				/**
				 * Wi-Fi Protected Setup. www.wi-fi.org/wifi-protected-setup has details
				 */
				setup: number;
				/**
				 * Passed with pin method configuration
				 */
				pin: string;
				/**
				 * Implement the Parcelable interface
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.net.wifi.WpsInfo>;
				static class: java.lang.Class<android.net.wifi.WpsInfo>;
				public toString(): string;
				/**
				 * Implement the Parcelable interface
				 */
				public describeContents(): number;
				/**
				 * Implement the Parcelable interface
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * This class provides the API to manage configured wifi networks. The API is not thread safe is being used only from WifiStateMachine.
			 */
			export class WifiConfigStore extends java.lang.Object {
				static class: java.lang.Class<android.net.wifi.WifiConfigStore>;
				/**
				 * Fetch the list of configured networks and enable all stored networks in supplicant.
				 */
				initialize(): void;
				/**
				 * Fetch the list of currently configured networks
				 */
				getConfiguredNetworks(): java.util.IList<android.net.wifi.WifiConfiguration>;
				/**
				 * enable all networks and save config. This will be a no-op if the list of configured networks indicates all networks as being enabled
				 */
				enableAllNetworks(): void;
				/**
				 * Selects the specified network for connection. This involves updating the priority of all the networks and enabling the given network while disabling others.
				 * @param netId network to select for connection
				 */
				selectNetwork(netId: number): boolean;
				/**
				 * Add/update the specified configuration and save config
				 * @param config WifiConfiguration to be saved
				 */
				saveNetwork(config: android.net.wifi.WifiConfiguration): android.net.wifi.NetworkUpdateResult;
				updateStatus(netId: number, state: android.net.NetworkInfo.DetailedState): void;
				/**
				 * Forget the specified network and save config
				 * @param netId network to forget
				 */
				forgetNetwork(netId: number): boolean;
				/**
				 * Add/update a network. Note that there is no saveConfig operation. This function is retained for compatibility with the public API. The more powerful saveNetwork() is used by the state machine
				 * @param config wifi configuration to add/update
				 */
				addOrUpdateNetwork(config: android.net.wifi.WifiConfiguration): number;
				/**
				 * Remove a network. Note that there is no saveConfig operation. This function is retained for compatibility with the public API. The more powerful forgetNetwork() is used by the state machine for network removal
				 * @param netId network to be removed
				 */
				removeNetwork(netId: number): boolean;
				/**
				 * Enable a network. Note that there is no saveConfig operation. This function is retained for compatibility with the public API. The more powerful selectNetwork()/saveNetwork() is used by the state machine for connecting to a network
				 * @param netId network to be enabled
				 * @param disableOthers 
				 */
				enableNetwork(netId: number, disableOthers: boolean): boolean;
				enableNetworkWithoutBroadcast(netId: number, disableOthers: boolean): boolean;
				/**
				 * Disable a network. Note that there is no saveConfig operation.
				 * @param netId network to be disabled
				 */
				disableNetwork(netId: number): boolean;
				/**
				 * Disable a network. Note that there is no saveConfig operation.
				 * @param netId network to be disabled
				 * @param reason reason code network was disabled
				 */
				disableNetwork(netId: number, reason: number): boolean;
				/**
				 * Save the configured networks in supplicant to disk
				 */
				saveConfig(): boolean;
				/**
				 * clear IP configuration for a given network id
				 * @param netId network id
				 */
				clearIpConfiguration(netId: number): void;
				/**
				 * Return if the specified network is using static IP
				 * @param netId network id
				 */
				isUsingStaticIp(netId: number): boolean;
				loadConfiguredNetworks(): void;
				dump(): string;
				public getConfigFile(): string;
			}
			export module WifiConfigStore {
				export class DelayedDiskWrite extends java.lang.Object {
					static class: java.lang.Class<android.net.wifi.WifiConfigStore.DelayedDiskWrite>;
					static write(networks: java.util.IList<android.net.wifi.WifiConfiguration>): void;
				}
			}
			/**
			 * Describes the state of any Wifi connection that is active or is in the process of being set up.
			 */
			export class WifiInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Link speed in Mbps
				 */
				static LINK_SPEED_UNITS: string;
				static class: java.lang.Class<android.net.wifi.WifiInfo>;
				/**
				 * Returns the service set identifier (SSID) of the current 802.11 network. If the SSID can be decoded as UTF-8, it will be returned surrounded by double quotation marks. Otherwise, it is returned as a string of hex digits. The SSID may be null if there is no network currently connected.
				 */
				public getSSID(): string;
				setBSSID(BSSID: string): void;
				/**
				 * Return the basic service set identifier (BSSID) of the current access point. The BSSID may be null if there is no network currently connected.
				 */
				public getBSSID(): string;
				/**
				 * Returns the received signal strength indicator of the current 802.11 network.
				 */
				public getRssi(): number;
				setRssi(rssi: number): void;
				/**
				 * Returns the current link speed in #LINK_SPEED_UNITS.
				 */
				public getLinkSpeed(): number;
				setLinkSpeed(linkSpeed: number): void;
				/**
				 * Record the MAC address of the WLAN interface
				 * @param macAddress the MAC address in {@code XX:XX:XX:XX:XX:XX} form
				 */
				setMacAddress(macAddress: string): void;
				public getMacAddress(): string;
				setNetworkId(id: number): void;
				/**
				 * Each configured network has a unique small integer ID, used to identify the network when performing operations on the supplicant. This method returns the ID for the currently connected network.
				 */
				public getNetworkId(): number;
				/**
				 * Return the detailed state of the supplicant's negotiation with an access point, in the form of a SupplicantState SupplicantState object.
				 */
				public getSupplicantState(): android.net.wifi.SupplicantState;
				setSupplicantState(state: android.net.wifi.SupplicantState): void;
				setInetAddress(address: java.net.InetAddress): void;
				public getIpAddress(): number;
				public getHiddenSSID(): boolean;
				/**
				 * Map a supplicant state into a fine-grained network connectivity state.
				 * @param suppState the supplicant state
				 */
				public static getDetailedStateOf(suppState: android.net.wifi.SupplicantState): android.net.NetworkInfo.DetailedState;
				/**
				 * Set the <code>SupplicantState</code> from the string name of the state.
				 * @param stateName the name of the state, as a <code>String</code> returned
				 */
				setSupplicantState(stateName: string): void;
				static valueOf(stateName: string): android.net.wifi.SupplicantState;
				public toString(): string;
				/**
				 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
				 */
				describeContents(): number;
				/**
				 * Flatten this object in to a Parcel. 
				 * @param dest The Parcel in which the object should be written.
				 * @param flags Additional flags about how the object should be written.
				 */
				writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			export module p2p {
				/**
				 * A class representing a Wi-Fi p2p device
				 */
				export class WifiP2pDevice extends java.lang.Object implements android.os.IParcelable {
					constructor();
					/**
					 * copy constructor
					 */
					constructor(source: android.net.wifi.p2p.WifiP2pDevice);
					/**
					 * The device name is a user friendly string to identify a Wi-Fi p2p device
					 */
					deviceName: string;
					/**
					 * The device MAC address uniquely identifies a Wi-Fi p2p device
					 */
					deviceAddress: string;
					/**
					 * Primary device type identifies the type of device. For example, an application could filter the devices discovered to only display printers if the purpose is to enable a printing action from the user. See the Wi-Fi Direct technical specification for the full list of standard device types supported.
					 */
					primaryDeviceType: string;
					/**
					 * Secondary device type is an optional attribute that can be provided by a device in addition to the primary device type.
					 */
					secondaryDeviceType: string;
					static CONNECTED: number;
					static INVITED: number;
					static FAILED: number;
					static AVAILABLE: number;
					static UNAVAILABLE: number;
					/**
					 * Device connection status
					 */
					status: number;
					/**
					 * Implement the Parcelable interface
					 */
					static CREATOR: android.os.Parcelable.ICreator<android.net.wifi.p2p.WifiP2pDevice>;
					static class: java.lang.Class<android.net.wifi.p2p.WifiP2pDevice>;
					/**
					 * Returns true if WPS push button configuration is supported
					 */
					public wpsPbcSupported(): boolean;
					/**
					 * Returns true if WPS keypad configuration is supported
					 */
					public wpsKeypadSupported(): boolean;
					/**
					 * Returns true if WPS display configuration is supported
					 */
					public wpsDisplaySupported(): boolean;
					/**
					 * Returns true if the device is capable of service discovery
					 */
					public isServiceDiscoveryCapable(): boolean;
					/**
					 * Returns true if the device is a group owner
					 */
					public isGroupOwner(): boolean;
					public equals(obj: any): boolean;
					public toString(): string;
					/**
					 * Implement the Parcelable interface
					 */
					public describeContents(): number;
					/**
					 * Implement the Parcelable interface
					 */
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
				/**
				 * A class representing a Wi-Fi P2p configuration for setting up a connection
				 */
				export class WifiP2pConfig extends java.lang.Object implements android.os.IParcelable {
					constructor();
					/**
					 * copy constructor
					 */
					constructor(source: android.net.wifi.p2p.WifiP2pConfig);
					/**
					 * The device MAC address uniquely identifies a Wi-Fi p2p device
					 */
					deviceAddress: string;
					/**
					 * Wi-Fi Protected Setup information
					 */
					wps: android.net.wifi.WpsInfo;
					/**
					 * This is an integer value between 0 and 15 where 0 indicates the least inclination to be a group owner and 15 indicates the highest inclination to be a group owner.
					 */
					groupOwnerIntent: number;
					/**
					 * Implement the Parcelable interface
					 */
					static CREATOR: android.os.Parcelable.ICreator<android.net.wifi.p2p.WifiP2pConfig>;
					static class: java.lang.Class<android.net.wifi.p2p.WifiP2pConfig>;
					public toString(): string;
					/**
					 * Implement the Parcelable interface
					 */
					public describeContents(): number;
					/**
					 * Implement the Parcelable interface
					 */
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
				/**
				 * A class representing a Wi-Fi P2p group
				 */
				export class WifiP2pGroup extends java.lang.Object implements android.os.IParcelable {
					constructor();
					/**
					 * copy constructor
					 */
					constructor(source: android.net.wifi.p2p.WifiP2pGroup);
					/**
					 * Implement the Parcelable interface
					 */
					static CREATOR: android.os.Parcelable.ICreator<android.net.wifi.p2p.WifiP2pGroup>;
					static class: java.lang.Class<android.net.wifi.p2p.WifiP2pGroup>;
					/**
					 * Get the network name (SSID) of the group. Legacy Wi-Fi clients will discover the p2p group using the network name.
					 */
					public getNetworkName(): string;
					/**
					 * Check whether this device is the group owner of the created p2p group
					 */
					public isGroupOwner(): boolean;
					/**
					 * Get the details of the group owner as a WifiP2pDevice object
					 */
					public getOwner(): android.net.wifi.p2p.WifiP2pDevice;
					/**
					 * Get the list of clients currently part of the p2p group
					 */
					public getClientList(): java.util.ICollection<android.net.wifi.p2p.WifiP2pDevice>;
					/**
					 * Get the passphrase of the group. This function will return a valid passphrase only at the group owner. Legacy Wi-Fi clients will need this passphrase alongside network name obtained from #getNetworkName() to join the group
					 */
					public getPassphrase(): string;
					/**
					 * Get the interface name on which the group is created
					 */
					public getInterface(): string;
					public toString(): string;
					/**
					 * Implement the Parcelable interface
					 */
					public describeContents(): number;
					/**
					 * Implement the Parcelable interface
					 */
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
				/**
				 * This class provides the API for managing Wi-Fi peer-to-peer connectivity. This lets an application discover available peers, setup connection to peers and query for the list of peers. When a p2p connection is formed over wifi, the device continues to maintain the uplink connection over mobile or any other available network for internet connectivity on the device.
				 */
				export class WifiP2pManager extends java.lang.Object {
					/**
					 * Broadcast intent action to indicate whether Wi-Fi p2p is enabled or disabled. An extra #EXTRA_WIFI_STATE provides the state information as int.
					 */
					static WIFI_P2P_STATE_CHANGED_ACTION: string;
					/**
					 * The lookup key for an int that indicates whether Wi-Fi p2p is enabled or disabled. Retrieve it with android.content.Intent#getIntExtra(String,int).
					 */
					static EXTRA_WIFI_STATE: string;
					/**
					 * Wi-Fi p2p is disabled.
					 */
					static WIFI_P2P_STATE_DISABLED: number;
					/**
					 * Wi-Fi p2p is enabled.
					 */
					static WIFI_P2P_STATE_ENABLED: number;
					/**
					 * Broadcast intent action indicating that the state of Wi-Fi p2p connectivity has changed. One extra #EXTRA_WIFI_P2P_INFO provides the p2p connection info in the form of a WifiP2pInfo object. Another extra #EXTRA_NETWORK_INFO provides the network info in the form of a android.net.NetworkInfo.
					 */
					static WIFI_P2P_CONNECTION_CHANGED_ACTION: string;
					/**
					 * The lookup key for a android.net.wifi.p2p.WifiP2pInfo object Retrieve with android.content.Intent#getParcelableExtra(String).
					 */
					static EXTRA_WIFI_P2P_INFO: string;
					/**
					 * The lookup key for a android.net.NetworkInfo object associated with the Wi-Fi network. Retrieve with android.content.Intent#getParcelableExtra(String).
					 */
					static EXTRA_NETWORK_INFO: string;
					/**
					 * Broadcast intent action indicating that the available peer list has changed. Fetch the changed list of peers with #requestPeers
					 */
					static WIFI_P2P_PEERS_CHANGED_ACTION: string;
					/**
					 * Broadcast intent action indicating that peer discovery has either started or stopped. One extra #EXTRA_DISCOVERY_STATE indicates whether discovery has started or stopped.
					 */
					static WIFI_P2P_DISCOVERY_CHANGED_ACTION: string;
					/**
					 * The lookup key for an int that indicates whether p2p discovery has started or stopped. Retrieve it with android.content.Intent#getIntExtra(String,int).
					 */
					static EXTRA_DISCOVERY_STATE: string;
					/**
					 * p2p discovery has stopped
					 */
					static WIFI_P2P_DISCOVERY_STOPPED: number;
					/**
					 * p2p discovery has started
					 */
					static WIFI_P2P_DISCOVERY_STARTED: number;
					/**
					 * Broadcast intent action indicating that this device details have changed.
					 */
					static WIFI_P2P_THIS_DEVICE_CHANGED_ACTION: string;
					/**
					 * The lookup key for a android.net.wifi.p2p.WifiP2pDevice object Retrieve with android.content.Intent#getParcelableExtra(String).
					 */
					static EXTRA_WIFI_P2P_DEVICE: string;
					/**
					 * Passed with ActionListener#onFailure. Indicates that the operation failed due to an internal error.
					 */
					static ERROR: number;
					/**
					 * Passed with ActionListener#onFailure. Indicates that the operation failed because p2p is unsupported on the device.
					 */
					static P2P_UNSUPPORTED: number;
					/**
					 * Passed with ActionListener#onFailure. Indicates that the operation failed because the framework is busy and unable to service the request
					 */
					static BUSY: number;
					/**
					 * Passed with ActionListener#onFailure. Indicates that the #discoverServices failed because no service requests are added. Use #addServiceRequest to add a service request.
					 */
					static NO_SERVICE_REQUESTS: number;
					static class: java.lang.Class<android.net.wifi.p2p.WifiP2pManager>;
					/**
					 * Registers the application with the Wi-Fi framework. This function must be the first to be called before any p2p operations are performed.
					 * @param srcContext is the context of the source
					 * @param srcLooper is the Looper on which the callbacks are receivied
					 * @param listener for callback at loss of framework communication. Can be null.
					 */
					public initialize(srcContext: android.content.Context, srcLooper: android.os.Looper, listener: android.net.wifi.p2p.WifiP2pManager.IChannelListener): android.net.wifi.p2p.WifiP2pManager.Channel;
					/**
					 * Initiate peer discovery. A discovery process involves scanning for available Wi-Fi peers for the purpose of establishing a connection.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public discoverPeers(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Stop an ongoing peer discovery
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public stopPeerDiscovery(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Start a p2p connection to a device with the specified configuration.
					 * @param c is the channel created at {@link #initialize}
					 * @param config options as described in {@link WifiP2pConfig} class
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public connect(c: android.net.wifi.p2p.WifiP2pManager.Channel, config: android.net.wifi.p2p.WifiP2pConfig, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Cancel any ongoing p2p group negotiation
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public cancelConnect(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Create a p2p group with the current device as the group owner. This essentially creates an access point that can accept connections from legacy clients as well as other p2p devices.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public createGroup(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Remove the current p2p group.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public removeGroup(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Register a local service for service discovery. If a local service is registered, the framework automatically responds to a service discovery request from a peer.
					 * @param c is the channel created at {@link #initialize}
					 * @param servInfo is a local service information.
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public addLocalService(c: android.net.wifi.p2p.WifiP2pManager.Channel, servInfo: android.net.wifi.p2p.nsd.WifiP2pServiceInfo, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Remove a registered local service added with #addLocalService
					 * @param c is the channel created at {@link #initialize}
					 * @param servInfo is the local service information.
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public removeLocalService(c: android.net.wifi.p2p.WifiP2pManager.Channel, servInfo: android.net.wifi.p2p.nsd.WifiP2pServiceInfo, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Clear all registered local services of service discovery.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public clearLocalServices(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Register a callback to be invoked on receiving service discovery response. Used only for vendor specific protocol right now. For Bonjour or Upnp, use #setDnsSdResponseListeners or #setUpnpServiceResponseListener respectively.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on receiving service discovery response.
					 */
					public setServiceResponseListener(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IServiceResponseListener): void;
					/**
					 * Register a callback to be invoked on receiving Bonjour service discovery response.
					 * @param c 
					 * @param servListener is for listening to a Bonjour service response
					 * @param txtListener is for listening to a Bonjour TXT record response
					 */
					public setDnsSdResponseListeners(c: android.net.wifi.p2p.WifiP2pManager.Channel, servListener: android.net.wifi.p2p.WifiP2pManager.IDnsSdServiceResponseListener, txtListener: android.net.wifi.p2p.WifiP2pManager.IDnsSdTxtRecordListener): void;
					/**
					 * Register a callback to be invoked on receiving upnp service discovery response.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on receiving service discovery response.
					 */
					public setUpnpServiceResponseListener(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IUpnpServiceResponseListener): void;
					/**
					 * Initiate service discovery. A discovery process involves scanning for requested services for the purpose of establishing a connection to a peer that supports an available service.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public discoverServices(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Add a service discovery request.
					 * @param c is the channel created at {@link #initialize}
					 * @param req is the service discovery request.
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public addServiceRequest(c: android.net.wifi.p2p.WifiP2pManager.Channel, req: android.net.wifi.p2p.nsd.WifiP2pServiceRequest, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Remove a specified service discovery request added with #addServiceRequest
					 * @param c is the channel created at {@link #initialize}
					 * @param req is the service discovery request.
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public removeServiceRequest(c: android.net.wifi.p2p.WifiP2pManager.Channel, req: android.net.wifi.p2p.nsd.WifiP2pServiceRequest, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Clear all registered service discovery requests.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callbacks on success or failure. Can be null.
					 */
					public clearServiceRequests(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IActionListener): void;
					/**
					 * Request the current list of peers.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callback when peer list is available. Can be null.
					 */
					public requestPeers(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IPeerListListener): void;
					/**
					 * Request device connection info.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callback when connection info is available. Can be null.
					 */
					public requestConnectionInfo(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IConnectionInfoListener): void;
					/**
					 * Request p2p group info.
					 * @param c is the channel created at {@link #initialize}
					 * @param listener for callback when group info is available. Can be null.
					 */
					public requestGroupInfo(c: android.net.wifi.p2p.WifiP2pManager.Channel, listener: android.net.wifi.p2p.WifiP2pManager.IGroupInfoListener): void;
				}
				export module WifiP2pManager {
					/**
					 * Interface for callback invocation when framework channel is lost
					 */
					export class ChannelListener implements android.net.wifi.p2p.WifiP2pManager.IChannelListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IChannelListener);
						/**
						 * The channel to the framework has been disconnected. Application could try re-initializing using #initialize
						 */
						public onChannelDisconnected(): void;
					}
					/**
					 * Interface for callback invocation when upnp service discovery response is received 
					 */
					interface IUpnpServiceResponseListener {
						/**
						 * The requested upnp service response is available.
						 * @param uniqueServiceNames The list of unique service names.<br>
						 * @param srcDevice source device.
						 */
						onUpnpServiceAvailable(uniqueServiceNames: java.util.IList<string>, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * Interface for callback invocation when framework channel is lost
					 */
					interface IChannelListener {
						/**
						 * The channel to the framework has been disconnected. Application could try re-initializing using #initialize
						 */
						onChannelDisconnected(): void;
					}
					/**
					 * Interface for callback invocation on an application action
					 */
					interface IActionListener {
						/**
						 * The operation succeeded
						 */
						onSuccess(): void;
						/**
						 * The operation failed
						 * @param reason The reason for failure could be one of {@link #P2P_UNSUPPORTED},
						 */
						onFailure(reason: number): void;
					}
					/**
					 * Interface for callback invocation when upnp service discovery response is received 
					 */
					export class UpnpServiceResponseListener implements android.net.wifi.p2p.WifiP2pManager.IUpnpServiceResponseListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IUpnpServiceResponseListener);
						/**
						 * The requested upnp service response is available.
						 * @param uniqueServiceNames The list of unique service names.<br>
						 * @param srcDevice source device.
						 */
						public onUpnpServiceAvailable(uniqueServiceNames: java.util.IList<string>, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * A channel that connects the application to the Wifi p2p framework. Most p2p operations require a Channel as an argument. An instance of Channel is obtained by doing a call on #initialize
					 */
					export class Channel extends java.lang.Object {
						static class: java.lang.Class<android.net.wifi.p2p.WifiP2pManager.Channel>;
					}
					export module Channel {
						export class P2pHandler extends android.os.Handler {
							static class: java.lang.Class<android.net.wifi.p2p.WifiP2pManager.Channel.P2pHandler>;
							public handleMessage(message: android.os.Message): void;
						}
					}
					/**
					 * Interface for callback invocation when group info is available
					 */
					interface IGroupInfoListener {
						/**
						 * The requested p2p group info is available
						 * @param group Wi-Fi p2p group info
						 */
						onGroupInfoAvailable(group: android.net.wifi.p2p.WifiP2pGroup): void;
					}
					/**
					 * Interface for callback invocation when peer list is available
					 */
					interface IPeerListListener {
						/**
						 * The requested peer list is available
						 * @param peers List of available peers
						 */
						onPeersAvailable(peers: android.net.wifi.p2p.WifiP2pDeviceList): void;
					}
					/**
					 * Interface for callback invocation when Bonjour service discovery response is received
					 */
					export class DnsSdServiceResponseListener implements android.net.wifi.p2p.WifiP2pManager.IDnsSdServiceResponseListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IDnsSdServiceResponseListener);
						/**
						 * The requested Bonjour service response is available.
						 * @param instanceName instance name.<br>
						 * @param registrationType <br>
						 * @param srcDevice source device.
						 */
						public onDnsSdServiceAvailable(instanceName: string, registrationType: string, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * Interface for callback invocation when service discovery response other than Upnp or Bonjour is received
					 */
					interface IServiceResponseListener {
						/**
						 * The requested service response is available.
						 * @param protocolType protocol type. currently only
						 * @param responseData service discovery response data based on the requested
						 * @param srcDevice source device.
						 */
						onServiceAvailable(protocolType: number, responseData: native.Array<number>, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * Interface for callback invocation when Bonjour TXT record is available for a service
					 */
					export class DnsSdTxtRecordListener implements android.net.wifi.p2p.WifiP2pManager.IDnsSdTxtRecordListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IDnsSdTxtRecordListener);
						/**
						 * The requested Bonjour service response is available.
						 * @param fullDomainName full domain name. <br>
						 * @param txtRecordMap TXT record data as a map of key/value pairs
						 * @param srcDevice source device.
						 */
						public onDnsSdTxtRecordAvailable(fullDomainName: string, txtRecordMap: java.util.IMap<string, string>, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * Interface for callback invocation when connection info is available
					 */
					export class ConnectionInfoListener implements android.net.wifi.p2p.WifiP2pManager.IConnectionInfoListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IConnectionInfoListener);
						/**
						 * The requested connection info is available
						 * @param info Wi-Fi p2p connection info
						 */
						public onConnectionInfoAvailable(info: android.net.wifi.p2p.WifiP2pInfo): void;
					}
					/**
					 * Interface for callback invocation on an application action
					 */
					export class ActionListener implements android.net.wifi.p2p.WifiP2pManager.IActionListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IActionListener);
						/**
						 * The operation succeeded
						 */
						public onSuccess(): void;
						/**
						 * The operation failed
						 * @param reason The reason for failure could be one of {@link #P2P_UNSUPPORTED},
						 */
						public onFailure(reason: number): void;
					}
					/**
					 * Interface for callback invocation when peer list is available
					 */
					export class PeerListListener implements android.net.wifi.p2p.WifiP2pManager.IPeerListListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IPeerListListener);
						/**
						 * The requested peer list is available
						 * @param peers List of available peers
						 */
						public onPeersAvailable(peers: android.net.wifi.p2p.WifiP2pDeviceList): void;
					}
					/**
					 * Interface for callback invocation when group info is available
					 */
					export class GroupInfoListener implements android.net.wifi.p2p.WifiP2pManager.IGroupInfoListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IGroupInfoListener);
						/**
						 * The requested p2p group info is available
						 * @param group Wi-Fi p2p group info
						 */
						public onGroupInfoAvailable(group: android.net.wifi.p2p.WifiP2pGroup): void;
					}
					/**
					 * Interface for callback invocation when service discovery response other than Upnp or Bonjour is received
					 */
					export class ServiceResponseListener implements android.net.wifi.p2p.WifiP2pManager.IServiceResponseListener {
						constructor(implementation: android.net.wifi.p2p.WifiP2pManager.IServiceResponseListener);
						/**
						 * The requested service response is available.
						 * @param protocolType protocol type. currently only
						 * @param responseData service discovery response data based on the requested
						 * @param srcDevice source device.
						 */
						public onServiceAvailable(protocolType: number, responseData: native.Array<number>, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * Interface for callback invocation when Bonjour service discovery response is received
					 */
					interface IDnsSdServiceResponseListener {
						/**
						 * The requested Bonjour service response is available.
						 * @param instanceName instance name.<br>
						 * @param registrationType <br>
						 * @param srcDevice source device.
						 */
						onDnsSdServiceAvailable(instanceName: string, registrationType: string, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * Interface for callback invocation when Bonjour TXT record is available for a service
					 */
					interface IDnsSdTxtRecordListener {
						/**
						 * The requested Bonjour service response is available.
						 * @param fullDomainName full domain name. <br>
						 * @param txtRecordMap TXT record data as a map of key/value pairs
						 * @param srcDevice source device.
						 */
						onDnsSdTxtRecordAvailable(fullDomainName: string, txtRecordMap: java.util.IMap<string, string>, srcDevice: android.net.wifi.p2p.WifiP2pDevice): void;
					}
					/**
					 * Interface for callback invocation when connection info is available
					 */
					interface IConnectionInfoListener {
						/**
						 * The requested connection info is available
						 * @param info Wi-Fi p2p connection info
						 */
						onConnectionInfoAvailable(info: android.net.wifi.p2p.WifiP2pInfo): void;
					}
				}
				export module nsd {
					/**
					 * A class for storing Upnp service information that is advertised over a Wi-Fi peer-to-peer setup.
					 */
					export class WifiP2pUpnpServiceInfo extends android.net.wifi.p2p.nsd.WifiP2pServiceInfo {
						static class: java.lang.Class<android.net.wifi.p2p.nsd.WifiP2pUpnpServiceInfo>;
						/**
						 * Create UPnP service information object.
						 * @param uuid a string representation of this UUID in the following format,
						 * @param device a string representation of this device in the following format,
						 * @param services a string representation of this service in the following format,
						 */
						public static newInstance(uuid: string, device: string, services: java.util.IList<string>): android.net.wifi.p2p.nsd.WifiP2pUpnpServiceInfo;
					}
					/**
					 * A class for storing Bonjour service information that is advertised over a Wi-Fi peer-to-peer setup.
					 */
					export class WifiP2pDnsSdServiceInfo extends android.net.wifi.p2p.nsd.WifiP2pServiceInfo {
						static class: java.lang.Class<android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo>;
						/**
						 * Create a Bonjour service information object.
						 * @param instanceName instance name.<br>
						 * @param serviceType service type.<br>
						 * @param txtMap TXT record with key/value pair in a map confirming to format defined at
						 */
						public static newInstance(instanceName: string, serviceType: string, txtMap: java.util.IMap<string, string>): android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo;
					}
					/**
					 * A class for storing service information that is advertised over a Wi-Fi peer-to-peer setup
					 */
					export class WifiP2pServiceInfo extends java.lang.Object implements android.os.IParcelable {
						/**
						 * All service protocol types.
						 */
						static SERVICE_TYPE_ALL: number;
						/**
						 * DNS based service discovery protocol.
						 */
						static SERVICE_TYPE_BONJOUR: number;
						/**
						 * UPnP protocol.
						 */
						static SERVICE_TYPE_UPNP: number;
						/**
						 * Vendor Specific protocol
						 */
						static SERVICE_TYPE_VENDOR_SPECIFIC: number;
						static class: java.lang.Class<android.net.wifi.p2p.nsd.WifiP2pServiceInfo>;
						public equals(o: any): boolean;
						public hashCode(): number;
						/**
						 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
						 */
						describeContents(): number;
						/**
						 * Flatten this object in to a Parcel. 
						 * @param dest The Parcel in which the object should be written.
						 * @param flags Additional flags about how the object should be written.
						 */
						writeToParcel(dest: android.os.Parcel, flags: number): void;
					}
					/**
					 * A class for creating a Bonjour service discovery request for use with WifiP2pManager#addServiceRequest and WifiP2pManager#removeServiceRequest
					 */
					export class WifiP2pDnsSdServiceRequest extends android.net.wifi.p2p.nsd.WifiP2pServiceRequest {
						static class: java.lang.Class<android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest>;
						/**
						 * Create a service discovery request to search all Bonjour services.
						 */
						public static newInstance(): android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest;
						/**
						 * Create a service discovery to search for Bonjour services with the specified service type.
						 * @param serviceType service type. Cannot be null <br>
						 */
						public static newInstance(serviceType: string): android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest;
						/**
						 * Create a service discovery request to get the TXT data from the specified Bonjour service.
						 * @param instanceName instance name. Cannot be null. <br>
						 * @param serviceType service type. Cannot be null. <br>
						 */
						public static newInstance(instanceName: string, serviceType: string): android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest;
						/**
						 * Create a service discovery request.
						 * @param protocolType can be {@link WifiP2pServiceInfo#SERVICE_TYPE_ALL}
						 * @param queryData hex string that is vendor specific. Can be null.
						 */
						static newInstance(protocolType: number, queryData: string): android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
						/**
						 * Create a service discovery request.
						 * @param protocolType can be {@link WifiP2pServiceInfo#SERVICE_TYPE_ALL}
						 */
						static newInstance(protocolType: number): android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
					}
					/**
					 * A class for creating a service discovery request for use with WifiP2pManager#addServiceRequest and WifiP2pManager#removeServiceRequest
					 */
					export class WifiP2pServiceRequest extends java.lang.Object implements android.os.IParcelable {
						static class: java.lang.Class<android.net.wifi.p2p.nsd.WifiP2pServiceRequest>;
						/**
						 * Create a service discovery request.
						 * @param protocolType can be {@link WifiP2pServiceInfo#SERVICE_TYPE_ALL}
						 * @param queryData hex string that is vendor specific. Can be null.
						 */
						public static newInstance(protocolType: number, queryData: string): android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
						/**
						 * Create a service discovery request.
						 * @param protocolType can be {@link WifiP2pServiceInfo#SERVICE_TYPE_ALL}
						 */
						public static newInstance(protocolType: number): android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
						public equals(o: any): boolean;
						public hashCode(): number;
						/**
						 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
						 */
						describeContents(): number;
						/**
						 * Flatten this object in to a Parcel. 
						 * @param dest The Parcel in which the object should be written.
						 * @param flags Additional flags about how the object should be written.
						 */
						writeToParcel(dest: android.os.Parcel, flags: number): void;
					}
					/**
					 * A class for creating a Upnp service discovery request for use with WifiP2pManager#addServiceRequest and WifiP2pManager#removeServiceRequest
					 */
					export class WifiP2pUpnpServiceRequest extends android.net.wifi.p2p.nsd.WifiP2pServiceRequest {
						static class: java.lang.Class<android.net.wifi.p2p.nsd.WifiP2pUpnpServiceRequest>;
						/**
						 * Create a service discovery request to search all UPnP services.
						 */
						public static newInstance(): android.net.wifi.p2p.nsd.WifiP2pUpnpServiceRequest;
						/**
						 * Create a service discovery request to search specified UPnP services.
						 * @param st ssdp search target. Cannot be null.<br>
						 */
						public static newInstance(st: string): android.net.wifi.p2p.nsd.WifiP2pUpnpServiceRequest;
						/**
						 * Create a service discovery request.
						 * @param protocolType can be {@link WifiP2pServiceInfo#SERVICE_TYPE_ALL}
						 * @param queryData hex string that is vendor specific. Can be null.
						 */
						static newInstance(protocolType: number, queryData: string): android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
						/**
						 * Create a service discovery request.
						 * @param protocolType can be {@link WifiP2pServiceInfo#SERVICE_TYPE_ALL}
						 */
						static newInstance(protocolType: number): android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
					}
				}
				/**
				 * A class representing a Wi-Fi P2p device list.
				 */
				export class WifiP2pDeviceList extends java.lang.Object implements android.os.IParcelable {
					constructor();
					/**
					 * copy constructor
					 */
					constructor(source: android.net.wifi.p2p.WifiP2pDeviceList);
					/**
					 * Implement the Parcelable interface
					 */
					static CREATOR: android.os.Parcelable.ICreator<android.net.wifi.p2p.WifiP2pDeviceList>;
					static class: java.lang.Class<android.net.wifi.p2p.WifiP2pDeviceList>;
					/**
					 * Get the list of devices
					 */
					public getDeviceList(): java.util.ICollection<android.net.wifi.p2p.WifiP2pDevice>;
					public toString(): string;
					/**
					 * Implement the Parcelable interface
					 */
					public describeContents(): number;
					/**
					 * Implement the Parcelable interface
					 */
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
				/**
				 * A class representing connection information about a Wi-Fi p2p group
				 */
				export class WifiP2pInfo extends java.lang.Object implements android.os.IParcelable {
					constructor();
					/**
					 * copy constructor
					 */
					constructor(source: android.net.wifi.p2p.WifiP2pInfo);
					/**
					 * Indicates if a p2p group has been successfully formed
					 */
					groupFormed: boolean;
					/**
					 * Indicates if the current device is the group owner
					 */
					isGroupOwner: boolean;
					/**
					 * Group owner address
					 */
					groupOwnerAddress: java.net.InetAddress;
					/**
					 * Implement the Parcelable interface
					 */
					static CREATOR: android.os.Parcelable.ICreator<android.net.wifi.p2p.WifiP2pInfo>;
					static class: java.lang.Class<android.net.wifi.p2p.WifiP2pInfo>;
					public toString(): string;
					/**
					 * Implement the Parcelable interface
					 */
					public describeContents(): number;
					/**
					 * Implement the Parcelable interface
					 */
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
			}
		}
		export class LocalSocketTest {
			constructor();
			static class: java.lang.Class<android.net.LocalSocketTest>;
			public testBasic(): void;
		}
		export class UriMatcherTest {
			constructor();
			static class: java.lang.Class<android.net.UriMatcherTest>;
			public testContentUris(): void;
			check(uri: string, expected: number): void;
		}
		/**
		 * Describes the status of a network interface.
		 */
		export class NetworkInfo extends java.lang.Object implements android.os.IParcelable {
			static class: java.lang.Class<android.net.NetworkInfo>;
			/**
			 * Reports the type of network to which the info in this NetworkInfo pertains.
			 */
			public getType(): number;
			/**
			 * Return a network-type-specific integer describing the subtype of the network.
			 */
			public getSubtype(): number;
			setSubtype(subtype: number, subtypeName: string): void;
			/**
			 * Return a human-readable name describe the type of the network, for example "WIFI" or "MOBILE".
			 */
			public getTypeName(): string;
			/**
			 * Return a human-readable name describing the subtype of the network.
			 */
			public getSubtypeName(): string;
			/**
			 * Indicates whether network connectivity exists or is in the process of being established. This is good for applications that need to do anything related to the network other than read or write data. For the latter, call #isConnected() instead, which guarantees that the network is fully usable.
			 */
			public isConnectedOrConnecting(): boolean;
			/**
			 * Indicates whether network connectivity exists and it is possible to establish connections and pass data.
			 */
			public isConnected(): boolean;
			/**
			 * Indicates whether network connectivity is possible. A network is unavailable when a persistent or semi-persistent condition prevents the possibility of connecting to that network. Examples include <ul> <li>The device is out of the coverage area for any network of this type.</li> <li>The device is on a network other than the home network (i.e., roaming), and data roaming has been disabled.</li> <li>The device's radio is turned off, e.g., because airplane mode is enabled.</li> </ul>
			 */
			public isAvailable(): boolean;
			/**
			 * Indicates whether the current attempt to connect to the network resulted from the ConnectivityManager trying to fail over to this network following a disconnect from another network.
			 */
			public isFailover(): boolean;
			/**
			 * Indicates whether the device is currently roaming on this network. When true, it suggests that use of data on this network may incur extra costs.
			 */
			public isRoaming(): boolean;
			setRoaming(isRoaming: boolean): void;
			/**
			 * Reports the current coarse-grained state of the network.
			 */
			public getState(): android.net.NetworkInfo.State;
			/**
			 * Reports the current fine-grained state of the network.
			 */
			public getDetailedState(): android.net.NetworkInfo.DetailedState;
			/**
			 * Report the reason an attempt to establish connectivity failed, if one is available.
			 */
			public getReason(): string;
			/**
			 * Report the extra information about the network state, if any was provided by the lower networking layers., if one is available.
			 */
			public getExtraInfo(): string;
			public toString(): string;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export module NetworkInfo {
			/**
			 * Coarse-grained network state. This is probably what most applications should use, rather than android.net.NetworkInfo.DetailedState DetailedState. The mapping between the two is as follows: <br/><br/> <table> <tr><td><b>Detailed state</b></td><td><b>Coarse-grained state</b></td></tr> <tr><td><code>IDLE</code></td><td><code>DISCONNECTED</code></td></tr> <tr><td><code>SCANNING</code></td><td><code>CONNECTING</code></td></tr> <tr><td><code>CONNECTING</code></td><td><code>CONNECTING</code></td></tr> <tr><td><code>AUTHENTICATING</code></td><td><code>CONNECTING</code></td></tr> <tr><td><code>CONNECTED</code></td><td><code>CONNECTED</code></td></tr> <tr><td><code>DISCONNECTING</code></td><td><code>DISCONNECTING</code></td></tr> <tr><td><code>DISCONNECTED</code></td><td><code>DISCONNECTED</code></td></tr> <tr><td><code>UNAVAILABLE</code></td><td><code>DISCONNECTED</code></td></tr> <tr><td><code>FAILED</code></td><td><code>DISCONNECTED</code></td></tr> </table>
			 */
			export enum State {
				CONNECTING,
				CONNECTED,
				SUSPENDED,
				DISCONNECTING,
				DISCONNECTED,
				UNKNOWN
			}
			/**
			 * The fine-grained state of a network connection. This level of detail is probably of interest to few applications. Most should use android.net.NetworkInfo.State State instead.
			 */
			export enum DetailedState {
				IDLE,
				SCANNING,
				CONNECTING,
				AUTHENTICATING,
				OBTAINING_IPADDR,
				CONNECTED,
				SUSPENDED,
				DISCONNECTING,
				DISCONNECTED,
				FAILED,
				BLOCKED,
				VERIFYING_POOR_LINK,
				CAPTIVE_PORTAL_CHECK
			}
		}
		/**
		 * A UNIX-domain (AF_LOCAL) socket address. For use with android.net.LocalSocket and android.net.LocalServerSocket.
		 */
		export class LocalSocketAddress extends java.lang.Object {
			/**
			 * Creates an instance with a given name.
			 * @param name non-null name
			 * @param namespace namespace the name should be created in.
			 */
			constructor(name: string, namespace: android.net.LocalSocketAddress.Namespace);
			/**
			 * Creates an instance with a given name in the Namespace#ABSTRACT namespace
			 * @param name non-null name
			 */
			constructor(name: string);
			static class: java.lang.Class<android.net.LocalSocketAddress>;
			/**
			 * Retrieves the string name of this address
			 */
			public getName(): string;
			/**
			 * Returns the namespace used by this address.
			 */
			public getNamespace(): android.net.LocalSocketAddress.Namespace;
		}
		export module LocalSocketAddress {
			/**
			 * The namespace that this address exists in. See also include/cutils/sockets.h ANDROID_SOCKET_NAMESPACE_*
			 */
			export enum Namespace {
				ABSTRACT,
				RESERVED,
				FILESYSTEM
			}
		}
		export module rtp {
			/**
			 * An AudioStream is a RtpStream which carrys audio payloads over Real-time Transport Protocol (RTP). Two different classes are developed in order to support various usages such as audio conferencing. An AudioStream represents a remote endpoint which consists of a network mapping and a configured AudioCodec. On the other side, An AudioGroup represents a local endpoint which mixes all the AudioStreams and optionally interacts with the speaker and the microphone at the same time. The simplest usage includes one for each endpoints. For other combinations, developers should be aware of the limitations described in AudioGroup.
			 */
			export class AudioStream extends android.net.rtp.RtpStream {
				/**
				 * Creates an AudioStream on the given local address. Note that the local port is assigned automatically to conform with RFC 3550.
				 * @param address The network address of the local host to bind to.
				 */
				constructor(address: java.net.InetAddress);
				static class: java.lang.Class<android.net.rtp.AudioStream>;
				/**
				 * Returns true if the stream has already joined an AudioGroup.
				 */
				public isBusy(): boolean;
				/**
				 * Returns the joined AudioGroup.
				 */
				public getGroup(): android.net.rtp.AudioGroup;
				/**
				 * Joins an AudioGroup. Each stream can join only one group at a time. The group can be changed by passing a different one or removed by calling this method with null.
				 * @param group The AudioGroup to join or {@code null} to leave.
				 */
				public join(group: android.net.rtp.AudioGroup): void;
				/**
				 * Returns the AudioCodec, or null if it is not set.
				 */
				public getCodec(): android.net.rtp.AudioCodec;
				/**
				 * Sets the AudioCodec.
				 * @param codec The AudioCodec to be used.
				 */
				public setCodec(codec: android.net.rtp.AudioCodec): void;
				/**
				 * Returns the RTP payload type for dual-tone multi-frequency (DTMF) digits, or -1 if it is not enabled.
				 */
				public getDtmfType(): number;
				/**
				 * Sets the RTP payload type for dual-tone multi-frequency (DTMF) digits. The primary usage is to send digits to the remote gateway to perform certain tasks, such as second-stage dialing. According to RFC 2833, the RTP payload type for DTMF is assigned dynamically, so it must be in the range of 96 and 127. One can use -1 to disable DTMF and free up the previous assigned type. This method cannot be called when the stream already joined an AudioGroup.
				 * @param type The RTP payload type to be used or {@code -1} to disable it.
				 */
				public setDtmfType(type: number): void;
			}
			/**
			 * An AudioGroup is an audio hub for the speaker, the microphone, and AudioStreams. Each of these components can be logically turned on or off by calling #setMode(int) or RtpStream#setMode(int). The AudioGroup will go through these components and process them one by one within its execution loop. The loop consists of four steps. First, for each AudioStream not in RtpStream#MODE_SEND_ONLY, decodes its incoming packets and stores in its buffer. Then, if the microphone is enabled, processes the recorded audio and stores in its buffer. Third, if the speaker is enabled, mixes all AudioStream buffers and plays back. Finally, for each AudioStream not in RtpStream#MODE_RECEIVE_ONLY, mixes all other buffers and sends back the encoded packets. An AudioGroup does nothing if there is no AudioStream in it.
			 */
			export class AudioGroup extends java.lang.Object {
				/**
				 * Creates an empty AudioGroup.
				 */
				constructor();
				/**
				 * This mode is similar to #MODE_NORMAL except the speaker and the microphone are both disabled.
				 */
				static MODE_ON_HOLD: number;
				/**
				 * This mode is similar to #MODE_NORMAL except the microphone is disabled.
				 */
				static MODE_MUTED: number;
				/**
				 * This mode indicates that the speaker, the microphone, and all AudioStreams in the group are enabled. First, the packets received from the streams are decoded and mixed with the audio recorded from the microphone. Then, the results are played back to the speaker, encoded and sent back to each stream.
				 */
				static MODE_NORMAL: number;
				/**
				 * This mode is similar to #MODE_NORMAL except the echo suppression is enabled. It should be only used when the speaker phone is on.
				 */
				static MODE_ECHO_SUPPRESSION: number;
				static class: java.lang.Class<android.net.rtp.AudioGroup>;
				/**
				 * Returns the AudioStreams in this group.
				 */
				public getStreams(): native.Array<android.net.rtp.AudioStream>;
				/**
				 * Returns the current mode.
				 */
				public getMode(): number;
				/**
				 * Changes the current mode. It must be one of #MODE_ON_HOLD, #MODE_MUTED, #MODE_NORMAL, and #MODE_ECHO_SUPPRESSION.
				 * @param mode The mode to change to.
				 */
				public setMode(mode: number): void;
				add(stream: android.net.rtp.AudioStream): void;
				remove(stream: android.net.rtp.AudioStream): void;
				/**
				 * Sends a DTMF digit to every AudioStream in this group. Currently only event 0 to 15 are supported.
				 */
				public sendDtmf(event: number): void;
				/**
				 * Removes every AudioStream in this group.
				 */
				public clear(): void;
				protected finalize(): void;
			}
			/**
			 * RtpStream represents the base class of streams which send and receive network packets with media payloads over Real-time Transport Protocol (RTP).
			 */
			export class RtpStream extends java.lang.Object {
				/**
				 * This mode indicates that the stream sends and receives packets at the same time. This is the initial mode for new streams.
				 */
				static MODE_NORMAL: number;
				/**
				 * This mode indicates that the stream only sends packets.
				 */
				static MODE_SEND_ONLY: number;
				/**
				 * This mode indicates that the stream only receives packets.
				 */
				static MODE_RECEIVE_ONLY: number;
				static class: java.lang.Class<android.net.rtp.RtpStream>;
				/**
				 * Returns the network address of the local host.
				 */
				public getLocalAddress(): java.net.InetAddress;
				/**
				 * Returns the network port of the local host.
				 */
				public getLocalPort(): number;
				/**
				 * Returns the network address of the remote host or null if the stream is not associated.
				 */
				public getRemoteAddress(): java.net.InetAddress;
				/**
				 * Returns the network port of the remote host or -1 if the stream is not associated.
				 */
				public getRemotePort(): number;
				/**
				 * Returns true if the stream is busy. In this case most of the setter methods are disabled. This method is intended to be overridden by subclasses.
				 */
				public isBusy(): boolean;
				/**
				 * Returns the current mode.
				 */
				public getMode(): number;
				/**
				 * Changes the current mode. It must be one of #MODE_NORMAL, #MODE_SEND_ONLY, and #MODE_RECEIVE_ONLY.
				 * @param mode The mode to change to.
				 */
				public setMode(mode: number): void;
				/**
				 * Associates with a remote host. This defines the destination of the outgoing packets.
				 * @param address The network address of the remote host.
				 * @param port The network port of the remote host.
				 */
				public associate(address: java.net.InetAddress, port: number): void;
				getSocket(): number;
				/**
				 * Releases allocated resources. The stream becomes inoperable after calling this method.
				 */
				public release(): void;
				protected finalize(): void;
			}
			/**
			 * This class defines a collection of audio codecs to be used with AudioStreams. Their parameters are designed to be exchanged using Session Description Protocol (SDP). Most of the values listed here can be found in RFC 3551, while others are described in separated standards.
			 */
			export class AudioCodec extends java.lang.Object {
				/**
				 * The RTP payload type of the encoding.
				 */
				type: number;
				/**
				 * The encoding parameters to be used in the corresponding SDP attribute.
				 */
				rtpmap: string;
				/**
				 * The format parameters to be used in the corresponding SDP attribute.
				 */
				fmtp: string;
				/**
				 * G.711 u-law audio codec.
				 */
				static PCMU: android.net.rtp.AudioCodec;
				/**
				 * G.711 a-law audio codec.
				 */
				static PCMA: android.net.rtp.AudioCodec;
				/**
				 * GSM Full-Rate audio codec, also known as GSM-FR, GSM 06.10, GSM, or simply FR.
				 */
				static GSM: android.net.rtp.AudioCodec;
				/**
				 * GSM Enhanced Full-Rate audio codec, also known as GSM-EFR, GSM 06.60, or simply EFR.
				 */
				static GSM_EFR: android.net.rtp.AudioCodec;
				/**
				 * Adaptive Multi-Rate narrowband audio codec, also known as AMR or AMR-NB. Currently CRC, robust sorting, and interleaving are not supported. See more details about these features in RFC 4867.
				 */
				static AMR: android.net.rtp.AudioCodec;
				static class: java.lang.Class<android.net.rtp.AudioCodec>;
				/**
				 * Returns system supported audio codecs.
				 */
				public static getCodecs(): native.Array<android.net.rtp.AudioCodec>;
				/**
				 * Creates an AudioCodec according to the given configuration.
				 * @param type The payload type of the encoding defined in RTP/AVP.
				 * @param rtpmap The encoding parameters specified in the corresponding SDP
				 * @param fmtp The format parameters specified in the corresponding SDP
				 */
				public static getCodec(type: number, rtpmap: string, fmtp: string): android.net.rtp.AudioCodec;
			}
		}
		/**
		 * Test LinkSocket
		 */
		export class LinkSocketTest {
			constructor();
			static class: java.lang.Class<android.net.LinkSocketTest>;
			public testBasic(): void;
			public testLinkCapabilities(): void;
		}
		/**
		 * Socket implementation used for android.net.LocalSocket and android.net.LocalServerSocket. Supports only AF_LOCAL sockets.
		 */
		export class LocalSocketImpl extends java.lang.Object {
			static class: java.lang.Class<android.net.LocalSocketImpl>;
			public toString(): string;
			/**
			 * Creates a socket in the underlying OS.
			 * @param stream true if this should be a stream socket, false for
			 */
			public create(stream: boolean): void;
			/**
			 * Closes the socket.
			 */
			public close(): void;
			/**
			 * note timeout presently ignored
			 */
			protected connect(address: android.net.LocalSocketAddress, timeout: number): void;
			/**
			 * Binds this socket to an endpoint name. May only be called on an instance that has not yet been bound.
			 * @param endpoint endpoint address
			 */
			public bind(endpoint: android.net.LocalSocketAddress): void;
			protected listen(backlog: number): void;
			/**
			 * Accepts a new connection to the socket. Blocks until a new connection arrives.
			 * @param s a socket that will be used to represent the new connection.
			 */
			protected accept(s: android.net.LocalSocketImpl): void;
			/**
			 * Retrieves the input stream for this instance.
			 */
			protected getInputStream(): java.io.InputStream;
			/**
			 * Retrieves the output stream for this instance.
			 */
			protected getOutputStream(): java.io.OutputStream;
			/**
			 * Returns the number of bytes available for reading without blocking.
			 */
			protected available(): number;
			/**
			 * Shuts down the input side of the socket.
			 */
			protected shutdownInput(): void;
			/**
			 * Shuts down the output side of the socket.
			 */
			protected shutdownOutput(): void;
			protected getFileDescriptor(): java.io.FileDescriptor;
			protected supportsUrgentData(): boolean;
			protected sendUrgentData(data: number): void;
			public getOption(optID: number): any;
			public setOption(optID: number, value: any): void;
			/**
			 * Enqueues a set of file descriptors to send to the peer. The queue is one deep. The file descriptors will be sent with the next write of normal data, and will be delivered in a single ancillary message. See "man 7 unix" SCM_RIGHTS on a desktop Linux machine.
			 * @param fds non-null; file descriptors to send.
			 */
			public setFileDescriptorsForSend(fds: native.Array<java.io.FileDescriptor>): void;
			/**
			 * Retrieves a set of file descriptors that a peer has sent through an ancillary message. This method retrieves the most recent set sent, and then returns null until a new set arrives. File descriptors may only be passed along with regular data, so this method can only return a non-null after a read operation.
			 */
			public getAncillaryFileDescriptors(): native.Array<java.io.FileDescriptor>;
			/**
			 * Retrieves the credentials of this socket's peer. Only valid on connected sockets.
			 */
			public getPeerCredentials(): android.net.Credentials;
			/**
			 * Retrieves the socket name from the OS.
			 */
			public getSockAddress(): android.net.LocalSocketAddress;
			protected finalize(): void;
		}
		export module LocalSocketImpl {
			/**
			 * An output stream for local sockets. Needed because we may need to read ancillary data.
			 */
			export class SocketOutputStream extends java.io.OutputStream {
				static class: java.lang.Class<android.net.LocalSocketImpl.SocketOutputStream>;
				/**
				 * 
				 */
				public close(): void;
				/**
				 * 
				 */
				public write(b: native.Array<number>): void;
				/**
				 * 
				 */
				public write(b: native.Array<number>, off: number, len: number): void;
				/**
				 * 
				 */
				public write(b: number): void;
			}
			/**
			 * An input stream for local sockets. Needed because we may need to read ancillary data.
			 */
			export class SocketInputStream extends java.io.InputStream {
				static class: java.lang.Class<android.net.LocalSocketImpl.SocketInputStream>;
				/**
				 * 
				 */
				public available(): number;
				/**
				 * 
				 */
				public close(): void;
				/**
				 * 
				 */
				public read(): number;
				/**
				 * 
				 */
				public read(b: native.Array<number>): number;
				/**
				 * 
				 */
				public read(b: native.Array<number>, off: number, len: number): number;
			}
		}
		/**
		 * SSLSocketFactory implementation with several extra features:
		 */
		export class SSLCertificateSocketFactory extends javax.net.ssl.SSLSocketFactory {
			/**
			 *  Use #getDefault(int) instead.
			 */
			constructor(handshakeTimeoutMillis: number);
			static class: java.lang.Class<android.net.SSLCertificateSocketFactory>;
			/**
			 * Returns a new socket factory instance with an optional handshake timeout.
			 * @param handshakeTimeoutMillis to use for SSL connection handshake, or 0
			 */
			public static getDefault(handshakeTimeoutMillis: number): javax.net.SocketFactory;
			/**
			 * Returns a new socket factory instance with an optional handshake timeout and SSL session cache.
			 * @param handshakeTimeoutMillis to use for SSL connection handshake, or 0
			 * @param cache The {@link SSLSessionCache} to use, or null for no cache.
			 */
			public static getDefault(handshakeTimeoutMillis: number, cache: android.net.SSLSessionCache): javax.net.ssl.SSLSocketFactory;
			/**
			 * Returns a new instance of a socket factory with all SSL security checks disabled, using an optional handshake timeout and SSL session cache.
			 * @param handshakeTimeoutMillis to use for SSL connection handshake, or 0
			 * @param cache The {@link SSLSessionCache} to use, or null for no cache.
			 */
			public static getInsecure(handshakeTimeoutMillis: number, cache: android.net.SSLSessionCache): javax.net.ssl.SSLSocketFactory;
			/**
			 * Sets the TrustManagers to be used for connections made by this factory.
			 */
			public setTrustManagers(trustManager: native.Array<javax.net.ssl.ITrustManager>): void;
			/**
			 * Sets the <a href="http://technotes.googlecode.com/git/nextprotoneg.html">Next Protocol Negotiation (NPN)</a> protocols that this peer is interested in.
			 * @param npnProtocols a non-empty list of protocol byte arrays. All arrays
			 */
			public setNpnProtocols(npnProtocols: native.Array<native.Array<number>>): void;
			/**
			 * Returns an array containing the concatenation of length-prefixed byte strings.
			 */
			static toNpnProtocolsList(npnProtocols: native.Array<native.Array<number>>): native.Array<number>;
			/**
			 * Returns the <a href="http://technotes.googlecode.com/git/nextprotoneg.html">Next Protocol Negotiation (NPN)</a> protocol selected by client and server, or null if no protocol was negotiated.
			 * @param socket a socket created by this factory.
			 */
			public getNpnSelectedProtocol(socket: java.net.Socket): native.Array<number>;
			/**
			 * Sets the KeyManagers to be used for connections made by this factory.
			 */
			public setKeyManagers(keyManagers: native.Array<javax.net.ssl.IKeyManager>): void;
			/**
			 * Enables <a href="http://tools.ietf.org/html/rfc5077#section-3.2">session ticket</a> support on the given socket.
			 * @param socket a socket created by this factory
			 * @param useSessionTickets {@code true} to enable session ticket support on this socket.
			 */
			public setUseSessionTickets(socket: java.net.Socket, useSessionTickets: boolean): void;
			/**
			 * Turns on <a href="http://tools.ietf.org/html/rfc6066#section-3">Server Name Indication (SNI)</a> on a given socket.
			 * @param socket a socket created by this factory.
			 * @param hostName the desired SNI hostname, null to disable.
			 */
			public setHostname(socket: java.net.Socket, hostName: string): void;
			/**
			 * 
			 */
			public createSocket(k: java.net.Socket, host: string, port: number, close: boolean): java.net.Socket;
			/**
			 * Creates a new socket which is not connected to any remote host. You must use Socket#connect to connect the socket.
			 */
			public createSocket(): java.net.Socket;
			/**
			 * 
			 */
			public createSocket(addr: java.net.InetAddress, port: number, localAddr: java.net.InetAddress, localPort: number): java.net.Socket;
			/**
			 * 
			 */
			public createSocket(addr: java.net.InetAddress, port: number): java.net.Socket;
			/**
			 * 
			 */
			public createSocket(host: string, port: number, localAddr: java.net.InetAddress, localPort: number): java.net.Socket;
			/**
			 * 
			 */
			public createSocket(host: string, port: number): java.net.Socket;
			public getDefaultCipherSuites(): native.Array<string>;
			public getSupportedCipherSuites(): native.Array<string>;
			/**
			 * Returns the default SSLSocketFactory instance. The default is defined by the security property 'ssl.SocketFactory.provider'.
			 */
			static getDefault(): javax.net.SocketFactory;
		}
		/**
		 * non-standard class for creating inbound UNIX-domain socket on the Android platform, this is created in the Linux non-filesystem namespace.
		 */
		export class LocalServerSocket extends java.lang.Object {
			/**
			 * Crewates a new server socket listening at specified name. On the Android platform, the name is created in the Linux abstract namespace (instead of on the filesystem). 
			 * @param name address for socket
			 */
			constructor(name: string);
			/**
			 * Create a LocalServerSocket from a file descriptor that's already been created and bound. listen() will be called immediately on it. Used for cases where file descriptors are passed in via environment variables
			 * @param fd bound file descriptor
			 */
			constructor(fd: java.io.FileDescriptor);
			static class: java.lang.Class<android.net.LocalServerSocket>;
			/**
			 * Obtains the socket's local address
			 */
			public getLocalSocketAddress(): android.net.LocalSocketAddress;
			/**
			 * Accepts a new connection to the socket. Blocks until a new connection arrives.
			 */
			public accept(): android.net.LocalSocket;
			/**
			 * Returns file descriptor or null if not yet open/already closed
			 */
			public getFileDescriptor(): java.io.FileDescriptor;
			/**
			 * Closes server socket. IOException
			 */
			public close(): void;
		}
		export class WebAddressTest {
			constructor();
			static class: java.lang.Class<android.net.WebAddressTest>;
			public testHostWithTrailingDot(): void;
			public testPathWithoutLeadingSlash(): void;
		}
		export module http {
			/**
			 * X509TrustManager wrapper exposing Android-added features.
			 */
			export class X509TrustManagerExtensions extends java.lang.Object {
				/**
				 * Constructs a new X509TrustManagerExtensions wrapper.
				 * @param tm A {@link X509TrustManager} as returned by TrustManagerFactory.getInstance();
				 */
				constructor(tm: javax.net.ssl.IX509TrustManager);
				static class: java.lang.Class<android.net.http.X509TrustManagerExtensions>;
				/**
				 * Verifies the given certificate chain.
				 */
				public checkServerTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string, host: string): java.util.IList<java.security.cert.X509Certificate>;
			}
			export class DefaultHttpClientProxyTest extends android.net.http.AbstractProxyTest {
				constructor();
				static class: java.lang.Class<android.net.http.DefaultHttpClientProxyTest>;
			}
			export class CookiesTest {
				constructor();
				static class: java.lang.Class<android.net.http.CookiesTest>;
				protected tearDown(): void;
				/**
				 * Test that we don't log potentially sensitive cookie values. http://b/3095990
				 */
				public testCookiesAreNotLogged(): void;
				/**
				 * Test that cookies aren't case-sensitive with respect to hostname. http://b/3167208
				 */
				public testCookiesWithNonMatchingCase(): void;
			}
			export class AbstractProxyTest {
				constructor();
				static class: java.lang.Class<android.net.http.AbstractProxyTest>;
				protected tearDown(): void;
				public testConnectToHttps(): void;
				/**
				 * We had bugs where proxy system properties weren't being honored. http://b/3254717
				 */
				public testConnectViaProxyUsingProxySystemProperty(): void;
				public testConnectViaProxyUsingHttpProxySystemProperty(): void;
				public testConnectViaProxyUsingRequestParameter(): void;
				public testConnectViaProxyUsingClientParameter(): void;
				public testConnectViaHttpProxyToHttpsUsingProxySystemProperty(): void;
				public testConnectViaHttpProxyToHttpsUsingHttpsProxySystemProperty(): void;
				public testConnectViaHttpProxyToHttpsUsingClientParameter(): void;
				public testConnectViaHttpProxyToHttpsUsingRequestParameter(): void;
				public testClientParamPreferredOverSystemProperty(): void;
				public testRequestParamPreferredOverSystemProperty(): void;
				public testExplicitNoProxyCancelsSystemProperty(): void;
				public testRetryWithProxy(): void;
			}
			export module AbstractProxyTest {
				export enum ProxyConfig {
					PROXY_SYSTEM_PROPERTY,
					HTTP_PROXY_SYSTEM_PROPERTY,
					HTTPS_PROXY_SYSTEM_PROPERTY,
					CLIENT_PARAMETER,
					REQUEST_PARAMETER
				}
			}
			/**
			 * This class represents a set of one or more SSL errors and the associated SSL certificate.
			 */
			export class SslError extends java.lang.Object {
				/**
				 * Creates a new SslError object using the supplied error and certificate. The URL will be set to the empty string.
				 * @param error The SSL error
				 * @param certificate The associated SSL certificate
				 */
				constructor(error: number, certificate: android.net.http.SslCertificate);
				/**
				 * Creates a new SslError object using the supplied error and certificate. The URL will be set to the empty string.
				 * @param error The SSL error
				 * @param certificate The associated SSL certificate
				 */
				constructor(error: number, certificate: java.security.cert.X509Certificate);
				/**
				 * Creates a new SslError object using the supplied error, certificate and URL.
				 * @param error The SSL error
				 * @param certificate The associated SSL certificate
				 * @param url The associated URL
				 */
				constructor(error: number, certificate: android.net.http.SslCertificate, url: string);
				/**
				 * Creates a new SslError object using the supplied error, certificate and URL.
				 * @param error The SSL error
				 * @param certificate The associated SSL certificate
				 * @param url The associated URL
				 */
				constructor(error: number, certificate: java.security.cert.X509Certificate, url: string);
				/**
				 * The certificate is not yet valid
				 */
				static SSL_NOTYETVALID: number;
				/**
				 * The certificate has expired
				 */
				static SSL_EXPIRED: number;
				/**
				 * Hostname mismatch
				 */
				static SSL_IDMISMATCH: number;
				/**
				 * The certificate authority is not trusted
				 */
				static SSL_UNTRUSTED: number;
				/**
				 * The date of the certificate is invalid
				 */
				static SSL_DATE_INVALID: number;
				/**
				 * A generic error occurred
				 */
				static SSL_INVALID: number;
				/**
				 * The number of different SSL errors. This constant is not necessary for using the SslError API and can change from release to release.
				 */
				static SSL_MAX_ERROR: number;
				static class: java.lang.Class<android.net.http.SslError>;
				/**
				 * Gets the SSL certificate associated with this object.
				 */
				public getCertificate(): android.net.http.SslCertificate;
				/**
				 * Gets the URL associated with this object.
				 */
				public getUrl(): string;
				/**
				 * Adds the supplied SSL error to the set.
				 * @param error The SSL error to add
				 */
				public addError(error: number): boolean;
				/**
				 * Determines whether this object includes the supplied error.
				 * @param error The SSL error to check for
				 */
				public hasError(error: number): boolean;
				/**
				 * Gets the most severe SSL error in this object's set of errors. Returns -1 if the set is empty.
				 */
				public getPrimaryError(): number;
				/**
				 * Returns a string representation of this object.
				 */
				public toString(): string;
			}
			/**
			 * Caches HTTP and HTTPS responses to the filesystem so they may be reused, saving time and bandwidth. This class supports HttpURLConnection and HttpsURLConnection; there is no platform-provided cache for DefaultHttpClient or AndroidHttpClient.
			 */
			export class HttpResponseCache extends java.net.ResponseCache implements java.io.ICloseable {
				static class: java.lang.Class<android.net.http.HttpResponseCache>;
				/**
				 * Returns the currently-installed HttpResponseCache, or null if there is no cache installed or it is not a HttpResponseCache.
				 */
				public static getInstalled(): android.net.http.HttpResponseCache;
				/**
				 * Creates a new HTTP response cache and ResponseCache#setDefault sets it as the system default cache.
				 * @param directory the directory to hold cache data.
				 * @param maxSize the maximum size of the cache in bytes.
				 */
				public static install(directory: java.io.File, maxSize: number): android.net.http.HttpResponseCache;
				public get(uri: java.net.URI, requestMethod: string, requestHeaders: java.util.IMap<string, java.util.IList<string>>): java.net.CacheResponse;
				public put(uri: java.net.URI, urlConnection: java.net.URLConnection): java.net.CacheRequest;
				/**
				 * Returns the number of bytes currently being used to store the values in this cache. This may be greater than the #maxSize if a background deletion is pending.
				 */
				public size(): any;
				/**
				 * Returns the maximum number of bytes that this cache should use to store its data.
				 */
				public maxSize(): any;
				/**
				 * Force buffered operations to the filesystem. This ensures that responses written to the cache will be available the next time the cache is opened, even if this process is killed.
				 */
				public flush(): void;
				/**
				 * Returns the number of HTTP requests that required the network to either supply a response or validate a locally cached response.
				 */
				public getNetworkCount(): number;
				/**
				 * Returns the number of HTTP requests whose response was provided by the cache. This may include conditional GET requests that were validated over the network.
				 */
				public getHitCount(): number;
				/**
				 * Returns the total number of HTTP requests that were made. This includes both client requests and requests that were made on the client's behalf to handle a redirects and retries.
				 */
				public getRequestCount(): number;
				/**
				 * Uninstalls the cache and releases any active resources. Stored contents will remain on the filesystem.
				 */
				public close(): void;
				/**
				 * Uninstalls the cache and deletes all of its stored contents.
				 */
				public delete(): void;
			}
			/**
			 * Implementation of the Apache DefaultHttpClient that is configured with reasonable default settings and registered schemes for Android, and also lets the user add HttpRequestInterceptor classes. Don't create this directly, use the #newInstance factory method.
			 */
			export class AndroidHttpClient extends java.lang.Object {
				static DEFAULT_SYNC_MIN_GZIP_BYTES: number;
				static class: java.lang.Class<android.net.http.AndroidHttpClient>;
				/**
				 * Create a new HttpClient with reasonable defaults (which you can update).
				 * @param userAgent to report in your HTTP requests
				 * @param context to use for caching SSL sessions (may be null for no caching)
				 */
				public static newInstance(userAgent: string, context: android.content.Context): android.net.http.AndroidHttpClient;
				/**
				 * Create a new HttpClient with reasonable defaults (which you can update).
				 * @param userAgent to report in your HTTP requests.
				 */
				public static newInstance(userAgent: string): android.net.http.AndroidHttpClient;
				protected finalize(): void;
				/**
				 * Release resources associated with this client. You must call this, or significant resources (sockets and memory) may be leaked.
				 */
				public close(): void;
				/**
				 * Retrieves the minimum size for compressing data. Shorter data will not be compressed.
				 */
				public static getMinGzipSize(resolver: android.content.ContentResolver): any;
				/**
				 * Enables cURL request logging for this client.
				 * @param name to log messages with
				 * @param level at which to log messages (see {@link android.util.Log})
				 */
				public enableCurlLogging(name: string, level: number): void;
				/**
				 * Disables cURL logging for this client.
				 */
				public disableCurlLogging(): void;
				/**
				 * Returns the date of the given HTTP date string. This method can identify and parse the date formats emitted by common HTTP servers, such as <a href="http://www.ietf.org/rfc/rfc0822.txt">RFC 822</a>, <a href="http://www.ietf.org/rfc/rfc0850.txt">RFC 850</a>, <a href="http://www.ietf.org/rfc/rfc1036.txt">RFC 1036</a>, <a href="http://www.ietf.org/rfc/rfc1123.txt">RFC 1123</a> and <a href="http://www.opengroup.org/onlinepubs/007908799/xsh/asctime.html">ANSI C's asctime()</a>.
				 */
				public static parseDate(dateString: string): any;
			}
			export module AndroidHttpClient {
				/**
				 * Logging tag and level.
				 */
				export class LoggingConfiguration extends java.lang.Object {
					static class: java.lang.Class<android.net.http.AndroidHttpClient.LoggingConfiguration>;
				}
				/**
				 * Logs cURL commands equivalent to requests.
				 */
				export class CurlLogger extends java.lang.Object {
					static class: java.lang.Class<android.net.http.AndroidHttpClient.CurlLogger>;
				}
			}
			export class X509TrustManagerExtensionsTest {
				constructor();
				static class: java.lang.Class<android.net.http.X509TrustManagerExtensionsTest>;
				public testBadCast(): void;
				public testGoodCast(): void;
				public testNormalUseCase(): void;
			}
			export module X509TrustManagerExtensionsTest {
				export class NotATrustManagerImpl extends java.lang.Object implements javax.net.ssl.IX509TrustManager {
					static class: java.lang.Class<android.net.http.X509TrustManagerExtensionsTest.NotATrustManagerImpl>;
					public checkClientTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
					public checkServerTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
					public getAcceptedIssuers(): native.Array<java.security.cert.X509Certificate>;
				}
			}
			export class AndroidHttpClientProxyTest extends android.net.http.AbstractProxyTest {
				constructor();
				static class: java.lang.Class<android.net.http.AndroidHttpClientProxyTest>;
			}
			/**
			 * SSL certificate info (certificate details) class
			 */
			export class SslCertificate extends java.lang.Object {
				/**
				 * Creates a new SSL certificate object
				 * @param issuedTo The entity this certificate is issued to
				 * @param issuedBy The entity that issued this certificate
				 * @param validNotBefore The not-before date from the certificate
				 * @param validNotAfter The not-after date from the certificate
				 */
				constructor(issuedTo: string, issuedBy: string, validNotBefore: string, validNotAfter: string);
				/**
				 * Creates a new SSL certificate object
				 * @param issuedTo The entity this certificate is issued to
				 * @param issuedBy The entity that issued this certificate
				 * @param validNotBefore The not-before date from the certificate validity period
				 * @param validNotAfter The not-after date from the certificate validity period
				 */
				constructor(issuedTo: string, issuedBy: string, validNotBefore: java.util.Date, validNotAfter: java.util.Date);
				/**
				 * Creates a new SSL certificate object from an X509 certificate
				 * @param certificate X509 certificate
				 */
				constructor(certificate: java.security.cert.X509Certificate);
				static class: java.lang.Class<android.net.http.SslCertificate>;
				DName: {
	new (dName: string): android.net.http.SslCertificate.DName;
};
				/**
				 * Saves the certificate state to a bundle
				 * @param certificate The SSL certificate to store
				 */
				public static saveState(certificate: android.net.http.SslCertificate): android.os.Bundle;
				/**
				 * Restores the certificate stored in the bundle
				 * @param bundle The bundle with the certificate state stored in it
				 */
				public static restoreState(bundle: android.os.Bundle): android.net.http.SslCertificate;
				public getValidNotBeforeDate(): java.util.Date;
				public getValidNotBefore(): string;
				public getValidNotAfterDate(): java.util.Date;
				public getValidNotAfter(): string;
				public getIssuedTo(): android.net.http.SslCertificate.DName;
				public getIssuedBy(): android.net.http.SslCertificate.DName;
				public toString(): string;
			}
			export module SslCertificate {
				/**
				 * A distinguished name helper class: a 3-tuple of: - common name (CN), - organization (O), - organizational unit (OU)
				 */
				export class DName extends java.lang.Object {
					static class: java.lang.Class<android.net.http.SslCertificate.DName>;
					public getDName(): string;
					public getCName(): string;
					public getOName(): string;
					public getUName(): string;
				}
			}
			export class HttpResponseCacheTest {
				constructor();
				static class: java.lang.Class<android.net.http.HttpResponseCacheTest>;
				public setUp(): void;
				protected tearDown(): void;
				public testInstall(): void;
				public testSecondEquivalentInstallDoesNothing(): void;
				public testInstallClosesPreviouslyInstalled(): void;
				public testGetInstalledWithWrongTypeInstalled(): void;
				public testCloseCloses(): void;
				public testCloseUninstalls(): void;
				public testDeleteUninstalls(): void;
				/**
				 * Make sure that statistics tracking are wired all the way through the wrapper class. http://code.google.com/p/android/issues/detail?id=25418
				 */
				public testStatisticsTracking(): void;
			}
			/**
			 * Tests for various regressions and problems with DefaultHttpClient. This is not a comprehensive test!
			 */
			export class DefaultHttpClientTest {
				constructor();
				static class: java.lang.Class<android.net.http.DefaultHttpClientTest>;
				protected tearDown(): void;
				public testServerClosesSocket(): void;
				public testServerShutdownInput(): void;
				/**
				 * DefaultHttpClient fails if the server shutdown the output after the response was sent. http://b/2612240
				 */
				public testServerShutdownOutput(): void;
				public testDigestSchemeAlgorithms(): void;
			}
			export class SslCertificateTest {
				constructor();
				static class: java.lang.Class<android.net.http.SslCertificateTest>;
				public testSslCertificateWithEmptyIssuer(): void;
			}
		}
		/**
		 * Thrown when parsing a URL fails.
		 */
		export class ParseException extends java.lang.RuntimeException {
			response: string;
			static class: java.lang.Class<android.net.ParseException>;
		}
		export module nsd {
			/**
			 * A class representing service information for network service discovery NsdManager
			 */
			export class NsdServiceInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * Implement the Parcelable interface
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.net.nsd.NsdServiceInfo>;
				static class: java.lang.Class<android.net.nsd.NsdServiceInfo>;
				/**
				 * Get the service name
				 */
				public getServiceName(): string;
				/**
				 * Set the service name
				 */
				public setServiceName(s: string): void;
				/**
				 * Get the service type
				 */
				public getServiceType(): string;
				/**
				 * Set the service type
				 */
				public setServiceType(s: string): void;
				/**
				 * Get the host address. The host address is valid for a resolved service.
				 */
				public getHost(): java.net.InetAddress;
				/**
				 * Set the host address
				 */
				public setHost(s: java.net.InetAddress): void;
				/**
				 * Get port number. The port number is valid for a resolved service.
				 */
				public getPort(): number;
				/**
				 * Set port number
				 */
				public setPort(p: number): void;
				public toString(): string;
				/**
				 * Implement the Parcelable interface
				 */
				public describeContents(): number;
				/**
				 * Implement the Parcelable interface
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * The Network Service Discovery Manager class provides the API to discover services on a network. As an example, if device A and device B are connected over a Wi-Fi network, a game registered on device A can be discovered by a game on device B. Another example use case is an application discovering printers on the network.
			 */
			export class NsdManager extends java.lang.Object {
				/**
				 * Broadcast intent action to indicate whether network service discovery is enabled or disabled. An extra #EXTRA_NSD_STATE provides the state information as int.
				 */
				static ACTION_NSD_STATE_CHANGED: string;
				/**
				 * The lookup key for an int that indicates whether network service discovery is enabled or disabled. Retrieve it with android.content.Intent#getIntExtra(String,int).
				 */
				static EXTRA_NSD_STATE: string;
				/**
				 * Network service discovery is disabled
				 */
				static NSD_STATE_DISABLED: number;
				/**
				 * Network service discovery is enabled
				 */
				static NSD_STATE_ENABLED: number;
				/**
				 * Dns based service discovery protocol
				 */
				static PROTOCOL_DNS_SD: number;
				/**
				 * Failures are passed with RegistrationListener#onRegistrationFailed, RegistrationListener#onUnregistrationFailed, DiscoveryListener#onStartDiscoveryFailed, DiscoveryListener#onStopDiscoveryFailed or ResolveListener#onResolveFailed.
				 */
				static FAILURE_INTERNAL_ERROR: number;
				/**
				 * Indicates that the operation failed because it is already active.
				 */
				static FAILURE_ALREADY_ACTIVE: number;
				/**
				 * Indicates that the operation failed because the maximum outstanding requests from the applications have reached.
				 */
				static FAILURE_MAX_LIMIT: number;
				static class: java.lang.Class<android.net.nsd.NsdManager>;
				/**
				 * Register a service to be discovered by other services.
				 * @param serviceInfo The service being registered
				 * @param protocolType The service discovery protocol
				 * @param listener The listener notifies of a successful registration and is used to
				 */
				public registerService(serviceInfo: android.net.nsd.NsdServiceInfo, protocolType: number, listener: android.net.nsd.NsdManager.IRegistrationListener): void;
				/**
				 * Unregister a service registered through #registerService. A successful unregister is notified to the application with a call to RegistrationListener#onServiceUnregistered.
				 * @param listener This should be the listener object that was passed to
				 */
				public unregisterService(listener: android.net.nsd.NsdManager.IRegistrationListener): void;
				/**
				 * Initiate service discovery to browse for instances of a service type. Service discovery consumes network bandwidth and will continue until the application calls #stopServiceDiscovery.
				 * @param serviceType The service type being discovered. Examples include "_http._tcp" for
				 * @param protocolType The service discovery protocol
				 * @param listener The listener notifies of a successful discovery and is used
				 */
				public discoverServices(serviceType: string, protocolType: number, listener: android.net.nsd.NsdManager.IDiscoveryListener): void;
				/**
				 * Stop service discovery initiated with #discoverServices. An active service discovery is notified to the application with DiscoveryListener#onDiscoveryStarted and it stays active until the application invokes a stop service discovery. A successful stop is notified to with a call to DiscoveryListener#onDiscoveryStopped.
				 * @param listener This should be the listener object that was passed to {@link #discoverServices}.
				 */
				public stopServiceDiscovery(listener: android.net.nsd.NsdManager.IDiscoveryListener): void;
				/**
				 * Resolve a discovered service. An application can resolve a service right before establishing a connection to fetch the IP and port details on which to setup the connection.
				 * @param serviceInfo service to be resolved
				 * @param listener to receive callback upon success or failure. Cannot be null.
				 */
				public resolveService(serviceInfo: android.net.nsd.NsdServiceInfo, listener: android.net.nsd.NsdManager.IResolveListener): void;
			}
			export module NsdManager {
				/**
				 * Interface for callback invocation for service registration
				 */
				export class RegistrationListener implements android.net.nsd.NsdManager.IRegistrationListener {
					constructor(implementation: android.net.nsd.NsdManager.IRegistrationListener);
					public onRegistrationFailed(serviceInfo: android.net.nsd.NsdServiceInfo, errorCode: number): void;
					public onUnregistrationFailed(serviceInfo: android.net.nsd.NsdServiceInfo, errorCode: number): void;
					public onServiceRegistered(serviceInfo: android.net.nsd.NsdServiceInfo): void;
					public onServiceUnregistered(serviceInfo: android.net.nsd.NsdServiceInfo): void;
				}
				export class ServiceHandler extends android.os.Handler {
					static class: java.lang.Class<android.net.nsd.NsdManager.ServiceHandler>;
					public handleMessage(message: android.os.Message): void;
				}
				/**
				 * Interface for callback invocation for service resolution
				 */
				export class ResolveListener implements android.net.nsd.NsdManager.IResolveListener {
					constructor(implementation: android.net.nsd.NsdManager.IResolveListener);
					public onResolveFailed(serviceInfo: android.net.nsd.NsdServiceInfo, errorCode: number): void;
					public onServiceResolved(serviceInfo: android.net.nsd.NsdServiceInfo): void;
				}
				/**
				 * Interface for callback invocation for service resolution
				 */
				interface IResolveListener {
					onResolveFailed(serviceInfo: android.net.nsd.NsdServiceInfo, errorCode: number): void;
					onServiceResolved(serviceInfo: android.net.nsd.NsdServiceInfo): void;
				}
				/**
				 * Interface for callback invocation for service discovery
				 */
				interface IDiscoveryListener {
					onStartDiscoveryFailed(serviceType: string, errorCode: number): void;
					onStopDiscoveryFailed(serviceType: string, errorCode: number): void;
					onDiscoveryStarted(serviceType: string): void;
					onDiscoveryStopped(serviceType: string): void;
					onServiceFound(serviceInfo: android.net.nsd.NsdServiceInfo): void;
					onServiceLost(serviceInfo: android.net.nsd.NsdServiceInfo): void;
				}
				/**
				 * Interface for callback invocation for service registration
				 */
				interface IRegistrationListener {
					onRegistrationFailed(serviceInfo: android.net.nsd.NsdServiceInfo, errorCode: number): void;
					onUnregistrationFailed(serviceInfo: android.net.nsd.NsdServiceInfo, errorCode: number): void;
					onServiceRegistered(serviceInfo: android.net.nsd.NsdServiceInfo): void;
					onServiceUnregistered(serviceInfo: android.net.nsd.NsdServiceInfo): void;
				}
				/**
				 * Interface for callback invocation for service discovery
				 */
				export class DiscoveryListener implements android.net.nsd.NsdManager.IDiscoveryListener {
					constructor(implementation: android.net.nsd.NsdManager.IDiscoveryListener);
					public onStartDiscoveryFailed(serviceType: string, errorCode: number): void;
					public onStopDiscoveryFailed(serviceType: string, errorCode: number): void;
					public onDiscoveryStarted(serviceType: string): void;
					public onDiscoveryStopped(serviceType: string): void;
					public onServiceFound(serviceInfo: android.net.nsd.NsdServiceInfo): void;
					public onServiceLost(serviceInfo: android.net.nsd.NsdServiceInfo): void;
				}
			}
		}
		/**
		 * A class for representing UNIX credentials passed via ancillary data on UNIX domain sockets. See "man 7 unix" on a desktop linux distro.
		 */
		export class Credentials extends java.lang.Object {
			constructor(pid: number, uid: number, gid: number);
			static class: java.lang.Class<android.net.Credentials>;
			public getPid(): number;
			public getUid(): number;
			public getGid(): number;
		}
		export class NetworkStatsTest {
			constructor();
			static class: java.lang.Class<android.net.NetworkStatsTest>;
			public testFindIndex(): void;
			public testFindIndexHinted(): void;
			public testAddEntryGrow(): void;
			public testCombineExisting(): void;
			public testSubtractIdenticalData(): void;
			public testSubtractIdenticalRows(): void;
			public testSubtractNewRows(): void;
			public testSubtractMissingRows(): void;
			public testTotalBytes(): void;
			public testGroupedByIfaceEmpty(): void;
			public testGroupedByIfaceAll(): void;
			public testGroupedByIface(): void;
			public testAddAllValues(): void;
			public testGetTotal(): void;
			public testWithoutUid(): void;
			public testClone(): void;
		}
		export class UrlQuerySanitizer extends java.lang.Object {
			/**
			 * Constructs a UrlQuerySanitizer.
			 */
			constructor();
			/**
			 * Constructs a UrlQuerySanitizer and parse a URL. This constructor is provided for convenience when the default parsing behavior is acceptable.
			 */
			constructor(url: string);
			static class: java.lang.Class<android.net.UrlQuerySanitizer>;
			ParameterValuePair: {
	new (parameter: string, value: string): android.net.UrlQuerySanitizer.ParameterValuePair;
};
			/**
			 * Get the current value sanitizer used when processing unregistered parameter values.
			 */
			public getUnregisteredParameterValueSanitizer(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Set the value sanitizer used when processing unregistered parameter values.
			 * @param sanitizer set the ValueSanitizer used to sanitize unregistered
			 */
			public setUnregisteredParameterValueSanitizer(sanitizer: android.net.UrlQuerySanitizer.IValueSanitizer): void;
			/**
			 * Return a value sanitizer that does not allow any special characters, and also does not allow script URLs.
			 */
			public static getAllIllegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that allows everything except Nul ('\0') characters. Script URLs are allowed.
			 */
			public static getAllButNulLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that allows everything except Nul ('\0') characters, space (' '), and other whitespace characters. Script URLs are allowed.
			 */
			public static getAllButWhitespaceLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that allows all the characters used by encoded URLs. Does not allow script URLs.
			 */
			public static getUrlLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that allows all the characters used by encoded URLs and allows spaces, which are not technically legal in encoded URLs, but commonly appear anyway. Does not allow script URLs.
			 */
			public static getUrlAndSpaceLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that does not allow any special characters except ampersand ('&'). Does not allow script URLs.
			 */
			public static getAmpLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that does not allow any special characters except ampersand ('&') and space (' '). Does not allow script URLs.
			 */
			public static getAmpAndSpaceLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that does not allow any special characters except space (' '). Does not allow script URLs.
			 */
			public static getSpaceLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Return a value sanitizer that allows any special characters except angle brackets ('<' and '>') and Nul ('\0'). Allows script URLs.
			 */
			public static getAllButNulAndAngleBracketsLegal(): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Parse the query parameters out of an encoded URL. Works by extracting the query portion from the URL and then calling parseQuery(). If there is no query portion it is treated as if the query portion is an empty string.
			 * @param url the encoded URL to parse.
			 */
			public parseUrl(url: string): void;
			/**
			 * Parse a query. A query string is any number of parameter-value clauses separated by any non-zero number of ampersands. A parameter-value clause is a parameter followed by an equal sign, followed by a value. If the equal sign is missing, the value is assumed to be the empty string.
			 * @param query the query to parse.
			 */
			public parseQuery(query: string): void;
			/**
			 * Get a set of all of the parameters found in the sanitized query.
			 */
			public getParameterSet(): java.util.ISet<string>;
			/**
			 * An array list of all of the parameter value pairs in the sanitized query, in the order they appeared in the query. May contain duplicate parameters. <p class="note"><b>Note:</b> Do not modify this list. Treat it as a read-only list.</p>
			 */
			public getParameterList(): java.util.IList<android.net.UrlQuerySanitizer.ParameterValuePair>;
			/**
			 * Check if a parameter exists in the current sanitized query.
			 * @param parameter the unencoded name of a parameter.
			 */
			public hasParameter(parameter: string): boolean;
			/**
			 * Get the value for a parameter in the current sanitized query. Returns null if the parameter does not exit.
			 * @param parameter the unencoded name of a parameter.
			 */
			public getValue(parameter: string): string;
			/**
			 * Register a value sanitizer for a particular parameter. Can also be used to replace or remove an already-set value sanitizer.
			 * @param parameter an unencoded parameter name
			 * @param valueSanitizer the value sanitizer to use for a particular
			 */
			public registerParameter(parameter: string, valueSanitizer: android.net.UrlQuerySanitizer.IValueSanitizer): void;
			/**
			 * Register a value sanitizer for an array of parameters.
			 * @param parameters An array of unencoded parameter names.
			 * @param valueSanitizer 
			 */
			public registerParameters(parameters: native.Array<string>, valueSanitizer: android.net.UrlQuerySanitizer.IValueSanitizer): void;
			/**
			 * Set whether or not unregistered parameters are allowed. If they are not allowed, then they will be dropped when a query is sanitized.
			 * @param allowUnregisteredParamaters true to allow unregistered parameters.
			 */
			public setAllowUnregisteredParamaters(allowUnregisteredParamaters: boolean): void;
			/**
			 * Get whether or not unregistered parameters are allowed. If not allowed, they will be dropped when a query is parsed.
			 */
			public getAllowUnregisteredParamaters(): boolean;
			/**
			 * Set whether or not the first occurrence of a repeated parameter is preferred. True means the first repeated parameter is preferred. False means that the last repeated parameter is preferred.
			 * @param preferFirstRepeatedParameter True if the first repeated
			 */
			public setPreferFirstRepeatedParameter(preferFirstRepeatedParameter: boolean): void;
			/**
			 * Get whether or not the first occurrence of a repeated parameter is preferred.
			 */
			public getPreferFirstRepeatedParameter(): boolean;
			/**
			 * Parse an escaped parameter-value pair. The default implementation unescapes both the parameter and the value, then looks up the effective value sanitizer for the parameter and uses it to sanitize the value. If all goes well then addSanitizedValue is called with the unescaped parameter and the sanitized unescaped value.
			 * @param parameter an escaped parameter
			 * @param value an unsanitzied escaped value
			 */
			protected parseEntry(parameter: string, value: string): void;
			/**
			 * Record a sanitized parameter-value pair. Override if you want to do additional filtering or validation.
			 * @param parameter an unescaped parameter
			 * @param value a sanitized unescaped value
			 */
			protected addSanitizedEntry(parameter: string, value: string): void;
			/**
			 * Get the value sanitizer for a parameter. Returns null if there is no value sanitizer registered for the parameter.
			 * @param parameter the unescaped parameter
			 */
			public getValueSanitizer(parameter: string): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Get the effective value sanitizer for a parameter. Like getValueSanitizer, except if there is no value sanitizer registered for a parameter, and unregistered paramaters are allowed, then the default value sanitizer is returned.
			 * @param parameter an unescaped parameter
			 */
			public getEffectiveValueSanitizer(parameter: string): android.net.UrlQuerySanitizer.IValueSanitizer;
			/**
			 * Unescape an escaped string. <ul> <li>'+' characters are replaced by ' ' characters. <li>Valid "%xx" escape sequences are replaced by the corresponding unescaped character. <li>Invalid escape sequences such as %1z", are passed through unchanged. <ol>
			 * @param string the escaped string
			 */
			public unescape(string: string): string;
			/**
			 * Test if a character is a hexidecimal digit. Both upper case and lower case hex digits are allowed.
			 * @param c the character to test
			 */
			protected isHexDigit(c: string): boolean;
			/**
			 * Convert a character that represents a hexidecimal digit into an integer. If the character is not a hexidecimal digit, then -1 is returned. Both upper case and lower case hex digits are allowed.
			 * @param c the hexidecimal digit.
			 */
			protected decodeHexDigit(c: string): number;
			/**
			 * Clear the existing entries. Called to get ready to parse a new query string.
			 */
			protected clear(): void;
		}
		export module UrlQuerySanitizer {
			/**
			 * A functor used to sanitize a single query value.
			 */
			export class ValueSanitizer implements android.net.UrlQuerySanitizer.IValueSanitizer {
				constructor(implementation: android.net.UrlQuerySanitizer.IValueSanitizer);
				/**
				 * Sanitize an unencoded value.
				 * @param value 
				 */
				public sanitize(value: string): string;
			}
			/**
			 * A simple tuple that holds parameter-value pairs.
			 */
			export class ParameterValuePair extends java.lang.Object {
				/**
				 * The unencoded parameter
				 */
				mParameter: string;
				/**
				 * The unencoded value
				 */
				mValue: string;
				static class: java.lang.Class<android.net.UrlQuerySanitizer.ParameterValuePair>;
			}
			/**
			 * A functor used to sanitize a single query value.
			 */
			interface IValueSanitizer {
				/**
				 * Sanitize an unencoded value.
				 * @param value 
				 */
				sanitize(value: string): string;
			}
			/**
			 * Sanitize values based on which characters they contain. Illegal characters are replaced with either space or '_', depending upon whether space is a legal character or not.
			 */
			export class IllegalCharacterValueSanitizer extends java.lang.Object implements android.net.UrlQuerySanitizer.IValueSanitizer {
				/**
				 * Construct a sanitizer. The parameters set the behavior of the sanitizer.
				 * @param flags some combination of the XXX_OK flags.
				 */
				constructor(flags: number);
				/**
				 * Allow space (' ') characters.
				 */
				static SPACE_OK: number;
				/**
				 * Allow whitespace characters other than space. The other whitespace characters are '\t' '\f' '\n' '\r' and '\0x000b' (vertical tab)
				 */
				static OTHER_WHITESPACE_OK: number;
				/**
				 * Allow characters with character codes 128 to 255.
				 */
				static NON_7_BIT_ASCII_OK: number;
				/**
				 * Allow double quote characters. ('"')
				 */
				static DQUOTE_OK: number;
				/**
				 * Allow single quote characters. ('\'')
				 */
				static SQUOTE_OK: number;
				/**
				 * Allow less-than characters. ('<')
				 */
				static LT_OK: number;
				/**
				 * Allow greater-than characters. ('>')
				 */
				static GT_OK: number;
				/**
				 * Allow ampersand characters ('&')
				 */
				static AMP_OK: number;
				/**
				 * Allow percent-sign characters ('%')
				 */
				static PCT_OK: number;
				/**
				 * Allow nul characters ('\0')
				 */
				static NUL_OK: number;
				/**
				 * Allow text to start with a script URL such as "javascript:" or "vbscript:"
				 */
				static SCRIPT_URL_OK: number;
				/**
				 * Mask with all fields set to OK
				 */
				static ALL_OK: number;
				/**
				 * Mask with both regular space and other whitespace OK
				 */
				static ALL_WHITESPACE_OK: number;
				/**
				 * <ul> <li>Deny all special characters. <li>Deny script URLs. </ul>
				 */
				static ALL_ILLEGAL: number;
				/**
				 * <ul> <li>Allow all special characters except Nul. ('\0'). <li>Allow script URLs. </ul>
				 */
				static ALL_BUT_NUL_LEGAL: number;
				/**
				 * <ul> <li>Allow all special characters except for: <ul> <li>whitespace characters <li>Nul ('\0') </ul> <li>Allow script URLs. </ul>
				 */
				static ALL_BUT_WHITESPACE_LEGAL: number;
				/**
				 * <ul> <li>Allow characters used by encoded URLs. <li>Deny script URLs. </ul>
				 */
				static URL_LEGAL: number;
				/**
				 * <ul> <li>Allow characters used by encoded URLs. <li>Allow spaces. <li>Deny script URLs. </ul>
				 */
				static URL_AND_SPACE_LEGAL: number;
				/**
				 * <ul> <li>Allow ampersand. <li>Deny script URLs. </ul>
				 */
				static AMP_LEGAL: number;
				/**
				 * <ul> <li>Allow ampersand. <li>Allow space. <li>Deny script URLs. </ul>
				 */
				static AMP_AND_SPACE_LEGAL: number;
				/**
				 * <ul> <li>Allow space. <li>Deny script URLs. </ul>
				 */
				static SPACE_LEGAL: number;
				/**
				 * <ul> <li>Allow all but. <ul> <li>Nul ('\0') <li>Angle brackets ('<', '>') </ul> <li>Deny script URLs. </ul>
				 */
				static ALL_BUT_NUL_AND_ANGLE_BRACKETS_LEGAL: number;
				static class: java.lang.Class<android.net.UrlQuerySanitizer.IllegalCharacterValueSanitizer>;
				/**
				 * Sanitize a value. <ol> <li>If script URLs are not OK, the will be removed. <li>If neither spaces nor other white space is OK, then white space will be trimmed from the beginning and end of the URL. (Just the actual white space characters are trimmed, not other control codes.) <li> Illegal characters will be replaced with either ' ' or '_', depending on whether a space is itself a legal character. </ol>
				 * @param value 
				 */
				public sanitize(value: string): string;
			}
		}
	}
	export module drm {
		/**
		 * A base class that is used to send asynchronous event information from the DRM framework.
		 */
		export class DrmEvent extends java.lang.Object {
			/**
			 * All of the rights information associated with all DRM schemes have been successfully removed.
			 */
			static TYPE_ALL_RIGHTS_REMOVED: number;
			/**
			 * The given DRM information has been successfully processed.
			 */
			static TYPE_DRM_INFO_PROCESSED: number;
			/**
			 * The key that is used in the <code>attributes</code> HashMap to pass the return status.
			 */
			static DRM_INFO_STATUS_OBJECT: string;
			/**
			 * The key that is used in the <code>attributes</code> HashMap to pass the DrmInfo object.
			 */
			static DRM_INFO_OBJECT: string;
			static class: java.lang.Class<android.drm.DrmEvent>;
			/**
			 * Retrieves the unique session identifier associated with this object.
			 */
			public getUniqueId(): number;
			/**
			 * Retrieves the type of information that is associated with this object.
			 */
			public getType(): number;
			/**
			 * Retrieves the message description associated with this object.
			 */
			public getMessage(): string;
			/**
			 * Retrieves the attribute associated with the specified key.
			 */
			public getAttribute(key: string): any;
		}
		/**
		 * An entity class that is passed to the DrmManagerClient.OnErrorListener#onError onError() callback.
		 */
		export class DrmErrorEvent extends android.drm.DrmEvent {
			/**
			 * Creates a <code>DrmErrorEvent</code> object with the specified parameters.
			 * @param uniqueId Unique session identifier.
			 * @param type Type of the event. Must be any of the event types defined above.
			 * @param message Message description. It can be null.
			 */
			constructor(uniqueId: number, type: number, message: string);
			/**
			 * Creates a <code>DrmErrorEvent</code> object with the specified parameters.
			 * @param uniqueId Unique session identifier.
			 * @param type Type of the event. Must be any of the event types defined above.
			 * @param message Message description.
			 * @param attributes Attributes for extensible information. Could be any
			 */
			constructor(uniqueId: number, type: number, message: string, attributes: java.util.HashMap<string, any>);
			/**
			 * Something went wrong installing the rights.
			 */
			static TYPE_RIGHTS_NOT_INSTALLED: number;
			/**
			 * The server rejected the renewal of rights.
			 */
			static TYPE_RIGHTS_RENEWAL_NOT_ALLOWED: number;
			/**
			 * Response from the server cannot be handled by the DRM plug-in (agent).
			 */
			static TYPE_NOT_SUPPORTED: number;
			/**
			 * Memory allocation failed during renewal. Can in the future perhaps be used to trigger garbage collector.
			 */
			static TYPE_OUT_OF_MEMORY: number;
			/**
			 * An Internet connection is not available and no attempt can be made to renew rights.
			 */
			static TYPE_NO_INTERNET_CONNECTION: number;
			/**
			 * Failed to process DrmInfo. This error event is sent when a DrmManagerClient#processDrmInfo processDrmInfo() call fails.
			 */
			static TYPE_PROCESS_DRM_INFO_FAILED: number;
			/**
			 * Failed to remove all the rights objects associated with all DRM schemes.
			 */
			static TYPE_REMOVE_ALL_RIGHTS_FAILED: number;
			/**
			 * Failed to acquire DrmInfo. This error event is sent when an DrmManagerClient#acquireDrmInfo acquireDrmInfo() call fails.
			 */
			static TYPE_ACQUIRE_DRM_INFO_FAILED: number;
			static class: java.lang.Class<android.drm.DrmErrorEvent>;
		}
		/**
		 * A utility class that provides operations for parsing extended metadata embedded in DRM constraint information. If a DRM scheme has specific constraints beyond the standard constraints, the constraints will show up in the DrmStore.ConstraintsColumns#EXTENDED_METADATA key. You can use DrmUtils.ExtendedMetadataParser to iterate over those values.
		 */
		export class DrmUtils extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.drm.DrmUtils>;
			static readBytes(path: string): native.Array<number>;
			static readBytes(file: java.io.File): native.Array<number>;
			static writeToFile(path: string, data: native.Array<number>): void;
			static removeFile(path: string): void;
			/**
			 * Gets an instance of DrmUtils.ExtendedMetadataParser, which can be used to parse extended metadata embedded in DRM constraint information.
			 * @param extendedMetadata Object in which key-value pairs of extended metadata are embedded.
			 */
			public static getExtendedMetadataParser(extendedMetadata: native.Array<number>): android.drm.DrmUtils.ExtendedMetadataParser;
		}
		export module DrmUtils {
			/**
			 * Utility that parses extended metadata embedded in DRM constraint information.
			 */
			export class ExtendedMetadataParser extends java.lang.Object {
				static class: java.lang.Class<android.drm.DrmUtils.ExtendedMetadataParser>;
				/**
				 * This method returns an iterator object that can be used to iterate over all values of the metadata.
				 */
				public iterator(): java.util.IIterator<string>;
				/**
				 * This method returns an iterator object that can be used to iterate over all keys of the metadata.
				 */
				public keyIterator(): java.util.IIterator<string>;
				/**
				 * This method retrieves the metadata value associated with a given key.
				 * @param key The key whose value is being retrieved.
				 */
				public get(key: string): string;
			}
		}
		export module mobile1 {
			/**
			 * This class provides interfaces to access the DRM constraint.
			 */
			export class DrmConstraintInfo extends java.lang.Object {
				static class: java.lang.Class<android.drm.mobile1.DrmConstraintInfo>;
				/**
				 * Get the count constraint.
				 */
				public getCount(): number;
				/**
				 * Get the start date constraint.
				 */
				public getStartDate(): java.util.Date;
				/**
				 * Get the end date constraint.
				 */
				public getEndDate(): java.util.Date;
				/**
				 * Get the Interval constraint.
				 */
				public getInterval(): any;
			}
			/**
			 * This class provides interfaces to access the DRM rights.
			 */
			export class DrmRights extends java.lang.Object {
				/**
				 * Construct the DrmRights.
				 */
				constructor();
				/**
				 * The DRM permission of play.
				 */
				static DRM_PERMISSION_PLAY: number;
				/**
				 * The DRM permission of display.
				 */
				static DRM_PERMISSION_DISPLAY: number;
				/**
				 * The DRM permission of execute.
				 */
				static DRM_PERMISSION_EXECUTE: number;
				/**
				 * The DRM permission of print.
				 */
				static DRM_PERMISSION_PRINT: number;
				static class: java.lang.Class<android.drm.mobile1.DrmRights>;
				/**
				 * Get the constraint of the given permission on this rights object.
				 * @param permission the given permission.
				 */
				public getConstraint(permission: number): android.drm.mobile1.DrmConstraintInfo;
				/**
				 * Consume the rights of the given permission.
				 * @param permission the given permission.
				 */
				public consumeRights(permission: number): boolean;
			}
			/**
			 * This class provides interfaces to access the DRM raw content.
			 */
			export class DrmRawContent extends java.lang.Object {
				/**
				 * Construct a DrmRawContent object.
				 * @param inRawdata object of DRM raw data stream.
				 * @param len the length of raw data can be read.
				 * @param mimeTypeStr the mime type of the DRM content.
				 */
				constructor(inRawdata: java.io.InputStream, len: number, mimeTypeStr: string);
				/**
				 * The "application/vnd.oma.drm.message" mime type.
				 */
				static DRM_MIMETYPE_MESSAGE_STRING: string;
				/**
				 * The "application/vnd.oma.drm.content" mime type.
				 */
				static DRM_MIMETYPE_CONTENT_STRING: string;
				/**
				 * The DRM delivery type: Forward-Lock
				 */
				static DRM_FORWARD_LOCK: number;
				/**
				 * The DRM delivery type: Combined Delivery
				 */
				static DRM_COMBINED_DELIVERY: number;
				/**
				 * The DRM delivery type: Separate Delivery
				 */
				static DRM_SEPARATE_DELIVERY: number;
				/**
				 * The DRM delivery type: Separate Delivery in DRM message
				 */
				static DRM_SEPARATE_DELIVERY_DM: number;
				/**
				 * The DRM media content length is unknown currently
				 */
				static DRM_UNKNOWN_DATA_LEN: number;
				static class: java.lang.Class<android.drm.mobile1.DrmRawContent>;
				DrmInputStream: {
	new (rights: android.drm.mobile1.DrmRights): android.drm.mobile1.DrmRawContent.DrmInputStream;
};
				/**
				 * Get rights address from raw Seperate Delivery content.
				 */
				public getRightsAddress(): string;
				/**
				 * Get the type of the raw DRM content.
				 */
				public getRawType(): number;
				/**
				 * Get one InputStream object to read decrypted content.
				 * @param rights the rights object contain decrypted key.
				 */
				public getContentInputStream(rights: android.drm.mobile1.DrmRights): java.io.InputStream;
				/**
				 * Get the type of the decrypted media content.
				 */
				public getContentType(): string;
				/**
				 * Get the length of the decrypted media content.
				 * @param rights the rights object contain decrypted key.
				 */
				public getContentLength(rights: android.drm.mobile1.DrmRights): number;
				/**
				 * The finalizer of the DRMRawContent. Do some cleanup.
				 */
				protected finalize(): void;
			}
			export module DrmRawContent {
				/**
				 * This class provide a InputStream to the DRM media content.
				 */
				export class DrmInputStream extends java.io.InputStream {
					static class: java.lang.Class<android.drm.mobile1.DrmRawContent.DrmInputStream>;
					public available(): number;
					public read(): number;
					public read(b: native.Array<number>): number;
					public read(b: native.Array<number>, off: number, len: number): number;
					public markSupported(): boolean;
					public mark(readlimit: number): void;
					public reset(): void;
					public skip(n: number): any;
					public close(): void;
				}
			}
			/**
			 * This class provides interfaces to access the DRM right manager.
			 */
			export class DrmRightsManager extends java.lang.Object {
				/**
				 * The "application/vnd.oma.drm.rights+xml" mime type.
				 */
				static DRM_MIMETYPE_RIGHTS_XML_STRING: string;
				/**
				 * The "application/vnd.oma.drm.rights+wbxml" mime type.
				 */
				static DRM_MIMETYPE_RIGHTS_WBXML_STRING: string;
				static class: java.lang.Class<android.drm.mobile1.DrmRightsManager>;
				/**
				 * Get the DrmRightsManager instance.
				 */
				public static getInstance(): android.drm.mobile1.DrmRightsManager;
				/**
				 * Install one DRM rights and return one instance of DrmRights.
				 * @param rightsData raw rights data.
				 * @param len mimeTypeStr the mime type of the rights object.
				 * @param mimeTypeStr 
				 */
				public installRights(rightsData: java.io.InputStream, len: number, mimeTypeStr: string): android.drm.mobile1.DrmRights;
				/**
				 * Query DRM rights of specified DRM raw content.
				 * @param content raw content object.
				 */
				public queryRights(content: android.drm.mobile1.DrmRawContent): android.drm.mobile1.DrmRights;
				/**
				 * Get the list of all DRM rights saved in local client.
				 */
				public getRightsList(): java.util.IList<any>;
				/**
				 * Delete the specified DRM rights object.
				 * @param rights the specified rights object to be deleted.
				 */
				public deleteRights(rights: android.drm.mobile1.DrmRights): void;
			}
			/**
			 * A DrmException is thrown to report errors specific to handle DRM content and rights.
			 */
			export class DrmException extends java.lang.Exception {
				constructor(message: string);
				static class: java.lang.Class<android.drm.mobile1.DrmException>;
			}
		}
		/**
		 * The main programming interface for the DRM framework. An application must instantiate this class to access DRM agents through the DRM framework.
		 */
		export class DrmManagerClient extends java.lang.Object {
			/**
			 * Creates a <code>DrmManagerClient</code>.
			 * @param context Context of the caller.
			 */
			constructor(context: android.content.Context);
			/**
			 * Indicates that a request was successful or that no error occurred.
			 */
			static ERROR_NONE: number;
			/**
			 * Indicates that an error occurred and the reason is not known.
			 */
			static ERROR_UNKNOWN: number;
			static class: java.lang.Class<android.drm.DrmManagerClient>;
			EventHandler: {
	new (looper: android.os.Looper): android.drm.DrmManagerClient.EventHandler;
};
			InfoHandler: {
	new (looper: android.os.Looper): android.drm.DrmManagerClient.InfoHandler;
};
			protected finalize(): void;
			/**
			 * Releases resources associated with the current session of DrmManagerClient.
			 */
			public release(): void;
			/**
			 * Registers an DrmManagerClient.OnInfoListener callback, which is invoked when the DRM framework sends status or warning information during registration or rights acquisition.
			 * @param infoListener Interface definition for the callback.
			 */
			public setOnInfoListener(infoListener: android.drm.DrmManagerClient.IOnInfoListener): void;
			/**
			 * Registers an DrmManagerClient.OnEventListener callback, which is invoked when the DRM framework sends information about DRM processing.
			 * @param eventListener Interface definition for the callback.
			 */
			public setOnEventListener(eventListener: android.drm.DrmManagerClient.IOnEventListener): void;
			/**
			 * Registers an DrmManagerClient.OnErrorListener callback, which is invoked when the DRM framework sends error information.
			 * @param errorListener Interface definition for the callback.
			 */
			public setOnErrorListener(errorListener: android.drm.DrmManagerClient.IOnErrorListener): void;
			/**
			 * Retrieves information about all the DRM plug-ins (agents) that are registered with the DRM framework.
			 */
			public getAvailableDrmEngines(): native.Array<string>;
			/**
			 * Retrieves constraint information for rights-protected content.
			 * @param path Path to the content from which you are retrieving DRM constraints.
			 * @param action Action defined in {@link DrmStore.Action}.
			 */
			public getConstraints(path: string, action: number): android.content.ContentValues;
			/**
			 * Retrieves metadata information for rights-protected content.
			 * @param path Path to the content from which you are retrieving metadata information.
			 */
			public getMetadata(path: string): android.content.ContentValues;
			/**
			 * Retrieves constraint information for rights-protected content.
			 * @param uri URI for the content from which you are retrieving DRM constraints.
			 * @param action Action defined in {@link DrmStore.Action}.
			 */
			public getConstraints(uri: android.net.Uri, action: number): android.content.ContentValues;
			/**
			 * Retrieves metadata information for rights-protected content.
			 * @param uri URI for the content from which you are retrieving metadata information.
			 */
			public getMetadata(uri: android.net.Uri): android.content.ContentValues;
			/**
			 * Saves rights to a specified path and associates that path with the content path. <p class="note"><strong>Note:</strong> For OMA or WM-DRM, <code>rightsPath</code> and <code>contentPath</code> can be null.</p>
			 * @param drmRights The {@link DrmRights} to be saved.
			 * @param rightsPath File path where rights will be saved.
			 * @param contentPath File path where content is saved.
			 */
			public saveRights(drmRights: android.drm.DrmRights, rightsPath: string, contentPath: string): number;
			/**
			 * Checks whether the given MIME type or path can be handled.
			 * @param path Path of the content to be handled.
			 * @param mimeType MIME type of the object to be handled.
			 */
			public canHandle(path: string, mimeType: string): boolean;
			/**
			 * Checks whether the given MIME type or URI can be handled.
			 * @param uri URI for the content to be handled.
			 * @param mimeType MIME type of the object to be handled
			 */
			public canHandle(uri: android.net.Uri, mimeType: string): boolean;
			/**
			 * Processes the given DRM information based on the information type.
			 * @param drmInfo The {@link DrmInfo} to be processed.
			 */
			public processDrmInfo(drmInfo: android.drm.DrmInfo): number;
			/**
			 * Retrieves information for registering, unregistering, or acquiring rights.
			 * @param drmInfoRequest The {@link DrmInfoRequest} that specifies the type of DRM
			 */
			public acquireDrmInfo(drmInfoRequest: android.drm.DrmInfoRequest): android.drm.DrmInfo;
			/**
			 * Processes a given DrmInfoRequest and returns the rights information asynchronously.
			 * @param drmInfoRequest The {@link DrmInfoRequest} used to acquire the rights.
			 */
			public acquireRights(drmInfoRequest: android.drm.DrmInfoRequest): number;
			/**
			 * Retrieves the type of rights-protected object (for example, content object, rights object, and so on) using the specified path or MIME type. At least one parameter must be specified to retrieve the DRM object type.
			 * @param path Path to the content or null.
			 * @param mimeType MIME type of the content or null.
			 */
			public getDrmObjectType(path: string, mimeType: string): number;
			/**
			 * Retrieves the type of rights-protected object (for example, content object, rights object, and so on) using the specified URI or MIME type. At least one parameter must be specified to retrieve the DRM object type.
			 * @param uri URI for the content or null.
			 * @param mimeType MIME type of the content or null.
			 */
			public getDrmObjectType(uri: android.net.Uri, mimeType: string): number;
			/**
			 * Retrieves the MIME type embedded in the original content.
			 * @param path Path to the rights-protected content.
			 */
			public getOriginalMimeType(path: string): string;
			/**
			 * Retrieves the MIME type embedded in the original content.
			 * @param uri URI of the rights-protected content.
			 */
			public getOriginalMimeType(uri: android.net.Uri): string;
			/**
			 * Checks whether the given content has valid rights.
			 * @param path Path to the rights-protected content.
			 */
			public checkRightsStatus(path: string): number;
			/**
			 * Check whether the given content has valid rights.
			 * @param uri URI of the rights-protected content.
			 */
			public checkRightsStatus(uri: android.net.Uri): number;
			/**
			 * Checks whether the given rights-protected content has valid rights for the specified DrmStore.Action.
			 * @param path Path to the rights-protected content.
			 * @param action The {@link DrmStore.Action} to perform.
			 */
			public checkRightsStatus(path: string, action: number): number;
			/**
			 * Checks whether the given rights-protected content has valid rights for the specified DrmStore.Action.
			 * @param uri URI for the rights-protected content.
			 * @param action The {@link DrmStore.Action} to perform.
			 */
			public checkRightsStatus(uri: android.net.Uri, action: number): number;
			/**
			 * Removes the rights associated with the given rights-protected content.
			 * @param path Path to the rights-protected content.
			 */
			public removeRights(path: string): number;
			/**
			 * Removes the rights associated with the given rights-protected content.
			 * @param uri URI for the rights-protected content.
			 */
			public removeRights(uri: android.net.Uri): number;
			/**
			 * Removes all the rights information of every DRM plug-in (agent) associated with the DRM framework. Will be used during a master reset.
			 */
			public removeAllRights(): number;
			/**
			 * Initiates a new conversion session. An application must initiate a conversion session with this method each time it downloads a rights-protected file that needs to be converted.
			 * @param mimeType MIME type of the input data packet.
			 */
			public openConvertSession(mimeType: string): number;
			/**
			 * Converts the input data (content) that is part of a rights-protected file. The converted data and status is returned in a DrmConvertedStatus object. This method should be called each time there is a new block of data received by the application.
			 * @param convertId Handle for the conversion session.
			 * @param inputData Input data that needs to be converted.
			 */
			public convertData(convertId: number, inputData: native.Array<number>): android.drm.DrmConvertedStatus;
			/**
			 * Informs the DRM plug-in (agent) that there is no more data to convert or that an error has occurred. Upon successful conversion of the data, the DRM agent will provide an offset value indicating where the header and body signature should be added. Appending the signature is necessary to protect the integrity of the converted file.
			 * @param convertId Handle for the conversion session.
			 */
			public closeConvertSession(convertId: number): android.drm.DrmConvertedStatus;
		}
		export module DrmManagerClient {
			/**
			 * Interface definition for a callback that receives status messages and warnings during registration and rights acquisition.
			 */
			export class OnInfoListener implements android.drm.DrmManagerClient.IOnInfoListener {
				constructor(implementation: android.drm.DrmManagerClient.IOnInfoListener);
				/**
				 * Called when the DRM framework sends status or warning information during registration and rights acquisition.
				 * @param client The <code>DrmManagerClient</code> instance.
				 * @param event The {@link DrmInfoEvent} instance that wraps the status information or
				 */
				public onInfo(client: android.drm.DrmManagerClient, event: android.drm.DrmInfoEvent): void;
			}
			/**
			 * Interface definition for a callback that receives information about DRM framework errors.
			 */
			export class OnErrorListener implements android.drm.DrmManagerClient.IOnErrorListener {
				constructor(implementation: android.drm.DrmManagerClient.IOnErrorListener);
				/**
				 * Called when the DRM framework sends error information.
				 * @param client The <code>DrmManagerClient</code> instance.
				 * @param event The {@link DrmErrorEvent} instance that wraps the error type and message.
				 */
				public onError(client: android.drm.DrmManagerClient, event: android.drm.DrmErrorEvent): void;
			}
			/**
			 * Interface definition for a callback that receives information about DRM framework errors.
			 */
			interface IOnErrorListener {
				/**
				 * Called when the DRM framework sends error information.
				 * @param client The <code>DrmManagerClient</code> instance.
				 * @param event The {@link DrmErrorEvent} instance that wraps the error type and message.
				 */
				onError(client: android.drm.DrmManagerClient, event: android.drm.DrmErrorEvent): void;
			}
			/**
			 * Interface definition for a callback that receives information about DRM processing events.
			 */
			interface IOnEventListener {
				/**
				 * Called when the DRM framework sends information about a DRM processing request.
				 * @param client The <code>DrmManagerClient</code> instance.
				 * @param event The {@link DrmEvent} instance that wraps the information being
				 */
				onEvent(client: android.drm.DrmManagerClient, event: android.drm.DrmEvent): void;
			}
			/**
			 * Interface definition for a callback that receives status messages and warnings during registration and rights acquisition.
			 */
			interface IOnInfoListener {
				/**
				 * Called when the DRM framework sends status or warning information during registration and rights acquisition.
				 * @param client The <code>DrmManagerClient</code> instance.
				 * @param event The {@link DrmInfoEvent} instance that wraps the status information or
				 */
				onInfo(client: android.drm.DrmManagerClient, event: android.drm.DrmInfoEvent): void;
			}
			/**
			 * Interface definition for a callback that receives information about DRM processing events.
			 */
			export class OnEventListener implements android.drm.DrmManagerClient.IOnEventListener {
				constructor(implementation: android.drm.DrmManagerClient.IOnEventListener);
				/**
				 * Called when the DRM framework sends information about a DRM processing request.
				 * @param client The <code>DrmManagerClient</code> instance.
				 * @param event The {@link DrmEvent} instance that wraps the information being
				 */
				public onEvent(client: android.drm.DrmManagerClient, event: android.drm.DrmEvent): void;
			}
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.drm.DrmManagerClient.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			export class InfoHandler extends android.os.Handler {
				static INFO_EVENT_TYPE: number;
				static class: java.lang.Class<android.drm.DrmManagerClient.InfoHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * An entity class that wraps the capability of each DRM plug-in (agent), such as the MIME type and file suffix the DRM plug-in can handle.
		 */
		export class DrmSupportInfo extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.drm.DrmSupportInfo>;
			/**
			 * Adds the specified MIME type to the list of MIME types this DRM plug-in supports.
			 * @param mimeType MIME type that can be handles by this DRM plug-in.
			 */
			public addMimeType(mimeType: string): void;
			/**
			 * Adds the specified file suffix to the list of file suffixes this DRM plug-in supports.
			 * @param fileSuffix File suffix that can be handled by this DRM plug-in.
			 */
			public addFileSuffix(fileSuffix: string): void;
			/**
			 * Retrieves an iterator object that you can use to iterate over the MIME types that this DRM plug-in supports.
			 */
			public getMimeTypeIterator(): java.util.IIterator<string>;
			/**
			 * Retrieves an iterator object that you can use to iterate over the file suffixes that this DRM plug-in supports.
			 */
			public getFileSuffixIterator(): java.util.IIterator<string>;
			/**
			 * Sets a description for the DRM plug-in (agent).
			 * @param description Unique description of plug-in. Must not be null
			 */
			public setDescription(description: string): void;
			/**
			 * Retrieves the DRM plug-in (agent) description.
			 */
			public getDescriprition(): string;
			/**
			 * Retrieves the DRM plug-in (agent) description. Even if null or an empty string is not allowed in #setDescription(String), if #setDescription(String) is not called, description returned from this method is an empty string.
			 */
			public getDescription(): string;
			/**
			 * Overridden hash code implementation.
			 */
			public hashCode(): number;
			/**
			 * Overridden <code>equals</code> implementation. Two DrmSupportInfo objects are considered being equal if they support exactly the same set of mime types, file suffixes, and has exactly the same description.
			 * @param object The object to be compared.
			 */
			public equals(object: any): boolean;
			/**
			 * Determines whether a given MIME type is supported.
			 * @param mimeType MIME type.
			 */
			isSupportedMimeType(mimeType: string): boolean;
			/**
			 * Determines whether a given file suffix is supported.
			 * @param fileSuffix File suffix.
			 */
			isSupportedFileSuffix(fileSuffix: string): boolean;
		}
		/**
		 * An entity class that wraps the result of a DrmManagerClient#processDrmInfo(DrmInfo) processDrmInfo() transaction between a device and a DRM server.
		 */
		export class ProcessedData extends java.lang.Object {
			static class: java.lang.Class<android.drm.ProcessedData>;
			/**
			 * Retrieves the processed data.
			 */
			public getData(): native.Array<number>;
			/**
			 * Retrieves the account ID associated with this object.
			 */
			public getAccountId(): string;
			/**
			 * Returns the subscription ID associated with this object.
			 */
			public getSubscriptionId(): string;
		}
		/**
		 * An entity class that wraps converted data, conversion status, and the offset for appending the header and body signature to the converted data. An instance of this class may be created two ways by the drm framework: a) a call to DrmManagerClient#convertData DrmManagerClient.convertData() and b) a call to DrmManagerClient#closeConvertSession DrmManagerClient.closeConvertSession(). An valid offset value is provided only from a success call to DrmManagerClient#closeConvertSession DrmManagerClient.closeConvertSession().
		 */
		export class DrmConvertedStatus extends java.lang.Object {
			/**
			 * Creates a <code>DrmConvertedStatus</code> object with the specified parameters.
			 * @param statusCode Conversion status. Must be one of the status code constants
			 * @param convertedData Converted data. It can be null.
			 * @param offset Offset value for appending the header and body signature.
			 */
			constructor(statusCode: number, convertedData: native.Array<number>, offset: number);
			/**
			 * Indicate the conversion status is successful.
			 */
			static STATUS_OK: number;
			/**
			 * Indicate a failed conversion status due to input data.
			 */
			static STATUS_INPUTDATA_ERROR: number;
			/**
			 * Indicate a general failed conversion status.
			 */
			static STATUS_ERROR: number;
			/**
			 * Status code for the conversion. Must be one of the defined status constants above.
			 */
			statusCode: number;
			/**
			 * Converted data. It is optional and thus can be null.
			 */
			convertedData: native.Array<number>;
			/**
			 * Offset value for the body and header signature.
			 */
			offset: number;
			static class: java.lang.Class<android.drm.DrmConvertedStatus>;
		}
		/**
		 * An entity class that wraps the license information retrieved from the online DRM server.
		 */
		export class DrmRights extends java.lang.Object {
			/**
			 * Creates a <code>DrmRights</code> object with the given parameters.
			 * @param rightsFilePath Path to the file containing rights information.
			 * @param mimeType MIME type. Must not be null or an empty string.
			 */
			constructor(rightsFilePath: string, mimeType: string);
			/**
			 * Creates a <code>DrmRights</code> object with the given parameters.
			 * @param rightsFilePath Path to the file containing rights information.
			 * @param mimeType MIME type. Must not be null or an empty string.
			 * @param accountId Account ID of the user.
			 */
			constructor(rightsFilePath: string, mimeType: string, accountId: string);
			/**
			 * Creates a <code>DrmRights</code> object with the given parameters.
			 * @param rightsFilePath Path to the file containing rights information.
			 * @param mimeType MIME type. Must not be null or an empty string.
			 * @param accountId Account ID of the user.
			 * @param subscriptionId Subscription ID of the user.
			 */
			constructor(rightsFilePath: string, mimeType: string, accountId: string, subscriptionId: string);
			/**
			 * Creates a <code>DrmRights</code> object with the given parameters.
			 * @param rightsFile File containing rights information.
			 * @param mimeType MIME type. Must not be null or an empty string.
			 */
			constructor(rightsFile: java.io.File, mimeType: string);
			/**
			 * Creates a <code>DrmRights</code> object with the given parameters.
			 * @param data A {@link ProcessedData} object containing rights information.
			 * @param mimeType The MIME type. It must not be null or an empty string.
			 */
			constructor(data: android.drm.ProcessedData, mimeType: string);
			static class: java.lang.Class<android.drm.DrmRights>;
			/**
			 * Retrieves the rights data associated with this <code>DrmRights</code> object.
			 */
			public getData(): native.Array<number>;
			/**
			 * Retrieves the MIME type associated with this <code>DrmRights</code> object.
			 */
			public getMimeType(): string;
			/**
			 * Retrieves the account ID associated with this <code>DrmRights</code> object.
			 */
			public getAccountId(): string;
			/**
			 * Retrieves the subscription ID associated with this <code>DrmRights</code> object.
			 */
			public getSubscriptionId(): string;
			/**
			 * Determines whether this instance is valid or not.
			 */
			isValid(): boolean;
		}
		/**
		 * An entity class that is passed to the DrmManagerClient.OnInfoListener#onInfo onInfo() callback.
		 */
		export class DrmInfoEvent extends android.drm.DrmEvent {
			/**
			 * Creates a <code>DrmInfoEvent</code> object with the specified parameters.
			 * @param uniqueId Unique session identifier.
			 * @param type Type of the event. Must be any of the event types defined above,
			 * @param message Message description. It can be null.
			 */
			constructor(uniqueId: number, type: number, message: string);
			/**
			 * Creates a <code>DrmInfoEvent</code> object with the specified parameters.
			 * @param uniqueId Unique session identifier.
			 * @param type Type of the event. Must be any of the event types defined above,
			 * @param message Message description. It can be null.
			 * @param attributes Attributes for extensible information. Could be any
			 */
			constructor(uniqueId: number, type: number, message: string, attributes: java.util.HashMap<string, any>);
			/**
			 * The registration has already been done by another account ID.
			 */
			static TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT: number;
			/**
			 * The rights need to be removed completely.
			 */
			static TYPE_REMOVE_RIGHTS: number;
			/**
			 * The rights have been successfully downloaded and installed.
			 */
			static TYPE_RIGHTS_INSTALLED: number;
			/**
			 * The rights object is being delivered to the device. You must wait before calling DrmManagerClient#acquireRights acquireRights() again.
			 */
			static TYPE_WAIT_FOR_RIGHTS: number;
			/**
			 * The registration has already been done for the given account.
			 */
			static TYPE_ACCOUNT_ALREADY_REGISTERED: number;
			/**
			 * The rights have been removed.
			 */
			static TYPE_RIGHTS_REMOVED: number;
			static class: java.lang.Class<android.drm.DrmInfoEvent>;
		}
		/**
		 * An entity class that is used to pass information to an online DRM server. An instance of this class is passed to the DrmManagerClient#acquireDrmInfo acquireDrmInfo() method to get an instance of a DrmInfo.
		 */
		export class DrmInfoRequest extends java.lang.Object {
			/**
			 * Creates a <code>DrmInfoRequest</code> object with type and MIME type.
			 * @param infoType Type of information.
			 * @param mimeType MIME type.
			 */
			constructor(infoType: number, mimeType: string);
			/**
			 * Acquires DRM server registration information.
			 */
			static TYPE_REGISTRATION_INFO: number;
			/**
			 * Acquires information for unregistering the DRM server.
			 */
			static TYPE_UNREGISTRATION_INFO: number;
			/**
			 * Acquires rights information.
			 */
			static TYPE_RIGHTS_ACQUISITION_INFO: number;
			/**
			 * Acquires the progress of the rights acquisition.
			 */
			static TYPE_RIGHTS_ACQUISITION_PROGRESS_INFO: number;
			/**
			 * Key that is used to pass the unique session ID for the account or the user.
			 */
			static ACCOUNT_ID: string;
			/**
			 * Key that is used to pass the unique session ID for the subscription.
			 */
			static SUBSCRIPTION_ID: string;
			static class: java.lang.Class<android.drm.DrmInfoRequest>;
			/**
			 * Retrieves the MIME type associated with this object.
			 */
			public getMimeType(): string;
			/**
			 * Retrieves the information type associated with this object.
			 */
			public getInfoType(): number;
			/**
			 * Adds optional information as key-value pairs to this object.
			 * @param key The key to add.
			 * @param value The value to add.
			 */
			public put(key: string, value: any): void;
			/**
			 * Retrieves the value of a given key.
			 * @param key The key whose value is being retrieved.
			 */
			public get(key: string): any;
			/**
			 * Retrieves an iterator object that you can use to iterate over the keys associated with this <code>DrmInfoRequest</code> object.
			 */
			public keyIterator(): java.util.IIterator<string>;
			/**
			 * Retrieves an iterator object that you can use to iterate over the values associated with this <code>DrmInfoRequest</code> object.
			 */
			public iterator(): java.util.IIterator<any>;
			/**
			 * Returns whether this instance is valid or not
			 */
			isValid(): boolean;
			static isValidType(infoType: number): boolean;
		}
		/**
		 * Defines constants that are used by the DRM framework.
		 */
		export class DrmStore extends java.lang.Object {
			/**
			 *  This class should have been an interface instead. The default constuctor should have not been exposed.
			 */
			constructor();
			static class: java.lang.Class<android.drm.DrmStore>;
		}
		export module DrmStore {
			/**
			 * Defines actions that can be performed on rights-protected content.
			 */
			export class Action extends java.lang.Object {
				/**
				 *  This class should have been an interface instead. The default constuctor should have not been exposed.
				 */
				constructor();
				/**
				 * The default action.
				 */
				static DEFAULT: number;
				/**
				 * The rights-protected content can be played.
				 */
				static PLAY: number;
				/**
				 * The rights-protected content can be set as a ringtone.
				 */
				static RINGTONE: number;
				/**
				 * The rights-protected content can be transferred.
				 */
				static TRANSFER: number;
				/**
				 * The rights-protected content can be set as output.
				 */
				static OUTPUT: number;
				/**
				 * The rights-protected content can be previewed.
				 */
				static PREVIEW: number;
				/**
				 * The rights-protected content can be executed.
				 */
				static EXECUTE: number;
				/**
				 * The rights-protected content can be displayed.
				 */
				static DISPLAY: number;
				static class: java.lang.Class<android.drm.DrmStore.Action>;
				static isValid(action: number): boolean;
			}
			/**
			 * Interface definition for the columns that represent DRM constraints. android.drm.DrmManagerClient#getConstraints DrmManagerClient.getConstraints() can be called by an application to find out the contraints on the android.drm.DrmStore.Action actions that can be performed on right-protected content. The constants defined in this interface represent three most common types of constraints: count-based, date-based, and duration-based. Two or more constraints can be used at the same time to represent more sophisticated constraints. In addition, user-defined constraint, #EXTENDED_METADATA extended metadata, can be used if these three types of constraints are not sufficient.
			 */
			export class ConstraintsColumns implements android.drm.DrmStore.IConstraintsColumns {
				constructor(implementation: android.drm.DrmStore.IConstraintsColumns);
				/**
				 * This is a count-based constraint. It represents the maximum repeat count that can be performed on an android.drm.DrmStore.Action action.
				 */
				static MAX_REPEAT_COUNT: string;
				/**
				 * This is a count-based constraint. It represents the remaining repeat count that can be performed on an android.drm.DrmStore.Action action.
				 */
				static REMAINING_REPEAT_COUNT: string;
				/**
				 * This is a date-based constraint. It represents the time before which an android.drm.DrmStore.Action action can be performed on the rights-protected content.
				 */
				static LICENSE_START_TIME: string;
				/**
				 * This is a date-based constaint. It represents the time after which an android.drm.DrmStore.Action action can not be performed on the rights-protected content.
				 */
				static LICENSE_EXPIRY_TIME: string;
				/**
				 * This is a duration-based constaint. It represents the available time left before the license expires.
				 */
				static LICENSE_AVAILABLE_TIME: string;
				/**
				 * This is a user-defined constraint. It represents the additional constraint using extended metadata.
				 */
				static EXTENDED_METADATA: string;
			}
			/**
			 * Defines playback states for content.
			 */
			export class Playback extends java.lang.Object {
				/**
				 *  This class should have been an interface instead. The default constuctor should have not been exposed.
				 */
				constructor();
				/**
				 * Playback started.
				 */
				static START: number;
				/**
				 * Playback stopped.
				 */
				static STOP: number;
				/**
				 * Playback paused.
				 */
				static PAUSE: number;
				/**
				 * Playback resumed.
				 */
				static RESUME: number;
				static class: java.lang.Class<android.drm.DrmStore.Playback>;
				static isValid(playbackStatus: number): boolean;
			}
			/**
			 * Interface definition for the columns that represent DRM constraints. android.drm.DrmManagerClient#getConstraints DrmManagerClient.getConstraints() can be called by an application to find out the contraints on the android.drm.DrmStore.Action actions that can be performed on right-protected content. The constants defined in this interface represent three most common types of constraints: count-based, date-based, and duration-based. Two or more constraints can be used at the same time to represent more sophisticated constraints. In addition, user-defined constraint, #EXTENDED_METADATA extended metadata, can be used if these three types of constraints are not sufficient.
			 */
			interface IConstraintsColumns {
			}
			export module IConstraintsColumns {
				/**
				 * This is a count-based constraint. It represents the maximum repeat count that can be performed on an android.drm.DrmStore.Action action.
				 */
				var MAX_REPEAT_COUNT: string;
				/**
				 * This is a count-based constraint. It represents the remaining repeat count that can be performed on an android.drm.DrmStore.Action action.
				 */
				var REMAINING_REPEAT_COUNT: string;
				/**
				 * This is a date-based constraint. It represents the time before which an android.drm.DrmStore.Action action can be performed on the rights-protected content.
				 */
				var LICENSE_START_TIME: string;
				/**
				 * This is a date-based constaint. It represents the time after which an android.drm.DrmStore.Action action can not be performed on the rights-protected content.
				 */
				var LICENSE_EXPIRY_TIME: string;
				/**
				 * This is a duration-based constaint. It represents the available time left before the license expires.
				 */
				var LICENSE_AVAILABLE_TIME: string;
				/**
				 * This is a user-defined constraint. It represents the additional constraint using extended metadata.
				 */
				var EXTENDED_METADATA: string;
			}
			/**
			 * Defines DRM object types.
			 */
			export class DrmObjectType extends java.lang.Object {
				/**
				 *  This class should have been an interface instead. The default constuctor should have not been exposed.
				 */
				constructor();
				/**
				 * An unknown object type.
				 */
				static UNKNOWN: number;
				/**
				 * A rights-protected file object type.
				 */
				static CONTENT: number;
				/**
				 * A rights information object type.
				 */
				static RIGHTS_OBJECT: number;
				/**
				 * A trigger information object type.
				 */
				static TRIGGER_OBJECT: number;
				static class: java.lang.Class<android.drm.DrmStore.DrmObjectType>;
			}
			/**
			 * Defines status notifications for digital rights.
			 */
			export class RightsStatus extends java.lang.Object {
				/**
				 *  This class should have been an interface instead. The default constuctor should have not been exposed.
				 */
				constructor();
				/**
				 * The digital rights are valid.
				 */
				static RIGHTS_VALID: number;
				/**
				 * The digital rights are invalid.
				 */
				static RIGHTS_INVALID: number;
				/**
				 * The digital rights have expired.
				 */
				static RIGHTS_EXPIRED: number;
				/**
				 * The digital rights have not been acquired for the rights-protected content.
				 */
				static RIGHTS_NOT_ACQUIRED: number;
				static class: java.lang.Class<android.drm.DrmStore.RightsStatus>;
			}
		}
		/**
		 * An entity class that describes the information required to send transactions between a device and an online DRM server. The DRM framework achieves server registration, license acquisition, and any other server-related transactions by passing an instance of this class to DrmManagerClient#processDrmInfo.
		 */
		export class DrmInfo extends java.lang.Object {
			/**
			 * Creates a <code>DrmInfo</code> object with the given parameters.
			 * @param infoType The type of information.
			 * @param data The trigger data.
			 * @param mimeType The MIME type.
			 */
			constructor(infoType: number, data: native.Array<number>, mimeType: string);
			/**
			 * Creates a <code>DrmInfo</code> object with the given parameters.
			 * @param infoType The type of information.
			 * @param path The trigger data.
			 * @param mimeType The MIME type.
			 */
			constructor(infoType: number, path: string, mimeType: string);
			static class: java.lang.Class<android.drm.DrmInfo>;
			/**
			 * Adds optional information as key-value pairs to this object. To add a custom object to the <code>DrmInfo</code> object, you must override the #toString implementation.
			 * @param key Key to add.
			 * @param value Value to add.
			 */
			public put(key: string, value: any): void;
			/**
			 * Retrieves the value of a given key.
			 * @param key The key whose value is being retrieved.
			 */
			public get(key: string): any;
			/**
			 * Retrieves an iterator object that you can use to iterate over the keys associated with this <code>DrmInfo</code> object.
			 */
			public keyIterator(): java.util.IIterator<string>;
			/**
			 * Retrieves an iterator object that you can use to iterate over the values associated with this <code>DrmInfo</code> object.
			 */
			public iterator(): java.util.IIterator<any>;
			/**
			 * Retrieves the trigger data associated with this object.
			 */
			public getData(): native.Array<number>;
			/**
			 * Retrieves the MIME type associated with this object.
			 */
			public getMimeType(): string;
			/**
			 * Retrieves the information type associated with this object.
			 */
			public getInfoType(): number;
			/**
			 * Returns whether this instance is valid or not
			 */
			isValid(): boolean;
		}
		/**
		 * An entity class that wraps the result of communication between a device and an online DRM server. Specifically, when the DrmManagerClient#processDrmInfo DrmManagerClient.processDrmInfo() method is called, an instance of <code>DrmInfoStatus</code> is returned.
		 */
		export class DrmInfoStatus extends java.lang.Object {
			/**
			 * Creates a <code>DrmInfoStatus</code> object with the specified parameters.
			 * @param statusCode The status of the communication. Must be one of the defined
			 * @param infoType The type of the DRM information processed. Must be a valid
			 * @param data The processed data.
			 * @param mimeType The MIME type.
			 */
			constructor(statusCode: number, infoType: number, data: android.drm.ProcessedData, mimeType: string);
			/**
			 * Indicate successful communication.
			 */
			static STATUS_OK: number;
			/**
			 * Indicate failed communication.
			 */
			static STATUS_ERROR: number;
			/**
			 * The status of the communication. Must be one of the defined status constants above.
			 */
			statusCode: number;
			/**
			 * The type of DRM information processed. Must be one of the valid type constants defined in DrmInfoRequest.
			 */
			infoType: number;
			/**
			 * The MIME type of the content. Must not be null or an empty string.
			 */
			mimeType: string;
			/**
			 * The processed data. It is optional and thus could be null. When it is null, it indicates that a particular call to DrmManagerClient#processDrmInfo DrmManagerClient.processDrmInfo() does not return any additional useful information except for the status code.
			 */
			data: android.drm.ProcessedData;
			static class: java.lang.Class<android.drm.DrmInfoStatus>;
		}
	}
	export module hardware {
		export module input {
			/**
			 * Provides information about input devices and available key layouts.
			 */
			export class InputManager extends java.lang.Object {
				/**
				 * Broadcast Action: Query available keyboard layouts.
				 */
				static ACTION_QUERY_KEYBOARD_LAYOUTS: string;
				/**
				 * Metadata Key: Keyboard layout metadata associated with #ACTION_QUERY_KEYBOARD_LAYOUTS.
				 */
				static META_DATA_KEYBOARD_LAYOUTS: string;
				static class: java.lang.Class<android.hardware.input.InputManager>;
				InputDeviceVibrator: {
	new (deviceId: number): android.hardware.input.InputManager.InputDeviceVibrator;
};
				/**
				 * Gets information about the input device with the specified id.
				 * @param id The device id.
				 */
				public getInputDevice(id: number): android.view.InputDevice;
				/**
				 * Gets the ids of all input devices in the system.
				 */
				public getInputDeviceIds(): native.Array<number>;
				/**
				 * Registers an input device listener to receive notifications about when input devices are added, removed or changed.
				 * @param listener The listener to register.
				 * @param handler The handler on which the listener should be invoked, or null
				 */
				public registerInputDeviceListener(listener: android.hardware.input.InputManager.IInputDeviceListener, handler: android.os.Handler): void;
				/**
				 * Unregisters an input device listener.
				 * @param listener The listener to unregister.
				 */
				public unregisterInputDeviceListener(listener: android.hardware.input.InputManager.IInputDeviceListener): void;
			}
			export module InputManager {
				/**
				 * Listens for changes in input devices.
				 */
				interface IInputDeviceListener {
					/**
					 * Called whenever an input device has been added to the system. Use InputManager#getInputDevice to get more information about the device.
					 * @param deviceId The id of the input device that was added.
					 */
					onInputDeviceAdded(deviceId: number): void;
					/**
					 * Called whenever an input device has been removed from the system.
					 * @param deviceId The id of the input device that was removed.
					 */
					onInputDeviceRemoved(deviceId: number): void;
					/**
					 * Called whenever the properties of an input device have changed since they were last queried. Use InputManager#getInputDevice to get a fresh InputDevice object with the new properties.
					 * @param deviceId The id of the input device that changed.
					 */
					onInputDeviceChanged(deviceId: number): void;
				}
				/**
				 * Listens for changes in input devices.
				 */
				export class InputDeviceListener implements android.hardware.input.InputManager.IInputDeviceListener {
					constructor(implementation: android.hardware.input.InputManager.IInputDeviceListener);
					/**
					 * Called whenever an input device has been added to the system. Use InputManager#getInputDevice to get more information about the device.
					 * @param deviceId The id of the input device that was added.
					 */
					public onInputDeviceAdded(deviceId: number): void;
					/**
					 * Called whenever an input device has been removed from the system.
					 * @param deviceId The id of the input device that was removed.
					 */
					public onInputDeviceRemoved(deviceId: number): void;
					/**
					 * Called whenever the properties of an input device have changed since they were last queried. Use InputManager#getInputDevice to get a fresh InputDevice object with the new properties.
					 * @param deviceId The id of the input device that changed.
					 */
					public onInputDeviceChanged(deviceId: number): void;
				}
				export class InputDevicesChangedListener {
					static class: java.lang.Class<android.hardware.input.InputManager.InputDevicesChangedListener>;
					public onInputDevicesChanged(deviceIdAndGeneration: native.Array<number>): void;
				}
				export class InputDeviceVibrator extends android.os.Vibrator {
					static class: java.lang.Class<android.hardware.input.InputManager.InputDeviceVibrator>;
					public hasVibrator(): boolean;
					public vibrate(milliseconds: number): void;
					public vibrate(pattern: native.Array<number>, repeat: number): void;
					public cancel(): void;
				}
				export class InputDeviceListenerDelegate extends android.os.Handler {
					constructor(listener: android.hardware.input.InputManager.IInputDeviceListener, handler: android.os.Handler);
					mListener: android.hardware.input.InputManager.IInputDeviceListener;
					static class: java.lang.Class<android.hardware.input.InputManager.InputDeviceListenerDelegate>;
					public handleMessage(msg: android.os.Message): void;
				}
			}
		}
		/**
		 * Used for receiving notifications from the SensorManager when sensor values have changed. Use android.hardware.SensorEventListener SensorEventListener instead.
		 */
		interface ISensorListener {
			/**
			 * @param sensor The ID of the sensor being monitored
			 * @param values The new values for the sensor.
			 */
			onSensorChanged(sensor: number, values: native.Array<number>): void;
			/**
			 * Called when the accuracy of a sensor has changed. See android.hardware.SensorManager SensorManager for details.
			 * @param sensor The ID of the sensor being monitored
			 * @param accuracy The new accuracy of this sensor.
			 */
			onAccuracyChanged(sensor: number, accuracy: number): void;
		}
		export class SensorManager extends java.lang.Object {
			/**
			 * A constant describing an orientation sensor. See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_ORIENTATION: number;
			/**
			 * A constant describing an accelerometer. See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_ACCELEROMETER: number;
			/**
			 * A constant describing a temperature sensor See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_TEMPERATURE: number;
			/**
			 * A constant describing a magnetic sensor See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_MAGNETIC_FIELD: number;
			/**
			 * A constant describing an ambient light sensor See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_LIGHT: number;
			/**
			 * A constant describing a proximity sensor See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_PROXIMITY: number;
			/**
			 * A constant describing a Tricorder See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_TRICORDER: number;
			/**
			 * A constant describing an orientation sensor. See android.hardware.SensorListener SensorListener for more details.
			 */
			static SENSOR_ORIENTATION_RAW: number;
			/**
			 * A constant that includes all sensors
			 */
			static SENSOR_ALL: number;
			/**
			 * Smallest sensor ID
			 */
			static SENSOR_MIN: number;
			/**
			 * Largest sensor ID
			 */
			static SENSOR_MAX: number;
			/**
			 * Index of the X value in the array returned by android.hardware.SensorListener#onSensorChanged
			 */
			static DATA_X: number;
			/**
			 * Index of the Y value in the array returned by android.hardware.SensorListener#onSensorChanged
			 */
			static DATA_Y: number;
			/**
			 * Index of the Z value in the array returned by android.hardware.SensorListener#onSensorChanged
			 */
			static DATA_Z: number;
			/**
			 * Offset to the untransformed values in the array returned by android.hardware.SensorListener#onSensorChanged
			 */
			static RAW_DATA_INDEX: number;
			/**
			 * Index of the untransformed X value in the array returned by android.hardware.SensorListener#onSensorChanged
			 */
			static RAW_DATA_X: number;
			/**
			 * Index of the untransformed Y value in the array returned by android.hardware.SensorListener#onSensorChanged
			 */
			static RAW_DATA_Y: number;
			/**
			 * Index of the untransformed Z value in the array returned by android.hardware.SensorListener#onSensorChanged
			 */
			static RAW_DATA_Z: number;
			/**
			 * Standard gravity (g) on Earth. This value is equivalent to 1G
			 */
			static STANDARD_GRAVITY: number;
			/**
			 * Sun's gravity in SI units (m/s^2)
			 */
			static GRAVITY_SUN: number;
			/**
			 * Mercury's gravity in SI units (m/s^2)
			 */
			static GRAVITY_MERCURY: number;
			/**
			 * Venus' gravity in SI units (m/s^2)
			 */
			static GRAVITY_VENUS: number;
			/**
			 * Earth's gravity in SI units (m/s^2)
			 */
			static GRAVITY_EARTH: number;
			/**
			 * The Moon's gravity in SI units (m/s^2)
			 */
			static GRAVITY_MOON: number;
			/**
			 * Mars' gravity in SI units (m/s^2)
			 */
			static GRAVITY_MARS: number;
			/**
			 * Jupiter's gravity in SI units (m/s^2)
			 */
			static GRAVITY_JUPITER: number;
			/**
			 * Saturn's gravity in SI units (m/s^2)
			 */
			static GRAVITY_SATURN: number;
			/**
			 * Uranus' gravity in SI units (m/s^2)
			 */
			static GRAVITY_URANUS: number;
			/**
			 * Neptune's gravity in SI units (m/s^2)
			 */
			static GRAVITY_NEPTUNE: number;
			/**
			 * Pluto's gravity in SI units (m/s^2)
			 */
			static GRAVITY_PLUTO: number;
			/**
			 * Gravity (estimate) on the first Death Star in Empire units (m/s^2)
			 */
			static GRAVITY_DEATH_STAR_I: number;
			/**
			 * Gravity on the island
			 */
			static GRAVITY_THE_ISLAND: number;
			/**
			 * Maximum magnetic field on Earth's surface
			 */
			static MAGNETIC_FIELD_EARTH_MAX: number;
			/**
			 * Minimum magnetic field on Earth's surface
			 */
			static MAGNETIC_FIELD_EARTH_MIN: number;
			/**
			 * Standard atmosphere, or average sea-level pressure in hPa (millibar)
			 */
			static PRESSURE_STANDARD_ATMOSPHERE: number;
			/**
			 * Maximum luminance of sunlight in lux
			 */
			static LIGHT_SUNLIGHT_MAX: number;
			/**
			 * luminance of sunlight in lux
			 */
			static LIGHT_SUNLIGHT: number;
			/**
			 * luminance in shade in lux
			 */
			static LIGHT_SHADE: number;
			/**
			 * luminance under an overcast sky in lux
			 */
			static LIGHT_OVERCAST: number;
			/**
			 * luminance at sunrise in lux
			 */
			static LIGHT_SUNRISE: number;
			/**
			 * luminance under a cloudy sky in lux
			 */
			static LIGHT_CLOUDY: number;
			/**
			 * luminance at night with full moon in lux
			 */
			static LIGHT_FULLMOON: number;
			/**
			 * luminance at night with no moon in lux
			 */
			static LIGHT_NO_MOON: number;
			/**
			 * get sensor data as fast as possible
			 */
			static SENSOR_DELAY_FASTEST: number;
			/**
			 * rate suitable for games
			 */
			static SENSOR_DELAY_GAME: number;
			/**
			 * rate suitable for the user interface
			 */
			static SENSOR_DELAY_UI: number;
			/**
			 * rate (default) suitable for screen orientation changes
			 */
			static SENSOR_DELAY_NORMAL: number;
			/**
			 * The values returned by this sensor cannot be trusted, calibration is needed or the environment doesn't allow readings
			 */
			static SENSOR_STATUS_UNRELIABLE: number;
			/**
			 * This sensor is reporting data with low accuracy, calibration with the environment is needed
			 */
			static SENSOR_STATUS_ACCURACY_LOW: number;
			/**
			 * This sensor is reporting data with an average level of accuracy, calibration with the environment may improve the readings
			 */
			static SENSOR_STATUS_ACCURACY_MEDIUM: number;
			/**
			 * This sensor is reporting data with maximum accuracy
			 */
			static SENSOR_STATUS_ACCURACY_HIGH: number;
			/**
			 * see #remapCoordinateSystem
			 */
			static AXIS_X: number;
			/**
			 * see #remapCoordinateSystem
			 */
			static AXIS_Y: number;
			/**
			 * see #remapCoordinateSystem
			 */
			static AXIS_Z: number;
			/**
			 * see #remapCoordinateSystem
			 */
			static AXIS_MINUS_X: number;
			/**
			 * see #remapCoordinateSystem
			 */
			static AXIS_MINUS_Y: number;
			/**
			 * see #remapCoordinateSystem
			 */
			static AXIS_MINUS_Z: number;
			static class: java.lang.Class<android.hardware.SensorManager>;
			public getSensors(): number;
			/**
			 * Use this method to get the list of available sensors of a certain type. Make multiple calls to get sensors of different types or use android.hardware.Sensor#TYPE_ALL Sensor.TYPE_ALL to get all the sensors.
			 * @param type 
			 */
			public getSensorList(type: number): java.util.IList<android.hardware.Sensor>;
			/**
			 * Use this method to get the default sensor for a given type. Note that the returned sensor could be a composite sensor, and its data could be averaged or filtered. If you need to access the raw sensors use SensorManager#getSensorList(int) getSensorList.
			 * @param type 
			 */
			public getDefaultSensor(type: number): android.hardware.Sensor;
			/**
			 * Registers a listener for given sensors.
			 * @param listener 
			 * @param sensors 
			 */
			public registerListener(listener: android.hardware.ISensorListener, sensors: number): boolean;
			/**
			 * Registers a SensorListener for given sensors.
			 * @param listener 
			 * @param sensors 
			 * @param rate 
			 */
			public registerListener(listener: android.hardware.ISensorListener, sensors: number, rate: number): boolean;
			/**
			 * Unregisters a listener for all sensors.
			 * @param listener 
			 */
			public unregisterListener(listener: android.hardware.ISensorListener): void;
			/**
			 * Unregisters a listener for the sensors with which it is registered.
			 * @param listener 
			 * @param sensors 
			 */
			public unregisterListener(listener: android.hardware.ISensorListener, sensors: number): void;
			/**
			 * Unregisters a listener for the sensors with which it is registered.
			 * @param listener 
			 * @param sensor 
			 */
			public unregisterListener(listener: android.hardware.ISensorEventListener, sensor: android.hardware.Sensor): void;
			/**
			 * Unregisters a listener for all sensors.
			 * @param listener 
			 */
			public unregisterListener(listener: android.hardware.ISensorEventListener): void;
			/**
			 * Registers a android.hardware.SensorEventListener SensorEventListener for the given sensor.
			 * @param listener 
			 * @param sensor 
			 * @param rate 
			 */
			public registerListener(listener: android.hardware.ISensorEventListener, sensor: android.hardware.Sensor, rate: number): boolean;
			/**
			 * Registers a android.hardware.SensorEventListener SensorEventListener for the given sensor.
			 * @param listener 
			 * @param sensor 
			 * @param rate 
			 * @param handler 
			 */
			public registerListener(listener: android.hardware.ISensorEventListener, sensor: android.hardware.Sensor, rate: number, handler: android.os.Handler): boolean;
			/**
			 * @param R 
			 * @param I 
			 * @param gravity 
			 * @param geomagnetic 
			 */
			public static getRotationMatrix(R: native.Array<number>, I: native.Array<number>, gravity: native.Array<number>, geomagnetic: native.Array<number>): boolean;
			/**
			 * Computes the geomagnetic inclination angle in radians from the inclination matrix <b>I</b> returned by #getRotationMatrix.
			 * @param I 
			 */
			public static getInclination(I: native.Array<number>): number;
			/**
			 * @param inR 
			 * @param X 
			 * @param Y 
			 * @param outR 
			 */
			public static remapCoordinateSystem(inR: native.Array<number>, X: number, Y: number, outR: native.Array<number>): boolean;
			/**
			 * Computes the device's orientation based on the rotation matrix.
			 * @param R 
			 * @param values 
			 */
			public static getOrientation(R: native.Array<number>, values: native.Array<number>): native.Array<number>;
			/**
			 * Computes the Altitude in meters from the atmospheric pressure and the pressure at sea level.
			 * @param p0 pressure at sea level
			 * @param p atmospheric pressure
			 */
			public static getAltitude(p0: number, p: number): number;
			/**
			 * Helper function to compute the angle change between two rotation matrices. Given a current rotation matrix (R) and a previous rotation matrix (prevR) computes the rotation around the z,x, and y axes which transforms prevR to R. outputs a 3 element vector containing the z,x, and y angle change at indexes 0, 1, and 2 respectively.
			 * @param angleChange R current rotation matrix
			 * @param R prevR previous rotation matrix
			 * @param prevR angleChange an an array of floats (z, x, and y) in which the angle change is stored
			 */
			public static getAngleChange(angleChange: native.Array<number>, R: native.Array<number>, prevR: native.Array<number>): void;
			/**
			 * Helper function to convert a rotation vector to a rotation matrix. Given a rotation vector (presumably from a ROTATION_VECTOR sensor), returns a 9 or 16 element rotation matrix in the array R. R must have length 9 or 16. If R.length == 9, the following matrix is returned: <pre> / R[ 0] R[ 1] R[ 2] \ | R[ 3] R[ 4] R[ 5] | \ R[ 6] R[ 7] R[ 8] / </pre> If R.length == 16, the following matrix is returned: <pre> / R[ 0] R[ 1] R[ 2] 0 \ | R[ 4] R[ 5] R[ 6] 0 | | R[ 8] R[ 9] R[10] 0 | \ 0 0 0 1 / </pre>
			 * @param R rotationVector the rotation vector to convert
			 * @param rotationVector R an array of floats in which to store the rotation matrix
			 */
			public static getRotationMatrixFromVector(R: native.Array<number>, rotationVector: native.Array<number>): void;
			/**
			 * Helper function to convert a rotation vector to a normalized quaternion. Given a rotation vector (presumably from a ROTATION_VECTOR sensor), returns a normalized quaternion in the array Q. The quaternion is stored as [w, x, y, z]
			 * @param Q rv the rotation vector to convert
			 * @param rv Q an array of floats in which to store the computed quaternion
			 */
			public static getQuaternionFromVector(Q: native.Array<number>, rv: native.Array<number>): void;
		}
		export module usb {
			/**
			 * A class representing USB request packet. This can be used for both reading and writing data to or from a android.hardware.usb.UsbDeviceConnection. UsbRequests can be used to transfer data on bulk and interrupt endpoints. Requests on bulk endpoints can be sent synchronously via UsbDeviceConnection#bulkTransfer or asynchronously via #queue and UsbDeviceConnection#requestWait. Requests on interrupt endpoints are only send and received asynchronously.
			 */
			export class UsbRequest extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.hardware.usb.UsbRequest>;
				/**
				 * Initializes the request so it can read or write data on the given endpoint. Whether the request allows reading or writing depends on the direction of the endpoint.
				 * @param connection endpoint the endpoint to be used for this request.
				 * @param endpoint 
				 */
				public initialize(connection: android.hardware.usb.UsbDeviceConnection, endpoint: android.hardware.usb.UsbEndpoint): boolean;
				/**
				 * Releases all resources related to this request.
				 */
				public close(): void;
				protected finalize(): void;
				/**
				 * Returns the endpoint for the request, or null if the request is not opened.
				 */
				public getEndpoint(): android.hardware.usb.UsbEndpoint;
				/**
				 * Returns the client data for the request. This can be used in conjunction with #setClientData to associate another object with this request, which can be useful for maintaining state between calls to #queue and android.hardware.usb.UsbDeviceConnection#requestWait
				 */
				public getClientData(): any;
				/**
				 * Sets the client data for the request. This can be used in conjunction with #getClientData to associate another object with this request, which can be useful for maintaining state between calls to #queue and android.hardware.usb.UsbDeviceConnection#requestWait
				 * @param data the client data for the request
				 */
				public setClientData(data: any): void;
				/**
				 * Queues the request to send or receive data on its endpoint. For OUT endpoints, the given buffer data will be sent on the endpoint. For IN endpoints, the endpoint will attempt to read the given number of bytes into the specified buffer. If the queueing operation is successful, we return true and the result will be returned via android.hardware.usb.UsbDeviceConnection#requestWait
				 * @param buffer the buffer containing the bytes to write, or location to store
				 * @param length number of bytes to read or write
				 */
				public queue(buffer: java.nio.ByteBuffer, length: number): boolean;
				dequeue(): void;
				/**
				 * Cancels a pending queue operation.
				 */
				public cancel(): boolean;
			}
			/**
			 * This class is used for sending and receiving data and control messages to a USB device. Instances of this class are created by UsbManager#openDevice.
			 */
			export class UsbDeviceConnection extends java.lang.Object {
				static class: java.lang.Class<android.hardware.usb.UsbDeviceConnection>;
				open(name: string, pfd: android.os.ParcelFileDescriptor): boolean;
				/**
				 * Releases all system resources related to the device. Once the object is closed it cannot be used again. The client must call UsbManager#openDevice again to retrieve a new instance to reestablish communication with the device.
				 */
				public close(): void;
				/**
				 * Returns the native file descriptor for the device, or -1 if the device is not opened. This is intended for passing to native code to access the device.
				 */
				public getFileDescriptor(): number;
				/**
				 * Returns the raw USB descriptors for the device. This can be used to access descriptors not supported directly via the higher level APIs.
				 */
				public getRawDescriptors(): native.Array<number>;
				/**
				 * Claims exclusive access to a android.hardware.usb.UsbInterface. This must be done before sending or receiving data on any android.hardware.usb.UsbEndpoints belonging to the interface.
				 * @param intf the interface to claim
				 * @param force true to disconnect kernel driver if necessary
				 */
				public claimInterface(intf: android.hardware.usb.UsbInterface, force: boolean): boolean;
				/**
				 * Releases exclusive access to a android.hardware.usb.UsbInterface.
				 */
				public releaseInterface(intf: android.hardware.usb.UsbInterface): boolean;
				/**
				 * Performs a control transaction on endpoint zero for this device. The direction of the transfer is determined by the request type. If requestType & UsbConstants#USB_ENDPOINT_DIR_MASK is UsbConstants#USB_DIR_OUT, then the transfer is a write, and if it is UsbConstants#USB_DIR_IN, then the transfer is a read.
				 * @param requestType request type for this transaction
				 * @param request request ID for this transaction
				 * @param value value field for this transaction
				 * @param index index field for this transaction
				 * @param buffer buffer for data portion of transaction,
				 * @param length the length of the data to send or receive
				 * @param timeout in milliseconds
				 */
				public controlTransfer(requestType: number, request: number, value: number, index: number, buffer: native.Array<number>, length: number, timeout: number): number;
				/**
				 * Performs a bulk transaction on the given endpoint. The direction of the transfer is determined by the direction of the endpoint
				 * @param endpoint the endpoint for this transaction
				 * @param buffer buffer for data to send or receive,
				 * @param length the length of the data to send or receive
				 * @param timeout in milliseconds
				 */
				public bulkTransfer(endpoint: android.hardware.usb.UsbEndpoint, buffer: native.Array<number>, length: number, timeout: number): number;
				/**
				 * Waits for the result of a android.hardware.usb.UsbRequest#queue operation Note that this may return requests queued on multiple android.hardware.usb.UsbEndpoints. When multiple endpoints are in use, android.hardware.usb.UsbRequest#getEndpoint and android.hardware.usb.UsbRequest#getClientData can be useful in determining how to process the result of this function.
				 */
				public requestWait(): android.hardware.usb.UsbRequest;
				/**
				 * Returns the serial number for the device. This will return null if the device has not been opened.
				 */
				public getSerial(): string;
			}
			/**
			 * Contains constants for the USB protocol. These constants correspond to definitions in linux/usb/ch9.h in the linux kernel.
			 */
			export class UsbConstants extends java.lang.Object {
				constructor();
				/**
				 * Bitmask used for extracting the UsbEndpoint direction from its address field. UsbEndpoint#getAddress UsbEndpoint#getDirection #USB_DIR_OUT #USB_DIR_IN
				 */
				static USB_ENDPOINT_DIR_MASK: number;
				/**
				 * Used to signify direction of data for a UsbEndpoint is OUT (host to device) UsbEndpoint#getDirection
				 */
				static USB_DIR_OUT: number;
				/**
				 * Used to signify direction of data for a UsbEndpoint is IN (device to host) UsbEndpoint#getDirection
				 */
				static USB_DIR_IN: number;
				/**
				 * Bitmask used for extracting the UsbEndpoint number its address field. UsbEndpoint#getAddress UsbEndpoint#getEndpointNumber
				 */
				static USB_ENDPOINT_NUMBER_MASK: number;
				/**
				 * Bitmask used for extracting the UsbEndpoint type from its address field. UsbEndpoint#getAddress UsbEndpoint#getType #USB_ENDPOINT_XFER_CONTROL #USB_ENDPOINT_XFER_ISOC #USB_ENDPOINT_XFER_BULK #USB_ENDPOINT_XFER_INT
				 */
				static USB_ENDPOINT_XFERTYPE_MASK: number;
				/**
				 * Control endpoint type (endpoint zero) UsbEndpoint#getType
				 */
				static USB_ENDPOINT_XFER_CONTROL: number;
				/**
				 * Isochronous endpoint type (currently not supported) UsbEndpoint#getType
				 */
				static USB_ENDPOINT_XFER_ISOC: number;
				/**
				 * Bulk endpoint type UsbEndpoint#getType
				 */
				static USB_ENDPOINT_XFER_BULK: number;
				/**
				 * Interrupt endpoint type UsbEndpoint#getType
				 */
				static USB_ENDPOINT_XFER_INT: number;
				/**
				 * Bitmask used for encoding the request type for a control request on endpoint zero.
				 */
				static USB_TYPE_MASK: number;
				/**
				 * Used to specify that an endpoint zero control request is a standard request.
				 */
				static USB_TYPE_STANDARD: number;
				/**
				 * Used to specify that an endpoint zero control request is a class specific request.
				 */
				static USB_TYPE_CLASS: number;
				/**
				 * Used to specify that an endpoint zero control request is a vendor specific request.
				 */
				static USB_TYPE_VENDOR: number;
				/**
				 * Reserved endpoint zero control request type (currently unused).
				 */
				static USB_TYPE_RESERVED: number;
				/**
				 * USB class indicating that the class is determined on a per-interface basis.
				 */
				static USB_CLASS_PER_INTERFACE: number;
				/**
				 * USB class for audio devices.
				 */
				static USB_CLASS_AUDIO: number;
				/**
				 * USB class for communication devices.
				 */
				static USB_CLASS_COMM: number;
				/**
				 * USB class for human interface devices (for example, mice and keyboards).
				 */
				static USB_CLASS_HID: number;
				/**
				 * USB class for physical devices.
				 */
				static USB_CLASS_PHYSICA: number;
				/**
				 * USB class for still image devices (digital cameras).
				 */
				static USB_CLASS_STILL_IMAGE: number;
				/**
				 * USB class for printers.
				 */
				static USB_CLASS_PRINTER: number;
				/**
				 * USB class for mass storage devices.
				 */
				static USB_CLASS_MASS_STORAGE: number;
				/**
				 * USB class for USB hubs.
				 */
				static USB_CLASS_HUB: number;
				/**
				 * USB class for CDC devices (communications device class).
				 */
				static USB_CLASS_CDC_DATA: number;
				/**
				 * USB class for content smart card devices.
				 */
				static USB_CLASS_CSCID: number;
				/**
				 * USB class for content security devices.
				 */
				static USB_CLASS_CONTENT_SEC: number;
				/**
				 * USB class for video devices.
				 */
				static USB_CLASS_VIDEO: number;
				/**
				 * USB class for wireless controller devices.
				 */
				static USB_CLASS_WIRELESS_CONTROLLER: number;
				/**
				 * USB class for wireless miscellaneous devices.
				 */
				static USB_CLASS_MISC: number;
				/**
				 * Application specific USB class.
				 */
				static USB_CLASS_APP_SPEC: number;
				/**
				 * Vendor specific USB class.
				 */
				static USB_CLASS_VENDOR_SPEC: number;
				/**
				 * Boot subclass for HID devices.
				 */
				static USB_INTERFACE_SUBCLASS_BOOT: number;
				/**
				 * Vendor specific USB subclass.
				 */
				static USB_SUBCLASS_VENDOR_SPEC: number;
				static class: java.lang.Class<android.hardware.usb.UsbConstants>;
			}
			/**
			 * This class represents a USB device attached to the android device with the android device acting as the USB host. Each device contains one or more UsbInterfaces, each of which contains a number of UsbEndpoints (the channels via which data is transmitted over USB).
			 */
			export class UsbDevice extends java.lang.Object implements android.os.IParcelable {
				static CREATOR: android.os.Parcelable.ICreator<android.hardware.usb.UsbDevice>;
				static class: java.lang.Class<android.hardware.usb.UsbDevice>;
				/**
				 * Returns the name of the device. In the standard implementation, this is the path of the device file for the device in the usbfs file system.
				 */
				public getDeviceName(): string;
				/**
				 * Returns a unique integer ID for the device. This is a convenience for clients that want to use an integer to represent the device, rather than the device name. IDs are not persistent across USB disconnects.
				 */
				public getDeviceId(): number;
				/**
				 * Returns a vendor ID for the device.
				 */
				public getVendorId(): number;
				/**
				 * Returns a product ID for the device.
				 */
				public getProductId(): number;
				/**
				 * Returns the devices's class field. Some useful constants for USB device classes can be found in UsbConstants.
				 */
				public getDeviceClass(): number;
				/**
				 * Returns the device's subclass field.
				 */
				public getDeviceSubclass(): number;
				/**
				 * Returns the device's protocol field.
				 */
				public getDeviceProtocol(): number;
				/**
				 * Returns the number of UsbInterfaces this device contains.
				 */
				public getInterfaceCount(): number;
				/**
				 * Returns the UsbInterface at the given index.
				 */
				public getInterface(index: number): android.hardware.usb.UsbInterface;
				public equals(o: any): boolean;
				public hashCode(): number;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
				public static getDeviceId(name: string): number;
				public static getDeviceName(id: number): string;
			}
			/**
			 * A class representing an endpoint on a UsbInterface. Endpoints are the channels for sending and receiving data over USB. Typically bulk endpoints are used for sending non-trivial amounts of data. Interrupt endpoints are used for sending small amounts of data, typically events, separately from the main data streams. The endpoint zero is a special endpoint for control messages sent from the host to device. Isochronous endpoints are currently unsupported.
			 */
			export class UsbEndpoint extends java.lang.Object implements android.os.IParcelable {
				static CREATOR: android.os.Parcelable.ICreator<android.hardware.usb.UsbEndpoint>;
				static class: java.lang.Class<android.hardware.usb.UsbEndpoint>;
				/**
				 * Returns the endpoint's address field. The address is a bitfield containing both the endpoint number as well as the data direction of the endpoint. the endpoint number and direction can also be accessed via #getEndpointNumber and #getDirection.
				 */
				public getAddress(): number;
				/**
				 * Extracts the endpoint's endpoint number from its address
				 */
				public getEndpointNumber(): number;
				/**
				 * Returns the endpoint's direction. Returns UsbConstants#USB_DIR_OUT if the direction is host to device, and UsbConstants#USB_DIR_IN if the direction is device to host. UsbConstants#USB_DIR_IN UsbConstants#USB_DIR_OUT
				 */
				public getDirection(): number;
				/**
				 * Returns the endpoint's attributes field.
				 */
				public getAttributes(): number;
				/**
				 * Returns the endpoint's type. Possible results are: <ul> <li>UsbConstants#USB_ENDPOINT_XFER_CONTROL (endpoint zero) <li>UsbConstants#USB_ENDPOINT_XFER_ISOC (isochronous endpoint) <li>UsbConstants#USB_ENDPOINT_XFER_BULK (bulk endpoint) <li>UsbConstants#USB_ENDPOINT_XFER_INT (interrupt endpoint) </ul>
				 */
				public getType(): number;
				/**
				 * Returns the endpoint's maximum packet size.
				 */
				public getMaxPacketSize(): number;
				/**
				 * Returns the endpoint's interval field.
				 */
				public getInterval(): number;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			}
			/**
			 * A class representing an interface on a UsbDevice. USB devices can have one or more interfaces, each one providing a different piece of functionality, separate from the other interfaces. An interface will have one or more UsbEndpoints, which are the channels by which the host transfers data with the device.
			 */
			export class UsbInterface extends java.lang.Object implements android.os.IParcelable {
				static CREATOR: android.os.Parcelable.ICreator<android.hardware.usb.UsbInterface>;
				static class: java.lang.Class<android.hardware.usb.UsbInterface>;
				/**
				 * Returns the interface's ID field. This is an integer that uniquely identifies the interface on the device.
				 */
				public getId(): number;
				/**
				 * Returns the interface's class field. Some useful constants for USB classes can be found in UsbConstants
				 */
				public getInterfaceClass(): number;
				/**
				 * Returns the interface's subclass field.
				 */
				public getInterfaceSubclass(): number;
				/**
				 * Returns the interface's protocol field.
				 */
				public getInterfaceProtocol(): number;
				/**
				 * Returns the number of android.hardware.usb.UsbEndpoints this interface contains.
				 */
				public getEndpointCount(): number;
				/**
				 * Returns the android.hardware.usb.UsbEndpoint at the given index.
				 */
				public getEndpoint(index: number): android.hardware.usb.UsbEndpoint;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			}
			/**
			 * A class representing a USB accessory, which is an external hardware component that communicates with an android application over USB. The accessory is the USB host and android the device side of the USB connection.
			 */
			export class UsbAccessory extends java.lang.Object implements android.os.IParcelable {
				static CREATOR: android.os.Parcelable.ICreator<android.hardware.usb.UsbAccessory>;
				static class: java.lang.Class<android.hardware.usb.UsbAccessory>;
				/**
				 * Returns the manufacturer name of the accessory.
				 */
				public getManufacturer(): string;
				/**
				 * Returns the model name of the accessory.
				 */
				public getModel(): string;
				/**
				 * Returns a user visible description of the accessory.
				 */
				public getDescription(): string;
				/**
				 * Returns the version of the accessory.
				 */
				public getVersion(): string;
				/**
				 * Returns the URI for the accessory. This is an optional URI that might show information about the accessory or provide the option to download an application for the accessory
				 */
				public getUri(): string;
				/**
				 * Returns the unique serial number for the accessory. This is an optional serial number that can be used to differentiate between individual accessories of the same model and manufacturer
				 */
				public getSerial(): string;
				public equals(obj: any): boolean;
				public hashCode(): number;
				public toString(): string;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			}
			/**
			 * This class allows you to access the state of USB and communicate with USB devices. Currently only host mode is supported in the public API.
			 */
			export class UsbManager extends java.lang.Object {
				/**
				 * Broadcast Action: A broadcast for USB device attached event.
				 */
				static ACTION_USB_DEVICE_ATTACHED: string;
				/**
				 * Broadcast Action: A broadcast for USB device detached event.
				 */
				static ACTION_USB_DEVICE_DETACHED: string;
				/**
				 * Broadcast Action: A broadcast for USB accessory attached event.
				 */
				static ACTION_USB_ACCESSORY_ATTACHED: string;
				/**
				 * Broadcast Action: A broadcast for USB accessory detached event.
				 */
				static ACTION_USB_ACCESSORY_DETACHED: string;
				/**
				 * Name of extra for #ACTION_USB_DEVICE_ATTACHED and #ACTION_USB_DEVICE_DETACHED broadcasts containing the UsbDevice object for the device.
				 */
				static EXTRA_DEVICE: string;
				/**
				 * Name of extra for #ACTION_USB_ACCESSORY_ATTACHED and #ACTION_USB_ACCESSORY_DETACHED broadcasts containing the UsbAccessory object for the accessory.
				 */
				static EXTRA_ACCESSORY: string;
				/**
				 * Name of extra added to the android.app.PendingIntent passed into #requestPermission(UsbDevice, PendingIntent) or #requestPermission(UsbAccessory, PendingIntent) containing a boolean value indicating whether the user granted permission or not.
				 */
				static EXTRA_PERMISSION_GRANTED: string;
				static class: java.lang.Class<android.hardware.usb.UsbManager>;
				/**
				 * Returns a HashMap containing all USB devices currently attached. USB device name is the key for the returned HashMap. The result will be empty if no devices are attached, or if USB host mode is inactive or unsupported.
				 */
				public getDeviceList(): java.util.HashMap<string, android.hardware.usb.UsbDevice>;
				/**
				 * Opens the device so it can be used to send and receive data using android.hardware.usb.UsbRequest.
				 * @param device the device to open
				 */
				public openDevice(device: android.hardware.usb.UsbDevice): android.hardware.usb.UsbDeviceConnection;
				/**
				 * Returns a list of currently attached USB accessories. (in the current implementation there can be at most one)
				 */
				public getAccessoryList(): native.Array<android.hardware.usb.UsbAccessory>;
				/**
				 * Opens a file descriptor for reading and writing data to the USB accessory.
				 * @param accessory the USB accessory to open
				 */
				public openAccessory(accessory: android.hardware.usb.UsbAccessory): android.os.ParcelFileDescriptor;
				/**
				 * Returns true if the caller has permission to access the device. Permission might have been granted temporarily via #requestPermission(UsbDevice, PendingIntent) or by the user choosing the caller as the default application for the device.
				 * @param device to check permissions for
				 */
				public hasPermission(device: android.hardware.usb.UsbDevice): boolean;
				/**
				 * Returns true if the caller has permission to access the accessory. Permission might have been granted temporarily via #requestPermission(UsbAccessory, PendingIntent) or by the user choosing the caller as the default application for the accessory.
				 * @param accessory to check permissions for
				 */
				public hasPermission(accessory: android.hardware.usb.UsbAccessory): boolean;
				/**
				 * Requests temporary permission for the given package to access the device. This may result in a system dialog being displayed to the user if permission had not already been granted. Success or failure is returned via the android.app.PendingIntent pi. If successful, this grants the caller permission to access the device only until the device is disconnected.
				 * @param device to request permissions for
				 * @param pi PendingIntent for returning result
				 */
				public requestPermission(device: android.hardware.usb.UsbDevice, pi: android.app.PendingIntent): void;
				/**
				 * Requests temporary permission for the given package to access the accessory. This may result in a system dialog being displayed to the user if permission had not already been granted. Success or failure is returned via the android.app.PendingIntent pi. If successful, this grants the caller permission to access the accessory only until the device is disconnected.
				 * @param accessory to request permissions for
				 * @param pi PendingIntent for returning result
				 */
				public requestPermission(accessory: android.hardware.usb.UsbAccessory, pi: android.app.PendingIntent): void;
			}
		}
		export module display {
			/**
			 * Manages the properties of attached displays.
			 */
			export class DisplayManager extends java.lang.Object {
				/**
				 * Display category: Presentation displays.
				 */
				static DISPLAY_CATEGORY_PRESENTATION: string;
				static class: java.lang.Class<android.hardware.display.DisplayManager>;
				/**
				 * Gets information about a logical display.
				 * @param displayId The logical display id.
				 */
				public getDisplay(displayId: number): android.view.Display;
				/**
				 * Gets all currently valid logical displays.
				 */
				public getDisplays(): native.Array<android.view.Display>;
				/**
				 * Gets all currently valid logical displays of the specified category.
				 * @param category The requested display category or null to return all displays.
				 */
				public getDisplays(category: string): native.Array<android.view.Display>;
				/**
				 * Registers an display listener to receive notifications about when displays are added, removed or changed.
				 * @param listener The listener to register.
				 * @param handler The handler on which the listener should be invoked, or null
				 */
				public registerDisplayListener(listener: android.hardware.display.DisplayManager.IDisplayListener, handler: android.os.Handler): void;
				/**
				 * Unregisters an input device listener.
				 * @param listener The listener to unregister.
				 */
				public unregisterDisplayListener(listener: android.hardware.display.DisplayManager.IDisplayListener): void;
			}
			export module DisplayManager {
				/**
				 * Listens for changes in available display devices.
				 */
				export class DisplayListener implements android.hardware.display.DisplayManager.IDisplayListener {
					constructor(implementation: android.hardware.display.DisplayManager.IDisplayListener);
					/**
					 * Called whenever a logical display has been added to the system. Use DisplayManager#getDisplay to get more information about the display.
					 * @param displayId The id of the logical display that was added.
					 */
					public onDisplayAdded(displayId: number): void;
					/**
					 * Called whenever a logical display has been removed from the system.
					 * @param displayId The id of the logical display that was removed.
					 */
					public onDisplayRemoved(displayId: number): void;
					/**
					 * Called whenever the properties of a logical display have changed.
					 * @param displayId The id of the logical display that changed.
					 */
					public onDisplayChanged(displayId: number): void;
				}
				/**
				 * Listens for changes in available display devices.
				 */
				interface IDisplayListener {
					/**
					 * Called whenever a logical display has been added to the system. Use DisplayManager#getDisplay to get more information about the display.
					 * @param displayId The id of the logical display that was added.
					 */
					onDisplayAdded(displayId: number): void;
					/**
					 * Called whenever a logical display has been removed from the system.
					 * @param displayId The id of the logical display that was removed.
					 */
					onDisplayRemoved(displayId: number): void;
					/**
					 * Called whenever the properties of a logical display have changed.
					 * @param displayId The id of the logical display that changed.
					 */
					onDisplayChanged(displayId: number): void;
				}
			}
		}
		/**
		 * Used for receiving notifications from the SensorManager when sensor values have changed.
		 */
		export class SensorEventListener implements android.hardware.ISensorEventListener {
			constructor(implementation: android.hardware.ISensorEventListener);
			/**
			 * Called when sensor values have changed.
			 * @param event the {@link android.hardware.SensorEvent SensorEvent}.
			 */
			public onSensorChanged(event: android.hardware.SensorEvent): void;
			/**
			 * Called when the accuracy of a sensor has changed.
			 * @param sensor accuracy The new accuracy of this sensor
			 * @param accuracy 
			 */
			public onAccuracyChanged(sensor: android.hardware.Sensor, accuracy: number): void;
		}
		/**
		 * Estimates magnetic field at a given point on Earth, and in particular, to compute the magnetic declination from true north.
		 */
		export class GeomagneticField extends java.lang.Object {
			/**
			 * Estimate the magnetic field at a given point and time.
			 * @param gdLatitudeDeg 
			 * @param gdLongitudeDeg 
			 * @param altitudeMeters 
			 * @param timeMillis 
			 */
			constructor(gdLatitudeDeg: number, gdLongitudeDeg: number, altitudeMeters: number, timeMillis: number);
			static class: java.lang.Class<android.hardware.GeomagneticField>;
			public getX(): number;
			public getY(): number;
			public getZ(): number;
			public getDeclination(): number;
			public getInclination(): number;
			public getHorizontalStrength(): number;
			public getFieldStrength(): number;
		}
		export module GeomagneticField {
			/**
			 * Utility class to compute a table of Gauss-normalized associated Legendre functions P_n^m(cos(theta))
			 */
			export class LegendreTable extends java.lang.Object {
				/**
				 * @param maxN 
				 * @param thetaRad 
				 */
				constructor(maxN: number, thetaRad: number);
				mP: native.Array<native.Array<number>>;
				mPDeriv: native.Array<native.Array<number>>;
				static class: java.lang.Class<android.hardware.GeomagneticField.LegendreTable>;
			}
		}
		/**
		 * Used for receiving notifications from the SensorManager when sensor values have changed.
		 */
		interface ISensorEventListener {
			/**
			 * Called when sensor values have changed.
			 * @param event the {@link android.hardware.SensorEvent SensorEvent}.
			 */
			onSensorChanged(event: android.hardware.SensorEvent): void;
			/**
			 * Called when the accuracy of a sensor has changed.
			 * @param sensor accuracy The new accuracy of this sensor
			 * @param accuracy 
			 */
			onAccuracyChanged(sensor: android.hardware.Sensor, accuracy: number): void;
		}
		/**
		 * The Camera class is used to set image capture settings, start/stop preview, snap pictures, and retrieve frames for encoding for video. This class is a client for the Camera service, which manages the actual camera hardware.
		 */
		export class Camera extends java.lang.Object {
			/**
			 * Broadcast Action: A new picture is taken by the camera, and the entry of the picture has been added to the media store. android.content.Intent#getData is URI of the picture.
			 */
			static ACTION_NEW_PICTURE: string;
			/**
			 * Broadcast Action: A new video is recorded by the camera, and the entry of the video has been added to the media store. android.content.Intent#getData is URI of the video.
			 */
			static ACTION_NEW_VIDEO: string;
			/**
			 * Unspecified camera error. Camera.ErrorCallback
			 */
			static CAMERA_ERROR_UNKNOWN: number;
			/**
			 * Media server died. In this case, the application must release the Camera object and instantiate a new one. Camera.ErrorCallback
			 */
			static CAMERA_ERROR_SERVER_DIED: number;
			static class: java.lang.Class<android.hardware.Camera>;
			Size: {
	new (w: number, h: number): android.hardware.Camera.Size;
};
			EventHandler: {
	new (c: android.hardware.Camera, looper: android.os.Looper): android.hardware.Camera.EventHandler;
};
			/**
			 * Returns the number of physical cameras available on this device.
			 */
			public static getNumberOfCameras(): number;
			/**
			 * Returns the information about a particular camera. If #getNumberOfCameras() returns N, the valid id is 0 to N-1.
			 */
			public static getCameraInfo(cameraId: number, cameraInfo: android.hardware.Camera.CameraInfo): void;
			/**
			 * Creates a new Camera object to access a particular hardware camera. If the same camera is opened by other applications, this will throw a RuntimeException.
			 * @param cameraId the hardware camera to access, between 0 and
			 */
			public static open(cameraId: number): android.hardware.Camera;
			/**
			 * Creates a new Camera object to access the first back-facing camera on the device. If the device does not have a back-facing camera, this returns null. #open(int)
			 */
			public static open(): android.hardware.Camera;
			protected finalize(): void;
			/**
			 * Disconnects and releases the Camera object resources.
			 */
			public release(): void;
			/**
			 * Unlocks the camera to allow another process to access it. Normally, the camera is locked to the process with an active Camera object until #release() is called. To allow rapid handoff between processes, you can call this method to release the camera temporarily for another process to use; once the other process is done you can call #reconnect() to reclaim the camera.
			 */
			public unlock(): void;
			/**
			 * Re-locks the camera to prevent other processes from accessing it. Camera objects are locked by default unless #unlock() is called. Normally #reconnect() is used instead.
			 */
			public lock(): void;
			/**
			 * Reconnects to the camera service after another process used it. After #unlock() is called, another process may use the camera; when the process is done, you must reconnect to the camera, which will re-acquire the lock and allow you to continue using the camera.
			 */
			public reconnect(): void;
			/**
			 * Sets the Surface to be used for live preview. Either a surface or surface texture is necessary for preview, and preview is necessary to take pictures. The same surface can be re-set without harm. Setting a preview surface will un-set any preview surface texture that was set via #setPreviewTexture.
			 * @param holder containing the Surface on which to place the preview,
			 */
			public setPreviewDisplay(holder: android.view.ISurfaceHolder): void;
			/**
			 * Sets the SurfaceTexture to be used for live preview. Either a surface or surface texture is necessary for preview, and preview is necessary to take pictures. The same surface texture can be re-set without harm. Setting a preview surface texture will un-set any preview surface that was set via #setPreviewDisplay.
			 * @param surfaceTexture the {@link SurfaceTexture} to which the preview
			 */
			public setPreviewTexture(surfaceTexture: android.graphics.SurfaceTexture): void;
			/**
			 * Starts capturing and drawing preview frames to the screen. Preview will not actually start until a surface is supplied with #setPreviewDisplay(SurfaceHolder) or #setPreviewTexture(SurfaceTexture).
			 */
			public startPreview(): void;
			/**
			 * Stops capturing and drawing preview frames to the surface, and resets the camera for a future call to #startPreview().
			 */
			public stopPreview(): void;
			/**
			 * @param cb a callback object that receives a copy of each preview frame,
			 */
			public setPreviewCallback(cb: android.hardware.Camera.IPreviewCallback): void;
			/**
			 * @param cb a callback object that receives a copy of the next preview frame,
			 */
			public setOneShotPreviewCallback(cb: android.hardware.Camera.IPreviewCallback): void;
			/**
			 * @param cb a callback object that receives a copy of the preview frame,
			 */
			public setPreviewCallbackWithBuffer(cb: android.hardware.Camera.IPreviewCallback): void;
			/**
			 * Adds a pre-allocated buffer to the preview callback buffer queue. Applications can add one or more buffers to the queue. When a preview frame arrives and there is still at least one available buffer, the buffer will be used and removed from the queue. Then preview callback is invoked with the buffer. If a frame arrives and there is no buffer left, the frame is discarded. Applications should add buffers back when they finish processing the data in them.
			 * @param callbackBuffer the buffer to add to the queue. The size of the
			 */
			public addCallbackBuffer(callbackBuffer: native.Array<number>): void;
			/**
			 * Starts camera auto-focus and registers a callback function to run when the camera is focused. This method is only valid when preview is active (between #startPreview() and before #stopPreview()).
			 * @param cb the callback to run
			 */
			public autoFocus(cb: android.hardware.Camera.IAutoFocusCallback): void;
			/**
			 * Cancels any auto-focus function in progress. Whether or not auto-focus is currently in progress, this function will return the focus position to the default. If the camera does not support auto-focus, this is a no-op.
			 */
			public cancelAutoFocus(): void;
			/**
			 * Sets camera auto-focus move callback.
			 * @param cb the callback to run
			 */
			public setAutoFocusMoveCallback(cb: android.hardware.Camera.IAutoFocusMoveCallback): void;
			/**
			 * Equivalent to takePicture(shutter, raw, null, jpeg).
			 */
			public takePicture(shutter: android.hardware.Camera.IShutterCallback, raw: android.hardware.Camera.IPictureCallback, jpeg: android.hardware.Camera.IPictureCallback): void;
			/**
			 * Triggers an asynchronous image capture. The camera service will initiate a series of callbacks to the application as the image capture progresses. The shutter callback occurs after the image is captured. This can be used to trigger a sound to let the user know that image has been captured. The raw callback occurs when the raw image data is available (NOTE: the data will be null if there is no raw image callback buffer available or the raw image callback buffer is not large enough to hold the raw image). The postview callback occurs when a scaled, fully processed postview image is available (NOTE: not all hardware supports this). The jpeg callback occurs when the compressed image is available. If the application does not need a particular callback, a null can be passed instead of a callback method.
			 * @param shutter the callback for image capture moment, or null
			 * @param raw the callback for raw (uncompressed) image data, or null
			 * @param postview callback with postview image data, may be null
			 * @param jpeg the callback for JPEG image data, or null
			 */
			public takePicture(shutter: android.hardware.Camera.IShutterCallback, raw: android.hardware.Camera.IPictureCallback, postview: android.hardware.Camera.IPictureCallback, jpeg: android.hardware.Camera.IPictureCallback): void;
			/**
			 * Zooms to the requested value smoothly. The driver will notify OnZoomChangeListener of the zoom value and whether zoom is stopped at the time. For example, suppose the current zoom is 0 and startSmoothZoom is called with value 3. The Camera.OnZoomChangeListener#onZoomChange(int, boolean, Camera) method will be called three times with zoom values 1, 2, and 3. Applications can call #stopSmoothZoom to stop the zoom earlier. Applications should not call startSmoothZoom again or change the zoom value before zoom stops. If the supplied zoom value equals to the current zoom value, no zoom callback will be generated. This method is supported if android.hardware.Camera.Parameters#isSmoothZoomSupported returns true.
			 * @param value zoom value. The valid range is 0 to {@link
			 */
			public startSmoothZoom(value: number): void;
			/**
			 * Stops the smooth zoom. Applications should wait for the OnZoomChangeListener to know when the zoom is actually stopped. This method is supported if android.hardware.Camera.Parameters#isSmoothZoomSupported is true.
			 */
			public stopSmoothZoom(): void;
			/**
			 * Set the clockwise rotation of preview display in degrees. This affects the preview frames and the picture displayed after snapshot. This method is useful for portrait mode applications. Note that preview display of front-facing cameras is flipped horizontally before the rotation, that is, the image is reflected along the central vertical axis of the camera sensor. So the users can see themselves as looking into a mirror.
			 * @param degrees the angle that the picture will be rotated clockwise.
			 */
			public setDisplayOrientation(degrees: number): void;
			/**
			 * @param enabled whether the camera should play the system shutter sound
			 */
			public enableShutterSound(enabled: boolean): boolean;
			/**
			 * Registers a listener to be notified when the zoom value is updated by the camera driver during smooth zoom.
			 * @param listener the listener to notify
			 */
			public setZoomChangeListener(listener: android.hardware.Camera.IOnZoomChangeListener): void;
			/**
			 * Registers a listener to be notified about the faces detected in the preview frame.
			 * @param listener the listener to notify
			 */
			public setFaceDetectionListener(listener: android.hardware.Camera.IFaceDetectionListener): void;
			/**
			 * Starts the face detection. This should be called after preview is started. The camera will notify FaceDetectionListener of the detected faces in the preview frame. The detected faces may be the same as the previous ones. Applications should call #stopFaceDetection to stop the face detection. This method is supported if Parameters#getMaxNumDetectedFaces() returns a number larger than 0. If the face detection has started, apps should not call this again.
			 */
			public startFaceDetection(): void;
			/**
			 * Stops the face detection.
			 */
			public stopFaceDetection(): void;
			/**
			 * Registers a callback to be invoked when an error occurs.
			 * @param cb The callback to run
			 */
			public setErrorCallback(cb: android.hardware.Camera.IErrorCallback): void;
			/**
			 * Changes the settings for this Camera service.
			 * @param params the Parameters to use for this Camera service
			 */
			public setParameters(params: android.hardware.Camera.Parameters): void;
			/**
			 * Returns the current settings for this Camera service. If modifications are made to the returned Parameters, they must be passed to #setParameters(Camera.Parameters) to take effect.
			 */
			public getParameters(): android.hardware.Camera.Parameters;
		}
		export module Camera {
			/**
			 * Callback interface used to supply image data from a photo capture.
			 */
			export class PictureCallback implements android.hardware.Camera.IPictureCallback {
				constructor(implementation: android.hardware.Camera.IPictureCallback);
				/**
				 * Called when image data is available after a picture is taken. The format of the data depends on the context of the callback and Camera.Parameters settings.
				 * @param data a byte array of the picture data
				 * @param camera the Camera service object
				 */
				public onPictureTaken(data: native.Array<number>, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface for zoom changes during a smooth zoom operation.
			 */
			interface IOnZoomChangeListener {
				/**
				 * Called when the zoom value has changed during a smooth zoom.
				 * @param zoomValue the current zoom value. In smooth zoom mode, camera
				 * @param stopped whether smooth zoom is stopped. If the value is true,
				 * @param camera the Camera service object
				 */
				onZoomChange(zoomValue: number, stopped: boolean, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface used to supply image data from a photo capture.
			 */
			interface IPictureCallback {
				/**
				 * Called when image data is available after a picture is taken. The format of the data depends on the context of the callback and Camera.Parameters settings.
				 * @param data a byte array of the picture data
				 * @param camera the Camera service object
				 */
				onPictureTaken(data: native.Array<number>, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface for face detected in the preview frame.
			 */
			export class FaceDetectionListener implements android.hardware.Camera.IFaceDetectionListener {
				constructor(implementation: android.hardware.Camera.IFaceDetectionListener);
				/**
				 * Notify the listener of the detected faces in the preview frame.
				 * @param faces The detected faces in a list
				 * @param camera The {@link Camera} service object
				 */
				public onFaceDetection(faces: native.Array<android.hardware.Camera.Face>, camera: android.hardware.Camera): void;
			}
			/**
			 * Camera service settings.
			 */
			export class Parameters extends java.lang.Object {
				static WHITE_BALANCE_AUTO: string;
				static WHITE_BALANCE_INCANDESCENT: string;
				static WHITE_BALANCE_FLUORESCENT: string;
				static WHITE_BALANCE_WARM_FLUORESCENT: string;
				static WHITE_BALANCE_DAYLIGHT: string;
				static WHITE_BALANCE_CLOUDY_DAYLIGHT: string;
				static WHITE_BALANCE_TWILIGHT: string;
				static WHITE_BALANCE_SHADE: string;
				static EFFECT_NONE: string;
				static EFFECT_MONO: string;
				static EFFECT_NEGATIVE: string;
				static EFFECT_SOLARIZE: string;
				static EFFECT_SEPIA: string;
				static EFFECT_POSTERIZE: string;
				static EFFECT_WHITEBOARD: string;
				static EFFECT_BLACKBOARD: string;
				static EFFECT_AQUA: string;
				static ANTIBANDING_AUTO: string;
				static ANTIBANDING_50HZ: string;
				static ANTIBANDING_60HZ: string;
				static ANTIBANDING_OFF: string;
				/**
				 * Flash will not be fired.
				 */
				static FLASH_MODE_OFF: string;
				/**
				 * Flash will be fired automatically when required. The flash may be fired during preview, auto-focus, or snapshot depending on the driver.
				 */
				static FLASH_MODE_AUTO: string;
				/**
				 * Flash will always be fired during snapshot. The flash may also be fired during preview or auto-focus depending on the driver.
				 */
				static FLASH_MODE_ON: string;
				/**
				 * Flash will be fired in red-eye reduction mode.
				 */
				static FLASH_MODE_RED_EYE: string;
				/**
				 * Constant emission of light during preview, auto-focus and snapshot. This can also be used for video recording.
				 */
				static FLASH_MODE_TORCH: string;
				/**
				 * Scene mode is off.
				 */
				static SCENE_MODE_AUTO: string;
				/**
				 * Take photos of fast moving objects. Same as #SCENE_MODE_SPORTS.
				 */
				static SCENE_MODE_ACTION: string;
				/**
				 * Take people pictures.
				 */
				static SCENE_MODE_PORTRAIT: string;
				/**
				 * Take pictures on distant objects.
				 */
				static SCENE_MODE_LANDSCAPE: string;
				/**
				 * Take photos at night.
				 */
				static SCENE_MODE_NIGHT: string;
				/**
				 * Take people pictures at night.
				 */
				static SCENE_MODE_NIGHT_PORTRAIT: string;
				/**
				 * Take photos in a theater. Flash light is off.
				 */
				static SCENE_MODE_THEATRE: string;
				/**
				 * Take pictures on the beach.
				 */
				static SCENE_MODE_BEACH: string;
				/**
				 * Take pictures on the snow.
				 */
				static SCENE_MODE_SNOW: string;
				/**
				 * Take sunset photos.
				 */
				static SCENE_MODE_SUNSET: string;
				/**
				 * Avoid blurry pictures (for example, due to hand shake).
				 */
				static SCENE_MODE_STEADYPHOTO: string;
				/**
				 * For shooting firework displays.
				 */
				static SCENE_MODE_FIREWORKS: string;
				/**
				 * Take photos of fast moving objects. Same as #SCENE_MODE_ACTION.
				 */
				static SCENE_MODE_SPORTS: string;
				/**
				 * Take indoor low-light shot.
				 */
				static SCENE_MODE_PARTY: string;
				/**
				 * Capture the naturally warm color of scenes lit by candles.
				 */
				static SCENE_MODE_CANDLELIGHT: string;
				/**
				 * Applications are looking for a barcode. Camera driver will be optimized for barcode reading.
				 */
				static SCENE_MODE_BARCODE: string;
				/**
				 * Capture a scene using high dynamic range imaging techniques. The camera will return an image that has an extended dynamic range compared to a regular capture. Capturing such an image may take longer than a regular capture.
				 */
				static SCENE_MODE_HDR: string;
				/**
				 * Auto-focus mode. Applications should call #autoFocus(AutoFocusCallback) to start the focus in this mode.
				 */
				static FOCUS_MODE_AUTO: string;
				/**
				 * Focus is set at infinity. Applications should not call #autoFocus(AutoFocusCallback) in this mode.
				 */
				static FOCUS_MODE_INFINITY: string;
				/**
				 * Macro (close-up) focus mode. Applications should call #autoFocus(AutoFocusCallback) to start the focus in this mode.
				 */
				static FOCUS_MODE_MACRO: string;
				/**
				 * Focus is fixed. The camera is always in this mode if the focus is not adjustable. If the camera has auto-focus, this mode can fix the focus, which is usually at hyperfocal distance. Applications should not call #autoFocus(AutoFocusCallback) in this mode.
				 */
				static FOCUS_MODE_FIXED: string;
				/**
				 * Extended depth of field (EDOF). Focusing is done digitally and continuously. Applications should not call #autoFocus(AutoFocusCallback) in this mode.
				 */
				static FOCUS_MODE_EDOF: string;
				/**
				 * Continuous auto focus mode intended for video recording. The camera continuously tries to focus. This is the best choice for video recording because the focus changes smoothly . Applications still can call #takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback) in this mode but the subject may not be in focus. Auto focus starts when the parameter is set.
				 */
				static FOCUS_MODE_CONTINUOUS_VIDEO: string;
				/**
				 * Continuous auto focus mode intended for taking pictures. The camera continuously tries to focus. The speed of focus change is more aggressive than #FOCUS_MODE_CONTINUOUS_VIDEO. Auto focus starts when the parameter is set.
				 */
				static FOCUS_MODE_CONTINUOUS_PICTURE: string;
				/**
				 * The array index of near focus distance for use with #getFocusDistances(float[]).
				 */
				static FOCUS_DISTANCE_NEAR_INDEX: number;
				/**
				 * The array index of optimal focus distance for use with #getFocusDistances(float[]).
				 */
				static FOCUS_DISTANCE_OPTIMAL_INDEX: number;
				/**
				 * The array index of far focus distance for use with #getFocusDistances(float[]).
				 */
				static FOCUS_DISTANCE_FAR_INDEX: number;
				/**
				 * The array index of minimum preview fps for use with #getPreviewFpsRange(int[]) or #getSupportedPreviewFpsRange().
				 */
				static PREVIEW_FPS_MIN_INDEX: number;
				/**
				 * The array index of maximum preview fps for use with #getPreviewFpsRange(int[]) or #getSupportedPreviewFpsRange().
				 */
				static PREVIEW_FPS_MAX_INDEX: number;
				static class: java.lang.Class<android.hardware.Camera.Parameters>;
				/**
				 * Creates a single string with all the parameters set in this Parameters object.
				 */
				public flatten(): string;
				/**
				 * Takes a flattened string of parameters and adds each one to this Parameters object.
				 * @param flattened a String of parameters (key-value paired) that
				 */
				public unflatten(flattened: string): void;
				public remove(key: string): void;
				/**
				 * Sets a String parameter.
				 * @param key the key name for the parameter
				 * @param value the String value of the parameter
				 */
				public set(key: string, value: string): void;
				/**
				 * Sets an integer parameter.
				 * @param key the key name for the parameter
				 * @param value the int value of the parameter
				 */
				public set(key: string, value: number): void;
				/**
				 * Returns the value of a String parameter.
				 * @param key the key name for the parameter
				 */
				public get(key: string): string;
				/**
				 * Returns the value of an integer parameter.
				 * @param key the key name for the parameter
				 */
				public getInt(key: string): number;
				/**
				 * Sets the dimensions for preview pictures. If the preview has already started, applications should stop the preview first before changing preview size.
				 * @param width the width of the pictures, in pixels
				 * @param height the height of the pictures, in pixels
				 */
				public setPreviewSize(width: number, height: number): void;
				/**
				 * Returns the dimensions setting for preview pictures.
				 */
				public getPreviewSize(): android.hardware.Camera.Size;
				/**
				 * Gets the supported preview sizes.
				 */
				public getSupportedPreviewSizes(): java.util.IList<android.hardware.Camera.Size>;
				public getSupportedVideoSizes(): java.util.IList<android.hardware.Camera.Size>;
				/**
				 * Returns the preferred or recommended preview size (width and height) in pixels for video recording. Camcorder applications should set the preview size to a value that is not larger than the preferred preview size. In other words, the product of the width and height of the preview size should not be larger than that of the preferred preview size. In addition, we recommend to choose a preview size that has the same aspect ratio as the resolution of video to be recorded.
				 */
				public getPreferredPreviewSizeForVideo(): android.hardware.Camera.Size;
				/**
				 * @param width the width of the thumbnail, in pixels
				 * @param height the height of the thumbnail, in pixels
				 */
				public setJpegThumbnailSize(width: number, height: number): void;
				/**
				 * Returns the dimensions for EXIF thumbnail in Jpeg picture.
				 */
				public getJpegThumbnailSize(): android.hardware.Camera.Size;
				/**
				 * Gets the supported jpeg thumbnail sizes.
				 */
				public getSupportedJpegThumbnailSizes(): java.util.IList<android.hardware.Camera.Size>;
				/**
				 * Sets the quality of the EXIF thumbnail in Jpeg picture.
				 * @param quality the JPEG quality of the EXIF thumbnail. The range is 1
				 */
				public setJpegThumbnailQuality(quality: number): void;
				/**
				 * Returns the quality setting for the EXIF thumbnail in Jpeg picture.
				 */
				public getJpegThumbnailQuality(): number;
				/**
				 * Sets Jpeg quality of captured picture.
				 * @param quality the JPEG quality of captured picture. The range is 1
				 */
				public setJpegQuality(quality: number): void;
				/**
				 * Returns the quality setting for the JPEG picture.
				 */
				public getJpegQuality(): number;
				/**
				 * Sets the rate at which preview frames are received. This is the target frame rate. The actual frame rate depends on the driver.
				 * @param fps the frame rate (frames per second)
				 */
				public setPreviewFrameRate(fps: number): void;
				/**
				 * Returns the setting for the rate at which preview frames are received. This is the target frame rate. The actual frame rate depends on the driver.
				 */
				public getPreviewFrameRate(): number;
				/**
				 * Gets the supported preview frame rates.
				 */
				public getSupportedPreviewFrameRates(): java.util.IList<java.lang.Integer>;
				/**
				 * Sets the maximum and maximum preview fps. This controls the rate of preview frames received in PreviewCallback. The minimum and maximum preview fps must be one of the elements from #getSupportedPreviewFpsRange.
				 * @param min the minimum preview fps (scaled by 1000).
				 * @param max the maximum preview fps (scaled by 1000).
				 */
				public setPreviewFpsRange(min: number, max: number): void;
				/**
				 * Returns the current minimum and maximum preview fps. The values are one of the elements returned by #getSupportedPreviewFpsRange.
				 */
				public getPreviewFpsRange(range: native.Array<number>): void;
				/**
				 * Gets the supported preview fps (frame-per-second) ranges. Each range contains a minimum fps and maximum fps. If minimum fps equals to maximum fps, the camera outputs frames in fixed frame rate. If not, the camera outputs frames in auto frame rate. The actual frame rate fluctuates between the minimum and the maximum. The values are multiplied by 1000 and represented in integers. For example, if frame rate is 26.623 frames per second, the value is 26623.
				 */
				public getSupportedPreviewFpsRange(): java.util.IList<native.Array<number>>;
				/**
				 * Sets the image format for preview pictures.
				 * @param pixel_format the desired preview picture format, defined by
				 */
				public setPreviewFormat(pixel_format: number): void;
				/**
				 * Returns the image format for preview frames got from PreviewCallback.
				 */
				public getPreviewFormat(): number;
				/**
				 * Gets the supported preview formats. android.graphics.ImageFormat#NV21 is always supported. android.graphics.ImageFormat#YV12 is always supported since API level 12.
				 */
				public getSupportedPreviewFormats(): java.util.IList<java.lang.Integer>;
				/**
				 * @param width the width for pictures, in pixels
				 * @param height the height for pictures, in pixels
				 */
				public setPictureSize(width: number, height: number): void;
				/**
				 * Returns the dimension setting for pictures.
				 */
				public getPictureSize(): android.hardware.Camera.Size;
				/**
				 * Gets the supported picture sizes.
				 */
				public getSupportedPictureSizes(): java.util.IList<android.hardware.Camera.Size>;
				/**
				 * Sets the image format for pictures.
				 * @param pixel_format the desired picture format
				 */
				public setPictureFormat(pixel_format: number): void;
				/**
				 * Returns the image format for pictures.
				 */
				public getPictureFormat(): number;
				/**
				 * Gets the supported picture formats.
				 */
				public getSupportedPictureFormats(): java.util.IList<java.lang.Integer>;
				/**
				 * Sets the clockwise rotation angle in degrees relative to the orientation of the camera. This affects the pictures returned from JPEG PictureCallback. The camera driver may set orientation in the EXIF header without rotating the picture. Or the driver may rotate the picture and the EXIF thumbnail. If the Jpeg picture is rotated, the orientation in the EXIF header will be missing or 1 (row #0 is top and column #0 is left side).
				 * @param rotation The rotation angle in degrees relative to the
				 */
				public setRotation(rotation: number): void;
				/**
				 * Sets GPS latitude coordinate. This will be stored in JPEG EXIF header.
				 * @param latitude GPS latitude coordinate.
				 */
				public setGpsLatitude(latitude: number): void;
				/**
				 * Sets GPS longitude coordinate. This will be stored in JPEG EXIF header.
				 * @param longitude GPS longitude coordinate.
				 */
				public setGpsLongitude(longitude: number): void;
				/**
				 * Sets GPS altitude. This will be stored in JPEG EXIF header.
				 * @param altitude GPS altitude in meters.
				 */
				public setGpsAltitude(altitude: number): void;
				/**
				 * Sets GPS timestamp. This will be stored in JPEG EXIF header.
				 * @param timestamp GPS timestamp (UTC in seconds since January 1,
				 */
				public setGpsTimestamp(timestamp: number): void;
				/**
				 * Sets GPS processing method. It will store up to 32 characters in JPEG EXIF header.
				 * @param processing_method The processing method to get this location.
				 */
				public setGpsProcessingMethod(processing_method: string): void;
				/**
				 * Removes GPS latitude, longitude, altitude, and timestamp from the parameters.
				 */
				public removeGpsData(): void;
				/**
				 * Gets the current white balance setting.
				 */
				public getWhiteBalance(): string;
				/**
				 * Sets the white balance. Changing the setting will release the auto-white balance lock. It is recommended not to change white balance and AWB lock at the same time.
				 * @param value new white balance.
				 */
				public setWhiteBalance(value: string): void;
				/**
				 * Gets the supported white balance.
				 */
				public getSupportedWhiteBalance(): java.util.IList<string>;
				/**
				 * Gets the current color effect setting.
				 */
				public getColorEffect(): string;
				/**
				 * Sets the current color effect setting.
				 * @param value new color effect.
				 */
				public setColorEffect(value: string): void;
				/**
				 * Gets the supported color effects.
				 */
				public getSupportedColorEffects(): java.util.IList<string>;
				/**
				 * Gets the current antibanding setting.
				 */
				public getAntibanding(): string;
				/**
				 * Sets the antibanding.
				 * @param antibanding new antibanding value.
				 */
				public setAntibanding(antibanding: string): void;
				/**
				 * Gets the supported antibanding values.
				 */
				public getSupportedAntibanding(): java.util.IList<string>;
				/**
				 * Gets the current scene mode setting.
				 */
				public getSceneMode(): string;
				/**
				 * Sets the scene mode. Changing scene mode may override other parameters (such as flash mode, focus mode, white balance). For example, suppose originally flash mode is on and supported flash modes are on/off. In night scene mode, both flash mode and supported flash mode may be changed to off. After setting scene mode, applications should call getParameters to know if some parameters are changed.
				 * @param value scene mode.
				 */
				public setSceneMode(value: string): void;
				/**
				 * Gets the supported scene modes.
				 */
				public getSupportedSceneModes(): java.util.IList<string>;
				/**
				 * Gets the current flash mode setting.
				 */
				public getFlashMode(): string;
				/**
				 * Sets the flash mode.
				 * @param value flash mode.
				 */
				public setFlashMode(value: string): void;
				/**
				 * Gets the supported flash modes.
				 */
				public getSupportedFlashModes(): java.util.IList<string>;
				/**
				 * Gets the current focus mode setting.
				 */
				public getFocusMode(): string;
				/**
				 * Sets the focus mode.
				 * @param value focus mode.
				 */
				public setFocusMode(value: string): void;
				/**
				 * Gets the supported focus modes.
				 */
				public getSupportedFocusModes(): java.util.IList<string>;
				/**
				 * Gets the focal length (in millimeter) of the camera.
				 */
				public getFocalLength(): number;
				/**
				 * Gets the horizontal angle of view in degrees.
				 */
				public getHorizontalViewAngle(): number;
				/**
				 * Gets the vertical angle of view in degrees.
				 */
				public getVerticalViewAngle(): number;
				/**
				 * Gets the current exposure compensation index.
				 */
				public getExposureCompensation(): number;
				/**
				 * Sets the exposure compensation index.
				 * @param value exposure compensation index. The valid value range is
				 */
				public setExposureCompensation(value: number): void;
				/**
				 * Gets the maximum exposure compensation index.
				 */
				public getMaxExposureCompensation(): number;
				/**
				 * Gets the minimum exposure compensation index.
				 */
				public getMinExposureCompensation(): number;
				/**
				 * Gets the exposure compensation step.
				 */
				public getExposureCompensationStep(): number;
				/**
				 * @param toggle new state of the auto-exposure lock. True means that
				 */
				public setAutoExposureLock(toggle: boolean): void;
				/**
				 * Gets the state of the auto-exposure lock. Applications should check #isAutoExposureLockSupported before using this method. See #setAutoExposureLock for details about the lock.
				 */
				public getAutoExposureLock(): boolean;
				/**
				 * Returns true if auto-exposure locking is supported. Applications should call this before trying to lock auto-exposure. See #setAutoExposureLock for details about the lock.
				 */
				public isAutoExposureLockSupported(): boolean;
				/**
				 * @param toggle new state of the auto-white balance lock. True means
				 */
				public setAutoWhiteBalanceLock(toggle: boolean): void;
				/**
				 * Gets the state of the auto-white balance lock. Applications should check #isAutoWhiteBalanceLockSupported before using this method. See #setAutoWhiteBalanceLock for details about the lock.
				 */
				public getAutoWhiteBalanceLock(): boolean;
				/**
				 * Returns true if auto-white balance locking is supported. Applications should call this before trying to lock auto-white balance. See #setAutoWhiteBalanceLock for details about the lock.
				 */
				public isAutoWhiteBalanceLockSupported(): boolean;
				/**
				 * Gets current zoom value. This also works when smooth zoom is in progress. Applications should check #isZoomSupported before using this method.
				 */
				public getZoom(): number;
				/**
				 * Sets current zoom value. If the camera is zoomed (value > 0), the actual picture size may be smaller than picture size setting. Applications can check the actual picture size after picture is returned from PictureCallback. The preview size remains the same in zoom. Applications should check #isZoomSupported before using this method.
				 * @param value zoom value. The valid range is 0 to {@link #getMaxZoom}.
				 */
				public setZoom(value: number): void;
				/**
				 * Returns true if zoom is supported. Applications should call this before using other zoom methods.
				 */
				public isZoomSupported(): boolean;
				/**
				 * Gets the maximum zoom value allowed for snapshot. This is the maximum value that applications can set to #setZoom(int). Applications should call #isZoomSupported before using this method. This value may change in different preview size. Applications should call this again after setting preview size.
				 */
				public getMaxZoom(): number;
				/**
				 * Gets the zoom ratios of all zoom values. Applications should check #isZoomSupported before using this method.
				 */
				public getZoomRatios(): java.util.IList<java.lang.Integer>;
				/**
				 * Returns true if smooth zoom is supported. Applications should call this before using other smooth zoom methods.
				 */
				public isSmoothZoomSupported(): boolean;
				/**
				 * @param output focus distances in meters. output must be a float
				 */
				public getFocusDistances(output: native.Array<number>): void;
				/**
				 * Gets the maximum number of focus areas supported. This is the maximum length of the list in #setFocusAreas(List) and #getFocusAreas().
				 */
				public getMaxNumFocusAreas(): number;
				public getFocusAreas(): java.util.IList<android.hardware.Camera.Area>;
				/**
				 * Sets focus areas. See #getFocusAreas() for documentation.
				 * @param focusAreas the focus areas
				 */
				public setFocusAreas(focusAreas: java.util.IList<android.hardware.Camera.Area>): void;
				/**
				 * Gets the maximum number of metering areas supported. This is the maximum length of the list in #setMeteringAreas(List) and #getMeteringAreas().
				 */
				public getMaxNumMeteringAreas(): number;
				public getMeteringAreas(): java.util.IList<android.hardware.Camera.Area>;
				/**
				 * Sets metering areas. See #getMeteringAreas() for documentation.
				 * @param meteringAreas the metering areas
				 */
				public setMeteringAreas(meteringAreas: java.util.IList<android.hardware.Camera.Area>): void;
				/**
				 * Gets the maximum number of detected faces supported. This is the maximum length of the list returned from FaceDetectionListener. If the return value is 0, face detection of the specified type is not supported.
				 */
				public getMaxNumDetectedFaces(): number;
				/**
				 * Sets recording mode hint. This tells the camera that the intent of the application is to record videos android.media.MediaRecorder#start(), not to take still pictures #takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback). Using this hint can allow MediaRecorder.start() to start faster or with fewer glitches on output. This should be called before starting preview for the best result, but can be changed while the preview is active. The default value is false.
				 * @param hint true if the apps intend to record videos using
				 */
				public setRecordingHint(hint: boolean): void;
				public isVideoSnapshotSupported(): boolean;
				/**
				 * @param toggle Set to true to enable video stabilization, and false to
				 */
				public setVideoStabilization(toggle: boolean): void;
				/**
				 * Get the current state of video stabilization. See #setVideoStabilization for details of video stabilization.
				 */
				public getVideoStabilization(): boolean;
				/**
				 * Returns true if video stabilization is supported. See #setVideoStabilization for details of video stabilization.
				 */
				public isVideoStabilizationSupported(): boolean;
			}
			/**
			 * Callback interface used to notify on auto focus start and stop.
			 */
			interface IAutoFocusMoveCallback {
				/**
				 * Called when the camera auto focus starts or stops.
				 * @param start true if focus starts to move, false if focus stops to move
				 * @param camera the Camera service object
				 */
				onAutoFocusMoving(start: boolean, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface for camera error notification.
			 */
			export class ErrorCallback implements android.hardware.Camera.IErrorCallback {
				constructor(implementation: android.hardware.Camera.IErrorCallback);
				/**
				 * Callback for camera errors.
				 * @param error error code:
				 * @param camera the Camera service object
				 */
				public onError(error: number, camera: android.hardware.Camera): void;
			}
			/**
			 * Image size (width and height dimensions).
			 */
			export class Size extends java.lang.Object {
				/**
				 * width of the picture
				 */
				width: number;
				/**
				 * height of the picture
				 */
				height: number;
				static class: java.lang.Class<android.hardware.Camera.Size>;
				/**
				 * Compares obj to this size.
				 * @param obj the object to compare this size with.
				 */
				public equals(obj: any): boolean;
				public hashCode(): number;
			}
			/**
			 * Callback interface used to signal the moment of actual image capture.
			 */
			interface IShutterCallback {
				/**
				 * Called as near as possible to the moment when a photo is captured from the sensor. This is a good opportunity to play a shutter sound or give other feedback of camera operation. This may be some time after the photo was triggered, but some time before the actual data is available.
				 */
				onShutter(): void;
			}
			export class EventHandler extends android.os.Handler {
				static class: java.lang.Class<android.hardware.Camera.EventHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			/**
			 * Callback interface used to notify on completion of camera auto focus.
			 */
			interface IAutoFocusCallback {
				/**
				 * Called when the camera auto focus completes. If the camera does not support auto-focus and autoFocus is called, onAutoFocus will be called immediately with a fake value of <code>success</code> set to <code>true</code>.
				 * @param success true if focus was successful, false if otherwise
				 * @param camera the Camera service object
				 */
				onAutoFocus(success: boolean, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface used to deliver copies of preview frames as they are displayed.
			 */
			interface IPreviewCallback {
				/**
				 * Called as preview frames are displayed. This callback is invoked on the event thread #open(int) was called from.
				 * @param data the contents of the preview frame in the format defined
				 * @param camera the Camera service object.
				 */
				onPreviewFrame(data: native.Array<number>, camera: android.hardware.Camera): void;
			}
			/**
			 * Information about a camera
			 */
			export class CameraInfo extends java.lang.Object {
				constructor();
				/**
				 * The facing of the camera is opposite to that of the screen.
				 */
				static CAMERA_FACING_BACK: number;
				/**
				 * The facing of the camera is the same as that of the screen.
				 */
				static CAMERA_FACING_FRONT: number;
				/**
				 * The direction that the camera faces. It should be CAMERA_FACING_BACK or CAMERA_FACING_FRONT.
				 */
				facing: number;
				orientation: number;
				canDisableShutterSound: boolean;
				static class: java.lang.Class<android.hardware.Camera.CameraInfo>;
			}
			/**
			 * Callback interface for camera error notification.
			 */
			interface IErrorCallback {
				/**
				 * Callback for camera errors.
				 * @param error error code:
				 * @param camera the Camera service object
				 */
				onError(error: number, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface used to notify on auto focus start and stop.
			 */
			export class AutoFocusMoveCallback implements android.hardware.Camera.IAutoFocusMoveCallback {
				constructor(implementation: android.hardware.Camera.IAutoFocusMoveCallback);
				/**
				 * Called when the camera auto focus starts or stops.
				 * @param start true if focus starts to move, false if focus stops to move
				 * @param camera the Camera service object
				 */
				public onAutoFocusMoving(start: boolean, camera: android.hardware.Camera): void;
			}
			export class Area extends java.lang.Object {
				/**
				 * Create an area with specified rectangle and weight.
				 * @param rect the bounds of the area.
				 * @param weight the weight of the area.
				 */
				constructor(rect: android.graphics.Rect, weight: number);
				/**
				 * Bounds of the area. (-1000, -1000) represents the top-left of the camera field of view, and (1000, 1000) represents the bottom-right of the field of view. Setting bounds outside that range is not allowed. Bounds with zero or negative width or height are not allowed.
				 */
				rect: android.graphics.Rect;
				/**
				 * Weight of the area. The weight must range from 1 to 1000, and represents a weight for every pixel in the area. This means that a large metering area with the same weight as a smaller area will have more effect in the metering result. Metering areas can overlap and the driver will add the weights in the overlap region.
				 */
				weight: number;
				static class: java.lang.Class<android.hardware.Camera.Area>;
				/**
				 * Compares obj to this area.
				 * @param obj the object to compare this area with.
				 */
				public equals(obj: any): boolean;
			}
			/**
			 * Callback interface for face detected in the preview frame.
			 */
			interface IFaceDetectionListener {
				/**
				 * Notify the listener of the detected faces in the preview frame.
				 * @param faces The detected faces in a list
				 * @param camera The {@link Camera} service object
				 */
				onFaceDetection(faces: native.Array<android.hardware.Camera.Face>, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface for zoom changes during a smooth zoom operation.
			 */
			export class OnZoomChangeListener implements android.hardware.Camera.IOnZoomChangeListener {
				constructor(implementation: android.hardware.Camera.IOnZoomChangeListener);
				/**
				 * Called when the zoom value has changed during a smooth zoom.
				 * @param zoomValue the current zoom value. In smooth zoom mode, camera
				 * @param stopped whether smooth zoom is stopped. If the value is true,
				 * @param camera the Camera service object
				 */
				public onZoomChange(zoomValue: number, stopped: boolean, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface used to deliver copies of preview frames as they are displayed.
			 */
			export class PreviewCallback implements android.hardware.Camera.IPreviewCallback {
				constructor(implementation: android.hardware.Camera.IPreviewCallback);
				/**
				 * Called as preview frames are displayed. This callback is invoked on the event thread #open(int) was called from.
				 * @param data the contents of the preview frame in the format defined
				 * @param camera the Camera service object.
				 */
				public onPreviewFrame(data: native.Array<number>, camera: android.hardware.Camera): void;
			}
			/**
			 * Callback interface used to signal the moment of actual image capture.
			 */
			export class ShutterCallback implements android.hardware.Camera.IShutterCallback {
				constructor(implementation: android.hardware.Camera.IShutterCallback);
				/**
				 * Called as near as possible to the moment when a photo is captured from the sensor. This is a good opportunity to play a shutter sound or give other feedback of camera operation. This may be some time after the photo was triggered, but some time before the actual data is available.
				 */
				public onShutter(): void;
			}
			/**
			 * Information about a face identified through camera face detection.
			 */
			export class Face extends java.lang.Object {
				/**
				 * Create an empty face.
				 */
				constructor();
				/**
				 * Bounds of the face. (-1000, -1000) represents the top-left of the camera field of view, and (1000, 1000) represents the bottom-right of the field of view. For example, suppose the size of the viewfinder UI is 800x480. The rect passed from the driver is (-1000, -1000, 0, 0). The corresponding viewfinder rect should be (0, 0, 400, 240). It is guaranteed left < right and top < bottom. The coordinates can be smaller than -1000 or bigger than 1000. But at least one vertex will be within (-1000, -1000) and (1000, 1000).
				 */
				rect: android.graphics.Rect;
				score: number;
				/**
				 * An unique id per face while the face is visible to the tracker. If the face leaves the field-of-view and comes back, it will get a new id. This is an optional field, may not be supported on all devices. If not supported, id will always be set to -1. The optional fields are supported as a set. Either they are all valid, or none of them are.
				 */
				id: number;
				/**
				 * The coordinates of the center of the left eye. The coordinates are in the same space as the ones for #rect. This is an optional field, may not be supported on all devices. If not supported, the value will always be set to null. The optional fields are supported as a set. Either they are all valid, or none of them are.
				 */
				leftEye: android.graphics.Point;
				/**
				 * The coordinates of the center of the right eye. The coordinates are in the same space as the ones for #rect.This is an optional field, may not be supported on all devices. If not supported, the value will always be set to null. The optional fields are supported as a set. Either they are all valid, or none of them are.
				 */
				rightEye: android.graphics.Point;
				/**
				 * The coordinates of the center of the mouth. The coordinates are in the same space as the ones for #rect. This is an optional field, may not be supported on all devices. If not supported, the value will always be set to null. The optional fields are supported as a set. Either they are all valid, or none of them are.
				 */
				mouth: android.graphics.Point;
				static class: java.lang.Class<android.hardware.Camera.Face>;
			}
			/**
			 * Callback interface used to notify on completion of camera auto focus.
			 */
			export class AutoFocusCallback implements android.hardware.Camera.IAutoFocusCallback {
				constructor(implementation: android.hardware.Camera.IAutoFocusCallback);
				/**
				 * Called when the camera auto focus completes. If the camera does not support auto-focus and autoFocus is called, onAutoFocus will be called immediately with a fake value of <code>success</code> set to <code>true</code>.
				 * @param success true if focus was successful, false if otherwise
				 * @param camera the Camera service object
				 */
				public onAutoFocus(success: boolean, camera: android.hardware.Camera): void;
			}
		}
		/**
		 * Used for receiving notifications from the SensorManager when sensor values have changed. Use android.hardware.SensorEventListener SensorEventListener instead.
		 */
		export class SensorListener implements android.hardware.ISensorListener {
			constructor(implementation: android.hardware.ISensorListener);
			/**
			 * @param sensor The ID of the sensor being monitored
			 * @param values The new values for the sensor.
			 */
			public onSensorChanged(sensor: number, values: native.Array<number>): void;
			/**
			 * Called when the accuracy of a sensor has changed. See android.hardware.SensorManager SensorManager for details.
			 * @param sensor The ID of the sensor being monitored
			 * @param accuracy The new accuracy of this sensor.
			 */
			public onAccuracyChanged(sensor: number, accuracy: number): void;
		}
		export class SensorEvent extends java.lang.Object {
			values: native.Array<number>;
			/**
			 * The sensor that generated this event. See android.hardware.SensorManager SensorManager for details.
			 */
			sensor: android.hardware.Sensor;
			/**
			 * The accuracy of this event. See android.hardware.SensorManager SensorManager for details.
			 */
			accuracy: number;
			/**
			 * The time in nanosecond at which the event happened
			 */
			timestamp: number;
			static class: java.lang.Class<android.hardware.SensorEvent>;
		}
		/**
		 * Class representing a sensor. Use SensorManager#getSensorList to get the list of available Sensors.
		 */
		export class Sensor extends java.lang.Object {
			/**
			 * A constant describing an accelerometer sensor type. See android.hardware.SensorEvent#values SensorEvent.values for more details.
			 */
			static TYPE_ACCELEROMETER: number;
			/**
			 * A constant describing a magnetic field sensor type. See android.hardware.SensorEvent#values SensorEvent.values for more details.
			 */
			static TYPE_MAGNETIC_FIELD: number;
			/**
			 * A constant describing an orientation sensor type. See android.hardware.SensorEvent#values SensorEvent.values for more details.
			 */
			static TYPE_ORIENTATION: number;
			/**
			 * A constant describing a gyroscope sensor type
			 */
			static TYPE_GYROSCOPE: number;
			/**
			 * A constant describing a light sensor type. See android.hardware.SensorEvent#values SensorEvent.values for more details.
			 */
			static TYPE_LIGHT: number;
			/**
			 * A constant describing a pressure sensor type
			 */
			static TYPE_PRESSURE: number;
			/**
			 * A constant describing a temperature sensor type
			 */
			static TYPE_TEMPERATURE: number;
			/**
			 * A constant describing a proximity sensor type. See android.hardware.SensorEvent#values SensorEvent.values for more details.
			 */
			static TYPE_PROXIMITY: number;
			/**
			 * A constant describing a gravity sensor type. See android.hardware.SensorEvent SensorEvent for more details.
			 */
			static TYPE_GRAVITY: number;
			/**
			 * A constant describing a linear acceleration sensor type. See android.hardware.SensorEvent SensorEvent for more details.
			 */
			static TYPE_LINEAR_ACCELERATION: number;
			/**
			 * A constant describing a rotation vector sensor type. See android.hardware.SensorEvent SensorEvent for more details.
			 */
			static TYPE_ROTATION_VECTOR: number;
			/**
			 * A constant describing a relative humidity sensor type. See android.hardware.SensorEvent SensorEvent for more details.
			 */
			static TYPE_RELATIVE_HUMIDITY: number;
			/**
			 * A constant describing an ambient temperature sensor type
			 */
			static TYPE_AMBIENT_TEMPERATURE: number;
			static TYPE_ALL: number;
			static class: java.lang.Class<android.hardware.Sensor>;
			public getName(): string;
			public getVendor(): string;
			public getType(): number;
			public getVersion(): number;
			public getMaximumRange(): number;
			public getResolution(): number;
			public getPower(): number;
			public getMinDelay(): number;
			getHandle(): number;
			setRange(max: number, res: number): void;
			public toString(): string;
		}
	}
	export module app {
		export class ActivityManagerProxy extends java.lang.Object {
			constructor(remote: android.os.IIBinder);
			static class: java.lang.Class<android.app.ActivityManagerProxy>;
			public asBinder(): android.os.IIBinder;
			public startNextMatchingActivity(callingActivity: android.os.IIBinder, intent: android.content.Intent, options: android.os.Bundle): boolean;
			public finishActivity(token: android.os.IIBinder, resultCode: number, resultData: android.content.Intent): boolean;
			public finishSubActivity(token: android.os.IIBinder, resultWho: string, requestCode: number): void;
			public finishActivityAffinity(token: android.os.IIBinder): boolean;
			public willActivityBeVisible(token: android.os.IIBinder): boolean;
			public finishReceiver(who: android.os.IIBinder, resultCode: number, resultData: string, map: android.os.Bundle, abortBroadcast: boolean): void;
			public activityIdle(token: android.os.IIBinder, config: android.content.res.Configuration, stopProfiling: boolean): void;
			public activityResumed(token: android.os.IIBinder): void;
			public activityPaused(token: android.os.IIBinder): void;
			public activityStopped(token: android.os.IIBinder, state: android.os.Bundle, thumbnail: android.graphics.Bitmap, description: string): void;
			public activitySlept(token: android.os.IIBinder): void;
			public activityDestroyed(token: android.os.IIBinder): void;
			public getCallingPackage(token: android.os.IIBinder): string;
			public getCallingActivity(token: android.os.IIBinder): android.content.ComponentName;
			public getRecentTasks(maxNum: number, flags: number, userId: number): java.util.IList<android.app.ActivityManager.RecentTaskInfo>;
			public getTaskTopThumbnail(id: number): android.graphics.Bitmap;
			public getServices(maxNum: number, flags: number): java.util.IList<any>;
			public getProcessesInErrorState(): java.util.IList<android.app.ActivityManager.ProcessErrorStateInfo>;
			public getRunningAppProcesses(): java.util.IList<android.app.ActivityManager.RunningAppProcessInfo>;
			public getRunningExternalApplications(): java.util.IList<android.content.pm.ApplicationInfo>;
			public moveTaskToFront(task: number, flags: number, options: android.os.Bundle): void;
			public moveTaskToBack(task: number): void;
			public moveActivityTaskToBack(token: android.os.IIBinder, nonRoot: boolean): boolean;
			public moveTaskBackwards(task: number): void;
			public getTaskForActivity(token: android.os.IIBinder, onlyRoot: boolean): number;
			public reportThumbnail(token: android.os.IIBinder, thumbnail: android.graphics.Bitmap, description: string): void;
			public refContentProvider(connection: android.os.IIBinder, stable: number, unstable: number): boolean;
			public unstableProviderDied(connection: android.os.IIBinder): void;
			public removeContentProvider(connection: android.os.IIBinder, stable: boolean): void;
			public removeContentProviderExternal(name: string, token: android.os.IIBinder): void;
			public getRunningServiceControlPanel(service: android.content.ComponentName): android.app.PendingIntent;
			public stopServiceToken(className: android.content.ComponentName, token: android.os.IIBinder, startId: number): boolean;
			public setServiceForeground(className: android.content.ComponentName, token: android.os.IIBinder, id: number, notification: android.app.Notification, removeNotification: boolean): void;
			public publishService(token: android.os.IIBinder, intent: android.content.Intent, service: android.os.IIBinder): void;
			public unbindFinished(token: android.os.IIBinder, intent: android.content.Intent, doRebind: boolean): void;
			public serviceDoneExecuting(token: android.os.IIBinder, type: number, startId: number, res: number): void;
			public peekService(service: android.content.Intent, resolvedType: string): android.os.IIBinder;
			public bindBackupAgent(app: android.content.pm.ApplicationInfo, backupRestoreMode: number): boolean;
			public clearPendingBackup(): void;
			public backupAgentCreated(packageName: string, agent: android.os.IIBinder): void;
			public unbindBackupAgent(app: android.content.pm.ApplicationInfo): void;
			public getConfiguration(): android.content.res.Configuration;
			public updateConfiguration(values: android.content.res.Configuration): void;
			public setRequestedOrientation(token: android.os.IIBinder, requestedOrientation: number): void;
			public getRequestedOrientation(token: android.os.IIBinder): number;
			public getActivityClassForToken(token: android.os.IIBinder): android.content.ComponentName;
			public getPackageForToken(token: android.os.IIBinder): string;
			public handleIncomingUser(callingPid: number, callingUid: number, userId: number, allowAll: boolean, requireFull: boolean, name: string, callerPackage: string): number;
			public setProcessLimit(max: number): void;
			public getProcessLimit(): number;
			public setProcessForeground(token: android.os.IIBinder, pid: number, isForeground: boolean): void;
			public checkPermission(permission: string, pid: number, uid: number): number;
			public checkUriPermission(uri: android.net.Uri, pid: number, uid: number, mode: number): number;
			public getMemoryInfo(outInfo: android.app.ActivityManager.MemoryInfo): void;
			public unhandledBack(): void;
			public openContentUri(uri: android.net.Uri): android.os.ParcelFileDescriptor;
			public goingToSleep(): void;
			public wakingUp(): void;
			public setLockScreenShown(shown: boolean): void;
			public setDebugApp(packageName: string, waitForDebugger: boolean, persistent: boolean): void;
			public setAlwaysFinish(enabled: boolean): void;
			public enterSafeMode(): void;
			public killPids(pids: native.Array<number>, reason: string, secure: boolean): boolean;
			public killProcessesBelowForeground(reason: string): boolean;
			public startRunning(pkg: string, cls: string, action: string, indata: string): void;
			public testIsSystemReady(): boolean;
			public handleApplicationCrash(app: android.os.IIBinder, crashInfo: android.app.ApplicationErrorReport.CrashInfo): void;
			public handleApplicationWtf(app: android.os.IIBinder, tag: string, crashInfo: android.app.ApplicationErrorReport.CrashInfo): boolean;
			public signalPersistentProcesses(sig: number): void;
			public killBackgroundProcesses(packageName: string, userId: number): void;
			public killAllBackgroundProcesses(): void;
			public forceStopPackage(packageName: string, userId: number): void;
			public getMyMemoryState(outInfo: android.app.ActivityManager.RunningAppProcessInfo): void;
			public getDeviceConfigurationInfo(): android.content.pm.ConfigurationInfo;
			public profileControl(process: string, userId: number, start: boolean, path: string, fd: android.os.ParcelFileDescriptor, profileType: number): boolean;
			public shutdown(timeout: number): boolean;
			public stopAppSwitches(): void;
			public resumeAppSwitches(): void;
			public killApplicationWithAppId(pkg: string, appid: number): void;
			public closeSystemDialogs(reason: string): void;
			public getProcessMemoryInfo(pids: native.Array<number>): native.Array<android.os.Debug.MemoryInfo>;
			public killApplicationProcess(processName: string, uid: number): void;
			public overridePendingTransition(token: android.os.IIBinder, packageName: string, enterAnim: number, exitAnim: number): void;
			public isUserAMonkey(): boolean;
			public finishHeavyWeightApp(): void;
			public setImmersive(token: android.os.IIBinder, immersive: boolean): void;
			public isImmersive(token: android.os.IIBinder): boolean;
			public isTopActivityImmersive(): boolean;
			public crashApplication(uid: number, initialPid: number, packageName: string, message: string): void;
			public getProviderMimeType(uri: android.net.Uri, userId: number): string;
			public newUriPermissionOwner(name: string): android.os.IIBinder;
			public grantUriPermissionFromOwner(owner: android.os.IIBinder, fromUid: number, targetPkg: string, uri: android.net.Uri, mode: number): void;
			public revokeUriPermissionFromOwner(owner: android.os.IIBinder, uri: android.net.Uri, mode: number): void;
			public checkGrantUriPermission(callingUid: number, targetPkg: string, uri: android.net.Uri, modeFlags: number): number;
			public dumpHeap(process: string, userId: number, managed: boolean, path: string, fd: android.os.ParcelFileDescriptor): boolean;
			public getFrontActivityScreenCompatMode(): number;
			public setFrontActivityScreenCompatMode(mode: number): void;
			public getPackageScreenCompatMode(packageName: string): number;
			public setPackageScreenCompatMode(packageName: string, mode: number): void;
			public getPackageAskScreenCompat(packageName: string): boolean;
			public setPackageAskScreenCompat(packageName: string, ask: boolean): void;
			public switchUser(userid: number): boolean;
			public isUserRunning(userid: number, orStopping: boolean): boolean;
			public getRunningUserIds(): native.Array<number>;
			public removeSubTask(taskId: number, subTaskIndex: number): boolean;
			public removeTask(taskId: number, flags: number): boolean;
			public updatePersistentConfiguration(values: android.content.res.Configuration): void;
			public getProcessPss(pids: native.Array<number>): native.Array<number>;
			public showBootMessage(msg: string, always: boolean): void;
			public dismissKeyguardOnNextActivity(): void;
			public targetTaskAffinityMatchesActivity(token: android.os.IIBinder, destAffinity: string): boolean;
			public navigateUpTo(token: android.os.IIBinder, target: android.content.Intent, resultCode: number, resultData: android.content.Intent): boolean;
			public getLaunchedFromUid(activityToken: android.os.IIBinder): number;
			public requestBugReport(): void;
			public inputDispatchingTimedOut(pid: number, aboveSystem: boolean): any;
		}
		/**
		 * A subclass of Dialog that can display one, two or three buttons. If you only want to display a String in this dialog box, use the setMessage() method. If you want to display a more complex view, look up the FrameLayout called "custom" and add your view to it:
		 */
		export class AlertDialog extends android.app.Dialog implements android.content.IDialogInterface {
			/**
			 * Special theme constant for #AlertDialog(Context, int): use the traditional (pre-Holo) alert dialog theme.
			 */
			static THEME_TRADITIONAL: number;
			/**
			 * Special theme constant for #AlertDialog(Context, int): use the holographic alert theme with a dark background.
			 */
			static THEME_HOLO_DARK: number;
			/**
			 * Special theme constant for #AlertDialog(Context, int): use the holographic alert theme with a light background.
			 */
			static THEME_HOLO_LIGHT: number;
			/**
			 * Special theme constant for #AlertDialog(Context, int): use the device's default alert theme with a dark background.
			 */
			static THEME_DEVICE_DEFAULT_DARK: number;
			/**
			 * Special theme constant for #AlertDialog(Context, int): use the device's default alert theme with a dark background.
			 */
			static THEME_DEVICE_DEFAULT_LIGHT: number;
			static class: java.lang.Class<android.app.AlertDialog>;
			static resolveDialogTheme(context: android.content.Context, resid: number): number;
			/**
			 * Gets one of the buttons used in the dialog.
			 * @param whichButton The identifier of the button that should be returned.
			 */
			public getButton(whichButton: number): android.widget.Button;
			/**
			 * Gets the list view used in the dialog. 
			 */
			public getListView(): android.widget.ListView;
			public setTitle(title: string): void;
			/**
			 *  Builder#setCustomTitle(View)
			 */
			public setCustomTitle(customTitleView: android.view.View): void;
			public setMessage(message: string): void;
			/**
			 * Set the view to display in that dialog.
			 */
			public setView(view: android.view.View): void;
			/**
			 * Set the view to display in that dialog, specifying the spacing to appear around that view.
			 * @param view The view to show in the content area of the dialog
			 * @param viewSpacingLeft Extra space to appear to the left of {@code view}
			 * @param viewSpacingTop Extra space to appear above {@code view}
			 * @param viewSpacingRight Extra space to appear to the right of {@code view}
			 * @param viewSpacingBottom Extra space to appear below {@code view}
			 */
			public setView(view: android.view.View, viewSpacingLeft: number, viewSpacingTop: number, viewSpacingRight: number, viewSpacingBottom: number): void;
			/**
			 * Set a message to be sent when a button is pressed. 
			 * @param whichButton Which button to set the message for, can be one of
			 * @param text The text to display in positive button.
			 * @param msg The {@link Message} to be sent when clicked.
			 */
			public setButton(whichButton: number, text: string, msg: android.os.Message): void;
			/**
			 * Set a listener to be invoked when the positive button of the dialog is pressed. 
			 * @param whichButton Which button to set the listener on, can be one of
			 * @param text The text to display in positive button.
			 * @param listener The {@link DialogInterface.OnClickListener} to use.
			 */
			public setButton(whichButton: number, text: string, listener: android.content.DialogInterface.IOnClickListener): void;
			/**
			 *  Use #setButton(int, CharSequence, Message) with DialogInterface#BUTTON_POSITIVE.
			 */
			public setButton(text: string, msg: android.os.Message): void;
			/**
			 *  Use #setButton(int, CharSequence, Message) with DialogInterface#BUTTON_NEGATIVE.
			 */
			public setButton2(text: string, msg: android.os.Message): void;
			/**
			 *  Use #setButton(int, CharSequence, Message) with DialogInterface#BUTTON_NEUTRAL.
			 */
			public setButton3(text: string, msg: android.os.Message): void;
			/**
			 * Set a listener to be invoked when button 1 of the dialog is pressed. 
			 * @param text The text to display in button 1.
			 * @param listener The {@link DialogInterface.OnClickListener} to use.
			 */
			public setButton(text: string, listener: android.content.DialogInterface.IOnClickListener): void;
			/**
			 * Set a listener to be invoked when button 2 of the dialog is pressed.
			 * @param text The text to display in button 2.
			 * @param listener The {@link DialogInterface.OnClickListener} to use.
			 */
			public setButton2(text: string, listener: android.content.DialogInterface.IOnClickListener): void;
			/**
			 * Set a listener to be invoked when button 3 of the dialog is pressed.
			 * @param text The text to display in button 3.
			 * @param listener The {@link DialogInterface.OnClickListener} to use.
			 */
			public setButton3(text: string, listener: android.content.DialogInterface.IOnClickListener): void;
			/**
			 * Set resId to 0 if you don't want an icon.
			 * @param resId the resourceId of the drawable to use as the icon or 0
			 */
			public setIcon(resId: number): void;
			public setIcon(icon: android.graphics.drawable.Drawable): void;
			/**
			 * Set an icon as supplied by a theme attribute. e.g. android.R.attr.alertDialogIcon
			 * @param attrId ID of a theme attribute that points to a drawable resource.
			 */
			public setIconAttribute(attrId: number): void;
			public setInverseBackgroundForced(forceInverseBackground: boolean): void;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			cancel(): void;
			dismiss(): void;
			/**
			 * Set the title text for this dialog's window. The text is retrieved from the resources with the supplied identifier.
			 * @param titleId the title's text resource identifier
			 */
			setTitle(titleId: number): void;
		}
		export module AlertDialog {
			export class Builder extends java.lang.Object {
				/**
				 * Constructor using a context for this builder and the AlertDialog it creates.
				 */
				constructor(context: android.content.Context);
				/**
				 * Constructor using a context and theme for this builder and the AlertDialog it creates. The actual theme that an AlertDialog uses is a private implementation, however you can here supply either the name of an attribute in the theme from which to get the dialog's style (such as android.R.attr#alertDialogTheme or one of the constants AlertDialog#THEME_TRADITIONAL AlertDialog.THEME_TRADITIONAL, AlertDialog#THEME_HOLO_DARK AlertDialog.THEME_HOLO_DARK, or AlertDialog#THEME_HOLO_LIGHT AlertDialog.THEME_HOLO_LIGHT.
				 */
				constructor(context: android.content.Context, theme: number);
				static class: java.lang.Class<android.app.AlertDialog.Builder>;
				/**
				 * Returns a Context with the appropriate theme for dialogs created by this Builder. Applications should use this Context for obtaining LayoutInflaters for inflating views that will be used in the resulting dialogs, as it will cause views to be inflated with the correct theme.
				 */
				public getContext(): android.content.Context;
				/**
				 * Set the title using the given resource id.
				 */
				public setTitle(titleId: number): android.app.AlertDialog.Builder;
				/**
				 * Set the title displayed in the Dialog.
				 */
				public setTitle(title: string): android.app.AlertDialog.Builder;
				/**
				 * Set the title using the custom view customTitleView. The methods #setTitle(int) and #setIcon(int) should be sufficient for most titles, but this is provided if the title needs more customization. Using this will replace the title and icon set via the other methods. 
				 * @param customTitleView The custom view to use as the title.
				 */
				public setCustomTitle(customTitleView: android.view.View): android.app.AlertDialog.Builder;
				/**
				 * Set the message to display using the given resource id.
				 */
				public setMessage(messageId: number): android.app.AlertDialog.Builder;
				/**
				 * Set the message to display.
				 */
				public setMessage(message: string): android.app.AlertDialog.Builder;
				/**
				 * Set the resource id of the Drawable to be used in the title.
				 */
				public setIcon(iconId: number): android.app.AlertDialog.Builder;
				/**
				 * Set the Drawable to be used in the title.
				 */
				public setIcon(icon: android.graphics.drawable.Drawable): android.app.AlertDialog.Builder;
				/**
				 * Set an icon as supplied by a theme attribute. e.g. android.R.attr.alertDialogIcon
				 * @param attrId ID of a theme attribute that points to a drawable resource.
				 */
				public setIconAttribute(attrId: number): android.app.AlertDialog.Builder;
				/**
				 * Set a listener to be invoked when the positive button of the dialog is pressed.
				 * @param textId The resource id of the text to display in the positive button
				 * @param listener The {@link DialogInterface.OnClickListener} to use.
				 */
				public setPositiveButton(textId: number, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a listener to be invoked when the positive button of the dialog is pressed.
				 * @param text The text to display in the positive button
				 * @param listener The {@link DialogInterface.OnClickListener} to use.
				 */
				public setPositiveButton(text: string, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a listener to be invoked when the negative button of the dialog is pressed.
				 * @param textId The resource id of the text to display in the negative button
				 * @param listener The {@link DialogInterface.OnClickListener} to use.
				 */
				public setNegativeButton(textId: number, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a listener to be invoked when the negative button of the dialog is pressed.
				 * @param text The text to display in the negative button
				 * @param listener The {@link DialogInterface.OnClickListener} to use.
				 */
				public setNegativeButton(text: string, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a listener to be invoked when the neutral button of the dialog is pressed.
				 * @param textId The resource id of the text to display in the neutral button
				 * @param listener The {@link DialogInterface.OnClickListener} to use.
				 */
				public setNeutralButton(textId: number, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a listener to be invoked when the neutral button of the dialog is pressed.
				 * @param text The text to display in the neutral button
				 * @param listener The {@link DialogInterface.OnClickListener} to use.
				 */
				public setNeutralButton(text: string, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Sets whether the dialog is cancelable or not. Default is true.
				 */
				public setCancelable(cancelable: boolean): android.app.AlertDialog.Builder;
				/**
				 * Sets the callback that will be called if the dialog is canceled.
				 */
				public setOnCancelListener(onCancelListener: android.content.DialogInterface.IOnCancelListener): android.app.AlertDialog.Builder;
				/**
				 * Sets the callback that will be called when the dialog is dismissed for any reason.
				 */
				public setOnDismissListener(onDismissListener: android.content.DialogInterface.IOnDismissListener): android.app.AlertDialog.Builder;
				/**
				 * Sets the callback that will be called if a key is dispatched to the dialog.
				 */
				public setOnKeyListener(onKeyListener: android.content.DialogInterface.IOnKeyListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. This should be an array type i.e. R.array.foo
				 */
				public setItems(itemsId: number, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener.
				 */
				public setItems(items: native.Array<string>, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items, which are supplied by the given ListAdapter, to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. 
				 * @param adapter The {@link ListAdapter} to supply the list of items
				 * @param listener The listener that will be called when an item is clicked.
				 */
				public setAdapter(adapter: android.widget.IListAdapter, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items, which are supplied by the given Cursor, to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. 
				 * @param cursor The {@link Cursor} to supply the list of items
				 * @param listener The listener that will be called when an item is clicked.
				 * @param labelColumn The column name on the cursor containing the string to display
				 */
				public setCursor(cursor: android.database.ICursor, listener: android.content.DialogInterface.IOnClickListener, labelColumn: string): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. This should be an array type, e.g. R.array.foo. The list will have a check mark displayed to the right of the text for each checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog. 
				 * @param itemsId the resource id of an array i.e. R.array.foo
				 * @param checkedItems specifies which items are checked. It should be null in which case no
				 * @param listener notified when an item on the list is clicked. The dialog will not be
				 */
				public setMultiChoiceItems(itemsId: number, checkedItems: native.Array<boolean>, listener: android.content.DialogInterface.IOnMultiChoiceClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for each checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog. 
				 * @param items the text of the items to be displayed in the list.
				 * @param checkedItems specifies which items are checked. It should be null in which case no
				 * @param listener notified when an item on the list is clicked. The dialog will not be
				 */
				public setMultiChoiceItems(items: native.Array<string>, checkedItems: native.Array<boolean>, listener: android.content.DialogInterface.IOnMultiChoiceClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for each checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog. 
				 * @param cursor the cursor used to provide the items.
				 * @param isCheckedColumn specifies the column name on the cursor to use to determine
				 * @param labelColumn The column name on the cursor containing the string to display in the
				 * @param listener notified when an item on the list is clicked. The dialog will not be
				 */
				public setMultiChoiceItems(cursor: android.database.ICursor, isCheckedColumn: string, labelColumn: string, listener: android.content.DialogInterface.IOnMultiChoiceClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. This should be an array type i.e. R.array.foo The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog. 
				 * @param itemsId the resource id of an array i.e. R.array.foo
				 * @param checkedItem specifies which item is checked. If -1 no items are checked.
				 * @param listener notified when an item on the list is clicked. The dialog will not be
				 */
				public setSingleChoiceItems(itemsId: number, checkedItem: number, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog. 
				 * @param cursor the cursor to retrieve the items from.
				 * @param checkedItem specifies which item is checked. If -1 no items are checked.
				 * @param labelColumn The column name on the cursor containing the string to display in the
				 * @param listener notified when an item on the list is clicked. The dialog will not be
				 */
				public setSingleChoiceItems(cursor: android.database.ICursor, checkedItem: number, labelColumn: string, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog. 
				 * @param items the items to be displayed.
				 * @param checkedItem specifies which item is checked. If -1 no items are checked.
				 * @param listener notified when an item on the list is clicked. The dialog will not be
				 */
				public setSingleChoiceItems(items: native.Array<string>, checkedItem: number, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Set a list of items to be displayed in the dialog as the content, you will be notified of the selected item via the supplied listener. The list will have a check mark displayed to the right of the text for the checked item. Clicking on an item in the list will not dismiss the dialog. Clicking on a button will dismiss the dialog. 
				 * @param adapter The {@link ListAdapter} to supply the list of items
				 * @param checkedItem specifies which item is checked. If -1 no items are checked.
				 * @param listener notified when an item on the list is clicked. The dialog will not be
				 */
				public setSingleChoiceItems(adapter: android.widget.IListAdapter, checkedItem: number, listener: android.content.DialogInterface.IOnClickListener): android.app.AlertDialog.Builder;
				/**
				 * Sets a listener to be invoked when an item in the list is selected. 
				 * @param listener The listener to be invoked.
				 */
				public setOnItemSelectedListener(listener: android.widget.AdapterView.IOnItemSelectedListener): android.app.AlertDialog.Builder;
				/**
				 * Set a custom view to be the contents of the Dialog. If the supplied view is an instance of a ListView the light background will be used.
				 * @param view The view to use as the contents of the Dialog.
				 */
				public setView(view: android.view.View): android.app.AlertDialog.Builder;
				/**
				 * Sets the Dialog to use the inverse background, regardless of what the contents is. 
				 * @param useInverseBackground Whether to use the inverse background
				 */
				public setInverseBackgroundForced(useInverseBackground: boolean): android.app.AlertDialog.Builder;
				/**
				 * Creates a AlertDialog with the arguments supplied to this builder. It does not Dialog#show() the dialog. This allows the user to do any extra processing before displaying the dialog. Use #show() if you don't have any other processing to do and want this to be created and displayed.
				 */
				public create(): android.app.AlertDialog;
				/**
				 * Creates a AlertDialog with the arguments supplied to this builder and Dialog#show()'s the dialog.
				 */
				public show(): android.app.AlertDialog;
			}
		}
		/**
		 * Test which spams notification manager with a large number of notifications, for both stress and performance testing.
		 */
		export class NotificationStressTest extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.app.NotificationStressTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testNotificationStress(): void;
		}
		export module backup {
			/**
			 * Provides the structured interface through which a BackupAgent reads information from the backup data set, via its BackupAgent#onRestore(BackupDataInput, int, android.os.ParcelFileDescriptor) onRestore() method. The data is presented as a set of "entities," each representing one named record as previously stored by the agent's BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) onBackup() implementation. An entity is composed of a descriptive header plus a byte array that holds the raw data saved in the remote backup.
			 */
			export class BackupDataInput extends java.lang.Object {
				static class: java.lang.Class<android.app.backup.BackupDataInput>;
				/**
				 * Extract the next entity header from the restore stream. After this method return success, the #getKey() and #getDataSize() methods can be used to inspect the entity that is now available for processing.
				 */
				public readNextHeader(): boolean;
				/**
				 * Report the key associated with the current entity in the restore stream
				 */
				public getKey(): string;
				/**
				 * Report the size in bytes of the data associated with the current entity in the restore stream.
				 */
				public getDataSize(): number;
				/**
				 * Read a record's raw data from the restore stream. The record's header must first have been processed by the #readNextHeader() method. Multiple calls to this method may be made in order to process the data in chunks; not all of it must be read in a single call. Once all of the raw data for the current entity has been read, further calls to this method will simply return zero.
				 * @param data An allocated byte array of at least 'size' bytes
				 * @param offset Offset within the 'data' array at which the data will be placed
				 * @param size The number of bytes to read in this pass
				 */
				public readEntityData(data: native.Array<number>, offset: number, size: number): number;
				/**
				 * Consume the current entity's data without extracting it into a buffer for further processing. This allows a android.app.backup.BackupAgent to efficiently discard obsolete or otherwise uninteresting records during the restore operation. IOException if an error occurred when trying to read the restore data stream
				 */
				public skipEntityData(): void;
			}
			export module BackupDataInput {
				export class EntityHeader extends java.lang.Object {
					static class: java.lang.Class<android.app.backup.BackupDataInput.EntityHeader>;
				}
			}
			/**
			 * Provides an java.io.InputStream-like interface for accessing an entity's data during a restore operation. Used by BackupHelper classes within the BackupAgentHelper mechanism.
			 */
			export class BackupDataInputStream extends java.io.InputStream {
				static class: java.lang.Class<android.app.backup.BackupDataInputStream>;
				/**
				 * Read one byte of entity data from the stream, returning it as an integer value. If more than #size() bytes of data are read from the stream, the output of this method is undefined.
				 */
				public read(): number;
				/**
				 * Read up to size bytes of data into a byte array, beginning at position offset within the array.
				 * @param b Byte array into which the data will be read
				 * @param offset The data will be stored in {@code b} beginning at this index
				 * @param size The number of bytes to read in this operation. If insufficient
				 */
				public read(b: native.Array<number>, offset: number, size: number): number;
				/**
				 * Read enough entity data into a byte array to fill the array.
				 * @param b Byte array to fill with data from the stream. If the stream does not
				 */
				public read(b: native.Array<number>): number;
				/**
				 * Report the key string associated with this entity within the backup data set.
				 */
				public getKey(): string;
				/**
				 * Report the total number of bytes of data available for the current entity.
				 */
				public size(): number;
			}
			/**
			 * Base class for the android.app.backup.FileBackupHelper implementation.
			 */
			export class FileBackupHelperBase extends java.lang.Object {
				static class: java.lang.Class<android.app.backup.FileBackupHelperBase>;
				protected finalize(): void;
				/**
				 * Check the parameters so the native code doesn't have to throw all the exceptions since it's easier to do that from Java.
				 */
				static performBackup_checked(oldState: android.os.ParcelFileDescriptor, data: android.app.backup.BackupDataOutput, newState: android.os.ParcelFileDescriptor, files: native.Array<string>, keys: native.Array<string>): void;
				writeFile(f: java.io.File, input: android.app.backup.BackupDataInputStream): boolean;
				public writeNewStateDescription(fd: android.os.ParcelFileDescriptor): void;
				isKeyInList(key: string, list: native.Array<string>): boolean;
			}
			/**
			 * Callback class for receiving progress reports during a restore operation. These methods will all be called on your application's main thread.
			 */
			export class RestoreObserver extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.app.backup.RestoreObserver>;
				/**
				 * The restore operation has begun.
				 * @param numPackages The total number of packages being processed in
				 */
				public restoreStarting(numPackages: number): void;
				/**
				 * An indication of which package is being restored currently, out of the total number provided in the #restoreStarting(int) callback. This method is not guaranteed to be called: if the transport is unable to obtain data for one or more of the requested packages, no onUpdate() call will occur for those packages.
				 * @param nowBeingRestored The index, between 1 and the numPackages parameter
				 * @param currentPackage The name of the package now being restored.
				 */
				public onUpdate(nowBeingRestored: number, currentPackage: string): void;
				/**
				 * The restore process has completed. This method will always be called, even if no individual package restore operations were attempted.
				 * @param error Zero on success; a nonzero error code if the restore operation
				 */
				public restoreFinished(error: number): void;
			}
			/**
			 * Defines the calling interface that BackupAgentHelper uses when dispatching backup and restore operations to the installed helpers. Applications can define and install their own helpers as well as using those provided as part of the Android framework.
			 */
			export class BackupHelper implements android.app.backup.IBackupHelper {
				constructor(implementation: android.app.backup.IBackupHelper);
				/**
				 * Based on <code>oldState</code>, determine which of the files from the application's data directory need to be backed up, write them to <code>data</code>, and fill in <code>newState</code> with the state as it exists now.
				 * @param oldState An open, read-only {@link android.os.ParcelFileDescriptor} pointing to the
				 * @param data An open, read/write {@link BackupDataOutput}
				 * @param newState An open, read/write {@link android.os.ParcelFileDescriptor} pointing to an
				 */
				public performBackup(oldState: android.os.ParcelFileDescriptor, data: android.app.backup.BackupDataOutput, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * Called by android.app.backup.BackupAgentHelper BackupAgentHelper to restore a single entity from the restore data set. This method will be called for each entity in the data set that belongs to this handler. <p class="note"> <strong>Note:</strong> Do not close the <code>data</code> stream. Do not read more than android.app.backup.BackupDataInputStream#size() size() bytes from <code>data</code>.</p>
				 * @param data An open {@link BackupDataInputStream} from which the backup data can be read.
				 */
				public restoreEntity(data: android.app.backup.BackupDataInputStream): void;
				/**
				 * Called by android.app.backup.BackupAgentHelper BackupAgentHelper after a restore operation to write the backup state file corresponding to the data as processed by the helper. The data written here will be available to the helper during the next call to its #performBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor) performBackup() method.
				 * @param newState A {@link android.os.ParcelFileDescriptor} to which the new state will be
				 */
				public writeNewStateDescription(newState: android.os.ParcelFileDescriptor): void;
			}
			/**
			 * A helper class that can be used in conjunction with android.app.backup.BackupAgentHelper to manage the backup of android.content.SharedPreferences. Whenever a backup is performed, it will back up all named shared preferences that have changed since the last backup operation.
			 */
			export class SharedPreferencesBackupHelper extends android.app.backup.FileBackupHelperBase implements android.app.backup.IBackupHelper {
				/**
				 * Construct a helper for backing up and restoring the android.content.SharedPreferences under the given names.
				 * @param context The application {@link android.content.Context}
				 * @param prefGroups The names of each {@link android.content.SharedPreferences} file to
				 */
				constructor(context: android.content.Context, prefGroups: native.Array<string>);
				static class: java.lang.Class<android.app.backup.SharedPreferencesBackupHelper>;
				/**
				 * Backs up the configured android.content.SharedPreferences groups.
				 */
				public performBackup(oldState: android.os.ParcelFileDescriptor, data: android.app.backup.BackupDataOutput, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * Restores one entity from the restore data stream to its proper shared preferences file store.
				 */
				public restoreEntity(data: android.app.backup.BackupDataInputStream): void;
				/**
				 * Called by android.app.backup.BackupAgentHelper BackupAgentHelper after a restore operation to write the backup state file corresponding to the data as processed by the helper. The data written here will be available to the helper during the next call to its #performBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor) performBackup() method.
				 * @param newState A {@link android.os.ParcelFileDescriptor} to which the new state will be
				 */
				writeNewStateDescription(newState: android.os.ParcelFileDescriptor): void;
			}
			/**
			 * Defines the calling interface that BackupAgentHelper uses when dispatching backup and restore operations to the installed helpers. Applications can define and install their own helpers as well as using those provided as part of the Android framework.
			 */
			interface IBackupHelper {
				/**
				 * Based on <code>oldState</code>, determine which of the files from the application's data directory need to be backed up, write them to <code>data</code>, and fill in <code>newState</code> with the state as it exists now.
				 * @param oldState An open, read-only {@link android.os.ParcelFileDescriptor} pointing to the
				 * @param data An open, read/write {@link BackupDataOutput}
				 * @param newState An open, read/write {@link android.os.ParcelFileDescriptor} pointing to an
				 */
				performBackup(oldState: android.os.ParcelFileDescriptor, data: android.app.backup.BackupDataOutput, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * Called by android.app.backup.BackupAgentHelper BackupAgentHelper to restore a single entity from the restore data set. This method will be called for each entity in the data set that belongs to this handler. <p class="note"> <strong>Note:</strong> Do not close the <code>data</code> stream. Do not read more than android.app.backup.BackupDataInputStream#size() size() bytes from <code>data</code>.</p>
				 * @param data An open {@link BackupDataInputStream} from which the backup data can be read.
				 */
				restoreEntity(data: android.app.backup.BackupDataInputStream): void;
				/**
				 * Called by android.app.backup.BackupAgentHelper BackupAgentHelper after a restore operation to write the backup state file corresponding to the data as processed by the helper. The data written here will be available to the helper during the next call to its #performBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor) performBackup() method.
				 * @param newState A {@link android.os.ParcelFileDescriptor} to which the new state will be
				 */
				writeNewStateDescription(newState: android.os.ParcelFileDescriptor): void;
			}
			/**
			 * The interface through which an application interacts with the Android backup service to request backup and restore operations. Applications instantiate it using the constructor and issue calls through that instance.
			 */
			export class BackupManager extends java.lang.Object {
				/**
				 * Constructs a BackupManager object through which the application can communicate with the Android backup system.
				 * @param context The {@link android.content.Context} that was provided when
				 */
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.app.backup.BackupManager>;
				/**
				 * Notifies the Android backup system that your application wishes to back up new changes to its data. A backup operation using your application's android.app.backup.BackupAgent subclass will be scheduled when you call this method.
				 */
				public dataChanged(): void;
				/**
				 * Convenience method for callers who need to indicate that some other package needs a backup pass. This can be useful in the case of groups of packages that share a uid.
				 * @param packageName The package name identifying the application to back up.
				 */
				public static dataChanged(packageName: string): void;
				/**
				 * Restore the calling application from backup. The data will be restored from the current backup dataset if the application has stored data there, or from the dataset used during the last full device setup operation if the current backup dataset has no matching data. If no backup data exists for this application in either source, a nonzero value will be returned.
				 * @param observer The {@link RestoreObserver} to receive callbacks during the restore
				 */
				public requestRestore(observer: android.app.backup.RestoreObserver): number;
			}
			/**
			 * A helper class that can be used in conjunction with android.app.backup.BackupAgentHelper to manage the backup of a set of files. Whenever backup is performed, all files changed since the last backup will be saved in their entirety. When backup first occurs, every file in the list provided to #FileBackupHelper will be backed up.
			 */
			export class FileBackupHelper extends android.app.backup.FileBackupHelperBase implements android.app.backup.IBackupHelper {
				/**
				 * Construct a helper to manage backup/restore of entire files within the application's data directory hierarchy.
				 * @param context The backup agent's Context object
				 * @param files A list of the files to be backed up or restored.
				 */
				constructor(context: android.content.Context, files: native.Array<string>);
				static class: java.lang.Class<android.app.backup.FileBackupHelper>;
				/**
				 * Based on <code>oldState</code>, determine which of the files from the application's data directory need to be backed up, write them to the data stream, and fill in <code>newState</code> with the state as it exists now. When <code>oldState</code> is <code>null</code>, all the files will be backed up.
				 */
				public performBackup(oldState: android.os.ParcelFileDescriptor, data: android.app.backup.BackupDataOutput, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * Restore one record [representing a single file] from the restore dataset.
				 */
				public restoreEntity(data: android.app.backup.BackupDataInputStream): void;
				/**
				 * Called by android.app.backup.BackupAgentHelper BackupAgentHelper after a restore operation to write the backup state file corresponding to the data as processed by the helper. The data written here will be available to the helper during the next call to its #performBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor) performBackup() method.
				 * @param newState A {@link android.os.ParcelFileDescriptor} to which the new state will be
				 */
				writeNewStateDescription(newState: android.os.ParcelFileDescriptor): void;
			}
			/**
			 * A convenient BackupAgent wrapper class that automatically manages heterogeneous data sets within the backup data, each identified by a unique key prefix. When processing a backup or restore operation, the BackupAgentHelper dispatches to one or more installed BackupHelper objects, each of which is responsible for a defined subset of the data being processed.
			 */
			export class BackupAgentHelper extends android.app.backup.BackupAgent {
				constructor();
				static class: java.lang.Class<android.app.backup.BackupAgentHelper>;
				/**
				 * Run the backup process on each of the configured handlers.
				 */
				public onBackup(oldState: android.os.ParcelFileDescriptor, data: android.app.backup.BackupDataOutput, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * Run the restore process on each of the configured handlers.
				 */
				public onRestore(data: android.app.backup.BackupDataInput, appVersionCode: number, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * Add a helper for a given data subset to the agent's configuration. Each helper must have a prefix string that is unique within this backup agent's set of helpers.
				 * @param keyPrefix A string used to disambiguate the various helpers within this agent
				 * @param helper A backup/restore helper object to be invoked during backup and restore
				 */
				public addHelper(keyPrefix: string, helper: android.app.backup.IBackupHelper): void;
			}
			/**
			 * Provides the interface through which a BackupAgent writes entire files to a full backup data set, via its BackupAgent#onFullBackup(FullBackupDataOutput) method.
			 */
			export class FullBackupDataOutput extends java.lang.Object {
				static class: java.lang.Class<android.app.backup.FullBackupDataOutput>;
			}
			/**
			 * Provides the central interface between an application and Android's data backup infrastructure. An application that wishes to participate in the backup and restore mechanism will declare a subclass of android.app.backup.BackupAgent, implement the #onBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor) onBackup() and #onRestore(BackupDataInput, int, ParcelFileDescriptor) onRestore() methods, and provide the name of its backup agent class in its AndroidManifest.xml file via the <code> <a href="guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> tag's android:backupAgent attribute.
			 */
			export class BackupAgent extends android.content.ContextWrapper {
				constructor();
				/**
				 * During a full restore, indicates that the file system object being restored is an ordinary file.
				 */
				static TYPE_FILE: number;
				/**
				 * During a full restore, indicates that the file system object being restored is a directory.
				 */
				static TYPE_DIRECTORY: number;
				static class: java.lang.Class<android.app.backup.BackupAgent>;
				/**
				 * Provided as a convenience for agent implementations that need an opportunity to do one-time initialization before the actual backup or restore operation is begun.
				 */
				public onCreate(): void;
				/**
				 * Provided as a convenience for agent implementations that need to do some sort of shutdown process after backup or restore is completed.
				 */
				public onDestroy(): void;
				/**
				 * The application is being asked to write any data changed since the last time it performed a backup operation. The state data recorded during the last backup pass is provided in the <code>oldState</code> file descriptor. If <code>oldState</code> is <code>null</code>, no old state is available and the application should perform a full backup. In both cases, a representation of the final backup state after this pass should be written to the file pointed to by the file descriptor wrapped in <code>newState</code>.
				 * @param oldState An open, read-only ParcelFileDescriptor pointing to the
				 * @param data A structured wrapper around an open, read/write
				 * @param newState An open, read/write ParcelFileDescriptor pointing to an
				 */
				public onBackup(oldState: android.os.ParcelFileDescriptor, data: android.app.backup.BackupDataOutput, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * The application is being restored from backup and should replace any existing data with the contents of the backup. The backup data is provided through the <code>data</code> parameter. Once the restore is finished, the application should write a representation of the final state to the <code>newState</code> file descriptor.
				 * @param data A structured wrapper around an open, read-only
				 * @param appVersionCode The value of the <a
				 * @param newState An open, read/write ParcelFileDescriptor pointing to an
				 */
				public onRestore(data: android.app.backup.BackupDataInput, appVersionCode: number, newState: android.os.ParcelFileDescriptor): void;
				/**
				 * The default implementation backs up the entirety of the application's "owned" file system trees to the output.
				 */
				public onFullBackup(data: android.app.backup.FullBackupDataOutput): void;
				/**
				 * Write an entire file as part of a full-backup operation. The file's contents will be delivered to the backup destination along with the metadata necessary to place it with the proper location and permissions on the device where the data is restored.
				 * @param file The file to be backed up. The file must exist and be readable by
				 * @param output The destination to which the backed-up file data will be sent.
				 */
				public fullBackupFile(file: java.io.File, output: android.app.backup.FullBackupDataOutput): void;
				/**
				 * Handle the data delivered via the given file descriptor during a full restore operation. The agent is given the path to the file's original location as well as its size and metadata.
				 * @param data A read-only file descriptor from which the agent can read {@code size}
				 * @param size The number of bytes of file content to be restored to the given
				 * @param destination The File on disk to be restored with the given data.
				 * @param type The kind of file system object being restored. This will be either
				 * @param mode The access mode to be assigned to the destination after its data is
				 * @param mtime The modification time of the file when it was backed up, suitable to
				 */
				public onRestoreFile(data: android.os.ParcelFileDescriptor, size: number, destination: java.io.File, type: number, mode: number, mtime: number): void;
			}
			export module BackupAgent {
				export class BackupServiceBinder {
					static class: java.lang.Class<android.app.backup.BackupAgent.BackupServiceBinder>;
				}
			}
			/**
			 * Provides the structured interface through which a BackupAgent commits information to the backup data set, via its BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) onBackup() method. Data written for backup is presented as a set of "entities," key/value pairs in which each binary data record "value" is named with a string "key."
			 */
			export class BackupDataOutput extends java.lang.Object {
				static class: java.lang.Class<android.app.backup.BackupDataOutput>;
				/**
				 * Mark the beginning of one record in the backup data stream. This must be called before #writeEntityData.
				 * @param key A string key that uniquely identifies the data record within the application
				 * @param dataSize The size in bytes of this record's data. Passing a dataSize
				 */
				public writeEntityHeader(key: string, dataSize: number): number;
				/**
				 * Write a chunk of data under the current entity to the backup transport.
				 * @param data A raw data buffer to send
				 * @param size The number of bytes to be sent in this chunk
				 */
				public writeEntityData(data: native.Array<number>, size: number): number;
			}
		}
		/**
		 * Describes an application error.
		 */
		export class ApplicationErrorReport extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create an uninitialized instance of ApplicationErrorReport.
			 */
			constructor();
			/**
			 * Uninitialized error report.
			 */
			static TYPE_NONE: number;
			/**
			 * An error report about an application crash.
			 */
			static TYPE_CRASH: number;
			/**
			 * An error report about an application that's not responding.
			 */
			static TYPE_ANR: number;
			/**
			 * An error report about an application that's consuming too much battery.
			 */
			static TYPE_BATTERY: number;
			/**
			 * A report from a user to a developer about a running service that the user doesn't think should be running.
			 */
			static TYPE_RUNNING_SERVICE: number;
			/**
			 * Type of this report. Can be one of #TYPE_NONE, #TYPE_CRASH, #TYPE_ANR, #TYPE_BATTERY, or #TYPE_RUNNING_SERVICE.
			 */
			type: number;
			/**
			 * Package name of the application.
			 */
			packageName: string;
			/**
			 * Package name of the application which installed the application this report pertains to. This identifies which market the application came from.
			 */
			installerPackageName: string;
			/**
			 * Process name of the application.
			 */
			processName: string;
			/**
			 * Time at which the error occurred.
			 */
			time: number;
			/**
			 * Set if the app is on the system image.
			 */
			systemApp: boolean;
			/**
			 * If this report is of type #TYPE_CRASH, contains an instance of CrashInfo describing the crash; otherwise null.
			 */
			crashInfo: android.app.ApplicationErrorReport.CrashInfo;
			/**
			 * If this report is of type #TYPE_ANR, contains an instance of AnrInfo describing the ANR; otherwise null.
			 */
			anrInfo: android.app.ApplicationErrorReport.AnrInfo;
			/**
			 * If this report is of type #TYPE_BATTERY, contains an instance of BatteryInfo; otherwise null.
			 */
			batteryInfo: android.app.ApplicationErrorReport.BatteryInfo;
			/**
			 * If this report is of type #TYPE_RUNNING_SERVICE, contains an instance of RunningServiceInfo; otherwise null.
			 */
			runningServiceInfo: android.app.ApplicationErrorReport.RunningServiceInfo;
			static CREATOR: android.os.Parcelable.ICreator<android.app.ApplicationErrorReport>;
			static class: java.lang.Class<android.app.ApplicationErrorReport>;
			public static getErrorReportReceiver(context: android.content.Context, packageName: string, appFlags: number): android.content.ComponentName;
			/**
			 * Return activity in receiverPackage that handles ACTION_APP_ERROR.
			 * @param pm PackageManager instance
			 * @param errorPackage package which caused the error
			 * @param receiverPackage candidate package to receive the error
			 */
			static getErrorReportReceiver(pm: android.content.pm.PackageManager, errorPackage: string, receiverPackage: string): android.content.ComponentName;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public readFromParcel(input: android.os.Parcel): void;
			public describeContents(): number;
			/**
			 * Dump the report to a Printer.
			 */
			public dump(pw: android.util.IPrinter, prefix: string): void;
		}
		export module ApplicationErrorReport {
			/**
			 * Describes an application crash.
			 */
			export class CrashInfo extends java.lang.Object {
				/**
				 * Create an uninitialized instance of CrashInfo.
				 */
				constructor();
				/**
				 * Create an instance of CrashInfo initialized from an exception.
				 */
				constructor(tr: java.lang.Throwable);
				/**
				 * Create an instance of CrashInfo initialized from a Parcel.
				 */
				constructor(input: android.os.Parcel);
				/**
				 * Class name of the exception that caused the crash.
				 */
				exceptionClassName: string;
				/**
				 * Message stored in the exception.
				 */
				exceptionMessage: string;
				/**
				 * File which the exception was thrown from.
				 */
				throwFileName: string;
				/**
				 * Class which the exception was thrown from.
				 */
				throwClassName: string;
				/**
				 * Method which the exception was thrown from.
				 */
				throwMethodName: string;
				/**
				 * Line number the exception was thrown from.
				 */
				throwLineNumber: number;
				/**
				 * Stack trace.
				 */
				stackTrace: string;
				static class: java.lang.Class<android.app.ApplicationErrorReport.CrashInfo>;
				/**
				 * Save a CrashInfo instance to a parcel.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Dump a CrashInfo instance to a Printer.
				 */
				public dump(pw: android.util.IPrinter, prefix: string): void;
			}
			/**
			 * Describes an application not responding error.
			 */
			export class AnrInfo extends java.lang.Object {
				/**
				 * Create an uninitialized instance of AnrInfo.
				 */
				constructor();
				/**
				 * Create an instance of AnrInfo initialized from a Parcel.
				 */
				constructor(input: android.os.Parcel);
				/**
				 * Activity name.
				 */
				activity: string;
				/**
				 * Description of the operation that timed out.
				 */
				cause: string;
				/**
				 * Additional info, including CPU stats.
				 */
				info: string;
				static class: java.lang.Class<android.app.ApplicationErrorReport.AnrInfo>;
				/**
				 * Save an AnrInfo instance to a parcel.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Dump an AnrInfo instance to a Printer.
				 */
				public dump(pw: android.util.IPrinter, prefix: string): void;
			}
			/**
			 * Describes a battery usage report.
			 */
			export class BatteryInfo extends java.lang.Object {
				/**
				 * Create an uninitialized instance of BatteryInfo.
				 */
				constructor();
				/**
				 * Create an instance of BatteryInfo initialized from a Parcel.
				 */
				constructor(input: android.os.Parcel);
				/**
				 * Percentage of the battery that was used up by the process.
				 */
				usagePercent: number;
				/**
				 * Duration in microseconds over which the process used the above percentage of battery.
				 */
				durationMicros: number;
				/**
				 * Dump of various info impacting battery use.
				 */
				usageDetails: string;
				/**
				 * Checkin details.
				 */
				checkinDetails: string;
				static class: java.lang.Class<android.app.ApplicationErrorReport.BatteryInfo>;
				/**
				 * Save a BatteryInfo instance to a parcel.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Dump a BatteryInfo instance to a Printer.
				 */
				public dump(pw: android.util.IPrinter, prefix: string): void;
			}
			/**
			 * Describes a running service report.
			 */
			export class RunningServiceInfo extends java.lang.Object {
				/**
				 * Create an uninitialized instance of RunningServiceInfo.
				 */
				constructor();
				/**
				 * Create an instance of RunningServiceInfo initialized from a Parcel.
				 */
				constructor(input: android.os.Parcel);
				/**
				 * Duration in milliseconds that the service has been running.
				 */
				durationMillis: number;
				/**
				 * Dump of debug information about the service.
				 */
				serviceDetails: string;
				static class: java.lang.Class<android.app.ApplicationErrorReport.RunningServiceInfo>;
				/**
				 * Save a RunningServiceInfo instance to a parcel.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				/**
				 * Dump a BatteryInfo instance to a Printer.
				 */
				public dump(pw: android.util.IPrinter, prefix: string): void;
			}
		}
		export class RemoteServiceException extends android.util.AndroidRuntimeException {
			constructor(msg: string);
			static class: java.lang.Class<android.app.RemoteServiceException>;
		}
		/**
		 * To launch this test from the command line: adb shell am instrument -w \ -e class com.android.unit_tests.SearchablesTest \ com.android.unit_tests/android.test.InstrumentationTestRunner
		 */
		export class SearchablesTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.app.SearchablesTest>;
			MyMockPackageManager: {
	new (realPM: android.content.pm.PackageManager): android.app.SearchablesTest.MyMockPackageManager;
};
			/**
			 * Test that non-searchable activities return no searchable info (this would typically trigger the use of the default searchable e.g. contacts)
			 */
			public testNonSearchable(): void;
			/**
			 * This is an attempt to run the searchable info list with a mocked context. Here are some things I'd like to test.
			 */
			public testSearchablesListReal(): void;
			/**
			 * This round of tests confirms good operations with "zero" searchables found
			 */
			public testSearchablesListEmpty(): void;
		}
		export module SearchablesTest {
			/**
			 * This is a mock for package manager. Used to perform a true unit test on SearchableInfo. 
			 */
			export class MyMockPackageManager extends android.test.mock.MockPackageManager {
				static SEARCHABLES_PASSTHROUGH: number;
				static SEARCHABLES_MOCK_ZERO: number;
				static SEARCHABLES_MOCK_ONEGOOD: number;
				static SEARCHABLES_MOCK_ONEGOOD_ONEBAD: number;
				static class: java.lang.Class<android.app.SearchablesTest.MyMockPackageManager>;
				/**
				 * Set the mode for various tests.
				 */
				public setSearchablesMode(newMode: number): void;
				/**
				 * Find activities that support a given intent. Retrieve all activities that can be performed for the given intent. 
				 * @param intent The desired intent as per resolveActivity().
				 * @param flags Additional option flags. The most important is
				 */
				public queryIntentActivities(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				public resolveActivity(intent: android.content.Intent, flags: number): android.content.pm.ResolveInfo;
				/**
				 * Retrieve an XML file from a package. This is a low-level API used to retrieve XML meta data. 
				 * @param packageName The name of the package that this xml is coming from.
				 * @param resid The resource identifier of the desired xml. Can not be 0.
				 * @param appInfo Overall information about <var>packageName</var>. This
				 */
				public getXml(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): android.content.res.IXmlResourceParser;
				/**
				 * Find a single content provider by its base path name. 
				 * @param name The name of the provider to find.
				 * @param flags Additional option flags. Currently should always be 0.
				 */
				public resolveContentProvider(name: string, flags: number): android.content.pm.ProviderInfo;
				/**
				 * Get the activity information for a particular activity.
				 * @param name The name of the activity to find.
				 * @param flags Additional option flags.
				 */
				public getActivityInfo(name: android.content.ComponentName, flags: number): android.content.pm.ActivityInfo;
				public checkPermission(permName: string, pkgName: string): number;
			}
			/**
			 * This is a mock for context. Used to perform a true unit test on SearchableInfo. 
			 */
			export class MyMockContext extends android.test.mock.MockContext {
				static class: java.lang.Class<android.app.SearchablesTest.MyMockContext>;
				/**
				 * Resources. Pass through for now.
				 */
				public getResources(): android.content.res.Resources;
				/**
				 * Package manager. Pass through for now.
				 */
				public getPackageManager(): android.content.pm.PackageManager;
				/**
				 * Package manager. Pass through for now.
				 */
				public createPackageContext(packageName: string, flags: number): android.content.Context;
				/**
				 * Message broadcast. Pass through for now.
				 */
				public sendBroadcast(intent: android.content.Intent): void;
				sendBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			}
		}
		/**
		 * A fragment that displays a dialog window, floating on top of its activity's window. This fragment contains a Dialog object, which it displays as appropriate based on the fragment's state. Control of the dialog (deciding when to show, hide, dismiss it) should be done through the API here, not with direct calls on the dialog.
		 */
		export class DialogFragment extends android.app.Fragment implements android.content.DialogInterface.IOnCancelListener, android.content.DialogInterface.IOnDismissListener {
			constructor();
			/**
			 * Style for #setStyle(int, int): a basic, normal dialog.
			 */
			static STYLE_NORMAL: number;
			/**
			 * Style for #setStyle(int, int): don't include a title area.
			 */
			static STYLE_NO_TITLE: number;
			/**
			 * Style for #setStyle(int, int): don't draw any frame at all; the view hierarchy returned by #onCreateView is entirely responsible for drawing the dialog.
			 */
			static STYLE_NO_FRAME: number;
			/**
			 * Style for #setStyle(int, int): like #STYLE_NO_FRAME, but also disables all input to the dialog. The user can not touch it, and its window will not receive input focus.
			 */
			static STYLE_NO_INPUT: number;
			static class: java.lang.Class<android.app.DialogFragment>;
			/**
			 * Call to customize the basic appearance and behavior of the fragment's dialog. This can be used for some common dialog behaviors, taking care of selecting flags, theme, and other options for you. The same effect can be achieve by manually setting Dialog and Window attributes yourself. Calling this after the fragment's Dialog is created will have no effect.
			 * @param style Selects a standard style: may be {@link #STYLE_NORMAL},
			 * @param theme Optional custom theme. If 0, an appropriate theme (based
			 */
			public setStyle(style: number, theme: number): void;
			/**
			 * Display the dialog, adding the fragment to the given FragmentManager. This is a convenience for explicitly creating a transaction, adding the fragment to it with the given tag, and committing it. This does <em>not</em> add the transaction to the back stack. When the fragment is dismissed, a new transaction will be executed to remove it from the activity.
			 * @param manager The FragmentManager this fragment will be added to.
			 * @param tag The tag for this fragment, as per
			 */
			public show(manager: android.app.FragmentManager, tag: string): void;
			/**
			 * Display the dialog, adding the fragment using an existing transaction and then committing the transaction.
			 * @param transaction An existing transaction in which to add the fragment.
			 * @param tag The tag for this fragment, as per
			 */
			public show(transaction: android.app.FragmentTransaction, tag: string): number;
			/**
			 * Dismiss the fragment and its dialog. If the fragment was added to the back stack, all back stack state up to and including this entry will be popped. Otherwise, a new transaction will be committed to remove the fragment.
			 */
			public dismiss(): void;
			/**
			 * Version of #dismiss() that uses FragmentTransaction#commitAllowingStateLoss() FragmentTransaction.commitAllowingStateLoss(). See linked documentation for further details.
			 */
			public dismissAllowingStateLoss(): void;
			dismissInternal(allowStateLoss: boolean): void;
			public getDialog(): android.app.Dialog;
			public getTheme(): number;
			/**
			 * Control whether the shown Dialog is cancelable. Use this instead of directly calling Dialog#setCancelable(boolean) Dialog.setCancelable(boolean), because DialogFragment needs to change its behavior based on this.
			 * @param cancelable If true, the dialog is cancelable. The default
			 */
			public setCancelable(cancelable: boolean): void;
			/**
			 * Return the current value of #setCancelable(boolean).
			 */
			public isCancelable(): boolean;
			/**
			 * Controls whether this fragment should be shown in a dialog. If not set, no Dialog will be created in #onActivityCreated(Bundle), and the fragment's view hierarchy will thus not be added to it. This allows you to instead use it as a normal fragment (embedded inside of its activity).
			 * @param showsDialog If true, the fragment will be displayed in a Dialog.
			 */
			public setShowsDialog(showsDialog: boolean): void;
			/**
			 * Return the current value of #setShowsDialog(boolean).
			 */
			public getShowsDialog(): boolean;
			public onAttach(activity: android.app.Activity): void;
			public onDetach(): void;
			public onCreate(savedInstanceState: android.os.Bundle): void;
			/**
			 * Override to build your own custom Dialog container. This is typically used to show an AlertDialog instead of a generic Dialog; when doing so, #onCreateView(LayoutInflater, ViewGroup, Bundle) does not need to be implemented since the AlertDialog takes care of its own content. 
			 * @param savedInstanceState The last saved instance state of the Fragment,
			 */
			public onCreateDialog(savedInstanceState: android.os.Bundle): android.app.Dialog;
			public onCancel(dialog: android.content.IDialogInterface): void;
			public onDismiss(dialog: android.content.IDialogInterface): void;
			public onActivityCreated(savedInstanceState: android.os.Bundle): void;
			public onStart(): void;
			public onSaveInstanceState(outState: android.os.Bundle): void;
			public onStop(): void;
			/**
			 * Remove dialog.
			 */
			public onDestroyView(): void;
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
		}
		/**
		 * An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI with #setContentView. While activities are often presented to the user as full-screen windows, they can also be used in other ways: as floating windows (via a theme with android.R.attr#windowIsFloating set) or embedded inside of another activity (using ActivityGroup).
		 */
		export class Activity extends android.view.ContextThemeWrapper implements android.view.LayoutInflater.IFactory2, android.view.Window.ICallback, android.view.KeyEvent.ICallback, android.view.View.IOnCreateContextMenuListener, android.content.IComponentCallbacks2 {
			constructor();
			/**
			 * Standard activity result: operation canceled.
			 */
			static RESULT_CANCELED: number;
			/**
			 * Standard activity result: operation succeeded.
			 */
			static RESULT_OK: number;
			/**
			 * Start of user-defined activity results.
			 */
			static RESULT_FIRST_USER: number;
			/**
			 * Use with #setDefaultKeyMode to turn off default handling of keys. #setDefaultKeyMode
			 */
			static DEFAULT_KEYS_DISABLE: number;
			/**
			 * Use with #setDefaultKeyMode to launch the dialer during default key handling. #setDefaultKeyMode
			 */
			static DEFAULT_KEYS_DIALER: number;
			/**
			 * Use with #setDefaultKeyMode to execute a menu shortcut in default key handling. 
			 */
			static DEFAULT_KEYS_SHORTCUT: number;
			/**
			 * Use with #setDefaultKeyMode to specify that unhandled keystrokes will start an application-defined search. (If the application or activity does not actually define a search, the the keys will be ignored.) 
			 */
			static DEFAULT_KEYS_SEARCH_LOCAL: number;
			/**
			 * Use with #setDefaultKeyMode to specify that unhandled keystrokes will start a global search (typically web search, but some platforms may define alternate methods for global search) 
			 */
			static DEFAULT_KEYS_SEARCH_GLOBAL: number;
			static class: java.lang.Class<android.app.Activity>;
			/**
			 * Return the intent that started this activity.
			 */
			public getIntent(): android.content.Intent;
			/**
			 * @param newIntent The new Intent object to return from getIntent
			 */
			public setIntent(newIntent: android.content.Intent): void;
			/**
			 * Return the application that owns this activity.
			 */
			public getApplication(): android.app.Application;
			/**
			 * Is this activity embedded inside of another activity?
			 */
			public isChild(): boolean;
			/**
			 * Return the parent activity if this view is an embedded child.
			 */
			public getParent(): android.app.Activity;
			/**
			 * Retrieve the window manager for showing custom windows.
			 */
			public getWindowManager(): android.view.IWindowManager;
			/**
			 * Retrieve the current android.view.Window for the activity. This can be used to directly access parts of the Window API that are not available through Activity/Screen. 
			 */
			public getWindow(): android.view.Window;
			/**
			 * Return the LoaderManager for this fragment, creating it if needed.
			 */
			public getLoaderManager(): android.app.LoaderManager;
			getLoaderManager(who: string, started: boolean, create: boolean): android.app.LoaderManagerImpl;
			/**
			 * Calls android.view.Window#getCurrentFocus on the Window of this Activity to return the currently focused view. 
			 */
			public getCurrentFocus(): android.view.View;
			/**
			 * Called when the activity is starting. This is where most initialization should go: calling #setContentView(int) to inflate the activity's UI, using #findViewById to programmatically interact with widgets in the UI, calling #managedQuery(android.net.Uri , String[], String, String[], String) to retrieve cursors for data being displayed, etc. 
			 * @param savedInstanceState If the activity is being re-initialized after
			 */
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			/**
			 * The hook for ActivityThread to restore the state of this activity.
			 * @param savedInstanceState contains the saved state
			 */
			performRestoreInstanceState(savedInstanceState: android.os.Bundle): void;
			/**
			 * This method is called after #onStart when the activity is being re-initialized from a previously saved state, given here in <var>savedInstanceState</var>. Most implementations will simply use #onCreate to restore their state, but it is sometimes convenient to do it here after all of the initialization has been done or to allow subclasses to decide whether to use your default implementation. The default implementation of this method performs a restore of any view state that had previously been frozen by #onSaveInstanceState. 
			 * @param savedInstanceState the data most recently supplied in {@link #onSaveInstanceState}.
			 */
			protected onRestoreInstanceState(savedInstanceState: android.os.Bundle): void;
			/**
			 * Called when activity start-up is complete (after #onStart and #onRestoreInstanceState have been called). Applications will generally not implement this method; it is intended for system classes to do final initialization after application code has run. 
			 * @param savedInstanceState If the activity is being re-initialized after
			 */
			protected onPostCreate(savedInstanceState: android.os.Bundle): void;
			/**
			 * Called after #onCreate &mdash; or after #onRestart when the activity had been stopped, but is now again being displayed to the user. It will be followed by #onResume.
			 */
			protected onStart(): void;
			/**
			 * Called after #onStop when the current activity is being re-displayed to the user (the user has navigated back to it). It will be followed by #onStart and then #onResume.
			 */
			protected onRestart(): void;
			/**
			 * Called after #onRestoreInstanceState, #onRestart, or #onPause, for your activity to start interacting with the user. This is a good place to begin animations, open exclusive-access devices (such as the camera), etc.
			 */
			protected onResume(): void;
			/**
			 * Called when activity resume is complete (after #onResume has been called). Applications will generally not implement this method; it is intended for system classes to do final setup after application resume code has run. 
			 */
			protected onPostResume(): void;
			/**
			 * This is called for activities that set launchMode to "singleTop" in their package, or if a client used the Intent#FLAG_ACTIVITY_SINGLE_TOP flag when calling #startActivity. In either case, when the activity is re-launched while at the top of the activity stack instead of a new instance of the activity being started, onNewIntent() will be called on the existing instance with the Intent that was used to re-launch it. 
			 * @param intent The new intent that was started for the activity.
			 */
			protected onNewIntent(intent: android.content.Intent): void;
			/**
			 * The hook for ActivityThread to save the state of this activity.
			 * @param outState The bundle to save the state to.
			 */
			performSaveInstanceState(outState: android.os.Bundle): void;
			/**
			 * Called to retrieve per-instance state from an activity before being killed so that the state can be restored in #onCreate or #onRestoreInstanceState (the Bundle populated by this method will be passed to both).
			 * @param outState Bundle in which to place your saved state.
			 */
			protected onSaveInstanceState(outState: android.os.Bundle): void;
			/**
			 * Called as part of the activity lifecycle when an activity is going into the background, but has not (yet) been killed. The counterpart to #onResume.
			 */
			protected onPause(): void;
			/**
			 * Called as part of the activity lifecycle when an activity is about to go into the background as the result of user choice. For example, when the user presses the Home key, #onUserLeaveHint will be called, but when an incoming phone call causes the in-call Activity to be automatically brought to the foreground, #onUserLeaveHint will not be called on the activity being interrupted. In cases when it is invoked, this method is called right before the activity's #onPause callback. 
			 */
			protected onUserLeaveHint(): void;
			/**
			 * Generate a new thumbnail for this activity. This method is called before pausing the activity, and should draw into <var>outBitmap</var> the imagery for the desired thumbnail in the dimensions of that bitmap. It can use the given <var>canvas</var>, which is configured to draw into the bitmap, for rendering if desired. 
			 * @param outBitmap The bitmap to contain the thumbnail.
			 * @param canvas Can be used to render into the bitmap.
			 */
			public onCreateThumbnail(outBitmap: android.graphics.Bitmap, canvas: android.graphics.Canvas): boolean;
			/**
			 * Generate a new description for this activity. This method is called before pausing the activity and can, if desired, return some textual description of its current state to be displayed to the user. 
			 */
			public onCreateDescription(): string;
			/**
			 * Called when you are no longer visible to the user. You will next receive either #onRestart, #onDestroy, or nothing, depending on later user activity. 
			 */
			protected onStop(): void;
			/**
			 * Perform any final cleanup before an activity is destroyed. This can happen either because the activity is finishing (someone called #finish on it, or because the system is temporarily destroying this instance of the activity to save space. You can distinguish between these two scenarios with the #isFinishing method. 
			 */
			protected onDestroy(): void;
			/**
			 * Called by the system when the device configuration changes while your activity is running. Note that this will <em>only</em> be called if you have selected configurations you would like to handle with the android.R.attr#configChanges attribute in your manifest. If any configuration change occurs that is not selected to be reported by that attribute, then instead of reporting it the system will stop and restart the activity (to have it launched with the new configuration). 
			 * @param newConfig The new device configuration.
			 */
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * If this activity is being destroyed because it can not handle a configuration parameter being changed (and thus its #onConfigurationChanged(Configuration) method is <em>not</em> being called), then you can use this method to discover the set of changes that have occurred while in the process of being destroyed. Note that there is no guarantee that these will be accurate (other changes could have happened at any time), so you should only use this as an optimization hint. 
			 */
			public getChangingConfigurations(): number;
			/**
			 * Retrieve the non-configuration instance data that was previously returned by #onRetainNonConfigurationInstance(). This will be available from the initial #onCreate and #onStart calls to the new instance, allowing you to extract any useful dynamic state from the previous instance. 
			 */
			public getLastNonConfigurationInstance(): any;
			/**
			 * Called by the system, as part of destroying an activity due to a configuration change, when it is known that a new instance will immediately be created for the new configuration. You can return any object you like here, including the activity instance itself, which can later be retrieved by calling #getLastNonConfigurationInstance() in the new activity instance. <em>If you are targeting android.os.Build.VERSION_CODES#HONEYCOMB or later, consider instead using a Fragment with Fragment#setRetainInstance(boolean) Fragment.setRetainInstance(boolean.</em>
			 */
			public onRetainNonConfigurationInstance(): any;
			/**
			 * Retrieve the non-configuration instance data that was previously returned by #onRetainNonConfigurationChildInstances(). This will be available from the initial #onCreate and #onStart calls to the new instance, allowing you to extract any useful dynamic state from the previous instance. 
			 */
			getLastNonConfigurationChildInstances(): java.util.HashMap<string, any>;
			/**
			 * This method is similar to #onRetainNonConfigurationInstance() except that it should return either a mapping from child activity id strings to arbitrary objects, or null. This method is intended to be used by Activity framework subclasses that control a set of child activities, such as ActivityGroup. The same guarantees and restrictions apply as for #onRetainNonConfigurationInstance(). The default implementation returns null.
			 */
			onRetainNonConfigurationChildInstances(): java.util.HashMap<string, any>;
			retainNonConfigurationInstances(): android.app.Activity.NonConfigurationInstances;
			public onLowMemory(): void;
			public onTrimMemory(level: number): void;
			/**
			 * Return the FragmentManager for interacting with fragments associated with this activity.
			 */
			public getFragmentManager(): android.app.FragmentManager;
			invalidateFragment(who: string): void;
			/**
			 * Called when a Fragment is being attached to this activity, immediately after the call to its Fragment#onAttach Fragment.onAttach() method and before Fragment#onCreate Fragment.onCreate().
			 */
			public onAttachFragment(fragment: android.app.Fragment): void;
			/**
			 * Wrapper around ContentResolver#query(android.net.Uri , String[], String, String[], String) that gives the resulting Cursor to call #startManagingCursor so that the activity will manage its lifecycle for you. <em>If you are targeting android.os.Build.VERSION_CODES#HONEYCOMB or later, consider instead using LoaderManager instead, available via #getLoaderManager().</em>
			 * @param uri The URI of the content provider to query.
			 * @param projection List of columns to return.
			 * @param selection SQL WHERE clause.
			 * @param selectionArgs The arguments to selection, if any ?s are pesent
			 * @param sortOrder SQL ORDER BY clause.
			 */
			public managedQuery(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string): android.database.ICursor;
			/**
			 * This method allows the activity to take care of managing the given Cursor's lifecycle for you based on the activity's lifecycle. That is, when the activity is stopped it will automatically call Cursor#deactivate on the given Cursor, and when it is later restarted it will call Cursor#requery for you. When the activity is destroyed, all managed Cursors will be closed automatically. <em>If you are targeting android.os.Build.VERSION_CODES#HONEYCOMB or later, consider instead using LoaderManager instead, available via #getLoaderManager().</em>
			 * @param c The Cursor to be managed.
			 */
			public startManagingCursor(c: android.database.ICursor): void;
			/**
			 * Given a Cursor that was previously given to #startManagingCursor, stop the activity's management of that cursor. 
			 * @param c The Cursor that was being managed.
			 */
			public stopManagingCursor(c: android.database.ICursor): void;
			/**
			 * Finds a view that was identified by the id attribute from the XML that was processed in #onCreate.
			 */
			public findViewById(id: number): android.view.View;
			/**
			 * Retrieve a reference to this activity's ActionBar.
			 */
			public getActionBar(): android.app.ActionBar;
			/**
			 * Set the activity content from a layout resource. The resource will be inflated, adding all top-level views to the activity.
			 * @param layoutResID Resource ID to be inflated.
			 */
			public setContentView(layoutResID: number): void;
			/**
			 * Set the activity content to an explicit view. This view is placed directly into the activity's view hierarchy. It can itself be a complex view hierarchy. When calling this method, the layout parameters of the specified view are ignored. Both the width and the height of the view are set by default to ViewGroup.LayoutParams#MATCH_PARENT. To use your own layout parameters, invoke #setContentView(android.view.View, android.view.ViewGroup.LayoutParams) instead. 
			 * @param view The desired content to display.
			 */
			public setContentView(view: android.view.View): void;
			/**
			 * Set the activity content to an explicit view. This view is placed directly into the activity's view hierarchy. It can itself be a complex view hierarchy. 
			 * @param view The desired content to display.
			 * @param params Layout parameters for the view.
			 */
			public setContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Add an additional content view to the activity. Added after any existing ones in the activity -- existing views are NOT removed. 
			 * @param view The desired content to display.
			 * @param params Layout parameters for the view.
			 */
			public addContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Sets whether this activity is finished when touched outside its window's bounds.
			 */
			public setFinishOnTouchOutside(finish: boolean): void;
			/**
			 * Select the default key handling for this activity. This controls what will happen to key events that are not otherwise handled. The default mode (#DEFAULT_KEYS_DISABLE) will simply drop them on the floor. Other modes allow you to launch the dialer (#DEFAULT_KEYS_DIALER), execute a shortcut in your options menu without requiring the menu key be held down (#DEFAULT_KEYS_SHORTCUT), or launch a search (#DEFAULT_KEYS_SEARCH_LOCAL and #DEFAULT_KEYS_SEARCH_GLOBAL). 
			 * @param mode The desired default key mode constant.
			 */
			public setDefaultKeyMode(mode: number): void;
			/**
			 * Called when a key was pressed down and not handled by any of the views inside of the activity. So, for example, key presses while the cursor is inside a TextView will not trigger the event (unless it is a navigation to another object) because TextView handles its own key presses. 
			 */
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyLongPress(int, KeyEvent) KeyEvent.Callback.onKeyLongPress(): always returns false (doesn't handle the event).
			 */
			public onKeyLongPress(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when a key was released and not handled by any of the views inside of the activity. So, for example, key presses while the cursor is inside a TextView will not trigger the event (unless it is a navigation to another object) because TextView handles its own key presses. 
			 */
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyMultiple(int, int, KeyEvent) KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).
			 */
			public onKeyMultiple(keyCode: number, repeatCount: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when the activity has detected the user's press of the back key. The default implementation simply finishes the current activity, but you can override this to do whatever you want.
			 */
			public onBackPressed(): void;
			/**
			 * Called when a key shortcut event is not handled by any of the views in the Activity. Override this method to implement global key shortcuts for the Activity. Key shortcuts can also be implemented by setting the MenuItem#setShortcut(char, char) shortcut property of menu items.
			 * @param keyCode The value in event.getKeyCode().
			 * @param event Description of the key event.
			 */
			public onKeyShortcut(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when a touch screen event was not handled by any of the views under it. This is most useful to process touch events that happen outside of your window bounds, where there is no view to receive it. 
			 * @param event The touch screen event being processed.
			 */
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Called when the trackball was moved and not handled by any of the views inside of the activity. So, for example, if the trackball moves while focus is on a button, you will receive a call here because buttons do not normally do anything with trackball events. The call here happens <em>before</em> trackball movements are converted to DPAD key events, which then get sent back to the view hierarchy, and will be processed at the point for things like focus navigation. 
			 * @param event The trackball event being processed.
			 */
			public onTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Called when a generic motion event was not handled by any of the views inside of the activity.
			 * @param event The generic motion event being processed.
			 */
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Called whenever a key, touch, or trackball event is dispatched to the activity. Implement this method if you wish to know that the user has interacted with the device in some way while your activity is running. This callback and #onUserLeaveHint are intended to help activities manage status bar notifications intelligently; specifically, for helping activities determine the proper time to cancel a notfication. 
			 */
			public onUserInteraction(): void;
			public onWindowAttributesChanged(params: android.view.WindowManager.LayoutParams): void;
			public onContentChanged(): void;
			/**
			 * Called when the current Window of the activity gains or loses focus. This is the best indicator of whether this activity is visible to the user. The default implementation clears the key tracking state, so should always be called. 
			 * @param hasFocus Whether the window of this activity has focus.
			 */
			public onWindowFocusChanged(hasFocus: boolean): void;
			/**
			 * Called when the main window associated with the activity has been attached to the window manager. See View#onAttachedToWindow() View.onAttachedToWindow() for more information. View#onAttachedToWindow
			 */
			public onAttachedToWindow(): void;
			/**
			 * Called when the main window associated with the activity has been detached from the window manager. See View#onDetachedFromWindow() View.onDetachedFromWindow() for more information. View#onDetachedFromWindow
			 */
			public onDetachedFromWindow(): void;
			/**
			 * Returns true if this activity's <em>main</em> window currently has window focus. Note that this is not the same as the view itself having focus. 
			 */
			public hasWindowFocus(): boolean;
			/**
			 * Called to process key events. You can override this to intercept all key events before they are dispatched to the window. Be sure to call this implementation for key events that should be handled normally. 
			 * @param event The key event.
			 */
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Called to process a key shortcut event. You can override this to intercept all key shortcut events before they are dispatched to the window. Be sure to call this implementation for key shortcut events that should be handled normally.
			 * @param event The key shortcut event.
			 */
			public dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Called to process touch screen events. You can override this to intercept all touch screen events before they are dispatched to the window. Be sure to call this implementation for touch screen events that should be handled normally. 
			 * @param ev The touch screen event.
			 */
			public dispatchTouchEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * Called to process trackball events. You can override this to intercept all trackball events before they are dispatched to the window. Be sure to call this implementation for trackball events that should be handled normally. 
			 * @param ev The trackball event.
			 */
			public dispatchTrackballEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * Called to process generic motion events. You can override this to intercept all generic motion events before they are dispatched to the window. Be sure to call this implementation for generic motion events that should be handled normally.
			 * @param ev The generic motion event.
			 */
			public dispatchGenericMotionEvent(ev: android.view.MotionEvent): boolean;
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 * Default implementation of android.view.Window.Callback#onCreatePanelView for activities. This simply returns null so that all panel sub-windows will have the default menu behavior.
			 */
			public onCreatePanelView(featureId: number): android.view.View;
			/**
			 * Default implementation of android.view.Window.Callback#onCreatePanelMenu for activities. This calls through to the new #onCreateOptionsMenu method for the android.view.Window#FEATURE_OPTIONS_PANEL panel, so that subclasses of Activity don't need to deal with feature codes.
			 */
			public onCreatePanelMenu(featureId: number, menu: android.view.IMenu): boolean;
			/**
			 * Default implementation of android.view.Window.Callback#onPreparePanel for activities. This calls through to the new #onPrepareOptionsMenu method for the android.view.Window#FEATURE_OPTIONS_PANEL panel, so that subclasses of Activity don't need to deal with feature codes.
			 */
			public onPreparePanel(featureId: number, view: android.view.View, menu: android.view.IMenu): boolean;
			/**
			 *  
			 */
			public onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
			/**
			 * Default implementation of android.view.Window.Callback#onMenuItemSelected for activities. This calls through to the new #onOptionsItemSelected method for the android.view.Window#FEATURE_OPTIONS_PANEL panel, so that subclasses of Activity don't need to deal with feature codes.
			 */
			public onMenuItemSelected(featureId: number, item: android.view.IMenuItem): boolean;
			/**
			 * Default implementation of android.view.Window.Callback#onPanelClosed(int, Menu) for activities. This calls through to #onOptionsMenuClosed(Menu) method for the android.view.Window#FEATURE_OPTIONS_PANEL panel, so that subclasses of Activity don't need to deal with feature codes. For context menus (Window#FEATURE_CONTEXT_MENU), the #onContextMenuClosed(Menu) will be called.
			 */
			public onPanelClosed(featureId: number, menu: android.view.IMenu): void;
			/**
			 * Declare that the options menu has changed, so should be recreated. The #onCreateOptionsMenu(Menu) method will be called the next time it needs to be displayed.
			 */
			public invalidateOptionsMenu(): void;
			/**
			 * Initialize the contents of the Activity's standard options menu. You should place your menu items in to <var>menu</var>. 
			 * @param menu The options menu in which you place your items.
			 */
			public onCreateOptionsMenu(menu: android.view.IMenu): boolean;
			/**
			 * Prepare the Screen's standard options menu to be displayed. This is called right before the menu is shown, every time it is shown. You can use this method to efficiently enable/disable items or otherwise dynamically modify the contents. 
			 * @param menu The options menu as last shown or first initialized by
			 */
			public onPrepareOptionsMenu(menu: android.view.IMenu): boolean;
			/**
			 * This hook is called whenever an item in your options menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities. 
			 * @param item The menu item that was selected.
			 */
			public onOptionsItemSelected(item: android.view.IMenuItem): boolean;
			/**
			 * This method is called whenever the user chooses to navigate Up within your application's activity hierarchy from the action bar.
			 */
			public onNavigateUp(): boolean;
			/**
			 * This is called when a child activity of this one attempts to navigate up. The default implementation simply calls onNavigateUp() on this activity (the parent).
			 * @param child The activity making the call.
			 */
			public onNavigateUpFromChild(child: android.app.Activity): boolean;
			/**
			 * Define the synthetic task stack that will be generated during Up navigation from a different task.
			 * @param builder An empty TaskStackBuilder - the application should add intents representing
			 */
			public onCreateNavigateUpTaskStack(builder: android.app.TaskStackBuilder): void;
			/**
			 * Prepare the synthetic task stack that will be generated during Up navigation from a different task.
			 * @param builder A TaskStackBuilder that has been populated with Intents by
			 */
			public onPrepareNavigateUpTaskStack(builder: android.app.TaskStackBuilder): void;
			/**
			 * This hook is called whenever the options menu is being closed (either by the user canceling the menu with the back/menu button, or when an item is selected). 
			 * @param menu The options menu as last shown or first initialized by
			 */
			public onOptionsMenuClosed(menu: android.view.IMenu): void;
			/**
			 * Programmatically opens the options menu. If the options menu is already open, this method does nothing.
			 */
			public openOptionsMenu(): void;
			/**
			 * Progammatically closes the options menu. If the options menu is already closed, this method does nothing.
			 */
			public closeOptionsMenu(): void;
			/**
			 * Called when a context menu for the view is about to be shown. Unlike #onCreateOptionsMenu(Menu), this will be called every time the context menu is about to be shown and should be populated for the view (or item inside the view for AdapterView subclasses, this can be found in the menuInfo)).
			 */
			public onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
			/**
			 * Registers a context menu to be shown for the given view (multiple views can show the context menu). This method will set the OnCreateContextMenuListener on the view to this activity, so #onCreateContextMenu(ContextMenu, View, ContextMenuInfo) will be called when it is time to show the context menu. #unregisterForContextMenu(View)
			 * @param view The view that should show a context menu.
			 */
			public registerForContextMenu(view: android.view.View): void;
			/**
			 * Prevents a context menu to be shown for the given view. This method will remove the OnCreateContextMenuListener on the view. #registerForContextMenu(View)
			 * @param view The view that should stop showing a context menu.
			 */
			public unregisterForContextMenu(view: android.view.View): void;
			/**
			 * Programmatically opens the context menu for a particular view. The view should have been added via #registerForContextMenu(View). 
			 * @param view The view to show the context menu for.
			 */
			public openContextMenu(view: android.view.View): void;
			/**
			 * Programmatically closes the most recently opened context menu, if showing.
			 */
			public closeContextMenu(): void;
			/**
			 * This hook is called whenever an item in a context menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.
			 * @param item The context menu item that was selected.
			 */
			public onContextItemSelected(item: android.view.IMenuItem): boolean;
			/**
			 * This hook is called whenever the context menu is being closed (either by the user canceling the menu with the back/menu button, or when an item is selected). 
			 * @param menu The context menu that is being closed.
			 */
			public onContextMenuClosed(menu: android.view.IMenu): void;
			/**
			 *  Old no-arguments version of #onCreateDialog(int, Bundle).
			 */
			protected onCreateDialog(id: number): android.app.Dialog;
			/**
			 * Callback for creating dialogs that are managed (saved and restored) for you by the activity. The default implementation calls through to #onCreateDialog(int) for compatibility.
			 * @param id The id of the dialog.
			 * @param args The dialog arguments provided to {@link #showDialog(int, Bundle)}.
			 */
			protected onCreateDialog(id: number, args: android.os.Bundle): android.app.Dialog;
			/**
			 *  Old no-arguments version of #onPrepareDialog(int, Dialog, Bundle).
			 */
			protected onPrepareDialog(id: number, dialog: android.app.Dialog): void;
			/**
			 * Provides an opportunity to prepare a managed dialog before it is being shown. The default implementation calls through to #onPrepareDialog(int, Dialog) for compatibility. 
			 * @param id The id of the managed dialog.
			 * @param dialog The dialog.
			 * @param args The dialog arguments provided to {@link #showDialog(int, Bundle)}.
			 */
			protected onPrepareDialog(id: number, dialog: android.app.Dialog, args: android.os.Bundle): void;
			/**
			 * Simple version of #showDialog(int, Bundle) that does not take any arguments. Simply calls #showDialog(int, Bundle) with null arguments.
			 */
			public showDialog(id: number): void;
			/**
			 * Show a dialog managed by this activity. A call to #onCreateDialog(int, Bundle) will be made with the same id the first time this is called for a given id. From thereafter, the dialog will be automatically saved and restored.
			 * @param id The id of the managed dialog.
			 * @param args Arguments to pass through to the dialog. These will be saved
			 */
			public showDialog(id: number, args: android.os.Bundle): boolean;
			/**
			 * Dismiss a dialog that was previously shown via #showDialog(int).
			 * @param id The id of the managed dialog.
			 */
			public dismissDialog(id: number): void;
			/**
			 * Removes any internal references to a dialog managed by this Activity. If the dialog is showing, it will dismiss it as part of the clean up.
			 * @param id The id of the managed dialog.
			 */
			public removeDialog(id: number): void;
			/**
			 * This hook is called when the user signals the desire to start a search. 
			 */
			public onSearchRequested(): boolean;
			/**
			 * This hook is called to launch the search UI. 
			 * @param initialQuery Any non-null non-empty string will be inserted as
			 * @param selectInitialQuery If true, the intial query will be preselected, which means that
			 * @param appSearchData An application can insert application-specific
			 * @param globalSearch If false, this will only launch the search that has been specifically
			 */
			public startSearch(initialQuery: string, selectInitialQuery: boolean, appSearchData: android.os.Bundle, globalSearch: boolean): void;
			/**
			 * Similar to #startSearch, but actually fires off the search query after invoking the search dialog. Made available for testing purposes.
			 * @param query The query to trigger. If empty, the request will be ignored.
			 * @param appSearchData An application can insert application-specific
			 */
			public triggerSearch(query: string, appSearchData: android.os.Bundle): void;
			/**
			 * Request that key events come to this activity. Use this if your activity has no views with focus, but the activity still wants a chance to process key events. android.view.Window#takeKeyEvents
			 */
			public takeKeyEvents(get: boolean): void;
			/**
			 * Enable extended window features. This is a convenience for calling android.view.Window#requestFeature getWindow().requestFeature(). 
			 * @param featureId The desired feature as defined in
			 */
			public requestWindowFeature(featureId: number): boolean;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawableResource.
			 */
			public setFeatureDrawableResource(featureId: number, resId: number): void;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawableUri.
			 */
			public setFeatureDrawableUri(featureId: number, uri: android.net.Uri): void;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawable(int, Drawable).
			 */
			public setFeatureDrawable(featureId: number, drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawableAlpha.
			 */
			public setFeatureDrawableAlpha(featureId: number, alpha: number): void;
			/**
			 * Convenience for calling android.view.Window#getLayoutInflater.
			 */
			public getLayoutInflater(): android.view.LayoutInflater;
			/**
			 * Returns a MenuInflater with this context.
			 */
			public getMenuInflater(): android.view.MenuInflater;
			protected onApplyThemeResource(theme: android.content.res.Resources.Theme, resid: number, first: boolean): void;
			/**
			 * Same as calling #startActivityForResult(Intent, int, Bundle) with no options.
			 * @param intent The intent to start.
			 * @param requestCode If >= 0, this code will be returned in
			 */
			public startActivityForResult(intent: android.content.Intent, requestCode: number): void;
			/**
			 * Launch an activity for which you would like a result when it finished. When this activity exits, your onActivityResult() method will be called with the given requestCode. Using a negative requestCode is the same as calling #startActivity (the activity is not launched as a sub-activity).
			 * @param intent The intent to start.
			 * @param requestCode If >= 0, this code will be returned in
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivityForResult(intent: android.content.Intent, requestCode: number, options: android.os.Bundle): void;
			/**
			 * Same as calling #startIntentSenderForResult(IntentSender, int, Intent, int, int, int, Bundle) with no options.
			 * @param intent The IntentSender to launch.
			 * @param requestCode If >= 0, this code will be returned in
			 * @param fillInIntent If non-null, this will be provided as the
			 * @param flagsMask Intent flags in the original IntentSender that you
			 * @param flagsValues Desired values for any bits set in
			 * @param extraFlags Always set to 0.
			 */
			public startIntentSenderForResult(intent: android.content.IntentSender, requestCode: number, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number): void;
			/**
			 * Like #startActivityForResult(Intent, int), but allowing you to use a IntentSender to describe the activity to be started. If the IntentSender is for an activity, that activity will be started as if you had called the regular #startActivityForResult(Intent, int) here; otherwise, its associated action will be executed (such as sending a broadcast) as if you had called IntentSender#sendIntent IntentSender.sendIntent on it. 
			 * @param intent The IntentSender to launch.
			 * @param requestCode If >= 0, this code will be returned in
			 * @param fillInIntent If non-null, this will be provided as the
			 * @param flagsMask Intent flags in the original IntentSender that you
			 * @param flagsValues Desired values for any bits set in
			 * @param extraFlags Always set to 0.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startIntentSenderForResult(intent: android.content.IntentSender, requestCode: number, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number, options: android.os.Bundle): void;
			/**
			 * Same as #startActivity(Intent, Bundle) with no options specified.
			 * @param intent The intent to start.
			 */
			public startActivity(intent: android.content.Intent): void;
			/**
			 * Launch a new activity. You will not receive any information about when the activity exits. This implementation overrides the base version, providing information about the activity performing the launch. Because of this additional information, the Intent#FLAG_ACTIVITY_NEW_TASK launch flag is not required; if not specified, the new activity will be added to the task of the caller. 
			 * @param intent The intent to start.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivity(intent: android.content.Intent, options: android.os.Bundle): void;
			/**
			 * Same as #startActivities(Intent[], Bundle) with no options specified.
			 * @param intents The intents to start.
			 */
			public startActivities(intents: native.Array<android.content.Intent>): void;
			/**
			 * Launch a new activity. You will not receive any information about when the activity exits. This implementation overrides the base version, providing information about the activity performing the launch. Because of this additional information, the Intent#FLAG_ACTIVITY_NEW_TASK launch flag is not required; if not specified, the new activity will be added to the task of the caller.
			 * @param intents The intents to start.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivities(intents: native.Array<android.content.Intent>, options: android.os.Bundle): void;
			/**
			 * Same as calling #startIntentSender(IntentSender, Intent, int, int, int, Bundle) with no options. 
			 * @param intent The IntentSender to launch.
			 * @param fillInIntent If non-null, this will be provided as the
			 * @param flagsMask Intent flags in the original IntentSender that you
			 * @param flagsValues Desired values for any bits set in
			 * @param extraFlags Always set to 0.
			 */
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number): void;
			/**
			 * Like #startActivity(Intent, Bundle), but taking a IntentSender to start; see #startIntentSenderForResult(IntentSender, int, Intent, int, int, int, Bundle) for more information.
			 * @param intent The IntentSender to launch.
			 * @param fillInIntent If non-null, this will be provided as the
			 * @param flagsMask Intent flags in the original IntentSender that you
			 * @param flagsValues Desired values for any bits set in
			 * @param extraFlags Always set to 0.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number, options: android.os.Bundle): void;
			/**
			 * Same as calling #startActivityIfNeeded(Intent, int, Bundle) with no options.
			 * @param intent The intent to start.
			 * @param requestCode If >= 0, this code will be returned in
			 */
			public startActivityIfNeeded(intent: android.content.Intent, requestCode: number): boolean;
			/**
			 * A special variation to launch an activity only if a new activity instance is needed to handle the given Intent. In other words, this is just like #startActivityForResult(Intent, int) except: if you are using the Intent#FLAG_ACTIVITY_SINGLE_TOP flag, or singleTask or singleTop android.R.styleable#AndroidManifestActivity_launchMode launchMode, and the activity that handles <var>intent</var> is the same as your currently running activity, then a new instance is not needed. In this case, instead of the normal behavior of calling #onNewIntent this function will return and you can handle the Intent yourself. 
			 * @param intent The intent to start.
			 * @param requestCode If >= 0, this code will be returned in
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivityIfNeeded(intent: android.content.Intent, requestCode: number, options: android.os.Bundle): boolean;
			/**
			 * Same as calling #startNextMatchingActivity(Intent, Bundle) with no options.
			 * @param intent The intent to dispatch to the next activity. For
			 */
			public startNextMatchingActivity(intent: android.content.Intent): boolean;
			/**
			 * Special version of starting an activity, for use when you are replacing other activity components. You can use this to hand the Intent off to the next Activity that can handle it. You typically call this in #onCreate with the Intent returned by #getIntent. 
			 * @param intent The intent to dispatch to the next activity. For
			 * @param options Additional options for how the Activity should be started.
			 */
			public startNextMatchingActivity(intent: android.content.Intent, options: android.os.Bundle): boolean;
			/**
			 * Same as calling #startActivityFromChild(Activity, Intent, int, Bundle) with no options.
			 * @param child The activity making the call.
			 * @param intent The intent to start.
			 * @param requestCode Reply request code. < 0 if reply is not requested.
			 */
			public startActivityFromChild(child: android.app.Activity, intent: android.content.Intent, requestCode: number): void;
			/**
			 * This is called when a child activity of this one calls its #startActivity or #startActivityForResult method. 
			 * @param child The activity making the call.
			 * @param intent The intent to start.
			 * @param requestCode Reply request code. < 0 if reply is not requested.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivityFromChild(child: android.app.Activity, intent: android.content.Intent, requestCode: number, options: android.os.Bundle): void;
			/**
			 * Same as calling #startActivityFromFragment(Fragment, Intent, int, Bundle) with no options.
			 * @param fragment The fragment making the call.
			 * @param intent The intent to start.
			 * @param requestCode Reply request code. < 0 if reply is not requested.
			 */
			public startActivityFromFragment(fragment: android.app.Fragment, intent: android.content.Intent, requestCode: number): void;
			/**
			 * This is called when a Fragment in this activity calls its Fragment#startActivity or Fragment#startActivityForResult method. 
			 * @param fragment The fragment making the call.
			 * @param intent The intent to start.
			 * @param requestCode Reply request code. < 0 if reply is not requested.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivityFromFragment(fragment: android.app.Fragment, intent: android.content.Intent, requestCode: number, options: android.os.Bundle): void;
			/**
			 * Same as calling #startIntentSenderFromChild(Activity, IntentSender, int, Intent, int, int, int, Bundle) with no options.
			 */
			public startIntentSenderFromChild(child: android.app.Activity, intent: android.content.IntentSender, requestCode: number, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number): void;
			/**
			 * Like #startActivityFromChild(Activity, Intent, int), but taking a IntentSender; see #startIntentSenderForResult(IntentSender, int, Intent, int, int, int) for more information.
			 */
			public startIntentSenderFromChild(child: android.app.Activity, intent: android.content.IntentSender, requestCode: number, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number, options: android.os.Bundle): void;
			/**
			 * Call immediately after one of the flavors of #startActivity(Intent) or #finish to specify an explicit transition animation to perform next.
			 * @param enterAnim A resource ID of the animation resource to use for
			 * @param exitAnim A resource ID of the animation resource to use for
			 */
			public overridePendingTransition(enterAnim: number, exitAnim: number): void;
			/**
			 * Call this to set the result that your activity will return to its caller. 
			 * @param resultCode The result code to propagate back to the originating
			 */
			public setResult(resultCode: number): void;
			/**
			 * Call this to set the result that your activity will return to its caller.
			 * @param resultCode The result code to propagate back to the originating
			 * @param data The data to propagate back to the originating activity.
			 */
			public setResult(resultCode: number, data: android.content.Intent): void;
			/**
			 * Return the name of the package that invoked this activity. This is who the data in #setResult setResult() will be sent to. You can use this information to validate that the recipient is allowed to receive the data. 
			 */
			public getCallingPackage(): string;
			/**
			 * Return the name of the activity that invoked this activity. This is who the data in #setResult setResult() will be sent to. You can use this information to validate that the recipient is allowed to receive the data. 
			 */
			public getCallingActivity(): android.content.ComponentName;
			/**
			 * Control whether this activity's main window is visible. This is intended only for the special case of an activity that is not going to show a UI itself, but can't just finish prior to onResume() because it needs to wait for a service binding or such. Setting this to false allows you to prevent your UI from being shown during that time. 
			 */
			public setVisible(visible: boolean): void;
			makeVisible(): void;
			/**
			 * Check to see whether this activity is in the process of finishing, either because you called #finish on it or someone else has requested that it finished. This is often used in #onPause to determine whether the activity is simply pausing or completely finishing. 
			 */
			public isFinishing(): boolean;
			/**
			 * Returns true if the final #onDestroy() call has been made on the Activity, so this instance is now dead.
			 */
			public isDestroyed(): boolean;
			/**
			 * Check to see whether this activity is in the process of being destroyed in order to be recreated with a new configuration. This is often used in #onStop to determine whether the state needs to be cleaned up or will be passed on to the next instance of the activity via #onRetainNonConfigurationInstance(). 
			 */
			public isChangingConfigurations(): boolean;
			/**
			 * Cause this Activity to be recreated with a new instance. This results in essentially the same flow as when the Activity is created due to a configuration change -- the current instance will go through its lifecycle to #onDestroy and a new instance then created after it.
			 */
			public recreate(): void;
			/**
			 * Call this when your activity is done and should be closed. The ActivityResult is propagated back to whoever launched you via onActivityResult().
			 */
			public finish(): void;
			/**
			 * Finish this activity as well as all activities immediately below it in the current task that have the same affinity. This is typically used when an application can be launched on to another task (such as from an ACTION_VIEW of a content type it understands) and the user has used the up navigation to switch out of the current task and in to its own task. In this case, if the user has navigated down into any other activities of the second application, all of those should be removed from the original task as part of the task switch.
			 */
			public finishAffinity(): void;
			/**
			 * This is called when a child activity of this one calls its #finish method. The default implementation simply calls finish() on this activity (the parent), finishing the entire group. 
			 * @param child The activity making the call.
			 */
			public finishFromChild(child: android.app.Activity): void;
			/**
			 * Force finish another activity that you had previously started with #startActivityForResult. 
			 * @param requestCode The request code of the activity that you had
			 */
			public finishActivity(requestCode: number): void;
			/**
			 * This is called when a child activity of this one calls its finishActivity(). 
			 * @param child The activity making the call.
			 * @param requestCode Request code that had been used to start the
			 */
			public finishActivityFromChild(child: android.app.Activity, requestCode: number): void;
			/**
			 * Called when an activity you launched exits, giving you the requestCode you started it with, the resultCode it returned, and any additional data from it. The <var>resultCode</var> will be #RESULT_CANCELED if the activity explicitly returned that, didn't return any result, or crashed during its operation. 
			 * @param requestCode The integer request code originally supplied to
			 * @param resultCode The integer result code returned by the child activity
			 * @param data An Intent, which can return result data to the caller
			 */
			protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
			/**
			 * Create a new PendingIntent object which you can hand to others for them to use to send result data back to your #onActivityResult callback. The created object will be either one-shot (becoming invalid after a result is sent back) or multiple (allowing any number of results to be sent through it). 
			 * @param requestCode Private request code for the sender that will be
			 * @param data Default data to supply in the result, which may be modified
			 * @param flags May be {@link PendingIntent#FLAG_ONE_SHOT PendingIntent.FLAG_ONE_SHOT},
			 */
			public createPendingResult(requestCode: number, data: android.content.Intent, flags: number): android.app.PendingIntent;
			/**
			 * Change the desired orientation of this activity. If the activity is currently in the foreground or otherwise impacting the screen orientation, the screen will immediately be changed (possibly causing the activity to be restarted). Otherwise, this will be used the next time the activity is visible. 
			 * @param requestedOrientation An orientation constant as used in
			 */
			public setRequestedOrientation(requestedOrientation: number): void;
			/**
			 * Return the current requested orientation of the activity. This will either be the orientation requested in its component's manifest, or the last requested orientation given to #setRequestedOrientation(int). 
			 */
			public getRequestedOrientation(): number;
			/**
			 * Return the identifier of the task this activity is in. This identifier will remain the same for the lifetime of the activity. 
			 */
			public getTaskId(): number;
			/**
			 * Return whether this activity is the root of a task. The root is the first activity in a task. 
			 */
			public isTaskRoot(): boolean;
			/**
			 * Move the task containing this activity to the back of the activity stack. The activity's order within the task is unchanged. 
			 * @param nonRoot If false then this only works if the activity is the root
			 */
			public moveTaskToBack(nonRoot: boolean): boolean;
			/**
			 * Returns class name for this activity with the package prefix removed. This is the default name used to read and write settings. 
			 */
			public getLocalClassName(): string;
			/**
			 * Returns complete component name of this activity. 
			 */
			public getComponentName(): android.content.ComponentName;
			/**
			 * Retrieve a SharedPreferences object for accessing preferences that are private to this activity. This simply calls the underlying #getSharedPreferences(String, int) method by passing in this activity's class name as the preferences name. 
			 * @param mode Operating mode. Use {@link #MODE_PRIVATE} for the default
			 */
			public getPreferences(mode: number): android.content.ISharedPreferences;
			public getSystemService(name: string): any;
			/**
			 * Change the title associated with this activity. If this is a top-level activity, the title for its window will change. If it is an embedded activity, the parent can do whatever it wants with it.
			 */
			public setTitle(title: string): void;
			/**
			 * Change the title associated with this activity. If this is a top-level activity, the title for its window will change. If it is an embedded activity, the parent can do whatever it wants with it.
			 */
			public setTitle(titleId: number): void;
			public setTitleColor(textColor: number): void;
			public getTitle(): string;
			public getTitleColor(): number;
			protected onTitleChanged(title: string, color: number): void;
			protected onChildTitleChanged(childActivity: android.app.Activity, title: string): void;
			/**
			 * Sets the visibility of the progress bar in the title.
			 * @param visible Whether to show the progress bars in the title.
			 */
			public setProgressBarVisibility(visible: boolean): void;
			/**
			 * Sets the visibility of the indeterminate progress bar in the title.
			 * @param visible Whether to show the progress bars in the title.
			 */
			public setProgressBarIndeterminateVisibility(visible: boolean): void;
			/**
			 * Sets whether the horizontal progress bar in the title should be indeterminate (the circular is always indeterminate).
			 * @param indeterminate Whether the horizontal progress bar should be indeterminate.
			 */
			public setProgressBarIndeterminate(indeterminate: boolean): void;
			/**
			 * Sets the progress for the progress bars in the title.
			 * @param progress The progress for the progress bar. Valid ranges are from
			 */
			public setProgress(progress: number): void;
			/**
			 * Sets the secondary progress for the progress bar in the title. This progress is drawn between the primary progress (set via #setProgress(int) and the background. It can be ideal for media scenarios such as showing the buffering progress while the default progress shows the play progress.
			 * @param secondaryProgress The secondary progress for the progress bar. Valid ranges are from
			 */
			public setSecondaryProgress(secondaryProgress: number): void;
			/**
			 * Suggests an audio stream whose volume should be changed by the hardware volume controls.
			 * @param streamType The type of the audio stream whose volume should be
			 */
			public setVolumeControlStream(streamType: number): void;
			/**
			 * Gets the suggested audio stream whose volume should be changed by the harwdare volume controls. 
			 */
			public getVolumeControlStream(): number;
			/**
			 * Runs the specified action on the UI thread. If the current thread is the UI thread, then the action is executed immediately. If the current thread is not the UI thread, the action is posted to the event queue of the UI thread.
			 * @param action the action to run on the UI thread
			 */
			public runOnUiThread(action: java.lang.IRunnable): void;
			/**
			 * Standard implementation of android.view.LayoutInflater.Factory#onCreateView used when inflating with the LayoutInflater returned by #getSystemService. This implementation does nothing and is for pre-android.os.Build.VERSION_CODES#HONEYCOMB apps. Newer apps should use #onCreateView(View, String, Context, AttributeSet).
			 */
			public onCreateView(name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
			/**
			 * Standard implementation of android.view.LayoutInflater.Factory2#onCreateView(View, String, Context, AttributeSet) used when inflating with the LayoutInflater returned by #getSystemService. This implementation handles <fragment> tags to embed fragments inside of the activity.
			 */
			public onCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
			/**
			 * Print the Activity's state into the given stream. This gets invoked if you run "adb shell dumpsys activity &lt;activity_component_name&gt;".
			 * @param prefix Desired prefix to prepend at each line of output.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param writer The PrintWriter to which you should dump your state. This will be
			 * @param args additional arguments to the dump request.
			 */
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			dumpInner(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			/**
			 * Start an action mode.
			 * @param callback Callback that will manage lifecycle events for this context mode
			 */
			public startActionMode(callback: android.view.ActionMode.ICallback): android.view.ActionMode;
			/**
			 * Give the Activity a chance to control the UI for an action mode requested by the system.
			 * @param callback The callback that should control the new action mode
			 */
			public onWindowStartingActionMode(callback: android.view.ActionMode.ICallback): android.view.ActionMode;
			/**
			 * Notifies the Activity that an action mode has been started. Activity subclasses overriding this method should call the superclass implementation.
			 * @param mode The new action mode.
			 */
			public onActionModeStarted(mode: android.view.ActionMode): void;
			/**
			 * Notifies the activity that an action mode has finished. Activity subclasses overriding this method should call the superclass implementation.
			 * @param mode The action mode that just finished.
			 */
			public onActionModeFinished(mode: android.view.ActionMode): void;
			/**
			 * Returns true if the app should recreate the task when navigating 'up' from this activity by using targetIntent.
			 * @param targetIntent An intent representing the target destination for up navigation
			 */
			public shouldUpRecreateTask(targetIntent: android.content.Intent): boolean;
			/**
			 * Navigate from this activity to the activity specified by upIntent, finishing this activity in the process. If the activity indicated by upIntent already exists in the task's history, this activity and all others before the indicated activity in the history stack will be finished.
			 * @param upIntent An intent representing the target destination for up navigation
			 */
			public navigateUpTo(upIntent: android.content.Intent): boolean;
			/**
			 * This is called when a child activity of this one calls its #navigateUpTo method. The default implementation simply calls navigateUpTo(upIntent) on this activity (the parent).
			 * @param child The activity making the call.
			 * @param upIntent An intent representing the target destination for up navigation
			 */
			public navigateUpToFromChild(child: android.app.Activity, upIntent: android.content.Intent): boolean;
			/**
			 * Obtain an Intent that will launch an explicit target activity specified by this activity's logical parent. The logical parent is named in the application's manifest by the android.R.attr#parentActivityName parentActivityName attribute. Activity subclasses may override this method to modify the Intent returned by super.getParentActivityIntent() or to implement a different mechanism of retrieving the parent intent entirely.
			 */
			public getParentActivityIntent(): android.content.Intent;
			setParent(parent: android.app.Activity): void;
			performCreate(icicle: android.os.Bundle): void;
			performStart(): void;
			performRestart(): void;
			performResume(): void;
			performPause(): void;
			performUserLeaving(): void;
			performStop(): void;
			performDestroy(): void;
			dispatchActivityResult(who: string, requestCode: number, resultCode: number, data: android.content.Intent): void;
		}
		export module Activity {
			export class ManagedDialog extends java.lang.Object {
				static class: java.lang.Class<android.app.Activity.ManagedDialog>;
			}
			export class NonConfigurationInstances extends java.lang.Object {
				static class: java.lang.Class<android.app.Activity.NonConfigurationInstances>;
			}
			export class ManagedCursor extends java.lang.Object {
				static class: java.lang.Class<android.app.Activity.ManagedCursor>;
			}
		}
		/**
		 * Common implementation of Context API, which provides the base context object for Activity and other application components.
		 */
		export class ContextImpl extends android.content.Context {
			/**
			 * Create a new ApplicationContext from an existing one. The new one works and operates the same as the one it is copying.
			 * @param context Existing application context.
			 */
			constructor(context: android.app.ContextImpl);
			static class: java.lang.Class<android.app.ContextImpl>;
			static getImpl(context: android.content.Context): android.app.ContextImpl;
			public getAssets(): android.content.res.AssetManager;
			public getResources(): android.content.res.Resources;
			public getPackageManager(): android.content.pm.PackageManager;
			public getContentResolver(): android.content.ContentResolver;
			public getMainLooper(): android.os.Looper;
			public getApplicationContext(): android.content.Context;
			public setTheme(resid: number): void;
			public getThemeResId(): number;
			public getTheme(): android.content.res.Resources.Theme;
			public getClassLoader(): java.lang.ClassLoader;
			public getPackageName(): string;
			public getApplicationInfo(): android.content.pm.ApplicationInfo;
			public getPackageResourcePath(): string;
			public getPackageCodePath(): string;
			public getSharedPrefsFile(name: string): java.io.File;
			public getSharedPreferences(name: string, mode: number): android.content.ISharedPreferences;
			public openFileInput(name: string): java.io.FileInputStream;
			public openFileOutput(name: string, mode: number): java.io.FileOutputStream;
			public deleteFile(name: string): boolean;
			public getFilesDir(): java.io.File;
			public getExternalFilesDir(type: string): java.io.File;
			public getObbDir(): java.io.File;
			public getCacheDir(): java.io.File;
			public getExternalCacheDir(): java.io.File;
			public getFileStreamPath(name: string): java.io.File;
			public fileList(): native.Array<string>;
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, errorHandler: android.database.IDatabaseErrorHandler): android.database.sqlite.SQLiteDatabase;
			public deleteDatabase(name: string): boolean;
			public getDatabasePath(name: string): java.io.File;
			public databaseList(): native.Array<string>;
			public getWallpaper(): android.graphics.drawable.Drawable;
			public peekWallpaper(): android.graphics.drawable.Drawable;
			public getWallpaperDesiredMinimumWidth(): number;
			public getWallpaperDesiredMinimumHeight(): number;
			public setWallpaper(bitmap: android.graphics.Bitmap): void;
			public setWallpaper(data: java.io.InputStream): void;
			public clearWallpaper(): void;
			public startActivity(intent: android.content.Intent): void;
			public startActivity(intent: android.content.Intent, options: android.os.Bundle): void;
			public startActivities(intents: native.Array<android.content.Intent>): void;
			public startActivities(intents: native.Array<android.content.Intent>, options: android.os.Bundle): void;
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number): void;
			public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number, options: android.os.Bundle): void;
			public sendBroadcast(intent: android.content.Intent): void;
			public sendBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string): void;
			public sendOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public sendStickyBroadcast(intent: android.content.Intent): void;
			public sendStickyOrderedBroadcast(intent: android.content.Intent, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public removeStickyBroadcast(intent: android.content.Intent): void;
			public sendStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			public sendStickyOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			public removeStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter): android.content.Intent;
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
			public registerReceiverAsUser(receiver: android.content.BroadcastReceiver, user: android.os.UserHandle, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
			public unregisterReceiver(receiver: android.content.BroadcastReceiver): void;
			public startService(service: android.content.Intent): android.content.ComponentName;
			public stopService(service: android.content.Intent): boolean;
			public startServiceAsUser(service: android.content.Intent, user: android.os.UserHandle): android.content.ComponentName;
			public stopServiceAsUser(service: android.content.Intent, user: android.os.UserHandle): boolean;
			public bindService(service: android.content.Intent, conn: android.content.IServiceConnection, flags: number): boolean;
			public unbindService(conn: android.content.IServiceConnection): void;
			public startInstrumentation(className: android.content.ComponentName, profileFile: string, args: android.os.Bundle): boolean;
			public getSystemService(name: string): any;
			static createDropBoxManager(): android.os.DropBoxManager;
			public checkPermission(permission: string, pid: number, uid: number): number;
			public checkCallingPermission(permission: string): number;
			public checkCallingOrSelfPermission(permission: string): number;
			public enforcePermission(permission: string, pid: number, uid: number, message: string): void;
			public enforceCallingPermission(permission: string, message: string): void;
			public enforceCallingOrSelfPermission(permission: string, message: string): void;
			public grantUriPermission(toPackage: string, uri: android.net.Uri, modeFlags: number): void;
			public revokeUriPermission(uri: android.net.Uri, modeFlags: number): void;
			public checkUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number): number;
			public checkCallingUriPermission(uri: android.net.Uri, modeFlags: number): number;
			public checkCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number): number;
			public checkUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number): number;
			public enforceUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number, message: string): void;
			public enforceCallingUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
			public enforceCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
			public enforceUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number, message: string): void;
			public createPackageContext(packageName: string, flags: number): android.content.Context;
			public createPackageContextAsUser(packageName: string, flags: number, user: android.os.UserHandle): android.content.Context;
			public createConfigurationContext(overrideConfiguration: android.content.res.Configuration): android.content.Context;
			public createDisplayContext(display: android.view.Display): android.content.Context;
			public isRestricted(): boolean;
			public getDir(name: string, mode: number): java.io.File;
			scheduleFinalCleanup(who: string, what: string): void;
			performFinalCleanup(who: string, what: string): void;
			getReceiverRestrictedContext(): android.content.Context;
			setOuterContext(context: android.content.Context): void;
			getOuterContext(): android.content.Context;
			getActivityToken(): android.os.IIBinder;
			static setFilePermissionsFromMode(name: string, mode: number, extraPermissions: number): void;
		}
		export module ContextImpl {
			export class ApplicationContentResolver extends android.content.ContentResolver {
				static class: java.lang.Class<android.app.ContextImpl.ApplicationContentResolver>;
			}
			/**
			 * Override this class for services to be cached process-wide.
			 */
			export class StaticServiceFetcher extends android.app.ContextImpl.ServiceFetcher {
				static class: java.lang.Class<android.app.ContextImpl.StaticServiceFetcher>;
				public getService(unused: android.app.ContextImpl): any;
				public createStaticService(): any;
			}
			/**
			 * Override this class when the system service constructor needs a ContextImpl. Else, use StaticServiceFetcher below.
			 */
			export class ServiceFetcher extends java.lang.Object {
				static class: java.lang.Class<android.app.ContextImpl.ServiceFetcher>;
				/**
				 * Main entrypoint; only override if you don't need caching.
				 */
				public getService(ctx: android.app.ContextImpl): any;
				/**
				 * Override this to create a new per-Context instance of the service. getService() will handle locking and caching.
				 */
				public createService(ctx: android.app.ContextImpl): any;
			}
		}
		export class ProgressDialog extends android.app.AlertDialog {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, theme: number);
			/**
			 * Creates a ProgressDialog with a circular, spinning progress bar. This is the default.
			 */
			static STYLE_SPINNER: number;
			/**
			 * Creates a ProgressDialog with a horizontal progress bar.
			 */
			static STYLE_HORIZONTAL: number;
			static class: java.lang.Class<android.app.ProgressDialog>;
			public static show(context: android.content.Context, title: string, message: string): android.app.ProgressDialog;
			public static show(context: android.content.Context, title: string, message: string, indeterminate: boolean): android.app.ProgressDialog;
			public static show(context: android.content.Context, title: string, message: string, indeterminate: boolean, cancelable: boolean): android.app.ProgressDialog;
			public static show(context: android.content.Context, title: string, message: string, indeterminate: boolean, cancelable: boolean, cancelListener: android.content.DialogInterface.IOnCancelListener): android.app.ProgressDialog;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			public onStart(): void;
			protected onStop(): void;
			public setProgress(value: number): void;
			public setSecondaryProgress(secondaryProgress: number): void;
			public getProgress(): number;
			public getSecondaryProgress(): number;
			public getMax(): number;
			public setMax(max: number): void;
			public incrementProgressBy(diff: number): void;
			public incrementSecondaryProgressBy(diff: number): void;
			public setProgressDrawable(d: android.graphics.drawable.Drawable): void;
			public setIndeterminateDrawable(d: android.graphics.drawable.Drawable): void;
			public setIndeterminate(indeterminate: boolean): void;
			public isIndeterminate(): boolean;
			public setMessage(message: string): void;
			public setProgressStyle(style: number): void;
			/**
			 * Change the format of the small text showing current and maximum units of progress. The default is "%1d/%2d". Should not be called during the number is progressing.
			 * @param format A string passed to {@link String#format String.format()};
			 */
			public setProgressNumberFormat(format: string): void;
			/**
			 * Change the format of the small text showing the percentage of progress. The default is NumberFormat#getPercentInstance() NumberFormat.getPercentageInstnace(). Should not be called during the number is progressing.
			 * @param format An instance of a {@link NumberFormat} to generate the
			 */
			public setProgressPercentFormat(format: java.text.NumberFormat): void;
			/**
			 * Start the dialog and display it on screen. The window is placed in the application layer and opaque. Note that you should not override this method to do initialization when the dialog is shown, instead implement that in #onStart.
			 */
			show(): void;
		}
		/**
		 * The download manager is a system service that handles long-running HTTP downloads. Clients may request that a URI be downloaded to a particular destination file. The download manager will conduct the download in the background, taking care of HTTP interactions and retrying downloads after failures or across connectivity changes and system reboots.
		 */
		export class DownloadManager extends java.lang.Object {
			/**
			 * An identifier for a particular download, unique across the system. Clients use this ID to make subsequent calls related to the download.
			 */
			static COLUMN_ID: string;
			/**
			 * The client-supplied title for this download. This will be displayed in system notifications. Defaults to the empty string.
			 */
			static COLUMN_TITLE: string;
			/**
			 * The client-supplied description of this download. This will be displayed in system notifications. Defaults to the empty string.
			 */
			static COLUMN_DESCRIPTION: string;
			/**
			 * URI to be downloaded.
			 */
			static COLUMN_URI: string;
			/**
			 * Internet Media Type of the downloaded file. If no value is provided upon creation, this will initially be null and will be filled in based on the server's response once the download has started.
			 */
			static COLUMN_MEDIA_TYPE: string;
			/**
			 * Total size of the download in bytes. This will initially be -1 and will be filled in once the download starts.
			 */
			static COLUMN_TOTAL_SIZE_BYTES: string;
			/**
			 * Uri where downloaded file will be stored. If a destination is supplied by client, that URI will be used here. Otherwise, the value will initially be null and will be filled in with a generated URI once the download has started.
			 */
			static COLUMN_LOCAL_URI: string;
			/**
			 * The pathname of the file where the download is stored.
			 */
			static COLUMN_LOCAL_FILENAME: string;
			/**
			 * Current status of the download, as one of the STATUS_* constants.
			 */
			static COLUMN_STATUS: string;
			/**
			 * Provides more detail on the status of the download. Its meaning depends on the value of #COLUMN_STATUS.
			 */
			static COLUMN_REASON: string;
			/**
			 * Number of bytes download so far.
			 */
			static COLUMN_BYTES_DOWNLOADED_SO_FAR: string;
			/**
			 * Timestamp when the download was last modified, in System#currentTimeMillis System.currentTimeMillis() (wall clock time in UTC).
			 */
			static COLUMN_LAST_MODIFIED_TIMESTAMP: string;
			/**
			 * The URI to the corresponding entry in MediaProvider for this downloaded entry. It is used to delete the entries from MediaProvider database when it is deleted from the downloaded list.
			 */
			static COLUMN_MEDIAPROVIDER_URI: string;
			/**
			 * Value of #COLUMN_STATUS when the download is waiting to start.
			 */
			static STATUS_PENDING: number;
			/**
			 * Value of #COLUMN_STATUS when the download is currently running.
			 */
			static STATUS_RUNNING: number;
			/**
			 * Value of #COLUMN_STATUS when the download is waiting to retry or resume.
			 */
			static STATUS_PAUSED: number;
			/**
			 * Value of #COLUMN_STATUS when the download has successfully completed.
			 */
			static STATUS_SUCCESSFUL: number;
			/**
			 * Value of #COLUMN_STATUS when the download has failed (and will not be retried).
			 */
			static STATUS_FAILED: number;
			/**
			 * Value of COLUMN_ERROR_CODE when the download has completed with an error that doesn't fit under any other error code.
			 */
			static ERROR_UNKNOWN: number;
			/**
			 * Value of #COLUMN_REASON when a storage issue arises which doesn't fit under any other error code. Use the more specific #ERROR_INSUFFICIENT_SPACE and #ERROR_DEVICE_NOT_FOUND when appropriate.
			 */
			static ERROR_FILE_ERROR: number;
			/**
			 * Value of #COLUMN_REASON when an HTTP code was received that download manager can't handle.
			 */
			static ERROR_UNHANDLED_HTTP_CODE: number;
			/**
			 * Value of #COLUMN_REASON when an error receiving or processing data occurred at the HTTP level.
			 */
			static ERROR_HTTP_DATA_ERROR: number;
			/**
			 * Value of #COLUMN_REASON when there were too many redirects.
			 */
			static ERROR_TOO_MANY_REDIRECTS: number;
			/**
			 * Value of #COLUMN_REASON when there was insufficient storage space. Typically, this is because the SD card is full.
			 */
			static ERROR_INSUFFICIENT_SPACE: number;
			/**
			 * Value of #COLUMN_REASON when no external storage device was found. Typically, this is because the SD card is not mounted.
			 */
			static ERROR_DEVICE_NOT_FOUND: number;
			/**
			 * Value of #COLUMN_REASON when some possibly transient error occurred but we can't resume the download.
			 */
			static ERROR_CANNOT_RESUME: number;
			/**
			 * Value of #COLUMN_REASON when the requested destination file already exists (the download manager will not overwrite an existing file).
			 */
			static ERROR_FILE_ALREADY_EXISTS: number;
			/**
			 * Value of #COLUMN_REASON when the download is paused because some network error occurred and the download manager is waiting before retrying the request.
			 */
			static PAUSED_WAITING_TO_RETRY: number;
			/**
			 * Value of #COLUMN_REASON when the download is waiting for network connectivity to proceed.
			 */
			static PAUSED_WAITING_FOR_NETWORK: number;
			/**
			 * Value of #COLUMN_REASON when the download exceeds a size limit for downloads over the mobile network and the download manager is waiting for a Wi-Fi connection to proceed.
			 */
			static PAUSED_QUEUED_FOR_WIFI: number;
			/**
			 * Value of #COLUMN_REASON when the download is paused for some other reason.
			 */
			static PAUSED_UNKNOWN: number;
			/**
			 * Broadcast intent action sent by the download manager when a download completes.
			 */
			static ACTION_DOWNLOAD_COMPLETE: string;
			/**
			 * Broadcast intent action sent by the download manager when the user clicks on a running download, either from a system notification or from the downloads UI.
			 */
			static ACTION_NOTIFICATION_CLICKED: string;
			/**
			 * Intent action to launch an activity to display all downloads.
			 */
			static ACTION_VIEW_DOWNLOADS: string;
			/**
			 * Intent extra included with #ACTION_VIEW_DOWNLOADS to start DownloadApp in sort-by-size mode.
			 */
			static INTENT_EXTRAS_SORT_BY_SIZE: string;
			/**
			 * Intent extra included with #ACTION_DOWNLOAD_COMPLETE intents, indicating the ID (as a long) of the download that just completed.
			 */
			static EXTRA_DOWNLOAD_ID: string;
			/**
			 * When clicks on multiple notifications are received, the following provides an array of download ids corresponding to the download notification that was clicked. It can be retrieved by the receiver of this Intent using android.content.Intent#getLongArrayExtra(String).
			 */
			static EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS: string;
			static class: java.lang.Class<android.app.DownloadManager>;
			/**
			 * Enqueue a new download. The download will start automatically once the download manager is ready to execute it and connectivity is available.
			 * @param request the parameters specifying this download
			 */
			public enqueue(request: android.app.DownloadManager.Request): any;
			/**
			 * Cancel downloads and remove them from the download manager. Each download will be stopped if it was running, and it will no longer be accessible through the download manager. If there is a downloaded file, partial or complete, it is deleted.
			 * @param ids the IDs of the downloads to remove
			 */
			public remove(ids: native.Array<number>): number;
			/**
			 * Query the download manager about downloads that have been requested.
			 * @param query parameters specifying filters for this query
			 */
			public query(query: android.app.DownloadManager.Query): android.database.ICursor;
			/**
			 * Open a downloaded file for reading. The download must have completed.
			 * @param id the ID of the download
			 */
			public openDownloadedFile(id: number): android.os.ParcelFileDescriptor;
			/**
			 * Returns Uri for the given downloaded file id, if the file is downloaded successfully. otherwise, null is returned.
			 * @param id the id of the downloaded file.
			 */
			public getUriForDownloadedFile(id: number): android.net.Uri;
			/**
			 * Returns Uri for the given downloaded file id, if the file is downloaded successfully. otherwise, null is returned.
			 * @param id the id of the downloaded file.
			 */
			public getMimeTypeForDownloadedFile(id: number): string;
			/**
			 * Returns maximum size, in bytes, of downloads that may go over a mobile connection; or null if there's no limit
			 * @param context the {@link Context} to use for accessing the {@link ContentResolver}
			 */
			public static getMaxBytesOverMobile(context: android.content.Context): java.lang.Long;
			/**
			 * Returns recommended maximum size, in bytes, of downloads that may go over a mobile connection; or null if there's no recommended limit. The user will have the option to bypass this limit.
			 * @param context the {@link Context} to use for accessing the {@link ContentResolver}
			 */
			public static getRecommendedMaxBytesOverMobile(context: android.content.Context): java.lang.Long;
			/**
			 * Adds a file to the downloads database system, so it could appear in Downloads App (and thus become eligible for management by the Downloads App).
			 * @param title the title that would appear for this file in Downloads App.
			 * @param description the description that would appear for this file in Downloads App.
			 * @param isMediaScannerScannable true if the file is to be scanned by MediaScanner. Files
			 * @param mimeType mimetype of the file.
			 * @param path absolute pathname to the file. The file should be world-readable, so that it can
			 * @param length length of the downloaded file
			 * @param showNotification true if a notification is to be sent, false otherwise
			 */
			public addCompletedDownload(title: string, description: string, isMediaScannerScannable: boolean, mimeType: string, path: string, length: number, showNotification: boolean): any;
			/**
			 * Get the DownloadProvider URI for the download with the given ID.
			 */
			getDownloadUri(id: number): android.net.Uri;
			/**
			 * Get a parameterized SQL WHERE clause to select a bunch of IDs.
			 */
			static getWhereClauseForIds(ids: native.Array<number>): string;
			/**
			 * Get the selection args for a clause returned by #getWhereClauseForIds(long[]).
			 */
			static getWhereArgsForIds(ids: native.Array<number>): native.Array<string>;
		}
		export module DownloadManager {
			/**
			 * This class wraps a cursor returned by DownloadProvider -- the "underlying cursor" -- and presents a different set of columns, those defined in the DownloadManager.COLUMN_* constants. Some columns correspond directly to underlying values while others are computed from underlying data.
			 */
			export class CursorTranslator extends android.database.CursorWrapper {
				constructor(cursor: android.database.ICursor, baseUri: android.net.Uri);
				static class: java.lang.Class<android.app.DownloadManager.CursorTranslator>;
				public getInt(columnIndex: number): number;
				public getLong(columnIndex: number): any;
				public getString(columnIndex: number): string;
			}
			/**
			 * This class may be used to filter download manager queries.
			 */
			export class Query extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.app.DownloadManager.Query>;
				/**
				 * Include only the downloads with the given IDs.
				 */
				public setFilterById(ids: native.Array<number>): android.app.DownloadManager.Query;
				/**
				 * Include only downloads with status matching any the given status flags.
				 * @param flags any combination of the STATUS_* bit flags
				 */
				public setFilterByStatus(flags: number): android.app.DownloadManager.Query;
				/**
				 * Run this query using the given ContentResolver.
				 * @param resolver projection the projection to pass to ContentResolver.query()
				 * @param projection 
				 * @param baseUri 
				 */
				runQuery(resolver: android.content.ContentResolver, projection: native.Array<string>, baseUri: android.net.Uri): android.database.ICursor;
			}
			/**
			 * This class contains all the information necessary to request a new download. The URI is the only required parameter.
			 */
			export class Request extends java.lang.Object {
				/**
				 * @param uri the HTTP URI to download.
				 */
				constructor(uri: android.net.Uri);
				/**
				 * Bit flag for #setAllowedNetworkTypes corresponding to ConnectivityManager#TYPE_MOBILE.
				 */
				static NETWORK_MOBILE: number;
				/**
				 * Bit flag for #setAllowedNetworkTypes corresponding to ConnectivityManager#TYPE_WIFI.
				 */
				static NETWORK_WIFI: number;
				/**
				 * This download is visible but only shows in the notifications while it's in progress.
				 */
				static VISIBILITY_VISIBLE: number;
				/**
				 * This download is visible and shows in the notifications while in progress and after completion.
				 */
				static VISIBILITY_VISIBLE_NOTIFY_COMPLETED: number;
				/**
				 * This download doesn't show in the UI or in the notifications.
				 */
				static VISIBILITY_HIDDEN: number;
				/**
				 * This download shows in the notifications after completion ONLY. It is usuable only with DownloadManager#addCompletedDownload(String, String, boolean, String, String, long, boolean).
				 */
				static VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION: number;
				static class: java.lang.Class<android.app.DownloadManager.Request>;
				/**
				 * Set the local destination for the downloaded file. Must be a file URI to a path on external storage, and the calling application must have the WRITE_EXTERNAL_STORAGE permission.
				 */
				public setDestinationUri(uri: android.net.Uri): android.app.DownloadManager.Request;
				/**
				 * Set the local destination for the downloaded file to a path within the application's external files directory (as returned by Context#getExternalFilesDir(String).
				 * @param context the {@link Context} to use in determining the external files directory
				 * @param dirType the directory type to pass to {@link Context#getExternalFilesDir(String)}
				 * @param subPath the path within the external directory, including the destination filename
				 */
				public setDestinationInExternalFilesDir(context: android.content.Context, dirType: string, subPath: string): android.app.DownloadManager.Request;
				/**
				 * Set the local destination for the downloaded file to a path within the public external storage directory (as returned by Environment#getExternalStoragePublicDirectory(String).
				 * @param dirType the directory type to pass to
				 * @param subPath the path within the external directory, including the destination filename
				 */
				public setDestinationInExternalPublicDir(dirType: string, subPath: string): android.app.DownloadManager.Request;
				/**
				 * If the file to be downloaded is to be scanned by MediaScanner, this method should be called before DownloadManager#enqueue(Request) is called.
				 */
				public allowScanningByMediaScanner(): void;
				/**
				 * Add an HTTP header to be included with the download request. The header will be added to the end of the list.
				 * @param header HTTP header name
				 * @param value header value
				 */
				public addRequestHeader(header: string, value: string): android.app.DownloadManager.Request;
				/**
				 * Set the title of this download, to be displayed in notifications (if enabled). If no title is given, a default one will be assigned based on the download filename, once the download starts.
				 */
				public setTitle(title: string): android.app.DownloadManager.Request;
				/**
				 * Set a description of this download, to be displayed in notifications (if enabled)
				 */
				public setDescription(description: string): android.app.DownloadManager.Request;
				/**
				 * Set the MIME content type of this download. This will override the content type declared in the server's response. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7">HTTP/1.1 Media Types</a>
				 */
				public setMimeType(mimeType: string): android.app.DownloadManager.Request;
				/**
				 * Control whether a system notification is posted by the download manager while this download is running. If enabled, the download manager posts notifications about downloads through the system android.app.NotificationManager. By default, a notification is shown.
				 * @param show whether the download manager should show a notification for this download.
				 */
				public setShowRunningNotification(show: boolean): android.app.DownloadManager.Request;
				/**
				 * Control whether a system notification is posted by the download manager while this download is running or when it is completed. If enabled, the download manager posts notifications about downloads through the system android.app.NotificationManager. By default, a notification is shown only when the download is in progress.
				 * @param visibility the visibility setting value
				 */
				public setNotificationVisibility(visibility: number): android.app.DownloadManager.Request;
				/**
				 * Restrict the types of networks over which this download may proceed. By default, all network types are allowed. Consider using #setAllowedOverMetered(boolean) instead, since it's more flexible.
				 * @param flags any combination of the NETWORK_* bit flags.
				 */
				public setAllowedNetworkTypes(flags: number): android.app.DownloadManager.Request;
				/**
				 * Set whether this download may proceed over a roaming connection. By default, roaming is allowed.
				 * @param allowed whether to allow a roaming connection to be used
				 */
				public setAllowedOverRoaming(allowed: boolean): android.app.DownloadManager.Request;
				/**
				 * Set whether this download may proceed over a metered network connection. By default, metered networks are allowed.
				 */
				public setAllowedOverMetered(allow: boolean): android.app.DownloadManager.Request;
				/**
				 * Set whether this download should be displayed in the system's Downloads UI. True by default.
				 * @param isVisible whether to display this download in the Downloads UI
				 */
				public setVisibleInDownloadsUi(isVisible: boolean): android.app.DownloadManager.Request;
				toContentValues(packageName: string): android.content.ContentValues;
			}
		}
		/**
		 * A Fragment is a piece of an application's user interface or behavior that can be placed in an Activity. Interaction with fragments is done through FragmentManager, which can be obtained via Activity#getFragmentManager() Activity.getFragmentManager() and Fragment#getFragmentManager() Fragment.getFragmentManager().
		 */
		export class Fragment extends java.lang.Object implements android.content.IComponentCallbacks2, android.view.View.IOnCreateContextMenuListener {
			/**
			 * Default constructor. <strong>Every</strong> fragment must have an empty constructor, so it can be instantiated when restoring its activity's state. It is strongly recommended that subclasses do not have other constructors with parameters, since these constructors will not be called when the fragment is re-instantiated; instead, arguments can be supplied by the caller with #setArguments and later retrieved by the Fragment with #getArguments. 
			 */
			constructor();
			static class: java.lang.Class<android.app.Fragment>;
			/**
			 * Like #instantiate(Context, String, Bundle) but with a null argument Bundle.
			 */
			public static instantiate(context: android.content.Context, fname: string): android.app.Fragment;
			/**
			 * Create a new instance of a Fragment with the given class name. This is the same as calling its empty constructor.
			 * @param context The calling context being used to instantiate the fragment.
			 * @param fname The class name of the fragment to instantiate.
			 * @param args Bundle of arguments to supply to the fragment, which it
			 */
			public static instantiate(context: android.content.Context, fname: string, args: android.os.Bundle): android.app.Fragment;
			restoreViewState(savedInstanceState: android.os.Bundle): void;
			setIndex(index: number, parent: android.app.Fragment): void;
			isInBackStack(): boolean;
			/**
			 * Subclasses can not override equals().
			 */
			public equals(o: any): boolean;
			/**
			 * Subclasses can not override hashCode().
			 */
			public hashCode(): number;
			public toString(): string;
			/**
			 * Return the identifier this fragment is known by. This is either the android:id value supplied in a layout or the container view ID supplied when adding the fragment.
			 */
			public getId(): number;
			/**
			 * Get the tag name of the fragment, if specified.
			 */
			public getTag(): string;
			/**
			 * Supply the construction arguments for this fragment. This can only be called before the fragment has been attached to its activity; that is, you should call it immediately after constructing the fragment. The arguments supplied here will be retained across fragment destroy and creation.
			 */
			public setArguments(args: android.os.Bundle): void;
			/**
			 * Return the arguments supplied when the fragment was instantiated, if any.
			 */
			public getArguments(): android.os.Bundle;
			/**
			 * Set the initial saved state that this Fragment should restore itself from when first being constructed, as returned by FragmentManager#saveFragmentInstanceState(Fragment) FragmentManager.saveFragmentInstanceState.
			 * @param state The state the fragment should be restored from.
			 */
			public setInitialSavedState(state: android.app.Fragment.SavedState): void;
			/**
			 * Optional target for this fragment. This may be used, for example, if this fragment is being started by another, and when done wants to give a result back to the first. The target set here is retained across instances via FragmentManager#putFragment FragmentManager.putFragment().
			 * @param fragment The fragment that is the target of this one.
			 * @param requestCode Optional request code, for convenience if you
			 */
			public setTargetFragment(fragment: android.app.Fragment, requestCode: number): void;
			/**
			 * Return the target fragment set by #setTargetFragment.
			 */
			public getTargetFragment(): android.app.Fragment;
			/**
			 * Return the target request code set by #setTargetFragment.
			 */
			public getTargetRequestCode(): number;
			/**
			 * Return the Activity this fragment is currently associated with.
			 */
			public getActivity(): android.app.Activity;
			/**
			 * Return <code>getActivity().getResources()</code>.
			 */
			public getResources(): android.content.res.Resources;
			/**
			 * Return a localized, styled CharSequence from the application's package's default string table.
			 * @param resId Resource id for the CharSequence text
			 */
			public getText(resId: number): string;
			/**
			 * Return a localized string from the application's package's default string table.
			 * @param resId Resource id for the string
			 */
			public getString(resId: number): string;
			/**
			 * Return a localized formatted string from the application's package's default string table, substituting the format arguments as defined in java.util.Formatter and java.lang.String#format.
			 * @param resId Resource id for the format string
			 * @param formatArgs The format arguments that will be used for substitution.
			 */
			public getString(resId: number, formatArgs: native.Array<any>): string;
			/**
			 * Return the FragmentManager for interacting with fragments associated with this fragment's activity. Note that this will be non-null slightly before #getActivity(), during the time from when the fragment is placed in a FragmentTransaction until it is committed and attached to its activity.
			 */
			public getFragmentManager(): android.app.FragmentManager;
			/**
			 * Return a private FragmentManager for placing and managing Fragments inside of this Fragment.
			 */
			public getChildFragmentManager(): android.app.FragmentManager;
			/**
			 * Returns the parent Fragment containing this Fragment. If this Fragment is attached directly to an Activity, returns null.
			 */
			public getParentFragment(): android.app.Fragment;
			/**
			 * Return true if the fragment is currently added to its activity.
			 */
			public isAdded(): boolean;
			/**
			 * Return true if the fragment has been explicitly detached from the UI. That is, FragmentTransaction#detach(Fragment) FragmentTransaction.detach(Fragment) has been used on it.
			 */
			public isDetached(): boolean;
			/**
			 * Return true if this fragment is currently being removed from its activity. This is <em>not</em> whether its activity is finishing, but rather whether it is in the process of being removed from its activity.
			 */
			public isRemoving(): boolean;
			/**
			 * Return true if the layout is included as part of an activity view hierarchy via the &lt;fragment&gt; tag. This will always be true when fragments are created through the &lt;fragment&gt; tag, <em>except</em> in the case where an old fragment is restored from a previous state and it does not appear in the layout of the current state.
			 */
			public isInLayout(): boolean;
			/**
			 * Return true if the fragment is in the resumed state. This is true for the duration of #onResume() and #onPause() as well.
			 */
			public isResumed(): boolean;
			/**
			 * Return true if the fragment is currently visible to the user. This means it: (1) has been added, (2) has its view attached to the window, and (3) is not hidden.
			 */
			public isVisible(): boolean;
			/**
			 * Return true if the fragment has been hidden. By default fragments are shown. You can find out about changes to this state with #onHiddenChanged. Note that the hidden state is orthogonal to other states -- that is, to be visible to the user, a fragment must be both started and not hidden.
			 */
			public isHidden(): boolean;
			/**
			 * Called when the hidden state (as returned by #isHidden() of the fragment has changed. Fragments start out not hidden; this will be called whenever the fragment changes state from that.
			 * @param hidden True if the fragment is now hidden, false if it is not
			 */
			public onHiddenChanged(hidden: boolean): void;
			/**
			 * Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be used with fragments not in the back stack. If set, the fragment lifecycle will be slightly different when an activity is recreated: <ul> <li> #onDestroy() will not be called (but #onDetach() still will be, because the fragment is being detached from its current activity). <li> #onCreate(Bundle) will not be called since the fragment is not being re-created. <li> #onAttach(Activity) and #onActivityCreated(Bundle) <b>will</b> still be called. </ul>
			 */
			public setRetainInstance(retain: boolean): void;
			public getRetainInstance(): boolean;
			/**
			 * Report that this fragment would like to participate in populating the options menu by receiving a call to #onCreateOptionsMenu and related methods. 
			 * @param hasMenu If true, the fragment has menu items to contribute.
			 */
			public setHasOptionsMenu(hasMenu: boolean): void;
			/**
			 * Set a hint for whether this fragment's menu should be visible. This is useful if you know that a fragment has been placed in your view hierarchy so that the user can not currently seen it, so any menu items it has should also not be shown.
			 * @param menuVisible The default is true, meaning the fragment's menu will
			 */
			public setMenuVisibility(menuVisible: boolean): void;
			/**
			 * Set a hint to the system about whether this fragment's UI is currently visible to the user. This hint defaults to true and is persistent across fragment instance state save and restore.
			 * @param isVisibleToUser true if this fragment's UI is currently visible to the user (default),
			 */
			public setUserVisibleHint(isVisibleToUser: boolean): void;
			public getUserVisibleHint(): boolean;
			/**
			 * Return the LoaderManager for this fragment, creating it if needed.
			 */
			public getLoaderManager(): android.app.LoaderManager;
			/**
			 * Call Activity#startActivity(Intent) on the fragment's containing Activity.
			 * @param intent The intent to start.
			 */
			public startActivity(intent: android.content.Intent): void;
			/**
			 * Call Activity#startActivity(Intent, Bundle) on the fragment's containing Activity.
			 * @param intent The intent to start.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivity(intent: android.content.Intent, options: android.os.Bundle): void;
			/**
			 * Call Activity#startActivityForResult(Intent, int) on the fragment's containing Activity.
			 */
			public startActivityForResult(intent: android.content.Intent, requestCode: number): void;
			/**
			 * Call Activity#startActivityForResult(Intent, int, Bundle) on the fragment's containing Activity.
			 */
			public startActivityForResult(intent: android.content.Intent, requestCode: number, options: android.os.Bundle): void;
			/**
			 * Receive the result from a previous call to #startActivityForResult(Intent, int). This follows the related Activity API as described there in Activity#onActivityResult(int, int, Intent). 
			 * @param requestCode The integer request code originally supplied to
			 * @param resultCode The integer result code returned by the child activity
			 * @param data An Intent, which can return result data to the caller
			 */
			public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
			/**
			 *  Use #onInflate(Activity, AttributeSet, Bundle) instead.
			 */
			public onInflate(attrs: android.util.IAttributeSet, savedInstanceState: android.os.Bundle): void;
			/**
			 * Called when a fragment is being created as part of a view layout inflation, typically from setting the content view of an activity. This may be called immediately after the fragment is created from a <fragment> tag in a layout file. Note this is <em>before</em> the fragment's #onAttach(Activity) has been called; all you should do here is parse the attributes and save them away. 
			 * @param activity The Activity that is inflating this fragment.
			 * @param attrs The attributes at the tag where the fragment is
			 * @param savedInstanceState If the fragment is being re-created from
			 */
			public onInflate(activity: android.app.Activity, attrs: android.util.IAttributeSet, savedInstanceState: android.os.Bundle): void;
			/**
			 * Called when a fragment is first attached to its activity. #onCreate(Bundle) will be called after this.
			 */
			public onAttach(activity: android.app.Activity): void;
			/**
			 * Called when a fragment loads an animation.
			 */
			public onCreateAnimator(transit: number, enter: boolean, nextAnim: number): android.animation.Animator;
			/**
			 * Called to do initial creation of a fragment. This is called after #onAttach(Activity) and before #onCreateView(LayoutInflater, ViewGroup, Bundle). 
			 * @param savedInstanceState If the fragment is being re-created from
			 */
			public onCreate(savedInstanceState: android.os.Bundle): void;
			/**
			 * Called to have the fragment instantiate its user interface view. This is optional, and non-graphical fragments can return null (which is the default implementation). This will be called between #onCreate(Bundle) and #onActivityCreated(Bundle). 
			 * @param inflater The LayoutInflater object that can be used to inflate
			 * @param container If non-null, this is the parent view that the fragment's
			 * @param savedInstanceState If non-null, this fragment is being re-constructed
			 */
			public onCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
			/**
			 * Called immediately after #onCreateView(LayoutInflater, ViewGroup, Bundle) has returned, but before any saved state has been restored in to the view. This gives subclasses a chance to initialize themselves once they know their view hierarchy has been completely created. The fragment's view hierarchy is not however attached to its parent at this point.
			 * @param view The View returned by {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)}.
			 * @param savedInstanceState If non-null, this fragment is being re-constructed
			 */
			public onViewCreated(view: android.view.View, savedInstanceState: android.os.Bundle): void;
			/**
			 * Get the root view for the fragment's layout (the one returned by #onCreateView), if provided. 
			 */
			public getView(): android.view.View;
			/**
			 * Called when the fragment's activity has been created and this fragment's view hierarchy instantiated. It can be used to do final initialization once these pieces are in place, such as retrieving views or restoring state. It is also useful for fragments that use #setRetainInstance(boolean) to retain their instance, as this callback tells the fragment when it is fully associated with the new activity instance. This is called after #onCreateView and before #onViewStateRestored(Bundle).
			 * @param savedInstanceState If the fragment is being re-created from
			 */
			public onActivityCreated(savedInstanceState: android.os.Bundle): void;
			/**
			 * Called when all saved state has been restored into the view hierarchy of the fragment. This can be used to do initialization based on saved state that you are letting the view hierarchy track itself, such as whether check box widgets are currently checked. This is called after #onActivityCreated(Bundle) and before #onStart().
			 * @param savedInstanceState If the fragment is being re-created from
			 */
			public onViewStateRestored(savedInstanceState: android.os.Bundle): void;
			/**
			 * Called when the Fragment is visible to the user. This is generally tied to Activity#onStart() Activity.onStart of the containing Activity's lifecycle.
			 */
			public onStart(): void;
			/**
			 * Called when the fragment is visible to the user and actively running. This is generally tied to Activity#onResume() Activity.onResume of the containing Activity's lifecycle.
			 */
			public onResume(): void;
			/**
			 * Called to ask the fragment to save its current dynamic state, so it can later be reconstructed in a new instance of its process is restarted. If a new instance of the fragment later needs to be created, the data you place in the Bundle here will be available in the Bundle given to #onCreate(Bundle), #onCreateView(LayoutInflater, ViewGroup, Bundle), and #onActivityCreated(Bundle).
			 * @param outState Bundle in which to place your saved state.
			 */
			public onSaveInstanceState(outState: android.os.Bundle): void;
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			/**
			 * Called when the Fragment is no longer resumed. This is generally tied to Activity#onPause() Activity.onPause of the containing Activity's lifecycle.
			 */
			public onPause(): void;
			/**
			 * Called when the Fragment is no longer started. This is generally tied to Activity#onStop() Activity.onStop of the containing Activity's lifecycle.
			 */
			public onStop(): void;
			public onLowMemory(): void;
			public onTrimMemory(level: number): void;
			/**
			 * Called when the view previously created by #onCreateView has been detached from the fragment. The next time the fragment needs to be displayed, a new view will be created. This is called after #onStop() and before #onDestroy(). It is called <em>regardless</em> of whether #onCreateView returned a non-null view. Internally it is called after the view's state has been saved but before it has been removed from its parent.
			 */
			public onDestroyView(): void;
			/**
			 * Called when the fragment is no longer in use. This is called after #onStop() and before #onDetach().
			 */
			public onDestroy(): void;
			/**
			 * Called by the fragment manager once this fragment has been removed, so that we don't have any left-over state if the application decides to re-use the instance. This only clears state that the framework internally manages, not things the application sets.
			 */
			initState(): void;
			/**
			 * Called when the fragment is no longer attached to its activity. This is called after #onDestroy().
			 */
			public onDetach(): void;
			/**
			 * Initialize the contents of the Activity's standard options menu. You should place your menu items in to <var>menu</var>. For this method to be called, you must have first called #setHasOptionsMenu. See Activity#onCreateOptionsMenu(Menu) Activity.onCreateOptionsMenu for more information. 
			 * @param menu The options menu in which you place your items.
			 * @param inflater 
			 */
			public onCreateOptionsMenu(menu: android.view.IMenu, inflater: android.view.MenuInflater): void;
			/**
			 * Prepare the Screen's standard options menu to be displayed. This is called right before the menu is shown, every time it is shown. You can use this method to efficiently enable/disable items or otherwise dynamically modify the contents. See Activity#onPrepareOptionsMenu(Menu) Activity.onPrepareOptionsMenu for more information. 
			 * @param menu The options menu as last shown or first initialized by
			 */
			public onPrepareOptionsMenu(menu: android.view.IMenu): void;
			/**
			 * Called when this fragment's option menu items are no longer being included in the overall options menu. Receiving this call means that the menu needed to be rebuilt, but this fragment's items were not included in the newly built menu (its #onCreateOptionsMenu(Menu, MenuInflater) was not called).
			 */
			public onDestroyOptionsMenu(): void;
			/**
			 * This hook is called whenever an item in your options menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities. 
			 * @param item The menu item that was selected.
			 */
			public onOptionsItemSelected(item: android.view.IMenuItem): boolean;
			/**
			 * This hook is called whenever the options menu is being closed (either by the user canceling the menu with the back/menu button, or when an item is selected). 
			 * @param menu The options menu as last shown or first initialized by
			 */
			public onOptionsMenuClosed(menu: android.view.IMenu): void;
			/**
			 * Called when a context menu for the view is about to be shown. Unlike #onCreateOptionsMenu, this will be called every time the context menu is about to be shown and should be populated for the view (or item inside the view for AdapterView subclasses, this can be found in the menuInfo)).
			 */
			public onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
			/**
			 * Registers a context menu to be shown for the given view (multiple views can show the context menu). This method will set the OnCreateContextMenuListener on the view to this fragment, so #onCreateContextMenu(ContextMenu, View, ContextMenuInfo) will be called when it is time to show the context menu. #unregisterForContextMenu(View)
			 * @param view The view that should show a context menu.
			 */
			public registerForContextMenu(view: android.view.View): void;
			/**
			 * Prevents a context menu to be shown for the given view. This method will remove the OnCreateContextMenuListener on the view. #registerForContextMenu(View)
			 * @param view The view that should stop showing a context menu.
			 */
			public unregisterForContextMenu(view: android.view.View): void;
			/**
			 * This hook is called whenever an item in a context menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.
			 * @param item The context menu item that was selected.
			 */
			public onContextItemSelected(item: android.view.IMenuItem): boolean;
			/**
			 * Print the Fragments's state into the given stream.
			 * @param prefix Text to print at the front of each line.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param writer The PrintWriter to which you should dump your state. This will be
			 * @param args additional arguments to the dump request.
			 */
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			findFragmentByWho(who: string): android.app.Fragment;
			instantiateChildFragmentManager(): void;
			performCreate(savedInstanceState: android.os.Bundle): void;
			performCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
			performActivityCreated(savedInstanceState: android.os.Bundle): void;
			performStart(): void;
			performResume(): void;
			performConfigurationChanged(newConfig: android.content.res.Configuration): void;
			performLowMemory(): void;
			performTrimMemory(level: number): void;
			performCreateOptionsMenu(menu: android.view.IMenu, inflater: android.view.MenuInflater): boolean;
			performPrepareOptionsMenu(menu: android.view.IMenu): boolean;
			performOptionsItemSelected(item: android.view.IMenuItem): boolean;
			performContextItemSelected(item: android.view.IMenuItem): boolean;
			performOptionsMenuClosed(menu: android.view.IMenu): void;
			performSaveInstanceState(outState: android.os.Bundle): void;
			performPause(): void;
			performStop(): void;
			performDestroyView(): void;
			performDestroy(): void;
		}
		export module Fragment {
			/**
			 * State information that has been retrieved from a fragment instance through FragmentManager#saveFragmentInstanceState(Fragment) FragmentManager.saveFragmentInstanceState.
			 */
			export class SavedState extends java.lang.Object implements android.os.IParcelable {
				static CREATOR: android.os.Parcelable.IClassLoaderCreator<android.app.Fragment.SavedState>;
				static class: java.lang.Class<android.app.Fragment.SavedState>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
			/**
			 * Thrown by Fragment#instantiate(Context, String, Bundle) when there is an instantiation failure.
			 */
			export class InstantiationException extends android.util.AndroidRuntimeException {
				constructor(msg: string, cause: java.lang.Exception);
				static class: java.lang.Class<android.app.Fragment.InstantiationException>;
			}
		}
		export class TabActivity extends android.app.ActivityGroup {
			constructor();
			static class: java.lang.Class<android.app.TabActivity>;
			/**
			 * Sets the default tab that is the first tab highlighted. 
			 * @param tag the name of the default tab
			 */
			public setDefaultTab(tag: string): void;
			/**
			 * Sets the default tab that is the first tab highlighted. 
			 * @param index the index of the default tab
			 */
			public setDefaultTab(index: number): void;
			protected onRestoreInstanceState(state: android.os.Bundle): void;
			protected onPostCreate(icicle: android.os.Bundle): void;
			protected onSaveInstanceState(outState: android.os.Bundle): void;
			/**
			 * Updates the screen state (current list and other views) when the content changes. Activity#onContentChanged()
			 */
			public onContentChanged(): void;
			protected onChildTitleChanged(childActivity: android.app.Activity, title: string): void;
			/**
			 * Returns the TabHost the activity is using to host its tabs.
			 */
			public getTabHost(): android.widget.TabHost;
			/**
			 * Returns the TabWidget the activity is using to draw the actual tabs.
			 */
			public getTabWidget(): android.widget.TabWidget;
		}
		/**
		 * API for performing a set of Fragment operations.
		 */
		export class FragmentTransaction extends java.lang.Object {
			constructor();
			/**
			 * Bit mask that is set for all enter transitions.
			 */
			static TRANSIT_ENTER_MASK: number;
			/**
			 * Bit mask that is set for all exit transitions.
			 */
			static TRANSIT_EXIT_MASK: number;
			/**
			 * Not set up for a transition.
			 */
			static TRANSIT_UNSET: number;
			/**
			 * No animation for transition.
			 */
			static TRANSIT_NONE: number;
			/**
			 * Fragment is being added onto the stack
			 */
			static TRANSIT_FRAGMENT_OPEN: number;
			/**
			 * Fragment is being removed from the stack
			 */
			static TRANSIT_FRAGMENT_CLOSE: number;
			/**
			 * Fragment should simply fade in or out; that is, no strong navigation associated with it except that it is appearing or disappearing for some reason.
			 */
			static TRANSIT_FRAGMENT_FADE: number;
			static class: java.lang.Class<android.app.FragmentTransaction>;
			/**
			 * Calls #add(int, Fragment, String) with a 0 containerViewId.
			 */
			public add(fragment: android.app.Fragment, tag: string): android.app.FragmentTransaction;
			/**
			 * Calls #add(int, Fragment, String) with a null tag.
			 */
			public add(containerViewId: number, fragment: android.app.Fragment): android.app.FragmentTransaction;
			/**
			 * Add a fragment to the activity state. This fragment may optionally also have its view (if Fragment#onCreateView Fragment.onCreateView returns non-null) into a container view of the activity. 
			 * @param containerViewId Optional identifier of the container this fragment is
			 * @param fragment The fragment to be added. This fragment must not already
			 * @param tag Optional tag name for the fragment, to later retrieve the
			 */
			public add(containerViewId: number, fragment: android.app.Fragment, tag: string): android.app.FragmentTransaction;
			/**
			 * Calls #replace(int, Fragment, String) with a null tag.
			 */
			public replace(containerViewId: number, fragment: android.app.Fragment): android.app.FragmentTransaction;
			/**
			 * Replace an existing fragment that was added to a container. This is essentially the same as calling #remove(Fragment) for all currently added fragments that were added with the same containerViewId and then #add(int, Fragment, String) with the same arguments given here. 
			 * @param containerViewId Identifier of the container whose fragment(s) are
			 * @param fragment The new fragment to place in the container.
			 * @param tag Optional tag name for the fragment, to later retrieve the
			 */
			public replace(containerViewId: number, fragment: android.app.Fragment, tag: string): android.app.FragmentTransaction;
			/**
			 * Remove an existing fragment. If it was added to a container, its view is also removed from that container. 
			 * @param fragment The fragment to be removed.
			 */
			public remove(fragment: android.app.Fragment): android.app.FragmentTransaction;
			/**
			 * Hides an existing fragment. This is only relevant for fragments whose views have been added to a container, as this will cause the view to be hidden. 
			 * @param fragment The fragment to be hidden.
			 */
			public hide(fragment: android.app.Fragment): android.app.FragmentTransaction;
			/**
			 * Shows a previously hidden fragment. This is only relevant for fragments whose views have been added to a container, as this will cause the view to be shown. 
			 * @param fragment The fragment to be shown.
			 */
			public show(fragment: android.app.Fragment): android.app.FragmentTransaction;
			/**
			 * Detach the given fragment from the UI. This is the same state as when it is put on the back stack: the fragment is removed from the UI, however its state is still being actively managed by the fragment manager. When going into this state its view hierarchy is destroyed.
			 * @param fragment The fragment to be detached.
			 */
			public detach(fragment: android.app.Fragment): android.app.FragmentTransaction;
			/**
			 * Re-attach a fragment after it had previously been deatched from the UI with #detach(Fragment). This causes its view hierarchy to be re-created, attached to the UI, and displayed.
			 * @param fragment The fragment to be attached.
			 */
			public attach(fragment: android.app.Fragment): android.app.FragmentTransaction;
			public isEmpty(): boolean;
			/**
			 * Set specific animation resources to run for the fragments that are entering and exiting in this transaction. These animations will not be played when popping the back stack.
			 */
			public setCustomAnimations(enter: number, exit: number): android.app.FragmentTransaction;
			/**
			 * Set specific animation resources to run for the fragments that are entering and exiting in this transaction. The <code>popEnter</code> and <code>popExit</code> animations will be played for enter/exit operations specifically when popping the back stack.
			 */
			public setCustomAnimations(enter: number, exit: number, popEnter: number, popExit: number): android.app.FragmentTransaction;
			/**
			 * Select a standard transition animation for this transaction. May be one of #TRANSIT_NONE, #TRANSIT_FRAGMENT_OPEN, or #TRANSIT_FRAGMENT_CLOSE
			 */
			public setTransition(transit: number): android.app.FragmentTransaction;
			/**
			 * Set a custom style resource that will be used for resolving transit animations.
			 */
			public setTransitionStyle(styleRes: number): android.app.FragmentTransaction;
			/**
			 * Add this transaction to the back stack. This means that the transaction will be remembered after it is committed, and will reverse its operation when later popped off the stack.
			 * @param name An optional name for this back stack state, or null.
			 */
			public addToBackStack(name: string): android.app.FragmentTransaction;
			/**
			 * Returns true if this FragmentTransaction is allowed to be added to the back stack. If this method would return false, #addToBackStack(String) will throw IllegalStateException.
			 */
			public isAddToBackStackAllowed(): boolean;
			/**
			 * Disallow calls to #addToBackStack(String). Any future calls to addToBackStack will throw IllegalStateException. If addToBackStack has already been called, this method will throw IllegalStateException.
			 */
			public disallowAddToBackStack(): android.app.FragmentTransaction;
			/**
			 * Set the full title to show as a bread crumb when this transaction is on the back stack, as used by FragmentBreadCrumbs.
			 * @param res A string resource containing the title.
			 */
			public setBreadCrumbTitle(res: number): android.app.FragmentTransaction;
			/**
			 * Like #setBreadCrumbTitle(int) but taking a raw string; this method is <em>not</em> recommended, as the string can not be changed later if the locale changes.
			 */
			public setBreadCrumbTitle(text: string): android.app.FragmentTransaction;
			/**
			 * Set the short title to show as a bread crumb when this transaction is on the back stack, as used by FragmentBreadCrumbs.
			 * @param res A string resource containing the title.
			 */
			public setBreadCrumbShortTitle(res: number): android.app.FragmentTransaction;
			/**
			 * Like #setBreadCrumbShortTitle(int) but taking a raw string; this method is <em>not</em> recommended, as the string can not be changed later if the locale changes.
			 */
			public setBreadCrumbShortTitle(text: string): android.app.FragmentTransaction;
			/**
			 * Schedules a commit of this transaction. The commit does not happen immediately; it will be scheduled as work on the main thread to be done the next time that thread is ready.
			 */
			public commit(): number;
			/**
			 * Like #commit but allows the commit to be executed after an activity's state is saved. This is dangerous because the commit can be lost if the activity needs to later be restored from its state, so this should only be used for cases where it is okay for the UI state to change unexpectedly on the user.
			 */
			public commitAllowingStateLoss(): number;
		}
		/**
		 * Integration tests of the DownloadManager API.
		 */
		export class DownloadManagerStressTest extends android.app.DownloadManagerBaseTest {
			constructor();
			static class: java.lang.Class<android.app.DownloadManagerStressTest>;
			/**
			 * 
			 */
			public setUp(): void;
			/**
			 * 
			 */
			public tearDown(): void;
			/**
			 * Attempts to download several files simultaneously
			 */
			public testMultipleDownloads(): void;
			/**
			 * Tests trying to download a large file (50M bytes).
			 */
			public testDownloadLargeFile(): void;
			/**
			 * Tests downloading a file to system cache when there isn't enough space in the system cache to hold the entire file. DownloadManager deletes enough files to make space for the new download.
			 */
			public testDownloadToCacheWithAlmostFullCache(): void;
		}
		/**
		 * Base class for Dialogs. 
		 */
		export class Dialog extends java.lang.Object implements android.content.IDialogInterface, android.view.Window.ICallback, android.view.KeyEvent.ICallback, android.view.View.IOnCreateContextMenuListener {
			/**
			 * Create a Dialog window that uses the default dialog frame style. 
			 * @param context The Context the Dialog is to run it. In particular, it
			 */
			constructor(context: android.content.Context);
			/**
			 * Create a Dialog window that uses a custom dialog style. 
			 * @param context The Context in which the Dialog should run. In particular, it
			 * @param theme A style resource describing the theme to use for the
			 */
			constructor(context: android.content.Context, theme: number);
			static class: java.lang.Class<android.app.Dialog>;
			/**
			 * Retrieve the Context this Dialog is running in. 
			 */
			public getContext(): android.content.Context;
			/**
			 * Retrieve the ActionBar attached to this dialog, if present.
			 */
			public getActionBar(): android.app.ActionBar;
			/**
			 * Sets the Activity that owns this dialog. An example use: This Dialog will use the suggested volume control stream of the Activity. 
			 * @param activity The Activity that owns this dialog.
			 */
			public setOwnerActivity(activity: android.app.Activity): void;
			/**
			 * Returns the Activity that owns this Dialog. For example, if Activity#showDialog(int) is used to show this Dialog, that Activity will be the owner (by default). Depending on how this dialog was created, this may return null. 
			 */
			public getOwnerActivity(): android.app.Activity;
			public isShowing(): boolean;
			/**
			 * Start the dialog and display it on screen. The window is placed in the application layer and opaque. Note that you should not override this method to do initialization when the dialog is shown, instead implement that in #onStart.
			 */
			public show(): void;
			/**
			 * Hide the dialog, but do not dismiss it.
			 */
			public hide(): void;
			/**
			 * Dismiss this dialog, removing it from the screen. This method can be invoked safely from any thread. Note that you should not override this method to do cleanup when the dialog is dismissed, instead implement that in #onStop.
			 */
			public dismiss(): void;
			dismissDialog(): void;
			dispatchOnCreate(savedInstanceState: android.os.Bundle): void;
			/**
			 * Similar to Activity#onCreate, you should initialize your dialog in this method, including calling #setContentView.
			 * @param savedInstanceState If this dialog is being reinitalized after a
			 */
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			/**
			 * Called when the dialog is starting.
			 */
			protected onStart(): void;
			/**
			 * Called to tell you that you're stopping.
			 */
			protected onStop(): void;
			/**
			 * Saves the state of the dialog into a bundle.
			 */
			public onSaveInstanceState(): android.os.Bundle;
			/**
			 * Restore the state of the dialog from a previously saved bundle.
			 * @param savedInstanceState The state of the dialog previously saved by
			 */
			public onRestoreInstanceState(savedInstanceState: android.os.Bundle): void;
			/**
			 * Retrieve the current Window for the activity. This can be used to directly access parts of the Window API that are not available through Activity/Screen. 
			 */
			public getWindow(): android.view.Window;
			/**
			 * Call android.view.Window#getCurrentFocus on the Window if this Activity to return the currently focused view. 
			 */
			public getCurrentFocus(): android.view.View;
			/**
			 * Finds a view that was identified by the id attribute from the XML that was processed in #onStart.
			 * @param id the identifier of the view to find
			 */
			public findViewById(id: number): android.view.View;
			/**
			 * Set the screen content from a layout resource. The resource will be inflated, adding all top-level views to the screen. 
			 * @param layoutResID Resource ID to be inflated.
			 */
			public setContentView(layoutResID: number): void;
			/**
			 * Set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarhcy. 
			 * @param view The desired content to display.
			 */
			public setContentView(view: android.view.View): void;
			/**
			 * Set the screen content to an explicit view. This view is placed directly into the screen's view hierarchy. It can itself be a complex view hierarhcy. 
			 * @param view The desired content to display.
			 * @param params Layout parameters for the view.
			 */
			public setContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Add an additional content view to the screen. Added after any existing ones in the screen -- existing views are NOT removed. 
			 * @param view The desired content to display.
			 * @param params Layout parameters for the view.
			 */
			public addContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
			/**
			 * Set the title text for this dialog's window. 
			 * @param title The new text to display in the title.
			 */
			public setTitle(title: string): void;
			/**
			 * Set the title text for this dialog's window. The text is retrieved from the resources with the supplied identifier.
			 * @param titleId the title's text resource identifier
			 */
			public setTitle(titleId: number): void;
			/**
			 * A key was pressed down. 
			 */
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyLongPress(int, KeyEvent) KeyEvent.Callback.onKeyLongPress(): always returns false (doesn't handle the event).
			 */
			public onKeyLongPress(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * A key was released. 
			 */
			public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Default implementation of KeyEvent.Callback#onKeyMultiple(int, int, KeyEvent) KeyEvent.Callback.onKeyMultiple(): always returns false (doesn't handle the event).
			 */
			public onKeyMultiple(keyCode: number, repeatCount: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when the dialog has detected the user's press of the back key. The default implementation simply cancels the dialog (only if it is cancelable), but you can override this to do whatever you want.
			 */
			public onBackPressed(): void;
			/**
			 * Called when a key shortcut event is not handled by any of the views in the Dialog. Override this method to implement global key shortcuts for the Dialog. Key shortcuts can also be implemented by setting the MenuItem#setShortcut(char, char) shortcut property of menu items.
			 * @param keyCode The value in event.getKeyCode().
			 * @param event Description of the key event.
			 */
			public onKeyShortcut(keyCode: number, event: android.view.KeyEvent): boolean;
			/**
			 * Called when a touch screen event was not handled by any of the views under it. This is most useful to process touch events that happen outside of your window bounds, where there is no view to receive it. 
			 * @param event The touch screen event being processed.
			 */
			public onTouchEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Called when the trackball was moved and not handled by any of the views inside of the activity. So, for example, if the trackball moves while focus is on a button, you will receive a call here because buttons do not normally do anything with trackball events. The call here happens <em>before</em> trackball movements are converted to DPAD key events, which then get sent back to the view hierarchy, and will be processed at the point for things like focus navigation. 
			 * @param event The trackball event being processed.
			 */
			public onTrackballEvent(event: android.view.MotionEvent): boolean;
			/**
			 * Called when a generic motion event was not handled by any of the views inside of the dialog.
			 * @param event The generic motion event being processed.
			 */
			public onGenericMotionEvent(event: android.view.MotionEvent): boolean;
			public onWindowAttributesChanged(params: android.view.WindowManager.LayoutParams): void;
			public onContentChanged(): void;
			public onWindowFocusChanged(hasFocus: boolean): void;
			public onAttachedToWindow(): void;
			public onDetachedFromWindow(): void;
			/**
			 * Called to process key events. You can override this to intercept all key events before they are dispatched to the window. Be sure to call this implementation for key events that should be handled normally. 
			 * @param event The key event.
			 */
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Called to process a key shortcut event. You can override this to intercept all key shortcut events before they are dispatched to the window. Be sure to call this implementation for key shortcut events that should be handled normally.
			 * @param event The key shortcut event.
			 */
			public dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
			/**
			 * Called to process touch screen events. You can override this to intercept all touch screen events before they are dispatched to the window. Be sure to call this implementation for touch screen events that should be handled normally. 
			 * @param ev The touch screen event.
			 */
			public dispatchTouchEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * Called to process trackball events. You can override this to intercept all trackball events before they are dispatched to the window. Be sure to call this implementation for trackball events that should be handled normally. 
			 * @param ev The trackball event.
			 */
			public dispatchTrackballEvent(ev: android.view.MotionEvent): boolean;
			/**
			 * Called to process generic motion events. You can override this to intercept all generic motion events before they are dispatched to the window. Be sure to call this implementation for generic motion events that should be handled normally.
			 * @param ev The generic motion event.
			 */
			public dispatchGenericMotionEvent(ev: android.view.MotionEvent): boolean;
			public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
			/**
			 *  Activity#onCreatePanelView(int)
			 */
			public onCreatePanelView(featureId: number): android.view.View;
			/**
			 *  Activity#onCreatePanelMenu(int, Menu)
			 */
			public onCreatePanelMenu(featureId: number, menu: android.view.IMenu): boolean;
			/**
			 *  Activity#onPreparePanel(int, View, Menu)
			 */
			public onPreparePanel(featureId: number, view: android.view.View, menu: android.view.IMenu): boolean;
			/**
			 *  Activity#onMenuOpened(int, Menu)
			 */
			public onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
			/**
			 *  Activity#onMenuItemSelected(int, MenuItem)
			 */
			public onMenuItemSelected(featureId: number, item: android.view.IMenuItem): boolean;
			/**
			 *  Activity#onPanelClosed(int, Menu)
			 */
			public onPanelClosed(featureId: number, menu: android.view.IMenu): void;
			/**
			 * It is usually safe to proxy this call to the owner activity's Activity#onCreateOptionsMenu(Menu) if the client desires the same menu for this Dialog. Activity#onCreateOptionsMenu(Menu) #getOwnerActivity()
			 */
			public onCreateOptionsMenu(menu: android.view.IMenu): boolean;
			/**
			 * It is usually safe to proxy this call to the owner activity's Activity#onPrepareOptionsMenu(Menu) if the client desires the same menu for this Dialog. Activity#onPrepareOptionsMenu(Menu) #getOwnerActivity()
			 */
			public onPrepareOptionsMenu(menu: android.view.IMenu): boolean;
			/**
			 *  Activity#onOptionsItemSelected(MenuItem)
			 */
			public onOptionsItemSelected(item: android.view.IMenuItem): boolean;
			/**
			 *  Activity#onOptionsMenuClosed(Menu)
			 */
			public onOptionsMenuClosed(menu: android.view.IMenu): void;
			/**
			 *  Activity#openOptionsMenu()
			 */
			public openOptionsMenu(): void;
			/**
			 *  Activity#closeOptionsMenu()
			 */
			public closeOptionsMenu(): void;
			/**
			 *  Activity#invalidateOptionsMenu()
			 */
			public invalidateOptionsMenu(): void;
			/**
			 *  Activity#onCreateContextMenu(ContextMenu, View, ContextMenuInfo)
			 */
			public onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
			/**
			 *  Activity#registerForContextMenu(View)
			 */
			public registerForContextMenu(view: android.view.View): void;
			/**
			 *  Activity#unregisterForContextMenu(View)
			 */
			public unregisterForContextMenu(view: android.view.View): void;
			/**
			 *  Activity#openContextMenu(View)
			 */
			public openContextMenu(view: android.view.View): void;
			/**
			 *  Activity#onContextItemSelected(MenuItem)
			 */
			public onContextItemSelected(item: android.view.IMenuItem): boolean;
			/**
			 *  Activity#onContextMenuClosed(Menu)
			 */
			public onContextMenuClosed(menu: android.view.IMenu): void;
			/**
			 * This hook is called when the user signals the desire to start a search.
			 */
			public onSearchRequested(): boolean;
			public onWindowStartingActionMode(callback: android.view.ActionMode.ICallback): android.view.ActionMode;
			/**
			 * 
			 */
			public onActionModeStarted(mode: android.view.ActionMode): void;
			/**
			 * 
			 */
			public onActionModeFinished(mode: android.view.ActionMode): void;
			/**
			 * Request that key events come to this dialog. Use this if your dialog has no views with focus, but the dialog still wants a chance to process key events. 
			 * @param get true if the dialog should receive key events, false otherwise
			 */
			public takeKeyEvents(get: boolean): void;
			/**
			 * Enable extended window features. This is a convenience for calling android.view.Window#requestFeature getWindow().requestFeature(). 
			 * @param featureId The desired feature as defined in
			 */
			public requestWindowFeature(featureId: number): boolean;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawableResource.
			 */
			public setFeatureDrawableResource(featureId: number, resId: number): void;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawableUri.
			 */
			public setFeatureDrawableUri(featureId: number, uri: android.net.Uri): void;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawable(int, Drawable).
			 */
			public setFeatureDrawable(featureId: number, drawable: android.graphics.drawable.Drawable): void;
			/**
			 * Convenience for calling android.view.Window#setFeatureDrawableAlpha.
			 */
			public setFeatureDrawableAlpha(featureId: number, alpha: number): void;
			public getLayoutInflater(): android.view.LayoutInflater;
			/**
			 * Sets whether this dialog is cancelable with the KeyEvent#KEYCODE_BACK BACK key.
			 */
			public setCancelable(flag: boolean): void;
			/**
			 * Sets whether this dialog is canceled when touched outside the window's bounds. If setting to true, the dialog is set to be cancelable if not already set. 
			 * @param cancel Whether the dialog should be canceled when touched outside
			 */
			public setCanceledOnTouchOutside(cancel: boolean): void;
			/**
			 * Cancel the dialog. This is essentially the same as calling #dismiss(), but it will also call your DialogInterface.OnCancelListener (if registered).
			 */
			public cancel(): void;
			/**
			 * Set a listener to be invoked when the dialog is canceled.
			 * @param listener The {@link DialogInterface.OnCancelListener} to use.
			 */
			public setOnCancelListener(listener: android.content.DialogInterface.IOnCancelListener): void;
			/**
			 * Set a message to be sent when the dialog is canceled.
			 * @param msg The msg to send when the dialog is canceled.
			 */
			public setCancelMessage(msg: android.os.Message): void;
			/**
			 * Set a listener to be invoked when the dialog is dismissed.
			 * @param listener The {@link DialogInterface.OnDismissListener} to use.
			 */
			public setOnDismissListener(listener: android.content.DialogInterface.IOnDismissListener): void;
			/**
			 * Sets a listener to be invoked when the dialog is shown.
			 * @param listener The {@link DialogInterface.OnShowListener} to use.
			 */
			public setOnShowListener(listener: android.content.DialogInterface.IOnShowListener): void;
			/**
			 * Set a message to be sent when the dialog is dismissed.
			 * @param msg The msg to send when the dialog is dismissed.
			 */
			public setDismissMessage(msg: android.os.Message): void;
			/**
			 * By default, this will use the owner Activity's suggested stream type. Activity#setVolumeControlStream(int) #setOwnerActivity(Activity)
			 */
			public setVolumeControlStream(streamType: number): void;
			/**
			 *  Activity#getVolumeControlStream()
			 */
			public getVolumeControlStream(): number;
			/**
			 * Sets the callback that will be called if a key is dispatched to the dialog.
			 */
			public setOnKeyListener(onKeyListener: android.content.DialogInterface.IOnKeyListener): void;
		}
		export module Dialog {
			export class ListenersHandler extends android.os.Handler {
				constructor(dialog: android.app.Dialog);
				static class: java.lang.Class<android.app.Dialog.ListenersHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * Searchability meta-data for an activity. Only applications that search other applications should need to use this class. See <a href="guide/topics/search/searchable-config.html">Searchable Configuration</a> for more information about declaring searchability meta-data for your application.
		 */
		export class SearchableInfo extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Support for parcelable and aidl operations.
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.app.SearchableInfo>;
			static class: java.lang.Class<android.app.SearchableInfo>;
			/**
			 * Gets the search suggestion content provider authority.
			 */
			public getSuggestAuthority(): string;
			/**
			 * Gets the name of the package where the suggestion provider lives, or null.
			 */
			public getSuggestPackage(): string;
			/**
			 * Gets the component name of the searchable activity.
			 */
			public getSearchActivity(): android.content.ComponentName;
			/**
			 * Checks whether the text in the query field should come from the suggestion intent data.
			 */
			public shouldRewriteQueryFromData(): boolean;
			/**
			 * Checks whether the text in the query field should come from the suggestion title.
			 */
			public shouldRewriteQueryFromText(): boolean;
			/**
			 * Gets the resource id of the description string to use for this source in system search settings, or 0 if none has been specified.
			 */
			public getSettingsDescriptionId(): number;
			/**
			 * Gets the content provider path for obtaining search suggestions. 
			 */
			public getSuggestPath(): string;
			/**
			 * Gets the selection for obtaining search suggestions.
			 */
			public getSuggestSelection(): string;
			/**
			 * Gets the optional intent action for use with these suggestions. This is useful if all intents will have the same action (e.g. android.content.Intent#ACTION_VIEW)
			 */
			public getSuggestIntentAction(): string;
			/**
			 * Gets the optional intent data for use with these suggestions. This is useful if all intents will have similar data URIs, but you'll likely need to provide a specific ID as well via the column SearchManager#SUGGEST_COLUMN_INTENT_DATA_ID, which will be appended to the intent data URI. This can be overriden in any given suggestion using the column SearchManager#SUGGEST_COLUMN_INTENT_DATA. 
			 */
			public getSuggestIntentData(): string;
			/**
			 * Gets the suggestion threshold. 
			 */
			public getSuggestThreshold(): number;
			/**
			 * Gets the resource id of the hint text. This must be read using the searchable Activity's resources. 
			 */
			public getHintId(): number;
			/**
			 * Checks if the searchable activity wants the voice search button to be shown.
			 */
			public getVoiceSearchEnabled(): boolean;
			/**
			 * Checks if voice search should start web search.
			 */
			public getVoiceSearchLaunchWebSearch(): boolean;
			/**
			 * Checks if voice search should start in-app search.
			 */
			public getVoiceSearchLaunchRecognizer(): boolean;
			/**
			 * Gets the resource id of the voice search language model string.
			 */
			public getVoiceLanguageModeId(): number;
			/**
			 * Gets the resource id of the voice prompt text string.
			 */
			public getVoicePromptTextId(): number;
			/**
			 * Gets the resource id of the spoken language to recognize in voice search.
			 */
			public getVoiceLanguageId(): number;
			/**
			 * The maximum number of voice recognition results to return.
			 */
			public getVoiceMaxResults(): number;
			/**
			 * Gets the input type as specified in the searchable attributes. This will default to InputType#TYPE_CLASS_TEXT if not specified (which is appropriate for free text input). 
			 */
			public getInputType(): number;
			/**
			 * Gets the input method options specified in the searchable attributes. This will default to EditorInfo#IME_ACTION_GO if not specified (which is appropriate for a search box). 
			 */
			public getImeOptions(): number;
			/**
			 * Checks whether the searchable should be included in global search.
			 */
			public shouldIncludeInGlobalSearch(): boolean;
			/**
			 * Checks whether this searchable activity should be queried for suggestions if a prefix of the query has returned no results.
			 */
			public queryAfterZeroResults(): boolean;
			/**
			 * Checks whether this searchable activity has auto URL detection turned on.
			 */
			public autoUrlDetect(): boolean;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * A screen that contains and runs multiple embedded activities.
		 */
		export class ActivityGroup extends android.app.Activity {
			constructor();
			constructor(singleActivityMode: boolean);
			static class: java.lang.Class<android.app.ActivityGroup>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			protected onResume(): void;
			protected onSaveInstanceState(outState: android.os.Bundle): void;
			protected onPause(): void;
			protected onStop(): void;
			protected onDestroy(): void;
			public getCurrentActivity(): android.app.Activity;
			public getLocalActivityManager(): android.app.LocalActivityManager;
			dispatchActivityResult(who: string, requestCode: number, resultCode: number, data: android.content.Intent): void;
		}
		export class FragmentManagerState extends java.lang.Object implements android.os.IParcelable {
			constructor();
			constructor(input: android.os.Parcel);
			static CREATOR: android.os.Parcelable.ICreator<android.app.FragmentManagerState>;
			static class: java.lang.Class<android.app.FragmentManagerState>;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * A window feature at the top of the activity that may display the activity title, navigation modes, and other interactive items.
		 */
		export class ActionBar extends java.lang.Object {
			constructor();
			/**
			 * Standard navigation mode. Consists of either a logo or icon and title text with an optional subtitle. Clicking any of these elements will dispatch onOptionsItemSelected to the host Activity with a MenuItem with item ID android.R.id.home.
			 */
			static NAVIGATION_MODE_STANDARD: number;
			/**
			 * List navigation mode. Instead of static title text this mode presents a list menu for navigation within the activity. e.g. this might be presented to the user as a dropdown list.
			 */
			static NAVIGATION_MODE_LIST: number;
			/**
			 * Tab navigation mode. Instead of static title text this mode presents a series of tabs for navigation within the activity.
			 */
			static NAVIGATION_MODE_TABS: number;
			/**
			 * Use logo instead of icon if available. This flag will cause appropriate navigation modes to use a wider logo in place of the standard icon.
			 */
			static DISPLAY_USE_LOGO: number;
			/**
			 * Show 'home' elements in this action bar, leaving more space for other navigation elements. This includes logo and icon.
			 */
			static DISPLAY_SHOW_HOME: number;
			/**
			 * Display the 'home' element such that it appears as an 'up' affordance. e.g. show an arrow to the left indicating the action that will be taken.
			 */
			static DISPLAY_HOME_AS_UP: number;
			/**
			 * Show the activity title and subtitle, if present.
			 */
			static DISPLAY_SHOW_TITLE: number;
			/**
			 * Show the custom view if one has been set. #setCustomView(View) #setDisplayOptions(int) #setDisplayOptions(int, int)
			 */
			static DISPLAY_SHOW_CUSTOM: number;
			static class: java.lang.Class<android.app.ActionBar>;
			/**
			 * Set the action bar into custom navigation mode, supplying a view for custom navigation.
			 * @param view Custom navigation view to place in the ActionBar.
			 */
			public setCustomView(view: android.view.View): void;
			/**
			 * Set the action bar into custom navigation mode, supplying a view for custom navigation. 
			 * @param view Custom navigation view to place in the ActionBar.
			 * @param layoutParams How this custom view should layout in the bar.
			 */
			public setCustomView(view: android.view.View, layoutParams: android.app.ActionBar.LayoutParams): void;
			/**
			 * Set the action bar into custom navigation mode, supplying a view for custom navigation.
			 * @param resId Resource ID of a layout to inflate into the ActionBar.
			 */
			public setCustomView(resId: number): void;
			/**
			 * Set the icon to display in the 'home' section of the action bar. The action bar will use an icon specified by its style or the activity icon by default.
			 * @param resId Resource ID of a drawable to show as an icon.
			 */
			public setIcon(resId: number): void;
			/**
			 * Set the icon to display in the 'home' section of the action bar. The action bar will use an icon specified by its style or the activity icon by default.
			 * @param icon Drawable to show as an icon.
			 */
			public setIcon(icon: android.graphics.drawable.Drawable): void;
			/**
			 * Set the logo to display in the 'home' section of the action bar. The action bar will use a logo specified by its style or the activity logo by default.
			 * @param resId Resource ID of a drawable to show as a logo.
			 */
			public setLogo(resId: number): void;
			/**
			 * Set the logo to display in the 'home' section of the action bar. The action bar will use a logo specified by its style or the activity logo by default.
			 * @param logo Drawable to show as a logo.
			 */
			public setLogo(logo: android.graphics.drawable.Drawable): void;
			/**
			 * Set the adapter and navigation callback for list navigation mode.
			 * @param adapter An adapter that will provide views both to display
			 * @param callback An OnNavigationListener that will receive events when the user
			 */
			public setListNavigationCallbacks(adapter: android.widget.ISpinnerAdapter, callback: android.app.ActionBar.IOnNavigationListener): void;
			/**
			 * Set the selected navigation item in list or tabbed navigation modes.
			 * @param position Position of the item to select.
			 */
			public setSelectedNavigationItem(position: number): void;
			/**
			 * Get the position of the selected navigation item in list or tabbed navigation modes.
			 */
			public getSelectedNavigationIndex(): number;
			/**
			 * Get the number of navigation items present in the current navigation mode.
			 */
			public getNavigationItemCount(): number;
			/**
			 * Set the action bar's title. This will only be displayed if #DISPLAY_SHOW_TITLE is set.
			 * @param title Title to set
			 */
			public setTitle(title: string): void;
			/**
			 * Set the action bar's title. This will only be displayed if #DISPLAY_SHOW_TITLE is set.
			 * @param resId Resource ID of title string to set
			 */
			public setTitle(resId: number): void;
			/**
			 * Set the action bar's subtitle. This will only be displayed if #DISPLAY_SHOW_TITLE is set. Set to null to disable the subtitle entirely.
			 * @param subtitle Subtitle to set
			 */
			public setSubtitle(subtitle: string): void;
			/**
			 * Set the action bar's subtitle. This will only be displayed if #DISPLAY_SHOW_TITLE is set.
			 * @param resId Resource ID of subtitle string to set
			 */
			public setSubtitle(resId: number): void;
			/**
			 * Set display options. This changes all display option bits at once. To change a limited subset of display options, see #setDisplayOptions(int, int). 
			 * @param options A combination of the bits defined by the DISPLAY_ constants
			 */
			public setDisplayOptions(options: number): void;
			/**
			 * Set selected display options. Only the options specified by mask will be changed. To change all display option bits at once, see #setDisplayOptions(int). 
			 * @param options A combination of the bits defined by the DISPLAY_ constants
			 * @param mask A bit mask declaring which display options should be changed.
			 */
			public setDisplayOptions(options: number, mask: number): void;
			/**
			 * Set whether to display the activity logo rather than the activity icon. A logo is often a wider, more detailed image.
			 * @param useLogo true to use the activity logo, false to use the activity icon.
			 */
			public setDisplayUseLogoEnabled(useLogo: boolean): void;
			/**
			 * Set whether to include the application home affordance in the action bar. Home is presented as either an activity icon or logo.
			 * @param showHome true to show home, false otherwise.
			 */
			public setDisplayShowHomeEnabled(showHome: boolean): void;
			/**
			 * Set whether home should be displayed as an "up" affordance. Set this to true if selecting "home" returns up by a single level in your UI rather than back to the top level or front page.
			 * @param showHomeAsUp true to show the user that selecting home will return one
			 */
			public setDisplayHomeAsUpEnabled(showHomeAsUp: boolean): void;
			/**
			 * Set whether an activity title/subtitle should be displayed.
			 * @param showTitle true to display a title/subtitle if present.
			 */
			public setDisplayShowTitleEnabled(showTitle: boolean): void;
			/**
			 * Set whether a custom view should be displayed, if set.
			 * @param showCustom true if the currently set custom view should be displayed, false otherwise.
			 */
			public setDisplayShowCustomEnabled(showCustom: boolean): void;
			/**
			 * Set the ActionBar's background. This will be used for the primary action bar. 
			 * @param d Background drawable
			 */
			public setBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
			/**
			 * Set the ActionBar's stacked background. This will appear in the second row/stacked bar on some devices and configurations.
			 * @param d Background drawable for the stacked row
			 */
			public setStackedBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
			/**
			 * Set the ActionBar's split background. This will appear in the split action bar containing menu-provided action buttons on some devices and configurations.
			 * @param d Background drawable for the split bar
			 */
			public setSplitBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
			public getCustomView(): android.view.View;
			/**
			 * Returns the current ActionBar title in standard mode. Returns null if #getNavigationMode() would not return #NAVIGATION_MODE_STANDARD.
			 */
			public getTitle(): string;
			/**
			 * Returns the current ActionBar subtitle in standard mode. Returns null if #getNavigationMode() would not return #NAVIGATION_MODE_STANDARD.
			 */
			public getSubtitle(): string;
			/**
			 * Returns the current navigation mode. The result will be one of: <ul> <li>#NAVIGATION_MODE_STANDARD</li> <li>#NAVIGATION_MODE_LIST</li> <li>#NAVIGATION_MODE_TABS</li> </ul>
			 */
			public getNavigationMode(): number;
			/**
			 * Set the current navigation mode.
			 * @param mode The new mode to set.
			 */
			public setNavigationMode(mode: number): void;
			public getDisplayOptions(): number;
			/**
			 * Create and return a new Tab. This tab will not be included in the action bar until it is added.
			 */
			public newTab(): android.app.ActionBar.Tab;
			/**
			 * Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list. If this is the first tab to be added it will become the selected tab.
			 * @param tab Tab to add
			 */
			public addTab(tab: android.app.ActionBar.Tab): void;
			/**
			 * Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list.
			 * @param tab Tab to add
			 * @param setSelected True if the added tab should become the selected tab.
			 */
			public addTab(tab: android.app.ActionBar.Tab, setSelected: boolean): void;
			/**
			 * Add a tab for use in tabbed navigation mode. The tab will be inserted at <code>position</code>. If this is the first tab to be added it will become the selected tab.
			 * @param tab The tab to add
			 * @param position The new position of the tab
			 */
			public addTab(tab: android.app.ActionBar.Tab, position: number): void;
			/**
			 * Add a tab for use in tabbed navigation mode. The tab will be insterted at <code>position</code>.
			 * @param tab The tab to add
			 * @param position The new position of the tab
			 * @param setSelected True if the added tab should become the selected tab.
			 */
			public addTab(tab: android.app.ActionBar.Tab, position: number, setSelected: boolean): void;
			/**
			 * Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.
			 * @param tab The tab to remove
			 */
			public removeTab(tab: android.app.ActionBar.Tab): void;
			/**
			 * Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.
			 * @param position Position of the tab to remove
			 */
			public removeTabAt(position: number): void;
			/**
			 * Remove all tabs from the action bar and deselect the current tab.
			 */
			public removeAllTabs(): void;
			/**
			 * Select the specified tab. If it is not a child of this action bar it will be added.
			 * @param tab Tab to select
			 */
			public selectTab(tab: android.app.ActionBar.Tab): void;
			/**
			 * Returns the currently selected tab if in tabbed navigation mode and there is at least one tab present.
			 */
			public getSelectedTab(): android.app.ActionBar.Tab;
			/**
			 * Returns the tab at the specified index.
			 * @param index Index value in the range 0-get
			 */
			public getTabAt(index: number): android.app.ActionBar.Tab;
			/**
			 * Returns the number of tabs currently registered with the action bar.
			 */
			public getTabCount(): number;
			/**
			 * Retrieve the current height of the ActionBar.
			 */
			public getHeight(): number;
			/**
			 * Show the ActionBar if it is not currently showing. If the window hosting the ActionBar does not have the feature Window#FEATURE_ACTION_BAR_OVERLAY it will resize application content to fit the new space available.
			 */
			public show(): void;
			/**
			 * Hide the ActionBar if it is currently showing. If the window hosting the ActionBar does not have the feature Window#FEATURE_ACTION_BAR_OVERLAY it will resize application content to fit the new space available.
			 */
			public hide(): void;
			public isShowing(): boolean;
			/**
			 * Add a listener that will respond to menu visibility change events.
			 * @param listener The new listener to add
			 */
			public addOnMenuVisibilityListener(listener: android.app.ActionBar.IOnMenuVisibilityListener): void;
			/**
			 * Remove a menu visibility listener. This listener will no longer receive menu visibility change events.
			 * @param listener A listener to remove that was previously added
			 */
			public removeOnMenuVisibilityListener(listener: android.app.ActionBar.IOnMenuVisibilityListener): void;
			/**
			 * Enable or disable the "home" button in the corner of the action bar. (Note that this is the application home/up affordance on the action bar, not the systemwide home button.)
			 * @param enabled true to enable the home button, false to disable the home button.
			 */
			public setHomeButtonEnabled(enabled: boolean): void;
			/**
			 * Returns a Context with an appropriate theme for creating views that will appear in the action bar. If you are inflating or instantiating custom views that will appear in an action bar, you should use the Context returned by this method. (This includes adapters used for list navigation mode.) This will ensure that views contrast properly against the action bar.
			 */
			public getThemedContext(): android.content.Context;
		}
		export module ActionBar {
			/**
			 * Callback interface invoked when a tab is focused, unfocused, added, or removed.
			 */
			interface ITabListener {
				/**
				 * Called when a tab enters the selected state.
				 * @param tab The tab that was selected
				 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
				 */
				onTabSelected(tab: android.app.ActionBar.Tab, ft: android.app.FragmentTransaction): void;
				/**
				 * Called when a tab exits the selected state.
				 * @param tab The tab that was unselected
				 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
				 */
				onTabUnselected(tab: android.app.ActionBar.Tab, ft: android.app.FragmentTransaction): void;
				/**
				 * Called when a tab that is already selected is chosen again by the user. Some applications may use this action to return to the top level of a category.
				 * @param tab The tab that was reselected.
				 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
				 */
				onTabReselected(tab: android.app.ActionBar.Tab, ft: android.app.FragmentTransaction): void;
			}
			/**
			 * Listener interface for ActionBar navigation events.
			 */
			export class OnNavigationListener implements android.app.ActionBar.IOnNavigationListener {
				constructor(implementation: android.app.ActionBar.IOnNavigationListener);
				/**
				 * This method is called whenever a navigation item in your action bar is selected. 
				 * @param itemPosition Position of the item clicked.
				 * @param itemId ID of the item clicked.
				 */
				public onNavigationItemSelected(itemPosition: number, itemId: number): boolean;
			}
			/**
			 * Callback interface invoked when a tab is focused, unfocused, added, or removed.
			 */
			export class TabListener implements android.app.ActionBar.ITabListener {
				constructor(implementation: android.app.ActionBar.ITabListener);
				/**
				 * Called when a tab enters the selected state.
				 * @param tab The tab that was selected
				 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
				 */
				public onTabSelected(tab: android.app.ActionBar.Tab, ft: android.app.FragmentTransaction): void;
				/**
				 * Called when a tab exits the selected state.
				 * @param tab The tab that was unselected
				 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
				 */
				public onTabUnselected(tab: android.app.ActionBar.Tab, ft: android.app.FragmentTransaction): void;
				/**
				 * Called when a tab that is already selected is chosen again by the user. Some applications may use this action to return to the top level of a category.
				 * @param tab The tab that was reselected.
				 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
				 */
				public onTabReselected(tab: android.app.ActionBar.Tab, ft: android.app.FragmentTransaction): void;
			}
			/**
			 * Per-child layout information associated with action bar custom views.
			 */
			export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
				constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
				constructor(width: number, height: number);
				constructor(width: number, height: number, gravity: number);
				constructor(gravity: number);
				constructor(source: android.app.ActionBar.LayoutParams);
				constructor(source: android.view.ViewGroup.LayoutParams);
				/**
				 * Gravity for the view associated with these LayoutParams.
				 */
				gravity: number;
				static class: java.lang.Class<android.app.ActionBar.LayoutParams>;
			}
			/**
			 * Listener interface for ActionBar navigation events.
			 */
			interface IOnNavigationListener {
				/**
				 * This method is called whenever a navigation item in your action bar is selected. 
				 * @param itemPosition Position of the item clicked.
				 * @param itemId ID of the item clicked.
				 */
				onNavigationItemSelected(itemPosition: number, itemId: number): boolean;
			}
			/**
			 * Listener for receiving events when action bar menus are shown or hidden.
			 */
			interface IOnMenuVisibilityListener {
				/**
				 * Called when an action bar menu is shown or hidden. Applications may want to use this to tune auto-hiding behavior for the action bar or pause/resume video playback, gameplay, or other activity within the main content area.
				 * @param isVisible True if an action bar menu is now visible, false if no action bar
				 */
				onMenuVisibilityChanged(isVisible: boolean): void;
			}
			/**
			 * A tab in the action bar.
			 */
			export class Tab extends java.lang.Object {
				constructor();
				/**
				 * An invalid position for a tab.
				 */
				static INVALID_POSITION: number;
				static class: java.lang.Class<android.app.ActionBar.Tab>;
				/**
				 * Return the current position of this tab in the action bar.
				 */
				public getPosition(): number;
				/**
				 * Return the icon associated with this tab.
				 */
				public getIcon(): android.graphics.drawable.Drawable;
				/**
				 * Return the text of this tab.
				 */
				public getText(): string;
				/**
				 * Set the icon displayed on this tab.
				 * @param icon The drawable to use as an icon
				 */
				public setIcon(icon: android.graphics.drawable.Drawable): android.app.ActionBar.Tab;
				/**
				 * Set the icon displayed on this tab.
				 * @param resId Resource ID referring to the drawable to use as an icon
				 */
				public setIcon(resId: number): android.app.ActionBar.Tab;
				/**
				 * Set the text displayed on this tab. Text may be truncated if there is not room to display the entire string.
				 * @param text The text to display
				 */
				public setText(text: string): android.app.ActionBar.Tab;
				/**
				 * Set the text displayed on this tab. Text may be truncated if there is not room to display the entire string.
				 * @param resId A resource ID referring to the text that should be displayed
				 */
				public setText(resId: number): android.app.ActionBar.Tab;
				/**
				 * Set a custom view to be used for this tab. This overrides values set by #setText(CharSequence) and #setIcon(Drawable).
				 * @param view Custom view to be used as a tab.
				 */
				public setCustomView(view: android.view.View): android.app.ActionBar.Tab;
				/**
				 * Set a custom view to be used for this tab. This overrides values set by #setText(CharSequence) and #setIcon(Drawable).
				 * @param layoutResId A layout resource to inflate and use as a custom tab view
				 */
				public setCustomView(layoutResId: number): android.app.ActionBar.Tab;
				/**
				 * Retrieve a previously set custom view for this tab.
				 */
				public getCustomView(): android.view.View;
				/**
				 * Give this Tab an arbitrary object to hold for later use.
				 * @param obj Object to store
				 */
				public setTag(obj: any): android.app.ActionBar.Tab;
				public getTag(): any;
				/**
				 * Set the TabListener that will handle switching to and from this tab. All tabs must have a TabListener set before being added to the ActionBar.
				 * @param listener Listener to handle tab selection events
				 */
				public setTabListener(listener: android.app.ActionBar.ITabListener): android.app.ActionBar.Tab;
				/**
				 * Select this tab. Only valid if the tab has been added to the action bar.
				 */
				public select(): void;
				/**
				 * Set a description of this tab's content for use in accessibility support. If no content description is provided the title will be used.
				 * @param resId A resource ID referring to the description text
				 */
				public setContentDescription(resId: number): android.app.ActionBar.Tab;
				/**
				 * Set a description of this tab's content for use in accessibility support. If no content description is provided the title will be used.
				 * @param contentDesc Description of this tab's content
				 */
				public setContentDescription(contentDesc: string): android.app.ActionBar.Tab;
				/**
				 * Gets a brief description of this tab's content for use in accessibility support.
				 */
				public getContentDescription(): string;
			}
			/**
			 * Listener for receiving events when action bar menus are shown or hidden.
			 */
			export class OnMenuVisibilityListener implements android.app.ActionBar.IOnMenuVisibilityListener {
				constructor(implementation: android.app.ActionBar.IOnMenuVisibilityListener);
				/**
				 * Called when an action bar menu is shown or hidden. Applications may want to use this to tune auto-hiding behavior for the action bar or pause/resume video playback, gameplay, or other activity within the main content area.
				 * @param isVisible True if an action bar menu is now visible, false if no action bar
				 */
				public onMenuVisibilityChanged(isVisible: boolean): void;
			}
		}
		/**
		 * Helper class for building an options Bundle that can be used with android.content.Context#startActivity(android.content.Intent, android.os.Bundle) Context.startActivity(Intent, Bundle) and related methods.
		 */
		export class ActivityOptions extends java.lang.Object {
			static class: java.lang.Class<android.app.ActivityOptions>;
			/**
			 * Create an ActivityOptions specifying a custom animation to run when the activity is displayed.
			 * @param context Who is defining this. This is the application that the
			 * @param enterResId A resource ID of the animation resource to use for
			 * @param exitResId A resource ID of the animation resource to use for
			 */
			public static makeCustomAnimation(context: android.content.Context, enterResId: number, exitResId: number): android.app.ActivityOptions;
			/**
			 * Create an ActivityOptions specifying an animation where the new activity is scaled from a small originating area of the screen to its final full representation.
			 * @param source The View that the new activity is animating from. This
			 * @param startX The x starting location of the new activity, relative to <var>source</var>.
			 * @param startY The y starting location of the activity, relative to <var>source</var>.
			 * @param startWidth The initial width of the new activity.
			 * @param startHeight The initial height of the new activity.
			 */
			public static makeScaleUpAnimation(source: android.view.View, startX: number, startY: number, startWidth: number, startHeight: number): android.app.ActivityOptions;
			/**
			 * Create an ActivityOptions specifying an animation where a thumbnail is scaled from a given position to the new activity window that is being started.
			 * @param source The View that this thumbnail is animating from. This
			 * @param thumbnail The bitmap that will be shown as the initial thumbnail
			 * @param startX The x starting location of the bitmap, relative to <var>source</var>.
			 * @param startY The y starting location of the bitmap, relative to <var>source</var>.
			 */
			public static makeThumbnailScaleUpAnimation(source: android.view.View, thumbnail: android.graphics.Bitmap, startX: number, startY: number): android.app.ActivityOptions;
			/**
			 * Update the current values in this ActivityOptions from those supplied in <var>otherOptions</var>. Any values defined in <var>otherOptions</var> replace those in the base options.
			 */
			public update(otherOptions: android.app.ActivityOptions): void;
			/**
			 * Returns the created options as a Bundle, which can be passed to android.content.Context#startActivity(android.content.Intent, android.os.Bundle) Context.startActivity(Intent, Bundle) and related methods. Note that the returned Bundle is still owned by the ActivityOptions object; you must not modify it, but can supply it to the startActivity methods that take an options Bundle.
			 */
			public toBundle(): android.os.Bundle;
		}
		/**
		 * Class to notify the user of events that happen. This is how you tell the user that something has happened in the background. 
		 */
		export class NotificationManager extends java.lang.Object {
			static class: java.lang.Class<android.app.NotificationManager>;
			/**
			 * Post a notification to be shown in the status bar. If a notification with the same id has already been posted by your application and has not yet been canceled, it will be replaced by the updated information.
			 * @param id An identifier for this notification unique within your
			 * @param notification A {@link Notification} object describing what to show the user. Must not
			 */
			public notify(id: number, notification: android.app.Notification): void;
			/**
			 * Post a notification to be shown in the status bar. If a notification with the same tag and id has already been posted by your application and has not yet been canceled, it will be replaced by the updated information.
			 * @param tag A string identifier for this notification. May be {@code null}.
			 * @param id An identifier for this notification. The pair (tag, id) must be unique
			 * @param notification A {@link Notification} object describing what to
			 */
			public notify(tag: string, id: number, notification: android.app.Notification): void;
			/**
			 * Cancel a previously shown notification. If it's transient, the view will be hidden. If it's persistent, it will be removed from the status bar.
			 */
			public cancel(id: number): void;
			/**
			 * Cancel a previously shown notification. If it's transient, the view will be hidden. If it's persistent, it will be removed from the status bar.
			 */
			public cancel(tag: string, id: number): void;
			/**
			 * Cancel all previously shown notifications. See #cancel for the detailed behavior.
			 */
			public cancelAll(): void;
			/**
			 * Causes a thread which is waiting on this object's monitor (by means of calling one of the wait() methods) to be woken up. If more than one thread is waiting, one of them is chosen at the discretion of the VM. The chosen thread will not run immediately. The thread that called notify() has to release the object's monitor first. Also, the chosen thread still has to compete against other threads that try to synchronize on the same object.
			 */
			notify(): void;
		}
		export class ApplicationThreadProxy extends java.lang.Object {
			constructor(remote: android.os.IIBinder);
			static class: java.lang.Class<android.app.ApplicationThreadProxy>;
			public asBinder(): android.os.IIBinder;
			public schedulePauseActivity(token: android.os.IIBinder, finished: boolean, userLeaving: boolean, configChanges: number): void;
			public scheduleStopActivity(token: android.os.IIBinder, showWindow: boolean, configChanges: number): void;
			public scheduleWindowVisibility(token: android.os.IIBinder, showWindow: boolean): void;
			public scheduleSleeping(token: android.os.IIBinder, sleeping: boolean): void;
			public scheduleResumeActivity(token: android.os.IIBinder, isForward: boolean): void;
			public scheduleNewIntent(intents: java.util.IList<android.content.Intent>, token: android.os.IIBinder): void;
			public scheduleDestroyActivity(token: android.os.IIBinder, finishing: boolean, configChanges: number): void;
			public scheduleBindService(token: android.os.IIBinder, intent: android.content.Intent, rebind: boolean): void;
			public scheduleUnbindService(token: android.os.IIBinder, intent: android.content.Intent): void;
			public scheduleServiceArgs(token: android.os.IIBinder, taskRemoved: boolean, startId: number, flags: number, args: android.content.Intent): void;
			public scheduleStopService(token: android.os.IIBinder): void;
			public scheduleExit(): void;
			public scheduleSuicide(): void;
			public requestThumbnail(token: android.os.IIBinder): void;
			public scheduleConfigurationChanged(config: android.content.res.Configuration): void;
			public updateTimeZone(): void;
			public clearDnsCache(): void;
			public setHttpProxy(proxy: string, port: string, exclList: string): void;
			public processInBackground(): void;
			public dumpService(fd: java.io.FileDescriptor, token: android.os.IIBinder, args: native.Array<string>): void;
			public dumpProvider(fd: java.io.FileDescriptor, token: android.os.IIBinder, args: native.Array<string>): void;
			public scheduleLowMemory(): void;
			public scheduleActivityConfigurationChanged(token: android.os.IIBinder): void;
			public profilerControl(start: boolean, path: string, fd: android.os.ParcelFileDescriptor, profileType: number): void;
			public setSchedulingGroup(group: number): void;
			public getMemoryInfo(outInfo: android.os.Debug.MemoryInfo): void;
			public dispatchPackageBroadcast(cmd: number, packages: native.Array<string>): void;
			public scheduleCrash(msg: string): void;
			public dumpHeap(managed: boolean, path: string, fd: android.os.ParcelFileDescriptor): void;
			public dumpActivity(fd: java.io.FileDescriptor, token: android.os.IIBinder, prefix: string, args: native.Array<string>): void;
			public setCoreSettings(coreSettings: android.os.Bundle): void;
			public scheduleTrimMemory(level: number): void;
			public dumpMemInfo(fd: java.io.FileDescriptor, checkin: boolean, all: boolean, args: native.Array<string>): android.os.Debug.MemoryInfo;
			public dumpGfxInfo(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			public dumpDbInfo(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			public unstableProviderDied(provider: android.os.IIBinder): void;
		}
		/**
		 * A simple dialog containing an android.widget.DatePicker.
		 */
		export class DatePickerDialog extends android.app.AlertDialog implements android.content.DialogInterface.IOnClickListener, android.widget.DatePicker.IOnDateChangedListener {
			/**
			 * @param context The context the dialog is to run in.
			 * @param callBack How the parent is notified that the date is set.
			 * @param year The initial year of the dialog.
			 * @param monthOfYear The initial month of the dialog.
			 * @param dayOfMonth The initial day of the dialog.
			 */
			constructor(context: android.content.Context, callBack: android.app.DatePickerDialog.IOnDateSetListener, year: number, monthOfYear: number, dayOfMonth: number);
			/**
			 * @param context The context the dialog is to run in.
			 * @param theme the theme to apply to this dialog
			 * @param callBack How the parent is notified that the date is set.
			 * @param year The initial year of the dialog.
			 * @param monthOfYear The initial month of the dialog.
			 * @param dayOfMonth The initial day of the dialog.
			 */
			constructor(context: android.content.Context, theme: number, callBack: android.app.DatePickerDialog.IOnDateSetListener, year: number, monthOfYear: number, dayOfMonth: number);
			static class: java.lang.Class<android.app.DatePickerDialog>;
			public onClick(dialog: android.content.IDialogInterface, which: number): void;
			public onDateChanged(view: android.widget.DatePicker, year: number, month: number, day: number): void;
			/**
			 * Gets the DatePicker contained in this dialog.
			 */
			public getDatePicker(): android.widget.DatePicker;
			/**
			 * Sets the current date.
			 * @param year The date year.
			 * @param monthOfYear The date month.
			 * @param dayOfMonth The date day of month.
			 */
			public updateDate(year: number, monthOfYear: number, dayOfMonth: number): void;
			protected onStop(): void;
			public onSaveInstanceState(): android.os.Bundle;
			public onRestoreInstanceState(savedInstanceState: android.os.Bundle): void;
		}
		export module DatePickerDialog {
			/**
			 * The callback used to indicate the user is done filling in the date.
			 */
			export class OnDateSetListener implements android.app.DatePickerDialog.IOnDateSetListener {
				constructor(implementation: android.app.DatePickerDialog.IOnDateSetListener);
				/**
				 * @param view The view associated with this listener.
				 * @param year The year that was set.
				 * @param monthOfYear The month that was set (0-11) for compatibility
				 * @param dayOfMonth The day of the month that was set.
				 */
				public onDateSet(view: android.widget.DatePicker, year: number, monthOfYear: number, dayOfMonth: number): void;
			}
			/**
			 * The callback used to indicate the user is done filling in the date.
			 */
			interface IOnDateSetListener {
				/**
				 * @param view The view associated with this listener.
				 * @param year The year that was set.
				 * @param monthOfYear The month that was set (0-11) for compatibility
				 * @param dayOfMonth The day of the month that was set.
				 */
				onDateSet(view: android.widget.DatePicker, year: number, monthOfYear: number, dayOfMonth: number): void;
			}
		}
		/**
		 * This class provides access to the system uimode services. These services allow applications to control UI modes of the device. It provides functionality to disable the car mode and it gives access to the night mode settings. 
		 */
		export class UiModeManager extends java.lang.Object {
			/**
			 * Broadcast sent when the device's UI has switched to car mode, either by being placed in a car dock or explicit action of the user. After sending the broadcast, the system will start the intent android.content.Intent#ACTION_MAIN with category android.content.Intent#CATEGORY_CAR_DOCK to display the car UI, which typically what an application would implement to provide their own interface. However, applications can also monitor this Intent in order to be informed of mode changes or prevent the normal car UI from being displayed by setting the result of the broadcast to Activity#RESULT_CANCELED.
			 */
			static ACTION_ENTER_CAR_MODE: string;
			/**
			 * Broadcast sent when the device's UI has switch away from car mode back to normal mode. Typically used by a car mode app, to dismiss itself when the user exits car mode.
			 */
			static ACTION_EXIT_CAR_MODE: string;
			/**
			 * Broadcast sent when the device's UI has switched to desk mode, by being placed in a desk dock. After sending the broadcast, the system will start the intent android.content.Intent#ACTION_MAIN with category android.content.Intent#CATEGORY_DESK_DOCK to display the desk UI, which typically what an application would implement to provide their own interface. However, applications can also monitor this Intent in order to be informed of mode changes or prevent the normal desk UI from being displayed by setting the result of the broadcast to Activity#RESULT_CANCELED.
			 */
			static ACTION_ENTER_DESK_MODE: string;
			/**
			 * Broadcast sent when the device's UI has switched away from desk mode back to normal mode. Typically used by a desk mode app, to dismiss itself when the user exits desk mode.
			 */
			static ACTION_EXIT_DESK_MODE: string;
			/**
			 * Constant for #setNightMode(int) and #getNightMode(): automatically switch night mode on and off based on the time.
			 */
			static MODE_NIGHT_AUTO: number;
			/**
			 * Constant for #setNightMode(int) and #getNightMode(): never run in night mode.
			 */
			static MODE_NIGHT_NO: number;
			/**
			 * Constant for #setNightMode(int) and #getNightMode(): always run in night mode.
			 */
			static MODE_NIGHT_YES: number;
			/**
			 * Flag for use with #enableCarMode(int): go to the car home activity as part of the enable. Enabling this way ensures a clean transition between the current activity (in non-car-mode) and the car home activity that will serve as home while in car mode. This will switch to the car home activity even if we are already in car mode.
			 */
			static ENABLE_CAR_MODE_GO_CAR_HOME: number;
			/**
			 * Flag for use with #disableCarMode(int): go to the normal home activity as part of the disable. Disabling this way ensures a clean transition between the current activity (in car mode) and the original home activity (which was typically last running without being in car mode).
			 */
			static DISABLE_CAR_MODE_GO_HOME: number;
			static class: java.lang.Class<android.app.UiModeManager>;
			/**
			 * Force device into car mode, like it had been placed in the car dock. This will cause the device to switch to the car home UI as part of the mode switch.
			 * @param flags Must be 0.
			 */
			public enableCarMode(flags: number): void;
			/**
			 * Turn off special mode if currently in car mode.
			 * @param flags May be 0 or {@link #DISABLE_CAR_MODE_GO_HOME}.
			 */
			public disableCarMode(flags: number): void;
			/**
			 * Return the current running mode type. May be one of Configuration#UI_MODE_TYPE_NORMAL Configuration.UI_MODE_TYPE_NORMAL, Configuration#UI_MODE_TYPE_DESK Configuration.UI_MODE_TYPE_DESK, or Configuration#UI_MODE_TYPE_CAR Configuration.UI_MODE_TYPE_CAR, or Configuration#UI_MODE_TYPE_TELEVISION Configuration.UI_MODE_TYPE_APPLIANCE.
			 */
			public getCurrentModeType(): number;
			/**
			 * Sets the night mode. Changes to the night mode are only effective when the car or desk mode is enabled on a device.
			 */
			public setNightMode(mode: number): void;
			/**
			 * Returns the currently configured night mode.
			 */
			public getNightMode(): number;
		}
		/**
		 * This class provides access to the system search services.
		 */
		export class SearchManager extends java.lang.Object implements android.content.DialogInterface.IOnDismissListener, android.content.DialogInterface.IOnCancelListener {
			/**
			 * This is a shortcut definition for the default menu key to use for invoking search.
			 */
			static MENU_KEY: string;
			/**
			 * This is a shortcut definition for the default menu key to use for invoking search.
			 */
			static MENU_KEYCODE: number;
			/**
			 * Intent extra data key: Use this key with android.content.Intent#getStringExtra content.Intent.getStringExtra() to obtain the query string from Intent.ACTION_SEARCH.
			 */
			static QUERY: string;
			/**
			 * Intent extra data key: Use this key with android.content.Intent#getStringExtra content.Intent.getStringExtra() to obtain the query string typed in by the user. This may be different from the value of #QUERY if the intent is the result of selecting a suggestion. In that case, #QUERY will contain the value of #SUGGEST_COLUMN_QUERY for the suggestion, and #USER_QUERY will contain the string typed by the user.
			 */
			static USER_QUERY: string;
			/**
			 * Intent extra data key: Use this key with Intent.ACTION_SEARCH and android.content.Intent#getBundleExtra content.Intent.getBundleExtra() to obtain any additional app-specific data that was inserted by the activity that launched the search.
			 */
			static APP_DATA: string;
			/**
			 * Intent extra data key: Use this key with Intent.ACTION_SEARCH and android.content.Intent#getIntExtra content.Intent.getIntExtra() to obtain the keycode that the user used to trigger this query. It will be zero if the user simply pressed the "GO" button on the search UI. This is primarily used in conjunction with the keycode attribute in the actionkey element of your searchable.xml configuration file.
			 */
			static ACTION_KEY: string;
			/**
			 * Intent extra data key: This key will be used for the extra populated by the #SUGGEST_COLUMN_INTENT_EXTRA_DATA column.
			 */
			static EXTRA_DATA_KEY: string;
			/**
			 * Boolean extra data key for #INTENT_ACTION_GLOBAL_SEARCH intents. If true, the initial query should be selected when the global search activity is started, so that the user can easily replace it with another query.
			 */
			static EXTRA_SELECT_QUERY: string;
			/**
			 * Boolean extra data key for Intent#ACTION_WEB_SEARCH intents. If true, this search should open a new browser window, rather than using an existing one.
			 */
			static EXTRA_NEW_SEARCH: string;
			/**
			 * Extra data key for Intent#ACTION_WEB_SEARCH. If set, the value must be a PendingIntent. The search activity handling the Intent#ACTION_WEB_SEARCH intent will fill in and launch the pending intent. The data URI will be filled in with an http or https URI, and android.provider.Browser#EXTRA_HEADERS may be filled in.
			 */
			static EXTRA_WEB_SEARCH_PENDINGINTENT: string;
			/**
			 * Boolean extra data key for a suggestion provider to return in Cursor#getExtras to indicate that the search is not complete yet. This can be used by the search UI to indicate that a search is in progress. The suggestion provider can return partial results this way and send a change notification on the cursor when more results are available.
			 */
			static CURSOR_EXTRA_KEY_IN_PROGRESS: string;
			/**
			 * Intent extra data key: Use this key with Intent.ACTION_SEARCH and android.content.Intent#getStringExtra content.Intent.getStringExtra() to obtain the action message that was defined for a particular search action key and/or suggestion. It will be null if the search was launched by typing "enter", touched the the "GO" button, or other means not involving any action key.
			 */
			static ACTION_MSG: string;
			/**
			 * Flag to specify that the entry can be used for query refinement, i.e., the query text in the search field can be replaced with the text in this entry, when a query refinement icon is clicked. The suggestion list should show such a clickable icon beside the entry.
			 */
			static FLAG_QUERY_REFINEMENT: number;
			/**
			 * Uri path for queried suggestions data. This is the path that the search manager will use when querying your content provider for suggestions data based on user input (e.g. looking for partial matches). Typically you'll use this with a URI matcher.
			 */
			static SUGGEST_URI_PATH_QUERY: string;
			/**
			 * MIME type for suggestions data. You'll use this in your suggestions content provider in the getType() function.
			 */
			static SUGGEST_MIME_TYPE: string;
			/**
			 * Uri path for shortcut validation. This is the path that the search manager will use when querying your content provider to refresh a shortcutted suggestion result and to check if it is still valid. When asked, a source may return an up to date result, or no result. No result indicates the shortcut refers to a no longer valid sugggestion.
			 */
			static SUGGEST_URI_PATH_SHORTCUT: string;
			/**
			 * MIME type for shortcut validation. You'll use this in your suggestions content provider in the getType() function.
			 */
			static SHORTCUT_MIME_TYPE: string;
			/**
			 * Column name for suggestions cursor. <i>Unused - can be null or column can be omitted.</i>
			 */
			static SUGGEST_COLUMN_FORMAT: string;
			/**
			 * Column name for suggestions cursor. <i>Required.</i> This is the primary line of text that will be presented to the user as the suggestion.
			 */
			static SUGGEST_COLUMN_TEXT_1: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> If your cursor includes this column, then all suggestions will be provided in a two-line format. The second line of text is in a much smaller appearance.
			 */
			static SUGGEST_COLUMN_TEXT_2: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> This is a URL that will be shown as the second line of text instead of #SUGGEST_COLUMN_TEXT_2. This is a separate column so that the search UI knows to display the text as a URL, e.g. by using a different color. If this column is absent, or has the value null, #SUGGEST_COLUMN_TEXT_2 will be used instead.
			 */
			static SUGGEST_COLUMN_TEXT_2_URL: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> If your cursor includes this column, then all suggestions will be provided in a format that includes space for two small icons, one at the left and one at the right of each suggestion. The data in the column must be a resource ID of a drawable, or a URI in one of the following formats:
			 */
			static SUGGEST_COLUMN_ICON_1: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> If your cursor includes this column, then all suggestions will be provided in a format that includes space for two small icons, one at the left and one at the right of each suggestion. The data in the column must be a resource ID of a drawable, or a URI in one of the following formats:
			 */
			static SUGGEST_COLUMN_ICON_2: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> If this column exists <i>and</i> this element exists at the given row, this is the action that will be used when forming the suggestion's intent. If the element is not provided, the action will be taken from the android:searchSuggestIntentAction field in your XML metadata. <i>At least one of these must be present for the suggestion to generate an intent.</i> Note: If your action is the same for all suggestions, it is more efficient to specify it using XML metadata and omit it from the cursor.
			 */
			static SUGGEST_COLUMN_INTENT_ACTION: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> If this column exists <i>and</i> this element exists at the given row, this is the data that will be used when forming the suggestion's intent. If the element is not provided, the data will be taken from the android:searchSuggestIntentData field in your XML metadata. If neither source is provided, the Intent's data field will be null. Note: If your data is the same for all suggestions, or can be described using a constant part and a specific ID, it is more efficient to specify it using XML metadata and omit it from the cursor.
			 */
			static SUGGEST_COLUMN_INTENT_DATA: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> If this column exists <i>and</i> this element exists at the given row, this is the data that will be used when forming the suggestion's intent. If not provided, the Intent's extra data field will be null. This column allows suggestions to provide additional arbitrary data which will be included as an extra under the key #EXTRA_DATA_KEY.
			 */
			static SUGGEST_COLUMN_INTENT_EXTRA_DATA: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> If this column exists <i>and</i> this element exists at the given row, then "/" and this value will be appended to the data field in the Intent. This should only be used if the data field has already been set to an appropriate base string.
			 */
			static SUGGEST_COLUMN_INTENT_DATA_ID: string;
			/**
			 * Column name for suggestions cursor. <i>Required if action is android.content.Intent#ACTION_SEARCH ACTION_SEARCH, optional otherwise.</i> If this column exists <i>and</i> this element exists at the given row, this is the data that will be used when forming the suggestion's query.
			 */
			static SUGGEST_COLUMN_QUERY: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> This column is used to indicate whether a search suggestion should be stored as a shortcut, and whether it should be refreshed. If missing, the result will be stored as a shortcut and never validated. If set to #SUGGEST_NEVER_MAKE_SHORTCUT, the result will not be stored as a shortcut. Otherwise, the shortcut id will be used to check back for an up to date suggestion using #SUGGEST_URI_PATH_SHORTCUT.
			 */
			static SUGGEST_COLUMN_SHORTCUT_ID: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> This column is used to specify that a spinner should be shown in lieu of an icon2 while the shortcut of this suggestion is being refreshed.
			 */
			static SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> This column is used to specify additional flags per item. Multiple flags can be specified.
			 */
			static SUGGEST_COLUMN_FLAGS: string;
			/**
			 * Column name for suggestions cursor. <i>Optional.</i> This column may be used to specify the time in System#currentTimeMillis System.currentTImeMillis() (wall time in UTC) when an item was last accessed within the results-providing application. If set, this may be used to show more-recently-used items first.
			 */
			static SUGGEST_COLUMN_LAST_ACCESS_HINT: string;
			/**
			 * Column value for suggestion column #SUGGEST_COLUMN_SHORTCUT_ID when a suggestion should not be stored as a shortcut in global search.
			 */
			static SUGGEST_NEVER_MAKE_SHORTCUT: string;
			/**
			 * Query parameter added to suggestion queries to limit the number of suggestions returned. This limit is only advisory and suggestion providers may chose to ignore it.
			 */
			static SUGGEST_PARAMETER_LIMIT: string;
			/**
			 * Intent action for starting the global search activity. The global search provider should handle this intent.
			 */
			static INTENT_ACTION_GLOBAL_SEARCH: string;
			/**
			 * Intent action for starting the global search settings activity. The global search provider should handle this intent.
			 */
			static INTENT_ACTION_SEARCH_SETTINGS: string;
			/**
			 * Intent action for starting a web search provider's settings activity. Web search providers should handle this intent if they have provider-specific settings to implement.
			 */
			static INTENT_ACTION_WEB_SEARCH_SETTINGS: string;
			/**
			 * Intent action broadcasted to inform that the searchables list or default have changed. Components should handle this intent if they cache any searchable data and wish to stay up to date on changes.
			 */
			static INTENT_ACTION_SEARCHABLES_CHANGED: string;
			/**
			 * Intent action to be broadcast to inform that the global search provider has changed.
			 */
			static INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED: string;
			/**
			 * Intent action broadcasted to inform that the search settings have changed in some way. Either searchables have been enabled or disabled, or a different web search provider has been chosen.
			 */
			static INTENT_ACTION_SEARCH_SETTINGS_CHANGED: string;
			static class: java.lang.Class<android.app.SearchManager>;
			/**
			 * Launch search UI.
			 * @param initialQuery A search string can be pre-entered here, but this
			 * @param selectInitialQuery If true, the intial query will be preselected, which means that
			 * @param launchActivity The ComponentName of the activity that has launched this search.
			 * @param appSearchData An application can insert application-specific
			 * @param globalSearch If false, this will only launch the search that has been specifically
			 */
			public startSearch(initialQuery: string, selectInitialQuery: boolean, launchActivity: android.content.ComponentName, appSearchData: android.os.Bundle, globalSearch: boolean): void;
			/**
			 * Starts the global search activity.
			 */
			startGlobalSearch(initialQuery: string, selectInitialQuery: boolean, appSearchData: android.os.Bundle, sourceBounds: android.graphics.Rect): void;
			/**
			 * Gets the name of the global search activity.
			 */
			public getGlobalSearchActivity(): android.content.ComponentName;
			/**
			 * Similar to #startSearch but actually fires off the search query after invoking the search dialog. Made available for testing purposes.
			 * @param query The query to trigger. If empty, request will be ignored.
			 * @param launchActivity The ComponentName of the activity that has launched this search.
			 * @param appSearchData An application can insert application-specific
			 */
			public triggerSearch(query: string, launchActivity: android.content.ComponentName, appSearchData: android.os.Bundle): void;
			/**
			 * Terminate search UI.
			 */
			public stopSearch(): void;
			/**
			 * Set or clear the callback that will be invoked whenever the search UI is dismissed.
			 * @param listener The {@link OnDismissListener} to use, or null.
			 */
			public setOnDismissListener(listener: android.app.SearchManager.IOnDismissListener): void;
			/**
			 * Set or clear the callback that will be invoked whenever the search UI is canceled.
			 * @param listener The {@link OnCancelListener} to use, or null.
			 */
			public setOnCancelListener(listener: android.app.SearchManager.IOnCancelListener): void;
			/**
			 *  This method is an obsolete internal implementation detail. Do not use.
			 */
			public onCancel(dialog: android.content.IDialogInterface): void;
			/**
			 *  This method is an obsolete internal implementation detail. Do not use.
			 */
			public onDismiss(dialog: android.content.IDialogInterface): void;
			/**
			 * Gets information about a searchable activity.
			 * @param componentName The activity to get searchable information for.
			 */
			public getSearchableInfo(componentName: android.content.ComponentName): android.app.SearchableInfo;
			/**
			 * Returns a list of the searchable activities that can be included in global search.
			 */
			public getSearchablesInGlobalSearch(): java.util.IList<android.app.SearchableInfo>;
		}
		export module SearchManager {
			/**
			 * See SearchManager#setOnCancelListener for configuring your activity to monitor search UI state.
			 */
			interface IOnCancelListener {
				/**
				 * This method will be called when the search UI is canceled. To make use if it, you must implement this method in your activity, and call SearchManager#setOnCancelListener to register it.
				 */
				onCancel(): void;
			}
			/**
			 * See SearchManager#setOnDismissListener for configuring your activity to monitor search UI state.
			 */
			interface IOnDismissListener {
				/**
				 * This method will be called when the search UI is dismissed. To make use of it, you must implement this method in your activity, and call SearchManager#setOnDismissListener to register it.
				 */
				onDismiss(): void;
			}
			/**
			 * See SearchManager#setOnDismissListener for configuring your activity to monitor search UI state.
			 */
			export class OnDismissListener implements android.app.SearchManager.IOnDismissListener {
				constructor(implementation: android.app.SearchManager.IOnDismissListener);
				/**
				 * This method will be called when the search UI is dismissed. To make use of it, you must implement this method in your activity, and call SearchManager#setOnDismissListener to register it.
				 */
				public onDismiss(): void;
			}
			/**
			 * See SearchManager#setOnCancelListener for configuring your activity to monitor search UI state.
			 */
			export class OnCancelListener implements android.app.SearchManager.IOnCancelListener {
				constructor(implementation: android.app.SearchManager.IOnCancelListener);
				/**
				 * This method will be called when the search UI is canceled. To make use if it, you must implement this method in your activity, and call SearchManager#setOnCancelListener to register it.
				 */
				public onCancel(): void;
			}
		}
		/**
		 * A fragment that displays a list of items by binding to a data source such as an array or Cursor, and exposes event handlers when the user selects an item.
		 */
		export class ListFragment extends android.app.Fragment {
			constructor();
			static class: java.lang.Class<android.app.ListFragment>;
			/**
			 * Provide default implementation to return a simple list view. Subclasses can override to replace with their own layout. If doing so, the returned view hierarchy <em>must</em> have a ListView whose id is android.R.id#list android.R.id.list and can optionally have a sibling view id android.R.id#empty android.R.id.empty that is to be shown when the list is empty. 
			 */
			public onCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
			/**
			 * Attach to list view once the view hierarchy has been created.
			 */
			public onViewCreated(view: android.view.View, savedInstanceState: android.os.Bundle): void;
			/**
			 * Detach from list view.
			 */
			public onDestroyView(): void;
			/**
			 * This method will be called when an item in the list is selected. Subclasses should override. Subclasses can call getListView().getItemAtPosition(position) if they need to access the data associated with the selected item.
			 * @param l The ListView where the click happened
			 * @param v The view that was clicked within the ListView
			 * @param position The position of the view in the list
			 * @param id The row id of the item that was clicked
			 */
			public onListItemClick(l: android.widget.ListView, v: android.view.View, position: number, id: number): void;
			/**
			 * Provide the cursor for the list view.
			 */
			public setListAdapter(adapter: android.widget.IListAdapter): void;
			/**
			 * Set the currently selected list item to the specified position with the adapter's data
			 * @param position 
			 */
			public setSelection(position: number): void;
			/**
			 * Get the position of the currently selected list item.
			 */
			public getSelectedItemPosition(): number;
			/**
			 * Get the cursor row ID of the currently selected list item.
			 */
			public getSelectedItemId(): any;
			/**
			 * Get the activity's list view widget.
			 */
			public getListView(): android.widget.ListView;
			/**
			 * The default content for a ListFragment has a TextView that can be shown when the list is empty. If you would like to have it shown, call this method to supply the text it should use.
			 */
			public setEmptyText(text: string): void;
			/**
			 * Control whether the list is being displayed. You can make it not displayed if you are waiting for the initial data to show in it. During this time an indeterminant progress indicator will be shown instead. 
			 * @param shown If true, the list view is shown; if false, the progress
			 */
			public setListShown(shown: boolean): void;
			/**
			 * Like #setListShown(boolean), but no animation is used when transitioning from the previous state.
			 */
			public setListShownNoAnimation(shown: boolean): void;
			/**
			 * Get the ListAdapter associated with this activity's ListView.
			 */
			public getListAdapter(): android.widget.IListAdapter;
		}
		/**
		 * Base class for Instrumented tests for the Download Manager.
		 */
		export class DownloadManagerBaseTest extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.app.DownloadManagerBaseTest>;
			/**
			 * 
			 */
			public setUp(): void;
			/**
			 * Helper to generate a random blob of bytes.
			 * @param size The size of the data to generate
			 * @param type The type of data to generate: currently, one of {@link DataType#TEXT} or
			 */
			protected generateData(size: number, type: android.app.DownloadManagerBaseTest.DataType): native.Array<number>;
			/**
			 * Helper to generate a random blob of bytes using a given RNG.
			 * @param size The size of the data to generate
			 * @param type The type of data to generate: currently, one of {@link DataType#TEXT} or
			 * @param rng (optional) The RNG to use; pass null to use
			 */
			protected generateData(size: number, type: android.app.DownloadManagerBaseTest.DataType, rng: java.util.Random): native.Array<number>;
			/**
			 * Helper to verify the size of a file.
			 * @param pfd The input file to compare the size of
			 * @param size The expected size of the file
			 */
			protected verifyFileSize(pfd: android.os.ParcelFileDescriptor, size: number): void;
			/**
			 * Helper to verify the contents of a downloaded file versus a byte[].
			 * @param actual The file of whose contents to verify
			 * @param expected The data we expect to find in the aforementioned file
			 */
			protected verifyFileContents(actual: android.os.ParcelFileDescriptor, expected: native.Array<number>): void;
			/**
			 * Helper to compare 2 byte arrays.
			 * @param actual The array whose data we want to verify
			 * @param expected The array of data we expect to see
			 */
			protected compareByteArrays(actual: native.Array<number>, expected: native.Array<number>): void;
			/**
			 * Verifies the contents of a downloaded file versus the contents of a File.
			 * @param pfd The file whose data we want to verify
			 * @param file The file containing the data we expect to see in the aforementioned file
			 */
			protected verifyFileContents(pfd: android.os.ParcelFileDescriptor, file: java.io.File): void;
			/**
			 * Sets the MIME type of file that will be served from the mock server
			 * @param type The MIME type to return from the server
			 */
			protected setServerMimeType(type: android.app.DownloadManagerBaseTest.DownloadFileType): void;
			/**
			 * Gets the MIME content string for a given type
			 * @param type The MIME type to return
			 */
			protected getMimeMapping(type: android.app.DownloadManagerBaseTest.DownloadFileType): string;
			/**
			 * Gets the Uri that should be used to access the mock server
			 * @param filename The name of the file to try to retrieve from the mock server
			 */
			protected getServerUri(filename: string): android.net.Uri;
			/**
			 * Gets the Uri that should be used to access the mock server
			 * @param cursor filename The name of the file to try to retrieve from the mock server
			 * @param column 
			 */
			protected logDBColumnData(cursor: android.database.ICursor, column: string): void;
			/**
			 * Helper to create and register a new MultipleDownloadCompletedReciever
			 */
			protected registerNewMultipleDownloadsReceiver(): android.app.DownloadManagerBaseTest.MultipleDownloadsCompletedReceiver;
			/**
			 * Helper to verify a standard single-file download from the mock server, and clean up after verification
			 * @param requestId The id of the download to remove
			 * @param fileData The data to verify the file contains
			 */
			protected verifyAndCleanupSingleFileDownload(requestId: number, fileData: native.Array<number>): void;
			/**
			 * Enables or disables WiFi.
			 * @param enable true if it should be enabled, false if it should be disabled
			 */
			protected setWiFiStateOn(enable: boolean): void;
			/**
			 * Helper to enables or disables airplane mode. If successful, it also broadcasts an intent indicating that the mode has changed.
			 * @param enable true if airplane mode should be ON, false if it should be OFF
			 */
			protected setAirplaneModeOn(enable: boolean): void;
			/**
			 * Helper to create a large file of random data on the SD card.
			 * @param filename (optional) The name of the file to create on the SD card; pass in null to
			 * @param fileSize type The type of file to create
			 * @param type subdirectory If not null, the subdirectory under the SD card where the file should go
			 * @param subdirectory 
			 */
			protected createFileOnSD(filename: string, fileSize: number, type: android.app.DownloadManagerBaseTest.DataType, subdirectory: string): java.io.File;
			/**
			 * Helper to wait for a particular download to finish, or else a timeout to occur
			 * @param id The download id to query on (wait for)
			 */
			protected waitForDownloadOrTimeout_skipNotification(id: number): void;
			/**
			 * Helper to wait for a particular download to finish, or else a timeout to occur
			 * @param id The download id to query on (wait for)
			 */
			protected waitForDownloadOrTimeout(id: number): void;
			/**
			 * Helper to wait for a particular download to finish, or else a timeout to occur
			 * @param id The download id to query on (wait for)
			 * @param poll The amount of time to wait
			 * @param timeoutMillis The max time (in ms) to wait for the download(s) to complete
			 */
			protected waitForDownloadOrTimeout(id: number, poll: number, timeoutMillis: number): void;
			/**
			 * Helper to wait for all downloads to finish, or else a specified timeout to occur
			 * @param poll The amount of time to wait
			 * @param timeoutMillis The max time (in ms) to wait for the download(s) to complete
			 */
			protected waitForDownloadsOrTimeout(poll: number, timeoutMillis: number): void;
			/**
			 * Helper to wait for all downloads to finish, or else a timeout to occur, but does not throw
			 * @param id The id of the download to query against
			 * @param poll The amount of time to wait
			 * @param timeoutMillis The max time (in ms) to wait for the download(s) to complete
			 */
			protected waitForDownloadOrTimeoutNoThrow(id: number, poll: number, timeoutMillis: number): boolean;
			/**
			 * Helper function to synchronously wait, or timeout if the maximum threshold has been exceeded.
			 * @param currentTotalWaitTime The total time waited so far
			 * @param poll The amount of time to wait
			 * @param maxTimeoutMillis The total wait time threshold; if we've waited more than this long,
			 * @param timedOutMessage The message to display in the failure message if we timeout
			 */
			protected timeoutWait(currentTotalWaitTime: number, poll: number, maxTimeoutMillis: number, timedOutMessage: string): number;
			/**
			 * Helper to wait for all downloads to finish, or else a timeout to occur
			 * @param query The query to pass to the download manager
			 * @param poll The poll time to wait between checks
			 * @param timeoutMillis The max amount of time (in ms) to wait for the download(s) to complete
			 */
			protected doWaitForDownloadsOrTimeout(query: android.app.DownloadManager.Query, poll: number, timeoutMillis: number): void;
			/**
			 * Synchronously waits for external store to be mounted (eg: SD Card).
			 */
			protected waitForExternalStoreMount(): void;
			/**
			 * Synchronously waits for a download to start.
			 * @param dlRequest the download request id used by Download Manager to track the download.
			 */
			protected waitForDownloadToStart(dlRequest: number): void;
			/**
			 * Convenience function to wait for just 1 notification of a download.
			 */
			protected waitForReceiverNotification(): void;
			/**
			 * Synchronously waits for our receiver to receive notification for a given number of downloads.
			 * @param targetNumber The number of notifications for unique downloads to wait for; pass in
			 */
			protected waitForReceiverNotifications(targetNumber: number): void;
			/**
			 * Synchronously waits for a file to increase in size (such as to monitor that a download is progressing).
			 * @param file The file whose size to track.
			 */
			protected waitForFileToGrow(file: java.io.File): void;
			/**
			 * Helper to remove all downloads that are registered with the DL Manager.
			 */
			protected removeAllCurrentDownloads(): void;
			/**
			 * Helper to perform a standard enqueue of data to the mock server. download is performed to the downloads cache dir (NOT systemcache dir)
			 * @param body The body to return in the response from the server
			 */
			protected doStandardEnqueue(body: native.Array<number>): any;
			protected enqueueDownloadRequest(body: native.Array<number>, location: number): any;
			/**
			 * Helper to perform a standard enqueue of data to the mock server.
			 * @param body The body to return in the response from the server, contained in the file
			 */
			protected doStandardEnqueue(body: java.io.File): any;
			protected enqueueDownloadRequest(body: java.io.File, location: number): any;
			/**
			 * Helper to do the additional steps (setting title and Uri of default filename) when doing a standard enqueue request to the server.
			 */
			protected doCommonStandardEnqueue(): any;
			/**
			 * Helper to verify an int value in a Cursor
			 * @param cursor The cursor containing the query results
			 * @param columnName The name of the column to query
			 * @param expected The expected int value
			 */
			protected verifyInt(cursor: android.database.ICursor, columnName: string, expected: number): void;
			/**
			 * Helper to verify a String value in a Cursor
			 * @param cursor The cursor containing the query results
			 * @param columnName The name of the column to query
			 * @param expected The expected String value
			 */
			protected verifyString(cursor: android.database.ICursor, columnName: string, expected: string): void;
			/**
			 * Performs a query based on ID and returns a Cursor for the query.
			 * @param id The id of the download in DL Manager; pass -1 to query all downloads
			 */
			protected getCursor(id: number): android.database.ICursor;
			/**
			 * Helper that does the actual basic download verification.
			 */
			protected doBasicDownload(blobData: native.Array<number>, location: number): any;
		}
		export module DownloadManagerBaseTest {
			export class LoggingRng extends java.util.Random {
				/**
				 * Constructor
				 */
				constructor();
				/**
				 * Constructor
				 * @param seed The initial seed value
				 */
				constructor(seed: number);
				static class: java.lang.Class<android.app.DownloadManagerBaseTest.LoggingRng>;
			}
			export class MultipleDownloadsCompletedReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.DownloadManagerBaseTest.MultipleDownloadsCompletedReceiver>;
				/**
				 * 
				 */
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Gets the number of times the #onReceive callback has been called for the DownloadManager.ACTION_DOWNLOAD_COMPLETED action, indicating the number of downloads completed thus far.
				 */
				public numDownloadsCompleted(): number;
				/**
				 * Gets the list of download IDs.
				 */
				public getDownloadIds(): java.util.ISet<java.lang.Long>;
			}
			export enum DataType {
				TEXT,
				BINARY
			}
			export class WiFiChangedReceiver extends android.content.BroadcastReceiver {
				/**
				 * Constructor
				 * @param context The current app {@link Context}.
				 */
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.app.DownloadManagerBaseTest.WiFiChangedReceiver>;
				/**
				 * 
				 */
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Gets the current state of WiFi.
				 */
				public getWiFiIsOn(): boolean;
			}
			export enum DownloadFileType {
				PLAINTEXT,
				APK,
				GIF,
				GARBAGE,
				UNRECOGNIZED,
				ZIP
			}
		}
		/**
		 * A dialog that prompts the user for the time of day using a TimePicker.
		 */
		export class TimePickerDialog extends android.app.AlertDialog implements android.content.DialogInterface.IOnClickListener, android.widget.TimePicker.IOnTimeChangedListener {
			/**
			 * @param context Parent.
			 * @param callBack How parent is notified.
			 * @param hourOfDay The initial hour.
			 * @param minute The initial minute.
			 * @param is24HourView Whether this is a 24 hour view, or AM/PM.
			 */
			constructor(context: android.content.Context, callBack: android.app.TimePickerDialog.IOnTimeSetListener, hourOfDay: number, minute: number, is24HourView: boolean);
			/**
			 * @param context Parent.
			 * @param theme the theme to apply to this dialog
			 * @param callBack How parent is notified.
			 * @param hourOfDay The initial hour.
			 * @param minute The initial minute.
			 * @param is24HourView Whether this is a 24 hour view, or AM/PM.
			 */
			constructor(context: android.content.Context, theme: number, callBack: android.app.TimePickerDialog.IOnTimeSetListener, hourOfDay: number, minute: number, is24HourView: boolean);
			static class: java.lang.Class<android.app.TimePickerDialog>;
			public onClick(dialog: android.content.IDialogInterface, which: number): void;
			public updateTime(hourOfDay: number, minutOfHour: number): void;
			public onTimeChanged(view: android.widget.TimePicker, hourOfDay: number, minute: number): void;
			protected onStop(): void;
			public onSaveInstanceState(): android.os.Bundle;
			public onRestoreInstanceState(savedInstanceState: android.os.Bundle): void;
		}
		export module TimePickerDialog {
			/**
			 * The callback interface used to indicate the user is done filling in the time (they clicked on the 'Set' button).
			 */
			interface IOnTimeSetListener {
				/**
				 * @param view The view associated with this listener.
				 * @param hourOfDay The hour that was set.
				 * @param minute The minute that was set.
				 */
				onTimeSet(view: android.widget.TimePicker, hourOfDay: number, minute: number): void;
			}
			/**
			 * The callback interface used to indicate the user is done filling in the time (they clicked on the 'Set' button).
			 */
			export class OnTimeSetListener implements android.app.TimePickerDialog.IOnTimeSetListener {
				constructor(implementation: android.app.TimePickerDialog.IOnTimeSetListener);
				/**
				 * @param view The view associated with this listener.
				 * @param hourOfDay The hour that was set.
				 * @param minute The minute that was set.
				 */
				public onTimeSet(view: android.widget.TimePicker, hourOfDay: number, minute: number): void;
			}
		}
		/**
		 * <h3>Fancy Translucent Activity</h3> 
		 */
		export class TranslucentFancyActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.app.TranslucentFancyActivity>;
			/**
			 * Initialization of the Activity after it is first created. Must at least call android.app.Activity#setContentView setContentView() to describe what is to be displayed in the screen.
			 */
			protected onCreate(icicle: android.os.Bundle): void;
		}
		export class InstrumentationTest extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.app.InstrumentationTest>;
			/**
			 * Simple stress test for Instrumentation#sendStatus(int, android.os.Bundle), to ensure it can handle many rapid calls without failing.
			 */
			public testSendStatus(): void;
		}
		/**
		 * Interface for interacting with Fragment objects inside of an Activity
		 */
		export class FragmentManager extends java.lang.Object {
			constructor();
			/**
			 * Flag for #popBackStack(String, int) and #popBackStack(int, int): If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn't match is found or the bottom of the stack is reached. Otherwise, all entries up to but not including that entry will be removed.
			 */
			static POP_BACK_STACK_INCLUSIVE: number;
			static class: java.lang.Class<android.app.FragmentManager>;
			/**
			 * Start a series of edit operations on the Fragments associated with this FragmentManager. 
			 */
			public beginTransaction(): android.app.FragmentTransaction;
			/**
			 * After a FragmentTransaction is committed with FragmentTransaction#commit FragmentTransaction.commit(), it is scheduled to be executed asynchronously on the process's main thread. If you want to immediately executing any such pending operations, you can call this function (only from the main thread) to do so. Note that all callbacks and other related behavior will be done from within this call, so be careful about where this is called from.
			 */
			public executePendingTransactions(): boolean;
			/**
			 * Finds a fragment that was identified by the given id either when inflated from XML or as the container ID when added in a transaction. This first searches through fragments that are currently added to the manager's activity; if no such fragment is found, then all fragments currently on the back stack associated with this ID are searched.
			 */
			public findFragmentById(id: number): android.app.Fragment;
			/**
			 * Finds a fragment that was identified by the given tag either when inflated from XML or as supplied when added in a transaction. This first searches through fragments that are currently added to the manager's activity; if no such fragment is found, then all fragments currently on the back stack are searched.
			 */
			public findFragmentByTag(tag: string): android.app.Fragment;
			/**
			 * Pop the top state off the back stack. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop.
			 */
			public popBackStack(): void;
			/**
			 * Like #popBackStack(), but performs the operation immediately inside of the call. This is like calling #executePendingTransactions() afterwards.
			 */
			public popBackStackImmediate(): boolean;
			/**
			 * Pop the last fragment transition from the manager's fragment back stack. If there is nothing to pop, false is returned. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop. 
			 * @param name If non-null, this is the name of a previous back state
			 * @param flags Either 0 or {@link #POP_BACK_STACK_INCLUSIVE}.
			 */
			public popBackStack(name: string, flags: number): void;
			/**
			 * Like #popBackStack(String, int), but performs the operation immediately inside of the call. This is like calling #executePendingTransactions() afterwards.
			 */
			public popBackStackImmediate(name: string, flags: number): boolean;
			/**
			 * Pop all back stack states up to the one with the given identifier. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop. 
			 * @param id Identifier of the stated to be popped. If no identifier exists,
			 * @param flags Either 0 or {@link #POP_BACK_STACK_INCLUSIVE}.
			 */
			public popBackStack(id: number, flags: number): void;
			/**
			 * Like #popBackStack(int, int), but performs the operation immediately inside of the call. This is like calling #executePendingTransactions() afterwards.
			 */
			public popBackStackImmediate(id: number, flags: number): boolean;
			/**
			 * Return the number of entries currently in the back stack.
			 */
			public getBackStackEntryCount(): number;
			/**
			 * Return the BackStackEntry at index <var>index</var> in the back stack; entries start index 0 being the bottom of the stack.
			 */
			public getBackStackEntryAt(index: number): android.app.FragmentManager.IBackStackEntry;
			/**
			 * Add a new listener for changes to the fragment back stack.
			 */
			public addOnBackStackChangedListener(listener: android.app.FragmentManager.IOnBackStackChangedListener): void;
			/**
			 * Remove a listener that was previously added with #addOnBackStackChangedListener(OnBackStackChangedListener).
			 */
			public removeOnBackStackChangedListener(listener: android.app.FragmentManager.IOnBackStackChangedListener): void;
			/**
			 * Put a reference to a fragment in a Bundle. This Bundle can be persisted as saved state, and when later restoring #getFragment(Bundle, String) will return the current instance of the same fragment.
			 * @param bundle The bundle in which to put the fragment reference.
			 * @param key The name of the entry in the bundle.
			 * @param fragment The Fragment whose reference is to be stored.
			 */
			public putFragment(bundle: android.os.Bundle, key: string, fragment: android.app.Fragment): void;
			/**
			 * Retrieve the current Fragment instance for a reference previously placed with #putFragment(Bundle, String, Fragment).
			 * @param bundle The bundle from which to retrieve the fragment reference.
			 * @param key The name of the entry in the bundle.
			 */
			public getFragment(bundle: android.os.Bundle, key: string): android.app.Fragment;
			/**
			 * Save the current instance state of the given Fragment. This can be used later when creating a new instance of the Fragment and adding it to the fragment manager, to have it create itself to match the current state returned here. Note that there are limits on how this can be used:
			 * @param f The Fragment whose state is to be saved.
			 */
			public saveFragmentInstanceState(f: android.app.Fragment): android.app.Fragment.SavedState;
			/**
			 * Returns true if the final Activity#onDestroy() Activity.onDestroy() call has been made on the FragmentManager's Activity, so this instance is now dead.
			 */
			public isDestroyed(): boolean;
			/**
			 * Print the FragmentManager's state into the given stream.
			 * @param prefix Text to print at the front of each line.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param writer A PrintWriter to which the dump is to be set.
			 * @param args Additional arguments to the dump request.
			 */
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			/**
			 * Control whether the framework's internal fragment manager debugging logs are turned on. If enabled, you will see output in logcat as the framework performs fragment operations.
			 */
			public static enableDebugLogging(enabled: boolean): void;
			/**
			 * Invalidate the attached activity's options menu as necessary. This may end up being deferred until we move to the resumed state.
			 */
			public invalidateOptionsMenu(): void;
		}
		export module FragmentManager {
			/**
			 * Interface to watch for changes to the back stack.
			 */
			export class OnBackStackChangedListener implements android.app.FragmentManager.IOnBackStackChangedListener {
				constructor(implementation: android.app.FragmentManager.IOnBackStackChangedListener);
				/**
				 * Called whenever the contents of the back stack change.
				 */
				public onBackStackChanged(): void;
			}
			/**
			 * Representation of an entry on the fragment back stack, as created with FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(). Entries can later be retrieved with FragmentManager#getBackStackEntryAt(int) FragmentManager.getBackStackEntry().
			 */
			export class BackStackEntry implements android.app.FragmentManager.IBackStackEntry {
				constructor(implementation: android.app.FragmentManager.IBackStackEntry);
				/**
				 * Return the unique identifier for the entry. This is the only representation of the entry that will persist across activity instances.
				 */
				public getId(): number;
				/**
				 * Get the name that was supplied to FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(String) when creating this entry.
				 */
				public getName(): string;
				/**
				 * Return the full bread crumb title resource identifier for the entry, or 0 if it does not have one.
				 */
				public getBreadCrumbTitleRes(): number;
				/**
				 * Return the short bread crumb title resource identifier for the entry, or 0 if it does not have one.
				 */
				public getBreadCrumbShortTitleRes(): number;
				/**
				 * Return the full bread crumb title for the entry, or null if it does not have one.
				 */
				public getBreadCrumbTitle(): string;
				/**
				 * Return the short bread crumb title for the entry, or null if it does not have one.
				 */
				public getBreadCrumbShortTitle(): string;
			}
			/**
			 * Representation of an entry on the fragment back stack, as created with FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(). Entries can later be retrieved with FragmentManager#getBackStackEntryAt(int) FragmentManager.getBackStackEntry().
			 */
			interface IBackStackEntry {
				/**
				 * Return the unique identifier for the entry. This is the only representation of the entry that will persist across activity instances.
				 */
				getId(): number;
				/**
				 * Get the name that was supplied to FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(String) when creating this entry.
				 */
				getName(): string;
				/**
				 * Return the full bread crumb title resource identifier for the entry, or 0 if it does not have one.
				 */
				getBreadCrumbTitleRes(): number;
				/**
				 * Return the short bread crumb title resource identifier for the entry, or 0 if it does not have one.
				 */
				getBreadCrumbShortTitleRes(): number;
				/**
				 * Return the full bread crumb title for the entry, or null if it does not have one.
				 */
				getBreadCrumbTitle(): string;
				/**
				 * Return the short bread crumb title for the entry, or null if it does not have one.
				 */
				getBreadCrumbShortTitle(): string;
			}
			/**
			 * Interface to watch for changes to the back stack.
			 */
			interface IOnBackStackChangedListener {
				/**
				 * Called whenever the contents of the back stack change.
				 */
				onBackStackChanged(): void;
			}
		}
		/**
		 * A description of an Intent and target action to perform with it. Instances of this class are created with #getActivity, #getActivities, #getBroadcast, and #getService; the returned object can be handed to other applications so that they can perform the action you described on your behalf at a later time.
		 */
		export class PendingIntent extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Flag for use with #getActivity, #getBroadcast, and #getService: this PendingIntent can only be used once. If set, after #send() is called on it, it will be automatically canceled for you and any future attempt to send through it will fail.
			 */
			static FLAG_ONE_SHOT: number;
			/**
			 * Flag for use with #getActivity, #getBroadcast, and #getService: if the described PendingIntent does not already exist, then simply return null instead of creating it.
			 */
			static FLAG_NO_CREATE: number;
			/**
			 * Flag for use with #getActivity, #getBroadcast, and #getService: if the described PendingIntent already exists, the current one is canceled before generating a new one. You can use this to retrieve a new PendingIntent when you are only changing the extra data in the Intent; by canceling the previous pending intent, this ensures that only entities given the new data will be able to launch it. If this assurance is not an issue, consider #FLAG_UPDATE_CURRENT.
			 */
			static FLAG_CANCEL_CURRENT: number;
			/**
			 * Flag for use with #getActivity, #getBroadcast, and #getService: if the described PendingIntent already exists, then keep it but its replace its extra data with what is in this new Intent. This can be used if you are creating intents where only the extras change, and don't care that any entities that received your previous PendingIntent will be able to launch it with your new extras even if they are not explicitly given to it.
			 */
			static FLAG_UPDATE_CURRENT: number;
			static CREATOR: android.os.Parcelable.ICreator<android.app.PendingIntent>;
			static class: java.lang.Class<android.app.PendingIntent>;
			/**
			 * Retrieve a PendingIntent that will start a new activity, like calling Context#startActivity(Intent) Context.startActivity(Intent). Note that the activity will be started outside of the context of an existing activity, so you must use the Intent#FLAG_ACTIVITY_NEW_TASK Intent.FLAG_ACTIVITY_NEW_TASK launch flag in the Intent.
			 * @param context The Context in which this PendingIntent should start
			 * @param requestCode Private request code for the sender (currently
			 * @param intent Intent of the activity to be launched.
			 * @param flags May be {@link #FLAG_ONE_SHOT}, {@link #FLAG_NO_CREATE},
			 */
			public static getActivity(context: android.content.Context, requestCode: number, intent: android.content.Intent, flags: number): android.app.PendingIntent;
			/**
			 * Retrieve a PendingIntent that will start a new activity, like calling Context#startActivity(Intent) Context.startActivity(Intent). Note that the activity will be started outside of the context of an existing activity, so you must use the Intent#FLAG_ACTIVITY_NEW_TASK Intent.FLAG_ACTIVITY_NEW_TASK launch flag in the Intent.
			 * @param context The Context in which this PendingIntent should start
			 * @param requestCode Private request code for the sender (currently
			 * @param intent Intent of the activity to be launched.
			 * @param flags May be {@link #FLAG_ONE_SHOT}, {@link #FLAG_NO_CREATE},
			 * @param options Additional options for how the Activity should be started.
			 */
			public static getActivity(context: android.content.Context, requestCode: number, intent: android.content.Intent, flags: number, options: android.os.Bundle): android.app.PendingIntent;
			/**
			 * Like #getActivity(Context, int, Intent, int), but allows an array of Intents to be supplied. The first Intent in the array is taken as the primary key for the PendingIntent, like the single Intent given to #getActivity(Context, int, Intent, int). Upon sending the resulting PendingIntent, all of the Intents are started in the same way as they would be by passing them to Context#startActivities(Intent[]).
			 * @param context The Context in which this PendingIntent should start
			 * @param requestCode Private request code for the sender (currently
			 * @param intents Array of Intents of the activities to be launched.
			 * @param flags May be {@link #FLAG_ONE_SHOT}, {@link #FLAG_NO_CREATE},
			 */
			public static getActivities(context: android.content.Context, requestCode: number, intents: native.Array<android.content.Intent>, flags: number): android.app.PendingIntent;
			/**
			 * Like #getActivity(Context, int, Intent, int), but allows an array of Intents to be supplied. The first Intent in the array is taken as the primary key for the PendingIntent, like the single Intent given to #getActivity(Context, int, Intent, int). Upon sending the resulting PendingIntent, all of the Intents are started in the same way as they would be by passing them to Context#startActivities(Intent[]).
			 * @param context The Context in which this PendingIntent should start
			 * @param requestCode Private request code for the sender (currently
			 * @param intents Array of Intents of the activities to be launched.
			 * @param flags May be {@link #FLAG_ONE_SHOT}, {@link #FLAG_NO_CREATE},
			 * @param options 
			 */
			public static getActivities(context: android.content.Context, requestCode: number, intents: native.Array<android.content.Intent>, flags: number, options: android.os.Bundle): android.app.PendingIntent;
			/**
			 * Retrieve a PendingIntent that will perform a broadcast, like calling Context#sendBroadcast(Intent) Context.sendBroadcast().
			 * @param context The Context in which this PendingIntent should perform
			 * @param requestCode Private request code for the sender (currently
			 * @param intent The Intent to be broadcast.
			 * @param flags May be {@link #FLAG_ONE_SHOT}, {@link #FLAG_NO_CREATE},
			 */
			public static getBroadcast(context: android.content.Context, requestCode: number, intent: android.content.Intent, flags: number): android.app.PendingIntent;
			/**
			 * Retrieve a PendingIntent that will start a service, like calling Context#startService Context.startService(). The start arguments given to the service will come from the extras of the Intent.
			 * @param context The Context in which this PendingIntent should start
			 * @param requestCode Private request code for the sender (currently
			 * @param intent An Intent describing the service to be started.
			 * @param flags May be {@link #FLAG_ONE_SHOT}, {@link #FLAG_NO_CREATE},
			 */
			public static getService(context: android.content.Context, requestCode: number, intent: android.content.Intent, flags: number): android.app.PendingIntent;
			/**
			 * Retrieve a IntentSender object that wraps the existing sender of the PendingIntent
			 */
			public getIntentSender(): android.content.IntentSender;
			/**
			 * Cancel a currently active PendingIntent. Only the original application owning a PendingIntent can cancel it.
			 */
			public cancel(): void;
			/**
			 * Perform the operation associated with this PendingIntent.
			 */
			public send(): void;
			/**
			 * Perform the operation associated with this PendingIntent.
			 * @param code Result code to supply back to the PendingIntent's target.
			 */
			public send(code: number): void;
			/**
			 * Perform the operation associated with this PendingIntent, allowing the caller to specify information about the Intent to use.
			 * @param context The Context of the caller.
			 * @param code Result code to supply back to the PendingIntent's target.
			 * @param intent Additional Intent data. See {@link Intent#fillIn
			 */
			public send(context: android.content.Context, code: number, intent: android.content.Intent): void;
			/**
			 * Perform the operation associated with this PendingIntent, allowing the caller to be notified when the send has completed.
			 * @param code Result code to supply back to the PendingIntent's target.
			 * @param onFinished The object to call back on when the send has
			 * @param handler Handler identifying the thread on which the callback
			 */
			public send(code: number, onFinished: android.app.PendingIntent.IOnFinished, handler: android.os.Handler): void;
			/**
			 * Perform the operation associated with this PendingIntent, allowing the caller to specify information about the Intent to use and be notified when the send has completed.
			 * @param context The Context of the caller. This may be null if
			 * @param code Result code to supply back to the PendingIntent's target.
			 * @param intent Additional Intent data. See {@link Intent#fillIn
			 * @param onFinished The object to call back on when the send has
			 * @param handler Handler identifying the thread on which the callback
			 */
			public send(context: android.content.Context, code: number, intent: android.content.Intent, onFinished: android.app.PendingIntent.IOnFinished, handler: android.os.Handler): void;
			/**
			 * Perform the operation associated with this PendingIntent, allowing the caller to specify information about the Intent to use and be notified when the send has completed.
			 * @param context The Context of the caller. This may be null if
			 * @param code Result code to supply back to the PendingIntent's target.
			 * @param intent Additional Intent data. See {@link Intent#fillIn
			 * @param onFinished The object to call back on when the send has
			 * @param handler Handler identifying the thread on which the callback
			 * @param requiredPermission Name of permission that a recipient of the PendingIntent
			 */
			public send(context: android.content.Context, code: number, intent: android.content.Intent, onFinished: android.app.PendingIntent.IOnFinished, handler: android.os.Handler, requiredPermission: string): void;
			/**
			 *  Renamed to #getCreatorPackage().
			 */
			public getTargetPackage(): string;
			/**
			 * Return the package name of the application that created this PendingIntent, that is the identity under which you will actually be sending the Intent. The returned string is supplied by the system, so that an application can not spoof its package.
			 */
			public getCreatorPackage(): string;
			/**
			 * Return the uid of the application that created this PendingIntent, that is the identity under which you will actually be sending the Intent. The returned integer is supplied by the system, so that an application can not spoof its uid.
			 */
			public getCreatorUid(): number;
			/**
			 * Return the user handle of the application that created this PendingIntent, that is the user under which you will actually be sending the Intent. The returned UserHandle is supplied by the system, so that an application can not spoof its user. See android.os.Process#myUserHandle() Process.myUserHandle() for more explanation of user handles.
			 */
			public getCreatorUserHandle(): android.os.UserHandle;
			/**
			 * Comparison operator on two PendingIntent objects, such that true is returned then they both represent the same operation from the same package. This allows you to use #getActivity, #getBroadcast, or #getService multiple times (even across a process being killed), resulting in different PendingIntent objects but whose equals() method identifies them as being the same operation.
			 */
			public equals(otherObj: any): boolean;
			public hashCode(): number;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Convenience function for writing either a PendingIntent or null pointer to a Parcel. You must use this with #readPendingIntentOrNullFromParcel for later reading it.
			 * @param sender The PendingIntent to write, or null.
			 * @param out Where to write the PendingIntent.
			 */
			public static writePendingIntentOrNullToParcel(sender: android.app.PendingIntent, out: android.os.Parcel): void;
			/**
			 * Convenience function for reading either a Messenger or null pointer from a Parcel. You must have previously written the Messenger with #writePendingIntentOrNullToParcel.
			 * @param input in The Parcel containing the written Messenger.
			 */
			public static readPendingIntentOrNullFromParcel(input: android.os.Parcel): android.app.PendingIntent;
		}
		export module PendingIntent {
			/**
			 * Exception thrown when trying to send through a PendingIntent that has been canceled or is otherwise no longer able to execute the request.
			 */
			export class CanceledException extends android.util.AndroidException {
				constructor();
				constructor(name: string);
				constructor(cause: java.lang.Exception);
				static class: java.lang.Class<android.app.PendingIntent.CanceledException>;
			}
			/**
			 * Callback interface for discovering when a send operation has completed. Primarily for use with a PendingIntent that is performing a broadcast, this provides the same information as calling Context#sendOrderedBroadcast(Intent, String, android.content.BroadcastReceiver, Handler, int, String, Bundle) Context.sendBroadcast() with a final BroadcastReceiver.
			 */
			interface IOnFinished {
				/**
				 * Called when a send operation as completed.
				 * @param pendingIntent The PendingIntent this operation was sent through.
				 * @param intent The original Intent that was sent.
				 * @param resultCode The final result code determined by the send.
				 * @param resultData The final data collected by a broadcast.
				 * @param resultExtras The final extras collected by a broadcast.
				 */
				onSendFinished(pendingIntent: android.app.PendingIntent, intent: android.content.Intent, resultCode: number, resultData: string, resultExtras: android.os.Bundle): void;
			}
			/**
			 * Callback interface for discovering when a send operation has completed. Primarily for use with a PendingIntent that is performing a broadcast, this provides the same information as calling Context#sendOrderedBroadcast(Intent, String, android.content.BroadcastReceiver, Handler, int, String, Bundle) Context.sendBroadcast() with a final BroadcastReceiver.
			 */
			export class OnFinished implements android.app.PendingIntent.IOnFinished {
				constructor(implementation: android.app.PendingIntent.IOnFinished);
				/**
				 * Called when a send operation as completed.
				 * @param pendingIntent The PendingIntent this operation was sent through.
				 * @param intent The original Intent that was sent.
				 * @param resultCode The final result code determined by the send.
				 * @param resultData The final data collected by a broadcast.
				 * @param resultExtras The final extras collected by a broadcast.
				 */
				public onSendFinished(pendingIntent: android.app.PendingIntent, intent: android.content.Intent, resultCode: number, resultData: string, resultExtras: android.os.Bundle): void;
			}
			export class FinishedDispatcher implements java.lang.IRunnable {
				static class: java.lang.Class<android.app.PendingIntent.FinishedDispatcher>;
				public performReceive(intent: android.content.Intent, resultCode: number, data: string, extras: android.os.Bundle, serialized: boolean, sticky: boolean, sendingUser: number): void;
				public run(): void;
			}
		}
		/**
		 * Integration tests of the DownloadManager API.
		 */
		export class DownloadManagerFunctionalTest extends android.app.DownloadManagerBaseTest {
			constructor();
			static class: java.lang.Class<android.app.DownloadManagerFunctionalTest>;
			/**
			 * 
			 */
			public setUp(): void;
			/**
			 * 
			 */
			public tearDown(): void;
			/**
			 * Verifies a particular error code was received from a download
			 * @param uri The uri to enqueue to the DownloadManager
			 * @param error The error code expected
			 */
			public doErrorTest(uri: android.net.Uri, error: number): void;
			/**
			 * Test a basic download of a binary file 500k in size.
			 */
			public testBinaryDownloadToSystemCache(): void;
			/**
			 * Tests the basic downloading of a text file 300000 bytes in size.
			 */
			public testTextDownloadToSystemCache(): void;
			/**
			 * Tests trying to download to SD card when the file with same name already exists.
			 */
			public testDownloadToExternal_fileExists(): void;
			/**
			 * Tests trying to download a file to SD card.
			 */
			public testDownloadToExternal(): void;
			/**
			 * Tests trying to download a file to the system partition.
			 */
			public testDownloadToProhibitedDirectory(): void;
			/**
			 * Tests that we get the correct download ID from the download notification.
			 */
			public testGetDownloadIdOnNotification(): void;
			/**
			 * Tests the download failure error after too many redirects (>5).
			 */
			public testErrorTooManyRedirects(): void;
			/**
			 * Tests the download failure error from an unhandled HTTP status code
			 */
			public testErrorUnhandledHttpCode(): void;
			/**
			 * Tests the download failure error from an unhandled HTTP status code
			 */
			public testErrorHttpDataError_invalidRedirect(): void;
			/**
			 * Tests that we can remove a download from the download manager.
			 */
			public testRemoveDownload(): void;
			/**
			 * Tests that we can set the title of a download.
			 */
			public testSetTitle(): void;
			/**
			 * Tests that a download set for Wifi does not progress while Wifi is disabled, but resumes once Wifi is re-enabled.
			 */
			public testDownloadNoWifi(): void;
			/**
			 * Tests that we get an error code when the server drops the connection during a download.
			 */
			public testServerDropConnection_body(): void;
		}
		export class LocalActivityManager extends java.lang.Object {
			/**
			 * Create a new LocalActivityManager for holding activities running within the given <var>parent</var>. 
			 * @param parent the host of the embedded activities
			 * @param singleMode True if the LocalActivityManger should keep a maximum
			 */
			constructor(parent: android.app.Activity, singleMode: boolean);
			static class: java.lang.Class<android.app.LocalActivityManager>;
			/**
			 * Start a new activity running in the group. Every activity you start must have a unique string ID associated with it -- this is used to keep track of the activity, so that if you later call startActivity() again on it the same activity object will be retained. 
			 * @param id Unique identifier of the activity to be started
			 * @param intent The Intent describing the activity to be started
			 */
			public startActivity(id: string, intent: android.content.Intent): android.view.Window;
			/**
			 * Destroy the activity associated with a particular id. This activity will go through the normal lifecycle events and fine onDestroy(), and then the id removed from the group. 
			 * @param id Unique identifier of the activity to be destroyed
			 * @param finish If true, this activity will be finished, so its id and
			 */
			public destroyActivity(id: string, finish: boolean): android.view.Window;
			/**
			 * Retrieve the Activity that is currently running. 
			 */
			public getCurrentActivity(): android.app.Activity;
			/**
			 * Retrieve the ID of the activity that is currently running. 
			 */
			public getCurrentId(): string;
			/**
			 * Return the Activity object associated with a string ID. #startActivity 
			 */
			public getActivity(id: string): android.app.Activity;
			/**
			 * Restore a state that was previously returned by #saveInstanceState. This adds to the activity group information about all activity IDs that had previously been saved, even if they have not been started yet, so if the user later navigates to them the correct state will be restored. 
			 * @param state a previously saved state; does nothing if this is null
			 */
			public dispatchCreate(state: android.os.Bundle): void;
			/**
			 * Retrieve the state of all activities known by the group. For activities that have previously run and are now stopped or finished, the last saved state is used. For the current running activity, its Activity#onSaveInstanceState is called to retrieve its current state. 
			 */
			public saveInstanceState(): android.os.Bundle;
			/**
			 * Called by the container activity in its Activity#onResume so that LocalActivityManager can perform the corresponding action on the activities it holds. Activity#onResume
			 */
			public dispatchResume(): void;
			/**
			 * Called by the container activity in its Activity#onPause so that LocalActivityManager can perform the corresponding action on the activities it holds. 
			 * @param finishing set to true if the parent activity has been finished;
			 */
			public dispatchPause(finishing: boolean): void;
			/**
			 * Called by the container activity in its Activity#onStop so that LocalActivityManager can perform the corresponding action on the activities it holds. Activity#onStop
			 */
			public dispatchStop(): void;
			/**
			 * Remove all activities from this LocalActivityManager, performing an Activity#onDestroy on any that are currently instantiated.
			 */
			public removeAllActivities(): void;
			/**
			 * Called by the container activity in its Activity#onDestroy so that LocalActivityManager can perform the corresponding action on the activities it holds. Activity#onDestroy
			 */
			public dispatchDestroy(finishing: boolean): void;
		}
		export module LocalActivityManager {
			export class LocalActivityRecord extends android.os.Binder {
				static class: java.lang.Class<android.app.LocalActivityManager.LocalActivityRecord>;
			}
		}
		/**
		 * Utility class for constructing synthetic back stacks for cross-task navigation on Android 3.0 and newer.
		 */
		export class TaskStackBuilder extends java.lang.Object {
			static class: java.lang.Class<android.app.TaskStackBuilder>;
			/**
			 * Return a new TaskStackBuilder for launching a fresh task stack consisting of a series of activities.
			 * @param context The context that will launch the new task stack or generate a PendingIntent
			 */
			public static create(context: android.content.Context): android.app.TaskStackBuilder;
			/**
			 * Add a new Intent to the task stack. The most recently added Intent will invoke the Activity at the top of the final task stack.
			 * @param nextIntent Intent for the next Activity in the synthesized task stack
			 */
			public addNextIntent(nextIntent: android.content.Intent): android.app.TaskStackBuilder;
			/**
			 * Add a new Intent with the resolved chain of parents for the target activity to the task stack.
			 * @param nextIntent Intent for the topmost Activity in the synthesized task stack.
			 */
			public addNextIntentWithParentStack(nextIntent: android.content.Intent): android.app.TaskStackBuilder;
			/**
			 * Add the activity parent chain as specified by the Activity#getParentActivityIntent() getParentActivityIntent() method of the activity specified and the android.R.attr#parentActivityName parentActivityName attributes of each successive activity (or activity-alias) element in the application's manifest to the task stack builder.
			 * @param sourceActivity All parents of this activity will be added
			 */
			public addParentStack(sourceActivity: android.app.Activity): android.app.TaskStackBuilder;
			/**
			 * Add the activity parent chain as specified by the android.R.attr#parentActivityName parentActivityName attribute of the activity (or activity-alias) element in the application's manifest to the task stack builder.
			 * @param sourceActivityClass All parents of this activity will be added
			 */
			public addParentStack(sourceActivityClass: java.lang.Class<any>): android.app.TaskStackBuilder;
			/**
			 * Add the activity parent chain as specified by the android.R.attr#parentActivityName parentActivityName attribute of the activity (or activity-alias) element in the application's manifest to the task stack builder.
			 * @param sourceActivityName Must specify an Activity component. All parents of
			 */
			public addParentStack(sourceActivityName: android.content.ComponentName): android.app.TaskStackBuilder;
			public getIntentCount(): number;
			/**
			 * Return the intent at the specified index for modification. Useful if you need to modify the flags or extras of an intent that was previously added, for example with #addParentStack(Activity).
			 * @param index Index from 0-getIntentCount()
			 */
			public editIntentAt(index: number): android.content.Intent;
			/**
			 * Start the task stack constructed by this builder.
			 */
			public startActivities(): void;
			/**
			 * Start the task stack constructed by this builder.
			 * @param options Additional options for how the Activity should be started.
			 */
			public startActivities(options: android.os.Bundle): void;
			/**
			 * Obtain a PendingIntent for launching the task constructed by this builder so far.
			 * @param requestCode Private request code for the sender
			 * @param flags May be {@link PendingIntent#FLAG_ONE_SHOT},
			 */
			public getPendingIntent(requestCode: number, flags: number): android.app.PendingIntent;
			/**
			 * Obtain a PendingIntent for launching the task constructed by this builder so far.
			 * @param requestCode Private request code for the sender
			 * @param flags May be {@link PendingIntent#FLAG_ONE_SHOT},
			 * @param options Additional options for how the Activity should be started.
			 */
			public getPendingIntent(requestCode: number, flags: number, options: android.os.Bundle): android.app.PendingIntent;
			/**
			 * Return an array containing the intents added to this builder. The intent at the root of the task stack will appear as the first item in the array and the intent at the top of the stack will appear as the last item.
			 */
			public getIntents(): native.Array<android.content.Intent>;
		}
		/**
		 * Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your AndroidManifest.xml's &lt;application&gt; tag, which will cause that class to be instantiated for you when the process for your application/package is created. <p class="note">There is normally no need to subclass Application. In most situation, static singletons can provide the same functionality in a more modular way. If your singleton needs a global context (for example to register broadcast receivers), the function to retrieve it can be given a android.content.Context which internally uses android.content.Context#getApplicationContext() Context.getApplicationContext() when first constructing the singleton.</p>
		 */
		export class Application extends android.content.ContextWrapper implements android.content.IComponentCallbacks2 {
			constructor();
			static class: java.lang.Class<android.app.Application>;
			/**
			 * Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created. Implementations should be as quick as possible (for example using lazy initialization of state) since the time spent in this function directly impacts the performance of starting the first activity, service, or receiver in a process. If you override this method, be sure to call super.onCreate().
			 */
			public onCreate(): void;
			/**
			 * This method is for use in emulated process environments. It will never be called on a production Android device, where processes are removed by simply killing them; no user code (including this callback) is executed when doing so.
			 */
			public onTerminate(): void;
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			public onLowMemory(): void;
			public onTrimMemory(level: number): void;
			public registerComponentCallbacks(callback: android.content.IComponentCallbacks): void;
			public unregisterComponentCallbacks(callback: android.content.IComponentCallbacks): void;
			public registerActivityLifecycleCallbacks(callback: android.app.Application.IActivityLifecycleCallbacks): void;
			public unregisterActivityLifecycleCallbacks(callback: android.app.Application.IActivityLifecycleCallbacks): void;
			dispatchActivityCreated(activity: android.app.Activity, savedInstanceState: android.os.Bundle): void;
			dispatchActivityStarted(activity: android.app.Activity): void;
			dispatchActivityResumed(activity: android.app.Activity): void;
			dispatchActivityPaused(activity: android.app.Activity): void;
			dispatchActivityStopped(activity: android.app.Activity): void;
			dispatchActivitySaveInstanceState(activity: android.app.Activity, outState: android.os.Bundle): void;
			dispatchActivityDestroyed(activity: android.app.Activity): void;
		}
		export module Application {
			export class ActivityLifecycleCallbacks implements android.app.Application.IActivityLifecycleCallbacks {
				constructor(implementation: android.app.Application.IActivityLifecycleCallbacks);
				public onActivityCreated(activity: android.app.Activity, savedInstanceState: android.os.Bundle): void;
				public onActivityStarted(activity: android.app.Activity): void;
				public onActivityResumed(activity: android.app.Activity): void;
				public onActivityPaused(activity: android.app.Activity): void;
				public onActivityStopped(activity: android.app.Activity): void;
				public onActivitySaveInstanceState(activity: android.app.Activity, outState: android.os.Bundle): void;
				public onActivityDestroyed(activity: android.app.Activity): void;
			}
			interface IActivityLifecycleCallbacks {
				onActivityCreated(activity: android.app.Activity, savedInstanceState: android.os.Bundle): void;
				onActivityStarted(activity: android.app.Activity): void;
				onActivityResumed(activity: android.app.Activity): void;
				onActivityPaused(activity: android.app.Activity): void;
				onActivityStopped(activity: android.app.Activity): void;
				onActivitySaveInstanceState(activity: android.app.Activity, outState: android.os.Bundle): void;
				onActivityDestroyed(activity: android.app.Activity): void;
			}
		}
		/**
		 * Provides access to the system wallpaper. With WallpaperManager, you can get the current wallpaper, get the desired dimensions for the wallpaper, set the wallpaper, and more. Get an instance of WallpaperManager with #getInstance(android.content.Context) getInstance().
		 */
		export class WallpaperManager extends java.lang.Object {
			/**
			 * Launch an activity for the user to pick the current global live wallpaper.
			 */
			static ACTION_LIVE_WALLPAPER_CHOOSER: string;
			/**
			 * Directly launch live wallpaper preview, allowing the user to immediately confirm to switch to a specific live wallpaper. You must specify #EXTRA_LIVE_WALLPAPER_COMPONENT with the ComponentName of a live wallpaper component that is to be shown.
			 */
			static ACTION_CHANGE_LIVE_WALLPAPER: string;
			/**
			 * Extra in #ACTION_CHANGE_LIVE_WALLPAPER that specifies the ComponentName of a live wallpaper that should be shown as a preview, for the user to confirm.
			 */
			static EXTRA_LIVE_WALLPAPER_COMPONENT: string;
			/**
			 * Manifest entry for activities that respond to Intent#ACTION_SET_WALLPAPER which allows them to provide a custom large icon associated with this action.
			 */
			static WALLPAPER_PREVIEW_META_DATA: string;
			/**
			 * Command for #sendWallpaperCommand: reported by the wallpaper host when the user taps on an empty area (not performing an action in the host). The x and y arguments are the location of the tap in screen coordinates.
			 */
			static COMMAND_TAP: string;
			/**
			 * Command for #sendWallpaperCommand: reported by the wallpaper host when the user releases a secondary pointer on an empty area (not performing an action in the host). The x and y arguments are the location of the secondary tap in screen coordinates.
			 */
			static COMMAND_SECONDARY_TAP: string;
			/**
			 * Command for #sendWallpaperCommand: reported by the wallpaper host when the user drops an object into an area of the host. The x and y arguments are the location of the drop.
			 */
			static COMMAND_DROP: string;
			static class: java.lang.Class<android.app.WallpaperManager>;
			static initGlobals(looper: android.os.Looper): void;
			/**
			 * Retrieve a WallpaperManager associated with the given Context.
			 */
			public static getInstance(context: android.content.Context): android.app.WallpaperManager;
			/**
			 * Retrieve the current system wallpaper; if no wallpaper is set, the system default wallpaper is returned. This is returned as an abstract Drawable that you can install in a View to display whatever wallpaper the user has currently set.
			 */
			public getDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Retrieve the current system wallpaper; if there is no wallpaper set, a null pointer is returned. This is returned as an abstract Drawable that you can install in a View to display whatever wallpaper the user has currently set.
			 */
			public peekDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Like #getDrawable(), but the returned Drawable has a number of limitations to reduce its overhead as much as possible. It will never scale the wallpaper (only centering it if the requested bounds do match the bitmap bounds, which should not be typical), doesn't allow setting an alpha, color filter, or other attributes, etc. The bounds of the returned drawable will be initialized to the same bounds as the wallpaper, so normally you will not need to touch it. The drawable also assumes that it will be used in a context running in the same density as the screen (not in density compatibility mode).
			 */
			public getFastDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Like #getFastDrawable(), but if there is no wallpaper set, a null pointer is returned.
			 */
			public peekFastDrawable(): android.graphics.drawable.Drawable;
			/**
			 * Remove all internal references to the last loaded wallpaper. Useful for apps that want to reduce memory usage when they only temporarily need to have the wallpaper. After calling, the next request for the wallpaper will require reloading it again from disk.
			 */
			public forgetLoadedWallpaper(): void;
			/**
			 * If the current wallpaper is a live wallpaper component, return the information about that wallpaper. Otherwise, if it is a static image, simply return null.
			 */
			public getWallpaperInfo(): android.app.WallpaperInfo;
			/**
			 * Change the current system wallpaper to the bitmap in the given resource. The resource is opened as a raw data stream and copied into the wallpaper; it must be a valid PNG or JPEG image. On success, the intent Intent#ACTION_WALLPAPER_CHANGED is broadcast.
			 * @param resid The bitmap to save.
			 */
			public setResource(resid: number): void;
			/**
			 * Change the current system wallpaper to a bitmap. The given bitmap is converted to a PNG and stored as the wallpaper. On success, the intent Intent#ACTION_WALLPAPER_CHANGED is broadcast.
			 * @param bitmap The bitmap to save.
			 */
			public setBitmap(bitmap: android.graphics.Bitmap): void;
			/**
			 * Change the current system wallpaper to a specific byte stream. The give InputStream is copied into persistent storage and will now be used as the wallpaper. Currently it must be either a JPEG or PNG image. On success, the intent Intent#ACTION_WALLPAPER_CHANGED is broadcast.
			 * @param data A stream containing the raw data to install as a wallpaper.
			 */
			public setStream(data: java.io.InputStream): void;
			/**
			 * Return whether any users are currently set to use the wallpaper with the given resource ID. That is, their wallpaper has been set through #setResource(int) with the same resource id.
			 */
			public hasResourceWallpaper(resid: number): boolean;
			/**
			 * Returns the desired minimum width for the wallpaper. Callers of #setBitmap(android.graphics.Bitmap) or #setStream(java.io.InputStream) should check this value beforehand to make sure the supplied wallpaper respects the desired minimum width.
			 */
			public getDesiredMinimumWidth(): number;
			/**
			 * Returns the desired minimum height for the wallpaper. Callers of #setBitmap(android.graphics.Bitmap) or #setStream(java.io.InputStream) should check this value beforehand to make sure the supplied wallpaper respects the desired minimum height.
			 */
			public getDesiredMinimumHeight(): number;
			/**
			 * For use only by the current home application, to specify the size of wallpaper it would like to use. This allows such applications to have a virtual wallpaper that is larger than the physical screen, matching the size of their workspace.
			 * @param minimumWidth Desired minimum width
			 * @param minimumHeight Desired minimum height
			 */
			public suggestDesiredDimensions(minimumWidth: number, minimumHeight: number): void;
			/**
			 * Set the position of the current wallpaper within any larger space, when that wallpaper is visible behind the given window. The X and Y offsets are floating point numbers ranging from 0 to 1, representing where the wallpaper should be positioned within the screen space. These only make sense when the wallpaper is larger than the screen. 
			 * @param windowToken The window who these offsets should be associated
			 * @param xOffset The offset along the X dimension, from 0 to 1.
			 * @param yOffset The offset along the Y dimension, from 0 to 1.
			 */
			public setWallpaperOffsets(windowToken: android.os.IIBinder, xOffset: number, yOffset: number): void;
			/**
			 * For applications that use multiple virtual screens showing a wallpaper, specify the step size between virtual screens. For example, if the launcher has 3 virtual screens, it would specify an xStep of 0.5, since the X offset for those screens are 0.0, 0.5 and 1.0
			 * @param xStep The X offset delta from one screen to the next one
			 * @param yStep The Y offset delta from one screen to the next one
			 */
			public setWallpaperOffsetSteps(xStep: number, yStep: number): void;
			/**
			 * Send an arbitrary command to the current active wallpaper. 
			 * @param windowToken The window who these offsets should be associated
			 * @param action Name of the command to perform. This must be a scoped
			 * @param x Arbitrary integer argument based on command.
			 * @param y Arbitrary integer argument based on command.
			 * @param z Arbitrary integer argument based on command.
			 * @param extras Optional additional information for the command, or null.
			 */
			public sendWallpaperCommand(windowToken: android.os.IIBinder, action: string, x: number, y: number, z: number, extras: android.os.Bundle): void;
			/**
			 * Clear the offsets previously associated with this window through #setWallpaperOffsets(IBinder, float, float). This reverts the window to its default state, where it does not cause the wallpaper to scroll from whatever its last offsets were. 
			 * @param windowToken The window who these offsets should be associated
			 */
			public clearWallpaperOffsets(windowToken: android.os.IIBinder): void;
			/**
			 * Remove any currently set wallpaper, reverting to the system's default wallpaper. On success, the intent Intent#ACTION_WALLPAPER_CHANGED is broadcast.
			 */
			public clear(): void;
			static generateBitmap(context: android.content.Context, bm: android.graphics.Bitmap, width: number, height: number): android.graphics.Bitmap;
		}
		export module WallpaperManager {
			/**
			 * Special drawable that draws a wallpaper as fast as possible. Assumes no scaling or placement off (0,0) of the wallpaper (this should be done at the time the bitmap is loaded).
			 */
			export class FastBitmapDrawable extends android.graphics.drawable.Drawable {
				static class: java.lang.Class<android.app.WallpaperManager.FastBitmapDrawable>;
				public draw(canvas: android.graphics.Canvas): void;
				public getOpacity(): number;
				public setBounds(left: number, top: number, right: number, bottom: number): void;
				public setAlpha(alpha: number): void;
				public setColorFilter(cf: android.graphics.ColorFilter): void;
				public setDither(dither: boolean): void;
				public setFilterBitmap(filter: boolean): void;
				public getIntrinsicWidth(): number;
				public getIntrinsicHeight(): number;
				public getMinimumWidth(): number;
				public getMinimumHeight(): number;
				/**
				 * Specify a bounding rectangle for the Drawable. This is where the drawable will draw when its draw() method is called.
				 */
				setBounds(bounds: android.graphics.Rect): void;
				/**
				 * Specify a color and porterduff mode to be the colorfilter for this drawable.
				 */
				setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
			}
			export class Globals {
				static class: java.lang.Class<android.app.WallpaperManager.Globals>;
				public onWallpaperChanged(): void;
				public peekWallpaperBitmap(context: android.content.Context, returnDefault: boolean): android.graphics.Bitmap;
				public forgetLoadedWallpaper(): void;
			}
		}
		/**
		 * This class is used to specify meta information of a wallpaper service.
		 */
		export class WallpaperInfo extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Constructor. 
			 * @param context The Context in which we are parsing the wallpaper.
			 * @param service The ResolveInfo returned from the package manager about
			 */
			constructor(context: android.content.Context, service: android.content.pm.ResolveInfo);
			/**
			 * Used to make this class parcelable.
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.app.WallpaperInfo>;
			static class: java.lang.Class<android.app.WallpaperInfo>;
			/**
			 * Return the .apk package that implements this wallpaper.
			 */
			public getPackageName(): string;
			/**
			 * Return the class name of the service component that implements this wallpaper.
			 */
			public getServiceName(): string;
			/**
			 * Return the raw information about the Service implementing this wallpaper. Do not modify the returned object.
			 */
			public getServiceInfo(): android.content.pm.ServiceInfo;
			/**
			 * Return the component of the service that implements this wallpaper.
			 */
			public getComponent(): android.content.ComponentName;
			/**
			 * Load the user-displayed label for this wallpaper. 
			 * @param pm Supply a PackageManager used to load the wallpaper's
			 */
			public loadLabel(pm: android.content.pm.PackageManager): string;
			/**
			 * Load the user-displayed icon for this wallpaper. 
			 * @param pm Supply a PackageManager used to load the wallpaper's
			 */
			public loadIcon(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
			/**
			 * Load the thumbnail image for this wallpaper. 
			 * @param pm Supply a PackageManager used to load the wallpaper's
			 */
			public loadThumbnail(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
			/**
			 * Return a string indicating the author(s) of this wallpaper.
			 */
			public loadAuthor(pm: android.content.pm.PackageManager): string;
			/**
			 * Return a brief summary of this wallpaper's behavior.
			 */
			public loadDescription(pm: android.content.pm.PackageManager): string;
			/**
			 * Return the class name of an activity that provides a settings UI for the wallpaper. You can launch this activity be starting it with an android.content.Intent whose action is MAIN and with an explicit android.content.ComponentName composed of #getPackageName and the class name returned here. 
			 */
			public getSettingsActivity(): string;
			public dump(pw: android.util.IPrinter, prefix: string): void;
			public toString(): string;
			/**
			 * Used to package this object into a Parcel. 
			 * @param dest The {@link Parcel} to be written.
			 * @param flags The flags used for parceling.
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public describeContents(): number;
		}
		/**
		 * Displays a list of all activities which can be performed for a given intent. Launches when clicked.
		 */
		export class LauncherActivity extends android.app.ListActivity {
			constructor();
			static class: java.lang.Class<android.app.LauncherActivity>;
			ActivityAdapter: {
	new (resizer: android.app.LauncherActivity.IconResizer): android.app.LauncherActivity.ActivityAdapter;
};
			IconResizer: {
	new (): android.app.LauncherActivity.IconResizer;
};
			protected onCreate(icicle: android.os.Bundle): void;
			public setTitle(title: string): void;
			public setTitle(titleId: number): void;
			/**
			 * Override to call setContentView() with your own content view to customize the list layout.
			 */
			protected onSetContentView(): void;
			protected onListItemClick(l: android.widget.ListView, v: android.view.View, position: number, id: number): void;
			/**
			 * Return the actual Intent for a specific position in our android.widget.ListView.
			 * @param position The item whose Intent to return
			 */
			protected intentForPosition(position: number): android.content.Intent;
			/**
			 * Return the ListItem for a specific position in our android.widget.ListView.
			 * @param position The item to return
			 */
			protected itemForPosition(position: number): android.app.LauncherActivity.ListItem;
			/**
			 * Get the base intent to use when running PackageManager#queryIntentActivities(Intent, int).
			 */
			protected getTargetIntent(): android.content.Intent;
			/**
			 * Perform query on package manager for list items. The default implementation queries for activities.
			 */
			protected onQueryPackageManager(queryIntent: android.content.Intent): java.util.IList<android.content.pm.ResolveInfo>;
			/**
			 * Perform the query to determine which results to show and return a list of them.
			 */
			public makeListItems(): java.util.IList<android.app.LauncherActivity.ListItem>;
		}
		export module LauncherActivity {
			/**
			 * Adapter which shows the set of activities that can be performed for a given intent.
			 */
			export class ActivityAdapter extends android.widget.BaseAdapter implements android.widget.IFilterable {
				static class: java.lang.Class<android.app.LauncherActivity.ActivityAdapter>;
				public intentForPosition(position: number): android.content.Intent;
				public itemForPosition(position: number): android.app.LauncherActivity.ListItem;
				public getCount(): number;
				public getItem(position: number): any;
				public getItemId(position: number): any;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				public getFilter(): android.widget.Filter;
			}
			export module ActivityAdapter {
				/**
				 * An array filters constrains the content of the array adapter with a prefix. Each item that does not start with the supplied prefix is removed from the list.
				 */
				export class ArrayFilter extends android.widget.Filter {
					static class: java.lang.Class<android.app.LauncherActivity.ActivityAdapter.ArrayFilter>;
					protected performFiltering(prefix: string): android.widget.Filter.FilterResults;
					protected publishResults(constraint: string, results: android.widget.Filter.FilterResults): void;
				}
			}
			/**
			 * An item in the list
			 */
			export class ListItem extends java.lang.Object {
				constructor();
				resolveInfo: android.content.pm.ResolveInfo;
				label: string;
				icon: android.graphics.drawable.Drawable;
				packageName: string;
				className: string;
				extras: android.os.Bundle;
				static class: java.lang.Class<android.app.LauncherActivity.ListItem>;
			}
			/**
			 * Utility class to resize icons to match default icon size.
			 */
			export class IconResizer extends java.lang.Object {
				static class: java.lang.Class<android.app.LauncherActivity.IconResizer>;
				/**
				 * Returns a Drawable representing the thumbnail of the specified Drawable. The size of the thumbnail is defined by the dimension android.R.dimen.launcher_application_icon_size.
				 * @param icon The icon to get a thumbnail of.
				 */
				public createIconThumbnail(icon: android.graphics.drawable.Drawable): android.graphics.drawable.Drawable;
			}
		}
		export class SharedPreferencesImpl extends java.lang.Object implements android.content.ISharedPreferences {
			static class: java.lang.Class<android.app.SharedPreferencesImpl>;
			EditorImpl: {
	new (): android.app.SharedPreferencesImpl.EditorImpl;
};
			startReloadIfChangedUnexpectedly(): void;
			public registerOnSharedPreferenceChangeListener(listener: android.content.SharedPreferences.IOnSharedPreferenceChangeListener): void;
			public unregisterOnSharedPreferenceChangeListener(listener: android.content.SharedPreferences.IOnSharedPreferenceChangeListener): void;
			public getAll(): java.util.IMap<string, any>;
			public getString(key: string, defValue: string): string;
			public getStringSet(key: string, defValues: java.util.ISet<string>): java.util.ISet<string>;
			public getInt(key: string, defValue: number): number;
			public getLong(key: string, defValue: number): any;
			public getFloat(key: string, defValue: number): number;
			public getBoolean(key: string, defValue: boolean): boolean;
			public contains(key: string): boolean;
			public edit(): android.content.SharedPreferences.IEditor;
		}
		export module SharedPreferencesImpl {
			export class MemoryCommitResult extends java.lang.Object {
				changesMade: boolean;
				keysModified: java.util.IList<string>;
				listeners: java.util.ISet<android.content.SharedPreferences.IOnSharedPreferenceChangeListener>;
				mapToWriteToDisk: java.util.IMap<any, any>;
				writtenToDiskLatch: java.util.concurrent.CountDownLatch;
				writeToDiskResult: boolean;
				static class: java.lang.Class<android.app.SharedPreferencesImpl.MemoryCommitResult>;
				public setDiskWriteResult(result: boolean): void;
			}
			export class EditorImpl extends java.lang.Object implements android.content.SharedPreferences.IEditor {
				static class: java.lang.Class<android.app.SharedPreferencesImpl.EditorImpl>;
				public putString(key: string, value: string): android.content.SharedPreferences.IEditor;
				public putStringSet(key: string, values: java.util.ISet<string>): android.content.SharedPreferences.IEditor;
				public putInt(key: string, value: number): android.content.SharedPreferences.IEditor;
				public putLong(key: string, value: number): android.content.SharedPreferences.IEditor;
				public putFloat(key: string, value: number): android.content.SharedPreferences.IEditor;
				public putBoolean(key: string, value: boolean): android.content.SharedPreferences.IEditor;
				public remove(key: string): android.content.SharedPreferences.IEditor;
				public clear(): android.content.SharedPreferences.IEditor;
				public apply(): void;
				public commit(): boolean;
			}
		}
		export module activity {
			export class SetTimeZonePermissionsTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.app.activity.SetTimeZonePermissionsTest>;
				protected setUp(): void;
				/**
				 * Verify that non-system processes cannot set the time zone.
				 */
				public testSetTimeZonePermissions(): void;
			}
			export class TestedActivity extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.app.activity.TestedActivity>;
				public onCreate(icicle: android.os.Bundle): void;
				protected onRestoreInstanceState(state: android.os.Bundle): void;
				protected onResume(): void;
				protected onSaveInstanceState(outState: android.os.Bundle): void;
				protected onStop(): void;
			}
			export module TestedActivity {
				export class Idler extends java.lang.Object implements android.os.MessageQueue.IIdleHandler {
					static class: java.lang.Class<android.app.activity.TestedActivity.Idler>;
					public queueIdle(): boolean;
				}
			}
			export class LocalDeniedService extends android.app.activity.LocalService {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalDeniedService>;
			}
			export class RemoteReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.RemoteReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class ActivityTestsBase extends android.test.AndroidTestCase implements android.test.IPerformanceTestCase, android.app.activity.LaunchpadActivity.ICallingTest {
				constructor();
				static PERMISSION_GRANTED: string;
				static PERMISSION_DENIED: string;
				static class: java.lang.Class<android.app.activity.ActivityTestsBase>;
				protected setUp(): void;
				protected tearDown(): void;
				public isPerformanceOnly(): boolean;
				public setInternalIterations(count: number): void;
				public startTiming(realTime: boolean): void;
				public addIntermediate(name: string): void;
				public addIntermediate(name: string, timeInNS: number): void;
				public finishTiming(realTime: boolean): void;
				public activityFinished(resultCode: number, data: android.content.Intent, where: java.lang.RuntimeException): void;
				public editIntent(): android.content.Intent;
				public getContext(): android.content.Context;
				public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
				public finishGood(): void;
				public finishBad(error: string): void;
				public finishWithResult(resultCode: number, data: android.content.Intent): void;
				public finishWithResult(resultCode: number, data: android.content.Intent, where: java.lang.RuntimeException): void;
				public runLaunchpad(action: string): number;
				public waitForResultOrThrow(timeoutMs: number): number;
				public waitForResultOrThrow(timeoutMs: number, expected: string): number;
				public waitForResult(timeoutMs: number, expected: string): number;
				public getResultCode(): number;
				public getResultData(): android.content.Intent;
				public getResultStack(): java.lang.RuntimeException;
				public onTimeout(): void;
			}
			export class SubActivityTest extends android.app.activity.ActivityTestsBase {
				constructor();
				static class: java.lang.Class<android.app.activity.SubActivityTest>;
				public testPendingResult(): void;
				public testNoResult(): void;
				public testResult(): void;
				public testFinishSub(): void;
				public testRemoteNoResult(): void;
				public testRemoteResult(): void;
				public testRemoteFinishSub(): void;
				public testRemoteRestartNoResult(): void;
				public testRemoteRestartResult(): void;
				public testRemoteRestartFinishSub(): void;
			}
			export class TestedScreen extends android.app.Activity {
				constructor();
				static WAIT_BEFORE_FINISH: string;
				static DELIVER_RESULT: string;
				static CLEAR_TASK: string;
				static class: java.lang.Class<android.app.activity.TestedScreen>;
				public onCreate(icicle: android.os.Bundle): void;
				protected onRestoreInstanceState(state: android.os.Bundle): void;
				protected onResume(): void;
				protected onSaveInstanceState(outState: android.os.Bundle): void;
				protected onStop(): void;
			}
			export module TestedScreen {
				export class Idler extends java.lang.Object implements android.os.MessageQueue.IIdleHandler {
					static class: java.lang.Class<android.app.activity.TestedScreen.Idler>;
					public queueIdle(): boolean;
				}
			}
			export class ActivityTests extends java.lang.Object {
				constructor();
				static DEBUG_LIFECYCLE: boolean;
				static class: java.lang.Class<android.app.activity.ActivityTests>;
			}
			export class LocalActivity extends android.app.activity.TestedActivity {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalActivity>;
			}
			export class IntentSenderTest extends android.app.activity.BroadcastTest {
				constructor();
				static class: java.lang.Class<android.app.activity.IntentSenderTest>;
				public testRegisteredReceivePermissionGranted(): void;
				public testRegisteredReceivePermissionDenied(): void;
				public testLocalReceivePermissionGranted(): void;
				public testLocalReceivePermissionDenied(): void;
			}
			export class SubActivityScreen extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.app.activity.SubActivityScreen>;
				public onCreate(icicle: android.os.Bundle): void;
				protected onRestoreInstanceState(state: android.os.Bundle): void;
				protected onResume(): void;
				protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
				protected onSaveInstanceState(outState: android.os.Bundle): void;
				protected onStop(): void;
				public handleBeforeStopping(): void;
			}
			/**
			 * Simple test provider that runs in the local process.
			 */
			export class LocalProvider extends android.content.ContentProvider {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalProvider>;
				public onCreate(): boolean;
				public query(url: android.net.Uri, projectionIn: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sort: string): android.database.ICursor;
				public getType(url: android.net.Uri): string;
				public update(url: android.net.Uri, values: android.content.ContentValues, where: string, whereArgs: native.Array<string>): number;
				public insert(url: android.net.Uri, initialValues: android.content.ContentValues): android.net.Uri;
				public delete(url: android.net.Uri, where: string, whereArgs: native.Array<string>): number;
				/**
				 * Implement this to handle query requests from clients with support for cancellation. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
				 * @param uri The URI to query. This will be the full URI sent by the client;
				 * @param projection The list of columns to put into the cursor. If
				 * @param selection A selection criteria to apply when filtering rows.
				 * @param selectionArgs You may include ?s in selection, which will be replaced by
				 * @param sortOrder How the rows in the cursor should be sorted.
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
			}
			export module LocalProvider {
				export class DatabaseHelper extends android.database.sqlite.SQLiteOpenHelper {
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.app.activity.LocalProvider.DatabaseHelper>;
					public onCreate(db: android.database.sqlite.SQLiteDatabase): void;
					public onUpgrade(db: android.database.sqlite.SQLiteDatabase, oldVersion: number, currentVersion: number): void;
				}
			}
			export class AbortReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.AbortReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class LocalDialog extends android.app.activity.TestedScreen {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalDialog>;
			}
			export class SearchableActivity extends android.app.Activity {
				constructor();
				static class: java.lang.Class<android.app.activity.SearchableActivity>;
				protected onCreate(savedInstanceState: android.os.Bundle): void;
			}
			export class ActivityManagerTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.app.activity.ActivityManagerTest>;
				protected setUp(): void;
				public disabledTestErrorTasksEmpty(): void;
				public testErrorTasksWithError(): void;
				public testErrorTasksWithANR(): void;
				public testGetDeviceConfigurationInfo(): void;
			}
			export class LocalService extends android.app.Service {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalService>;
				public onStart(intent: android.content.Intent, startId: number): void;
				public onDestroy(): void;
				public onBind(intent: android.content.Intent): android.os.IIBinder;
				public onUnbind(intent: android.content.Intent): boolean;
				public onRebind(intent: android.content.Intent): void;
			}
			export class ClearTop extends android.app.Activity {
				constructor();
				static WAIT_CLEAR_TASK: string;
				static class: java.lang.Class<android.app.activity.ClearTop>;
				public onCreate(icicle: android.os.Bundle): void;
				public onNewIntent(intent: android.content.Intent): void;
			}
			export class LaunchpadTabActivity extends android.app.TabActivity {
				constructor();
				static class: java.lang.Class<android.app.activity.LaunchpadTabActivity>;
				public onCreate(icicle: android.os.Bundle): void;
			}
			export class LocalDeniedReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalDeniedReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class LocalGrantedService extends android.app.activity.LocalService {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalGrantedService>;
			}
			export class LocalScreen extends android.app.activity.TestedScreen {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalScreen>;
			}
			export class LaunchTest extends android.app.activity.ActivityTestsBase {
				constructor();
				static class: java.lang.Class<android.app.activity.LaunchTest>;
				public testColdActivity(): void;
				public testLocalActivity(): void;
				public testColdScreen(): void;
				public testLocalScreen(): void;
				public testForwardResult(): void;
				public xxtestBadParcelable(): void;
				public testClearTopInCreate(): void;
				public testClearTopWhileResumed(): void;
			}
			export class RemoteDeniedReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.RemoteDeniedReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class BroadcastTest extends android.app.activity.ActivityTestsBase {
				constructor();
				static BROADCAST_TIMEOUT: number;
				static BROADCAST_REGISTERED: string;
				static BROADCAST_LOCAL: string;
				static BROADCAST_LOCAL_GRANTED: string;
				static BROADCAST_LOCAL_DENIED: string;
				static BROADCAST_REMOTE: string;
				static BROADCAST_REMOTE_GRANTED: string;
				static BROADCAST_REMOTE_DENIED: string;
				static BROADCAST_ALL: string;
				static BROADCAST_MULTI: string;
				static BROADCAST_ABORT: string;
				static BROADCAST_STICKY1: string;
				static BROADCAST_STICKY2: string;
				static BROADCAST_FAIL_REGISTER: string;
				static BROADCAST_FAIL_BIND: string;
				static RECEIVER_REG: string;
				static RECEIVER_LOCAL: string;
				static RECEIVER_REMOTE: string;
				static RECEIVER_ABORT: string;
				static RECEIVER_RESULTS: string;
				static DATA_1: string;
				static DATA_2: string;
				static GOT_RECEIVE_TRANSACTION: number;
				static ERROR_TRANSACTION: number;
				static class: java.lang.Class<android.app.activity.BroadcastTest>;
				public setExpectedReceivers(receivers: native.Array<string>): void;
				public setExpectedData(data: native.Array<string>): void;
				public onTimeout(): void;
				public makeBroadcastIntent(action: string): android.content.Intent;
				public finishWithResult(resultCode: number, data: android.content.Intent): void;
				public gotReceive(name: string, intent: android.content.Intent): void;
				public registerMyReceiver(filter: android.content.IntentFilter, permission: string): void;
				public unregisterMyReceiver(): void;
				public unregisterMyReceiverNoCheck(): void;
				public onRegisteredReceiver(intent: android.content.Intent): void;
				public testRegistered(): void;
				public testLocal(): void;
				public testRemote(): void;
				public testAbort(): void;
				public testAll(): void;
				public testMulti(): void;
				public testResult(): void;
				public testSetSticky(): void;
				public testClearSticky(): void;
				public testReplaceSticky(): void;
				public testReceiveSticky(): void;
				public testReceive2Sticky(): void;
				public testRegisteredReceivePermissionGranted(): void;
				public testRegisteredReceivePermissionDenied(): void;
				public testRegisteredBroadcastPermissionGranted(): void;
				public testRegisteredBroadcastPermissionDenied(): void;
				public testLocalReceivePermissionGranted(): void;
				public testLocalReceivePermissionDenied(): void;
				public testLocalBroadcastPermissionGranted(): void;
				public testLocalBroadcastPermissionDenied(): void;
				public testRemoteReceivePermissionGranted(): void;
				public testRemoteReceivePermissionDenied(): void;
				public testRemoteBroadcastPermissionGranted(): void;
				public testRemoteBroadcastPermissionDenied(): void;
				public testReceiverCanNotRegister(): void;
				public testReceiverCanNotBind(): void;
				public testLocalUnregisterTwice(): void;
				finishWithResult(resultCode: number, data: android.content.Intent, where: java.lang.RuntimeException): void;
			}
			export module BroadcastTest {
				export class TestBroadcastReceiver extends android.content.BroadcastReceiver {
					mHaveResult: boolean;
					static class: java.lang.Class<android.app.activity.BroadcastTest.TestBroadcastReceiver>;
					public onReceive(context: android.content.Context, intent: android.content.Intent): void;
				}
			}
			export class LocalReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class LocalGrantedReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.LocalGrantedReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class LaunchpadActivity extends android.app.Activity {
				constructor();
				static LAUNCH: string;
				static FORWARD_RESULT: string;
				static RETURNED_RESULT: string;
				static BAD_PARCELABLE: string;
				static LAUNCHED_RESULT: number;
				static FORWARDED_RESULT: number;
				static LIFECYCLE_BASIC: string;
				static LIFECYCLE_SCREEN: string;
				static LIFECYCLE_DIALOG: string;
				static LIFECYCLE_FINISH_CREATE: string;
				static LIFECYCLE_FINISH_START: string;
				static BROADCAST_REGISTERED: string;
				static BROADCAST_LOCAL: string;
				static BROADCAST_REMOTE: string;
				static BROADCAST_ALL: string;
				static BROADCAST_REPEAT: string;
				static BROADCAST_MULTI: string;
				static BROADCAST_ABORT: string;
				static BROADCAST_STICKY1: string;
				static BROADCAST_STICKY2: string;
				static RECEIVER_REG: string;
				static RECEIVER_LOCAL: string;
				static RECEIVER_REMOTE: string;
				static RECEIVER_ABORT: string;
				static DATA_1: string;
				static DATA_2: string;
				static ON_START: string;
				static ON_RESTART: string;
				static ON_RESUME: string;
				static ON_FREEZE: string;
				static ON_PAUSE: string;
				static ON_STOP: string;
				static ON_DESTROY: string;
				static DO_FINISH: string;
				static DO_LOCAL_SCREEN: string;
				static DO_LOCAL_DIALOG: string;
				static class: java.lang.Class<android.app.activity.LaunchpadActivity>;
				public static setCallingTest(ct: android.app.activity.LaunchpadActivity.ICallingTest): void;
				protected onCreate(icicle: android.os.Bundle): void;
				protected onStart(): void;
				protected onRestart(): void;
				protected onResume(): void;
				protected onSaveInstanceState(icicle: android.os.Bundle): void;
				protected onPause(): void;
				protected onStop(): void;
				protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
				protected onDestroy(): void;
			}
			export module LaunchpadActivity {
				export class CallingTest implements android.test.PerformanceTestCase.IIntermediates, android.app.activity.LaunchpadActivity.ICallingTest {
					constructor(implementation: android.app.activity.LaunchpadActivity.ICallingTest);
					public startTiming(realTime: boolean): void;
					public addIntermediate(name: string): void;
					public addIntermediate(name: string, timeInNS: number): void;
					public finishTiming(realTime: boolean): void;
					public activityFinished(resultCode: number, data: android.content.Intent, where: java.lang.RuntimeException): void;
					setInternalIterations(count: number): void;
				}
				interface ICallingTest extends android.test.PerformanceTestCase.IIntermediates {
					startTiming(realTime: boolean): void;
					addIntermediate(name: string): void;
					addIntermediate(name: string, timeInNS: number): void;
					finishTiming(realTime: boolean): void;
					activityFinished(resultCode: number, data: android.content.Intent, where: java.lang.RuntimeException): void;
					setInternalIterations(count: number): void;
				}
			}
			export class LifecycleTest extends android.app.activity.ActivityTestsBase {
				constructor();
				static class: java.lang.Class<android.app.activity.LifecycleTest>;
				protected setUp(): void;
				public testBasic(): void;
				public testTabBasic(): void;
				public testScreen(): void;
				public testTabScreen(): void;
				public testDialog(): void;
				public testTabDialog(): void;
				public testFinishCreate(): void;
				public testTabFinishCreate(): void;
				public testFinishStart(): void;
				public testTabFinishStart(): void;
			}
			export class MyBadParcelable extends java.lang.Object implements android.os.IParcelable {
				constructor();
				constructor(input: android.os.Parcel);
				static CREATOR: android.os.Parcelable.ICreator<android.app.activity.MyBadParcelable>;
				static class: java.lang.Class<android.app.activity.MyBadParcelable>;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * Tests for meta-data associated with application components.
			 */
			export class MetaDataTest extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.app.activity.MetaDataTest>;
				public testActivityWithData(): void;
				public testReceiverWithData(): void;
				public testServiceWithData(): void;
				public testProviderWithData(): void;
				public testPermissionWithData(): void;
			}
			export class RemoteGrantedReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.RemoteGrantedReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class RemoteSubActivityScreen extends android.app.activity.SubActivityScreen {
				constructor();
				static class: java.lang.Class<android.app.activity.RemoteSubActivityScreen>;
				public onCreate(icicle: android.os.Bundle): void;
			}
			export class ResultReceiver extends android.content.BroadcastReceiver {
				constructor();
				static class: java.lang.Class<android.app.activity.ResultReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class ServiceTest extends android.app.activity.ActivityTestsBase {
				constructor();
				static SERVICE_LOCAL: string;
				static SERVICE_LOCAL_GRANTED: string;
				static SERVICE_LOCAL_DENIED: string;
				static REPORT_OBJ_NAME: string;
				static STARTED_CODE: number;
				static DESTROYED_CODE: number;
				static SET_REPORTER_CODE: number;
				static UNBIND_CODE: number;
				static REBIND_CODE: number;
				static STATE_START_1: number;
				static STATE_START_2: number;
				static STATE_UNBIND: number;
				static STATE_DESTROY: number;
				static STATE_REBIND: number;
				static STATE_UNBIND_ONLY: number;
				mStartState: number;
				mStartReceiver: android.os.IIBinder;
				static class: java.lang.Class<android.app.activity.ServiceTest>;
				EmptyConnection: {
	new (): android.app.activity.ServiceTest.EmptyConnection;
};
				TestConnection: {
	new (expectDisconnect: boolean, setReporter: boolean): android.app.activity.ServiceTest.TestConnection;
};
				startExpectResult(service: android.content.Intent): void;
				startExpectResult(service: android.content.Intent, bundle: android.os.Bundle): void;
				startExpectNoPermission(service: android.content.Intent): void;
				bindExpectResult(service: android.content.Intent): void;
				bindAutoExpectResult(service: android.content.Intent): void;
				bindExpectNoPermission(service: android.content.Intent): void;
				public testLocalStartClass(): void;
				public testLocalStartAction(): void;
				public testLocalBindClass(): void;
				public testLocalBindAction(): void;
				public testLocalBindAutoClass(): void;
				public testLocalBindAutoAction(): void;
				public testLocalStartClassPermissionGranted(): void;
				public testLocalStartActionPermissionGranted(): void;
				public testLocalBindClassPermissionGranted(): void;
				public testLocalBindActionPermissionGranted(): void;
				public testLocalBindAutoClassPermissionGranted(): void;
				public testLocalBindAutoActionPermissionGranted(): void;
				public testLocalStartClassPermissionDenied(): void;
				public testLocalStartActionPermissionDenied(): void;
				public testLocalBindClassPermissionDenied(): void;
				public testLocalBindActionPermissionDenied(): void;
				public testLocalUnbindTwice(): void;
			}
			export module ServiceTest {
				export class EmptyConnection extends java.lang.Object implements android.content.IServiceConnection {
					static class: java.lang.Class<android.app.activity.ServiceTest.EmptyConnection>;
					public onServiceConnected(name: android.content.ComponentName, service: android.os.IIBinder): void;
					public onServiceDisconnected(name: android.content.ComponentName): void;
				}
				export class TestConnection extends java.lang.Object implements android.content.IServiceConnection {
					static class: java.lang.Class<android.app.activity.ServiceTest.TestConnection>;
					setMonitor(v: boolean): void;
					public onServiceConnected(name: android.content.ComponentName, service: android.os.IIBinder): void;
					public onServiceDisconnected(name: android.content.ComponentName): void;
				}
			}
		}
		export class FragmentState extends java.lang.Object implements android.os.IParcelable {
			constructor(frag: android.app.Fragment);
			constructor(input: android.os.Parcel);
			static CREATOR: android.os.Parcelable.ICreator<android.app.FragmentState>;
			static class: java.lang.Class<android.app.FragmentState>;
			public instantiate(activity: android.app.Activity, parent: android.app.Fragment): android.app.Fragment;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export class LoaderManagerImpl extends android.app.LoaderManager {
			static class: java.lang.Class<android.app.LoaderManagerImpl>;
			LoaderInfo: {
	new (id: number, args: android.os.Bundle, callbacks: android.app.LoaderManager.ILoaderCallbacks<any>): android.app.LoaderManagerImpl.LoaderInfo;
};
			updateActivity(activity: android.app.Activity): void;
			installLoader(info: android.app.LoaderManagerImpl.LoaderInfo): void;
			/**
			 * Call to initialize a particular ID with a Loader. If this ID already has a Loader associated with it, it is left unchanged and any previous callbacks replaced with the newly provided ones. If there is not currently a Loader for the ID, a new one is created and started. 
			 * @param id A unique (to this LoaderManager instance) identifier under
			 * @param args Optional arguments that will be propagated to
			 * @param callback Interface implementing management of this Loader. Required.
			 */
			public initLoader<D>(id: number, args: android.os.Bundle, callback: android.app.LoaderManager.ILoaderCallbacks<D>): android.content.Loader<D>;
			/**
			 * Call to re-create the Loader associated with a particular ID. If there is currently a Loader associated with this ID, it will be canceled/stopped/destroyed as appropriate. A new Loader with the given arguments will be created and its data delivered to you once available. 
			 * @param id A unique (to this LoaderManager instance) identifier under
			 * @param args Optional arguments that will be propagated to
			 * @param callback Interface implementing management of this Loader. Required.
			 */
			public restartLoader<D>(id: number, args: android.os.Bundle, callback: android.app.LoaderManager.ILoaderCallbacks<D>): android.content.Loader<D>;
			/**
			 * Rip down, tear apart, shred to pieces a current Loader ID. After returning from this function, any Loader objects associated with this ID are destroyed. Any data associated with them is destroyed. You better not be using it when you do this.
			 * @param id Identifier of the Loader to be destroyed.
			 */
			public destroyLoader(id: number): void;
			/**
			 * Return the most recent Loader object associated with the given ID.
			 */
			public getLoader<D>(id: number): android.content.Loader<D>;
			doStart(): void;
			doStop(): void;
			doRetain(): void;
			finishRetain(): void;
			doReportNextStart(): void;
			doReportStart(): void;
			doDestroy(): void;
			public toString(): string;
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			public hasRunningLoaders(): boolean;
		}
		export module LoaderManagerImpl {
			export class LoaderInfo extends java.lang.Object {
				static class: java.lang.Class<android.app.LoaderManagerImpl.LoaderInfo>;
				start(): void;
				retain(): void;
				finishRetain(): void;
				reportStart(): void;
				stop(): void;
				cancel(): void;
				destroy(): void;
				public onLoadCanceled(loader: android.content.Loader<any>): void;
				public onLoadComplete(loader: android.content.Loader<any>, data: any): void;
				callOnLoadFinished(loader: android.content.Loader<any>, data: any): void;
				public toString(): string;
				public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			}
		}
		export module admin {
			/**
			 * Public interface for managing policies enforced on a device. Most clients of this class must have published a DeviceAdminReceiver that the user has currently enabled.
			 */
			export class DevicePolicyManager extends java.lang.Object {
				/**
				 * Activity action: ask the user to add a new device administrator to the system. The desired policy is the ComponentName of the policy in the #EXTRA_DEVICE_ADMIN extra field. This will invoke a UI to bring the user through adding the device administrator to the system (or allowing them to reject it).
				 */
				static ACTION_ADD_DEVICE_ADMIN: string;
				/**
				 * The ComponentName of the administrator component.
				 */
				static EXTRA_DEVICE_ADMIN: string;
				/**
				 * An optional CharSequence providing additional explanation for why the admin is being added.
				 */
				static EXTRA_ADD_EXPLANATION: string;
				/**
				 * Activity action: have the user enter a new password. This activity should be launched after using #setPasswordQuality(ComponentName, int), or #setPasswordMinimumLength(ComponentName, int) to have the user enter a new password that meets the current requirements. You can use #isActivePasswordSufficient() to determine whether you need to have the user select a new password in order to meet the current constraints. Upon being resumed from this activity, you can check the new password characteristics to see if they are sufficient.
				 */
				static ACTION_SET_NEW_PASSWORD: string;
				/**
				 * Constant for #setPasswordQuality: the policy has no requirements for the password. Note that quality constants are ordered so that higher values are more restrictive.
				 */
				static PASSWORD_QUALITY_UNSPECIFIED: number;
				/**
				 * Constant for #setPasswordQuality: the policy allows for low-security biometric recognition technology. This implies technologies that can recognize the identity of an individual to about a 3 digit PIN (false detection is less than 1 in 1,000). Note that quality constants are ordered so that higher values are more restrictive.
				 */
				static PASSWORD_QUALITY_BIOMETRIC_WEAK: number;
				/**
				 * Constant for #setPasswordQuality: the policy requires some kind of password, but doesn't care what it is. Note that quality constants are ordered so that higher values are more restrictive.
				 */
				static PASSWORD_QUALITY_SOMETHING: number;
				/**
				 * Constant for #setPasswordQuality: the user must have entered a password containing at least numeric characters. Note that quality constants are ordered so that higher values are more restrictive.
				 */
				static PASSWORD_QUALITY_NUMERIC: number;
				/**
				 * Constant for #setPasswordQuality: the user must have entered a password containing at least alphabetic (or other symbol) characters. Note that quality constants are ordered so that higher values are more restrictive.
				 */
				static PASSWORD_QUALITY_ALPHABETIC: number;
				/**
				 * Constant for #setPasswordQuality: the user must have entered a password containing at least <em>both></em> numeric <em>and</em> alphabetic (or other symbol) characters. Note that quality constants are ordered so that higher values are more restrictive.
				 */
				static PASSWORD_QUALITY_ALPHANUMERIC: number;
				/**
				 * Constant for #setPasswordQuality: the user must have entered a password containing at least a letter, a numerical digit and a special symbol, by default. With this password quality, passwords can be restricted to contain various sets of characters, like at least an uppercase letter, etc. These are specified using various methods, like #setPasswordMinimumLowerCase(ComponentName, int). Note that quality constants are ordered so that higher values are more restrictive.
				 */
				static PASSWORD_QUALITY_COMPLEX: number;
				/**
				 * Flag for #resetPassword: don't allow other admins to change the password again until the user has entered it.
				 */
				static RESET_PASSWORD_REQUIRE_ENTRY: number;
				/**
				 * Flag for #wipeData(int): also erase the device's external storage.
				 */
				static WIPE_EXTERNAL_STORAGE: number;
				/**
				 * Result code for #setStorageEncryption and #getStorageEncryptionStatus: indicating that encryption is not supported.
				 */
				static ENCRYPTION_STATUS_UNSUPPORTED: number;
				/**
				 * Result code for #setStorageEncryption and #getStorageEncryptionStatus: indicating that encryption is supported, but is not currently active.
				 */
				static ENCRYPTION_STATUS_INACTIVE: number;
				/**
				 * Result code for #setStorageEncryption and #getStorageEncryptionStatus: indicating that encryption is not currently active, but is currently being activated. This is only reported by devices that support encryption of data and only when the storage is currently undergoing a process of becoming encrypted. A device that must reboot and/or wipe data to become encrypted will never return this value.
				 */
				static ENCRYPTION_STATUS_ACTIVATING: number;
				/**
				 * Result code for #setStorageEncryption and #getStorageEncryptionStatus: indicating that encryption is active.
				 */
				static ENCRYPTION_STATUS_ACTIVE: number;
				/**
				 * Activity action: begin the process of encrypting data on the device. This activity should be launched after using #setStorageEncryption to request encryption be activated. After resuming from this activity, use #getStorageEncryption to check encryption status. However, on some devices this activity may never return, as it may trigger a reboot and in some cases a complete data wipe of the device.
				 */
				static ACTION_START_ENCRYPTION: string;
				/**
				 * Widgets are enabled in keyguard
				 */
				static KEYGUARD_DISABLE_FEATURES_NONE: number;
				/**
				 * Disable all keyguard widgets
				 */
				static KEYGUARD_DISABLE_WIDGETS_ALL: number;
				/**
				 * Disable the camera on secure keyguard screens (e.g. PIN/Pattern/Password)
				 */
				static KEYGUARD_DISABLE_SECURE_CAMERA: number;
				/**
				 * Disable all current and future keyguard customizations.
				 */
				static KEYGUARD_DISABLE_FEATURES_ALL: number;
				static class: java.lang.Class<android.app.admin.DevicePolicyManager>;
				/**
				 * Return true if the given administrator component is currently active (enabled) in the system.
				 */
				public isAdminActive(who: android.content.ComponentName): boolean;
				/**
				 * Return a list of all currently active device administrator's component names. Note that if there are no administrators than null may be returned.
				 */
				public getActiveAdmins(): java.util.IList<android.content.ComponentName>;
				/**
				 * Remove a current administration component. This can only be called by the application that owns the administration component; if you try to remove someone else's component, a security exception will be thrown.
				 */
				public removeActiveAdmin(who: android.content.ComponentName): void;
				/**
				 * Returns true if an administrator has been granted a particular device policy. This can be used to check if the administrator was activated under an earlier set of policies, but requires additional policies after an upgrade.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with. Must be
				 * @param usesPolicy Which uses-policy to check, as defined in {@link DeviceAdminInfo}.
				 */
				public hasGrantedPolicy(admin: android.content.ComponentName, usesPolicy: number): boolean;
				/**
				 * Called by an application that is administering the device to set the password restrictions it is imposing. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param quality The new desired quality. One of
				 */
				public setPasswordQuality(admin: android.content.ComponentName, quality: number): void;
				/**
				 * Retrieve the current minimum password quality for all admins or a particular one.
				 * @param admin The name of the admin component to check, or null to aggregate
				 */
				public getPasswordQuality(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the minimum allowed password length. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested either #PASSWORD_QUALITY_NUMERIC, #PASSWORD_QUALITY_ALPHABETIC #PASSWORD_QUALITY_ALPHANUMERIC, or #PASSWORD_QUALITY_COMPLEX with #setPasswordQuality.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param length The new desired minimum password length. A value of 0
				 */
				public setPasswordMinimumLength(admin: android.content.ComponentName, length: number): void;
				/**
				 * Retrieve the current minimum password length for all admins or a particular one.
				 * @param admin The name of the admin component to check, or null to aggregate
				 */
				public getPasswordMinimumLength(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the minimum number of upper case letters required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested #PASSWORD_QUALITY_COMPLEX with #setPasswordQuality. The default value is 0.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated
				 * @param length The new desired minimum number of upper case letters
				 */
				public setPasswordMinimumUpperCase(admin: android.content.ComponentName, length: number): void;
				/**
				 * Retrieve the current number of upper case letters required in the password for all admins or a particular one. This is the same value as set by {#link #setPasswordMinimumUpperCase(ComponentName, int) and only applies when the password quality is #PASSWORD_QUALITY_COMPLEX.
				 * @param admin The name of the admin component to check, or null to
				 */
				public getPasswordMinimumUpperCase(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the minimum number of lower case letters required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested #PASSWORD_QUALITY_COMPLEX with #setPasswordQuality. The default value is 0.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated
				 * @param length The new desired minimum number of lower case letters
				 */
				public setPasswordMinimumLowerCase(admin: android.content.ComponentName, length: number): void;
				/**
				 * Retrieve the current number of lower case letters required in the password for all admins or a particular one. This is the same value as set by {#link #setPasswordMinimumLowerCase(ComponentName, int) and only applies when the password quality is #PASSWORD_QUALITY_COMPLEX.
				 * @param admin The name of the admin component to check, or null to
				 */
				public getPasswordMinimumLowerCase(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the minimum number of letters required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested #PASSWORD_QUALITY_COMPLEX with #setPasswordQuality. The default value is 1.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated
				 * @param length The new desired minimum number of letters required in the
				 */
				public setPasswordMinimumLetters(admin: android.content.ComponentName, length: number): void;
				/**
				 * Retrieve the current number of letters required in the password for all admins or a particular one. This is the same value as set by {#link #setPasswordMinimumLetters(ComponentName, int) and only applies when the password quality is #PASSWORD_QUALITY_COMPLEX.
				 * @param admin The name of the admin component to check, or null to
				 */
				public getPasswordMinimumLetters(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the minimum number of numerical digits required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested #PASSWORD_QUALITY_COMPLEX with #setPasswordQuality. The default value is 1.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated
				 * @param length The new desired minimum number of numerical digits required
				 */
				public setPasswordMinimumNumeric(admin: android.content.ComponentName, length: number): void;
				/**
				 * Retrieve the current number of numerical digits required in the password for all admins or a particular one. This is the same value as set by {#link #setPasswordMinimumNumeric(ComponentName, int) and only applies when the password quality is #PASSWORD_QUALITY_COMPLEX.
				 * @param admin The name of the admin component to check, or null to
				 */
				public getPasswordMinimumNumeric(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the minimum number of symbols required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested #PASSWORD_QUALITY_COMPLEX with #setPasswordQuality. The default value is 1.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated
				 * @param length The new desired minimum number of symbols required in the
				 */
				public setPasswordMinimumSymbols(admin: android.content.ComponentName, length: number): void;
				/**
				 * Retrieve the current number of symbols required in the password for all admins or a particular one. This is the same value as set by {#link #setPasswordMinimumSymbols(ComponentName, int) and only applies when the password quality is #PASSWORD_QUALITY_COMPLEX.
				 * @param admin The name of the admin component to check, or null to
				 */
				public getPasswordMinimumSymbols(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the minimum number of non-letter characters (numerical digits or symbols) required in the password. After setting this, the user will not be able to enter a new password that is not at least as restrictive as what has been set. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested #PASSWORD_QUALITY_COMPLEX with #setPasswordQuality. The default value is 0.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated
				 * @param length The new desired minimum number of letters required in the
				 */
				public setPasswordMinimumNonLetter(admin: android.content.ComponentName, length: number): void;
				/**
				 * Retrieve the current number of non-letter characters required in the password for all admins or a particular one. This is the same value as set by {#link #setPasswordMinimumNonLetter(ComponentName, int) and only applies when the password quality is #PASSWORD_QUALITY_COMPLEX.
				 * @param admin The name of the admin component to check, or null to
				 */
				public getPasswordMinimumNonLetter(admin: android.content.ComponentName): number;
				/**
				 * Called by an application that is administering the device to set the length of the password history. After setting this, the user will not be able to enter a new password that is the same as any password in the history. Note that the current password will remain until the user has set a new one, so the change does not take place immediately. To prompt the user for a new password, use #ACTION_SET_NEW_PASSWORD after setting this value. This constraint is only imposed if the administrator has also requested either #PASSWORD_QUALITY_NUMERIC, #PASSWORD_QUALITY_ALPHABETIC, or #PASSWORD_QUALITY_ALPHANUMERIC with #setPasswordQuality.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated
				 * @param length The new desired length of password history. A value of 0
				 */
				public setPasswordHistoryLength(admin: android.content.ComponentName, length: number): void;
				/**
				 * Called by a device admin to set the password expiration timeout. Calling this method will restart the countdown for password expiration for the given admin, as will changing the device password (for all admins).
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param timeout The limit (in ms) that a password can remain in effect. A value of 0
				 */
				public setPasswordExpirationTimeout(admin: android.content.ComponentName, timeout: number): void;
				/**
				 * Get the password expiration timeout for the given admin. The expiration timeout is the recurring expiration timeout provided in the call to #setPasswordExpirationTimeout(ComponentName, long) for the given admin or the aggregate of all policy administrators if admin is null.
				 * @param admin The name of the admin component to check, or null to aggregate all admins.
				 */
				public getPasswordExpirationTimeout(admin: android.content.ComponentName): any;
				/**
				 * Get the current password expiration time for the given admin or an aggregate of all admins if admin is null. If the password is expired, this will return the time since the password expired as a negative number. If admin is null, then a composite of all expiration timeouts is returned - which will be the minimum of all timeouts.
				 * @param admin The name of the admin component to check, or null to aggregate all admins.
				 */
				public getPasswordExpiration(admin: android.content.ComponentName): any;
				/**
				 * Retrieve the current password history length for all admins or a particular one.
				 * @param admin The name of the admin component to check, or null to aggregate
				 */
				public getPasswordHistoryLength(admin: android.content.ComponentName): number;
				/**
				 * Return the maximum password length that the device supports for a particular password quality.
				 * @param quality The quality being interrogated.
				 */
				public getPasswordMaximumLength(quality: number): number;
				/**
				 * Determine whether the current password the user has set is sufficient to meet the policy requirements (quality, minimum length) that have been requested.
				 */
				public isActivePasswordSufficient(): boolean;
				/**
				 * Retrieve the number of times the user has failed at entering a password since that last successful password entry.
				 */
				public getCurrentFailedPasswordAttempts(): number;
				/**
				 * Setting this to a value greater than zero enables a built-in policy that will perform a device wipe after too many incorrect device-unlock passwords have been entered. This built-in policy combines watching for failed passwords and wiping the device, and requires that you request both DeviceAdminInfo#USES_POLICY_WATCH_LOGIN and DeviceAdminInfo#USES_POLICY_WIPE_DATA}.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param num The number of failed password attempts at which point the
				 */
				public setMaximumFailedPasswordsForWipe(admin: android.content.ComponentName, num: number): void;
				/**
				 * Retrieve the current maximum number of login attempts that are allowed before the device wipes itself, for all admins or a particular one.
				 * @param admin The name of the admin component to check, or null to aggregate
				 */
				public getMaximumFailedPasswordsForWipe(admin: android.content.ComponentName): number;
				/**
				 * Force a new device unlock password (the password needed to access the entire device, not for individual accounts) on the user. This takes effect immediately. The given password must be sufficient for the current password quality and length constraints as returned by #getPasswordQuality(ComponentName) and #getPasswordMinimumLength(ComponentName); if it does not meet these constraints, then it will be rejected and false returned. Note that the password may be a stronger quality (containing alphanumeric characters when the requested quality is only numeric), in which case the currently active quality will be increased to match.
				 * @param password The new password for the user.
				 * @param flags May be 0 or {@link #RESET_PASSWORD_REQUIRE_ENTRY}.
				 */
				public resetPassword(password: string, flags: number): boolean;
				/**
				 * Called by an application that is administering the device to set the maximum time for user activity until the device will lock. This limits the length that the user can set. It takes effect immediately.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param timeMs The new desired maximum time to lock in milliseconds.
				 */
				public setMaximumTimeToLock(admin: android.content.ComponentName, timeMs: number): void;
				/**
				 * Retrieve the current maximum time to unlock for all admins or a particular one.
				 * @param admin The name of the admin component to check, or null to aggregate
				 */
				public getMaximumTimeToLock(admin: android.content.ComponentName): any;
				/**
				 * Make the device lock immediately, as if the lock screen timeout has expired at the point of this call.
				 */
				public lockNow(): void;
				/**
				 * Ask the user date be wiped. This will cause the device to reboot, erasing all user data while next booting up. External storage such as SD cards will be also erased if the flag #WIPE_EXTERNAL_STORAGE is set.
				 * @param flags Bit mask of additional options: currently 0 and
				 */
				public wipeData(flags: number): void;
				/**
				 * Called by an application that is administering the device to request that the storage system be encrypted.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param encrypt true to request encryption, false to release any previous request
				 */
				public setStorageEncryption(admin: android.content.ComponentName, encrypt: boolean): number;
				/**
				 * Called by an application that is administering the device to determine the requested setting for secure storage.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with. If null,
				 */
				public getStorageEncryption(admin: android.content.ComponentName): boolean;
				/**
				 * Called by an application that is administering the device to determine the current encryption status of the device.
				 */
				public getStorageEncryptionStatus(): number;
				/**
				 * Called by an application that is administering the device to disable all cameras on the device. After setting this, no applications will be able to access any cameras on the device.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param disabled Whether or not the camera should be disabled.
				 */
				public setCameraDisabled(admin: android.content.ComponentName, disabled: boolean): void;
				/**
				 * Determine whether or not the device's cameras have been disabled either by the current admin, if specified, or all admins.
				 * @param admin The name of the admin component to check, or null to check if any admins
				 */
				public getCameraDisabled(admin: android.content.ComponentName): boolean;
				/**
				 * Called by an application that is administering the device to disable keyguard customizations, such as widgets. After setting this, keyguard features will be disabled according to the provided feature list.
				 * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
				 * @param which {@link #KEYGUARD_DISABLE_FEATURES_NONE} (default),
				 */
				public setKeyguardDisabledFeatures(admin: android.content.ComponentName, which: number): void;
				/**
				 * Determine whether or not features have been disabled in keyguard either by the current admin, if specified, or all admins.
				 * @param admin The name of the admin component to check, or null to check if any admins
				 */
				public getKeyguardDisabledFeatures(admin: android.content.ComponentName): number;
			}
			/**
			 * This class is used to specify meta information of a device administrator component.
			 */
			export class DeviceAdminInfo extends java.lang.Object implements android.os.IParcelable {
				/**
				 * Constructor.
				 * @param context The Context in which we are parsing the device admin.
				 * @param receiver The ResolveInfo returned from the package manager about
				 */
				constructor(context: android.content.Context, receiver: android.content.pm.ResolveInfo);
				/**
				 * A type of policy that this device admin can use: limit the passwords that the user can select, via DevicePolicyManager#setPasswordQuality and DevicePolicyManager#setPasswordMinimumLength.
				 */
				static USES_POLICY_LIMIT_PASSWORD: number;
				/**
				 * A type of policy that this device admin can use: able to watch login attempts from the user, via DeviceAdminReceiver#ACTION_PASSWORD_FAILED, DeviceAdminReceiver#ACTION_PASSWORD_SUCCEEDED, and DevicePolicyManager#getCurrentFailedPasswordAttempts.
				 */
				static USES_POLICY_WATCH_LOGIN: number;
				/**
				 * A type of policy that this device admin can use: able to reset the user's password via DevicePolicyManager#resetPassword.
				 */
				static USES_POLICY_RESET_PASSWORD: number;
				/**
				 * A type of policy that this device admin can use: able to force the device to lock viaDevicePolicyManager#lockNow or limit the maximum lock timeout for the device via DevicePolicyManager#setMaximumTimeToLock.
				 */
				static USES_POLICY_FORCE_LOCK: number;
				/**
				 * A type of policy that this device admin can use: able to factory reset the device, erasing all of the user's data, via DevicePolicyManager#wipeData.
				 */
				static USES_POLICY_WIPE_DATA: number;
				/**
				 * A type of policy that this device admin can use: force the user to change their password after an administrator-defined time limit.
				 */
				static USES_POLICY_EXPIRE_PASSWORD: number;
				/**
				 * A type of policy that this device admin can use: require encryption of stored data.
				 */
				static USES_ENCRYPTED_STORAGE: number;
				/**
				 * A type of policy that this device admin can use: disables use of all device cameras.
				 */
				static USES_POLICY_DISABLE_CAMERA: number;
				/**
				 * A type of policy that this device admin can use: disables use of keyguard widgets.
				 */
				static USES_POLICY_DISABLE_KEYGUARD_FEATURES: number;
				/**
				 * Used to make this class parcelable.
				 */
				static CREATOR: android.os.Parcelable.ICreator<android.app.admin.DeviceAdminInfo>;
				static class: java.lang.Class<android.app.admin.DeviceAdminInfo>;
				/**
				 * Return the .apk package that implements this device admin.
				 */
				public getPackageName(): string;
				/**
				 * Return the class name of the receiver component that implements this device admin.
				 */
				public getReceiverName(): string;
				/**
				 * Return the raw information about the receiver implementing this device admin. Do not modify the returned object.
				 */
				public getActivityInfo(): android.content.pm.ActivityInfo;
				/**
				 * Return the component of the receiver that implements this device admin.
				 */
				public getComponent(): android.content.ComponentName;
				/**
				 * Load the user-displayed label for this device admin.
				 * @param pm Supply a PackageManager used to load the device admin's
				 */
				public loadLabel(pm: android.content.pm.PackageManager): string;
				/**
				 * Load user-visible description associated with this device admin.
				 * @param pm Supply a PackageManager used to load the device admin's
				 */
				public loadDescription(pm: android.content.pm.PackageManager): string;
				/**
				 * Load the user-displayed icon for this device admin.
				 * @param pm Supply a PackageManager used to load the device admin's
				 */
				public loadIcon(pm: android.content.pm.PackageManager): android.graphics.drawable.Drawable;
				/**
				 * Returns whether this device admin would like to be visible to the user, even when it is not enabled.
				 */
				public isVisible(): boolean;
				/**
				 * Return true if the device admin has requested that it be able to use the given policy control. The possible policy identifier inputs are: #USES_POLICY_LIMIT_PASSWORD, #USES_POLICY_WATCH_LOGIN, #USES_POLICY_RESET_PASSWORD, #USES_POLICY_FORCE_LOCK, #USES_POLICY_WIPE_DATA, #USES_POLICY_EXPIRE_PASSWORD, #USES_ENCRYPTED_STORAGE, #USES_POLICY_DISABLE_CAMERA.
				 */
				public usesPolicy(policyIdent: number): boolean;
				/**
				 * Return the XML tag name for the given policy identifier. Valid identifiers are as per #usesPolicy(int). If the given identifier is not known, null is returned.
				 */
				public getTagForPolicy(policyIdent: number): string;
				public dump(pw: android.util.IPrinter, prefix: string): void;
				public toString(): string;
				/**
				 * Used to package this object into a Parcel.
				 * @param dest The {@link Parcel} to be written.
				 * @param flags The flags used for parceling.
				 */
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public describeContents(): number;
			}
			/**
			 * Base class for implementing a device administration component. This class provides a convenience for interpreting the raw intent actions that are sent by the system. 
			 */
			export class DeviceAdminReceiver extends android.content.BroadcastReceiver {
				constructor();
				/**
				 * This is the primary action that a device administrator must implement to be allowed to manage a device. This will be set to the receiver when the user enables it for administration. You will generally handle this in DeviceAdminReceiver#onEnabled(Context, Intent). To be supported, the receiver must also require the android.Manifest.permission#BIND_DEVICE_ADMIN permission so that other applications can not abuse it.
				 */
				static ACTION_DEVICE_ADMIN_ENABLED: string;
				/**
				 * Action sent to a device administrator when the user has requested to disable it, but before this has actually been done. This gives you a chance to supply a message to the user about the impact of disabling your admin, by setting the extra field #EXTRA_DISABLE_WARNING in the result Intent. If not set, no warning will be displayed. If set, the given text will be shown to the user before they disable your admin.
				 */
				static ACTION_DEVICE_ADMIN_DISABLE_REQUESTED: string;
				/**
				 * A CharSequence that can be shown to the user informing them of the impact of disabling your admin.
				 */
				static EXTRA_DISABLE_WARNING: string;
				/**
				 * Action sent to a device administrator when the user has disabled it. Upon return, the application no longer has access to the protected device policy manager APIs. You will generally handle this in DeviceAdminReceiver#onDisabled(Context, Intent). Note that this action will be sent the receiver regardless of whether it is explicitly listed in its intent filter.
				 */
				static ACTION_DEVICE_ADMIN_DISABLED: string;
				/**
				 * Action sent to a device administrator when the user has changed the password of their device. You can at this point check the characteristics of the new password with DevicePolicyManager#isActivePasswordSufficient() DevicePolicyManager.isActivePasswordSufficient(). You will generally handle this in DeviceAdminReceiver#onPasswordChanged. 
				 */
				static ACTION_PASSWORD_CHANGED: string;
				/**
				 * Action sent to a device administrator when the user has failed at attempted to enter the password. You can at this point check the number of failed password attempts there have been with DevicePolicyManager#getCurrentFailedPasswordAttempts DevicePolicyManager.getCurrentFailedPasswordAttempts(). You will generally handle this in DeviceAdminReceiver#onPasswordFailed. 
				 */
				static ACTION_PASSWORD_FAILED: string;
				/**
				 * Action sent to a device administrator when the user has successfully entered their password, after failing one or more times. 
				 */
				static ACTION_PASSWORD_SUCCEEDED: string;
				/**
				 * Action periodically sent to a device administrator when the device password is expiring.
				 */
				static ACTION_PASSWORD_EXPIRING: string;
				/**
				 * Name under which a DevicePolicy component publishes information about itself. This meta-data must reference an XML resource containing a device-admin tag. XXX TO DO: describe syntax.
				 */
				static DEVICE_ADMIN_META_DATA: string;
				static class: java.lang.Class<android.app.admin.DeviceAdminReceiver>;
				/**
				 * Retrieve the DevicePolicyManager interface for this administrator to work with the system.
				 */
				public getManager(context: android.content.Context): android.app.admin.DevicePolicyManager;
				/**
				 * Retrieve the ComponentName describing who this device administrator is, for use in DevicePolicyManager APIs that require the administrator to identify itself.
				 */
				public getWho(context: android.content.Context): android.content.ComponentName;
				/**
				 * Called after the administrator is first enabled, as a result of receiving #ACTION_DEVICE_ADMIN_ENABLED. At this point you can use DevicePolicyManager to set your desired policies.
				 * @param context The running context as per {@link #onReceive}.
				 * @param intent The received intent as per {@link #onReceive}.
				 */
				public onEnabled(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Called when the user has asked to disable the administrator, as a result of receiving #ACTION_DEVICE_ADMIN_DISABLE_REQUESTED, giving you a chance to present a warning message to them. The message is returned as the result; if null is returned (the default implementation), no message will be displayed.
				 * @param context The running context as per {@link #onReceive}.
				 * @param intent The received intent as per {@link #onReceive}.
				 */
				public onDisableRequested(context: android.content.Context, intent: android.content.Intent): string;
				/**
				 * Called prior to the administrator being disabled, as a result of receiving #ACTION_DEVICE_ADMIN_DISABLED. Upon return, you can no longer use the protected parts of the DevicePolicyManager API.
				 * @param context The running context as per {@link #onReceive}.
				 * @param intent The received intent as per {@link #onReceive}.
				 */
				public onDisabled(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Called after the user has changed their password, as a result of receiving #ACTION_PASSWORD_CHANGED. At this point you can use DevicePolicyManager#getCurrentFailedPasswordAttempts() DevicePolicyManager.getCurrentFailedPasswordAttempts() to retrieve the active password characteristics.
				 * @param context The running context as per {@link #onReceive}.
				 * @param intent The received intent as per {@link #onReceive}.
				 */
				public onPasswordChanged(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Called after the user has failed at entering their current password, as a result of receiving #ACTION_PASSWORD_FAILED. At this point you can use DevicePolicyManager to retrieve the number of failed password attempts.
				 * @param context The running context as per {@link #onReceive}.
				 * @param intent The received intent as per {@link #onReceive}.
				 */
				public onPasswordFailed(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Called after the user has succeeded at entering their current password, as a result of receiving #ACTION_PASSWORD_SUCCEEDED. This will only be received the first time they succeed after having previously failed.
				 * @param context The running context as per {@link #onReceive}.
				 * @param intent The received intent as per {@link #onReceive}.
				 */
				public onPasswordSucceeded(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Called periodically when the password is about to expire or has expired. It will typically be called at these times: on device boot, once per day before the password expires, and at the time when the password expires.
				 * @param context The running context as per {@link #onReceive}.
				 * @param intent The received intent as per {@link #onReceive}.
				 */
				public onPasswordExpiring(context: android.content.Context, intent: android.content.Intent): void;
				/**
				 * Intercept standard device administrator broadcasts. Implementations should not override this method; it is better to implement the convenience callbacks for each action.
				 */
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
		}
		/**
		 * Base class for implementing application instrumentation code. When running with instrumentation turned on, this class will be instantiated for you before any of the application code, allowing you to monitor all of the interaction the system has with the application. An Instrumentation implementation is described to the system through an AndroidManifest.xml's &lt;instrumentation&gt; tag.
		 */
		export class Instrumentation extends java.lang.Object {
			constructor();
			/**
			 * If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the class that is writing the report. This can be used to provide more structured logging or reporting capabilities in the IInstrumentationWatcher.
			 */
			static REPORT_KEY_IDENTIFIER: string;
			/**
			 * If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies a string which can simply be printed to the output stream. Using these streams provides a "pretty printer" version of the status & final packets. Any bundles including this key should also include the complete set of raw key/value pairs, so that the instrumentation can also be launched, and results collected, by an automated system.
			 */
			static REPORT_KEY_STREAMRESULT: string;
			static class: java.lang.Class<android.app.Instrumentation>;
			InstrumentationThread: {
	new (name: string): android.app.Instrumentation.InstrumentationThread;
};
			ActivityGoing: {
	new (waiter: android.app.Instrumentation.ActivityWaiter): android.app.Instrumentation.ActivityGoing;
};
			/**
			 * Called when the instrumentation is starting, before any application code has been loaded. Usually this will be implemented to simply call #start to begin the instrumentation thread, which will then continue execution in #onStart. 
			 * @param arguments Any additional arguments that were supplied when the
			 */
			public onCreate(args: android.os.Bundle): void;
			/**
			 * Create and start a new thread in which to run instrumentation. This new thread will call to #onStart where you can implement the instrumentation.
			 */
			public start(): void;
			/**
			 * Method where the instrumentation thread enters execution. This allows you to run your instrumentation code in a separate thread than the application, so that it can perform blocking operation such as #sendKeySync or #startActivitySync. 
			 */
			public onStart(): void;
			/**
			 * This is called whenever the system captures an unhandled exception that was thrown by the application. The default implementation simply returns false, allowing normal system handling of the exception to take place. 
			 * @param obj The client object that generated the exception. May be an
			 * @param e The exception that was thrown.
			 */
			public onException(obj: any, e: java.lang.Throwable): boolean;
			/**
			 * Provide a status report about the application. 
			 * @param resultCode Current success/failure of instrumentation.
			 * @param results Any results to send back to the code that started the instrumentation.
			 */
			public sendStatus(resultCode: number, results: android.os.Bundle): void;
			/**
			 * Terminate instrumentation of the application. This will cause the application process to exit, removing this instrumentation from the next time the application is started. 
			 * @param resultCode Overall success/failure of instrumentation.
			 * @param results Any results to send back to the code that started the
			 */
			public finish(resultCode: number, results: android.os.Bundle): void;
			public setAutomaticPerformanceSnapshots(): void;
			public startPerformanceSnapshot(): void;
			public endPerformanceSnapshot(): void;
			/**
			 * Called when the instrumented application is stopping, after all of the normal application cleanup has occurred.
			 */
			public onDestroy(): void;
			/**
			 * Return the Context of this instrumentation's package. Note that this is often different than the Context of the application being instrumentated, since the instrumentation code often lives is a different package than that of the application it is running against. See #getTargetContext to retrieve a Context for the target application. 
			 */
			public getContext(): android.content.Context;
			/**
			 * Returns complete component name of this instrumentation. 
			 */
			public getComponentName(): android.content.ComponentName;
			/**
			 * Return a Context for the target application being instrumented. Note that this is often different than the Context of the instrumentation code, since the instrumentation code often lives is a different package than that of the application it is running against. See #getContext to retrieve a Context for the instrumentation code. 
			 */
			public getTargetContext(): android.content.Context;
			/**
			 * Check whether this instrumentation was started with profiling enabled. 
			 */
			public isProfiling(): boolean;
			/**
			 * This method will start profiling if isProfiling() returns true. You should only call this method if you set the handleProfiling attribute in the manifest file for this Instrumentation to true.
			 */
			public startProfiling(): void;
			/**
			 * Stops profiling if isProfiling() returns true.
			 */
			public stopProfiling(): void;
			/**
			 * Force the global system in or out of touch mode. This can be used if your instrumentation relies on the UI being in one more or the other when it starts. 
			 * @param inTouch Set to true to be in touch mode, false to be in
			 */
			public setInTouchMode(inTouch: boolean): void;
			/**
			 * Schedule a callback for when the application's main thread goes idle (has no more events to process). 
			 * @param recipient Called the next time the thread's message queue is
			 */
			public waitForIdle(recipient: java.lang.IRunnable): void;
			/**
			 * Synchronously wait for the application to be idle. Can not be called from the main application thread -- use #start to execute instrumentation in its own thread.
			 */
			public waitForIdleSync(): void;
			/**
			 * Execute a call on the application's main thread, blocking until it is complete. Useful for doing things that are not thread-safe, such as looking at or modifying the view hierarchy. 
			 * @param runner The code to run on the main thread.
			 */
			public runOnMainSync(runner: java.lang.IRunnable): void;
			/**
			 * Start a new activity and wait for it to begin running before returning. In addition to being synchronous, this method as some semantic differences from the standard Context#startActivity call: the activity component is resolved before talking with the activity manager (its class name is specified in the Intent that this method ultimately starts), and it does not allow you to start activities that run in a different process. In addition, if the given Intent resolves to multiple activities, instead of displaying a dialog for the user to select an activity, an exception will be thrown. 
			 * @param intent Description of the activity to start.
			 */
			public startActivitySync(intent: android.content.Intent): android.app.Activity;
			/**
			 * Add a new ActivityMonitor that will be checked whenever an activity is started. The monitor is added after any existing ones; the monitor will be hit only if none of the existing monitors can themselves handle the Intent. 
			 * @param monitor The new ActivityMonitor to see.
			 */
			public addMonitor(monitor: android.app.Instrumentation.ActivityMonitor): void;
			/**
			 * A convenience wrapper for #addMonitor(ActivityMonitor) that creates an intent filter matching ActivityMonitor for you and returns it. 
			 * @param filter The set of intents this monitor is responsible for.
			 * @param result A canned result to return if the monitor is hit; can
			 * @param block Controls whether the monitor should block the activity
			 */
			public addMonitor(filter: android.content.IntentFilter, result: android.app.Instrumentation.ActivityResult, block: boolean): android.app.Instrumentation.ActivityMonitor;
			/**
			 * A convenience wrapper for #addMonitor(ActivityMonitor) that creates a class matching ActivityMonitor for you and returns it. 
			 * @param cls The activity class this monitor is responsible for.
			 * @param result A canned result to return if the monitor is hit; can
			 * @param block Controls whether the monitor should block the activity
			 */
			public addMonitor(cls: string, result: android.app.Instrumentation.ActivityResult, block: boolean): android.app.Instrumentation.ActivityMonitor;
			/**
			 * Test whether an existing ActivityMonitor has been hit. If the monitor has been hit at least <var>minHits</var> times, then it will be removed from the activity monitor list and true returned. Otherwise it is left as-is and false is returned. 
			 * @param monitor The ActivityMonitor to check.
			 * @param minHits The minimum number of hits required.
			 */
			public checkMonitorHit(monitor: android.app.Instrumentation.ActivityMonitor, minHits: number): boolean;
			/**
			 * Wait for an existing ActivityMonitor to be hit. Once the monitor has been hit, it is removed from the activity monitor list and the first created Activity object that matched it is returned. 
			 * @param monitor The ActivityMonitor to wait for.
			 */
			public waitForMonitor(monitor: android.app.Instrumentation.ActivityMonitor): android.app.Activity;
			/**
			 * Wait for an existing ActivityMonitor to be hit till the timeout expires. Once the monitor has been hit, it is removed from the activity monitor list and the first created Activity object that matched it is returned. If the timeout expires, a null object is returned.
			 * @param monitor The ActivityMonitor to wait for.
			 * @param timeOut The timeout value in secs.
			 */
			public waitForMonitorWithTimeout(monitor: android.app.Instrumentation.ActivityMonitor, timeOut: number): android.app.Activity;
			/**
			 * Remove an ActivityMonitor that was previously added with #addMonitor. 
			 * @param monitor The monitor to remove.
			 */
			public removeMonitor(monitor: android.app.Instrumentation.ActivityMonitor): void;
			/**
			 * Execute a particular menu item. 
			 * @param targetActivity The activity in question.
			 * @param id The identifier associated with the menu item.
			 * @param flag Additional flags, if any.
			 */
			public invokeMenuActionSync(targetActivity: android.app.Activity, id: number, flag: number): boolean;
			/**
			 * Show the context menu for the currently focused view and executes a particular context menu item. 
			 * @param targetActivity The activity in question.
			 * @param id The identifier associated with the context menu item.
			 * @param flag Additional flags, if any.
			 */
			public invokeContextMenuAction(targetActivity: android.app.Activity, id: number, flag: number): boolean;
			/**
			 * Sends the key events corresponding to the text to the app being instrumented. 
			 * @param text The text to be sent.
			 */
			public sendStringSync(text: string): void;
			/**
			 * Send a key event to the currently focused window/view and wait for it to be processed. Finished at some point after the recipient has returned from its event processing, though it may <em>not</em> have completely finished reacting from the event -- for example, if it needs to update its display as a result, it may still be in the process of doing that. 
			 * @param event The event to send to the current focus.
			 */
			public sendKeySync(event: android.view.KeyEvent): void;
			/**
			 * Sends an up and down key event sync to the currently focused window. 
			 * @param key The integer keycode for the event.
			 */
			public sendKeyDownUpSync(key: number): void;
			/**
			 * Higher-level method for sending both the down and up key events for a particular character key code. Equivalent to creating both KeyEvent objects by hand and calling #sendKeySync. The event appears as if it came from keyboard 0, the built in one. 
			 * @param keyCode The key code of the character to send.
			 */
			public sendCharacterSync(keyCode: number): void;
			/**
			 * Dispatch a pointer event. Finished at some point after the recipient has returned from its event processing, though it may <em>not</em> have completely finished reacting from the event -- for example, if it needs to update its display as a result, it may still be in the process of doing that. 
			 * @param event A motion event describing the pointer action. (As noted in
			 */
			public sendPointerSync(event: android.view.MotionEvent): void;
			/**
			 * Dispatch a trackball event. Finished at some point after the recipient has returned from its event processing, though it may <em>not</em> have completely finished reacting from the event -- for example, if it needs to update its display as a result, it may still be in the process of doing that. 
			 * @param event A motion event describing the trackball action. (As noted in
			 */
			public sendTrackballEventSync(event: android.view.MotionEvent): void;
			/**
			 * Perform instantiation of the process's Application object. The default implementation provides the normal system behavior. 
			 * @param cl The ClassLoader with which to instantiate the object.
			 * @param className The name of the class implementing the Application
			 * @param context The context to initialize the application with
			 */
			public newApplication(cl: java.lang.ClassLoader, className: string, context: android.content.Context): android.app.Application;
			/**
			 * Perform instantiation of the process's Application object. The default implementation provides the normal system behavior. 
			 * @param clazz The class used to create an Application object from.
			 * @param context The context to initialize the application with
			 */
			public static newApplication(clazz: java.lang.Class<any>, context: android.content.Context): android.app.Application;
			/**
			 * Perform calling of the application's Application#onCreate method. The default implementation simply calls through to that method.
			 * @param app The application being created.
			 */
			public callApplicationOnCreate(app: android.app.Application): void;
			/**
			 * Perform instantiation of an Activity object. This method is intended for use with unit tests, such as android.test.ActivityUnitTestCase. The activity will be useable locally but will be missing some of the linkages necessary for use within the sytem. 
			 * @param clazz The Class of the desired Activity
			 * @param context The base context for the activity to use
			 * @param token The token for this activity to communicate with
			 * @param application The application object (if any)
			 * @param intent The intent that started this Activity
			 * @param info ActivityInfo from the manifest
			 * @param title The title, typically retrieved from the ActivityInfo record
			 * @param parent The parent Activity (if any)
			 * @param id The embedded Id (if any)
			 * @param lastNonConfigurationInstance Arbitrary object that will be
			 */
			public newActivity(clazz: java.lang.Class<any>, context: android.content.Context, token: android.os.IIBinder, application: android.app.Application, intent: android.content.Intent, info: android.content.pm.ActivityInfo, title: string, parent: android.app.Activity, id: string, lastNonConfigurationInstance: any): android.app.Activity;
			/**
			 * Perform instantiation of the process's Activity object. The default implementation provides the normal system behavior. 
			 * @param cl The ClassLoader with which to instantiate the object.
			 * @param className The name of the class implementing the Activity
			 * @param intent The Intent object that specified the activity class being
			 */
			public newActivity(cl: java.lang.ClassLoader, className: string, intent: android.content.Intent): android.app.Activity;
			/**
			 * Perform calling of an activity's Activity#onCreate method. The default implementation simply calls through to that method. 
			 * @param activity The activity being created.
			 * @param icicle The previously frozen state (or null) to pass through to
			 */
			public callActivityOnCreate(activity: android.app.Activity, icicle: android.os.Bundle): void;
			public callActivityOnDestroy(activity: android.app.Activity): void;
			/**
			 * Perform calling of an activity's Activity#onRestoreInstanceState method. The default implementation simply calls through to that method. 
			 * @param activity The activity being restored.
			 * @param savedInstanceState The previously saved state being restored.
			 */
			public callActivityOnRestoreInstanceState(activity: android.app.Activity, savedInstanceState: android.os.Bundle): void;
			/**
			 * Perform calling of an activity's Activity#onPostCreate method. The default implementation simply calls through to that method. 
			 * @param activity The activity being created.
			 * @param icicle The previously frozen state (or null) to pass through to
			 */
			public callActivityOnPostCreate(activity: android.app.Activity, icicle: android.os.Bundle): void;
			/**
			 * Perform calling of an activity's Activity#onNewIntent method. The default implementation simply calls through to that method. 
			 * @param activity The activity receiving a new Intent.
			 * @param intent The new intent being received.
			 */
			public callActivityOnNewIntent(activity: android.app.Activity, intent: android.content.Intent): void;
			/**
			 * Perform calling of an activity's Activity#onStart method. The default implementation simply calls through to that method. 
			 * @param activity The activity being started.
			 */
			public callActivityOnStart(activity: android.app.Activity): void;
			/**
			 * Perform calling of an activity's Activity#onRestart method. The default implementation simply calls through to that method. 
			 * @param activity The activity being restarted.
			 */
			public callActivityOnRestart(activity: android.app.Activity): void;
			/**
			 * Perform calling of an activity's Activity#onResume method. The default implementation simply calls through to that method. 
			 * @param activity The activity being resumed.
			 */
			public callActivityOnResume(activity: android.app.Activity): void;
			/**
			 * Perform calling of an activity's Activity#onStop method. The default implementation simply calls through to that method. 
			 * @param activity The activity being stopped.
			 */
			public callActivityOnStop(activity: android.app.Activity): void;
			/**
			 * Perform calling of an activity's Activity#onPause method. The default implementation simply calls through to that method. 
			 * @param activity The activity being saved.
			 * @param outState The bundle to pass to the call.
			 */
			public callActivityOnSaveInstanceState(activity: android.app.Activity, outState: android.os.Bundle): void;
			/**
			 * Perform calling of an activity's Activity#onPause method. The default implementation simply calls through to that method. 
			 * @param activity The activity being paused.
			 */
			public callActivityOnPause(activity: android.app.Activity): void;
			/**
			 * Perform calling of an activity's Activity#onUserLeaveHint method. The default implementation simply calls through to that method. 
			 * @param activity The activity being notified that the user has navigated away
			 */
			public callActivityOnUserLeaving(activity: android.app.Activity): void;
			public startAllocCounting(): void;
			public stopAllocCounting(): void;
			/**
			 * Returns a bundle with the current results from the allocation counting.
			 */
			public getAllocCounts(): android.os.Bundle;
			/**
			 * Returns a bundle with the counts for various binder counts for this process. Currently the only two that are reported are the number of send and the number of received transactions.
			 */
			public getBinderCounts(): android.os.Bundle;
			static checkStartActivityResult(res: number, intent: any): void;
		}
		export module Instrumentation {
			/**
			 * Information about a particular kind of Intent that is being monitored. An instance of this class is added to the current instrumentation through #addMonitor; after being added, when a new activity is being started the monitor will be checked and, if matching, its hit count updated and (optionally) the call stopped and a canned result returned. 
			 */
			export class ActivityMonitor extends java.lang.Object {
				/**
				 * Create a new ActivityMonitor that looks for a particular kind of intent to be started. 
				 * @param which The set of intents this monitor is responsible for.
				 * @param result A canned result to return if the monitor is hit; can
				 * @param block Controls whether the monitor should block the activity
				 */
				constructor(which: android.content.IntentFilter, result: android.app.Instrumentation.ActivityResult, block: boolean);
				/**
				 * Create a new ActivityMonitor that looks for a specific activity class to be started. 
				 * @param cls The activity class this monitor is responsible for.
				 * @param result A canned result to return if the monitor is hit; can
				 * @param block Controls whether the monitor should block the activity
				 */
				constructor(cls: string, result: android.app.Instrumentation.ActivityResult, block: boolean);
				static class: java.lang.Class<android.app.Instrumentation.ActivityMonitor>;
				/**
				 * Retrieve the filter associated with this ActivityMonitor.
				 */
				public getFilter(): android.content.IntentFilter;
				/**
				 * Retrieve the result associated with this ActivityMonitor, or null if none.
				 */
				public getResult(): android.app.Instrumentation.ActivityResult;
				/**
				 * Check whether this monitor blocks activity starts (not allowing the actual activity to run) or allows them to execute normally.
				 */
				public isBlocking(): boolean;
				/**
				 * Retrieve the number of times the monitor has been hit so far.
				 */
				public getHits(): number;
				/**
				 * Retrieve the most recent activity class that was seen by this monitor.
				 */
				public getLastActivity(): android.app.Activity;
				/**
				 * Block until an Activity is created that matches this monitor, returning the resulting activity. 
				 */
				public waitForActivity(): android.app.Activity;
				/**
				 * Block until an Activity is created that matches this monitor, returning the resulting activity or till the timeOut period expires. If the timeOut expires before the activity is started, return null. 
				 * @param timeOut Time to wait before the activity is created.
				 */
				public waitForActivityWithTimeout(timeOut: number): android.app.Activity;
				match(who: android.content.Context, activity: android.app.Activity, intent: android.content.Intent): boolean;
			}
			export class InstrumentationThread extends java.lang.Thread {
				static class: java.lang.Class<android.app.Instrumentation.InstrumentationThread>;
				public run(): void;
			}
			export class ActivityGoing extends java.lang.Object implements android.os.MessageQueue.IIdleHandler {
				static class: java.lang.Class<android.app.Instrumentation.ActivityGoing>;
				public queueIdle(): boolean;
			}
			export class EmptyRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.app.Instrumentation.EmptyRunnable>;
				public run(): void;
			}
			export class SyncRunnable extends java.lang.Object implements java.lang.IRunnable {
				constructor(target: java.lang.IRunnable);
				static class: java.lang.Class<android.app.Instrumentation.SyncRunnable>;
				public run(): void;
				public waitForComplete(): void;
			}
			export class ActivityWaiter extends java.lang.Object {
				constructor(_intent: android.content.Intent);
				intent: android.content.Intent;
				activity: android.app.Activity;
				static class: java.lang.Class<android.app.Instrumentation.ActivityWaiter>;
			}
			/**
			 * Description of a Activity execution result to return to the original activity.
			 */
			export class ActivityResult extends java.lang.Object {
				/**
				 * Create a new activity result. See Activity#setResult for more information. 
				 * @param resultCode The result code to propagate back to the
				 * @param resultData The data to propagate back to the originating
				 */
				constructor(resultCode: number, resultData: android.content.Intent);
				static class: java.lang.Class<android.app.Instrumentation.ActivityResult>;
				/**
				 * Retrieve the result code contained in this result.
				 */
				public getResultCode(): number;
				/**
				 * Retrieve the data contained in this result.
				 */
				public getResultData(): android.content.Intent;
			}
			export class Idler extends java.lang.Object implements android.os.MessageQueue.IIdleHandler {
				constructor(callback: java.lang.IRunnable);
				static class: java.lang.Class<android.app.Instrumentation.Idler>;
				public queueIdle(): boolean;
				public waitForIdle(): void;
			}
		}
		/**
		 * Interact with the overall activities running in the system.
		 */
		export class ActivityManager extends java.lang.Object {
			/**
			 * Flag for use with #getRecentTasks: return all tasks, even those that have set their android.content.Intent#FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS flag.
			 */
			static RECENT_WITH_EXCLUDED: number;
			/**
			 * Provides a list that does not contain any recent tasks that currently are not available to the user.
			 */
			static RECENT_IGNORE_UNAVAILABLE: number;
			/**
			 * Flag for #moveTaskToFront(int, int): also move the "home" activity along with the task, so it is positioned immediately behind the task.
			 */
			static MOVE_TASK_WITH_HOME: number;
			/**
			 * Flag for #moveTaskToFront(int, int): don't count this as a user-instigated action, so the current activity will not receive a hint that the user is leaving.
			 */
			static MOVE_TASK_NO_USER_ACTION: number;
			static class: java.lang.Class<android.app.ActivityManager>;
			/**
			 * Return the approximate per-application memory class of the current device. This gives you an idea of how hard a memory limit you should impose on your application to let the overall system work best. The returned value is in megabytes; the baseline Android memory class is 16 (which happens to be the Java heap limit of those devices); some device with more memory may return 24 or even higher numbers.
			 */
			public getMemoryClass(): number;
			/**
			 * Return the approximate per-application memory class of the current device when an application is running with a large heap. This is the space available for memory-intensive applications; most applications should not need this amount of memory, and should instead stay with the #getMemoryClass() limit. The returned value is in megabytes. This may be the same size as #getMemoryClass() on memory constrained devices, or it may be significantly larger on devices with a large amount of available RAM.
			 */
			public getLargeMemoryClass(): number;
			/**
			 * Return a list of the tasks that the user has recently launched, with the most recent being first and older ones after in order.
			 * @param maxNum The maximum number of entries to return in the list. The
			 * @param flags Information about what to return. May be any combination
			 */
			public getRecentTasks(maxNum: number, flags: number): java.util.IList<android.app.ActivityManager.RecentTaskInfo>;
			/**
			 * Return a list of the tasks that are currently running, with the most recent being first and older ones after in order. Note that "running" does not mean any of the task's code is currently loaded or activity -- the task may have been frozen by the system, so that it can be restarted in its previous state when next brought to the foreground.
			 * @param maxNum The maximum number of entries to return in the list. The
			 */
			public getRunningTasks(maxNum: number): java.util.IList<android.app.ActivityManager.RunningTaskInfo>;
			/**
			 * Equivalent to calling #moveTaskToFront(int, int, Bundle) with a null options argument.
			 * @param taskId The identifier of the task to be moved, as found in
			 * @param flags Additional operational flags, 0 or more of
			 */
			public moveTaskToFront(taskId: number, flags: number): void;
			/**
			 * Ask that the task associated with a given task ID be moved to the front of the stack, so it is now visible to the user. Requires that the caller hold permission android.Manifest.permission#REORDER_TASKS or a SecurityException will be thrown.
			 * @param taskId The identifier of the task to be moved, as found in
			 * @param flags Additional operational flags, 0 or more of
			 * @param options Additional options for the operation, either null or
			 */
			public moveTaskToFront(taskId: number, flags: number, options: android.os.Bundle): void;
			/**
			 * Return a list of the services that are currently running.
			 * @param maxNum The maximum number of entries to return in the list. The
			 */
			public getRunningServices(maxNum: number): java.util.IList<android.app.ActivityManager.RunningServiceInfo>;
			/**
			 * Returns a PendingIntent you can start to show a control panel for the given running service. If the service does not have a control panel, null is returned.
			 */
			public getRunningServiceControlPanel(service: android.content.ComponentName): android.app.PendingIntent;
			/**
			 * Return general information about the memory state of the system. This can be used to help decide how to manage your own memory, though note that polling is not recommended and android.content.ComponentCallbacks2#onTrimMemory(int) ComponentCallbacks2.onTrimMemory(int) is the preferred way to do this. Also see #getMyMemoryState for how to retrieve the current trim level of your process as needed, which gives a better hint for how to manage its memory.
			 */
			public getMemoryInfo(outInfo: android.app.ActivityManager.MemoryInfo): void;
			/**
			 * Returns a list of any processes that are currently in an error condition. The result will be null if all processes are running properly at this time. 
			 */
			public getProcessesInErrorState(): java.util.IList<android.app.ActivityManager.ProcessErrorStateInfo>;
			/**
			 * Returns a list of application processes that are running on the device.
			 */
			public getRunningAppProcesses(): java.util.IList<android.app.ActivityManager.RunningAppProcessInfo>;
			/**
			 * Return global memory state information for the calling process. This does not fill in all fields of the RunningAppProcessInfo. The only fields that will be filled in are RunningAppProcessInfo#pid, RunningAppProcessInfo#uid, RunningAppProcessInfo#lastTrimLevel, RunningAppProcessInfo#importance, RunningAppProcessInfo#lru, and RunningAppProcessInfo#importanceReasonCode.
			 */
			public static getMyMemoryState(outState: android.app.ActivityManager.RunningAppProcessInfo): void;
			/**
			 * Return information about the memory usage of one or more processes.
			 * @param pids The pids of the processes whose memory usage is to be
			 */
			public getProcessMemoryInfo(pids: native.Array<number>): native.Array<android.os.Debug.MemoryInfo>;
			/**
			 *  This is now just a wrapper for #killBackgroundProcesses(String); the previous behavior here is no longer available to applications because it allows them to break other applications by removing their alarms, stopping their services, etc.
			 */
			public restartPackage(packageName: string): void;
			/**
			 * Have the system immediately kill all background processes associated with the given package. This is the same as the kernel killing those processes to reclaim memory; the system will take care of restarting these processes in the future as needed. 
			 * @param packageName The name of the package whose processes are to
			 */
			public killBackgroundProcesses(packageName: string): void;
			/**
			 * Get the device configuration attributes.
			 */
			public getDeviceConfigurationInfo(): android.content.pm.ConfigurationInfo;
			/**
			 * Get the preferred density of icons for the launcher. This is used when custom drawables are created (e.g., for shortcuts).
			 */
			public getLauncherLargeIconDensity(): number;
			/**
			 * Get the preferred launcher icon size. This is used when custom drawables are created (e.g., for shortcuts).
			 */
			public getLauncherLargeIconSize(): number;
			/**
			 * Returns "true" if the user interface is currently being messed with by a monkey.
			 */
			public static isUserAMonkey(): boolean;
			/**
			 * Returns "true" if device is running in a test harness.
			 */
			public static isRunningInTestHarness(): boolean;
		}
		export module ActivityManager {
			/**
			 * Information you can retrieve about the available memory through ActivityManager#getMemoryInfo.
			 */
			export class MemoryInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * The available memory on the system. This number should not be considered absolute: due to the nature of the kernel, a significant portion of this memory is actually in use and needed for the overall system to run well.
				 */
				availMem: number;
				/**
				 * The total memory accessible by the kernel. This is basically the RAM size of the device, not including below-kernel fixed allocations like DMA buffers, RAM for the baseband CPU, etc.
				 */
				totalMem: number;
				/**
				 * The threshold of #availMem at which we consider memory to be low and start killing background services and other non-extraneous processes.
				 */
				threshold: number;
				/**
				 * Set to true if the system considers itself to currently be in a low memory situation.
				 */
				lowMemory: boolean;
				static CREATOR: android.os.Parcelable.ICreator<android.app.ActivityManager.MemoryInfo>;
				static class: java.lang.Class<android.app.ActivityManager.MemoryInfo>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
			}
			/**
			 * Information you can retrieve about any processes that are in an error condition.
			 */
			export class ProcessErrorStateInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * Condition codes
				 */
				static NO_ERROR: number;
				static CRASHED: number;
				static NOT_RESPONDING: number;
				/**
				 * The condition that the process is in.
				 */
				condition: number;
				/**
				 * The process name in which the crash or error occurred.
				 */
				processName: string;
				/**
				 * The pid of this process; 0 if none
				 */
				pid: number;
				/**
				 * The kernel user-ID that has been assigned to this process; currently this is not a unique ID (multiple applications can have the same uid).
				 */
				uid: number;
				/**
				 * The activity name associated with the error, if known. May be null.
				 */
				tag: string;
				/**
				 * A short message describing the error condition.
				 */
				shortMsg: string;
				/**
				 * A long message describing the error condition.
				 */
				longMsg: string;
				/**
				 * The stack trace where the error originated. May be null.
				 */
				stackTrace: string;
				/**
				 * to be deprecated: This value will always be null.
				 */
				crashData: native.Array<number>;
				static CREATOR: android.os.Parcelable.ICreator<android.app.ActivityManager.ProcessErrorStateInfo>;
				static class: java.lang.Class<android.app.ActivityManager.ProcessErrorStateInfo>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
			}
			/**
			 * Information you can retrieve about tasks that the user has most recently started or visited.
			 */
			export class RecentTaskInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * If this task is currently running, this is the identifier for it. If it is not running, this will be -1.
				 */
				id: number;
				/**
				 * The true identifier of this task, valid even if it is not running.
				 */
				persistentId: number;
				/**
				 * The original Intent used to launch the task. You can use this Intent to re-launch the task (if it is no longer running) or bring the current task to the front.
				 */
				baseIntent: android.content.Intent;
				/**
				 * If this task was started from an alias, this is the actual activity component that was initially started; the component of the baseIntent in this case is the name of the actual activity implementation that the alias referred to. Otherwise, this is null.
				 */
				origActivity: android.content.ComponentName;
				/**
				 * Description of the task's last state.
				 */
				description: string;
				static CREATOR: android.os.Parcelable.ICreator<android.app.ActivityManager.RecentTaskInfo>;
				static class: java.lang.Class<android.app.ActivityManager.RecentTaskInfo>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
			}
			/**
			 * Information you can retrieve about a running process.
			 */
			export class RunningAppProcessInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				constructor(pProcessName: string, pPid: number, pArr: native.Array<string>);
				/**
				 * The name of the process that this object is associated with
				 */
				processName: string;
				/**
				 * The pid of this process; 0 if none
				 */
				pid: number;
				/**
				 * The user id of this process.
				 */
				uid: number;
				/**
				 * All packages that have been loaded into the process.
				 */
				pkgList: native.Array<string>;
				/**
				 * Last memory trim level reported to the process: corresponds to the values supplied to android.content.ComponentCallbacks2#onTrimMemory(int) ComponentCallbacks2.onTrimMemory(int).
				 */
				lastTrimLevel: number;
				/**
				 * Constant for #importance: this process is running the foreground UI.
				 */
				static IMPORTANCE_FOREGROUND: number;
				/**
				 * Constant for #importance: this process is running something that is actively visible to the user, though not in the immediate foreground.
				 */
				static IMPORTANCE_VISIBLE: number;
				/**
				 * Constant for #importance: this process is running something that is considered to be actively perceptible to the user. An example would be an application performing background music playback.
				 */
				static IMPORTANCE_PERCEPTIBLE: number;
				/**
				 * Constant for #importance: this process is contains services that should remain running.
				 */
				static IMPORTANCE_SERVICE: number;
				/**
				 * Constant for #importance: this process process contains background code that is expendable.
				 */
				static IMPORTANCE_BACKGROUND: number;
				/**
				 * Constant for #importance: this process is empty of any actively running code.
				 */
				static IMPORTANCE_EMPTY: number;
				/**
				 * The relative importance level that the system places on this process. May be one of #IMPORTANCE_FOREGROUND, #IMPORTANCE_VISIBLE, #IMPORTANCE_SERVICE, #IMPORTANCE_BACKGROUND, or #IMPORTANCE_EMPTY. These constants are numbered so that "more important" values are always smaller than "less important" values.
				 */
				importance: number;
				/**
				 * An additional ordering within a particular #importance category, providing finer-grained information about the relative utility of processes within a category. This number means nothing except that a smaller values are more recently used (and thus more important). Currently an LRU value is only maintained for the #IMPORTANCE_BACKGROUND category, though others may be maintained in the future.
				 */
				lru: number;
				/**
				 * Constant for #importanceReasonCode: nothing special has been specified for the reason for this level.
				 */
				static REASON_UNKNOWN: number;
				/**
				 * Constant for #importanceReasonCode: one of the application's content providers is being used by another process. The pid of the client process is in #importanceReasonPid and the target provider in this process is in #importanceReasonComponent.
				 */
				static REASON_PROVIDER_IN_USE: number;
				/**
				 * Constant for #importanceReasonCode: one of the application's content providers is being used by another process. The pid of the client process is in #importanceReasonPid and the target provider in this process is in #importanceReasonComponent.
				 */
				static REASON_SERVICE_IN_USE: number;
				/**
				 * The reason for #importance, if any.
				 */
				importanceReasonCode: number;
				/**
				 * For the specified values of #importanceReasonCode, this is the process ID of the other process that is a client of this process. This will be 0 if no other process is using this one.
				 */
				importanceReasonPid: number;
				/**
				 * For the specified values of #importanceReasonCode, this is the name of the component that is being used in this process.
				 */
				importanceReasonComponent: android.content.ComponentName;
				static CREATOR: android.os.Parcelable.ICreator<android.app.ActivityManager.RunningAppProcessInfo>;
				static class: java.lang.Class<android.app.ActivityManager.RunningAppProcessInfo>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
			}
			/**
			 * Information you can retrieve about a particular Service that is currently running in the system.
			 */
			export class RunningServiceInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * The service component.
				 */
				service: android.content.ComponentName;
				/**
				 * If non-zero, this is the process the service is running in.
				 */
				pid: number;
				/**
				 * The UID that owns this service.
				 */
				uid: number;
				/**
				 * The name of the process this service runs in.
				 */
				process: string;
				/**
				 * Set to true if the service has asked to run as a foreground process.
				 */
				foreground: boolean;
				/**
				 * The time when the service was first made active, either by someone starting or binding to it. This is in units of android.os.SystemClock#elapsedRealtime().
				 */
				activeSince: number;
				/**
				 * Set to true if this service has been explicitly started.
				 */
				started: boolean;
				/**
				 * Number of clients connected to the service.
				 */
				clientCount: number;
				/**
				 * Number of times the service's process has crashed while the service is running.
				 */
				crashCount: number;
				/**
				 * The time when there was last activity in the service (either explicit requests to start it or clients binding to it). This is in units of android.os.SystemClock#uptimeMillis().
				 */
				lastActivityTime: number;
				/**
				 * If non-zero, this service is not currently running, but scheduled to restart at the given time.
				 */
				restarting: number;
				/**
				 * Bit for #flags: set if this service has been explicitly started.
				 */
				static FLAG_STARTED: number;
				/**
				 * Bit for #flags: set if the service has asked to run as a foreground process.
				 */
				static FLAG_FOREGROUND: number;
				/**
				 * Bit for { #flags): set if the service is running in a core system process.
				 */
				static FLAG_SYSTEM_PROCESS: number;
				/**
				 * Bit for { #flags): set if the service is running in a persistent process.
				 */
				static FLAG_PERSISTENT_PROCESS: number;
				/**
				 * Running flags.
				 */
				flags: number;
				/**
				 * For special services that are bound to by system code, this is the package that holds the binding.
				 */
				clientPackage: string;
				/**
				 * For special services that are bound to by system code, this is a string resource providing a user-visible label for who the client is.
				 */
				clientLabel: number;
				static CREATOR: android.os.Parcelable.ICreator<android.app.ActivityManager.RunningServiceInfo>;
				static class: java.lang.Class<android.app.ActivityManager.RunningServiceInfo>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
			}
			/**
			 * Information you can retrieve about a particular task that is currently "running" in the system. Note that a running task does not mean the given task actually has a process it is actively running in; it simply means that the user has gone to it and never closed it, but currently the system may have killed its process and is only holding on to its last state in order to restart it when the user returns.
			 */
			export class RunningTaskInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * A unique identifier for this task.
				 */
				id: number;
				/**
				 * The component launched as the first activity in the task. This can be considered the "application" of this task.
				 */
				baseActivity: android.content.ComponentName;
				/**
				 * The activity component at the top of the history stack of the task. This is what the user is currently doing.
				 */
				topActivity: android.content.ComponentName;
				/**
				 * Thumbnail representation of the task's current state. Currently always null.
				 */
				thumbnail: android.graphics.Bitmap;
				/**
				 * Description of the task's current state.
				 */
				description: string;
				/**
				 * Number of activities in this task.
				 */
				numActivities: number;
				/**
				 * Number of activities that are currently running (not stopped and persisted) in this task.
				 */
				numRunning: number;
				static CREATOR: android.os.Parcelable.ICreator<android.app.ActivityManager.RunningTaskInfo>;
				static class: java.lang.Class<android.app.ActivityManager.RunningTaskInfo>;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
			}
		}
		/**
		 * A class that represents how a persistent notification is to be presented to the user using the android.app.NotificationManager.
		 */
		export class Notification extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Constructs a Notification object with default values. You might want to consider using Builder instead.
			 */
			constructor();
			/**
			 * Constructs a Notification object with the information needed to have a status bar icon without the standard expanded view.
			 * @param icon The resource id of the icon to put in the status bar.
			 * @param tickerText The text that flows by in the status bar when the notification first
			 * @param when The time to show in the time field. In the System.currentTimeMillis
			 */
			constructor(icon: number, tickerText: string, when: number);
			/**
			 * Unflatten the notification from a parcel.
			 */
			constructor(parcel: android.os.Parcel);
			/**
			 * Use all default values (where applicable).
			 */
			static DEFAULT_ALL: number;
			/**
			 * Use the default notification sound. This will ignore any given #sound.
			 */
			static DEFAULT_SOUND: number;
			/**
			 * Use the default notification vibrate. This will ignore any given #vibrate. Using phone vibration requires the android.Manifest.permission#VIBRATE VIBRATE permission.
			 */
			static DEFAULT_VIBRATE: number;
			/**
			 * Use the default notification lights. This will ignore the #FLAG_SHOW_LIGHTS bit, and #ledARGB, #ledOffMS, or #ledOnMS.
			 */
			static DEFAULT_LIGHTS: number;
			/**
			 * A timestamp related to this notification, in milliseconds since the epoch. Default value: System#currentTimeMillis() Now.
			 */
			when: number;
			/**
			 * The resource id of a drawable to use as the icon in the status bar. This is required; notifications with an invalid icon resource will not be shown.
			 */
			icon: number;
			/**
			 * If the icon in the status bar is to have more than one level, you can set this. Otherwise, leave it at its default value of 0.
			 */
			iconLevel: number;
			/**
			 * The number of events that this notification represents. For example, in a new mail notification, this could be the number of unread messages. The system may or may not use this field to modify the appearance of the notification. For example, before android.os.Build.VERSION_CODES#HONEYCOMB, this number was superimposed over the icon in the status bar. Starting with android.os.Build.VERSION_CODES#HONEYCOMB, the template used by Notification.Builder has displayed the number in the expanded notification view. If the number is 0 or negative, it is never shown.
			 */
			number: number;
			/**
			 * The intent to execute when the expanded status entry is clicked. If this is an activity, it must include the android.content.Intent#FLAG_ACTIVITY_NEW_TASK flag, which requires that you take care of task management as described in the <a href="guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back Stack</a> document. In particular, make sure to read the notification section <a href="guide/topics/ui/notifiers/notifications.html#HandlingNotifications">Handling Notifications</a> for the correct ways to launch an application from a notification.
			 */
			contentIntent: android.app.PendingIntent;
			/**
			 * The intent to execute when the notification is explicitly dismissed by the user, either with the "Clear All" button or by swiping it away individually.
			 */
			deleteIntent: android.app.PendingIntent;
			/**
			 * An intent to launch instead of posting the notification to the status bar.
			 */
			fullScreenIntent: android.app.PendingIntent;
			/**
			 * Text to scroll across the screen when this item is added to the status bar on large and smaller devices.
			 */
			tickerText: string;
			/**
			 * The view to show as the ticker in the status bar when the notification is posted.
			 */
			tickerView: android.widget.RemoteViews;
			/**
			 * The view that will represent this notification in the expanded status bar.
			 */
			contentView: android.widget.RemoteViews;
			/**
			 * A large-format version of #contentView, giving the Notification an opportunity to show more detail. The system UI may choose to show this instead of the normal content view at its discretion.
			 */
			bigContentView: android.widget.RemoteViews;
			/**
			 * The bitmap that may escape the bounds of the panel and bar.
			 */
			largeIcon: android.graphics.Bitmap;
			/**
			 * The sound to play.
			 */
			sound: android.net.Uri;
			/**
			 * Use this constant as the value for audioStreamType to request that the default stream type for notifications be used. Currently the default stream type is AudioManager#STREAM_NOTIFICATION.
			 */
			static STREAM_DEFAULT: number;
			/**
			 * The audio stream type to use when playing the sound. Should be one of the STREAM_ constants from android.media.AudioManager.
			 */
			audioStreamType: number;
			/**
			 * The pattern with which to vibrate.
			 */
			vibrate: native.Array<number>;
			/**
			 * The color of the led. The hardware will do its best approximation.
			 */
			ledARGB: number;
			/**
			 * The number of milliseconds for the LED to be on while it's flashing. The hardware will do its best approximation.
			 */
			ledOnMS: number;
			/**
			 * The number of milliseconds for the LED to be off while it's flashing. The hardware will do its best approximation.
			 */
			ledOffMS: number;
			/**
			 * Specifies which values should be taken from the defaults.
			 */
			defaults: number;
			/**
			 * Bit to be bitwise-ored into the #flags field that should be set if you want the LED on for this notification. <ul> <li>To turn the LED off, pass 0 in the alpha channel for colorARGB or 0 for both ledOnMS and ledOffMS.</li> <li>To turn the LED on, pass 1 for ledOnMS and 0 for ledOffMS.</li> <li>To flash the LED, pass the number of milliseconds that it should be on and off to ledOnMS and ledOffMS.</li> </ul>
			 */
			static FLAG_SHOW_LIGHTS: number;
			/**
			 * Bit to be bitwise-ored into the #flags field that should be set if this notification is in reference to something that is ongoing, like a phone call. It should not be set if this notification is in reference to something that happened at a particular point in time, like a missed phone call.
			 */
			static FLAG_ONGOING_EVENT: number;
			/**
			 * Bit to be bitwise-ored into the #flags field that if set, the audio will be repeated until the notification is cancelled or the notification window is opened.
			 */
			static FLAG_INSISTENT: number;
			/**
			 * Bit to be bitwise-ored into the #flags field that should be set if you want the sound and/or vibration play each time the notification is sent, even if it has not been canceled before that.
			 */
			static FLAG_ONLY_ALERT_ONCE: number;
			/**
			 * Bit to be bitwise-ored into the #flags field that should be set if the notification should be canceled when it is clicked by the user. On tablets, the
			 */
			static FLAG_AUTO_CANCEL: number;
			/**
			 * Bit to be bitwise-ored into the #flags field that should be set if the notification should not be canceled when the user clicks the Clear all button.
			 */
			static FLAG_NO_CLEAR: number;
			/**
			 * Bit to be bitwise-ored into the #flags field that should be set if this notification represents a currently running service. This will normally be set for you by Service#startForeground.
			 */
			static FLAG_FOREGROUND_SERVICE: number;
			/**
			 * Obsolete flag indicating high-priority notifications; use the priority field instead. Use #priority with a positive value.
			 */
			static FLAG_HIGH_PRIORITY: number;
			flags: number;
			/**
			 * Default notification #priority. If your application does not prioritize its own notifications, use this value for all notifications.
			 */
			static PRIORITY_DEFAULT: number;
			/**
			 * Lower #priority, for items that are less important. The UI may choose to show these items smaller, or at a different position in the list, compared with your app's #PRIORITY_DEFAULT items.
			 */
			static PRIORITY_LOW: number;
			/**
			 * Lowest #priority; these items might not be shown to the user except under special circumstances, such as detailed notification logs.
			 */
			static PRIORITY_MIN: number;
			/**
			 * Higher #priority, for more important notifications or alerts. The UI may choose to show these items larger, or at a different position in notification lists, compared with your app's #PRIORITY_DEFAULT items.
			 */
			static PRIORITY_HIGH: number;
			/**
			 * Highest #priority, for your application's most important items that require the user's prompt attention or input.
			 */
			static PRIORITY_MAX: number;
			/**
			 * Relative priority for this notification. Priority is an indication of how much of the user's valuable attention should be consumed by this notification. Low-priority notifications may be hidden from the user in certain situations, while the user might be interrupted for a higher-priority notification. The system will make a determination about how to interpret notification priority as described in MUMBLE MUMBLE.
			 */
			priority: number;
			/**
			 * Parcelable.Creator that instantiates Notification objects
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.app.Notification>;
			static class: java.lang.Class<android.app.Notification>;
			public clone(): android.app.Notification;
			public describeContents(): number;
			/**
			 * Flatten this notification from a parcel.
			 */
			public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			/**
			 * Sets the #contentView field to be a view with the standard "Latest Event" layout.
			 * @param context The context for your application / activity.
			 * @param contentTitle The title that goes in the expanded entry.
			 * @param contentText The text that goes in the expanded entry.
			 * @param contentIntent The intent to launch when the user clicks the expanded notification.
			 */
			public setLatestEventInfo(context: android.content.Context, contentTitle: string, contentText: string, contentIntent: android.app.PendingIntent): void;
			public toString(): string;
		}
		export module Notification {
			/**
			 * Helper class for generating large-format notifications that include a lot of text. This class is a "rebuilder": It consumes a Builder object and modifies its behavior, like so: <pre class="prettyprint"> Notification noti = new Notification.BigTextStyle( new Notification.Builder() .setContentTitle(&quot;New mail from &quot; + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_mail) .setLargeIcon(aBitmap)) .bigText(aVeryLongString) .build(); </pre> Notification#bigContentView
			 */
			export class BigTextStyle extends android.app.Notification.Style {
				constructor();
				constructor(builder: android.app.Notification.Builder);
				static class: java.lang.Class<android.app.Notification.BigTextStyle>;
				/**
				 * Overrides ContentTitle in the big form of the template. This defaults to the value passed to setContentTitle().
				 */
				public setBigContentTitle(title: string): android.app.Notification.BigTextStyle;
				/**
				 * Set the first line of text after the detail section in the big form of the template.
				 */
				public setSummaryText(cs: string): android.app.Notification.BigTextStyle;
				/**
				 * Provide the longer text to be displayed in the big form of the template in place of the content text.
				 */
				public bigText(cs: string): android.app.Notification.BigTextStyle;
				public build(): android.app.Notification;
			}
			/**
			 * Helper class for generating large-format notifications that include a list of (up to 5) strings. This class is a "rebuilder": It consumes a Builder object and modifies its behavior, like so: <pre class="prettyprint"> Notification noti = new Notification.InboxStyle( new Notification.Builder() .setContentTitle(&quot;5 New mails from &quot; + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_mail) .setLargeIcon(aBitmap)) .addLine(str1) .addLine(str2) .setContentTitle("") .setSummaryText(&quot;+3 more&quot;) .build(); </pre> Notification#bigContentView
			 */
			export class InboxStyle extends android.app.Notification.Style {
				constructor();
				constructor(builder: android.app.Notification.Builder);
				static class: java.lang.Class<android.app.Notification.InboxStyle>;
				/**
				 * Overrides ContentTitle in the big form of the template. This defaults to the value passed to setContentTitle().
				 */
				public setBigContentTitle(title: string): android.app.Notification.InboxStyle;
				/**
				 * Set the first line of text after the detail section in the big form of the template.
				 */
				public setSummaryText(cs: string): android.app.Notification.InboxStyle;
				/**
				 * Append a line to the digest section of the Inbox notification.
				 */
				public addLine(cs: string): android.app.Notification.InboxStyle;
				public build(): android.app.Notification;
			}
			/**
			 * Builder class for Notification objects. Provides a convenient way to set the various fields of a Notification and generate content views using the platform's notification layout template. If your app supports versions of Android as old as API level 4, you can instead use android.support.v4.app.NotificationCompat.Builder NotificationCompat.Builder, available in the <a href="tools/extras/support-library.html">Android Support library</a>. 
			 */
			export class Builder extends java.lang.Object {
				/**
				 * Constructs a new Builder with the defaults:
				 * @param context 
				 */
				constructor(context: android.content.Context);
				static class: java.lang.Class<android.app.Notification.Builder>;
				/**
				 * Add a timestamp pertaining to the notification (usually the time the event occurred). It will be shown in the notification content view by default; use Builder#setShowWhen(boolean) setShowWhen to control this.
				 */
				public setWhen(when: number): android.app.Notification.Builder;
				/**
				 * Control whether the timestamp set with Builder#setWhen(long) setWhen is shown in the content view.
				 */
				public setShowWhen(show: boolean): android.app.Notification.Builder;
				/**
				 * Show the Notification#when field as a stopwatch. Instead of presenting <code>when</code> as a timestamp, the notification will show an automatically updating display of the minutes and seconds since <code>when</code>.
				 */
				public setUsesChronometer(b: boolean): android.app.Notification.Builder;
				/**
				 * Set the small icon resource, which will be used to represent the notification in the status bar.
				 * @param icon 
				 */
				public setSmallIcon(icon: number): android.app.Notification.Builder;
				/**
				 * A variant of #setSmallIcon(int) setSmallIcon(int) that takes an additional level parameter for when the icon is a android.graphics.drawable.LevelListDrawable LevelListDrawable.
				 * @param icon A resource ID in the application's package of the drawable to use.
				 * @param level The level to use for the icon.
				 */
				public setSmallIcon(icon: number, level: number): android.app.Notification.Builder;
				/**
				 * Set the first line of text in the platform notification template.
				 */
				public setContentTitle(title: string): android.app.Notification.Builder;
				/**
				 * Set the second line of text in the platform notification template.
				 */
				public setContentText(text: string): android.app.Notification.Builder;
				/**
				 * Set the third line of text in the platform notification template. Don't use if you're also using #setProgress(int, int, boolean); they occupy the same location in the standard template.
				 */
				public setSubText(text: string): android.app.Notification.Builder;
				/**
				 * Set the large number at the right-hand side of the notification. This is equivalent to setContentInfo, although it might show the number in a different font size for readability.
				 */
				public setNumber(number: number): android.app.Notification.Builder;
				/**
				 * A small piece of additional information pertaining to this notification.
				 */
				public setContentInfo(info: string): android.app.Notification.Builder;
				/**
				 * Set the progress this notification represents.
				 */
				public setProgress(max: number, progress: number, indeterminate: boolean): android.app.Notification.Builder;
				/**
				 * Supply a custom RemoteViews to use instead of the platform template.
				 */
				public setContent(views: android.widget.RemoteViews): android.app.Notification.Builder;
				/**
				 * Supply a PendingIntent to be sent when the notification is clicked.
				 */
				public setContentIntent(intent: android.app.PendingIntent): android.app.Notification.Builder;
				/**
				 * Supply a PendingIntent to send when the notification is cleared explicitly by the user.
				 */
				public setDeleteIntent(intent: android.app.PendingIntent): android.app.Notification.Builder;
				/**
				 * An intent to launch instead of posting the notification to the status bar. Only for use with extremely high-priority notifications demanding the user's <strong>immediate</strong> attention, such as an incoming phone call or alarm clock that the user has explicitly set to a particular time. If this facility is used for something else, please give the user an option to turn it off and use a normal notification, as this can be extremely disruptive.
				 * @param intent The pending intent to launch.
				 * @param highPriority Passing true will cause this notification to be sent
				 */
				public setFullScreenIntent(intent: android.app.PendingIntent, highPriority: boolean): android.app.Notification.Builder;
				/**
				 * Set the "ticker" text which is displayed in the status bar when the notification first arrives.
				 */
				public setTicker(tickerText: string): android.app.Notification.Builder;
				/**
				 * Set the text that is displayed in the status bar when the notification first arrives, and also a RemoteViews object that may be displayed instead on some devices.
				 */
				public setTicker(tickerText: string, views: android.widget.RemoteViews): android.app.Notification.Builder;
				/**
				 * Add a large icon to the notification (and the ticker on some devices).
				 */
				public setLargeIcon(icon: android.graphics.Bitmap): android.app.Notification.Builder;
				/**
				 * Set the sound to play.
				 */
				public setSound(sound: android.net.Uri): android.app.Notification.Builder;
				/**
				 * Set the sound to play, along with a specific stream on which to play it.
				 */
				public setSound(sound: android.net.Uri, streamType: number): android.app.Notification.Builder;
				/**
				 * Set the vibration pattern to use.
				 */
				public setVibrate(pattern: native.Array<number>): android.app.Notification.Builder;
				/**
				 * Set the desired color for the indicator LED on the device, as well as the blink duty cycle (specified in milliseconds).
				 */
				public setLights(argb: number, onMs: number, offMs: number): android.app.Notification.Builder;
				/**
				 * Set whether this is an "ongoing" notification.
				 */
				public setOngoing(ongoing: boolean): android.app.Notification.Builder;
				/**
				 * Set this flag if you would only like the sound, vibrate and ticker to be played if the notification is not already showing.
				 */
				public setOnlyAlertOnce(onlyAlertOnce: boolean): android.app.Notification.Builder;
				/**
				 * Make this notification automatically dismissed when the user touches it. The PendingIntent set with #setDeleteIntent will be sent when this happens.
				 */
				public setAutoCancel(autoCancel: boolean): android.app.Notification.Builder;
				/**
				 * Set which notification properties will be inherited from system defaults.
				 */
				public setDefaults(defaults: number): android.app.Notification.Builder;
				/**
				 * Set the priority of this notification.
				 */
				public setPriority(pri: number): android.app.Notification.Builder;
				/**
				 * Add an action to this notification. Actions are typically displayed by the system as a button adjacent to the notification content.
				 * @param icon Resource ID of a drawable that represents the action.
				 * @param title Text describing the action.
				 * @param intent PendingIntent to be fired when the action is invoked.
				 */
				public addAction(icon: number, title: string, intent: android.app.PendingIntent): android.app.Notification.Builder;
				/**
				 * Add a rich notification style to be applied at build time.
				 * @param style Object responsible for modifying the notification style.
				 */
				public setStyle(style: android.app.Notification.Style): android.app.Notification.Builder;
				/**
				 *  Use #build() instead.
				 */
				public getNotification(): android.app.Notification;
				/**
				 * Combine all of the options that have been set and return a new Notification object.
				 */
				public build(): android.app.Notification;
			}
			/**
			 * An object that can apply a rich notification style to a Notification.Builder object.
			 */
			export class Style extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.app.Notification.Style>;
				/**
				 * Overrides ContentTitle in the big form of the template. This defaults to the value passed to setContentTitle().
				 */
				protected internalSetBigContentTitle(title: string): void;
				/**
				 * Set the first line of text after the detail section in the big form of the template.
				 */
				protected internalSetSummaryText(cs: string): void;
				public setBuilder(builder: android.app.Notification.Builder): void;
				protected checkBuilder(): void;
				protected getStandardView(layoutId: number): android.widget.RemoteViews;
				public build(): android.app.Notification;
			}
			/**
			 * Helper class for generating large-format notifications that include a large image attachment. This class is a "rebuilder": It consumes a Builder object and modifies its behavior, like so: <pre class="prettyprint"> Notification noti = new Notification.BigPictureStyle( new Notification.Builder() .setContentTitle(&quot;New photo from &quot; + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_post) .setLargeIcon(aBitmap)) .bigPicture(aBigBitmap) .build(); </pre> Notification#bigContentView
			 */
			export class BigPictureStyle extends android.app.Notification.Style {
				constructor();
				constructor(builder: android.app.Notification.Builder);
				static class: java.lang.Class<android.app.Notification.BigPictureStyle>;
				/**
				 * Overrides ContentTitle in the big form of the template. This defaults to the value passed to setContentTitle().
				 */
				public setBigContentTitle(title: string): android.app.Notification.BigPictureStyle;
				/**
				 * Set the first line of text after the detail section in the big form of the template.
				 */
				public setSummaryText(cs: string): android.app.Notification.BigPictureStyle;
				/**
				 * Provide the bitmap to be used as the payload for the BigPicture notification.
				 */
				public bigPicture(b: android.graphics.Bitmap): android.app.Notification.BigPictureStyle;
				/**
				 * Override the large icon when the big notification is shown.
				 */
				public bigLargeIcon(b: android.graphics.Bitmap): android.app.Notification.BigPictureStyle;
				public build(): android.app.Notification;
			}
		}
		export class ServiceConnectionLeaked extends android.util.AndroidRuntimeException {
			constructor(msg: string);
			static class: java.lang.Class<android.app.ServiceConnectionLeaked>;
		}
		/**
		 * Container for fragments associated with an activity.
		 */
		export class FragmentManagerImpl extends android.app.FragmentManager {
			static class: java.lang.Class<android.app.FragmentManagerImpl>;
			public beginTransaction(): android.app.FragmentTransaction;
			public executePendingTransactions(): boolean;
			public popBackStack(): void;
			public popBackStackImmediate(): boolean;
			public popBackStack(name: string, flags: number): void;
			public popBackStackImmediate(name: string, flags: number): boolean;
			public popBackStack(id: number, flags: number): void;
			public popBackStackImmediate(id: number, flags: number): boolean;
			public getBackStackEntryCount(): number;
			public getBackStackEntryAt(index: number): android.app.FragmentManager.IBackStackEntry;
			public addOnBackStackChangedListener(listener: android.app.FragmentManager.IOnBackStackChangedListener): void;
			public removeOnBackStackChangedListener(listener: android.app.FragmentManager.IOnBackStackChangedListener): void;
			public putFragment(bundle: android.os.Bundle, key: string, fragment: android.app.Fragment): void;
			public getFragment(bundle: android.os.Bundle, key: string): android.app.Fragment;
			public saveFragmentInstanceState(fragment: android.app.Fragment): android.app.Fragment.SavedState;
			public isDestroyed(): boolean;
			public toString(): string;
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			loadAnimator(fragment: android.app.Fragment, transit: number, enter: boolean, transitionStyle: number): android.animation.Animator;
			public performPendingDeferredStart(f: android.app.Fragment): void;
			moveToState(f: android.app.Fragment, newState: number, transit: number, transitionStyle: number, keepActive: boolean): void;
			moveToState(f: android.app.Fragment): void;
			moveToState(newState: number, always: boolean): void;
			moveToState(newState: number, transit: number, transitStyle: number, always: boolean): void;
			startPendingDeferredFragments(): void;
			makeActive(f: android.app.Fragment): void;
			makeInactive(f: android.app.Fragment): void;
			public addFragment(fragment: android.app.Fragment, moveToStateNow: boolean): void;
			public removeFragment(fragment: android.app.Fragment, transition: number, transitionStyle: number): void;
			public hideFragment(fragment: android.app.Fragment, transition: number, transitionStyle: number): void;
			public showFragment(fragment: android.app.Fragment, transition: number, transitionStyle: number): void;
			public detachFragment(fragment: android.app.Fragment, transition: number, transitionStyle: number): void;
			public attachFragment(fragment: android.app.Fragment, transition: number, transitionStyle: number): void;
			public findFragmentById(id: number): android.app.Fragment;
			public findFragmentByTag(tag: string): android.app.Fragment;
			public findFragmentByWho(who: string): android.app.Fragment;
			public enqueueAction(action: java.lang.IRunnable, allowStateLoss: boolean): void;
			public freeBackStackIndex(index: number): void;
			/**
			 * Only call from main thread!
			 */
			public execPendingActions(): boolean;
			reportBackStackChanged(): void;
			popBackStackState(handler: android.os.Handler, name: string, id: number, flags: number): boolean;
			retainNonConfig(): java.util.ArrayList<android.app.Fragment>;
			saveFragmentViewState(f: android.app.Fragment): void;
			saveFragmentBasicState(f: android.app.Fragment): android.os.Bundle;
			saveAllState(): android.os.IParcelable;
			restoreAllState(state: android.os.IParcelable, nonConfig: java.util.ArrayList<android.app.Fragment>): void;
			public attachActivity(activity: android.app.Activity, container: android.app.IFragmentContainer, parent: android.app.Fragment): void;
			public noteStateNotSaved(): void;
			public dispatchCreate(): void;
			public dispatchActivityCreated(): void;
			public dispatchStart(): void;
			public dispatchResume(): void;
			public dispatchPause(): void;
			public dispatchStop(): void;
			public dispatchDestroyView(): void;
			public dispatchDestroy(): void;
			public dispatchConfigurationChanged(newConfig: android.content.res.Configuration): void;
			public dispatchLowMemory(): void;
			public dispatchTrimMemory(level: number): void;
			public dispatchCreateOptionsMenu(menu: android.view.IMenu, inflater: android.view.MenuInflater): boolean;
			public dispatchPrepareOptionsMenu(menu: android.view.IMenu): boolean;
			public dispatchOptionsItemSelected(item: android.view.IMenuItem): boolean;
			public dispatchContextItemSelected(item: android.view.IMenuItem): boolean;
			public dispatchOptionsMenuClosed(menu: android.view.IMenu): void;
			public invalidateOptionsMenu(): void;
			public static reverseTransit(transit: number): number;
			public static transitToStyleIndex(transit: number, enter: boolean): number;
		}
		export class MediaRouteButton extends android.view.View {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
			static class: java.lang.Class<android.app.MediaRouteButton>;
			public performClick(): boolean;
			setCheatSheetEnabled(enable: boolean): void;
			public performLongClick(): boolean;
			public setRouteTypes(types: number): void;
			public getRouteTypes(): number;
			updateRemoteIndicator(): void;
			updateRouteCount(): void;
			protected onCreateDrawableState(extraSpace: number): native.Array<number>;
			protected drawableStateChanged(): void;
			protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
			public jumpDrawablesToCurrentState(): void;
			public setVisibility(visibility: number): void;
			public onAttachedToWindow(): void;
			public onDetachedFromWindow(): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			public setExtendedSettingsClickListener(listener: android.view.View.IOnClickListener): void;
			/**
			 * Asynchronously show the route chooser dialog. This will attach a DialogFragment to the containing Activity.
			 */
			public showDialog(): void;
		}
		export module MediaRouteButton {
			export class MediaRouteCallback extends android.media.MediaRouter.SimpleCallback {
				static class: java.lang.Class<android.app.MediaRouteButton.MediaRouteCallback>;
				public onRouteSelected(router: android.media.MediaRouter, type: number, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteUnselected(router: android.media.MediaRouter, type: number, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteChanged(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteAdded(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteRemoved(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteGrouped(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup, index: number): void;
				public onRouteUngrouped(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo, group: android.media.MediaRouter.RouteGroup): void;
			}
		}
		export class ApplicationLoaders extends java.lang.Object {
			static class: java.lang.Class<android.app.ApplicationLoaders>;
			public static getDefault(): android.app.ApplicationLoaders;
			public getClassLoader(zip: string, libPath: string, parent: java.lang.ClassLoader): java.lang.ClassLoader;
		}
		/**
		 * Callbacks from FragmentManagerImpl to its container.
		 */
		export class FragmentContainer implements android.app.IFragmentContainer {
			constructor(implementation: android.app.IFragmentContainer);
			public findViewById(id: number): android.view.View;
		}
		/**
		 * Delegate used to provide new implementation of a select few methods of Fragment
		 */
		export class Fragment_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.app.Fragment_Delegate>;
			/**
			 * Like #instantiate(Context, String, Bundle) but with a null argument Bundle.
			 */
			static instantiate(context: android.content.Context, fname: string): android.app.Fragment;
			/**
			 * Create a new instance of a Fragment with the given class name. This is the same as calling its empty constructor.
			 * @param context The calling context being used to instantiate the fragment.
			 * @param fname The class name of the fragment to instantiate.
			 * @param args Bundle of arguments to supply to the fragment, which it
			 */
			static instantiate(context: android.content.Context, fname: string, args: android.os.Bundle): android.app.Fragment;
		}
		/**
		 * An activity that displays an expandable list of items by binding to a data source implementing the ExpandableListAdapter, and exposes event handlers when the user selects an item.
		 */
		export class ExpandableListActivity extends android.app.Activity implements android.view.View.IOnCreateContextMenuListener, android.widget.ExpandableListView.IOnChildClickListener, android.widget.ExpandableListView.IOnGroupCollapseListener, android.widget.ExpandableListView.IOnGroupExpandListener {
			constructor();
			static class: java.lang.Class<android.app.ExpandableListActivity>;
			/**
			 * Override this to populate the context menu when an item is long pressed. menuInfo will contain an android.widget.ExpandableListView.ExpandableListContextMenuInfo whose packedPosition is a packed position that should be used with ExpandableListView#getPackedPositionType(long) and the other similar methods.
			 */
			public onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
			/**
			 * Override this for receiving callbacks when a child has been clicked.
			 */
			public onChildClick(parent: android.widget.ExpandableListView, v: android.view.View, groupPosition: number, childPosition: number, id: number): boolean;
			/**
			 * Override this for receiving callbacks when a group has been collapsed.
			 */
			public onGroupCollapse(groupPosition: number): void;
			/**
			 * Override this for receiving callbacks when a group has been expanded.
			 */
			public onGroupExpand(groupPosition: number): void;
			/**
			 * Ensures the expandable list view has been created before Activity restores all of the view states. Activity#onRestoreInstanceState(Bundle)
			 */
			protected onRestoreInstanceState(state: android.os.Bundle): void;
			/**
			 * Updates the screen state (current list and other views) when the content changes. Activity#onContentChanged()
			 */
			public onContentChanged(): void;
			/**
			 * Provide the adapter for the expandable list.
			 */
			public setListAdapter(adapter: android.widget.IExpandableListAdapter): void;
			/**
			 * Get the activity's expandable list view widget. This can be used to get the selection, set the selection, and many other useful functions. ExpandableListView
			 */
			public getExpandableListView(): android.widget.ExpandableListView;
			/**
			 * Get the ExpandableListAdapter associated with this activity's ExpandableListView.
			 */
			public getExpandableListAdapter(): android.widget.IExpandableListAdapter;
			/**
			 * Gets the ID of the currently selected group or child. 
			 */
			public getSelectedId(): any;
			/**
			 * Gets the position (in packed position representation) of the currently selected group or child. Use ExpandableListView#getPackedPositionType, ExpandableListView#getPackedPositionGroup, and ExpandableListView#getPackedPositionChild to unpack the returned packed position. 
			 */
			public getSelectedPosition(): any;
			/**
			 * Sets the selection to the specified child. If the child is in a collapsed group, the group will only be expanded and child subsequently selected if shouldExpandGroup is set to true, otherwise the method will return false. 
			 * @param groupPosition The position of the group that contains the child.
			 * @param childPosition The position of the child within the group.
			 * @param shouldExpandGroup Whether the child's group should be expanded if
			 */
			public setSelectedChild(groupPosition: number, childPosition: number, shouldExpandGroup: boolean): boolean;
			/**
			 * Sets the selection to the specified group.
			 * @param groupPosition The position of the group that should be selected.
			 */
			public setSelectedGroup(groupPosition: number): void;
		}
		/**
		 * An activity that displays a list of items by binding to a data source such as an array or Cursor, and exposes event handlers when the user selects an item.
		 */
		export class ListActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.app.ListActivity>;
			/**
			 * This method will be called when an item in the list is selected. Subclasses should override. Subclasses can call getListView().getItemAtPosition(position) if they need to access the data associated with the selected item.
			 * @param l The ListView where the click happened
			 * @param v The view that was clicked within the ListView
			 * @param position The position of the view in the list
			 * @param id The row id of the item that was clicked
			 */
			protected onListItemClick(l: android.widget.ListView, v: android.view.View, position: number, id: number): void;
			/**
			 * Ensures the list view has been created before Activity restores all of the view states.
			 */
			protected onRestoreInstanceState(state: android.os.Bundle): void;
			/**
			 *  Activity#onDestroy()
			 */
			protected onDestroy(): void;
			/**
			 * Updates the screen state (current list and other views) when the content changes.
			 */
			public onContentChanged(): void;
			/**
			 * Provide the cursor for the list view.
			 */
			public setListAdapter(adapter: android.widget.IListAdapter): void;
			/**
			 * Set the currently selected list item to the specified position with the adapter's data
			 * @param position 
			 */
			public setSelection(position: number): void;
			/**
			 * Get the position of the currently selected list item.
			 */
			public getSelectedItemPosition(): number;
			/**
			 * Get the cursor row ID of the currently selected list item.
			 */
			public getSelectedItemId(): any;
			/**
			 * Get the activity's list view widget.
			 */
			public getListView(): android.widget.ListView;
			/**
			 * Get the ListAdapter associated with this activity's ListView.
			 */
			public getListAdapter(): android.widget.IListAdapter;
		}
		export class IntentReceiverLeaked extends android.util.AndroidRuntimeException {
			constructor(msg: string);
			static class: java.lang.Class<android.app.IntentReceiverLeaked>;
		}
		export class SuperNotCalledException extends android.util.AndroidRuntimeException {
			constructor(msg: string);
			static class: java.lang.Class<android.app.SuperNotCalledException>;
		}
		/**
		 * IntentService is a base class for Services that handle asynchronous requests (expressed as Intents) on demand. Clients send requests through android.content.Context#startService(Intent) calls; the service is started as needed, handles each Intent in turn using a worker thread, and stops itself when it runs out of work.
		 */
		export class IntentService extends android.app.Service {
			/**
			 * Creates an IntentService. Invoked by your subclass's constructor.
			 * @param name Used to name the worker thread, important only for debugging.
			 */
			constructor(name: string);
			static class: java.lang.Class<android.app.IntentService>;
			ServiceHandler: {
	new (looper: android.os.Looper): android.app.IntentService.ServiceHandler;
};
			/**
			 * Sets intent redelivery preferences. Usually called from the constructor with your preferred semantics.
			 */
			public setIntentRedelivery(enabled: boolean): void;
			public onCreate(): void;
			public onStart(intent: android.content.Intent, startId: number): void;
			/**
			 * You should not override this method for your IntentService. Instead, override #onHandleIntent, which the system calls when the IntentService receives a start request. android.app.Service#onStartCommand
			 */
			public onStartCommand(intent: android.content.Intent, flags: number, startId: number): number;
			public onDestroy(): void;
			/**
			 * Unless you provide binding for your service, you don't need to implement this method, because the default implementation returns null. android.app.Service#onBind
			 */
			public onBind(intent: android.content.Intent): android.os.IIBinder;
			/**
			 * This method is invoked on the worker thread with a request to process. Only one Intent is processed at a time, but the processing happens on a worker thread that runs independently from other application logic. So, if this code takes a long time, it will hold up other requests to the same IntentService, but it will not hold up anything else. When all requests have been handled, the IntentService stops itself, so you should not call #stopSelf.
			 * @param intent The value passed to {@link
			 */
			protected onHandleIntent(intent: android.content.Intent): void;
		}
		export module IntentService {
			export class ServiceHandler extends android.os.Handler {
				static class: java.lang.Class<android.app.IntentService.ServiceHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		export class ReceiverRestrictedContext extends android.content.ContextWrapper {
			static class: java.lang.Class<android.app.ReceiverRestrictedContext>;
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter): android.content.Intent;
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
			public registerReceiverAsUser(receiver: android.content.BroadcastReceiver, user: android.os.UserHandle, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
			public bindService(service: android.content.Intent, conn: android.content.IServiceConnection, flags: number): boolean;
		}
		/**
		 * Convenience for implementing an activity that will be implemented purely in native code. That is, a game (or game-like thing). There is no need to derive from this class; you can simply declare it in your manifest, and use the NDK APIs from there.
		 */
		export class NativeActivity extends android.app.Activity implements android.view.SurfaceHolder.ICallback2, android.view.InputQueue.ICallback, android.view.ViewTreeObserver.IOnGlobalLayoutListener {
			constructor();
			/**
			 * Optional meta-that can be in the manifest for this component, specifying the name of the native shared library to load. If not specified, "main" is used.
			 */
			static META_DATA_LIB_NAME: string;
			/**
			 * Optional meta-that can be in the manifest for this component, specifying the name of the main entry point for this native activity in the #META_DATA_LIB_NAME native code. If not specified, "ANativeActivity_onCreate" is used.
			 */
			static META_DATA_FUNC_NAME: string;
			static class: java.lang.Class<android.app.NativeActivity>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			protected onDestroy(): void;
			protected onPause(): void;
			protected onResume(): void;
			protected onSaveInstanceState(outState: android.os.Bundle): void;
			protected onStart(): void;
			protected onStop(): void;
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			public onLowMemory(): void;
			public onWindowFocusChanged(hasFocus: boolean): void;
			public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
			public surfaceCreated(holder: android.view.ISurfaceHolder): void;
			public surfaceChanged(holder: android.view.ISurfaceHolder, format: number, width: number, height: number): void;
			public surfaceRedrawNeeded(holder: android.view.ISurfaceHolder): void;
			public surfaceDestroyed(holder: android.view.ISurfaceHolder): void;
			public onInputQueueCreated(queue: android.view.InputQueue): void;
			public onInputQueueDestroyed(queue: android.view.InputQueue): void;
			public onGlobalLayout(): void;
			dispatchUnhandledKeyEvent(event: android.view.KeyEvent): boolean;
			preDispatchKeyEvent(event: android.view.KeyEvent, seq: number): void;
			setWindowFlags(flags: number, mask: number): void;
			setWindowFormat(format: number): void;
			showIme(mode: number): void;
			hideIme(mode: number): void;
		}
		export module NativeActivity {
			export class InputMethodCallback extends java.lang.Object {
				static class: java.lang.Class<android.app.NativeActivity.InputMethodCallback>;
				public finishedEvent(seq: number, handled: boolean): void;
			}
			export class NativeContentView extends android.view.View {
				constructor(context: android.content.Context);
				constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
				static class: java.lang.Class<android.app.NativeActivity.NativeContentView>;
			}
		}
		/**
		 * Stub activity that launches another activity (and then finishes itself) based on information in its component's manifest meta-data. This is a simple way to implement an alias-like mechanism. To use this activity, you should include in the manifest for the associated component an entry named "android.app.alias". It is a reference to an XML resource describing an intent that launches the real application.
		 */
		export class AliasActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.app.AliasActivity>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
		}
		export class ApplicationPackageManager extends android.content.pm.PackageManager {
			static class: java.lang.Class<android.app.ApplicationPackageManager>;
			public getPackageInfo(packageName: string, flags: number): android.content.pm.PackageInfo;
			public currentToCanonicalPackageNames(names: native.Array<string>): native.Array<string>;
			public canonicalToCurrentPackageNames(names: native.Array<string>): native.Array<string>;
			public getLaunchIntentForPackage(packageName: string): android.content.Intent;
			public getPackageGids(packageName: string): native.Array<number>;
			public getPermissionInfo(name: string, flags: number): android.content.pm.PermissionInfo;
			public queryPermissionsByGroup(group: string, flags: number): java.util.IList<android.content.pm.PermissionInfo>;
			public getPermissionGroupInfo(name: string, flags: number): android.content.pm.PermissionGroupInfo;
			public getAllPermissionGroups(flags: number): java.util.IList<android.content.pm.PermissionGroupInfo>;
			public getApplicationInfo(packageName: string, flags: number): android.content.pm.ApplicationInfo;
			public getActivityInfo(className: android.content.ComponentName, flags: number): android.content.pm.ActivityInfo;
			public getReceiverInfo(className: android.content.ComponentName, flags: number): android.content.pm.ActivityInfo;
			public getServiceInfo(className: android.content.ComponentName, flags: number): android.content.pm.ServiceInfo;
			public getProviderInfo(className: android.content.ComponentName, flags: number): android.content.pm.ProviderInfo;
			public getSystemSharedLibraryNames(): native.Array<string>;
			public getSystemAvailableFeatures(): native.Array<android.content.pm.FeatureInfo>;
			public hasSystemFeature(name: string): boolean;
			public checkPermission(permName: string, pkgName: string): number;
			public addPermission(info: android.content.pm.PermissionInfo): boolean;
			public addPermissionAsync(info: android.content.pm.PermissionInfo): boolean;
			public removePermission(name: string): void;
			public grantPermission(packageName: string, permissionName: string): void;
			public revokePermission(packageName: string, permissionName: string): void;
			public checkSignatures(pkg1: string, pkg2: string): number;
			public checkSignatures(uid1: number, uid2: number): number;
			public getPackagesForUid(uid: number): native.Array<string>;
			public getNameForUid(uid: number): string;
			public getUidForSharedUser(sharedUserName: string): number;
			public getInstalledPackages(flags: number): java.util.IList<android.content.pm.PackageInfo>;
			public getInstalledApplications(flags: number): java.util.IList<android.content.pm.ApplicationInfo>;
			public resolveActivity(intent: android.content.Intent, flags: number): android.content.pm.ResolveInfo;
			public resolveActivityAsUser(intent: android.content.Intent, flags: number, userId: number): android.content.pm.ResolveInfo;
			public queryIntentActivities(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
			public queryIntentActivityOptions(caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
			public queryBroadcastReceivers(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
			public resolveService(intent: android.content.Intent, flags: number): android.content.pm.ResolveInfo;
			public queryIntentServicesAsUser(intent: android.content.Intent, flags: number, userId: number): java.util.IList<android.content.pm.ResolveInfo>;
			public queryIntentServices(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
			public resolveContentProvider(name: string, flags: number): android.content.pm.ProviderInfo;
			public queryContentProviders(processName: string, uid: number, flags: number): java.util.IList<android.content.pm.ProviderInfo>;
			public getInstrumentationInfo(className: android.content.ComponentName, flags: number): android.content.pm.InstrumentationInfo;
			public queryInstrumentation(targetPackage: string, flags: number): java.util.IList<android.content.pm.InstrumentationInfo>;
			public getDrawable(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
			public getActivityIcon(activityName: android.content.ComponentName): android.graphics.drawable.Drawable;
			public getActivityIcon(intent: android.content.Intent): android.graphics.drawable.Drawable;
			public getDefaultActivityIcon(): android.graphics.drawable.Drawable;
			public getApplicationIcon(info: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
			public getApplicationIcon(packageName: string): android.graphics.drawable.Drawable;
			public getActivityLogo(activityName: android.content.ComponentName): android.graphics.drawable.Drawable;
			public getActivityLogo(intent: android.content.Intent): android.graphics.drawable.Drawable;
			public getApplicationLogo(info: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
			public getApplicationLogo(packageName: string): android.graphics.drawable.Drawable;
			public getResourcesForActivity(activityName: android.content.ComponentName): android.content.res.Resources;
			public getResourcesForApplication(app: android.content.pm.ApplicationInfo): android.content.res.Resources;
			public getResourcesForApplication(appPackageName: string): android.content.res.Resources;
			public isSafeMode(): boolean;
			static configurationChanged(): void;
			static handlePackageBroadcast(cmd: number, pkgList: native.Array<string>, hasPkgInfo: boolean): void;
			public getText(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): string;
			public getXml(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): android.content.res.IXmlResourceParser;
			public getApplicationLabel(info: android.content.pm.ApplicationInfo): string;
			public installExistingPackage(packageName: string): number;
			public verifyPendingInstall(id: number, response: number): void;
			public extendVerificationTimeout(id: number, verificationCodeAtTimeout: number, millisecondsToDelay: number): void;
			public setInstallerPackageName(targetPackage: string, installerPackageName: string): void;
			public getInstallerPackageName(packageName: string): string;
			public freeStorage(freeStorageSize: number, pi: android.content.IntentSender): void;
			public addPackageToPreferred(packageName: string): void;
			public removePackageFromPreferred(packageName: string): void;
			public getPreferredPackages(flags: number): java.util.IList<android.content.pm.PackageInfo>;
			public addPreferredActivity(filter: android.content.IntentFilter, match: number, set: native.Array<android.content.ComponentName>, activity: android.content.ComponentName): void;
			public addPreferredActivity(filter: android.content.IntentFilter, match: number, set: native.Array<android.content.ComponentName>, activity: android.content.ComponentName, userId: number): void;
			public replacePreferredActivity(filter: android.content.IntentFilter, match: number, set: native.Array<android.content.ComponentName>, activity: android.content.ComponentName): void;
			public clearPackagePreferredActivities(packageName: string): void;
			public getPreferredActivities(outFilters: java.util.IList<android.content.IntentFilter>, outActivities: java.util.IList<android.content.ComponentName>, packageName: string): number;
			public setComponentEnabledSetting(componentName: android.content.ComponentName, newState: number, flags: number): void;
			public getComponentEnabledSetting(componentName: android.content.ComponentName): number;
			public setApplicationEnabledSetting(packageName: string, newState: number, flags: number): void;
			public getApplicationEnabledSetting(packageName: string): number;
		}
		export module ApplicationPackageManager {
			export class ResourceName extends java.lang.Object {
				static class: java.lang.Class<android.app.ApplicationPackageManager.ResourceName>;
				public equals(o: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
		}
		/**
		 * To launch this test from the command line: adb shell am instrument -w \ -e class com.android.unit_tests.SearchManagerTest \ com.android.unit_tests/android.test.InstrumentationTestRunner
		 */
		export class SearchManagerTest extends android.test.ActivityInstrumentationTestCase2<android.app.activity.LocalActivity> {
			constructor();
			static class: java.lang.Class<android.app.SearchManagerTest>;
			/**
			 * Setup any common data for the upcoming tests.
			 */
			public setUp(): void;
			/**
			 * The goal of this test is to confirm that we can obtain a search manager interface.
			 */
			public testSearchManagerInterfaceAvailable(): void;
			/**
			 * The goal of this test is to confirm that we can obtain a search manager at any time, and that for any given context, it is a singleton.
			 */
			public testSearchManagerAvailable(): void;
			/**
			 * Tests that startSearch() can be called multiple times without stopSearch() in between.
			 */
			public testStartSearchIdempotent(): void;
			/**
			 * Tests that stopSearch() can be called when the search UI is not visible and can be called multiple times without startSearch() in between.
			 */
			public testStopSearchIdempotent(): void;
			/**
			 * The goal of this test is to confirm that we can start and then stop a simple search.
			 */
			public testSearchManagerInvocations(): void;
		}
		/**
		 * A Service is an application component representing either an application's desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use. Each service class must have a corresponding android.R.styleable#AndroidManifestService &lt;service&gt; declaration in its package's <code>AndroidManifest.xml</code>. Services can be started with android.content.Context#startService Context.startService() and android.content.Context#bindService Context.bindService(). 
		 */
		export class Service extends android.content.ContextWrapper implements android.content.IComponentCallbacks2 {
			constructor();
			/**
			 * Bits returned by #onStartCommand describing how to continue the service if it is killed. May be #START_STICKY, #START_NOT_STICKY, #START_REDELIVER_INTENT, or #START_STICKY_COMPATIBILITY.
			 */
			static START_CONTINUATION_MASK: number;
			/**
			 * Constant to return from #onStartCommand: compatibility version of #START_STICKY that does not guarantee that #onStartCommand will be called again after being killed.
			 */
			static START_STICKY_COMPATIBILITY: number;
			/**
			 * Constant to return from #onStartCommand: if this service's process is killed while it is started (after returning from #onStartCommand), then leave it in the started state but don't retain this delivered intent. Later the system will try to re-create the service. Because it is in the started state, it will guarantee to call #onStartCommand after creating the new service instance; if there are not any pending start commands to be delivered to the service, it will be called with a null intent object, so you must take care to check for this. 
			 */
			static START_STICKY: number;
			/**
			 * Constant to return from #onStartCommand: if this service's process is killed while it is started (after returning from #onStartCommand), and there are no new start intents to deliver to it, then take the service out of the started state and don't recreate until a future explicit call to Context#startService Context.startService(Intent). The service will not receive a #onStartCommand(Intent, int, int) call with a null Intent because it will not be re-started if there are no pending Intents to deliver. 
			 */
			static START_NOT_STICKY: number;
			/**
			 * Constant to return from #onStartCommand: if this service's process is killed while it is started (after returning from #onStartCommand), then it will be scheduled for a restart and the last delivered Intent re-delivered to it again via #onStartCommand. This Intent will remain scheduled for redelivery until the service calls #stopSelf(int) with the start ID provided to #onStartCommand. The service will not receive a #onStartCommand(Intent, int, int) call with a null Intent because it will will only be re-started if it is not finished processing all Intents sent to it (and any such pending events will be delivered at the point of restart).
			 */
			static START_REDELIVER_INTENT: number;
			/**
			 * This flag is set in #onStartCommand if the Intent is a re-delivery of a previously delivered intent, because the service had previously returned #START_REDELIVER_INTENT but had been killed before calling #stopSelf(int) for that Intent.
			 */
			static START_FLAG_REDELIVERY: number;
			/**
			 * This flag is set in #onStartCommand if the Intent is a a retry because the original attempt never got to or returned from #onStartCommand(Intent, int, int).
			 */
			static START_FLAG_RETRY: number;
			static class: java.lang.Class<android.app.Service>;
			/**
			 * Return the application that owns this service.
			 */
			public getApplication(): android.app.Application;
			/**
			 * Called by the system when the service is first created. Do not call this method directly.
			 */
			public onCreate(): void;
			/**
			 *  Implement #onStartCommand(Intent, int, int) instead.
			 */
			public onStart(intent: android.content.Intent, startId: number): void;
			/**
			 * Called by the system every time a client explicitly starts the service by calling android.content.Context#startService, providing the arguments it supplied and a unique integer token representing the start request. Do not call this method directly. 
			 * @param intent The Intent supplied to {@link android.content.Context#startService},
			 * @param flags Additional data about this start request. Currently either
			 * @param startId A unique integer representing this specific request to
			 */
			public onStartCommand(intent: android.content.Intent, flags: number, startId: number): number;
			/**
			 * Called by the system to notify a Service that it is no longer used and is being removed. The service should clean up any resources it holds (threads, registered receivers, etc) at this point. Upon return, there will be no more calls in to this Service object and it is effectively dead. Do not call this method directly.
			 */
			public onDestroy(): void;
			public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			public onLowMemory(): void;
			public onTrimMemory(level: number): void;
			/**
			 * Return the communication channel to the service. May return null if clients can not bind to the service. The returned android.os.IBinder is usually for a complex interface that has been <a href="guide/components/aidl.html">described using aidl</a>. 
			 * @param intent The Intent that was used to bind to this service,
			 */
			public onBind(intent: android.content.Intent): android.os.IIBinder;
			/**
			 * Called when all clients have disconnected from a particular interface published by the service. The default implementation does nothing and returns false. 
			 * @param intent The Intent that was used to bind to this service,
			 */
			public onUnbind(intent: android.content.Intent): boolean;
			/**
			 * Called when new clients have connected to the service, after it had previously been notified that all had disconnected in its #onUnbind. This will only be called if the implementation of #onUnbind was overridden to return true. 
			 * @param intent The Intent that was used to bind to this service,
			 */
			public onRebind(intent: android.content.Intent): void;
			/**
			 * This is called if the service is currently running and the user has removed a task that comes from the service's application. If you have set android.content.pm.ServiceInfo#FLAG_STOP_WITH_TASK ServiceInfo.FLAG_STOP_WITH_TASK then you will not receive this callback; instead, the service will simply be stopped.
			 * @param rootIntent The original root Intent that was used to launch
			 */
			public onTaskRemoved(rootIntent: android.content.Intent): void;
			/**
			 * Stop the service, if it was previously started. This is the same as calling android.content.Context#stopService for this particular service. #stopSelfResult(int)
			 */
			public stopSelf(): void;
			/**
			 * Old version of #stopSelfResult that doesn't return a result. #stopSelfResult
			 */
			public stopSelf(startId: number): void;
			/**
			 * Stop the service if the most recent time it was started was <var>startId</var>. This is the same as calling android.content.Context#stopService for this particular service but allows you to safely avoid stopping if there is a start request from a client that you haven't yet seen in #onStart. 
			 * @param startId The most recent start identifier received in {@link
			 */
			public stopSelfResult(startId: number): boolean;
			/**
			 * Make this service run in the foreground, supplying the ongoing notification to be shown to the user while in this state. By default services are background, meaning that if the system needs to kill them to reclaim more memory (such as to display a large page in a web browser), they can be killed without too much harm. You can set this flag if killing your service would be disruptive to the user, such as if your service is performing background music playback, so the user would notice if their music stopped playing. 
			 * @param id The identifier for this notification as per
			 * @param notification The Notification to be displayed.
			 */
			public startForeground(id: number, notification: android.app.Notification): void;
			/**
			 * Remove this service from foreground state, allowing it to be killed if more memory is needed.
			 * @param removeNotification If true, the notification previously provided
			 */
			public stopForeground(removeNotification: boolean): void;
			/**
			 * Print the Service's state into the given stream. This gets invoked if you run "adb shell dumpsys activity service &lt;yourservicename&gt;". This is distinct from "dumpsys &lt;servicename&gt;", which only works for named system services and which invokes the IBinder#dump method on the IBinder interface registered with ServiceManager.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param writer The PrintWriter to which you should dump your state. This will be
			 * @param args additional arguments to the dump request.
			 */
			protected dump(fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			getClassName(): string;
		}
		/**
		 * Base class for presentations.
		 */
		export class Presentation extends android.app.Dialog {
			/**
			 * Creates a new presentation that is attached to the specified display using the default theme.
			 * @param outerContext The context of the application that is showing the presentation.
			 * @param display The display to which the presentation should be attached.
			 */
			constructor(outerContext: android.content.Context, display: android.view.Display);
			/**
			 * Creates a new presentation that is attached to the specified display using the optionally specified theme.
			 * @param outerContext The context of the application that is showing the presentation.
			 * @param display The display to which the presentation should be attached.
			 * @param theme A style resource describing the theme to use for the window.
			 */
			constructor(outerContext: android.content.Context, display: android.view.Display, theme: number);
			static class: java.lang.Class<android.app.Presentation>;
			/**
			 * Gets the Display that this presentation appears on.
			 */
			public getDisplay(): android.view.Display;
			/**
			 * Gets the Resources that should be used to inflate the layout of this presentation. This resources object has been configured according to the metrics of the display that the presentation appears on.
			 */
			public getResources(): android.content.res.Resources;
			protected onStart(): void;
			protected onStop(): void;
			/**
			 * Inherited from Dialog#show. Will throw android.view.WindowManager.InvalidDisplayException if the specified secondary Display can't be found.
			 */
			public show(): void;
			/**
			 * Called by the system when the Display to which the presentation is attached has been removed.
			 */
			public onDisplayRemoved(): void;
			/**
			 * Called by the system when the properties of the Display to which the presentation is attached have changed.
			 */
			public onDisplayChanged(): void;
		}
		/**
		 * Helper class for showing "bread crumbs" representing the fragment stack in an activity. This is intended to be used with ActionBar#setCustomView(View) ActionBar.setCustomView(View) to place the bread crumbs in the action bar.
		 */
		export class FragmentBreadCrumbs extends android.view.ViewGroup implements android.app.FragmentManager.IOnBackStackChangedListener {
			constructor(context: android.content.Context);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			static class: java.lang.Class<android.app.FragmentBreadCrumbs>;
			/**
			 * Attach the bread crumbs to their activity. This must be called once when creating the bread crumbs.
			 */
			public setActivity(a: android.app.Activity): void;
			/**
			 * The maximum number of breadcrumbs to show. Older fragment headers will be hidden from view.
			 * @param visibleCrumbs the number of visible breadcrumbs. This should be greater than zero.
			 */
			public setMaxVisible(visibleCrumbs: number): void;
			/**
			 * Inserts an optional parent entry at the first position in the breadcrumbs. Selecting this entry will result in a call to the specified listener's android.view.View.OnClickListener#onClick(View) method.
			 * @param title the title for the parent entry
			 * @param shortTitle the short title for the parent entry
			 * @param listener the {@link android.view.View.OnClickListener} to be called when clicked.
			 */
			public setParentTitle(title: string, shortTitle: string, listener: android.view.View.IOnClickListener): void;
			/**
			 * Sets a listener for clicks on the bread crumbs. This will be called before the default click action is performed. 
			 * @param listener The new listener to set. Replaces any existing listener.
			 */
			public setOnBreadCrumbClickListener(listener: android.app.FragmentBreadCrumbs.IOnBreadCrumbClickListener): void;
			/**
			 * Set a custom title for the bread crumbs. This will be the first entry shown at the left, representing the root of the bread crumbs. If the title is null, it will not be shown.
			 */
			public setTitle(title: string, shortTitle: string): void;
			protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			public onBackStackChanged(): void;
			updateCrumbs(): void;
		}
		export module FragmentBreadCrumbs {
			/**
			 * Interface to intercept clicks on the bread crumbs.
			 */
			interface IOnBreadCrumbClickListener {
				/**
				 * Called when a bread crumb is clicked. 
				 * @param backStack The BackStackEntry whose bread crumb was clicked.
				 * @param flags Additional information about the entry. Currently
				 */
				onBreadCrumbClick(backStack: android.app.FragmentManager.IBackStackEntry, flags: number): boolean;
			}
			/**
			 * Interface to intercept clicks on the bread crumbs.
			 */
			export class OnBreadCrumbClickListener implements android.app.FragmentBreadCrumbs.IOnBreadCrumbClickListener {
				constructor(implementation: android.app.FragmentBreadCrumbs.IOnBreadCrumbClickListener);
				/**
				 * Called when a bread crumb is clicked. 
				 * @param backStack The BackStackEntry whose bread crumb was clicked.
				 * @param flags Additional information about the entry. Currently
				 */
				public onBreadCrumbClick(backStack: android.app.FragmentManager.IBackStackEntry, flags: number): boolean;
			}
		}
		/**
		 * Interface associated with an Activity or Fragment for managing one or more android.content.Loader instances associated with it. This helps an application manage longer-running operations in conjunction with the Activity or Fragment lifecycle; the most common use of this is with a android.content.CursorLoader, however applications are free to write their own loaders for loading other types of data.
		 */
		export class LoaderManager extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.app.LoaderManager>;
			/**
			 * Ensures a loader is initialized and active. If the loader doesn't already exist, one is created and (if the activity/fragment is currently started) starts the loader. Otherwise the last created loader is re-used.
			 * @param id A unique identifier for this loader. Can be whatever you want.
			 * @param args Optional arguments to supply to the loader at construction.
			 * @param callback Interface the LoaderManager will call to report about
			 */
			public initLoader<D>(id: number, args: android.os.Bundle, callback: android.app.LoaderManager.ILoaderCallbacks<D>): android.content.Loader<D>;
			/**
			 * Starts a new or restarts an existing android.content.Loader in this manager, registers the callbacks to it, and (if the activity/fragment is currently started) starts loading it. If a loader with the same id has previously been started it will automatically be destroyed when the new loader completes its work. The callback will be delivered before the old loader is destroyed.
			 * @param id A unique identifier for this loader. Can be whatever you want.
			 * @param args Optional arguments to supply to the loader at construction.
			 * @param callback Interface the LoaderManager will call to report about
			 */
			public restartLoader<D>(id: number, args: android.os.Bundle, callback: android.app.LoaderManager.ILoaderCallbacks<D>): android.content.Loader<D>;
			/**
			 * Stops and removes the loader with the given ID. If this loader had previously reported data to the client through LoaderCallbacks#onLoadFinished(Loader, Object), a call will be made to LoaderCallbacks#onLoaderReset(Loader).
			 */
			public destroyLoader(id: number): void;
			/**
			 * Return the Loader with the given id or null if no matching Loader is found.
			 */
			public getLoader<D>(id: number): android.content.Loader<D>;
			/**
			 * Print the LoaderManager's state into the given stream.
			 * @param prefix Text to print at the front of each line.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param writer A PrintWriter to which the dump is to be set.
			 * @param args Additional arguments to the dump request.
			 */
			public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
			/**
			 * Control whether the framework's internal loader manager debugging logs are turned on. If enabled, you will see output in logcat as the framework performs loader operations.
			 */
			public static enableDebugLogging(enabled: boolean): void;
		}
		export module LoaderManager {
			/**
			 * Callback interface for a client to interact with the manager.
			 */
			interface ILoaderCallbacks<D> {
				/**
				 * Instantiate and return a new Loader for the given ID.
				 * @param id The ID whose loader is to be created.
				 * @param args Any arguments supplied by the caller.
				 */
				onCreateLoader(id: number, args: android.os.Bundle): android.content.Loader<D>;
				/**
				 * Called when a previously created loader has finished its load. Note that normally an application is <em>not</em> allowed to commit fragment transactions while in this call, since it can happen after an activity's state is saved. See FragmentManager#beginTransaction() FragmentManager.openTransaction() for further discussion on this. 
				 * @param loader The Loader that has finished.
				 * @param data The data generated by the Loader.
				 */
				onLoadFinished(loader: android.content.Loader<D>, data: D): void;
				/**
				 * Called when a previously created loader is being reset, and thus making its data unavailable. The application should at this point remove any references it has to the Loader's data.
				 * @param loader The Loader that is being reset.
				 */
				onLoaderReset(loader: android.content.Loader<D>): void;
			}
			/**
			 * Callback interface for a client to interact with the manager.
			 */
			export class LoaderCallbacks<D> implements android.app.LoaderManager.ILoaderCallbacks<D> {
				constructor(implementation: android.app.LoaderManager.ILoaderCallbacks<D>);
				/**
				 * Instantiate and return a new Loader for the given ID.
				 * @param id The ID whose loader is to be created.
				 * @param args Any arguments supplied by the caller.
				 */
				public onCreateLoader(id: number, args: android.os.Bundle): android.content.Loader<D>;
				/**
				 * Called when a previously created loader has finished its load. Note that normally an application is <em>not</em> allowed to commit fragment transactions while in this call, since it can happen after an activity's state is saved. See FragmentManager#beginTransaction() FragmentManager.openTransaction() for further discussion on this. 
				 * @param loader The Loader that has finished.
				 * @param data The data generated by the Loader.
				 */
				public onLoadFinished(loader: android.content.Loader<D>, data: D): void;
				/**
				 * Called when a previously created loader is being reset, and thus making its data unavailable. The application should at this point remove any references it has to the Loader's data.
				 * @param loader The Loader that is being reset.
				 */
				public onLoaderReset(loader: android.content.Loader<D>): void;
			}
		}
		/**
		 * Callbacks from FragmentManagerImpl to its container.
		 */
		interface IFragmentContainer {
			findViewById(id: number): android.view.View;
		}
		export class MediaRouteActionProvider extends android.view.ActionProvider {
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.app.MediaRouteActionProvider>;
			public setRouteTypes(types: number): void;
			public onCreateActionView(): android.view.View;
			public onCreateActionView(item: android.view.IMenuItem): android.view.View;
			public onPerformDefaultAction(): boolean;
			public setExtendedSettingsClickListener(listener: android.view.View.IOnClickListener): void;
			public overridesItemVisibility(): boolean;
			public isVisible(): boolean;
		}
		export module MediaRouteActionProvider {
			export class RouterCallback extends android.media.MediaRouter.SimpleCallback {
				static class: java.lang.Class<android.app.MediaRouteActionProvider.RouterCallback>;
				public onRouteAdded(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
				public onRouteRemoved(router: android.media.MediaRouter, info: android.media.MediaRouter.RouteInfo): void;
			}
		}
		export class BackStackState extends java.lang.Object implements android.os.IParcelable {
			constructor(input: android.os.Parcel);
			static CREATOR: android.os.Parcelable.ICreator<android.app.BackStackState>;
			static class: java.lang.Class<android.app.BackStackState>;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Simple test provider that runs in the local process.
		 */
		export class SuggestionProvider extends android.content.ContentProvider {
			constructor();
			static class: java.lang.Class<android.app.SuggestionProvider>;
			public onCreate(): boolean;
			public query(url: android.net.Uri, projectionIn: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sort: string): android.database.ICursor;
			public getType(url: android.net.Uri): string;
			public update(url: android.net.Uri, values: android.content.ContentValues, where: string, whereArgs: native.Array<string>): number;
			public insert(url: android.net.Uri, initialValues: android.content.ContentValues): android.net.Uri;
			public delete(url: android.net.Uri, where: string, whereArgs: native.Array<string>): number;
			/**
			 * Implement this to handle query requests from clients with support for cancellation. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
			 * @param uri The URI to query. This will be the full URI sent by the client;
			 * @param projection The list of columns to put into the cursor. If
			 * @param selection A selection criteria to apply when filtering rows.
			 * @param selectionArgs You may include ?s in selection, which will be replaced by
			 * @param sortOrder How the rows in the cursor should be sorted.
			 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
			 */
			query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
		}
		/**
		 * This class provides access to the system alarm services. These allow you to schedule your application to be run at some point in the future. When an alarm goes off, the Intent that had been registered for it is broadcast by the system, automatically starting the target application if it is not already running. Registered alarms are retained while the device is asleep (and can optionally wake the device up if they go off during that time), but will be cleared if it is turned off and rebooted. 
		 */
		export class AlarmManager extends java.lang.Object {
			/**
			 * Alarm time in System#currentTimeMillis System.currentTimeMillis() (wall clock time in UTC), which will wake up the device when it goes off.
			 */
			static RTC_WAKEUP: number;
			/**
			 * Alarm time in System#currentTimeMillis System.currentTimeMillis() (wall clock time in UTC). This alarm does not wake the device up; if it goes off while the device is asleep, it will not be delivered until the next time the device wakes up.
			 */
			static RTC: number;
			/**
			 * Alarm time in android.os.SystemClock#elapsedRealtime SystemClock.elapsedRealtime() (time since boot, including sleep), which will wake up the device when it goes off.
			 */
			static ELAPSED_REALTIME_WAKEUP: number;
			/**
			 * Alarm time in android.os.SystemClock#elapsedRealtime SystemClock.elapsedRealtime() (time since boot, including sleep). This alarm does not wake the device up; if it goes off while the device is asleep, it will not be delivered until the next time the device wakes up.
			 */
			static ELAPSED_REALTIME: number;
			/**
			 * Available inexact recurrence intervals recognized by #setInexactRepeating(int, long, long, PendingIntent)
			 */
			static INTERVAL_FIFTEEN_MINUTES: number;
			static INTERVAL_HALF_HOUR: number;
			static INTERVAL_HOUR: number;
			static INTERVAL_HALF_DAY: number;
			static INTERVAL_DAY: number;
			static class: java.lang.Class<android.app.AlarmManager>;
			/**
			 * Schedule an alarm. <b>Note: for timing operations (ticks, timeouts, etc) it is easier and much more efficient to use android.os.Handler.</b> If there is already an alarm scheduled for the same IntentSender, it will first be canceled.
			 * @param type One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP, RTC or
			 * @param triggerAtMillis time in milliseconds that the alarm should go
			 * @param operation Action to perform when the alarm goes off;
			 */
			public set(type: number, triggerAtMillis: number, operation: android.app.PendingIntent): void;
			/**
			 * Schedule a repeating alarm. <b>Note: for timing operations (ticks, timeouts, etc) it is easier and much more efficient to use android.os.Handler.</b> If there is already an alarm scheduled for the same IntentSender, it will first be canceled.
			 * @param type One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP}, RTC or
			 * @param triggerAtMillis time in milliseconds that the alarm should first
			 * @param intervalMillis interval in milliseconds between subsequent repeats
			 * @param operation Action to perform when the alarm goes off;
			 */
			public setRepeating(type: number, triggerAtMillis: number, intervalMillis: number, operation: android.app.PendingIntent): void;
			/**
			 * Schedule a repeating alarm that has inexact trigger time requirements; for example, an alarm that repeats every hour, but not necessarily at the top of every hour. These alarms are more power-efficient than the strict recurrences supplied by #setRepeating, since the system can adjust alarms' phase to cause them to fire simultaneously, avoiding waking the device from sleep more than necessary. 
			 * @param type One of ELAPSED_REALTIME, ELAPSED_REALTIME_WAKEUP}, RTC or
			 * @param triggerAtMillis time in milliseconds that the alarm should first
			 * @param intervalMillis interval in milliseconds between subsequent repeats
			 * @param operation Action to perform when the alarm goes off;
			 */
			public setInexactRepeating(type: number, triggerAtMillis: number, intervalMillis: number, operation: android.app.PendingIntent): void;
			/**
			 * Remove any alarms with a matching Intent. Any alarm, of any type, whose Intent matches this one (as defined by Intent#filterEquals), will be canceled.
			 * @param operation IntentSender which matches a previously added
			 */
			public cancel(operation: android.app.PendingIntent): void;
			/**
			 * Set the system wall clock time. Requires the permission android.permission.SET_TIME.
			 * @param millis time in milliseconds since the Epoch
			 */
			public setTime(millis: number): void;
			/**
			 * Set the system default time zone. Requires the permission android.permission.SET_TIME_ZONE.
			 * @param timeZone in the format understood by {@link java.util.TimeZone}
			 */
			public setTimeZone(timeZone: string): void;
		}
		/**
		 * Class that can be used to lock and unlock the keyboard. Get an instance of this class by calling android.content.Context#getSystemService(java.lang.String) with argument android.content.Context#KEYGUARD_SERVICE. The actual class to control the keyboard locking is android.app.KeyguardManager.KeyguardLock.
		 */
		export class KeyguardManager extends java.lang.Object {
			static class: java.lang.Class<android.app.KeyguardManager>;
			/**
			 *  Use android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD and/or android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED instead; this allows you to seamlessly hide the keyguard as your application moves in and out of the foreground and does not require that any special permissions be requested.
			 * @param tag A tag that informally identifies who you are (for debugging who
			 */
			public newKeyguardLock(tag: string): android.app.KeyguardManager.KeyguardLock;
			/**
			 * Return whether the keyguard is currently locked.
			 */
			public isKeyguardLocked(): boolean;
			/**
			 * Return whether the keyguard requires a password to unlock.
			 */
			public isKeyguardSecure(): boolean;
			/**
			 * If keyguard screen is showing or in restricted key input mode (i.e. in keyguard password emergency screen). When in such mode, certain keys, such as the Home key and the right soft keys, don't work.
			 */
			public inKeyguardRestrictedInputMode(): boolean;
			/**
			 *  Use android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD and/or android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED instead; this allows you to seamlessly hide the keyguard as your application moves in and out of the foreground and does not require that any special permissions be requested.
			 * @param callback Let's you know whether the operation was succesful and
			 */
			public exitKeyguardSecurely(callback: android.app.KeyguardManager.IOnKeyguardExitResult): void;
		}
		export module KeyguardManager {
			/**
			 * Callback passed to KeyguardManager#exitKeyguardSecurely to notify caller of result.
			 */
			export class OnKeyguardExitResult implements android.app.KeyguardManager.IOnKeyguardExitResult {
				constructor(implementation: android.app.KeyguardManager.IOnKeyguardExitResult);
				/**
				 * @param success True if the user was able to authenticate, false if
				 */
				public onKeyguardExitResult(success: boolean): void;
			}
			/**
			 *  Use android.view.WindowManager.LayoutParams#FLAG_DISMISS_KEYGUARD and/or android.view.WindowManager.LayoutParams#FLAG_SHOW_WHEN_LOCKED instead; this allows you to seamlessly hide the keyguard as your application moves in and out of the foreground and does not require that any special permissions be requested.
			 */
			export class KeyguardLock extends java.lang.Object {
				static class: java.lang.Class<android.app.KeyguardManager.KeyguardLock>;
				/**
				 * Disable the keyguard from showing. If the keyguard is currently showing, hide it. The keyguard will be prevented from showing again until #reenableKeyguard() is called.
				 */
				public disableKeyguard(): void;
				/**
				 * Reenable the keyguard. The keyguard will reappear if the previous call to #disableKeyguard() caused it to be hidden.
				 */
				public reenableKeyguard(): void;
			}
			/**
			 * Callback passed to KeyguardManager#exitKeyguardSecurely to notify caller of result.
			 */
			interface IOnKeyguardExitResult {
				/**
				 * @param success True if the user was able to authenticate, false if
				 */
				onKeyguardExitResult(success: boolean): void;
			}
		}
	}
	export module annotation {
		/**
		 * Indicates that Lint should treat this type as targeting a given API level, no matter what the project target is.
		 */
		interface ITargetApi extends java.lang.annotation.IAnnotation {
			/**
			 * This sets the target api level for the type..
			 */
			value(): number;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Indicates that Lint should ignore the specified warnings for the annotated element.
		 */
		export class SuppressLint implements java.lang.annotation.IAnnotation, android.annotation.ISuppressLint {
			constructor(implementation: android.annotation.ISuppressLint);
			/**
			 * The set of warnings (identified by the lint issue id) that should be ignored by lint. It is not an error to specify an unrecognized name.
			 */
			public value(): native.Array<string>;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Indicates that Lint should treat this type as targeting a given API level, no matter what the project target is.
		 */
		export class TargetApi implements java.lang.annotation.IAnnotation, android.annotation.ITargetApi {
			constructor(implementation: android.annotation.ITargetApi);
			/**
			 * This sets the target api level for the type..
			 */
			public value(): number;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Indicates that Lint should ignore the specified warnings for the annotated element.
		 */
		interface ISuppressLint extends java.lang.annotation.IAnnotation {
			/**
			 * The set of warnings (identified by the lint issue id) that should be ignored by lint. It is not an error to specify an unrecognized name.
			 */
			value(): native.Array<string>;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
	}
	export module debug {
		/**
		 * Simple JNI verification test.
		 */
		export class JNITest extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.debug.JNITest>;
			public test(intArg: number, doubleArg: number, stringArg: string): number;
		}
	}
	export module os {
		/**
		 * Test whether Binder calls inherit thread priorities correctly.
		 */
		export class BinderThreadPriorityTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.BinderThreadPriorityTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public static getSchedulerGroup(): string;
			public static expectedSchedulerGroup(prio: number): string;
			public testPassPriorityToService(): void;
			public testCallBackFromServiceWithPriority(): void;
		}
		export module BinderThreadPriorityTest {
			export class ServiceStub {
				static class: java.lang.Class<android.os.BinderThreadPriorityTest.ServiceStub>;
				public getThreadPriority(): number;
				public getThreadSchedulerGroup(): string;
			}
		}
		/**
		 * Delegate overriding selected methods of android.os.Handler
		 */
		export class Handler_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.Handler_Delegate>;
			static sendMessageAtTime(handler: android.os.Handler, msg: android.os.Message, uptimeMillis: number): boolean;
			public static setCallback(callback: android.os.Handler_Delegate.IIHandlerCallback): void;
		}
		export module Handler_Delegate {
			interface IIHandlerCallback {
				sendMessageAtTime(handler: android.os.Handler, msg: android.os.Message, uptimeMillis: number): void;
			}
			export class IHandlerCallback implements android.os.Handler_Delegate.IIHandlerCallback {
				constructor(implementation: android.os.Handler_Delegate.IIHandlerCallback);
				public sendMessageAtTime(handler: android.os.Handler, msg: android.os.Message, uptimeMillis: number): void;
			}
		}
		export class SELinuxTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.SELinuxTest>;
			public testgetFileCon(): void;
			public testgetCon(): void;
			public testgetPidCon(): void;
			public testcheckSELinuxAccess(): void;
		}
		/**
		 * Tools for managing OS processes.
		 */
		export class Process extends java.lang.Object {
			constructor();
			/**
			 * Defines the UID/GID under which system code runs.
			 */
			static SYSTEM_UID: number;
			/**
			 * Defines the UID/GID under which the telephony code runs.
			 */
			static PHONE_UID: number;
			/**
			 * Defines the start of a range of UIDs (and GIDs), going from this number to #LAST_APPLICATION_UID that are reserved for assigning to applications.
			 */
			static FIRST_APPLICATION_UID: number;
			/**
			 * Last of application-specific UIDs starting at #FIRST_APPLICATION_UID.
			 */
			static LAST_APPLICATION_UID: number;
			/**
			 * Defines a secondary group id for access to the bluetooth hardware.
			 */
			static BLUETOOTH_GID: number;
			/**
			 * Standard priority of application threads. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_DEFAULT: number;
			/**
			 * Lowest available thread priority. Only for those who really, really don't want to run if anything else is happening. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_LOWEST: number;
			/**
			 * Standard priority background threads. This gives your thread a slightly lower than normal priority, so that it will have less chance of impacting the responsiveness of the user interface. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_BACKGROUND: number;
			/**
			 * Standard priority of threads that are currently running a user interface that the user is interacting with. Applications can not normally change to this priority; the system will automatically adjust your application threads as the user moves through the UI. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_FOREGROUND: number;
			/**
			 * Standard priority of system display threads, involved in updating the user interface. Applications can not normally change to this priority. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_DISPLAY: number;
			/**
			 * Standard priority of the most important display threads, for compositing the screen and retrieving input events. Applications can not normally change to this priority. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_URGENT_DISPLAY: number;
			/**
			 * Standard priority of audio threads. Applications can not normally change to this priority. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_AUDIO: number;
			/**
			 * Standard priority of the most important audio threads. Applications can not normally change to this priority. Use with #setThreadPriority(int) and #setThreadPriority(int, int), <b>not</b> with the normal java.lang.Thread class.
			 */
			static THREAD_PRIORITY_URGENT_AUDIO: number;
			/**
			 * Minimum increment to make a priority more favorable.
			 */
			static THREAD_PRIORITY_MORE_FAVORABLE: number;
			/**
			 * Minimum increment to make a priority less favorable.
			 */
			static THREAD_PRIORITY_LESS_FAVORABLE: number;
			static SIGNAL_QUIT: number;
			static SIGNAL_KILL: number;
			static SIGNAL_USR1: number;
			static class: java.lang.Class<android.os.Process>;
			/**
			 * Returns elapsed milliseconds of the time this process has run.
			 */
			public static getElapsedCpuTime(): any;
			/**
			 * Returns the identifier of this process, which can be used with #killProcess and #sendSignal.
			 */
			public static myPid(): number;
			/**
			 * Returns the identifier of the calling thread, which be used with #setThreadPriority(int, int).
			 */
			public static myTid(): number;
			/**
			 * Returns the identifier of this process's uid. This is the kernel uid that the process is running under, which is the identity of its app-specific sandbox. It is different from #myUserHandle in that a uid identifies a specific app sandbox in a specific user.
			 */
			public static myUid(): number;
			/**
			 * Returns this process's user handle. This is the user the process is running under. It is distinct from #myUid() in that a particular user will have multiple distinct apps running under it each with their own uid.
			 */
			public static myUserHandle(): android.os.UserHandle;
			/**
			 * Returns the UID assigned to a particular user name, or -1 if there is none. If the given string consists of only numbers, it is converted directly to a uid.
			 */
			public static getUidForName(name: string): number;
			/**
			 * Returns the GID assigned to a particular user name, or -1 if there is none. If the given string consists of only numbers, it is converted directly to a gid.
			 */
			public static getGidForName(name: string): number;
			/**
			 * Set the priority of a thread, based on Linux priorities. 
			 * @param tid The identifier of the thread/process to change.
			 * @param priority A Linux priority level, from -20 for highest scheduling
			 */
			public static setThreadPriority(tid: number, priority: number): void;
			/**
			 * Set the priority of the calling thread, based on Linux priorities. See #setThreadPriority(int, int) for more information. 
			 * @param priority A Linux priority level, from -20 for highest scheduling
			 */
			public static setThreadPriority(priority: number): void;
			/**
			 * Return the current priority of a thread, based on Linux priorities. 
			 * @param tid The identifier of the thread/process to change.
			 */
			public static getThreadPriority(tid: number): number;
			/**
			 * Determine whether the current environment supports multiple processes. 
			 */
			public static supportsProcesses(): boolean;
			/**
			 * Kill the process with the given PID. Note that, though this API allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes created by that app; packages sharing a common UID will also be able to kill each other's processes.
			 */
			public static killProcess(pid: number): void;
			/**
			 * Send a signal to the given process. 
			 * @param pid The pid of the target process.
			 * @param signal The signal to send.
			 */
			public static sendSignal(pid: number, signal: number): void;
		}
		/**
		 * This class gives you control of the power state of the device.
		 */
		export class PowerManager extends java.lang.Object {
			/**
			 * Wake lock level: Ensures that the CPU is running; the screen and keyboard backlight will be allowed to go off.
			 */
			static PARTIAL_WAKE_LOCK: number;
			/**
			 * Wake lock level: Ensures that the screen is on (but may be dimmed); the keyboard backlight will be allowed to go off.
			 */
			static SCREEN_DIM_WAKE_LOCK: number;
			/**
			 * Wake lock level: Ensures that the screen is on at full brightness; the keyboard backlight will be allowed to go off.
			 */
			static SCREEN_BRIGHT_WAKE_LOCK: number;
			/**
			 * Wake lock level: Ensures that the screen and keyboard backlight are on at full brightness.
			 */
			static FULL_WAKE_LOCK: number;
			/**
			 * Wake lock flag: Turn the screen on when the wake lock is acquired.
			 */
			static ACQUIRE_CAUSES_WAKEUP: number;
			/**
			 * Wake lock flag: When this wake lock is released, poke the user activity timer so the screen stays on for a little longer.
			 */
			static ON_AFTER_RELEASE: number;
			static class: java.lang.Class<android.os.PowerManager>;
			/**
			 * Creates a new wake lock with the specified level and flags.
			 * @param levelAndFlags Combination of wake lock level and flag values defining
			 * @param tag Your class name (or other tag) for debugging purposes.
			 */
			public newWakeLock(levelAndFlags: number, tag: string): android.os.PowerManager.WakeLock;
			/**
			 * Notifies the power manager that user activity happened.
			 * @param when The time of the user activity, in the {@link SystemClock#uptimeMillis()}
			 * @param noChangeLights If true, does not cause the keyboard backlight to turn on
			 */
			public userActivity(when: number, noChangeLights: boolean): void;
			/**
			 * Forces the device to go to sleep.
			 * @param time The time when the request to go to sleep was issued, in the
			 */
			public goToSleep(time: number): void;
			/**
			 * Forces the device to wake up from sleep.
			 * @param time The time when the request to wake up was issued, in the
			 */
			public wakeUp(time: number): void;
			/**
			 * Returns whether the screen is currently on.
			 */
			public isScreenOn(): boolean;
			/**
			 * Reboot the device. Will not return if the reboot is successful.
			 * @param reason code to pass to the kernel (e.g., "recovery") to
			 */
			public reboot(reason: string): void;
		}
		export module PowerManager {
			/**
			 * A wake lock is a mechanism to indicate that your application needs to have the device stay on.
			 */
			export class WakeLock extends java.lang.Object {
				static class: java.lang.Class<android.os.PowerManager.WakeLock>;
				protected finalize(): void;
				/**
				 * Sets whether this WakeLock is reference counted.
				 * @param value True to make the wake lock reference counted, false to
				 */
				public setReferenceCounted(value: boolean): void;
				/**
				 * Acquires the wake lock.
				 */
				public acquire(): void;
				/**
				 * Acquires the wake lock with a timeout.
				 * @param timeout The timeout after which to release the wake lock, in milliseconds.
				 */
				public acquire(timeout: number): void;
				/**
				 * Releases the wake lock.
				 */
				public release(): void;
				/**
				 * Returns true if the wake lock has been acquired but not yet released.
				 */
				public isHeld(): boolean;
				/**
				 * Sets the work source associated with the wake lock.
				 * @param ws The work source, or null if none.
				 */
				public setWorkSource(ws: android.os.WorkSource): void;
				public toString(): string;
			}
		}
		/**
		 * Base interface for a remotable object, the core part of a lightweight remote procedure call mechanism designed for high performance when performing in-process and cross-process calls. This interface describes the abstract protocol for interacting with a remotable object. Do not implement this interface directly, instead extend from Binder. 
		 */
		export class IBinder implements android.os.IIBinder {
			constructor(implementation: android.os.IIBinder);
			/**
			 * The first transaction code available for user commands.
			 */
			static FIRST_CALL_TRANSACTION: number;
			/**
			 * The last transaction code available for user commands.
			 */
			static LAST_CALL_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: pingBinder().
			 */
			static PING_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: dump internal state.
			 */
			static DUMP_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: interrogate the recipient side of the transaction for its canonical interface descriptor.
			 */
			static INTERFACE_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: send a tweet to the target object. The data in the parcel is intended to be delivered to a shared messaging service associated with the object; it can be anything, as long as it is not more than 130 UTF-8 characters to conservatively fit within common messaging services. As part of Build.VERSION_CODES#HONEYCOMB_MR2, all Binder objects are expected to support this protocol for fully integrated tweeting across the platform. To support older code, the default implementation logs the tweet to the main log as a simple emulation of broadcasting it publicly over the Internet. 
			 */
			static TWEET_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: tell an app asynchronously that the caller likes it. The app is responsible for incrementing and maintaining its own like counter, and may display this value to the user to indicate the quality of the app. This is an optional command that applications do not need to handle, so the default implementation is to do nothing. 
			 */
			static LIKE_TRANSACTION: number;
			/**
			 * Flag to #transact: this is a one-way call, meaning that the caller returns immediately, without waiting for a result from the callee. Applies only if the caller and callee are in different processes.
			 */
			static FLAG_ONEWAY: number;
			/**
			 * Get the canonical name of the interface supported by this binder.
			 */
			public getInterfaceDescriptor(): string;
			/**
			 * Check to see if the object still exists. 
			 */
			public pingBinder(): boolean;
			/**
			 * Check to see if the process that the binder is in is still alive.
			 */
			public isBinderAlive(): boolean;
			/**
			 * Attempt to retrieve a local implementation of an interface for this Binder object. If null is returned, you will need to instantiate a proxy class to marshall calls through the transact() method.
			 */
			public queryLocalInterface(descriptor: string): android.os.IIInterface;
			/**
			 * Print the object's state into the given stream. 
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param args additional arguments to the dump request.
			 */
			public dump(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			/**
			 * Like #dump(FileDescriptor, String[]) but always executes asynchronously. If the object is local, a new thread is created to perform the dump.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param args additional arguments to the dump request.
			 */
			public dumpAsync(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			/**
			 * Perform a generic operation with the object. 
			 * @param code The action to perform. This should
			 * @param data Marshalled data to send to the target. Must not be null.
			 * @param reply Marshalled data to be received from the target. May be
			 * @param flags Additional operation flags. Either 0 for a normal
			 */
			public transact(code: number, data: android.os.Parcel, reply: android.os.Parcel, flags: number): boolean;
			/**
			 * Register the recipient for a notification if this binder goes away. If this binder object unexpectedly goes away (typically because its hosting process has been killed), then the given DeathRecipient's DeathRecipient#binderDied DeathRecipient.binderDied() method will be called. 
			 */
			public linkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): void;
			/**
			 * Remove a previously registered death notification. The recipient will no longer be called if this object dies. 
			 */
			public unlinkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): boolean;
		}
		export module IBinder {
			/**
			 * Interface for receiving a callback when the process hosting an IBinder has gone away. #linkToDeath
			 */
			export class DeathRecipient implements android.os.IBinder.IDeathRecipient {
				constructor(implementation: android.os.IBinder.IDeathRecipient);
				public binderDied(): void;
			}
			/**
			 * Interface for receiving a callback when the process hosting an IBinder has gone away. #linkToDeath
			 */
			interface IDeathRecipient {
				binderDied(): void;
			}
		}
		/**
		 * Delegate overriding selected methods of android.os.HandlerThread
		 */
		export class HandlerThread_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.HandlerThread_Delegate>;
			static run(theThread: android.os.HandlerThread): void;
		}
		export class IdleHandlerTest {
			constructor();
			static class: java.lang.Class<android.os.IdleHandlerTest>;
			public testOneShotFirst(): void;
			public testOneShotLater(): void;
			public testRepeatedFirst(): void;
			public testRepeatedLater(): void;
		}
		export module IdleHandlerTest {
			export class BaseTestHandler extends android.os.TestHandlerThread {
				constructor();
				static class: java.lang.Class<android.os.IdleHandlerTest.BaseTestHandler>;
				public go(): void;
				public addIdleHandler(): void;
				public handleMessage(msg: android.os.Message): void;
				public queueIdle(): boolean;
			}
		}
		/**
		 * Information about the current build, extracted from system properties.
		 */
		export class Build extends java.lang.Object {
			constructor();
			/**
			 * Value used for when a build property is unknown.
			 */
			static UNKNOWN: string;
			/**
			 * Either a changelist number, or a label like "M4-rc20".
			 */
			static ID: string;
			/**
			 * A build ID string meant for displaying to the user
			 */
			static DISPLAY: string;
			/**
			 * The name of the overall product.
			 */
			static PRODUCT: string;
			/**
			 * The name of the industrial design.
			 */
			static DEVICE: string;
			/**
			 * The name of the underlying board, like "goldfish".
			 */
			static BOARD: string;
			/**
			 * The name of the instruction set (CPU type + ABI convention) of native code.
			 */
			static CPU_ABI: string;
			/**
			 * The name of the second instruction set (CPU type + ABI convention) of native code.
			 */
			static CPU_ABI2: string;
			/**
			 * The manufacturer of the product/hardware.
			 */
			static MANUFACTURER: string;
			/**
			 * The brand (e.g., carrier) the software is customized for, if any.
			 */
			static BRAND: string;
			/**
			 * The end-user-visible name for the end product.
			 */
			static MODEL: string;
			/**
			 * The system bootloader version number.
			 */
			static BOOTLOADER: string;
			/**
			 * The radio firmware version number.
			 */
			static RADIO: string;
			/**
			 * The name of the hardware (from the kernel command line or /proc).
			 */
			static HARDWARE: string;
			/**
			 * A hardware serial number, if available. Alphanumeric only, case-insensitive.
			 */
			static SERIAL: string;
			/**
			 * The type of build, like "user" or "eng".
			 */
			static TYPE: string;
			/**
			 * Comma-separated tags describing the build, like "unsigned,debug".
			 */
			static TAGS: string;
			/**
			 * A string that uniquely identifies this build. Do not attempt to parse this value.
			 */
			static FINGERPRINT: string;
			static TIME: number;
			static USER: string;
			static HOST: string;
			static class: java.lang.Class<android.os.Build>;
			/**
			 * Returns the version string for the radio firmware. May return null (if, for instance, the radio is not currently on).
			 */
			public static getRadioVersion(): string;
		}
		export module Build {
			/**
			 * Enumeration of the currently known SDK version codes. These are the values that can be found in VERSION#SDK. Version numbers increment monotonically with each official platform release.
			 */
			export class VERSION_CODES extends java.lang.Object {
				constructor();
				/**
				 * Magic version number for a current development build, which has not yet turned into an official release.
				 */
				static CUR_DEVELOPMENT: number;
				/**
				 * October 2008: The original, first, version of Android. Yay!
				 */
				static BASE: number;
				/**
				 * February 2009: First Android update, officially called 1.1.
				 */
				static BASE_1_1: number;
				/**
				 * May 2009: Android 1.5.
				 */
				static CUPCAKE: number;
				/**
				 * September 2009: Android 1.6. 
				 */
				static DONUT: number;
				/**
				 * November 2009: Android 2.0 
				 */
				static ECLAIR: number;
				/**
				 * December 2009: Android 2.0.1
				 */
				static ECLAIR_0_1: number;
				/**
				 * January 2010: Android 2.1
				 */
				static ECLAIR_MR1: number;
				/**
				 * June 2010: Android 2.2
				 */
				static FROYO: number;
				/**
				 * November 2010: Android 2.3
				 */
				static GINGERBREAD: number;
				/**
				 * February 2011: Android 2.3.3.
				 */
				static GINGERBREAD_MR1: number;
				/**
				 * February 2011: Android 3.0.
				 */
				static HONEYCOMB: number;
				/**
				 * May 2011: Android 3.1.
				 */
				static HONEYCOMB_MR1: number;
				/**
				 * June 2011: Android 3.2.
				 */
				static HONEYCOMB_MR2: number;
				/**
				 * October 2011: Android 4.0.
				 */
				static ICE_CREAM_SANDWICH: number;
				/**
				 * December 2011: Android 4.0.3.
				 */
				static ICE_CREAM_SANDWICH_MR1: number;
				/**
				 * June 2012: Android 4.1.
				 */
				static JELLY_BEAN: number;
				/**
				 * Android 4.2: Moar jelly beans!
				 */
				static JELLY_BEAN_MR1: number;
				static class: java.lang.Class<android.os.Build.VERSION_CODES>;
			}
			/**
			 * Various version strings.
			 */
			export class VERSION extends java.lang.Object {
				constructor();
				/**
				 * The internal value used by the underlying source control to represent this build. E.g., a perforce changelist number or a git hash.
				 */
				static INCREMENTAL: string;
				/**
				 * The user-visible version string. E.g., "1.0" or "3.4b5".
				 */
				static RELEASE: string;
				/**
				 * The user-visible SDK version of the framework in its raw String representation; use #SDK_INT instead. Use #SDK_INT to easily get this as an integer.
				 */
				static SDK: string;
				/**
				 * The user-visible SDK version of the framework; its possible values are defined in Build.VERSION_CODES.
				 */
				static SDK_INT: number;
				/**
				 * The current development codename, or the string "REL" if this is a release build.
				 */
				static CODENAME: string;
				static class: java.lang.Class<android.os.Build.VERSION>;
			}
		}
		/**
		 * Representation of a user on the device.
		 */
		export class UserHandle extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Instantiate a new UserHandle from the data in a Parcel that was previously written with #writeToParcel(Parcel, int). Note that you must not use this with data written by #writeToParcel(UserHandle, Parcel) since it is not possible to handle a null UserHandle here. 
			 * @param input in The Parcel containing the previously written UserHandle,
			 */
			constructor(input: android.os.Parcel);
			static CREATOR: android.os.Parcelable.ICreator<android.os.UserHandle>;
			static class: java.lang.Class<android.os.UserHandle>;
			public toString(): string;
			public equals(obj: any): boolean;
			public hashCode(): number;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Write a UserHandle to a Parcel, handling null pointers. Must be read with #readFromParcel(Parcel). 
			 * @param h The UserHandle to be written.
			 * @param out The Parcel in which the UserHandle will be placed.
			 */
			public static writeToParcel(h: android.os.UserHandle, out: android.os.Parcel): void;
			/**
			 * Read a UserHandle from a Parcel that was previously written with #writeToParcel(UserHandle, Parcel), returning either a null or new object as appropriate. 
			 * @param input in The Parcel from which to read the UserHandle
			 */
			public static readFromParcel(input: android.os.Parcel): android.os.UserHandle;
		}
		export class TestHandlerThread extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.TestHandlerThread>;
			public go(): void;
			public doTest(timeout: number): void;
			public getLooper(): android.os.Looper;
			public success(): void;
			public failure(failure: java.lang.RuntimeException): void;
		}
		export module TestHandlerThread {
			export class LooperThread extends java.lang.Thread {
				static class: java.lang.Class<android.os.TestHandlerThread.LooperThread>;
				public run(): void;
			}
		}
		/**
		 * The Binder transaction failed because it was too large.
		 */
		export class TransactionTooLargeException extends android.os.RemoteException {
			constructor();
			static class: java.lang.Class<android.os.TransactionTooLargeException>;
		}
		/**
		 * Base interface for a remotable object, the core part of a lightweight remote procedure call mechanism designed for high performance when performing in-process and cross-process calls. This interface describes the abstract protocol for interacting with a remotable object. Do not implement this interface directly, instead extend from Binder. 
		 */
		interface IIBinder {
			/**
			 * Get the canonical name of the interface supported by this binder.
			 */
			getInterfaceDescriptor(): string;
			/**
			 * Check to see if the object still exists. 
			 */
			pingBinder(): boolean;
			/**
			 * Check to see if the process that the binder is in is still alive.
			 */
			isBinderAlive(): boolean;
			/**
			 * Attempt to retrieve a local implementation of an interface for this Binder object. If null is returned, you will need to instantiate a proxy class to marshall calls through the transact() method.
			 */
			queryLocalInterface(descriptor: string): android.os.IIInterface;
			/**
			 * Print the object's state into the given stream. 
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param args additional arguments to the dump request.
			 */
			dump(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			/**
			 * Like #dump(FileDescriptor, String[]) but always executes asynchronously. If the object is local, a new thread is created to perform the dump.
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param args additional arguments to the dump request.
			 */
			dumpAsync(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			/**
			 * Perform a generic operation with the object. 
			 * @param code The action to perform. This should
			 * @param data Marshalled data to send to the target. Must not be null.
			 * @param reply Marshalled data to be received from the target. May be
			 * @param flags Additional operation flags. Either 0 for a normal
			 */
			transact(code: number, data: android.os.Parcel, reply: android.os.Parcel, flags: number): boolean;
			/**
			 * Register the recipient for a notification if this binder goes away. If this binder object unexpectedly goes away (typically because its hosting process has been killed), then the given DeathRecipient's DeathRecipient#binderDied DeathRecipient.binderDied() method will be called. 
			 */
			linkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): void;
			/**
			 * Remove a previously registered death notification. The recipient will no longer be called if this object dies. 
			 */
			unlinkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): boolean;
		}
		export module IIBinder {
			/**
			 * The first transaction code available for user commands.
			 */
			var FIRST_CALL_TRANSACTION: number;
			/**
			 * The last transaction code available for user commands.
			 */
			var LAST_CALL_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: pingBinder().
			 */
			var PING_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: dump internal state.
			 */
			var DUMP_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: interrogate the recipient side of the transaction for its canonical interface descriptor.
			 */
			var INTERFACE_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: send a tweet to the target object. The data in the parcel is intended to be delivered to a shared messaging service associated with the object; it can be anything, as long as it is not more than 130 UTF-8 characters to conservatively fit within common messaging services. As part of Build.VERSION_CODES#HONEYCOMB_MR2, all Binder objects are expected to support this protocol for fully integrated tweeting across the platform. To support older code, the default implementation logs the tweet to the main log as a simple emulation of broadcasting it publicly over the Internet. 
			 */
			var TWEET_TRANSACTION: number;
			/**
			 * IBinder protocol transaction code: tell an app asynchronously that the caller likes it. The app is responsible for incrementing and maintaining its own like counter, and may display this value to the user to indicate the quality of the app. This is an optional command that applications do not need to handle, so the default implementation is to do nothing. 
			 */
			var LIKE_TRANSACTION: number;
			/**
			 * Flag to #transact: this is a one-way call, meaning that the caller returns immediately, without waiting for a result from the callee. Applies only if the caller and callee are in different processes.
			 */
			var FLAG_ONEWAY: number;
		}
		/**
		 * Helper class that helps you use IBinder objects as reference counted tokens. IBinders make good tokens because we find out when they are removed
		 */
		export class TokenWatcher extends java.lang.Object {
			/**
			 * Construct the TokenWatcher
			 * @param h A handler to call {@link #acquired} and {@link #released}
			 * @param tag A debugging tag for this TokenWatcher
			 */
			constructor(h: android.os.Handler, tag: string);
			static class: java.lang.Class<android.os.TokenWatcher>;
			/**
			 * Called when the number of active tokens goes from 0 to 1.
			 */
			public acquired(): void;
			/**
			 * Called when the number of active tokens goes from 1 to 0.
			 */
			public released(): void;
			/**
			 * Record that this token has been acquired. When acquire is called, and the current count is 0, the acquired method is called on the given handler. 
			 * @param token An IBinder object. If this token has already been acquired,
			 * @param tag A string used by the {@link #dump} method for debugging,
			 */
			public acquire(token: android.os.IIBinder, tag: string): void;
			public cleanup(token: android.os.IIBinder, unlink: boolean): void;
			public release(token: android.os.IIBinder): void;
			public isAcquired(): boolean;
			public dump(): void;
			public dump(pw: java.io.PrintWriter): void;
		}
		export module TokenWatcher {
			export class Death extends java.lang.Object implements android.os.IBinder.IDeathRecipient {
				static class: java.lang.Class<android.os.TokenWatcher.Death>;
				public binderDied(): void;
				protected finalize(): void;
			}
		}
		/**
		 * Takes care of the grunt work of maintaining a list of remote interfaces, typically for the use of performing callbacks from a android.app.Service to its clients. In particular, this:
		 */
		export class RemoteCallbackList<E extends android.os.IIInterface> extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.RemoteCallbackList<any>>;
			/**
			 * Simple version of RemoteCallbackList#register(E, Object) that does not take a cookie object.
			 */
			public register(callback: E): boolean;
			/**
			 * Add a new callback to the list. This callback will remain in the list until a corresponding call to #unregister or its hosting process goes away. If the callback was already registered (determined by checking to see if the IInterface#asBinder callback.asBinder() object is already in the list), then it will be left as-is. Registrations are not counted; a single call to #unregister will remove a callback after any number calls to register it.
			 * @param callback The callback interface to be added to the list. Must
			 * @param cookie Optional additional data to be associated with this
			 */
			public register(callback: E, cookie: any): boolean;
			/**
			 * Remove from the list a callback that was previously added with #register. This uses the IInterface#asBinder callback.asBinder() object to correctly find the previous registration. Registrations are not counted; a single unregister call will remove a callback after any number calls to #register for it.
			 * @param callback The callback to be removed from the list. Passing
			 */
			public unregister(callback: E): boolean;
			/**
			 * Disable this callback list. All registered callbacks are unregistered, and the list is disabled so that future calls to #register will fail. This should be used when a Service is stopping, to prevent clients from registering callbacks after it is stopped.
			 */
			public kill(): void;
			/**
			 * Old version of #onCallbackDied(E, Object) that does not provide a cookie.
			 */
			public onCallbackDied(callback: E): void;
			/**
			 * Called when the process hosting a callback in the list has gone away. The default implementation calls #onCallbackDied(E) for backwards compatibility. 
			 * @param callback The callback whose process has died. Note that, since
			 * @param cookie The cookie object original provided to
			 */
			public onCallbackDied(callback: E, cookie: any): void;
			/**
			 * Prepare to start making calls to the currently registered callbacks. This creates a copy of the callback list, which you can retrieve items from using #getBroadcastItem. Note that only one broadcast can be active at a time, so you must be sure to always call this from the same thread (usually by scheduling with Handler) or do your own synchronization. You must call #finishBroadcast when done.
			 */
			public beginBroadcast(): number;
			/**
			 * Retrieve an item in the active broadcast that was previously started with #beginBroadcast. This can <em>only</em> be called after the broadcast is started, and its data is no longer valid after calling #finishBroadcast.
			 * @param index Which of the registered callbacks you would like to
			 */
			public getBroadcastItem(index: number): E;
			/**
			 * Retrieve the cookie associated with the item returned by #getBroadcastItem(int). #getBroadcastItem
			 */
			public getBroadcastCookie(index: number): any;
			/**
			 * Clean up the state of a broadcast previously initiated by calling #beginBroadcast. This must always be called when you are done with a broadcast.
			 */
			public finishBroadcast(): void;
			/**
			 * Returns the number of registered callbacks. Note that the number of registered callbacks may differ from the value returned by #beginBroadcast() since the former returns the number of callbacks registered at the time of the call and the second the number of callback to which the broadcast will be delivered.
			 */
			public getRegisteredCallbackCount(): number;
		}
		export module RemoteCallbackList {
			export class Callback extends java.lang.Object implements android.os.IBinder.IDeathRecipient {
				static class: java.lang.Class<android.os.RemoteCallbackList.Callback>;
				public binderDied(): void;
			}
		}
		/**
		 * The exception that is thrown when an application attempts to perform a networking operation on its main thread.
		 */
		export class NetworkOnMainThreadException extends java.lang.RuntimeException {
			constructor();
			static class: java.lang.Class<android.os.NetworkOnMainThreadException>;
		}
		export class BroadcasterTest {
			constructor();
			static class: java.lang.Class<android.os.BroadcasterTest>;
			public test1(): void;
			public test2(): void;
			public test3(): void;
			public test4(): void;
			public test5(): void;
			public test6(): void;
		}
		export module BroadcasterTest {
			export class Tests2and3 extends android.os.HandlerTester {
				static class: java.lang.Class<android.os.BroadcasterTest.Tests2and3>;
				public go(): void;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * This class is a Parcelable wrapper around UUID which is an immutable representation of a 128-bit universally unique identifier.
		 */
		export class ParcelUuid extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Constructor creates a ParcelUuid instance from the given UUID.
			 * @param uuid UUID
			 */
			constructor(uuid: java.util.UUID);
			static CREATOR: android.os.Parcelable.ICreator<android.os.ParcelUuid>;
			static class: java.lang.Class<android.os.ParcelUuid>;
			/**
			 * Creates a new ParcelUuid from a string representation of UUID.
			 * @param uuid 
			 */
			public static fromString(uuid: string): android.os.ParcelUuid;
			/**
			 * Get the UUID represented by the ParcelUuid.
			 */
			public getUuid(): java.util.UUID;
			/**
			 * Returns a string representation of the ParcelUuid For example: 0000110B-0000-1000-8000-00805F9B34FB will be the return value.
			 */
			public toString(): string;
			public hashCode(): number;
			/**
			 * Compares this ParcelUuid to another object for equality. If object is not null, is a ParcelUuid instance, and all bits are equal, then true is returned.
			 * @param object 
			 */
			public equals(object: any): boolean;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * MemoryFile is a wrapper for the Linux ashmem driver. MemoryFiles are backed by shared memory, which can be optionally set to be purgeable. Purgeable files may have their contents reclaimed by the kernel in low memory conditions (only if allowPurging is set to true). After a file is purged, attempts to read or write the file will cause an IOException to be thrown.
		 */
		export class MemoryFile extends java.lang.Object {
			/**
			 * Allocates a new ashmem region. The region is initially not purgable.
			 * @param name optional name for the file (can be null).
			 * @param length of the memory file in bytes.
			 */
			constructor(name: string, length: number);
			static class: java.lang.Class<android.os.MemoryFile>;
			/**
			 * Closes the memory file. If there are no other open references to the memory file, it will be deleted.
			 */
			public close(): void;
			protected finalize(): void;
			/**
			 * Returns the length of the memory file.
			 */
			public length(): number;
			/**
			 * Is memory file purging enabled?
			 */
			public isPurgingAllowed(): boolean;
			/**
			 * Enables or disables purging of the memory file.
			 * @param allowPurging true if the operating system can purge the contents
			 */
			public allowPurging(allowPurging: boolean): boolean;
			/**
			 * Creates a new InputStream for reading from the memory file.
			 */
			public getInputStream(): java.io.InputStream;
			/**
			 * Creates a new OutputStream for writing to the memory file.
			 */
			public getOutputStream(): java.io.OutputStream;
			/**
			 * Reads bytes from the memory file. Will throw an IOException if the file has been purged.
			 * @param buffer byte array to read bytes into.
			 * @param srcOffset offset into the memory file to read from.
			 * @param destOffset offset into the byte array buffer to read into.
			 * @param count number of bytes to read.
			 */
			public readBytes(buffer: native.Array<number>, srcOffset: number, destOffset: number, count: number): number;
			/**
			 * Write bytes to the memory file. Will throw an IOException if the file has been purged.
			 * @param buffer byte array to write bytes from.
			 * @param srcOffset offset into the byte array buffer to write from.
			 * @param destOffset offset into the memory file to write to.
			 * @param count number of bytes to write.
			 */
			public writeBytes(buffer: native.Array<number>, srcOffset: number, destOffset: number, count: number): void;
		}
		export module MemoryFile {
			export class MemoryInputStream extends java.io.InputStream {
				static class: java.lang.Class<android.os.MemoryFile.MemoryInputStream>;
				public available(): number;
				public markSupported(): boolean;
				public mark(readlimit: number): void;
				public reset(): void;
				public read(): number;
				public read(buffer: native.Array<number>, offset: number, count: number): number;
				public skip(n: number): any;
				/**
				 * Equivalent to read(buffer, 0, buffer.length).
				 */
				read(buffer: native.Array<number>): number;
			}
			export class MemoryOutputStream extends java.io.OutputStream {
				static class: java.lang.Class<android.os.MemoryFile.MemoryOutputStream>;
				public write(buffer: native.Array<number>, offset: number, count: number): void;
				public write(oneByte: number): void;
				/**
				 * Equivalent to write(buffer, 0, buffer.length).
				 */
				write(buffer: native.Array<number>): void;
			}
		}
		/**
		 * Core timekeeping facilities.
		 */
		export class SystemClock extends java.lang.Object {
			static class: java.lang.Class<android.os.SystemClock>;
			/**
			 * Waits a given number of milliseconds (of uptimeMillis) before returning. Similar to java.lang.Thread#sleep(long), but does not throw InterruptedException; Thread#interrupt() events are deferred until the next interruptible operation. Does not return until at least the specified number of milliseconds has elapsed.
			 * @param ms to sleep before returning, in milliseconds of uptime.
			 */
			public static sleep(ms: number): void;
			/**
			 * Sets the current wall time, in milliseconds. Requires the calling process to have appropriate permissions.
			 */
			public static setCurrentTimeMillis(millis: number): boolean;
			/**
			 * Returns milliseconds since boot, not counting time spent in deep sleep. <b>Note:</b> This value may get reset occasionally (before it would otherwise wrap around).
			 */
			public static uptimeMillis(): any;
			/**
			 * Returns milliseconds since boot, including time spent in sleep.
			 */
			public static elapsedRealtime(): any;
			/**
			 * Returns nanoseconds since boot, including time spent in sleep.
			 */
			public static elapsedRealtimeNanos(): any;
			/**
			 * Returns milliseconds running in the current thread. 
			 */
			public static currentThreadTimeMillis(): any;
		}
		/**
		 * Container for a message (data and object references) that can be sent through an IBinder. A Parcel can contain both flattened data that will be unflattened on the other side of the IPC (using the various methods here for writing specific types, or the general Parcelable interface), and references to live IBinder objects that will result in the other side receiving a proxy IBinder connected with the original IBinder in the Parcel.
		 */
		export class Parcel extends java.lang.Object {
			static STRING_CREATOR: android.os.Parcelable.ICreator<string>;
			static class: java.lang.Class<android.os.Parcel>;
			/**
			 * Retrieve a new Parcel object from the pool.
			 */
			public static obtain(): android.os.Parcel;
			/**
			 * Put a Parcel object back into the pool. You must not touch the object after this call.
			 */
			public recycle(): void;
			/**
			 * Returns the total amount of data contained in the parcel.
			 */
			public dataSize(): number;
			/**
			 * Returns the amount of data remaining to be read from the parcel. That is, #dataSize-#dataPosition.
			 */
			public dataAvail(): number;
			/**
			 * Returns the current position in the parcel data. Never more than #dataSize.
			 */
			public dataPosition(): number;
			/**
			 * Returns the total amount of space in the parcel. This is always >= #dataSize. The difference between it and dataSize() is the amount of room left until the parcel needs to re-allocate its data buffer.
			 */
			public dataCapacity(): number;
			/**
			 * Change the amount of data in the parcel. Can be either smaller or larger than the current size. If larger than the current capacity, more memory will be allocated.
			 * @param size The new number of bytes in the Parcel.
			 */
			public setDataSize(size: number): void;
			/**
			 * Move the current read/write position in the parcel.
			 * @param pos New offset in the parcel; must be between 0 and
			 */
			public setDataPosition(pos: number): void;
			/**
			 * Change the capacity (current available space) of the parcel.
			 * @param size The new capacity of the parcel, in bytes. Can not be
			 */
			public setDataCapacity(size: number): void;
			/**
			 * Returns the raw bytes of the parcel.
			 */
			public marshall(): native.Array<number>;
			/**
			 * Set the bytes in data to be the raw bytes of this Parcel.
			 */
			public unmarshall(data: native.Array<number>, offest: number, length: number): void;
			public appendFrom(parcel: android.os.Parcel, offset: number, length: number): void;
			/**
			 * Report whether the parcel contains any marshalled file descriptors.
			 */
			public hasFileDescriptors(): boolean;
			/**
			 * Store or read an IBinder interface token in the parcel at the current #dataPosition. This is used to validate that the marshalled transaction is intended for the target interface.
			 */
			public writeInterfaceToken(interfaceName: string): void;
			public enforceInterface(interfaceName: string): void;
			/**
			 * Write a byte array into the parcel at the current #dataPosition, growing #dataCapacity if needed.
			 * @param b Bytes to place into the parcel.
			 */
			public writeByteArray(b: native.Array<number>): void;
			/**
			 * Write a byte array into the parcel at the current #dataPosition, growing #dataCapacity if needed.
			 * @param b Bytes to place into the parcel.
			 * @param offset Index of first byte to be written.
			 * @param len Number of bytes to write.
			 */
			public writeByteArray(b: native.Array<number>, offset: number, len: number): void;
			/**
			 * Write an integer value into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeInt(val: number): void;
			/**
			 * Write a long integer value into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeLong(val: number): void;
			/**
			 * Write a floating point value into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeFloat(val: number): void;
			/**
			 * Write a double precision floating point value into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeDouble(val: number): void;
			/**
			 * Write a string value into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeString(val: string): void;
			/**
			 * Write an object into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeStrongBinder(val: android.os.IIBinder): void;
			/**
			 * Write an object into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeStrongInterface(val: android.os.IIInterface): void;
			/**
			 * Write a FileDescriptor into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeFileDescriptor(val: java.io.FileDescriptor): void;
			/**
			 * Write a byte value into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeByte(val: number): void;
			/**
			 * Please use #writeBundle instead. Flattens a Map into the parcel at the current dataPosition(), growing dataCapacity() if needed. The Map keys must be String objects. The Map values are written using #writeValue and must follow the specification there. 
			 */
			public writeMap(val: java.util.IMap<any, any>): void;
			/**
			 * Flatten a Map into the parcel at the current dataPosition(), growing dataCapacity() if needed. The Map keys must be String objects.
			 */
			writeMapInternal(val: java.util.IMap<string, any>): void;
			/**
			 * Flatten a Bundle into the parcel at the current dataPosition(), growing dataCapacity() if needed.
			 */
			public writeBundle(val: android.os.Bundle): void;
			/**
			 * Flatten a List into the parcel at the current dataPosition(), growing dataCapacity() if needed. The List values are written using #writeValue and must follow the specification there.
			 */
			public writeList(val: java.util.IList<any>): void;
			/**
			 * Flatten an Object array into the parcel at the current dataPosition(), growing dataCapacity() if needed. The array values are written using #writeValue and must follow the specification there.
			 */
			public writeArray(val: native.Array<any>): void;
			/**
			 * Flatten a generic SparseArray into the parcel at the current dataPosition(), growing dataCapacity() if needed. The SparseArray values are written using #writeValue and must follow the specification there.
			 */
			public writeSparseArray(val: android.util.SparseArray<any>): void;
			public writeSparseBooleanArray(val: android.util.SparseBooleanArray): void;
			public writeBooleanArray(val: native.Array<boolean>): void;
			public createBooleanArray(): native.Array<boolean>;
			public readBooleanArray(val: native.Array<boolean>): void;
			public writeCharArray(val: native.Array<string>): void;
			public createCharArray(): native.Array<string>;
			public readCharArray(val: native.Array<string>): void;
			public writeIntArray(val: native.Array<number>): void;
			public createIntArray(): native.Array<number>;
			public readIntArray(val: native.Array<number>): void;
			public writeLongArray(val: native.Array<number>): void;
			public createLongArray(): native.Array<number>;
			public readLongArray(val: native.Array<number>): void;
			public writeFloatArray(val: native.Array<number>): void;
			public createFloatArray(): native.Array<number>;
			public readFloatArray(val: native.Array<number>): void;
			public writeDoubleArray(val: native.Array<number>): void;
			public createDoubleArray(): native.Array<number>;
			public readDoubleArray(val: native.Array<number>): void;
			public writeStringArray(val: native.Array<string>): void;
			public createStringArray(): native.Array<string>;
			public readStringArray(val: native.Array<string>): void;
			public writeBinderArray(val: native.Array<android.os.IIBinder>): void;
			public createBinderArray(): native.Array<android.os.IIBinder>;
			public readBinderArray(val: native.Array<android.os.IIBinder>): void;
			/**
			 * Flatten a List containing a particular object type into the parcel, at the current dataPosition() and growing dataCapacity() if needed. The type of the objects in the list must be one that implements Parcelable. Unlike the generic writeList() method, however, only the raw data of the objects is written and not their type, so you must use the corresponding readTypedList() to unmarshall them.
			 * @param val The list of objects to be written.
			 */
			public writeTypedList<T extends android.os.IParcelable>(val: java.util.IList<T>): void;
			/**
			 * Flatten a List containing String objects into the parcel, at the current dataPosition() and growing dataCapacity() if needed. They can later be retrieved with #createStringArrayList or #readStringList.
			 * @param val The list of strings to be written.
			 */
			public writeStringList(val: java.util.IList<string>): void;
			/**
			 * Flatten a List containing IBinder objects into the parcel, at the current dataPosition() and growing dataCapacity() if needed. They can later be retrieved with #createBinderArrayList or #readBinderList.
			 * @param val The list of strings to be written.
			 */
			public writeBinderList(val: java.util.IList<android.os.IIBinder>): void;
			/**
			 * Flatten a heterogeneous array containing a particular object type into the parcel, at the current dataPosition() and growing dataCapacity() if needed. The type of the objects in the array must be one that implements Parcelable. Unlike the #writeParcelableArray method, however, only the raw data of the objects is written and not their type, so you must use #readTypedArray with the correct corresponding Parcelable.Creator implementation to unmarshall them.
			 * @param val The array of objects to be written.
			 * @param parcelableFlags Contextual flags as per
			 */
			public writeTypedArray<T extends android.os.IParcelable>(val: native.Array<T>, parcelableFlags: number): void;
			/**
			 * Flatten a generic object in to a parcel. The given Object value may currently be one of the following types:
			 */
			public writeValue(v: any): void;
			/**
			 * Flatten the name of the class of the Parcelable and its contents into the parcel.
			 * @param p The Parcelable object to be written.
			 * @param parcelableFlags Contextual flags as per
			 */
			public writeParcelable(p: android.os.IParcelable, parcelableFlags: number): void;
			/**
			 * Write a generic serializable object in to a Parcel. It is strongly recommended that this method be avoided, since the serialization overhead is extremely large, and this approach will be much slower than using the other approaches to writing data in to a Parcel.
			 */
			public writeSerializable(s: java.io.ISerializable): void;
			/**
			 * Special function for writing an exception result at the header of a parcel, to be used when returning an exception from a transaction. Note that this currently only supports a few exception types; any other exception will be re-thrown by this function as a RuntimeException (to be caught by the system's last-resort exception handling when dispatching a transaction). 
			 * @param e The Exception to be written.
			 */
			public writeException(e: java.lang.Exception): void;
			/**
			 * Special function for writing information at the front of the Parcel indicating that no exception occurred.
			 */
			public writeNoException(): void;
			/**
			 * Special function for reading an exception result from the header of a parcel, to be used after receiving the result of a transaction. This will throw the exception for you if it had been written to the Parcel, otherwise return and let you read the normal result data from the Parcel.
			 */
			public readException(): void;
			/**
			 * Use this function for customized exception handling. customized method call this method for all unknown case
			 * @param code exception code
			 * @param msg exception message
			 */
			public readException(code: number, msg: string): void;
			/**
			 * Read an integer value from the parcel at the current dataPosition().
			 */
			public readInt(): number;
			/**
			 * Read a long integer value from the parcel at the current dataPosition().
			 */
			public readLong(): any;
			/**
			 * Read a floating point value from the parcel at the current dataPosition().
			 */
			public readFloat(): number;
			/**
			 * Read a double precision floating point value from the parcel at the current dataPosition().
			 */
			public readDouble(): any;
			/**
			 * Read a string value from the parcel at the current dataPosition().
			 */
			public readString(): string;
			/**
			 * Read an object from the parcel at the current dataPosition().
			 */
			public readStrongBinder(): android.os.IIBinder;
			/**
			 * Read a FileDescriptor from the parcel at the current dataPosition().
			 */
			public readFileDescriptor(): android.os.ParcelFileDescriptor;
			static openFileDescriptor(file: string, mode: number): java.io.FileDescriptor;
			static dupFileDescriptor(orig: java.io.FileDescriptor): java.io.FileDescriptor;
			static closeFileDescriptor(desc: java.io.FileDescriptor): void;
			static clearFileDescriptor(desc: java.io.FileDescriptor): void;
			/**
			 * Read a byte value from the parcel at the current dataPosition().
			 */
			public readByte(): number;
			/**
			 * Please use #readBundle(ClassLoader) instead (whose data must have been written with #writeBundle. Read into an existing Map object from the parcel at the current dataPosition().
			 */
			public readMap(outVal: java.util.IMap<any, any>, loader: java.lang.ClassLoader): void;
			/**
			 * Read into an existing List object from the parcel at the current dataPosition(), using the given class loader to load any enclosed Parcelables. If it is null, the default class loader is used.
			 */
			public readList(outVal: java.util.IList<any>, loader: java.lang.ClassLoader): void;
			/**
			 * Please use #readBundle(ClassLoader) instead (whose data must have been written with #writeBundle. Read and return a new HashMap object from the parcel at the current dataPosition(), using the given class loader to load any enclosed Parcelables. Returns null if the previously written map object was null.
			 */
			public readHashMap(loader: java.lang.ClassLoader): java.util.HashMap<any, any>;
			/**
			 * Read and return a new Bundle object from the parcel at the current dataPosition(). Returns null if the previously written Bundle object was null.
			 */
			public readBundle(): android.os.Bundle;
			/**
			 * Read and return a new Bundle object from the parcel at the current dataPosition(), using the given class loader to initialize the class loader of the Bundle for later retrieval of Parcelable objects. Returns null if the previously written Bundle object was null.
			 */
			public readBundle(loader: java.lang.ClassLoader): android.os.Bundle;
			/**
			 * Read and return a byte[] object from the parcel.
			 */
			public createByteArray(): native.Array<number>;
			/**
			 * Read a byte[] object from the parcel and copy it into the given byte array.
			 */
			public readByteArray(val: native.Array<number>): void;
			/**
			 * Read and return a new ArrayList object from the parcel at the current dataPosition(). Returns null if the previously written list object was null. The given class loader will be used to load any enclosed Parcelables.
			 */
			public readArrayList(loader: java.lang.ClassLoader): java.util.ArrayList<any>;
			/**
			 * Read and return a new Object array from the parcel at the current dataPosition(). Returns null if the previously written array was null. The given class loader will be used to load any enclosed Parcelables.
			 */
			public readArray(loader: java.lang.ClassLoader): native.Array<any>;
			/**
			 * Read and return a new SparseArray object from the parcel at the current dataPosition(). Returns null if the previously written list object was null. The given class loader will be used to load any enclosed Parcelables.
			 */
			public readSparseArray(loader: java.lang.ClassLoader): android.util.SparseArray<any>;
			/**
			 * Read and return a new SparseBooleanArray object from the parcel at the current dataPosition(). Returns null if the previously written list object was null.
			 */
			public readSparseBooleanArray(): android.util.SparseBooleanArray;
			/**
			 * Read and return a new ArrayList containing a particular object type from the parcel that was written with #writeTypedList at the current dataPosition(). Returns null if the previously written list object was null. The list <em>must</em> have previously been written via #writeTypedList with the same object type.
			 */
			public createTypedArrayList<T>(c: android.os.Parcelable.ICreator<T>): java.util.ArrayList<T>;
			/**
			 * Read into the given List items containing a particular object type that were written with #writeTypedList at the current dataPosition(). The list <em>must</em> have previously been written via #writeTypedList with the same object type.
			 */
			public readTypedList<T>(list: java.util.IList<T>, c: android.os.Parcelable.ICreator<T>): void;
			/**
			 * Read and return a new ArrayList containing String objects from the parcel that was written with #writeStringList at the current dataPosition(). Returns null if the previously written list object was null.
			 */
			public createStringArrayList(): java.util.ArrayList<string>;
			/**
			 * Read and return a new ArrayList containing IBinder objects from the parcel that was written with #writeBinderList at the current dataPosition(). Returns null if the previously written list object was null.
			 */
			public createBinderArrayList(): java.util.ArrayList<android.os.IIBinder>;
			/**
			 * Read into the given List items String objects that were written with #writeStringList at the current dataPosition().
			 */
			public readStringList(list: java.util.IList<string>): void;
			/**
			 * Read into the given List items IBinder objects that were written with #writeBinderList at the current dataPosition().
			 */
			public readBinderList(list: java.util.IList<android.os.IIBinder>): void;
			/**
			 * Read and return a new array containing a particular object type from the parcel at the current dataPosition(). Returns null if the previously written array was null. The array <em>must</em> have previously been written via #writeTypedArray with the same object type.
			 */
			public createTypedArray<T>(c: android.os.Parcelable.ICreator<T>): native.Array<T>;
			public readTypedArray<T>(val: native.Array<T>, c: android.os.Parcelable.ICreator<T>): void;
			/**
			 * Write a heterogeneous array of Parcelable objects into the Parcel. Each object in the array is written along with its class name, so that the correct class can later be instantiated. As a result, this has significantly more overhead than #writeTypedArray, but will correctly handle an array containing more than one type of object.
			 * @param value The array of objects to be written.
			 * @param parcelableFlags Contextual flags as per
			 */
			public writeParcelableArray<T extends android.os.IParcelable>(value: native.Array<T>, parcelableFlags: number): void;
			/**
			 * Read a typed object from a parcel. The given class loader will be used to load any enclosed Parcelables. If it is null, the default class loader will be used.
			 */
			public readValue(loader: java.lang.ClassLoader): any;
			/**
			 * Read and return a new Parcelable from the parcel. The given class loader will be used to load any enclosed Parcelables. If it is null, the default class loader will be used.
			 * @param loader A ClassLoader from which to instantiate the Parcelable
			 */
			public readParcelable<T extends android.os.IParcelable>(loader: java.lang.ClassLoader): T;
			/**
			 * Read and return a new Parcelable array from the parcel. The given class loader will be used to load any enclosed Parcelables.
			 */
			public readParcelableArray(loader: java.lang.ClassLoader): native.Array<android.os.IParcelable>;
			/**
			 * Read and return a new Serializable object from the parcel.
			 */
			public readSerializable(): java.io.ISerializable;
			public static obtain(obj: number): android.os.Parcel;
			protected finalize(): void;
			readMapInternal(outVal: java.util.IMap<any, any>, N: number, loader: java.lang.ClassLoader): void;
		}
		export class AsyncTask<Params, Progress, Result> extends java.lang.Object {
			/**
			 * Creates a new asynchronous task. This constructor must be invoked on the UI thread.
			 */
			constructor();
			/**
			 * An Executor that can be used to execute tasks in parallel.
			 */
			static THREAD_POOL_EXECUTOR: java.util.concurrent.IExecutor;
			/**
			 * An Executor that executes tasks one at a time in serial order. This serialization is global to a particular process.
			 */
			static SERIAL_EXECUTOR: java.util.concurrent.IExecutor;
			static class: java.lang.Class<android.os.AsyncTask<any, any, any>>;
			/**
			 * Returns the current status of this task.
			 */
			public getStatus(): android.os.AsyncTask.Status;
			/**
			 * Override this method to perform a computation on a background thread. The specified parameters are the parameters passed to #execute by the caller of this task.
			 * @param params The parameters of the task.
			 */
			protected doInBackground(params: native.Array<Params>): Result;
			/**
			 * Runs on the UI thread before #doInBackground.
			 */
			protected onPreExecute(): void;
			/**
			 * @param result The result of the operation computed by {@link #doInBackground}.
			 */
			protected onPostExecute(result: Result): void;
			/**
			 * Runs on the UI thread after #publishProgress is invoked. The specified values are the values passed to #publishProgress.
			 * @param values The values indicating progress.
			 */
			protected onProgressUpdate(values: native.Array<Progress>): void;
			/**
			 * @param result The result, if any, computed in
			 */
			protected onCancelled(result: Result): void;
			protected onCancelled(): void;
			/**
			 * Returns <tt>true</tt> if this task was cancelled before it completed normally. If you are calling #cancel(boolean) on the task, the value returned by this method should be checked periodically from #doInBackground(Object[]) to end the task as soon as possible.
			 */
			public isCancelled(): boolean;
			/**
			 * @param mayInterruptIfRunning <tt>true</tt> if the thread executing this
			 */
			public cancel(mayInterruptIfRunning: boolean): boolean;
			/**
			 * Waits if necessary for the computation to complete, and then retrieves its result.
			 */
			public get(): Result;
			/**
			 * Waits if necessary for at most the given time for the computation to complete, and then retrieves its result.
			 * @param timeout Time to wait before cancelling the operation.
			 * @param unit The time unit for the timeout.
			 */
			public get(timeout: number, unit: java.util.concurrent.TimeUnit): Result;
			/**
			 * Executes the task with the specified parameters. The task returns itself (this) so that the caller can keep a reference to it. 
			 * @param params The parameters of the task.
			 */
			public execute(params: native.Array<Params>): android.os.AsyncTask<Params, Progress, Result>;
			/**
			 * Executes the task with the specified parameters. The task returns itself (this) so that the caller can keep a reference to it. 
			 * @param exec The executor to use. {@link #THREAD_POOL_EXECUTOR} is available as a
			 * @param params The parameters of the task.
			 */
			public executeOnExecutor(exec: java.util.concurrent.IExecutor, params: native.Array<Params>): android.os.AsyncTask<Params, Progress, Result>;
			/**
			 * Convenience version of #execute(Object...) for use with a simple Runnable object. See #execute(Object[]) for more information on the order of execution.
			 */
			public static execute(runnable: java.lang.IRunnable): void;
			/**
			 * This method can be invoked from #doInBackground to publish updates on the UI thread while the background computation is still running. Each call to this method will trigger the execution of #onProgressUpdate on the UI thread.
			 * @param values The progress values to update the UI with.
			 */
			protected publishProgress(values: native.Array<Progress>): void;
		}
		export module AsyncTask {
			/**
			 * Indicates the current status of the task. Each status will be set only once during the lifetime of a task.
			 */
			export enum Status {
				PENDING,
				RUNNING,
				FINISHED
			}
			export class SerialExecutor extends java.lang.Object implements java.util.concurrent.IExecutor {
				static class: java.lang.Class<android.os.AsyncTask.SerialExecutor>;
				public execute(r: java.lang.IRunnable): void;
				protected scheduleNext(): void;
			}
			export class WorkerRunnable<Params, Result> extends java.lang.Object {
				static class: java.lang.Class<android.os.AsyncTask.WorkerRunnable<any, any>>;
			}
			export class InternalHandler extends android.os.Handler {
				static class: java.lang.Class<android.os.AsyncTask.InternalHandler>;
				public handleMessage(msg: android.os.Message): void;
			}
			export class AsyncTaskResult<Data> extends java.lang.Object {
				static class: java.lang.Class<android.os.AsyncTask.AsyncTaskResult<any>>;
			}
		}
		/**
		 * Base class for Binder interfaces. When defining a new interface, you must derive it from IInterface.
		 */
		export class IInterface implements android.os.IIInterface {
			constructor(implementation: android.os.IIInterface);
			/**
			 * Retrieve the Binder object associated with this interface. You must use this instead of a plain cast, so that proxy objects can return the correct result.
			 */
			public asBinder(): android.os.IIBinder;
		}
		export class ZygoteStartFailedEx extends java.lang.Exception {
			static class: java.lang.Class<android.os.ZygoteStartFailedEx>;
		}
		/**
		 * A Handler allows you to send and process Message and Runnable objects associated with a thread's MessageQueue. Each Handler instance is associated with a single thread and that thread's message queue. When you create a new Handler, it is bound to the thread / message queue of the thread that is creating it -- from that point on, it will deliver messages and runnables to that message queue and execute them as they come out of the message queue. 
		 */
		export class Handler extends java.lang.Object {
			/**
			 * Default constructor associates this handler with the Looper for the current thread.
			 */
			constructor();
			/**
			 * Constructor associates this handler with the Looper for the current thread and takes a callback interface in which you can handle messages.
			 * @param callback The callback interface in which to handle messages, or null.
			 */
			constructor(callback: android.os.Handler.ICallback);
			/**
			 * Use the provided Looper instead of the default one.
			 * @param looper The looper, must not be null.
			 */
			constructor(looper: android.os.Looper);
			/**
			 * Use the provided Looper instead of the default one and take a callback interface in which to handle messages.
			 * @param looper The looper, must not be null.
			 * @param callback The callback interface in which to handle messages, or null.
			 */
			constructor(looper: android.os.Looper, callback: android.os.Handler.ICallback);
			static class: java.lang.Class<android.os.Handler>;
			/**
			 * Subclasses must implement this to receive messages.
			 */
			public handleMessage(msg: android.os.Message): void;
			/**
			 * Handle system messages here.
			 */
			public dispatchMessage(msg: android.os.Message): void;
			/**
			 * Returns a string representing the name of the specified message. The default implementation will either return the class name of the message callback if any, or the hexadecimal representation of the message "what" field. 
			 * @param message The message whose name is being queried
			 */
			public getMessageName(message: android.os.Message): string;
			/**
			 * Returns a new android.os.Message Message from the global message pool. More efficient than creating and allocating new instances. The retrieved message has its handler set to this instance (Message.target == this). If you don't want that facility, just call Message.obtain() instead.
			 */
			public obtainMessage(): android.os.Message;
			/**
			 * Same as #obtainMessage(), except that it also sets the what member of the returned Message. 
			 * @param what Value to assign to the returned Message.what field.
			 */
			public obtainMessage(what: number): android.os.Message;
			/**
			 *  Same as #obtainMessage(), except that it also sets the what and obj members of the returned Message. 
			 * @param what Value to assign to the returned Message.what field.
			 * @param obj Value to assign to the returned Message.obj field.
			 */
			public obtainMessage(what: number, obj: any): android.os.Message;
			/**
			 *  Same as #obtainMessage(), except that it also sets the what, arg1 and arg2 members of the returned Message.
			 * @param what Value to assign to the returned Message.what field.
			 * @param arg1 Value to assign to the returned Message.arg1 field.
			 * @param arg2 Value to assign to the returned Message.arg2 field.
			 */
			public obtainMessage(what: number, arg1: number, arg2: number): android.os.Message;
			/**
			 *  Same as #obtainMessage(), except that it also sets the what, obj, arg1,and arg2 values on the returned Message.
			 * @param what Value to assign to the returned Message.what field.
			 * @param arg1 Value to assign to the returned Message.arg1 field.
			 * @param arg2 Value to assign to the returned Message.arg2 field.
			 * @param obj Value to assign to the returned Message.obj field.
			 */
			public obtainMessage(what: number, arg1: number, arg2: number, obj: any): android.os.Message;
			/**
			 * Causes the Runnable r to be added to the message queue. The runnable will be run on the thread to which this handler is attached. 
			 * @param r The Runnable that will be executed.
			 */
			public post(r: java.lang.IRunnable): boolean;
			/**
			 * Causes the Runnable r to be added to the message queue, to be run at a specific time given by <var>uptimeMillis</var>. <b>The time-base is android.os.SystemClock#uptimeMillis.</b> The runnable will be run on the thread to which this handler is attached.
			 * @param r The Runnable that will be executed.
			 * @param uptimeMillis The absolute time at which the callback should run,
			 */
			public postAtTime(r: java.lang.IRunnable, uptimeMillis: number): boolean;
			/**
			 * Causes the Runnable r to be added to the message queue, to be run at a specific time given by <var>uptimeMillis</var>. <b>The time-base is android.os.SystemClock#uptimeMillis.</b> The runnable will be run on the thread to which this handler is attached.
			 * @param r The Runnable that will be executed.
			 * @param token uptimeMillis The absolute time at which the callback should run,
			 * @param uptimeMillis 
			 */
			public postAtTime(r: java.lang.IRunnable, token: any, uptimeMillis: number): boolean;
			/**
			 * Causes the Runnable r to be added to the message queue, to be run after the specified amount of time elapses. The runnable will be run on the thread to which this handler is attached. 
			 * @param r The Runnable that will be executed.
			 * @param delayMillis The delay (in milliseconds) until the Runnable
			 */
			public postDelayed(r: java.lang.IRunnable, delayMillis: number): boolean;
			/**
			 * Posts a message to an object that implements Runnable. Causes the Runnable r to executed on the next iteration through the message queue. The runnable will be run on the thread to which this handler is attached. <b>This method is only for use in very special circumstances -- it can easily starve the message queue, cause ordering problems, or have other unexpected side-effects.</b> 
			 * @param r The Runnable that will be executed.
			 */
			public postAtFrontOfQueue(r: java.lang.IRunnable): boolean;
			/**
			 * Remove any pending posts of Runnable r that are in the message queue.
			 */
			public removeCallbacks(r: java.lang.IRunnable): void;
			/**
			 * Remove any pending posts of Runnable <var>r</var> with Object <var>token</var> that are in the message queue. If <var>token</var> is null, all callbacks will be removed.
			 */
			public removeCallbacks(r: java.lang.IRunnable, token: any): void;
			/**
			 * Pushes a message onto the end of the message queue after all pending messages before the current time. It will be received in #handleMessage, in the thread attached to this handler. 
			 */
			public sendMessage(msg: android.os.Message): boolean;
			/**
			 * Sends a Message containing only the what value. 
			 */
			public sendEmptyMessage(what: number): boolean;
			/**
			 * Sends a Message containing only the what value, to be delivered after the specified amount of time elapses. #sendMessageDelayed(android.os.Message, long) 
			 */
			public sendEmptyMessageDelayed(what: number, delayMillis: number): boolean;
			/**
			 * Sends a Message containing only the what value, to be delivered at a specific time. #sendMessageAtTime(android.os.Message, long) 
			 */
			public sendEmptyMessageAtTime(what: number, uptimeMillis: number): boolean;
			/**
			 * Enqueue a message into the message queue after all pending messages before (current time + delayMillis). You will receive it in #handleMessage, in the thread attached to this handler. 
			 */
			public sendMessageDelayed(msg: android.os.Message, delayMillis: number): boolean;
			/**
			 * Enqueue a message into the message queue after all pending messages before the absolute time (in milliseconds) <var>uptimeMillis</var>. <b>The time-base is android.os.SystemClock#uptimeMillis.</b> You will receive it in #handleMessage, in the thread attached to this handler. 
			 * @param msg uptimeMillis The absolute time at which the message should be
			 * @param uptimeMillis 
			 */
			public sendMessageAtTime(msg: android.os.Message, uptimeMillis: number): boolean;
			/**
			 * Enqueue a message at the front of the message queue, to be processed on the next iteration of the message loop. You will receive it in #handleMessage, in the thread attached to this handler. <b>This method is only for use in very special circumstances -- it can easily starve the message queue, cause ordering problems, or have other unexpected side-effects.</b> 
			 */
			public sendMessageAtFrontOfQueue(msg: android.os.Message): boolean;
			/**
			 * Remove any pending posts of messages with code 'what' that are in the message queue.
			 */
			public removeMessages(what: number): void;
			/**
			 * Remove any pending posts of messages with code 'what' and whose obj is 'object' that are in the message queue. If <var>object</var> is null, all messages will be removed.
			 */
			public removeMessages(what: number, object: any): void;
			/**
			 * Remove any pending posts of callbacks and sent messages whose <var>obj</var> is <var>token</var>. If <var>token</var> is null, all callbacks and messages will be removed.
			 */
			public removeCallbacksAndMessages(token: any): void;
			/**
			 * Check if there are any pending posts of messages with code 'what' in the message queue.
			 */
			public hasMessages(what: number): boolean;
			/**
			 * Check if there are any pending posts of messages with code 'what' and whose obj is 'object' in the message queue.
			 */
			public hasMessages(what: number, object: any): boolean;
			public getLooper(): android.os.Looper;
			public dump(pw: android.util.IPrinter, prefix: string): void;
			public toString(): string;
		}
		export module Handler {
			export class BlockingRunnable extends java.lang.Object implements java.lang.IRunnable {
				constructor(task: java.lang.IRunnable);
				static class: java.lang.Class<android.os.Handler.BlockingRunnable>;
				public run(): void;
				public postAndWait(handler: android.os.Handler, timeout: number): boolean;
			}
			/**
			 * Callback interface you can use when instantiating a Handler to avoid having to implement your own subclass of Handler.
			 */
			export class Callback implements android.os.Handler.ICallback {
				constructor(implementation: android.os.Handler.ICallback);
				public handleMessage(msg: android.os.Message): boolean;
			}
			/**
			 * Callback interface you can use when instantiating a Handler to avoid having to implement your own subclass of Handler.
			 */
			interface ICallback {
				handleMessage(msg: android.os.Message): boolean;
			}
			export class MessengerImpl {
				static class: java.lang.Class<android.os.Handler.MessengerImpl>;
				public send(msg: android.os.Message): void;
			}
		}
		export class BinderProxy extends java.lang.Object implements android.os.IIBinder {
			static class: java.lang.Class<android.os.BinderProxy>;
			public pingBinder(): boolean;
			public isBinderAlive(): boolean;
			public queryLocalInterface(descriptor: string): android.os.IIInterface;
			public getInterfaceDescriptor(): string;
			public transact(code: number, data: android.os.Parcel, reply: android.os.Parcel, flags: number): boolean;
			public linkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): void;
			public unlinkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): boolean;
			public dump(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			public dumpAsync(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			protected finalize(): void;
		}
		/**
		 * Interface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must also have a static field called <code>CREATOR</code>, which is an object implementing the Parcelable.Creator Parcelable.Creator interface. 
		 */
		export class Parcelable implements android.os.IParcelable {
			constructor(implementation: android.os.IParcelable);
			/**
			 * Flag for use with #writeToParcel: the object being written is a return value, that is the result of a function such as "<code>Parcelable someFunction()</code>", "<code>void someFunction(out Parcelable)</code>", or "<code>void someFunction(inout Parcelable)</code>". Some implementations may want to release resources at this point.
			 */
			static PARCELABLE_WRITE_RETURN_VALUE: number;
			/**
			 * Bit masks for use with #describeContents: each bit represents a kind of object considered to have potential special significance when marshalled.
			 */
			static CONTENTS_FILE_DESCRIPTOR: number;
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			public describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export module Parcelable {
			/**
			 * Specialization of Creator that allows you to receive the ClassLoader the object is being created in.
			 */
			export class ClassLoaderCreator<T> implements android.os.Parcelable.IClassLoaderCreator<T> {
				constructor(implementation: android.os.Parcelable.IClassLoaderCreator<T>);
				/**
				 * Create a new instance of the Parcelable class, instantiating it from the given Parcel whose data had previously been written by Parcelable#writeToParcel Parcelable.writeToParcel() and using the given ClassLoader.
				 * @param source The Parcel to read the object's data from.
				 * @param loader The ClassLoader that this object is being created in.
				 */
				public createFromParcel(source: android.os.Parcel, loader: java.lang.ClassLoader): T;
			}
			/**
			 * Interface that must be implemented and provided as a public CREATOR field that generates instances of your Parcelable class from a Parcel.
			 */
			export class Creator<T> implements android.os.Parcelable.ICreator<T> {
				constructor(implementation: android.os.Parcelable.ICreator<T>);
				/**
				 * Create a new instance of the Parcelable class, instantiating it from the given Parcel whose data had previously been written by Parcelable#writeToParcel Parcelable.writeToParcel(). 
				 * @param source The Parcel to read the object's data from.
				 */
				public createFromParcel(source: android.os.Parcel): T;
				/**
				 * Create a new array of the Parcelable class. 
				 * @param size Size of the array.
				 */
				public newArray(size: number): native.Array<T>;
			}
			/**
			 * Specialization of Creator that allows you to receive the ClassLoader the object is being created in.
			 */
			interface IClassLoaderCreator<T> {
				/**
				 * Create a new instance of the Parcelable class, instantiating it from the given Parcel whose data had previously been written by Parcelable#writeToParcel Parcelable.writeToParcel() and using the given ClassLoader.
				 * @param source The Parcel to read the object's data from.
				 * @param loader The ClassLoader that this object is being created in.
				 */
				createFromParcel(source: android.os.Parcel, loader: java.lang.ClassLoader): T;
			}
			/**
			 * Interface that must be implemented and provided as a public CREATOR field that generates instances of your Parcelable class from a Parcel.
			 */
			interface ICreator<T> {
				/**
				 * Create a new instance of the Parcelable class, instantiating it from the given Parcel whose data had previously been written by Parcelable#writeToParcel Parcelable.writeToParcel(). 
				 * @param source The Parcel to read the object's data from.
				 */
				createFromParcel(source: android.os.Parcel): T;
				/**
				 * Create a new array of the Parcelable class. 
				 * @param size Size of the array.
				 */
				newArray(size: number): native.Array<T>;
			}
		}
		/**
		 * Reference to a Handler, which others can use to send messages to it. This allows for the implementation of message-based communication across processes, by creating a Messenger pointing to a Handler in one process, and handing that Messenger to another process.
		 */
		export class Messenger extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create a new Messenger pointing to the given Handler. Any Message objects sent through this Messenger will appear in the Handler as if Handler#sendMessage(Message) Handler.sendMessage(Message) had been called directly. 
			 * @param target The Handler that will receive sent messages.
			 */
			constructor(target: android.os.Handler);
			/**
			 * Create a Messenger from a raw IBinder, which had previously been retrieved with #getBinder. 
			 * @param target The IBinder this Messenger should communicate with.
			 */
			constructor(target: android.os.IIBinder);
			static CREATOR: android.os.Parcelable.ICreator<android.os.Messenger>;
			static class: java.lang.Class<android.os.Messenger>;
			/**
			 * Send a Message to this Messenger's Handler. 
			 * @param message The Message to send. Usually retrieved through
			 */
			public send(message: android.os.Message): void;
			/**
			 * Retrieve the IBinder that this Messenger is using to communicate with its associated Handler. 
			 */
			public getBinder(): android.os.IIBinder;
			/**
			 * Comparison operator on two Messenger objects, such that true is returned then they both point to the same Handler.
			 */
			public equals(otherObj: any): boolean;
			public hashCode(): number;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Convenience function for writing either a Messenger or null pointer to a Parcel. You must use this with #readMessengerOrNullFromParcel for later reading it. 
			 * @param messenger The Messenger to write, or null.
			 * @param out Where to write the Messenger.
			 */
			public static writeMessengerOrNullToParcel(messenger: android.os.Messenger, out: android.os.Parcel): void;
			/**
			 * Convenience function for reading either a Messenger or null pointer from a Parcel. You must have previously written the Messenger with #writeMessengerOrNullToParcel. 
			 * @param input in The Parcel containing the written Messenger.
			 */
			public static readMessengerOrNullFromParcel(input: android.os.Parcel): android.os.Messenger;
		}
		export class MemoryFileTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.MemoryFileTest>;
			/**
			 * Keep allocating new files till the system purges them.
			 */
			public testPurge(): void;
			public testRun(): void;
			public testOutputStreamAdvances(): void;
			public testReadNegativeOffset(): void;
			public testReadNegativeCount(): void;
			public testReadOffsetOverflow(): void;
			public testReadOffsetCountOverflow(): void;
			public testReadEOF(): void;
			public testCloseClose(): void;
			public testCloseRead(): void;
			public testCloseWrite(): void;
			public testCloseAllowPurging(): void;
			public testCloseLeak(): void;
		}
		export class PerformanceCollectorTest {
			constructor();
			static class: java.lang.Class<android.os.PerformanceCollectorTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testBeginSnapshotNoWriter(): void;
			public testEndSnapshotNoWriter(): void;
			public testStartTimingNoWriter(): void;
			public testAddIterationNoWriter(): void;
			public testStopTimingNoWriter(): void;
			public testBeginSnapshot(): void;
			public testEndSnapshot(): void;
			public testStartTiming(): void;
			public testAddIteration(): void;
			public testStopTiming(): void;
			public testAddMeasurementLong(): void;
			public testAddMeasurementFloat(): void;
			public testAddMeasurementString(): void;
			public testSimpleSequence(): void;
			public testLongSequence(): void;
			public testOutOfOrderSequence(): void;
		}
		export module PerformanceCollectorTest {
			export class MockPerformanceResultsWriter extends java.lang.Object {
				snapshotLabel: string;
				snapshotResults: android.os.Bundle;
				timingLabel: string;
				timingResults: android.os.Bundle;
				static class: java.lang.Class<android.os.PerformanceCollectorTest.MockPerformanceResultsWriter>;
				public writeBeginSnapshot(label: string): void;
				public writeEndSnapshot(results: android.os.Bundle): void;
				public writeStartTiming(label: string): void;
				public writeStopTiming(results: android.os.Bundle): void;
				public writeMeasurement(label: string, value: number): void;
				public writeMeasurement(label: string, value: string): void;
			}
		}
		/**
		 * Low-level class holding the list of messages to be dispatched by a Looper. Messages are not added directly to a MessageQueue, but rather through Handler objects associated with the Looper. 
		 */
		export class MessageQueue extends java.lang.Object {
			static class: java.lang.Class<android.os.MessageQueue>;
			/**
			 * Add a new IdleHandler to this message queue. This may be removed automatically for you by returning false from IdleHandler#queueIdle IdleHandler.queueIdle() when it is invoked, or explicitly removing it with #removeIdleHandler. 
			 * @param handler The IdleHandler to be added.
			 */
			public addIdleHandler(handler: android.os.MessageQueue.IIdleHandler): void;
			/**
			 * Remove an IdleHandler from the queue that was previously added with #addIdleHandler. If the given object is not currently in the idle list, nothing is done. 
			 * @param handler The IdleHandler to be removed.
			 */
			public removeIdleHandler(handler: android.os.MessageQueue.IIdleHandler): void;
			protected finalize(): void;
			next(): android.os.Message;
			quit(): void;
			enqueueSyncBarrier(when: number): number;
			removeSyncBarrier(token: number): void;
			enqueueMessage(msg: android.os.Message, when: number): boolean;
			hasMessages(h: android.os.Handler, what: number, object: any): boolean;
			hasMessages(h: android.os.Handler, r: java.lang.IRunnable, object: any): boolean;
			removeMessages(h: android.os.Handler, what: number, object: any): void;
			removeMessages(h: android.os.Handler, r: java.lang.IRunnable, object: any): void;
			removeCallbacksAndMessages(h: android.os.Handler, object: any): void;
		}
		export module MessageQueue {
			/**
			 * Callback interface for discovering when a thread is going to block waiting for more messages.
			 */
			interface IIdleHandler {
				/**
				 * Called when the message queue has run out of messages and will now wait for more. Return true to keep your idle handler active, false to have it removed. This may be called if there are still messages pending in the queue, but they are all scheduled to be dispatched after the current time.
				 */
				queueIdle(): boolean;
			}
			/**
			 * Callback interface for discovering when a thread is going to block waiting for more messages.
			 */
			export class IdleHandler implements android.os.MessageQueue.IIdleHandler {
				constructor(implementation: android.os.MessageQueue.IIdleHandler);
				/**
				 * Called when the message queue has run out of messages and will now wait for more. Return true to keep your idle handler active, false to have it removed. This may be called if there are still messages pending in the queue, but they are all scheduled to be dispatched after the current time.
				 */
				public queueIdle(): boolean;
			}
		}
		/**
		 * The FileDescriptor returned by Parcel#readFileDescriptor, allowing you to close it when done with it.
		 */
		export class ParcelFileDescriptor extends java.lang.Object implements android.os.IParcelable, java.io.ICloseable {
			constructor(descriptor: android.os.ParcelFileDescriptor);
			/**
			 * For use with #open: if #MODE_CREATE has been supplied and this file doesn't already exist, then create the file with permissions such that any application can read it.
			 */
			static MODE_WORLD_READABLE: number;
			/**
			 * For use with #open: if #MODE_CREATE has been supplied and this file doesn't already exist, then create the file with permissions such that any application can write it.
			 */
			static MODE_WORLD_WRITEABLE: number;
			/**
			 * For use with #open: open the file with read-only access.
			 */
			static MODE_READ_ONLY: number;
			/**
			 * For use with #open: open the file with write-only access.
			 */
			static MODE_WRITE_ONLY: number;
			/**
			 * For use with #open: open the file with read and write access.
			 */
			static MODE_READ_WRITE: number;
			/**
			 * For use with #open: create the file if it doesn't already exist.
			 */
			static MODE_CREATE: number;
			/**
			 * For use with #open: erase contents of file when opening.
			 */
			static MODE_TRUNCATE: number;
			/**
			 * For use with #open: append to end of file while writing.
			 */
			static MODE_APPEND: number;
			static CREATOR: android.os.Parcelable.ICreator<android.os.ParcelFileDescriptor>;
			static class: java.lang.Class<android.os.ParcelFileDescriptor>;
			/**
			 * Create a new ParcelFileDescriptor accessing a given file.
			 * @param file The file to be opened.
			 * @param mode The desired access mode, must be one of
			 */
			public static open(file: java.io.File, mode: number): android.os.ParcelFileDescriptor;
			/**
			 * Create a new ParcelFileDescriptor that is a dup of an existing FileDescriptor. This obeys standard POSIX semantics, where the new file descriptor shared state such as file position with the original file descriptor.
			 */
			public static dup(orig: java.io.FileDescriptor): android.os.ParcelFileDescriptor;
			/**
			 * Create a new ParcelFileDescriptor that is a dup of the existing FileDescriptor. This obeys standard POSIX semantics, where the new file descriptor shared state such as file position with the original file descriptor.
			 */
			public dup(): android.os.ParcelFileDescriptor;
			/**
			 * Create a new ParcelFileDescriptor from a raw native fd. The new ParcelFileDescriptor holds a dup of the original fd passed in here, so you must still close that fd as well as the new ParcelFileDescriptor.
			 * @param fd The native fd that the ParcelFileDescriptor should dup.
			 */
			public static fromFd(fd: number): android.os.ParcelFileDescriptor;
			/**
			 * Take ownership of a raw native fd in to a new ParcelFileDescriptor. The returned ParcelFileDescriptor now owns the given fd, and will be responsible for closing it. You must not close the fd yourself.
			 * @param fd The native fd that the ParcelFileDescriptor should adopt.
			 */
			public static adoptFd(fd: number): android.os.ParcelFileDescriptor;
			/**
			 * Create a new ParcelFileDescriptor from the specified Socket. The new ParcelFileDescriptor holds a dup of the original FileDescriptor in the Socket, so you must still close the Socket as well as the new ParcelFileDescriptor.
			 * @param socket The Socket whose FileDescriptor is used to create
			 */
			public static fromSocket(socket: java.net.Socket): android.os.ParcelFileDescriptor;
			/**
			 * Create a new ParcelFileDescriptor from the specified DatagramSocket.
			 * @param datagramSocket The DatagramSocket whose FileDescriptor is used
			 */
			public static fromDatagramSocket(datagramSocket: java.net.DatagramSocket): android.os.ParcelFileDescriptor;
			/**
			 * Create two ParcelFileDescriptors structured as a data pipe. The first ParcelFileDescriptor in the returned array is the read side; the second is the write side.
			 */
			public static createPipe(): native.Array<android.os.ParcelFileDescriptor>;
			/**
			 * Retrieve the actual FileDescriptor associated with this object.
			 */
			public getFileDescriptor(): java.io.FileDescriptor;
			/**
			 * Return the total size of the file representing this fd, as determined by stat(). Returns -1 if the fd is not a file.
			 */
			public getStatSize(): any;
			/**
			 * Return the native fd int for this ParcelFileDescriptor. The ParcelFileDescriptor still owns the fd, and it still must be closed through this API.
			 */
			public getFd(): number;
			/**
			 * Return the native fd int for this ParcelFileDescriptor and detach it from the object here. You are now responsible for closing the fd in native code.
			 */
			public detachFd(): number;
			/**
			 * Close the ParcelFileDescriptor. This implementation closes the underlying OS resources allocated to represent this stream.
			 */
			public close(): void;
			public toString(): string;
			protected finalize(): void;
			public describeContents(): number;
			/**
			 *  If Parcelable#PARCELABLE_WRITE_RETURN_VALUE is set in flags, the file descriptor will be closed after a copy is written to the Parcel.
			 */
			public writeToParcel(out: android.os.Parcel, flags: number): void;
		}
		export module ParcelFileDescriptor {
			/**
			 * An OutputStream you can create on a ParcelFileDescriptor, which will take care of calling ParcelFileDescriptor#close ParcelFileDescriptor.close() for you when the stream is closed.
			 */
			export class AutoCloseOutputStream extends java.io.FileOutputStream {
				constructor(fd: android.os.ParcelFileDescriptor);
				static class: java.lang.Class<android.os.ParcelFileDescriptor.AutoCloseOutputStream>;
				public close(): void;
			}
			/**
			 * An InputStream you can create on a ParcelFileDescriptor, which will take care of calling ParcelFileDescriptor#close ParcelFileDescriptor.close() for you when the stream is closed.
			 */
			export class AutoCloseInputStream extends java.io.FileInputStream {
				constructor(fd: android.os.ParcelFileDescriptor);
				static class: java.lang.Class<android.os.ParcelFileDescriptor.AutoCloseInputStream>;
				public close(): void;
			}
		}
		/**
		 * Provides access to environment variables.
		 */
		export class Environment extends java.lang.Object {
			constructor();
			/**
			 * Standard directory in which to place any audio files that should be in the regular list of music for the user. This may be combined with #DIRECTORY_PODCASTS, #DIRECTORY_NOTIFICATIONS, #DIRECTORY_ALARMS, and #DIRECTORY_RINGTONES as a series of directories to categories a particular audio file as more than one type.
			 */
			static DIRECTORY_MUSIC: string;
			/**
			 * Standard directory in which to place any audio files that should be in the list of podcasts that the user can select (not as regular music). This may be combined with #DIRECTORY_MUSIC, #DIRECTORY_NOTIFICATIONS, #DIRECTORY_ALARMS, and #DIRECTORY_RINGTONES as a series of directories to categories a particular audio file as more than one type.
			 */
			static DIRECTORY_PODCASTS: string;
			/**
			 * Standard directory in which to place any audio files that should be in the list of ringtones that the user can select (not as regular music). This may be combined with #DIRECTORY_MUSIC, #DIRECTORY_PODCASTS, #DIRECTORY_NOTIFICATIONS, and #DIRECTORY_ALARMS as a series of directories to categories a particular audio file as more than one type.
			 */
			static DIRECTORY_RINGTONES: string;
			/**
			 * Standard directory in which to place any audio files that should be in the list of alarms that the user can select (not as regular music). This may be combined with #DIRECTORY_MUSIC, #DIRECTORY_PODCASTS, #DIRECTORY_NOTIFICATIONS, and #DIRECTORY_RINGTONES as a series of directories to categories a particular audio file as more than one type.
			 */
			static DIRECTORY_ALARMS: string;
			/**
			 * Standard directory in which to place any audio files that should be in the list of notifications that the user can select (not as regular music). This may be combined with #DIRECTORY_MUSIC, #DIRECTORY_PODCASTS, #DIRECTORY_ALARMS, and #DIRECTORY_RINGTONES as a series of directories to categories a particular audio file as more than one type.
			 */
			static DIRECTORY_NOTIFICATIONS: string;
			/**
			 * Standard directory in which to place pictures that are available to the user. Note that this is primarily a convention for the top-level public directory, as the media scanner will find and collect pictures in any directory.
			 */
			static DIRECTORY_PICTURES: string;
			/**
			 * Standard directory in which to place movies that are available to the user. Note that this is primarily a convention for the top-level public directory, as the media scanner will find and collect movies in any directory.
			 */
			static DIRECTORY_MOVIES: string;
			/**
			 * Standard directory in which to place files that have been downloaded by the user. Note that this is primarily a convention for the top-level public directory, you are free to download files anywhere in your own private directories. Also note that though the constant here is named DIRECTORY_DOWNLOADS (plural), the actual file name is non-plural for backwards compatibility reasons.
			 */
			static DIRECTORY_DOWNLOADS: string;
			/**
			 * The traditional location for pictures and videos when mounting the device as a camera. Note that this is primarily a convention for the top-level public directory, as this convention makes no sense elsewhere.
			 */
			static DIRECTORY_DCIM: string;
			/**
			 * #getExternalStorageState() returns MEDIA_REMOVED if the media is not present.
			 */
			static MEDIA_REMOVED: string;
			/**
			 * #getExternalStorageState() returns MEDIA_UNMOUNTED if the media is present but not mounted.
			 */
			static MEDIA_UNMOUNTED: string;
			/**
			 * #getExternalStorageState() returns MEDIA_CHECKING if the media is present and being disk-checked
			 */
			static MEDIA_CHECKING: string;
			/**
			 * #getExternalStorageState() returns MEDIA_NOFS if the media is present but is blank or is using an unsupported filesystem
			 */
			static MEDIA_NOFS: string;
			/**
			 * #getExternalStorageState() returns MEDIA_MOUNTED if the media is present and mounted at its mount point with read/write access.
			 */
			static MEDIA_MOUNTED: string;
			/**
			 * #getExternalStorageState() returns MEDIA_MOUNTED_READ_ONLY if the media is present and mounted at its mount point with read only access.
			 */
			static MEDIA_MOUNTED_READ_ONLY: string;
			/**
			 * #getExternalStorageState() returns MEDIA_SHARED if the media is present not mounted, and shared via USB mass storage.
			 */
			static MEDIA_SHARED: string;
			/**
			 * #getExternalStorageState() returns MEDIA_BAD_REMOVAL if the media was removed before it was unmounted.
			 */
			static MEDIA_BAD_REMOVAL: string;
			/**
			 * #getExternalStorageState() returns MEDIA_UNMOUNTABLE if the media is present but cannot be mounted. Typically this happens if the file system on the media is corrupted.
			 */
			static MEDIA_UNMOUNTABLE: string;
			static class: java.lang.Class<android.os.Environment>;
			/**
			 * Gets the Android root directory.
			 */
			public static getRootDirectory(): java.io.File;
			/**
			 * Gets the Android data directory.
			 */
			public static getDataDirectory(): java.io.File;
			/**
			 * Gets the Android external storage directory. This directory may not currently be accessible if it has been mounted by the user on their computer, has been removed from the device, or some other problem has happened. You can determine its current state with #getExternalStorageState(). 
			 */
			public static getExternalStorageDirectory(): java.io.File;
			/**
			 * Get a top-level public external storage directory for placing files of a particular type. This is where the user will typically place and manage their own files, so you should be careful about what you put here to ensure you don't erase their files or get in the way of their own organization. 
			 * @param type The type of storage directory to return. Should be one of
			 */
			public static getExternalStoragePublicDirectory(type: string): java.io.File;
			/**
			 * Gets the Android download/cache content directory.
			 */
			public static getDownloadCacheDirectory(): java.io.File;
			/**
			 * Gets the current state of the primary "external" storage device. #getExternalStorageDirectory()
			 */
			public static getExternalStorageState(): string;
			/**
			 * Returns whether the primary "external" storage device is removable. If true is returned, this device is for example an SD card that the user can remove. If false is returned, the storage is built into the device and can not be physically removed.
			 */
			public static isExternalStorageRemovable(): boolean;
			/**
			 * Returns whether the device has an external storage device which is emulated. If true, the device does not have real external storage, and the directory returned by #getExternalStorageDirectory() will be allocated using a portion of the internal storage system.
			 */
			public static isExternalStorageEmulated(): boolean;
			static getDirectory(variableName: string, defaultPath: string): java.io.File;
		}
		/**
		 * The object you are calling has died, because its hosting process no longer exists.
		 */
		export class DeadObjectException extends android.os.RemoteException {
			constructor();
			static class: java.lang.Class<android.os.DeadObjectException>;
		}
		export class FileUtilsTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.FileUtilsTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testCopyFile(): void;
			public testCopyToFile(): void;
			public testIsFilenameSafe(): void;
			public testReadTextFile(): void;
			public testReadTextFileWithZeroLengthFile(): void;
		}
		/**
		 * Describes the source of some work that may be done by someone else. Currently the public representation of what a work source is is not defined; this is an opaque container.
		 */
		export class WorkSource extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create an empty work source.
			 */
			constructor();
			/**
			 * Create a new WorkSource that is a copy of an existing one. If <var>orig</var> is null, an empty WorkSource is created.
			 */
			constructor(orig: android.os.WorkSource);
			static CREATOR: android.os.Parcelable.ICreator<android.os.WorkSource>;
			static class: java.lang.Class<android.os.WorkSource>;
			/**
			 * Clear this WorkSource to be empty.
			 */
			public clear(): void;
			public equals(o: any): boolean;
			public hashCode(): number;
			/**
			 * Compare this WorkSource with another.
			 * @param other The WorkSource to compare against.
			 */
			public diff(other: android.os.WorkSource): boolean;
			/**
			 * Replace the current contents of this work source with the given work source. If <var>other</var> is null, the current work source will be made empty.
			 */
			public set(other: android.os.WorkSource): void;
			/**
			 * Merge the contents of <var>other</var> WorkSource in to this one.
			 * @param other The other WorkSource whose contents are to be merged.
			 */
			public add(other: android.os.WorkSource): boolean;
			public remove(other: android.os.WorkSource): boolean;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public toString(): string;
		}
		/**
		 * A simple pattern matcher, which is safe to use on untrusted data: it does not provide full reg-exp support, only simple globbing that can not be used maliciously.
		 */
		export class PatternMatcher extends java.lang.Object implements android.os.IParcelable {
			constructor(pattern: string, type: number);
			constructor(src: android.os.Parcel);
			/**
			 * Pattern type: the given pattern must exactly match the string it is tested against.
			 */
			static PATTERN_LITERAL: number;
			/**
			 * Pattern type: the given pattern must match the beginning of the string it is tested against.
			 */
			static PATTERN_PREFIX: number;
			/**
			 * Pattern type: the given pattern is interpreted with a simple glob syntax for matching against the string it is tested against. In this syntax, you can use the '*' character to match against zero or more occurrences of the character immediately before. If the character before it is '.' it will match any character. The character '\' can be used as an escape. This essentially provides only the '*' wildcard part of a normal regexp.
			 */
			static PATTERN_SIMPLE_GLOB: number;
			static CREATOR: android.os.Parcelable.ICreator<android.os.PatternMatcher>;
			static class: java.lang.Class<android.os.PatternMatcher>;
			public getPath(): string;
			public getType(): number;
			public match(str: string): boolean;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			static matchPattern(pattern: string, match: string, type: number): boolean;
		}
		/**
		 * The object you are calling has died, because its hosting process no longer exists.
		 */
		export class BadParcelableException extends android.util.AndroidRuntimeException {
			constructor(msg: string);
			constructor(cause: java.lang.Exception);
			static class: java.lang.Class<android.os.BadParcelableException>;
		}
		export class ServiceManagerProxy extends java.lang.Object {
			constructor(remote: android.os.IIBinder);
			static class: java.lang.Class<android.os.ServiceManagerProxy>;
			public asBinder(): android.os.IIBinder;
			public getService(name: string): android.os.IIBinder;
			public checkService(name: string): android.os.IIBinder;
			public addService(name: string, service: android.os.IIBinder, allowIsolated: boolean): void;
			public listServices(): native.Array<string>;
		}
		/**
		 *  Defines a message containing a description and arbitrary data object that can be sent to a Handler. This object contains two extra int fields and an extra object field that allow you to not do allocations in many cases.
		 */
		export class Message extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Constructor (but the preferred way to get a Message is to call #obtain() Message.obtain()).
			 */
			constructor();
			/**
			 * User-defined message code so that the recipient can identify what this message is about. Each Handler has its own name-space for message codes, so you do not need to worry about yours conflicting with other handlers.
			 */
			what: number;
			/**
			 * arg1 and arg2 are lower-cost alternatives to using #setData(Bundle) setData() if you only need to store a few integer values.
			 */
			arg1: number;
			/**
			 * arg1 and arg2 are lower-cost alternatives to using #setData(Bundle) setData() if you only need to store a few integer values.
			 */
			arg2: number;
			/**
			 * An arbitrary object to send to the recipient. When using Messenger to send the message across processes this can only be non-null if it contains a Parcelable of a framework class (not one implemented by the application). For other data transfer use #setData. 
			 */
			obj: any;
			/**
			 * Optional Messenger where replies to this message can be sent. The semantics of exactly how this is used are up to the sender and receiver.
			 */
			replyTo: android.os.Messenger;
			static CREATOR: android.os.Parcelable.ICreator<android.os.Message>;
			static class: java.lang.Class<android.os.Message>;
			/**
			 * Return a new Message instance from the global pool. Allows us to avoid allocating new objects in many cases.
			 */
			public static obtain(): android.os.Message;
			/**
			 * Same as #obtain(), but copies the values of an existing message (including its target) into the new one.
			 * @param orig Original message to copy.
			 */
			public static obtain(orig: android.os.Message): android.os.Message;
			/**
			 * Same as #obtain(), but sets the value for the <em>target</em> member on the Message returned.
			 * @param h Handler to assign to the returned Message object's <em>target</em> member.
			 */
			public static obtain(h: android.os.Handler): android.os.Message;
			/**
			 * Same as #obtain(Handler), but assigns a callback Runnable on the Message that is returned.
			 * @param h Handler to assign to the returned Message object's <em>target</em> member.
			 * @param callback Runnable that will execute when the message is handled.
			 */
			public static obtain(h: android.os.Handler, callback: java.lang.IRunnable): android.os.Message;
			/**
			 * Same as #obtain(), but sets the values for both <em>target</em> and <em>what</em> members on the Message.
			 * @param h Value to assign to the <em>target</em> member.
			 * @param what Value to assign to the <em>what</em> member.
			 */
			public static obtain(h: android.os.Handler, what: number): android.os.Message;
			/**
			 * Same as #obtain(), but sets the values of the <em>target</em>, <em>what</em>, and <em>obj</em> members.
			 * @param h The <em>target</em> value to set.
			 * @param what The <em>what</em> value to set.
			 * @param obj The <em>object</em> method to set.
			 */
			public static obtain(h: android.os.Handler, what: number, obj: any): android.os.Message;
			/**
			 * Same as #obtain(), but sets the values of the <em>target</em>, <em>what</em>, <em>arg1</em>, and <em>arg2</em> members. 
			 * @param h The <em>target</em> value to set.
			 * @param what The <em>what</em> value to set.
			 * @param arg1 The <em>arg1</em> value to set.
			 * @param arg2 The <em>arg2</em> value to set.
			 */
			public static obtain(h: android.os.Handler, what: number, arg1: number, arg2: number): android.os.Message;
			/**
			 * Same as #obtain(), but sets the values of the <em>target</em>, <em>what</em>, <em>arg1</em>, <em>arg2</em>, and <em>obj</em> members. 
			 * @param h The <em>target</em> value to set.
			 * @param what The <em>what</em> value to set.
			 * @param arg1 The <em>arg1</em> value to set.
			 * @param arg2 The <em>arg2</em> value to set.
			 * @param obj The <em>obj</em> value to set.
			 */
			public static obtain(h: android.os.Handler, what: number, arg1: number, arg2: number, obj: any): android.os.Message;
			/**
			 * Return a Message instance to the global pool. You MUST NOT touch the Message after calling this function -- it has effectively been freed.
			 */
			public recycle(): void;
			/**
			 * Make this message like o. Performs a shallow copy of the data field. Does not copy the linked list fields, nor the timestamp or target/callback of the original message.
			 */
			public copyFrom(o: android.os.Message): void;
			/**
			 * Return the targeted delivery time of this message, in milliseconds.
			 */
			public getWhen(): any;
			public setTarget(target: android.os.Handler): void;
			/**
			 * Retrieve the a android.os.Handler Handler implementation that will receive this message. The object must implement android.os.Handler#handleMessage(android.os.Message) Handler.handleMessage(). Each Handler has its own name-space for message codes, so you do not need to worry about yours conflicting with other handlers.
			 */
			public getTarget(): android.os.Handler;
			/**
			 * Retrieve callback object that will execute when this message is handled. This object must implement Runnable. This is called by the <em>target</em> Handler that is receiving this Message to dispatch it. If not set, the message will be dispatched to the receiving Handler's Handler#handleMessage(Message Handler.handleMessage()).
			 */
			public getCallback(): java.lang.IRunnable;
			public getData(): android.os.Bundle;
			public peekData(): android.os.Bundle;
			/**
			 * Sets a Bundle of arbitrary data values. Use arg1 and arg1 members as a lower cost way to send a few simple integer values, if you can. #getData() #peekData()
			 */
			public setData(data: android.os.Bundle): void;
			/**
			 * Sends this Message to the Handler specified by #getTarget. Throws a null pointer exception if this field has not been set.
			 */
			public sendToTarget(): void;
			clearForRecycle(): void;
			isInUse(): boolean;
			markInUse(): void;
			public toString(): string;
			toString(now: number): string;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export class MessengerTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.MessengerTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testSend(): void;
		}
		export module MessengerTest {
			export class TestThread extends android.os.TestHandlerThread {
				static class: java.lang.Class<android.os.MessengerTest.TestThread>;
				public go(): void;
				public executeTest(): void;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * An exception type that is thrown when an operation in progress is canceled.
		 */
		export class OperationCanceledException extends java.lang.RuntimeException {
			constructor();
			constructor(message: string);
			static class: java.lang.Class<android.os.OperationCanceledException>;
		}
		export class CommonTimeUtils extends java.lang.Object {
			constructor(remote: android.os.IIBinder, interfaceDesc: string);
			/**
			 * Successful operation.
			 */
			static SUCCESS: number;
			/**
			 * Unspecified error.
			 */
			static ERROR: number;
			/**
			 * Operation failed due to bad parameter value.
			 */
			static ERROR_BAD_VALUE: number;
			/**
			 * Operation failed due to dead remote object.
			 */
			static ERROR_DEAD_OBJECT: number;
			static class: java.lang.Class<android.os.CommonTimeUtils>;
			public transactGetInt(method_code: number, error_ret_val: number): number;
			public transactSetInt(method_code: number, val: number): number;
			public transactGetLong(method_code: number, error_ret_val: number): any;
			public transactSetLong(method_code: number, val: number): number;
			public transactGetString(method_code: number, error_ret_val: string): string;
			public transactSetString(method_code: number, val: string): number;
			public transactGetSockaddr(method_code: number): java.net.InetSocketAddress;
			public transactSetSockaddr(method_code: number, addr: java.net.InetSocketAddress): number;
		}
		/**
		 * This class is used to test the native tracing support. Run this test while tracing on the emulator and then run traceview to view the trace.
		 */
		export class TraceTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.TraceTest>;
			public testNativeTracingFromJava(): void;
			public disableTestNativeTracingFromC(): void;
			nativeMethod(): void;
			nativeMethodAndStartTracing(): void;
			public testMethodTracing(): void;
			public eMethod(): number;
			public fMethod(): number;
			public gMethod(level: number): number;
		}
		export module TraceTest {
			export class aThread extends java.lang.Thread {
				static class: java.lang.Class<android.os.TraceTest.aThread>;
				public run(): void;
			}
		}
		export module storage {
			export class StorageListener extends java.lang.Object {
				constructor(targetState: string);
				static TAG: string;
				static class: java.lang.Class<android.os.storage.StorageListener>;
				public onStorageStateChanged(path: string, oldState: string, newState: string): void;
				public isDone(): boolean;
			}
			/**
			 * StorageManager is the interface to the systems storage service. The storage manager handles storage-related items such as Opaque Binary Blobs (OBBs).
			 */
			export class StorageManager extends java.lang.Object {
				static class: java.lang.Class<android.os.storage.StorageManager>;
				StorageStateChangedStorageEvent: {
	new (p: string, oldS: string, newS: string): android.os.storage.StorageManager.StorageStateChangedStorageEvent;
};
				StorageEvent: {
	new (what: number): android.os.storage.StorageManager.StorageEvent;
};
				ObbStateChangedStorageEvent: {
	new (path: string, state: number): android.os.storage.StorageManager.ObbStateChangedStorageEvent;
};
				UmsConnectionChangedStorageEvent: {
	new (a: boolean): android.os.storage.StorageManager.UmsConnectionChangedStorageEvent;
};
				/**
				 * Mount an Opaque Binary Blob (OBB) file. If a <code>key</code> is specified, it is supplied to the mounting process to be used in any encryption used in the OBB.
				 * @param rawPath the path to the OBB file
				 * @param key secret used to encrypt the OBB; may be <code>null</code> if no
				 * @param listener will receive the success or failure of the operation
				 */
				public mountObb(rawPath: string, key: string, listener: android.os.storage.OnObbStateChangeListener): boolean;
				/**
				 * Unmount an Opaque Binary Blob (OBB) file asynchronously. If the <code>force</code> flag is true, it will kill any application needed to unmount the given OBB (even the calling application).
				 * @param rawPath path to the OBB file
				 * @param force whether to kill any programs using this in order to unmount
				 * @param listener will receive the success or failure of the operation
				 */
				public unmountObb(rawPath: string, force: boolean, listener: android.os.storage.OnObbStateChangeListener): boolean;
				/**
				 * Check whether an Opaque Binary Blob (OBB) is mounted or not. 
				 * @param rawPath path to OBB image
				 */
				public isObbMounted(rawPath: string): boolean;
				/**
				 * Check the mounted path of an Opaque Binary Blob (OBB) file. This will give you the path to where you can obtain access to the internals of the OBB. 
				 * @param rawPath path to OBB image
				 */
				public getMountedObbPath(rawPath: string): string;
			}
			export module StorageManager {
				/**
				 * Private class containing sender and receiver code for StorageEvents.
				 */
				export class ListenerDelegate extends java.lang.Object {
					static class: java.lang.Class<android.os.storage.StorageManager.ListenerDelegate>;
					sendShareAvailabilityChanged(available: boolean): void;
					sendStorageStateChanged(path: string, oldState: string, newState: string): void;
				}
				/**
				 * Message sent on volume state change.
				 */
				export class StorageStateChangedStorageEvent extends android.os.storage.StorageManager.StorageEvent {
					path: string;
					oldState: string;
					newState: string;
					static class: java.lang.Class<android.os.storage.StorageManager.StorageStateChangedStorageEvent>;
				}
				/**
				 * Private base class for messages sent between the callback thread and the target looper handler.
				 */
				export class StorageEvent extends java.lang.Object {
					static class: java.lang.Class<android.os.storage.StorageManager.StorageEvent>;
					public getMessage(): android.os.Message;
				}
				export class ObbActionListener extends android.os.Binder {
					static class: java.lang.Class<android.os.storage.StorageManager.ObbActionListener>;
					public onObbResult(filename: string, nonce: number, status: number): void;
					public addListener(listener: android.os.storage.OnObbStateChangeListener): number;
				}
				/**
				 * Private class containing sender and receiver code for StorageEvents.
				 */
				export class ObbListenerDelegate extends java.lang.Object {
					static class: java.lang.Class<android.os.storage.StorageManager.ObbListenerDelegate>;
					getListener(): android.os.storage.OnObbStateChangeListener;
					sendObbStateChanged(path: string, state: number): void;
				}
				export class MountServiceBinderListener extends android.os.Binder {
					static class: java.lang.Class<android.os.storage.StorageManager.MountServiceBinderListener>;
					public onUsbMassStorageConnectionChanged(available: boolean): void;
					public onStorageStateChanged(path: string, oldState: string, newState: string): void;
				}
				/**
				 * Message sent during an OBB status change event.
				 */
				export class ObbStateChangedStorageEvent extends android.os.storage.StorageManager.StorageEvent {
					path: string;
					state: number;
					static class: java.lang.Class<android.os.storage.StorageManager.ObbStateChangedStorageEvent>;
				}
				/**
				 * Message sent on a USB mass storage connection change.
				 */
				export class UmsConnectionChangedStorageEvent extends android.os.storage.StorageManager.StorageEvent {
					available: boolean;
					static class: java.lang.Class<android.os.storage.StorageManager.UmsConnectionChangedStorageEvent>;
				}
			}
			export class StorageManagerIntegrationTest extends android.os.storage.StorageManagerBaseTest {
				constructor();
				static class: java.lang.Class<android.os.storage.StorageManagerIntegrationTest>;
				/**
				 * 
				 */
				public setUp(): void;
				/**
				 * 
				 */
				protected tearDown(): void;
				/**
				 * Tests mounting a single OBB file and verifies its contents.
				 */
				public testMountSingleObb(): void;
				/**
				 * Tests mounting several OBB files and verifies its contents.
				 */
				public testMountMultipleObb(): void;
				/**
				 * Tests mounting a single encrypted OBB file and verifies its contents.
				 */
				public testMountSingleEncryptedObb(): void;
				/**
				 * Tests mounting a single encrypted OBB file using an invalid password.
				 */
				public testMountSingleEncryptedObbInvalidPassword(): void;
				/**
				 * Tests simultaneously mounting 2 encrypted OBBs with different keys and verifies contents.
				 */
				public testMountTwoEncryptedObb(): void;
				/**
				 * Tests that we can not force unmount when a file is currently open on the OBB.
				 */
				public testUnmount_DontForce(): void;
				/**
				 * Tests mounting a single OBB that isn't signed.
				 */
				public testMountUnsignedObb(): void;
				/**
				 * Tests mounting a single OBB that is signed with a different package.
				 */
				public testMountBadPackageNameObb(): void;
				/**
				 * Tests remounting a single OBB that has already been mounted.
				 */
				public testRemountObb(): void;
			}
			export class AsecTests extends android.test.AndroidTestCase {
				constructor();
				static TAG: string;
				MAX_WAIT_TIME: number;
				WAIT_TIME_INCR: number;
				static class: java.lang.Class<android.os.storage.AsecTests>;
				protected setUp(): void;
				protected tearDown(): void;
				public test_Fat_External_Create_Success(): void;
				public test_Ext4_External_Create_Success(): void;
				public test_Fat_Internal_Create_Success(): void;
				public test_Ext4_Internal_Create_Success(): void;
				public test_Fat_External_CreateMinSize_Success(): void;
				public test_Ext4_External_CreateMinSize_Success(): void;
				public test_Fat_Internal_CreateMinSize_Success(): void;
				public test_Ext4_Internal_CreateMinSize_Success(): void;
				public test_Fat_External_CreateZeroSize_Failure(): void;
				public test_Ext4_External_CreateZeroSize_Failure(): void;
				public test_Fat_Internal_CreateZeroSize_Failure(): void;
				public test_Ext4_Internal_CreateZeroSize_Failure(): void;
				public test_Fat_External_CreateDuplicate_Failure(): void;
				public test_Ext4_External_CreateDuplicate_Failure(): void;
				public test_Fat_Internal_CreateDuplicate_Failure(): void;
				public test_Ext4_Internal_CreateDuplicate_Failure(): void;
				public test_Fat_External_Destroy_Success(): void;
				public test_Ext4_External_Destroy_Success(): void;
				public test_Fat_Internal_Destroy_Success(): void;
				public test_Ext4_Internal_Destroy_Success(): void;
				public test_Fat_External_Mount(): void;
				public test_Fat_External_MountBadKey_Failure(): void;
				public test_Fat_External_UnmountBusy_Success(): void;
				public test_Fat_External_DestroyBusy(): void;
				public test_Fat_External_Rename_Success(): void;
				public test_Fat_External_RenameSrcMounted_Failure(): void;
				public test_Fat_External_RenameDstMounted_Failure(): void;
				public test_Fat_External_Size_Success(): void;
				public testGetSecureContainerPath_NonExistPath_Failure(): void;
				getMediaState(): boolean;
				mountMedia(): boolean;
				public testUnmount(): void;
				public testUnmountMultiple(): void;
				invokeShutdown(): void;
				public testShutdown(): void;
				public testShutdownMultiple(): void;
			}
			export module AsecTests {
				export class MultipleStorageLis extends android.os.storage.AsecTests.StorageListener {
					static class: java.lang.Class<android.os.storage.AsecTests.MultipleStorageLis>;
					public onStorageStateChanged(path: string, oldState: string, newState: string): void;
				}
				export class StorageListener extends java.lang.Object {
					static class: java.lang.Class<android.os.storage.AsecTests.StorageListener>;
					public action(): void;
					public isDone(): boolean;
					public onStorageStateChanged(path: string, oldState: string, newState: string): void;
				}
				export class ShutdownObserver extends android.os.Binder {
					static class: java.lang.Class<android.os.storage.AsecTests.ShutdownObserver>;
					public action(): void;
					public isDone(): boolean;
					public onShutDownComplete(statusCode: number): void;
				}
			}
			/**
			 * Used for receiving notifications from StorageManager about OBB file states.
			 */
			export class OnObbStateChangeListener extends java.lang.Object {
				constructor();
				/**
				 * The OBB container is now mounted and ready for use. Returned in status messages from calls made via StorageManager
				 */
				static MOUNTED: number;
				/**
				 * The OBB container is now unmounted and not usable. Returned in status messages from calls made via StorageManager
				 */
				static UNMOUNTED: number;
				/**
				 * There was an internal system error encountered while trying to mount the OBB. Returned in status messages from calls made via StorageManager
				 */
				static ERROR_INTERNAL: number;
				/**
				 * The OBB could not be mounted by the system. Returned in status messages from calls made via StorageManager
				 */
				static ERROR_COULD_NOT_MOUNT: number;
				/**
				 * The OBB could not be unmounted. This most likely indicates that a file is in use on the OBB. Returned in status messages from calls made via StorageManager
				 */
				static ERROR_COULD_NOT_UNMOUNT: number;
				/**
				 * A call was made to unmount the OBB when it was not mounted. Returned in status messages from calls made via StorageManager
				 */
				static ERROR_NOT_MOUNTED: number;
				/**
				 * The OBB has already been mounted. Returned in status messages from calls made via StorageManager
				 */
				static ERROR_ALREADY_MOUNTED: number;
				/**
				 * The current application does not have permission to use this OBB. This could be because the OBB indicates it's owned by a different package or some other error. Returned in status messages from calls made via StorageManager
				 */
				static ERROR_PERMISSION_DENIED: number;
				static class: java.lang.Class<android.os.storage.OnObbStateChangeListener>;
				/**
				 * Called when an OBB has changed states. 
				 * @param path path to the OBB file the state change has happened on
				 * @param state the current state of the OBB
				 */
				public onObbStateChange(path: string, state: number): void;
			}
			export class StorageManagerBaseTest extends android.test.InstrumentationTestCase {
				constructor();
				static class: java.lang.Class<android.os.storage.StorageManagerBaseTest>;
				MountingObbThread: {
	new (obbFilePath: string, pathToContentsFile: string): android.os.storage.StorageManagerBaseTest.MountingObbThread;
};
				ObbListener: {
	new (): android.os.storage.StorageManagerBaseTest.ObbListener;
};
				/**
				 * 
				 */
				public setUp(): void;
				/**
				 * Creates an OBB file (with the given name), into the app's standard files directory
				 * @param name The name of the OBB file we want to create/write to
				 * @param rawResId The raw resource ID of the OBB file in the package
				 */
				protected createObbFile(name: string, rawResId: number): java.io.File;
				/**
				 * Mounts an OBB file and opens a file located on it
				 * @param obbPath Path to OBB image
				 * @param fileName The full name and path to the file on the OBB to open once the OBB is mounted
				 */
				protected openFileOnMountedObb(obbPath: string, fileName: string): java.io.DataInputStream;
				/**
				 * Mounts an OBB file
				 * @param obbFilePath The full path to the OBB file to mount
				 * @param key (optional) The key to use to unencrypt the OBB; pass null for no encryption
				 * @param expectedState The expected state resulting from trying to mount the OBB
				 */
				protected mountObb(obbFilePath: string, key: string, expectedState: number): string;
				/**
				 * Mounts an OBB file with default options (no encryption, mounting succeeds)
				 * @param obbFilePath The full path to the OBB file to mount
				 */
				protected mountObb(obbFilePath: string): string;
				/**
				 * Synchronously waits for an OBB listener to be signaled of a state change, but does not throw
				 * @param obbListener The listener for the OBB file
				 */
				protected doWaitForObbStateChange(obbListener: android.os.storage.StorageManagerBaseTest.ObbListener): boolean;
				/**
				 * Synchronously waits for an OBB listener to be signaled of a state change
				 * @param obbFilePath obbListener The listener for the OBB file
				 * @param key 
				 * @param expectedState 
				 */
				protected doMountObb_noThrow(obbFilePath: string, key: string, expectedState: number): string;
				/**
				 * Mounts an OBB file without throwing and synchronously waits for it to finish mounting
				 * @param obbFilePath The full path to the OBB file to mount
				 * @param key (optional) The key to use to unencrypt the OBB; pass null for no encryption
				 * @param expectedState The expected state resulting from trying to mount the OBB
				 */
				protected doMountObb(obbFilePath: string, key: string, expectedState: number): string;
				/**
				 * Unmounts an OBB file without throwing, and synchronously waits for it to finish unmounting
				 * @param obbFilePath The full path to the OBB file to mount
				 * @param force true if we shuold force the unmount, false otherwise
				 */
				protected unmountObb_noThrow(obbFilePath: string, force: boolean): boolean;
				/**
				 * Unmounts an OBB file and synchronously waits for it to finish unmounting
				 * @param obbFilePath The full path to the OBB file to mount
				 * @param force true if we shuold force the unmount, false otherwise
				 */
				protected unmountObb(obbFilePath: string, force: boolean): void;
				/**
				 * Helper to validate the contents of an "int" file in an OBB.
				 * @param path The full path to the file (path to OBB)
				 * @param filename The filename containing the ints to validate
				 * @param start The first int expected to be found in the file
				 * @param end The last int + 1 expected to be found in the file
				 */
				protected doValidateIntContents(path: string, filename: string, start: number, end: number): void;
				/**
				 * Helper to validate the contents of a text file in an OBB
				 * @param path The full path to the file (path to OBB)
				 * @param filename The filename containing the ints to validate
				 * @param contents A {@link String} containing the expected contents of the file
				 */
				protected doValidateTextContents(path: string, filename: string, contents: string): void;
				/**
				 * Helper to validate the contents of a "long" file on our OBBs
				 * @param path The full path to the file (path to OBB)
				 * @param filename The filename containing the ints to validate
				 * @param size The number of zero's expected in the file
				 * @param checkContents If true, the contents of the file are actually verified; if false,
				 */
				protected doValidateZeroLongFile(path: string, filename: string, size: number, checkContents: boolean): void;
				/**
				 * Helper to synchronously wait until we can get a path for a given OBB file
				 * @param filePath The full normalized path to the OBB file
				 */
				protected doWaitForPath(filePath: string): string;
				/**
				 * Verifies the pre-defined contents of our first OBB (OBB_FILE_1)
				 * @param filePath The normalized path to the already-mounted OBB file
				 */
				protected verifyObb1Contents(filePath: string): void;
				/**
				 * Verifies the pre-defined contents of our second OBB (OBB_FILE_2)
				 * @param filename filePath The normalized path to the already-mounted OBB file
				 */
				protected verifyObb2Contents(filename: string): void;
				/**
				 * Verifies the pre-defined contents of our third OBB (OBB_FILE_3)
				 * @param filename filePath The normalized path to the already-mounted OBB file
				 */
				protected verifyObb3Contents(filename: string): void;
			}
			export module StorageManagerBaseTest {
				export class MountingObbThread extends java.lang.Thread {
					static class: java.lang.Class<android.os.storage.StorageManagerBaseTest.MountingObbThread>;
					/**
					 * Runs the thread
					 */
					public run(): void;
					/**
					 * Tells whether a file has yet been successfully opened on the OBB or not
					 */
					public isFileOpenOnObb(): boolean;
					/**
					 * Returns the official path of the OBB file that was mounted
					 */
					public officialObbFilePath(): string;
					/**
					 * Requests the thread to stop running
					 */
					public doStop(): void;
				}
				export class ObbListener extends android.os.storage.OnObbStateChangeListener {
					static class: java.lang.Class<android.os.storage.StorageManagerBaseTest.ObbListener>;
					/**
					 * 
					 */
					public onObbStateChange(path: string, state: number): void;
					/**
					 * Tells whether we are done or not (system told us the OBB has changed state)
					 */
					public isDone(): boolean;
					/**
					 * The last state of the OBB, according to the system
					 */
					public state(): number;
					/**
					 * The normalized, official path to the OBB file (according to the system)
					 */
					public officialPath(): string;
				}
			}
		}
		/**
		 * Tries to set the brightness to 0. Should be silently thwarted by the framework.
		 */
		export class BrightnessLimit extends android.app.Activity implements android.view.View.IOnClickListener {
			constructor();
			static class: java.lang.Class<android.os.BrightnessLimit>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			public onClick(v: android.view.View): void;
		}
		/**
		 * RecoverySystem contains methods for interacting with the Android recovery system (the separate partition that can be used to install system updates, wipe user data, etc.)
		 */
		export class RecoverySystem extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.RecoverySystem>;
			/**
			 * Verify the cryptographic signature of a system update package before installing it. Note that the package is also verified separately by the installer once the device is rebooted into the recovery system. This function will return only if the package was successfully verified; otherwise it will throw an exception.
			 * @param packageFile the package to be verified
			 * @param listener an object to receive periodic progress
			 * @param deviceCertsZipFile the zip file of certificates whose
			 */
			public static verifyPackage(packageFile: java.io.File, listener: android.os.RecoverySystem.IProgressListener, deviceCertsZipFile: java.io.File): void;
			/**
			 * Reboots the device in order to install the given update package. Requires the android.Manifest.permission#REBOOT permission.
			 * @param context the Context to use
			 * @param packageFile the update package to install. Must be on
			 */
			public static installPackage(context: android.content.Context, packageFile: java.io.File): void;
			/**
			 * Reboots the device and wipes the user data partition. This is sometimes called a "factory reset", which is something of a misnomer because the system partition is not restored to its factory state. Requires the android.Manifest.permission#REBOOT permission.
			 * @param context the Context to use
			 */
			public static rebootWipeUserData(context: android.content.Context): void;
			/**
			 * Reboot into the recovery system to wipe the /cache partition. IOException if something goes wrong.
			 */
			public static rebootWipeCache(context: android.content.Context): void;
		}
		export module RecoverySystem {
			/**
			 * Interface definition for a callback to be invoked regularly as verification proceeds.
			 */
			export class ProgressListener implements android.os.RecoverySystem.IProgressListener {
				constructor(implementation: android.os.RecoverySystem.IProgressListener);
				/**
				 * Called periodically as the verification progresses.
				 * @param progress the approximate percentage of the
				 */
				public onProgress(progress: number): void;
			}
			/**
			 * Interface definition for a callback to be invoked regularly as verification proceeds.
			 */
			interface IProgressListener {
				/**
				 * Called periodically as the verification progresses.
				 * @param progress the approximate percentage of the
				 */
				onProgress(progress: number): void;
			}
		}
		/**
		 * Enqueues chunks of data (from various sources -- application crashes, kernel log records, etc.). The queue is size bounded and will drop old data if the enqueued data exceeds the maximum size. You can think of this as a persistent, system-wide, blob-oriented "logcat".
		 */
		export class DropBoxManager extends java.lang.Object {
			/**
			 * Flag value: Entry's content was deleted to save space.
			 */
			static IS_EMPTY: number;
			/**
			 * Flag value: Content is human-readable UTF-8 text (can be combined with IS_GZIPPED).
			 */
			static IS_TEXT: number;
			/**
			 * Flag value: Content can be decompressed with java.util.zip.GZIPOutputStream.
			 */
			static IS_GZIPPED: number;
			/**
			 * Broadcast Action: This is broadcast when a new entry is added in the dropbox. You must hold the android.Manifest.permission#READ_LOGS permission in order to receive this broadcast.
			 */
			static ACTION_DROPBOX_ENTRY_ADDED: string;
			/**
			 * Extra for android.os.DropBoxManager#ACTION_DROPBOX_ENTRY_ADDED: string containing the dropbox tag.
			 */
			static EXTRA_TAG: string;
			/**
			 * Extra for android.os.DropBoxManager#ACTION_DROPBOX_ENTRY_ADDED: long integer value containing time (in milliseconds since January 1, 1970 00:00:00 UTC) when the entry was created.
			 */
			static EXTRA_TIME: string;
			static class: java.lang.Class<android.os.DropBoxManager>;
			/**
			 * Stores human-readable text. The data may be discarded eventually (or even immediately) if space is limited, or ignored entirely if the tag has been blocked (see #isTagEnabled).
			 * @param tag describing the type of entry being stored
			 * @param data value to store
			 */
			public addText(tag: string, data: string): void;
			/**
			 * Stores binary data, which may be ignored or discarded as with #addText.
			 * @param tag describing the type of entry being stored
			 * @param data value to store
			 * @param flags describing the data
			 */
			public addData(tag: string, data: native.Array<number>, flags: number): void;
			/**
			 * Stores the contents of a file, which may be ignored or discarded as with #addText.
			 * @param tag describing the type of entry being stored
			 * @param file to read from
			 * @param flags describing the data
			 */
			public addFile(tag: string, file: java.io.File, flags: number): void;
			/**
			 * Checks any blacklists (set in system settings) to see whether a certain tag is allowed. Entries with disabled tags will be dropped immediately, so you can save the work of actually constructing and sending the data.
			 * @param tag that would be used in {@link #addText} or {@link #addFile}
			 */
			public isTagEnabled(tag: string): boolean;
			/**
			 * Gets the next entry from the drop box <em>after</em> the specified time. Requires <code>android.permission.READ_LOGS</code>. You must always call Entry#close() on the return value!
			 * @param tag of entry to look for, null for all tags
			 * @param msec time of the last entry seen
			 */
			public getNextEntry(tag: string, msec: number): android.os.DropBoxManager.Entry;
		}
		export module DropBoxManager {
			/**
			 * A single entry retrieved from the drop box. This may include a reference to a stream, so you must call #close() when you are done using it.
			 */
			export class Entry extends java.lang.Object implements android.os.IParcelable, java.io.ICloseable {
				/**
				 * Create a new empty Entry with no contents.
				 */
				constructor(tag: string, millis: number);
				/**
				 * Create a new Entry with plain text contents.
				 */
				constructor(tag: string, millis: number, text: string);
				/**
				 * Create a new Entry with byte array contents. The data array must not be modified after creating this entry.
				 */
				constructor(tag: string, millis: number, data: native.Array<number>, flags: number);
				/**
				 * Create a new Entry with streaming data contents. Takes ownership of the ParcelFileDescriptor.
				 */
				constructor(tag: string, millis: number, data: android.os.ParcelFileDescriptor, flags: number);
				/**
				 * Create a new Entry with the contents read from a file. The file will be read when the entry's contents are requested.
				 */
				constructor(tag: string, millis: number, data: java.io.File, flags: number);
				static CREATOR: android.os.Parcelable.ICreator<android.os.DropBoxManager.Entry>;
				static class: java.lang.Class<android.os.DropBoxManager.Entry>;
				/**
				 * Close the input stream associated with this entry.
				 */
				public close(): void;
				public getTag(): string;
				public getTimeMillis(): any;
				public getFlags(): number;
				/**
				 * @param maxBytes of string to return (will truncate at this length).
				 */
				public getText(maxBytes: number): string;
				public getInputStream(): java.io.InputStream;
				public describeContents(): number;
				public writeToParcel(out: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * Class that implements the condition variable locking paradigm.
		 */
		export class ConditionVariable extends java.lang.Object {
			/**
			 * Create the ConditionVariable in the default closed state.
			 */
			constructor();
			/**
			 * Create the ConditionVariable with the given state. 
			 */
			constructor(state: boolean);
			static class: java.lang.Class<android.os.ConditionVariable>;
			/**
			 * Open the condition, and release all threads that are blocked.
			 */
			public open(): void;
			/**
			 * Reset the condition to the closed state.
			 */
			public close(): void;
			/**
			 * Block the current thread until the condition is opened.
			 */
			public block(): void;
			/**
			 * Block the current thread until the condition is opened or until timeout milliseconds have passed.
			 * @param timeout the minimum time to wait in milliseconds.
			 */
			public block(timeout: number): boolean;
		}
		/**
		 * Base class for a remotable object, the core part of a lightweight remote procedure call mechanism defined by IBinder. This class is an implementation of IBinder that provides the standard support creating a local implementation of such an object. 
		 */
		export class Binder extends java.lang.Object implements android.os.IIBinder {
			/**
			 * Default constructor initializes the object.
			 */
			constructor();
			static class: java.lang.Class<android.os.Binder>;
			/**
			 * Return the ID of the process that sent you the current transaction that is being processed. This pid can be used with higher-level system services to determine its identity and check permissions. If the current thread is not currently executing an incoming transaction, then its own pid is returned.
			 */
			public static getCallingPid(): number;
			/**
			 * Return the Linux uid assigned to the process that sent you the current transaction that is being processed. This uid can be used with higher-level system services to determine its identity and check permissions. If the current thread is not currently executing an incoming transaction, then its own uid is returned.
			 */
			public static getCallingUid(): number;
			/**
			 * Return the UserHandle assigned to the process that sent you the current transaction that is being processed. This is the user of the caller. It is distinct from #getCallingUid() in that a particular user will have multiple distinct apps running under it each with their own uid. If the current thread is not currently executing an incoming transaction, then its own UserHandle is returned.
			 */
			public static getCallingUserHandle(): android.os.UserHandle;
			/**
			 * Reset the identity of the incoming IPC on the current thread. This can be useful if, while handling an incoming call, you will be calling on interfaces of other objects that may be local to your process and need to do permission checks on the calls coming into them (so they will check the permission of your own local process, and not whatever process originally called you).
			 */
			public static clearCallingIdentity(): any;
			/**
			 * Restore the identity of the incoming IPC on the current thread back to a previously identity that was returned by #clearCallingIdentity.
			 * @param token The opaque token that was previously returned by
			 */
			public static restoreCallingIdentity(token: number): void;
			/**
			 * Flush any Binder commands pending in the current thread to the kernel driver. This can be useful to call before performing an operation that may block for a long time, to ensure that any pending object references have been released in order to prevent the process from holding on to objects longer than it needs to.
			 */
			public static flushPendingCommands(): void;
			/**
			 * Add the calling thread to the IPC thread pool. This function does not return until the current process is exiting.
			 */
			public static joinThreadPool(): void;
			/**
			 * Convenience method for associating a specific interface with the Binder. After calling, queryLocalInterface() will be implemented for you to return the given owner IInterface when the corresponding descriptor is requested.
			 */
			public attachInterface(owner: android.os.IIInterface, descriptor: string): void;
			/**
			 * Default implementation returns an empty interface name.
			 */
			public getInterfaceDescriptor(): string;
			/**
			 * Default implementation always returns true -- if you got here, the object is alive.
			 */
			public pingBinder(): boolean;
			/**
			 * 
			 */
			public isBinderAlive(): boolean;
			/**
			 * Use information supplied to attachInterface() to return the associated IInterface if it matches the requested descriptor.
			 */
			public queryLocalInterface(descriptor: string): android.os.IIInterface;
			/**
			 * Default implementation is a stub that returns false. You will want to override this to do the appropriate unmarshalling of transactions.
			 */
			protected onTransact(code: number, data: android.os.Parcel, reply: android.os.Parcel, flags: number): boolean;
			/**
			 * Implemented to call the more convenient version #dump(FileDescriptor, PrintWriter, String[]).
			 */
			public dump(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			/**
			 * Like #dump(FileDescriptor, String[]), but ensures the target executes asynchronously.
			 */
			public dumpAsync(fd: java.io.FileDescriptor, args: native.Array<string>): void;
			/**
			 * Print the object's state into the given stream. 
			 * @param fd The raw file descriptor that the dump is being sent to.
			 * @param fout The file to which you should dump your state. This will be
			 * @param args additional arguments to the dump request.
			 */
			public dump(fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: native.Array<string>): void;
			/**
			 * Default implementation rewinds the parcels and calls onTransact. On the remote side, transact calls into the binder to do the IPC.
			 */
			public transact(code: number, data: android.os.Parcel, reply: android.os.Parcel, flags: number): boolean;
			/**
			 * Local implementation is a no-op.
			 */
			public linkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): void;
			/**
			 * Local implementation is a no-op.
			 */
			public unlinkToDeath(recipient: android.os.IBinder.IDeathRecipient, flags: number): boolean;
			protected finalize(): void;
		}
		export class StrictMode extends java.lang.Object {
			static class: java.lang.Class<android.os.StrictMode>;
			/**
			 * Sets the policy for what actions on the current thread should be detected, as well as the penalty if such actions occur.
			 * @param policy the policy to put into place
			 */
			public static setThreadPolicy(policy: android.os.StrictMode.ThreadPolicy): void;
			/**
			 * Returns the current thread's policy.
			 */
			public static getThreadPolicy(): android.os.StrictMode.ThreadPolicy;
			/**
			 * A convenience wrapper that takes the current ThreadPolicy from #getThreadPolicy, modifies it to permit both disk reads &amp; writes, and sets the new policy with #setThreadPolicy, returning the old policy so you can restore it at the end of a block.
			 */
			public static allowThreadDiskWrites(): android.os.StrictMode.ThreadPolicy;
			/**
			 * A convenience wrapper that takes the current ThreadPolicy from #getThreadPolicy, modifies it to permit disk reads, and sets the new policy with #setThreadPolicy, returning the old policy so you can restore it at the end of a block.
			 */
			public static allowThreadDiskReads(): android.os.StrictMode.ThreadPolicy;
			/**
			 * Called from Parcel.writeNoException()
			 */
			static hasGatheredViolations(): boolean;
			/**
			 * Called from Parcel.writeException(), so we drop this memory and don't incorrectly attribute it to the wrong caller on the next Binder call on this thread.
			 */
			static clearGatheredViolations(): void;
			/**
			 * Sets the policy for what actions in the VM process (on any thread) should be detected, as well as the penalty if such actions occur.
			 * @param policy the policy to put into place
			 */
			public static setVmPolicy(policy: android.os.StrictMode.VmPolicy): void;
			/**
			 * Gets the current VM policy.
			 */
			public static getVmPolicy(): android.os.StrictMode.VmPolicy;
			/**
			 * Enable the recommended StrictMode defaults, with violations just being logged.
			 */
			public static enableDefaults(): void;
			/**
			 * Called from Parcel.writeNoException()
			 */
			static writeGatheredViolationsToParcel(p: android.os.Parcel): void;
			/**
			 * Called from Parcel.readException() when the exception is EX_STRICT_MODE_VIOLATIONS, we here read back all the encoded violations.
			 */
			static readAndHandleBinderCallViolations(p: android.os.Parcel): void;
			/**
			 * For code to note that it's slow. This is a no-op unless the current thread's android.os.StrictMode.ThreadPolicy has android.os.StrictMode.ThreadPolicy.Builder#detectCustomSlowCalls enabled.
			 * @param name a short string for the exception stack trace that's
			 */
			public static noteSlowCall(name: string): void;
		}
		export module StrictMode {
			/**
			 * Linked lists of active spans and a freelist.
			 */
			export class ThreadSpanState extends java.lang.Object {
				mActiveSize: number;
				mFreeListSize: number;
				static class: java.lang.Class<android.os.StrictMode.ThreadSpanState>;
			}
			export class InstanceCountViolation extends java.lang.Throwable {
				constructor(klass: java.lang.Class<any>, instances: number, limit: number);
				static class: java.lang.Class<android.os.StrictMode.InstanceCountViolation>;
			}
			export class InstanceTracker extends java.lang.Object {
				constructor(instance: any);
				static class: java.lang.Class<android.os.StrictMode.InstanceTracker>;
				protected finalize(): void;
				public static getInstanceCount(klass: java.lang.Class<any>): number;
			}
			/**
			 * StrictMode policy applied to a certain thread.
			 */
			export class ThreadPolicy extends java.lang.Object {
				/**
				 * The default, lax policy which doesn't catch anything.
				 */
				static LAX: android.os.StrictMode.ThreadPolicy;
				static class: java.lang.Class<android.os.StrictMode.ThreadPolicy>;
				public toString(): string;
			}
			export module ThreadPolicy {
				/**
				 * Creates ThreadPolicy instances. Methods whose names start with detect specify what problems we should look for. Methods whose names start with penalty specify what we should do when we detect a problem.
				 */
				export class Builder extends java.lang.Object {
					/**
					 * Create a Builder that detects nothing and has no violations. (but note that #build will default to enabling #penaltyLog if no other penalties are specified)
					 */
					constructor();
					/**
					 * Initialize a Builder from an existing ThreadPolicy.
					 */
					constructor(policy: android.os.StrictMode.ThreadPolicy);
					static class: java.lang.Class<android.os.StrictMode.ThreadPolicy.Builder>;
					/**
					 * Detect everything that's potentially suspect.
					 */
					public detectAll(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Disable the detection of everything.
					 */
					public permitAll(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Enable detection of network operations.
					 */
					public detectNetwork(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Disable detection of network operations.
					 */
					public permitNetwork(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Enable detection of disk reads.
					 */
					public detectDiskReads(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Disable detection of disk reads.
					 */
					public permitDiskReads(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Enable detection of slow calls.
					 */
					public detectCustomSlowCalls(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Disable detection of slow calls.
					 */
					public permitCustomSlowCalls(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Enable detection of disk writes.
					 */
					public detectDiskWrites(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Disable detection of disk writes.
					 */
					public permitDiskWrites(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Show an annoying dialog to the developer on detected violations, rate-limited to be only a little annoying.
					 */
					public penaltyDialog(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Crash the whole process on violation. This penalty runs at the end of all enabled penalties so you'll still get see logging or other violations before the process dies.
					 */
					public penaltyDeath(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Crash the whole process on any network usage. Unlike #penaltyDeath, this penalty runs <em>before</em> anything else. You must still have called #detectNetwork to enable this.
					 */
					public penaltyDeathOnNetwork(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Flash the screen during a violation.
					 */
					public penaltyFlashScreen(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Log detected violations to the system log.
					 */
					public penaltyLog(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Enable detected violations log a stacktrace and timing data to the android.os.DropBoxManager DropBox on policy violation. Intended mostly for platform integrators doing beta user field data collection.
					 */
					public penaltyDropBox(): android.os.StrictMode.ThreadPolicy.Builder;
					/**
					 * Construct the ThreadPolicy instance.
					 */
					public build(): android.os.StrictMode.ThreadPolicy;
				}
			}
			/**
			 * StrictMode policy applied to all threads in the virtual machine's process.
			 */
			export class VmPolicy extends java.lang.Object {
				/**
				 * The default, lax policy which doesn't catch anything.
				 */
				static LAX: android.os.StrictMode.VmPolicy;
				static class: java.lang.Class<android.os.StrictMode.VmPolicy>;
				public toString(): string;
			}
			export module VmPolicy {
				/**
				 * Creates VmPolicy instances. Methods whose names start with detect specify what problems we should look for. Methods whose names start with penalty specify what we should do when we detect a problem.
				 */
				export class Builder extends java.lang.Object {
					constructor();
					/**
					 * Build upon an existing VmPolicy.
					 */
					constructor(base: android.os.StrictMode.VmPolicy);
					static class: java.lang.Class<android.os.StrictMode.VmPolicy.Builder>;
					/**
					 * Set an upper bound on how many instances of a class can be in memory at once. Helps to prevent object leaks.
					 */
					public setClassInstanceLimit(klass: java.lang.Class<any>, instanceLimit: number): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Detect leaks of android.app.Activity subclasses.
					 */
					public detectActivityLeaks(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Detect everything that's potentially suspect.
					 */
					public detectAll(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Detect when an android.database.sqlite.SQLiteCursor or other SQLite object is finalized without having been closed.
					 */
					public detectLeakedSqlLiteObjects(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Detect when an java.io.Closeable or other object with a explict termination method is finalized without having been closed.
					 */
					public detectLeakedClosableObjects(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Detect when a BroadcastReceiver or ServiceConnection is leaked during Context teardown.
					 */
					public detectLeakedRegistrationObjects(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Crashes the whole process on violation. This penalty runs at the end of all enabled penalties so yo you'll still get your logging or other violations before the process dies.
					 */
					public penaltyDeath(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Log detected violations to the system log.
					 */
					public penaltyLog(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Enable detected violations log a stacktrace and timing data to the android.os.DropBoxManager DropBox on policy violation. Intended mostly for platform integrators doing beta user field data collection.
					 */
					public penaltyDropBox(): android.os.StrictMode.VmPolicy.Builder;
					/**
					 * Construct the VmPolicy instance.
					 */
					public build(): android.os.StrictMode.VmPolicy;
				}
			}
			export class AndroidCloseGuardReporter extends java.lang.Object {
				static class: java.lang.Class<android.os.StrictMode.AndroidCloseGuardReporter>;
				public report(message: string, allocationSite: java.lang.Throwable): void;
			}
			export class LogStackTrace extends java.lang.Exception {
				static class: java.lang.Class<android.os.StrictMode.LogStackTrace>;
			}
			export class AndroidBlockGuardPolicy extends java.lang.Object {
				constructor(policyMask: number);
				static class: java.lang.Class<android.os.StrictMode.AndroidBlockGuardPolicy>;
				public toString(): string;
				public getPolicyMask(): number;
				public onWriteToDisk(): void;
				onCustomSlowCall(name: string): void;
				public onReadFromDisk(): void;
				public onNetwork(): void;
				public setPolicyMask(policyMask: number): void;
			}
		}
		/**
		 * Retrieve overall information about the space on a filesystem. This is a wrapper for Unix statfs().
		 */
		export class StatFs extends java.lang.Object {
			/**
			 * Construct a new StatFs for looking at the stats of the filesystem at path. Upon construction, the stat of the file system will be performed, and the values retrieved available from the methods on this class.
			 * @param path path in the desired file system to stat.
			 */
			constructor(path: string);
			static class: java.lang.Class<android.os.StatFs>;
			/**
			 * Perform a restat of the file system referenced by this object. This is the same as re-constructing the object with the same file system path, and the new stat values are available upon return.
			 */
			public restat(path: string): void;
			/**
			 * The size, in bytes, of a block on the file system. This corresponds to the Unix statfs.f_bsize field.
			 */
			public getBlockSize(): number;
			/**
			 * The total number of blocks on the file system. This corresponds to the Unix statfs.f_blocks field.
			 */
			public getBlockCount(): number;
			/**
			 * The total number of blocks that are free on the file system, including reserved blocks (that are not available to normal applications). This corresponds to the Unix statfs.f_bfree field. Most applications will want to use #getAvailableBlocks() instead.
			 */
			public getFreeBlocks(): number;
			/**
			 * The number of blocks that are free on the file system and available to applications. This corresponds to the Unix statfs.f_bavail field.
			 */
			public getAvailableBlocks(): number;
		}
		export class MessengerService extends android.app.Service {
			constructor();
			static class: java.lang.Class<android.os.MessengerService>;
			public onBind(intent: android.content.Intent): android.os.IIBinder;
		}
		export class ServiceManager extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.ServiceManager>;
			/**
			 * Returns a reference to a service with the given name.
			 * @param name the name of the service to get
			 */
			public static getService(name: string): android.os.IIBinder;
			/**
			 * Place a new service called name into the service manager.
			 * @param name the name of the new service
			 * @param service the service object
			 */
			public static addService(name: string, service: android.os.IIBinder): void;
			/**
			 * Retrieve an existing service called name from the service manager. Non-blocking.
			 */
			public static checkService(name: string): android.os.IIBinder;
			/**
			 * Return a list of all currently running services.
			 */
			public static listServices(): native.Array<string>;
		}
		/**
		 * The BatteryManager class contains strings and constants used for values in the android.content.Intent#ACTION_BATTERY_CHANGED Intent.
		 */
		export class BatteryManager extends java.lang.Object {
			constructor();
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer containing the current status constant.
			 */
			static EXTRA_STATUS: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer containing the current health constant.
			 */
			static EXTRA_HEALTH: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: boolean indicating whether a battery is present.
			 */
			static EXTRA_PRESENT: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer field containing the current battery level, from 0 to #EXTRA_SCALE.
			 */
			static EXTRA_LEVEL: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer containing the maximum battery level.
			 */
			static EXTRA_SCALE: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer containing the resource ID of a small status bar icon indicating the current battery state.
			 */
			static EXTRA_ICON_SMALL: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer indicating whether the device is plugged in to a power source; 0 means it is on battery, other constants are different types of power sources.
			 */
			static EXTRA_PLUGGED: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer containing the current battery voltage level.
			 */
			static EXTRA_VOLTAGE: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: integer containing the current battery temperature.
			 */
			static EXTRA_TEMPERATURE: string;
			/**
			 * Extra for android.content.Intent#ACTION_BATTERY_CHANGED: String describing the technology of the current battery.
			 */
			static EXTRA_TECHNOLOGY: string;
			static BATTERY_STATUS_UNKNOWN: number;
			static BATTERY_STATUS_CHARGING: number;
			static BATTERY_STATUS_DISCHARGING: number;
			static BATTERY_STATUS_NOT_CHARGING: number;
			static BATTERY_STATUS_FULL: number;
			static BATTERY_HEALTH_UNKNOWN: number;
			static BATTERY_HEALTH_GOOD: number;
			static BATTERY_HEALTH_OVERHEAT: number;
			static BATTERY_HEALTH_DEAD: number;
			static BATTERY_HEALTH_OVER_VOLTAGE: number;
			static BATTERY_HEALTH_UNSPECIFIED_FAILURE: number;
			static BATTERY_HEALTH_COLD: number;
			/**
			 * Power source is an AC charger.
			 */
			static BATTERY_PLUGGED_AC: number;
			/**
			 * Power source is a USB port.
			 */
			static BATTERY_PLUGGED_USB: number;
			/**
			 * Power source is wireless.
			 */
			static BATTERY_PLUGGED_WIRELESS: number;
			static class: java.lang.Class<android.os.BatteryManager>;
		}
		export class AidlTest {
			constructor();
			static class: java.lang.Class<android.os.AidlTest>;
			protected setUp(): void;
			public testInt(): void;
			public testParcelableIn(): void;
			public testParcelableOut(): void;
			public testParcelableInOut(): void;
			public testListParcelableLonger(): void;
			public testListParcelableShorter(): void;
			public testArrays(): void;
			public testVoidSecurityException(): void;
			public testIntSecurityException(): void;
		}
		export module AidlTest {
			export class TestParcelable extends java.lang.Object implements android.os.IParcelable {
				constructor();
				constructor(i: number, s: string);
				mAnInt: number;
				mAString: string;
				static CREATOR: android.os.Parcelable.ICreator<android.os.AidlTest.TestParcelable>;
				static class: java.lang.Class<android.os.AidlTest.TestParcelable>;
				public describeContents(): number;
				public writeToParcel(parcel: android.os.Parcel, flags: number): void;
				public readFromParcel(parcel: android.os.Parcel): void;
				public toString(): string;
			}
			export class AidlObject {
				static class: java.lang.Class<android.os.AidlTest.AidlObject>;
				public queryLocalInterface(descriptor: string): android.os.IIInterface;
				public intMethod(a: number): number;
				public parcelableIn(p: android.os.AidlTest.TestParcelable): android.os.AidlTest.TestParcelable;
				public parcelableOut(p: android.os.AidlTest.TestParcelable): android.os.AidlTest.TestParcelable;
				public parcelableInOut(p: android.os.AidlTest.TestParcelable): android.os.AidlTest.TestParcelable;
				public listParcelableLonger(list: java.util.IList<android.os.AidlTest.TestParcelable>, index: number): android.os.AidlTest.TestParcelable;
				public listParcelableShorter(list: java.util.IList<android.os.AidlTest.TestParcelable>, index: number): number;
				public booleanArray(a0: native.Array<boolean>, a1: native.Array<boolean>, a2: native.Array<boolean>): native.Array<boolean>;
				public charArray(a0: native.Array<string>, a1: native.Array<string>, a2: native.Array<string>): native.Array<string>;
				public intArray(a0: native.Array<number>, a1: native.Array<number>, a2: native.Array<number>): native.Array<number>;
				public longArray(a0: native.Array<number>, a1: native.Array<number>, a2: native.Array<number>): native.Array<number>;
				public floatArray(a0: native.Array<number>, a1: native.Array<number>, a2: native.Array<number>): native.Array<number>;
				public doubleArray(a0: native.Array<number>, a1: native.Array<number>, a2: native.Array<number>): native.Array<number>;
				public stringArray(a0: native.Array<string>, a1: native.Array<string>, a2: native.Array<string>): native.Array<string>;
				public parcelableArray(a0: native.Array<android.os.AidlTest.TestParcelable>, a1: native.Array<android.os.AidlTest.TestParcelable>, a2: native.Array<android.os.AidlTest.TestParcelable>): native.Array<android.os.AidlTest.TestParcelable>;
				public voidSecurityException(): void;
				public intSecurityException(): number;
			}
		}
		/**
		 * Delegate implementing the native methods of android.os.Build
		 */
		export class Build_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.Build_Delegate>;
			static getString(property: string): string;
		}
		export class HandlerThreadTest {
			constructor();
			static class: java.lang.Class<android.os.HandlerThreadTest>;
			public testHandlerThread(): void;
		}
		/**
		 * Provides the ability to cancel an operation in progress.
		 */
		export class CancellationSignal extends java.lang.Object {
			/**
			 * Creates a cancellation signal, initially not canceled.
			 */
			constructor();
			static class: java.lang.Class<android.os.CancellationSignal>;
			/**
			 * Returns true if the operation has been canceled.
			 */
			public isCanceled(): boolean;
			/**
			 * Throws OperationCanceledException if the operation has been canceled.
			 */
			public throwIfCanceled(): void;
			/**
			 * Cancels the operation and signals the cancellation listener. If the operation has not yet started, then it will be canceled as soon as it does.
			 */
			public cancel(): void;
			/**
			 * Sets the cancellation listener to be called when canceled.
			 * @param listener The cancellation listener, or null to remove the current listener.
			 */
			public setOnCancelListener(listener: android.os.CancellationSignal.IOnCancelListener): void;
		}
		export module CancellationSignal {
			/**
			 * Listens for cancellation.
			 */
			interface IOnCancelListener {
				/**
				 * Called when CancellationSignal#cancel is invoked.
				 */
				onCancel(): void;
			}
			export class Transport {
				static class: java.lang.Class<android.os.CancellationSignal.Transport>;
				public cancel(): void;
			}
			/**
			 * Listens for cancellation.
			 */
			export class OnCancelListener implements android.os.CancellationSignal.IOnCancelListener {
				constructor(implementation: android.os.CancellationSignal.IOnCancelListener);
				/**
				 * Called when CancellationSignal#cancel is invoked.
				 */
				public onCancel(): void;
			}
		}
		/**
		 * Provides various debugging functions for Android applications, including tracing and allocation counts.
		 */
		export class Debug extends java.lang.Object {
			/**
			 * Flags for startMethodTracing(). These can be ORed together.
			 */
			static TRACE_COUNT_ALLOCS: number;
			/**
			 * Flags for printLoadedClasses(). Default behavior is to only show the class name.
			 */
			static SHOW_FULL_DETAIL: number;
			static SHOW_CLASSLOADER: number;
			static SHOW_INITIALIZED: number;
			static class: java.lang.Class<android.os.Debug>;
			/**
			 * Wait until a debugger attaches. As soon as the debugger attaches, this returns, so you will need to place a breakpoint after the waitForDebugger() call if you want to start tracing immediately.
			 */
			public static waitForDebugger(): void;
			/**
			 * Returns "true" if one or more threads is waiting for a debugger to attach.
			 */
			public static waitingForDebugger(): boolean;
			/**
			 * Determine if a debugger is currently attached.
			 */
			public static isDebuggerConnected(): boolean;
			/**
			 * Change the JDWP port.
			 */
			public static changeDebugPort(port: number): void;
			/**
			 * Enable qemu tracing. For this to work requires running everything inside the qemu emulator; otherwise, this method will have no effect. The trace file is specified on the command line when the emulator is started. For example, the following command line <br /> <code>emulator -trace foo</code><br /> will start running the emulator and create a trace file named "foo". This method simply enables writing the trace records to the trace file.
			 */
			public static startNativeTracing(): void;
			/**
			 * Stop qemu tracing. See #startNativeTracing() to start tracing.
			 */
			public static stopNativeTracing(): void;
			/**
			 * Enable "emulator traces", in which information about the current method is made available to the "emulator -trace" feature. There is no corresponding "disable" call -- this is intended for use by the framework when tracing should be turned on and left that way, so that traces captured with F9/F10 will include the necessary data.
			 */
			public static enableEmulatorTraceOutput(): void;
			/**
			 * Start method tracing with default log name and buffer size. See <a href="guide/developing/tools/traceview.html">Traceview: A Graphical Log Viewer</a> for information about reading these files. Call stopMethodTracing() to stop tracing.
			 */
			public static startMethodTracing(): void;
			/**
			 * Start method tracing, specifying the trace log file name. The trace file will be put under "/sdcard" unless an absolute path is given. See <a href="guide/developing/tools/traceview.html">Traceview: A Graphical Log Viewer</a> for information about reading trace files.
			 * @param traceName Name for the trace log file to create.
			 */
			public static startMethodTracing(traceName: string): void;
			/**
			 * Start method tracing, specifying the trace log file name and the buffer size. The trace files will be put under "/sdcard" unless an absolute path is given. See <a href="guide/developing/tools/traceview.html">Traceview: A Graphical Log Viewer</a> for information about reading trace files.
			 * @param traceName Name for the trace log file to create.
			 * @param bufferSize The maximum amount of trace data we gather. If not given, it defaults to 8MB.
			 */
			public static startMethodTracing(traceName: string, bufferSize: number): void;
			/**
			 * Start method tracing, specifying the trace log file name and the buffer size. The trace files will be put under "/sdcard" unless an absolute path is given. See <a href="guide/developing/tools/traceview.html">Traceview: A Graphical Log Viewer</a> for information about reading trace files.
			 * @param traceName Name for the trace log file to create.
			 * @param bufferSize The maximum amount of trace data we gather. If not given, it defaults to 8MB.
			 * @param flags 
			 */
			public static startMethodTracing(traceName: string, bufferSize: number, flags: number): void;
			/**
			 * Stop method tracing.
			 */
			public static stopMethodTracing(): void;
			/**
			 * Get an indication of thread CPU usage. The value returned indicates the amount of time that the current thread has spent executing code or waiting for certain types of I/O.
			 */
			public static threadCpuTimeNanos(): any;
			/**
			 * Start counting the number and aggregate size of memory allocations.
			 */
			public static startAllocCounting(): void;
			/**
			 * Stop counting the number and aggregate size of memory allocations.
			 */
			public static stopAllocCounting(): void;
			public static getGlobalAllocCount(): number;
			public static getGlobalAllocSize(): number;
			public static getGlobalFreedCount(): number;
			public static getGlobalFreedSize(): number;
			public static getGlobalClassInitCount(): number;
			public static getGlobalClassInitTime(): number;
			/**
			 * Returns the global count of external allocation requests. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and always returns 0.
			 */
			public static getGlobalExternalAllocCount(): number;
			/**
			 * Returns the global count of bytes externally allocated. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and always returns 0.
			 */
			public static getGlobalExternalAllocSize(): number;
			/**
			 * Returns the global count of freed external allocation requests. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and always returns 0.
			 */
			public static getGlobalExternalFreedCount(): number;
			/**
			 * Returns the global count of freed bytes from external allocation requests. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and always returns 0.
			 */
			public static getGlobalExternalFreedSize(): number;
			public static getGlobalGcInvocationCount(): number;
			public static getThreadAllocCount(): number;
			public static getThreadAllocSize(): number;
			/**
			 * Returns the count of external allocation requests made by the current thread. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and always returns 0.
			 */
			public static getThreadExternalAllocCount(): number;
			/**
			 * Returns the global count of bytes externally allocated. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and always returns 0.
			 */
			public static getThreadExternalAllocSize(): number;
			public static getThreadGcInvocationCount(): number;
			public static resetGlobalAllocCount(): void;
			public static resetGlobalAllocSize(): void;
			public static resetGlobalFreedCount(): void;
			public static resetGlobalFreedSize(): void;
			public static resetGlobalClassInitCount(): void;
			public static resetGlobalClassInitTime(): void;
			/**
			 * Resets the global count of external allocation requests. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and has no effect.
			 */
			public static resetGlobalExternalAllocCount(): void;
			/**
			 * Resets the global count of bytes externally allocated. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and has no effect.
			 */
			public static resetGlobalExternalAllocSize(): void;
			/**
			 * Resets the global count of freed external allocations. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and has no effect.
			 */
			public static resetGlobalExternalFreedCount(): void;
			/**
			 * Resets the global count counter of freed bytes from external allocations. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and has no effect.
			 */
			public static resetGlobalExternalFreedSize(): void;
			public static resetGlobalGcInvocationCount(): void;
			public static resetThreadAllocCount(): void;
			public static resetThreadAllocSize(): void;
			/**
			 * Resets the count of external allocation requests made by the current thread. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and has no effect.
			 */
			public static resetThreadExternalAllocCount(): void;
			/**
			 * Resets the count of bytes externally allocated by the current thread. The external allocation tracking feature was removed in Honeycomb. This method exists for compatibility and has no effect.
			 */
			public static resetThreadExternalAllocSize(): void;
			public static resetThreadGcInvocationCount(): void;
			public static resetAllCounts(): void;
			/**
			 * Returns the size of the native heap.
			 */
			public static getNativeHeapSize(): any;
			/**
			 * Returns the amount of allocated memory in the native heap.
			 */
			public static getNativeHeapAllocatedSize(): any;
			/**
			 * Returns the amount of free memory in the native heap.
			 */
			public static getNativeHeapFreeSize(): any;
			/**
			 * Retrieves information about this processes memory usages. This information is broken down by how much is in use by dalivk, the native heap, and everything else.
			 */
			public static getMemoryInfo(memoryInfo: android.os.Debug.MemoryInfo): void;
			/**
			 * Retrieves the PSS memory used by the process as given by the smaps.
			 */
			public static getPss(): any;
			/**
			 * Establish an object allocation limit in the current thread. This feature was never enabled in release builds. The allocation limits feature was removed in Honeycomb. This method exists for compatibility and always returns -1 and has no effect.
			 */
			public static setAllocationLimit(limit: number): number;
			/**
			 * Establish a global object allocation limit. This feature was never enabled in release builds. The allocation limits feature was removed in Honeycomb. This method exists for compatibility and always returns -1 and has no effect.
			 */
			public static setGlobalAllocationLimit(limit: number): number;
			/**
			 * Dump a list of all currently loaded class to the log file.
			 * @param flags See constants above.
			 */
			public static printLoadedClasses(flags: number): void;
			/**
			 * Get the number of loaded classes.
			 */
			public static getLoadedClassCount(): number;
			/**
			 * Dump "hprof" data to the specified file. This may cause a GC.
			 * @param fileName Full pathname of output file (e.g. "/sdcard/dump.hprof").
			 */
			public static dumpHprofData(fileName: string): void;
			/**
			 * Returns the number of sent transactions from this process.
			 */
			public static getBinderSentTransactions(): number;
			/**
			 * Returns the number of received transactions from the binder driver.
			 */
			public static getBinderReceivedTransactions(): number;
			/**
			 * Returns the number of active local Binder objects that exist in the current process.
			 */
			public static getBinderLocalObjectCount(): number;
			/**
			 * Returns the number of references to remote proxy Binder objects that exist in the current process.
			 */
			public static getBinderProxyObjectCount(): number;
			/**
			 * Returns the number of death notification links to Binder objects that exist in the current process.
			 */
			public static getBinderDeathObjectCount(): number;
			/**
			 * Get a debugging dump of a system service by name.
			 * @param name of the service to dump
			 * @param fd to write dump output to (usually an output log file)
			 * @param args to pass to the service's dump method, may be null
			 */
			public static dumpService(name: string, fd: java.io.FileDescriptor, args: native.Array<string>): boolean;
		}
		export module Debug {
			/**
			 * This class is used to retrieved various statistics about the memory mappings for this process. The returns info broken down by dalvik, native, and other. All results are in kB.
			 */
			export class MemoryInfo extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * The proportional set size for dalvik.
				 */
				dalvikPss: number;
				/**
				 * The private dirty pages used by dalvik.
				 */
				dalvikPrivateDirty: number;
				/**
				 * The shared dirty pages used by dalvik.
				 */
				dalvikSharedDirty: number;
				/**
				 * The proportional set size for the native heap.
				 */
				nativePss: number;
				/**
				 * The private dirty pages used by the native heap.
				 */
				nativePrivateDirty: number;
				/**
				 * The shared dirty pages used by the native heap.
				 */
				nativeSharedDirty: number;
				/**
				 * The proportional set size for everything else.
				 */
				otherPss: number;
				/**
				 * The private dirty pages used by everything else.
				 */
				otherPrivateDirty: number;
				/**
				 * The shared dirty pages used by everything else.
				 */
				otherSharedDirty: number;
				static CREATOR: android.os.Parcelable.ICreator<android.os.Debug.MemoryInfo>;
				static class: java.lang.Class<android.os.Debug.MemoryInfo>;
				/**
				 * Return total PSS memory usage in kB.
				 */
				public getTotalPss(): number;
				/**
				 * Return total private dirty memory usage in kB.
				 */
				public getTotalPrivateDirty(): number;
				/**
				 * Return total shared dirty memory usage in kB.
				 */
				public getTotalSharedDirty(): number;
				public getOtherPss(which: number): number;
				public getOtherPrivateDirty(which: number): number;
				public getOtherSharedDirty(which: number): number;
				public static getOtherLabel(which: number): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(source: android.os.Parcel): void;
			}
			/**
			 * API for gathering and querying instruction counts.
			 */
			export class InstructionCount extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.os.Debug.InstructionCount>;
				/**
				 * Reset counters and ensure counts are running. Counts may have already been running.
				 */
				public resetAndStart(): boolean;
				/**
				 * Collect instruction counts. May or may not stop the counting process.
				 */
				public collect(): boolean;
				/**
				 * Return the total number of instructions executed globally (i.e. in all threads).
				 */
				public globalTotal(): number;
				/**
				 * Return the total number of method-invocation instructions executed globally.
				 */
				public globalMethodInvocations(): number;
			}
		}
		/**
		 * Class allowing access to package-protected methods/fields.
		 */
		export class Looper_Accessor extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.Looper_Accessor>;
			public static cleanupThread(): void;
		}
		/**
		 * The contents of a Parcel (usually during unmarshalling) does not contain the expected data.
		 */
		export class ParcelFormatException extends java.lang.RuntimeException {
			constructor();
			constructor(reason: string);
			static class: java.lang.Class<android.os.ParcelFormatException>;
		}
		export class SystemPropertiesTest {
			constructor();
			static class: java.lang.Class<android.os.SystemPropertiesTest>;
			public testProperties(): void;
		}
		export class ParcelArrayBenchmark {
			constructor();
			static class: java.lang.Class<android.os.ParcelArrayBenchmark>;
			protected setUp(): void;
			protected tearDown(): void;
			public timeWriteByteArray(reps: number): void;
			public timeCreateByteArray(reps: number): void;
			public timeReadByteArray(reps: number): void;
			public timeWriteIntArray(reps: number): void;
			public timeCreateIntArray(reps: number): void;
			public timeReadIntArray(reps: number): void;
			public timeWriteLongArray(reps: number): void;
			public timeCreateLongArray(reps: number): void;
			public timeReadLongArray(reps: number): void;
		}
		export class MessageQueueTest {
			constructor();
			static class: java.lang.Class<android.os.MessageQueueTest>;
			public testMessageOrder(): void;
			public testAtFrontOfQueue(): void;
			public testFieldIntegrity(): void;
		}
		export module MessageQueueTest {
			export class TestFieldIntegrityHandler extends android.os.TestHandlerThread {
				constructor();
				static class: java.lang.Class<android.os.MessageQueueTest.TestFieldIntegrityHandler>;
				public go(): void;
				public handleMessage(msg: android.os.Message): void;
			}
			export class BaseTestHandler extends android.os.TestHandlerThread {
				constructor();
				static class: java.lang.Class<android.os.MessageQueueTest.BaseTestHandler>;
				public go(): void;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		export class PowerManagerTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.PowerManagerTest>;
			/**
			 * Setup any common data for the upcoming tests.
			 */
			public setUp(): void;
			/**
			 * Confirm that the setup is good. Exception
			 */
			public testPreconditions(): void;
			/**
			 * Confirm that we can create functional wakelocks. Exception
			 */
			public testNewWakeLock(): void;
			/**
			 * Confirm that we can't create dysfunctional wakelocks. Exception
			 */
			public testBadNewWakeLock(): void;
		}
		export class OsTests extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.OsTests>;
		}
		/**
		 * A mapping from String values to various Parcelable types.
		 */
		export class Bundle extends java.lang.Object implements android.os.IParcelable, java.lang.ICloneable {
			/**
			 * Constructs a new, empty Bundle.
			 */
			constructor();
			/**
			 * Constructs a new, empty Bundle that uses a specific ClassLoader for instantiating Parcelable and Serializable objects.
			 * @param loader An explicit ClassLoader to use when instantiating objects
			 */
			constructor(loader: java.lang.ClassLoader);
			/**
			 * Constructs a new, empty Bundle sized to hold the given number of elements. The Bundle will grow as needed.
			 * @param capacity the initial capacity of the Bundle
			 */
			constructor(capacity: number);
			/**
			 * Constructs a Bundle containing a copy of the mappings from the given Bundle.
			 * @param b a Bundle to be copied.
			 */
			constructor(b: android.os.Bundle);
			static EMPTY: android.os.Bundle;
			static CREATOR: android.os.Parcelable.ICreator<android.os.Bundle>;
			static class: java.lang.Class<android.os.Bundle>;
			/**
			 * Changes the ClassLoader this Bundle uses when instantiating objects.
			 * @param loader An explicit ClassLoader to use when instantiating objects
			 */
			public setClassLoader(loader: java.lang.ClassLoader): void;
			/**
			 * Return the ClassLoader currently associated with this Bundle.
			 */
			public getClassLoader(): java.lang.ClassLoader;
			/**
			 * Clones the current Bundle. The internal map is cloned, but the keys and values to which it refers are copied by reference.
			 */
			public clone(): any;
			/**
			 * If the underlying data are stored as a Parcel, unparcel them using the currently assigned class loader.
			 */
			unparcel(): void;
			/**
			 * Returns the number of mappings contained in this Bundle.
			 */
			public size(): number;
			/**
			 * Returns true if the mapping of this Bundle is empty, false otherwise.
			 */
			public isEmpty(): boolean;
			/**
			 * Removes all elements from the mapping of this Bundle.
			 */
			public clear(): void;
			/**
			 * Returns true if the given key is contained in the mapping of this Bundle.
			 * @param key a String key
			 */
			public containsKey(key: string): boolean;
			/**
			 * Returns the entry with the given key as an object.
			 * @param key a String key
			 */
			public get(key: string): any;
			/**
			 * Removes any entry with the given key from the mapping of this Bundle.
			 * @param key a String key
			 */
			public remove(key: string): void;
			/**
			 * Inserts all mappings from the given Bundle into this Bundle.
			 * @param map a Bundle
			 */
			public putAll(map: android.os.Bundle): void;
			/**
			 * Returns a Set containing the Strings used as keys in this Bundle.
			 */
			public keySet(): java.util.ISet<string>;
			/**
			 * Reports whether the bundle contains any parcelled file descriptors.
			 */
			public hasFileDescriptors(): boolean;
			/**
			 * Inserts a Boolean value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a Boolean, or null
			 */
			public putBoolean(key: string, value: boolean): void;
			/**
			 * Inserts a byte value into the mapping of this Bundle, replacing any existing value for the given key.
			 * @param key a String, or null
			 * @param value a byte
			 */
			public putByte(key: string, value: number): void;
			/**
			 * Inserts a char value into the mapping of this Bundle, replacing any existing value for the given key.
			 * @param key a String, or null
			 * @param value a char, or null
			 */
			public putChar(key: string, value: string): void;
			/**
			 * Inserts a short value into the mapping of this Bundle, replacing any existing value for the given key.
			 * @param key a String, or null
			 * @param value a short
			 */
			public putShort(key: string, value: number): void;
			/**
			 * Inserts an int value into the mapping of this Bundle, replacing any existing value for the given key.
			 * @param key a String, or null
			 * @param value an int, or null
			 */
			public putInt(key: string, value: number): void;
			/**
			 * Inserts a long value into the mapping of this Bundle, replacing any existing value for the given key.
			 * @param key a String, or null
			 * @param value a long
			 */
			public putLong(key: string, value: number): void;
			/**
			 * Inserts a float value into the mapping of this Bundle, replacing any existing value for the given key.
			 * @param key a String, or null
			 * @param value a float
			 */
			public putFloat(key: string, value: number): void;
			/**
			 * Inserts a double value into the mapping of this Bundle, replacing any existing value for the given key.
			 * @param key a String, or null
			 * @param value a double
			 */
			public putDouble(key: string, value: number): void;
			/**
			 * Inserts a String value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a String, or null
			 */
			public putString(key: string, value: string): void;
			/**
			 * Inserts a CharSequence value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a CharSequence, or null
			 */
			public putCharSequence(key: string, value: string): void;
			/**
			 * Inserts a Parcelable value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a Parcelable object, or null
			 */
			public putParcelable(key: string, value: android.os.IParcelable): void;
			/**
			 * Inserts an array of Parcelable values into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value an array of Parcelable objects, or null
			 */
			public putParcelableArray(key: string, value: native.Array<android.os.IParcelable>): void;
			/**
			 * Inserts a List of Parcelable values into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value an ArrayList of Parcelable objects, or null
			 */
			public putParcelableArrayList(key: string, value: java.util.ArrayList<any>): void;
			/**
			 * Inserts a SparceArray of Parcelable values into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a SparseArray of Parcelable objects, or null
			 */
			public putSparseParcelableArray(key: string, value: android.util.SparseArray<any>): void;
			/**
			 * Inserts an ArrayList<Integer> value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value an ArrayList<Integer> object, or null
			 */
			public putIntegerArrayList(key: string, value: java.util.ArrayList<java.lang.Integer>): void;
			/**
			 * Inserts an ArrayList<String> value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value an ArrayList<String> object, or null
			 */
			public putStringArrayList(key: string, value: java.util.ArrayList<string>): void;
			/**
			 * Inserts an ArrayList<CharSequence> value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value an ArrayList<CharSequence> object, or null
			 */
			public putCharSequenceArrayList(key: string, value: java.util.ArrayList<string>): void;
			/**
			 * Inserts a Serializable value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a Serializable object, or null
			 */
			public putSerializable(key: string, value: java.io.ISerializable): void;
			/**
			 * Inserts a boolean array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a boolean array object, or null
			 */
			public putBooleanArray(key: string, value: native.Array<boolean>): void;
			/**
			 * Inserts a byte array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a byte array object, or null
			 */
			public putByteArray(key: string, value: native.Array<number>): void;
			/**
			 * Inserts a short array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a short array object, or null
			 */
			public putShortArray(key: string, value: native.Array<number>): void;
			/**
			 * Inserts a char array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a char array object, or null
			 */
			public putCharArray(key: string, value: native.Array<string>): void;
			/**
			 * Inserts an int array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value an int array object, or null
			 */
			public putIntArray(key: string, value: native.Array<number>): void;
			/**
			 * Inserts a long array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a long array object, or null
			 */
			public putLongArray(key: string, value: native.Array<number>): void;
			/**
			 * Inserts a float array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a float array object, or null
			 */
			public putFloatArray(key: string, value: native.Array<number>): void;
			/**
			 * Inserts a double array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a double array object, or null
			 */
			public putDoubleArray(key: string, value: native.Array<number>): void;
			/**
			 * Inserts a String array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a String array object, or null
			 */
			public putStringArray(key: string, value: native.Array<string>): void;
			/**
			 * Inserts a CharSequence array value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a CharSequence array object, or null
			 */
			public putCharSequenceArray(key: string, value: native.Array<string>): void;
			/**
			 * Inserts a Bundle value into the mapping of this Bundle, replacing any existing value for the given key. Either key or value may be null.
			 * @param key a String, or null
			 * @param value a Bundle object, or null
			 */
			public putBundle(key: string, value: android.os.Bundle): void;
			/**
			 * Returns the value associated with the given key, or false if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getBoolean(key: string): boolean;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getBoolean(key: string, defaultValue: boolean): boolean;
			/**
			 * Returns the value associated with the given key, or (byte) 0 if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getByte(key: string): number;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getByte(key: string, defaultValue: number): java.lang.Byte;
			/**
			 * Returns the value associated with the given key, or false if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getChar(key: string): string;
			/**
			 * Returns the value associated with the given key, or (char) 0 if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getChar(key: string, defaultValue: string): string;
			/**
			 * Returns the value associated with the given key, or (short) 0 if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getShort(key: string): number;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getShort(key: string, defaultValue: number): number;
			/**
			 * Returns the value associated with the given key, or 0 if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getInt(key: string): number;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getInt(key: string, defaultValue: number): number;
			/**
			 * Returns the value associated with the given key, or 0L if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getLong(key: string): any;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getLong(key: string, defaultValue: number): any;
			/**
			 * Returns the value associated with the given key, or 0.0f if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getFloat(key: string): number;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getFloat(key: string, defaultValue: number): number;
			/**
			 * Returns the value associated with the given key, or 0.0 if no mapping of the desired type exists for the given key.
			 * @param key a String
			 */
			public getDouble(key: string): any;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String
			 * @param defaultValue 
			 */
			public getDouble(key: string, defaultValue: number): any;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getString(key: string): string;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String, or null
			 * @param defaultValue Value to return if key does not exist
			 */
			public getString(key: string, defaultValue: string): string;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getCharSequence(key: string): string;
			/**
			 * Returns the value associated with the given key, or defaultValue if no mapping of the desired type exists for the given key.
			 * @param key a String, or null
			 * @param defaultValue Value to return if key does not exist
			 */
			public getCharSequence(key: string, defaultValue: string): string;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getBundle(key: string): android.os.Bundle;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getParcelable<T extends android.os.IParcelable>(key: string): T;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getParcelableArray(key: string): native.Array<android.os.IParcelable>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getParcelableArrayList<T extends android.os.IParcelable>(key: string): java.util.ArrayList<T>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getSparseParcelableArray<T extends android.os.IParcelable>(key: string): android.util.SparseArray<T>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getSerializable(key: string): java.io.ISerializable;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getIntegerArrayList(key: string): java.util.ArrayList<java.lang.Integer>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getStringArrayList(key: string): java.util.ArrayList<string>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getCharSequenceArrayList(key: string): java.util.ArrayList<string>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getBooleanArray(key: string): native.Array<boolean>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getByteArray(key: string): native.Array<number>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getShortArray(key: string): native.Array<number>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getCharArray(key: string): native.Array<string>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getIntArray(key: string): native.Array<number>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getLongArray(key: string): native.Array<number>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getFloatArray(key: string): native.Array<number>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getDoubleArray(key: string): native.Array<number>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getStringArray(key: string): native.Array<string>;
			/**
			 * Returns the value associated with the given key, or null if no mapping of the desired type exists for the given key or a null value is explicitly associated with the key.
			 * @param key a String, or null
			 */
			public getCharSequenceArray(key: string): native.Array<string>;
			/**
			 * Report the nature of this Parcelable's contents
			 */
			public describeContents(): number;
			/**
			 * Writes the Bundle contents to a Parcel, typically in order for it to be passed through an IBinder connection.
			 * @param parcel The parcel to copy this bundle to.
			 * @param flags 
			 */
			public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			/**
			 * Reads the Parcel contents into this Bundle, typically in order for it to be passed through an IBinder connection.
			 * @param parcel The parcel to overwrite this bundle from.
			 */
			public readFromParcel(parcel: android.os.Parcel): void;
			readFromParcelInner(parcel: android.os.Parcel, length: number): void;
			public toString(): string;
		}
		/**
		 * Schedule a countdown until a time in the future, with regular notifications on intervals along the way.
		 */
		export class CountDownTimer extends java.lang.Object {
			/**
			 * @param millisInFuture The number of millis in the future from the call
			 * @param countDownInterval The interval along the way to receive
			 */
			constructor(millisInFuture: number, countDownInterval: number);
			static class: java.lang.Class<android.os.CountDownTimer>;
			/**
			 * Cancel the countdown.
			 */
			public cancel(): void;
			/**
			 * Start the countdown.
			 */
			public start(): android.os.CountDownTimer;
			/**
			 * Callback fired on regular interval.
			 * @param millisUntilFinished The amount of time until finished.
			 */
			public onTick(millisUntilFinished: number): void;
			/**
			 * Callback fired when the time is up.
			 */
			public onFinish(): void;
		}
		export class FileObserverTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.os.FileObserverTest>;
			protected setUp(): void;
			protected tearDown(): void;
			public testRun(): void;
		}
		export module FileObserverTest {
			export class Observer extends android.os.FileObserver {
				constructor(path: string);
				events: java.util.IList<java.util.IMap<any, any>>;
				totalEvents: number;
				static class: java.lang.Class<android.os.FileObserverTest.Observer>;
				public onEvent(event: number, path: string): void;
			}
		}
		/**
		 * Delegate implementing the native methods of android.os.SystemClock
		 */
		export class SystemClock_Delegate extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.os.SystemClock_Delegate>;
			static setCurrentTimeMillis(millis: number): boolean;
			/**
			 * Returns milliseconds since boot, not counting time spent in deep sleep. <b>Note:</b> This value may get reset occasionally (before it would otherwise wrap around).
			 */
			static uptimeMillis(): any;
			/**
			 * Returns milliseconds since boot, including time spent in sleep.
			 */
			static elapsedRealtime(): any;
			/**
			 * Returns nanoseconds since boot, including time spent in sleep.
			 */
			static elapsedRealtimeNanos(): any;
			/**
			 * Returns milliseconds running in the current thread.
			 */
			static currentThreadTimeMillis(): any;
		}
		/**
		 * Service used by BinderThreadPriorityTest to verify the conveyance of thread priorities over Binder.
		 */
		export class BinderThreadPriorityService extends android.app.Service {
			constructor();
			static class: java.lang.Class<android.os.BinderThreadPriorityService>;
			public onBind(intent: android.content.Intent): android.os.IIBinder;
		}
		/**
		 * Interface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must also have a static field called <code>CREATOR</code>, which is an object implementing the Parcelable.Creator Parcelable.Creator interface. 
		 */
		interface IParcelable {
			/**
			 * Describe the kinds of special objects contained in this Parcelable's marshalled representation. 
			 */
			describeContents(): number;
			/**
			 * Flatten this object in to a Parcel. 
			 * @param dest The Parcel in which the object should be written.
			 * @param flags Additional flags about how the object should be written.
			 */
			writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export module IParcelable {
			/**
			 * Flag for use with #writeToParcel: the object being written is a return value, that is the result of a function such as "<code>Parcelable someFunction()</code>", "<code>void someFunction(out Parcelable)</code>", or "<code>void someFunction(inout Parcelable)</code>". Some implementations may want to release resources at this point.
			 */
			var PARCELABLE_WRITE_RETURN_VALUE: number;
			/**
			 * Bit masks for use with #describeContents: each bit represents a kind of object considered to have potential special significance when marshalled.
			 */
			var CONTENTS_FILE_DESCRIPTOR: number;
		}
		/**
		 * Monitors files (using <a href="http://en.wikipedia.org/wiki/Inotify">inotify</a>) to fire an event after files are accessed or changed by by any process on the device (including this one). FileObserver is an abstract class; subclasses must implement the event handler #onEvent(int, String).
		 */
		export class FileObserver extends java.lang.Object {
			/**
			 * Equivalent to FileObserver(path, FileObserver.ALL_EVENTS).
			 */
			constructor(path: string);
			/**
			 * Create a new file observer for a certain file or directory. Monitoring does not start on creation! You must call #startWatching() before you will receive events.
			 * @param path The file or directory to monitor
			 * @param mask The event or events (added together) to watch for
			 */
			constructor(path: string, mask: number);
			/**
			 * Event type: Data was read from a file
			 */
			static ACCESS: number;
			/**
			 * Event type: Data was written to a file
			 */
			static MODIFY: number;
			/**
			 * Event type: Metadata (permissions, owner, timestamp) was changed explicitly
			 */
			static ATTRIB: number;
			/**
			 * Event type: Someone had a file or directory open for writing, and closed it
			 */
			static CLOSE_WRITE: number;
			/**
			 * Event type: Someone had a file or directory open read-only, and closed it
			 */
			static CLOSE_NOWRITE: number;
			/**
			 * Event type: A file or directory was opened
			 */
			static OPEN: number;
			/**
			 * Event type: A file or subdirectory was moved from the monitored directory
			 */
			static MOVED_FROM: number;
			/**
			 * Event type: A file or subdirectory was moved to the monitored directory
			 */
			static MOVED_TO: number;
			/**
			 * Event type: A new file or subdirectory was created under the monitored directory
			 */
			static CREATE: number;
			/**
			 * Event type: A file was deleted from the monitored directory
			 */
			static DELETE: number;
			/**
			 * Event type: The monitored file or directory was deleted; monitoring effectively stops
			 */
			static DELETE_SELF: number;
			/**
			 * Event type: The monitored file or directory was moved; monitoring continues
			 */
			static MOVE_SELF: number;
			/**
			 * Event mask: All valid event types, combined
			 */
			static ALL_EVENTS: number;
			static class: java.lang.Class<android.os.FileObserver>;
			protected finalize(): void;
			/**
			 * Start watching for events. The monitored file or directory must exist at this time, or else no events will be reported (even if it appears later). If monitoring is already started, this call has no effect.
			 */
			public startWatching(): void;
			/**
			 * Stop watching for events. Some events may be in process, so events may continue to be reported even after this method completes. If monitoring is already stopped, this call has no effect.
			 */
			public stopWatching(): void;
			/**
			 * The event handler, which must be implemented by subclasses.
			 * @param event The type of event which happened
			 * @param path The path, relative to the main monitored file or directory,
			 */
			public onEvent(event: number, path: string): void;
		}
		export module FileObserver {
			export class ObserverThread extends java.lang.Thread {
				constructor();
				static class: java.lang.Class<android.os.FileObserver.ObserverThread>;
				public run(): void;
				public startWatching(path: string, mask: number, observer: android.os.FileObserver): number;
				public stopWatching(descriptor: number): void;
				public onEvent(wfd: number, mask: number, path: string): void;
			}
		}
		/**
		 * Provides test cases for android.os.Build and, in turn, many of the system properties set by the build system.
		 */
		export class BuildTest {
			constructor();
			static class: java.lang.Class<android.os.BuildTest>;
			/**
			 * Asserts that all android.os.Build fields are non-empty and/or in a valid range.
			 */
			public testBuildFields(): void;
		}
		/**
		 * Class used to run a message loop for a thread. Threads by default do not have a message loop associated with them; to create one, call #prepare in the thread that is to run the loop, and then #loop to have it process messages until the loop is stopped. 
		 */
		export class Looper extends java.lang.Object {
			static class: java.lang.Class<android.os.Looper>;
			/**
			 * Initialize the current thread as a looper. This gives you a chance to create handlers that then reference this looper, before actually starting the loop. Be sure to call #loop() after calling this method, and end it by calling #quit().
			 */
			public static prepare(): void;
			/**
			 * Initialize the current thread as a looper, marking it as an application's main looper. The main looper for your application is created by the Android environment, so you should never need to call this function yourself. See also: #prepare()
			 */
			public static prepareMainLooper(): void;
			/**
			 * Returns the application's main looper, which lives in the main thread of the application.
			 */
			public static getMainLooper(): android.os.Looper;
			/**
			 * Run the message queue in this thread. Be sure to call #quit() to end the loop.
			 */
			public static loop(): void;
			/**
			 * Return the Looper object associated with the current thread. Returns null if the calling thread is not associated with a Looper.
			 */
			public static myLooper(): android.os.Looper;
			/**
			 * Control logging of messages as they are processed by this Looper. If enabled, a log message will be written to <var>printer</var> at the beginning and ending of each message dispatch, identifying the target Handler and message contents. 
			 * @param printer A Printer object that will receive log messages, or
			 */
			public setMessageLogging(printer: android.util.IPrinter): void;
			/**
			 * Return the MessageQueue object associated with the current thread. This must be called from a thread running a Looper, or a NullPointerException will be thrown.
			 */
			public static myQueue(): android.os.MessageQueue;
			/**
			 * Quits the looper.
			 */
			public quit(): void;
			/**
			 * Return the Thread associated with this Looper.
			 */
			public getThread(): java.lang.Thread;
			public dump(pw: android.util.IPrinter, prefix: string): void;
			public toString(): string;
		}
		/**
		 * Handy class for starting a new thread that has a looper. The looper can then be used to create handler classes. Note that start() must still be called.
		 */
		export class HandlerThread extends java.lang.Thread {
			constructor(name: string);
			/**
			 * Constructs a HandlerThread.
			 * @param name 
			 * @param priority The priority to run the thread at. The value supplied must be from
			 */
			constructor(name: string, priority: number);
			static class: java.lang.Class<android.os.HandlerThread>;
			/**
			 * Call back method that can be explicitly overridden if needed to execute some setup before Looper loops.
			 */
			protected onLooperPrepared(): void;
			public run(): void;
			/**
			 * This method returns the Looper associated with this thread. If this thread not been started or for any reason is isAlive() returns false, this method will return null. If this thread has been started, this method will block until the looper has been initialized.
			 */
			public getLooper(): android.os.Looper;
			/**
			 * Ask the currently running looper to quit. If the thread has not been started or has finished (that is if #getLooper returns null), then false is returned. Otherwise the looper is asked to quit and true is returned.
			 */
			public quit(): boolean;
			/**
			 * Returns the identifier of this thread. See Process.myTid().
			 */
			public getThreadId(): number;
		}
		export class ParcelBenchmark {
			constructor();
			static class: java.lang.Class<android.os.ParcelBenchmark>;
			protected setUp(): void;
			protected tearDown(): void;
			public timeWriteByte(reps: number): void;
			public timeReadByte(reps: number): void;
			public timeWriteInt(reps: number): void;
			public timeReadInt(reps: number): void;
			public timeWriteLong(reps: number): void;
			public timeReadLong(reps: number): void;
		}
		/**
		 * Base class for Binder interfaces. When defining a new interface, you must derive it from IInterface.
		 */
		interface IIInterface {
			/**
			 * Retrieve the Binder object associated with this interface. You must use this instead of a plain cast, so that proxy objects can return the correct result.
			 */
			asBinder(): android.os.IIBinder;
		}
		/**
		 * Manages users and user details on a multi-user system.
		 */
		export class UserManager extends java.lang.Object {
			static class: java.lang.Class<android.os.UserManager>;
			/**
			 * Returns the user name of the user making this call. This call is only available to applications on the system image; it requires the MANAGE_USERS permission.
			 */
			public getUserName(): string;
			/**
			 * Used to determine whether the user making this call is subject to teleportations.
			 */
			public isUserAGoat(): boolean;
			/**
			 * Return whether the given user is actively running. This means that the user is in the "started" state, not "stopped" -- it is currently allowed to run code through scheduled alarms, receiving broadcasts, etc. A started user may be either the current foreground user or a background user; the result here does not distinguish between the two.
			 * @param user The user to retrieve the running state for.
			 */
			public isUserRunning(user: android.os.UserHandle): boolean;
			/**
			 * Return whether the given user is actively running <em>or</em> stopping. This is like #isUserRunning(UserHandle), but will also return true if the user had been running but is in the process of being stopped (but is not yet fully stopped, and still running some code).
			 * @param user The user to retrieve the running state for.
			 */
			public isUserRunningOrStopping(user: android.os.UserHandle): boolean;
			/**
			 * Return the serial number for a user. This is a device-unique number assigned to that user; if the user is deleted and then a new user created, the new users will not be given the same serial number.
			 * @param user The user whose serial number is to be retrieved.
			 */
			public getSerialNumberForUser(user: android.os.UserHandle): any;
			/**
			 * Return the user associated with a serial number previously returned by #getSerialNumberForUser(UserHandle).
			 * @param serialNumber The serial number of the user that is being
			 */
			public getUserForSerialNumber(serialNumber: number): android.os.UserHandle;
			/**
			 * Return the number of users currently created on the device.
			 */
			public getUserCount(): number;
		}
		export class ProcessTest {
			constructor();
			static class: java.lang.Class<android.os.ProcessTest>;
			public testProcessGetUidFromName(): void;
			public testProcessGetUidFromNameFailure(): void;
		}
		/**
		 * Class that operates the vibrator on the device.
		 */
		export class Vibrator extends java.lang.Object {
			static class: java.lang.Class<android.os.Vibrator>;
			/**
			 * Check whether the hardware has a vibrator.
			 */
			public hasVibrator(): boolean;
			/**
			 * Vibrate constantly for the specified period of time.
			 * @param milliseconds The number of milliseconds to vibrate.
			 */
			public vibrate(milliseconds: number): void;
			/**
			 * Vibrate with a given pattern.
			 * @param pattern an array of longs of times for which to turn the vibrator on or off.
			 * @param repeat the index into pattern at which to repeat, or -1 if
			 */
			public vibrate(pattern: native.Array<number>, repeat: number): void;
			/**
			 * Turn the vibrator off.
			 */
			public cancel(): void;
		}
		/**
		 * Parent exception for all Binder remote-invocation errors
		 */
		export class RemoteException extends android.util.AndroidException {
			constructor();
			constructor(message: string);
			static class: java.lang.Class<android.os.RemoteException>;
		}
		export class HandlerTester extends java.lang.Thread {
			constructor();
			static class: java.lang.Class<android.os.HandlerTester>;
			public go(): void;
			public handleMessage(msg: android.os.Message): void;
			public doTest(timeout: number): void;
			public success(): void;
			public failure(): void;
			public run(): void;
		}
		export module HandlerTester {
			export class H extends android.os.Handler {
				static class: java.lang.Class<android.os.HandlerTester.H>;
				public handleMessage(msg: android.os.Message): void;
			}
		}
		/**
		 * Generic interface for receiving a callback result from someone. Use this by creating a subclass and implement #onReceiveResult, which you can then pass to others and send through IPC, and receive results they supply with #send.
		 */
		export class ResultReceiver extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Create a new ResultReceive to receive results. Your #onReceiveResult method will be called from the thread running <var>handler</var> if given, or from an arbitrary thread if null.
			 */
			constructor(handler: android.os.Handler);
			static CREATOR: android.os.Parcelable.ICreator<android.os.ResultReceiver>;
			static class: java.lang.Class<android.os.ResultReceiver>;
			/**
			 * Deliver a result to this receiver. Will call #onReceiveResult, always asynchronously if the receiver has supplied a Handler in which to dispatch the result.
			 * @param resultCode Arbitrary result code to deliver, as defined by you.
			 * @param resultData Any additional data provided by you.
			 */
			public send(resultCode: number, resultData: android.os.Bundle): void;
			/**
			 * Override to receive results delivered to this object. 
			 * @param resultCode Arbitrary result code delivered by the sender, as
			 * @param resultData Any additional data provided by the sender.
			 */
			protected onReceiveResult(resultCode: number, resultData: android.os.Bundle): void;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
		}
		export module ResultReceiver {
			export class MyRunnable extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.os.ResultReceiver.MyRunnable>;
				public run(): void;
			}
			export class MyResultReceiver {
				static class: java.lang.Class<android.os.ResultReceiver.MyResultReceiver>;
				public send(resultCode: number, resultData: android.os.Bundle): void;
			}
		}
	}
	export module test {
		/**
		 * Reusable methods for generating touch events. These methods can be used with InstrumentationTestCase or ActivityInstrumentationTestCase2 to simulate user interaction with the application through a touch screen.
		 */
		export class TouchUtils extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.test.TouchUtils>;
			/**
			 * Simulate touching in the center of the screen and dragging one quarter of the way down
			 * @param test The test case that is being run
			 */
			public static dragQuarterScreenDown(test: android.test.ActivityInstrumentationTestCase<any>): void;
			/**
			 * Simulate touching in the center of the screen and dragging one quarter of the way down
			 * @param test The test case that is being run
			 * @param activity The activity that is in the foreground of the test case
			 */
			public static dragQuarterScreenDown(test: android.test.InstrumentationTestCase, activity: android.app.Activity): void;
			/**
			 * Simulate touching in the center of the screen and dragging one quarter of the way up
			 * @param test The test case that is being run
			 */
			public static dragQuarterScreenUp(test: android.test.ActivityInstrumentationTestCase<any>): void;
			/**
			 * Simulate touching in the center of the screen and dragging one quarter of the way up
			 * @param test The test case that is being run
			 * @param activity The activity that is in the foreground of the test case
			 */
			public static dragQuarterScreenUp(test: android.test.InstrumentationTestCase, activity: android.app.Activity): void;
			/**
			 * Scroll a ViewGroup to the bottom by repeatedly calling #dragQuarterScreenUp(InstrumentationTestCase, Activity) 
			 * @param test The test case that is being run
			 * @param v The ViewGroup that should be dragged
			 */
			public static scrollToBottom(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.ViewGroup): void;
			/**
			 * Scroll a ViewGroup to the bottom by repeatedly calling #dragQuarterScreenUp(InstrumentationTestCase, Activity) 
			 * @param test The test case that is being run
			 * @param activity The activity that is in the foreground of the test case
			 * @param v The ViewGroup that should be dragged
			 */
			public static scrollToBottom(test: android.test.InstrumentationTestCase, activity: android.app.Activity, v: android.view.ViewGroup): void;
			/**
			 * Scroll a ViewGroup to the top by repeatedly calling #dragQuarterScreenDown(InstrumentationTestCase, Activity) 
			 * @param test The test case that is being run
			 * @param v The ViewGroup that should be dragged
			 */
			public static scrollToTop(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.ViewGroup): void;
			/**
			 * Scroll a ViewGroup to the top by repeatedly calling #dragQuarterScreenDown(InstrumentationTestCase, Activity) 
			 * @param test The test case that is being run
			 * @param activity The activity that is in the foreground of the test case
			 * @param v The ViewGroup that should be dragged
			 */
			public static scrollToTop(test: android.test.InstrumentationTestCase, activity: android.app.Activity, v: android.view.ViewGroup): void;
			/**
			 * Simulate touching the center of a view and dragging to the bottom of the screen. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 */
			public static dragViewToBottom(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view and dragging to the bottom of the screen. 
			 * @param test The test case that is being run
			 * @param activity The activity that is in the foreground of the test case
			 * @param v The view that should be dragged
			 */
			public static dragViewToBottom(test: android.test.InstrumentationTestCase, activity: android.app.Activity, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view and dragging to the bottom of the screen. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param stepCount How many move steps to include in the drag
			 */
			public static dragViewToBottom(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View, stepCount: number): void;
			/**
			 * Simulate touching the center of a view and dragging to the bottom of the screen. 
			 * @param test The test case that is being run
			 * @param activity The activity that is in the foreground of the test case
			 * @param v The view that should be dragged
			 * @param stepCount How many move steps to include in the drag
			 */
			public static dragViewToBottom(test: android.test.InstrumentationTestCase, activity: android.app.Activity, v: android.view.View, stepCount: number): void;
			/**
			 * Simulate touching the center of a view and releasing quickly (before the tap timeout). 
			 * @param test The test case that is being run
			 * @param v The view that should be clicked
			 */
			public static tapView(test: android.test.InstrumentationTestCase, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view and cancelling (so no onClick should fire, etc).
			 * @param test The test case that is being run
			 * @param v The view that should be clicked
			 */
			public static touchAndCancelView(test: android.test.InstrumentationTestCase, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view and releasing. 
			 * @param test The test case that is being run
			 * @param v The view that should be clicked
			 */
			public static clickView(test: android.test.InstrumentationTestCase, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view, holding until it is a long press, and then releasing. 
			 * @param test The test case that is being run
			 * @param v The view that should be clicked
			 */
			public static longClickView(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view, holding until it is a long press, and then releasing. 
			 * @param test The test case that is being run
			 * @param v The view that should be clicked
			 */
			public static longClickView(test: android.test.InstrumentationTestCase, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view and dragging to the top of the screen. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 */
			public static dragViewToTop(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view and dragging to the top of the screen. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param stepCount How many move steps to include in the drag
			 */
			public static dragViewToTop(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View, stepCount: number): void;
			/**
			 * Simulate touching the center of a view and dragging to the top of the screen. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 */
			public static dragViewToTop(test: android.test.InstrumentationTestCase, v: android.view.View): void;
			/**
			 * Simulate touching the center of a view and dragging to the top of the screen. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param stepCount How many move steps to include in the drag
			 */
			public static dragViewToTop(test: android.test.InstrumentationTestCase, v: android.view.View, stepCount: number): void;
			/**
			 * Simulate touching a view and dragging it by the specified amount. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param deltaX Amount to drag horizontally in pixels
			 * @param deltaY Amount to drag vertically in pixels
			 */
			public static dragViewBy(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View, gravity: number, deltaX: number, deltaY: number): number;
			/**
			 * Simulate touching a view and dragging it by the specified amount. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param deltaX Amount to drag horizontally in pixels
			 * @param deltaY Amount to drag vertically in pixels
			 */
			public static dragViewBy(test: android.test.InstrumentationTestCase, v: android.view.View, gravity: number, deltaX: number, deltaY: number): number;
			/**
			 * Simulate touching a view and dragging it to a specified location. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param toX Final location of the view after dragging
			 * @param toY Final location of the view after dragging
			 */
			public static dragViewTo(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View, gravity: number, toX: number, toY: number): number;
			/**
			 * Simulate touching a view and dragging it to a specified location. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param toX Final location of the view after dragging
			 * @param toY Final location of the view after dragging
			 */
			public static dragViewTo(test: android.test.InstrumentationTestCase, v: android.view.View, gravity: number, toX: number, toY: number): number;
			/**
			 * Simulate touching a view and dragging it to a specified location. Only moves horizontally. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param toX Final location of the view after dragging
			 */
			public static dragViewToX(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View, gravity: number, toX: number): number;
			/**
			 * Simulate touching a view and dragging it to a specified location. Only moves horizontally. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param toX Final location of the view after dragging
			 */
			public static dragViewToX(test: android.test.InstrumentationTestCase, v: android.view.View, gravity: number, toX: number): number;
			/**
			 * Simulate touching a view and dragging it to a specified location. Only moves vertically. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param toY Final location of the view after dragging
			 */
			public static dragViewToY(test: android.test.ActivityInstrumentationTestCase<any>, v: android.view.View, gravity: number, toY: number): number;
			/**
			 * Simulate touching a view and dragging it to a specified location. Only moves vertically. 
			 * @param test The test case that is being run
			 * @param v The view that should be dragged
			 * @param gravity Which part of the view to use for the initial down event. A combination of
			 * @param toY Final location of the view after dragging
			 */
			public static dragViewToY(test: android.test.InstrumentationTestCase, v: android.view.View, gravity: number, toY: number): number;
			/**
			 * Simulate touching a specific location and dragging to a new location. 
			 * @param test The test case that is being run
			 * @param fromX X coordinate of the initial touch, in screen coordinates
			 * @param toX Xcoordinate of the drag destination, in screen coordinates
			 * @param fromY X coordinate of the initial touch, in screen coordinates
			 * @param toY Y coordinate of the drag destination, in screen coordinates
			 * @param stepCount How many move steps to include in the drag
			 */
			public static drag(test: android.test.ActivityInstrumentationTestCase<any>, fromX: number, toX: number, fromY: number, toY: number, stepCount: number): void;
			/**
			 * Simulate touching a specific location and dragging to a new location. 
			 * @param test The test case that is being run
			 * @param fromX X coordinate of the initial touch, in screen coordinates
			 * @param toX Xcoordinate of the drag destination, in screen coordinates
			 * @param fromY X coordinate of the initial touch, in screen coordinates
			 * @param toY Y coordinate of the drag destination, in screen coordinates
			 * @param stepCount How many move steps to include in the drag
			 */
			public static drag(test: android.test.InstrumentationTestCase, fromX: number, toX: number, fromY: number, toY: number, stepCount: number): void;
		}
		/**
		 * This is a class which delegates to the given context, but performs database and file operations with a renamed database/file name (prefixes default names with a given prefix).
		 */
		export class RenamingDelegatingContext extends android.content.ContextWrapper {
			/**
			 * @param context : the context that will be delagated.
			 * @param filePrefix : a prefix with which database and file names will be
			 */
			constructor(context: android.content.Context, filePrefix: string);
			/**
			 * @param context : the context that will be delagated.
			 * @param fileContext : the context that file and db methods will be delgated to
			 * @param filePrefix : a prefix with which database and file names will be
			 */
			constructor(context: android.content.Context, fileContext: android.content.Context, filePrefix: string);
			static class: java.lang.Class<android.test.RenamingDelegatingContext>;
			public static providerWithRenamedContext<T extends android.content.ContentProvider>(contentProvider: java.lang.Class<T>, c: android.content.Context, filePrefix: string): T;
			public static providerWithRenamedContext<T extends android.content.ContentProvider>(contentProvider: java.lang.Class<T>, c: android.content.Context, filePrefix: string, allowAccessToExistingFilesAndDbs: boolean): T;
			/**
			 * Makes accessible all files and databases whose names match the filePrefix that was passed to the constructor. Normally only files and databases that were created through this context are accessible.
			 */
			public makeExistingFilesAndDbsAccessible(): void;
			/**
			 * Returns if the given diskName starts with the given prefix or not.
			 * @param diskName name of the database/file.
			 */
			shouldDiskNameBeVisible(diskName: string): boolean;
			/**
			 * Returns the public name (everything following the prefix) of the given diskName.
			 * @param diskName name of the database/file.
			 */
			publicNameFromDiskName(diskName: string): string;
			public getDatabasePrefix(): string;
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
			public openOrCreateDatabase(name: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, errorHandler: android.database.IDatabaseErrorHandler): android.database.sqlite.SQLiteDatabase;
			public deleteDatabase(name: string): boolean;
			public getDatabasePath(name: string): java.io.File;
			public databaseList(): native.Array<string>;
			public openFileInput(name: string): java.io.FileInputStream;
			public openFileOutput(name: string, mode: number): java.io.FileOutputStream;
			public getFileStreamPath(name: string): java.io.File;
			public deleteFile(name: string): boolean;
			public fileList(): native.Array<string>;
			/**
			 * In order to support calls to getCacheDir(), we create a temp cache dir (inside the real one) and return it instead. This code is basically getCacheDir(), except it uses the real cache dir as the parent directory and creates a test cache dir inside that.
			 */
			public getCacheDir(): java.io.File;
		}
		/**
		 * This annotation can be used on an android.test.InstrumentationTestCase's test methods. When the annotation is present, the test method is re-executed if the test fails. The total number of executions is specified by the tolerance and defaults to 1.
		 */
		export class FlakyTest implements java.lang.annotation.IAnnotation, android.test.IFlakyTest {
			constructor(implementation: android.test.IFlakyTest);
			/**
			 * Indicates how many times a test can run and fail before being reported as a failed test. If the tolerance factor is less than 1, the test runs only once.
			 */
			public tolerance(): number;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * A convenience class for testing Loaders. This test case provides a simple way to synchronously get the result from a Loader making it easy to assert that the Loader returns the expected result.
		 */
		export class LoaderTestCase extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.test.LoaderTestCase>;
			/**
			 * Runs a Loader synchronously and returns the result of the load. The loader will be started, stopped, and destroyed by this method so it cannot be reused.
			 * @param loader The loader to run synchronously
			 */
			public getLoaderResultSynchronously<T>(loader: android.content.Loader<T>): T;
		}
		/**
		 * This annotation can be used on an InstrumentationTestCase's test methods. When the annotation is present, the test method is executed on the application's main thread (or UI thread.) Note that instrumentation methods may not be used when this annotation is present.
		 */
		interface IUiThreadTest extends java.lang.annotation.IAnnotation {
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Contains additional assertion methods not found in JUnit.
		 */
		export class MoreAsserts extends java.lang.Object {
			static class: java.lang.Class<android.test.MoreAsserts>;
			/**
			 * Asserts that the class expected is assignable from the object actual. This verifies expected is a parent class or a interface that actual implements.
			 */
			public static assertAssignableFrom(expected: java.lang.Class<any>, actual: any): void;
			/**
			 * Asserts that class expected is assignable from the class actual. This verifies expected is a parent class or a interface that actual implements.
			 */
			public static assertAssignableFrom(expected: java.lang.Class<any>, actual: java.lang.Class<any>): void;
			/**
			 * Asserts that actual is not equal unexpected, according to both == and Object#equals.
			 */
			public static assertNotEqual(message: string, unexpected: any, actual: any): void;
			/**
			 * Variant of #assertNotEqual(String,Object,Object) using a generic message.
			 */
			public static assertNotEqual(unexpected: any, actual: any): void;
			/**
			 * Asserts that array actual is the same size and every element equals those in array expected. On failure, message indicates specific element mismatch.
			 */
			public static assertEquals(message: string, expected: native.Array<number>, actual: native.Array<number>): void;
			/**
			 * Asserts that array actual is the same size and every element equals those in array expected. On failure, message indicates specific element mismatch.
			 */
			public static assertEquals(expected: native.Array<number>, actual: native.Array<number>): void;
			/**
			 * Asserts that two sets contain the same elements.
			 */
			public static assertEquals(message: string, expected: java.util.ISet<any>, actual: java.util.ISet<any>): void;
			/**
			 * Asserts that two sets contain the same elements.
			 */
			public static assertEquals(expected: java.util.ISet<any>, actual: java.util.ISet<any>): void;
			/**
			 * Asserts that expectedRegex exactly matches actual and fails with message if it does not. The MatchResult is returned in case the test needs access to any captured groups. Note that you can also use this for a literal string, by wrapping your expected string in Pattern#quote.
			 */
			public static assertMatchesRegex(message: string, expectedRegex: string, actual: string): java.util.regex.IMatchResult;
			/**
			 * Variant of #assertMatchesRegex(String,String,String) using a generic message.
			 */
			public static assertMatchesRegex(expectedRegex: string, actual: string): java.util.regex.IMatchResult;
			/**
			 * Asserts that expectedRegex matches any substring of actual and fails with message if it does not. The Matcher is returned in case the test needs access to any captured groups. Note that you can also use this for a literal string, by wrapping your expected string in Pattern#quote.
			 */
			public static assertContainsRegex(message: string, expectedRegex: string, actual: string): java.util.regex.IMatchResult;
			/**
			 * Variant of #assertContainsRegex(String,String,String) using a generic message.
			 */
			public static assertContainsRegex(expectedRegex: string, actual: string): java.util.regex.IMatchResult;
			/**
			 * Asserts that expectedRegex does not exactly match actual, and fails with message if it does. Note that you can also use this for a literal string, by wrapping your expected string in Pattern#quote.
			 */
			public static assertNotMatchesRegex(message: string, expectedRegex: string, actual: string): void;
			/**
			 * Variant of #assertNotMatchesRegex(String,String,String) using a generic message.
			 */
			public static assertNotMatchesRegex(expectedRegex: string, actual: string): void;
			/**
			 * Asserts that expectedRegex does not match any substring of actual, and fails with message if it does. Note that you can also use this for a literal string, by wrapping your expected string in Pattern#quote.
			 */
			public static assertNotContainsRegex(message: string, expectedRegex: string, actual: string): void;
			/**
			 * Variant of #assertNotContainsRegex(String,String,String) using a generic message.
			 */
			public static assertNotContainsRegex(expectedRegex: string, actual: string): void;
			/**
			 * Asserts that actual contains precisely the elements expected, and in the same order.
			 */
			public static assertContentsInOrder(message: string, actual: java.lang.IIterable<any>, expected: native.Array<any>): void;
			/**
			 * Variant of assertContentsInOrder(String, Iterable<?>, Object...) using a generic message.
			 */
			public static assertContentsInOrder(actual: java.lang.IIterable<any>, expected: native.Array<any>): void;
			/**
			 * Asserts that actual contains precisely the elements expected, but in any order.
			 */
			public static assertContentsInAnyOrder(message: string, actual: java.lang.IIterable<any>, expected: native.Array<any>): void;
			/**
			 * Variant of assertContentsInAnyOrder(String, Iterable<?>, Object...) using a generic message.
			 */
			public static assertContentsInAnyOrder(actual: java.lang.IIterable<any>, expected: native.Array<any>): void;
			/**
			 * Asserts that iterable is empty.
			 */
			public static assertEmpty(message: string, iterable: java.lang.IIterable<any>): void;
			/**
			 * Variant of #assertEmpty(String, Iterable) using a generic message.
			 */
			public static assertEmpty(iterable: java.lang.IIterable<any>): void;
			/**
			 * Asserts that map is empty.
			 */
			public static assertEmpty(message: string, map: java.util.IMap<any, any>): void;
			/**
			 * Variant of #assertEmpty(String, Map) using a generic message.
			 */
			public static assertEmpty(map: java.util.IMap<any, any>): void;
			/**
			 * Asserts that iterable is not empty.
			 */
			public static assertNotEmpty(message: string, iterable: java.lang.IIterable<any>): void;
			/**
			 * Variant of assertNotEmpty(String, Iterable<?>) using a generic message.
			 */
			public static assertNotEmpty(iterable: java.lang.IIterable<any>): void;
			/**
			 * Asserts that map is not empty.
			 */
			public static assertNotEmpty(message: string, map: java.util.IMap<any, any>): void;
			/**
			 * Variant of #assertNotEmpty(String, Map) using a generic message.
			 */
			public static assertNotEmpty(map: java.util.IMap<any, any>): void;
			/**
			 * Utility for testing equals() and hashCode() results at once. Tests that lhs.equals(rhs) matches expectedResult, as well as rhs.equals(lhs). Also tests that hashCode() return values are equal if expectedResult is true. (hashCode() is not tested if expectedResult is false, as unequal objects can have equal hashCodes.)
			 * @param message lhs An Object for which equals() and hashCode() are to be tested.
			 * @param lhs rhs As lhs.
			 * @param rhs expectedResult True if the objects should compare equal,
			 * @param expectedResult 
			 */
			public static checkEqualsAndHashCodeMethods(message: string, lhs: any, rhs: any, expectedResult: boolean): void;
			/**
			 * Variant of checkEqualsAndHashCodeMethods(String,Object,Object,boolean...)} using a generic message.
			 */
			public static checkEqualsAndHashCodeMethods(lhs: any, rhs: any, expectedResult: boolean): void;
		}
		/**
		 * This class provides isolated testing of a single activity. The activity under test will be created with minimal connection to the system infrastructure, and you can inject mocked or wrappered versions of many of Activity's dependencies. Most of the work is handled automatically here by #setUp and #tearDown. 
		 */
		export class ActivityUnitTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
			constructor(activityClass: java.lang.Class<T>);
			static class: java.lang.Class<android.test.ActivityUnitTestCase<any>>;
			public getActivity(): T;
			protected setUp(): void;
			/**
			 * Start the activity under test, in the same way as if it was started by android.content.Context#startActivity Context.startActivity(), providing the arguments it supplied. When you use this method to start the activity, it will automatically be stopped by #tearDown. 
			 * @param intent The Intent as if supplied to {@link android.content.Context#startActivity}.
			 * @param savedInstanceState The instance state, if you are simulating this part of the life
			 * @param lastNonConfigurationInstance This Object will be available to the
			 */
			protected startActivity(intent: android.content.Intent, savedInstanceState: android.os.Bundle, lastNonConfigurationInstance: any): T;
			protected tearDown(): void;
			/**
			 * Set the application for use during the test. You must call this function before calling #startActivity. If your test does not call this method,
			 * @param application The Application object that will be injected into the Activity under test.
			 */
			public setApplication(application: android.app.Application): void;
			/**
			 * If you wish to inject a Mock, Isolated, or otherwise altered context, you can do so here. You must call this function before calling #startActivity. If you wish to obtain a real Context, as a building block, use getInstrumentation().getTargetContext().
			 */
			public setActivityContext(activityContext: android.content.Context): void;
			/**
			 * This method will return the value if your Activity under test calls android.app.Activity#setRequestedOrientation.
			 */
			public getRequestedOrientation(): number;
			/**
			 * This method will return the launch intent if your Activity under test calls android.app.Activity#startActivity(Intent) or android.app.Activity#startActivityForResult(Intent, int).
			 */
			public getStartedActivityIntent(): android.content.Intent;
			/**
			 * This method will return the launch request code if your Activity under test calls android.app.Activity#startActivityForResult(Intent, int).
			 */
			public getStartedActivityRequest(): number;
			/**
			 * This method will notify you if the Activity under test called android.app.Activity#finish(), android.app.Activity#finishFromChild(Activity), or android.app.Activity#finishActivity(int).
			 */
			public isFinishCalled(): boolean;
			/**
			 * This method will return the request code if the Activity under test called android.app.Activity#finishActivity(int).
			 */
			public getFinishedActivityRequest(): number;
		}
		export module ActivityUnitTestCase {
			/**
			 * This mock Activity represents the "parent" activity. By injecting this, we allow the user to call a few more Activity methods, including: <ul> <li>android.app.Activity#getRequestedOrientation()</li> <li>android.app.Activity#setRequestedOrientation(int)</li> <li>android.app.Activity#finish()</li> <li>android.app.Activity#finishActivity(int requestCode)</li> <li>android.app.Activity#finishFromChild(Activity child)</li> </ul> TODO: Make this overrideable, and the unit test can look for calls to other methods
			 */
			export class MockParent extends android.app.Activity {
				mRequestedOrientation: number;
				mStartedActivityIntent: android.content.Intent;
				mStartedActivityRequest: number;
				mFinished: boolean;
				mFinishedActivityRequest: number;
				static class: java.lang.Class<android.test.ActivityUnitTestCase.MockParent>;
				/**
				 * Implementing in the parent allows the user to call this function on the tested activity.
				 */
				public setRequestedOrientation(requestedOrientation: number): void;
				/**
				 * Implementing in the parent allows the user to call this function on the tested activity.
				 */
				public getRequestedOrientation(): number;
				/**
				 * By returning null here, we inhibit the creation of any "container" for the window.
				 */
				public getWindow(): android.view.Window;
				/**
				 * By defining this in the parent, we allow the tested activity to call <ul> <li>android.app.Activity#startActivity(Intent)</li> <li>android.app.Activity#startActivityForResult(Intent, int)</li> </ul>
				 */
				public startActivityFromChild(child: android.app.Activity, intent: android.content.Intent, requestCode: number): void;
				/**
				 * By defining this in the parent, we allow the tested activity to call <ul> <li>android.app.Activity#finish()</li> <li>android.app.Activity#finishFromChild(Activity child)</li> </ul>
				 */
				public finishFromChild(child: android.app.Activity): void;
				/**
				 * By defining this in the parent, we allow the tested activity to call <ul> <li>android.app.Activity#finishActivity(int requestCode)</li> </ul>
				 */
				public finishActivityFromChild(child: android.app.Activity, requestCode: number): void;
				/**
				 * This is called when a child activity of this one calls its #startActivity or #startActivityForResult method. 
				 * @param child The activity making the call.
				 * @param intent The intent to start.
				 * @param requestCode Reply request code. < 0 if reply is not requested.
				 * @param options Additional options for how the Activity should be started.
				 */
				startActivityFromChild(child: android.app.Activity, intent: android.content.Intent, requestCode: number, options: android.os.Bundle): void;
			}
		}
		/**
		 * If you would like to test sync a single provider with an InstrumentationTestCase, this provides some of the boiler plate in #setUp and #tearDown.
		 */
		export class SyncBaseInstrumentation extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.test.SyncBaseInstrumentation>;
			protected setUp(): void;
			/**
			 * Syncs the specified provider. Exception
			 */
			protected syncProvider(uri: android.net.Uri, accountName: string, authority: string): void;
			protected cancelSyncsandDisableAutoSync(): void;
		}
		/**
		 * A test case that has access to Instrumentation.
		 */
		export class InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.test.InstrumentationTestCase>;
			/**
			 * Injects instrumentation into this test case. This method is called by the test runner during test setup. 
			 * @param instrumentation the instrumentation to use with this instance
			 */
			public injectInstrumentation(instrumentation: android.app.Instrumentation): void;
			/**
			 * Injects instrumentation into this test case. This method is called by the test runner during test setup.
			 * @param instrumentation the instrumentation to use with this instance
			 */
			public injectInsrumentation(instrumentation: android.app.Instrumentation): void;
			/**
			 * Inheritors can access the instrumentation using this.
			 */
			public getInstrumentation(): android.app.Instrumentation;
			/**
			 * Utility method for launching an activity. 
			 * @param pkg The package hosting the activity to be launched.
			 * @param activityCls The activity class to launch.
			 * @param extras Optional extra stuff to pass to the activity.
			 */
			public launchActivity<T extends android.app.Activity>(pkg: string, activityCls: java.lang.Class<T>, extras: android.os.Bundle): T;
			/**
			 * Utility method for launching an activity with a specific Intent. 
			 * @param pkg The package hosting the activity to be launched.
			 * @param activityCls The activity class to launch.
			 * @param intent The intent to launch with
			 */
			public launchActivityWithIntent<T extends android.app.Activity>(pkg: string, activityCls: java.lang.Class<T>, intent: android.content.Intent): T;
			/**
			 * Helper for running portions of a test on the UI thread. Note, in most cases it is simpler to annotate the test method with android.test.UiThreadTest, which will run the entire test method on the UI thread. Use this method if you need to switch in and out of the UI thread to perform your test. 
			 * @param r runnable containing test code in the {@link Runnable#run()} method
			 */
			public runTestOnUiThread(r: java.lang.IRunnable): void;
			/**
			 * Runs the current unit test. If the unit test is annotated with android.test.UiThreadTest, the test is run on the UI thread.
			 */
			protected runTest(): void;
			/**
			 * Sends a series of key events through instrumentation and waits for idle. The sequence of keys is a string containing the key names as specified in KeyEvent, without the KEYCODE_ prefix. For instance: sendKeys("DPAD_LEFT A B C DPAD_CENTER"). Each key can be repeated by using the N* prefix. For instance, to send two KEYCODE_DPAD_LEFT, use the following: sendKeys("2*DPAD_LEFT").
			 * @param keysSequence The sequence of keys.
			 */
			public sendKeys(keysSequence: string): void;
			/**
			 * Sends a series of key events through instrumentation and waits for idle. For instance: sendKeys(KEYCODE_DPAD_LEFT, KEYCODE_DPAD_CENTER).
			 * @param keys The series of key codes to send through instrumentation.
			 */
			public sendKeys(keys: native.Array<number>): void;
			/**
			 * Sends a series of key events through instrumentation and waits for idle. Each key code must be preceded by the number of times the key code must be sent. For instance: sendRepeatedKeys(1, KEYCODE_DPAD_CENTER, 2, KEYCODE_DPAD_LEFT).
			 * @param keys The series of key repeats and codes to send through instrumentation.
			 */
			public sendRepeatedKeys(keys: native.Array<number>): void;
			/**
			 * Make sure all resources are cleaned up and garbage collected before moving on to the next test. Subclasses that override this method should make sure they call super.tearDown() at the end of the overriding method. Exception
			 */
			protected tearDown(): void;
		}
		/**
		 * This class provides functional testing of a single activity. The activity under test will be created using the system infrastructure (by calling InstrumentationTestCase.launchActivity()) and you will then be able to manipulate your Activity directly. 
		 */
		export class ActivityInstrumentationTestCase2<T extends android.app.Activity> extends android.test.ActivityTestCase {
			/**
			 * Creates an ActivityInstrumentationTestCase2.
			 * @param pkg ignored - no longer in use.
			 * @param activityClass The activity to test. This must be a class in the instrumentation
			 */
			constructor(pkg: string, activityClass: java.lang.Class<T>);
			/**
			 * Creates an ActivityInstrumentationTestCase2.
			 * @param activityClass The activity to test. This must be a class in the instrumentation
			 */
			constructor(activityClass: java.lang.Class<T>);
			static class: java.lang.Class<android.test.ActivityInstrumentationTestCase2<any>>;
			/**
			 * Get the Activity under test, starting it if necessary.
			 */
			public getActivity(): T;
			/**
			 * Call this method before the first call to #getActivity to inject a customized Intent into the Activity under test. 
			 * @param i The Intent to start the Activity with, or null to reset to the default Intent.
			 */
			public setActivityIntent(i: android.content.Intent): void;
			/**
			 * Call this method before the first call to #getActivity to set the initial touch mode for the Activity under test. 
			 * @param initialTouchMode true if the Activity should be placed into "touch mode" when started
			 */
			public setActivityInitialTouchMode(initialTouchMode: boolean): void;
			protected setUp(): void;
			protected tearDown(): void;
			/**
			 * Runs the current unit test. If the unit test is annotated with android.test.UiThreadTest, force the Activity to be created before switching to the UI thread.
			 */
			protected runTest(): void;
		}
		export class SimpleCache<K, V> extends java.lang.Object {
			static class: java.lang.Class<android.test.SimpleCache<any, any>>;
			protected load(key: K): V;
			get(key: K): V;
		}
		/**
		 * If you would like to test a single activity with an android.test.InstrumentationTestCase, this provides some of the boiler plate to launch and finish the activity in #setUp and #tearDown. This launches the activity only once for the entire class instead of doing it in every setup / teardown call.
		 */
		export class SingleLaunchActivityTestCase<T extends android.app.Activity> extends android.test.InstrumentationTestCase {
			/**
			 * <b>NOTE:</b> The parameter <i>pkg</i> must refer to the package identifier of the package hosting the activity to be launched, which is specified in the AndroidManifest.xml file. This is not necessarily the same as the java package name.
			 * @param pkg The package hosting the activity to be launched.
			 * @param activityClass The activity to test.
			 */
			constructor(pkg: string, activityClass: java.lang.Class<T>);
			static class: java.lang.Class<android.test.SingleLaunchActivityTestCase<any>>;
			public getActivity(): T;
			protected setUp(): void;
			protected tearDown(): void;
			public testActivityTestCaseSetUpProperly(): void;
		}
		/**
		 * This is common code used to support Activity test cases. For more useful classes, please see android.test.ActivityUnitTestCase and android.test.ActivityInstrumentationTestCase.
		 */
		export class ActivityTestCase extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.test.ActivityTestCase>;
			protected getActivity(): android.app.Activity;
			/**
			 * Set the activity under test.
			 * @param testActivity The activity under test
			 */
			protected setActivity(testActivity: android.app.Activity): void;
			/**
			 * This function is called by various TestCase implementations, at tearDown() time, in order to scrub out any class variables. This protects against memory leaks in the case where a test case creates a non-static inner class (thus referencing the test case) and gives it to someone else to hold onto.
			 * @param testCaseClass The class of the derived TestCase implementation.
			 */
			protected scrubClass(testCaseClass: java.lang.Class<any>): void;
		}
		/**
		 * Extend this if you need to access Resources or other things that depend on Activity Context.
		 */
		export class AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.test.AndroidTestCase>;
			protected setUp(): void;
			protected tearDown(): void;
			public testAndroidTestCaseSetupProperly(): void;
			public setContext(context: android.content.Context): void;
			public getContext(): android.content.Context;
			/**
			 * Asserts that launching a given activity is protected by a particular permission by attempting to start the activity and validating that a SecurityException is thrown that mentions the permission in its error message.
			 * @param packageName The package name of the activity to launch.
			 * @param className The class of the activity to launch.
			 * @param permission The name of the permission.
			 */
			public assertActivityRequiresPermission(packageName: string, className: string, permission: string): void;
			/**
			 * Asserts that reading from the content uri requires a particular permission by querying the uri and ensuring a SecurityException is thrown mentioning the particular permission.
			 * @param uri The uri that requires a permission to query.
			 * @param permission The permission that should be required.
			 */
			public assertReadingContentUriRequiresPermission(uri: android.net.Uri, permission: string): void;
			/**
			 * Asserts that writing to the content uri requires a particular permission by inserting into the uri and ensuring a SecurityException is thrown mentioning the particular permission.
			 * @param uri The uri that requires a permission to query.
			 * @param permission The permission that should be required.
			 */
			public assertWritingContentUriRequiresPermission(uri: android.net.Uri, permission: string): void;
			/**
			 * This function is called by various TestCase implementations, at tearDown() time, in order to scrub out any class variables. This protects against memory leaks in the case where a test case creates a non-static inner class (thus referencing the test case) and gives it to someone else to hold onto.
			 * @param testCaseClass The class of the derived TestCase implementation.
			 */
			protected scrubClass(testCaseClass: java.lang.Class<any>): void;
		}
		/**
		 * Thrown when an assertion failed. use junit.framework.AssertionFailedError
		 */
		export class AssertionFailedError extends java.lang.Error {
			/**
			 * It is more typical to call #AssertionFailedError(String).
			 */
			constructor();
			constructor(errorMessage: string);
			static class: java.lang.Class<android.test.AssertionFailedError>;
		}
		/**
		 * This test case provides a framework in which you can test Service classes in a controlled environment. It provides basic support for the lifecycle of a Service, and hooks with which you can inject various dependencies and control the environment in which your Service is tested.
		 */
		export class ServiceTestCase<T extends android.app.Service> extends android.test.AndroidTestCase {
			/**
			 * Constructor
			 * @param serviceClass The type of the service under test.
			 */
			constructor(serviceClass: java.lang.Class<T>);
			static class: java.lang.Class<android.test.ServiceTestCase<any>>;
			public getService(): T;
			/**
			 * Gets the current system context and stores it.
			 */
			protected setUp(): void;
			/**
			 * Creates the service under test and attaches all injected dependencies (Context, Application) to it. This is called automatically by #startService or by #bindService. If you need to call AndroidTestCase#setContext(Context) setContext() or #setApplication setApplication(), do so before calling this method.
			 */
			protected setupService(): void;
			/**
			 * Starts the service under test, in the same way as if it were started by android.content.Context#startService(Intent) Context.startService(Intent) with an android.content.Intent that identifies a service. If you use this method to start the service, it is automatically stopped by #tearDown.
			 * @param intent An Intent that identifies a service, of the same form as the Intent passed to
			 */
			protected startService(intent: android.content.Intent): void;
			/**
			 * @param intent An Intent object of the form expected by
			 */
			protected bindService(intent: android.content.Intent): android.os.IIBinder;
			/**
			 * Makes the necessary calls to stop (or unbind) the service under test, and calls onDestroy(). Ordinarily this is called automatically (by #tearDown, but you can call it directly from your test in order to check for proper shutdown behavior.
			 */
			protected shutdownService(): void;
			protected tearDown(): void;
			/**
			 * Sets the application that is used during the test. If you do not call this method, a new android.test.mock.MockApplication MockApplication object is used.
			 * @param application The Application object that is used by the service under test.
			 */
			public setApplication(application: android.app.Application): void;
			/**
			 * Returns the Application object in use by the service under test.
			 */
			public getApplication(): android.app.Application;
			/**
			 * Returns the real system context that is saved by #setUp(). Use it to create mock or other types of context objects for the service under test.
			 */
			public getSystemContext(): android.content.Context;
			/**
			 * Tests that #setupService() runs correctly and issues an junit.framework.Assert#assertNotNull(String, Object) if it does. You can override this test method if you wish.
			 */
			public testServiceTestCaseSetUpProperly(): void;
		}
		/**
		 * Implementors will know how to get a test suite.
		 */
		export class TestSuiteProvider implements android.test.ITestSuiteProvider {
			constructor(implementation: android.test.ITestSuiteProvider);
		}
		/**
		 * More complex interface performance for test cases. If you want your test to be used as a performance test, you must implement this interface.
		 */
		export class PerformanceTestCase implements android.test.IPerformanceTestCase {
			constructor(implementation: android.test.IPerformanceTestCase);
			/**
			 * Set up to begin performance tests. The 'intermediates' is a communication channel to send back intermediate performance numbers -- if you use it, you will probably want to ensure your test is only executed once by returning 1. Otherwise, return 0 to allow the test harness to decide the number of iterations. 
			 * @param intermediates Callback for sending intermediate results.
			 */
			public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			/**
			 * This method is used to determine what modes this test case can run in. 
			 */
			public isPerformanceOnly(): boolean;
		}
		export module PerformanceTestCase {
			/**
			 * Callbacks for PerformanceTestCase.
			 */
			interface IIntermediates {
				setInternalIterations(count: number): void;
				startTiming(realTime: boolean): void;
				addIntermediate(name: string): void;
				addIntermediate(name: string, timeInNS: number): void;
				finishTiming(realTime: boolean): void;
			}
			/**
			 * Callbacks for PerformanceTestCase.
			 */
			export class Intermediates implements android.test.PerformanceTestCase.IIntermediates {
				constructor(implementation: android.test.PerformanceTestCase.IIntermediates);
				public setInternalIterations(count: number): void;
				public startTiming(realTime: boolean): void;
				public addIntermediate(name: string): void;
				public addIntermediate(name: string, timeInNS: number): void;
				public finishTiming(realTime: boolean): void;
			}
		}
		/**
		 * This annotation can be used on an junit.framework.TestCase's test methods. When the annotation is present, the test method is profiled for bandwidth metrics and the results written through instrumentation output. It can also be used on the class itself, which is equivalent to tagging all test methods with this annotation.
		 */
		interface IBandwidthTest extends java.lang.annotation.IAnnotation {
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * If you would like to test a single content provider with an InstrumentationTestCase, this provides some of the boiler plate in #setUp and #tearDown.
		 */
		export class ProviderTestCase<T extends android.content.ContentProvider> extends android.test.InstrumentationTestCase {
			constructor(providerClass: java.lang.Class<T>, providerAuthority: string);
			static class: java.lang.Class<android.test.ProviderTestCase<any>>;
			public getProvider(): T;
			protected setUp(): void;
			/**
			 * Tears down the environment for the test fixture.
			 */
			protected tearDown(): void;
			public getMockContentResolver(): android.test.mock.MockContentResolver;
			public getMockContext(): android.test.IsolatedContext;
			public static newResolverWithContentProviderFromSql<T extends android.content.ContentProvider>(targetContext: android.content.Context, providerClass: java.lang.Class<T>, authority: string, databaseName: string, databaseVersion: number, sql: string): android.content.ContentResolver;
		}
		/**
		 * A junit.framework.TestSuite that injects android.app.Instrumentation into InstrumentationTestCase before running them.
		 */
		export class InstrumentationTestSuite {
			/**
			 * @param instr The instrumentation that will be injected into each
			 */
			constructor(instr: android.app.Instrumentation);
			constructor(name: string, instr: android.app.Instrumentation);
			/**
			 * @param theClass Inspected for methods starting with 'test'
			 * @param instr The instrumentation to inject into each test before
			 */
			constructor(theClass: java.lang.Class<any>, instr: android.app.Instrumentation);
			static class: java.lang.Class<android.test.InstrumentationTestSuite>;
			public addTestSuite(testClass: java.lang.Class<any>): void;
		}
		/**
		 * This annotation can be used on an InstrumentationTestCase's test methods. When the annotation is present, the test method is executed on the application's main thread (or UI thread.) Note that instrumentation methods may not be used when this annotation is present.
		 */
		export class UiThreadTest implements java.lang.annotation.IAnnotation, android.test.IUiThreadTest {
			constructor(implementation: android.test.IUiThreadTest);
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Tests for InstrumentationTestRunner
		 */
		export class InstrumentationTestRunnerTest {
			constructor();
			static class: java.lang.Class<android.test.InstrumentationTestRunnerTest>;
			protected setUp(): void;
			public testOverrideTestToRunWithClassArgument(): void;
			public testOverrideTestToRunWithClassAndMethodArgument(): void;
			public testUseSelfAsTestSuiteProviderWhenNoMetaDataOrClassArgument(): void;
			public testMultipleTestClass(): void;
			/**
			 * Test that runtime exceptions during runTest are handled gracefully
			 */
			public testUnhandledException(): void;
			/**
			 * Test that specifying a method which does not exist is handled gracefully
			 */
			public testBadMethodArgument(): void;
			public testDelayParameter(): void;
			/**
			 * Test that the -e InstrumentationTestRunner.ARGUMENT_ANNOTATION parameter properly selects tests.
			 */
			public testAnnotationParameter(): void;
			/**
			 * Test that the -e InstrumentationTestRunner.ARGUMENT_NOT_ANNOTATION parameter properly excludes tests.
			 */
			public testNotAnnotationParameter(): void;
		}
		export module InstrumentationTestRunnerTest {
			export class StubAndroidTestRunner extends android.test.AndroidTestRunner {
				static class: java.lang.Class<android.test.InstrumentationTestRunnerTest.StubAndroidTestRunner>;
				public isRun(): boolean;
				public runTest(): void;
			}
			/**
			 * Empty test used for validation
			 */
			export class PlaceHolderTest2 {
				constructor();
				static class: java.lang.Class<android.test.InstrumentationTestRunnerTest.PlaceHolderTest2>;
				public testPlaceHolder2(): void;
			}
			export class StubInstrumentationTestRunner extends android.test.InstrumentationTestRunner {
				constructor(context: android.content.Context, targetContext: android.content.Context, androidTestRunner: android.test.AndroidTestRunner);
				static class: java.lang.Class<android.test.InstrumentationTestRunnerTest.StubInstrumentationTestRunner>;
				public getContext(): android.content.Context;
				public getTargetContext(): android.content.Context;
				protected getAndroidTestRunner(): android.test.AndroidTestRunner;
				public start(): void;
				public finish(resultCode: number, results: android.os.Bundle): void;
				public isStarted(): boolean;
				public isFinished(): boolean;
				public getPackageNameForDefaultTests(): string;
				prepareLooper(): void;
			}
			/**
			 * Annotated test used for validation.
			 */
			export class AnnotationTest {
				constructor();
				static class: java.lang.Class<android.test.InstrumentationTestRunnerTest.AnnotationTest>;
				public testNotAnnotated(): void;
				public testAnnotated(): void;
			}
			export class StubContext extends android.test.mock.MockContext {
				constructor(packageName: string);
				static class: java.lang.Class<android.test.InstrumentationTestRunnerTest.StubContext>;
				public getPackageCodePath(): string;
				public getPackageName(): string;
				public getClassLoader(): java.lang.ClassLoader;
			}
			/**
			 * Empty test used for validation
			 */
			export class PlaceHolderTest {
				constructor();
				static class: java.lang.Class<android.test.InstrumentationTestRunnerTest.PlaceHolderTest>;
				public testPlaceHolder(): void;
			}
		}
		export module suitebuilder {
			export module annotation {
				/**
				 * Use this annotation on test classes or test methods that should not be included in a test suite. If the annotation appears on the class then no tests in that class will be included. If the annotation appears only on a test method then only that method will be excluded.
				 */
				interface ISuppress extends java.lang.annotation.IAnnotation {
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Marks a test that should run as part of the small tests.
				 */
				export class SmallTest implements java.lang.annotation.IAnnotation, android.test.suitebuilder.annotation.ISmallTest {
					constructor(implementation: android.test.suitebuilder.annotation.ISmallTest);
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Marks a test that should run as part of the smoke tests. The <code>android.test.suitebuilder.SmokeTestSuiteBuilder</code> will run all tests with this annotation.
				 */
				export class Smoke implements java.lang.annotation.IAnnotation, android.test.suitebuilder.annotation.ISmoke {
					constructor(implementation: android.test.suitebuilder.annotation.ISmoke);
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Use this annotation on test classes or test methods that should not be included in a test suite. If the annotation appears on the class then no tests in that class will be included. If the annotation appears only on a test method then only that method will be excluded.
				 */
				export class Suppress implements java.lang.annotation.IAnnotation, android.test.suitebuilder.annotation.ISuppress {
					constructor(implementation: android.test.suitebuilder.annotation.ISuppress);
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Marks a test that should run as part of the medium tests.
				 */
				export class MediumTest implements java.lang.annotation.IAnnotation, android.test.suitebuilder.annotation.IMediumTest {
					constructor(implementation: android.test.suitebuilder.annotation.IMediumTest);
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Marks a test that should run as part of the large tests.
				 */
				export class LargeTest implements java.lang.annotation.IAnnotation, android.test.suitebuilder.annotation.ILargeTest {
					constructor(implementation: android.test.suitebuilder.annotation.ILargeTest);
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				export class HasMethodAnnotationTest {
					constructor();
					static class: java.lang.Class<android.test.suitebuilder.annotation.HasMethodAnnotationTest>;
					public testMethodWithSpecifiedAttribute(): void;
					public testMethodWithoutSpecifiedAttribute(): void;
				}
				export module HasMethodAnnotationTest {
					export class AnnotatedMethodExample {
						static class: java.lang.Class<android.test.suitebuilder.annotation.HasMethodAnnotationTest.AnnotatedMethodExample>;
						public testThatIsAnnotated(): void;
						public testThatIsNotAnnotated(): void;
					}
				}
				/**
				 * Marks a test that should run as part of the smoke tests. The <code>android.test.suitebuilder.SmokeTestSuiteBuilder</code> will run all tests with this annotation.
				 */
				interface ISmoke extends java.lang.annotation.IAnnotation {
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Marks a test that should run as part of the medium tests.
				 */
				interface IMediumTest extends java.lang.annotation.IAnnotation {
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Marks a test that should run as part of the large tests.
				 */
				interface ILargeTest extends java.lang.annotation.IAnnotation {
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				/**
				 * Marks a test that should run as part of the small tests.
				 */
				interface ISmallTest extends java.lang.annotation.IAnnotation {
					/**
					 * Returns the type of this annotation.
					 */
					annotationType(): java.lang.Class<any>;
					/**
					 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
					 * @param obj 
					 */
					equals(obj: any): boolean;
					/**
					 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
					 */
					hashCode(): number;
					/**
					 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
					 */
					toString(): string;
				}
				export class HasAnnotationTest {
					constructor();
					static class: java.lang.Class<android.test.suitebuilder.annotation.HasAnnotationTest>;
					public testThatMethodWithAnnotationIsReportedAsBeingAnnotated(): void;
					public testThatMethodWithOutAnnotationIsNotReportedAsBeingAnnotated(): void;
					public testThatClassAnnotatioCausesAllMethodsToBeReportedAsBeingAnnotated(): void;
				}
				export module HasAnnotationTest {
					interface IExample extends java.lang.annotation.IAnnotation {
						/**
						 * Returns the type of this annotation.
						 */
						annotationType(): java.lang.Class<any>;
						/**
						 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
						 * @param obj 
						 */
						equals(obj: any): boolean;
						/**
						 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
						 */
						hashCode(): number;
						/**
						 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
						 */
						toString(): string;
					}
					export class ClassWithAnnotation {
						static class: java.lang.Class<android.test.suitebuilder.annotation.HasAnnotationTest.ClassWithAnnotation>;
						public testWithAnnotation(): void;
						public testWithoutAnnotation(): void;
					}
					export class Example implements java.lang.annotation.IAnnotation, android.test.suitebuilder.annotation.HasAnnotationTest.IExample {
						constructor(implementation: android.test.suitebuilder.annotation.HasAnnotationTest.IExample);
						/**
						 * Returns the type of this annotation.
						 */
						annotationType(): java.lang.Class<any>;
						/**
						 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
						 * @param obj 
						 */
						equals(obj: any): boolean;
						/**
						 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
						 */
						hashCode(): number;
						/**
						 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
						 */
						toString(): string;
					}
					export class ClassWithoutAnnotation {
						static class: java.lang.Class<android.test.suitebuilder.annotation.HasAnnotationTest.ClassWithoutAnnotation>;
						public testWithAnnotation(): void;
						public testWithoutAnnotation(): void;
					}
				}
				export class HasClassAnnotationTest {
					constructor();
					static class: java.lang.Class<android.test.suitebuilder.annotation.HasClassAnnotationTest>;
					public testShouldTellIfParentClassHasSpecifiedClassification(): void;
					public testShouldTellIfParentClassDoesNotHaveSpecifiedClassification(): void;
				}
				export module HasClassAnnotationTest {
					export class SmokeTestExample {
						static class: java.lang.Class<android.test.suitebuilder.annotation.HasClassAnnotationTest.SmokeTestExample>;
						public testSomeTest(): void;
					}
					export class NonSmokeTestExample {
						static class: java.lang.Class<android.test.suitebuilder.annotation.HasClassAnnotationTest.NonSmokeTestExample>;
						public testSomeTest(): void;
					}
				}
			}
			/**
			 * Build suites based on a combination of included packages, excluded packages, and predicates that must be satisfied.
			 */
			export class TestSuiteBuilder extends java.lang.Object {
				/**
				 * The given name is automatically prefixed with the package containing the tests to be run. If more than one package is specified, the first is used.
				 * @param clazz Use the class from your .apk. Use the class name for the test suite name.
				 */
				constructor(clazz: java.lang.Class<any>);
				constructor(name: string, classLoader: java.lang.ClassLoader);
				static class: java.lang.Class<android.test.suitebuilder.TestSuiteBuilder>;
				/**
				 * Include all tests that satisfy the requirements in the given packages and all sub-packages, unless otherwise specified.
				 * @param packageNames Names of packages to add.
				 */
				public includePackages(packageNames: native.Array<string>): android.test.suitebuilder.TestSuiteBuilder;
				/**
				 * Exclude all tests in the given packages and all sub-packages, unless otherwise specified.
				 * @param packageNames Names of packages to remove.
				 */
				public excludePackages(packageNames: native.Array<string>): android.test.suitebuilder.TestSuiteBuilder;
				/**
				 * Include all junit tests that satisfy the requirements in the calling class' package and all sub-packages.
				 */
				public includeAllPackagesUnderHere(): android.test.suitebuilder.TestSuiteBuilder;
				/**
				 * Override the default name for the suite being built. This should generally be called if you call #addRequirements(com.android.internal.util.Predicate[]) to make it clear which tests will be included. The name you specify is automatically prefixed with the package containing the tests to be run. If more than one package is specified, the first is used.
				 * @param newSuiteName Prefix of name to give the suite being built.
				 */
				public named(newSuiteName: string): android.test.suitebuilder.TestSuiteBuilder;
				/**
				 * Subclasses use this method to determine the name of the suite.
				 */
				protected getSuiteName(): string;
			}
			export module TestSuiteBuilder {
				/**
				 * A special junit.framework.TestCase used to indicate a failure during the build() step.
				 */
				export class FailedToCreateTests {
					constructor(exception: java.lang.Exception);
					static class: java.lang.Class<android.test.suitebuilder.TestSuiteBuilder.FailedToCreateTests>;
					public testSuiteConstructionFailed(): void;
				}
			}
			export module examples {
				export module subclass {
					export class SuperclassTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.subclass.SuperclassTest>;
						public testSuperclass(): void;
					}
					export class SubclassTest extends android.test.suitebuilder.examples.subclass.SuperclassTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.subclass.SubclassTest>;
						public testSubclass(): void;
					}
				}
				export module smoke {
					export class SmokeTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.smoke.SmokeTest>;
						public testSmoke(): void;
					}
					export class NonSmokeTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.smoke.NonSmokeTest>;
						public testNonSmoke(): void;
					}
				}
				export module constructor {
					/**
					 * A TestCase which should not be loaded since it has non-public constructors with no args.
					 */
					export class NoPublicConstructorTest {
						constructor(foo: string, foo2: string);
						static class: java.lang.Class<android.test.suitebuilder.examples.constructor.NoPublicConstructorTest>;
						public testNotRun(): void;
					}
					/**
					 * A public constructor test case that should be loaded.
					 */
					export class PublicConstructorTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.constructor.PublicConstructorTest>;
						public testPublicConstructor(): void;
					}
					/**
					 * A protected constructor test case that should not be loaded.
					 */
					export class ProtectedConstructorTest {
						static class: java.lang.Class<android.test.suitebuilder.examples.constructor.ProtectedConstructorTest>;
						public testNotRun(): void;
					}
				}
				export module simple {
					export class AnotherSimpleTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.simple.AnotherSimpleTest>;
						public testAnotherOne(): void;
					}
					export class SimpleTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.simple.SimpleTest>;
						public testSimpleOne(): void;
						public testSimpleTwo(): void;
					}
				}
				export module instrumentation {
					export class InstrumentationTest extends android.test.InstrumentationTestCase {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.instrumentation.InstrumentationTest>;
						public testInstrumentation(): void;
					}
				}
				export module suppress {
					export class SuppressedTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.suppress.SuppressedTest>;
						public testSuppressedClass(): void;
					}
					export class PartiallySuppressedTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.suppress.PartiallySuppressedTest>;
						public testSuppressedMethod(): void;
						public testUnSuppressedMethod(): void;
					}
				}
				export module error {
					export class FailingTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.error.FailingTest>;
						public testFailOne(): void;
						public testFailTwo(): void;
					}
					export class ErrorTest {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.error.ErrorTest>;
						public testErrorOne(): void;
						public testErrorTwo(): void;
					}
				}
				export module nested {
					export class Level1Test {
						constructor();
						static class: java.lang.Class<android.test.suitebuilder.examples.nested.Level1Test>;
						public testLevel1(): void;
					}
					export module nested {
						export class Level2Test {
							constructor();
							static class: java.lang.Class<android.test.suitebuilder.examples.nested.nested.Level2Test>;
							public testLevel2(): void;
						}
					}
				}
				export class OuterTest {
					constructor();
					static class: java.lang.Class<android.test.suitebuilder.examples.OuterTest>;
					public testOuter(): void;
				}
			}
			/**
			 * Unit tests for TestGrouping
			 */
			export class TestGroupingTest {
				constructor();
				static class: java.lang.Class<android.test.suitebuilder.TestGroupingTest>;
				protected setUp(): void;
				/**
				 * Verifies that TestCases with no public constructor are not loaded. Relies on fixture classes in android.test.suitebuilder.examples.constructor
				 */
				public testGetTests_noPublicConstructor(): void;
			}
			export class SmokeTestSuiteBuilderTest {
				constructor();
				static class: java.lang.Class<android.test.suitebuilder.SmokeTestSuiteBuilderTest>;
				public testShouldOnlyIncludeSmokeTests(): void;
			}
			export class UnitTestSuiteBuilderTest {
				constructor();
				static class: java.lang.Class<android.test.suitebuilder.UnitTestSuiteBuilderTest>;
				protected setUp(): void;
				public testShouldExcludeIntrumentationTests(): void;
			}
			export module UnitTestSuiteBuilderTest {
				export class SuiteExecutionRecorder extends java.lang.Object {
					static class: java.lang.Class<android.test.suitebuilder.UnitTestSuiteBuilderTest.SuiteExecutionRecorder>;
					public saw(testName: string): boolean;
					public failed(testName: string): boolean;
					public errored(testName: string): boolean;
					public passed(testName: string): boolean;
				}
			}
			export class TestSuiteBuilderTest {
				constructor();
				static class: java.lang.Class<android.test.suitebuilder.TestSuiteBuilderTest>;
				protected setUp(): void;
				public testShouldRunSimpleTests(): void;
				public testShouldOnlyIncludeTestsThatSatisfyAllPredicates(): void;
				public testShouldAddFailingTestsToSuite(): void;
				public testShouldAddTestsWithErrorsToSuite(): void;
				public testShouldRunTestsInheritedFromSuperclass(): void;
				public testShouldIncludeTestsInSubPackagesRecursively(): void;
				public testExcludePackage(): void;
				public testShouldExcludeSuppressedTests(): void;
				/**
				 * This test calls OuterTest#buildTestsUnderHereRecursively() to control the packages under test. The call to TestSuiteBuilder#includeAllPackagesUnderHere() is made from there so that only return the example tests.
				 */
				public testIncludeAllPackagesUnderHere(): void;
			}
			export module TestSuiteBuilderTest {
				export class SuiteExecutionRecorder extends java.lang.Object {
					static class: java.lang.Class<android.test.suitebuilder.TestSuiteBuilderTest.SuiteExecutionRecorder>;
					public saw(testName: string): boolean;
					public failed(testName: string): boolean;
					public errored(testName: string): boolean;
					public passed(testName: string): boolean;
				}
			}
			export class AssignableFrom extends java.lang.Object {
				static class: java.lang.Class<android.test.suitebuilder.AssignableFrom>;
				public apply(testMethod: android.test.suitebuilder.TestMethod): boolean;
			}
			export class ListTestCaseNames extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.test.suitebuilder.ListTestCaseNames>;
			}
			export module ListTestCaseNames {
				/**
				 * Data holder for test case info
				 */
				export class TestDescriptor extends java.lang.Object {
					constructor(className: string, testName: string);
					static class: java.lang.Class<android.test.suitebuilder.ListTestCaseNames.TestDescriptor>;
					public getClassName(): string;
					public getTestName(): string;
					/**
					 * Override parent to do string-based class and test name comparison
					 */
					public equals(otherObj: any): boolean;
					/**
					 * Override parent to return a more user-friendly display string
					 */
					public toString(): string;
				}
			}
			export class AssignableFromTest {
				constructor();
				static class: java.lang.Class<android.test.suitebuilder.AssignableFromTest>;
				protected setUp(): void;
				public testSelfIsAssignable(): void;
				public testSubclassesAreAssignable(): void;
				public testNotAssignable(): void;
				public testImplementorsAreAssignable(): void;
			}
			export module AssignableFromTest {
				export class Mammal extends android.test.suitebuilder.AssignableFromTest.Animal {
					static class: java.lang.Class<android.test.suitebuilder.AssignableFromTest.Mammal>;
					public testX(): void;
				}
				export class Human extends android.test.suitebuilder.AssignableFromTest.Mammal {
					static class: java.lang.Class<android.test.suitebuilder.AssignableFromTest.Human>;
					public testX(): void;
				}
				export class WritingInstrument implements android.test.suitebuilder.AssignableFromTest.IWritingInstrument {
					constructor(implementation: android.test.suitebuilder.AssignableFromTest.IWritingInstrument);
				}
				export class Animal {
					static class: java.lang.Class<android.test.suitebuilder.AssignableFromTest.Animal>;
					public testX(): void;
				}
				interface IWritingInstrument {
				}
				export class Pen implements android.test.suitebuilder.AssignableFromTest.IWritingInstrument {
					static class: java.lang.Class<android.test.suitebuilder.AssignableFromTest.Pen>;
					public testX(): void;
				}
				export class Pencil implements android.test.suitebuilder.AssignableFromTest.IWritingInstrument {
					static class: java.lang.Class<android.test.suitebuilder.AssignableFromTest.Pencil>;
					public testX(): void;
				}
			}
			/**
			 * Represents a test to be run. Can be constructed without instantiating the TestCase or even loading the class.
			 */
			export class TestMethod extends java.lang.Object {
				constructor(method: java.lang.reflect.Method, enclosingClass: java.lang.Class<any>);
				constructor(methodName: string, enclosingClass: java.lang.Class<any>);
				static class: java.lang.Class<android.test.suitebuilder.TestMethod>;
				public getName(): string;
				public getEnclosingClassname(): string;
				public getAnnotation<T extends java.lang.annotation.IAnnotation>(annotationClass: java.lang.Class<T>): T;
				public getEnclosingClass(): java.lang.Class<any>;
				public equals(o: any): boolean;
				public hashCode(): number;
				public toString(): string;
			}
			export class InstrumentationTestSuiteBuilderTest {
				constructor();
				static class: java.lang.Class<android.test.suitebuilder.InstrumentationTestSuiteBuilderTest>;
				protected setUp(): void;
				public testShouldIncludeIntrumentationTests(): void;
				public testShouldOnlyIncludeIntrumentationTests(): void;
			}
			export module InstrumentationTestSuiteBuilderTest {
				export class SuiteExecutionRecorder extends java.lang.Object {
					static class: java.lang.Class<android.test.suitebuilder.InstrumentationTestSuiteBuilderTest.SuiteExecutionRecorder>;
					public saw(testName: string): boolean;
					public failed(testName: string): boolean;
					public errored(testName: string): boolean;
					public passed(testName: string): boolean;
				}
			}
		}
		/**
		 * This test case provides a framework in which you can test Application classes in a controlled environment. It provides basic support for the lifecycle of a Application, and hooks by which you can inject various dependencies and control the environment in which your Application is tested.
		 */
		export class ApplicationTestCase<T extends android.app.Application> extends android.test.AndroidTestCase {
			constructor(applicationClass: java.lang.Class<T>);
			static class: java.lang.Class<android.test.ApplicationTestCase<any>>;
			public getApplication(): T;
			/**
			 * This will do the work to instantiate the Application under test. After this, your test code must also start and stop the Application.
			 */
			protected setUp(): void;
			/**
			 * Start the Application under test, in the same way as if it was started by the system. If you use this method to start the Application, it will automatically be stopped by #tearDown. If you wish to inject a specialized Context for your test, by calling AndroidTestCase#setContext(Context) setContext(), you must do so before calling this method.
			 */
			protected createApplication(): void;
			/**
			 * This will make the necessary calls to terminate the Application under test (it will call onTerminate(). Ordinarily this will be called automatically (by #tearDown, but you can call it directly from your test in order to check for proper shutdown behaviors.
			 */
			protected terminateApplication(): void;
			/**
			 * Shuts down the Application under test. Also makes sure all resources are cleaned up and garbage collected before moving on to the next test. Subclasses that override this method should make sure they call super.tearDown() at the end of the overriding method. Exception
			 */
			protected tearDown(): void;
			/**
			 * Return a real (not mocked or instrumented) system Context that can be used when generating Mock or other Context objects for your Application under test. 
			 */
			public getSystemContext(): android.content.Context;
			/**
			 * This test simply confirms that the Application class can be instantiated properly. Exception
			 */
			public testApplicationTestCaseSetUpProperly(): void;
		}
		/**
		 * More complex interface performance for test cases. If you want your test to be used as a performance test, you must implement this interface.
		 */
		interface IPerformanceTestCase {
			/**
			 * Set up to begin performance tests. The 'intermediates' is a communication channel to send back intermediate performance numbers -- if you use it, you will probably want to ensure your test is only executed once by returning 1. Otherwise, return 0 to allow the test harness to decide the number of iterations. 
			 * @param intermediates Callback for sending intermediate results.
			 */
			startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
			/**
			 * This method is used to determine what modes this test case can run in. 
			 */
			isPerformanceOnly(): boolean;
		}
		/**
		 * A bandwidth test case that collects bandwidth statistics for tests that are annotated with BandwidthTest otherwise the test is executed as an InstrumentationTestCase
		 */
		export class BandwidthTestCase extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.test.BandwidthTestCase>;
			protected runTest(): void;
		}
		/**
		 * This class provides functional testing of a single activity. The activity under test will be created using the system infrastructure (by calling InstrumentationTestCase.launchActivity()) and you will then be able to manipulate your Activity directly. Most of the work is handled automatically here by #setUp and #tearDown. 
		 */
		export class ActivityInstrumentationTestCase<T extends android.app.Activity> extends android.test.ActivityTestCase {
			/**
			 * Creates an ActivityInstrumentationTestCase in non-touch mode. 
			 * @param pkg ignored - no longer in use.
			 * @param activityClass The activity to test. This must be a class in the instrumentation
			 */
			constructor(pkg: string, activityClass: java.lang.Class<T>);
			/**
			 * Creates an ActivityInstrumentationTestCase.
			 * @param pkg ignored - no longer in use.
			 * @param activityClass The activity to test. This must be a class in the instrumentation
			 * @param initialTouchMode true = in touch mode
			 */
			constructor(pkg: string, activityClass: java.lang.Class<T>, initialTouchMode: boolean);
			static class: java.lang.Class<android.test.ActivityInstrumentationTestCase<any>>;
			public getActivity(): T;
			protected setUp(): void;
			protected tearDown(): void;
			public testActivityTestCaseSetUpProperly(): void;
		}
		/**
		 * Thrown when an assert equals for Strings failed. use junit.framework.ComparisonFailure
		 */
		export class ComparisonFailure extends android.test.AssertionFailedError {
			constructor(message: string, expected: string, actual: string);
			static class: java.lang.Class<android.test.ComparisonFailure>;
			public getMessage(): string;
		}
		/**
		 * An Instrumentation that runs various types of junit.framework.TestCases against an Android package (application).
		 */
		export class InstrumentationTestRunner extends android.app.Instrumentation implements android.test.ITestSuiteProvider {
			constructor();
			/**
			 * This value, if stored with key android.app.Instrumentation#REPORT_KEY_IDENTIFIER, identifies InstrumentationTestRunner as the source of the report. This is sent with all status messages.
			 */
			static REPORT_VALUE_ID: string;
			/**
			 * If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the total number of tests that are being run. This is sent with all status messages.
			 */
			static REPORT_KEY_NUM_TOTAL: string;
			/**
			 * If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the sequence number of the current test. This is sent with any status message describing a specific test being started or completed.
			 */
			static REPORT_KEY_NUM_CURRENT: string;
			/**
			 * If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test class. This is sent with any status message describing a specific test being started or completed.
			 */
			static REPORT_KEY_NAME_CLASS: string;
			/**
			 * If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test. This is sent with any status message describing a specific test being started or completed.
			 */
			static REPORT_KEY_NAME_TEST: string;
			/**
			 * The test is starting.
			 */
			static REPORT_VALUE_RESULT_START: number;
			/**
			 * The test completed successfully.
			 */
			static REPORT_VALUE_RESULT_OK: number;
			/**
			 * The test completed with an error.
			 */
			static REPORT_VALUE_RESULT_ERROR: number;
			/**
			 * The test completed with a failure.
			 */
			static REPORT_VALUE_RESULT_FAILURE: number;
			/**
			 * If included in the status bundle sent to an IInstrumentationWatcher, this key identifies a stack trace describing an error or failure. This is sent with any status message describing a specific test being completed.
			 */
			static REPORT_KEY_STACK: string;
			static class: java.lang.Class<android.test.InstrumentationTestRunner>;
			StringResultPrinter: {
	new (writer: java.io.PrintStream): android.test.InstrumentationTestRunner.StringResultPrinter;
};
			SuiteAssignmentPrinter: {
	new (): android.test.InstrumentationTestRunner.SuiteAssignmentPrinter;
};
			WatcherResultPrinter: {
	new (numTests: number): android.test.InstrumentationTestRunner.WatcherResultPrinter;
};
			public onCreate(args: android.os.Bundle): void;
			protected getAndroidTestRunner(): android.test.AndroidTestRunner;
			/**
			 * Initialize the current thread as a looper. <p/> Exposed for unit testing.
			 */
			prepareLooper(): void;
			public onStart(): void;
			/**
			 * Override this to provide access to the class loader of your package.
			 */
			public getLoader(): java.lang.ClassLoader;
		}
		export module InstrumentationTestRunner {
			export class StringResultPrinter {
				static class: java.lang.Class<android.test.InstrumentationTestRunner.StringResultPrinter>;
			}
			/**
			 * This class sends status reports back to the IInstrumentationWatcher about which suite each test belongs.
			 */
			export class SuiteAssignmentPrinter extends java.lang.Object {
				static class: java.lang.Class<android.test.InstrumentationTestRunner.SuiteAssignmentPrinter>;
			}
			/**
			 * This class sends status reports back to the IInstrumentationWatcher
			 */
			export class WatcherResultPrinter extends java.lang.Object {
				static class: java.lang.Class<android.test.InstrumentationTestRunner.WatcherResultPrinter>;
				public writeBeginSnapshot(label: string): void;
				public writeEndSnapshot(results: android.os.Bundle): void;
				public writeStartTiming(label: string): void;
				public writeStopTiming(results: android.os.Bundle): void;
				public writeMeasurement(label: string, value: number): void;
				public writeMeasurement(label: string, value: string): void;
			}
		}
		/**
		 * This annotation can be used on an android.test.InstrumentationTestCase's test methods. When the annotation is present, the test method is re-executed if the test fails. The total number of executions is specified by the tolerance and defaults to 1.
		 */
		interface IFlakyTest extends java.lang.annotation.IAnnotation {
			/**
			 * Indicates how many times a test can run and fail before being reported as a failed test. If the tolerance factor is less than 1, the test runs only once.
			 */
			tolerance(): number;
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		export module mock {
			/**
			 * A mock android.content.Context class. All methods are non-functional and throw java.lang.UnsupportedOperationException. You can use this to inject other dependencies, mocks, or monitors into the classes you are testing.
			 */
			export class MockContext extends android.content.Context {
				constructor();
				static class: java.lang.Class<android.test.mock.MockContext>;
				public getAssets(): android.content.res.AssetManager;
				public getResources(): android.content.res.Resources;
				public getPackageManager(): android.content.pm.PackageManager;
				public getContentResolver(): android.content.ContentResolver;
				public getMainLooper(): android.os.Looper;
				public getApplicationContext(): android.content.Context;
				public setTheme(resid: number): void;
				public getTheme(): android.content.res.Resources.Theme;
				public getClassLoader(): java.lang.ClassLoader;
				public getPackageName(): string;
				public getApplicationInfo(): android.content.pm.ApplicationInfo;
				public getPackageResourcePath(): string;
				public getPackageCodePath(): string;
				public getSharedPreferences(name: string, mode: number): android.content.ISharedPreferences;
				public openFileInput(name: string): java.io.FileInputStream;
				public openFileOutput(name: string, mode: number): java.io.FileOutputStream;
				public deleteFile(name: string): boolean;
				public getFileStreamPath(name: string): java.io.File;
				public fileList(): native.Array<string>;
				public getFilesDir(): java.io.File;
				public getExternalFilesDir(type: string): java.io.File;
				public getObbDir(): java.io.File;
				public getCacheDir(): java.io.File;
				public getExternalCacheDir(): java.io.File;
				public getDir(name: string, mode: number): java.io.File;
				public openOrCreateDatabase(file: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory): android.database.sqlite.SQLiteDatabase;
				public openOrCreateDatabase(file: string, mode: number, factory: android.database.sqlite.SQLiteDatabase.ICursorFactory, errorHandler: android.database.IDatabaseErrorHandler): android.database.sqlite.SQLiteDatabase;
				public getDatabasePath(name: string): java.io.File;
				public databaseList(): native.Array<string>;
				public deleteDatabase(name: string): boolean;
				public getWallpaper(): android.graphics.drawable.Drawable;
				public peekWallpaper(): android.graphics.drawable.Drawable;
				public getWallpaperDesiredMinimumWidth(): number;
				public getWallpaperDesiredMinimumHeight(): number;
				public setWallpaper(bitmap: android.graphics.Bitmap): void;
				public setWallpaper(data: java.io.InputStream): void;
				public clearWallpaper(): void;
				public startActivity(intent: android.content.Intent): void;
				public startActivity(intent: android.content.Intent, options: android.os.Bundle): void;
				public startActivities(intents: native.Array<android.content.Intent>): void;
				public startActivities(intents: native.Array<android.content.Intent>, options: android.os.Bundle): void;
				public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number): void;
				public startIntentSender(intent: android.content.IntentSender, fillInIntent: android.content.Intent, flagsMask: number, flagsValues: number, extraFlags: number, options: android.os.Bundle): void;
				public sendBroadcast(intent: android.content.Intent): void;
				public sendBroadcast(intent: android.content.Intent, receiverPermission: string): void;
				public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string): void;
				public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
				public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
				public sendBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string): void;
				public sendOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
				public sendStickyBroadcast(intent: android.content.Intent): void;
				public sendStickyOrderedBroadcast(intent: android.content.Intent, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
				public removeStickyBroadcast(intent: android.content.Intent): void;
				public sendStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
				public sendStickyOrderedBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
				public removeStickyBroadcastAsUser(intent: android.content.Intent, user: android.os.UserHandle): void;
				public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter): android.content.Intent;
				public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
				public unregisterReceiver(receiver: android.content.BroadcastReceiver): void;
				public startService(service: android.content.Intent): android.content.ComponentName;
				public stopService(service: android.content.Intent): boolean;
				public bindService(service: android.content.Intent, conn: android.content.IServiceConnection, flags: number): boolean;
				public unbindService(conn: android.content.IServiceConnection): void;
				public startInstrumentation(className: android.content.ComponentName, profileFile: string, args: android.os.Bundle): boolean;
				public getSystemService(name: string): any;
				public checkPermission(permission: string, pid: number, uid: number): number;
				public checkCallingPermission(permission: string): number;
				public checkCallingOrSelfPermission(permission: string): number;
				public enforcePermission(permission: string, pid: number, uid: number, message: string): void;
				public enforceCallingPermission(permission: string, message: string): void;
				public enforceCallingOrSelfPermission(permission: string, message: string): void;
				public grantUriPermission(toPackage: string, uri: android.net.Uri, modeFlags: number): void;
				public revokeUriPermission(uri: android.net.Uri, modeFlags: number): void;
				public checkUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number): number;
				public checkCallingUriPermission(uri: android.net.Uri, modeFlags: number): number;
				public checkCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number): number;
				public checkUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number): number;
				public enforceUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number, message: string): void;
				public enforceCallingUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
				public enforceCallingOrSelfUriPermission(uri: android.net.Uri, modeFlags: number, message: string): void;
				public enforceUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number, message: string): void;
				public createPackageContext(packageName: string, flags: number): android.content.Context;
				public createConfigurationContext(overrideConfiguration: android.content.res.Configuration): android.content.Context;
				public createDisplayContext(display: android.view.Display): android.content.Context;
				public isRestricted(): boolean;
			}
			/**
			 * A mock android.app.Application class. All methods are non-functional and throw java.lang.UnsupportedOperationException. Override it as necessary to provide the operations that you need.
			 */
			export class MockApplication extends android.app.Application {
				constructor();
				static class: java.lang.Class<android.test.mock.MockApplication>;
				public onCreate(): void;
				public onTerminate(): void;
				public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
			}
			/**
			 * Mock implementation of ContentProvider. All methods are non-functional and throw java.lang.UnsupportedOperationException. Tests can extend this class to implement behavior needed for tests.
			 */
			export class MockContentProvider extends android.content.ContentProvider {
				/**
				 * A constructor accepting a Context instance, which is supposed to be the subclasss of MockContext.
				 */
				constructor(context: android.content.Context);
				/**
				 * A constructor which initialize four member variables which android.content.ContentProvider have internally.
				 * @param context A Context object which should be some mock instance (like the
				 * @param readPermission The read permision you want this instance should have in the
				 * @param writePermission The write permission you want this instance should have
				 * @param pathPermissions The PathPermissions you want this instance should have
				 */
				constructor(context: android.content.Context, readPermission: string, writePermission: string, pathPermissions: native.Array<android.content.pm.PathPermission>);
				static class: java.lang.Class<android.test.mock.MockContentProvider>;
				public delete(uri: android.net.Uri, selection: string, selectionArgs: native.Array<string>): number;
				public getType(uri: android.net.Uri): string;
				public insert(uri: android.net.Uri, values: android.content.ContentValues): android.net.Uri;
				public onCreate(): boolean;
				public query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string): android.database.ICursor;
				public update(uri: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): number;
				/**
				 * If you're reluctant to implement this manually, please just call super.bulkInsert().
				 */
				public bulkInsert(uri: android.net.Uri, values: native.Array<android.content.ContentValues>): number;
				public attachInfo(context: android.content.Context, info: android.content.pm.ProviderInfo): void;
				public applyBatch(operations: java.util.ArrayList<android.content.ContentProviderOperation>): native.Array<android.content.ContentProviderResult>;
				public getStreamTypes(url: android.net.Uri, mimeTypeFilter: string): native.Array<string>;
				public openTypedAssetFile(url: android.net.Uri, mimeType: string, opts: android.os.Bundle): android.content.res.AssetFileDescriptor;
				/**
				 * Implement this to handle query requests from clients with support for cancellation. This method can be called from multiple threads, as described in <a href="guide/topics/fundamentals/processes-and-threads.html#Threads">Processes and Threads</a>.
				 * @param uri The URI to query. This will be the full URI sent by the client;
				 * @param projection The list of columns to put into the cursor. If
				 * @param selection A selection criteria to apply when filtering rows.
				 * @param selectionArgs You may include ?s in selection, which will be replaced by
				 * @param sortOrder How the rows in the cursor should be sorted.
				 * @param cancellationSignal A signal to cancel the operation in progress, or null if none.
				 */
				query(uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string, cancellationSignal: android.os.CancellationSignal): android.database.ICursor;
			}
			export module MockContentProvider {
				/**
				 * IContentProvider that directs all calls to this MockContentProvider.
				 */
				export class InversionIContentProvider extends java.lang.Object {
					static class: java.lang.Class<android.test.mock.MockContentProvider.InversionIContentProvider>;
					public applyBatch(operations: java.util.ArrayList<android.content.ContentProviderOperation>): native.Array<android.content.ContentProviderResult>;
					public bulkInsert(url: android.net.Uri, initialValues: native.Array<android.content.ContentValues>): number;
					public delete(url: android.net.Uri, selection: string, selectionArgs: native.Array<string>): number;
					public getType(url: android.net.Uri): string;
					public insert(url: android.net.Uri, initialValues: android.content.ContentValues): android.net.Uri;
					public openAssetFile(url: android.net.Uri, mode: string): android.content.res.AssetFileDescriptor;
					public openFile(url: android.net.Uri, mode: string): android.os.ParcelFileDescriptor;
					public update(url: android.net.Uri, values: android.content.ContentValues, selection: string, selectionArgs: native.Array<string>): number;
					public call(method: string, request: string, args: android.os.Bundle): android.os.Bundle;
					public asBinder(): android.os.IIBinder;
					public getStreamTypes(url: android.net.Uri, mimeTypeFilter: string): native.Array<string>;
					public openTypedAssetFile(url: android.net.Uri, mimeType: string, opts: android.os.Bundle): android.content.res.AssetFileDescriptor;
				}
			}
			/**
			 * A mock android.content.pm.PackageManager class. All methods are non-functional and throw java.lang.UnsupportedOperationException. Override it to provide the operations that you need.
			 */
			export class MockPackageManager extends android.content.pm.PackageManager {
				constructor();
				static class: java.lang.Class<android.test.mock.MockPackageManager>;
				public getPackageInfo(packageName: string, flags: number): android.content.pm.PackageInfo;
				public currentToCanonicalPackageNames(names: native.Array<string>): native.Array<string>;
				public canonicalToCurrentPackageNames(names: native.Array<string>): native.Array<string>;
				public getLaunchIntentForPackage(packageName: string): android.content.Intent;
				public getPackageGids(packageName: string): native.Array<number>;
				public getPermissionInfo(name: string, flags: number): android.content.pm.PermissionInfo;
				public queryPermissionsByGroup(group: string, flags: number): java.util.IList<android.content.pm.PermissionInfo>;
				public getPermissionGroupInfo(name: string, flags: number): android.content.pm.PermissionGroupInfo;
				public getAllPermissionGroups(flags: number): java.util.IList<android.content.pm.PermissionGroupInfo>;
				public getApplicationInfo(packageName: string, flags: number): android.content.pm.ApplicationInfo;
				public getActivityInfo(className: android.content.ComponentName, flags: number): android.content.pm.ActivityInfo;
				public getReceiverInfo(className: android.content.ComponentName, flags: number): android.content.pm.ActivityInfo;
				public getServiceInfo(className: android.content.ComponentName, flags: number): android.content.pm.ServiceInfo;
				public getProviderInfo(className: android.content.ComponentName, flags: number): android.content.pm.ProviderInfo;
				public getInstalledPackages(flags: number): java.util.IList<android.content.pm.PackageInfo>;
				public checkPermission(permName: string, pkgName: string): number;
				public addPermission(info: android.content.pm.PermissionInfo): boolean;
				public addPermissionAsync(info: android.content.pm.PermissionInfo): boolean;
				public removePermission(name: string): void;
				public checkSignatures(pkg1: string, pkg2: string): number;
				public checkSignatures(uid1: number, uid2: number): number;
				public getPackagesForUid(uid: number): native.Array<string>;
				public getNameForUid(uid: number): string;
				public getInstalledApplications(flags: number): java.util.IList<android.content.pm.ApplicationInfo>;
				public resolveActivity(intent: android.content.Intent, flags: number): android.content.pm.ResolveInfo;
				public queryIntentActivities(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				public queryIntentActivityOptions(caller: android.content.ComponentName, specifics: native.Array<android.content.Intent>, intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				public queryBroadcastReceivers(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				public resolveService(intent: android.content.Intent, flags: number): android.content.pm.ResolveInfo;
				public queryIntentServices(intent: android.content.Intent, flags: number): java.util.IList<android.content.pm.ResolveInfo>;
				public resolveContentProvider(name: string, flags: number): android.content.pm.ProviderInfo;
				public queryContentProviders(processName: string, uid: number, flags: number): java.util.IList<android.content.pm.ProviderInfo>;
				public getInstrumentationInfo(className: android.content.ComponentName, flags: number): android.content.pm.InstrumentationInfo;
				public queryInstrumentation(targetPackage: string, flags: number): java.util.IList<android.content.pm.InstrumentationInfo>;
				public getDrawable(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
				public getActivityIcon(activityName: android.content.ComponentName): android.graphics.drawable.Drawable;
				public getActivityIcon(intent: android.content.Intent): android.graphics.drawable.Drawable;
				public getDefaultActivityIcon(): android.graphics.drawable.Drawable;
				public getApplicationIcon(info: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
				public getApplicationIcon(packageName: string): android.graphics.drawable.Drawable;
				public getActivityLogo(activityName: android.content.ComponentName): android.graphics.drawable.Drawable;
				public getActivityLogo(intent: android.content.Intent): android.graphics.drawable.Drawable;
				public getApplicationLogo(info: android.content.pm.ApplicationInfo): android.graphics.drawable.Drawable;
				public getApplicationLogo(packageName: string): android.graphics.drawable.Drawable;
				public getText(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): string;
				public getXml(packageName: string, resid: number, appInfo: android.content.pm.ApplicationInfo): android.content.res.IXmlResourceParser;
				public getApplicationLabel(info: android.content.pm.ApplicationInfo): string;
				public getResourcesForActivity(activityName: android.content.ComponentName): android.content.res.Resources;
				public getResourcesForApplication(app: android.content.pm.ApplicationInfo): android.content.res.Resources;
				public getResourcesForApplication(appPackageName: string): android.content.res.Resources;
				public getPackageArchiveInfo(archiveFilePath: string, flags: number): android.content.pm.PackageInfo;
				public setInstallerPackageName(targetPackage: string, installerPackageName: string): void;
				public getInstallerPackageName(packageName: string): string;
				public addPackageToPreferred(packageName: string): void;
				public removePackageFromPreferred(packageName: string): void;
				public getPreferredPackages(flags: number): java.util.IList<android.content.pm.PackageInfo>;
				public setComponentEnabledSetting(componentName: android.content.ComponentName, newState: number, flags: number): void;
				public getComponentEnabledSetting(componentName: android.content.ComponentName): number;
				public setApplicationEnabledSetting(packageName: string, newState: number, flags: number): void;
				public getApplicationEnabledSetting(packageName: string): number;
				public addPreferredActivity(filter: android.content.IntentFilter, match: number, set: native.Array<android.content.ComponentName>, activity: android.content.ComponentName): void;
				public clearPackagePreferredActivities(packageName: string): void;
				public getPreferredActivities(outFilters: java.util.IList<android.content.IntentFilter>, outActivities: java.util.IList<android.content.ComponentName>, packageName: string): number;
				public getSystemSharedLibraryNames(): native.Array<string>;
				public getSystemAvailableFeatures(): native.Array<android.content.pm.FeatureInfo>;
				public hasSystemFeature(name: string): boolean;
				public isSafeMode(): boolean;
				public verifyPendingInstall(id: number, verificationCode: number): void;
				public extendVerificationTimeout(id: number, verificationCodeAtTimeout: number, millisecondsToDelay: number): void;
			}
			/**
			 * A mock android.content.DialogInterface class. All methods are non-functional and throw java.lang.UnsupportedOperationException. Override it to provide the operations that you need.
			 */
			export class MockDialogInterface extends java.lang.Object implements android.content.IDialogInterface {
				constructor();
				static class: java.lang.Class<android.test.mock.MockDialogInterface>;
				public cancel(): void;
				public dismiss(): void;
			}
			/**
			 * A mock android.content.res.Resources class. All methods are non-functional and throw java.lang.UnsupportedOperationException. Override it to provide the operations that you need.
			 */
			export class MockResources extends android.content.res.Resources {
				constructor();
				static class: java.lang.Class<android.test.mock.MockResources>;
				public updateConfiguration(config: android.content.res.Configuration, metrics: android.util.DisplayMetrics): void;
				public getText(id: number): string;
				public getQuantityText(id: number, quantity: number): string;
				public getString(id: number): string;
				public getString(id: number, formatArgs: native.Array<any>): string;
				public getQuantityString(id: number, quantity: number, formatArgs: native.Array<any>): string;
				public getQuantityString(id: number, quantity: number): string;
				public getText(id: number, def: string): string;
				public getTextArray(id: number): native.Array<string>;
				public getStringArray(id: number): native.Array<string>;
				public getIntArray(id: number): native.Array<number>;
				public obtainTypedArray(id: number): android.content.res.TypedArray;
				public getDimension(id: number): number;
				public getDimensionPixelOffset(id: number): number;
				public getDimensionPixelSize(id: number): number;
				public getDrawable(id: number): android.graphics.drawable.Drawable;
				public getMovie(id: number): android.graphics.Movie;
				public getColor(id: number): number;
				public getColorStateList(id: number): android.content.res.ColorStateList;
				public getInteger(id: number): number;
				public getLayout(id: number): android.content.res.IXmlResourceParser;
				public getAnimation(id: number): android.content.res.IXmlResourceParser;
				public getXml(id: number): android.content.res.IXmlResourceParser;
				public openRawResource(id: number): java.io.InputStream;
				public openRawResourceFd(id: number): android.content.res.AssetFileDescriptor;
				public getValue(id: number, outValue: android.util.TypedValue, resolveRefs: boolean): void;
				public getValue(name: string, outValue: android.util.TypedValue, resolveRefs: boolean): void;
				public obtainAttributes(set: android.util.IAttributeSet, attrs: native.Array<number>): android.content.res.TypedArray;
				public getDisplayMetrics(): android.util.DisplayMetrics;
				public getConfiguration(): android.content.res.Configuration;
				public getIdentifier(name: string, defType: string, defPackage: string): number;
				public getResourceName(resid: number): string;
				public getResourcePackageName(resid: number): string;
				public getResourceTypeName(resid: number): string;
				public getResourceEntryName(resid: number): string;
				/**
				 * Open a data stream for reading a raw resource. This can only be used with resources whose value is the name of an asset file -- that is, it can be used to open drawable, sound, and raw resources; it will fail on string and color resources.
				 * @param id The resource identifier to open, as generated by the appt tool.
				 * @param value The TypedValue object to hold the resource information.
				 */
				openRawResource(id: number, value: android.util.TypedValue): java.io.InputStream;
			}
			export class MockContentResolver extends android.content.ContentResolver {
				constructor();
				static class: java.lang.Class<android.test.mock.MockContentResolver>;
				/**
				 * Adds access to a provider based on its authority
				 * @param name The authority name associated with the provider.
				 * @param provider An instance of {@link android.content.ContentProvider} or one of its
				 */
				public addProvider(name: string, provider: android.content.ContentProvider): void;
				/**
				 * Overrides android.content.ContentResolver#notifyChange(Uri, ContentObserver, boolean) ContentResolver.notifChange(Uri, ContentObserver, boolean). All parameters are ignored. The method hides providers linked to MockContentResolver from other observers in the system.
				 * @param uri (Ignored) The uri of the content provider.
				 * @param observer (Ignored) The observer that originated the change.
				 * @param syncToNetwork (Ignored) If true, attempt to sync the change to the network.
				 */
				public notifyChange(uri: android.net.Uri, observer: android.database.ContentObserver, syncToNetwork: boolean): void;
				/**
				 * Notify registered observers that a row was updated and attempt to sync changes to the network. To register, call #registerContentObserver(android.net.Uri , boolean, android.database.ContentObserver) registerContentObserver(). By default, CursorAdapter objects will get this notification.
				 * @param uri The uri of the content that was changed.
				 * @param observer The observer that originated the change, may be <code>null</null>.
				 */
				notifyChange(uri: android.net.Uri, observer: android.database.ContentObserver): void;
			}
			/**
			 * <P> A mock android.database.Cursor class that isolates the test code from real Cursor implementation. </P> <P> All methods including ones related to querying the state of the cursor are are non-functional and throw java.lang.UnsupportedOperationException. </P>
			 */
			export class MockCursor extends java.lang.Object implements android.database.ICursor {
				constructor();
				static class: java.lang.Class<android.test.mock.MockCursor>;
				public getColumnCount(): number;
				public getColumnIndex(columnName: string): number;
				public getColumnIndexOrThrow(columnName: string): number;
				public getColumnName(columnIndex: number): string;
				public getColumnNames(): native.Array<string>;
				public getCount(): number;
				public isNull(columnIndex: number): boolean;
				public getInt(columnIndex: number): number;
				public getLong(columnIndex: number): any;
				public getShort(columnIndex: number): number;
				public getFloat(columnIndex: number): number;
				public getDouble(columnIndex: number): any;
				public getBlob(columnIndex: number): native.Array<number>;
				public getString(columnIndex: number): string;
				public getExtras(): android.os.Bundle;
				public getPosition(): number;
				public isAfterLast(): boolean;
				public isBeforeFirst(): boolean;
				public isFirst(): boolean;
				public isLast(): boolean;
				public move(offset: number): boolean;
				public moveToFirst(): boolean;
				public moveToLast(): boolean;
				public moveToNext(): boolean;
				public moveToPrevious(): boolean;
				public moveToPosition(position: number): boolean;
				public copyStringToBuffer(columnIndex: number, buffer: android.database.CharArrayBuffer): void;
				public deactivate(): void;
				public close(): void;
				public isClosed(): boolean;
				public requery(): boolean;
				public registerContentObserver(observer: android.database.ContentObserver): void;
				public registerDataSetObserver(observer: android.database.DataSetObserver): void;
				public respond(extras: android.os.Bundle): android.os.Bundle;
				public getWantsAllOnMoveCalls(): boolean;
				public setNotificationUri(cr: android.content.ContentResolver, uri: android.net.Uri): void;
				public unregisterContentObserver(observer: android.database.ContentObserver): void;
				public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
				public getType(columnIndex: number): number;
			}
		}
		export class TestCaseUtilTest {
			constructor();
			static class: java.lang.Class<android.test.TestCaseUtilTest>;
			public testGetTestCaseNamesForTestSuiteWithSuiteMethod(): void;
			public testGetTestCaseNamesForTestCaseWithSuiteMethod(): void;
			public testCreateTestForTestCase(): void;
			public testCreateTestForTestSuiteWithSuiteMethod(): void;
			public testCreateTestForTestCaseWithSuiteMethod(): void;
			public testReturnEmptyStringForTestSuiteWithNoName(): void;
		}
		export module TestCaseUtilTest {
			export class OneTestTestCase {
				constructor();
				static class: java.lang.Class<android.test.TestCaseUtilTest.OneTestTestCase>;
				public testOne(): void;
			}
			export class OneTestTestSuite extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.test.TestCaseUtilTest.OneTestTestSuite>;
			}
			export class OneTestTestCaseWithSuite {
				constructor();
				static class: java.lang.Class<android.test.TestCaseUtilTest.OneTestTestCaseWithSuite>;
				public testOne(): void;
				public testTwo(): void;
			}
			export class TwoTestsInTestSuite {
				constructor();
				static class: java.lang.Class<android.test.TestCaseUtilTest.TwoTestsInTestSuite>;
			}
		}
		/**
		 * This annotation can be used on an junit.framework.TestCase's test methods. When the annotation is present, the test method is profiled for bandwidth metrics and the results written through instrumentation output. It can also be used on the class itself, which is equivalent to tagging all test methods with this annotation.
		 */
		export class BandwidthTest implements java.lang.annotation.IAnnotation, android.test.IBandwidthTest {
			constructor(implementation: android.test.IBandwidthTest);
			/**
			 * Returns the type of this annotation.
			 */
			annotationType(): java.lang.Class<any>;
			/**
			 * Determines whether or not this annotation is equivalent to the annotation passed. This is determined according to the following rules:
			 * @param obj 
			 */
			equals(obj: any): boolean;
			/**
			 * Returns the hash code of this annotation. The hash code is determined according to the following rules:
			 */
			hashCode(): number;
			/**
			 * Returns a String representation of this annotation. It is not strictly defined what the representation has to look like, but it usually consists of the name of the annotation, preceded by a " If the annotation contains field members, their names and values are also included in the result.
			 */
			toString(): string;
		}
		/**
		 * Unit tests for AndroidTestRunner
		 */
		export class AndroidTestRunnerTest {
			constructor();
			static class: java.lang.Class<android.test.AndroidTestRunnerTest>;
			protected setUp(): void;
			public testLoadNoTestCases(): void;
			public testSetTestSuiteWithOneTestCase(): void;
			public testRunTest(): void;
			public testRunTestWithAndroidTestCase(): void;
			public testRunTestWithAndroidTestCaseInSuite(): void;
			public testRunTestWithAndroidTestCaseInNestedSuite(): void;
			public testRunTestWithNullListener(): void;
			public testSetTestClassWithTestSuiteProvider(): void;
			public testSetTestClassWithTestSuite(): void;
			public testRunSingleTestMethod(): void;
			public testSetTestClassInvalidClass(): void;
			public testRunSkipExecution(): void;
		}
		export module AndroidTestRunnerTest {
			export class AndroidTestCaseTestSuite extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.AndroidTestCaseTestSuite>;
			}
			export class TestListenerStub extends java.lang.Object {
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.TestListenerStub>;
				public saw(testName: string): boolean;
			}
			export class OnePassOneErrorOneFailTestCase {
				constructor();
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.OnePassOneErrorOneFailTestCase>;
				public testPass(): void;
				public testError(): void;
				public testFail(): void;
			}
			export class OneAndroidTestTestCase extends android.test.AndroidTestCase {
				constructor();
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.OneAndroidTestTestCase>;
				public testOneAndroid(): void;
			}
			export class TwoTestTestCase {
				constructor();
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.TwoTestTestCase>;
				public testOne(): void;
				public testTwo(): void;
			}
			export class StubContext extends android.test.mock.MockContext {
				constructor(classLoader: java.lang.ClassLoader);
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.StubContext>;
				public getClassLoader(): java.lang.ClassLoader;
			}
			export class SampleTestSuite extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.SampleTestSuite>;
			}
			export class OneTestTestCase {
				constructor();
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.OneTestTestCase>;
				public testOne(): void;
			}
			export class SampleTestSuiteProvider extends java.lang.Object implements android.test.ITestSuiteProvider {
				constructor();
				static class: java.lang.Class<android.test.AndroidTestRunnerTest.SampleTestSuiteProvider>;
			}
		}
		/**
		 * Some useful assertions about views.
		 */
		export class ViewAsserts extends java.lang.Object {
			static class: java.lang.Class<android.test.ViewAsserts>;
			/**
			 * Assert that view is on the screen.
			 * @param origin The root view of the screen.
			 * @param view The view.
			 */
			public static assertOnScreen(origin: android.view.View, view: android.view.View): void;
			/**
			 * Assert that view is below the visible screen.
			 * @param origin The root view of the screen.
			 * @param view The view
			 */
			public static assertOffScreenBelow(origin: android.view.View, view: android.view.View): void;
			/**
			 * Assert that view is above the visible screen.
			 * @param origin Te root view of the screen.
			 * @param view The view
			 */
			public static assertOffScreenAbove(origin: android.view.View, view: android.view.View): void;
			/**
			 * Assert that a view has a particular x and y position on the visible screen.
			 * @param origin The root view of the screen.
			 * @param view The view.
			 * @param x The expected x coordinate.
			 * @param y The expected y coordinate.
			 */
			public static assertHasScreenCoordinates(origin: android.view.View, view: android.view.View, x: number, y: number): void;
			/**
			 * Assert that two views are aligned on their baseline, that is that their baselines are on the same y location.
			 * @param first The first view
			 * @param second The second view
			 */
			public static assertBaselineAligned(first: android.view.View, second: android.view.View): void;
			/**
			 * Assert that two views are right aligned, that is that their right edges are on the same x location.
			 * @param first The first view
			 * @param second The second view
			 */
			public static assertRightAligned(first: android.view.View, second: android.view.View): void;
			/**
			 * Assert that two views are right aligned, that is that their right edges are on the same x location, with respect to the specified margin.
			 * @param first The first view
			 * @param second The second view
			 * @param margin The margin between the first view and the second view
			 */
			public static assertRightAligned(first: android.view.View, second: android.view.View, margin: number): void;
			/**
			 * Assert that two views are left aligned, that is that their left edges are on the same x location.
			 * @param first The first view
			 * @param second The second view
			 */
			public static assertLeftAligned(first: android.view.View, second: android.view.View): void;
			/**
			 * Assert that two views are left aligned, that is that their left edges are on the same x location, with respect to the specified margin.
			 * @param first The first view
			 * @param second The second view
			 * @param margin The margin between the first view and the second view
			 */
			public static assertLeftAligned(first: android.view.View, second: android.view.View, margin: number): void;
			/**
			 * Assert that two views are bottom aligned, that is that their bottom edges are on the same y location.
			 * @param first The first view
			 * @param second The second view
			 */
			public static assertBottomAligned(first: android.view.View, second: android.view.View): void;
			/**
			 * Assert that two views are bottom aligned, that is that their bottom edges are on the same y location, with respect to the specified margin.
			 * @param first The first view
			 * @param second The second view
			 * @param margin The margin between the first view and the second view
			 */
			public static assertBottomAligned(first: android.view.View, second: android.view.View, margin: number): void;
			/**
			 * Assert that two views are top aligned, that is that their top edges are on the same y location.
			 * @param first The first view
			 * @param second The second view
			 */
			public static assertTopAligned(first: android.view.View, second: android.view.View): void;
			/**
			 * Assert that two views are top aligned, that is that their top edges are on the same y location, with respect to the specified margin.
			 * @param first The first view
			 * @param second The second view
			 * @param margin The margin between the first view and the second view
			 */
			public static assertTopAligned(first: android.view.View, second: android.view.View, margin: number): void;
			/**
			 * Assert that the <code>test</code> view is horizontally center aligned with respect to the <code>reference</code> view.
			 * @param reference The reference view
			 * @param test The view that should be center aligned with the reference view
			 */
			public static assertHorizontalCenterAligned(reference: android.view.View, test: android.view.View): void;
			/**
			 * Assert that the <code>test</code> view is vertically center aligned with respect to the <code>reference</code> view.
			 * @param reference The reference view
			 * @param test The view that should be center aligned with the reference view
			 */
			public static assertVerticalCenterAligned(reference: android.view.View, test: android.view.View): void;
			/**
			 * Assert the specified group's integrity. The children count should be >= 0 and each child should be non-null.
			 * @param parent The group whose integrity to check
			 */
			public static assertGroupIntegrity(parent: android.view.ViewGroup): void;
			/**
			 * Assert that the specified group contains a specific child once and only once.
			 * @param parent The group
			 * @param child The child that should belong to group
			 */
			public static assertGroupContains(parent: android.view.ViewGroup, child: android.view.View): void;
			/**
			 * Assert that the specified group does not contain a specific child.
			 * @param parent The group
			 * @param child The child that should not belong to group
			 */
			public static assertGroupNotContains(parent: android.view.ViewGroup, child: android.view.View): void;
		}
		/**
		 * A mock context which prevents its users from talking to the rest of the device while stubbing enough methods to satify code that tries to talk to other packages.
		 */
		export class IsolatedContext extends android.content.ContextWrapper {
			constructor(resolver: android.content.ContentResolver, targetContext: android.content.Context);
			static class: java.lang.Class<android.test.IsolatedContext>;
			MockAccountManager: {
	new (): android.test.IsolatedContext.MockAccountManager;
};
			/**
			 * Returns the list of intents that were broadcast since the last call to this method.
			 */
			public getAndClearBroadcastIntents(): java.util.IList<android.content.Intent>;
			public getContentResolver(): android.content.ContentResolver;
			public bindService(service: android.content.Intent, conn: android.content.IServiceConnection, flags: number): boolean;
			public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter): android.content.Intent;
			public unregisterReceiver(receiver: android.content.BroadcastReceiver): void;
			public sendBroadcast(intent: android.content.Intent): void;
			public sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			public checkUriPermission(uri: android.net.Uri, readPermission: string, writePermission: string, pid: number, uid: number, modeFlags: number): number;
			public checkUriPermission(uri: android.net.Uri, pid: number, uid: number, modeFlags: number): number;
			public getSystemService(name: string): any;
			public getFilesDir(): java.io.File;
			sendBroadcast(intent: android.content.Intent, receiverPermission: string): void;
			sendOrderedBroadcast(intent: android.content.Intent, receiverPermission: string, resultReceiver: android.content.BroadcastReceiver, scheduler: android.os.Handler, initialCode: number, initialData: string, initialExtras: android.os.Bundle): void;
			registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter, broadcastPermission: string, scheduler: android.os.Handler): android.content.Intent;
		}
		export module IsolatedContext {
			export class MockAccountManager extends android.accounts.AccountManager {
				static class: java.lang.Class<android.test.IsolatedContext.MockAccountManager>;
				public addOnAccountsUpdatedListener(listener: android.accounts.IOnAccountsUpdateListener, handler: android.os.Handler, updateImmediately: boolean): void;
				public getAccounts(): native.Array<android.accounts.Account>;
				public getAccountsByTypeAndFeatures(type: string, features: native.Array<string>, callback: android.accounts.IAccountManagerCallback<native.Array<android.accounts.Account>>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<native.Array<android.accounts.Account>>;
				public blockingGetAuthToken(account: android.accounts.Account, authTokenType: string, notifyAuthFailure: boolean): string;
			}
			export module MockAccountManager {
				/**
				 * A very simple AccountManagerFuture class that returns what ever was passed in
				 */
				export class MockAccountManagerFuture<T> extends java.lang.Object {
					static class: java.lang.Class<android.test.IsolatedContext.MockAccountManager.MockAccountManagerFuture<any>>;
					public cancel(mayInterruptIfRunning: boolean): boolean;
					public isCancelled(): boolean;
					public isDone(): boolean;
					public getResult(): T;
					public getResult(timeout: number, unit: java.util.concurrent.TimeUnit): T;
				}
			}
		}
		export class AndroidTestRunner {
			constructor();
			static class: java.lang.Class<android.test.AndroidTestRunner>;
			public setTestClassName(testClassName: string, testMethodName: string): void;
			public clearTestListeners(): void;
			setSkipExecution(skip: boolean): void;
			public getTestClassName(): string;
			public runTest(): void;
			public setContext(context: android.content.Context): void;
			public setInstrumentation(instrumentation: android.app.Instrumentation): void;
			/**
			 *  Incorrect spelling, use #setInstrumentation(android.app.Instrumentation) instead.
			 */
			public setInstrumentaiton(instrumentation: android.app.Instrumentation): void;
			protected loadSuiteClass(suiteClassName: string): java.lang.Class<any>;
			public testStarted(testName: string): void;
			public testEnded(testName: string): void;
			protected runFailed(message: string): void;
		}
		/**
		 * This test case class provides a framework for testing a single ContentProvider and for testing your app code with an isolated content provider. Instead of using the system map of providers that is based on the manifests of other applications, the test case creates its own internal map. It then uses this map to resolve providers given an authority. This allows you to inject test providers and to null out providers that you do not want to use.
		 */
		export class ProviderTestCase2<T extends android.content.ContentProvider> extends android.test.AndroidTestCase {
			/**
			 * Constructor.
			 * @param providerClass The class name of the provider under test
			 * @param providerAuthority The provider's authority string
			 */
			constructor(providerClass: java.lang.Class<T>, providerAuthority: string);
			static class: java.lang.Class<android.test.ProviderTestCase2<any>>;
			/**
			 * Returns the content provider created by this class in the #setUp() method.
			 */
			public getProvider(): T;
			/**
			 * Sets up the environment for the test fixture.
			 */
			protected setUp(): void;
			/**
			 * Tears down the environment for the test fixture.
			 */
			protected tearDown(): void;
			/**
			 * Gets the MockContentResolver created by this class during initialization. You must use the methods of this resolver to access the provider under test.
			 */
			public getMockContentResolver(): android.test.mock.MockContentResolver;
			/**
			 * Gets the IsolatedContext created by this class during initialization.
			 */
			public getMockContext(): android.test.IsolatedContext;
			/**
			 * @param targetContext The context to use as the basis of the IsolatedContext
			 * @param filenamePrefix A string that is prepended to file, database, and directory names
			 * @param providerClass The type of the provider being tested
			 * @param authority The authority string to associated with the test provider
			 * @param databaseName The name assigned to the database
			 * @param databaseVersion The version assigned to the database
			 * @param sql A string containing the SQL statements that are needed to create the desired
			 */
			public static newResolverWithContentProviderFromSql<T extends android.content.ContentProvider>(targetContext: android.content.Context, filenamePrefix: string, providerClass: java.lang.Class<T>, authority: string, databaseName: string, databaseVersion: number, sql: string): android.content.ContentResolver;
		}
		export module ProviderTestCase2 {
			export class MockContext2 extends android.test.mock.MockContext {
				static class: java.lang.Class<android.test.ProviderTestCase2.MockContext2>;
				public getResources(): android.content.res.Resources;
				public getDir(name: string, mode: number): java.io.File;
				public getApplicationContext(): android.content.Context;
			}
		}
		/**
		 * Implementors will know how to get a test suite.
		 */
		interface ITestSuiteProvider {
		}
	}
	export module preference {
		export class ListPreferenceTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.preference.ListPreferenceTest>;
			public testListPreferenceSummaryFromEntries(): void;
		}
		/**
		 * Common base class for preferences that have two selectable states, persist a boolean value in SharedPreferences, and may have dependent preferences that are enabled/disabled based on the current state.
		 */
		export class TwoStatePreference extends android.preference.Preference {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.TwoStatePreference>;
			protected onClick(): void;
			/**
			 * Sets the checked state and saves it to the SharedPreferences.
			 * @param checked The checked state.
			 */
			public setChecked(checked: boolean): void;
			/**
			 * Returns the checked state.
			 */
			public isChecked(): boolean;
			public shouldDisableDependents(): boolean;
			/**
			 * Sets the summary to be shown when checked.
			 * @param summary The summary to be shown when checked.
			 */
			public setSummaryOn(summary: string): void;
			/**
			 *  #setSummaryOn(CharSequence)
			 * @param summaryResId The summary as a resource.
			 */
			public setSummaryOn(summaryResId: number): void;
			/**
			 * Returns the summary to be shown when checked.
			 */
			public getSummaryOn(): string;
			/**
			 * Sets the summary to be shown when unchecked.
			 * @param summary The summary to be shown when unchecked.
			 */
			public setSummaryOff(summary: string): void;
			/**
			 *  #setSummaryOff(CharSequence)
			 * @param summaryResId The summary as a resource.
			 */
			public setSummaryOff(summaryResId: number): void;
			/**
			 * Returns the summary to be shown when unchecked.
			 */
			public getSummaryOff(): string;
			/**
			 * Returns whether dependents are disabled when this preference is on (true) or when this preference is off (false).
			 */
			public getDisableDependentsState(): boolean;
			/**
			 * Sets whether dependents are disabled when this preference is on (true) or when this preference is off (false).
			 * @param disableDependentsState The preference state that should disable dependents.
			 */
			public setDisableDependentsState(disableDependentsState: boolean): void;
			protected onGetDefaultValue(a: android.content.res.TypedArray, index: number): any;
			protected onSetInitialValue(restoreValue: boolean, defaultValue: any): void;
			sendAccessibilityEvent(view: android.view.View): void;
			/**
			 * Sync a summary view contained within view's subhierarchy with the correct summary text.
			 * @param view View where a summary should be located
			 */
			syncSummaryView(view: android.view.View): void;
			protected onSaveInstanceState(): android.os.IParcelable;
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
		}
		export module TwoStatePreference {
			export class SavedState extends android.preference.Preference.BaseSavedState {
				constructor(source: android.os.Parcel);
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.preference.TwoStatePreference.SavedState>;
				static class: java.lang.Class<android.preference.TwoStatePreference.SavedState>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * Represents a top-level Preference that is the root of a Preference hierarchy. A PreferenceActivity points to an instance of this class to show the preferences. To instantiate this class, use PreferenceManager#createPreferenceScreen(Context). <ul> This class can appear in two places: <li> When a PreferenceActivity points to this, it is used as the root and is not shown (only the contained preferences are shown). <li> When it appears inside another preference hierarchy, it is shown and serves as the gateway to another screen of preferences (either by showing another screen of preferences as a Dialog or via a Context#startActivity(android.content.Intent) from the Preference#getIntent()). The children of this PreferenceScreen are NOT shown in the screen that this PreferenceScreen is shown in. Instead, a separate screen will be shown when this preference is clicked. </ul>
		 */
		export class PreferenceScreen extends android.preference.PreferenceGroup implements android.widget.AdapterView.IOnItemClickListener, android.content.DialogInterface.IOnDismissListener {
			static class: java.lang.Class<android.preference.PreferenceScreen>;
			/**
			 * Returns an adapter that can be attached to a PreferenceActivity or PreferenceFragment to show the preferences contained in this PreferenceScreen.
			 */
			public getRootAdapter(): android.widget.IListAdapter;
			/**
			 * Creates the root adapter. 
			 */
			protected onCreateRootAdapter(): android.widget.IListAdapter;
			/**
			 * Binds a ListView to the preferences contained in this PreferenceScreen via #getRootAdapter(). It also handles passing list item clicks to the corresponding Preference contained by this PreferenceScreen. 
			 * @param listView The list view to attach to.
			 */
			public bind(listView: android.widget.ListView): void;
			protected onClick(): void;
			public onDismiss(dialog: android.content.IDialogInterface): void;
			/**
			 * Used to get a handle to the dialog. This is useful for cases where we want to manipulate the dialog as we would with any other activity or view.
			 */
			public getDialog(): android.app.Dialog;
			public onItemClick(parent: android.widget.AdapterView<any>, view: android.view.View, position: number, id: number): void;
			protected isOnSameScreenAsChildren(): boolean;
			protected onSaveInstanceState(): android.os.IParcelable;
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
		}
		export module PreferenceScreen {
			export class SavedState extends android.preference.Preference.BaseSavedState {
				constructor(source: android.os.Parcel);
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.preference.PreferenceScreen.SavedState>;
				static class: java.lang.Class<android.preference.PreferenceScreen.SavedState>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * A Preference that provides checkbox widget functionality.
		 */
		export class CheckBoxPreference extends android.preference.TwoStatePreference {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.CheckBoxPreference>;
			protected onBindView(view: android.view.View): void;
		}
		/**
		 * A base class for Preference objects that are dialog-based. These preferences will, when clicked, open a dialog showing the actual preference controls. ref android.R.styleable#DialogPreference_dialogTitle ref android.R.styleable#DialogPreference_dialogMessage ref android.R.styleable#DialogPreference_dialogIcon ref android.R.styleable#DialogPreference_dialogLayout ref android.R.styleable#DialogPreference_positiveButtonText ref android.R.styleable#DialogPreference_negativeButtonText
		 */
		export class DialogPreference extends android.preference.Preference implements android.content.DialogInterface.IOnClickListener, android.content.DialogInterface.IOnDismissListener, android.preference.PreferenceManager.IOnActivityDestroyListener {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.preference.DialogPreference>;
			/**
			 * Sets the title of the dialog. This will be shown on subsequent dialogs. 
			 * @param dialogTitle The title.
			 */
			public setDialogTitle(dialogTitle: string): void;
			/**
			 *  #setDialogTitle(CharSequence)
			 * @param dialogTitleResId The dialog title as a resource.
			 */
			public setDialogTitle(dialogTitleResId: number): void;
			/**
			 * Returns the title to be shown on subsequent dialogs.
			 */
			public getDialogTitle(): string;
			/**
			 * Sets the message of the dialog. This will be shown on subsequent dialogs.
			 * @param dialogMessage The message.
			 */
			public setDialogMessage(dialogMessage: string): void;
			/**
			 *  #setDialogMessage(CharSequence)
			 * @param dialogMessageResId The dialog message as a resource.
			 */
			public setDialogMessage(dialogMessageResId: number): void;
			/**
			 * Returns the message to be shown on subsequent dialogs.
			 */
			public getDialogMessage(): string;
			/**
			 * Sets the icon of the dialog. This will be shown on subsequent dialogs. 
			 * @param dialogIcon The icon, as a {@link Drawable}.
			 */
			public setDialogIcon(dialogIcon: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the icon (resource ID) of the dialog. This will be shown on subsequent dialogs. 
			 * @param dialogIconRes The icon, as a resource ID.
			 */
			public setDialogIcon(dialogIconRes: number): void;
			/**
			 * Returns the icon to be shown on subsequent dialogs.
			 */
			public getDialogIcon(): android.graphics.drawable.Drawable;
			/**
			 * Sets the text of the positive button of the dialog. This will be shown on subsequent dialogs. 
			 * @param positiveButtonText The text of the positive button.
			 */
			public setPositiveButtonText(positiveButtonText: string): void;
			/**
			 *  #setPositiveButtonText(CharSequence)
			 * @param positiveButtonTextResId The positive button text as a resource.
			 */
			public setPositiveButtonText(positiveButtonTextResId: number): void;
			/**
			 * Returns the text of the positive button to be shown on subsequent dialogs. 
			 */
			public getPositiveButtonText(): string;
			/**
			 * Sets the text of the negative button of the dialog. This will be shown on subsequent dialogs. 
			 * @param negativeButtonText The text of the negative button.
			 */
			public setNegativeButtonText(negativeButtonText: string): void;
			/**
			 *  #setNegativeButtonText(CharSequence)
			 * @param negativeButtonTextResId The negative button text as a resource.
			 */
			public setNegativeButtonText(negativeButtonTextResId: number): void;
			/**
			 * Returns the text of the negative button to be shown on subsequent dialogs. 
			 */
			public getNegativeButtonText(): string;
			/**
			 * Sets the layout resource that is inflated as the View to be shown as the content View of subsequent dialogs. 
			 * @param dialogLayoutResId The layout resource ID to be inflated.
			 */
			public setDialogLayoutResource(dialogLayoutResId: number): void;
			/**
			 * Returns the layout resource that is used as the content View for subsequent dialogs. 
			 */
			public getDialogLayoutResource(): number;
			/**
			 * Prepares the dialog builder to be shown when the preference is clicked. Use this to set custom properties on the dialog.
			 */
			protected onPrepareDialogBuilder(builder: android.app.AlertDialog.Builder): void;
			public onClick(): void;
			/**
			 * Shows the dialog associated with this Preference. This is normally initiated automatically on clicking on the preference. Call this method if you need to show the dialog on some other event. 
			 * @param state Optional instance state to restore on the dialog
			 */
			protected showDialog(state: android.os.Bundle): void;
			/**
			 * Creates the content view for the dialog (if a custom content view is required). By default, it inflates the dialog layout resource if it is set. 
			 */
			protected onCreateDialogView(): android.view.View;
			/**
			 * Binds views in the content View of the dialog to data.
			 * @param view The content View of the dialog, if it is custom.
			 */
			protected onBindDialogView(view: android.view.View): void;
			public onClick(dialog: android.content.IDialogInterface, which: number): void;
			public onDismiss(dialog: android.content.IDialogInterface): void;
			/**
			 * Called when the dialog is dismissed and should be used to save data to the SharedPreferences. 
			 * @param positiveResult Whether the positive button was clicked (true), or
			 */
			protected onDialogClosed(positiveResult: boolean): void;
			/**
			 * Gets the dialog that is shown by this preference. 
			 */
			public getDialog(): android.app.Dialog;
			/**
			 * 
			 */
			public onActivityDestroy(): void;
			protected onSaveInstanceState(): android.os.IParcelable;
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
		}
		export module DialogPreference {
			export class SavedState extends android.preference.Preference.BaseSavedState {
				constructor(source: android.os.Parcel);
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.preference.DialogPreference.SavedState>;
				static class: java.lang.Class<android.preference.DialogPreference.SavedState>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * A Preference that provides a two-state toggleable option.
		 */
		export class SwitchPreference extends android.preference.TwoStatePreference {
			/**
			 * Construct a new SwitchPreference with the given style options.
			 * @param context The Context that will style this preference
			 * @param attrs Style attributes that differ from the default
			 * @param defStyle Theme attribute defining the default style options
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * Construct a new SwitchPreference with the given style options.
			 * @param context The Context that will style this preference
			 * @param attrs Style attributes that differ from the default
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Construct a new SwitchPreference with default style options.
			 * @param context The Context that will style this preference
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.SwitchPreference>;
			protected onBindView(view: android.view.View): void;
			/**
			 * Set the text displayed on the switch widget in the on state. This should be a very short string; one word if possible.
			 * @param onText Text to display in the on state
			 */
			public setSwitchTextOn(onText: string): void;
			/**
			 * Set the text displayed on the switch widget in the off state. This should be a very short string; one word if possible.
			 * @param offText Text to display in the off state
			 */
			public setSwitchTextOff(offText: string): void;
			/**
			 * Set the text displayed on the switch widget in the on state. This should be a very short string; one word if possible.
			 * @param resId The text as a string resource ID
			 */
			public setSwitchTextOn(resId: number): void;
			/**
			 * Set the text displayed on the switch widget in the off state. This should be a very short string; one word if possible.
			 * @param resId The text as a string resource ID
			 */
			public setSwitchTextOff(resId: number): void;
			public getSwitchTextOn(): string;
			public getSwitchTextOff(): string;
		}
		export module SwitchPreference {
			export class Listener extends java.lang.Object implements android.widget.CompoundButton.IOnCheckedChangeListener {
				static class: java.lang.Class<android.preference.SwitchPreference.Listener>;
				public onCheckedChanged(buttonView: android.widget.CompoundButton, isChecked: boolean): void;
			}
		}
		/**
		 * The PreferenceInflater is used to inflate preference hierarchies from XML files.
		 */
		export class PreferenceInflater extends java.lang.Object {
			constructor(context: android.content.Context, preferenceManager: android.preference.PreferenceManager);
			static class: java.lang.Class<android.preference.PreferenceInflater>;
			protected onCreateCustomFromTag(parser: org.xmlpull.v1.IXmlPullParser, parentPreference: android.preference.Preference, attrs: android.util.IAttributeSet): boolean;
			protected onMergeRoots(givenRoot: android.preference.PreferenceGroup, attachToGivenRoot: boolean, xmlRoot: android.preference.PreferenceGroup): android.preference.PreferenceGroup;
		}
		/**
		 * Shows a hierarchy of Preference objects as lists. These preferences will automatically save to SharedPreferences as the user interacts with them. To retrieve an instance of SharedPreferences that the preference hierarchy in this fragment will use, call PreferenceManager#getDefaultSharedPreferences(android.content.Context) with a context in the same package as this fragment.
		 */
		export class PreferenceFragment extends android.app.Fragment implements android.preference.PreferenceManager.IOnPreferenceTreeClickListener {
			constructor();
			static class: java.lang.Class<android.preference.PreferenceFragment>;
			public onCreate(savedInstanceState: android.os.Bundle): void;
			public onCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
			public onActivityCreated(savedInstanceState: android.os.Bundle): void;
			public onStart(): void;
			public onStop(): void;
			public onDestroyView(): void;
			public onDestroy(): void;
			public onSaveInstanceState(outState: android.os.Bundle): void;
			public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
			/**
			 * Returns the PreferenceManager used by this fragment.
			 */
			public getPreferenceManager(): android.preference.PreferenceManager;
			/**
			 * Sets the root of the preference hierarchy that this fragment is showing.
			 * @param preferenceScreen The root {@link PreferenceScreen} of the preference hierarchy.
			 */
			public setPreferenceScreen(preferenceScreen: android.preference.PreferenceScreen): void;
			/**
			 * Gets the root of the preference hierarchy that this fragment is showing.
			 */
			public getPreferenceScreen(): android.preference.PreferenceScreen;
			/**
			 * Adds preferences from activities that match the given Intent.
			 * @param intent The {@link Intent} to query activities.
			 */
			public addPreferencesFromIntent(intent: android.content.Intent): void;
			/**
			 * Inflates the given XML resource and adds the preference hierarchy to the current preference hierarchy.
			 * @param preferencesResId The XML resource ID to inflate.
			 */
			public addPreferencesFromResource(preferencesResId: number): void;
			/**
			 * 
			 */
			public onPreferenceTreeClick(preferenceScreen: android.preference.PreferenceScreen, preference: android.preference.Preference): boolean;
			/**
			 * Finds a Preference based on its key.
			 * @param key The key of the preference to retrieve.
			 */
			public findPreference(key: string): android.preference.Preference;
		}
		export module PreferenceFragment {
			/**
			 * Interface that PreferenceFragment's containing activity should implement to be able to process preference items that wish to switch to a new fragment.
			 */
			interface IOnPreferenceStartFragmentCallback {
				/**
				 * Called when the user has clicked on a Preference that has a fragment class name associated with it. The implementation to should instantiate and switch to an instance of the given fragment.
				 */
				onPreferenceStartFragment(caller: android.preference.PreferenceFragment, pref: android.preference.Preference): boolean;
			}
			/**
			 * Interface that PreferenceFragment's containing activity should implement to be able to process preference items that wish to switch to a new fragment.
			 */
			export class OnPreferenceStartFragmentCallback implements android.preference.PreferenceFragment.IOnPreferenceStartFragmentCallback {
				constructor(implementation: android.preference.PreferenceFragment.IOnPreferenceStartFragmentCallback);
				/**
				 * Called when the user has clicked on a Preference that has a fragment class name associated with it. The implementation to should instantiate and switch to an instance of the given fragment.
				 */
				public onPreferenceStartFragment(caller: android.preference.PreferenceFragment, pref: android.preference.Preference): boolean;
			}
		}
		/**
		 * A Preference that displays a list of entries as a dialog.
		 */
		export class MultiSelectListPreference extends android.preference.DialogPreference {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.MultiSelectListPreference>;
			/**
			 * Sets the human-readable entries to be shown in the list. This will be shown in subsequent dialogs.
			 * @param entries The entries.
			 */
			public setEntries(entries: native.Array<string>): void;
			/**
			 *  #setEntries(CharSequence[])
			 * @param entriesResId The entries array as a resource.
			 */
			public setEntries(entriesResId: number): void;
			/**
			 * The list of entries to be shown in the list in subsequent dialogs. 
			 */
			public getEntries(): native.Array<string>;
			/**
			 * The array to find the value to save for a preference when an entry from entries is selected. If a user clicks on the second item in entries, the second item in this array will be saved to the preference. 
			 * @param entryValues The array to be used as values to save for the preference.
			 */
			public setEntryValues(entryValues: native.Array<string>): void;
			/**
			 *  #setEntryValues(CharSequence[])
			 * @param entryValuesResId The entry values array as a resource.
			 */
			public setEntryValues(entryValuesResId: number): void;
			/**
			 * Returns the array of values to be saved for the preference. 
			 */
			public getEntryValues(): native.Array<string>;
			/**
			 * Sets the value of the key. This should contain entries in #getEntryValues(). 
			 * @param values The values to set for the key.
			 */
			public setValues(values: java.util.ISet<string>): void;
			/**
			 * Retrieves the current value of the key.
			 */
			public getValues(): java.util.ISet<string>;
			/**
			 * Returns the index of the given value (in the entry values array). 
			 * @param value The value whose index should be returned.
			 */
			public findIndexOfValue(value: string): number;
			protected onPrepareDialogBuilder(builder: android.app.AlertDialog.Builder): void;
			protected onDialogClosed(positiveResult: boolean): void;
			protected onGetDefaultValue(a: android.content.res.TypedArray, index: number): any;
			protected onSetInitialValue(restoreValue: boolean, defaultValue: any): void;
			protected onSaveInstanceState(): android.os.IParcelable;
		}
		export module MultiSelectListPreference {
			export class SavedState extends android.preference.Preference.BaseSavedState {
				constructor(source: android.os.Parcel);
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.preference.MultiSelectListPreference.SavedState>;
				static class: java.lang.Class<android.preference.MultiSelectListPreference.SavedState>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * Interface definition for a callback to be invoked when this Preference changes with respect to enabling/disabling dependents.
		 */
		export class OnDependencyChangeListener implements android.preference.IOnDependencyChangeListener {
			constructor(implementation: android.preference.IOnDependencyChangeListener);
			/**
			 * Called when this preference has changed in a way that dependents should care to change their state. 
			 * @param dependency disablesDependent Whether the dependent should be disabled.
			 * @param disablesDependent 
			 */
			public onDependencyChanged(dependency: android.preference.Preference, disablesDependent: boolean): void;
		}
		/**
		 * A Preference that displays a list of entries as a dialog.
		 */
		export class ListPreference extends android.preference.DialogPreference {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.ListPreference>;
			/**
			 * Sets the human-readable entries to be shown in the list. This will be shown in subsequent dialogs.
			 * @param entries The entries.
			 */
			public setEntries(entries: native.Array<string>): void;
			/**
			 *  #setEntries(CharSequence[])
			 * @param entriesResId The entries array as a resource.
			 */
			public setEntries(entriesResId: number): void;
			/**
			 * The list of entries to be shown in the list in subsequent dialogs. 
			 */
			public getEntries(): native.Array<string>;
			/**
			 * The array to find the value to save for a preference when an entry from entries is selected. If a user clicks on the second item in entries, the second item in this array will be saved to the preference. 
			 * @param entryValues The array to be used as values to save for the preference.
			 */
			public setEntryValues(entryValues: native.Array<string>): void;
			/**
			 *  #setEntryValues(CharSequence[])
			 * @param entryValuesResId The entry values array as a resource.
			 */
			public setEntryValues(entryValuesResId: number): void;
			/**
			 * Returns the array of values to be saved for the preference. 
			 */
			public getEntryValues(): native.Array<string>;
			/**
			 * Sets the value of the key. This should be one of the entries in #getEntryValues(). 
			 * @param value The value to set for the key.
			 */
			public setValue(value: string): void;
			/**
			 * Returns the summary of this ListPreference. If the summary has a java.lang.String#format String formatting marker in it (i.e. "%s" or "%1$s"), then the current entry value will be substituted in its place.
			 */
			public getSummary(): string;
			/**
			 * Sets the summary for this Preference with a CharSequence. If the summary has a java.lang.String#format String formatting marker in it (i.e. "%s" or "%1$s"), then the current entry value will be substituted in its place when it's retrieved.
			 * @param summary The summary for the preference.
			 */
			public setSummary(summary: string): void;
			/**
			 * Sets the value to the given index from the entry values. 
			 * @param index The index of the value to set.
			 */
			public setValueIndex(index: number): void;
			/**
			 * Returns the value of the key. This should be one of the entries in #getEntryValues(). 
			 */
			public getValue(): string;
			/**
			 * Returns the entry corresponding to the current value. 
			 */
			public getEntry(): string;
			/**
			 * Returns the index of the given value (in the entry values array). 
			 * @param value The value whose index should be returned.
			 */
			public findIndexOfValue(value: string): number;
			protected onPrepareDialogBuilder(builder: android.app.AlertDialog.Builder): void;
			protected onDialogClosed(positiveResult: boolean): void;
			protected onGetDefaultValue(a: android.content.res.TypedArray, index: number): any;
			protected onSetInitialValue(restoreValue: boolean, defaultValue: any): void;
			protected onSaveInstanceState(): android.os.IParcelable;
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
			/**
			 * Sets the summary for this Preference with a resource ID. #setSummary(CharSequence)
			 * @param summaryResId The summary as a resource.
			 */
			setSummary(summaryResId: number): void;
		}
		export module ListPreference {
			export class SavedState extends android.preference.Preference.BaseSavedState {
				constructor(source: android.os.Parcel);
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.preference.ListPreference.SavedState>;
				static class: java.lang.Class<android.preference.ListPreference.SavedState>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * A Preference that allows for string input.
		 */
		export class EditTextPreference extends android.preference.DialogPreference {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.EditTextPreference>;
			/**
			 * Saves the text to the SharedPreferences. 
			 * @param text The text to save
			 */
			public setText(text: string): void;
			/**
			 * Gets the text from the SharedPreferences. 
			 */
			public getText(): string;
			protected onBindDialogView(view: android.view.View): void;
			/**
			 * Adds the EditText widget of this preference to the dialog's view. 
			 * @param dialogView The dialog view.
			 * @param editText 
			 */
			protected onAddEditTextToDialogView(dialogView: android.view.View, editText: android.widget.EditText): void;
			protected onDialogClosed(positiveResult: boolean): void;
			protected onGetDefaultValue(a: android.content.res.TypedArray, index: number): any;
			protected onSetInitialValue(restoreValue: boolean, defaultValue: any): void;
			public shouldDisableDependents(): boolean;
			/**
			 * Returns the EditText widget that will be shown in the dialog. 
			 */
			public getEditText(): android.widget.EditText;
			protected onSaveInstanceState(): android.os.IParcelable;
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
		}
		export module EditTextPreference {
			export class SavedState extends android.preference.Preference.BaseSavedState {
				constructor(source: android.os.Parcel);
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.preference.EditTextPreference.SavedState>;
				static class: java.lang.Class<android.preference.EditTextPreference.SavedState>;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
			}
		}
		/**
		 * Used to help create Preference hierarchies from activities or XML.
		 */
		export class PreferenceManager extends java.lang.Object {
			/**
			 * The Activity meta-data key for its XML preference hierarchy.
			 */
			static METADATA_KEY_PREFERENCES: string;
			static KEY_HAS_SET_DEFAULT_VALUES: string;
			static class: java.lang.Class<android.preference.PreferenceManager>;
			/**
			 * Sets the owning preference fragment
			 */
			setFragment(fragment: android.preference.PreferenceFragment): void;
			/**
			 * Returns the owning preference fragment, if any.
			 */
			getFragment(): android.preference.PreferenceFragment;
			/**
			 * Inflates a preference hierarchy from the preference hierarchies of Activity Activities that match the given Intent. An Activity defines its preference hierarchy with meta-data using the #METADATA_KEY_PREFERENCES key.
			 * @param queryIntent The intent to match activities.
			 * @param rootPreferences Optional existing hierarchy to merge the new
			 */
			inflateFromIntent(queryIntent: android.content.Intent, rootPreferences: android.preference.PreferenceScreen): android.preference.PreferenceScreen;
			public createPreferenceScreen(context: android.content.Context): android.preference.PreferenceScreen;
			/**
			 * Called by a preference to get a unique ID in its hierarchy. 
			 */
			getNextId(): any;
			/**
			 * Returns the current name of the SharedPreferences file that preferences managed by this will use. 
			 */
			public getSharedPreferencesName(): string;
			/**
			 * Sets the name of the SharedPreferences file that preferences managed by this will use. 
			 * @param sharedPreferencesName The name of the SharedPreferences file.
			 */
			public setSharedPreferencesName(sharedPreferencesName: string): void;
			/**
			 * Returns the current mode of the SharedPreferences file that preferences managed by this will use. 
			 */
			public getSharedPreferencesMode(): number;
			/**
			 * Sets the mode of the SharedPreferences file that preferences managed by this will use. 
			 * @param sharedPreferencesMode The mode of the SharedPreferences file.
			 */
			public setSharedPreferencesMode(sharedPreferencesMode: number): void;
			/**
			 * Gets a SharedPreferences instance that preferences managed by this will use. 
			 */
			public getSharedPreferences(): android.content.ISharedPreferences;
			/**
			 * Gets a SharedPreferences instance that points to the default file that is used by the preference framework in the given context. 
			 * @param context The context of the preferences whose values are wanted.
			 */
			public static getDefaultSharedPreferences(context: android.content.Context): android.content.ISharedPreferences;
			/**
			 * Returns the root of the preference hierarchy managed by this class. 
			 */
			getPreferenceScreen(): android.preference.PreferenceScreen;
			/**
			 * Sets the root of the preference hierarchy. 
			 * @param preferenceScreen The root {@link PreferenceScreen} of the preference hierarchy.
			 */
			setPreferences(preferenceScreen: android.preference.PreferenceScreen): boolean;
			/**
			 * Finds a Preference based on its key. 
			 * @param key The key of the preference to retrieve.
			 */
			public findPreference(key: string): android.preference.Preference;
			/**
			 * Sets the default values from an XML preference file by reading the values defined by each Preference item's android:defaultValue attribute. This should be called by the application's main activity.
			 * @param context The context of the shared preferences.
			 * @param resId The resource ID of the preference XML file.
			 * @param readAgain Whether to re-read the default values.
			 */
			public static setDefaultValues(context: android.content.Context, resId: number, readAgain: boolean): void;
			/**
			 * Similar to #setDefaultValues(Context, int, boolean) but allows the client to provide the filename and mode of the shared preferences file.
			 * @param context The context of the shared preferences.
			 * @param sharedPreferencesName A custom name for the shared preferences file.
			 * @param sharedPreferencesMode The file creation mode for the shared preferences file, such
			 * @param resId The resource ID of the preference XML file.
			 * @param readAgain Whether to re-read the default values.
			 */
			public static setDefaultValues(context: android.content.Context, sharedPreferencesName: string, sharedPreferencesMode: number, resId: number, readAgain: boolean): void;
			/**
			 * Returns an editor to use when modifying the shared preferences.
			 */
			getEditor(): android.content.SharedPreferences.IEditor;
			/**
			 * Whether it is the client's responsibility to commit on the #getEditor(). This will return false in cases where the writes should be batched, for example when inflating preferences from XML. 
			 */
			shouldCommit(): boolean;
			/**
			 * Returns the activity that shows the preferences. This is useful for doing managed queries, but in most cases the use of #getContext() is preferred.
			 */
			getActivity(): android.app.Activity;
			/**
			 * Returns the context. This is preferred over #getActivity() when possible. 
			 */
			getContext(): android.content.Context;
			/**
			 * Registers a listener. OnActivityResultListener
			 */
			registerOnActivityResultListener(listener: android.preference.PreferenceManager.IOnActivityResultListener): void;
			/**
			 * Unregisters a listener. OnActivityResultListener
			 */
			unregisterOnActivityResultListener(listener: android.preference.PreferenceManager.IOnActivityResultListener): void;
			/**
			 * Called by the PreferenceManager to dispatch a subactivity result.
			 */
			dispatchActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
			/**
			 * Registers a listener. OnActivityStopListener
			 */
			registerOnActivityStopListener(listener: android.preference.PreferenceManager.IOnActivityStopListener): void;
			/**
			 * Unregisters a listener. OnActivityStopListener
			 */
			unregisterOnActivityStopListener(listener: android.preference.PreferenceManager.IOnActivityStopListener): void;
			/**
			 * Called by the PreferenceManager to dispatch the activity stop event.
			 */
			dispatchActivityStop(): void;
			/**
			 * Registers a listener. OnActivityDestroyListener
			 */
			registerOnActivityDestroyListener(listener: android.preference.PreferenceManager.IOnActivityDestroyListener): void;
			/**
			 * Unregisters a listener. OnActivityDestroyListener
			 */
			unregisterOnActivityDestroyListener(listener: android.preference.PreferenceManager.IOnActivityDestroyListener): void;
			/**
			 * Called by the PreferenceManager to dispatch the activity destroy event.
			 */
			dispatchActivityDestroy(): void;
			/**
			 * Returns a request code that is unique for the activity. Each subsequent call to this method should return another unique request code. 
			 */
			getNextRequestCode(): number;
			addPreferencesScreen(screen: android.content.IDialogInterface): void;
			removePreferencesScreen(screen: android.content.IDialogInterface): void;
			/**
			 * Called by PreferenceActivity to dispatch the new Intent event. 
			 * @param intent The new Intent.
			 */
			dispatchNewIntent(intent: android.content.Intent): void;
			/**
			 * Sets the callback to be invoked when a Preference in the hierarchy rooted at this PreferenceManager is clicked. 
			 * @param listener The callback to be invoked.
			 */
			setOnPreferenceTreeClickListener(listener: android.preference.PreferenceManager.IOnPreferenceTreeClickListener): void;
			getOnPreferenceTreeClickListener(): android.preference.PreferenceManager.IOnPreferenceTreeClickListener;
		}
		export module PreferenceManager {
			/**
			 * Interface definition for a class that will be called when the container's activity is destroyed.
			 */
			interface IOnActivityDestroyListener {
				/**
				 * See Activity's onDestroy.
				 */
				onActivityDestroy(): void;
			}
			/**
			 * Interface definition for a class that will be called when the container's activity is stopped.
			 */
			export class OnActivityStopListener implements android.preference.PreferenceManager.IOnActivityStopListener {
				constructor(implementation: android.preference.PreferenceManager.IOnActivityStopListener);
				/**
				 * See Activity's onStop.
				 */
				public onActivityStop(): void;
			}
			/**
			 * Interface definition for a class that will be called when the container's activity receives an activity result.
			 */
			export class OnActivityResultListener implements android.preference.PreferenceManager.IOnActivityResultListener {
				constructor(implementation: android.preference.PreferenceManager.IOnActivityResultListener);
				/**
				 * See Activity's onActivityResult. 
				 */
				public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): boolean;
			}
			/**
			 * Interface definition for a class that will be called when the container's activity receives an activity result.
			 */
			interface IOnActivityResultListener {
				/**
				 * See Activity's onActivityResult. 
				 */
				onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): boolean;
			}
			/**
			 * Interface definition for a class that will be called when the container's activity is stopped.
			 */
			interface IOnActivityStopListener {
				/**
				 * See Activity's onStop.
				 */
				onActivityStop(): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a Preference in the hierarchy rooted at this PreferenceScreen is clicked.
			 */
			interface IOnPreferenceTreeClickListener {
				/**
				 * Called when a preference in the tree rooted at this PreferenceScreen has been clicked. 
				 * @param preferenceScreen The {@link PreferenceScreen} that the
				 * @param preference The preference that was clicked.
				 */
				onPreferenceTreeClick(preferenceScreen: android.preference.PreferenceScreen, preference: android.preference.Preference): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when a Preference in the hierarchy rooted at this PreferenceScreen is clicked.
			 */
			export class OnPreferenceTreeClickListener implements android.preference.PreferenceManager.IOnPreferenceTreeClickListener {
				constructor(implementation: android.preference.PreferenceManager.IOnPreferenceTreeClickListener);
				/**
				 * Called when a preference in the tree rooted at this PreferenceScreen has been clicked. 
				 * @param preferenceScreen The {@link PreferenceScreen} that the
				 * @param preference The preference that was clicked.
				 */
				public onPreferenceTreeClick(preferenceScreen: android.preference.PreferenceScreen, preference: android.preference.Preference): boolean;
			}
			/**
			 * Interface definition for a class that will be called when the container's activity is destroyed.
			 */
			export class OnActivityDestroyListener implements android.preference.PreferenceManager.IOnActivityDestroyListener {
				constructor(implementation: android.preference.PreferenceManager.IOnActivityDestroyListener);
				/**
				 * See Activity's onDestroy.
				 */
				public onActivityDestroy(): void;
			}
		}
		/**
		 * An adapter that returns the Preference contained in this group. In most cases, this adapter should be the base class for any custom adapters from Preference#getAdapter().
		 */
		export class PreferenceGroupAdapter extends android.widget.BaseAdapter implements android.preference.Preference.IOnPreferenceChangeInternalListener {
			constructor(preferenceGroup: android.preference.PreferenceGroup);
			static class: java.lang.Class<android.preference.PreferenceGroupAdapter>;
			public getCount(): number;
			public getItem(position: number): android.preference.Preference;
			public getItemId(position: number): any;
			public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			public isEnabled(position: number): boolean;
			public areAllItemsEnabled(): boolean;
			public onPreferenceChange(preference: android.preference.Preference): void;
			public onPreferenceHierarchyChange(preference: android.preference.Preference): void;
			public hasStableIds(): boolean;
			public getItemViewType(position: number): number;
			public getViewTypeCount(): number;
		}
		export module PreferenceGroupAdapter {
			export class PreferenceLayout extends java.lang.Object {
				static class: java.lang.Class<android.preference.PreferenceGroupAdapter.PreferenceLayout>;
				public compareTo(other: android.preference.PreferenceGroupAdapter.PreferenceLayout): number;
			}
		}
		/**
		 * Interface definition for a callback to be invoked when this Preference changes with respect to enabling/disabling dependents.
		 */
		interface IOnDependencyChangeListener {
			/**
			 * Called when this preference has changed in a way that dependents should care to change their state. 
			 * @param dependency disablesDependent Whether the dependent should be disabled.
			 * @param disablesDependent 
			 */
			onDependencyChanged(dependency: android.preference.Preference, disablesDependent: boolean): void;
		}
		/**
		 * A Preference that allows the user to choose a ringtone from those on the device. The chosen ringtone's URI will be persisted as a string.
		 */
		export class RingtonePreference extends android.preference.Preference implements android.preference.PreferenceManager.IOnActivityResultListener {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.RingtonePreference>;
			/**
			 * Returns the sound type(s) that are shown in the picker. 
			 */
			public getRingtoneType(): number;
			/**
			 * Sets the sound type(s) that are shown in the picker. 
			 * @param type The sound type(s) that are shown in the picker.
			 */
			public setRingtoneType(type: number): void;
			/**
			 * Returns whether to a show an item for the default sound/ringtone. 
			 */
			public getShowDefault(): boolean;
			/**
			 * Sets whether to show an item for the default sound/ringtone. The default to use will be deduced from the sound type(s) being shown. 
			 * @param showDefault Whether to show the default or not.
			 */
			public setShowDefault(showDefault: boolean): void;
			/**
			 * Returns whether to a show an item for 'Silent'. 
			 */
			public getShowSilent(): boolean;
			/**
			 * Sets whether to show an item for 'Silent'. 
			 * @param showSilent Whether to show 'Silent'.
			 */
			public setShowSilent(showSilent: boolean): void;
			protected onClick(): void;
			/**
			 * Prepares the intent to launch the ringtone picker. This can be modified to adjust the parameters of the ringtone picker. 
			 * @param ringtonePickerIntent The ringtone picker intent that can be
			 */
			protected onPrepareRingtonePickerIntent(ringtonePickerIntent: android.content.Intent): void;
			/**
			 * Called when a ringtone is chosen.
			 * @param ringtoneUri The chosen ringtone's {@link Uri}. Can be null.
			 */
			protected onSaveRingtone(ringtoneUri: android.net.Uri): void;
			/**
			 * Called when the chooser is about to be shown and the current ringtone should be marked. Can return null to not mark any ringtone.
			 */
			protected onRestoreRingtone(): android.net.Uri;
			protected onGetDefaultValue(a: android.content.res.TypedArray, index: number): any;
			protected onSetInitialValue(restorePersistedValue: boolean, defaultValueObj: any): void;
			protected onAttachedToHierarchy(preferenceManager: android.preference.PreferenceManager): void;
			public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): boolean;
		}
		/**
		 * Used to group Preference objects and provide a disabled title above the group. <div class="special reference"> <h3>Developer Guides</h3>
		 */
		export class PreferenceCategory extends android.preference.PreferenceGroup {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.preference.PreferenceCategory>;
			protected onPrepareAddPreference(preference: android.preference.Preference): boolean;
			public isEnabled(): boolean;
		}
		/**
		 * Represents the basic Preference UI building block displayed by a PreferenceActivity in the form of a ListView. This class provides the View to be displayed in the activity and associates with a SharedPreferences to store/retrieve the preference data.
		 */
		export class Preference extends java.lang.Object implements android.preference.IOnDependencyChangeListener {
			/**
			 * Perform inflation from XML and apply a class-specific base style. This constructor of Preference allows subclasses to use their own base style when they are inflating. For example, a CheckBoxPreference constructor calls this version of the super class constructor and supplies android.R.attr.checkBoxPreferenceStyle for <var>defStyle</var>. This allows the theme's checkbox preference style to modify all of the base preference attributes as well as the CheckBoxPreference class's attributes. 
			 * @param context The Context this is associated with, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the preference.
			 * @param defStyle The default style to apply to this preference. If 0, no style
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			/**
			 * Constructor that is called when inflating a Preference from XML. This is called when a Preference is being constructed from an XML file, supplying attributes that were specified in the XML file. This version uses a default style of 0, so the only attribute values applied are those in the Context's Theme and the given AttributeSet. 
			 * @param context The Context this is associated with, through which it can
			 * @param attrs The attributes of the XML tag that is inflating the
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Constructor to create a Preference. 
			 * @param context The Context in which to store Preference values.
			 */
			constructor(context: android.content.Context);
			/**
			 * Specify for #setOrder(int) if a specific order is not required.
			 */
			static DEFAULT_ORDER: number;
			static class: java.lang.Class<android.preference.Preference>;
			/**
			 * Called when a Preference is being inflated and the default value attribute needs to be read. Since different Preference types have different value types, the subclass should get and return the default value which will be its value type.
			 * @param a The set of attributes.
			 * @param index The index of the default value attribute.
			 */
			protected onGetDefaultValue(a: android.content.res.TypedArray, index: number): any;
			/**
			 * Sets an Intent to be used for Context#startActivity(Intent) when this Preference is clicked. 
			 * @param intent The intent associated with this Preference.
			 */
			public setIntent(intent: android.content.Intent): void;
			/**
			 * Return the Intent associated with this Preference. 
			 */
			public getIntent(): android.content.Intent;
			/**
			 * Sets the class name of a fragment to be shown when this Preference is clicked.
			 * @param fragment The class name of the fragment associated with this Preference.
			 */
			public setFragment(fragment: string): void;
			/**
			 * Return the fragment class name associated with this Preference.
			 */
			public getFragment(): string;
			/**
			 * Return the extras Bundle object associated with this preference, creating a new Bundle if there currently isn't one. You can use this to get and set individual extra key/value pairs.
			 */
			public getExtras(): android.os.Bundle;
			/**
			 * Return the extras Bundle object associated with this preference, returning null if there is not currently one.
			 */
			public peekExtras(): android.os.Bundle;
			/**
			 * Sets the layout resource that is inflated as the View to be shown for this Preference. In most cases, the default layout is sufficient for custom Preference objects and only the widget layout needs to be changed.
			 * @param layoutResId The layout resource ID to be inflated and returned as
			 */
			public setLayoutResource(layoutResId: number): void;
			/**
			 * Gets the layout resource that will be shown as the View for this Preference. 
			 */
			public getLayoutResource(): number;
			/**
			 * Sets The layout for the controllable widget portion of this Preference. This is inflated into the main layout. For example, a CheckBoxPreference would specify a custom layout (consisting of just the CheckBox) here, instead of creating its own main layout. 
			 * @param widgetLayoutResId The layout resource ID to be inflated into the
			 */
			public setWidgetLayoutResource(widgetLayoutResId: number): void;
			/**
			 * Gets the layout resource for the controllable widget portion of this Preference. 
			 */
			public getWidgetLayoutResource(): number;
			/**
			 * Gets the View that will be shown in the PreferenceActivity. 
			 * @param convertView The old View to reuse, if possible. Note: You should
			 * @param parent The parent that this View will eventually be attached to.
			 */
			public getView(convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			/**
			 * Creates the View to be shown for this Preference in the PreferenceActivity. The default behavior is to inflate the main layout of this Preference (see #setLayoutResource(int). If changing this behavior, please specify a ViewGroup with ID android.R.id#widget_frame.
			 * @param parent The parent that this View will eventually be attached to.
			 */
			protected onCreateView(parent: android.view.ViewGroup): android.view.View;
			/**
			 * Binds the created View to the data for this Preference.
			 * @param view The View that shows this Preference.
			 */
			protected onBindView(view: android.view.View): void;
			/**
			 * Sets the order of this Preference with respect to other Preference objects on the same level. If this is not specified, the default behavior is to sort alphabetically. The PreferenceGroup#setOrderingAsAdded(boolean) can be used to order Preference objects based on the order they appear in the XML. 
			 * @param order The order for this Preference. A lower value will be shown
			 */
			public setOrder(order: number): void;
			/**
			 * Gets the order of this Preference with respect to other Preference objects on the same level. 
			 */
			public getOrder(): number;
			/**
			 * Sets the title for this Preference with a CharSequence. This title will be placed into the ID android.R.id#title within the View created by #onCreateView(ViewGroup). 
			 * @param title The title for this Preference.
			 */
			public setTitle(title: string): void;
			/**
			 * Sets the title for this Preference with a resource ID. #setTitle(CharSequence)
			 * @param titleResId The title as a resource ID.
			 */
			public setTitle(titleResId: number): void;
			/**
			 * Returns the title resource ID of this Preference. If the title did not come from a resource, 0 is returned.
			 */
			public getTitleRes(): number;
			/**
			 * Returns the title of this Preference. 
			 */
			public getTitle(): string;
			/**
			 * Sets the icon for this Preference with a Drawable. This icon will be placed into the ID android.R.id#icon within the View created by #onCreateView(ViewGroup). 
			 * @param icon The optional icon for this Preference.
			 */
			public setIcon(icon: android.graphics.drawable.Drawable): void;
			/**
			 * Sets the icon for this Preference with a resource ID. #setIcon(Drawable)
			 * @param iconResId The icon as a resource ID.
			 */
			public setIcon(iconResId: number): void;
			/**
			 * Returns the icon of this Preference. 
			 */
			public getIcon(): android.graphics.drawable.Drawable;
			/**
			 * Returns the summary of this Preference. 
			 */
			public getSummary(): string;
			/**
			 * Sets the summary for this Preference with a CharSequence. 
			 * @param summary The summary for the preference.
			 */
			public setSummary(summary: string): void;
			/**
			 * Sets the summary for this Preference with a resource ID. #setSummary(CharSequence)
			 * @param summaryResId The summary as a resource.
			 */
			public setSummary(summaryResId: number): void;
			/**
			 * Sets whether this Preference is enabled. If disabled, it will not handle clicks. 
			 * @param enabled Set true to enable it.
			 */
			public setEnabled(enabled: boolean): void;
			/**
			 * Checks whether this Preference should be enabled in the list. 
			 */
			public isEnabled(): boolean;
			/**
			 * Sets whether this Preference is selectable. 
			 * @param selectable Set true to make it selectable.
			 */
			public setSelectable(selectable: boolean): void;
			/**
			 * Checks whether this Preference should be selectable in the list. 
			 */
			public isSelectable(): boolean;
			/**
			 * Sets whether this Preference should disable its view when it gets disabled.
			 * @param shouldDisableView Set true if this preference should disable its view
			 */
			public setShouldDisableView(shouldDisableView: boolean): void;
			/**
			 * Checks whether this Preference should disable its view when it's action is disabled. #setShouldDisableView(boolean)
			 */
			public getShouldDisableView(): boolean;
			/**
			 * Returns a unique ID for this Preference. This ID should be unique across all Preference objects in a hierarchy. 
			 */
			getId(): any;
			/**
			 * Processes a click on the preference. This includes saving the value to the SharedPreferences. However, the overridden method should call #callChangeListener(Object) to make sure the client wants to update the preference's state with the new value.
			 */
			protected onClick(): void;
			/**
			 * Sets the key for this Preference, which is used as a key to the SharedPreferences. This should be unique for the package. 
			 * @param key The key for the preference.
			 */
			public setKey(key: string): void;
			/**
			 * Gets the key for this Preference, which is also the key used for storing values into SharedPreferences. 
			 */
			public getKey(): string;
			/**
			 * Checks whether the key is present, and if it isn't throws an exception. This should be called by subclasses that store preferences in the SharedPreferences. IllegalStateException If there is no key assigned.
			 */
			requireKey(): void;
			/**
			 * Checks whether this Preference has a valid key. 
			 */
			public hasKey(): boolean;
			/**
			 * Checks whether this Preference is persistent. If it is, it stores its value(s) into the persistent SharedPreferences storage. 
			 */
			public isPersistent(): boolean;
			/**
			 * Checks whether, at the given time this method is called, this Preference should store/restore its value(s) into the SharedPreferences. This, at minimum, checks whether this Preference is persistent and it currently has a key. Before you save/restore from the SharedPreferences, check this first. 
			 */
			protected shouldPersist(): boolean;
			/**
			 * Sets whether this Preference is persistent. When persistent, it stores its value(s) into the persistent SharedPreferences storage. 
			 * @param persistent Set true if it should store its value(s) into the {@link SharedPreferences}.
			 */
			public setPersistent(persistent: boolean): void;
			/**
			 * Call this method after the user changes the preference, but before the internal state is set. This allows the client to ignore the user value. 
			 * @param newValue The new value of this Preference.
			 */
			protected callChangeListener(newValue: any): boolean;
			/**
			 * Sets the callback to be invoked when this Preference is changed by the user (but before the internal state has been updated). 
			 * @param onPreferenceChangeListener The callback to be invoked.
			 */
			public setOnPreferenceChangeListener(onPreferenceChangeListener: android.preference.Preference.IOnPreferenceChangeListener): void;
			/**
			 * Returns the callback to be invoked when this Preference is changed by the user (but before the internal state has been updated). 
			 */
			public getOnPreferenceChangeListener(): android.preference.Preference.IOnPreferenceChangeListener;
			/**
			 * Sets the callback to be invoked when this Preference is clicked. 
			 * @param onPreferenceClickListener The callback to be invoked.
			 */
			public setOnPreferenceClickListener(onPreferenceClickListener: android.preference.Preference.IOnPreferenceClickListener): void;
			/**
			 * Returns the callback to be invoked when this Preference is clicked. 
			 */
			public getOnPreferenceClickListener(): android.preference.Preference.IOnPreferenceClickListener;
			/**
			 * Called when a click should be performed. 
			 * @param preferenceScreen A {@link PreferenceScreen} whose hierarchy click
			 */
			performClick(preferenceScreen: android.preference.PreferenceScreen): void;
			/**
			 * Returns the android.content.Context of this Preference. Each Preference in a Preference hierarchy can be from different Context (for example, if multiple activities provide preferences into a single PreferenceActivity). This Context will be used to save the Preference values. 
			 */
			public getContext(): android.content.Context;
			/**
			 * Returns the SharedPreferences where this Preference can read its value(s). Usually, it's easier to use one of the helper read methods: #getPersistedBoolean(boolean), #getPersistedFloat(float), #getPersistedInt(int), #getPersistedLong(long), #getPersistedString(String). To save values, see #getEditor().
			 */
			public getSharedPreferences(): android.content.ISharedPreferences;
			/**
			 * Returns an SharedPreferences.Editor where this Preference can save its value(s). Usually it's easier to use one of the helper save methods: #persistBoolean(boolean), #persistFloat(float), #persistInt(int), #persistLong(long), #persistString(String). To read values, see #getSharedPreferences(). If #shouldCommit() returns true, it is this Preference's responsibility to commit.
			 */
			public getEditor(): android.content.SharedPreferences.IEditor;
			/**
			 * Returns whether the Preference should commit its saved value(s) in #getEditor(). This may return false in situations where batch committing is being done (by the manager) to improve performance. 
			 */
			public shouldCommit(): boolean;
			/**
			 * Compares Preference objects based on order (if set), otherwise alphabetically on the titles. 
			 * @param another The Preference to compare to this one.
			 */
			public compareTo(another: android.preference.Preference): number;
			/**
			 * Sets the internal change listener. 
			 * @param listener The listener.
			 */
			setOnPreferenceChangeInternalListener(listener: android.preference.Preference.IOnPreferenceChangeInternalListener): void;
			/**
			 * Should be called when the data of this Preference has changed.
			 */
			protected notifyChanged(): void;
			/**
			 * Should be called when a Preference has been added/removed from this group, or the ordering should be re-evaluated.
			 */
			protected notifyHierarchyChanged(): void;
			/**
			 * Gets the PreferenceManager that manages this Preference object's tree. 
			 */
			public getPreferenceManager(): android.preference.PreferenceManager;
			/**
			 * Called when this Preference has been attached to a Preference hierarchy. Make sure to call the super implementation. 
			 * @param preferenceManager The PreferenceManager of the hierarchy.
			 */
			protected onAttachedToHierarchy(preferenceManager: android.preference.PreferenceManager): void;
			/**
			 * Called when the Preference hierarchy has been attached to the PreferenceActivity. This can also be called when this Preference has been attached to a group that was already attached to the PreferenceActivity.
			 */
			protected onAttachedToActivity(): void;
			/**
			 * Finds a Preference in this hierarchy (the whole thing, even above/below your PreferenceScreen screen break) with the given key.
			 * @param key The key of the Preference to find.
			 */
			protected findPreferenceInHierarchy(key: string): android.preference.Preference;
			/**
			 * Notifies any listening dependents of a change that affects the dependency. 
			 * @param disableDependents Whether this Preference should disable
			 */
			public notifyDependencyChange(disableDependents: boolean): void;
			/**
			 * Called when the dependency changes. 
			 * @param dependency The Preference that this Preference depends on.
			 * @param disableDependent Set true to disable this Preference.
			 */
			public onDependencyChanged(dependency: android.preference.Preference, disableDependent: boolean): void;
			/**
			 * Checks whether this preference's dependents should currently be disabled. 
			 */
			public shouldDisableDependents(): boolean;
			/**
			 * Sets the key of a Preference that this Preference will depend on. If that Preference is not set or is off, this Preference will be disabled. 
			 * @param dependencyKey The key of the Preference that this depends on.
			 */
			public setDependency(dependencyKey: string): void;
			/**
			 * Returns the key of the dependency on this Preference. 
			 */
			public getDependency(): string;
			/**
			 * Called when this Preference is being removed from the hierarchy. You should remove any references to this Preference that you know about. Make sure to call through to the superclass implementation.
			 */
			protected onPrepareForRemoval(): void;
			/**
			 * Sets the default value for this Preference, which will be set either if persistence is off or persistence is on and the preference is not found in the persistent storage. 
			 * @param defaultValue The default value.
			 */
			public setDefaultValue(defaultValue: any): void;
			/**
			 * Implement this to set the initial value of the Preference.
			 * @param restorePersistedValue True to restore the persisted value;
			 * @param defaultValue The default value for this Preference. Only use this
			 */
			protected onSetInitialValue(restorePersistedValue: boolean, defaultValue: any): void;
			/**
			 * Attempts to persist a String to the android.content.SharedPreferences.
			 * @param value The value to persist.
			 */
			protected persistString(value: string): boolean;
			/**
			 * Attempts to get a persisted String from the android.content.SharedPreferences.
			 * @param defaultReturnValue The default value to return if either the
			 */
			protected getPersistedString(defaultReturnValue: string): string;
			/**
			 * Attempts to persist an int to the android.content.SharedPreferences. 
			 * @param value The value to persist.
			 */
			protected persistInt(value: number): boolean;
			/**
			 * Attempts to get a persisted int from the android.content.SharedPreferences. 
			 * @param defaultReturnValue The default value to return if either this
			 */
			protected getPersistedInt(defaultReturnValue: number): number;
			/**
			 * Attempts to persist a float to the android.content.SharedPreferences. 
			 * @param value The value to persist.
			 */
			protected persistFloat(value: number): boolean;
			/**
			 * Attempts to get a persisted float from the android.content.SharedPreferences. 
			 * @param defaultReturnValue The default value to return if either this
			 */
			protected getPersistedFloat(defaultReturnValue: number): number;
			/**
			 * Attempts to persist a long to the android.content.SharedPreferences. 
			 * @param value The value to persist.
			 */
			protected persistLong(value: number): boolean;
			/**
			 * Attempts to get a persisted long from the android.content.SharedPreferences. 
			 * @param defaultReturnValue The default value to return if either this
			 */
			protected getPersistedLong(defaultReturnValue: number): any;
			/**
			 * Attempts to persist a boolean to the android.content.SharedPreferences. 
			 * @param value The value to persist.
			 */
			protected persistBoolean(value: boolean): boolean;
			/**
			 * Attempts to get a persisted boolean from the android.content.SharedPreferences. 
			 * @param defaultReturnValue The default value to return if either this
			 */
			protected getPersistedBoolean(defaultReturnValue: boolean): boolean;
			hasSpecifiedLayout(): boolean;
			public toString(): string;
			/**
			 * Returns the text that will be used to filter this Preference depending on user input.
			 */
			getFilterableStringBuilder(): java.lang.StringBuilder;
			/**
			 * Store this Preference hierarchy's frozen state into the given container. 
			 * @param container The Bundle in which to save the instance of this Preference.
			 */
			public saveHierarchyState(container: android.os.Bundle): void;
			/**
			 * Called by #saveHierarchyState to store the instance for this Preference and its children. May be overridden to modify how the save happens for children. For example, some Preference objects may want to not store an instance for their children. 
			 * @param container The Bundle in which to save the instance of this Preference.
			 */
			dispatchSaveInstanceState(container: android.os.Bundle): void;
			/**
			 * Hook allowing a Preference to generate a representation of its internal state that can later be used to create a new instance with that same state. This state should only contain information that is not persistent or can be reconstructed later. 
			 */
			protected onSaveInstanceState(): android.os.IParcelable;
			/**
			 * Restore this Preference hierarchy's previously saved state from the given container. 
			 * @param container The Bundle that holds the previously saved state.
			 */
			public restoreHierarchyState(container: android.os.Bundle): void;
			/**
			 * Called by #restoreHierarchyState to retrieve the saved state for this Preference and its children. May be overridden to modify how restoring happens to the children of a Preference. For example, some Preference objects may not want to save state for their children. 
			 * @param container The Bundle that holds the previously saved state.
			 */
			dispatchRestoreInstanceState(container: android.os.Bundle): void;
			/**
			 * Hook allowing a Preference to re-apply a representation of its internal state that had previously been generated by #onSaveInstanceState. This function will never be called with a null state. 
			 * @param state The saved state that had previously been returned by
			 */
			protected onRestoreInstanceState(state: android.os.IParcelable): void;
		}
		export module Preference {
			/**
			 * Interface definition for a callback to be invoked when a Preference is clicked.
			 */
			export class OnPreferenceClickListener implements android.preference.Preference.IOnPreferenceClickListener {
				constructor(implementation: android.preference.Preference.IOnPreferenceClickListener);
				/**
				 * Called when a Preference has been clicked.
				 * @param preference The Preference that was clicked.
				 */
				public onPreferenceClick(preference: android.preference.Preference): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when this Preference is changed or, if this is a group, there is an addition/removal of Preference(s). This is used internally.
			 */
			export class OnPreferenceChangeInternalListener implements android.preference.Preference.IOnPreferenceChangeInternalListener {
				constructor(implementation: android.preference.Preference.IOnPreferenceChangeInternalListener);
				/**
				 * Called when this Preference has changed. 
				 * @param preference This preference.
				 */
				public onPreferenceChange(preference: android.preference.Preference): void;
				/**
				 * Called when this group has added/removed Preference(s). 
				 * @param preference This Preference.
				 */
				public onPreferenceHierarchyChange(preference: android.preference.Preference): void;
			}
			/**
			 * Interface definition for a callback to be invoked when a Preference is clicked.
			 */
			interface IOnPreferenceClickListener {
				/**
				 * Called when a Preference has been clicked.
				 * @param preference The Preference that was clicked.
				 */
				onPreferenceClick(preference: android.preference.Preference): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when the value of this Preference has been changed by the user and is about to be set and/or persisted. This gives the client a chance to prevent setting and/or persisting the value.
			 */
			interface IOnPreferenceChangeListener {
				/**
				 * Called when a Preference has been changed by the user. This is called before the state of the Preference is about to be updated and before the state is persisted. 
				 * @param preference The changed Preference.
				 * @param newValue The new value of the Preference.
				 */
				onPreferenceChange(preference: android.preference.Preference, newValue: any): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when the value of this Preference has been changed by the user and is about to be set and/or persisted. This gives the client a chance to prevent setting and/or persisting the value.
			 */
			export class OnPreferenceChangeListener implements android.preference.Preference.IOnPreferenceChangeListener {
				constructor(implementation: android.preference.Preference.IOnPreferenceChangeListener);
				/**
				 * Called when a Preference has been changed by the user. This is called before the state of the Preference is about to be updated and before the state is persisted. 
				 * @param preference The changed Preference.
				 * @param newValue The new value of the Preference.
				 */
				public onPreferenceChange(preference: android.preference.Preference, newValue: any): boolean;
			}
			/**
			 * Interface definition for a callback to be invoked when this Preference is changed or, if this is a group, there is an addition/removal of Preference(s). This is used internally.
			 */
			interface IOnPreferenceChangeInternalListener {
				/**
				 * Called when this Preference has changed. 
				 * @param preference This preference.
				 */
				onPreferenceChange(preference: android.preference.Preference): void;
				/**
				 * Called when this group has added/removed Preference(s). 
				 * @param preference This Preference.
				 */
				onPreferenceHierarchyChange(preference: android.preference.Preference): void;
			}
			/**
			 * A base class for managing the instance state of a Preference.
			 */
			export class BaseSavedState extends android.view.AbsSavedState {
				constructor(source: android.os.Parcel);
				constructor(superState: android.os.IParcelable);
				static CREATOR: android.os.Parcelable.ICreator<android.preference.Preference.BaseSavedState>;
				static class: java.lang.Class<android.preference.Preference.BaseSavedState>;
			}
		}
		/**
		 * A container for multiple Preference objects. It is a base class for Preference objects that are parents, such as PreferenceCategory and PreferenceScreen. <div class="special reference"> <h3>Developer Guides</h3>
		 */
		export class PreferenceGroup extends android.preference.Preference {
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * Whether to order the Preference children of this group as they are added. If this is false, the ordering will follow each Preference order and default to alphabetic for those without an order.
			 * @param orderingAsAdded Whether to order according to the order added.
			 */
			public setOrderingAsAdded(orderingAsAdded: boolean): void;
			/**
			 * Whether this group is ordering preferences in the order they are added. 
			 */
			public isOrderingAsAdded(): boolean;
			/**
			 * Called by the inflater to add an item to this group.
			 */
			public addItemFromInflater(preference: android.preference.Preference): void;
			/**
			 * Returns the number of children Preferences.
			 */
			public getPreferenceCount(): number;
			/**
			 * Returns the Preference at a particular index. 
			 * @param index The index of the {@link Preference} to retrieve.
			 */
			public getPreference(index: number): android.preference.Preference;
			/**
			 * Adds a Preference at the correct position based on the preference's order. 
			 * @param preference The preference to add.
			 */
			public addPreference(preference: android.preference.Preference): boolean;
			/**
			 * Removes a Preference from this group. 
			 * @param preference The preference to remove.
			 */
			public removePreference(preference: android.preference.Preference): boolean;
			/**
			 * Removes all Preference Preferences from this group.
			 */
			public removeAll(): void;
			/**
			 * Prepares a Preference to be added to the group. 
			 * @param preference The preference to add.
			 */
			protected onPrepareAddPreference(preference: android.preference.Preference): boolean;
			/**
			 * Finds a Preference based on its key. If two Preference share the same key (not recommended), the first to appear will be returned (to retrieve the other preference with the same key, call this method on the first preference). If this preference has the key, it will not be returned.
			 * @param key The key of the preference to retrieve.
			 */
			public findPreference(key: string): android.preference.Preference;
			/**
			 * Whether this preference group should be shown on the same screen as its contained preferences. 
			 */
			protected isOnSameScreenAsChildren(): boolean;
			protected onAttachedToActivity(): void;
			protected onPrepareForRemoval(): void;
			public setEnabled(enabled: boolean): void;
			sortPreferences(): void;
			public dispatchSaveInstanceState(container: android.os.Bundle): void;
			public dispatchRestoreInstanceState(container: android.os.Bundle): void;
		}
		/**
		 * This is the base class for an activity to show a hierarchy of preferences to the user. Prior to android.os.Build.VERSION_CODES#HONEYCOMB this class only allowed the display of a single set of preference; this functionality should now be found in the new PreferenceFragment class. If you are using PreferenceActivity in its old mode, the documentation there applies to the deprecated APIs here.
		 */
		export class PreferenceActivity extends android.app.ListActivity implements android.preference.PreferenceManager.IOnPreferenceTreeClickListener, android.preference.PreferenceFragment.IOnPreferenceStartFragmentCallback {
			constructor();
			/**
			 * When starting this activity, the invoking Intent can contain this extra string to specify which fragment should be initially displayed.
			 */
			static EXTRA_SHOW_FRAGMENT: string;
			/**
			 * When starting this activity and using #EXTRA_SHOW_FRAGMENT, this extra can also be specified to supply a Bundle of arguments to pass to that fragment when it is instantiated during the initial creation of PreferenceActivity.
			 */
			static EXTRA_SHOW_FRAGMENT_ARGUMENTS: string;
			/**
			 * When starting this activity and using #EXTRA_SHOW_FRAGMENT, this extra can also be specify to supply the title to be shown for that fragment.
			 */
			static EXTRA_SHOW_FRAGMENT_TITLE: string;
			/**
			 * When starting this activity and using #EXTRA_SHOW_FRAGMENT, this extra can also be specify to supply the short title to be shown for that fragment.
			 */
			static EXTRA_SHOW_FRAGMENT_SHORT_TITLE: string;
			/**
			 * When starting this activity, the invoking Intent can contain this extra boolean that the header list should not be displayed. This is most often used in conjunction with #EXTRA_SHOW_FRAGMENT to launch the activity to display a specific fragment that the user has navigated to.
			 */
			static EXTRA_NO_HEADERS: string;
			/**
			 * Default value for Header#id Header.id indicating that no identifier value is set. All other values (including those below -1) are valid.
			 */
			static HEADER_ID_UNDEFINED: number;
			static class: java.lang.Class<android.preference.PreferenceActivity>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
			/**
			 * Returns true if this activity is currently showing the header list.
			 */
			public hasHeaders(): boolean;
			/**
			 * Returns true if this activity is showing multiple panes -- the headers and a preference fragment.
			 */
			public isMultiPane(): boolean;
			/**
			 * Called to determine if the activity should run in multi-pane mode. The default implementation returns true if the screen is large enough.
			 */
			public onIsMultiPane(): boolean;
			/**
			 * Called to determine whether the header list should be hidden. The default implementation returns the value given in #EXTRA_NO_HEADERS or false if it is not supplied. This is set to false, for example, when the activity is being re-launched to show a particular preference activity.
			 */
			public onIsHidingHeaders(): boolean;
			/**
			 * Called to determine the initial header to be shown. The default implementation simply returns the fragment of the first header. Note that the returned Header object does not actually need to exist in your header list -- whatever its fragment is will simply be used to show for the initial UI.
			 */
			public onGetInitialHeader(): android.preference.PreferenceActivity.Header;
			/**
			 * Called after the header list has been updated (#onBuildHeaders has been called and returned due to #invalidateHeaders()) to specify the header that should now be selected. The default implementation returns null to keep whatever header is currently selected.
			 */
			public onGetNewHeader(): android.preference.PreferenceActivity.Header;
			/**
			 * Called when the activity needs its list of headers build. By implementing this and adding at least one item to the list, you will cause the activity to run in its modern fragment mode. Note that this function may not always be called; for example, if the activity has been asked to display a particular fragment without the header list, there is no need to build the headers.
			 * @param target The list in which to place the headers.
			 */
			public onBuildHeaders(target: java.util.IList<android.preference.PreferenceActivity.Header>): void;
			/**
			 * Call when you need to change the headers being displayed. Will result in onBuildHeaders() later being called to retrieve the new list.
			 */
			public invalidateHeaders(): void;
			/**
			 * Parse the given XML file as a header description, adding each parsed Header into the target list.
			 * @param resid The XML resource to load and parse.
			 * @param target The list in which the parsed headers should be placed.
			 */
			public loadHeadersFromResource(resid: number, target: java.util.IList<android.preference.PreferenceActivity.Header>): void;
			/**
			 * Set a footer that should be shown at the bottom of the header list.
			 */
			public setListFooter(view: android.view.View): void;
			protected onStop(): void;
			protected onDestroy(): void;
			protected onSaveInstanceState(outState: android.os.Bundle): void;
			protected onRestoreInstanceState(state: android.os.Bundle): void;
			protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
			public onContentChanged(): void;
			protected onListItemClick(l: android.widget.ListView, v: android.view.View, position: number, id: number): void;
			/**
			 * Called when the user selects an item in the header list. The default implementation will call either #startWithFragment(String, Bundle, Fragment, int, int, int) or #switchToHeader(Header) as appropriate.
			 * @param header The header that was selected.
			 * @param position The header's position in the list.
			 */
			public onHeaderClick(header: android.preference.PreferenceActivity.Header, position: number): void;
			/**
			 * Called by #startWithFragment(String, Bundle, Fragment, int, int, int) when in single-pane mode, to build an Intent to launch a new activity showing the selected fragment. The default implementation constructs an Intent that re-launches the current activity with the appropriate arguments to display the fragment. 
			 * @param fragmentName The name of the fragment to display.
			 * @param args Optional arguments to supply to the fragment.
			 * @param titleRes Optional resource ID of title to show for this item.
			 * @param shortTitleRes Optional resource ID of short title to show for this item.
			 */
			public onBuildStartFragmentIntent(fragmentName: string, args: android.os.Bundle, titleRes: number, shortTitleRes: number): android.content.Intent;
			/**
			 * Like #startWithFragment(String, Bundle, Fragment, int, int, int) but uses a 0 titleRes.
			 */
			public startWithFragment(fragmentName: string, args: android.os.Bundle, resultTo: android.app.Fragment, resultRequestCode: number): void;
			/**
			 * Start a new instance of this activity, showing only the given preference fragment. When launched in this mode, the header list will be hidden and the given preference fragment will be instantiated and fill the entire activity.
			 * @param fragmentName The name of the fragment to display.
			 * @param args Optional arguments to supply to the fragment.
			 * @param resultTo Option fragment that should receive the result of
			 * @param resultRequestCode If resultTo is non-null, this is the request
			 * @param titleRes Resource ID of string to display for the title of
			 * @param shortTitleRes Resource ID of string to display for the short title of
			 */
			public startWithFragment(fragmentName: string, args: android.os.Bundle, resultTo: android.app.Fragment, resultRequestCode: number, titleRes: number, shortTitleRes: number): void;
			/**
			 * Change the base title of the bread crumbs for the current preferences. This will normally be called for you. See android.app.FragmentBreadCrumbs for more information.
			 */
			public showBreadCrumbs(title: string, shortTitle: string): void;
			/**
			 * Should be called after onCreate to ensure that the breadcrumbs, if any, were created. This prepends a title to the fragment breadcrumbs and attaches a listener to any clicks on the parent entry.
			 * @param title the title for the breadcrumb
			 * @param shortTitle the short title for the breadcrumb
			 * @param listener 
			 */
			public setParentTitle(title: string, shortTitle: string, listener: android.view.View.IOnClickListener): void;
			setSelectedHeader(header: android.preference.PreferenceActivity.Header): void;
			showBreadCrumbs(header: android.preference.PreferenceActivity.Header): void;
			/**
			 * When in two-pane mode, switch the fragment pane to show the given preference fragment.
			 * @param fragmentName The name of the fragment to display.
			 * @param args Optional arguments to supply to the fragment.
			 */
			public switchToHeader(fragmentName: string, args: android.os.Bundle): void;
			/**
			 * When in two-pane mode, switch to the fragment pane to show the given preference fragment.
			 * @param header The new header to display.
			 */
			public switchToHeader(header: android.preference.PreferenceActivity.Header): void;
			findBestMatchingHeader(cur: android.preference.PreferenceActivity.Header, from: java.util.ArrayList<android.preference.PreferenceActivity.Header>): android.preference.PreferenceActivity.Header;
			/**
			 * Start a new fragment.
			 * @param fragment The fragment to start
			 * @param push If true, the current fragment will be pushed onto the back stack. If false,
			 */
			public startPreferenceFragment(fragment: android.app.Fragment, push: boolean): void;
			/**
			 * Start a new fragment containing a preference panel. If the prefences are being displayed in multi-pane mode, the given fragment class will be instantiated and placed in the appropriate pane. If running in single-pane mode, a new activity will be launched in which to show the fragment. 
			 * @param fragmentClass Full name of the class implementing the fragment.
			 * @param args Any desired arguments to supply to the fragment.
			 * @param titleRes Optional resource identifier of the title of this
			 * @param titleText Optional text of the title of this fragment.
			 * @param resultTo Optional fragment that result data should be sent to.
			 * @param resultRequestCode If resultTo is non-null, this is the caller's
			 */
			public startPreferencePanel(fragmentClass: string, args: android.os.Bundle, titleRes: number, titleText: string, resultTo: android.app.Fragment, resultRequestCode: number): void;
			/**
			 * Called by a preference panel fragment to finish itself. 
			 * @param caller The fragment that is asking to be finished.
			 * @param resultCode Optional result code to send back to the original
			 * @param resultData Optional result data to send back to the original
			 */
			public finishPreferencePanel(caller: android.app.Fragment, resultCode: number, resultData: android.content.Intent): void;
			public onPreferenceStartFragment(caller: android.preference.PreferenceFragment, pref: android.preference.Preference): boolean;
			/**
			 * Returns the PreferenceManager used by this activity.
			 */
			public getPreferenceManager(): android.preference.PreferenceManager;
			/**
			 * Sets the root of the preference hierarchy that this activity is showing.
			 * @param preferenceScreen The root {@link PreferenceScreen} of the preference hierarchy.
			 */
			public setPreferenceScreen(preferenceScreen: android.preference.PreferenceScreen): void;
			/**
			 * Gets the root of the preference hierarchy that this activity is showing.
			 */
			public getPreferenceScreen(): android.preference.PreferenceScreen;
			/**
			 * Adds preferences from activities that match the given Intent.
			 * @param intent The {@link Intent} to query activities.
			 */
			public addPreferencesFromIntent(intent: android.content.Intent): void;
			/**
			 * Inflates the given XML resource and adds the preference hierarchy to the current preference hierarchy.
			 * @param preferencesResId The XML resource ID to inflate.
			 */
			public addPreferencesFromResource(preferencesResId: number): void;
			/**
			 * 
			 */
			public onPreferenceTreeClick(preferenceScreen: android.preference.PreferenceScreen, preference: android.preference.Preference): boolean;
			/**
			 * Finds a Preference based on its key.
			 * @param key The key of the preference to retrieve.
			 */
			public findPreference(key: string): android.preference.Preference;
			protected onNewIntent(intent: android.content.Intent): void;
		}
		export module PreferenceActivity {
			export class HeaderAdapter extends android.widget.ArrayAdapter<android.preference.PreferenceActivity.Header> {
				constructor(context: android.content.Context, objects: java.util.IList<android.preference.PreferenceActivity.Header>);
				static class: java.lang.Class<android.preference.PreferenceActivity.HeaderAdapter>;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			}
			export module HeaderAdapter {
				export class HeaderViewHolder extends java.lang.Object {
					static class: java.lang.Class<android.preference.PreferenceActivity.HeaderAdapter.HeaderViewHolder>;
				}
			}
			/**
			 * Description of a single Header item that the user can select.
			 */
			export class Header extends java.lang.Object implements android.os.IParcelable {
				constructor();
				/**
				 * Identifier for this header, to correlate with a new list when it is updated. The default value is PreferenceActivity#HEADER_ID_UNDEFINED, meaning no id. ref android.R.styleable#PreferenceHeader_id
				 */
				id: number;
				/**
				 * Resource ID of title of the header that is shown to the user. ref android.R.styleable#PreferenceHeader_title
				 */
				titleRes: number;
				/**
				 * Title of the header that is shown to the user. ref android.R.styleable#PreferenceHeader_title
				 */
				title: string;
				/**
				 * Resource ID of optional summary describing what this header controls. ref android.R.styleable#PreferenceHeader_summary
				 */
				summaryRes: number;
				/**
				 * Optional summary describing what this header controls. ref android.R.styleable#PreferenceHeader_summary
				 */
				summary: string;
				/**
				 * Resource ID of optional text to show as the title in the bread crumb. ref android.R.styleable#PreferenceHeader_breadCrumbTitle
				 */
				breadCrumbTitleRes: number;
				/**
				 * Optional text to show as the title in the bread crumb. ref android.R.styleable#PreferenceHeader_breadCrumbTitle
				 */
				breadCrumbTitle: string;
				/**
				 * Resource ID of optional text to show as the short title in the bread crumb. ref android.R.styleable#PreferenceHeader_breadCrumbShortTitle
				 */
				breadCrumbShortTitleRes: number;
				/**
				 * Optional text to show as the short title in the bread crumb. ref android.R.styleable#PreferenceHeader_breadCrumbShortTitle
				 */
				breadCrumbShortTitle: string;
				/**
				 * Optional icon resource to show for this header. ref android.R.styleable#PreferenceHeader_icon
				 */
				iconRes: number;
				/**
				 * Full class name of the fragment to display when this header is selected. ref android.R.styleable#PreferenceHeader_fragment
				 */
				fragment: string;
				/**
				 * Optional arguments to supply to the fragment when it is instantiated.
				 */
				fragmentArguments: android.os.Bundle;
				/**
				 * Intent to launch when the preference is selected.
				 */
				intent: android.content.Intent;
				/**
				 * Optional additional data for use by subclasses of PreferenceActivity.
				 */
				extras: android.os.Bundle;
				static CREATOR: android.os.Parcelable.ICreator<android.preference.PreferenceActivity.Header>;
				static class: java.lang.Class<android.preference.PreferenceActivity.Header>;
				/**
				 * Return the currently set title. If #titleRes is set, this resource is loaded from <var>res</var> and returned. Otherwise #title is returned.
				 */
				public getTitle(res: android.content.res.Resources): string;
				/**
				 * Return the currently set summary. If #summaryRes is set, this resource is loaded from <var>res</var> and returned. Otherwise #summary is returned.
				 */
				public getSummary(res: android.content.res.Resources): string;
				/**
				 * Return the currently set bread crumb title. If #breadCrumbTitleRes is set, this resource is loaded from <var>res</var> and returned. Otherwise #breadCrumbTitle is returned.
				 */
				public getBreadCrumbTitle(res: android.content.res.Resources): string;
				/**
				 * Return the currently set bread crumb short title. If #breadCrumbShortTitleRes is set, this resource is loaded from <var>res</var> and returned. Otherwise #breadCrumbShortTitle is returned.
				 */
				public getBreadCrumbShortTitle(res: android.content.res.Resources): string;
				public describeContents(): number;
				public writeToParcel(dest: android.os.Parcel, flags: number): void;
				public readFromParcel(input: android.os.Parcel): void;
			}
		}
	}
	export module mtp {
		/**
		 * A class containing constants in the MTP and PTP specifications.
		 */
		export class MtpConstants extends java.lang.Object {
			constructor();
			/**
			 * Undefined format code
			 */
			static FORMAT_UNDEFINED: number;
			/**
			 * Format code for associations (folders and directories)
			 */
			static FORMAT_ASSOCIATION: number;
			/**
			 * Format code for script files
			 */
			static FORMAT_SCRIPT: number;
			/**
			 * Format code for executable files
			 */
			static FORMAT_EXECUTABLE: number;
			/**
			 * Format code for text files
			 */
			static FORMAT_TEXT: number;
			/**
			 * Format code for HTML files
			 */
			static FORMAT_HTML: number;
			/**
			 * Format code for DPOF files
			 */
			static FORMAT_DPOF: number;
			/**
			 * Format code for AIFF audio files
			 */
			static FORMAT_AIFF: number;
			/**
			 * Format code for WAV audio files
			 */
			static FORMAT_WAV: number;
			/**
			 * Format code for MP3 audio files
			 */
			static FORMAT_MP3: number;
			/**
			 * Format code for AVI video files
			 */
			static FORMAT_AVI: number;
			/**
			 * Format code for MPEG video files
			 */
			static FORMAT_MPEG: number;
			/**
			 * Format code for ASF files
			 */
			static FORMAT_ASF: number;
			/**
			 * Format code for JPEG image files
			 */
			static FORMAT_EXIF_JPEG: number;
			/**
			 * Format code for TIFF EP image files
			 */
			static FORMAT_TIFF_EP: number;
			/**
			 * Format code for BMP image files
			 */
			static FORMAT_BMP: number;
			/**
			 * Format code for GIF image files
			 */
			static FORMAT_GIF: number;
			/**
			 * Format code for JFIF image files
			 */
			static FORMAT_JFIF: number;
			/**
			 * Format code for PICT image files
			 */
			static FORMAT_PICT: number;
			/**
			 * Format code for PNG image files
			 */
			static FORMAT_PNG: number;
			/**
			 * Format code for TIFF image files
			 */
			static FORMAT_TIFF: number;
			/**
			 * Format code for JP2 files
			 */
			static FORMAT_JP2: number;
			/**
			 * Format code for JPX files
			 */
			static FORMAT_JPX: number;
			/**
			 * Format code for firmware files
			 */
			static FORMAT_UNDEFINED_FIRMWARE: number;
			/**
			 * Format code for Windows image files
			 */
			static FORMAT_WINDOWS_IMAGE_FORMAT: number;
			/**
			 * Format code for undefined audio files files
			 */
			static FORMAT_UNDEFINED_AUDIO: number;
			/**
			 * Format code for WMA audio files
			 */
			static FORMAT_WMA: number;
			/**
			 * Format code for OGG audio files
			 */
			static FORMAT_OGG: number;
			/**
			 * Format code for AAC audio files
			 */
			static FORMAT_AAC: number;
			/**
			 * Format code for Audible audio files
			 */
			static FORMAT_AUDIBLE: number;
			/**
			 * Format code for FLAC audio files
			 */
			static FORMAT_FLAC: number;
			/**
			 * Format code for undefined video files
			 */
			static FORMAT_UNDEFINED_VIDEO: number;
			/**
			 * Format code for WMV video files
			 */
			static FORMAT_WMV: number;
			/**
			 * Format code for MP4 files
			 */
			static FORMAT_MP4_CONTAINER: number;
			/**
			 * Format code for MP2 files
			 */
			static FORMAT_MP2: number;
			/**
			 * Format code for 3GP files
			 */
			static FORMAT_3GP_CONTAINER: number;
			/**
			 * Format code for undefined collections
			 */
			static FORMAT_UNDEFINED_COLLECTION: number;
			/**
			 * Format code for multimedia albums
			 */
			static FORMAT_ABSTRACT_MULTIMEDIA_ALBUM: number;
			/**
			 * Format code for image albums
			 */
			static FORMAT_ABSTRACT_IMAGE_ALBUM: number;
			/**
			 * Format code for audio albums
			 */
			static FORMAT_ABSTRACT_AUDIO_ALBUM: number;
			/**
			 * Format code for video albums
			 */
			static FORMAT_ABSTRACT_VIDEO_ALBUM: number;
			/**
			 * Format code for abstract AV playlists
			 */
			static FORMAT_ABSTRACT_AV_PLAYLIST: number;
			/**
			 * Format code for abstract audio playlists
			 */
			static FORMAT_ABSTRACT_AUDIO_PLAYLIST: number;
			/**
			 * Format code for abstract video playlists
			 */
			static FORMAT_ABSTRACT_VIDEO_PLAYLIST: number;
			/**
			 * Format code for abstract mediacasts
			 */
			static FORMAT_ABSTRACT_MEDIACAST: number;
			/**
			 * Format code for WPL playlist files
			 */
			static FORMAT_WPL_PLAYLIST: number;
			/**
			 * Format code for M3u playlist files
			 */
			static FORMAT_M3U_PLAYLIST: number;
			/**
			 * Format code for MPL playlist files
			 */
			static FORMAT_MPL_PLAYLIST: number;
			/**
			 * Format code for ASX playlist files
			 */
			static FORMAT_ASX_PLAYLIST: number;
			/**
			 * Format code for PLS playlist files
			 */
			static FORMAT_PLS_PLAYLIST: number;
			/**
			 * Format code for undefined document files
			 */
			static FORMAT_UNDEFINED_DOCUMENT: number;
			/**
			 * Format code for abstract documents
			 */
			static FORMAT_ABSTRACT_DOCUMENT: number;
			/**
			 * Format code for XML documents
			 */
			static FORMAT_XML_DOCUMENT: number;
			/**
			 * Format code for MS Word documents
			 */
			static FORMAT_MS_WORD_DOCUMENT: number;
			/**
			 * Format code for MS Excel spreadsheets
			 */
			static FORMAT_MS_EXCEL_SPREADSHEET: number;
			/**
			 * Format code for MS PowerPoint presentatiosn
			 */
			static FORMAT_MS_POWERPOINT_PRESENTATION: number;
			/**
			 * Object is not protected. It may be modified and deleted, and its properties may be modified.
			 */
			static PROTECTION_STATUS_NONE: number;
			/**
			 * Object can not be modified or deleted and its properties can not be modified.
			 */
			static PROTECTION_STATUS_READ_ONLY: number;
			/**
			 * Object can not be modified or deleted but its properties are modifiable.
			 */
			static PROTECTION_STATUS_READ_ONLY_DATA: number;
			/**
			 * Object's contents can not be transfered from the device, but the object may be moved or deleted and its properties may be modified.
			 */
			static PROTECTION_STATUS_NON_TRANSFERABLE_DATA: number;
			/**
			 * Association type for objects representing file system directories.
			 */
			static ASSOCIATION_TYPE_GENERIC_FOLDER: number;
			static class: java.lang.Class<android.mtp.MtpConstants>;
			/**
			 * Returns true if the object is abstract (that is, it has no representation in the underlying file system).
			 * @param format the format of the object
			 */
			public static isAbstractObject(format: number): boolean;
		}
		/**
		 * This class represents an MTP or PTP device connected on the USB host bus. An application can instantiate an object of this type, by referencing an attached android.hardware.usb.UsbDevice and then use methods in this class to get information about the device and objects stored on it, as well as open the connection and transfer data.
		 */
		export class MtpDevice extends java.lang.Object {
			/**
			 * MtpClient constructor
			 * @param device the {@link android.hardware.usb.UsbDevice} for the MTP or PTP device
			 */
			constructor(device: android.hardware.usb.UsbDevice);
			static class: java.lang.Class<android.mtp.MtpDevice>;
			/**
			 * Opens the MTP device. Once the device is open it takes ownership of the android.hardware.usb.UsbDeviceConnection. The connection will be closed when you call #close() The connection will also be closed if this method fails.
			 * @param connection an open {@link android.hardware.usb.UsbDeviceConnection} for the device
			 */
			public open(connection: android.hardware.usb.UsbDeviceConnection): boolean;
			/**
			 * Closes all resources related to the MtpDevice object. After this is called, the object can not be used until #open is called again with a new android.hardware.usb.UsbDeviceConnection.
			 */
			public close(): void;
			protected finalize(): void;
			/**
			 * Returns the name of the USB device This returns the same value as android.hardware.usb.UsbDevice#getDeviceName for the device's android.hardware.usb.UsbDevice
			 */
			public getDeviceName(): string;
			/**
			 * Returns the USB ID of the USB device. This returns the same value as android.hardware.usb.UsbDevice#getDeviceId for the device's android.hardware.usb.UsbDevice
			 */
			public getDeviceId(): number;
			public toString(): string;
			/**
			 * Returns the MtpDeviceInfo for this device
			 */
			public getDeviceInfo(): android.mtp.MtpDeviceInfo;
			/**
			 * Returns the list of IDs for all storage units on this device Information about each storage unit can be accessed via #getStorageInfo.
			 */
			public getStorageIds(): native.Array<number>;
			/**
			 * Returns the list of object handles for all objects on the given storage unit, with the given format and parent. Information about each object can be accessed via #getObjectInfo.
			 * @param storageId the storage unit to query
			 * @param format the format of the object to return, or zero for all formats
			 * @param objectHandle the parent object to query, or zero for the storage root
			 */
			public getObjectHandles(storageId: number, format: number, objectHandle: number): native.Array<number>;
			/**
			 * Returns the data for an object as a byte array. This call may block for an arbitrary amount of time depending on the size of the data and speed of the devices.
			 * @param objectHandle handle of the object to read
			 * @param objectSize the size of the object (this should match
			 */
			public getObject(objectHandle: number, objectSize: number): native.Array<number>;
			/**
			 * Returns the thumbnail data for an object as a byte array. The size and format of the thumbnail data can be determined via MtpObjectInfo#getThumbCompressedSize and MtpObjectInfo#getThumbFormat. For typical devices the format is JPEG.
			 * @param objectHandle handle of the object to read
			 */
			public getThumbnail(objectHandle: number): native.Array<number>;
			/**
			 * Retrieves the MtpStorageInfo for a storage unit.
			 * @param storageId the ID of the storage unit
			 */
			public getStorageInfo(storageId: number): android.mtp.MtpStorageInfo;
			/**
			 * Retrieves the MtpObjectInfo for an object.
			 * @param objectHandle the handle of the object
			 */
			public getObjectInfo(objectHandle: number): android.mtp.MtpObjectInfo;
			/**
			 * Deletes an object on the device. This call may block, since deleting a directory containing many files may take a long time on some devices.
			 * @param objectHandle handle of the object to delete
			 */
			public deleteObject(objectHandle: number): boolean;
			/**
			 * Retrieves the object handle for the parent of an object on the device.
			 * @param objectHandle handle of the object to query
			 */
			public getParent(objectHandle: number): any;
			/**
			 * Retrieves the ID of the storage unit containing the given object on the device.
			 * @param objectHandle handle of the object to query
			 */
			public getStorageId(objectHandle: number): any;
			/**
			 * Copies the data for an object to a file in external storage. This call may block for an arbitrary amount of time depending on the size of the data and speed of the devices.
			 * @param objectHandle handle of the object to read
			 * @param destPath path to destination for the file transfer.
			 */
			public importFile(objectHandle: number, destPath: string): boolean;
		}
		export class MtpPropertyGroup extends java.lang.Object {
			static class: java.lang.Class<android.mtp.MtpPropertyGroup>;
			getPropertyList(handle: number, format: number, depth: number): android.mtp.MtpPropertyList;
		}
		export module MtpPropertyGroup {
			export class Property extends java.lang.Object {
				static class: java.lang.Class<android.mtp.MtpPropertyGroup.Property>;
			}
		}
		/**
		 * Encapsulates the ObjectPropList dataset used by the GetObjectPropList command. The fields of this class are read by JNI code in android_media_MtpDatabase.cpp
		 */
		export class MtpPropertyList extends java.lang.Object {
			constructor(maxCount: number, result: number);
			mResult: number;
			mObjectHandles: native.Array<number>;
			mPropertyCodes: native.Array<number>;
			mDataTypes: native.Array<number>;
			mLongValues: native.Array<number>;
			mStringValues: native.Array<string>;
			static class: java.lang.Class<android.mtp.MtpPropertyList>;
			public append(handle: number, property: number, type: number, value: number): void;
			public append(handle: number, property: number, value: string): void;
			public setResult(result: number): void;
		}
		/**
		 * This class encapsulates information about a storage unit on an MTP device. This corresponds to the StorageInfo Dataset described in section 5.2.2 of the MTP specification.
		 */
		export class MtpStorageInfo extends java.lang.Object {
			static class: java.lang.Class<android.mtp.MtpStorageInfo>;
			/**
			 * Returns the storage ID for the storage unit. The storage ID uniquely identifies the storage unit on the MTP device.
			 */
			public getStorageId(): number;
			/**
			 * Returns the maximum storage capacity for the storage unit in bytes
			 */
			public getMaxCapacity(): any;
			/**
			 * Returns the amount of free space in the storage unit in bytes
			 */
			public getFreeSpace(): any;
			/**
			 * Returns the description string for the storage unit. This is typically displayed to the user in the user interface on the MTP host.
			 */
			public getDescription(): string;
			/**
			 * Returns the volume identifier for the storage unit
			 */
			public getVolumeIdentifier(): string;
		}
		/**
		 * This class encapsulates information about an MTP device. This corresponds to the DeviceInfo Dataset described in section 5.1.1 of the MTP specification.
		 */
		export class MtpDeviceInfo extends java.lang.Object {
			static class: java.lang.Class<android.mtp.MtpDeviceInfo>;
			/**
			 * Returns the manufacturer's name for the MTP device
			 */
			public getManufacturer(): string;
			/**
			 * Returns the model name for the MTP device
			 */
			public getModel(): string;
			/**
			 * Returns the version string the MTP device
			 */
			public getVersion(): string;
			/**
			 * Returns the unique serial number for the MTP device
			 */
			public getSerialNumber(): string;
		}
		/**
		 * This class encapsulates information about an object on an MTP device. This corresponds to the ObjectInfo Dataset described in section 5.3.1 of the MTP specification.
		 */
		export class MtpObjectInfo extends java.lang.Object {
			static class: java.lang.Class<android.mtp.MtpObjectInfo>;
			/**
			 * Returns the object handle for the MTP object
			 */
			public getObjectHandle(): number;
			/**
			 * Returns the storage ID for the MTP object's storage unit
			 */
			public getStorageId(): number;
			/**
			 * Returns the format code for the MTP object
			 */
			public getFormat(): number;
			/**
			 * Returns the protection status for the MTP object Possible values are:
			 */
			public getProtectionStatus(): number;
			/**
			 * Returns the size of the MTP object
			 */
			public getCompressedSize(): number;
			/**
			 * Returns the format code for the MTP object's thumbnail Will be zero for objects with no thumbnail
			 */
			public getThumbFormat(): number;
			/**
			 * Returns the size of the MTP object's thumbnail Will be zero for objects with no thumbnail
			 */
			public getThumbCompressedSize(): number;
			/**
			 * Returns the width of the MTP object's thumbnail in pixels Will be zero for objects with no thumbnail
			 */
			public getThumbPixWidth(): number;
			/**
			 * Returns the height of the MTP object's thumbnail in pixels Will be zero for objects with no thumbnail
			 */
			public getThumbPixHeight(): number;
			/**
			 * Returns the width of the MTP object in pixels Will be zero for non-image objects
			 */
			public getImagePixWidth(): number;
			/**
			 * Returns the height of the MTP object in pixels Will be zero for non-image objects
			 */
			public getImagePixHeight(): number;
			/**
			 * Returns the depth of the MTP object in bits per pixel Will be zero for non-image objects
			 */
			public getImagePixDepth(): number;
			/**
			 * Returns the object handle for the object's parent Will be zero for the root directory of a storage unit
			 */
			public getParent(): number;
			/**
			 * Returns the association type for the MTP object Will be zero objects that are not of format android.mtp.MtpConstants#FORMAT_ASSOCIATION For directories the association type is typically android.mtp.MtpConstants#ASSOCIATION_TYPE_GENERIC_FOLDER
			 */
			public getAssociationType(): number;
			/**
			 * Returns the association description for the MTP object Will be zero objects that are not of format android.mtp.MtpConstants#FORMAT_ASSOCIATION
			 */
			public getAssociationDesc(): number;
			/**
			 * Returns the sequence number for the MTP object This field is typically not used for MTP devices, but is sometimes used to define a sequence of photos on PTP cameras.
			 */
			public getSequenceNumber(): number;
			/**
			 * Returns the name of the MTP object
			 */
			public getName(): string;
			/**
			 * Returns the creation date of the MTP object The value is represented as milliseconds since January 1, 1970
			 */
			public getDateCreated(): any;
			/**
			 * Returns the modification date of the MTP object The value is represented as milliseconds since January 1, 1970
			 */
			public getDateModified(): any;
			/**
			 * Returns a comma separated list of keywords for the MTP object
			 */
			public getKeywords(): string;
		}
	}
	export module nfc {
		export module tech {
			/**
			 * Provides access to MIFARE Ultralight properties and I/O operations on a Tag.
			 */
			export class MifareUltralight extends android.nfc.tech.BasicTagTechnology {
				/**
				 * A MIFARE Ultralight compatible tag of unknown type
				 */
				static TYPE_UNKNOWN: number;
				/**
				 * A MIFARE Ultralight tag
				 */
				static TYPE_ULTRALIGHT: number;
				/**
				 * A MIFARE Ultralight C tag
				 */
				static TYPE_ULTRALIGHT_C: number;
				/**
				 * Size of a MIFARE Ultralight page in bytes
				 */
				static PAGE_SIZE: number;
				static class: java.lang.Class<android.nfc.tech.MifareUltralight>;
				/**
				 * Get an instance of MifareUltralight for the given tag.
				 * @param tag an MIFARE Ultralight compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.MifareUltralight;
				/**
				 * Return the MIFARE Ultralight type of the tag.
				 */
				public getType(): number;
				/**
				 * Read 4 pages (16 bytes).
				 * @param pageOffset index of first page to read, starting from 0
				 */
				public readPages(pageOffset: number): native.Array<number>;
				/**
				 * Write 1 page (4 bytes).
				 * @param pageOffset index of page to write, starting from 0
				 * @param data 4 bytes to write
				 */
				public writePage(pageOffset: number, data: native.Array<number>): void;
				/**
				 * Send raw NfcA data to a tag and receive the response.
				 */
				public transceive(data: native.Array<number>): native.Array<number>;
				/**
				 * Return the maximum number of bytes that can be sent with #transceive.
				 */
				public getMaxTransceiveLength(): number;
				/**
				 * Set the #transceive timeout in milliseconds.
				 * @param timeout timeout value in milliseconds
				 */
				public setTimeout(timeout: number): void;
				/**
				 * Get the current #transceive timeout in milliseconds.
				 */
				public getTimeout(): number;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
			/**
			 * Provides access to MIFARE Classic properties and I/O operations on a Tag.
			 */
			export class MifareClassic extends android.nfc.tech.BasicTagTechnology {
				/**
				 * The default factory key.
				 */
				static KEY_DEFAULT: native.Array<number>;
				/**
				 * The well-known key for tags formatted according to the MIFARE Application Directory (MAD) specification.
				 */
				static KEY_MIFARE_APPLICATION_DIRECTORY: native.Array<number>;
				/**
				 * The well-known key for tags formatted according to the NDEF on MIFARE Classic specification.
				 */
				static KEY_NFC_FORUM: native.Array<number>;
				/**
				 * A MIFARE Classic compatible card of unknown type
				 */
				static TYPE_UNKNOWN: number;
				/**
				 * A MIFARE Classic tag
				 */
				static TYPE_CLASSIC: number;
				/**
				 * A MIFARE Plus tag
				 */
				static TYPE_PLUS: number;
				/**
				 * A MIFARE Pro tag
				 */
				static TYPE_PRO: number;
				/**
				 * Tag contains 16 sectors, each with 4 blocks.
				 */
				static SIZE_1K: number;
				/**
				 * Tag contains 32 sectors, each with 4 blocks.
				 */
				static SIZE_2K: number;
				/**
				 * Tag contains 40 sectors. The first 32 sectors contain 4 blocks and the last 8 sectors contain 16 blocks.
				 */
				static SIZE_4K: number;
				/**
				 * Tag contains 5 sectors, each with 4 blocks.
				 */
				static SIZE_MINI: number;
				/**
				 * Size of a MIFARE Classic block (in bytes)
				 */
				static BLOCK_SIZE: number;
				static class: java.lang.Class<android.nfc.tech.MifareClassic>;
				/**
				 * Get an instance of MifareClassic for the given tag.
				 * @param tag an MIFARE Classic compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.MifareClassic;
				/**
				 * Return the type of this MIFARE Classic compatible tag.
				 */
				public getType(): number;
				/**
				 * Return the size of the tag in bytes
				 */
				public getSize(): number;
				/**
				 * Return the number of MIFARE Classic sectors.
				 */
				public getSectorCount(): number;
				/**
				 * Return the total number of MIFARE Classic blocks.
				 */
				public getBlockCount(): number;
				/**
				 * Return the number of blocks in the given sector.
				 * @param sectorIndex index of sector, starting from 0
				 */
				public getBlockCountInSector(sectorIndex: number): number;
				/**
				 * Return the sector that contains a given block.
				 * @param blockIndex index of block to lookup, starting from 0
				 */
				public blockToSector(blockIndex: number): number;
				/**
				 * Return the first block of a given sector.
				 * @param sectorIndex index of sector to lookup, starting from 0
				 */
				public sectorToBlock(sectorIndex: number): number;
				/**
				 * Authenticate a sector with key A.
				 * @param sectorIndex index of sector to authenticate, starting from 0
				 * @param key 6-byte authentication key
				 */
				public authenticateSectorWithKeyA(sectorIndex: number, key: native.Array<number>): boolean;
				/**
				 * Authenticate a sector with key B.
				 * @param sectorIndex index of sector to authenticate, starting from 0
				 * @param key 6-byte authentication key
				 */
				public authenticateSectorWithKeyB(sectorIndex: number, key: native.Array<number>): boolean;
				/**
				 * Read 16-byte block.
				 * @param blockIndex index of block to read, starting from 0
				 */
				public readBlock(blockIndex: number): native.Array<number>;
				/**
				 * Write 16-byte block.
				 * @param blockIndex index of block to write, starting from 0
				 * @param data 16 bytes of data to write
				 */
				public writeBlock(blockIndex: number, data: native.Array<number>): void;
				/**
				 * Increment a value block, storing the result in the temporary block on the tag.
				 * @param blockIndex index of block to increment, starting from 0
				 * @param value non-negative to increment by
				 */
				public increment(blockIndex: number, value: number): void;
				/**
				 * Decrement a value block, storing the result in the temporary block on the tag.
				 * @param blockIndex index of block to decrement, starting from 0
				 * @param value non-negative to decrement by
				 */
				public decrement(blockIndex: number, value: number): void;
				/**
				 * Copy from the temporary block to a value block.
				 * @param blockIndex index of block to copy to
				 */
				public transfer(blockIndex: number): void;
				/**
				 * Copy from a value block to the temporary block.
				 * @param blockIndex index of block to copy from
				 */
				public restore(blockIndex: number): void;
				/**
				 * Send raw NfcA data to a tag and receive the response.
				 */
				public transceive(data: native.Array<number>): native.Array<number>;
				/**
				 * Return the maximum number of bytes that can be sent with #transceive.
				 */
				public getMaxTransceiveLength(): number;
				/**
				 * Set the #transceive timeout in milliseconds.
				 * @param timeout timeout value in milliseconds
				 */
				public setTimeout(timeout: number): void;
				/**
				 * Get the current #transceive timeout in milliseconds.
				 */
				public getTimeout(): number;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
			/**
			 * TagTechnology is an interface to a technology in a Tag.
			 */
			export class TagTechnology implements java.io.ICloseable, android.nfc.tech.ITagTechnology {
				constructor(implementation: android.nfc.tech.ITagTechnology);
				/**
				 * Get the Tag object backing this TagTechnology object.
				 */
				public getTag(): android.nfc.Tag;
				/**
				 * Enable I/O operations to the tag from this TagTechnology object.
				 */
				public connect(): void;
				/**
				 * Disable I/O operations to the tag from this TagTechnology object, and release resources.
				 */
				public close(): void;
				/**
				 * Helper to indicate if I/O operations should be possible.
				 */
				public isConnected(): boolean;
			}
			/**
			 * Provides access to NFC-V (ISO 15693) properties and I/O operations on a Tag.
			 */
			export class NfcV extends android.nfc.tech.BasicTagTechnology {
				static class: java.lang.Class<android.nfc.tech.NfcV>;
				/**
				 * Get an instance of NfcV for the given tag.
				 * @param tag an NFC-V compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.NfcV;
				/**
				 * Return the Response Flag bytes from tag discovery.
				 */
				public getResponseFlags(): number;
				/**
				 * Return the DSF ID bytes from tag discovery.
				 */
				public getDsfId(): number;
				/**
				 * Send raw NFC-V commands to the tag and receive the response.
				 * @param data bytes to send
				 */
				public transceive(data: native.Array<number>): native.Array<number>;
				/**
				 * Return the maximum number of bytes that can be sent with #transceive.
				 */
				public getMaxTransceiveLength(): number;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
			/**
			 * Provides access to NFC-B (ISO 14443-3B) properties and I/O operations on a Tag.
			 */
			export class NfcB extends android.nfc.tech.BasicTagTechnology {
				static class: java.lang.Class<android.nfc.tech.NfcB>;
				/**
				 * Get an instance of NfcB for the given tag.
				 * @param tag an NFC-B compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.NfcB;
				/**
				 * Return the Application Data bytes from ATQB/SENSB_RES at tag discovery.
				 */
				public getApplicationData(): native.Array<number>;
				/**
				 * Return the Protocol Info bytes from ATQB/SENSB_RES at tag discovery.
				 */
				public getProtocolInfo(): native.Array<number>;
				/**
				 * Send raw NFC-B commands to the tag and receive the response.
				 * @param data bytes to send
				 */
				public transceive(data: native.Array<number>): native.Array<number>;
				/**
				 * Return the maximum number of bytes that can be sent with #transceive.
				 */
				public getMaxTransceiveLength(): number;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
			/**
			 * Provides access to ISO-DEP (ISO 14443-4) properties and I/O operations on a Tag.
			 */
			export class IsoDep extends android.nfc.tech.BasicTagTechnology {
				static class: java.lang.Class<android.nfc.tech.IsoDep>;
				/**
				 * Get an instance of IsoDep for the given tag.
				 * @param tag an ISO-DEP compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.IsoDep;
				/**
				 * Set the timeout of #transceive in milliseconds.
				 * @param timeout timeout value in milliseconds
				 */
				public setTimeout(timeout: number): void;
				/**
				 * Get the current timeout for #transceive in milliseconds.
				 */
				public getTimeout(): number;
				/**
				 * Return the ISO-DEP historical bytes for NfcA tags.
				 */
				public getHistoricalBytes(): native.Array<number>;
				/**
				 * Return the higher layer response bytes for NfcB tags.
				 */
				public getHiLayerResponse(): native.Array<number>;
				/**
				 * Send raw ISO-DEP data to the tag and receive the response.
				 * @param data command bytes to send, must not be null
				 */
				public transceive(data: native.Array<number>): native.Array<number>;
				/**
				 * Return the maximum number of bytes that can be sent with #transceive.
				 */
				public getMaxTransceiveLength(): number;
				public isExtendedLengthApduSupported(): boolean;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
			/**
			 * Provides access to NDEF content and operations on a Tag.
			 */
			export class Ndef extends android.nfc.tech.BasicTagTechnology {
				/**
				 * NFC Forum Tag Type 1
				 */
				static NFC_FORUM_TYPE_1: string;
				/**
				 * NFC Forum Tag Type 2
				 */
				static NFC_FORUM_TYPE_2: string;
				/**
				 * NFC Forum Tag Type 4
				 */
				static NFC_FORUM_TYPE_3: string;
				/**
				 * NFC Forum Tag Type 4
				 */
				static NFC_FORUM_TYPE_4: string;
				/**
				 * NDEF on MIFARE Classic
				 */
				static MIFARE_CLASSIC: string;
				static class: java.lang.Class<android.nfc.tech.Ndef>;
				/**
				 * Get an instance of Ndef for the given tag.
				 * @param tag an NDEF compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.Ndef;
				/**
				 * Get the NdefMessage that was read from the tag at discovery time.
				 */
				public getCachedNdefMessage(): android.nfc.NdefMessage;
				/**
				 * Get the NDEF tag type.
				 */
				public getType(): string;
				/**
				 * Get the maximum NDEF message size in bytes.
				 */
				public getMaxSize(): number;
				/**
				 * Determine if the tag is writable.
				 */
				public isWritable(): boolean;
				/**
				 * Read the current android.nfc.NdefMessage on this tag.
				 */
				public getNdefMessage(): android.nfc.NdefMessage;
				/**
				 * Overwrite the NdefMessage on this tag.
				 * @param msg the NDEF Message to write, must not be null
				 */
				public writeNdefMessage(msg: android.nfc.NdefMessage): void;
				/**
				 * Indicates whether a tag can be made read-only with #makeReadOnly().
				 */
				public canMakeReadOnly(): boolean;
				/**
				 * Make a tag read-only.
				 */
				public makeReadOnly(): boolean;
			}
			/**
			 * Provides access to NFC-A (ISO 14443-3A) properties and I/O operations on a Tag.
			 */
			export class NfcA extends android.nfc.tech.BasicTagTechnology {
				static class: java.lang.Class<android.nfc.tech.NfcA>;
				/**
				 * Get an instance of NfcA for the given tag.
				 * @param tag an NFC-A compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.NfcA;
				/**
				 * Return the ATQA/SENS_RES bytes from tag discovery.
				 */
				public getAtqa(): native.Array<number>;
				/**
				 * Return the SAK/SEL_RES bytes from tag discovery.
				 */
				public getSak(): number;
				/**
				 * Send raw NFC-A commands to the tag and receive the response.
				 * @param data bytes to send
				 */
				public transceive(data: native.Array<number>): native.Array<number>;
				/**
				 * Return the maximum number of bytes that can be sent with #transceive.
				 */
				public getMaxTransceiveLength(): number;
				/**
				 * Set the #transceive timeout in milliseconds.
				 * @param timeout timeout value in milliseconds
				 */
				public setTimeout(timeout: number): void;
				/**
				 * Get the current #transceive timeout in milliseconds.
				 */
				public getTimeout(): number;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
			/**
			 * Provide access to NDEF format operations on a Tag.
			 */
			export class NdefFormatable extends android.nfc.tech.BasicTagTechnology {
				static class: java.lang.Class<android.nfc.tech.NdefFormatable>;
				/**
				 * Get an instance of NdefFormatable for the given tag.
				 * @param tag an NDEF formatable tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.NdefFormatable;
				/**
				 * Format a tag as NDEF, and write a NdefMessage.
				 * @param firstMessage the NDEF message to write after formatting, can be null
				 */
				public format(firstMessage: android.nfc.NdefMessage): void;
				/**
				 * Formats a tag as NDEF, write a NdefMessage, and make read-only.
				 * @param firstMessage the NDEF message to write after formatting
				 */
				public formatReadOnly(firstMessage: android.nfc.NdefMessage): void;
				format(firstMessage: android.nfc.NdefMessage, makeReadOnly: boolean): void;
			}
			/**
			 * TagTechnology is an interface to a technology in a Tag.
			 */
			interface ITagTechnology extends java.io.ICloseable {
				/**
				 * Get the Tag object backing this TagTechnology object.
				 */
				getTag(): android.nfc.Tag;
				/**
				 * Enable I/O operations to the tag from this TagTechnology object.
				 */
				connect(): void;
				/**
				 * Disable I/O operations to the tag from this TagTechnology object, and release resources.
				 */
				close(): void;
				/**
				 * Helper to indicate if I/O operations should be possible.
				 */
				isConnected(): boolean;
			}
			/**
			 * A base class for tag technologies that are built on top of transceive().
			 */
			export class BasicTagTechnology extends java.lang.Object implements android.nfc.tech.ITagTechnology {
				static class: java.lang.Class<android.nfc.tech.BasicTagTechnology>;
				public getTag(): android.nfc.Tag;
				/**
				 * Internal helper to throw IllegalStateException if the technology isn't connected
				 */
				checkConnected(): void;
				public isConnected(): boolean;
				public connect(): void;
				public close(): void;
				/**
				 * Internal getMaxTransceiveLength()
				 */
				getMaxTransceiveLengthInternal(): number;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
			/**
			 * Provides access to tags containing just a barcode.
			 */
			export class NfcBarcode extends android.nfc.tech.BasicTagTechnology {
				/**
				 * Kovio Tags
				 */
				static TYPE_KOVIO: number;
				static TYPE_UNKNOWN: number;
				static class: java.lang.Class<android.nfc.tech.NfcBarcode>;
				/**
				 * Get an instance of NfcBarcode for the given tag.
				 * @param tag an NfcBarcode compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.NfcBarcode;
				/**
				 * Returns the NFC Barcode tag type.
				 */
				public getType(): number;
				/**
				 * Returns the barcode of an NfcBarcode tag.
				 */
				public getBarcode(): native.Array<number>;
			}
			/**
			 * Provides access to NFC-F (JIS 6319-4) properties and I/O operations on a Tag.
			 */
			export class NfcF extends android.nfc.tech.BasicTagTechnology {
				static class: java.lang.Class<android.nfc.tech.NfcF>;
				/**
				 * Get an instance of NfcF for the given tag.
				 * @param tag an NFC-F compatible tag
				 */
				public static get(tag: android.nfc.Tag): android.nfc.tech.NfcF;
				/**
				 * Return the System Code bytes from tag discovery.
				 */
				public getSystemCode(): native.Array<number>;
				/**
				 * Return the Manufacturer bytes from tag discovery.
				 */
				public getManufacturer(): native.Array<number>;
				/**
				 * Send raw NFC-F commands to the tag and receive the response.
				 * @param data bytes to send
				 */
				public transceive(data: native.Array<number>): native.Array<number>;
				/**
				 * Return the maximum number of bytes that can be sent with #transceive.
				 */
				public getMaxTransceiveLength(): number;
				/**
				 * Set the #transceive timeout in milliseconds.
				 * @param timeout timeout value in milliseconds
				 */
				public setTimeout(timeout: number): void;
				/**
				 * Get the current #transceive timeout in milliseconds.
				 */
				public getTimeout(): number;
				/**
				 * Internal transceive
				 */
				transceive(data: native.Array<number>, raw: boolean): native.Array<number>;
			}
		}
		/**
		 * Represents an immutable NDEF Record.
		 */
		export class NdefRecord extends java.lang.Object implements android.os.IParcelable {
			/**
			 * @param tnf a 3-bit TNF constant
			 * @param type byte array, containing zero to 255 bytes, or null
			 * @param id byte array, containing zero to 255 bytes, or null
			 * @param payload byte array, containing zero to (2 ** 32 - 1) bytes,
			 */
			constructor(tnf: number, type: native.Array<number>, id: native.Array<number>, payload: native.Array<number>);
			/**
			 * @param data raw bytes to parse
			 */
			constructor(data: native.Array<number>);
			static TNF_EMPTY: number;
			static TNF_WELL_KNOWN: number;
			/**
			 * Indicates the type field contains a media-type BNF
			 */
			static TNF_MIME_MEDIA: number;
			/**
			 * Indicates the type field contains an absolute-URI
			 */
			static TNF_ABSOLUTE_URI: number;
			static TNF_EXTERNAL_TYPE: number;
			static TNF_UNKNOWN: number;
			/**
			 * Indicates the payload is an intermediate or final chunk of a chunked
			 */
			static TNF_UNCHANGED: number;
			/**
			 * RTD Text type. For use with TNF_WELL_KNOWN. #TNF_WELL_KNOWN
			 */
			static RTD_TEXT: native.Array<number>;
			/**
			 * RTD URI type. For use with TNF_WELL_KNOWN. #TNF_WELL_KNOWN
			 */
			static RTD_URI: native.Array<number>;
			/**
			 * RTD Smart Poster type. For use with TNF_WELL_KNOWN. #TNF_WELL_KNOWN
			 */
			static RTD_SMART_POSTER: native.Array<number>;
			/**
			 * RTD Alternative Carrier type. For use with TNF_WELL_KNOWN. #TNF_WELL_KNOWN
			 */
			static RTD_ALTERNATIVE_CARRIER: native.Array<number>;
			/**
			 * RTD Handover Carrier type. For use with TNF_WELL_KNOWN. #TNF_WELL_KNOWN
			 */
			static RTD_HANDOVER_CARRIER: native.Array<number>;
			/**
			 * RTD Handover Request type. For use with TNF_WELL_KNOWN. #TNF_WELL_KNOWN
			 */
			static RTD_HANDOVER_REQUEST: native.Array<number>;
			/**
			 * RTD Handover Select type. For use with TNF_WELL_KNOWN. #TNF_WELL_KNOWN
			 */
			static RTD_HANDOVER_SELECT: native.Array<number>;
			static CREATOR: android.os.Parcelable.ICreator<android.nfc.NdefRecord>;
			static class: java.lang.Class<android.nfc.NdefRecord>;
			/**
			 * Create a new Android Application Record (AAR).
			 * @param packageName Android package name
			 */
			public static createApplicationRecord(packageName: string): android.nfc.NdefRecord;
			/**
			 * @param uri URI to encode.
			 */
			public static createUri(uri: android.net.Uri): android.nfc.NdefRecord;
			/**
			 * @param uriString string URI to encode.
			 */
			public static createUri(uriString: string): android.nfc.NdefRecord;
			/**
			 * @param mimeType a valid MIME type
			 * @param mimeData MIME data as bytes
			 */
			public static createMime(mimeType: string, mimeData: native.Array<number>): android.nfc.NdefRecord;
			/**
			 * @param domain domain-name of issuing organization
			 * @param type domain-specific type of data
			 * @param data payload as bytes
			 */
			public static createExternal(domain: string, type: string, data: native.Array<number>): android.nfc.NdefRecord;
			/**
			 * Returns the 3-bit TNF.
			 */
			public getTnf(): number;
			/**
			 * Returns the variable length Type field.
			 */
			public getType(): native.Array<number>;
			/**
			 * Returns the variable length ID.
			 */
			public getId(): native.Array<number>;
			/**
			 * Returns the variable length payload.
			 */
			public getPayload(): native.Array<number>;
			public toByteArray(): native.Array<number>;
			public toMimeType(): string;
			public toUri(): android.net.Uri;
			/**
			 * @param buffer ByteBuffer to read from
			 * @param ignoreMbMe ignore MB and ME flags, and read only 1 complete record
			 */
			static parse(buffer: java.nio.ByteBuffer, ignoreMbMe: boolean): native.Array<android.nfc.NdefRecord>;
			static validateTnf(tnf: number, type: native.Array<number>, id: native.Array<number>, payload: native.Array<number>): string;
			writeToByteBuffer(buffer: java.nio.ByteBuffer, mb: boolean, me: boolean): void;
			/**
			 * Get byte length of serialized record.
			 */
			getByteLength(): number;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public hashCode(): number;
			/**
			 * Returns true if the specified NDEF Record contains identical tnf, type, id and payload fields.
			 */
			public equals(obj: any): boolean;
			public toString(): string;
		}
		/**
		 * Wraps information associated with any NFC event.
		 */
		export class NfcEvent extends java.lang.Object {
			/**
			 * The NfcAdapter associated with the NFC event.
			 */
			nfcAdapter: android.nfc.NfcAdapter;
			static class: java.lang.Class<android.nfc.NfcEvent>;
		}
		/**
		 * High level manager used to obtain an instance of an NfcAdapter.
		 */
		export class NfcManager extends java.lang.Object {
			static class: java.lang.Class<android.nfc.NfcManager>;
			/**
			 * Get the default NFC Adapter for this device.
			 */
			public getDefaultAdapter(): android.nfc.NfcAdapter;
		}
		/**
		 * Represents an immutable NDEF Message.
		 */
		export class NdefMessage extends java.lang.Object implements android.os.IParcelable {
			/**
			 * @param data raw bytes to parse
			 */
			constructor(data: native.Array<number>);
			/**
			 * Construct an NDEF Message from one or more NDEF Records.
			 * @param record first record (mandatory)
			 * @param records additional records (optional)
			 */
			constructor(record: android.nfc.NdefRecord, records: native.Array<android.nfc.NdefRecord>);
			static CREATOR: android.os.Parcelable.ICreator<android.nfc.NdefMessage>;
			static class: java.lang.Class<android.nfc.NdefMessage>;
			public getRecords(): native.Array<android.nfc.NdefRecord>;
			/**
			 * Return the length of this NDEF Message if it is written to a byte array
			 */
			public getByteArrayLength(): number;
			public toByteArray(): native.Array<number>;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public hashCode(): number;
			/**
			 * Returns true if the specified NDEF Message contains identical NDEF Records.
			 */
			public equals(obj: any): boolean;
			public toString(): string;
		}
		/**
		 * Represents the local NFC adapter.
		 */
		export class NfcAdapter extends java.lang.Object {
			/**
			 * Intent to start an activity when a tag with NDEF payload is discovered.
			 */
			static ACTION_NDEF_DISCOVERED: string;
			/**
			 * Intent to start an activity when a tag is discovered and activities are registered for the specific technologies on the tag.
			 */
			static ACTION_TECH_DISCOVERED: string;
			/**
			 * Intent to start an activity when a tag is discovered.
			 */
			static ACTION_TAG_DISCOVERED: string;
			/**
			 * Mandatory extra containing the Tag that was discovered for the #ACTION_NDEF_DISCOVERED, #ACTION_TECH_DISCOVERED, and #ACTION_TAG_DISCOVERED intents.
			 */
			static EXTRA_TAG: string;
			static EXTRA_NDEF_MESSAGES: string;
			/**
			 * Optional extra containing a byte array containing the ID of the discovered tag for the #ACTION_NDEF_DISCOVERED, #ACTION_TECH_DISCOVERED, and #ACTION_TAG_DISCOVERED intents.
			 */
			static EXTRA_ID: string;
			static class: java.lang.Class<android.nfc.NfcAdapter>;
			/**
			 * Helper to get the default NFC Adapter.
			 * @param context the calling application's context
			 */
			public static getDefaultAdapter(context: android.content.Context): android.nfc.NfcAdapter;
			/**
			 * Return true if this NFC Adapter has any features enabled.
			 */
			public isEnabled(): boolean;
			/**
			 * Set one or more Uris to send using Android Beam (TM). Every Uri you provide must have either scheme 'file' or scheme 'content'.
			 * @param uris an array of Uri(s) to push over Android Beam
			 * @param activity activity for which the Uri(s) will be pushed
			 */
			public setBeamPushUris(uris: native.Array<android.net.Uri>, activity: android.app.Activity): void;
			/**
			 * Set a callback that will dynamically generate one or more Uris to send using Android Beam (TM). Every Uri the callback provides must have either scheme 'file' or scheme 'content'.
			 * @param callback callback, or null to disable
			 * @param activity activity for which the Uri(s) will be pushed
			 */
			public setBeamPushUrisCallback(callback: android.nfc.NfcAdapter.ICreateBeamUrisCallback, activity: android.app.Activity): void;
			/**
			 * Set a static NdefMessage to send using Android Beam (TM).
			 * @param message NDEF message to push over NFC, or null to disable
			 * @param activity activity for which the NDEF message will be pushed
			 * @param activities optional additional activities, however we strongly recommend
			 */
			public setNdefPushMessage(message: android.nfc.NdefMessage, activity: android.app.Activity, activities: native.Array<android.app.Activity>): void;
			/**
			 * Set a callback that dynamically generates NDEF messages to send using Android Beam (TM).
			 * @param callback callback, or null to disable
			 * @param activity activity for which the NDEF message will be pushed
			 * @param activities optional additional activities, however we strongly recommend
			 */
			public setNdefPushMessageCallback(callback: android.nfc.NfcAdapter.ICreateNdefMessageCallback, activity: android.app.Activity, activities: native.Array<android.app.Activity>): void;
			/**
			 * Set a callback on successful Android Beam (TM).
			 * @param callback callback, or null to disable
			 * @param activity activity for which the NDEF message will be pushed
			 * @param activities optional additional activities, however we strongly recommend
			 */
			public setOnNdefPushCompleteCallback(callback: android.nfc.NfcAdapter.IOnNdefPushCompleteCallback, activity: android.app.Activity, activities: native.Array<android.app.Activity>): void;
			/**
			 * Enable foreground dispatch to the given Activity.
			 * @param activity the Activity to dispatch to
			 * @param intent the PendingIntent to start for the dispatch
			 * @param filters the IntentFilters to override dispatching for, or null to always dispatch
			 * @param techLists the tech lists used to perform matching for dispatching of the
			 */
			public enableForegroundDispatch(activity: android.app.Activity, intent: android.app.PendingIntent, filters: native.Array<android.content.IntentFilter>, techLists: native.Array<native.Array<string>>): void;
			/**
			 * Disable foreground dispatch to the given activity.
			 * @param activity the Activity to disable dispatch to
			 */
			public disableForegroundDispatch(activity: android.app.Activity): void;
			disableForegroundDispatchInternal(activity: android.app.Activity, force: boolean): void;
			/**
			 * Enable NDEF message push over NFC while this Activity is in the foreground.
			 * @param activity foreground activity
			 * @param message a NDEF Message to push over NFC
			 */
			public enableForegroundNdefPush(activity: android.app.Activity, message: android.nfc.NdefMessage): void;
			/**
			 * Disable NDEF message push over P2P.
			 * @param activity the Foreground activity
			 */
			public disableForegroundNdefPush(activity: android.app.Activity): void;
			/**
			 * Return true if the NDEF Push (Android Beam) feature is enabled.
			 */
			public isNdefPushEnabled(): boolean;
			enforceResumed(activity: android.app.Activity): void;
			getSdkVersion(): number;
		}
		export module NfcAdapter {
			/**
			 * A callback to be invoked when another NFC device capable of NDEF push (Android Beam) is within range.
			 */
			interface ICreateNdefMessageCallback {
				/**
				 * Called to provide a NdefMessage to push.
				 * @param event {@link NfcEvent} with the {@link NfcEvent#nfcAdapter} field set
				 */
				createNdefMessage(event: android.nfc.NfcEvent): android.nfc.NdefMessage;
			}
			interface ICreateBeamUrisCallback {
				createBeamUris(event: android.nfc.NfcEvent): native.Array<android.net.Uri>;
			}
			/**
			 * A callback to be invoked when another NFC device capable of NDEF push (Android Beam) is within range.
			 */
			export class CreateNdefMessageCallback implements android.nfc.NfcAdapter.ICreateNdefMessageCallback {
				constructor(implementation: android.nfc.NfcAdapter.ICreateNdefMessageCallback);
				/**
				 * Called to provide a NdefMessage to push.
				 * @param event {@link NfcEvent} with the {@link NfcEvent#nfcAdapter} field set
				 */
				public createNdefMessage(event: android.nfc.NfcEvent): android.nfc.NdefMessage;
			}
			/**
			 * A callback to be invoked when the system successfully delivers your NdefMessage to another device. #setOnNdefPushCompleteCallback
			 */
			interface IOnNdefPushCompleteCallback {
				/**
				 * Called on successful NDEF push.
				 * @param event {@link NfcEvent} with the {@link NfcEvent#nfcAdapter} field set
				 */
				onNdefPushComplete(event: android.nfc.NfcEvent): void;
			}
			/**
			 * A callback to be invoked when the system successfully delivers your NdefMessage to another device. #setOnNdefPushCompleteCallback
			 */
			export class OnNdefPushCompleteCallback implements android.nfc.NfcAdapter.IOnNdefPushCompleteCallback {
				constructor(implementation: android.nfc.NfcAdapter.IOnNdefPushCompleteCallback);
				/**
				 * Called on successful NDEF push.
				 * @param event {@link NfcEvent} with the {@link NfcEvent#nfcAdapter} field set
				 */
				public onNdefPushComplete(event: android.nfc.NfcEvent): void;
			}
			export class CreateBeamUrisCallback implements android.nfc.NfcAdapter.ICreateBeamUrisCallback {
				constructor(implementation: android.nfc.NfcAdapter.ICreateBeamUrisCallback);
				public createBeamUris(event: android.nfc.NfcEvent): native.Array<android.net.Uri>;
			}
		}
		/**
		 * Represents an NFC tag that has been discovered.
		 */
		export class Tag extends java.lang.Object implements android.os.IParcelable {
			static CREATOR: android.os.Parcelable.ICreator<android.nfc.Tag>;
			static class: java.lang.Class<android.nfc.Tag>;
			/**
			 * Get the Tag Identifier (if it has one).
			 */
			public getId(): native.Array<number>;
			/**
			 * Get the technologies available in this tag, as fully qualified class names.
			 */
			public getTechList(): native.Array<string>;
			/**
			 * Human-readable description of the tag, for debugging.
			 */
			public toString(): string;
			static readBytesWithNull(input: android.os.Parcel): native.Array<number>;
			static writeBytesWithNull(out: android.os.Parcel, b: native.Array<number>): void;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export class FormatException extends java.lang.Exception {
			constructor();
			constructor(message: string);
			constructor(message: string, e: java.lang.Throwable);
			static class: java.lang.Class<android.nfc.FormatException>;
		}
		export class TagLostException extends java.io.IOException {
			constructor();
			constructor(message: string);
			static class: java.lang.Class<android.nfc.TagLostException>;
		}
	}
	export module sax {
		/**
		 * Listens for the end of elements.
		 */
		export class EndElementListener implements android.sax.IEndElementListener {
			constructor(implementation: android.sax.IEndElementListener);
			/**
			 * Invoked at the end of an element.
			 */
			public end(): void;
		}
		/**
		 * Listens for the beginning and ending of elements.
		 */
		interface IElementListener extends android.sax.IStartElementListener, android.sax.IEndElementListener {
			/**
			 * Invoked at the beginning of an element.
			 * @param attributes from the element
			 */
			start(attributes: org.xml.sax.IAttributes): void;
			/**
			 * Invoked at the end of an element.
			 */
			end(): void;
		}
		/**
		 * An XML element. Provides access to child elements and hooks to listen for events related to this element.
		 */
		export class Element extends java.lang.Object {
			static class: java.lang.Class<android.sax.Element>;
			/**
			 * Gets the child element with the given name. Uses an empty string as the namespace.
			 */
			public getChild(localName: string): android.sax.Element;
			/**
			 * Gets the child element with the given name.
			 */
			public getChild(uri: string, localName: string): android.sax.Element;
			/**
			 * Gets the child element with the given name. Uses an empty string as the namespace. We will throw a org.xml.sax.SAXException at parsing time if the specified child is missing. This helps you ensure that your listeners are called.
			 */
			public requireChild(localName: string): android.sax.Element;
			/**
			 * Gets the child element with the given name. We will throw a org.xml.sax.SAXException at parsing time if the specified child is missing. This helps you ensure that your listeners are called.
			 */
			public requireChild(uri: string, localName: string): android.sax.Element;
			/**
			 * Sets start and end element listeners at the same time.
			 */
			public setElementListener(elementListener: android.sax.IElementListener): void;
			/**
			 * Sets start and end text element listeners at the same time.
			 */
			public setTextElementListener(elementListener: android.sax.ITextElementListener): void;
			/**
			 * Sets a listener for the start of this element.
			 */
			public setStartElementListener(startElementListener: android.sax.IStartElementListener): void;
			/**
			 * Sets a listener for the end of this element.
			 */
			public setEndElementListener(endElementListener: android.sax.IEndElementListener): void;
			/**
			 * Sets a listener for the end of this text element.
			 */
			public setEndTextElementListener(endTextElementListener: android.sax.IEndTextElementListener): void;
			public toString(): string;
			static toString(uri: string, localName: string): string;
			/**
			 * Clears flags on required children.
			 */
			resetRequiredChildren(): void;
			/**
			 * Throws an exception if a required child was not present.
			 */
			checkRequiredChildren(locator: org.xml.sax.ILocator): void;
		}
		/**
		 * An XML parse exception which includes the line number in the message.
		 */
		export class BadXmlException extends org.xml.sax.SAXParseException {
			constructor(message: string, locator: org.xml.sax.ILocator);
			static class: java.lang.Class<android.sax.BadXmlException>;
			public getMessage(): string;
		}
		/**
		 * Listens for the beginning of elements.
		 */
		interface IStartElementListener {
			/**
			 * Invoked at the beginning of an element.
			 * @param attributes from the element
			 */
			start(attributes: org.xml.sax.IAttributes): void;
		}
		export class ExpatPerformanceTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.sax.ExpatPerformanceTest>;
			public setUp(): void;
			public testPerformance(): void;
		}
		export class SafeSaxTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.sax.SafeSaxTest>;
			public testListener(): void;
			public testMissingRequiredChild(): void;
			public testMixedContent(): void;
			public testPerformance(): void;
		}
		export module SafeSaxTest {
			export class TextElementCounter extends java.lang.Object implements android.sax.ITextElementListener {
				static class: java.lang.Class<android.sax.SafeSaxTest.TextElementCounter>;
				public start(attributes: org.xml.sax.IAttributes): void;
				public end(body: string): void;
			}
			export class VideoAdapter extends java.lang.Object {
				static class: java.lang.Class<android.sax.SafeSaxTest.VideoAdapter>;
				public addVideo(video: android.sax.SafeSaxTest.YouTubeVideo): void;
			}
			export class HandlerFactory extends java.lang.Object {
				static class: java.lang.Class<android.sax.SafeSaxTest.HandlerFactory>;
				VideoListener: {
	new (videoAdapter: android.sax.SafeSaxTest.VideoAdapter): android.sax.SafeSaxTest.HandlerFactory.VideoListener;
};
				public newContentHandler(videoAdapter: android.sax.SafeSaxTest.VideoAdapter): org.xml.sax.IContentHandler;
			}
			export module HandlerFactory {
				export class VideoListener extends java.lang.Object implements android.sax.IElementListener {
					static class: java.lang.Class<android.sax.SafeSaxTest.HandlerFactory.VideoListener>;
					public start(attributes: org.xml.sax.IAttributes): void;
					public end(): void;
				}
			}
			export class YouTubeContentHandler extends org.xml.sax.helpers.DefaultHandler {
				constructor(videoAdapter: android.sax.SafeSaxTest.VideoAdapter);
				static class: java.lang.Class<android.sax.SafeSaxTest.YouTubeContentHandler>;
				public startElement(uri: string, localName: string, qName: string, attributes: org.xml.sax.IAttributes): void;
				public characters(text: native.Array<string>, start: number, length: number): void;
				takeText(): string;
				public endElement(uri: string, localName: string, qName: string): void;
			}
			export class YouTubeVideo extends java.lang.Object {
				videoId: string;
				videoUrl: string;
				playbackUrl: string;
				thumbnailUrl: string;
				title: string;
				bitmap: android.graphics.Bitmap;
				lengthInSeconds: number;
				viewCount: number;
				rating: number;
				triedToLoadThumbnail: java.lang.Boolean;
				authorName: string;
				dateAdded: android.text.format.Time;
				category: string;
				tags: string;
				description: string;
				static class: java.lang.Class<android.sax.SafeSaxTest.YouTubeVideo>;
			}
			export class ElementCounter extends java.lang.Object implements android.sax.IElementListener {
				static class: java.lang.Class<android.sax.SafeSaxTest.ElementCounter>;
				public start(attributes: org.xml.sax.IAttributes): void;
				public end(): void;
			}
		}
		/**
		 * Listens for the end of text elements.
		 */
		interface IEndTextElementListener {
			/**
			 * Invoked at the end of a text element with the body of the element.
			 * @param body of the element
			 */
			end(body: string): void;
		}
		/**
		 * Listens for the end of elements.
		 */
		interface IEndElementListener {
			/**
			 * Invoked at the end of an element.
			 */
			end(): void;
		}
		/**
		 * Listens for the beginning of elements.
		 */
		export class StartElementListener implements android.sax.IStartElementListener {
			constructor(implementation: android.sax.IStartElementListener);
			/**
			 * Invoked at the beginning of an element.
			 * @param attributes from the element
			 */
			public start(attributes: org.xml.sax.IAttributes): void;
		}
		/**
		 * The root XML element. The entry point for this API. Not safe for concurrent use.
		 */
		export class RootElement extends android.sax.Element {
			/**
			 * Constructs a new root element with the given name.
			 * @param uri the namespace
			 * @param localName the local name
			 */
			constructor(uri: string, localName: string);
			/**
			 * Constructs a new root element with the given name. Uses an empty string as the namespace.
			 * @param localName the local name
			 */
			constructor(localName: string);
			static class: java.lang.Class<android.sax.RootElement>;
			/**
			 * Gets the SAX ContentHandler. Pass this to your SAX parser.
			 */
			public getContentHandler(): org.xml.sax.IContentHandler;
		}
		export module RootElement {
			export class Handler extends org.xml.sax.helpers.DefaultHandler {
				static class: java.lang.Class<android.sax.RootElement.Handler>;
				public setDocumentLocator(locator: org.xml.sax.ILocator): void;
				public startElement(uri: string, localName: string, qName: string, attributes: org.xml.sax.IAttributes): void;
				startRoot(uri: string, localName: string, attributes: org.xml.sax.IAttributes): void;
				start(e: android.sax.Element, attributes: org.xml.sax.IAttributes): void;
				public characters(buffer: native.Array<string>, start: number, length: number): void;
				public endElement(uri: string, localName: string, qName: string): void;
			}
		}
		/**
		 * Listens for the beginning and ending of text elements.
		 */
		export class TextElementListener implements android.sax.IStartElementListener, android.sax.IEndTextElementListener, android.sax.ITextElementListener {
			constructor(implementation: android.sax.ITextElementListener);
			/**
			 * Invoked at the beginning of an element.
			 * @param attributes from the element
			 */
			start(attributes: org.xml.sax.IAttributes): void;
			/**
			 * Invoked at the end of a text element with the body of the element.
			 * @param body of the element
			 */
			end(body: string): void;
		}
		/**
		 * Listens for the beginning and ending of text elements.
		 */
		interface ITextElementListener extends android.sax.IStartElementListener, android.sax.IEndTextElementListener {
			/**
			 * Invoked at the beginning of an element.
			 * @param attributes from the element
			 */
			start(attributes: org.xml.sax.IAttributes): void;
			/**
			 * Invoked at the end of a text element with the body of the element.
			 * @param body of the element
			 */
			end(body: string): void;
		}
		/**
		 * Contains element children. Using this class instead of HashMap results in measurably better performance.
		 */
		export class Children extends java.lang.Object {
			static class: java.lang.Class<android.sax.Children>;
			/**
			 * Looks up a child by name and creates a new one if necessary.
			 */
			getOrCreate(parent: android.sax.Element, uri: string, localName: string): android.sax.Element;
			/**
			 * Looks up a child by name.
			 */
			get(uri: string, localName: string): android.sax.Element;
		}
		export module Children {
			export class Child extends android.sax.Element {
				static class: java.lang.Class<android.sax.Children.Child>;
			}
		}
		/**
		 * Listens for the beginning and ending of elements.
		 */
		export class ElementListener implements android.sax.IStartElementListener, android.sax.IEndElementListener, android.sax.IElementListener {
			constructor(implementation: android.sax.IElementListener);
			/**
			 * Invoked at the beginning of an element.
			 * @param attributes from the element
			 */
			start(attributes: org.xml.sax.IAttributes): void;
			/**
			 * Invoked at the end of an element.
			 */
			end(): void;
		}
		/**
		 * Listens for the end of text elements.
		 */
		export class EndTextElementListener implements android.sax.IEndTextElementListener {
			constructor(implementation: android.sax.IEndTextElementListener);
			/**
			 * Invoked at the end of a text element with the body of the element.
			 * @param body of the element
			 */
			public end(body: string): void;
		}
	}
	export module opengl {
		/**
		 * EGL 1.4
		 */
		export class EGL14 extends java.lang.Object {
			constructor();
			static EGL_DEFAULT_DISPLAY: number;
			static EGL_NO_CONTEXT: android.opengl.EGLContext;
			static EGL_NO_DISPLAY: android.opengl.EGLDisplay;
			static EGL_NO_SURFACE: android.opengl.EGLSurface;
			static EGL_FALSE: number;
			static EGL_TRUE: number;
			static EGL_SUCCESS: number;
			static EGL_NOT_INITIALIZED: number;
			static EGL_BAD_ACCESS: number;
			static EGL_BAD_ALLOC: number;
			static EGL_BAD_ATTRIBUTE: number;
			static EGL_BAD_CONFIG: number;
			static EGL_BAD_CONTEXT: number;
			static EGL_BAD_CURRENT_SURFACE: number;
			static EGL_BAD_DISPLAY: number;
			static EGL_BAD_MATCH: number;
			static EGL_BAD_NATIVE_PIXMAP: number;
			static EGL_BAD_NATIVE_WINDOW: number;
			static EGL_BAD_PARAMETER: number;
			static EGL_BAD_SURFACE: number;
			static EGL_CONTEXT_LOST: number;
			static EGL_BUFFER_SIZE: number;
			static EGL_ALPHA_SIZE: number;
			static EGL_BLUE_SIZE: number;
			static EGL_GREEN_SIZE: number;
			static EGL_RED_SIZE: number;
			static EGL_DEPTH_SIZE: number;
			static EGL_STENCIL_SIZE: number;
			static EGL_CONFIG_CAVEAT: number;
			static EGL_CONFIG_ID: number;
			static EGL_LEVEL: number;
			static EGL_MAX_PBUFFER_HEIGHT: number;
			static EGL_MAX_PBUFFER_PIXELS: number;
			static EGL_MAX_PBUFFER_WIDTH: number;
			static EGL_NATIVE_RENDERABLE: number;
			static EGL_NATIVE_VISUAL_ID: number;
			static EGL_NATIVE_VISUAL_TYPE: number;
			static EGL_SAMPLES: number;
			static EGL_SAMPLE_BUFFERS: number;
			static EGL_SURFACE_TYPE: number;
			static EGL_TRANSPARENT_TYPE: number;
			static EGL_TRANSPARENT_BLUE_VALUE: number;
			static EGL_TRANSPARENT_GREEN_VALUE: number;
			static EGL_TRANSPARENT_RED_VALUE: number;
			static EGL_NONE: number;
			static EGL_BIND_TO_TEXTURE_RGB: number;
			static EGL_BIND_TO_TEXTURE_RGBA: number;
			static EGL_MIN_SWAP_INTERVAL: number;
			static EGL_MAX_SWAP_INTERVAL: number;
			static EGL_LUMINANCE_SIZE: number;
			static EGL_ALPHA_MASK_SIZE: number;
			static EGL_COLOR_BUFFER_TYPE: number;
			static EGL_RENDERABLE_TYPE: number;
			static EGL_MATCH_NATIVE_PIXMAP: number;
			static EGL_CONFORMANT: number;
			static EGL_SLOW_CONFIG: number;
			static EGL_NON_CONFORMANT_CONFIG: number;
			static EGL_TRANSPARENT_RGB: number;
			static EGL_RGB_BUFFER: number;
			static EGL_LUMINANCE_BUFFER: number;
			static EGL_NO_TEXTURE: number;
			static EGL_TEXTURE_RGB: number;
			static EGL_TEXTURE_RGBA: number;
			static EGL_TEXTURE_2D: number;
			static EGL_PBUFFER_BIT: number;
			static EGL_PIXMAP_BIT: number;
			static EGL_WINDOW_BIT: number;
			static EGL_VG_COLORSPACE_LINEAR_BIT: number;
			static EGL_VG_ALPHA_FORMAT_PRE_BIT: number;
			static EGL_MULTISAMPLE_RESOLVE_BOX_BIT: number;
			static EGL_SWAP_BEHAVIOR_PRESERVED_BIT: number;
			static EGL_OPENGL_ES_BIT: number;
			static EGL_OPENVG_BIT: number;
			static EGL_OPENGL_ES2_BIT: number;
			static EGL_OPENGL_BIT: number;
			static EGL_VENDOR: number;
			static EGL_VERSION: number;
			static EGL_EXTENSIONS: number;
			static EGL_CLIENT_APIS: number;
			static EGL_HEIGHT: number;
			static EGL_WIDTH: number;
			static EGL_LARGEST_PBUFFER: number;
			static EGL_TEXTURE_FORMAT: number;
			static EGL_TEXTURE_TARGET: number;
			static EGL_MIPMAP_TEXTURE: number;
			static EGL_MIPMAP_LEVEL: number;
			static EGL_RENDER_BUFFER: number;
			static EGL_VG_COLORSPACE: number;
			static EGL_VG_ALPHA_FORMAT: number;
			static EGL_HORIZONTAL_RESOLUTION: number;
			static EGL_VERTICAL_RESOLUTION: number;
			static EGL_PIXEL_ASPECT_RATIO: number;
			static EGL_SWAP_BEHAVIOR: number;
			static EGL_MULTISAMPLE_RESOLVE: number;
			static EGL_BACK_BUFFER: number;
			static EGL_SINGLE_BUFFER: number;
			static EGL_VG_COLORSPACE_sRGB: number;
			static EGL_VG_COLORSPACE_LINEAR: number;
			static EGL_VG_ALPHA_FORMAT_NONPRE: number;
			static EGL_VG_ALPHA_FORMAT_PRE: number;
			static EGL_DISPLAY_SCALING: number;
			static EGL_BUFFER_PRESERVED: number;
			static EGL_BUFFER_DESTROYED: number;
			static EGL_OPENVG_IMAGE: number;
			static EGL_CONTEXT_CLIENT_TYPE: number;
			static EGL_CONTEXT_CLIENT_VERSION: number;
			static EGL_MULTISAMPLE_RESOLVE_DEFAULT: number;
			static EGL_MULTISAMPLE_RESOLVE_BOX: number;
			static EGL_OPENGL_ES_API: number;
			static EGL_OPENVG_API: number;
			static EGL_OPENGL_API: number;
			static EGL_DRAW: number;
			static EGL_READ: number;
			static EGL_CORE_NATIVE_ENGINE: number;
			static class: java.lang.Class<android.opengl.EGL14>;
			public static eglGetError(): number;
			public static eglGetDisplay(display_id: number): android.opengl.EGLDisplay;
			public static eglInitialize(dpy: android.opengl.EGLDisplay, major: native.Array<number>, majorOffset: number, minor: native.Array<number>, minorOffset: number): boolean;
			public static eglTerminate(dpy: android.opengl.EGLDisplay): boolean;
			public static eglQueryString(dpy: android.opengl.EGLDisplay, name: number): string;
			public static eglGetConfigs(dpy: android.opengl.EGLDisplay, configs: native.Array<android.opengl.EGLConfig>, configsOffset: number, config_size: number, num_config: native.Array<number>, num_configOffset: number): boolean;
			public static eglChooseConfig(dpy: android.opengl.EGLDisplay, attrib_list: native.Array<number>, attrib_listOffset: number, configs: native.Array<android.opengl.EGLConfig>, configsOffset: number, config_size: number, num_config: native.Array<number>, num_configOffset: number): boolean;
			public static eglGetConfigAttrib(dpy: android.opengl.EGLDisplay, config: android.opengl.EGLConfig, attribute: number, value: native.Array<number>, offset: number): boolean;
			public static eglCreateWindowSurface(dpy: android.opengl.EGLDisplay, config: android.opengl.EGLConfig, win: any, attrib_list: native.Array<number>, offset: number): android.opengl.EGLSurface;
			public static eglCreatePbufferSurface(dpy: android.opengl.EGLDisplay, config: android.opengl.EGLConfig, attrib_list: native.Array<number>, offset: number): android.opengl.EGLSurface;
			public static eglCreatePixmapSurface(dpy: android.opengl.EGLDisplay, config: android.opengl.EGLConfig, pixmap: number, attrib_list: native.Array<number>, offset: number): android.opengl.EGLSurface;
			public static eglDestroySurface(dpy: android.opengl.EGLDisplay, surface: android.opengl.EGLSurface): boolean;
			public static eglQuerySurface(dpy: android.opengl.EGLDisplay, surface: android.opengl.EGLSurface, attribute: number, value: native.Array<number>, offset: number): boolean;
			public static eglBindAPI(api: number): boolean;
			public static eglQueryAPI(): number;
			public static eglWaitClient(): boolean;
			public static eglReleaseThread(): boolean;
			public static eglCreatePbufferFromClientBuffer(dpy: android.opengl.EGLDisplay, buftype: number, buffer: number, config: android.opengl.EGLConfig, attrib_list: native.Array<number>, offset: number): android.opengl.EGLSurface;
			public static eglSurfaceAttrib(dpy: android.opengl.EGLDisplay, surface: android.opengl.EGLSurface, attribute: number, value: number): boolean;
			public static eglBindTexImage(dpy: android.opengl.EGLDisplay, surface: android.opengl.EGLSurface, buffer: number): boolean;
			public static eglReleaseTexImage(dpy: android.opengl.EGLDisplay, surface: android.opengl.EGLSurface, buffer: number): boolean;
			public static eglSwapInterval(dpy: android.opengl.EGLDisplay, interval: number): boolean;
			public static eglCreateContext(dpy: android.opengl.EGLDisplay, config: android.opengl.EGLConfig, share_context: android.opengl.EGLContext, attrib_list: native.Array<number>, offset: number): android.opengl.EGLContext;
			public static eglDestroyContext(dpy: android.opengl.EGLDisplay, ctx: android.opengl.EGLContext): boolean;
			public static eglMakeCurrent(dpy: android.opengl.EGLDisplay, draw: android.opengl.EGLSurface, read: android.opengl.EGLSurface, ctx: android.opengl.EGLContext): boolean;
			public static eglGetCurrentContext(): android.opengl.EGLContext;
			public static eglGetCurrentSurface(readdraw: number): android.opengl.EGLSurface;
			public static eglGetCurrentDisplay(): android.opengl.EGLDisplay;
			public static eglQueryContext(dpy: android.opengl.EGLDisplay, ctx: android.opengl.EGLContext, attribute: number, value: native.Array<number>, offset: number): boolean;
			public static eglWaitGL(): boolean;
			public static eglWaitNative(engine: number): boolean;
			public static eglSwapBuffers(dpy: android.opengl.EGLDisplay, surface: android.opengl.EGLSurface): boolean;
			public static eglCopyBuffers(dpy: android.opengl.EGLDisplay, surface: android.opengl.EGLSurface, target: number): boolean;
		}
		export class GLES11Ext extends java.lang.Object {
			constructor();
			static GL_BLEND_EQUATION_RGB_OES: number;
			static GL_BLEND_EQUATION_ALPHA_OES: number;
			static GL_BLEND_DST_RGB_OES: number;
			static GL_BLEND_SRC_RGB_OES: number;
			static GL_BLEND_DST_ALPHA_OES: number;
			static GL_BLEND_SRC_ALPHA_OES: number;
			static GL_BLEND_EQUATION_OES: number;
			static GL_FUNC_ADD_OES: number;
			static GL_FUNC_SUBTRACT_OES: number;
			static GL_FUNC_REVERSE_SUBTRACT_OES: number;
			static GL_ETC1_RGB8_OES: number;
			static GL_DEPTH_COMPONENT24_OES: number;
			static GL_DEPTH_COMPONENT32_OES: number;
			static GL_TEXTURE_CROP_RECT_OES: number;
			static GL_FIXED_OES: number;
			static GL_NONE_OES: number;
			static GL_FRAMEBUFFER_OES: number;
			static GL_RENDERBUFFER_OES: number;
			static GL_RGBA4_OES: number;
			static GL_RGB5_A1_OES: number;
			static GL_RGB565_OES: number;
			static GL_DEPTH_COMPONENT16_OES: number;
			static GL_RENDERBUFFER_WIDTH_OES: number;
			static GL_RENDERBUFFER_HEIGHT_OES: number;
			static GL_RENDERBUFFER_INTERNAL_FORMAT_OES: number;
			static GL_RENDERBUFFER_RED_SIZE_OES: number;
			static GL_RENDERBUFFER_GREEN_SIZE_OES: number;
			static GL_RENDERBUFFER_BLUE_SIZE_OES: number;
			static GL_RENDERBUFFER_ALPHA_SIZE_OES: number;
			static GL_RENDERBUFFER_DEPTH_SIZE_OES: number;
			static GL_RENDERBUFFER_STENCIL_SIZE_OES: number;
			static GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES: number;
			static GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES: number;
			static GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES: number;
			static GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES: number;
			static GL_COLOR_ATTACHMENT0_OES: number;
			static GL_DEPTH_ATTACHMENT_OES: number;
			static GL_STENCIL_ATTACHMENT_OES: number;
			static GL_FRAMEBUFFER_COMPLETE_OES: number;
			static GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES: number;
			static GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES: number;
			static GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES: number;
			static GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES: number;
			static GL_FRAMEBUFFER_UNSUPPORTED_OES: number;
			static GL_FRAMEBUFFER_BINDING_OES: number;
			static GL_RENDERBUFFER_BINDING_OES: number;
			static GL_MAX_RENDERBUFFER_SIZE_OES: number;
			static GL_INVALID_FRAMEBUFFER_OPERATION_OES: number;
			static GL_WRITE_ONLY_OES: number;
			static GL_BUFFER_ACCESS_OES: number;
			static GL_BUFFER_MAPPED_OES: number;
			static GL_BUFFER_MAP_POINTER_OES: number;
			static GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: number;
			static GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: number;
			static GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: number;
			static GL_MAX_VERTEX_UNITS_OES: number;
			static GL_MAX_PALETTE_MATRICES_OES: number;
			static GL_MATRIX_PALETTE_OES: number;
			static GL_MATRIX_INDEX_ARRAY_OES: number;
			static GL_WEIGHT_ARRAY_OES: number;
			static GL_CURRENT_PALETTE_MATRIX_OES: number;
			static GL_MATRIX_INDEX_ARRAY_SIZE_OES: number;
			static GL_MATRIX_INDEX_ARRAY_TYPE_OES: number;
			static GL_MATRIX_INDEX_ARRAY_STRIDE_OES: number;
			static GL_MATRIX_INDEX_ARRAY_POINTER_OES: number;
			static GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: number;
			static GL_WEIGHT_ARRAY_SIZE_OES: number;
			static GL_WEIGHT_ARRAY_TYPE_OES: number;
			static GL_WEIGHT_ARRAY_STRIDE_OES: number;
			static GL_WEIGHT_ARRAY_POINTER_OES: number;
			static GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: number;
			static GL_DEPTH_STENCIL_OES: number;
			static GL_UNSIGNED_INT_24_8_OES: number;
			static GL_DEPTH24_STENCIL8_OES: number;
			static GL_RGB8_OES: number;
			static GL_RGBA8_OES: number;
			static GL_STENCIL_INDEX1_OES: number;
			static GL_STENCIL_INDEX4_OES: number;
			static GL_STENCIL_INDEX8_OES: number;
			static GL_INCR_WRAP_OES: number;
			static GL_DECR_WRAP_OES: number;
			static GL_NORMAL_MAP_OES: number;
			static GL_REFLECTION_MAP_OES: number;
			static GL_TEXTURE_CUBE_MAP_OES: number;
			static GL_TEXTURE_BINDING_CUBE_MAP_OES: number;
			static GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES: number;
			static GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES: number;
			static GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES: number;
			static GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES: number;
			static GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES: number;
			static GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES: number;
			static GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES: number;
			static GL_TEXTURE_GEN_MODE_OES: number;
			static GL_TEXTURE_GEN_STR_OES: number;
			static GL_MIRRORED_REPEAT_OES: number;
			static GL_3DC_X_AMD: number;
			static GL_3DC_XY_AMD: number;
			static GL_ATC_RGB_AMD: number;
			static GL_ATC_RGBA_EXPLICIT_ALPHA_AMD: number;
			static GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: number;
			static GL_TEXTURE_MAX_ANISOTROPY_EXT: number;
			static GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: number;
			static GL_BGRA: number;
			static GL_TEXTURE_EXTERNAL_OES: number;
			static GL_SAMPLER_EXTERNAL_OES: number;
			static GL_TEXTURE_BINDING_EXTERNAL_OES: number;
			static GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES: number;
			static class: java.lang.Class<android.opengl.GLES11Ext>;
			public static glBlendEquationSeparateOES(modeRGB: number, modeAlpha: number): void;
			public static glBlendFuncSeparateOES(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
			public static glBlendEquationOES(mode: number): void;
			public static glDrawTexsOES(x: number, y: number, z: number, width: number, height: number): void;
			public static glDrawTexiOES(x: number, y: number, z: number, width: number, height: number): void;
			public static glDrawTexxOES(x: number, y: number, z: number, width: number, height: number): void;
			public static glDrawTexsvOES(coords: native.Array<number>, offset: number): void;
			public static glDrawTexsvOES(coords: java.nio.ShortBuffer): void;
			public static glDrawTexivOES(coords: native.Array<number>, offset: number): void;
			public static glDrawTexivOES(coords: java.nio.IntBuffer): void;
			public static glDrawTexxvOES(coords: native.Array<number>, offset: number): void;
			public static glDrawTexxvOES(coords: java.nio.IntBuffer): void;
			public static glDrawTexfOES(x: number, y: number, z: number, width: number, height: number): void;
			public static glDrawTexfvOES(coords: native.Array<number>, offset: number): void;
			public static glDrawTexfvOES(coords: java.nio.FloatBuffer): void;
			public static glEGLImageTargetTexture2DOES(target: number, image: java.nio.Buffer): void;
			public static glEGLImageTargetRenderbufferStorageOES(target: number, image: java.nio.Buffer): void;
			public static glAlphaFuncxOES(func: number, ref: number): void;
			public static glClearColorxOES(red: number, green: number, blue: number, alpha: number): void;
			public static glClearDepthxOES(depth: number): void;
			public static glClipPlanexOES(plane: number, equation: native.Array<number>, offset: number): void;
			public static glClipPlanexOES(plane: number, equation: java.nio.IntBuffer): void;
			public static glColor4xOES(red: number, green: number, blue: number, alpha: number): void;
			public static glDepthRangexOES(zNear: number, zFar: number): void;
			public static glFogxOES(pname: number, param: number): void;
			public static glFogxvOES(pname: number, params: native.Array<number>, offset: number): void;
			public static glFogxvOES(pname: number, params: java.nio.IntBuffer): void;
			public static glFrustumxOES(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glGetClipPlanexOES(pname: number, eqn: native.Array<number>, offset: number): void;
			public static glGetClipPlanexOES(pname: number, eqn: java.nio.IntBuffer): void;
			public static glGetFixedvOES(pname: number, params: native.Array<number>, offset: number): void;
			public static glGetFixedvOES(pname: number, params: java.nio.IntBuffer): void;
			public static glGetLightxvOES(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetLightxvOES(light: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetMaterialxvOES(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetMaterialxvOES(face: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexEnvxvOES(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexEnvxvOES(env: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexParameterxvOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexParameterxvOES(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glLightModelxOES(pname: number, param: number): void;
			public static glLightModelxvOES(pname: number, params: native.Array<number>, offset: number): void;
			public static glLightModelxvOES(pname: number, params: java.nio.IntBuffer): void;
			public static glLightxOES(light: number, pname: number, param: number): void;
			public static glLightxvOES(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glLightxvOES(light: number, pname: number, params: java.nio.IntBuffer): void;
			public static glLineWidthxOES(width: number): void;
			public static glLoadMatrixxOES(m: native.Array<number>, offset: number): void;
			public static glLoadMatrixxOES(m: java.nio.IntBuffer): void;
			public static glMaterialxOES(face: number, pname: number, param: number): void;
			public static glMaterialxvOES(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glMaterialxvOES(face: number, pname: number, params: java.nio.IntBuffer): void;
			public static glMultMatrixxOES(m: native.Array<number>, offset: number): void;
			public static glMultMatrixxOES(m: java.nio.IntBuffer): void;
			public static glMultiTexCoord4xOES(target: number, s: number, t: number, r: number, q: number): void;
			public static glNormal3xOES(nx: number, ny: number, nz: number): void;
			public static glOrthoxOES(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glPointParameterxOES(pname: number, param: number): void;
			public static glPointParameterxvOES(pname: number, params: native.Array<number>, offset: number): void;
			public static glPointParameterxvOES(pname: number, params: java.nio.IntBuffer): void;
			public static glPointSizexOES(size: number): void;
			public static glPolygonOffsetxOES(factor: number, units: number): void;
			public static glRotatexOES(angle: number, x: number, y: number, z: number): void;
			public static glSampleCoveragexOES(value: number, invert: boolean): void;
			public static glScalexOES(x: number, y: number, z: number): void;
			public static glTexEnvxOES(target: number, pname: number, param: number): void;
			public static glTexEnvxvOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexEnvxvOES(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glTexParameterxOES(target: number, pname: number, param: number): void;
			public static glTexParameterxvOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexParameterxvOES(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glTranslatexOES(x: number, y: number, z: number): void;
			public static glIsRenderbufferOES(renderbuffer: number): boolean;
			public static glBindRenderbufferOES(target: number, renderbuffer: number): void;
			public static glDeleteRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public static glDeleteRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			public static glGenRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public static glGenRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			public static glRenderbufferStorageOES(target: number, internalformat: number, width: number, height: number): void;
			public static glGetRenderbufferParameterivOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetRenderbufferParameterivOES(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glIsFramebufferOES(framebuffer: number): boolean;
			public static glBindFramebufferOES(target: number, framebuffer: number): void;
			public static glDeleteFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			public static glDeleteFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			public static glGenFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			public static glGenFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			public static glCheckFramebufferStatusOES(target: number): number;
			public static glFramebufferRenderbufferOES(target: number, attachment: number, renderbuffertarget: number, renderbuffer: number): void;
			public static glFramebufferTexture2DOES(target: number, attachment: number, textarget: number, texture: number, level: number): void;
			public static glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGenerateMipmapOES(target: number): void;
			public static glCurrentPaletteMatrixOES(matrixpaletteindex: number): void;
			public static glLoadPaletteFromModelViewMatrixOES(): void;
			public static glMatrixIndexPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public static glWeightPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public static glDepthRangefOES(zNear: number, zFar: number): void;
			public static glFrustumfOES(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glOrthofOES(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glClipPlanefOES(plane: number, equation: native.Array<number>, offset: number): void;
			public static glClipPlanefOES(plane: number, equation: java.nio.FloatBuffer): void;
			public static glGetClipPlanefOES(pname: number, eqn: native.Array<number>, offset: number): void;
			public static glGetClipPlanefOES(pname: number, eqn: java.nio.FloatBuffer): void;
			public static glClearDepthfOES(depth: number): void;
			public static glTexGenfOES(coord: number, pname: number, param: number): void;
			public static glTexGenfvOES(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexGenfvOES(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glTexGeniOES(coord: number, pname: number, param: number): void;
			public static glTexGenivOES(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexGenivOES(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public static glTexGenxOES(coord: number, pname: number, param: number): void;
			public static glTexGenxvOES(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexGenxvOES(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexGenfvOES(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexGenfvOES(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glGetTexGenivOES(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexGenivOES(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexGenxvOES(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexGenxvOES(coord: number, pname: number, params: java.nio.IntBuffer): void;
		}
		/**
		 * Wrapper class for native EGLSurface objects.
		 */
		export class EGLSurface extends android.opengl.EGLObjectHandle {
			static class: java.lang.Class<android.opengl.EGLSurface>;
			public equals(o: any): boolean;
		}
		export class GLUtils extends java.lang.Object {
			static class: java.lang.Class<android.opengl.GLUtils>;
			/**
			 * return the internal format as defined by OpenGL ES of the supplied bitmap.
			 * @param bitmap 
			 */
			public static getInternalFormat(bitmap: android.graphics.Bitmap): number;
			/**
			 * Return the type as defined by OpenGL ES of the supplied bitmap, if there is one. If the bitmap is stored in a compressed format, it may not have a valid OpenGL ES type. IllegalArgumentException if the bitmap does not have a type.
			 * @param bitmap 
			 */
			public static getType(bitmap: android.graphics.Bitmap): number;
			/**
			 * Calls glTexImage2D() on the current OpenGL context. If no context is current the behavior is the same as calling glTexImage2D() with no current context, that is, eglGetError() will return the appropriate error. Unlike glTexImage2D() bitmap cannot be null and will raise an exception in that case. All other parameters are identical to those used for glTexImage2D().
			 * @param target 
			 * @param level 
			 * @param internalformat 
			 * @param bitmap 
			 * @param border 
			 */
			public static texImage2D(target: number, level: number, internalformat: number, bitmap: android.graphics.Bitmap, border: number): void;
			/**
			 * A version of texImage2D() that takes an explicit type parameter as defined by the OpenGL ES specification. The actual type and internalformat of the bitmap must be compatible with the specified type and internalformat parameters.
			 * @param target 
			 * @param level 
			 * @param internalformat 
			 * @param bitmap 
			 * @param type 
			 * @param border 
			 */
			public static texImage2D(target: number, level: number, internalformat: number, bitmap: android.graphics.Bitmap, type: number, border: number): void;
			/**
			 * A version of texImage2D that determines the internalFormat and type automatically.
			 * @param target 
			 * @param level 
			 * @param bitmap 
			 * @param border 
			 */
			public static texImage2D(target: number, level: number, bitmap: android.graphics.Bitmap, border: number): void;
			/**
			 * Calls glTexSubImage2D() on the current OpenGL context. If no context is current the behavior is the same as calling glTexSubImage2D() with no current context, that is, eglGetError() will return the appropriate error. Unlike glTexSubImage2D() bitmap cannot be null and will raise an exception in that case. All other parameters are identical to those used for glTexSubImage2D().
			 * @param target 
			 * @param level 
			 * @param xoffset 
			 * @param yoffset 
			 * @param bitmap 
			 */
			public static texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, bitmap: android.graphics.Bitmap): void;
			/**
			 * A version of texSubImage2D() that takes an explicit type parameter as defined by the OpenGL ES specification.
			 * @param target 
			 * @param level 
			 * @param xoffset 
			 * @param yoffset 
			 * @param bitmap 
			 * @param format type
			 * @param type 
			 */
			public static texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, bitmap: android.graphics.Bitmap, format: number, type: number): void;
			/**
			 * Return a string for the EGL error code, or the hex representation if the error is unknown.
			 * @param error The EGL error to convert into a String.
			 */
			public static getEGLErrorString(error: number): string;
		}
		export class GLES10Ext extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.opengl.GLES10Ext>;
			public static glQueryMatrixxOES(mantissa: native.Array<number>, mantissaOffset: number, exponent: native.Array<number>, exponentOffset: number): number;
			public static glQueryMatrixxOES(mantissa: java.nio.IntBuffer, exponent: java.nio.IntBuffer): number;
		}
		export class GLES11 extends android.opengl.GLES10 {
			constructor();
			static GL_ACTIVE_TEXTURE: number;
			static GL_ADD_SIGNED: number;
			static GL_ALPHA_SCALE: number;
			static GL_ALPHA_TEST_FUNC: number;
			static GL_ALPHA_TEST_REF: number;
			static GL_ARRAY_BUFFER: number;
			static GL_ARRAY_BUFFER_BINDING: number;
			static GL_BLEND_DST: number;
			static GL_BLEND_SRC: number;
			static GL_BUFFER_ACCESS: number;
			static GL_BUFFER_SIZE: number;
			static GL_BUFFER_USAGE: number;
			static GL_CLIENT_ACTIVE_TEXTURE: number;
			static GL_CLIP_PLANE0: number;
			static GL_CLIP_PLANE1: number;
			static GL_CLIP_PLANE2: number;
			static GL_CLIP_PLANE3: number;
			static GL_CLIP_PLANE4: number;
			static GL_CLIP_PLANE5: number;
			static GL_COLOR_ARRAY_BUFFER_BINDING: number;
			static GL_COLOR_ARRAY_POINTER: number;
			static GL_COLOR_ARRAY_SIZE: number;
			static GL_COLOR_ARRAY_STRIDE: number;
			static GL_COLOR_ARRAY_TYPE: number;
			static GL_COLOR_CLEAR_VALUE: number;
			static GL_COLOR_WRITEMASK: number;
			static GL_COMBINE: number;
			static GL_COMBINE_ALPHA: number;
			static GL_COMBINE_RGB: number;
			static GL_CONSTANT: number;
			static GL_COORD_REPLACE_OES: number;
			static GL_CULL_FACE_MODE: number;
			static GL_CURRENT_COLOR: number;
			static GL_CURRENT_NORMAL: number;
			static GL_CURRENT_TEXTURE_COORDS: number;
			static GL_DEPTH_CLEAR_VALUE: number;
			static GL_DEPTH_FUNC: number;
			static GL_DEPTH_RANGE: number;
			static GL_DEPTH_WRITEMASK: number;
			static GL_DOT3_RGB: number;
			static GL_DOT3_RGBA: number;
			static GL_DYNAMIC_DRAW: number;
			static GL_ELEMENT_ARRAY_BUFFER: number;
			static GL_ELEMENT_ARRAY_BUFFER_BINDING: number;
			static GL_FRONT_FACE: number;
			static GL_GENERATE_MIPMAP: number;
			static GL_GENERATE_MIPMAP_HINT: number;
			static GL_INTERPOLATE: number;
			static GL_LINE_WIDTH: number;
			static GL_LOGIC_OP_MODE: number;
			static GL_MATRIX_MODE: number;
			static GL_MAX_CLIP_PLANES: number;
			static GL_MODELVIEW_MATRIX: number;
			static GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: number;
			static GL_MODELVIEW_STACK_DEPTH: number;
			static GL_NORMAL_ARRAY_BUFFER_BINDING: number;
			static GL_NORMAL_ARRAY_POINTER: number;
			static GL_NORMAL_ARRAY_STRIDE: number;
			static GL_NORMAL_ARRAY_TYPE: number;
			static GL_OPERAND0_ALPHA: number;
			static GL_OPERAND0_RGB: number;
			static GL_OPERAND1_ALPHA: number;
			static GL_OPERAND1_RGB: number;
			static GL_OPERAND2_ALPHA: number;
			static GL_OPERAND2_RGB: number;
			static GL_POINT_DISTANCE_ATTENUATION: number;
			static GL_POINT_FADE_THRESHOLD_SIZE: number;
			static GL_POINT_SIZE: number;
			static GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: number;
			static GL_POINT_SIZE_ARRAY_OES: number;
			static GL_POINT_SIZE_ARRAY_POINTER_OES: number;
			static GL_POINT_SIZE_ARRAY_STRIDE_OES: number;
			static GL_POINT_SIZE_ARRAY_TYPE_OES: number;
			static GL_POINT_SIZE_MAX: number;
			static GL_POINT_SIZE_MIN: number;
			static GL_POINT_SPRITE_OES: number;
			static GL_POLYGON_OFFSET_FACTOR: number;
			static GL_POLYGON_OFFSET_UNITS: number;
			static GL_PREVIOUS: number;
			static GL_PRIMARY_COLOR: number;
			static GL_PROJECTION_MATRIX: number;
			static GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: number;
			static GL_PROJECTION_STACK_DEPTH: number;
			static GL_RGB_SCALE: number;
			static GL_SAMPLE_BUFFERS: number;
			static GL_SAMPLE_COVERAGE_INVERT: number;
			static GL_SAMPLE_COVERAGE_VALUE: number;
			static GL_SAMPLES: number;
			static GL_SCISSOR_BOX: number;
			static GL_SHADE_MODEL: number;
			static GL_SRC0_ALPHA: number;
			static GL_SRC0_RGB: number;
			static GL_SRC1_ALPHA: number;
			static GL_SRC1_RGB: number;
			static GL_SRC2_ALPHA: number;
			static GL_SRC2_RGB: number;
			static GL_STATIC_DRAW: number;
			static GL_STENCIL_CLEAR_VALUE: number;
			static GL_STENCIL_FAIL: number;
			static GL_STENCIL_FUNC: number;
			static GL_STENCIL_PASS_DEPTH_FAIL: number;
			static GL_STENCIL_PASS_DEPTH_PASS: number;
			static GL_STENCIL_REF: number;
			static GL_STENCIL_VALUE_MASK: number;
			static GL_STENCIL_WRITEMASK: number;
			static GL_SUBTRACT: number;
			static GL_TEXTURE_BINDING_2D: number;
			static GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: number;
			static GL_TEXTURE_COORD_ARRAY_POINTER: number;
			static GL_TEXTURE_COORD_ARRAY_SIZE: number;
			static GL_TEXTURE_COORD_ARRAY_STRIDE: number;
			static GL_TEXTURE_COORD_ARRAY_TYPE: number;
			static GL_TEXTURE_MATRIX: number;
			static GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: number;
			static GL_TEXTURE_STACK_DEPTH: number;
			static GL_VERTEX_ARRAY_BUFFER_BINDING: number;
			static GL_VERTEX_ARRAY_POINTER: number;
			static GL_VERTEX_ARRAY_SIZE: number;
			static GL_VERTEX_ARRAY_STRIDE: number;
			static GL_VERTEX_ARRAY_TYPE: number;
			static GL_VIEWPORT: number;
			static GL_WRITE_ONLY: number;
			static class: java.lang.Class<android.opengl.GLES11>;
			public static glBindBuffer(target: number, buffer: number): void;
			public static glBufferData(target: number, size: number, data: java.nio.Buffer, usage: number): void;
			public static glBufferSubData(target: number, offset: number, size: number, data: java.nio.Buffer): void;
			public static glClipPlanef(plane: number, equation: native.Array<number>, offset: number): void;
			public static glClipPlanef(plane: number, equation: java.nio.FloatBuffer): void;
			public static glClipPlanex(plane: number, equation: native.Array<number>, offset: number): void;
			public static glClipPlanex(plane: number, equation: java.nio.IntBuffer): void;
			public static glColor4ub(red: number, green: number, blue: number, alpha: number): void;
			public static glColorPointer(size: number, type: number, stride: number, offset: number): void;
			public static glDeleteBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public static glDeleteBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public static glDrawElements(mode: number, count: number, type: number, offset: number): void;
			public static glGenBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public static glGenBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public static glGetBooleanv(pname: number, params: native.Array<boolean>, offset: number): void;
			public static glGetBooleanv(pname: number, params: java.nio.IntBuffer): void;
			public static glGetBufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetBufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetClipPlanef(pname: number, eqn: native.Array<number>, offset: number): void;
			public static glGetClipPlanef(pname: number, eqn: java.nio.FloatBuffer): void;
			public static glGetClipPlanex(pname: number, eqn: native.Array<number>, offset: number): void;
			public static glGetClipPlanex(pname: number, eqn: java.nio.IntBuffer): void;
			public static glGetFixedv(pname: number, params: native.Array<number>, offset: number): void;
			public static glGetFixedv(pname: number, params: java.nio.IntBuffer): void;
			public static glGetFloatv(pname: number, params: native.Array<number>, offset: number): void;
			public static glGetFloatv(pname: number, params: java.nio.FloatBuffer): void;
			public static glGetLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glGetLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glGetMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexEnvfv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexEnvfv(env: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glGetTexEnviv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexEnviv(env: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexEnvxv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexEnvxv(env: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glGetTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glIsBuffer(buffer: number): boolean;
			public static glIsEnabled(cap: number): boolean;
			public static glIsTexture(texture: number): boolean;
			public static glNormalPointer(type: number, stride: number, offset: number): void;
			public static glPointParameterf(pname: number, param: number): void;
			public static glPointParameterfv(pname: number, params: native.Array<number>, offset: number): void;
			public static glPointParameterfv(pname: number, params: java.nio.FloatBuffer): void;
			public static glPointParameterx(pname: number, param: number): void;
			public static glPointParameterxv(pname: number, params: native.Array<number>, offset: number): void;
			public static glPointParameterxv(pname: number, params: java.nio.IntBuffer): void;
			public static glPointSizePointerOES(type: number, stride: number, pointer: java.nio.Buffer): void;
			public static glTexCoordPointer(size: number, type: number, stride: number, offset: number): void;
			public static glTexEnvi(target: number, pname: number, param: number): void;
			public static glTexEnviv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexEnviv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glTexParameteri(target: number, pname: number, param: number): void;
			public static glTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glVertexPointer(size: number, type: number, stride: number, offset: number): void;
			static glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			static glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
			static glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
			static glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			static glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
		}
		export class GLES10 extends java.lang.Object {
			constructor();
			static GL_ADD: number;
			static GL_ALIASED_LINE_WIDTH_RANGE: number;
			static GL_ALIASED_POINT_SIZE_RANGE: number;
			static GL_ALPHA: number;
			static GL_ALPHA_BITS: number;
			static GL_ALPHA_TEST: number;
			static GL_ALWAYS: number;
			static GL_AMBIENT: number;
			static GL_AMBIENT_AND_DIFFUSE: number;
			static GL_AND: number;
			static GL_AND_INVERTED: number;
			static GL_AND_REVERSE: number;
			static GL_BACK: number;
			static GL_BLEND: number;
			static GL_BLUE_BITS: number;
			static GL_BYTE: number;
			static GL_CCW: number;
			static GL_CLAMP_TO_EDGE: number;
			static GL_CLEAR: number;
			static GL_COLOR_ARRAY: number;
			static GL_COLOR_BUFFER_BIT: number;
			static GL_COLOR_LOGIC_OP: number;
			static GL_COLOR_MATERIAL: number;
			static GL_COMPRESSED_TEXTURE_FORMATS: number;
			static GL_CONSTANT_ATTENUATION: number;
			static GL_COPY: number;
			static GL_COPY_INVERTED: number;
			static GL_CULL_FACE: number;
			static GL_CW: number;
			static GL_DECAL: number;
			static GL_DECR: number;
			static GL_DEPTH_BITS: number;
			static GL_DEPTH_BUFFER_BIT: number;
			static GL_DEPTH_TEST: number;
			static GL_DIFFUSE: number;
			static GL_DITHER: number;
			static GL_DONT_CARE: number;
			static GL_DST_ALPHA: number;
			static GL_DST_COLOR: number;
			static GL_EMISSION: number;
			static GL_EQUAL: number;
			static GL_EQUIV: number;
			static GL_EXP: number;
			static GL_EXP2: number;
			static GL_EXTENSIONS: number;
			static GL_FALSE: number;
			static GL_FASTEST: number;
			static GL_FIXED: number;
			static GL_FLAT: number;
			static GL_FLOAT: number;
			static GL_FOG: number;
			static GL_FOG_COLOR: number;
			static GL_FOG_DENSITY: number;
			static GL_FOG_END: number;
			static GL_FOG_HINT: number;
			static GL_FOG_MODE: number;
			static GL_FOG_START: number;
			static GL_FRONT: number;
			static GL_FRONT_AND_BACK: number;
			static GL_GEQUAL: number;
			static GL_GREATER: number;
			static GL_GREEN_BITS: number;
			static GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: number;
			static GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: number;
			static GL_INCR: number;
			static GL_INVALID_ENUM: number;
			static GL_INVALID_OPERATION: number;
			static GL_INVALID_VALUE: number;
			static GL_INVERT: number;
			static GL_KEEP: number;
			static GL_LEQUAL: number;
			static GL_LESS: number;
			static GL_LIGHT_MODEL_AMBIENT: number;
			static GL_LIGHT_MODEL_TWO_SIDE: number;
			static GL_LIGHT0: number;
			static GL_LIGHT1: number;
			static GL_LIGHT2: number;
			static GL_LIGHT3: number;
			static GL_LIGHT4: number;
			static GL_LIGHT5: number;
			static GL_LIGHT6: number;
			static GL_LIGHT7: number;
			static GL_LIGHTING: number;
			static GL_LINE_LOOP: number;
			static GL_LINE_SMOOTH: number;
			static GL_LINE_SMOOTH_HINT: number;
			static GL_LINE_STRIP: number;
			static GL_LINEAR: number;
			static GL_LINEAR_ATTENUATION: number;
			static GL_LINEAR_MIPMAP_LINEAR: number;
			static GL_LINEAR_MIPMAP_NEAREST: number;
			static GL_LINES: number;
			static GL_LUMINANCE: number;
			static GL_LUMINANCE_ALPHA: number;
			static GL_MAX_ELEMENTS_INDICES: number;
			static GL_MAX_ELEMENTS_VERTICES: number;
			static GL_MAX_LIGHTS: number;
			static GL_MAX_MODELVIEW_STACK_DEPTH: number;
			static GL_MAX_PROJECTION_STACK_DEPTH: number;
			static GL_MAX_TEXTURE_SIZE: number;
			static GL_MAX_TEXTURE_STACK_DEPTH: number;
			static GL_MAX_TEXTURE_UNITS: number;
			static GL_MAX_VIEWPORT_DIMS: number;
			static GL_MODELVIEW: number;
			static GL_MODULATE: number;
			static GL_MULTISAMPLE: number;
			static GL_NAND: number;
			static GL_NEAREST: number;
			static GL_NEAREST_MIPMAP_LINEAR: number;
			static GL_NEAREST_MIPMAP_NEAREST: number;
			static GL_NEVER: number;
			static GL_NICEST: number;
			static GL_NO_ERROR: number;
			static GL_NOOP: number;
			static GL_NOR: number;
			static GL_NORMAL_ARRAY: number;
			static GL_NORMALIZE: number;
			static GL_NOTEQUAL: number;
			static GL_NUM_COMPRESSED_TEXTURE_FORMATS: number;
			static GL_ONE: number;
			static GL_ONE_MINUS_DST_ALPHA: number;
			static GL_ONE_MINUS_DST_COLOR: number;
			static GL_ONE_MINUS_SRC_ALPHA: number;
			static GL_ONE_MINUS_SRC_COLOR: number;
			static GL_OR: number;
			static GL_OR_INVERTED: number;
			static GL_OR_REVERSE: number;
			static GL_OUT_OF_MEMORY: number;
			static GL_PACK_ALIGNMENT: number;
			static GL_PALETTE4_R5_G6_B5_OES: number;
			static GL_PALETTE4_RGB5_A1_OES: number;
			static GL_PALETTE4_RGB8_OES: number;
			static GL_PALETTE4_RGBA4_OES: number;
			static GL_PALETTE4_RGBA8_OES: number;
			static GL_PALETTE8_R5_G6_B5_OES: number;
			static GL_PALETTE8_RGB5_A1_OES: number;
			static GL_PALETTE8_RGB8_OES: number;
			static GL_PALETTE8_RGBA4_OES: number;
			static GL_PALETTE8_RGBA8_OES: number;
			static GL_PERSPECTIVE_CORRECTION_HINT: number;
			static GL_POINT_SMOOTH: number;
			static GL_POINT_SMOOTH_HINT: number;
			static GL_POINTS: number;
			static GL_POINT_FADE_THRESHOLD_SIZE: number;
			static GL_POINT_SIZE: number;
			static GL_POLYGON_OFFSET_FILL: number;
			static GL_POLYGON_SMOOTH_HINT: number;
			static GL_POSITION: number;
			static GL_PROJECTION: number;
			static GL_QUADRATIC_ATTENUATION: number;
			static GL_RED_BITS: number;
			static GL_RENDERER: number;
			static GL_REPEAT: number;
			static GL_REPLACE: number;
			static GL_RESCALE_NORMAL: number;
			static GL_RGB: number;
			static GL_RGBA: number;
			static GL_SAMPLE_ALPHA_TO_COVERAGE: number;
			static GL_SAMPLE_ALPHA_TO_ONE: number;
			static GL_SAMPLE_COVERAGE: number;
			static GL_SCISSOR_TEST: number;
			static GL_SET: number;
			static GL_SHININESS: number;
			static GL_SHORT: number;
			static GL_SMOOTH: number;
			static GL_SMOOTH_LINE_WIDTH_RANGE: number;
			static GL_SMOOTH_POINT_SIZE_RANGE: number;
			static GL_SPECULAR: number;
			static GL_SPOT_CUTOFF: number;
			static GL_SPOT_DIRECTION: number;
			static GL_SPOT_EXPONENT: number;
			static GL_SRC_ALPHA: number;
			static GL_SRC_ALPHA_SATURATE: number;
			static GL_SRC_COLOR: number;
			static GL_STACK_OVERFLOW: number;
			static GL_STACK_UNDERFLOW: number;
			static GL_STENCIL_BITS: number;
			static GL_STENCIL_BUFFER_BIT: number;
			static GL_STENCIL_TEST: number;
			static GL_SUBPIXEL_BITS: number;
			static GL_TEXTURE: number;
			static GL_TEXTURE_2D: number;
			static GL_TEXTURE_COORD_ARRAY: number;
			static GL_TEXTURE_ENV: number;
			static GL_TEXTURE_ENV_COLOR: number;
			static GL_TEXTURE_ENV_MODE: number;
			static GL_TEXTURE_MAG_FILTER: number;
			static GL_TEXTURE_MIN_FILTER: number;
			static GL_TEXTURE_WRAP_S: number;
			static GL_TEXTURE_WRAP_T: number;
			static GL_TEXTURE0: number;
			static GL_TEXTURE1: number;
			static GL_TEXTURE2: number;
			static GL_TEXTURE3: number;
			static GL_TEXTURE4: number;
			static GL_TEXTURE5: number;
			static GL_TEXTURE6: number;
			static GL_TEXTURE7: number;
			static GL_TEXTURE8: number;
			static GL_TEXTURE9: number;
			static GL_TEXTURE10: number;
			static GL_TEXTURE11: number;
			static GL_TEXTURE12: number;
			static GL_TEXTURE13: number;
			static GL_TEXTURE14: number;
			static GL_TEXTURE15: number;
			static GL_TEXTURE16: number;
			static GL_TEXTURE17: number;
			static GL_TEXTURE18: number;
			static GL_TEXTURE19: number;
			static GL_TEXTURE20: number;
			static GL_TEXTURE21: number;
			static GL_TEXTURE22: number;
			static GL_TEXTURE23: number;
			static GL_TEXTURE24: number;
			static GL_TEXTURE25: number;
			static GL_TEXTURE26: number;
			static GL_TEXTURE27: number;
			static GL_TEXTURE28: number;
			static GL_TEXTURE29: number;
			static GL_TEXTURE30: number;
			static GL_TEXTURE31: number;
			static GL_TRIANGLE_FAN: number;
			static GL_TRIANGLE_STRIP: number;
			static GL_TRIANGLES: number;
			static GL_TRUE: number;
			static GL_UNPACK_ALIGNMENT: number;
			static GL_UNSIGNED_BYTE: number;
			static GL_UNSIGNED_SHORT: number;
			static GL_UNSIGNED_SHORT_4_4_4_4: number;
			static GL_UNSIGNED_SHORT_5_5_5_1: number;
			static GL_UNSIGNED_SHORT_5_6_5: number;
			static GL_VENDOR: number;
			static GL_VERSION: number;
			static GL_VERTEX_ARRAY: number;
			static GL_XOR: number;
			static GL_ZERO: number;
			static class: java.lang.Class<android.opengl.GLES10>;
			public static glActiveTexture(texture: number): void;
			public static glAlphaFunc(func: number, ref: number): void;
			public static glAlphaFuncx(func: number, ref: number): void;
			public static glBindTexture(target: number, texture: number): void;
			public static glBlendFunc(sfactor: number, dfactor: number): void;
			public static glClear(mask: number): void;
			public static glClearColor(red: number, green: number, blue: number, alpha: number): void;
			public static glClearColorx(red: number, green: number, blue: number, alpha: number): void;
			public static glClearDepthf(depth: number): void;
			public static glClearDepthx(depth: number): void;
			public static glClearStencil(s: number): void;
			public static glClientActiveTexture(texture: number): void;
			public static glColor4f(red: number, green: number, blue: number, alpha: number): void;
			public static glColor4x(red: number, green: number, blue: number, alpha: number): void;
			public static glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
			public static glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public static glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
			public static glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
			public static glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
			public static glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
			public static glCullFace(mode: number): void;
			public static glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
			public static glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
			public static glDepthFunc(func: number): void;
			public static glDepthMask(flag: boolean): void;
			public static glDepthRangef(zNear: number, zFar: number): void;
			public static glDepthRangex(zNear: number, zFar: number): void;
			public static glDisable(cap: number): void;
			public static glDisableClientState(array: number): void;
			public static glDrawArrays(mode: number, first: number, count: number): void;
			public static glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
			public static glEnable(cap: number): void;
			public static glEnableClientState(array: number): void;
			public static glFinish(): void;
			public static glFlush(): void;
			public static glFogf(pname: number, param: number): void;
			public static glFogfv(pname: number, params: native.Array<number>, offset: number): void;
			public static glFogfv(pname: number, params: java.nio.FloatBuffer): void;
			public static glFogx(pname: number, param: number): void;
			public static glFogxv(pname: number, params: native.Array<number>, offset: number): void;
			public static glFogxv(pname: number, params: java.nio.IntBuffer): void;
			public static glFrontFace(mode: number): void;
			public static glFrustumf(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glFrustumx(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
			public static glGenTextures(n: number, textures: java.nio.IntBuffer): void;
			public static glGetError(): number;
			public static glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
			public static glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
			public static glGetString(name: number): string;
			public static glHint(target: number, mode: number): void;
			public static glLightModelf(pname: number, param: number): void;
			public static glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
			public static glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
			public static glLightModelx(pname: number, param: number): void;
			public static glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
			public static glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
			public static glLightf(light: number, pname: number, param: number): void;
			public static glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glLightx(light: number, pname: number, param: number): void;
			public static glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			public static glLineWidth(width: number): void;
			public static glLineWidthx(width: number): void;
			public static glLoadIdentity(): void;
			public static glLoadMatrixf(m: native.Array<number>, offset: number): void;
			public static glLoadMatrixf(m: java.nio.FloatBuffer): void;
			public static glLoadMatrixx(m: native.Array<number>, offset: number): void;
			public static glLoadMatrixx(m: java.nio.IntBuffer): void;
			public static glLogicOp(opcode: number): void;
			public static glMaterialf(face: number, pname: number, param: number): void;
			public static glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glMaterialx(face: number, pname: number, param: number): void;
			public static glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			public static glMatrixMode(mode: number): void;
			public static glMultMatrixf(m: native.Array<number>, offset: number): void;
			public static glMultMatrixf(m: java.nio.FloatBuffer): void;
			public static glMultMatrixx(m: native.Array<number>, offset: number): void;
			public static glMultMatrixx(m: java.nio.IntBuffer): void;
			public static glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
			public static glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
			public static glNormal3f(nx: number, ny: number, nz: number): void;
			public static glNormal3x(nx: number, ny: number, nz: number): void;
			public static glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
			public static glOrthof(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glOrthox(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			public static glPixelStorei(pname: number, param: number): void;
			public static glPointSize(size: number): void;
			public static glPointSizex(size: number): void;
			public static glPolygonOffset(factor: number, units: number): void;
			public static glPolygonOffsetx(factor: number, units: number): void;
			public static glPopMatrix(): void;
			public static glPushMatrix(): void;
			public static glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public static glRotatef(angle: number, x: number, y: number, z: number): void;
			public static glRotatex(angle: number, x: number, y: number, z: number): void;
			public static glSampleCoverage(value: number, invert: boolean): void;
			public static glSampleCoveragex(value: number, invert: boolean): void;
			public static glScalef(x: number, y: number, z: number): void;
			public static glScalex(x: number, y: number, z: number): void;
			public static glScissor(x: number, y: number, width: number, height: number): void;
			public static glShadeModel(mode: number): void;
			public static glStencilFunc(func: number, ref: number, mask: number): void;
			public static glStencilMask(mask: number): void;
			public static glStencilOp(fail: number, zfail: number, zpass: number): void;
			public static glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public static glTexEnvf(target: number, pname: number, param: number): void;
			public static glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glTexEnvx(target: number, pname: number, param: number): void;
			public static glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public static glTexParameterf(target: number, pname: number, param: number): void;
			public static glTexParameterx(target: number, pname: number, param: number): void;
			public static glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public static glTranslatef(x: number, y: number, z: number): void;
			public static glTranslatex(x: number, y: number, z: number): void;
			public static glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public static glViewport(x: number, y: number, width: number, height: number): void;
		}
		/**
		 * Wrapper class for native EGLDisplay objects.
		 */
		export class EGLDisplay extends android.opengl.EGLObjectHandle {
			static class: java.lang.Class<android.opengl.EGLDisplay>;
			public equals(o: any): boolean;
		}
		/**
		 * OpenGL ES 2.0
		 */
		export class GLES20 extends java.lang.Object {
			constructor();
			static GL_ACTIVE_TEXTURE: number;
			static GL_DEPTH_BUFFER_BIT: number;
			static GL_STENCIL_BUFFER_BIT: number;
			static GL_COLOR_BUFFER_BIT: number;
			static GL_FALSE: number;
			static GL_TRUE: number;
			static GL_POINTS: number;
			static GL_LINES: number;
			static GL_LINE_LOOP: number;
			static GL_LINE_STRIP: number;
			static GL_TRIANGLES: number;
			static GL_TRIANGLE_STRIP: number;
			static GL_TRIANGLE_FAN: number;
			static GL_ZERO: number;
			static GL_ONE: number;
			static GL_SRC_COLOR: number;
			static GL_ONE_MINUS_SRC_COLOR: number;
			static GL_SRC_ALPHA: number;
			static GL_ONE_MINUS_SRC_ALPHA: number;
			static GL_DST_ALPHA: number;
			static GL_ONE_MINUS_DST_ALPHA: number;
			static GL_DST_COLOR: number;
			static GL_ONE_MINUS_DST_COLOR: number;
			static GL_SRC_ALPHA_SATURATE: number;
			static GL_FUNC_ADD: number;
			static GL_BLEND_EQUATION: number;
			static GL_BLEND_EQUATION_RGB: number;
			static GL_BLEND_EQUATION_ALPHA: number;
			static GL_FUNC_SUBTRACT: number;
			static GL_FUNC_REVERSE_SUBTRACT: number;
			static GL_BLEND_DST_RGB: number;
			static GL_BLEND_SRC_RGB: number;
			static GL_BLEND_DST_ALPHA: number;
			static GL_BLEND_SRC_ALPHA: number;
			static GL_CONSTANT_COLOR: number;
			static GL_ONE_MINUS_CONSTANT_COLOR: number;
			static GL_CONSTANT_ALPHA: number;
			static GL_ONE_MINUS_CONSTANT_ALPHA: number;
			static GL_BLEND_COLOR: number;
			static GL_ARRAY_BUFFER: number;
			static GL_ELEMENT_ARRAY_BUFFER: number;
			static GL_ARRAY_BUFFER_BINDING: number;
			static GL_ELEMENT_ARRAY_BUFFER_BINDING: number;
			static GL_STREAM_DRAW: number;
			static GL_STATIC_DRAW: number;
			static GL_DYNAMIC_DRAW: number;
			static GL_BUFFER_SIZE: number;
			static GL_BUFFER_USAGE: number;
			static GL_CURRENT_VERTEX_ATTRIB: number;
			static GL_FRONT: number;
			static GL_BACK: number;
			static GL_FRONT_AND_BACK: number;
			static GL_TEXTURE_2D: number;
			static GL_CULL_FACE: number;
			static GL_BLEND: number;
			static GL_DITHER: number;
			static GL_STENCIL_TEST: number;
			static GL_DEPTH_TEST: number;
			static GL_SCISSOR_TEST: number;
			static GL_POLYGON_OFFSET_FILL: number;
			static GL_SAMPLE_ALPHA_TO_COVERAGE: number;
			static GL_SAMPLE_COVERAGE: number;
			static GL_NO_ERROR: number;
			static GL_INVALID_ENUM: number;
			static GL_INVALID_VALUE: number;
			static GL_INVALID_OPERATION: number;
			static GL_OUT_OF_MEMORY: number;
			static GL_CW: number;
			static GL_CCW: number;
			static GL_LINE_WIDTH: number;
			static GL_ALIASED_POINT_SIZE_RANGE: number;
			static GL_ALIASED_LINE_WIDTH_RANGE: number;
			static GL_CULL_FACE_MODE: number;
			static GL_FRONT_FACE: number;
			static GL_DEPTH_RANGE: number;
			static GL_DEPTH_WRITEMASK: number;
			static GL_DEPTH_CLEAR_VALUE: number;
			static GL_DEPTH_FUNC: number;
			static GL_STENCIL_CLEAR_VALUE: number;
			static GL_STENCIL_FUNC: number;
			static GL_STENCIL_FAIL: number;
			static GL_STENCIL_PASS_DEPTH_FAIL: number;
			static GL_STENCIL_PASS_DEPTH_PASS: number;
			static GL_STENCIL_REF: number;
			static GL_STENCIL_VALUE_MASK: number;
			static GL_STENCIL_WRITEMASK: number;
			static GL_STENCIL_BACK_FUNC: number;
			static GL_STENCIL_BACK_FAIL: number;
			static GL_STENCIL_BACK_PASS_DEPTH_FAIL: number;
			static GL_STENCIL_BACK_PASS_DEPTH_PASS: number;
			static GL_STENCIL_BACK_REF: number;
			static GL_STENCIL_BACK_VALUE_MASK: number;
			static GL_STENCIL_BACK_WRITEMASK: number;
			static GL_VIEWPORT: number;
			static GL_SCISSOR_BOX: number;
			static GL_COLOR_CLEAR_VALUE: number;
			static GL_COLOR_WRITEMASK: number;
			static GL_UNPACK_ALIGNMENT: number;
			static GL_PACK_ALIGNMENT: number;
			static GL_MAX_TEXTURE_SIZE: number;
			static GL_MAX_VIEWPORT_DIMS: number;
			static GL_SUBPIXEL_BITS: number;
			static GL_RED_BITS: number;
			static GL_GREEN_BITS: number;
			static GL_BLUE_BITS: number;
			static GL_ALPHA_BITS: number;
			static GL_DEPTH_BITS: number;
			static GL_STENCIL_BITS: number;
			static GL_POLYGON_OFFSET_UNITS: number;
			static GL_POLYGON_OFFSET_FACTOR: number;
			static GL_TEXTURE_BINDING_2D: number;
			static GL_SAMPLE_BUFFERS: number;
			static GL_SAMPLES: number;
			static GL_SAMPLE_COVERAGE_VALUE: number;
			static GL_SAMPLE_COVERAGE_INVERT: number;
			static GL_NUM_COMPRESSED_TEXTURE_FORMATS: number;
			static GL_COMPRESSED_TEXTURE_FORMATS: number;
			static GL_DONT_CARE: number;
			static GL_FASTEST: number;
			static GL_NICEST: number;
			static GL_GENERATE_MIPMAP_HINT: number;
			static GL_BYTE: number;
			static GL_UNSIGNED_BYTE: number;
			static GL_SHORT: number;
			static GL_UNSIGNED_SHORT: number;
			static GL_INT: number;
			static GL_UNSIGNED_INT: number;
			static GL_FLOAT: number;
			static GL_FIXED: number;
			static GL_DEPTH_COMPONENT: number;
			static GL_ALPHA: number;
			static GL_RGB: number;
			static GL_RGBA: number;
			static GL_LUMINANCE: number;
			static GL_LUMINANCE_ALPHA: number;
			static GL_UNSIGNED_SHORT_4_4_4_4: number;
			static GL_UNSIGNED_SHORT_5_5_5_1: number;
			static GL_UNSIGNED_SHORT_5_6_5: number;
			static GL_FRAGMENT_SHADER: number;
			static GL_VERTEX_SHADER: number;
			static GL_MAX_VERTEX_ATTRIBS: number;
			static GL_MAX_VERTEX_UNIFORM_VECTORS: number;
			static GL_MAX_VARYING_VECTORS: number;
			static GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: number;
			static GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS: number;
			static GL_MAX_TEXTURE_IMAGE_UNITS: number;
			static GL_MAX_FRAGMENT_UNIFORM_VECTORS: number;
			static GL_SHADER_TYPE: number;
			static GL_DELETE_STATUS: number;
			static GL_LINK_STATUS: number;
			static GL_VALIDATE_STATUS: number;
			static GL_ATTACHED_SHADERS: number;
			static GL_ACTIVE_UNIFORMS: number;
			static GL_ACTIVE_UNIFORM_MAX_LENGTH: number;
			static GL_ACTIVE_ATTRIBUTES: number;
			static GL_ACTIVE_ATTRIBUTE_MAX_LENGTH: number;
			static GL_SHADING_LANGUAGE_VERSION: number;
			static GL_CURRENT_PROGRAM: number;
			static GL_NEVER: number;
			static GL_LESS: number;
			static GL_EQUAL: number;
			static GL_LEQUAL: number;
			static GL_GREATER: number;
			static GL_NOTEQUAL: number;
			static GL_GEQUAL: number;
			static GL_ALWAYS: number;
			static GL_KEEP: number;
			static GL_REPLACE: number;
			static GL_INCR: number;
			static GL_DECR: number;
			static GL_INVERT: number;
			static GL_INCR_WRAP: number;
			static GL_DECR_WRAP: number;
			static GL_VENDOR: number;
			static GL_RENDERER: number;
			static GL_VERSION: number;
			static GL_EXTENSIONS: number;
			static GL_NEAREST: number;
			static GL_LINEAR: number;
			static GL_NEAREST_MIPMAP_NEAREST: number;
			static GL_LINEAR_MIPMAP_NEAREST: number;
			static GL_NEAREST_MIPMAP_LINEAR: number;
			static GL_LINEAR_MIPMAP_LINEAR: number;
			static GL_TEXTURE_MAG_FILTER: number;
			static GL_TEXTURE_MIN_FILTER: number;
			static GL_TEXTURE_WRAP_S: number;
			static GL_TEXTURE_WRAP_T: number;
			static GL_TEXTURE: number;
			static GL_TEXTURE_CUBE_MAP: number;
			static GL_TEXTURE_BINDING_CUBE_MAP: number;
			static GL_TEXTURE_CUBE_MAP_POSITIVE_X: number;
			static GL_TEXTURE_CUBE_MAP_NEGATIVE_X: number;
			static GL_TEXTURE_CUBE_MAP_POSITIVE_Y: number;
			static GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: number;
			static GL_TEXTURE_CUBE_MAP_POSITIVE_Z: number;
			static GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: number;
			static GL_MAX_CUBE_MAP_TEXTURE_SIZE: number;
			static GL_TEXTURE0: number;
			static GL_TEXTURE1: number;
			static GL_TEXTURE2: number;
			static GL_TEXTURE3: number;
			static GL_TEXTURE4: number;
			static GL_TEXTURE5: number;
			static GL_TEXTURE6: number;
			static GL_TEXTURE7: number;
			static GL_TEXTURE8: number;
			static GL_TEXTURE9: number;
			static GL_TEXTURE10: number;
			static GL_TEXTURE11: number;
			static GL_TEXTURE12: number;
			static GL_TEXTURE13: number;
			static GL_TEXTURE14: number;
			static GL_TEXTURE15: number;
			static GL_TEXTURE16: number;
			static GL_TEXTURE17: number;
			static GL_TEXTURE18: number;
			static GL_TEXTURE19: number;
			static GL_TEXTURE20: number;
			static GL_TEXTURE21: number;
			static GL_TEXTURE22: number;
			static GL_TEXTURE23: number;
			static GL_TEXTURE24: number;
			static GL_TEXTURE25: number;
			static GL_TEXTURE26: number;
			static GL_TEXTURE27: number;
			static GL_TEXTURE28: number;
			static GL_TEXTURE29: number;
			static GL_TEXTURE30: number;
			static GL_TEXTURE31: number;
			static GL_REPEAT: number;
			static GL_CLAMP_TO_EDGE: number;
			static GL_MIRRORED_REPEAT: number;
			static GL_FLOAT_VEC2: number;
			static GL_FLOAT_VEC3: number;
			static GL_FLOAT_VEC4: number;
			static GL_INT_VEC2: number;
			static GL_INT_VEC3: number;
			static GL_INT_VEC4: number;
			static GL_BOOL: number;
			static GL_BOOL_VEC2: number;
			static GL_BOOL_VEC3: number;
			static GL_BOOL_VEC4: number;
			static GL_FLOAT_MAT2: number;
			static GL_FLOAT_MAT3: number;
			static GL_FLOAT_MAT4: number;
			static GL_SAMPLER_2D: number;
			static GL_SAMPLER_CUBE: number;
			static GL_VERTEX_ATTRIB_ARRAY_ENABLED: number;
			static GL_VERTEX_ATTRIB_ARRAY_SIZE: number;
			static GL_VERTEX_ATTRIB_ARRAY_STRIDE: number;
			static GL_VERTEX_ATTRIB_ARRAY_TYPE: number;
			static GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: number;
			static GL_VERTEX_ATTRIB_ARRAY_POINTER: number;
			static GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: number;
			static GL_IMPLEMENTATION_COLOR_READ_TYPE: number;
			static GL_IMPLEMENTATION_COLOR_READ_FORMAT: number;
			static GL_COMPILE_STATUS: number;
			static GL_INFO_LOG_LENGTH: number;
			static GL_SHADER_SOURCE_LENGTH: number;
			static GL_SHADER_COMPILER: number;
			static GL_SHADER_BINARY_FORMATS: number;
			static GL_NUM_SHADER_BINARY_FORMATS: number;
			static GL_LOW_FLOAT: number;
			static GL_MEDIUM_FLOAT: number;
			static GL_HIGH_FLOAT: number;
			static GL_LOW_INT: number;
			static GL_MEDIUM_INT: number;
			static GL_HIGH_INT: number;
			static GL_FRAMEBUFFER: number;
			static GL_RENDERBUFFER: number;
			static GL_RGBA4: number;
			static GL_RGB5_A1: number;
			static GL_RGB565: number;
			static GL_DEPTH_COMPONENT16: number;
			static GL_STENCIL_INDEX: number;
			static GL_STENCIL_INDEX8: number;
			static GL_RENDERBUFFER_WIDTH: number;
			static GL_RENDERBUFFER_HEIGHT: number;
			static GL_RENDERBUFFER_INTERNAL_FORMAT: number;
			static GL_RENDERBUFFER_RED_SIZE: number;
			static GL_RENDERBUFFER_GREEN_SIZE: number;
			static GL_RENDERBUFFER_BLUE_SIZE: number;
			static GL_RENDERBUFFER_ALPHA_SIZE: number;
			static GL_RENDERBUFFER_DEPTH_SIZE: number;
			static GL_RENDERBUFFER_STENCIL_SIZE: number;
			static GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: number;
			static GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: number;
			static GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: number;
			static GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: number;
			static GL_COLOR_ATTACHMENT0: number;
			static GL_DEPTH_ATTACHMENT: number;
			static GL_STENCIL_ATTACHMENT: number;
			static GL_NONE: number;
			static GL_FRAMEBUFFER_COMPLETE: number;
			static GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: number;
			static GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: number;
			static GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: number;
			static GL_FRAMEBUFFER_UNSUPPORTED: number;
			static GL_FRAMEBUFFER_BINDING: number;
			static GL_RENDERBUFFER_BINDING: number;
			static GL_MAX_RENDERBUFFER_SIZE: number;
			static GL_INVALID_FRAMEBUFFER_OPERATION: number;
			static class: java.lang.Class<android.opengl.GLES20>;
			public static glActiveTexture(texture: number): void;
			public static glAttachShader(program: number, shader: number): void;
			public static glBindAttribLocation(program: number, index: number, name: string): void;
			public static glBindBuffer(target: number, buffer: number): void;
			public static glBindFramebuffer(target: number, framebuffer: number): void;
			public static glBindRenderbuffer(target: number, renderbuffer: number): void;
			public static glBindTexture(target: number, texture: number): void;
			public static glBlendColor(red: number, green: number, blue: number, alpha: number): void;
			public static glBlendEquation(mode: number): void;
			public static glBlendEquationSeparate(modeRGB: number, modeAlpha: number): void;
			public static glBlendFunc(sfactor: number, dfactor: number): void;
			public static glBlendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
			public static glBufferData(target: number, size: number, data: java.nio.Buffer, usage: number): void;
			public static glBufferSubData(target: number, offset: number, size: number, data: java.nio.Buffer): void;
			public static glCheckFramebufferStatus(target: number): number;
			public static glClear(mask: number): void;
			public static glClearColor(red: number, green: number, blue: number, alpha: number): void;
			public static glClearDepthf(depth: number): void;
			public static glClearStencil(s: number): void;
			public static glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
			public static glCompileShader(shader: number): void;
			public static glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
			public static glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
			public static glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
			public static glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
			public static glCreateProgram(): number;
			public static glCreateShader(type: number): number;
			public static glCullFace(mode: number): void;
			public static glDeleteBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public static glDeleteBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public static glDeleteFramebuffers(n: number, framebuffers: native.Array<number>, offset: number): void;
			public static glDeleteFramebuffers(n: number, framebuffers: java.nio.IntBuffer): void;
			public static glDeleteProgram(program: number): void;
			public static glDeleteRenderbuffers(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public static glDeleteRenderbuffers(n: number, renderbuffers: java.nio.IntBuffer): void;
			public static glDeleteShader(shader: number): void;
			public static glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
			public static glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
			public static glDepthFunc(func: number): void;
			public static glDepthMask(flag: boolean): void;
			public static glDepthRangef(zNear: number, zFar: number): void;
			public static glDetachShader(program: number, shader: number): void;
			public static glDisable(cap: number): void;
			public static glDisableVertexAttribArray(index: number): void;
			public static glDrawArrays(mode: number, first: number, count: number): void;
			public static glDrawElements(mode: number, count: number, type: number, offset: number): void;
			public static glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
			public static glEnable(cap: number): void;
			public static glEnableVertexAttribArray(index: number): void;
			public static glFinish(): void;
			public static glFlush(): void;
			public static glFramebufferRenderbuffer(target: number, attachment: number, renderbuffertarget: number, renderbuffer: number): void;
			public static glFramebufferTexture2D(target: number, attachment: number, textarget: number, texture: number, level: number): void;
			public static glFrontFace(mode: number): void;
			public static glGenBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public static glGenBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public static glGenerateMipmap(target: number): void;
			public static glGenFramebuffers(n: number, framebuffers: native.Array<number>, offset: number): void;
			public static glGenFramebuffers(n: number, framebuffers: java.nio.IntBuffer): void;
			public static glGenRenderbuffers(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public static glGenRenderbuffers(n: number, renderbuffers: java.nio.IntBuffer): void;
			public static glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
			public static glGenTextures(n: number, textures: java.nio.IntBuffer): void;
			public static glGetActiveAttrib(program: number, index: number, bufsize: number, length: native.Array<number>, lengthOffset: number, size: native.Array<number>, sizeOffset: number, type: native.Array<number>, typeOffset: number, name: native.Array<number>, nameOffset: number): void;
			public static glGetActiveAttrib(program: number, index: number, bufsize: number, length: java.nio.IntBuffer, size: java.nio.IntBuffer, type: java.nio.IntBuffer, name: number): void;
			public static glGetActiveAttrib(program: number, index: number, size: native.Array<number>, sizeOffset: number, type: native.Array<number>, typeOffset: number): string;
			public static glGetActiveAttrib(program: number, index: number, size: java.nio.IntBuffer, type: java.nio.IntBuffer): string;
			public static glGetActiveUniform(program: number, index: number, bufsize: number, length: native.Array<number>, lengthOffset: number, size: native.Array<number>, sizeOffset: number, type: native.Array<number>, typeOffset: number, name: native.Array<number>, nameOffset: number): void;
			public static glGetActiveUniform(program: number, index: number, bufsize: number, length: java.nio.IntBuffer, size: java.nio.IntBuffer, type: java.nio.IntBuffer, name: number): void;
			public static glGetActiveUniform(program: number, index: number, size: native.Array<number>, sizeOffset: number, type: native.Array<number>, typeOffset: number): string;
			public static glGetActiveUniform(program: number, index: number, size: java.nio.IntBuffer, type: java.nio.IntBuffer): string;
			public static glGetAttachedShaders(program: number, maxcount: number, count: native.Array<number>, countOffset: number, shaders: native.Array<number>, shadersOffset: number): void;
			public static glGetAttachedShaders(program: number, maxcount: number, count: java.nio.IntBuffer, shaders: java.nio.IntBuffer): void;
			public static glGetAttribLocation(program: number, name: string): number;
			public static glGetBooleanv(pname: number, params: native.Array<boolean>, offset: number): void;
			public static glGetBooleanv(pname: number, params: java.nio.IntBuffer): void;
			public static glGetBufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetBufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetError(): number;
			public static glGetFloatv(pname: number, params: native.Array<number>, offset: number): void;
			public static glGetFloatv(pname: number, params: java.nio.FloatBuffer): void;
			public static glGetFramebufferAttachmentParameteriv(target: number, attachment: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetFramebufferAttachmentParameteriv(target: number, attachment: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
			public static glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
			public static glGetProgramiv(program: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetProgramiv(program: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetProgramInfoLog(program: number): string;
			public static glGetRenderbufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetRenderbufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetShaderiv(shader: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetShaderiv(shader: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetShaderInfoLog(shader: number): string;
			public static glGetShaderPrecisionFormat(shadertype: number, precisiontype: number, range: native.Array<number>, rangeOffset: number, precision: native.Array<number>, precisionOffset: number): void;
			public static glGetShaderPrecisionFormat(shadertype: number, precisiontype: number, range: java.nio.IntBuffer, precision: java.nio.IntBuffer): void;
			public static glGetShaderSource(shader: number, bufsize: number, length: native.Array<number>, lengthOffset: number, source: native.Array<number>, sourceOffset: number): void;
			public static glGetShaderSource(shader: number, bufsize: number, length: java.nio.IntBuffer, source: number): void;
			public static glGetShaderSource(shader: number): string;
			public static glGetString(name: number): string;
			public static glGetTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glGetTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glGetUniformfv(program: number, location: number, params: native.Array<number>, offset: number): void;
			public static glGetUniformfv(program: number, location: number, params: java.nio.FloatBuffer): void;
			public static glGetUniformiv(program: number, location: number, params: native.Array<number>, offset: number): void;
			public static glGetUniformiv(program: number, location: number, params: java.nio.IntBuffer): void;
			public static glGetUniformLocation(program: number, name: string): number;
			public static glGetVertexAttribfv(index: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetVertexAttribfv(index: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glGetVertexAttribiv(index: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glGetVertexAttribiv(index: number, pname: number, params: java.nio.IntBuffer): void;
			public static glHint(target: number, mode: number): void;
			public static glIsBuffer(buffer: number): boolean;
			public static glIsEnabled(cap: number): boolean;
			public static glIsFramebuffer(framebuffer: number): boolean;
			public static glIsProgram(program: number): boolean;
			public static glIsRenderbuffer(renderbuffer: number): boolean;
			public static glIsShader(shader: number): boolean;
			public static glIsTexture(texture: number): boolean;
			public static glLineWidth(width: number): void;
			public static glLinkProgram(program: number): void;
			public static glPixelStorei(pname: number, param: number): void;
			public static glPolygonOffset(factor: number, units: number): void;
			public static glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public static glReleaseShaderCompiler(): void;
			public static glRenderbufferStorage(target: number, internalformat: number, width: number, height: number): void;
			public static glSampleCoverage(value: number, invert: boolean): void;
			public static glScissor(x: number, y: number, width: number, height: number): void;
			public static glShaderBinary(n: number, shaders: native.Array<number>, offset: number, binaryformat: number, binary: java.nio.Buffer, length: number): void;
			public static glShaderBinary(n: number, shaders: java.nio.IntBuffer, binaryformat: number, binary: java.nio.Buffer, length: number): void;
			public static glShaderSource(shader: number, string: string): void;
			public static glStencilFunc(func: number, ref: number, mask: number): void;
			public static glStencilFuncSeparate(face: number, func: number, ref: number, mask: number): void;
			public static glStencilMask(mask: number): void;
			public static glStencilMaskSeparate(face: number, mask: number): void;
			public static glStencilOp(fail: number, zfail: number, zpass: number): void;
			public static glStencilOpSeparate(face: number, fail: number, zfail: number, zpass: number): void;
			public static glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public static glTexParameterf(target: number, pname: number, param: number): void;
			public static glTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public static glTexParameteri(target: number, pname: number, param: number): void;
			public static glTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public static glTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public static glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public static glUniform1f(location: number, x: number): void;
			public static glUniform1fv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform1fv(location: number, count: number, v: java.nio.FloatBuffer): void;
			public static glUniform1i(location: number, x: number): void;
			public static glUniform1iv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform1iv(location: number, count: number, v: java.nio.IntBuffer): void;
			public static glUniform2f(location: number, x: number, y: number): void;
			public static glUniform2fv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform2fv(location: number, count: number, v: java.nio.FloatBuffer): void;
			public static glUniform2i(location: number, x: number, y: number): void;
			public static glUniform2iv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform2iv(location: number, count: number, v: java.nio.IntBuffer): void;
			public static glUniform3f(location: number, x: number, y: number, z: number): void;
			public static glUniform3fv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform3fv(location: number, count: number, v: java.nio.FloatBuffer): void;
			public static glUniform3i(location: number, x: number, y: number, z: number): void;
			public static glUniform3iv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform3iv(location: number, count: number, v: java.nio.IntBuffer): void;
			public static glUniform4f(location: number, x: number, y: number, z: number, w: number): void;
			public static glUniform4fv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform4fv(location: number, count: number, v: java.nio.FloatBuffer): void;
			public static glUniform4i(location: number, x: number, y: number, z: number, w: number): void;
			public static glUniform4iv(location: number, count: number, v: native.Array<number>, offset: number): void;
			public static glUniform4iv(location: number, count: number, v: java.nio.IntBuffer): void;
			public static glUniformMatrix2fv(location: number, count: number, transpose: boolean, value: native.Array<number>, offset: number): void;
			public static glUniformMatrix2fv(location: number, count: number, transpose: boolean, value: java.nio.FloatBuffer): void;
			public static glUniformMatrix3fv(location: number, count: number, transpose: boolean, value: native.Array<number>, offset: number): void;
			public static glUniformMatrix3fv(location: number, count: number, transpose: boolean, value: java.nio.FloatBuffer): void;
			public static glUniformMatrix4fv(location: number, count: number, transpose: boolean, value: native.Array<number>, offset: number): void;
			public static glUniformMatrix4fv(location: number, count: number, transpose: boolean, value: java.nio.FloatBuffer): void;
			public static glUseProgram(program: number): void;
			public static glValidateProgram(program: number): void;
			public static glVertexAttrib1f(indx: number, x: number): void;
			public static glVertexAttrib1fv(indx: number, values: native.Array<number>, offset: number): void;
			public static glVertexAttrib1fv(indx: number, values: java.nio.FloatBuffer): void;
			public static glVertexAttrib2f(indx: number, x: number, y: number): void;
			public static glVertexAttrib2fv(indx: number, values: native.Array<number>, offset: number): void;
			public static glVertexAttrib2fv(indx: number, values: java.nio.FloatBuffer): void;
			public static glVertexAttrib3f(indx: number, x: number, y: number, z: number): void;
			public static glVertexAttrib3fv(indx: number, values: native.Array<number>, offset: number): void;
			public static glVertexAttrib3fv(indx: number, values: java.nio.FloatBuffer): void;
			public static glVertexAttrib4f(indx: number, x: number, y: number, z: number, w: number): void;
			public static glVertexAttrib4fv(indx: number, values: native.Array<number>, offset: number): void;
			public static glVertexAttrib4fv(indx: number, values: java.nio.FloatBuffer): void;
			public static glVertexAttribPointer(indx: number, size: number, type: number, normalized: boolean, stride: number, offset: number): void;
			public static glVertexAttribPointer(indx: number, size: number, type: number, normalized: boolean, stride: number, ptr: java.nio.Buffer): void;
			public static glViewport(x: number, y: number, width: number, height: number): void;
		}
		export class EGLLogWrapper extends java.lang.Object implements javax.microedition.khronos.egl.IEGL11 {
			constructor(egl: javax.microedition.khronos.egl.IEGL, configFlags: number, log: java.io.Writer);
			static class: java.lang.Class<android.opengl.EGLLogWrapper>;
			public eglChooseConfig(display: javax.microedition.khronos.egl.EGLDisplay, attrib_list: native.Array<number>, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
			public eglCopyBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, native_pixmap: any): boolean;
			public eglCreateContext(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, share_context: javax.microedition.khronos.egl.EGLContext, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLContext;
			public eglCreatePbufferSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
			public eglCreatePixmapSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_pixmap: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
			public eglCreateWindowSurface(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, native_window: any, attrib_list: native.Array<number>): javax.microedition.khronos.egl.EGLSurface;
			public eglDestroyContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): boolean;
			public eglDestroySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
			public eglGetConfigAttrib(display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, attribute: number, value: native.Array<number>): boolean;
			public eglGetConfigs(display: javax.microedition.khronos.egl.EGLDisplay, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>, config_size: number, num_config: native.Array<number>): boolean;
			public eglGetCurrentContext(): javax.microedition.khronos.egl.EGLContext;
			public eglGetCurrentDisplay(): javax.microedition.khronos.egl.EGLDisplay;
			public eglGetCurrentSurface(readdraw: number): javax.microedition.khronos.egl.EGLSurface;
			public eglGetDisplay(native_display: any): javax.microedition.khronos.egl.EGLDisplay;
			public eglGetError(): number;
			public eglInitialize(display: javax.microedition.khronos.egl.EGLDisplay, major_minor: native.Array<number>): boolean;
			public eglMakeCurrent(display: javax.microedition.khronos.egl.EGLDisplay, draw: javax.microedition.khronos.egl.EGLSurface, read: javax.microedition.khronos.egl.EGLSurface, context: javax.microedition.khronos.egl.EGLContext): boolean;
			public eglQueryContext(display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext, attribute: number, value: native.Array<number>): boolean;
			public eglQueryString(display: javax.microedition.khronos.egl.EGLDisplay, name: number): string;
			public eglQuerySurface(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface, attribute: number, value: native.Array<number>): boolean;
			public eglSwapBuffers(display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): boolean;
			public eglTerminate(display: javax.microedition.khronos.egl.EGLDisplay): boolean;
			public eglWaitGL(): boolean;
			public eglWaitNative(engine: number, bindTarget: any): boolean;
			public static getErrorString(error: number): string;
		}
		/**
		 * Implement an error checking wrapper. The wrapper will automatically call glError after each GL operation, and throw a GLException if an error occurs. (By design, calling glError itself will not cause an exception to be thrown.) Enabling error checking is an alternative to manually calling glError after every GL operation.
		 */
		export class GLErrorWrapper extends android.opengl.GLWrapperBase {
			constructor(gl: javax.microedition.khronos.opengles.IGL, configFlags: number);
			static class: java.lang.Class<android.opengl.GLErrorWrapper>;
			public glActiveTexture(texture: number): void;
			public glAlphaFunc(func: number, ref: number): void;
			public glAlphaFuncx(func: number, ref: number): void;
			public glBindTexture(target: number, texture: number): void;
			public glBlendFunc(sfactor: number, dfactor: number): void;
			public glClear(mask: number): void;
			public glClearColor(red: number, green: number, blue: number, alpha: number): void;
			public glClearColorx(red: number, green: number, blue: number, alpha: number): void;
			public glClearDepthf(depth: number): void;
			public glClearDepthx(depth: number): void;
			public glClearStencil(s: number): void;
			public glClientActiveTexture(texture: number): void;
			public glColor4f(red: number, green: number, blue: number, alpha: number): void;
			public glColor4x(red: number, green: number, blue: number, alpha: number): void;
			public glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
			public glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
			public glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
			public glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
			public glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
			public glCullFace(mode: number): void;
			public glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
			public glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
			public glDepthFunc(func: number): void;
			public glDepthMask(flag: boolean): void;
			public glDepthRangef(near: number, far: number): void;
			public glDepthRangex(near: number, far: number): void;
			public glDisable(cap: number): void;
			public glDisableClientState(array: number): void;
			public glDrawArrays(mode: number, first: number, count: number): void;
			public glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
			public glEnable(cap: number): void;
			public glEnableClientState(array: number): void;
			public glFinish(): void;
			public glFlush(): void;
			public glFogf(pname: number, param: number): void;
			public glFogfv(pname: number, params: native.Array<number>, offset: number): void;
			public glFogfv(pname: number, params: java.nio.FloatBuffer): void;
			public glFogx(pname: number, param: number): void;
			public glFogxv(pname: number, params: native.Array<number>, offset: number): void;
			public glFogxv(pname: number, params: java.nio.IntBuffer): void;
			public glFrontFace(mode: number): void;
			public glFrustumf(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glFrustumx(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
			public glGenTextures(n: number, textures: java.nio.IntBuffer): void;
			public glGetError(): number;
			public glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
			public glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
			public glGetString(name: number): string;
			public glHint(target: number, mode: number): void;
			public glLightModelf(pname: number, param: number): void;
			public glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
			public glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
			public glLightModelx(pname: number, param: number): void;
			public glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
			public glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
			public glLightf(light: number, pname: number, param: number): void;
			public glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			public glLightx(light: number, pname: number, param: number): void;
			public glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			public glLineWidth(width: number): void;
			public glLineWidthx(width: number): void;
			public glLoadIdentity(): void;
			public glLoadMatrixf(m: native.Array<number>, offset: number): void;
			public glLoadMatrixf(m: java.nio.FloatBuffer): void;
			public glLoadMatrixx(m: native.Array<number>, offset: number): void;
			public glLoadMatrixx(m: java.nio.IntBuffer): void;
			public glLogicOp(opcode: number): void;
			public glMaterialf(face: number, pname: number, param: number): void;
			public glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			public glMaterialx(face: number, pname: number, param: number): void;
			public glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			public glMatrixMode(mode: number): void;
			public glMultMatrixf(m: native.Array<number>, offset: number): void;
			public glMultMatrixf(m: java.nio.FloatBuffer): void;
			public glMultMatrixx(m: native.Array<number>, offset: number): void;
			public glMultMatrixx(m: java.nio.IntBuffer): void;
			public glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
			public glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
			public glNormal3f(nx: number, ny: number, nz: number): void;
			public glNormal3x(nx: number, ny: number, nz: number): void;
			public glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
			public glOrthof(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glOrthox(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glPixelStorei(pname: number, param: number): void;
			public glPointSize(size: number): void;
			public glPointSizex(size: number): void;
			public glPolygonOffset(factor: number, units: number): void;
			public glPolygonOffsetx(factor: number, units: number): void;
			public glPopMatrix(): void;
			public glPushMatrix(): void;
			public glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public glRotatef(angle: number, x: number, y: number, z: number): void;
			public glRotatex(angle: number, x: number, y: number, z: number): void;
			public glSampleCoverage(value: number, invert: boolean): void;
			public glSampleCoveragex(value: number, invert: boolean): void;
			public glScalef(x: number, y: number, z: number): void;
			public glScalex(x: number, y: number, z: number): void;
			public glScissor(x: number, y: number, width: number, height: number): void;
			public glShadeModel(mode: number): void;
			public glStencilFunc(func: number, ref: number, mask: number): void;
			public glStencilMask(mask: number): void;
			public glStencilOp(fail: number, zfail: number, zpass: number): void;
			public glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glTexEnvf(target: number, pname: number, param: number): void;
			public glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public glTexEnvx(target: number, pname: number, param: number): void;
			public glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public glTexParameterf(target: number, pname: number, param: number): void;
			public glTexParameterx(target: number, pname: number, param: number): void;
			public glTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public glTranslatef(x: number, y: number, z: number): void;
			public glTranslatex(x: number, y: number, z: number): void;
			public glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glViewport(x: number, y: number, width: number, height: number): void;
			public glClipPlanef(plane: number, equation: native.Array<number>, offset: number): void;
			public glClipPlanef(plane: number, equation: java.nio.FloatBuffer): void;
			public glClipPlanex(plane: number, equation: native.Array<number>, offset: number): void;
			public glClipPlanex(plane: number, equation: java.nio.IntBuffer): void;
			public glDrawTexfOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexfvOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexfvOES(coords: java.nio.FloatBuffer): void;
			public glDrawTexiOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexivOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexivOES(coords: java.nio.IntBuffer): void;
			public glDrawTexsOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexsvOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexsvOES(coords: java.nio.ShortBuffer): void;
			public glDrawTexxOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexxvOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexxvOES(coords: java.nio.IntBuffer): void;
			public glQueryMatrixxOES(mantissa: native.Array<number>, mantissaOffset: number, exponent: native.Array<number>, exponentOffset: number): number;
			public glQueryMatrixxOES(mantissa: java.nio.IntBuffer, exponent: java.nio.IntBuffer): number;
			public glBindBuffer(target: number, buffer: number): void;
			public glBufferData(target: number, size: number, data: java.nio.Buffer, usage: number): void;
			public glBufferSubData(target: number, offset: number, size: number, data: java.nio.Buffer): void;
			public glColor4ub(red: number, green: number, blue: number, alpha: number): void;
			public glColorPointer(size: number, type: number, stride: number, offset: number): void;
			public glDeleteBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public glDeleteBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public glDrawElements(mode: number, count: number, type: number, offset: number): void;
			public glGenBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public glGenBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public glGetBooleanv(pname: number, params: native.Array<boolean>, offset: number): void;
			public glGetBooleanv(pname: number, params: java.nio.IntBuffer): void;
			public glGetBufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetBufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetClipPlanef(pname: number, eqn: native.Array<number>, offset: number): void;
			public glGetClipPlanef(pname: number, eqn: java.nio.FloatBuffer): void;
			public glGetClipPlanex(pname: number, eqn: native.Array<number>, offset: number): void;
			public glGetClipPlanex(pname: number, eqn: java.nio.IntBuffer): void;
			public glGetFixedv(pname: number, params: native.Array<number>, offset: number): void;
			public glGetFixedv(pname: number, params: java.nio.IntBuffer): void;
			public glGetFloatv(pname: number, params: native.Array<number>, offset: number): void;
			public glGetFloatv(pname: number, params: java.nio.FloatBuffer): void;
			public glGetLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetPointerv(pname: number, params: native.Array<java.nio.Buffer>): void;
			public glGetTexEnviv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexEnviv(env: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexEnvxv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexEnvxv(env: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glIsBuffer(buffer: number): boolean;
			public glIsEnabled(cap: number): boolean;
			public glIsTexture(texture: number): boolean;
			public glNormalPointer(type: number, stride: number, offset: number): void;
			public glPointParameterf(pname: number, param: number): void;
			public glPointParameterfv(pname: number, params: native.Array<number>, offset: number): void;
			public glPointParameterfv(pname: number, params: java.nio.FloatBuffer): void;
			public glPointParameterx(pname: number, param: number): void;
			public glPointParameterxv(pname: number, params: native.Array<number>, offset: number): void;
			public glPointParameterxv(pname: number, params: java.nio.IntBuffer): void;
			public glPointSizePointerOES(type: number, stride: number, pointer: java.nio.Buffer): void;
			public glTexCoordPointer(size: number, type: number, stride: number, offset: number): void;
			public glTexEnvi(target: number, pname: number, param: number): void;
			public glTexEnviv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexEnviv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public glTexParameteri(target: number, pname: number, param: number): void;
			public glTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glVertexPointer(size: number, type: number, stride: number, offset: number): void;
			public glCurrentPaletteMatrixOES(matrixpaletteindex: number): void;
			public glLoadPaletteFromModelViewMatrixOES(): void;
			public glMatrixIndexPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glMatrixIndexPointerOES(size: number, type: number, stride: number, offset: number): void;
			public glWeightPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glWeightPointerOES(size: number, type: number, stride: number, offset: number): void;
			public glBindFramebufferOES(target: number, framebuffer: number): void;
			public glBindRenderbufferOES(target: number, renderbuffer: number): void;
			public glBlendEquation(mode: number): void;
			public glBlendEquationSeparate(modeRGB: number, modeAlpha: number): void;
			public glBlendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
			public glCheckFramebufferStatusOES(target: number): number;
			public glDeleteFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			public glDeleteFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			public glDeleteRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public glDeleteRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			public glFramebufferRenderbufferOES(target: number, attachment: number, renderbuffertarget: number, renderbuffer: number): void;
			public glFramebufferTexture2DOES(target: number, attachment: number, textarget: number, texture: number, level: number): void;
			public glGenerateMipmapOES(target: number): void;
			public glGenFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			public glGenFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			public glGenRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public glGenRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			public glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetRenderbufferParameterivOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetRenderbufferParameterivOES(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public glIsFramebufferOES(framebuffer: number): boolean;
			public glIsRenderbufferOES(renderbuffer: number): boolean;
			public glRenderbufferStorageOES(target: number, internalformat: number, width: number, height: number): void;
			public glTexGenf(coord: number, pname: number, param: number): void;
			public glTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			public glTexGeni(coord: number, pname: number, param: number): void;
			public glTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexGenx(coord: number, pname: number, param: number): void;
			public glTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
		}
		/**
		 * Wrapper class for native EGLContext objects.
		 */
		export class EGLContext extends android.opengl.EGLObjectHandle {
			static class: java.lang.Class<android.opengl.EGLContext>;
			public equals(o: any): boolean;
		}
		/**
		 * An implementation of SurfaceView that uses the dedicated surface for displaying OpenGL rendering.
		 */
		export class GLSurfaceView extends android.view.SurfaceView implements android.view.SurfaceHolder.ICallback {
			/**
			 * Standard View constructor. In order to render something, you must call #setRenderer to register a renderer.
			 */
			constructor(context: android.content.Context);
			/**
			 * Standard View constructor. In order to render something, you must call #setRenderer to register a renderer.
			 */
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			/**
			 * The renderer only renders when the surface is created, or when #requestRender is called.
			 */
			static RENDERMODE_WHEN_DIRTY: number;
			/**
			 * The renderer is called continuously to re-render the scene.
			 */
			static RENDERMODE_CONTINUOUSLY: number;
			/**
			 * Check glError() after every GL call and throw an exception if glError indicates that an error has occurred. This can be used to help track down which OpenGL ES call is causing an error.
			 */
			static DEBUG_CHECK_GL_ERROR: number;
			/**
			 * Log GL calls to the system log at "verbose" level with tag "GLSurfaceView".
			 */
			static DEBUG_LOG_GL_CALLS: number;
			static class: java.lang.Class<android.opengl.GLSurfaceView>;
			ComponentSizeChooser: {
	new (redSize: number, greenSize: number, blueSize: number, alphaSize: number, depthSize: number, stencilSize: number): android.opengl.GLSurfaceView.ComponentSizeChooser;
};
			BaseConfigChooser: {
	new (configSpec: native.Array<number>): android.opengl.GLSurfaceView.BaseConfigChooser;
};
			SimpleEGLConfigChooser: {
	new (withDepthBuffer: boolean): android.opengl.GLSurfaceView.SimpleEGLConfigChooser;
};
			protected finalize(): void;
			/**
			 * Set the glWrapper. If the glWrapper is not null, its GLWrapper#wrap(GL) method is called whenever a surface is created. A GLWrapper can be used to wrap the GL object that's passed to the renderer. Wrapping a GL object enables examining and modifying the behavior of the GL calls made by the renderer.
			 * @param glWrapper the new GLWrapper
			 */
			public setGLWrapper(glWrapper: android.opengl.GLSurfaceView.IGLWrapper): void;
			/**
			 * Set the debug flags to a new value. The value is constructed by OR-together zero or more of the DEBUG_CHECK_* constants. The debug flags take effect whenever a surface is created. The default value is zero.
			 * @param debugFlags the new debug flags
			 */
			public setDebugFlags(debugFlags: number): void;
			/**
			 * Get the current value of the debug flags.
			 */
			public getDebugFlags(): number;
			/**
			 * Control whether the EGL context is preserved when the GLSurfaceView is paused and resumed.
			 * @param preserveOnPause preserve the EGL context when paused
			 */
			public setPreserveEGLContextOnPause(preserveOnPause: boolean): void;
			public getPreserveEGLContextOnPause(): boolean;
			/**
			 * Set the renderer associated with this view. Also starts the thread that will call the renderer, which in turn causes the rendering to start.
			 * @param renderer the renderer to use to perform OpenGL drawing.
			 */
			public setRenderer(renderer: android.opengl.GLSurfaceView.IRenderer): void;
			/**
			 * Install a custom EGLContextFactory.
			 */
			public setEGLContextFactory(factory: android.opengl.GLSurfaceView.IEGLContextFactory): void;
			/**
			 * Install a custom EGLWindowSurfaceFactory.
			 */
			public setEGLWindowSurfaceFactory(factory: android.opengl.GLSurfaceView.IEGLWindowSurfaceFactory): void;
			/**
			 * Install a custom EGLConfigChooser.
			 * @param configChooser 
			 */
			public setEGLConfigChooser(configChooser: android.opengl.GLSurfaceView.IEGLConfigChooser): void;
			/**
			 * Install a config chooser which will choose a config as close to 16-bit RGB as possible, with or without an optional depth buffer as close to 16-bits as possible.
			 * @param needDepth 
			 */
			public setEGLConfigChooser(needDepth: boolean): void;
			/**
			 * Install a config chooser which will choose a config with at least the specified depthSize and stencilSize, and exactly the specified redSize, greenSize, blueSize and alphaSize.
			 */
			public setEGLConfigChooser(redSize: number, greenSize: number, blueSize: number, alphaSize: number, depthSize: number, stencilSize: number): void;
			/**
			 * Inform the default EGLContextFactory and default EGLConfigChooser which EGLContext client version to pick.
			 * @param version The EGLContext client version to choose. Use 2 for OpenGL ES 2.0
			 */
			public setEGLContextClientVersion(version: number): void;
			/**
			 * Set the rendering mode. When renderMode is RENDERMODE_CONTINUOUSLY, the renderer is called repeatedly to re-render the scene. When renderMode is RENDERMODE_WHEN_DIRTY, the renderer only rendered when the surface is created, or when #requestRender is called. Defaults to RENDERMODE_CONTINUOUSLY.
			 * @param renderMode one of the RENDERMODE_X constants
			 */
			public setRenderMode(renderMode: number): void;
			/**
			 * Get the current rendering mode. May be called from any thread. Must not be called before a renderer has been set.
			 */
			public getRenderMode(): number;
			/**
			 * Request that the renderer render a frame. This method is typically used when the render mode has been set to #RENDERMODE_WHEN_DIRTY, so that frames are only rendered on demand. May be called from any thread. Must not be called before a renderer has been set.
			 */
			public requestRender(): void;
			/**
			 * This method is part of the SurfaceHolder.Callback interface, and is not normally called or subclassed by clients of GLSurfaceView.
			 */
			public surfaceCreated(holder: android.view.ISurfaceHolder): void;
			/**
			 * This method is part of the SurfaceHolder.Callback interface, and is not normally called or subclassed by clients of GLSurfaceView.
			 */
			public surfaceDestroyed(holder: android.view.ISurfaceHolder): void;
			/**
			 * This method is part of the SurfaceHolder.Callback interface, and is not normally called or subclassed by clients of GLSurfaceView.
			 */
			public surfaceChanged(holder: android.view.ISurfaceHolder, format: number, w: number, h: number): void;
			/**
			 * Inform the view that the activity is paused. The owner of this view must call this method when the activity is paused. Calling this method will pause the rendering thread. Must not be called before a renderer has been set.
			 */
			public onPause(): void;
			/**
			 * Inform the view that the activity is resumed. The owner of this view must call this method when the activity is resumed. Calling this method will recreate the OpenGL display and resume the rendering thread. Must not be called before a renderer has been set.
			 */
			public onResume(): void;
			/**
			 * Queue a runnable to be run on the GL rendering thread. This can be used to communicate with the Renderer on the rendering thread. Must not be called before a renderer has been set.
			 * @param r the runnable to be run on the GL rendering thread.
			 */
			public queueEvent(r: java.lang.IRunnable): void;
			/**
			 * This method is used as part of the View class and is not normally called or subclassed by clients of GLSurfaceView.
			 */
			protected onAttachedToWindow(): void;
			/**
			 * This method is used as part of the View class and is not normally called or subclassed by clients of GLSurfaceView. Must not be called before a renderer has been set.
			 */
			protected onDetachedFromWindow(): void;
		}
		export module GLSurfaceView {
			/**
			 * Choose a configuration with exactly the specified r,g,b,a sizes, and at least the specified depth and stencil sizes.
			 */
			export class ComponentSizeChooser extends android.opengl.GLSurfaceView.BaseConfigChooser {
				static class: java.lang.Class<android.opengl.GLSurfaceView.ComponentSizeChooser>;
				public chooseConfig(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>): javax.microedition.khronos.egl.EGLConfig;
				chooseConfig(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay): javax.microedition.khronos.egl.EGLConfig;
			}
			/**
			 * An interface for customizing the eglCreateWindowSurface and eglDestroySurface calls.
			 */
			export class EGLWindowSurfaceFactory implements android.opengl.GLSurfaceView.IEGLWindowSurfaceFactory {
				constructor(implementation: android.opengl.GLSurfaceView.IEGLWindowSurfaceFactory);
				public createWindowSurface(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, nativeWindow: any): javax.microedition.khronos.egl.EGLSurface;
				public destroySurface(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): void;
			}
			export class BaseConfigChooser extends java.lang.Object implements android.opengl.GLSurfaceView.IEGLConfigChooser {
				static class: java.lang.Class<android.opengl.GLSurfaceView.BaseConfigChooser>;
				public chooseConfig(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay): javax.microedition.khronos.egl.EGLConfig;
				chooseConfig(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, configs: native.Array<javax.microedition.khronos.egl.EGLConfig>): javax.microedition.khronos.egl.EGLConfig;
			}
			/**
			 * An interface used to wrap a GL interface.
			 */
			export class GLWrapper implements android.opengl.GLSurfaceView.IGLWrapper {
				constructor(implementation: android.opengl.GLSurfaceView.IGLWrapper);
				/**
				 * Wraps a gl interface in another gl interface.
				 * @param gl a GL interface that is to be wrapped.
				 */
				public wrap(gl: javax.microedition.khronos.opengles.IGL): javax.microedition.khronos.opengles.IGL;
			}
			/**
			 * An interface for customizing the eglCreateContext and eglDestroyContext calls.
			 */
			export class EGLContextFactory implements android.opengl.GLSurfaceView.IEGLContextFactory {
				constructor(implementation: android.opengl.GLSurfaceView.IEGLContextFactory);
				public createContext(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, eglConfig: javax.microedition.khronos.egl.EGLConfig): javax.microedition.khronos.egl.EGLContext;
				public destroyContext(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): void;
			}
			export class GLThreadManager extends java.lang.Object {
				static class: java.lang.Class<android.opengl.GLSurfaceView.GLThreadManager>;
				public threadExiting(thread: android.opengl.GLSurfaceView.GLThread): void;
				public tryAcquireEglContextLocked(thread: android.opengl.GLSurfaceView.GLThread): boolean;
				public releaseEglContextLocked(thread: android.opengl.GLSurfaceView.GLThread): void;
				public shouldReleaseEGLContextWhenPausing(): boolean;
				public shouldTerminateEGLWhenPausing(): boolean;
				public checkGLDriver(gl: javax.microedition.khronos.opengles.IGL10): void;
			}
			/**
			 * An interface for customizing the eglCreateWindowSurface and eglDestroySurface calls.
			 */
			interface IEGLWindowSurfaceFactory {
				createWindowSurface(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, nativeWindow: any): javax.microedition.khronos.egl.EGLSurface;
				destroySurface(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): void;
			}
			/**
			 * This class will choose a RGB_888 surface with or without a depth buffer.
			 */
			export class SimpleEGLConfigChooser extends android.opengl.GLSurfaceView.ComponentSizeChooser {
				static class: java.lang.Class<android.opengl.GLSurfaceView.SimpleEGLConfigChooser>;
			}
			/**
			 * An interface used to wrap a GL interface.
			 */
			interface IGLWrapper {
				/**
				 * Wraps a gl interface in another gl interface.
				 * @param gl a GL interface that is to be wrapped.
				 */
				wrap(gl: javax.microedition.khronos.opengles.IGL): javax.microedition.khronos.opengles.IGL;
			}
			/**
			 * An EGL helper class.
			 */
			export class EglHelper extends java.lang.Object {
				constructor(glSurfaceViewWeakRef: java.lang.ref.WeakReference<android.opengl.GLSurfaceView>);
				static class: java.lang.Class<android.opengl.GLSurfaceView.EglHelper>;
				/**
				 * Initialize EGL for a given configuration spec.
				 */
				public start(): void;
				/**
				 * Create an egl surface for the current SurfaceHolder surface. If a surface already exists, destroy it before creating the new surface.
				 */
				public createSurface(): boolean;
				/**
				 * Create a GL object for the current EGL context.
				 */
				createGL(): javax.microedition.khronos.opengles.IGL;
				/**
				 * Display the current render surface.
				 */
				public swap(): number;
				public destroySurface(): void;
				public finish(): void;
				public static throwEglException(funcArg: string, error: number): void;
				public static logEglErrorAsWarning(tag: string, funcArg: string, error: number): void;
				public static formatEglError(funcArg: string, error: number): string;
			}
			/**
			 * A generic renderer interface.
			 */
			interface IRenderer {
				/**
				 * Called when the surface is created or recreated.
				 * @param gl the GL interface. Use <code>instanceof</code> to
				 * @param config the EGLConfig of the created surface. Can be used
				 */
				onSurfaceCreated(gl: javax.microedition.khronos.opengles.IGL10, config: javax.microedition.khronos.egl.EGLConfig): void;
				/**
				 * Called when the surface changed size.
				 * @param gl the GL interface. Use <code>instanceof</code> to
				 * @param width 
				 * @param height 
				 */
				onSurfaceChanged(gl: javax.microedition.khronos.opengles.IGL10, width: number, height: number): void;
				/**
				 * Called to draw the current frame.
				 * @param gl the GL interface. Use <code>instanceof</code> to
				 */
				onDrawFrame(gl: javax.microedition.khronos.opengles.IGL10): void;
			}
			export class DefaultContextFactory extends java.lang.Object implements android.opengl.GLSurfaceView.IEGLContextFactory {
				static class: java.lang.Class<android.opengl.GLSurfaceView.DefaultContextFactory>;
				public createContext(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig): javax.microedition.khronos.egl.EGLContext;
				public destroyContext(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): void;
			}
			export class LogWriter extends java.io.Writer {
				static class: java.lang.Class<android.opengl.GLSurfaceView.LogWriter>;
				public close(): void;
				public flush(): void;
				public write(buf: native.Array<string>, offset: number, count: number): void;
				/**
				 * Writes the entire character buffer buf to the target.
				 * @param buf 
				 */
				write(buf: native.Array<string>): void;
				/**
				 * Writes one character to the target. Only the two least significant bytes of the integer oneChar are written.
				 * @param oneChar 
				 */
				write(oneChar: number): void;
				/**
				 * Writes the characters from the specified string to the target.
				 * @param str 
				 */
				write(str: string): void;
				/**
				 * Writes count characters from str starting at offset to the target.
				 * @param str 
				 * @param offset 
				 * @param count 
				 */
				write(str: string, offset: number, count: number): void;
			}
			/**
			 * A generic renderer interface.
			 */
			export class Renderer implements android.opengl.GLSurfaceView.IRenderer {
				constructor(implementation: android.opengl.GLSurfaceView.IRenderer);
				/**
				 * Called when the surface is created or recreated.
				 * @param gl the GL interface. Use <code>instanceof</code> to
				 * @param config the EGLConfig of the created surface. Can be used
				 */
				public onSurfaceCreated(gl: javax.microedition.khronos.opengles.IGL10, config: javax.microedition.khronos.egl.EGLConfig): void;
				/**
				 * Called when the surface changed size.
				 * @param gl the GL interface. Use <code>instanceof</code> to
				 * @param width 
				 * @param height 
				 */
				public onSurfaceChanged(gl: javax.microedition.khronos.opengles.IGL10, width: number, height: number): void;
				/**
				 * Called to draw the current frame.
				 * @param gl the GL interface. Use <code>instanceof</code> to
				 */
				public onDrawFrame(gl: javax.microedition.khronos.opengles.IGL10): void;
			}
			/**
			 * An interface for customizing the eglCreateContext and eglDestroyContext calls.
			 */
			interface IEGLContextFactory {
				createContext(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, eglConfig: javax.microedition.khronos.egl.EGLConfig): javax.microedition.khronos.egl.EGLContext;
				destroyContext(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, context: javax.microedition.khronos.egl.EGLContext): void;
			}
			/**
			 * An interface for choosing an EGLConfig configuration from a list of potential configurations.
			 */
			interface IEGLConfigChooser {
				/**
				 * Choose a configuration from the list. Implementors typically implement this method by calling EGL10#eglChooseConfig and iterating through the results. Please consult the EGL specification available from The Khronos Group to learn how to call eglChooseConfig.
				 * @param egl the EGL10 for the current display.
				 * @param display the current display.
				 */
				chooseConfig(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay): javax.microedition.khronos.egl.EGLConfig;
			}
			export class DefaultWindowSurfaceFactory extends java.lang.Object implements android.opengl.GLSurfaceView.IEGLWindowSurfaceFactory {
				static class: java.lang.Class<android.opengl.GLSurfaceView.DefaultWindowSurfaceFactory>;
				public createWindowSurface(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, config: javax.microedition.khronos.egl.EGLConfig, nativeWindow: any): javax.microedition.khronos.egl.EGLSurface;
				public destroySurface(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay, surface: javax.microedition.khronos.egl.EGLSurface): void;
			}
			/**
			 * A generic GL Thread. Takes care of initializing EGL and GL. Delegates to a Renderer instance to do the actual drawing. Can be configured to render continuously or on request.
			 */
			export class GLThread extends java.lang.Thread {
				static class: java.lang.Class<android.opengl.GLSurfaceView.GLThread>;
				public run(): void;
				public ableToDraw(): boolean;
				public setRenderMode(renderMode: number): void;
				public getRenderMode(): number;
				public requestRender(): void;
				public surfaceCreated(): void;
				public surfaceDestroyed(): void;
				public onPause(): void;
				public onResume(): void;
				public onWindowResize(w: number, h: number): void;
				public requestExitAndWait(): void;
				public requestReleaseEglContextLocked(): void;
				/**
				 * Queue an "event" to be run on the GL rendering thread.
				 * @param r the runnable to be run on the GL rendering thread.
				 */
				public queueEvent(r: java.lang.IRunnable): void;
			}
			/**
			 * An interface for choosing an EGLConfig configuration from a list of potential configurations.
			 */
			export class EGLConfigChooser implements android.opengl.GLSurfaceView.IEGLConfigChooser {
				constructor(implementation: android.opengl.GLSurfaceView.IEGLConfigChooser);
				/**
				 * Choose a configuration from the list. Implementors typically implement this method by calling EGL10#eglChooseConfig and iterating through the results. Please consult the EGL specification available from The Khronos Group to learn how to call eglChooseConfig.
				 * @param egl the EGL10 for the current display.
				 * @param display the current display.
				 */
				public chooseConfig(egl: javax.microedition.khronos.egl.IEGL10, display: javax.microedition.khronos.egl.EGLDisplay): javax.microedition.khronos.egl.EGLConfig;
			}
		}
		/**
		 * Wrapper class for native EGLConfig objects.
		 */
		export class EGLConfig extends android.opengl.EGLObjectHandle {
			static class: java.lang.Class<android.opengl.EGLConfig>;
			public equals(o: any): boolean;
		}
		/**
		 * A set of GL utilities inspired by the OpenGL Utility Toolkit.
		 */
		export class GLU extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.opengl.GLU>;
			/**
			 * Return an error string from a GL or GLU error code.
			 * @param error - a GL or GLU error code.
			 */
			public static gluErrorString(error: number): string;
			/**
			 * Define a viewing transformation in terms of an eye point, a center of view, and an up vector.
			 * @param gl a GL10 interface
			 * @param eyeX eye point X
			 * @param eyeY eye point Y
			 * @param eyeZ eye point Z
			 * @param centerX center of view X
			 * @param centerY center of view Y
			 * @param centerZ center of view Z
			 * @param upX up vector X
			 * @param upY up vector Y
			 * @param upZ up vector Z
			 */
			public static gluLookAt(gl: javax.microedition.khronos.opengles.IGL10, eyeX: number, eyeY: number, eyeZ: number, centerX: number, centerY: number, centerZ: number, upX: number, upY: number, upZ: number): void;
			/**
			 * Set up a 2D orthographic projection matrix
			 * @param gl 
			 * @param left 
			 * @param right 
			 * @param bottom 
			 * @param top 
			 */
			public static gluOrtho2D(gl: javax.microedition.khronos.opengles.IGL10, left: number, right: number, bottom: number, top: number): void;
			/**
			 * Set up a perspective projection matrix
			 * @param gl a GL10 interface
			 * @param fovy specifies the field of view angle, in degrees, in the Y
			 * @param aspect specifies the aspect ration that determins the field of
			 * @param zNear specifies the distance from the viewer to the near clipping
			 * @param zFar specifies the distance from the viewer to the far clipping
			 */
			public static gluPerspective(gl: javax.microedition.khronos.opengles.IGL10, fovy: number, aspect: number, zNear: number, zFar: number): void;
			/**
			 * Map object coordinates into window coordinates. gluProject transforms the specified object coordinates into window coordinates using model, proj, and view. The result is stored in win.
			 * @param objX object coordinates X
			 * @param objY object coordinates Y
			 * @param objZ object coordinates Z
			 * @param model the current modelview matrix
			 * @param modelOffset the offset into the model array where the modelview
			 * @param project the current projection matrix
			 * @param projectOffset the offset into the project array where the project
			 * @param view the current view, {x, y, width, height}
			 * @param viewOffset the offset into the view array where the view vector
			 * @param win the output vector {winX, winY, winZ}, that returns the
			 * @param winOffset the offset into the win array where the win vector data
			 */
			public static gluProject(objX: number, objY: number, objZ: number, model: native.Array<number>, modelOffset: number, project: native.Array<number>, projectOffset: number, view: native.Array<number>, viewOffset: number, win: native.Array<number>, winOffset: number): number;
			/**
			 * Map window coordinates to object coordinates. gluUnProject maps the specified window coordinates into object coordinates using model, proj, and view. The result is stored in obj.
			 * @param winX window coordinates X
			 * @param winY window coordinates Y
			 * @param winZ window coordinates Z
			 * @param model the current modelview matrix
			 * @param modelOffset the offset into the model array where the modelview
			 * @param project the current projection matrix
			 * @param projectOffset the offset into the project array where the project
			 * @param view the current view, {x, y, width, height}
			 * @param viewOffset the offset into the view array where the view vector
			 * @param obj the output vector {objX, objY, objZ}, that returns the
			 * @param objOffset the offset into the obj array where the obj vector data
			 */
			public static gluUnProject(winX: number, winY: number, winZ: number, model: native.Array<number>, modelOffset: number, project: native.Array<number>, projectOffset: number, view: native.Array<number>, viewOffset: number, obj: native.Array<number>, objOffset: number): number;
		}
		/**
		 * The abstract base class for a GL wrapper. Provides some convenient instance variables and default implementations.
		 */
		export class GLWrapperBase extends java.lang.Object implements javax.microedition.khronos.opengles.IGL, javax.microedition.khronos.opengles.IGL10, javax.microedition.khronos.opengles.IGL10Ext, javax.microedition.khronos.opengles.IGL11, javax.microedition.khronos.opengles.IGL11Ext, javax.microedition.khronos.opengles.IGL11ExtensionPack {
			constructor(gl: javax.microedition.khronos.opengles.IGL);
			static class: java.lang.Class<android.opengl.GLWrapperBase>;
			glActiveTexture(texture: number): void;
			glAlphaFunc(func: number, ref: number): void;
			glAlphaFuncx(func: number, ref: number): void;
			glBindTexture(target: number, texture: number): void;
			glBlendFunc(sfactor: number, dfactor: number): void;
			glClear(mask: number): void;
			glClearColor(red: number, green: number, blue: number, alpha: number): void;
			glClearColorx(red: number, green: number, blue: number, alpha: number): void;
			glClearDepthf(depth: number): void;
			glClearDepthx(depth: number): void;
			glClearStencil(s: number): void;
			glClientActiveTexture(texture: number): void;
			glColor4f(red: number, green: number, blue: number, alpha: number): void;
			glColor4x(red: number, green: number, blue: number, alpha: number): void;
			glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
			glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
			glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
			glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
			glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
			glCullFace(mode: number): void;
			glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
			glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
			glDepthFunc(func: number): void;
			glDepthMask(flag: boolean): void;
			glDepthRangef(zNear: number, zFar: number): void;
			glDepthRangex(zNear: number, zFar: number): void;
			glDisable(cap: number): void;
			glDisableClientState(array: number): void;
			glDrawArrays(mode: number, first: number, count: number): void;
			glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
			glEnable(cap: number): void;
			glEnableClientState(array: number): void;
			glFinish(): void;
			glFlush(): void;
			glFogf(pname: number, param: number): void;
			glFogfv(pname: number, params: native.Array<number>, offset: number): void;
			glFogfv(pname: number, params: java.nio.FloatBuffer): void;
			glFogx(pname: number, param: number): void;
			glFogxv(pname: number, params: native.Array<number>, offset: number): void;
			glFogxv(pname: number, params: java.nio.IntBuffer): void;
			glFrontFace(mode: number): void;
			glFrustumf(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			glFrustumx(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
			glGenTextures(n: number, textures: java.nio.IntBuffer): void;
			glGetError(): number;
			glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
			glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
			glGetString(name: number): string;
			glHint(target: number, mode: number): void;
			glLightModelf(pname: number, param: number): void;
			glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
			glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
			glLightModelx(pname: number, param: number): void;
			glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
			glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
			glLightf(light: number, pname: number, param: number): void;
			glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			glLightx(light: number, pname: number, param: number): void;
			glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			glLineWidth(width: number): void;
			glLineWidthx(width: number): void;
			glLoadIdentity(): void;
			glLoadMatrixf(m: native.Array<number>, offset: number): void;
			glLoadMatrixf(m: java.nio.FloatBuffer): void;
			glLoadMatrixx(m: native.Array<number>, offset: number): void;
			glLoadMatrixx(m: java.nio.IntBuffer): void;
			glLogicOp(opcode: number): void;
			glMaterialf(face: number, pname: number, param: number): void;
			glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			glMaterialx(face: number, pname: number, param: number): void;
			glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			glMatrixMode(mode: number): void;
			glMultMatrixf(m: native.Array<number>, offset: number): void;
			glMultMatrixf(m: java.nio.FloatBuffer): void;
			glMultMatrixx(m: native.Array<number>, offset: number): void;
			glMultMatrixx(m: java.nio.IntBuffer): void;
			glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
			glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
			glNormal3f(nx: number, ny: number, nz: number): void;
			glNormal3x(nx: number, ny: number, nz: number): void;
			glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
			glOrthof(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			glOrthox(left: number, right: number, bottom: number, top: number, zNear: number, zFar: number): void;
			glPixelStorei(pname: number, param: number): void;
			glPointSize(size: number): void;
			glPointSizex(size: number): void;
			glPolygonOffset(factor: number, units: number): void;
			glPolygonOffsetx(factor: number, units: number): void;
			glPopMatrix(): void;
			glPushMatrix(): void;
			glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			glRotatef(angle: number, x: number, y: number, z: number): void;
			glRotatex(angle: number, x: number, y: number, z: number): void;
			glSampleCoverage(value: number, invert: boolean): void;
			glSampleCoveragex(value: number, invert: boolean): void;
			glScalef(x: number, y: number, z: number): void;
			glScalex(x: number, y: number, z: number): void;
			glScissor(x: number, y: number, width: number, height: number): void;
			glShadeModel(mode: number): void;
			glStencilFunc(func: number, ref: number, mask: number): void;
			glStencilMask(mask: number): void;
			glStencilOp(fail: number, zfail: number, zpass: number): void;
			glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			glTexEnvf(target: number, pname: number, param: number): void;
			glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			glTexEnvx(target: number, pname: number, param: number): void;
			glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
			glTexParameterf(target: number, pname: number, param: number): void;
			glTexParameterx(target: number, pname: number, param: number): void;
			glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			glTranslatef(x: number, y: number, z: number): void;
			glTranslatex(x: number, y: number, z: number): void;
			glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			glViewport(x: number, y: number, width: number, height: number): void;
			glQueryMatrixxOES(mantissa: native.Array<number>, mantissaOffset: number, exponent: native.Array<number>, exponentOffset: number): number;
			glQueryMatrixxOES(mantissa: java.nio.IntBuffer, exponent: java.nio.IntBuffer): number;
			glGetPointerv(pname: number, params: native.Array<java.nio.Buffer>): void;
			glBindBuffer(target: number, buffer: number): void;
			glBufferData(target: number, size: number, data: java.nio.Buffer, usage: number): void;
			glBufferSubData(target: number, offset: number, size: number, data: java.nio.Buffer): void;
			glClipPlanef(plane: number, equation: native.Array<number>, offset: number): void;
			glClipPlanef(plane: number, equation: java.nio.FloatBuffer): void;
			glClipPlanex(plane: number, equation: native.Array<number>, offset: number): void;
			glClipPlanex(plane: number, equation: java.nio.IntBuffer): void;
			glColor4ub(red: number, green: number, blue: number, alpha: number): void;
			glColorPointer(size: number, type: number, stride: number, offset: number): void;
			glDeleteBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			glDeleteBuffers(n: number, buffers: java.nio.IntBuffer): void;
			glDrawElements(mode: number, count: number, type: number, offset: number): void;
			glGenBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			glGenBuffers(n: number, buffers: java.nio.IntBuffer): void;
			glGetBooleanv(pname: number, params: native.Array<boolean>, offset: number): void;
			glGetBooleanv(pname: number, params: java.nio.IntBuffer): void;
			glGetBufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetBufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			glGetClipPlanef(pname: number, eqn: native.Array<number>, offset: number): void;
			glGetClipPlanef(pname: number, eqn: java.nio.FloatBuffer): void;
			glGetClipPlanex(pname: number, eqn: native.Array<number>, offset: number): void;
			glGetClipPlanex(pname: number, eqn: java.nio.IntBuffer): void;
			glGetFixedv(pname: number, params: native.Array<number>, offset: number): void;
			glGetFixedv(pname: number, params: java.nio.IntBuffer): void;
			glGetFloatv(pname: number, params: native.Array<number>, offset: number): void;
			glGetFloatv(pname: number, params: java.nio.FloatBuffer): void;
			glGetLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			glGetLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			glGetMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			glGetMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			glGetTexEnviv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexEnviv(env: number, pname: number, params: java.nio.IntBuffer): void;
			glGetTexEnvxv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexEnvxv(env: number, pname: number, params: java.nio.IntBuffer): void;
			glGetTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			glGetTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			glGetTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			glIsBuffer(buffer: number): boolean;
			glIsEnabled(cap: number): boolean;
			glIsTexture(texture: number): boolean;
			glNormalPointer(type: number, stride: number, offset: number): void;
			glPointParameterf(pname: number, param: number): void;
			glPointParameterfv(pname: number, params: native.Array<number>, offset: number): void;
			glPointParameterfv(pname: number, params: java.nio.FloatBuffer): void;
			glPointParameterx(pname: number, param: number): void;
			glPointParameterxv(pname: number, params: native.Array<number>, offset: number): void;
			glPointParameterxv(pname: number, params: java.nio.IntBuffer): void;
			glPointSizePointerOES(type: number, stride: number, pointer: java.nio.Buffer): void;
			glTexCoordPointer(size: number, type: number, stride: number, offset: number): void;
			glTexEnvi(target: number, pname: number, param: number): void;
			glTexEnviv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexEnviv(target: number, pname: number, params: java.nio.IntBuffer): void;
			glTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			glTexParameteri(target: number, pname: number, param: number): void;
			glTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			glTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			glVertexPointer(size: number, type: number, stride: number, offset: number): void;
			glCurrentPaletteMatrixOES(matrixpaletteindex: number): void;
			glDrawTexfOES(x: number, y: number, z: number, width: number, height: number): void;
			glDrawTexfvOES(coords: native.Array<number>, offset: number): void;
			glDrawTexfvOES(coords: java.nio.FloatBuffer): void;
			glDrawTexiOES(x: number, y: number, z: number, width: number, height: number): void;
			glDrawTexivOES(coords: native.Array<number>, offset: number): void;
			glDrawTexivOES(coords: java.nio.IntBuffer): void;
			glDrawTexsOES(x: number, y: number, z: number, width: number, height: number): void;
			glDrawTexsvOES(coords: native.Array<number>, offset: number): void;
			glDrawTexsvOES(coords: java.nio.ShortBuffer): void;
			glDrawTexxOES(x: number, y: number, z: number, width: number, height: number): void;
			glDrawTexxvOES(coords: native.Array<number>, offset: number): void;
			glDrawTexxvOES(coords: java.nio.IntBuffer): void;
			glLoadPaletteFromModelViewMatrixOES(): void;
			glMatrixIndexPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			glMatrixIndexPointerOES(size: number, type: number, stride: number, offset: number): void;
			glWeightPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			glWeightPointerOES(size: number, type: number, stride: number, offset: number): void;
			glBindFramebufferOES(target: number, framebuffer: number): void;
			glBindRenderbufferOES(target: number, renderbuffer: number): void;
			glBlendEquation(mode: number): void;
			glBlendEquationSeparate(modeRGB: number, modeAlpha: number): void;
			glBlendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
			glCheckFramebufferStatusOES(target: number): number;
			glDeleteFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			glDeleteFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			glDeleteRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			glDeleteRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			glFramebufferRenderbufferOES(target: number, attachment: number, renderbuffertarget: number, renderbuffer: number): void;
			glFramebufferTexture2DOES(target: number, attachment: number, textarget: number, texture: number, level: number): void;
			glGenerateMipmapOES(target: number): void;
			glGenFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			glGenFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			glGenRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			glGenRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: java.nio.IntBuffer): void;
			glGetRenderbufferParameterivOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetRenderbufferParameterivOES(target: number, pname: number, params: java.nio.IntBuffer): void;
			glGetTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			glGetTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			glGetTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			glGetTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			glIsFramebufferOES(framebuffer: number): boolean;
			glIsRenderbufferOES(renderbuffer: number): boolean;
			glRenderbufferStorageOES(target: number, internalformat: number, width: number, height: number): void;
			glTexGenf(coord: number, pname: number, param: number): void;
			glTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			glTexGeni(coord: number, pname: number, param: number): void;
			glTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			glTexGenx(coord: number, pname: number, param: number): void;
			glTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			glTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
		}
		/**
		 * Base class for wrapped EGL objects.
		 */
		export class EGLObjectHandle extends java.lang.Object {
			static class: java.lang.Class<android.opengl.EGLObjectHandle>;
			/**
			 * Returns the native handle of the wrapped EGL object. This handle can be cast to the corresponding native type on the native side.
			 */
			public getHandle(): number;
			public hashCode(): number;
		}
		/**
		 * Matrix math utilities. These methods operate on OpenGL ES format matrices and vectors stored in float arrays.
		 */
		export class Matrix extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.opengl.Matrix>;
			/**
			 * Multiply two 4x4 matrices together and store the result in a third 4x4 matrix. In matrix notation: result = lhs x rhs. Due to the way matrix multiplication works, the result matrix will have the same effect as first multiplying by the rhs matrix, then multiplying by the lhs matrix. This is the opposite of what you might expect.
			 * @param result The float array that holds the result.
			 * @param resultOffset The offset into the result array where the result is
			 * @param lhs The float array that holds the left-hand-side matrix.
			 * @param lhsOffset The offset into the lhs array where the lhs is stored
			 * @param rhs The float array that holds the right-hand-side matrix.
			 * @param rhsOffset The offset into the rhs array where the rhs is stored.
			 */
			public static multiplyMM(result: native.Array<number>, resultOffset: number, lhs: native.Array<number>, lhsOffset: number, rhs: native.Array<number>, rhsOffset: number): void;
			/**
			 * Multiply a 4 element vector by a 4x4 matrix and store the result in a 4 element column vector. In matrix notation: result = lhs x rhs
			 * @param resultVec The float array that holds the result vector.
			 * @param resultVecOffset The offset into the result array where the result
			 * @param lhsMat The float array that holds the left-hand-side matrix.
			 * @param lhsMatOffset The offset into the lhs array where the lhs is stored
			 * @param rhsVec The float array that holds the right-hand-side vector.
			 * @param rhsVecOffset The offset into the rhs vector where the rhs vector
			 */
			public static multiplyMV(resultVec: native.Array<number>, resultVecOffset: number, lhsMat: native.Array<number>, lhsMatOffset: number, rhsVec: native.Array<number>, rhsVecOffset: number): void;
			/**
			 * Transposes a 4 x 4 matrix.
			 * @param mTrans the array that holds the output inverted matrix
			 * @param mTransOffset an offset into mInv where the inverted matrix is
			 * @param m the input array
			 * @param mOffset an offset into m where the matrix is stored.
			 */
			public static transposeM(mTrans: native.Array<number>, mTransOffset: number, m: native.Array<number>, mOffset: number): void;
			/**
			 * Inverts a 4 x 4 matrix.
			 * @param mInv the array that holds the output inverted matrix
			 * @param mInvOffset an offset into mInv where the inverted matrix is
			 * @param m the input array
			 * @param mOffset an offset into m where the matrix is stored.
			 */
			public static invertM(mInv: native.Array<number>, mInvOffset: number, m: native.Array<number>, mOffset: number): boolean;
			/**
			 * Computes an orthographic projection matrix.
			 * @param m returns the result
			 * @param mOffset 
			 * @param left 
			 * @param right 
			 * @param bottom 
			 * @param top 
			 * @param near 
			 * @param far 
			 */
			public static orthoM(m: native.Array<number>, mOffset: number, left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			/**
			 * Define a projection matrix in terms of six clip planes
			 * @param m the float array that holds the perspective matrix
			 * @param offset the offset into float array m where the perspective
			 * @param left 
			 * @param right 
			 * @param bottom 
			 * @param top 
			 * @param near 
			 * @param far 
			 */
			public static frustumM(m: native.Array<number>, offset: number, left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			/**
			 * Define a projection matrix in terms of a field of view angle, an aspect ratio, and z clip planes
			 * @param m the float array that holds the perspective matrix
			 * @param offset the offset into float array m where the perspective
			 * @param fovy field of view in y direction, in degrees
			 * @param aspect width to height aspect ratio of the viewport
			 * @param zNear 
			 * @param zFar 
			 */
			public static perspectiveM(m: native.Array<number>, offset: number, fovy: number, aspect: number, zNear: number, zFar: number): void;
			/**
			 * Computes the length of a vector
			 * @param x x coordinate of a vector
			 * @param y y coordinate of a vector
			 * @param z z coordinate of a vector
			 */
			public static length(x: number, y: number, z: number): number;
			/**
			 * Sets matrix m to the identity matrix.
			 * @param sm returns the result
			 * @param smOffset index into sm where the result matrix starts
			 */
			public static setIdentityM(sm: native.Array<number>, smOffset: number): void;
			/**
			 * Scales matrix m by x, y, and z, putting the result in sm
			 * @param sm returns the result
			 * @param smOffset index into sm where the result matrix starts
			 * @param m source matrix
			 * @param mOffset index into m where the source matrix starts
			 * @param x scale factor x
			 * @param y scale factor y
			 * @param z scale factor z
			 */
			public static scaleM(sm: native.Array<number>, smOffset: number, m: native.Array<number>, mOffset: number, x: number, y: number, z: number): void;
			/**
			 * Scales matrix m in place by sx, sy, and sz
			 * @param m matrix to scale
			 * @param mOffset index into m where the matrix starts
			 * @param x scale factor x
			 * @param y scale factor y
			 * @param z scale factor z
			 */
			public static scaleM(m: native.Array<number>, mOffset: number, x: number, y: number, z: number): void;
			/**
			 * Translates matrix m by x, y, and z, putting the result in tm
			 * @param tm returns the result
			 * @param tmOffset index into sm where the result matrix starts
			 * @param m source matrix
			 * @param mOffset index into m where the source matrix starts
			 * @param x translation factor x
			 * @param y translation factor y
			 * @param z translation factor z
			 */
			public static translateM(tm: native.Array<number>, tmOffset: number, m: native.Array<number>, mOffset: number, x: number, y: number, z: number): void;
			/**
			 * Translates matrix m by x, y, and z in place.
			 * @param m matrix
			 * @param mOffset index into m where the matrix starts
			 * @param x translation factor x
			 * @param y translation factor y
			 * @param z translation factor z
			 */
			public static translateM(m: native.Array<number>, mOffset: number, x: number, y: number, z: number): void;
			/**
			 * Rotates matrix m by angle a (in degrees) around the axis (x, y, z)
			 * @param rm returns the result
			 * @param rmOffset index into rm where the result matrix starts
			 * @param m source matrix
			 * @param mOffset index into m where the source matrix starts
			 * @param a angle to rotate in degrees
			 * @param x scale factor x
			 * @param y scale factor y
			 * @param z scale factor z
			 */
			public static rotateM(rm: native.Array<number>, rmOffset: number, m: native.Array<number>, mOffset: number, a: number, x: number, y: number, z: number): void;
			/**
			 * Rotates matrix m in place by angle a (in degrees) around the axis (x, y, z)
			 * @param m source matrix
			 * @param mOffset index into m where the matrix starts
			 * @param a angle to rotate in degrees
			 * @param x scale factor x
			 * @param y scale factor y
			 * @param z scale factor z
			 */
			public static rotateM(m: native.Array<number>, mOffset: number, a: number, x: number, y: number, z: number): void;
			/**
			 * Rotates matrix m by angle a (in degrees) around the axis (x, y, z)
			 * @param rm returns the result
			 * @param rmOffset index into rm where the result matrix starts
			 * @param a angle to rotate in degrees
			 * @param x scale factor x
			 * @param y scale factor y
			 * @param z scale factor z
			 */
			public static setRotateM(rm: native.Array<number>, rmOffset: number, a: number, x: number, y: number, z: number): void;
			/**
			 * Converts Euler angles to a rotation matrix
			 * @param rm returns the result
			 * @param rmOffset index into rm where the result matrix starts
			 * @param x angle of rotation, in degrees
			 * @param y angle of rotation, in degrees
			 * @param z angle of rotation, in degrees
			 */
			public static setRotateEulerM(rm: native.Array<number>, rmOffset: number, x: number, y: number, z: number): void;
			/**
			 * Define a viewing transformation in terms of an eye point, a center of view, and an up vector.
			 * @param rm returns the result
			 * @param rmOffset index into rm where the result matrix starts
			 * @param eyeX eye point X
			 * @param eyeY eye point Y
			 * @param eyeZ eye point Z
			 * @param centerX center of view X
			 * @param centerY center of view Y
			 * @param centerZ center of view Z
			 * @param upX up vector X
			 * @param upY up vector Y
			 * @param upZ up vector Z
			 */
			public static setLookAtM(rm: native.Array<number>, rmOffset: number, eyeX: number, eyeY: number, eyeZ: number, centerX: number, centerY: number, centerZ: number, upX: number, upY: number, upZ: number): void;
		}
		/**
		 * Utility methods for using ETC1 compressed textures.
		 */
		export class ETC1Util extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.opengl.ETC1Util>;
			/**
			 * Convenience method to load an ETC1 texture whether or not the active OpenGL context supports the ETC1 texture compression format.
			 * @param target the texture target.
			 * @param level the texture level
			 * @param border the border size. Typically 0.
			 * @param fallbackFormat the format to use if ETC1 texture compression is not supported.
			 * @param fallbackType the type to use if ETC1 texture compression is not supported.
			 * @param input the input stream containing an ETC1 texture in PKM format.
			 */
			public static loadTexture(target: number, level: number, border: number, fallbackFormat: number, fallbackType: number, input: java.io.InputStream): void;
			/**
			 * Convenience method to load an ETC1 texture whether or not the active OpenGL context supports the ETC1 texture compression format.
			 * @param target the texture target.
			 * @param level the texture level
			 * @param border the border size. Typically 0.
			 * @param fallbackFormat the format to use if ETC1 texture compression is not supported.
			 * @param fallbackType the type to use if ETC1 texture compression is not supported.
			 * @param texture the ETC1 to load.
			 */
			public static loadTexture(target: number, level: number, border: number, fallbackFormat: number, fallbackType: number, texture: android.opengl.ETC1Util.ETC1Texture): void;
			/**
			 * Check if ETC1 texture compression is supported by the active OpenGL ES context.
			 */
			public static isETC1Supported(): boolean;
			/**
			 * Create a new ETC1Texture from an input stream containing a PKM formatted compressed texture.
			 * @param input an input stream containing a PKM formatted compressed texture.
			 */
			public static createTexture(input: java.io.InputStream): android.opengl.ETC1Util.ETC1Texture;
			/**
			 * Helper function that compresses an image into an ETC1Texture.
			 * @param input a native order direct buffer containing the image data
			 * @param width the width of the image in pixels
			 * @param height the height of the image in pixels
			 * @param pixelSize the size of a pixel in bytes (2 or 3)
			 * @param stride the width of a line of the image in bytes
			 */
			public static compressTexture(input: java.nio.Buffer, width: number, height: number, pixelSize: number, stride: number): android.opengl.ETC1Util.ETC1Texture;
			/**
			 * Helper function that writes an ETC1Texture to an output stream formatted as a PKM file.
			 * @param texture the input texture.
			 * @param output the stream to write the formatted texture data to.
			 */
			public static writeTexture(texture: android.opengl.ETC1Util.ETC1Texture, output: java.io.OutputStream): void;
		}
		export module ETC1Util {
			/**
			 * A utility class encapsulating a compressed ETC1 texture.
			 */
			export class ETC1Texture extends java.lang.Object {
				constructor(width: number, height: number, data: java.nio.ByteBuffer);
				static class: java.lang.Class<android.opengl.ETC1Util.ETC1Texture>;
				/**
				 * Get the width of the texture in pixels.
				 */
				public getWidth(): number;
				/**
				 * Get the height of the texture in pixels.
				 */
				public getHeight(): number;
				/**
				 * Get the compressed data of the texture.
				 */
				public getData(): java.nio.ByteBuffer;
			}
		}
		/**
		 * A helper class for debugging OpenGL ES applications.
		 */
		export class GLDebugHelper extends java.lang.Object {
			constructor();
			/**
			 * Check glError() after every call.
			 */
			static CONFIG_CHECK_GL_ERROR: number;
			/**
			 * Check if all calls are on the same thread.
			 */
			static CONFIG_CHECK_THREAD: number;
			/**
			 * Print argument names when logging GL Calls.
			 */
			static CONFIG_LOG_ARGUMENT_NAMES: number;
			/**
			 * The Error number used in the GLException that is thrown if CONFIG_CHECK_THREAD is enabled and you call OpenGL ES on the a different thread.
			 */
			static ERROR_WRONG_THREAD: number;
			static class: java.lang.Class<android.opengl.GLDebugHelper>;
			public static wrap(gl: javax.microedition.khronos.opengles.IGL, configFlags: number, log: java.io.Writer): javax.microedition.khronos.opengles.IGL;
			/**
			 * Wrap an existing EGL interface in a new EGL interface that adds support for error checking and/or logging.
			 * @param egl the existing GL interface. Must implement EGL and EGL10. May
			 * @param configFlags A bitmask of error checking flags.
			 * @param log - null to disable logging, non-null to enable logging.
			 */
			public static wrap(egl: javax.microedition.khronos.egl.IEGL, configFlags: number, log: java.io.Writer): javax.microedition.khronos.egl.IEGL;
		}
		/**
		 * An exception class for OpenGL errors.
		 */
		export class GLException extends java.lang.RuntimeException {
			constructor(error: number);
			constructor(error: number, string: string);
			static class: java.lang.Class<android.opengl.GLException>;
			getError(): number;
		}
		/**
		 * A collection of utility methods for computing the visibility of triangle meshes.
		 */
		export class Visibility extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.opengl.Visibility>;
			/**
			 * Test whether a given triangle mesh is visible on the screen. The mesh is specified as an indexed triangle list.
			 * @param ws the world space to screen space transform matrix, as an OpenGL
			 * @param wsOffset an index into the ws array where the data starts.
			 * @param positions the vertex positions (x, y, z).
			 * @param positionsOffset the index in the positions array where the data
			 * @param indices the indices of the triangle list. The indices are
			 * @param indicesOffset the index in the indices array where the index data
			 * @param indexCount the number of indices in use. Typically a multiple of
			 */
			public static visibilityTest(ws: native.Array<number>, wsOffset: number, positions: native.Array<number>, positionsOffset: number, indices: native.Array<string>, indicesOffset: number, indexCount: number): number;
			/**
			 * Given an OpenGL ES ModelView-Projection matrix (which implicitly describes a frustum) and a list of spheres, determine which spheres intersect the frustum.
			 * @param mvp a float array containing the mode-view-projection matrix
			 * @param mvpOffset The offset of the mvp data within the mvp array.
			 * @param spheres a float array containing the sphere data.
			 * @param spheresOffset an offset into the sphere array where the sphere
			 * @param spheresCount the number of spheres to cull.
			 * @param results an integer array containing the indices of the spheres
			 * @param resultsOffset an offset into the results array where the results
			 * @param resultsCapacity the number of array elements available for storing
			 */
			public static frustumCullSpheres(mvp: native.Array<number>, mvpOffset: number, spheres: native.Array<number>, spheresOffset: number, spheresCount: number, results: native.Array<number>, resultsOffset: number, resultsCapacity: number): number;
			/**
			 * Compute a bounding sphere for a set of points. It is approximately the minimal bounding sphere of an axis-aligned box that bounds the points.
			 * @param positions positions in x, y, z triples
			 * @param positionsOffset offset into positions array
			 * @param positionsCount number of position triples to process
			 * @param sphere array containing the output as (x, y, z, r)
			 * @param sphereOffset offset where the sphere data will be written
			 */
			public static computeBoundingSphere(positions: native.Array<number>, positionsOffset: number, positionsCount: number, sphere: native.Array<number>, sphereOffset: number): void;
		}
		/**
		 * A wrapper that logs all GL calls (and results) in human-readable form.
		 */
		export class GLLogWrapper extends android.opengl.GLWrapperBase {
			constructor(gl: javax.microedition.khronos.opengles.IGL, log: java.io.Writer, logArgumentNames: boolean);
			static class: java.lang.Class<android.opengl.GLLogWrapper>;
			PointerInfo: {
	new (): android.opengl.GLLogWrapper.PointerInfo;
	new (size: number, type: number, stride: number, pointer: java.nio.Buffer): android.opengl.GLLogWrapper.PointerInfo;
};
			public static getErrorString(error: number): string;
			public glActiveTexture(texture: number): void;
			public glAlphaFunc(func: number, ref: number): void;
			public glAlphaFuncx(func: number, ref: number): void;
			public glBindTexture(target: number, texture: number): void;
			public glBlendFunc(sfactor: number, dfactor: number): void;
			public glClear(mask: number): void;
			public glClearColor(red: number, green: number, blue: number, alpha: number): void;
			public glClearColorx(red: number, green: number, blue: number, alpha: number): void;
			public glClearDepthf(depth: number): void;
			public glClearDepthx(depth: number): void;
			public glClearStencil(s: number): void;
			public glClientActiveTexture(texture: number): void;
			public glColor4f(red: number, green: number, blue: number, alpha: number): void;
			public glColor4x(red: number, green: number, blue: number, alpha: number): void;
			public glColorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
			public glColorPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glCompressedTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, imageSize: number, data: java.nio.Buffer): void;
			public glCompressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, imageSize: number, data: java.nio.Buffer): void;
			public glCopyTexImage2D(target: number, level: number, internalformat: number, x: number, y: number, width: number, height: number, border: number): void;
			public glCopyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, x: number, y: number, width: number, height: number): void;
			public glCullFace(mode: number): void;
			public glDeleteTextures(n: number, textures: native.Array<number>, offset: number): void;
			public glDeleteTextures(n: number, textures: java.nio.IntBuffer): void;
			public glDepthFunc(func: number): void;
			public glDepthMask(flag: boolean): void;
			public glDepthRangef(near: number, far: number): void;
			public glDepthRangex(near: number, far: number): void;
			public glDisable(cap: number): void;
			public glDisableClientState(array: number): void;
			public glDrawArrays(mode: number, first: number, count: number): void;
			public glDrawElements(mode: number, count: number, type: number, indices: java.nio.Buffer): void;
			public glEnable(cap: number): void;
			public glEnableClientState(array: number): void;
			public glFinish(): void;
			public glFlush(): void;
			public glFogf(pname: number, param: number): void;
			public glFogfv(pname: number, params: native.Array<number>, offset: number): void;
			public glFogfv(pname: number, params: java.nio.FloatBuffer): void;
			public glFogx(pname: number, param: number): void;
			public glFogxv(pname: number, params: native.Array<number>, offset: number): void;
			public glFogxv(pname: number, params: java.nio.IntBuffer): void;
			public glFrontFace(mode: number): void;
			public glFrustumf(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glFrustumx(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glGenTextures(n: number, textures: native.Array<number>, offset: number): void;
			public glGenTextures(n: number, textures: java.nio.IntBuffer): void;
			public glGetError(): number;
			public glGetIntegerv(pname: number, params: native.Array<number>, offset: number): void;
			public glGetIntegerv(pname: number, params: java.nio.IntBuffer): void;
			public glGetString(name: number): string;
			public glHint(target: number, mode: number): void;
			public glLightModelf(pname: number, param: number): void;
			public glLightModelfv(pname: number, params: native.Array<number>, offset: number): void;
			public glLightModelfv(pname: number, params: java.nio.FloatBuffer): void;
			public glLightModelx(pname: number, param: number): void;
			public glLightModelxv(pname: number, params: native.Array<number>, offset: number): void;
			public glLightModelxv(pname: number, params: java.nio.IntBuffer): void;
			public glLightf(light: number, pname: number, param: number): void;
			public glLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			public glLightx(light: number, pname: number, param: number): void;
			public glLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			public glLineWidth(width: number): void;
			public glLineWidthx(width: number): void;
			public glLoadIdentity(): void;
			public glLoadMatrixf(m: native.Array<number>, offset: number): void;
			public glLoadMatrixf(m: java.nio.FloatBuffer): void;
			public glLoadMatrixx(m: native.Array<number>, offset: number): void;
			public glLoadMatrixx(m: java.nio.IntBuffer): void;
			public glLogicOp(opcode: number): void;
			public glMaterialf(face: number, pname: number, param: number): void;
			public glMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			public glMaterialx(face: number, pname: number, param: number): void;
			public glMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			public glMatrixMode(mode: number): void;
			public glMultMatrixf(m: native.Array<number>, offset: number): void;
			public glMultMatrixf(m: java.nio.FloatBuffer): void;
			public glMultMatrixx(m: native.Array<number>, offset: number): void;
			public glMultMatrixx(m: java.nio.IntBuffer): void;
			public glMultiTexCoord4f(target: number, s: number, t: number, r: number, q: number): void;
			public glMultiTexCoord4x(target: number, s: number, t: number, r: number, q: number): void;
			public glNormal3f(nx: number, ny: number, nz: number): void;
			public glNormal3x(nx: number, ny: number, nz: number): void;
			public glNormalPointer(type: number, stride: number, pointer: java.nio.Buffer): void;
			public glOrthof(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glOrthox(left: number, right: number, bottom: number, top: number, near: number, far: number): void;
			public glPixelStorei(pname: number, param: number): void;
			public glPointSize(size: number): void;
			public glPointSizex(size: number): void;
			public glPolygonOffset(factor: number, units: number): void;
			public glPolygonOffsetx(factor: number, units: number): void;
			public glPopMatrix(): void;
			public glPushMatrix(): void;
			public glReadPixels(x: number, y: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public glRotatef(angle: number, x: number, y: number, z: number): void;
			public glRotatex(angle: number, x: number, y: number, z: number): void;
			public glSampleCoverage(value: number, invert: boolean): void;
			public glSampleCoveragex(value: number, invert: boolean): void;
			public glScalef(x: number, y: number, z: number): void;
			public glScalex(x: number, y: number, z: number): void;
			public glScissor(x: number, y: number, width: number, height: number): void;
			public glShadeModel(mode: number): void;
			public glStencilFunc(func: number, ref: number, mask: number): void;
			public glStencilMask(mask: number): void;
			public glStencilOp(fail: number, zfail: number, zpass: number): void;
			public glTexCoordPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glTexEnvf(target: number, pname: number, param: number): void;
			public glTexEnvfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexEnvfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public glTexEnvx(target: number, pname: number, param: number): void;
			public glTexEnvxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexEnvxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexImage2D(target: number, level: number, internalformat: number, width: number, height: number, border: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public glTexParameterf(target: number, pname: number, param: number): void;
			public glTexParameterx(target: number, pname: number, param: number): void;
			public glTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number, height: number, format: number, type: number, pixels: java.nio.Buffer): void;
			public glTranslatef(x: number, y: number, z: number): void;
			public glTranslatex(x: number, y: number, z: number): void;
			public glVertexPointer(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glViewport(x: number, y: number, width: number, height: number): void;
			public glClipPlanef(plane: number, equation: native.Array<number>, offset: number): void;
			public glClipPlanef(plane: number, equation: java.nio.FloatBuffer): void;
			public glClipPlanex(plane: number, equation: native.Array<number>, offset: number): void;
			public glClipPlanex(plane: number, equation: java.nio.IntBuffer): void;
			public glDrawTexfOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexfvOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexfvOES(coords: java.nio.FloatBuffer): void;
			public glDrawTexiOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexivOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexivOES(coords: java.nio.IntBuffer): void;
			public glDrawTexsOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexsvOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexsvOES(coords: java.nio.ShortBuffer): void;
			public glDrawTexxOES(x: number, y: number, z: number, width: number, height: number): void;
			public glDrawTexxvOES(coords: native.Array<number>, offset: number): void;
			public glDrawTexxvOES(coords: java.nio.IntBuffer): void;
			public glQueryMatrixxOES(mantissa: native.Array<number>, mantissaOffset: number, exponent: native.Array<number>, exponentOffset: number): number;
			public glQueryMatrixxOES(mantissa: java.nio.IntBuffer, exponent: java.nio.IntBuffer): number;
			public glBindBuffer(target: number, buffer: number): void;
			public glBufferData(target: number, size: number, data: java.nio.Buffer, usage: number): void;
			public glBufferSubData(target: number, offset: number, size: number, data: java.nio.Buffer): void;
			public glColor4ub(red: number, green: number, blue: number, alpha: number): void;
			public glDeleteBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public glDeleteBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public glGenBuffers(n: number, buffers: native.Array<number>, offset: number): void;
			public glGenBuffers(n: number, buffers: java.nio.IntBuffer): void;
			public glGetBooleanv(pname: number, params: native.Array<boolean>, offset: number): void;
			public glGetBooleanv(pname: number, params: java.nio.IntBuffer): void;
			public glGetBufferParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetBufferParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetClipPlanef(pname: number, eqn: native.Array<number>, offset: number): void;
			public glGetClipPlanef(pname: number, eqn: java.nio.FloatBuffer): void;
			public glGetClipPlanex(pname: number, eqn: native.Array<number>, offset: number): void;
			public glGetClipPlanex(pname: number, eqn: java.nio.IntBuffer): void;
			public glGetFixedv(pname: number, params: native.Array<number>, offset: number): void;
			public glGetFixedv(pname: number, params: java.nio.IntBuffer): void;
			public glGetFloatv(pname: number, params: native.Array<number>, offset: number): void;
			public glGetFloatv(pname: number, params: java.nio.FloatBuffer): void;
			public glGetLightfv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetLightfv(light: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetLightxv(light: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetLightxv(light: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetMaterialfv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetMaterialfv(face: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetMaterialxv(face: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetMaterialxv(face: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexEnviv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexEnviv(env: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexEnvxv(env: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexEnvxv(env: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetTexParameteriv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexParameteriv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glIsBuffer(buffer: number): boolean;
			public glIsEnabled(cap: number): boolean;
			public glIsTexture(texture: number): boolean;
			public glPointParameterf(pname: number, param: number): void;
			public glPointParameterfv(pname: number, params: native.Array<number>, offset: number): void;
			public glPointParameterfv(pname: number, params: java.nio.FloatBuffer): void;
			public glPointParameterx(pname: number, param: number): void;
			public glPointParameterxv(pname: number, params: native.Array<number>, offset: number): void;
			public glPointParameterxv(pname: number, params: java.nio.IntBuffer): void;
			public glPointSizePointerOES(type: number, stride: number, pointer: java.nio.Buffer): void;
			public glTexEnvi(target: number, pname: number, param: number): void;
			public glTexEnviv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexEnviv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexParameterfv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexParameterfv(target: number, pname: number, params: java.nio.FloatBuffer): void;
			public glTexParameteri(target: number, pname: number, param: number): void;
			public glTexParameterxv(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexParameterxv(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glColorPointer(size: number, type: number, stride: number, offset: number): void;
			public glDrawElements(mode: number, count: number, type: number, offset: number): void;
			public glGetPointerv(pname: number, params: native.Array<java.nio.Buffer>): void;
			public glNormalPointer(type: number, stride: number, offset: number): void;
			public glTexCoordPointer(size: number, type: number, stride: number, offset: number): void;
			public glVertexPointer(size: number, type: number, stride: number, offset: number): void;
			public glCurrentPaletteMatrixOES(matrixpaletteindex: number): void;
			public glLoadPaletteFromModelViewMatrixOES(): void;
			public glMatrixIndexPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glMatrixIndexPointerOES(size: number, type: number, stride: number, offset: number): void;
			public glWeightPointerOES(size: number, type: number, stride: number, pointer: java.nio.Buffer): void;
			public glWeightPointerOES(size: number, type: number, stride: number, offset: number): void;
			public glBindFramebufferOES(target: number, framebuffer: number): void;
			public glBindRenderbufferOES(target: number, renderbuffer: number): void;
			public glBlendEquation(mode: number): void;
			public glBlendEquationSeparate(modeRGB: number, modeAlpha: number): void;
			public glBlendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void;
			public glCheckFramebufferStatusOES(target: number): number;
			public glDeleteFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			public glDeleteFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			public glDeleteRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public glDeleteRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			public glFramebufferRenderbufferOES(target: number, attachment: number, renderbuffertarget: number, renderbuffer: number): void;
			public glFramebufferTexture2DOES(target: number, attachment: number, textarget: number, texture: number, level: number): void;
			public glGenerateMipmapOES(target: number): void;
			public glGenFramebuffersOES(n: number, framebuffers: native.Array<number>, offset: number): void;
			public glGenFramebuffersOES(n: number, framebuffers: java.nio.IntBuffer): void;
			public glGenRenderbuffersOES(n: number, renderbuffers: native.Array<number>, offset: number): void;
			public glGenRenderbuffersOES(n: number, renderbuffers: java.nio.IntBuffer): void;
			public glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetFramebufferAttachmentParameterivOES(target: number, attachment: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetRenderbufferParameterivOES(target: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetRenderbufferParameterivOES(target: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			public glGetTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public glGetTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glGetTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public glIsFramebufferOES(framebuffer: number): boolean;
			public glIsRenderbufferOES(renderbuffer: number): boolean;
			public glRenderbufferStorageOES(target: number, internalformat: number, width: number, height: number): void;
			public glTexGenf(coord: number, pname: number, param: number): void;
			public glTexGenfv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexGenfv(coord: number, pname: number, params: java.nio.FloatBuffer): void;
			public glTexGeni(coord: number, pname: number, param: number): void;
			public glTexGeniv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexGeniv(coord: number, pname: number, params: java.nio.IntBuffer): void;
			public glTexGenx(coord: number, pname: number, param: number): void;
			public glTexGenxv(coord: number, pname: number, params: native.Array<number>, offset: number): void;
			public glTexGenxv(coord: number, pname: number, params: java.nio.IntBuffer): void;
		}
		export module GLLogWrapper {
			export class PointerInfo extends java.lang.Object {
				/**
				 * The number of coordinates per vertex. 1..4
				 */
				mSize: number;
				/**
				 * The type of each coordinate.
				 */
				mType: number;
				/**
				 * The byte offset between consecutive vertices. 0 means mSize * sizeof(mType)
				 */
				mStride: number;
				mPointer: java.nio.Buffer;
				mTempByteBuffer: java.nio.ByteBuffer;
				static class: java.lang.Class<android.opengl.GLLogWrapper.PointerInfo>;
				public sizeof(type: number): number;
				public getStride(): number;
				public bindByteBuffer(): void;
				public unbindByteBuffer(): void;
			}
		}
		/**
		 * Methods for encoding and decoding ETC1 textures.
		 */
		export class ETC1 extends java.lang.Object {
			constructor();
			/**
			 * Size in bytes of an encoded block.
			 */
			static ENCODED_BLOCK_SIZE: number;
			/**
			 * Size in bytes of a decoded block.
			 */
			static DECODED_BLOCK_SIZE: number;
			/**
			 * Size of a PKM file header, in bytes.
			 */
			static ETC_PKM_HEADER_SIZE: number;
			/**
			 * Accepted by the internalformat parameter of glCompressedTexImage2D.
			 */
			static ETC1_RGB8_OES: number;
			static class: java.lang.Class<android.opengl.ETC1>;
			/**
			 * Encode a block of pixels.
			 * @param input in a native order direct buffer of size DECODED_BLOCK_SIZE that represent a
			 * @param validPixelMask is a 16-bit mask where bit (1 << (x + y * 4)) indicates whether
			 * @param out a native order direct buffer of size ENCODED_BLOCK_SIZE that receives the
			 */
			public static encodeBlock(input: java.nio.Buffer, validPixelMask: number, out: java.nio.Buffer): void;
			/**
			 * Decode a block of pixels.
			 * @param input in a native order direct buffer of size ENCODED_BLOCK_SIZE that contains the
			 * @param out a native order direct buffer of size DECODED_BLOCK_SIZE that will receive
			 */
			public static decodeBlock(input: java.nio.Buffer, out: java.nio.Buffer): void;
			/**
			 * Return the size of the encoded image data (does not include size of PKM header).
			 */
			public static getEncodedDataSize(width: number, height: number): number;
			/**
			 * Encode an entire image.
			 * @param input in a native order direct buffer of the image data. Formatted such that
			 * @param width out a native order direct buffer of the encoded data.
			 * @param height pixelSize must be 2 or 3. 2 is an GL_UNSIGNED_SHORT_5_6_5 image,
			 * @param pixelSize 
			 * @param stride 
			 * @param out 
			 */
			public static encodeImage(input: java.nio.Buffer, width: number, height: number, pixelSize: number, stride: number, out: java.nio.Buffer): void;
			/**
			 * Decode an entire image.
			 * @param input in native order direct buffer of the encoded data.
			 * @param out native order direct buffer of the image data. Will be written such that
			 * @param width pixelSize must be 2 or 3. 2 is an GL_UNSIGNED_SHORT_5_6_5 image,
			 * @param height 
			 * @param pixelSize 
			 * @param stride 
			 */
			public static decodeImage(input: java.nio.Buffer, out: java.nio.Buffer, width: number, height: number, pixelSize: number, stride: number): void;
			/**
			 * Format a PKM header
			 * @param header native order direct buffer of the header.
			 * @param width the width of the image in pixels.
			 * @param height the height of the image in pixels.
			 */
			public static formatHeader(header: java.nio.Buffer, width: number, height: number): void;
			/**
			 * Check if a PKM header is correctly formatted.
			 * @param header native order direct buffer of the header.
			 */
			public static isValid(header: java.nio.Buffer): boolean;
			/**
			 * Read the image width from a PKM header
			 * @param header native order direct buffer of the header.
			 */
			public static getWidth(header: java.nio.Buffer): number;
			/**
			 * Read the image height from a PKM header
			 * @param header native order direct buffer of the header.
			 */
			public static getHeight(header: java.nio.Buffer): number;
		}
	}
	export module ddm {
		/**
		 * Handle profiling requests.
		 */
		export class DdmHandleProfiling extends org.apache.harmony.dalvik.ddmc.ChunkHandler {
			static CHUNK_MPRS: number;
			static CHUNK_MPRE: number;
			static CHUNK_MPSS: number;
			static CHUNK_MPSE: number;
			static CHUNK_MPRQ: number;
			static class: java.lang.Class<android.ddm.DdmHandleProfiling>;
			/**
			 * Register for the messages we're interested in.
			 */
			public static register(): void;
			/**
			 * Called when the DDM server connects. The handler is allowed to send messages to the server.
			 */
			public connected(): void;
			/**
			 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
			 */
			public disconnected(): void;
			/**
			 * Handle a chunk of data.
			 */
			public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
		}
		/**
		 * Handle "hello" messages and feature discovery.
		 */
		export class DdmHandleHello extends org.apache.harmony.dalvik.ddmc.ChunkHandler {
			static CHUNK_HELO: number;
			static CHUNK_WAIT: number;
			static CHUNK_FEAT: number;
			static class: java.lang.Class<android.ddm.DdmHandleHello>;
			/**
			 * Register for the messages we're interested in.
			 */
			public static register(): void;
			/**
			 * Called when the DDM server connects. The handler is allowed to send messages to the server.
			 */
			public connected(): void;
			/**
			 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
			 */
			public disconnected(): void;
			/**
			 * Handle a chunk of data.
			 */
			public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
			/**
			 * Send up a WAIT chunk. The only currently defined value for "reason" is zero, which means "waiting for a debugger".
			 */
			public static sendWAIT(reason: number): void;
		}
		/**
		 * Handle native and virtual heap requests.
		 */
		export class DdmHandleHeap extends org.apache.harmony.dalvik.ddmc.ChunkHandler {
			static CHUNK_HPIF: number;
			static CHUNK_HPSG: number;
			static CHUNK_HPDU: number;
			static CHUNK_HPDS: number;
			static CHUNK_NHSG: number;
			static CHUNK_HPGC: number;
			static CHUNK_REAE: number;
			static CHUNK_REAQ: number;
			static CHUNK_REAL: number;
			static class: java.lang.Class<android.ddm.DdmHandleHeap>;
			/**
			 * Register for the messages we're interested in.
			 */
			public static register(): void;
			/**
			 * Called when the DDM server connects. The handler is allowed to send messages to the server.
			 */
			public connected(): void;
			/**
			 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
			 */
			public disconnected(): void;
			/**
			 * Handle a chunk of data.
			 */
			public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
		}
		/**
		 * Handle an EXIT chunk.
		 */
		export class DdmHandleExit extends org.apache.harmony.dalvik.ddmc.ChunkHandler {
			static CHUNK_EXIT: number;
			static class: java.lang.Class<android.ddm.DdmHandleExit>;
			/**
			 * Register for the messages we're interested in.
			 */
			public static register(): void;
			/**
			 * Called when the DDM server connects. The handler is allowed to send messages to the server.
			 */
			public connected(): void;
			/**
			 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
			 */
			public disconnected(): void;
			/**
			 * Handle a chunk of data. We're only registered for "EXIT".
			 */
			public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
		}
		/**
		 * Handle thread-related traffic.
		 */
		export class DdmHandleThread extends org.apache.harmony.dalvik.ddmc.ChunkHandler {
			static CHUNK_THEN: number;
			static CHUNK_THCR: number;
			static CHUNK_THDE: number;
			static CHUNK_THST: number;
			static CHUNK_STKL: number;
			static class: java.lang.Class<android.ddm.DdmHandleThread>;
			/**
			 * Register for the messages we're interested in.
			 */
			public static register(): void;
			/**
			 * Called when the DDM server connects. The handler is allowed to send messages to the server.
			 */
			public connected(): void;
			/**
			 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
			 */
			public disconnected(): void;
			/**
			 * Handle a chunk of data.
			 */
			public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
		}
		/**
		 * Just a place to stick handler registrations, instead of scattering them around.
		 */
		export class DdmRegister extends java.lang.Object {
			static class: java.lang.Class<android.ddm.DdmRegister>;
			/**
			 * Register handlers for all known chunk types.
			 */
			public static registerHandlers(): void;
		}
		/**
		 * Track our app name. We don't (currently) handle any inbound packets.
		 */
		export class DdmHandleAppName extends org.apache.harmony.dalvik.ddmc.ChunkHandler {
			static CHUNK_APNM: number;
			static class: java.lang.Class<android.ddm.DdmHandleAppName>;
			/**
			 * Register for the messages we're interested in.
			 */
			public static register(): void;
			/**
			 * Called when the DDM server connects. The handler is allowed to send messages to the server.
			 */
			public connected(): void;
			/**
			 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
			 */
			public disconnected(): void;
			/**
			 * Handle a chunk of data.
			 */
			public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
			/**
			 * Set the application name. Called when we get named, which may be before or after DDMS connects. For the latter we need to send up an APNM message.
			 */
			public static setAppName(name: string, userId: number): void;
			public static getAppName(): string;
		}
		/**
		 * Handle thread-related traffic.
		 */
		export class DdmHandleNativeHeap extends org.apache.harmony.dalvik.ddmc.ChunkHandler {
			static CHUNK_NHGT: number;
			static class: java.lang.Class<android.ddm.DdmHandleNativeHeap>;
			/**
			 * Register for the messages we're interested in.
			 */
			public static register(): void;
			/**
			 * Called when the DDM server connects. The handler is allowed to send messages to the server.
			 */
			public connected(): void;
			/**
			 * Called when the DDM server disconnects. Can be used to disable periodic transmissions or clean up saved state.
			 */
			public disconnected(): void;
			/**
			 * Handle a chunk of data.
			 */
			public handleChunk(request: org.apache.harmony.dalvik.ddmc.Chunk): org.apache.harmony.dalvik.ddmc.Chunk;
		}
	}
	export module animation {
		/**
		 * Listener tests for ObjectAnimator.
		 */
		export class ObjectAnimatorEventsTest extends android.animation.EventsTest {
			constructor();
			static class: java.lang.Class<android.animation.ObjectAnimatorEventsTest>;
			public setUp(): void;
		}
		/**
		 * This evaluator can be used to perform type interpolation between integer values that represent ARGB colors.
		 */
		export class ArgbEvaluator extends java.lang.Object implements android.animation.ITypeEvaluator<any> {
			constructor();
			static class: java.lang.Class<android.animation.ArgbEvaluator>;
			/**
			 * This function returns the calculated in-between value for a color given integers that represent the start and end values in the four bytes of the 32-bit int. Each channel is separately linearly interpolated and the resulting calculated values are recombined into the return value.
			 * @param fraction The fraction from the starting to the ending values
			 * @param startValue A 32-bit int value representing colors in the
			 * @param endValue A 32-bit int value representing colors in the
			 */
			public evaluate(fraction: number, startValue: any, endValue: any): any;
		}
		export class BasicAnimatorActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.animation.BasicAnimatorActivity>;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
		}
		/**
		 * This class plays a set of Animator objects in the specified order. Animations can be set up to play together, in sequence, or after a specified delay.
		 */
		export class AnimatorSet extends android.animation.Animator {
			constructor();
			static class: java.lang.Class<android.animation.AnimatorSet>;
			/**
			 * Sets up this AnimatorSet to play all of the supplied animations at the same time.
			 * @param items The animations that will be started simultaneously.
			 */
			public playTogether(items: native.Array<android.animation.Animator>): void;
			/**
			 * Sets up this AnimatorSet to play all of the supplied animations at the same time.
			 * @param items The animations that will be started simultaneously.
			 */
			public playTogether(items: java.util.ICollection<android.animation.Animator>): void;
			/**
			 * Sets up this AnimatorSet to play each of the supplied animations when the previous animation ends.
			 * @param items The animations that will be started one after another.
			 */
			public playSequentially(items: native.Array<android.animation.Animator>): void;
			/**
			 * Sets up this AnimatorSet to play each of the supplied animations when the previous animation ends.
			 * @param items The animations that will be started one after another.
			 */
			public playSequentially(items: java.util.IList<android.animation.Animator>): void;
			/**
			 * Returns the current list of child Animator objects controlled by this AnimatorSet. This is a copy of the internal list; modifications to the returned list will not affect the AnimatorSet, although changes to the underlying Animator objects will affect those objects being managed by the AnimatorSet.
			 */
			public getChildAnimations(): java.util.ArrayList<android.animation.Animator>;
			/**
			 * Sets the target object for all current #getChildAnimations() child animations of this AnimatorSet that take targets (ObjectAnimator and AnimatorSet).
			 * @param target The object being animated
			 */
			public setTarget(target: any): void;
			/**
			 * Sets the TimeInterpolator for all current #getChildAnimations() child animations of this AnimatorSet.
			 * @param interpolator the interpolator to be used by each child animation of this AnimatorSet
			 */
			public setInterpolator(interpolator: android.animation.ITimeInterpolator): void;
			/**
			 * This method creates a <code>Builder</code> object, which is used to set up playing constraints. This initial <code>play()</code> method tells the <code>Builder</code> the animation that is the dependency for the succeeding commands to the <code>Builder</code>. For example, calling <code>play(a1).with(a2)</code> sets up the AnimatorSet to play <code>a1</code> and <code>a2</code> at the same time, <code>play(a1).before(a2)</code> sets up the AnimatorSet to play <code>a1</code> first, followed by <code>a2</code>, and <code>play(a1).after(a2)</code> sets up the AnimatorSet to play <code>a2</code> first, followed by <code>a1</code>.
			 * @param anim The animation that is the dependency used in later calls to the
			 */
			public play(anim: android.animation.Animator): android.animation.AnimatorSet.Builder;
			/**
			 * 
			 */
			public cancel(): void;
			/**
			 * 
			 */
			public end(): void;
			/**
			 * Returns true if any of the child animations of this AnimatorSet have been started and have not yet ended.
			 */
			public isRunning(): boolean;
			public isStarted(): boolean;
			/**
			 * The amount of time, in milliseconds, to delay starting the animation after #start() is called.
			 */
			public getStartDelay(): any;
			/**
			 * The amount of time, in milliseconds, to delay starting the animation after #start() is called.
			 * @param startDelay The amount of the delay, in milliseconds
			 */
			public setStartDelay(startDelay: number): void;
			/**
			 * Gets the length of each of the child animations of this AnimatorSet. This value may be less than 0, which indicates that no duration has been set on this AnimatorSet and each of the child animations will use their own duration.
			 */
			public getDuration(): any;
			/**
			 * Sets the length of each of the current child animations of this AnimatorSet. By default, each child animation will use its own duration. If the duration is set on the AnimatorSet, then each child animation inherits this duration.
			 * @param duration The length of the animation, in milliseconds, of each of the child
			 */
			public setDuration(duration: number): android.animation.AnimatorSet;
			public setupStartValues(): void;
			public setupEndValues(): void;
			/**
			 * 
			 */
			public start(): void;
			public clone(): android.animation.AnimatorSet;
		}
		export module AnimatorSet {
			/**
			 * A Node is an embodiment of both the Animator that it wraps as well as any dependencies that are associated with that Animation. This includes both dependencies upon other nodes (in the dependencies list) as well as dependencies of other nodes upon this (in the nodeDependents list).
			 */
			export class Node extends java.lang.Object implements java.lang.ICloneable {
				/**
				 * Constructs the Node with the animation that it encapsulates. A Node has no dependencies by default; dependencies are added via the addDependency() method.
				 * @param animation The animation that the Node encapsulates.
				 */
				constructor(animation: android.animation.Animator);
				animation: android.animation.Animator;
				/**
				 * These are the dependencies that this node's animation has on other nodes. For example, if this node's animation should begin with some other animation ends, then there will be an item in this node's dependencies list for that other animation's node.
				 */
				dependencies: java.util.ArrayList<android.animation.AnimatorSet.Dependency>;
				/**
				 * tmpDependencies is a runtime detail. We use the dependencies list for sorting. But we also use the list to keep track of when multiple dependencies are satisfied, but removing each dependency as it is satisfied. We do not want to remove the dependency itself from the list, because we need to retain that information if the AnimatorSet is launched in the future. So we create a copy of the dependency list when the AnimatorSet starts and use this tmpDependencies list to track the list of satisfied dependencies.
				 */
				tmpDependencies: java.util.ArrayList<android.animation.AnimatorSet.Dependency>;
				/**
				 * nodeDependencies is just a list of the nodes that this Node is dependent upon. This information is used in sortNodes(), to determine when a node is a root.
				 */
				nodeDependencies: java.util.ArrayList<android.animation.AnimatorSet.Node>;
				/**
				 * nodeDepdendents is the list of nodes that have this node as a dependency. This is a utility field used in sortNodes to facilitate removing this node as a dependency when it is a root node.
				 */
				nodeDependents: java.util.ArrayList<android.animation.AnimatorSet.Node>;
				/**
				 * Flag indicating whether the animation in this node is finished. This flag is used by AnimatorSet to check, as each animation ends, whether all child animations are done and it's time to send out an end event for the entire AnimatorSet.
				 */
				done: boolean;
				static class: java.lang.Class<android.animation.AnimatorSet.Node>;
				/**
				 * Add a dependency to this Node. The dependency includes information about the node that this node is dependency upon and the nature of the dependency.
				 * @param dependency 
				 */
				public addDependency(dependency: android.animation.AnimatorSet.Dependency): void;
				public clone(): android.animation.AnimatorSet.Node;
			}
			/**
			 * The <code>Builder</code> object is a utility class to facilitate adding animations to a <code>AnimatorSet</code> along with the relationships between the various animations. The intention of the <code>Builder</code> methods, along with the AnimatorSet#play(Animator) play() method of <code>AnimatorSet</code> is to make it possible to express the dependency relationships of animations in a natural way. Developers can also use the AnimatorSet#playTogether(Animator[]) playTogether() and AnimatorSet#playSequentially(Animator[]) playSequentially() methods if these suit the need, but it might be easier in some situations to express the AnimatorSet of animations in pairs. <p/>
			 */
			export class Builder extends java.lang.Object {
				static class: java.lang.Class<android.animation.AnimatorSet.Builder>;
				/**
				 * Sets up the given animation to play at the same time as the animation supplied in the AnimatorSet#play(Animator) call that created this <code>Builder</code> object.
				 * @param anim The animation that will play when the animation supplied to the
				 */
				public with(anim: android.animation.Animator): android.animation.AnimatorSet.Builder;
				/**
				 * Sets up the given animation to play when the animation supplied in the AnimatorSet#play(Animator) call that created this <code>Builder</code> object ends.
				 * @param anim The animation that will play when the animation supplied to the
				 */
				public before(anim: android.animation.Animator): android.animation.AnimatorSet.Builder;
				/**
				 * Sets up the given animation to play when the animation supplied in the AnimatorSet#play(Animator) call that created this <code>Builder</code> object to start when the animation supplied in this method call ends.
				 * @param anim The animation whose end will cause the animation supplied to the
				 */
				public after(anim: android.animation.Animator): android.animation.AnimatorSet.Builder;
				/**
				 * Sets up the animation supplied in the AnimatorSet#play(Animator) call that created this <code>Builder</code> object to play when the given amount of time elapses.
				 * @param delay The number of milliseconds that should elapse before the
				 */
				public after(delay: number): android.animation.AnimatorSet.Builder;
			}
			/**
			 * Dependency holds information about the node that some other node is dependent upon and the nature of that dependency.
			 */
			export class Dependency extends java.lang.Object {
				constructor(node: android.animation.AnimatorSet.Node, rule: number);
				node: android.animation.AnimatorSet.Node;
				rule: number;
				static class: java.lang.Class<android.animation.AnimatorSet.Dependency>;
			}
			/**
			 * This class is the mechanism by which animations are started based on events in other animations. If an animation has multiple dependencies on other animations, then all dependencies must be satisfied before the animation is started.
			 */
			export class DependencyListener extends java.lang.Object implements android.animation.Animator.IAnimatorListener {
				constructor(animatorSet: android.animation.AnimatorSet, node: android.animation.AnimatorSet.Node, rule: number);
				static class: java.lang.Class<android.animation.AnimatorSet.DependencyListener>;
				/**
				 * Ignore cancel events for now. We may want to handle this eventually, to prevent follow-on animations from running when some dependency animation is canceled.
				 */
				public onAnimationCancel(animation: android.animation.Animator): void;
				/**
				 * An end event is received - see if this is an event we are listening for
				 */
				public onAnimationEnd(animation: android.animation.Animator): void;
				/**
				 * Ignore repeat events for now
				 */
				public onAnimationRepeat(animation: android.animation.Animator): void;
				/**
				 * A start event is received - see if this is an event we are listening for
				 */
				public onAnimationStart(animation: android.animation.Animator): void;
			}
			export class AnimatorSetListener extends java.lang.Object implements android.animation.Animator.IAnimatorListener {
				static class: java.lang.Class<android.animation.AnimatorSet.AnimatorSetListener>;
				public onAnimationCancel(animation: android.animation.Animator): void;
				public onAnimationEnd(animation: android.animation.Animator): void;
				public onAnimationRepeat(animation: android.animation.Animator): void;
				public onAnimationStart(animation: android.animation.Animator): void;
			}
		}
		/**
		 * This class enables automatic animations on layout changes in ViewGroup objects. To enable transitions for a layout container, create a LayoutTransition object and set it on any ViewGroup by calling ViewGroup#setLayoutTransition(LayoutTransition). This will cause default animations to run whenever items are added to or removed from that container. To specify custom animations, use the LayoutTransition#setAnimator(int, Animator) setAnimator() method.
		 */
		export class LayoutTransition extends java.lang.Object {
			/**
			 * Constructs a LayoutTransition object. By default, the object will listen to layout events on any ViewGroup that it is set on and will run default animations for each type of layout event.
			 */
			constructor();
			/**
			 * A flag indicating the animation that runs on those items that are changing due to a new item appearing in the container.
			 */
			static CHANGE_APPEARING: number;
			/**
			 * A flag indicating the animation that runs on those items that are changing due to an item disappearing from the container.
			 */
			static CHANGE_DISAPPEARING: number;
			/**
			 * A flag indicating the animation that runs on those items that are appearing in the container.
			 */
			static APPEARING: number;
			/**
			 * A flag indicating the animation that runs on those items that are disappearing from the container.
			 */
			static DISAPPEARING: number;
			/**
			 * A flag indicating the animation that runs on those items that are changing due to a layout change not caused by items being added to or removed from the container. This transition type is not enabled by default; it can be enabled via #enableTransitionType(int).
			 */
			static CHANGING: number;
			static class: java.lang.Class<android.animation.LayoutTransition>;
			/**
			 * Sets the duration to be used by all animations of this transition object. If you want to set the duration of just one of the animations in particular, use the #setDuration(int, long) method.
			 * @param duration The length of time, in milliseconds, that the transition animations
			 */
			public setDuration(duration: number): void;
			/**
			 * Enables the specified transitionType for this LayoutTransition object. By default, a LayoutTransition listens for changes in children being added/remove/hidden/shown in the container, and runs the animations associated with those events. That is, all transition types besides #CHANGING are enabled by default. You can also enable #CHANGING animations by calling this method with the #CHANGING transitionType.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 */
			public enableTransitionType(transitionType: number): void;
			/**
			 * Disables the specified transitionType for this LayoutTransition object. By default, all transition types except #CHANGING are enabled.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 */
			public disableTransitionType(transitionType: number): void;
			/**
			 * Returns whether the specified transitionType is enabled for this LayoutTransition object. By default, all transition types except #CHANGING are enabled.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 */
			public isTransitionTypeEnabled(transitionType: number): boolean;
			/**
			 * Sets the start delay on one of the animation objects used by this transition. The <code>transitionType</code> parameter determines the animation whose start delay is being set.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 * @param delay The length of time, in milliseconds, to delay before starting the animation.
			 */
			public setStartDelay(transitionType: number, delay: number): void;
			/**
			 * Gets the start delay on one of the animation objects used by this transition. The <code>transitionType</code> parameter determines the animation whose start delay is returned.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 */
			public getStartDelay(transitionType: number): any;
			/**
			 * Sets the duration on one of the animation objects used by this transition. The <code>transitionType</code> parameter determines the animation whose duration is being set.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 * @param duration The length of time, in milliseconds, that the specified animation should run.
			 */
			public setDuration(transitionType: number, duration: number): void;
			/**
			 * Gets the duration on one of the animation objects used by this transition. The <code>transitionType</code> parameter determines the animation whose duration is returned.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 */
			public getDuration(transitionType: number): any;
			/**
			 * Sets the length of time to delay between starting each animation during one of the change animations.
			 * @param transitionType A value of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING}, or
			 * @param duration The length of time, in milliseconds, to delay before launching the next
			 */
			public setStagger(transitionType: number, duration: number): void;
			/**
			 * Gets the length of time to delay between starting each animation during one of the change animations.
			 * @param transitionType A value of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING}, or
			 */
			public getStagger(transitionType: number): any;
			/**
			 * Sets the interpolator on one of the animation objects used by this transition. The <code>transitionType</code> parameter determines the animation whose interpolator is being set.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 * @param interpolator The interpolator that the specified animation should use.
			 */
			public setInterpolator(transitionType: number, interpolator: android.animation.ITimeInterpolator): void;
			/**
			 * Gets the interpolator on one of the animation objects used by this transition. The <code>transitionType</code> parameter determines the animation whose interpolator is returned.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 */
			public getInterpolator(transitionType: number): android.animation.ITimeInterpolator;
			/**
			 * Sets the animation used during one of the transition types that may run. Any Animator object can be used, but to be most useful in the context of layout transitions, the animation should either be a ObjectAnimator or a AnimatorSet of animations including PropertyAnimators. Also, these ObjectAnimator objects should be able to get and set values on their target objects automatically. For example, a ObjectAnimator that animates the property "left" is able to set and get the <code>left</code> property from the View objects being animated by the layout transition. The transition works by setting target objects and properties dynamically, according to the pre- and post-layoout values of those objects, so having animations that can handle those properties appropriately will work best for custom animation. The dynamic setting of values is only the case for the CHANGE animations; the APPEARING and DISAPPEARING animations are simply run with the values they have.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 * @param animator The animation being assigned. A value of <code>null</code> means that no
			 */
			public setAnimator(transitionType: number, animator: android.animation.Animator): void;
			/**
			 * Gets the animation used during one of the transition types that may run.
			 * @param transitionType One of {@link #CHANGE_APPEARING}, {@link #CHANGE_DISAPPEARING},
			 */
			public getAnimator(transitionType: number): android.animation.Animator;
			/**
			 * This flag controls whether CHANGE_APPEARING or CHANGE_DISAPPEARING animations will cause the default changing animation to be run on the parent hierarchy as well. This allows containers of transitioning views to also transition, which may be necessary in situations where the containers bounds change between the before/after states and may clip their children during the transition animations. For example, layouts with wrap_content will adjust their bounds according to the dimensions of their children.
			 * @param animateParentHierarchy A boolean value indicating whether the parents of
			 */
			public setAnimateParentHierarchy(animateParentHierarchy: boolean): void;
			/**
			 * Returns true if animations are running which animate layout-related properties. This essentially means that either CHANGE_APPEARING or CHANGE_DISAPPEARING animations are running, since these animations operate on layout-related properties.
			 */
			public isChangingLayout(): boolean;
			/**
			 * Returns true if any of the animations in this transition are currently running.
			 */
			public isRunning(): boolean;
			/**
			 * This method is called by ViewGroup when a child view is about to be added to the container. This callback starts the process of a transition; we grab the starting values, listen for changes to all of the children of the container, and start appropriate animations.
			 * @param parent The ViewGroup to which the View is being added.
			 * @param child The View being added to the ViewGroup.
			 */
			public addChild(parent: android.view.ViewGroup, child: android.view.View): void;
			/**
			 *  Use #showChild(android.view.ViewGroup, android.view.View, int).
			 */
			public showChild(parent: android.view.ViewGroup, child: android.view.View): void;
			/**
			 * This method is called by ViewGroup when a child view is about to be made visible in the container. This callback starts the process of a transition; we grab the starting values, listen for changes to all of the children of the container, and start appropriate animations.
			 * @param parent The ViewGroup in which the View is being made visible.
			 * @param child The View being made visible.
			 * @param oldVisibility The previous visibility value of the child View, either
			 */
			public showChild(parent: android.view.ViewGroup, child: android.view.View, oldVisibility: number): void;
			/**
			 * This method is called by ViewGroup when a child view is about to be removed from the container. This callback starts the process of a transition; we grab the starting values, listen for changes to all of the children of the container, and start appropriate animations.
			 * @param parent The ViewGroup from which the View is being removed.
			 * @param child The View being removed from the ViewGroup.
			 */
			public removeChild(parent: android.view.ViewGroup, child: android.view.View): void;
			/**
			 *  Use #hideChild(android.view.ViewGroup, android.view.View, int).
			 */
			public hideChild(parent: android.view.ViewGroup, child: android.view.View): void;
			/**
			 * This method is called by ViewGroup when a child view is about to be hidden in container. This callback starts the process of a transition; we grab the starting values, listen for changes to all of the children of the container, and start appropriate animations.
			 * @param parent The parent ViewGroup of the View being hidden.
			 * @param child The View being hidden.
			 * @param newVisibility The new visibility value of the child View, either
			 */
			public hideChild(parent: android.view.ViewGroup, child: android.view.View, newVisibility: number): void;
			/**
			 * Add a listener that will be called when the bounds of the view change due to layout processing.
			 * @param listener The listener that will be called when layout bounds change.
			 */
			public addTransitionListener(listener: android.animation.LayoutTransition.ITransitionListener): void;
			/**
			 * Remove a listener for layout changes.
			 * @param listener The listener for layout bounds change.
			 */
			public removeTransitionListener(listener: android.animation.LayoutTransition.ITransitionListener): void;
			/**
			 * Gets the current list of listeners for layout changes.
			 */
			public getTransitionListeners(): java.util.IList<android.animation.LayoutTransition.ITransitionListener>;
		}
		export module LayoutTransition {
			/**
			 * This interface is used for listening to starting and ending events for transitions.
			 */
			interface ITransitionListener {
				/**
				 * This event is sent to listeners when any type of transition animation begins.
				 * @param transition The LayoutTransition sending out the event.
				 * @param container The ViewGroup on which the transition is playing.
				 * @param view The View object being affected by the transition animation.
				 * @param transitionType The type of transition that is beginning,
				 */
				startTransition(transition: android.animation.LayoutTransition, container: android.view.ViewGroup, view: android.view.View, transitionType: number): void;
				/**
				 * This event is sent to listeners when any type of transition animation ends.
				 * @param transition The LayoutTransition sending out the event.
				 * @param container The ViewGroup on which the transition is playing.
				 * @param view The View object being affected by the transition animation.
				 * @param transitionType The type of transition that is ending,
				 */
				endTransition(transition: android.animation.LayoutTransition, container: android.view.ViewGroup, view: android.view.View, transitionType: number): void;
			}
			/**
			 * This interface is used for listening to starting and ending events for transitions.
			 */
			export class TransitionListener implements android.animation.LayoutTransition.ITransitionListener {
				constructor(implementation: android.animation.LayoutTransition.ITransitionListener);
				/**
				 * This event is sent to listeners when any type of transition animation begins.
				 * @param transition The LayoutTransition sending out the event.
				 * @param container The ViewGroup on which the transition is playing.
				 * @param view The View object being affected by the transition animation.
				 * @param transitionType The type of transition that is beginning,
				 */
				public startTransition(transition: android.animation.LayoutTransition, container: android.view.ViewGroup, view: android.view.View, transitionType: number): void;
				/**
				 * This event is sent to listeners when any type of transition animation ends.
				 * @param transition The LayoutTransition sending out the event.
				 * @param container The ViewGroup on which the transition is playing.
				 * @param view The View object being affected by the transition animation.
				 * @param transitionType The type of transition that is ending,
				 */
				public endTransition(transition: android.animation.LayoutTransition, container: android.view.ViewGroup, view: android.view.View, transitionType: number): void;
			}
		}
		/**
		 * This class provides a simple timing engine for running animations which calculate animated values and set them on target objects.
		 */
		export class ValueAnimator extends android.animation.Animator {
			/**
			 * Creates a new ValueAnimator object. This default constructor is primarily for use internally; the factory methods which take parameters are more generally useful.
			 */
			constructor();
			/**
			 * When the animation reaches the end and <code>repeatCount</code> is INFINITE or a positive value, the animation restarts from the beginning.
			 */
			static RESTART: number;
			/**
			 * When the animation reaches the end and <code>repeatCount</code> is INFINITE or a positive value, the animation reverses direction on every iteration.
			 */
			static REVERSE: number;
			/**
			 * This value used used with the #setRepeatCount(int) property to repeat the animation indefinitely.
			 */
			static INFINITE: number;
			static class: java.lang.Class<android.animation.ValueAnimator>;
			/**
			 * Constructs and returns a ValueAnimator that animates between int values. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofInt(values: native.Array<number>): android.animation.ValueAnimator;
			/**
			 * Constructs and returns a ValueAnimator that animates between float values. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofFloat(values: native.Array<number>): android.animation.ValueAnimator;
			/**
			 * Constructs and returns a ValueAnimator that animates between the values specified in the PropertyValuesHolder objects.
			 * @param values A set of PropertyValuesHolder objects whose values will be animated
			 */
			public static ofPropertyValuesHolder(values: native.Array<android.animation.PropertyValuesHolder>): android.animation.ValueAnimator;
			/**
			 * Constructs and returns a ValueAnimator that animates between Object values. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param evaluator A TypeEvaluator that will be called on each animation frame to
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofObject(evaluator: android.animation.ITypeEvaluator<any>, values: native.Array<any>): android.animation.ValueAnimator;
			/**
			 * Sets int values that will be animated between. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public setIntValues(values: native.Array<number>): void;
			/**
			 * Sets float values that will be animated between. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public setFloatValues(values: native.Array<number>): void;
			/**
			 * Sets the values to animate between for this animation. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param values The set of values to animate between.
			 */
			public setObjectValues(values: native.Array<any>): void;
			/**
			 * Sets the values, per property, being animated between. This function is called internally by the constructors of ValueAnimator that take a list of values. But a ValueAnimator can be constructed without values and this method can be called to set the values manually instead.
			 * @param values The set of values, per property, being animated between.
			 */
			public setValues(values: native.Array<android.animation.PropertyValuesHolder>): void;
			/**
			 * Returns the values that this ValueAnimator animates between. These values are stored in PropertyValuesHolder objects, even if the ValueAnimator was created with a simple list of value objects instead.
			 */
			public getValues(): native.Array<android.animation.PropertyValuesHolder>;
			/**
			 * This function is called immediately before processing the first animation frame of an animation. If there is a nonzero <code>startDelay</code>, the function is called after that delay ends. It takes care of the final initialization steps for the animation.
			 */
			initAnimation(): void;
			/**
			 * Sets the length of the animation. The default duration is 300 milliseconds.
			 * @param duration The length of the animation, in milliseconds. This value cannot
			 */
			public setDuration(duration: number): android.animation.ValueAnimator;
			/**
			 * Gets the length of the animation. The default duration is 300 milliseconds.
			 */
			public getDuration(): any;
			/**
			 * Sets the position of the animation to the specified point in time. This time should be between 0 and the total duration of the animation, including any repetition. If the animation has not yet been started, then it will not advance forward after it is set to this time; it will simply set the time to this value and perform any appropriate actions based on that time. If the animation is already running, then setCurrentPlayTime() will set the current playing time to this value and continue playing from that point.
			 * @param playTime The time, in milliseconds, to which the animation is advanced or rewound.
			 */
			public setCurrentPlayTime(playTime: number): void;
			/**
			 * Gets the current position of the animation in time, which is equal to the current time minus the time that the animation started. An animation that is not yet started will return a value of zero.
			 */
			public getCurrentPlayTime(): any;
			/**
			 * The amount of time, in milliseconds, to delay starting the animation after #start() is called.
			 */
			public getStartDelay(): any;
			/**
			 * The amount of time, in milliseconds, to delay starting the animation after #start() is called.
			 * @param startDelay The amount of the delay, in milliseconds
			 */
			public setStartDelay(startDelay: number): void;
			/**
			 * The amount of time, in milliseconds, between each frame of the animation. This is a requested time that the animation will attempt to honor, but the actual delay between frames may be different, depending on system load and capabilities. This is a static function because the same delay will be applied to all animations, since they are all run off of a single timing loop.
			 */
			public static getFrameDelay(): any;
			/**
			 * The amount of time, in milliseconds, between each frame of the animation. This is a requested time that the animation will attempt to honor, but the actual delay between frames may be different, depending on system load and capabilities. This is a static function because the same delay will be applied to all animations, since they are all run off of a single timing loop.
			 * @param frameDelay the requested time between frames, in milliseconds
			 */
			public static setFrameDelay(frameDelay: number): void;
			/**
			 * The most recent value calculated by this <code>ValueAnimator</code> when there is just one property being animated. This value is only sensible while the animation is running. The main purpose for this read-only property is to retrieve the value from the <code>ValueAnimator</code> during a call to AnimatorUpdateListener#onAnimationUpdate(ValueAnimator), which is called during each animation frame, immediately after the value is calculated.
			 */
			public getAnimatedValue(): any;
			/**
			 * The most recent value calculated by this <code>ValueAnimator</code> for <code>propertyName</code>. The main purpose for this read-only property is to retrieve the value from the <code>ValueAnimator</code> during a call to AnimatorUpdateListener#onAnimationUpdate(ValueAnimator), which is called during each animation frame, immediately after the value is calculated.
			 */
			public getAnimatedValue(propertyName: string): any;
			/**
			 * Sets how many times the animation should be repeated. If the repeat count is 0, the animation is never repeated. If the repeat count is greater than 0 or #INFINITE, the repeat mode will be taken into account. The repeat count is 0 by default.
			 * @param value the number of times the animation should be repeated
			 */
			public setRepeatCount(value: number): void;
			/**
			 * Defines how many times the animation should repeat. The default value is 0.
			 */
			public getRepeatCount(): number;
			/**
			 * Defines what this animation should do when it reaches the end. This setting is applied only when the repeat count is either greater than 0 or #INFINITE. Defaults to #RESTART.
			 * @param value {@link #RESTART} or {@link #REVERSE}
			 */
			public setRepeatMode(value: number): void;
			/**
			 * Defines what this animation should do when it reaches the end.
			 */
			public getRepeatMode(): number;
			/**
			 * Adds a listener to the set of listeners that are sent update events through the life of an animation. This method is called on all listeners for every frame of the animation, after the values for the animation have been calculated.
			 * @param listener the listener to be added to the current set of listeners for this animation.
			 */
			public addUpdateListener(listener: android.animation.ValueAnimator.IAnimatorUpdateListener): void;
			/**
			 * Removes all listeners from the set listening to frame updates for this animation.
			 */
			public removeAllUpdateListeners(): void;
			/**
			 * Removes a listener from the set listening to frame updates for this animation.
			 * @param listener the listener to be removed from the current set of update listeners
			 */
			public removeUpdateListener(listener: android.animation.ValueAnimator.IAnimatorUpdateListener): void;
			/**
			 * The time interpolator used in calculating the elapsed fraction of this animation. The interpolator determines whether the animation runs with linear or non-linear motion, such as acceleration and deceleration. The default value is android.view.animation.AccelerateDecelerateInterpolator
			 * @param value the interpolator to be used by this animation. A value of <code>null</code>
			 */
			public setInterpolator(value: android.animation.ITimeInterpolator): void;
			/**
			 * Returns the timing interpolator that this ValueAnimator uses.
			 */
			public getInterpolator(): android.animation.ITimeInterpolator;
			/**
			 * The type evaluator to be used when calculating the animated values of this animation. The system will automatically assign a float or int evaluator based on the type of <code>startValue</code> and <code>endValue</code> in the constructor. But if these values are not one of these primitive types, or if different evaluation is desired (such as is necessary with int values that represent colors), a custom evaluator needs to be assigned. For example, when running an animation on color values, the ArgbEvaluator should be used to get correct RGB color interpolation.
			 * @param value the evaluator to be used this animation
			 */
			public setEvaluator(value: android.animation.ITypeEvaluator<any>): void;
			public start(): void;
			public cancel(): void;
			public end(): void;
			public isRunning(): boolean;
			public isStarted(): boolean;
			/**
			 * Plays the ValueAnimator in reverse. If the animation is already running, it will stop itself and play backwards from the point reached when reverse was called. If the animation is not currently running, then it will start from the end and play backwards. This behavior is only set for the current animation; future playing of the animation will use the default behavior of playing forward.
			 */
			public reverse(): void;
			/**
			 * This internal function processes a single animation frame for a given animation. The currentTime parameter is the timing pulse sent by the handler, used to calculate the elapsed duration, and therefore the elapsed fraction, of the animation. The return value indicates whether the animation should be ended (which happens when the elapsed time of the animation exceeds the animation's duration, including the repeatCount).
			 * @param currentTime The current time, as tracked by the static timing handler
			 */
			animationFrame(currentTime: number): boolean;
			/**
			 * Processes a frame of the animation, adjusting the start time if needed.
			 * @param frameTime The frame time.
			 */
			doAnimationFrame(frameTime: number): boolean;
			/**
			 * Returns the current animation fraction, which is the elapsed/interpolated fraction used in the most recent frame update on the animation.
			 */
			public getAnimatedFraction(): number;
			/**
			 * This method is called with the elapsed fraction of the animation during every animation frame. This function turns the elapsed fraction into an interpolated fraction and then into an animated value (from the evaluator. The function is called mostly during animation updates, but it is also called when the <code>end()</code> function is called, to set the final value on the property.
			 * @param fraction The elapsed fraction of the animation.
			 */
			animateValue(fraction: number): void;
			public clone(): android.animation.ValueAnimator;
			public toString(): string;
		}
		export module ValueAnimator {
			/**
			 * This custom, static handler handles the timing pulse that is shared by all active animations. This approach ensures that the setting of animation values will happen on the UI thread and that all animations will share the same times for calculating their values, which makes synchronizing animations possible.
			 */
			export class AnimationHandler extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.animation.ValueAnimator.AnimationHandler>;
				/**
				 * Start animating on the next frame.
				 */
				public start(): void;
				public run(): void;
			}
			/**
			 * Implementors of this interface can add themselves as update listeners to an <code>ValueAnimator</code> instance to receive callbacks on every animation frame, after the current frame's values have been calculated for that <code>ValueAnimator</code>.
			 */
			interface IAnimatorUpdateListener {
				/**
				 * @param animation The animation which was repeated.
				 */
				onAnimationUpdate(animation: android.animation.ValueAnimator): void;
			}
			/**
			 * Implementors of this interface can add themselves as update listeners to an <code>ValueAnimator</code> instance to receive callbacks on every animation frame, after the current frame's values have been calculated for that <code>ValueAnimator</code>.
			 */
			export class AnimatorUpdateListener implements android.animation.ValueAnimator.IAnimatorUpdateListener {
				constructor(implementation: android.animation.ValueAnimator.IAnimatorUpdateListener);
				/**
				 * @param animation The animation which was repeated.
				 */
				public onAnimationUpdate(animation: android.animation.ValueAnimator): void;
			}
		}
		/**
		 * Interface for use with the ValueAnimator#setEvaluator(TypeEvaluator) function. Evaluators allow developers to create animations on arbitrary property types, by allowing them to supply custom evaulators for types that are not automatically understood and used by the animation system.
		 */
		interface ITypeEvaluator<T> {
			/**
			 * This function returns the result of linearly interpolating the start and end values, with <code>fraction</code> representing the proportion between the start and end values. The calculation is a simple parametric calculation: <code>result = x0 + t * (v1 - v0)</code>, where <code>x0</code> is <code>startValue</code>, <code>x1</code> is <code>endValue</code>, and <code>t</code> is <code>fraction</code>.
			 * @param fraction The fraction from the starting to the ending values
			 * @param startValue The start value.
			 * @param endValue The end value.
			 */
			evaluate(fraction: number, startValue: T, endValue: T): T;
		}
		/**
		 * This class holds a time/value pair for an animation. The Keyframe class is used by ValueAnimator to define the values that the animation target will have over the course of the animation. As the time proceeds from one keyframe to the other, the value of the target object will animate between the value at the previous keyframe and the value at the next keyframe. Each keyframe also holds an optional TimeInterpolator object, which defines the time interpolation over the intervalue preceding the keyframe.
		 */
		export class Keyframe extends java.lang.Object implements java.lang.ICloneable {
			constructor();
			static class: java.lang.Class<android.animation.Keyframe>;
			/**
			 * Constructs a Keyframe object with the given time and value. The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
			 * @param fraction The time, expressed as a value between 0 and 1, representing the fraction
			 * @param value The value that the object will animate to as the animation time approaches
			 */
			public static ofInt(fraction: number, value: number): android.animation.Keyframe;
			/**
			 * Constructs a Keyframe object with the given time. The value at this time will be derived from the target object when the animation first starts (note that this implies that keyframes with no initial value must be used as part of an ObjectAnimator). The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
			 * @param fraction The time, expressed as a value between 0 and 1, representing the fraction
			 */
			public static ofInt(fraction: number): android.animation.Keyframe;
			/**
			 * Constructs a Keyframe object with the given time and value. The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
			 * @param fraction The time, expressed as a value between 0 and 1, representing the fraction
			 * @param value The value that the object will animate to as the animation time approaches
			 */
			public static ofFloat(fraction: number, value: number): android.animation.Keyframe;
			/**
			 * Constructs a Keyframe object with the given time. The value at this time will be derived from the target object when the animation first starts (note that this implies that keyframes with no initial value must be used as part of an ObjectAnimator). The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
			 * @param fraction The time, expressed as a value between 0 and 1, representing the fraction
			 */
			public static ofFloat(fraction: number): android.animation.Keyframe;
			/**
			 * Constructs a Keyframe object with the given time and value. The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
			 * @param fraction The time, expressed as a value between 0 and 1, representing the fraction
			 * @param value The value that the object will animate to as the animation time approaches
			 */
			public static ofObject(fraction: number, value: any): android.animation.Keyframe;
			/**
			 * Constructs a Keyframe object with the given time. The value at this time will be derived from the target object when the animation first starts (note that this implies that keyframes with no initial value must be used as part of an ObjectAnimator). The time defines the time, as a proportion of an overall animation's duration, at which the value will hold true for the animation. The value for the animation between keyframes will be calculated as an interpolation between the values at those keyframes.
			 * @param fraction The time, expressed as a value between 0 and 1, representing the fraction
			 */
			public static ofObject(fraction: number): android.animation.Keyframe;
			/**
			 * Indicates whether this keyframe has a valid value. This method is called internally when an ObjectAnimator first starts; keyframes without values are assigned values at that time by deriving the value for the property from the target object.
			 */
			public hasValue(): boolean;
			/**
			 * Gets the value for this Keyframe.
			 */
			public getValue(): any;
			/**
			 * Sets the value for this Keyframe.
			 * @param value value for this Keyframe.
			 */
			public setValue(value: any): void;
			/**
			 * Gets the time for this keyframe, as a fraction of the overall animation duration.
			 */
			public getFraction(): number;
			/**
			 * Sets the time for this keyframe, as a fraction of the overall animation duration.
			 * @param fraction time associated with this keyframe, as a fraction of the overall animation
			 */
			public setFraction(fraction: number): void;
			/**
			 * Gets the optional interpolator for this Keyframe. A value of <code>null</code> indicates that there is no interpolation, which is the same as linear interpolation.
			 */
			public getInterpolator(): android.animation.ITimeInterpolator;
			/**
			 * Sets the optional interpolator for this Keyframe. A value of <code>null</code> indicates that there is no interpolation, which is the same as linear interpolation.
			 */
			public setInterpolator(interpolator: android.animation.ITimeInterpolator): void;
			/**
			 * Gets the type of keyframe. This information is used by ValueAnimator to determine the type of TypeEvaluator to use when calculating values between keyframes. The type is based on the type of Keyframe created.
			 */
			public getType(): java.lang.Class<any>;
			public clone(): android.animation.Keyframe;
		}
		export module Keyframe {
			/**
			 * Internal subclass used when the keyframe value is of type float.
			 */
			export class FloatKeyframe extends android.animation.Keyframe {
				static class: java.lang.Class<android.animation.Keyframe.FloatKeyframe>;
				public getFloatValue(): number;
				public getValue(): any;
				public setValue(value: any): void;
				public clone(): android.animation.Keyframe.FloatKeyframe;
			}
			/**
			 * This internal subclass is used for all types which are not int or float.
			 */
			export class ObjectKeyframe extends android.animation.Keyframe {
				static class: java.lang.Class<android.animation.Keyframe.ObjectKeyframe>;
				public getValue(): any;
				public setValue(value: any): void;
				public clone(): android.animation.Keyframe.ObjectKeyframe;
			}
			/**
			 * Internal subclass used when the keyframe value is of type int.
			 */
			export class IntKeyframe extends android.animation.Keyframe {
				static class: java.lang.Class<android.animation.Keyframe.IntKeyframe>;
				public getIntValue(): number;
				public getValue(): any;
				public setValue(value: any): void;
				public clone(): android.animation.Keyframe.IntKeyframe;
			}
		}
		/**
		 * This class holds a collection of IntKeyframe objects and is called by ValueAnimator to calculate values between those keyframes for a given animation. The class internal to the animation package because it is an implementation detail of how Keyframes are stored and used.
		 */
		export class IntKeyframeSet extends android.animation.KeyframeSet {
			constructor(keyframes: native.Array<android.animation.Keyframe.IntKeyframe>);
			static class: java.lang.Class<android.animation.IntKeyframeSet>;
			public getValue(fraction: number): any;
			public clone(): android.animation.IntKeyframeSet;
			public getIntValue(fraction: number): number;
		}
		/**
		 * Interface for use with the ValueAnimator#setEvaluator(TypeEvaluator) function. Evaluators allow developers to create animations on arbitrary property types, by allowing them to supply custom evaulators for types that are not automatically understood and used by the animation system.
		 */
		export class TypeEvaluator<T> implements android.animation.ITypeEvaluator<T> {
			constructor(implementation: android.animation.ITypeEvaluator<T>);
			/**
			 * This function returns the result of linearly interpolating the start and end values, with <code>fraction</code> representing the proportion between the start and end values. The calculation is a simple parametric calculation: <code>result = x0 + t * (v1 - v0)</code>, where <code>x0</code> is <code>startValue</code>, <code>x1</code> is <code>endValue</code>, and <code>t</code> is <code>fraction</code>.
			 * @param fraction The fraction from the starting to the ending values
			 * @param startValue The start value.
			 * @param endValue The end value.
			 */
			public evaluate(fraction: number, startValue: T, endValue: T): T;
		}
		/**
		 * This adapter class provides empty implementations of the methods from android.animation.Animator.AnimatorListener. Any custom listener that cares only about a subset of the methods of this listener can simply subclass this adapter class instead of implementing the interface directly.
		 */
		export class AnimatorListenerAdapter extends java.lang.Object implements android.animation.Animator.IAnimatorListener {
			constructor();
			static class: java.lang.Class<android.animation.AnimatorListenerAdapter>;
			/**
			 * 
			 */
			public onAnimationCancel(animation: android.animation.Animator): void;
			/**
			 * 
			 */
			public onAnimationEnd(animation: android.animation.Animator): void;
			/**
			 * 
			 */
			public onAnimationRepeat(animation: android.animation.Animator): void;
			/**
			 * 
			 */
			public onAnimationStart(animation: android.animation.Animator): void;
		}
		/**
		 * This evaluator can be used to perform type interpolation between <code>float</code> values.
		 */
		export class FloatEvaluator extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.animation.FloatEvaluator>;
			/**
			 * This function returns the result of linearly interpolating the start and end values, with <code>fraction</code> representing the proportion between the start and end values. The calculation is a simple parametric calculation: <code>result = x0 + t * (v1 - v0)</code>, where <code>x0</code> is <code>startValue</code>, <code>x1</code> is <code>endValue</code>, and <code>t</code> is <code>fraction</code>.
			 * @param fraction The fraction from the starting to the ending values
			 * @param startValue The start value; should be of type <code>float</code> or
			 * @param endValue The end value; should be of type <code>float</code> or <code>Float</code>
			 */
			public evaluate(fraction: number, startValue: java.lang.Number, endValue: java.lang.Number): java.lang.Float;
		}
		/**
		 * This class is used to instantiate animator XML files into Animator objects.
		 */
		export class AnimatorInflater extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.animation.AnimatorInflater>;
			/**
			 * Loads an Animator object from a resource
			 * @param context Application context used to access resources
			 * @param id The resource id of the animation to load
			 */
			public static loadAnimator(context: android.content.Context, id: number): android.animation.Animator;
		}
		/**
		 * Tests for the various lifecycle events of Animators. This abstract class is subclassed by concrete implementations that provide the actual Animator objects being tested. All of the testing mechanisms are in this class; the subclasses are only responsible for providing the mAnimator object.
		 */
		export class EventsTest extends android.test.ActivityInstrumentationTestCase2<android.animation.BasicAnimatorActivity> {
			constructor();
			static class: java.lang.Class<android.animation.EventsTest>;
			/**
			 * Timeout length, based on when the animation should reasonably be complete.
			 */
			protected getTimeout(): any;
			/**
			 * Sets up the fields used by each test. Subclasses must override this method to create the protected mAnimator object used in all tests. Overrides must create that animator and then call super.setup(), where further properties are set on that animator. Exception
			 */
			public setUp(): void;
			/**
			 * Verify that calling cancel on an unstarted animator does nothing.
			 */
			public testCancel(): void;
			/**
			 * Verify that calling end on an unstarted animator starts/ends an animator.
			 */
			public testEnd(): void;
			/**
			 * Verify that calling cancel on a started animator does the right thing.
			 */
			public testStartCancel(): void;
			/**
			 * Verify that calling end on a started animator does the right thing.
			 */
			public testStartEnd(): void;
			/**
			 * Same as testStartCancel, but with a startDelayed animator
			 */
			public testStartDelayedCancel(): void;
			/**
			 * Same as testStartEnd, but with a startDelayed animator
			 */
			public testStartDelayedEnd(): void;
			/**
			 * Verify that canceling an animator that is playing does the right thing.
			 */
			public testPlayingCancel(): void;
			/**
			 * Verify that ending an animator that is playing does the right thing.
			 */
			public testPlayingEnd(): void;
			/**
			 * Same as testPlayingCancel, but with a startDelayed animator
			 */
			public testPlayingDelayedCancel(): void;
			/**
			 * Same as testPlayingEnd, but with a startDelayed animator
			 */
			public testPlayingDelayedEnd(): void;
			/**
			 * Same as testPlayingDelayedCancel, but cancel during the startDelay period
			 */
			public testPlayingDelayedCancelMidDelay(): void;
			/**
			 * Same as testPlayingDelayedEnd, but end during the startDelay period
			 */
			public testPlayingDelayedEndMidDelay(): void;
			/**
			 * Verifies that canceling a started animation after it has already been canceled does nothing.
			 */
			public testStartDoubleCancel(): void;
			/**
			 * Verifies that ending a started animation after it has already been ended does nothing.
			 */
			public testStartDoubleEnd(): void;
			/**
			 * Same as testStartDoubleCancel, but with a startDelayed animator
			 */
			public testStartDelayedDoubleCancel(): void;
			/**
			 * Same as testStartDoubleEnd, but with a startDelayed animator
			 */
			public testStartDelayedDoubleEnd(): void;
		}
		export module EventsTest {
			/**
			 * Cancels the given animator. Used to delay cancellation until some later time (after the animator has started playing).
			 */
			export class Canceler extends java.lang.Object implements java.lang.IRunnable {
				constructor(anim: android.animation.Animator, future: android.animation.FutureWaiter);
				static class: java.lang.Class<android.animation.EventsTest.Canceler>;
				public run(): void;
			}
			/**
			 * Releases the given Future object when the listener's end() event is called. Specifically, it releases it after some further delay, to give the test time to do other things right after an animation ends.
			 */
			export class FutureReleaseListener extends android.animation.AnimatorListenerAdapter {
				constructor(future: android.animation.FutureWaiter);
				/**
				 * Variant constructor that auto-releases the FutureWaiter after the specified timeout.
				 * @param future 
				 * @param timeout 
				 */
				constructor(future: android.animation.FutureWaiter, timeout: number);
				static class: java.lang.Class<android.animation.EventsTest.FutureReleaseListener>;
				public onAnimationEnd(animation: android.animation.Animator): void;
			}
			/**
			 * Ends the given animator. Used to delay ending until some later time (after the animator has started playing).
			 */
			export class Ender extends java.lang.Object implements java.lang.IRunnable {
				constructor(anim: android.animation.Animator, future: android.animation.FutureWaiter);
				static class: java.lang.Class<android.animation.EventsTest.Ender>;
				public run(): void;
			}
		}
		/**
		 * Simple extension of com.google.common.util.concurrent.AbstractFuture which exposes a new release() method which calls the protected com.google.common.util.concurrent.AbstractFuture#set(Object) method internally. It also exposes the protected AbstractFuture#setException(Throwable) method.
		 */
		export class FutureWaiter {
			constructor();
			static class: java.lang.Class<android.animation.FutureWaiter>;
			/**
			 * Release the Future currently waiting on com.google.common.util.concurrent.AbstractFuture#get().
			 */
			public release(): void;
			public setException(throwable: java.lang.Throwable): boolean;
		}
		/**
		 * This class provides a simple callback mechanism to listeners that is synchronized with all other animators in the system. There is no duration, interpolation, or object value-setting with this Animator. Instead, it is simply started, after which it proceeds to send out events on every animation frame to its TimeListener (if set), with information about this animator, the total elapsed time, and the elapsed time since the previous animation frame.
		 */
		export class TimeAnimator extends android.animation.ValueAnimator {
			constructor();
			static class: java.lang.Class<android.animation.TimeAnimator>;
			public start(): void;
			animationFrame(currentTime: number): boolean;
			/**
			 * Sets a listener that is sent update events throughout the life of an animation.
			 * @param listener the listener to be set.
			 */
			public setTimeListener(listener: android.animation.TimeAnimator.ITimeListener): void;
			animateValue(fraction: number): void;
			initAnimation(): void;
		}
		export module TimeAnimator {
			/**
			 * Implementors of this interface can set themselves as update listeners to a <code>TimeAnimator</code> instance to receive callbacks on every animation frame to receive the total time since the animator started and the delta time since the last frame. The first time the listener is called, deltaTime will be zero. The same is true for totalTime, unless the animator was set to a specific ValueAnimator#setCurrentPlayTime(long) currentPlayTime prior to starting.
			 */
			export class TimeListener implements android.animation.TimeAnimator.ITimeListener {
				constructor(implementation: android.animation.TimeAnimator.ITimeListener);
				/**
				 * @param animation The animator sending out the notification.
				 * @param totalTime The total time elapsed since the animator started, in milliseconds.
				 * @param deltaTime The time elapsed since the previous frame, in milliseconds.
				 */
				public onTimeUpdate(animation: android.animation.TimeAnimator, totalTime: number, deltaTime: number): void;
			}
			/**
			 * Implementors of this interface can set themselves as update listeners to a <code>TimeAnimator</code> instance to receive callbacks on every animation frame to receive the total time since the animator started and the delta time since the last frame. The first time the listener is called, deltaTime will be zero. The same is true for totalTime, unless the animator was set to a specific ValueAnimator#setCurrentPlayTime(long) currentPlayTime prior to starting.
			 */
			interface ITimeListener {
				/**
				 * @param animation The animator sending out the notification.
				 * @param totalTime The total time elapsed since the animator started, in milliseconds.
				 * @param deltaTime The time elapsed since the previous frame, in milliseconds.
				 */
				onTimeUpdate(animation: android.animation.TimeAnimator, totalTime: number, deltaTime: number): void;
			}
		}
		/**
		 * This subclass of ValueAnimator provides support for animating properties on target objects. The constructors of this class take parameters to define the target object that will be animated as well as the name of the property that will be animated. Appropriate set/get functions are then determined internally and the animation will call these functions as necessary to animate the property.
		 */
		export class ObjectAnimator extends android.animation.ValueAnimator {
			/**
			 * Creates a new ObjectAnimator object. This default constructor is primarily for use internally; the other constructors which take parameters are more generally useful.
			 */
			constructor();
			static class: java.lang.Class<android.animation.ObjectAnimator>;
			/**
			 * Sets the name of the property that will be animated. This name is used to derive a setter function that will be called to set animated values. For example, a property name of <code>foo</code> will result in a call to the function <code>setFoo()</code> on the target object. If either <code>valueFrom</code> or <code>valueTo</code> is null, then a getter function will also be derived and called.
			 * @param propertyName The name of the property being animated. Should not be null.
			 */
			public setPropertyName(propertyName: string): void;
			/**
			 * Sets the property that will be animated. Property objects will take precedence over properties specified by the #setPropertyName(String) method. Animations should be set up to use one or the other, not both.
			 * @param property The property being animated. Should not be null.
			 */
			public setProperty(property: android.util.Property<any, any>): void;
			/**
			 * Gets the name of the property that will be animated. This name will be used to derive a setter function that will be called to set animated values. For example, a property name of <code>foo</code> will result in a call to the function <code>setFoo()</code> on the target object. If either <code>valueFrom</code> or <code>valueTo</code> is null, then a getter function will also be derived and called.
			 */
			public getPropertyName(): string;
			/**
			 * Constructs and returns an ObjectAnimator that animates between int values. A single value implies that that value is the one being animated to. Two values imply a starting and ending values. More than two values imply a starting value, values to animate through along the way, and an ending value (these values will be distributed evenly across the duration of the animation).
			 * @param target The object whose property is to be animated. This object should
			 * @param propertyName The name of the property being animated.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofInt(target: any, propertyName: string, values: native.Array<number>): android.animation.ObjectAnimator;
			/**
			 * Constructs and returns an ObjectAnimator that animates between int values. A single value implies that that value is the one being animated to. Two values imply a starting and ending values. More than two values imply a starting value, values to animate through along the way, and an ending value (these values will be distributed evenly across the duration of the animation).
			 * @param target The object whose property is to be animated.
			 * @param property The property being animated.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofInt<T>(target: T, property: android.util.Property<T, java.lang.Integer>, values: native.Array<number>): android.animation.ObjectAnimator;
			/**
			 * Constructs and returns an ObjectAnimator that animates between float values. A single value implies that that value is the one being animated to. Two values imply a starting and ending values. More than two values imply a starting value, values to animate through along the way, and an ending value (these values will be distributed evenly across the duration of the animation).
			 * @param target The object whose property is to be animated. This object should
			 * @param propertyName The name of the property being animated.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofFloat(target: any, propertyName: string, values: native.Array<number>): android.animation.ObjectAnimator;
			/**
			 * Constructs and returns an ObjectAnimator that animates between float values. A single value implies that that value is the one being animated to. Two values imply a starting and ending values. More than two values imply a starting value, values to animate through along the way, and an ending value (these values will be distributed evenly across the duration of the animation).
			 * @param target The object whose property is to be animated.
			 * @param property The property being animated.
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofFloat<T>(target: T, property: android.util.Property<T, java.lang.Float>, values: native.Array<number>): android.animation.ObjectAnimator;
			/**
			 * Constructs and returns an ObjectAnimator that animates between Object values. A single value implies that that value is the one being animated to. Two values imply a starting and ending values. More than two values imply a starting value, values to animate through along the way, and an ending value (these values will be distributed evenly across the duration of the animation).
			 * @param target The object whose property is to be animated. This object should
			 * @param propertyName The name of the property being animated.
			 * @param evaluator A TypeEvaluator that will be called on each animation frame to
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofObject(target: any, propertyName: string, evaluator: android.animation.ITypeEvaluator<any>, values: native.Array<any>): android.animation.ObjectAnimator;
			/**
			 * Constructs and returns an ObjectAnimator that animates between Object values. A single value implies that that value is the one being animated to. Two values imply a starting and ending values. More than two values imply a starting value, values to animate through along the way, and an ending value (these values will be distributed evenly across the duration of the animation).
			 * @param target The object whose property is to be animated.
			 * @param property The property being animated.
			 * @param evaluator A TypeEvaluator that will be called on each animation frame to
			 * @param values A set of values that the animation will animate between over time.
			 */
			public static ofObject<T, V>(target: T, property: android.util.Property<T, V>, evaluator: android.animation.ITypeEvaluator<V>, values: native.Array<V>): android.animation.ObjectAnimator;
			/**
			 * Constructs and returns an ObjectAnimator that animates between the sets of values specified in <code>PropertyValueHolder</code> objects. This variant should be used when animating several properties at once with the same ObjectAnimator, since PropertyValuesHolder allows you to associate a set of animation values with a property name.
			 * @param target The object whose property is to be animated. Depending on how the
			 * @param values A set of PropertyValuesHolder objects whose values will be animated between
			 */
			public static ofPropertyValuesHolder(target: any, values: native.Array<android.animation.PropertyValuesHolder>): android.animation.ObjectAnimator;
			public setIntValues(values: native.Array<number>): void;
			public setFloatValues(values: native.Array<number>): void;
			public setObjectValues(values: native.Array<any>): void;
			public start(): void;
			/**
			 * This function is called immediately before processing the first animation frame of an animation. If there is a nonzero <code>startDelay</code>, the function is called after that delay ends. It takes care of the final initialization steps for the animation. This includes setting mEvaluator, if the user has not yet set it up, and the setter/getter methods, if the user did not supply them.
			 */
			initAnimation(): void;
			/**
			 * Sets the length of the animation. The default duration is 300 milliseconds.
			 * @param duration The length of the animation, in milliseconds.
			 */
			public setDuration(duration: number): android.animation.ObjectAnimator;
			/**
			 * The target object whose property will be animated by this animation
			 */
			public getTarget(): any;
			/**
			 * Sets the target object whose property will be animated by this animation
			 * @param target The object being animated
			 */
			public setTarget(target: any): void;
			public setupStartValues(): void;
			public setupEndValues(): void;
			/**
			 * This method is called with the elapsed fraction of the animation during every animation frame. This function turns the elapsed fraction into an interpolated fraction and then into an animated value (from the evaluator. The function is called mostly during animation updates, but it is also called when the <code>end()</code> function is called, to set the final value on the property.
			 * @param fraction The elapsed fraction of the animation.
			 */
			animateValue(fraction: number): void;
			public clone(): android.animation.ObjectAnimator;
			public toString(): string;
			/**
			 * Constructs and returns a ValueAnimator that animates between int values. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param values A set of values that the animation will animate between over time.
			 */
			static ofInt(values: native.Array<number>): android.animation.ValueAnimator;
			/**
			 * Constructs and returns a ValueAnimator that animates between float values. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param values A set of values that the animation will animate between over time.
			 */
			static ofFloat(values: native.Array<number>): android.animation.ValueAnimator;
			/**
			 * Constructs and returns a ValueAnimator that animates between the values specified in the PropertyValuesHolder objects.
			 * @param values A set of PropertyValuesHolder objects whose values will be animated
			 */
			static ofPropertyValuesHolder(values: native.Array<android.animation.PropertyValuesHolder>): android.animation.ValueAnimator;
			/**
			 * Constructs and returns a ValueAnimator that animates between Object values. A single value implies that that value is the one being animated to. However, this is not typically useful in a ValueAnimator object because there is no way for the object to determine the starting value for the animation (unlike ObjectAnimator, which can derive that value from the target object and property being animated). Therefore, there should typically be two or more values.
			 * @param evaluator A TypeEvaluator that will be called on each animation frame to
			 * @param values A set of values that the animation will animate between over time.
			 */
			static ofObject(evaluator: android.animation.ITypeEvaluator<any>, values: native.Array<any>): android.animation.ValueAnimator;
		}
		/**
		 * Listener tests for ValueAnimator.
		 */
		export class ValueAnimatorEventsTest extends android.animation.EventsTest {
			constructor();
			static class: java.lang.Class<android.animation.ValueAnimatorEventsTest>;
			public setUp(): void;
		}
		/**
		 * A time interpolator defines the rate of change of an animation. This allows animations to have non-linear motion, such as acceleration and deceleration.
		 */
		export class TimeInterpolator implements android.animation.ITimeInterpolator {
			constructor(implementation: android.animation.ITimeInterpolator);
			/**
			 * Maps a value representing the elapsed fraction of an animation to a value that represents the interpolated fraction. This interpolated value is then multiplied by the change in value of an animation to derive the animated value at the current elapsed animation time.
			 * @param input A value between 0 and 1.0 indicating our current point
			 */
			public getInterpolation(input: number): number;
		}
		/**
		 * This class holds a collection of FloatKeyframe objects and is called by ValueAnimator to calculate values between those keyframes for a given animation. The class internal to the animation package because it is an implementation detail of how Keyframes are stored and used.
		 */
		export class FloatKeyframeSet extends android.animation.KeyframeSet {
			constructor(keyframes: native.Array<android.animation.Keyframe.FloatKeyframe>);
			static class: java.lang.Class<android.animation.FloatKeyframeSet>;
			public getValue(fraction: number): any;
			public clone(): android.animation.FloatKeyframeSet;
			public getFloatValue(fraction: number): number;
		}
		/**
		 * Listener tests for AnimatorSet.
		 */
		export class AnimatorSetEventsTest extends android.animation.EventsTest {
			constructor();
			static class: java.lang.Class<android.animation.AnimatorSetEventsTest>;
			public setUp(): void;
			protected getTimeout(): any;
			/**
			 * Tests that an AnimatorSet can be correctly canceled during the delay of one of its children
			 */
			public testPlayingCancelDuringChildDelay(): void;
			public setTranslationX(value: number): void;
			public setTranslationY(value: number): void;
		}
		/**
		 * This class holds a collection of Keyframe objects and is called by ValueAnimator to calculate values between those keyframes for a given animation. The class internal to the animation package because it is an implementation detail of how Keyframes are stored and used.
		 */
		export class KeyframeSet extends java.lang.Object {
			constructor(keyframes: native.Array<android.animation.Keyframe>);
			static class: java.lang.Class<android.animation.KeyframeSet>;
			public static ofInt(values: native.Array<number>): android.animation.KeyframeSet;
			public static ofFloat(values: native.Array<number>): android.animation.KeyframeSet;
			public static ofKeyframe(keyframes: native.Array<android.animation.Keyframe>): android.animation.KeyframeSet;
			public static ofObject(values: native.Array<any>): android.animation.KeyframeSet;
			/**
			 * Sets the TypeEvaluator to be used when calculating animated values. This object is required only for KeyframeSets that are not either IntKeyframeSet or FloatKeyframeSet, both of which assume their own evaluator to speed up calculations with those primitive types.
			 * @param evaluator The TypeEvaluator to be used to calculate animated values.
			 */
			public setEvaluator(evaluator: android.animation.ITypeEvaluator<any>): void;
			public clone(): android.animation.KeyframeSet;
			/**
			 * Gets the animated value, given the elapsed fraction of the animation (interpolated by the animation's interpolator) and the evaluator used to calculate in-between values. This function maps the input fraction to the appropriate keyframe interval and a fraction between them and returns the interpolated value. Note that the input fraction may fall outside the [0-1] bounds, if the animation's interpolator made that happen (e.g., a spring interpolation that might send the fraction past 1.0). We handle this situation by just using the two keyframes at the appropriate end when the value is outside those bounds.
			 * @param fraction The elapsed fraction of the animation
			 */
			public getValue(fraction: number): any;
			public toString(): string;
		}
		/**
		 * Delegate implementing the native methods of android.animation.PropertyValuesHolder
		 */
		export class PropertyValuesHolder_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.animation.PropertyValuesHolder_Delegate>;
			static nGetIntMethod(targetClass: java.lang.Class<any>, methodName: string): number;
			static nGetFloatMethod(targetClass: java.lang.Class<any>, methodName: string): number;
			static nCallIntMethod(target: any, methodID: number, arg: number): void;
			static nCallFloatMethod(target: any, methodID: number, arg: number): void;
		}
		/**
		 * This is the superclass for classes which provide basic support for animations which can be started, ended, and have <code>AnimatorListeners</code> added to them.
		 */
		export class Animator extends java.lang.Object implements java.lang.ICloneable {
			constructor();
			static class: java.lang.Class<android.animation.Animator>;
			/**
			 * Starts this animation. If the animation has a nonzero startDelay, the animation will start running after that delay elapses. A non-delayed animation will have its initial value(s) set immediately, followed by calls to AnimatorListener#onAnimationStart(Animator) for any listeners of this animator.
			 */
			public start(): void;
			/**
			 * Cancels the animation. Unlike #end(), <code>cancel()</code> causes the animation to stop in its tracks, sending an android.animation.Animator.AnimatorListener#onAnimationCancel(Animator) to its listeners, followed by an android.animation.Animator.AnimatorListener#onAnimationEnd(Animator) message.
			 */
			public cancel(): void;
			/**
			 * Ends the animation. This causes the animation to assign the end value of the property being animated, then calling the android.animation.Animator.AnimatorListener#onAnimationEnd(Animator) method on its listeners.
			 */
			public end(): void;
			/**
			 * The amount of time, in milliseconds, to delay starting the animation after #start() is called.
			 */
			public getStartDelay(): any;
			/**
			 * The amount of time, in milliseconds, to delay starting the animation after #start() is called.
			 * @param startDelay The amount of the delay, in milliseconds
			 */
			public setStartDelay(startDelay: number): void;
			/**
			 * Sets the length of the animation.
			 * @param duration The length of the animation, in milliseconds.
			 */
			public setDuration(duration: number): android.animation.Animator;
			/**
			 * Gets the length of the animation.
			 */
			public getDuration(): any;
			/**
			 * The time interpolator used in calculating the elapsed fraction of this animation. The interpolator determines whether the animation runs with linear or non-linear motion, such as acceleration and deceleration. The default value is android.view.animation.AccelerateDecelerateInterpolator
			 * @param value the interpolator to be used by this animation
			 */
			public setInterpolator(value: android.animation.ITimeInterpolator): void;
			/**
			 * Returns whether this Animator is currently running (having been started and gone past any initial startDelay period and not yet ended).
			 */
			public isRunning(): boolean;
			/**
			 * Returns whether this Animator has been started and not yet ended. This state is a superset of the state of #isRunning(), because an Animator with a nonzero #getStartDelay() startDelay will return true for #isStarted() during the delay phase, whereas #isRunning() will return true only after the delay phase is complete.
			 */
			public isStarted(): boolean;
			/**
			 * Adds a listener to the set of listeners that are sent events through the life of an animation, such as start, repeat, and end.
			 * @param listener the listener to be added to the current set of listeners for this animation.
			 */
			public addListener(listener: android.animation.Animator.IAnimatorListener): void;
			/**
			 * Removes a listener from the set listening to this animation.
			 * @param listener the listener to be removed from the current set of listeners for this
			 */
			public removeListener(listener: android.animation.Animator.IAnimatorListener): void;
			/**
			 * Gets the set of android.animation.Animator.AnimatorListener objects that are currently listening for events on this <code>Animator</code> object.
			 */
			public getListeners(): java.util.ArrayList<android.animation.Animator.IAnimatorListener>;
			/**
			 * Removes all listeners from this object. This is equivalent to calling <code>getListeners()</code> followed by calling <code>clear()</code> on the returned list of listeners.
			 */
			public removeAllListeners(): void;
			public clone(): android.animation.Animator;
			/**
			 * This method tells the object to use appropriate information to extract starting values for the animation. For example, a AnimatorSet object will pass this call to its child objects to tell them to set up the values. A ObjectAnimator object will use the information it has about its target object and PropertyValuesHolder objects to get the start values for its properties. A ValueAnimator object will ignore the request since it does not have enough information (such as a target object) to gather these values.
			 */
			public setupStartValues(): void;
			/**
			 * This method tells the object to use appropriate information to extract ending values for the animation. For example, a AnimatorSet object will pass this call to its child objects to tell them to set up the values. A ObjectAnimator object will use the information it has about its target object and PropertyValuesHolder objects to get the start values for its properties. A ValueAnimator object will ignore the request since it does not have enough information (such as a target object) to gather these values.
			 */
			public setupEndValues(): void;
			/**
			 * Sets the target object whose property will be animated by this animation. Not all subclasses operate on target objects (for example, ValueAnimator, but this method is on the superclass for the convenience of dealing generically with those subclasses that do handle targets.
			 * @param target The object being animated
			 */
			public setTarget(target: any): void;
		}
		export module Animator {
			export class AnimatorListener implements android.animation.Animator.IAnimatorListener {
				constructor(implementation: android.animation.Animator.IAnimatorListener);
				/**
				 * @param animation The started animation.
				 */
				public onAnimationStart(animation: android.animation.Animator): void;
				/**
				 * @param animation The animation which reached its end.
				 */
				public onAnimationEnd(animation: android.animation.Animator): void;
				/**
				 * @param animation The animation which was canceled.
				 */
				public onAnimationCancel(animation: android.animation.Animator): void;
				/**
				 * @param animation The animation which was repeated.
				 */
				public onAnimationRepeat(animation: android.animation.Animator): void;
			}
			interface IAnimatorListener {
				/**
				 * @param animation The started animation.
				 */
				onAnimationStart(animation: android.animation.Animator): void;
				/**
				 * @param animation The animation which reached its end.
				 */
				onAnimationEnd(animation: android.animation.Animator): void;
				/**
				 * @param animation The animation which was canceled.
				 */
				onAnimationCancel(animation: android.animation.Animator): void;
				/**
				 * @param animation The animation which was repeated.
				 */
				onAnimationRepeat(animation: android.animation.Animator): void;
			}
		}
		/**
		 * A time interpolator defines the rate of change of an animation. This allows animations to have non-linear motion, such as acceleration and deceleration.
		 */
		interface ITimeInterpolator {
			/**
			 * Maps a value representing the elapsed fraction of an animation to a value that represents the interpolated fraction. This interpolated value is then multiplied by the change in value of an animation to derive the animated value at the current elapsed animation time.
			 * @param input A value between 0 and 1.0 indicating our current point
			 */
			getInterpolation(input: number): number;
		}
		/**
		 * Abstract animation thread. <p/> This does not actually start an animation, instead it fakes a looper that will play whatever animation is sending messages to its own Handler. <p/> Classes should implement #preAnimation() and #postAnimation(). <p/> If #preAnimation() does not start an animation somehow then the thread doesn't do anything.
		 */
		export class AnimationThread extends java.lang.Thread {
			static class: java.lang.Class<android.animation.AnimationThread>;
			public postAnimation(): void;
			public run(): void;
		}
		export module AnimationThread {
			export class MessageBundle extends java.lang.Object {
				static class: java.lang.Class<android.animation.AnimationThread.MessageBundle>;
				public compareTo(bundle: android.animation.AnimationThread.MessageBundle): number;
			}
		}
		/**
		 * This evaluator can be used to perform type interpolation between <code>int</code> values.
		 */
		export class IntEvaluator extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.animation.IntEvaluator>;
			/**
			 * This function returns the result of linearly interpolating the start and end values, with <code>fraction</code> representing the proportion between the start and end values. The calculation is a simple parametric calculation: <code>result = x0 + t * (v1 - v0)</code>, where <code>x0</code> is <code>startValue</code>, <code>x1</code> is <code>endValue</code>, and <code>t</code> is <code>fraction</code>.
			 * @param fraction The fraction from the starting to the ending values
			 * @param startValue The start value; should be of type <code>int</code> or
			 * @param endValue The end value; should be of type <code>int</code> or <code>Integer</code>
			 */
			public evaluate(fraction: number, startValue: java.lang.Integer, endValue: java.lang.Integer): java.lang.Integer;
		}
		/**
		 * This class holds information about a property and the values that that property should take on during an animation. PropertyValuesHolder objects can be used to create animations with ValueAnimator or ObjectAnimator that operate on several different properties in parallel.
		 */
		export class PropertyValuesHolder extends java.lang.Object implements java.lang.ICloneable {
			static class: java.lang.Class<android.animation.PropertyValuesHolder>;
			/**
			 * Constructs and returns a PropertyValuesHolder with a given property name and set of int values.
			 * @param propertyName The name of the property being animated.
			 * @param values The values that the named property will animate between.
			 */
			public static ofInt(propertyName: string, values: native.Array<number>): android.animation.PropertyValuesHolder;
			/**
			 * Constructs and returns a PropertyValuesHolder with a given property and set of int values.
			 * @param property The property being animated. Should not be null.
			 * @param values The values that the property will animate between.
			 */
			public static ofInt(property: android.util.Property<any, java.lang.Integer>, values: native.Array<number>): android.animation.PropertyValuesHolder;
			/**
			 * Constructs and returns a PropertyValuesHolder with a given property name and set of float values.
			 * @param propertyName The name of the property being animated.
			 * @param values The values that the named property will animate between.
			 */
			public static ofFloat(propertyName: string, values: native.Array<number>): android.animation.PropertyValuesHolder;
			/**
			 * Constructs and returns a PropertyValuesHolder with a given property and set of float values.
			 * @param property The property being animated. Should not be null.
			 * @param values The values that the property will animate between.
			 */
			public static ofFloat(property: android.util.Property<any, java.lang.Float>, values: native.Array<number>): android.animation.PropertyValuesHolder;
			/**
			 * Constructs and returns a PropertyValuesHolder with a given property name and set of Object values. This variant also takes a TypeEvaluator because the system cannot automatically interpolate between objects of unknown type.
			 * @param propertyName The name of the property being animated.
			 * @param evaluator A TypeEvaluator that will be called on each animation frame to
			 * @param values The values that the named property will animate between.
			 */
			public static ofObject(propertyName: string, evaluator: android.animation.ITypeEvaluator<any>, values: native.Array<any>): android.animation.PropertyValuesHolder;
			/**
			 * Constructs and returns a PropertyValuesHolder with a given property and set of Object values. This variant also takes a TypeEvaluator because the system cannot automatically interpolate between objects of unknown type.
			 * @param property The property being animated. Should not be null.
			 * @param evaluator A TypeEvaluator that will be called on each animation frame to
			 * @param values The values that the property will animate between.
			 */
			public static ofObject<V>(property: android.util.Property<any, any>, evaluator: android.animation.ITypeEvaluator<V>, values: native.Array<V>): android.animation.PropertyValuesHolder;
			/**
			 * Constructs and returns a PropertyValuesHolder object with the specified property name and set of values. These values can be of any type, but the type should be consistent so that an appropriate android.animation.TypeEvaluator can be found that matches the common type.
			 * @param propertyName The name of the property associated with this set of values. This
			 * @param values The set of values to animate between.
			 */
			public static ofKeyframe(propertyName: string, values: native.Array<android.animation.Keyframe>): android.animation.PropertyValuesHolder;
			/**
			 * Constructs and returns a PropertyValuesHolder object with the specified property and set of values. These values can be of any type, but the type should be consistent so that an appropriate android.animation.TypeEvaluator can be found that matches the common type.
			 * @param property The property associated with this set of values. Should not be null.
			 * @param values The set of values to animate between.
			 */
			public static ofKeyframe(property: android.util.Property<any, any>, values: native.Array<android.animation.Keyframe>): android.animation.PropertyValuesHolder;
			/**
			 * Set the animated values for this object to this set of ints. If there is only one value, it is assumed to be the end value of an animation, and an initial value will be derived, if possible, by calling a getter function on the object. Also, if any value is null, the value will be filled in when the animation starts in the same way. This mechanism of automatically getting null values only works if the PropertyValuesHolder object is used in conjunction ObjectAnimator, and with a getter function derived automatically from <code>propertyName</code>, since otherwise PropertyValuesHolder has no way of determining what the value should be.
			 * @param values One or more values that the animation will animate between.
			 */
			public setIntValues(values: native.Array<number>): void;
			/**
			 * Set the animated values for this object to this set of floats. If there is only one value, it is assumed to be the end value of an animation, and an initial value will be derived, if possible, by calling a getter function on the object. Also, if any value is null, the value will be filled in when the animation starts in the same way. This mechanism of automatically getting null values only works if the PropertyValuesHolder object is used in conjunction ObjectAnimator, and with a getter function derived automatically from <code>propertyName</code>, since otherwise PropertyValuesHolder has no way of determining what the value should be.
			 * @param values One or more values that the animation will animate between.
			 */
			public setFloatValues(values: native.Array<number>): void;
			/**
			 * Set the animated values for this object to this set of Keyframes.
			 * @param values One or more values that the animation will animate between.
			 */
			public setKeyframes(values: native.Array<android.animation.Keyframe>): void;
			/**
			 * Set the animated values for this object to this set of Objects. If there is only one value, it is assumed to be the end value of an animation, and an initial value will be derived, if possible, by calling a getter function on the object. Also, if any value is null, the value will be filled in when the animation starts in the same way. This mechanism of automatically getting null values only works if the PropertyValuesHolder object is used in conjunction ObjectAnimator, and with a getter function derived automatically from <code>propertyName</code>, since otherwise PropertyValuesHolder has no way of determining what the value should be. 
			 * @param values One or more values that the animation will animate between.
			 */
			public setObjectValues(values: native.Array<any>): void;
			/**
			 * Utility function to get the setter from targetClass
			 * @param targetClass The Class on which the requested method should exist.
			 */
			setupSetter(targetClass: java.lang.Class<any>): void;
			/**
			 * Internal function (called from ObjectAnimator) to set up the setter and getter prior to running the animation. If the setter has not been manually set for this object, it will be derived automatically given the property name, target object, and types of values supplied. If no getter has been set, it will be supplied iff any of the supplied values was null. If there is a null value, then the getter (supplied or derived) will be called to set those null values to the current value of the property on the target object.
			 * @param target The object on which the setter (and possibly getter) exist.
			 */
			setupSetterAndGetter(target: any): void;
			/**
			 * This function is called by ObjectAnimator when setting the start values for an animation. The start values are set according to the current values in the target object. The property whose value is extracted is whatever is specified by the propertyName of this PropertyValuesHolder object.
			 * @param target The object which holds the start values that should be set.
			 */
			setupStartValue(target: any): void;
			/**
			 * This function is called by ObjectAnimator when setting the end values for an animation. The end values are set according to the current values in the target object. The property whose value is extracted is whatever is specified by the propertyName of this PropertyValuesHolder object.
			 * @param target The object which holds the start values that should be set.
			 */
			setupEndValue(target: any): void;
			public clone(): android.animation.PropertyValuesHolder;
			/**
			 * Internal function to set the value on the target object, using the setter set up earlier on this PropertyValuesHolder object. This function is called by ObjectAnimator to handle turning the value calculated by ValueAnimator into a value set on the object according to the name of the property.
			 * @param target The target object on which the value is set
			 */
			setAnimatedValue(target: any): void;
			/**
			 * Internal function, called by ValueAnimator, to set up the TypeEvaluator that will be used to calculate animated values.
			 */
			init(): void;
			/**
			 * The TypeEvaluator will the automatically determined based on the type of values supplied to PropertyValuesHolder. The evaluator can be manually set, however, if so desired. This may be important in cases where either the type of the values supplied do not match the way that they should be interpolated between, or if the values are of a custom type or one not currently understood by the animation system. Currently, only values of type float and int (and their Object equivalents: Float and Integer) are correctly interpolated; all other types require setting a TypeEvaluator.
			 * @param evaluator 
			 */
			public setEvaluator(evaluator: android.animation.ITypeEvaluator<any>): void;
			/**
			 * Function used to calculate the value according to the evaluator set up for this PropertyValuesHolder object. This function is called by ValueAnimator.animateValue().
			 * @param fraction The elapsed, interpolated fraction of the animation.
			 */
			calculateValue(fraction: number): void;
			/**
			 * Sets the name of the property that will be animated. This name is used to derive a setter function that will be called to set animated values. For example, a property name of <code>foo</code> will result in a call to the function <code>setFoo()</code> on the target object. If either <code>valueFrom</code> or <code>valueTo</code> is null, then a getter function will also be derived and called.
			 * @param propertyName The name of the property being animated.
			 */
			public setPropertyName(propertyName: string): void;
			/**
			 * Sets the property that will be animated.
			 * @param property The property being animated.
			 */
			public setProperty(property: android.util.Property<any, any>): void;
			/**
			 * Gets the name of the property that will be animated. This name will be used to derive a setter function that will be called to set animated values. For example, a property name of <code>foo</code> will result in a call to the function <code>setFoo()</code> on the target object. If either <code>valueFrom</code> or <code>valueTo</code> is null, then a getter function will also be derived and called.
			 */
			public getPropertyName(): string;
			/**
			 * Internal function, called by ValueAnimator and ObjectAnimator, to retrieve the value most recently calculated in calculateValue().
			 */
			getAnimatedValue(): any;
			public toString(): string;
			/**
			 * Utility method to derive a setter/getter method name from a property name, where the prefix is typically "set" or "get" and the first letter of the property name is capitalized.
			 * @param prefix The precursor to the method name, before the property name begins, typically
			 * @param propertyName The name of the property that represents the bulk of the method name
			 */
			static getMethodName(prefix: string, propertyName: string): string;
		}
		export module PropertyValuesHolder {
			export class IntPropertyValuesHolder extends android.animation.PropertyValuesHolder {
				constructor(propertyName: string, keyframeSet: android.animation.IntKeyframeSet);
				constructor(property: android.util.Property<any, any>, keyframeSet: android.animation.IntKeyframeSet);
				constructor(propertyName: string, values: native.Array<number>);
				constructor(property: android.util.Property<any, any>, values: native.Array<number>);
				static class: java.lang.Class<android.animation.PropertyValuesHolder.IntPropertyValuesHolder>;
				public setIntValues(values: native.Array<number>): void;
				calculateValue(fraction: number): void;
				getAnimatedValue(): any;
				public clone(): android.animation.PropertyValuesHolder.IntPropertyValuesHolder;
				/**
				 * Internal function to set the value on the target object, using the setter set up earlier on this PropertyValuesHolder object. This function is called by ObjectAnimator to handle turning the value calculated by ValueAnimator into a value set on the object according to the name of the property.
				 * @param target The target object on which the value is set
				 */
				setAnimatedValue(target: any): void;
				setupSetter(targetClass: java.lang.Class<any>): void;
			}
			export class FloatPropertyValuesHolder extends android.animation.PropertyValuesHolder {
				constructor(propertyName: string, keyframeSet: android.animation.FloatKeyframeSet);
				constructor(property: android.util.Property<any, any>, keyframeSet: android.animation.FloatKeyframeSet);
				constructor(propertyName: string, values: native.Array<number>);
				constructor(property: android.util.Property<any, any>, values: native.Array<number>);
				static class: java.lang.Class<android.animation.PropertyValuesHolder.FloatPropertyValuesHolder>;
				public setFloatValues(values: native.Array<number>): void;
				calculateValue(fraction: number): void;
				getAnimatedValue(): any;
				public clone(): android.animation.PropertyValuesHolder.FloatPropertyValuesHolder;
				/**
				 * Internal function to set the value on the target object, using the setter set up earlier on this PropertyValuesHolder object. This function is called by ObjectAnimator to handle turning the value calculated by ValueAnimator into a value set on the object according to the name of the property.
				 * @param target The target object on which the value is set
				 */
				setAnimatedValue(target: any): void;
				setupSetter(targetClass: java.lang.Class<any>): void;
			}
		}
		/**
		 * Tests for the various lifecycle events of Animators. This abstract class is subclassed by concrete implementations that provide the actual Animator objects being tested. All of the testing mechanisms are in this class; the subclasses are only responsible for providing the mAnimator object.
		 */
		export class ViewPropertyAnimatorTest extends android.test.ActivityInstrumentationTestCase2<android.animation.BasicAnimatorActivity> {
			constructor();
			static class: java.lang.Class<android.animation.ViewPropertyAnimatorTest>;
			/**
			 * Timeout length, based on when the animation should reasonably be complete.
			 */
			protected getTimeout(): any;
			/**
			 * Sets up the fields used by each test. Subclasses must override this method to create the protected mAnimator object used in all tests. Overrides must create that animator and then call super.setup(), where further properties are set on that animator. Exception
			 */
			public setUp(): void;
			/**
			 * Verify that calling cancel on an unstarted animator does nothing.
			 */
			public testCancel(): void;
			/**
			 * Verify that calling cancel on a started animator does the right thing.
			 */
			public testStartCancel(): void;
			/**
			 * Same as testStartCancel, but with a startDelayed animator
			 */
			public testStartDelayedCancel(): void;
			/**
			 * Verify that canceling an animator that is playing does the right thing.
			 */
			public testPlayingCancel(): void;
			/**
			 * Same as testPlayingCancel, but with a startDelayed animator
			 */
			public testPlayingDelayedCancel(): void;
			/**
			 * Same as testPlayingDelayedCancel, but cancel during the startDelay period
			 */
			public testPlayingDelayedCancelMidDelay(): void;
			/**
			 * Verifies that canceling a started animation after it has already been canceled does nothing.
			 */
			public testStartDoubleCancel(): void;
			/**
			 * Same as testStartDoubleCancel, but with a startDelayed animator
			 */
			public testStartDelayedDoubleCancel(): void;
		}
		export module ViewPropertyAnimatorTest {
			/**
			 * Cancels the given animator. Used to delay cancellation until some later time (after the animator has started playing).
			 */
			export class Canceler extends java.lang.Object implements java.lang.IRunnable {
				constructor(anim: android.view.ViewPropertyAnimator, future: android.animation.FutureWaiter);
				static class: java.lang.Class<android.animation.ViewPropertyAnimatorTest.Canceler>;
				public run(): void;
			}
			/**
			 * Releases the given Future object when the listener's end() event is called. Specifically, it releases it after some further delay, to give the test time to do other things right after an animation ends.
			 */
			export class FutureReleaseListener extends android.animation.AnimatorListenerAdapter {
				constructor(future: android.animation.FutureWaiter);
				/**
				 * Variant constructor that auto-releases the FutureWaiter after the specified timeout.
				 * @param future 
				 * @param timeout 
				 */
				constructor(future: android.animation.FutureWaiter, timeout: number);
				static class: java.lang.Class<android.animation.ViewPropertyAnimatorTest.FutureReleaseListener>;
				public onAnimationEnd(animation: android.animation.Animator): void;
			}
		}
	}
	export module accessibilityservice {
		/**
		 * An accessibility service runs in the background and receives callbacks by the system when AccessibilityEvents are fired. Such events denote some state transition in the user interface, for example, the focus has changed, a button has been clicked, etc. Such a service can optionally request the capability for querying the content of the active window. Development of an accessibility service requires extending this class and implementing its abstract methods.
		 */
		export class AccessibilityService extends android.app.Service {
			constructor();
			/**
			 * The user has performed a swipe up gesture on the touch screen.
			 */
			static GESTURE_SWIPE_UP: number;
			/**
			 * The user has performed a swipe down gesture on the touch screen.
			 */
			static GESTURE_SWIPE_DOWN: number;
			/**
			 * The user has performed a swipe left gesture on the touch screen.
			 */
			static GESTURE_SWIPE_LEFT: number;
			/**
			 * The user has performed a swipe right gesture on the touch screen.
			 */
			static GESTURE_SWIPE_RIGHT: number;
			/**
			 * The user has performed a swipe left and right gesture on the touch screen.
			 */
			static GESTURE_SWIPE_LEFT_AND_RIGHT: number;
			/**
			 * The user has performed a swipe right and left gesture on the touch screen.
			 */
			static GESTURE_SWIPE_RIGHT_AND_LEFT: number;
			/**
			 * The user has performed a swipe up and down gesture on the touch screen.
			 */
			static GESTURE_SWIPE_UP_AND_DOWN: number;
			/**
			 * The user has performed a swipe down and up gesture on the touch screen.
			 */
			static GESTURE_SWIPE_DOWN_AND_UP: number;
			/**
			 * The user has performed a left and up gesture on the touch screen.
			 */
			static GESTURE_SWIPE_LEFT_AND_UP: number;
			/**
			 * The user has performed a left and down gesture on the touch screen.
			 */
			static GESTURE_SWIPE_LEFT_AND_DOWN: number;
			/**
			 * The user has performed a right and up gesture on the touch screen.
			 */
			static GESTURE_SWIPE_RIGHT_AND_UP: number;
			/**
			 * The user has performed a right and down gesture on the touch screen.
			 */
			static GESTURE_SWIPE_RIGHT_AND_DOWN: number;
			/**
			 * The user has performed an up and left gesture on the touch screen.
			 */
			static GESTURE_SWIPE_UP_AND_LEFT: number;
			/**
			 * The user has performed an up and right gesture on the touch screen.
			 */
			static GESTURE_SWIPE_UP_AND_RIGHT: number;
			/**
			 * The user has performed an down and left gesture on the touch screen.
			 */
			static GESTURE_SWIPE_DOWN_AND_LEFT: number;
			/**
			 * The user has performed an down and right gesture on the touch screen.
			 */
			static GESTURE_SWIPE_DOWN_AND_RIGHT: number;
			/**
			 * The Intent that must be declared as handled by the service.
			 */
			static SERVICE_INTERFACE: string;
			/**
			 * Name under which an AccessibilityService component publishes information about itself. This meta-data must reference an XML resource containing an <code>&lt;android.R.styleable#AccessibilityService accessibility-service&gt;</code> tag. This is a a sample XML file configuring an accessibility service: <pre> &lt;accessibility-service android:accessibilityEventTypes="typeViewClicked|typeViewFocused" android:packageNames="foo.bar, foo.baz" android:accessibilityFeedbackType="feedbackSpoken" android:notificationTimeout="100" android:accessibilityFlags="flagDefault" android:settingsActivity="foo.bar.TestBackActivity" android:canRetrieveWindowContent="true" . . . /&gt;</pre>
			 */
			static SERVICE_META_DATA: string;
			/**
			 * Action to go back.
			 */
			static GLOBAL_ACTION_BACK: number;
			/**
			 * Action to go home.
			 */
			static GLOBAL_ACTION_HOME: number;
			/**
			 * Action to open the recent apps.
			 */
			static GLOBAL_ACTION_RECENTS: number;
			/**
			 * Action to open the notifications.
			 */
			static GLOBAL_ACTION_NOTIFICATIONS: number;
			/**
			 * Action to open the quick settings.
			 */
			static GLOBAL_ACTION_QUICK_SETTINGS: number;
			static class: java.lang.Class<android.accessibilityservice.AccessibilityService>;
			/**
			 * Callback for android.view.accessibility.AccessibilityEvents.
			 * @param event An event.
			 */
			public onAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
			/**
			 * Callback for interrupting the accessibility feedback.
			 */
			public onInterrupt(): void;
			/**
			 * This method is a part of the AccessibilityService lifecycle and is called after the system has successfully bound to the service. If is convenient to use this method for setting the AccessibilityServiceInfo.
			 */
			protected onServiceConnected(): void;
			/**
			 * Called by the system when the user performs a specific gesture on the touch screen.
			 * @param gestureId The unique id of the performed gesture.
			 */
			protected onGesture(gestureId: number): boolean;
			/**
			 * Gets the root node in the currently active window if this service can retrieve window content.
			 */
			public getRootInActiveWindow(): android.view.accessibility.AccessibilityNodeInfo;
			/**
			 * Performs a global action. Such an action can be performed at any moment regardless of the current application or user location in that application. For example going back, going home, opening recents, etc.
			 * @param action The action to perform.
			 */
			public performGlobalAction(action: number): boolean;
			/**
			 * Gets the an AccessibilityServiceInfo describing this AccessibilityService. This method is useful if one wants to change some of the dynamically configurable properties at runtime.
			 */
			public getServiceInfo(): android.accessibilityservice.AccessibilityServiceInfo;
			/**
			 * Sets the AccessibilityServiceInfo that describes this service.
			 * @param info The info.
			 */
			public setServiceInfo(info: android.accessibilityservice.AccessibilityServiceInfo): void;
			/**
			 * Implement to return the implementation of the internal accessibility service interface.
			 */
			public onBind(intent: android.content.Intent): android.os.IIBinder;
		}
		export module AccessibilityService {
			/**
			 * Implements the internal IAccessibilityServiceClient interface to convert incoming calls to it back to calls on an AccessibilityService.
			 */
			export class IAccessibilityServiceClientWrapper {
				constructor(context: android.content.Context, looper: android.os.Looper, callback: android.accessibilityservice.AccessibilityService.ICallbacks);
				static class: java.lang.Class<android.accessibilityservice.AccessibilityService.IAccessibilityServiceClientWrapper>;
				public onInterrupt(): void;
				public onAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
				public onGesture(gestureId: number): void;
				public executeMessage(message: android.os.Message): void;
			}
			export class Callbacks implements android.accessibilityservice.AccessibilityService.ICallbacks {
				constructor(implementation: android.accessibilityservice.AccessibilityService.ICallbacks);
				public onAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
				public onInterrupt(): void;
				public onServiceConnected(): void;
				public onSetConnectionId(connectionId: number): void;
				public onGesture(gestureId: number): boolean;
			}
			interface ICallbacks {
				onAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
				onInterrupt(): void;
				onServiceConnected(): void;
				onSetConnectionId(connectionId: number): void;
				onGesture(gestureId: number): boolean;
			}
		}
		/**
		 * This class describes an AccessibilityService. The system notifies an AccessibilityService for android.view.accessibility.AccessibilityEvents according to the information encapsulated in this class.
		 */
		export class AccessibilityServiceInfo extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Creates a new instance.
			 */
			constructor();
			/**
			 * Denotes spoken feedback.
			 */
			static FEEDBACK_SPOKEN: number;
			/**
			 * Denotes haptic feedback.
			 */
			static FEEDBACK_HAPTIC: number;
			/**
			 * Denotes audible (not spoken) feedback.
			 */
			static FEEDBACK_AUDIBLE: number;
			/**
			 * Denotes visual feedback.
			 */
			static FEEDBACK_VISUAL: number;
			/**
			 * Denotes generic feedback.
			 */
			static FEEDBACK_GENERIC: number;
			/**
			 * Denotes braille feedback.
			 */
			static FEEDBACK_BRAILLE: number;
			/**
			 * Mask for all feedback types.
			 */
			static FEEDBACK_ALL_MASK: number;
			/**
			 * If an AccessibilityService is the default for a given type. Default service is invoked only if no package specific one exists. In case of more than one package specific service only the earlier registered is notified.
			 */
			static DEFAULT: number;
			/**
			 * If this flag is set the system will regard views that are not important for accessibility in addition to the ones that are important for accessibility. That is, views that are marked as not important for accessibility via View#IMPORTANT_FOR_ACCESSIBILITY_NO and views that are marked as potentially important for accessibility via View#IMPORTANT_FOR_ACCESSIBILITY_AUTO for which the system has determined that are not important for accessibility, are both reported while querying the window content and also the accessibility service will receive accessibility events from them.
			 */
			static FLAG_INCLUDE_NOT_IMPORTANT_VIEWS: number;
			/**
			 * This flag requests that the system gets into touch exploration mode. In this mode a single finger moving on the screen behaves as a mouse pointer hovering over the user interface. The system will also detect certain gestures performed on the touch screen and notify this service. The system will enable touch exploration mode if there is at least one accessibility service that has this flag set. Hence, clearing this flag does not guarantee that the device will not be in touch exploration mode since there may be another enabled service that requested it.
			 */
			static FLAG_REQUEST_TOUCH_EXPLORATION_MODE: number;
			/**
			 * The event types an AccessibilityService is interested in.
			 */
			eventTypes: number;
			/**
			 * The package names an AccessibilityService is interested in. Setting to <code>null</code> is equivalent to all packages.
			 */
			packageNames: native.Array<string>;
			/**
			 * The feedback type an AccessibilityService provides.
			 */
			feedbackType: number;
			/**
			 * The timeout after the most recent event of a given type before an AccessibilityService is notified.
			 */
			notificationTimeout: number;
			/**
			 * This field represents a set of flags used for configuring an AccessibilityService.
			 */
			flags: number;
			/**
			 *  Parcelable.Creator
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.accessibilityservice.AccessibilityServiceInfo>;
			static class: java.lang.Class<android.accessibilityservice.AccessibilityServiceInfo>;
			/**
			 * The accessibility service id.
			 */
			public getId(): string;
			/**
			 * The service ResolveInfo.
			 */
			public getResolveInfo(): android.content.pm.ResolveInfo;
			/**
			 * The settings activity name.
			 */
			public getSettingsActivityName(): string;
			/**
			 * Whether this service can retrieve the current window's content.
			 */
			public getCanRetrieveWindowContent(): boolean;
			/**
			 * Gets the non-localized description of the accessibility service.
			 */
			public getDescription(): string;
			/**
			 * The localized description of the accessibility service.
			 */
			public loadDescription(packageManager: android.content.pm.PackageManager): string;
			/**
			 * 
			 */
			public describeContents(): number;
			public writeToParcel(parcel: android.os.Parcel, flagz: number): void;
			public toString(): string;
			/**
			 * Returns the string representation of a feedback type. For example, #FEEDBACK_SPOKEN is represented by the string FEEDBACK_SPOKEN.
			 * @param feedbackType The feedback type.
			 */
			public static feedbackTypeToString(feedbackType: number): string;
			/**
			 * Returns the string representation of a flag. For example, #DEFAULT is represented by the string DEFAULT.
			 * @param flag The flag.
			 */
			public static flagToString(flag: number): string;
		}
		/**
		 * Activity for testing the accessibility APIs for "interrogation" of the screen content. These APIs allow exploring the screen and requesting an action to be performed on a given view from an AccessiiblityService.
		 */
		export class InterrogationActivityTest extends android.test.ActivityInstrumentationTestCase2<android.accessibilityservice.InterrogationActivity> {
			constructor();
			static class: java.lang.Class<android.accessibilityservice.InterrogationActivityTest>;
			public setUp(): void;
			public tearDown(): void;
			public testFindAccessibilityNodeInfoByViewId(): void;
			public testFindAccessibilityNodeInfoByViewText(): void;
			public testFindAccessibilityNodeInfoByViewTextContentDescription(): void;
			public testTraverseAllViews(): void;
			public testPerformAccessibilityActionFocus(): void;
			public testPerformAccessibilityActionClearFocus(): void;
			public testPerformAccessibilityActionSelect(): void;
			public testPerformAccessibilityActionClearSelection(): void;
			public testAccessibilityEventGetSource(): void;
			public testObjectContract(): void;
			public testGetRootAccessibilityNodeInfoInActiveWindow(): void;
		}
		/**
		 * Activity for testing the accessibility APIs for "interrogation" of the screen content. These APIs allow exploring the screen and requesting an action to be performed on a given view from an AccessiiblityService.
		 */
		export class InterrogationActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.accessibilityservice.InterrogationActivity>;
			public onCreate(savedInstanceState: android.os.Bundle): void;
		}
	}
	export module core {
		/**
		 * Tests InetAddr class by checking methods to resolve domains to IP addresses and by checking if the class returns correct addresses for local host address and host name.
		 */
		export class InetAddrTest {
			constructor();
			static class: java.lang.Class<android.core.InetAddrTest>;
			public testInetAddr(): void;
		}
		export class JniLibTest {
			constructor();
			static class: java.lang.Class<android.core.JniLibTest>;
			protected setUp(): void;
			public testNativeCall(): void;
		}
		/**
		 * Implements EventHandler and provides test functionality to validate responses to requests from the test server
		 */
		export class TestEventHandler extends java.lang.Object {
			constructor();
			static syncObj: any;
			static TEST_REQUEST_SENT: number;
			static TEST_STATUS: number;
			static TEST_HEADERS: number;
			static TEST_LOCATION_CHANGED: number;
			static TEST_DATA: number;
			static TEST_ENDDATA: number;
			static TEST_ERROR: number;
			static TEST_SSL_CERTIFICATE_ERROR: number;
			static TEST_NUM_EXPECTS: number;
			static class: java.lang.Class<android.core.TestEventHandler>;
			TestHeader: {
	new (n: string, v: string): android.core.TestEventHandler.TestHeader;
};
			/**
			 * Implementation of EventHandler method called when a request has been sent. If the test is waiting for this call, it will be signalled, otherwise this method will trigger the response to be read automatically.
			 */
			public requestSent(): void;
			/**
			 * Implements the EventHandler status method called when a server status response is received.
			 * @param major_version The HTTP major version
			 * @param minor_version The HTTP minor version
			 * @param code The status code
			 * @param reason_phrase A reason phrase passed to us by the server
			 */
			public status(major_version: number, minor_version: number, code: number, reason_phrase: string): void;
			public evaluateHeader(h: android.core.TestEventHandler.TestHeader, value: string): boolean;
			/**
			 * Implements the EventHandler locationChanged method called when a server sends a redirect message
			 * @param newLocation The URL to the new server
			 * @param permanent Indicator of whether this is a permanent change
			 */
			public locationChanged(newLocation: string, permanent: boolean): void;
			/**
			 * Implements the EventHandler data method called when a server sends content data
			 * @param data The byte array content
			 * @param len The length of the data
			 */
			public data(data: native.Array<number>, len: number): void;
			/**
			 * Implements the EventHandler endData method called to indicate completion or a request
			 */
			public endData(): void;
			/**
			 * Implements the EventHandler certificate method called every time a resource is loaded via a secure connection
			 */
			public certificate(certificate: android.net.http.SslCertificate): void;
			/**
			 * Implements the EventHandler error method called when a server sends header fields
			 * @param id Status code of the error
			 * @param description Brief description of the error
			 */
			public error(id: number, description: string): void;
			/**
			 * SSL certificate error callback. Handles SSL error(s) on the way up to the user.
			 */
			public handleSslErrorRequest(error: android.net.http.SslError): boolean;
			/**
			 * Use the low level net runner with no delayed response
			 * @param runner The LowLevelNetRunner object
			 */
			public setNetRunner(runner: android.core.LowLevelNetRunner): void;
			/**
			 * Use the low level net runner and specify if the response should be delayed
			 * @param runner The LowLevelNetRunner object
			 * @param delayedResponse Set to true is you will use the
			 */
			public setNetRunner(runner: android.core.LowLevelNetRunner, delayedResponse: boolean): void;
			/**
			 * Enable this listeners Request object to read server responses. This should only be used in conjunction with setDelayResponse(true)
			 */
			public waitForRequestResponse(): void;
			/**
			 * Enable this listeners Request object to read server responses. This should only be used in conjunction with setDelayResponse(true)
			 */
			public waitForRequestSent(): void;
			public expectRequestSent(): void;
			public expectNoRequestSent(): void;
			public expectStatus(): void;
			public expectNoStatus(): void;
			public expectStatus(major: number, minor: number, code: number): void;
			public expectStatus(code: number): void;
			public expectHeaders(): void;
			public expectNoHeaders(): void;
			public expectHeaderAdd(name: string): void;
			public expectHeaderAdd(name: string, value: string): void;
			public expectLocationChanged(): void;
			public expectNoLocationChanged(): void;
			public expectLocationChanged(newLocation: string): void;
			public expectLocationChanged(newLocation: string, permanent: boolean): void;
			public expectData(): void;
			public expectNoData(): void;
			public expectData(len: number): void;
			public expectData(data: native.Array<number>, len: number): void;
			public expectEndData(): void;
			public expectNoEndData(): void;
			public expectError(): void;
			public expectNoError(): void;
			public expectError(errorId: number): void;
			public expectSSLCertificateError(): void;
			public expectNoSSLCertificateError(): void;
			public expectSSLCertificateError(errors: number): void;
			public expectSSLCertificateError(certificate: android.net.http.SslCertificate): void;
			/**
			 * Test to see if current expectations match recieved information
			 */
			public expectPassed(): boolean;
			/**
			 * Return message indicating expectation failures
			 */
			public getFailureMessage(): string;
			/**
			 * Reset all expectation values for re-use
			 */
			public resetExpects(): void;
			/**
			 * Detach the RequestHandle
			 */
			public detachRequestHandle(): void;
		}
		export module TestEventHandler {
			export class TestHeader extends java.lang.Object {
				name: string;
				value: string;
				static class: java.lang.Class<android.core.TestEventHandler.TestHeader>;
			}
		}
		export class HttpConstants implements android.core.IHttpConstants {
			constructor(implementation: android.core.IHttpConstants);
			/**
			 * 2XX: generally "OK"
			 */
			static HTTP_OK: number;
			static HTTP_CREATED: number;
			static HTTP_ACCEPTED: number;
			static HTTP_NOT_AUTHORITATIVE: number;
			static HTTP_NO_CONTENT: number;
			static HTTP_RESET: number;
			static HTTP_PARTIAL: number;
			/**
			 * 3XX: relocation/redirect
			 */
			static HTTP_MULT_CHOICE: number;
			static HTTP_MOVED_PERM: number;
			static HTTP_MOVED_TEMP: number;
			static HTTP_SEE_OTHER: number;
			static HTTP_NOT_MODIFIED: number;
			static HTTP_USE_PROXY: number;
			/**
			 * 4XX: client error
			 */
			static HTTP_BAD_REQUEST: number;
			static HTTP_UNAUTHORIZED: number;
			static HTTP_PAYMENT_REQUIRED: number;
			static HTTP_FORBIDDEN: number;
			static HTTP_NOT_FOUND: number;
			static HTTP_BAD_METHOD: number;
			static HTTP_NOT_ACCEPTABLE: number;
			static HTTP_PROXY_AUTH: number;
			static HTTP_CLIENT_TIMEOUT: number;
			static HTTP_CONFLICT: number;
			static HTTP_GONE: number;
			static HTTP_LENGTH_REQUIRED: number;
			static HTTP_PRECON_FAILED: number;
			static HTTP_ENTITY_TOO_LARGE: number;
			static HTTP_REQ_TOO_LONG: number;
			static HTTP_UNSUPPORTED_TYPE: number;
			/**
			 * 5XX: server error
			 */
			static HTTP_SERVER_ERROR: number;
			static HTTP_INTERNAL_ERROR: number;
			static HTTP_BAD_GATEWAY: number;
			static HTTP_UNAVAILABLE: number;
			static HTTP_GATEWAY_TIMEOUT: number;
			static HTTP_VERSION: number;
			/**
			 * Method IDs
			 */
			static UNKNOWN_METHOD: number;
			static GET_METHOD: number;
			static HEAD_METHOD: number;
			static POST_METHOD: number;
			static requestHeaders: native.Array<string>;
			static REQ_UNKNOWN: number;
			static REQ_CACHE_CONTROL: number;
			static REQ_CONNECTION: number;
			static REQ_DATE: number;
			static REQ_PRAGMA: number;
			static REQ_TRAILER: number;
			static REQ_TRANSFER_ENCODING: number;
			static REQ_UPGRADE: number;
			static REQ_VIA: number;
			static REQ_WARNING: number;
			static REQ_ACCEPT: number;
			static REQ_ACCEPT_CHARSET: number;
			static REQ_ACCEPT_ENCODING: number;
			static REQ_ACCEPT_LANGUAGE: number;
			static REQ_AUTHORIZATION: number;
			static REQ_EXPECT: number;
			static REQ_FROM: number;
			static REQ_HOST: number;
			static REQ_IF_MATCH: number;
			static REQ_IF_MODIFIED_SINCE: number;
			static REQ_IF_NONE_MATCH: number;
			static REQ_IF_RANGE: number;
			static REQ_IF_UNMODIFIED_SINCE: number;
			static REQ_MAX_FORWARDS: number;
			static REQ_PROXY_AUTHENTICATION: number;
			static REQ_RANGE: number;
			static REQ_REFERER: number;
			static REQ_TE: number;
			static REQ_USER_AGENT: number;
			static REQ_KEEP_ALIVE: number;
			static REQ_ALLOW: number;
			static REQ_CONTENT_ENCODING: number;
			static REQ_CONTENT_LANGUAGE: number;
			static REQ_CONTENT_LENGTH: number;
			static REQ_CONTENT_LOCATION: number;
			static REQ_CONTENT_MD5: number;
			static REQ_CONTENT_RANGE: number;
			static REQ_CONTENT_TYPE: number;
			static REQ_EXPIRES: number;
			static REQ_LAST_MODIFIED: number;
			static REQ_LOCATION: number;
			static REQ_SERVER: number;
		}
		/**
		 * Regression tests for various socket related problems. And a few general socket tests.
		 */
		export class SocketTest {
			constructor();
			static class: java.lang.Class<android.core.SocketTest>;
			public testSocketSimple(): void;
			public testWildcardAddress(): void;
			public testServerSocketClose(): void;
			public testSetReuseAddress(): void;
			public testTimeoutException(): void;
			public testNativeSocketChannelOpen(): void;
			/**
			 * Regression test for 1062928: Dotted IP addresses (e.g., 192.168.100.1) appear to be broken in the M5 SDK. Tests that a connection given a ip-addressv4 such as 192.168.100.100 does not fail - sdk m5 seems only to accept dns names instead of ip numbers. ip 209.85.129.147 (one address of www.google.com) on port 80 (http) is used to test the connection.
			 */
			public disable_testConnectWithIP4IPAddr(): void;
			public disable_testSocketConnectClose(): void;
		}
		/**
		 * Represents test data used by the Request API tests
		 */
		export class TestWebData extends java.lang.Object {
			static test1: native.Array<number>;
			static test2: native.Array<number>;
			static postContent: string;
			static tests: native.Array<native.Array<number>>;
			/**
			 * List of static test cases for use with test server
			 */
			static testParams: native.Array<android.core.TestWebData>;
			/**
			 * List of response strings for use by the test server
			 */
			static testServerResponse: native.Array<string>;
			static REDIRECT_301: number;
			static REDIRECT_302: number;
			static REDIRECT_303: number;
			static REDIRECT_307: number;
			testLength: number;
			testLastModified: number;
			testName: string;
			testType: string;
			testDir: boolean;
			static class: java.lang.Class<android.core.TestWebData>;
		}
		/**
		 * Container class for all RequestAPI tests
		 */
		export class RequestAPITest extends android.test.AndroidTestCase implements android.core.IHttpConstants {
			constructor();
			static syncObj: any;
			static class: java.lang.Class<android.core.RequestAPITest>;
			protected setUp(): void;
			protected tearDown(): void;
			public verifyFailure(headers: java.util.IMap<string, string>): void;
			public testRequestAddNullHeader(): void;
			public testRequestAddNullValue(): void;
			public testRequestAddEmptyValue(): void;
			public verifySuccess(headers: java.util.IMap<string, string>): void;
			public testRequestAddHeader(): void;
			public testRequestAddMultiHeader(): void;
			public testRequestAddSameHeader(): void;
			public testRequestAddNullHeaders(): void;
			public testGet(): void;
			public testReuse(): void;
			public testHead(): void;
			public testChunked(): void;
			public verifyRedirect(statusCode: number, testName: string): void;
			public testRedirect301(): void;
			public testRedirect302(): void;
			public testRedirect303(): void;
			public testRedirect307(): void;
			public testGetAndHead(): void;
			public testPost(): void;
			public testPostWithData(): void;
		}
		export class TestHttpClient extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.core.TestHttpClient>;
		}
		/**
		 * Proxy tests
		 */
		export class ProxyTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.core.ProxyTest>;
			protected setUp(): void;
			protected tearDown(): void;
			/**
			 * Bad url parameter should not cause any exception.
			 */
			public testProxyGetPreferredHttpHost_UrlBad(): void;
			/**
			 * Proxy (if available) should be returned when url parameter is not localhost.
			 */
			public testProxyGetPreferredHttpHost_UrlNotlLocalhost(): void;
			/**
			 * No proxy should be returned when url parameter is localhost.
			 */
			public testProxyGetPreferredHttpHost_UrlLocalhost(): void;
		}
		/**
		 * SSL integration tests that hit real servers.
		 */
		export class SSLSocketTest {
			constructor();
			static class: java.lang.Class<android.core.SSLSocketTest>;
			TestClient: {
	new (port: number, provideKeys: boolean): android.core.SSLSocketTest.TestClient;
};
			TestServer: {
	new (port: number, provideKeys: boolean, clientAuth: number): android.core.SSLSocketTest.TestServer;
};
			/**
			 * Does a single request for each of the hosts. Consumes the response.
			 */
			public testSimple(): void;
			/**
			 * Does repeated requests for each of the hosts, with the connection being closed in between.
			 */
			public testRepeatedClose(): void;
			/**
			 * Does repeated requests for each of the hosts, with the connection being kept alive in between.
			 */
			public testRepeatedKeepAlive(): void;
			/**
			 * Does repeated requests for each of the hosts, with the connection being closed in between. Waits a couple of seconds after each request, but stays within a reasonable timeout. Expectation is that the connection stays open.
			 */
			public testShortTimeout(): void;
			/**
			 * Does repeated requests for each of the hosts, with the connection being kept alive in between. Waits a longer time after each request. Expectation is that the host closes the connection.
			 */
			public testLongTimeout(): void;
			/**
			 * Does repeated requests for each of the hosts, with the connection being closed in between. Waits a longer time after each request. Expectation is that the host closes the connection.
			 */
			public xxtestBrokenConnection(): void;
			/**
			 * Does repeated requests for each of the hosts, with the connection being closed in between. Waits a longer time after each request. Expectation is that the host closes the connection.
			 */
			public xxtestBrokenConnection2(): void;
			/**
			 * Regression test for 865926: SSLContext.init() should use default values for null arguments.
			 */
			public testContextInitNullArgs(): void;
			/**
			 * Regression test for 963650: javax.net.ssl.KeyManager has no implemented (documented?) algorithms.
			 */
			public testDefaultAlgorithms(): void;
			/**
			 * Regression test for problem where close() resulted in a hand if a different thread was sitting in a blocking read or write.
			 */
			public testMultithreadedClose(): void;
			/**
			 * Regression test for problem where multiple threads with multiple SSL connection would cause problems due to either missing native locking or the slowness of the SSL connections.
			 */
			public testMultithreadedFetch(): void;
			/**
			 * Implements the actual test case. Launches a server and a client, requires client authentication and checks the certificates afterwards (not in the usual sense, we just make sure that we got the expected certificates, because our self-signed test certificates are not valid.)
			 */
			public testClientAuth(): void;
			public testSSLHandshakeHangTimeout(): void;
			public testSSLHandshakeHangClose(): void;
			/**
			 * Tests our in-memory and persistent caching support.
			 */
			public testClientSessionCaching(): void;
			public testFileBasedClientSessionCache(): void;
			public static main(args: native.Array<string>): void;
		}
		export module SSLSocketTest {
			/**
			 * Fake in the sense that it doesn't actually persist anything.
			 */
			export class FakeClientSessionCache extends java.lang.Object implements org.apache.harmony.xnet.provider.jsse.ISSLClientSessionCache {
				static class: java.lang.Class<android.core.SSLSocketTest.FakeClientSessionCache>;
				public getSessionData(host: string, port: number): native.Array<number>;
				public putSessionData(session: javax.net.ssl.ISSLSession, sessionData: native.Array<number>): void;
			}
			export class TestClient extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.core.SSLSocketTest.TestClient>;
				public run(): void;
				public getException(): java.lang.Exception;
				public getChain(): native.Array<java.security.cert.X509Certificate>;
			}
			export class ClientSessionCacheProxy extends java.lang.Object implements org.apache.harmony.xnet.provider.jsse.ISSLClientSessionCache {
				static class: java.lang.Class<android.core.SSLSocketTest.ClientSessionCacheProxy>;
				public getSessionData(host: string, port: number): native.Array<number>;
				public putSessionData(session: javax.net.ssl.ISSLSession, sessionData: native.Array<number>): void;
			}
			export class TestTrustManager extends java.lang.Object implements javax.net.ssl.IX509TrustManager {
				static class: java.lang.Class<android.core.SSLSocketTest.TestTrustManager>;
				public checkClientTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
				public checkServerTrusted(chain: native.Array<java.security.cert.X509Certificate>, authType: string): void;
				public getAcceptedIssuers(): native.Array<java.security.cert.X509Certificate>;
				public getChain(): native.Array<java.security.cert.X509Certificate>;
				public getAuthType(): string;
			}
			export class TestServer extends java.lang.Object implements java.lang.IRunnable {
				static CLIENT_AUTH_NONE: number;
				static CLIENT_AUTH_WANTED: number;
				static CLIENT_AUTH_NEEDED: number;
				static class: java.lang.Class<android.core.SSLSocketTest.TestServer>;
				public run(): void;
				public getException(): java.lang.Exception;
				public getChain(): native.Array<java.security.cert.X509Certificate>;
			}
		}
		export class MiscRegressionTest {
			constructor();
			static class: java.lang.Class<android.core.MiscRegressionTest>;
			public testAndroidLogHandler(): void;
		}
		export class HttpHeaderTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.core.HttpHeaderTest>;
			/**
			 * Tests that cache control header supports multiple instances of the header, according to HTTP specification.
			 */
			public testCacheControl(): void;
			public testCacheControlMultipleArguments(): void;
		}
		export class HeapTest {
			constructor();
			static class: java.lang.Class<android.core.HeapTest>;
			public testGcSoftRefs(): void;
			public xxtestSoftRefPartialClean(): void;
			public testWeakRefs(): void;
			static checkRefs<T>(objects: native.Array<T>, refs: native.Array<java.lang.ref.PhantomReference<T>>, queue: java.lang.ref.ReferenceQueue<T>): void;
			public testPhantomRefs(): void;
			public testWeakRefsAndFinalizers(): void;
			public testOomeLarge(): void;
			public disableTestOomeSmall(): void;
		}
		export module HeapTest {
			export class FinalizableObject extends java.lang.Object {
				static class: java.lang.Class<android.core.HeapTest.FinalizableObject>;
				protected finalize(): void;
			}
		}
		interface IHttpConstants {
		}
		export module IHttpConstants {
			/**
			 * 2XX: generally "OK"
			 */
			var HTTP_OK: number;
			var HTTP_CREATED: number;
			var HTTP_ACCEPTED: number;
			var HTTP_NOT_AUTHORITATIVE: number;
			var HTTP_NO_CONTENT: number;
			var HTTP_RESET: number;
			var HTTP_PARTIAL: number;
			/**
			 * 3XX: relocation/redirect
			 */
			var HTTP_MULT_CHOICE: number;
			var HTTP_MOVED_PERM: number;
			var HTTP_MOVED_TEMP: number;
			var HTTP_SEE_OTHER: number;
			var HTTP_NOT_MODIFIED: number;
			var HTTP_USE_PROXY: number;
			/**
			 * 4XX: client error
			 */
			var HTTP_BAD_REQUEST: number;
			var HTTP_UNAUTHORIZED: number;
			var HTTP_PAYMENT_REQUIRED: number;
			var HTTP_FORBIDDEN: number;
			var HTTP_NOT_FOUND: number;
			var HTTP_BAD_METHOD: number;
			var HTTP_NOT_ACCEPTABLE: number;
			var HTTP_PROXY_AUTH: number;
			var HTTP_CLIENT_TIMEOUT: number;
			var HTTP_CONFLICT: number;
			var HTTP_GONE: number;
			var HTTP_LENGTH_REQUIRED: number;
			var HTTP_PRECON_FAILED: number;
			var HTTP_ENTITY_TOO_LARGE: number;
			var HTTP_REQ_TOO_LONG: number;
			var HTTP_UNSUPPORTED_TYPE: number;
			/**
			 * 5XX: server error
			 */
			var HTTP_SERVER_ERROR: number;
			var HTTP_INTERNAL_ERROR: number;
			var HTTP_BAD_GATEWAY: number;
			var HTTP_UNAVAILABLE: number;
			var HTTP_GATEWAY_TIMEOUT: number;
			var HTTP_VERSION: number;
			/**
			 * Method IDs
			 */
			var UNKNOWN_METHOD: number;
			var GET_METHOD: number;
			var HEAD_METHOD: number;
			var POST_METHOD: number;
			var requestHeaders: native.Array<string>;
			var REQ_UNKNOWN: number;
			var REQ_CACHE_CONTROL: number;
			var REQ_CONNECTION: number;
			var REQ_DATE: number;
			var REQ_PRAGMA: number;
			var REQ_TRAILER: number;
			var REQ_TRANSFER_ENCODING: number;
			var REQ_UPGRADE: number;
			var REQ_VIA: number;
			var REQ_WARNING: number;
			var REQ_ACCEPT: number;
			var REQ_ACCEPT_CHARSET: number;
			var REQ_ACCEPT_ENCODING: number;
			var REQ_ACCEPT_LANGUAGE: number;
			var REQ_AUTHORIZATION: number;
			var REQ_EXPECT: number;
			var REQ_FROM: number;
			var REQ_HOST: number;
			var REQ_IF_MATCH: number;
			var REQ_IF_MODIFIED_SINCE: number;
			var REQ_IF_NONE_MATCH: number;
			var REQ_IF_RANGE: number;
			var REQ_IF_UNMODIFIED_SINCE: number;
			var REQ_MAX_FORWARDS: number;
			var REQ_PROXY_AUTHENTICATION: number;
			var REQ_RANGE: number;
			var REQ_REFERER: number;
			var REQ_TE: number;
			var REQ_USER_AGENT: number;
			var REQ_KEEP_ALIVE: number;
			var REQ_ALLOW: number;
			var REQ_CONTENT_ENCODING: number;
			var REQ_CONTENT_LANGUAGE: number;
			var REQ_CONTENT_LENGTH: number;
			var REQ_CONTENT_LOCATION: number;
			var REQ_CONTENT_MD5: number;
			var REQ_CONTENT_RANGE: number;
			var REQ_CONTENT_TYPE: number;
			var REQ_EXPIRES: number;
			var REQ_LAST_MODIFIED: number;
			var REQ_LOCATION: number;
			var REQ_SERVER: number;
		}
		/**
		 * Tests SHA1 message digest algorithm.
		 */
		export class Sha1Test {
			constructor();
			static class: java.lang.Class<android.core.Sha1Test>;
			TestData: {
	new (i: string, r: string): android.core.Sha1Test.TestData;
};
			public testSha1(): void;
		}
		export module Sha1Test {
			export class TestData extends java.lang.Object {
				static class: java.lang.Class<android.core.Sha1Test.TestData>;
			}
		}
		/**
		 * Provides synchronization handling for low level Request API tests
		 */
		export class LowLevelNetRunner extends java.lang.Thread {
			static class: java.lang.Class<android.core.LowLevelNetRunner>;
			public incrementRunCount(): void;
			/**
			 * Decrement the run count. If this returns to zero notify any test waiting.
			 */
			public decrementRunCount(): void;
		}
		/**
		 * TestWebServer is a simulated controllable test server that can respond to requests from HTTP clients.
		 */
		export class TestWebServer extends java.lang.Object implements android.core.IHttpConstants {
			constructor();
			static class: java.lang.Class<android.core.TestWebServer>;
			/**
			 * Initialize a new server with default port and timeout.
			 * @param log Set true if you want trace output
			 */
			public initServer(log: boolean): void;
			/**
			 * Initialize a new server with default timeout.
			 * @param port Sets the server to listen on this port
			 * @param log Set true if you want trace output
			 */
			public initServer(port: number, log: boolean): void;
			/**
			 * Initialize a new server with default port and timeout.
			 * @param port Sets the server to listen on this port
			 * @param timeout Indicates the period of time to wait until a socket is
			 * @param log Set true if you want trace output
			 */
			public initServer(port: number, timeout: number, log: boolean): void;
			/**
			 * Print to the log file (if logging enabled)
			 * @param s String to send to the log
			 */
			protected log(s: string): void;
			/**
			 * Set the server to be an HTTP/1.0 or HTTP/1.1 server. This should be called prior to any requests being sent to the server.
			 * @param set True for the server to be HTTP/1.1, false for HTTP/1.0
			 */
			public setHttpVersion11(set: boolean): void;
			/**
			 * Call this to determine whether server connection should remain open
			 * @param value Set true to keep connections open after a request
			 */
			public setKeepAlive(value: boolean): void;
			/**
			 * Call this to indicate whether chunked data should be used
			 * @param value Set true to make server respond with chunk encoded
			 */
			public setChunked(value: boolean): void;
			/**
			 * Call this to specify the maximum number of sockets to accept
			 * @param limit The number of sockets to accept
			 */
			public setAcceptLimit(limit: number): void;
			/**
			 * Call this to indicate redirection port requirement. When this value is set, the server will respond to a request with a redirect code with the Location response header set to the value specified.
			 * @param redirect The location to be redirected to
			 * @param code redirectCode The code to send when redirecting
			 */
			public setRedirect(redirect: string, code: number): void;
			/**
			 * Cause the thread accepting connections on the server socket to close
			 */
			public close(): void;
		}
		export module TestWebServer {
			/**
			 * The worker thread handles all interactions with a current open connection. If pipelining is turned on, this will allow this thread to continuously operate on numerous requests before the connection is closed.
			 */
			export class Worker extends java.lang.Object implements android.core.IHttpConstants, java.lang.IRunnable {
				static class: java.lang.Class<android.core.TestWebServer.Worker>;
				/**
				 * Called by the AcceptThread to unblock this Worker to process a request.
				 * @param s The socket on which the connection has been made
				 */
				setSocket(s: java.net.Socket): void;
				/**
				 * Called by the accept thread when it's closing. Potentially unblocks the worker thread to terminate properly
				 */
				close(): void;
				/**
				 * Main worker thread. This will wait until a request has been identified by the accept thread upon which it will service the thread.
				 */
				public run(): void;
				/**
				 * The main loop, reading requests.
				 */
				handleClient(): void;
				psPrint(ps: java.io.PrintStream, s: string): void;
				psWrite(ps: java.io.PrintStream, bytes: native.Array<number>, len: number): void;
				psWriteEOL(ps: java.io.PrintStream): void;
				printStatus(ps: java.io.PrintStream): void;
				/**
				 * Create the server response and output to the stream
				 * @param ps The PrintStream to output response headers and data to
				 */
				printHeaders(ps: java.io.PrintStream): void;
				/**
				 * Sends the 404 not found message
				 * @param ps The PrintStream to write to
				 */
				send404(ps: java.io.PrintStream): void;
				/**
				 * Sends the data associated with the headers
				 * @param ps The PrintStream to write to
				 */
				sendFile(ps: java.io.PrintStream): void;
			}
			/**
			 * The AcceptThread is responsible for initiating worker threads to handle incoming requests from clients.
			 */
			export class AcceptThread extends java.lang.Thread {
				static class: java.lang.Class<android.core.TestWebServer.AcceptThread>;
				public init(): void;
				/**
				 * Main thread responding to new connections
				 */
				public run(): void;
				public close(): void;
			}
		}
	}
	export module util {
		/**
		 * Utility base class for creating various GridView scenarios. Configurable by the number of items, how tall each item should be (in relation to the screen height), and what item should start with selection.
		 */
		export class GridScenario extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.util.GridScenario>;
			public getGridView(): android.widget.GridView;
			protected getScreenHeight(): number;
			protected getInitialNumItems(): number;
			public getDesiredItemHeight(): number;
			/**
			 * How each scenario customizes its behavior.
			 * @param params 
			 */
			protected init(params: android.util.GridScenario.Params): void;
			/**
			 * Override this to provide an different adapter for your scenario
			 */
			protected createAdapter(): android.widget.IListAdapter;
			/**
			 * Override this if you want to know when something has been selected (perhaps more importantly, that android.widget.AdapterView.OnItemSelectedListener has been triggered).
			 */
			protected positionSelected(positon: number): void;
			/**
			 * Override this if you want to know that nothing is selected.
			 */
			protected nothingSelected(): void;
			protected onCreate(icicle: android.os.Bundle): void;
			public getValueAtPosition(position: number): string;
			/**
			 * Create a view for a grid item. Override this to create a custom view beyond the simple focusable / unfocusable text view.
			 * @param position The position.
			 * @param parent The parent
			 * @param desiredHeight The height the view should be to respect the desired item
			 */
			protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
		}
		export module GridScenario {
			/**
			 * Better way to pass in optional params than a honkin' paramater list :)
			 */
			export class Params extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.util.GridScenario.Params>;
				/**
				 * Set the number of items in the grid.
				 */
				public setNumItems(numItems: number): android.util.GridScenario.Params;
				/**
				 * Set the position that starts selected.
				 * @param startingSelectionPosition The selected position within the adapter's data set.
				 */
				public setStartingSelectionPosition(startingSelectionPosition: number): android.util.GridScenario.Params;
				/**
				 * Set the factor that determines how tall each item is in relation to the screen height.
				 */
				public setItemScreenSizeFactor(itemScreenSizeFactor: number): android.util.GridScenario.Params;
				/**
				 * Override the item screen size factor for a particular item. Useful for creating grids with non-uniform item height.
				 * @param position The position in the grid.
				 * @param itemScreenSizeFactor The screen size factor to use for the height.
				 */
				public setPositionScreenSizeFactorOverride(position: number, itemScreenSizeFactor: number): android.util.GridScenario.Params;
				/**
				 * Sets the stacking direction
				 * @param stackFromBottom 
				 */
				public setStackFromBottom(stackFromBottom: boolean): android.util.GridScenario.Params;
				/**
				 * Sets whether the sum of the height of the grid items must be at least the height of the grid view.
				 */
				public setMustFillScreen(fillScreen: boolean): android.util.GridScenario.Params;
				/**
				 * Sets the individual width of each column.
				 * @param requestedWidth the width in pixels of the column
				 */
				public setColumnWidth(requestedWidth: number): android.util.GridScenario.Params;
				/**
				 * Sets the number of columns in the grid.
				 */
				public setNumColumns(numColumns: number): android.util.GridScenario.Params;
				/**
				 * Sets the stretch mode.
				 */
				public setStretchMode(stretchMode: number): android.util.GridScenario.Params;
				/**
				 * Sets the spacing between rows in the grid
				 */
				public setVerticalSpacing(verticalSpacing: number): android.util.GridScenario.Params;
			}
			export class MyAdapter extends android.widget.BaseAdapter {
				static class: java.lang.Class<android.util.GridScenario.MyAdapter>;
				public getCount(): number;
				public getItem(position: number): any;
				public getItemId(position: number): any;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			}
		}
		/**
		 * Access to the system diagnostic event record. System diagnostic events are used to record certain system-level events (such as garbage collection, activity manager state, system watchdogs, and other low level activity), which may be automatically collected and analyzed during system development.
		 */
		export class EventLog extends java.lang.Object {
			static class: java.lang.Class<android.util.EventLog>;
			/**
			 * Record an event log message.
			 * @param tag The event type tag code
			 * @param value A value to log
			 */
			public static writeEvent(tag: number, value: number): number;
			/**
			 * Record an event log message.
			 * @param tag The event type tag code
			 * @param str A value to log
			 */
			public static writeEvent(tag: number, str: string): number;
			/**
			 * Record an event log message.
			 * @param tag The event type tag code
			 * @param list A list of values to log
			 */
			public static writeEvent(tag: number, list: native.Array<any>): number;
			/**
			 * Read events from the log, filtered by type.
			 * @param tags to search for
			 * @param output container to add events into
			 */
			public static readEvents(tags: native.Array<number>, output: java.util.ICollection<android.util.EventLog.Event>): void;
			/**
			 * Get the name associated with an event type tag code.
			 * @param tag code to look up
			 */
			public static getTagName(tag: number): string;
			/**
			 * Get the event type tag code associated with an event name.
			 * @param name of event to look up
			 */
			public static getTagCode(name: string): number;
		}
		export module EventLog {
			/**
			 * A previously logged event read from the logs.
			 */
			export class Event extends java.lang.Object {
				static class: java.lang.Class<android.util.EventLog.Event>;
				public getProcessId(): number;
				public getThreadId(): number;
				public getTimeNanos(): any;
				public getTag(): number;
				public getData(): any;
			}
		}
		/**
		 * Implementation of a android.util.Printer that sends its output to a StringBuilder.
		 */
		export class StringBuilderPrinter extends java.lang.Object implements android.util.IPrinter {
			/**
			 * Create a new Printer that sends to a StringBuilder object. 
			 * @param builder The StringBuilder where you would like output to go.
			 */
			constructor(builder: java.lang.StringBuilder);
			static class: java.lang.Class<android.util.StringBuilderPrinter>;
			public println(x: string): void;
		}
		/**
		 * Implementation of a android.util.Printer that sends its output to a java.io.PrintStream.
		 */
		export class PrintStreamPrinter extends java.lang.Object implements android.util.IPrinter {
			/**
			 * Create a new Printer that sends to a PrintWriter object. 
			 * @param pw The PrintWriter where you would like output to go.
			 */
			constructor(pw: java.io.PrintStream);
			static class: java.lang.Class<android.util.PrintStreamPrinter>;
			public println(x: string): void;
		}
		/**
		 * An OutputStream that does Base64 encoding on the data written to it, writing the resulting data to another OutputStream.
		 */
		export class Base64OutputStream extends java.io.FilterOutputStream {
			/**
			 * Performs Base64 encoding on the data written to the stream, writing the encoded data to another OutputStream.
			 * @param out the OutputStream to write the encoded data to
			 * @param flags bit flags for controlling the encoder; see the
			 */
			constructor(out: java.io.OutputStream, flags: number);
			static class: java.lang.Class<android.util.Base64OutputStream>;
			public write(b: number): void;
			public write(b: native.Array<number>, off: number, len: number): void;
			public close(): void;
			/**
			 * Equivalent to write(buffer, 0, buffer.length).
			 */
			write(buffer: native.Array<number>): void;
		}
		/**
		 * Tests for StateSet
		 */
		export class StateSetTest {
			constructor();
			static class: java.lang.Class<android.util.StateSetTest>;
			public testStateSetPositiveMatches(): void;
			public testStatesSetMatchMixEmUp(): void;
			public testStateSetNegativeMatches(): void;
			public testEmptySetMatchesNegtives(): void;
			public testEmptySetFailsPositives(): void;
			public testEmptySetMatchesWildcard(): void;
			public testSingleStatePositiveMatches(): void;
			public testSingleStateNegativeMatches(): void;
			public testZeroStateOnlyMatchesDefault(): void;
			public testNullStateOnlyMatchesDefault(): void;
		}
		/**
		 * Simple interface for printing text, allowing redirection to various targets. Standard implementations are android.util.LogPrinter, android.util.StringBuilderPrinter, and android.util.PrintWriterPrinter.
		 */
		export class Printer implements android.util.IPrinter {
			constructor(implementation: android.util.IPrinter);
			/**
			 * Write a line of text to the output. There is no need to terminate the given string with a newline.
			 */
			public println(x: string): void;
		}
		/**
		 * Delegate implementing the native methods of android.util.FloatMath
		 */
		export class FloatMath_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.util.FloatMath_Delegate>;
			/**
			 * Returns the float conversion of the most positive (i.e. closest to positive infinity) integer value which is less than the argument.
			 * @param value to be converted
			 */
			static floor(value: number): number;
			/**
			 * Returns the float conversion of the most negative (i.e. closest to negative infinity) integer value which is greater than the argument.
			 * @param value to be converted
			 */
			static ceil(value: number): number;
			/**
			 * Returns the closest float approximation of the sine of the argument.
			 * @param angle to compute the cosine of, in radians
			 */
			static sin(angle: number): number;
			/**
			 * Returns the closest float approximation of the cosine of the argument.
			 * @param angle to compute the cosine of, in radians
			 */
			static cos(angle: number): number;
			/**
			 * Returns the closest float approximation of the square root of the argument.
			 * @param value to compute sqrt of
			 */
			static sqrt(value: number): number;
			/**
			 * Returns the closest float approximation of the raising "e" to the power of the argument.
			 * @param value to compute the exponential of
			 */
			static exp(value: number): number;
			/**
			 * Returns the closest float approximation of the result of raising x to the power of y.
			 * @param x the base of the operation.
			 * @param y the exponent of the operation.
			 */
			static pow(x: number, y: number): number;
			/**
			 * Returns sqrt(<i>x</i><sup>2</sup>+ <i> y</i><sup>2</sup>).
			 * @param x a float number
			 * @param y a float number
			 */
			static hypot(x: number, y: number): number;
		}
		/**
		 * Lexical scoping elements within a JSON reader or writer.
		 */
		export enum JsonScope {
			EMPTY_ARRAY,
			NONEMPTY_ARRAY,
			EMPTY_OBJECT,
			DANGLING_NAME,
			NONEMPTY_OBJECT,
			EMPTY_DOCUMENT,
			NONEMPTY_DOCUMENT,
			CLOSED
		}
		export class FloatMathTest {
			constructor();
			static class: java.lang.Class<android.util.FloatMathTest>;
			public testSqrt(): void;
			public testFloor(): void;
			public testCeil(): void;
			public testSin(): void;
			public testCos(): void;
		}
		/**
		 * A structure, name or value type in a JSON-encoded string.
		 */
		export enum JsonToken {
			BEGIN_ARRAY,
			END_ARRAY,
			BEGIN_OBJECT,
			END_OBJECT,
			NAME,
			STRING,
			NUMBER,
			BOOLEAN,
			NULL,
			END_DOCUMENT
		}
		/**
		 * Commonly used regular expression patterns.
		 */
		export class Patterns extends java.lang.Object {
			/**
			 * Regular expression to match all IANA top-level domains. List accurate as of 2011/07/18. List taken from: http://data.iana.org/TLD/tlds-alpha-by-domain.txt This pattern is auto-generated by frameworks/ex/common/tools/make-iana-tld-pattern.py
			 */
			static TOP_LEVEL_DOMAIN_STR: string;
			/**
			 * Regular expression pattern to match all IANA top-level domains.
			 */
			static TOP_LEVEL_DOMAIN: java.util.regex.Pattern;
			/**
			 * Regular expression to match all IANA top-level domains for WEB_URL. List accurate as of 2011/07/18. List taken from: http://data.iana.org/TLD/tlds-alpha-by-domain.txt This pattern is auto-generated by frameworks/ex/common/tools/make-iana-tld-pattern.py
			 */
			static TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL: string;
			/**
			 * Good characters for Internationalized Resource Identifiers (IRI). This comprises most common used Unicode characters allowed in IRI as detailed in RFC 3987. Specifically, those two byte Unicode characters are not included.
			 */
			static GOOD_IRI_CHAR: string;
			/**
			 * Regular expression pattern to match most part of RFC 3987 Internationalized URLs, aka IRIs. Commonly used Unicode characters are added.
			 */
			static WEB_URL: java.util.regex.Pattern;
			static IP_ADDRESS: java.util.regex.Pattern;
			static DOMAIN_NAME: java.util.regex.Pattern;
			static EMAIL_ADDRESS: java.util.regex.Pattern;
			/**
			 * This pattern is intended for searching for things that look like they might be phone numbers in arbitrary text, not for validating whether something is in fact a phone number. It will miss many things that are legitimate phone numbers. 
			 */
			static PHONE: java.util.regex.Pattern;
			static class: java.lang.Class<android.util.Patterns>;
			/**
			 * Convenience method to take all of the non-null matching groups in a regex Matcher and return them as a concatenated string.
			 * @param matcher The Matcher object from which grouped text will
			 */
			public static concatGroups(matcher: java.util.regex.Matcher): string;
			/**
			 * Convenience method to return only the digits and plus signs in the matching string.
			 * @param matcher The Matcher object from which digits and plus will
			 */
			public static digitsAndPlusOnly(matcher: java.util.regex.Matcher): string;
		}
		/**
		 * Reusable methods for generating key events.
		 */
		export class KeyUtils extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.util.KeyUtils>;
			/**
			 * Simulates tapping the menu key. 
			 * @param test The test case that is being run.
			 */
			public static tapMenuKey(test: android.test.ActivityInstrumentationTestCase<any>): void;
			/**
			 * Simulates chording the menu key. 
			 * @param test The test case that is being run.
			 * @param shortcutKey The shortcut key to tap while chording the menu key.
			 */
			public static chordMenuKey(test: android.test.ActivityInstrumentationTestCase<any>, shortcutKey: string): void;
			/**
			 * Simulates a long click via the keyboard. 
			 * @param test The test case that is being run.
			 */
			public static longClick(test: android.test.ActivityInstrumentationTestCase<any>): void;
		}
		/**
		 * Container for a dynamically typed data value. Primarily used with android.content.res.Resources for holding resource values.
		 */
		export class TypedValue extends java.lang.Object {
			constructor();
			/**
			 * The value contains no data.
			 */
			static TYPE_NULL: number;
			/**
			 * The <var>data</var> field holds a resource identifier.
			 */
			static TYPE_REFERENCE: number;
			/**
			 * The <var>data</var> field holds an attribute resource identifier (referencing an attribute in the current theme style, not a resource entry).
			 */
			static TYPE_ATTRIBUTE: number;
			/**
			 * The <var>string</var> field holds string data. In addition, if <var>data</var> is non-zero then it is the string block index of the string and <var>assetCookie</var> is the set of assets the string came from.
			 */
			static TYPE_STRING: number;
			/**
			 * The <var>data</var> field holds an IEEE 754 floating point number.
			 */
			static TYPE_FLOAT: number;
			/**
			 * The <var>data</var> field holds a complex number encoding a dimension value.
			 */
			static TYPE_DIMENSION: number;
			/**
			 * The <var>data</var> field holds a complex number encoding a fraction of a container.
			 */
			static TYPE_FRACTION: number;
			/**
			 * Identifies the start of plain integer values. Any type value from this to #TYPE_LAST_INT means the <var>data</var> field holds a generic integer value.
			 */
			static TYPE_FIRST_INT: number;
			/**
			 * The <var>data</var> field holds a number that was originally specified in decimal.
			 */
			static TYPE_INT_DEC: number;
			/**
			 * The <var>data</var> field holds a number that was originally specified in hexadecimal (0xn).
			 */
			static TYPE_INT_HEX: number;
			/**
			 * The <var>data</var> field holds 0 or 1 that was originally specified as "false" or "true".
			 */
			static TYPE_INT_BOOLEAN: number;
			/**
			 * Identifies the start of integer values that were specified as color constants (starting with '#').
			 */
			static TYPE_FIRST_COLOR_INT: number;
			/**
			 * The <var>data</var> field holds a color that was originally specified as #aarrggbb.
			 */
			static TYPE_INT_COLOR_ARGB8: number;
			/**
			 * The <var>data</var> field holds a color that was originally specified as #rrggbb.
			 */
			static TYPE_INT_COLOR_RGB8: number;
			/**
			 * The <var>data</var> field holds a color that was originally specified as #argb.
			 */
			static TYPE_INT_COLOR_ARGB4: number;
			/**
			 * The <var>data</var> field holds a color that was originally specified as #rgb.
			 */
			static TYPE_INT_COLOR_RGB4: number;
			/**
			 * Identifies the end of integer values that were specified as color constants.
			 */
			static TYPE_LAST_COLOR_INT: number;
			/**
			 * Identifies the end of plain integer values.
			 */
			static TYPE_LAST_INT: number;
			/**
			 * Complex data: bit location of unit information.
			 */
			static COMPLEX_UNIT_SHIFT: number;
			/**
			 * Complex data: mask to extract unit information (after shifting by #COMPLEX_UNIT_SHIFT). This gives us 16 possible types, as defined below.
			 */
			static COMPLEX_UNIT_MASK: number;
			/**
			 * #TYPE_DIMENSION complex unit: Value is raw pixels.
			 */
			static COMPLEX_UNIT_PX: number;
			/**
			 * #TYPE_DIMENSION complex unit: Value is Device Independent Pixels.
			 */
			static COMPLEX_UNIT_DIP: number;
			/**
			 * #TYPE_DIMENSION complex unit: Value is a scaled pixel.
			 */
			static COMPLEX_UNIT_SP: number;
			/**
			 * #TYPE_DIMENSION complex unit: Value is in points.
			 */
			static COMPLEX_UNIT_PT: number;
			/**
			 * #TYPE_DIMENSION complex unit: Value is in inches.
			 */
			static COMPLEX_UNIT_IN: number;
			/**
			 * #TYPE_DIMENSION complex unit: Value is in millimeters.
			 */
			static COMPLEX_UNIT_MM: number;
			/**
			 * #TYPE_FRACTION complex unit: A basic fraction of the overall size.
			 */
			static COMPLEX_UNIT_FRACTION: number;
			/**
			 * #TYPE_FRACTION complex unit: A fraction of the parent size.
			 */
			static COMPLEX_UNIT_FRACTION_PARENT: number;
			/**
			 * Complex data: where the radix information is, telling where the decimal place appears in the mantissa.
			 */
			static COMPLEX_RADIX_SHIFT: number;
			/**
			 * Complex data: mask to extract radix information (after shifting by #COMPLEX_RADIX_SHIFT). This give us 4 possible fixed point representations as defined below.
			 */
			static COMPLEX_RADIX_MASK: number;
			/**
			 * Complex data: the mantissa is an integral number -- i.e., 0xnnnnnn.0
			 */
			static COMPLEX_RADIX_23p0: number;
			/**
			 * Complex data: the mantissa magnitude is 16 bits -- i.e, 0xnnnn.nn
			 */
			static COMPLEX_RADIX_16p7: number;
			/**
			 * Complex data: the mantissa magnitude is 8 bits -- i.e, 0xnn.nnnn
			 */
			static COMPLEX_RADIX_8p15: number;
			/**
			 * Complex data: the mantissa magnitude is 0 bits -- i.e, 0x0.nnnnnn
			 */
			static COMPLEX_RADIX_0p23: number;
			/**
			 * Complex data: bit location of mantissa information.
			 */
			static COMPLEX_MANTISSA_SHIFT: number;
			/**
			 * Complex data: mask to extract mantissa information (after shifting by #COMPLEX_MANTISSA_SHIFT). This gives us 23 bits of precision; the top bit is the sign.
			 */
			static COMPLEX_MANTISSA_MASK: number;
			/**
			 * If #density is equal to this value, then the density should be treated as the system's default density value: DisplayMetrics#DENSITY_DEFAULT.
			 */
			static DENSITY_DEFAULT: number;
			/**
			 * If #density is equal to this value, then there is no density associated with the resource and it should not be scaled.
			 */
			static DENSITY_NONE: number;
			/**
			 * The type held by this value, as defined by the constants here. This tells you how to interpret the other fields in the object.
			 */
			type: number;
			/**
			 * If the value holds a string, this is it.
			 */
			string: string;
			/**
			 * Basic data in the value, interpreted according to #type
			 */
			data: number;
			/**
			 * Additional information about where the value came from; only set for strings.
			 */
			assetCookie: number;
			/**
			 * If Value came from a resource, this holds the corresponding resource id.
			 */
			resourceId: number;
			/**
			 * If Value came from a resource, these are the configurations for which its contents can change.
			 */
			changingConfigurations: number;
			/**
			 * If the Value came from a resource, this holds the corresponding pixel density. 
			 */
			density: number;
			static class: java.lang.Class<android.util.TypedValue>;
			/**
			 * Return the data for this value as a float. Only use for values whose type is #TYPE_FLOAT.
			 */
			public getFloat(): number;
			/**
			 * Retrieve the base value from a complex data integer. This uses the #COMPLEX_MANTISSA_MASK and #COMPLEX_RADIX_MASK fields of the data to compute a floating point representation of the number they describe. The units are ignored. 
			 * @param complex A complex data value.
			 */
			public static complexToFloat(complex: number): number;
			/**
			 * Converts a complex data value holding a dimension to its final floating point value. The given <var>data</var> must be structured as a #TYPE_DIMENSION. 
			 * @param data A complex data value holding a unit, magnitude, and
			 * @param metrics Current display metrics to use in the conversion --
			 */
			public static complexToDimension(data: number, metrics: android.util.DisplayMetrics): number;
			/**
			 * Converts a complex data value holding a dimension to its final value as an integer pixel offset. This is the same as #complexToDimension, except the raw floating point value is truncated to an integer (pixel) value. The given <var>data</var> must be structured as a #TYPE_DIMENSION. 
			 * @param data A complex data value holding a unit, magnitude, and
			 * @param metrics Current display metrics to use in the conversion --
			 */
			public static complexToDimensionPixelOffset(data: number, metrics: android.util.DisplayMetrics): number;
			/**
			 * Converts a complex data value holding a dimension to its final value as an integer pixel size. This is the same as #complexToDimension, except the raw floating point value is converted to an integer (pixel) value for use as a size. A size conversion involves rounding the base value, and ensuring that a non-zero base value is at least one pixel in size. The given <var>data</var> must be structured as a #TYPE_DIMENSION. 
			 * @param data A complex data value holding a unit, magnitude, and
			 * @param metrics Current display metrics to use in the conversion --
			 */
			public static complexToDimensionPixelSize(data: number, metrics: android.util.DisplayMetrics): number;
			public static complexToDimensionNoisy(data: number, metrics: android.util.DisplayMetrics): number;
			/**
			 * Converts an unpacked complex data value holding a dimension to its final floating point value. The two parameters <var>unit</var> and <var>value</var> are as in #TYPE_DIMENSION. 
			 * @param unit The unit to convert from.
			 * @param value The value to apply the unit to.
			 * @param metrics Current display metrics to use in the conversion --
			 */
			public static applyDimension(unit: number, value: number, metrics: android.util.DisplayMetrics): number;
			/**
			 * Return the data for this value as a dimension. Only use for values whose type is #TYPE_DIMENSION. 
			 * @param metrics Current display metrics to use in the conversion --
			 */
			public getDimension(metrics: android.util.DisplayMetrics): number;
			/**
			 * Converts a complex data value holding a fraction to its final floating point value. The given <var>data</var> must be structured as a #TYPE_FRACTION. 
			 * @param data A complex data value holding a unit, magnitude, and
			 * @param base The base value of this fraction. In other words, a
			 * @param pbase The parent base value of this fraction. In other
			 */
			public static complexToFraction(data: number, base: number, pbase: number): number;
			/**
			 * Return the data for this value as a fraction. Only use for values whose type is #TYPE_FRACTION. 
			 * @param base The base value of this fraction. In other words, a
			 * @param pbase The parent base value of this fraction. In other
			 */
			public getFraction(base: number, pbase: number): number;
			/**
			 * Regardless of the actual type of the value, try to convert it to a string value. For example, a color type will be converted to a string of the form #aarrggbb. 
			 */
			public coerceToString(): string;
			/**
			 * Perform type conversion as per #coerceToString() on an explicitly supplied type and data. 
			 * @param type The data type identifier.
			 * @param data The data value.
			 */
			public static coerceToString(type: number, data: number): string;
			public setTo(other: android.util.TypedValue): void;
			public toString(): string;
		}
		export class TimeFormatException extends java.lang.RuntimeException {
			static class: java.lang.Class<android.util.TimeFormatException>;
		}
		/**
		 * A collection of attributes, as found associated with a tag in an XML document. Often you will not want to use this interface directly, instead passing it to android.content.res.Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int) Resources.Theme.obtainStyledAttributes() which will take care of parsing the attributes for you. In particular, the Resources API will convert resource references (attribute values such as " in the original XML) to the desired type for you; if you use AttributeSet directly then you will need to manually check for resource references (with #getAttributeResourceValue(int, int)) and do the resource lookup yourself if needed. Direct use of AttributeSet also prevents the application of themes and styles when retrieving attribute values. 
		 */
		interface IAttributeSet {
			/**
			 * Returns the number of attributes available in the set. 
			 */
			getAttributeCount(): number;
			/**
			 * Returns the name of the specified attribute. 
			 * @param index Index of the desired attribute, 0...count-1.
			 */
			getAttributeName(index: number): string;
			/**
			 * Returns the value of the specified attribute as a string representation. 
			 * @param index Index of the desired attribute, 0...count-1.
			 */
			getAttributeValue(index: number): string;
			/**
			 * Returns the value of the specified attribute as a string representation. The lookup is performed using the attribute name. 
			 * @param namespace The namespace of the attribute to get the value from.
			 * @param name The name of the attribute to get the value from.
			 */
			getAttributeValue(namespace: string, name: string): string;
			/**
			 * Returns a description of the current position of the attribute set. For instance, if the attribute set is loaded from an XML document, the position description could indicate the current line number. 
			 */
			getPositionDescription(): string;
			/**
			 * Return the resource ID associated with the given attribute name. This will be the identifier for an attribute resource, which can be used by styles. Returns 0 if there is no resource associated with this attribute. 
			 * @param index Index of the desired attribute, 0...count-1.
			 */
			getAttributeNameResource(index: number): number;
			/**
			 * Return the index of the value of 'attribute' in the list 'options'.
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute Name of attribute to retrieve.
			 * @param options List of strings whose values we are checking against.
			 * @param defaultValue Value returned if attribute doesn't exist or no
			 */
			getAttributeListValue(namespace: string, attribute: string, options: native.Array<string>, defaultValue: number): number;
			/**
			 * Return the boolean value of 'attribute'. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeBooleanValue(namespace: string, attribute: string, defaultValue: boolean): boolean;
			/**
			 * Return the value of 'attribute' as a resource identifier. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeResourceValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the integer value of 'attribute'. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeIntValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the boolean value of 'attribute' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeUnsignedIntValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the float value of 'attribute'. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeFloatValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the index of the value of attribute at 'index' in the list 'options'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param options List of strings whose values we are checking against.
			 * @param defaultValue Value returned if attribute doesn't exist or no
			 */
			getAttributeListValue(index: number, options: native.Array<string>, defaultValue: number): number;
			/**
			 * Return the boolean value of attribute at 'index'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeBooleanValue(index: number, defaultValue: boolean): boolean;
			/**
			 * Return the value of attribute at 'index' as a resource identifier. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeResourceValue(index: number, defaultValue: number): number;
			/**
			 * Return the integer value of attribute at 'index'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeIntValue(index: number, defaultValue: number): number;
			/**
			 * Return the integer value of attribute at 'index' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeUnsignedIntValue(index: number, defaultValue: number): number;
			/**
			 * Return the float value of attribute at 'index'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			getAttributeFloatValue(index: number, defaultValue: number): number;
			/**
			 * Return the value of the "id" attribute or null if there is not one. Equivalent to getAttributeValue(null, "id"). 
			 */
			getIdAttribute(): string;
			/**
			 * Return the value of the "class" attribute or null if there is not one. Equivalent to getAttributeValue(null, "class"). 
			 */
			getClassAttribute(): string;
			/**
			 * Return the integer value of the "id" attribute or defaultValue if there is none. Equivalent to getAttributeResourceValue(null, "id", defaultValue);
			 * @param defaultValue What to return if the "id" attribute isn't found.
			 */
			getIdAttributeResourceValue(defaultValue: number): number;
			getStyleAttribute(): number;
		}
		/**
		 * Reusable methods for creating more complex list items.
		 */
		export class ListItemFactory extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.util.ListItemFactory>;
			/**
			 * Create a view with a button at the top and bottom, with filler in between. The filler is sized to take up any space left over within desiredHeight.
			 * @param position The position within the list.
			 * @param context The context.
			 * @param desiredHeight The desired height of the entire view.
			 */
			public static twoButtonsSeparatedByFiller(position: number, context: android.content.Context, desiredHeight: number): android.view.View;
			/**
			 * Create a horizontal linear layout divided into thirds (with some margins separating the thirds), filled with buttons into some slots.
			 * @param context The context.
			 * @param desiredHeight The height of the LL.
			 * @param slots Which slots to fill with buttons.
			 */
			public static horizontalButtonSlots(context: android.content.Context, desiredHeight: number, slots: native.Array<android.util.ListItemFactory.Slot>): android.view.View;
			/**
			 * Create a button ready to be a list item.
			 * @param position The position within the list.
			 * @param context The context.
			 * @param text The text of the button
			 * @param desiredHeight The desired height of the button
			 */
			public static button(position: number, context: android.content.Context, text: string, desiredHeight: number): android.view.View;
			/**
			 * Convert an existing button view to display the data at a new position. 
			 * @param convertView Non-null Button created by {@link #button}
			 * @param text The text of the button
			 * @param position The position withion the list
			 */
			public static convertButton(convertView: android.view.View, text: string, position: number): android.view.View;
			/**
			 * Create a text view ready to be a list item.
			 * @param position The position within the list.
			 * @param context The context.
			 * @param text The text to display
			 * @param desiredHeight The desired height of the text view
			 */
			public static text(position: number, context: android.content.Context, text: string, desiredHeight: number): android.view.View;
			/**
			 * Convert an existing text view to display the data at a new position. 
			 * @param convertView Non-null TextView created by {@link #text}
			 * @param text The text to display
			 * @param position The position withion the list
			 */
			public static convertText(convertView: android.view.View, text: string, position: number): android.view.View;
			/**
			 * Create a text view ready to be a list item.
			 * @param position The position within the list.
			 * @param context The context.
			 * @param text The text of the button
			 * @param desiredHeight The desired height of the button
			 */
			public static doubleText(position: number, context: android.content.Context, text: string, desiredHeight: number): android.view.View;
			/**
			 * Convert an existing button view to display the data at a new position. 
			 * @param convertView Non-null view created by {@link #doubleText}
			 * @param text The text of the button
			 * @param position The position withion the list
			 */
			public static convertDoubleText(convertView: android.view.View, text: string, position: number): android.view.View;
		}
		export module ListItemFactory {
			export enum Slot {
				Left,
				Middle,
				Right
			}
		}
		export class Base64Test {
			constructor();
			static class: java.lang.Class<android.util.Base64Test>;
			public testDecodeExtraChars(): void;
			public testBinaryDecode(): void;
			public testWebSafe(): void;
			public testFlags(): void;
			public testLineLength(): void;
			/**
			 * Tests that Base64.Encoder.encode() does correct handling of the tail for each call.
			 */
			public XXXtestEncodeInternal(): void;
			public testInputStream(): void;
			/**
			 * http://b/3026478
			 */
			public testSingleByteReads(): void;
			/**
			 * Tests that Base64OutputStream produces exactly the same results as calling Base64.encode/.decode on an in-memory array.
			 */
			public testOutputStream(): void;
		}
		/**
		 * API for sending log output.
		 */
		export class Log extends java.lang.Object {
			/**
			 * Priority constant for the println method; use Log.v.
			 */
			static VERBOSE: number;
			/**
			 * Priority constant for the println method; use Log.d.
			 */
			static DEBUG: number;
			/**
			 * Priority constant for the println method; use Log.i.
			 */
			static INFO: number;
			/**
			 * Priority constant for the println method; use Log.w.
			 */
			static WARN: number;
			/**
			 * Priority constant for the println method; use Log.e.
			 */
			static ERROR: number;
			/**
			 * Priority constant for the println method.
			 */
			static ASSERT: number;
			static class: java.lang.Class<android.util.Log>;
			/**
			 * Send a #VERBOSE log message.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 */
			public static v(tag: string, msg: string): number;
			/**
			 * Send a #VERBOSE log message and log the exception.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 * @param tr An exception to log
			 */
			public static v(tag: string, msg: string, tr: java.lang.Throwable): number;
			/**
			 * Send a #DEBUG log message.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 */
			public static d(tag: string, msg: string): number;
			/**
			 * Send a #DEBUG log message and log the exception.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 * @param tr An exception to log
			 */
			public static d(tag: string, msg: string, tr: java.lang.Throwable): number;
			/**
			 * Send an #INFO log message.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 */
			public static i(tag: string, msg: string): number;
			/**
			 * Send a #INFO log message and log the exception.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 * @param tr An exception to log
			 */
			public static i(tag: string, msg: string, tr: java.lang.Throwable): number;
			/**
			 * Send a #WARN log message.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 */
			public static w(tag: string, msg: string): number;
			/**
			 * Send a #WARN log message and log the exception.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 * @param tr An exception to log
			 */
			public static w(tag: string, msg: string, tr: java.lang.Throwable): number;
			/**
			 * Checks to see whether or not a log for the specified tag is loggable at the specified level.
			 * @param tag The tag to check.
			 * @param level The level to check.
			 */
			public static isLoggable(tag: string, level: number): boolean;
			public static w(tag: string, tr: java.lang.Throwable): number;
			/**
			 * Send an #ERROR log message.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 */
			public static e(tag: string, msg: string): number;
			/**
			 * Send a #ERROR log message and log the exception.
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 * @param tr An exception to log
			 */
			public static e(tag: string, msg: string, tr: java.lang.Throwable): number;
			/**
			 * What a Terrible Failure: Report a condition that should never happen. The error will always be logged at level ASSERT with the call stack. Depending on system configuration, a report may be added to the android.os.DropBoxManager and/or the process may be terminated immediately with an error dialog.
			 * @param tag Used to identify the source of a log message.
			 * @param msg The message you would like logged.
			 */
			public static wtf(tag: string, msg: string): number;
			/**
			 * What a Terrible Failure: Report an exception that should never happen. Similar to #wtf(String, String), with an exception to log.
			 * @param tag Used to identify the source of a log message.
			 * @param tr An exception to log.
			 */
			public static wtf(tag: string, tr: java.lang.Throwable): number;
			/**
			 * What a Terrible Failure: Report an exception that should never happen. Similar to #wtf(String, Throwable), with a message as well.
			 * @param tag Used to identify the source of a log message.
			 * @param msg The message you would like logged.
			 * @param tr An exception to log. May be null.
			 */
			public static wtf(tag: string, msg: string, tr: java.lang.Throwable): number;
			/**
			 * Handy function to get a loggable stack trace from a Throwable
			 * @param tr An exception to log
			 */
			public static getStackTraceString(tr: java.lang.Throwable): string;
			/**
			 * Low-level logging call.
			 * @param priority The priority/type of this log message
			 * @param tag Used to identify the source of a log message. It usually identifies
			 * @param msg The message you would like logged.
			 */
			public static println(priority: number, tag: string, msg: string): number;
		}
		export module Log {
			/**
			 * Exception class used to capture a stack trace in #wtf().
			 */
			export class TerribleFailure extends java.lang.Exception {
				static class: java.lang.Class<android.util.Log.TerribleFailure>;
			}
		}
		export class DebugUtils extends java.lang.Object {
			static class: java.lang.Class<android.util.DebugUtils>;
			/**
			 * @param object any object to match against the ANDROID_OBJECT_FILTER
			 */
			public static isObjectSelected(object: any): boolean;
		}
		/**
		 * This exception is thrown by Base64InputStream or Base64OutputStream when an error is detected in the data being decoded. This allows problems with the base64 data to be disambiguated from errors in the underlying streams (e.g. actual connection errors.)
		 */
		export class Base64DataException extends java.io.IOException {
			constructor(detailMessage: string);
			static class: java.lang.Class<android.util.Base64DataException>;
		}
		/**
		 * When entering touch mode via touch, the tests can be flaky. These asserts are more flexible (allowing up to MAX_ATTEMPTS touches to enter touch mode via touch or tap) until we can find a way to solve the flakiness.
		 */
		export class TouchModeFlexibleAsserts extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.util.TouchModeFlexibleAsserts>;
			public static assertInTouchModeAfterClick(test: android.test.InstrumentationTestCase, viewToTouch: android.view.View): void;
			public static assertInTouchModeAfterTap(test: android.test.InstrumentationTestCase, viewToTouch: android.view.View): void;
			public static assertNotInTouchModeAfterKey(test: android.test.InstrumentationTestCase, keyCode: number, checkForTouchMode: android.view.View): void;
		}
		/**
		 * Utility base class for creating scroll view scenarios, allowing you to add a series of different kinds of views arranged vertically, taking up a specified amount of the screen height.
		 */
		export class ScrollViewScenario extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.util.ScrollViewScenario>;
			/**
			 * Override this and initialized the views in the scroll view.
			 * @param params Used to configure the contents of the scroll view.
			 */
			protected init(params: android.util.ScrollViewScenario.Params): void;
			public getLinearLayout(): android.widget.LinearLayout;
			public getScrollView(): android.widget.ScrollView;
			/**
			 * Get the child contained within the vertical linear layout of the scroll view.
			 * @param index The index within the linear layout.
			 */
			public getContentChildAt<T extends android.view.View>(index: number): T;
			/**
			 * Hook for changing how scroll view's are created.
			 */
			protected createScrollView(): android.widget.ScrollView;
			protected onCreate(savedInstanceState: android.os.Bundle): void;
		}
		export module ScrollViewScenario {
			/**
			 * Partially implement ViewFactory given a height ratio. A negative height ratio means that WRAP_CONTENT will be used as height
			 */
			export class ViewFactoryBase extends java.lang.Object implements android.util.ScrollViewScenario.IViewFactory {
				static class: java.lang.Class<android.util.ScrollViewScenario.ViewFactoryBase>;
				public getHeightRatio(): number;
				create(context: android.content.Context): android.view.View;
			}
			/**
			 * What we need of each view that the user wants: the view, and the ratio to the screen height for its desired height.
			 */
			interface IViewFactory {
				create(context: android.content.Context): android.view.View;
				getHeightRatio(): number;
			}
			/**
			 * What we need of each view that the user wants: the view, and the ratio to the screen height for its desired height.
			 */
			export class ViewFactory implements android.util.ScrollViewScenario.IViewFactory {
				constructor(implementation: android.util.ScrollViewScenario.IViewFactory);
				public create(context: android.content.Context): android.view.View;
				public getHeightRatio(): number;
			}
			/**
			 * Builder for selecting the views to be vertically arranged in the scroll view.
			 */
			export class Params extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.util.ScrollViewScenario.Params>;
				/**
				 * Add a text view.
				 * @param text The text of the text view.
				 * @param heightRatio The view's height will be this * the screen height.
				 */
				public addTextView(text: string, heightRatio: number): android.util.ScrollViewScenario.Params;
				/**
				 * Add multiple text views.
				 * @param numViews the number of views to add.
				 * @param textPrefix The text to prepend to each text view.
				 * @param heightRatio The view's height will be this * the screen height.
				 */
				public addTextViews(numViews: number, textPrefix: string, heightRatio: number): android.util.ScrollViewScenario.Params;
				/**
				 * Add a button.
				 * @param text The text of the button.
				 * @param heightRatio The view's height will be this * the screen height.
				 */
				public addButton(text: string, heightRatio: number): android.util.ScrollViewScenario.Params;
				/**
				 * Add multiple buttons.
				 * @param numButtons the number of views to add.
				 * @param textPrefix The text to prepend to each button.
				 * @param heightRatio The view's height will be this * the screen height.
				 */
				public addButtons(numButtons: number, textPrefix: string, heightRatio: number): android.util.ScrollViewScenario.Params;
				/**
				 * Add an InternalSelectionView.
				 * @param numRows The number of rows in the internal selection view.
				 * @param heightRatio The view's height will be this * the screen height.
				 */
				public addInternalSelectionView(numRows: number, heightRatio: number): android.util.ScrollViewScenario.Params;
				/**
				 * Add a sublayout of buttons as a single child of the scroll view.
				 * @param prefix numButtons The number of buttons in the sub layout
				 * @param numButtons heightRatio The layout's height will be this * the screen height.
				 * @param heightRatio 
				 */
				public addVerticalLLOfButtons(prefix: string, numButtons: number, heightRatio: number): android.util.ScrollViewScenario.Params;
				public addPaddingToScrollView(topPadding: number, bottomPadding: number): android.util.ScrollViewScenario.Params;
			}
		}
		/**
		 * Unit tests for MonthDisplayHelper.
		 */
		export class MonthDisplayHelperTest {
			constructor();
			static class: java.lang.Class<android.util.MonthDisplayHelperTest>;
			public testFirstDayOfMonth(): void;
			public testNumberOfDaysInCurrentMonth(): void;
			public testMonthRows(): void;
			public testMonthRowsWeekStartsMonday(): void;
			public testMonthRowsWeekStartsSaturday(): void;
			public testGetDayAt(): void;
			public testPrevMonth(): void;
			public testPrevMonthRollOver(): void;
			public testNextMonth(): void;
			public testGetRowOf(): void;
			public testGetColumnOf(): void;
			public testWithinCurrentMonth(): void;
		}
		/**
		 * SparseIntArrays map integers to integers. Unlike a normal array of integers, there can be gaps in the indices. It is intended to be more efficient than using a HashMap to map Integers to Integers.
		 */
		export class SparseIntArray extends java.lang.Object implements java.lang.ICloneable {
			/**
			 * Creates a new SparseIntArray containing no mappings.
			 */
			constructor();
			/**
			 * Creates a new SparseIntArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
			 */
			constructor(initialCapacity: number);
			static class: java.lang.Class<android.util.SparseIntArray>;
			public clone(): android.util.SparseIntArray;
			/**
			 * Gets the int mapped from the specified key, or <code>0</code> if no such mapping has been made.
			 */
			public get(key: number): number;
			/**
			 * Gets the int mapped from the specified key, or the specified value if no such mapping has been made.
			 */
			public get(key: number, valueIfKeyNotFound: number): number;
			/**
			 * Removes the mapping from the specified key, if there was any.
			 */
			public delete(key: number): void;
			/**
			 * Removes the mapping at the given index.
			 */
			public removeAt(index: number): void;
			/**
			 * Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
			 */
			public put(key: number, value: number): void;
			/**
			 * Returns the number of key-value mappings that this SparseIntArray currently stores.
			 */
			public size(): number;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the key from the <code>index</code>th key-value mapping that this SparseIntArray stores.
			 */
			public keyAt(index: number): number;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the value from the <code>index</code>th key-value mapping that this SparseIntArray stores.
			 */
			public valueAt(index: number): number;
			/**
			 * Returns the index for which #keyAt would return the specified key, or a negative number if the specified key is not mapped.
			 */
			public indexOfKey(key: number): number;
			/**
			 * Returns an index for which #valueAt would return the specified key, or a negative number if no keys map to the specified value. Beware that this is a linear search, unlike lookups by key, and that multiple keys can map to the same value and this will find only one of them.
			 */
			public indexOfValue(value: number): number;
			/**
			 * Removes all key-value mappings from this SparseIntArray.
			 */
			public clear(): void;
			/**
			 * Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.
			 */
			public append(key: number, value: number): void;
		}
		export class PatternsTest {
			constructor();
			static class: java.lang.Class<android.util.PatternsTest>;
			public testTldPattern(): void;
			public testUrlPattern(): void;
			public testIpPattern(): void;
			public testDomainPattern(): void;
			public testPhonePattern(): void;
		}
		/**
		 * Simple interface for printing text, allowing redirection to various targets. Standard implementations are android.util.LogPrinter, android.util.StringBuilderPrinter, and android.util.PrintWriterPrinter.
		 */
		interface IPrinter {
			/**
			 * Write a line of text to the output. There is no need to terminate the given string with a newline.
			 */
			println(x: string): void;
		}
		export class LogTest {
			constructor();
			static class: java.lang.Class<android.util.LogTest>;
			public testLogTestDummy(): void;
		}
		export module LogTest {
			export class PerformanceTest implements android.test.IPerformanceTestCase {
				constructor();
				static class: java.lang.Class<android.util.LogTest.PerformanceTest>;
				public setUp(): void;
				public isPerformanceOnly(): boolean;
				public startPerformance(intermediates: android.test.PerformanceTestCase.IIntermediates): number;
				public testIsLoggable(): void;
			}
		}
		/**
		 * SparseArray mapping longs to Objects. Unlike a normal array of Objects, there can be gaps in the indices. It is intended to be more efficient than using a HashMap to map Longs to Objects.
		 */
		export class LongSparseArray<E> extends java.lang.Object implements java.lang.ICloneable {
			/**
			 * Creates a new LongSparseArray containing no mappings.
			 */
			constructor();
			/**
			 * Creates a new LongSparseArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
			 */
			constructor(initialCapacity: number);
			static class: java.lang.Class<android.util.LongSparseArray<any>>;
			public clone(): android.util.LongSparseArray<E>;
			/**
			 * Gets the Object mapped from the specified key, or <code>null</code> if no such mapping has been made.
			 */
			public get(key: number): E;
			/**
			 * Gets the Object mapped from the specified key, or the specified Object if no such mapping has been made.
			 */
			public get(key: number, valueIfKeyNotFound: E): E;
			/**
			 * Removes the mapping from the specified key, if there was any.
			 */
			public delete(key: number): void;
			/**
			 * Alias for #delete(long).
			 */
			public remove(key: number): void;
			/**
			 * Removes the mapping at the specified index.
			 */
			public removeAt(index: number): void;
			/**
			 * Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
			 */
			public put(key: number, value: E): void;
			/**
			 * Returns the number of key-value mappings that this LongSparseArray currently stores.
			 */
			public size(): number;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the key from the <code>index</code>th key-value mapping that this LongSparseArray stores.
			 */
			public keyAt(index: number): any;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the value from the <code>index</code>th key-value mapping that this LongSparseArray stores.
			 */
			public valueAt(index: number): E;
			/**
			 * Given an index in the range <code>0...size()-1</code>, sets a new value for the <code>index</code>th key-value mapping that this LongSparseArray stores.
			 */
			public setValueAt(index: number, value: E): void;
			/**
			 * Returns the index for which #keyAt would return the specified key, or a negative number if the specified key is not mapped.
			 */
			public indexOfKey(key: number): number;
			/**
			 * Returns an index for which #valueAt would return the specified key, or a negative number if no keys map to the specified value. Beware that this is a linear search, unlike lookups by key, and that multiple keys can map to the same value and this will find only one of them.
			 */
			public indexOfValue(value: E): number;
			/**
			 * Removes all key-value mappings from this LongSparseArray.
			 */
			public clear(): void;
			/**
			 * Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.
			 */
			public append(key: number, value: E): void;
		}
		/**
		 * Utilities for encoding and decoding the Base64 representation of binary data. See RFCs <a href="http://www.ietf.org/rfc/rfc2045.txt">2045</a> and <a href="http://www.ietf.org/rfc/rfc3548.txt">3548</a>.
		 */
		export class Base64 extends java.lang.Object {
			/**
			 * Default values for encoder/decoder flags.
			 */
			static DEFAULT: number;
			/**
			 * Encoder flag bit to omit the padding '=' characters at the end of the output (if any).
			 */
			static NO_PADDING: number;
			/**
			 * Encoder flag bit to omit all line terminators (i.e., the output will be on one long line).
			 */
			static NO_WRAP: number;
			/**
			 * Encoder flag bit to indicate lines should be terminated with a CRLF pair instead of just an LF. Has no effect if NO_WRAP is specified as well.
			 */
			static CRLF: number;
			/**
			 * Encoder/decoder flag bit to indicate using the "URL and filename safe" variant of Base64 (see RFC 3548 section 4) where - and _ are used in place of + and /.
			 */
			static URL_SAFE: number;
			/**
			 * Flag to pass to Base64OutputStream to indicate that it should not close the output stream it is wrapping when it itself is closed.
			 */
			static NO_CLOSE: number;
			static class: java.lang.Class<android.util.Base64>;
			/**
			 * Decode the Base64-encoded data in input and return the data in a new byte array.
			 * @param str the input String to decode, which is converted to
			 * @param flags controls certain features of the decoded output.
			 */
			public static decode(str: string, flags: number): native.Array<number>;
			/**
			 * Decode the Base64-encoded data in input and return the data in a new byte array.
			 * @param input the input array to decode
			 * @param flags controls certain features of the decoded output.
			 */
			public static decode(input: native.Array<number>, flags: number): native.Array<number>;
			/**
			 * Decode the Base64-encoded data in input and return the data in a new byte array.
			 * @param input the data to decode
			 * @param offset the position within the input array at which to start
			 * @param len the number of bytes of input to decode
			 * @param flags controls certain features of the decoded output.
			 */
			public static decode(input: native.Array<number>, offset: number, len: number, flags: number): native.Array<number>;
			/**
			 * Base64-encode the given data and return a newly allocated String with the result.
			 * @param input the data to encode
			 * @param flags controls certain features of the encoded output.
			 */
			public static encodeToString(input: native.Array<number>, flags: number): string;
			/**
			 * Base64-encode the given data and return a newly allocated String with the result.
			 * @param input the data to encode
			 * @param offset the position within the input array at which to
			 * @param len the number of bytes of input to encode
			 * @param flags controls certain features of the encoded output.
			 */
			public static encodeToString(input: native.Array<number>, offset: number, len: number, flags: number): string;
			/**
			 * Base64-encode the given data and return a newly allocated byte[] with the result.
			 * @param input the data to encode
			 * @param flags controls certain features of the encoded output.
			 */
			public static encode(input: native.Array<number>, flags: number): native.Array<number>;
			/**
			 * Base64-encode the given data and return a newly allocated byte[] with the result.
			 * @param input the data to encode
			 * @param offset the position within the input array at which to
			 * @param len the number of bytes of input to encode
			 * @param flags controls certain features of the encoded output.
			 */
			public static encode(input: native.Array<number>, offset: number, len: number, flags: number): native.Array<number>;
		}
		export module Base64 {
			export class Coder extends java.lang.Object {
				output: native.Array<number>;
				op: number;
				static class: java.lang.Class<android.util.Base64.Coder>;
				/**
				 * Encode/decode another block of input data. this.output is provided by the caller, and must be big enough to hold all the coded data. On exit, this.opwill be set to the length of the coded data.
				 * @param input finish true if this is the final call to process for
				 * @param offset 
				 * @param len 
				 * @param finish 
				 */
				public process(input: native.Array<number>, offset: number, len: number, finish: boolean): boolean;
				public maxOutputSize(len: number): number;
			}
			export class Encoder extends android.util.Base64.Coder {
				constructor(flags: number, output: native.Array<number>);
				/**
				 * Emit a new line every this many output tuples. Corresponds to a 76-character line length (the maximum allowable according to <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a>).
				 */
				static LINE_GROUPS: number;
				do_padding: boolean;
				do_newline: boolean;
				do_cr: boolean;
				static class: java.lang.Class<android.util.Base64.Encoder>;
				public maxOutputSize(len: number): number;
				public process(input: native.Array<number>, offset: number, len: number, finish: boolean): boolean;
			}
			export class Decoder extends android.util.Base64.Coder {
				constructor(flags: number, output: native.Array<number>);
				static class: java.lang.Class<android.util.Base64.Decoder>;
				public maxOutputSize(len: number): number;
				/**
				 * Decode another block of input data.
				 */
				public process(input: native.Array<number>, offset: number, len: number, finish: boolean): boolean;
			}
		}
		/**
		 * Unit tests for DayOfMonthCursor.
		 */
		export class DayOfMonthCursorTest {
			constructor();
			static class: java.lang.Class<android.util.DayOfMonthCursorTest>;
			public testMonthRows(): void;
			public testMoveLeft(): void;
			public testMoveRight(): void;
			public testMoveUp(): void;
			public testMoveDown(): void;
		}
		/**
		 * Utility base class for creating various List scenarios. Configurable by the number of items, how tall each item should be (in relation to the screen height), and what item should start with selection.
		 */
		export class ListScenario extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.util.ListScenario>;
			public getListView(): android.widget.ListView;
			protected getScreenHeight(): number;
			/**
			 * How each scenario customizes its behavior.
			 * @param params 
			 */
			protected init(params: android.util.ListScenario.Params): void;
			/**
			 * Override this if you want to know when something has been selected (perhaps more importantly, that android.widget.AdapterView.OnItemSelectedListener has been triggered).
			 */
			protected positionSelected(positon: number): void;
			/**
			 * Override this if you want to know that nothing is selected.
			 */
			protected nothingSelected(): void;
			/**
			 * Override this if you want to know when something has been clicked (perhaps more importantly, that android.widget.AdapterView.OnItemClickListener has been triggered).
			 */
			protected positionClicked(position: number): void;
			/**
			 * Override this if you want to know when something has been long clicked (perhaps more importantly, that android.widget.AdapterView.OnItemLongClickListener has been triggered).
			 */
			protected positionLongClicked(position: number): void;
			protected onCreate(icicle: android.os.Bundle): void;
			/**
			 * Returns the LinearLayout containing the ListView in this scenario.
			 */
			protected getListViewContainer(): android.widget.LinearLayout;
			/**
			 * Attaches a long press listener. You can find out which views were clicked by calling #getLongClickedPosition().
			 */
			public enableLongPress(): void;
			protected createListView(): android.widget.ListView;
			protected createParams(): android.util.ListScenario.Params;
			/**
			 * Sets an adapter on a ListView. 
			 * @param listView The ListView to set the adapter on.
			 */
			protected setAdapter(listView: android.widget.ListView): void;
			/**
			 * Read in and validate all of the params passed in by the scenario.
			 * @param params 
			 */
			protected readAndValidateParams(params: android.util.ListScenario.Params): void;
			public getValueAtPosition(position: number): string;
			public getHeightForPosition(position: number): number;
			public getHeaderValue(): string;
			/**
			 * @param value What to put in the header text view
			 */
			protected setHeaderValue(value: string): void;
			/**
			 * Create a view for a list item. Override this to create a custom view beyond the simple focusable / unfocusable text view.
			 * @param position The position.
			 * @param parent The parent
			 * @param desiredHeight The height the view should be to respect the desired item
			 */
			protected createView(position: number, parent: android.view.ViewGroup, desiredHeight: number): android.view.View;
			/**
			 * Convert a non-null view.
			 */
			public convertView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
			public setClickedPosition(clickedPosition: number): void;
			public getClickedPosition(): number;
			public setLongClickedPosition(longClickedPosition: number): void;
			public getLongClickedPosition(): number;
			/**
			 * Have a child of the list view call View#requestRectangleOnScreen(android.graphics.Rect).
			 * @param childIndex The index into the viewgroup children (i.e the children that are
			 * @param rect The rectangle, in the child's coordinates.
			 */
			public requestRectangleOnScreen(childIndex: number, rect: android.graphics.Rect): void;
			/**
			 * Return an item type for the specified position in the adapter. Override if your adapter creates more than one type.
			 */
			public getItemViewType(position: number): number;
			/**
			 * Return the number of types created by the adapter. Override if your adapter creates more than one type.
			 */
			public getViewTypeCount(): number;
			public getConvertMisses(): number;
		}
		export module ListScenario {
			/**
			 * Better way to pass in optional params than a honkin' paramater list :)
			 */
			export class Params extends java.lang.Object {
				constructor();
				mMustFillScreen: boolean;
				static class: java.lang.Class<android.util.ListScenario.Params>;
				/**
				 * Set the number of items in the list.
				 */
				public setNumItems(numItems: number): android.util.ListScenario.Params;
				/**
				 * Set whether the items are focusable.
				 */
				public setItemsFocusable(itemsFocusable: boolean): android.util.ListScenario.Params;
				/**
				 * Set the position that starts selected.
				 * @param startingSelectionPosition The selected position within the adapter's data set.
				 */
				public setStartingSelectionPosition(startingSelectionPosition: number): android.util.ListScenario.Params;
				/**
				 * Set the factor that determines how tall each item is in relation to the screen height.
				 */
				public setItemScreenSizeFactor(itemScreenSizeFactor: number): android.util.ListScenario.Params;
				/**
				 * Override the item screen size factor for a particular item. Useful for creating lists with non-uniform item height.
				 * @param position The position in the list.
				 * @param itemScreenSizeFactor The screen size factor to use for the height.
				 */
				public setPositionScreenSizeFactorOverride(position: number, itemScreenSizeFactor: number): android.util.ListScenario.Params;
				/**
				 * Set a position as unselectable (a.k.a a separator)
				 * @param position 
				 */
				public setPositionUnselectable(position: number): android.util.ListScenario.Params;
				/**
				 * Set positions as unselectable (a.k.a a separator)
				 */
				public setPositionsUnselectable(positions: native.Array<number>): android.util.ListScenario.Params;
				/**
				 * Include a header text view above the list.
				 * @param includeHeader 
				 */
				public includeHeaderAboveList(includeHeader: boolean): android.util.ListScenario.Params;
				/**
				 * Sets the stacking direction
				 * @param stackFromBottom 
				 */
				public setStackFromBottom(stackFromBottom: boolean): android.util.ListScenario.Params;
				/**
				 * Sets whether the sum of the height of the list items must be at least the height of the list view.
				 */
				public setMustFillScreen(fillScreen: boolean): android.util.ListScenario.Params;
				/**
				 * Set the factor for the fading edge length.
				 */
				public setFadingEdgeScreenSizeFactor(fadingEdgeScreenSizeFactor: number): android.util.ListScenario.Params;
				/**
				 * Set the number of header views to appear within the list
				 */
				public setHeaderViewCount(headerViewCount: number): android.util.ListScenario.Params;
				/**
				 * Set whether the headers should be focusable.
				 * @param headerFocusable Whether the headers should be focusable (i.e
				 */
				public setHeaderFocusable(headerFocusable: boolean): android.util.ListScenario.Params;
				/**
				 * Set the number of footer views to appear within the list
				 */
				public setFooterViewCount(footerViewCount: number): android.util.ListScenario.Params;
				/**
				 * Sets whether the ListScenario will automatically set the adapter on the list view. If this is false, the client MUST set it manually (this is useful when adding headers to the list view, which must be done before the adapter is set).
				 */
				public setConnectAdapter(connectAdapter: boolean): android.util.ListScenario.Params;
			}
			export class MyAdapter extends android.widget.BaseAdapter {
				static class: java.lang.Class<android.util.ListScenario.MyAdapter>;
				public getCount(): number;
				public getItem(position: number): any;
				public getItemId(position: number): any;
				public areAllItemsEnabled(): boolean;
				public isEnabled(position: number): boolean;
				public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
				public getItemViewType(position: number): number;
				public getViewTypeCount(): number;
			}
		}
		/**
		 *  This class is not useful, it just returns the same value for all constants, and has always done this. Do not use it.
		 */
		export class Config extends java.lang.Object {
			/**
			 *  Always false.
			 */
			static DEBUG: boolean;
			/**
			 *  Always true.
			 */
			static RELEASE: boolean;
			/**
			 *  Always false.
			 */
			static PROFILE: boolean;
			/**
			 *  Always false.
			 */
			static LOGV: boolean;
			/**
			 *  Always true.
			 */
			static LOGD: boolean;
			static class: java.lang.Class<android.util.Config>;
		}
		/**
		 * A structure describing general information about a display, such as its size, density, and font scaling.
		 */
		export class DisplayMetrics extends java.lang.Object {
			constructor();
			/**
			 * Standard quantized DPI for low-density screens.
			 */
			static DENSITY_LOW: number;
			/**
			 * Standard quantized DPI for medium-density screens.
			 */
			static DENSITY_MEDIUM: number;
			/**
			 * This is a secondary density, added for some common screen configurations. It is recommended that applications not generally target this as a first class density -- that is, don't supply specific graphics for this density, instead allow the platform to scale from other densities (typically #DENSITY_HIGH) as appropriate. In most cases (such as using bitmaps in android.graphics.drawable.Drawable) the platform can perform this scaling at load time, so the only cost is some slight startup runtime overhead.
			 */
			static DENSITY_TV: number;
			/**
			 * Standard quantized DPI for high-density screens.
			 */
			static DENSITY_HIGH: number;
			/**
			 * Standard quantized DPI for extra-high-density screens.
			 */
			static DENSITY_XHIGH: number;
			/**
			 * Standard quantized DPI for extra-extra-high-density screens. Applications should not generally worry about this density; relying on XHIGH graphics being scaled up to it should be sufficient for almost all cases.
			 */
			static DENSITY_XXHIGH: number;
			/**
			 * The reference density used throughout the system.
			 */
			static DENSITY_DEFAULT: number;
			/**
			 * The absolute width of the display in pixels.
			 */
			widthPixels: number;
			/**
			 * The absolute height of the display in pixels.
			 */
			heightPixels: number;
			/**
			 * The logical density of the display. This is a scaling factor for the Density Independent Pixel unit, where one DIP is one pixel on an approximately 160 dpi screen (for example a 240x320, 1.5"x2" screen), providing the baseline of the system's display. Thus on a 160dpi screen this density value will be 1; on a 120 dpi screen it would be .75; etc. 
			 */
			density: number;
			/**
			 * The screen density expressed as dots-per-inch. May be either #DENSITY_LOW, #DENSITY_MEDIUM, or #DENSITY_HIGH.
			 */
			densityDpi: number;
			/**
			 * A scaling factor for fonts displayed on the display. This is the same as #density, except that it may be adjusted in smaller increments at runtime based on a user preference for the font size.
			 */
			scaledDensity: number;
			/**
			 * The exact physical pixels per inch of the screen in the X dimension.
			 */
			xdpi: number;
			/**
			 * The exact physical pixels per inch of the screen in the Y dimension.
			 */
			ydpi: number;
			static class: java.lang.Class<android.util.DisplayMetrics>;
			public setTo(o: android.util.DisplayMetrics): void;
			public setToDefaults(): void;
			public equals(o: any): boolean;
			/**
			 * Returns true if these display metrics equal the other display metrics.
			 * @param other The display metrics with which to compare.
			 */
			public equals(other: android.util.DisplayMetrics): boolean;
			public hashCode(): number;
			public toString(): string;
		}
		export class JsonReaderTest {
			constructor();
			static class: java.lang.Class<android.util.JsonReaderTest>;
			public testReadArray(): void;
			public testReadEmptyArray(): void;
			public testReadObject(): void;
			public testReadEmptyObject(): void;
			public testSkipObject(): void;
			public testHelloWorld(): void;
			public testNulls(): void;
			public testEmptyString(): void;
			public testNoTopLevelObject(): void;
			public testCharacterUnescaping(): void;
			public testIntegersWithFractionalPartSpecified(): void;
			public testDoubles(): void;
			public testLenientDoubles(): void;
			public testBufferBoundary(): void;
			public testTruncatedBufferBoundary(): void;
			public testLongestSupportedNumericLiterals(): void;
			public testLongerNumericLiterals(): void;
			public testLongs(): void;
			/**
			 * This test fails because there's no double for 9223372036854775806, and our long parsing uses Double.parseDouble() for fractional values.
			 */
			public testHighPrecisionLong(): void;
			public testMatchingValidNumbers(): void;
			public testRecognizingInvalidNumbers(): void;
			public testNonFiniteDouble(): void;
			public testNumberWithHexPrefix(): void;
			public testNumberWithOctalPrefix(): void;
			public testBooleans(): void;
			public testMixedCaseLiterals(): void;
			public testMissingValue(): void;
			public testPrematureEndOfInput(): void;
			public testPrematurelyClosed(): void;
			public testNextFailuresDoNotAdvance(): void;
			public testStringNullIsNotNull(): void;
			public testNullLiteralIsNotAString(): void;
			public testStrictNameValueSeparator(): void;
			public testLenientNameValueSeparator(): void;
			public testStrictComments(): void;
			public testLenientComments(): void;
			public testStrictUnquotedNames(): void;
			public testLenientUnquotedNames(): void;
			public testStrictSingleQuotedNames(): void;
			public testLenientSingleQuotedNames(): void;
			public testStrictUnquotedStrings(): void;
			public testLenientUnquotedStrings(): void;
			public testStrictSingleQuotedStrings(): void;
			public testLenientSingleQuotedStrings(): void;
			public testStrictSemicolonDelimitedArray(): void;
			public testLenientSemicolonDelimitedArray(): void;
			public testStrictSemicolonDelimitedNameValuePair(): void;
			public testLenientSemicolonDelimitedNameValuePair(): void;
			public testStrictUnnecessaryArraySeparators(): void;
			public testLenientUnnecessaryArraySeparators(): void;
			public testStrictMultipleTopLevelValues(): void;
			public testLenientMultipleTopLevelValues(): void;
			public testStrictTopLevelValueType(): void;
			public testLenientTopLevelValueType(): void;
			public testStrictNonExecutePrefix(): void;
			public testBomIgnoredAsFirstCharacterOfDocument(): void;
			public testBomForbiddenAsOtherCharacterInDocument(): void;
			public testFailWithPosition(): void;
			public testFailWithPositionIsOffsetByBom(): void;
			public testFailWithPositionGreaterThanBufferSize(): void;
		}
		/**
		 * Implementation of a android.util.Printer that sends its output to a java.io.PrintWriter.
		 */
		export class PrintWriterPrinter extends java.lang.Object implements android.util.IPrinter {
			/**
			 * Create a new Printer that sends to a PrintWriter object. 
			 * @param pw The PrintWriter where you would like output to go.
			 */
			constructor(pw: java.io.PrintWriter);
			static class: java.lang.Class<android.util.PrintWriterPrinter>;
			public println(x: string): void;
		}
		/**
		 * A class containing utility methods related to time zones.
		 */
		export class TimeUtils extends java.lang.Object {
			static class: java.lang.Class<android.util.TimeUtils>;
			/**
			 * Tries to return a time zone that would have had the specified offset and DST value at the specified moment in the specified country. Returns null if no suitable zone could be found.
			 */
			public static getTimeZone(offset: number, dst: boolean, when: number, country: string): java.util.TimeZone;
			/**
			 * Returns a String indicating the version of the time zone database currently in use. The format of the string is dependent on the underlying time zone database implementation, but will typically contain the year in which the database was updated plus a letter from a to z indicating changes made within that year.
			 */
			public static getTimeZoneDatabaseVersion(): string;
		}
		/**
		 * Base class for all checked exceptions thrown by the Android frameworks.
		 */
		export class AndroidException extends java.lang.Exception {
			constructor();
			constructor(name: string);
			constructor(name: string, cause: java.lang.Throwable);
			constructor(cause: java.lang.Exception);
			static class: java.lang.Class<android.util.AndroidException>;
		}
		/**
		 * Base class for all unchecked exceptions thrown by the Android frameworks.
		 */
		export class AndroidRuntimeException extends java.lang.RuntimeException {
			constructor();
			constructor(name: string);
			constructor(name: string, cause: java.lang.Throwable);
			constructor(cause: java.lang.Exception);
			static class: java.lang.Class<android.util.AndroidRuntimeException>;
		}
		/**
		 * A utility class to help log timings splits throughout a method call. Typical usage is:
		 */
		export class TimingLogger extends java.lang.Object {
			/**
			 * Create and initialize a TimingLogger object that will log using the specific tag. If the Log.isLoggable is not enabled to at least the Log.VERBOSE level for that tag at creation time then the addSplit and dumpToLog call will do nothing.
			 * @param tag the log tag to use while logging the timings
			 * @param label a string to be displayed with each log
			 */
			constructor(tag: string, label: string);
			static class: java.lang.Class<android.util.TimingLogger>;
			/**
			 * Clear and initialize a TimingLogger object that will log using the specific tag. If the Log.isLoggable is not enabled to at least the Log.VERBOSE level for that tag at creation time then the addSplit and dumpToLog call will do nothing.
			 * @param tag the log tag to use while logging the timings
			 * @param label a string to be displayed with each log
			 */
			public reset(tag: string, label: string): void;
			/**
			 * Clear and initialize a TimingLogger object that will log using the tag and label that was specified previously, either via the constructor or a call to reset(tag, label). If the Log.isLoggable is not enabled to at least the Log.VERBOSE level for that tag at creation time then the addSplit and dumpToLog call will do nothing.
			 */
			public reset(): void;
			/**
			 * Add a split for the current time, labeled with splitLabel. If Log.isLoggable was not enabled to at least the Log.VERBOSE for the specified tag at construction or reset() time then this call does nothing.
			 * @param splitLabel a label to associate with this split.
			 */
			public addSplit(splitLabel: string): void;
			/**
			 * Dumps the timings to the log using Log.d(). If Log.isLoggable was not enabled to at least the Log.VERBOSE for the specified tag at construction or reset() time then this call does nothing.
			 */
			public dumpToLog(): void;
		}
		/**
		 * BEGIN LAYOUTLIB CHANGE This is a custom version that doesn't use the non standard LinkedHashMap#eldest. END LAYOUTLIB CHANGE
		 */
		export class LruCache<K, V> extends java.lang.Object {
			/**
			 * @param maxSize for caches that do not override {@link #sizeOf}, this is
			 */
			constructor(maxSize: number);
			static class: java.lang.Class<android.util.LruCache<any, any>>;
			/**
			 * Returns the value for key if it exists in the cache or can be created by #create. If a value was returned, it is moved to the head of the queue. This returns null if a value is not cached and cannot be created.
			 */
			public get(key: K): V;
			/**
			 * Caches value for key. The value is moved to the head of the queue.
			 */
			public put(key: K, value: V): V;
			/**
			 * Removes the entry for key if it exists.
			 */
			public remove(key: K): V;
			/**
			 * Called for entries that have been evicted or removed. This method is invoked when a value is evicted to make space, removed by a call to #remove, or replaced by a call to #put. The default implementation does nothing.
			 * @param evicted true if the entry is being removed to make space, false
			 * @param key newValue the new value for {@code key}, if it exists. If non-null,
			 * @param oldValue 
			 * @param newValue 
			 */
			protected entryRemoved(evicted: boolean, key: K, oldValue: V, newValue: V): void;
			/**
			 * Called after a cache miss to compute a value for the corresponding key. Returns the computed value or null if no value can be computed. The default implementation returns null.
			 */
			protected create(key: K): V;
			/**
			 * Returns the size of the entry for key and value in user-defined units. The default implementation returns 1 so that size is the number of entries and max size is the maximum number of entries.
			 */
			protected sizeOf(key: K, value: V): number;
			/**
			 * Clear the cache, calling #entryRemoved on each removed entry.
			 */
			public evictAll(): void;
			/**
			 * For caches that do not override #sizeOf, this returns the number of entries in the cache. For all other caches, this returns the sum of the sizes of the entries in this cache.
			 */
			public size(): number;
			/**
			 * For caches that do not override #sizeOf, this returns the maximum number of entries in the cache. For all other caches, this returns the maximum sum of the sizes of the entries in this cache.
			 */
			public maxSize(): number;
			/**
			 * Returns the number of times #get returned a value that was already present in the cache.
			 */
			public hitCount(): number;
			/**
			 * Returns the number of times #get returned null or required a new value to be created.
			 */
			public missCount(): number;
			/**
			 * Returns the number of times #create(Object) returned a value.
			 */
			public createCount(): number;
			/**
			 * Returns the number of times #put was called.
			 */
			public putCount(): number;
			/**
			 * Returns the number of values that have been evicted.
			 */
			public evictionCount(): number;
			/**
			 * Returns a copy of the current contents of the cache, ordered from least recently accessed to most recently accessed.
			 */
			public snapshot(): java.util.IMap<K, V>;
			public toString(): string;
		}
		/**
		 * SparseBooleanArrays map integers to booleans. Unlike a normal array of booleans there can be gaps in the indices. It is intended to be more efficient than using a HashMap to map Integers to Booleans.
		 */
		export class SparseBooleanArray extends java.lang.Object implements java.lang.ICloneable {
			/**
			 * Creates a new SparseBooleanArray containing no mappings.
			 */
			constructor();
			/**
			 * Creates a new SparseBooleanArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
			 */
			constructor(initialCapacity: number);
			static class: java.lang.Class<android.util.SparseBooleanArray>;
			public clone(): android.util.SparseBooleanArray;
			/**
			 * Gets the boolean mapped from the specified key, or <code>false</code> if no such mapping has been made.
			 */
			public get(key: number): boolean;
			/**
			 * Gets the boolean mapped from the specified key, or the specified value if no such mapping has been made.
			 */
			public get(key: number, valueIfKeyNotFound: boolean): boolean;
			/**
			 * Removes the mapping from the specified key, if there was any.
			 */
			public delete(key: number): void;
			/**
			 * Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
			 */
			public put(key: number, value: boolean): void;
			/**
			 * Returns the number of key-value mappings that this SparseBooleanArray currently stores.
			 */
			public size(): number;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the key from the <code>index</code>th key-value mapping that this SparseBooleanArray stores.
			 */
			public keyAt(index: number): number;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the value from the <code>index</code>th key-value mapping that this SparseBooleanArray stores.
			 */
			public valueAt(index: number): boolean;
			/**
			 * Returns the index for which #keyAt would return the specified key, or a negative number if the specified key is not mapped.
			 */
			public indexOfKey(key: number): number;
			/**
			 * Returns an index for which #valueAt would return the specified key, or a negative number if no keys map to the specified value. Beware that this is a linear search, unlike lookups by key, and that multiple keys can map to the same value and this will find only one of them.
			 */
			public indexOfValue(value: boolean): number;
			/**
			 * Removes all key-value mappings from this SparseBooleanArray.
			 */
			public clear(): void;
			/**
			 * Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.
			 */
			public append(key: number, value: boolean): void;
		}
		/**
		 * Reads a JSON (<a href="http://www.ietf.org/rfc/rfc4627.txt">RFC 4627</a>) encoded value as a stream of tokens. This stream includes both literal values (strings, numbers, booleans, and nulls) as well as the begin and end delimiters of objects and arrays. The tokens are traversed in depth-first order, the same order that they appear in the JSON document. Within JSON objects, name/value pairs are represented by a single token.
		 */
		export class JsonReader extends java.lang.Object implements java.io.ICloseable {
			/**
			 * Creates a new instance that reads a JSON-encoded stream from in.
			 */
			constructor(input: java.io.Reader);
			static class: java.lang.Class<android.util.JsonReader>;
			/**
			 * Configure this parser to be be liberal in what it accepts. By default, this parser is strict and only accepts JSON as specified by <a href="http://www.ietf.org/rfc/rfc4627.txt">RFC 4627</a>. Setting the parser to lenient causes it to ignore the following syntax errors:
			 */
			public setLenient(lenient: boolean): void;
			/**
			 * Returns true if this parser is liberal in what it accepts.
			 */
			public isLenient(): boolean;
			/**
			 * Consumes the next token from the JSON stream and asserts that it is the beginning of a new array.
			 */
			public beginArray(): void;
			/**
			 * Consumes the next token from the JSON stream and asserts that it is the end of the current array.
			 */
			public endArray(): void;
			/**
			 * Consumes the next token from the JSON stream and asserts that it is the beginning of a new object.
			 */
			public beginObject(): void;
			/**
			 * Consumes the next token from the JSON stream and asserts that it is the end of the current array.
			 */
			public endObject(): void;
			/**
			 * Returns true if the current array or object has another element.
			 */
			public hasNext(): boolean;
			/**
			 * Returns the type of the next token without consuming it.
			 */
			public peek(): android.util.JsonToken;
			/**
			 * Returns the next token, a JsonToken#NAME property name, and consumes it.
			 */
			public nextName(): string;
			/**
			 * Returns the JsonToken#STRING string value of the next token, consuming it. If the next token is a number, this method will return its string form.
			 */
			public nextString(): string;
			/**
			 * Returns the JsonToken#BOOLEAN boolean value of the next token, consuming it.
			 */
			public nextBoolean(): boolean;
			/**
			 * Consumes the next token from the JSON stream and asserts that it is a literal null.
			 */
			public nextNull(): void;
			/**
			 * Returns the JsonToken#NUMBER double value of the next token, consuming it. If the next token is a string, this method will attempt to parse it as a double using Double#parseDouble(String).
			 */
			public nextDouble(): any;
			/**
			 * Returns the JsonToken#NUMBER long value of the next token, consuming it. If the next token is a string, this method will attempt to parse it as a long. If the next token's numeric value cannot be exactly represented by a Java long, this method throws.
			 */
			public nextLong(): any;
			/**
			 * Returns the JsonToken#NUMBER int value of the next token, consuming it. If the next token is a string, this method will attempt to parse it as an int. If the next token's numeric value cannot be exactly represented by a Java int, this method throws.
			 */
			public nextInt(): number;
			/**
			 * Closes this JSON reader and the underlying Reader.
			 */
			public close(): void;
			/**
			 * Skips the next value recursively. If it is an object or array, all nested elements are skipped. This method is intended for use when the JSON token stream contains unrecognized or unhandled values.
			 */
			public skipValue(): void;
			public toString(): string;
		}
		/**
		 * State sets are arrays of positive ints where each element represents the state of a android.view.View (e.g. focused, selected, visible, etc.). A android.view.View may be in one or more of those states.
		 */
		export class StateSet extends java.lang.Object {
			static WILD_CARD: native.Array<number>;
			static NOTHING: native.Array<number>;
			static class: java.lang.Class<android.util.StateSet>;
			/**
			 * Return whether the stateSetOrSpec is matched by all StateSets.
			 * @param stateSetOrSpec a state set or state spec.
			 */
			public static isWildCard(stateSetOrSpec: native.Array<number>): boolean;
			/**
			 * Return whether the stateSet matches the desired stateSpec.
			 * @param stateSpec an array of required (if positive) or
			 * @param stateSet an array of {@link android.view.View} states
			 */
			public static stateSetMatches(stateSpec: native.Array<number>, stateSet: native.Array<number>): boolean;
			/**
			 * Return whether the state matches the desired stateSpec.
			 * @param stateSpec an array of required (if positive) or
			 * @param state a {@link android.view.View} state
			 */
			public static stateSetMatches(stateSpec: native.Array<number>, state: number): boolean;
			public static trimStateSet(states: native.Array<number>, newSize: number): native.Array<number>;
			public static dump(states: native.Array<number>): string;
		}
		/**
		 * A property is an abstraction that can be used to represent a <emb>mutable</em> value that is held in a <em>host</em> object. The Property's #set(Object, Object) or #get(Object) methods can be implemented in terms of the private fields of the host object, or via "setter" and "getter" methods or by some other mechanism, as appropriate.
		 */
		export class Property<T, V> extends java.lang.Object {
			/**
			 * A constructor that takes an identifying name and #getType() type for the property.
			 */
			constructor(type: java.lang.Class<V>, name: string);
			static class: java.lang.Class<android.util.Property<any, any>>;
			/**
			 * This factory method creates and returns a Property given the <code>class</code> and <code>name</code> parameters, where the <code>"name"</code> parameter represents either: <ul> <li>a public <code>getName()</code> method on the class which takes no arguments, plus an optional public <code>setName()</code> method which takes a value of the same type returned by <code>getName()</code> <li>a public <code>isName()</code> method on the class which takes no arguments, plus an optional public <code>setName()</code> method which takes a value of the same type returned by <code>isName()</code> <li>a public <code>name</code> field on the class </ul>
			 */
			public static of<T, V>(hostType: java.lang.Class<T>, valueType: java.lang.Class<V>, name: string): android.util.Property<T, V>;
			/**
			 * Returns true if the #set(Object, Object) method does not set the value on the target object (in which case the #set(Object, Object) set() method should throw a NoSuchPropertyException exception). This may happen if the Property wraps functionality that allows querying the underlying value but not setting it. For example, the #of(Class, Class, String) factory method may return a Property with name "foo" for an object that has only a <code>getFoo()</code> or <code>isFoo()</code> method, but no matching <code>setFoo()</code> method.
			 */
			public isReadOnly(): boolean;
			/**
			 * Sets the value on <code>object</code> which this property represents. If the method is unable to set the value on the target object it will throw an UnsupportedOperationException exception.
			 */
			public set(object: T, value: V): void;
			/**
			 * Returns the current value that this property represents on the given <code>object</code>.
			 */
			public get(object: T): V;
			/**
			 * Returns the name for this property.
			 */
			public getName(): string;
			/**
			 * Returns the type for this property.
			 */
			public getType(): java.lang.Class<V>;
		}
		/**
		 * TimeUtilsTest tests the time zone guesser.
		 */
		export class TimeUtilsTest {
			constructor();
			static class: java.lang.Class<android.util.TimeUtilsTest>;
			public testMainstream(): void;
			public testWeird(): void;
			public testOld(): void;
			public testWorld(): void;
			public testWorldWeird(): void;
			public testFormatDuration(): void;
			public testFormatHugeDuration(): void;
		}
		/**
		 * A correct implementation of the AttributeSet interface on top of a XmlPullParser
		 */
		export class BridgeXmlPullAttributes extends android.util.XmlPullAttributes {
			static class: java.lang.Class<android.util.BridgeXmlPullAttributes>;
			public getAttributeNameResource(index: number): number;
			public getAttributeListValue(namespace: string, attribute: string, options: native.Array<string>, defaultValue: number): number;
			public getAttributeBooleanValue(namespace: string, attribute: string, defaultValue: boolean): boolean;
			public getAttributeResourceValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeIntValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeUnsignedIntValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeFloatValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeListValue(index: number, options: native.Array<string>, defaultValue: number): number;
			public getAttributeBooleanValue(index: number, defaultValue: boolean): boolean;
			public getAttributeResourceValue(index: number, defaultValue: number): number;
			public getAttributeIntValue(index: number, defaultValue: number): number;
			public getAttributeUnsignedIntValue(index: number, defaultValue: number): number;
			public getAttributeFloatValue(index: number, defaultValue: number): number;
		}
		/**
		 * Implementation of a android.util.Printer that sends its output to the system log.
		 */
		export class LogPrinter extends java.lang.Object implements android.util.IPrinter {
			/**
			 * Create a new Printer that sends to the log with the given priority and tag.
			 * @param priority The desired log priority:
			 * @param tag A string tag to associate with each printed log statement.
			 */
			constructor(priority: number, tag: string);
			static class: java.lang.Class<android.util.LogPrinter>;
			public println(x: string): void;
		}
		/**
		 * Container to ease passing around a tuple of two objects. This object provides a sensible implementation of equals(), returning true if equals() is true on each of the contained objects.
		 */
		export class Pair<F, S> extends java.lang.Object {
			/**
			 * Constructor for a Pair.
			 * @param first the first object in the Pair
			 * @param second the second object in the pair
			 */
			constructor(first: F, second: S);
			first: F;
			second: S;
			static class: java.lang.Class<android.util.Pair<any, any>>;
			/**
			 * Checks the two objects for equality by delegating to their respective Object#equals(Object) methods.
			 * @param o the {@link Pair} to which this one is to be checked for equality
			 */
			public equals(o: any): boolean;
			/**
			 * Compute a hash code using the hash codes of the underlying objects
			 */
			public hashCode(): number;
			/**
			 * Convenience method for creating an appropriately typed pair.
			 * @param a the first object in the Pair
			 * @param b the second object in the pair
			 */
			public static create<A, B>(a: A, b: B): android.util.Pair<A, B>;
		}
		/**
		 * Thrown when a reader encounters malformed JSON. Some syntax errors can be ignored by calling JsonReader#setLenient(boolean).
		 */
		export class MalformedJsonException extends java.io.IOException {
			constructor(message: string);
			static class: java.lang.Class<android.util.MalformedJsonException>;
		}
		export class JsonWriterTest {
			constructor();
			static class: java.lang.Class<android.util.JsonWriterTest>;
			public testWrongTopLevelType(): void;
			public testTwoNames(): void;
			public testNameWithoutValue(): void;
			public testValueWithoutName(): void;
			public testMultipleTopLevelValues(): void;
			public testBadNestingObject(): void;
			public testBadNestingArray(): void;
			public testNullName(): void;
			public testNullStringValue(): void;
			public testNonFiniteDoubles(): void;
			public testNonFiniteBoxedDoubles(): void;
			public testDoubles(): void;
			public testLongs(): void;
			public testNumbers(): void;
			public testBooleans(): void;
			public testNulls(): void;
			public testStrings(): void;
			public testUnicodeLineBreaksEscaped(): void;
			public testEmptyArray(): void;
			public testEmptyObject(): void;
			public testObjectsInArrays(): void;
			public testArraysInObjects(): void;
			public testDeepNestingArrays(): void;
			public testDeepNestingObjects(): void;
			public testRepeatedName(): void;
			public testPrettyPrintObject(): void;
			public testPrettyPrintArray(): void;
		}
		export class Log_Delegate extends java.lang.Object {
			static class: java.lang.Class<android.util.Log_Delegate>;
			static println_native(bufID: number, priority: number, tag: string, msgs: string): number;
		}
		/**
		 * Writes a JSON (<a href="http://www.ietf.org/rfc/rfc4627.txt">RFC 4627</a>) encoded value to a stream, one token at a time. The stream includes both literal values (strings, numbers, booleans and nulls) as well as the begin and end delimiters of objects and arrays.
		 */
		export class JsonWriter extends java.lang.Object implements java.io.ICloseable {
			/**
			 * Creates a new instance that writes a JSON-encoded stream to out. For best performance, ensure Writer is buffered; wrapping in java.io.BufferedWriter BufferedWriter if necessary.
			 */
			constructor(out: java.io.Writer);
			static class: java.lang.Class<android.util.JsonWriter>;
			/**
			 * Sets the indentation string to be repeated for each level of indentation in the encoded document. If indent.isEmpty() the encoded document will be compact. Otherwise the encoded document will be more human-readable.
			 * @param indent a string containing only whitespace.
			 */
			public setIndent(indent: string): void;
			/**
			 * Configure this writer to relax its syntax rules. By default, this writer only emits well-formed JSON as specified by <a href="http://www.ietf.org/rfc/rfc4627.txt">RFC 4627</a>. Setting the writer to lenient permits the following: <ul> <li>Top-level values of any type. With strict writing, the top-level value must be an object or an array. <li>Numbers may be Double#isNaN() NaNs or Double#isInfinite() infinities. </ul>
			 */
			public setLenient(lenient: boolean): void;
			/**
			 * Returns true if this writer has relaxed syntax rules.
			 */
			public isLenient(): boolean;
			/**
			 * Begins encoding a new array. Each call to this method must be paired with a call to #endArray.
			 */
			public beginArray(): android.util.JsonWriter;
			/**
			 * Ends encoding the current array.
			 */
			public endArray(): android.util.JsonWriter;
			/**
			 * Begins encoding a new object. Each call to this method must be paired with a call to #endObject.
			 */
			public beginObject(): android.util.JsonWriter;
			/**
			 * Ends encoding the current object.
			 */
			public endObject(): android.util.JsonWriter;
			/**
			 * Encodes the property name.
			 * @param name the name of the forthcoming value. May not be null.
			 */
			public name(name: string): android.util.JsonWriter;
			/**
			 * Encodes value.
			 * @param value the literal string value, or null to encode a null literal.
			 */
			public value(value: string): android.util.JsonWriter;
			/**
			 * Encodes null.
			 */
			public nullValue(): android.util.JsonWriter;
			/**
			 * Encodes value.
			 */
			public value(value: boolean): android.util.JsonWriter;
			/**
			 * Encodes value.
			 * @param value a finite value. May not be {@link Double#isNaN() NaNs} or
			 */
			public value(value: number): android.util.JsonWriter;
			/**
			 * Encodes value.
			 * @param value a finite value. May not be {@link Double#isNaN() NaNs} or
			 */
			public value(value: java.lang.Number): android.util.JsonWriter;
			/**
			 * Ensures all buffered data is written to the underlying Writer and flushes that writer.
			 */
			public flush(): void;
			/**
			 * Flushes and closes this writer and the underlying Writer.
			 */
			public close(): void;
		}
		/**
		 *  This class is no longer functional. Use android.util.EventLog instead.
		 */
		export class EventLogTags extends java.lang.Object {
			constructor();
			constructor(input: java.io.BufferedReader);
			static class: java.lang.Class<android.util.EventLogTags>;
			public get(name: string): android.util.EventLogTags.Description;
			public get(tag: number): android.util.EventLogTags.Description;
		}
		export module EventLogTags {
			export class Description extends java.lang.Object {
				mTag: number;
				mName: string;
				static class: java.lang.Class<android.util.EventLogTags.Description>;
			}
		}
		/**
		 * Various useful stuff for instrumentation testing listview.
		 */
		export class ListUtil extends java.lang.Object {
			/**
			 * @param listView The listview to act on
			 * @param instrumentation The instrumentation to use.
			 */
			constructor(listView: android.widget.ListView, instrumentation: android.app.Instrumentation);
			static class: java.lang.Class<android.util.ListUtil>;
			/**
			 * Set the selected position of the list view.
			 * @param pos The desired position.
			 */
			public setSelectedPosition(pos: number): void;
			/**
			 * Get the top of the list.
			 */
			public getListTop(): number;
			/**
			 * Get the bottom of the list.
			 */
			public getListBottom(): number;
			/**
			 * Arrow (up or down as appropriate) to the desired position in the list.
			 * @param desiredPos The desired position
			 */
			public arrowScrollToSelectedPosition(desiredPos: number): void;
		}
		/**
		 * A view that has a known number of selectable rows, and maintains a notion of which row is selected. The rows take up the entire width of the view. The height of the view is divided evenly among the rows.
		 */
		export class InternalSelectionView extends android.view.View {
			constructor(context: android.content.Context, numRows: number, label: string);
			constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
			static class: java.lang.Class<android.util.InternalSelectionView>;
			public getNumRows(): number;
			public getSelectedRow(): number;
			public setDesiredHeight(desiredHeight: number): void;
			public getLabel(): string;
			protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
			protected onDraw(canvas: android.graphics.Canvas): void;
			public getRectForRow(rect: android.graphics.Rect, row: number): void;
			ensureRectVisible(): void;
			public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
			public getFocusedRect(r: android.graphics.Rect): void;
			protected onFocusChanged(focused: boolean, direction: number, previouslyFocusedRect: android.graphics.Rect): void;
			public toString(): string;
		}
		/**
		 * Math routines similar to those found in java.lang.Math. Performs computations on float values directly without incurring the overhead of conversions to and from double.
		 */
		export class FloatMath extends java.lang.Object {
			static class: java.lang.Class<android.util.FloatMath>;
			/**
			 * Returns the float conversion of the most positive (i.e. closest to positive infinity) integer value which is less than the argument.
			 * @param value to be converted
			 */
			public static floor(value: number): number;
			/**
			 * Returns the float conversion of the most negative (i.e. closest to negative infinity) integer value which is greater than the argument.
			 * @param value to be converted
			 */
			public static ceil(value: number): number;
			/**
			 * Returns the closest float approximation of the sine of the argument.
			 * @param angle to compute the cosine of, in radians
			 */
			public static sin(angle: number): number;
			/**
			 * Returns the closest float approximation of the cosine of the argument.
			 * @param angle to compute the cosine of, in radians
			 */
			public static cos(angle: number): number;
			/**
			 * Returns the closest float approximation of the square root of the argument.
			 * @param value to compute sqrt of
			 */
			public static sqrt(value: number): number;
			/**
			 * Returns the closest float approximation of the raising "e" to the power of the argument.
			 * @param value to compute the exponential of
			 */
			public static exp(value: number): number;
			/**
			 * Returns the closest float approximation of the result of raising x to the power of y.
			 * @param x the base of the operation.
			 * @param y the exponent of the operation.
			 */
			public static pow(x: number, y: number): number;
			/**
			 * Returns sqrt(<i>x</i><sup>2</sup>+ <i> y</i><sup>2</sup>).
			 * @param x a float number
			 * @param y a float number
			 */
			public static hypot(x: number, y: number): number;
		}
		/**
		 * SparseArrays map integers to Objects. Unlike a normal array of Objects, there can be gaps in the indices. It is intended to be more efficient than using a HashMap to map Integers to Objects.
		 */
		export class SparseArray<E> extends java.lang.Object implements java.lang.ICloneable {
			/**
			 * Creates a new SparseArray containing no mappings.
			 */
			constructor();
			/**
			 * Creates a new SparseArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
			 */
			constructor(initialCapacity: number);
			static class: java.lang.Class<android.util.SparseArray<any>>;
			public clone(): android.util.SparseArray<E>;
			/**
			 * Gets the Object mapped from the specified key, or <code>null</code> if no such mapping has been made.
			 */
			public get(key: number): E;
			/**
			 * Gets the Object mapped from the specified key, or the specified Object if no such mapping has been made.
			 */
			public get(key: number, valueIfKeyNotFound: E): E;
			/**
			 * Removes the mapping from the specified key, if there was any.
			 */
			public delete(key: number): void;
			/**
			 * Alias for #delete(int).
			 */
			public remove(key: number): void;
			/**
			 * Removes the mapping at the specified index.
			 */
			public removeAt(index: number): void;
			/**
			 * Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
			 */
			public put(key: number, value: E): void;
			/**
			 * Returns the number of key-value mappings that this SparseArray currently stores.
			 */
			public size(): number;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the key from the <code>index</code>th key-value mapping that this SparseArray stores.
			 */
			public keyAt(index: number): number;
			/**
			 * Given an index in the range <code>0...size()-1</code>, returns the value from the <code>index</code>th key-value mapping that this SparseArray stores.
			 */
			public valueAt(index: number): E;
			/**
			 * Given an index in the range <code>0...size()-1</code>, sets a new value for the <code>index</code>th key-value mapping that this SparseArray stores.
			 */
			public setValueAt(index: number, value: E): void;
			/**
			 * Returns the index for which #keyAt would return the specified key, or a negative number if the specified key is not mapped.
			 */
			public indexOfKey(key: number): number;
			/**
			 * Returns an index for which #valueAt would return the specified key, or a negative number if no keys map to the specified value. Beware that this is a linear search, unlike lookups by key, and that multiple keys can map to the same value and this will find only one of them.
			 */
			public indexOfValue(value: E): number;
			/**
			 * Removes all key-value mappings from this SparseArray.
			 */
			public clear(): void;
			/**
			 * Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.
			 */
			public append(key: number, value: E): void;
		}
		/**
		 * Helper class for performing atomic operations on a file by creating a backup file until a write has successfully completed. If you need this on older versions of the platform you can use android.support.v4.util.AtomicFile in the v4 support library.
		 */
		export class AtomicFile extends java.lang.Object {
			/**
			 * Create a new AtomicFile for a file located at the given File path. The secondary backup file will be the same file path with ".bak" appended.
			 */
			constructor(baseName: java.io.File);
			static class: java.lang.Class<android.util.AtomicFile>;
			/**
			 * Return the path to the base file. You should not generally use this, as the data at that path may not be valid.
			 */
			public getBaseFile(): java.io.File;
			/**
			 * Delete the atomic file. This deletes both the base and backup files.
			 */
			public delete(): void;
			/**
			 * Start a new write operation on the file. This returns a FileOutputStream to which you can write the new file data. The existing file is replaced with the new data. You <em>must not</em> directly close the given FileOutputStream; instead call either #finishWrite(FileOutputStream) or #failWrite(FileOutputStream).
			 */
			public startWrite(): java.io.FileOutputStream;
			/**
			 * Call when you have successfully finished writing to the stream returned by #startWrite(). This will close, sync, and commit the new data. The next attempt to read the atomic file will return the new file stream.
			 */
			public finishWrite(str: java.io.FileOutputStream): void;
			/**
			 * Call when you have failed for some reason at writing to the stream returned by #startWrite(). This will close the current write stream, and roll back to the previous state of the file.
			 */
			public failWrite(str: java.io.FileOutputStream): void;
			/**
			 * Open the atomic file for reading. If there previously was an incomplete write, this will roll back to the last good data before opening for read. You should call close() on the FileInputStream when you are done reading from it.
			 */
			public openRead(): java.io.FileInputStream;
			/**
			 * A convenience for #openRead() that also reads all of the file contents into a byte array which is returned.
			 */
			public readFully(): native.Array<number>;
		}
		/**
		 * A collection of attributes, as found associated with a tag in an XML document. Often you will not want to use this interface directly, instead passing it to android.content.res.Resources.Theme#obtainStyledAttributes(AttributeSet, int[], int, int) Resources.Theme.obtainStyledAttributes() which will take care of parsing the attributes for you. In particular, the Resources API will convert resource references (attribute values such as " in the original XML) to the desired type for you; if you use AttributeSet directly then you will need to manually check for resource references (with #getAttributeResourceValue(int, int)) and do the resource lookup yourself if needed. Direct use of AttributeSet also prevents the application of themes and styles when retrieving attribute values. 
		 */
		export class AttributeSet implements android.util.IAttributeSet {
			constructor(implementation: android.util.IAttributeSet);
			/**
			 * Returns the number of attributes available in the set. 
			 */
			public getAttributeCount(): number;
			/**
			 * Returns the name of the specified attribute. 
			 * @param index Index of the desired attribute, 0...count-1.
			 */
			public getAttributeName(index: number): string;
			/**
			 * Returns the value of the specified attribute as a string representation. 
			 * @param index Index of the desired attribute, 0...count-1.
			 */
			public getAttributeValue(index: number): string;
			/**
			 * Returns the value of the specified attribute as a string representation. The lookup is performed using the attribute name. 
			 * @param namespace The namespace of the attribute to get the value from.
			 * @param name The name of the attribute to get the value from.
			 */
			public getAttributeValue(namespace: string, name: string): string;
			/**
			 * Returns a description of the current position of the attribute set. For instance, if the attribute set is loaded from an XML document, the position description could indicate the current line number. 
			 */
			public getPositionDescription(): string;
			/**
			 * Return the resource ID associated with the given attribute name. This will be the identifier for an attribute resource, which can be used by styles. Returns 0 if there is no resource associated with this attribute. 
			 * @param index Index of the desired attribute, 0...count-1.
			 */
			public getAttributeNameResource(index: number): number;
			/**
			 * Return the index of the value of 'attribute' in the list 'options'.
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute Name of attribute to retrieve.
			 * @param options List of strings whose values we are checking against.
			 * @param defaultValue Value returned if attribute doesn't exist or no
			 */
			public getAttributeListValue(namespace: string, attribute: string, options: native.Array<string>, defaultValue: number): number;
			/**
			 * Return the boolean value of 'attribute'. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeBooleanValue(namespace: string, attribute: string, defaultValue: boolean): boolean;
			/**
			 * Return the value of 'attribute' as a resource identifier. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeResourceValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the integer value of 'attribute'. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeIntValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the boolean value of 'attribute' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeUnsignedIntValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the float value of 'attribute'. 
			 * @param namespace Namespace of attribute to retrieve.
			 * @param attribute The attribute to retrieve.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeFloatValue(namespace: string, attribute: string, defaultValue: number): number;
			/**
			 * Return the index of the value of attribute at 'index' in the list 'options'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param options List of strings whose values we are checking against.
			 * @param defaultValue Value returned if attribute doesn't exist or no
			 */
			public getAttributeListValue(index: number, options: native.Array<string>, defaultValue: number): number;
			/**
			 * Return the boolean value of attribute at 'index'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeBooleanValue(index: number, defaultValue: boolean): boolean;
			/**
			 * Return the value of attribute at 'index' as a resource identifier. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeResourceValue(index: number, defaultValue: number): number;
			/**
			 * Return the integer value of attribute at 'index'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeIntValue(index: number, defaultValue: number): number;
			/**
			 * Return the integer value of attribute at 'index' that is formatted as an unsigned value. In particular, the formats 0xn...n and #n...n are handled. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeUnsignedIntValue(index: number, defaultValue: number): number;
			/**
			 * Return the float value of attribute at 'index'. 
			 * @param index Index of the desired attribute, 0...count-1.
			 * @param defaultValue What to return if the attribute isn't found.
			 */
			public getAttributeFloatValue(index: number, defaultValue: number): number;
			/**
			 * Return the value of the "id" attribute or null if there is not one. Equivalent to getAttributeValue(null, "id"). 
			 */
			public getIdAttribute(): string;
			/**
			 * Return the value of the "class" attribute or null if there is not one. Equivalent to getAttributeValue(null, "class"). 
			 */
			public getClassAttribute(): string;
			/**
			 * Return the integer value of the "id" attribute or defaultValue if there is none. Equivalent to getAttributeResourceValue(null, "id", defaultValue);
			 * @param defaultValue What to return if the "id" attribute isn't found.
			 */
			public getIdAttributeResourceValue(defaultValue: number): number;
			public getStyleAttribute(): number;
		}
		/**
		 * Helps answer common questions that come up when displaying a month in a 6 row calendar grid format.
		 */
		export class MonthDisplayHelper extends java.lang.Object {
			/**
			 * @param year The year.
			 * @param month The month.
			 * @param weekStartDay What day of the week the week should start.
			 */
			constructor(year: number, month: number, weekStartDay: number);
			constructor(year: number, month: number);
			static class: java.lang.Class<android.util.MonthDisplayHelper>;
			public getYear(): number;
			public getMonth(): number;
			public getWeekStartDay(): number;
			public getFirstDayOfMonth(): number;
			public getNumberOfDaysInMonth(): number;
			public getOffset(): number;
			/**
			 * @param row Which row (0-5).
			 */
			public getDigitsForRow(row: number): native.Array<number>;
			/**
			 * @param row The row, 0-5, starting from the top.
			 * @param column The column, 0-6, starting from the left.
			 */
			public getDayAt(row: number, column: number): number;
			public getRowOf(day: number): number;
			public getColumnOf(day: number): number;
			/**
			 * Decrement the month.
			 */
			public previousMonth(): void;
			/**
			 * Increment the month.
			 */
			public nextMonth(): void;
			public isWithinCurrentMonth(row: number, column: number): boolean;
		}
		/**
		 * XML utility methods.
		 */
		export class Xml extends java.lang.Object {
			/**
			 * org.xmlpull.v1.XmlPullParser "relaxed" feature name.
			 */
			static FEATURE_RELAXED: string;
			static class: java.lang.Class<android.util.Xml>;
			/**
			 * Parses the given xml string and fires events on the given SAX handler.
			 */
			public static parse(xml: string, contentHandler: org.xml.sax.IContentHandler): void;
			/**
			 * Parses xml from the given reader and fires events on the given SAX handler.
			 */
			public static parse(input: java.io.Reader, contentHandler: org.xml.sax.IContentHandler): void;
			/**
			 * Parses xml from the given input stream and fires events on the given SAX handler.
			 */
			public static parse(input: java.io.InputStream, encoding: android.util.Xml.Encoding, contentHandler: org.xml.sax.IContentHandler): void;
			/**
			 * Returns a new pull parser with namespace support.
			 */
			public static newPullParser(): org.xmlpull.v1.IXmlPullParser;
			/**
			 * Creates a new xml serializer.
			 */
			public static newSerializer(): org.xmlpull.v1.IXmlSerializer;
			/**
			 * Finds an encoding by name. Returns UTF-8 if you pass null.
			 */
			public static findEncodingByName(encodingName: string): android.util.Xml.Encoding;
			/**
			 * Return an AttributeSet interface for use with the given XmlPullParser. If the given parser itself implements AttributeSet, that implementation is simply returned. Otherwise a wrapper class is instantiated on top of the XmlPullParser, as a proxy for retrieving its attributes, and returned to you.
			 * @param parser The existing parser for which you would like an
			 */
			public static asAttributeSet(parser: org.xmlpull.v1.IXmlPullParser): android.util.IAttributeSet;
		}
		export module Xml {
			/**
			 * Factory for xml serializers. Initialized on demand.
			 */
			export class XmlSerializerFactory extends java.lang.Object {
				static class: java.lang.Class<android.util.Xml.XmlSerializerFactory>;
			}
			/**
			 * Supported character encodings.
			 */
			export enum Encoding {
				US_ASCII,
				UTF_8,
				UTF_16,
				ISO_8859_1
			}
		}
		/**
		 * Thrown when code requests a Property on a class that does not expose the appropriate method or field.
		 */
		export class NoSuchPropertyException extends java.lang.RuntimeException {
			constructor(s: string);
			static class: java.lang.Class<android.util.NoSuchPropertyException>;
		}
		/**
		 * Internal class to automatically generate a Property for a given class/name pair, given the specification of Property#of(java.lang.Class, java.lang.Class, java.lang.String)
		 */
		export class ReflectiveProperty<T, V> extends android.util.Property<T, V> {
			/**
			 * For given property name 'name', look for getName/isName method or 'name' field. Also look for setName method (optional - could be readonly). Failing method getters and field results in throwing NoSuchPropertyException.
			 * @param propertyHolder The class on which the methods or field are found
			 * @param valueType name The name of the property, where this name is capitalized and appended to
			 * @param name 
			 */
			constructor(propertyHolder: java.lang.Class<T>, valueType: java.lang.Class<V>, name: string);
			static class: java.lang.Class<android.util.ReflectiveProperty<any, any>>;
			public set(object: T, value: V): void;
			public get(object: T): V;
			/**
			 * Returns false if there is no setter or public field underlying this Property.
			 */
			public isReadOnly(): boolean;
		}
		/**
		 * An InputStream that does Base64 decoding on the data read through it.
		 */
		export class Base64InputStream extends java.io.FilterInputStream {
			/**
			 * An InputStream that performs Base64 decoding on the data read from the wrapped stream.
			 * @param input in the InputStream to read the source data from
			 * @param flags bit flags for controlling the decoder; see the
			 */
			constructor(input: java.io.InputStream, flags: number);
			static class: java.lang.Class<android.util.Base64InputStream>;
			public markSupported(): boolean;
			public mark(readlimit: number): void;
			public reset(): void;
			public close(): void;
			public available(): number;
			public skip(n: number): any;
			public read(): number;
			public read(b: native.Array<number>, off: number, len: number): number;
			/**
			 * Equivalent to read(buffer, 0, buffer.length).
			 */
			read(buffer: native.Array<number>): number;
		}
		/**
		 * Provides an implementation of AttributeSet on top of an XmlPullParser.
		 */
		export class XmlPullAttributes extends java.lang.Object implements android.util.IAttributeSet {
			constructor(parser: org.xmlpull.v1.IXmlPullParser);
			static class: java.lang.Class<android.util.XmlPullAttributes>;
			public getAttributeCount(): number;
			public getAttributeName(index: number): string;
			public getAttributeValue(index: number): string;
			public getAttributeValue(namespace: string, name: string): string;
			public getPositionDescription(): string;
			public getAttributeNameResource(index: number): number;
			public getAttributeListValue(namespace: string, attribute: string, options: native.Array<string>, defaultValue: number): number;
			public getAttributeBooleanValue(namespace: string, attribute: string, defaultValue: boolean): boolean;
			public getAttributeResourceValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeIntValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeUnsignedIntValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeFloatValue(namespace: string, attribute: string, defaultValue: number): number;
			public getAttributeListValue(index: number, options: native.Array<string>, defaultValue: number): number;
			public getAttributeBooleanValue(index: number, defaultValue: boolean): boolean;
			public getAttributeResourceValue(index: number, defaultValue: number): number;
			public getAttributeIntValue(index: number, defaultValue: number): number;
			public getAttributeUnsignedIntValue(index: number, defaultValue: number): number;
			public getAttributeFloatValue(index: number, defaultValue: number): number;
			public getIdAttribute(): string;
			public getClassAttribute(): string;
			public getIdAttributeResourceValue(defaultValue: number): number;
			public getStyleAttribute(): number;
		}
		export class LruCacheTest {
			constructor();
			static class: java.lang.Class<android.util.LruCacheTest>;
			public testStatistics(): void;
			public testStatisticsWithCreate(): void;
			public testCreateOnCacheMiss(): void;
			public testNoCreateOnCacheHit(): void;
			public testConstructorDoesNotAllowZeroCacheSize(): void;
			public testCannotPutNullKey(): void;
			public testCannotPutNullValue(): void;
			public testToString(): void;
			public testEvictionWithSingletonCache(): void;
			public testEntryEvictedWhenFull(): void;
			/**
			 * Replacing the value for a key doesn't cause an eviction but it does bring the replaced entry to the front of the queue.
			 */
			public testPutCauseEviction(): void;
			public testCustomSizesImpactsSize(): void;
			public testEvictionWithCustomSizes(): void;
			public testEvictionThrowsWhenSizesAreInconsistent(): void;
			public testEvictionThrowsWhenSizesAreNegative(): void;
			/**
			 * Naive caches evict at most one element at a time. This is problematic because evicting a small element may be insufficient to make room for a large element.
			 */
			public testDifferentElementSizes(): void;
			public testEvictAll(): void;
			public testEvictAllEvictsSizeZeroElements(): void;
			public testRemoveWithCustomSizes(): void;
			public testRemoveAbsentElement(): void;
			public testRemoveNullThrows(): void;
			public testRemoveCallsEntryRemoved(): void;
			public testPutCallsEntryRemoved(): void;
			public testEntryRemovedIsCalledWithoutSynchronization(): void;
			public testCreateIsCalledWithoutSynchronization(): void;
			/**
			 * Test what happens when a value is added to the map while create is working. The map value should be returned by get(), and the created value should be released with entryRemoved().
			 */
			public testCreateWithConcurrentPut(): void;
			/**
			 * Test what happens when two creates happen concurrently. The result from the first create to return is returned by both gets. The other created values should be released with entryRemove().
			 */
			public testCreateWithConcurrentCreate(): void;
		}
	}
	export module bluetooth {
		/**
		 * Public API for Bluetooth Health Profile.
		 */
		export class BluetoothHealth extends java.lang.Object implements android.bluetooth.IBluetoothProfile {
			/**
			 * Health Profile Source Role - the health device.
			 */
			static SOURCE_ROLE: number;
			/**
			 * Health Profile Sink Role the device talking to the health device.
			 */
			static SINK_ROLE: number;
			/**
			 * Health Profile - Channel Type used - Reliable
			 */
			static CHANNEL_TYPE_RELIABLE: number;
			/**
			 * Health Profile - Channel Type used - Streaming
			 */
			static CHANNEL_TYPE_STREAMING: number;
			/**
			 * Health Channel Connection State - Disconnected
			 */
			static STATE_CHANNEL_DISCONNECTED: number;
			/**
			 * Health Channel Connection State - Connecting
			 */
			static STATE_CHANNEL_CONNECTING: number;
			/**
			 * Health Channel Connection State - Connected
			 */
			static STATE_CHANNEL_CONNECTED: number;
			/**
			 * Health Channel Connection State - Disconnecting
			 */
			static STATE_CHANNEL_DISCONNECTING: number;
			/**
			 * Health App Configuration registration success
			 */
			static APP_CONFIG_REGISTRATION_SUCCESS: number;
			/**
			 * Health App Configuration registration failure
			 */
			static APP_CONFIG_REGISTRATION_FAILURE: number;
			/**
			 * Health App Configuration un-registration success
			 */
			static APP_CONFIG_UNREGISTRATION_SUCCESS: number;
			/**
			 * Health App Configuration un-registration failure
			 */
			static APP_CONFIG_UNREGISTRATION_FAILURE: number;
			static class: java.lang.Class<android.bluetooth.BluetoothHealth>;
			/**
			 * Register an application configuration that acts as a Health SINK. This is the configuration that will be used to communicate with health devices which will act as the #SOURCE_ROLE. This is an asynchronous call and so the callback is used to notify success or failure if the function returns true.
			 * @param name The friendly name associated with the application or configuration.
			 * @param dataType The dataType of the Source role of Health Profile to which
			 * @param callback A callback to indicate success or failure of the registration and
			 */
			public registerSinkAppConfiguration(name: string, dataType: number, callback: android.bluetooth.BluetoothHealthCallback): boolean;
			/**
			 * Unregister an application configuration that has been registered using #registerSinkAppConfiguration
			 * @param config The health app configuration
			 */
			public unregisterAppConfiguration(config: android.bluetooth.BluetoothHealthAppConfiguration): boolean;
			/**
			 * Connect to a health device which has the #SOURCE_ROLE. This is an asynchronous call. If this function returns true, the callback associated with the application configuration will be called.
			 * @param device The remote Bluetooth device.
			 * @param config The application configuration which has been registered using
			 */
			public connectChannelToSource(device: android.bluetooth.BluetoothDevice, config: android.bluetooth.BluetoothHealthAppConfiguration): boolean;
			/**
			 * Disconnect a connected health channel. This is an asynchronous call. If this function returns true, the callback associated with the application configuration will be called.
			 * @param device The remote Bluetooth device.
			 * @param config The application configuration which has been registered using
			 * @param channelId The channel id associated with the channel
			 */
			public disconnectChannel(device: android.bluetooth.BluetoothDevice, config: android.bluetooth.BluetoothHealthAppConfiguration, channelId: number): boolean;
			/**
			 * Get the file descriptor of the main channel associated with the remote device and application configuration.
			 * @param device The remote Bluetooth health device
			 * @param config The application configuration
			 */
			public getMainChannelFd(device: android.bluetooth.BluetoothDevice, config: android.bluetooth.BluetoothHealthAppConfiguration): android.os.ParcelFileDescriptor;
			/**
			 * Get the current connection state of the profile.
			 * @param device Remote bluetooth device.
			 */
			public getConnectionState(device: android.bluetooth.BluetoothDevice): number;
			/**
			 * Get connected devices for the health profile.
			 */
			public getConnectedDevices(): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * Get a list of devices that match any of the given connection states.
			 * @param states Array of states. States can be one of
			 */
			public getDevicesMatchingConnectionStates(states: native.Array<number>): java.util.IList<android.bluetooth.BluetoothDevice>;
			close(): void;
		}
		export module BluetoothHealth {
			export class BluetoothHealthCallbackWrapper {
				constructor(callback: android.bluetooth.BluetoothHealthCallback);
				static class: java.lang.Class<android.bluetooth.BluetoothHealth.BluetoothHealthCallbackWrapper>;
				public onHealthAppConfigurationStatusChange(config: android.bluetooth.BluetoothHealthAppConfiguration, status: number): void;
				public onHealthChannelStateChange(config: android.bluetooth.BluetoothHealthAppConfiguration, device: android.bluetooth.BluetoothDevice, prevState: number, newState: number, fd: android.os.ParcelFileDescriptor, channelId: number): void;
			}
		}
		/**
		 * Bluetooth Assigned Numbers.
		 */
		export class BluetoothAssignedNumbers extends java.lang.Object {
			static ERICSSON_TECHNOLOGY: number;
			static NOKIA_MOBILE_PHONES: number;
			static INTEL: number;
			static IBM: number;
			static TOSHIBA: number;
			static THREECOM: number;
			static MICROSOFT: number;
			static LUCENT: number;
			static MOTOROLA: number;
			static INFINEON_TECHNOLOGIES: number;
			static CAMBRIDGE_SILICON_RADIO: number;
			static SILICON_WAVE: number;
			static DIGIANSWER: number;
			static TEXAS_INSTRUMENTS: number;
			static PARTHUS_TECHNOLOGIES: number;
			static BROADCOM: number;
			static MITEL_SEMICONDUCTOR: number;
			static WIDCOMM: number;
			static ZEEVO: number;
			static ATMEL: number;
			static MITSUBISHI_ELECTRIC: number;
			static RTX_TELECOM: number;
			static KC_TECHNOLOGY: number;
			static NEWLOGIC: number;
			static TRANSILICA: number;
			static ROHDE_AND_SCHWARZ: number;
			static TTPCOM: number;
			static SIGNIA_TECHNOLOGIES: number;
			static CONEXANT_SYSTEMS: number;
			static QUALCOMM: number;
			static INVENTEL: number;
			static AVM_BERLIN: number;
			static BANDSPEED: number;
			static MANSELLA: number;
			static NEC: number;
			static WAVEPLUS_TECHNOLOGY: number;
			static ALCATEL: number;
			static PHILIPS_SEMICONDUCTORS: number;
			static C_TECHNOLOGIES: number;
			static OPEN_INTERFACE: number;
			static RF_MICRO_DEVICES: number;
			static HITACHI: number;
			static SYMBOL_TECHNOLOGIES: number;
			static TENOVIS: number;
			static MACRONIX: number;
			static GCT_SEMICONDUCTOR: number;
			static NORWOOD_SYSTEMS: number;
			static MEWTEL_TECHNOLOGY: number;
			static ST_MICROELECTRONICS: number;
			static SYNOPSYS: number;
			static RED_M: number;
			static COMMIL: number;
			static CATC: number;
			static ECLIPSE: number;
			static RENESAS_TECHNOLOGY: number;
			static MOBILIAN_CORPORATION: number;
			static TERAX: number;
			static INTEGRATED_SYSTEM_SOLUTION: number;
			static MATSUSHITA_ELECTRIC: number;
			static GENNUM: number;
			static RESEARCH_IN_MOTION: number;
			static IPEXTREME: number;
			static SYSTEMS_AND_CHIPS: number;
			static BLUETOOTH_SIG: number;
			static SEIKO_EPSON: number;
			static INTEGRATED_SILICON_SOLUTION: number;
			static CONWISE_TECHNOLOGY: number;
			static PARROT: number;
			static SOCKET_MOBILE: number;
			static ATHEROS_COMMUNICATIONS: number;
			static MEDIATEK: number;
			static BLUEGIGA: number;
			static MARVELL: number;
			static THREE_DSP: number;
			static ACCEL_SEMICONDUCTOR: number;
			static CONTINENTAL_AUTOMOTIVE: number;
			static APPLE: number;
			static STACCATO_COMMUNICATIONS: number;
			static AVAGO: number;
			static APT_LICENSING: number;
			static SIRF_TECHNOLOGY: number;
			static TZERO_TECHNOLOGIES: number;
			static J_AND_M: number;
			static FREE2MOVE: number;
			static THREE_DIJOY: number;
			static PLANTRONICS: number;
			static SONY_ERICSSON: number;
			static HARMAN_INTERNATIONAL: number;
			static VIZIO: number;
			static NORDIC_SEMICONDUCTOR: number;
			static EM_MICROELECTRONIC_MARIN: number;
			static RALINK_TECHNOLOGY: number;
			static BELKIN_INTERNATIONAL: number;
			static REALTEK_SEMICONDUCTOR: number;
			static STONESTREET_ONE: number;
			static WICENTRIC: number;
			static RIVIERAWAVES: number;
			static class: java.lang.Class<android.bluetooth.BluetoothAssignedNumbers>;
		}
		/**
		 * Public API for controlling the Bluetooth Headset Service. This includes both Bluetooth Headset and Handsfree (v1.5) profiles.
		 */
		export class BluetoothHeadset extends java.lang.Object implements android.bluetooth.IBluetoothProfile {
			/**
			 * Intent used to broadcast the change in connection state of the Headset profile.
			 */
			static ACTION_CONNECTION_STATE_CHANGED: string;
			/**
			 * Intent used to broadcast the change in the Audio Connection state of the A2DP profile.
			 */
			static ACTION_AUDIO_STATE_CHANGED: string;
			/**
			 * Intent used to broadcast that the headset has posted a vendor-specific event.
			 */
			static ACTION_VENDOR_SPECIFIC_HEADSET_EVENT: string;
			/**
			 * A String extra field in #ACTION_VENDOR_SPECIFIC_HEADSET_EVENT intents that contains the name of the vendor-specific command.
			 */
			static EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD: string;
			/**
			 * An int extra field in #ACTION_VENDOR_SPECIFIC_HEADSET_EVENT intents that contains the AT command type of the vendor-specific command.
			 */
			static EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE: string;
			/**
			 * AT command type READ used with #EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE For example, AT+VGM?. There are no arguments for this command type.
			 */
			static AT_CMD_TYPE_READ: number;
			/**
			 * AT command type TEST used with #EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE For example, AT+VGM=?. There are no arguments for this command type.
			 */
			static AT_CMD_TYPE_TEST: number;
			/**
			 * AT command type SET used with #EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE For example, AT+VGM=<args>.
			 */
			static AT_CMD_TYPE_SET: number;
			/**
			 * AT command type BASIC used with #EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE For example, ATD. Single character commands and everything following the character are arguments.
			 */
			static AT_CMD_TYPE_BASIC: number;
			/**
			 * AT command type ACTION used with #EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE For example, AT+CHUP. There are no arguments for action commands.
			 */
			static AT_CMD_TYPE_ACTION: number;
			/**
			 * A Parcelable String array extra field in #ACTION_VENDOR_SPECIFIC_HEADSET_EVENT intents that contains the arguments to the vendor-specific command.
			 */
			static EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS: string;
			/**
			 * The intent category to be used with #ACTION_VENDOR_SPECIFIC_HEADSET_EVENT for the companyId
			 */
			static VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY: string;
			/**
			 * Headset state when SCO audio is not connected. This state can be one of #EXTRA_STATE or #EXTRA_PREVIOUS_STATE of #ACTION_AUDIO_STATE_CHANGED intent.
			 */
			static STATE_AUDIO_DISCONNECTED: number;
			/**
			 * Headset state when SCO audio is connecting. This state can be one of #EXTRA_STATE or #EXTRA_PREVIOUS_STATE of #ACTION_AUDIO_STATE_CHANGED intent.
			 */
			static STATE_AUDIO_CONNECTING: number;
			/**
			 * Headset state when SCO audio is connected. This state can be one of #EXTRA_STATE or #EXTRA_PREVIOUS_STATE of #ACTION_AUDIO_STATE_CHANGED intent.
			 */
			static STATE_AUDIO_CONNECTED: number;
			static class: java.lang.Class<android.bluetooth.BluetoothHeadset>;
			/**
			 * Close the connection to the backing service. Other public functions of BluetoothHeadset will return default error results once close() has been called. Multiple invocations of close() are ok.
			 */
			close(): void;
			/**
			 * 
			 */
			public getConnectedDevices(): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * 
			 */
			public getDevicesMatchingConnectionStates(states: native.Array<number>): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * 
			 */
			public getConnectionState(device: android.bluetooth.BluetoothDevice): number;
			/**
			 * Start Bluetooth voice recognition. This methods sends the voice recognition AT command to the headset and establishes the audio connection.
			 * @param device Bluetooth headset
			 */
			public startVoiceRecognition(device: android.bluetooth.BluetoothDevice): boolean;
			/**
			 * Stop Bluetooth Voice Recognition mode, and shut down the Bluetooth audio path.
			 * @param device Bluetooth headset
			 */
			public stopVoiceRecognition(device: android.bluetooth.BluetoothDevice): boolean;
			/**
			 * Check if Bluetooth SCO audio is connected.
			 * @param device Bluetooth headset
			 */
			public isAudioConnected(device: android.bluetooth.BluetoothDevice): boolean;
		}
		/**
		 * Represents a remote Bluetooth device. A BluetoothDevice lets you create a connection with the respective device or query information about it, such as the name, address, class, and bonding state.
		 */
		export class BluetoothDevice extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Sentinel error value for this class. Guaranteed to not equal any other integer constant in this class. Provided as a convenience for functions that require a sentinel error value, for example:
			 */
			static ERROR: number;
			/**
			 * Broadcast Action: Remote device discovered.
			 */
			static ACTION_FOUND: string;
			/**
			 * Broadcast Action: Bluetooth class of a remote device has changed.
			 */
			static ACTION_CLASS_CHANGED: string;
			/**
			 * Broadcast Action: Indicates a low level (ACL) connection has been established with a remote device.
			 */
			static ACTION_ACL_CONNECTED: string;
			/**
			 * Broadcast Action: Indicates that a low level (ACL) disconnection has been requested for a remote device, and it will soon be disconnected.
			 */
			static ACTION_ACL_DISCONNECT_REQUESTED: string;
			/**
			 * Broadcast Action: Indicates a low level (ACL) disconnection from a remote device.
			 */
			static ACTION_ACL_DISCONNECTED: string;
			/**
			 * Broadcast Action: Indicates the friendly name of a remote device has been retrieved for the first time, or changed since the last retrieval.
			 */
			static ACTION_NAME_CHANGED: string;
			/**
			 * Broadcast Action: Indicates a change in the bond state of a remote device. For example, if a device is bonded (paired).
			 */
			static ACTION_BOND_STATE_CHANGED: string;
			/**
			 * Used as a Parcelable BluetoothDevice extra field in every intent broadcast by this class. It contains the BluetoothDevice that the intent applies to.
			 */
			static EXTRA_DEVICE: string;
			/**
			 * Used as a String extra field in #ACTION_NAME_CHANGED and #ACTION_FOUND intents. It contains the friendly Bluetooth name.
			 */
			static EXTRA_NAME: string;
			/**
			 * Used as an optional short extra field in #ACTION_FOUND intents. Contains the RSSI value of the remote device as reported by the Bluetooth hardware.
			 */
			static EXTRA_RSSI: string;
			/**
			 * Used as a Parcelable BluetoothClass extra field in #ACTION_FOUND and #ACTION_CLASS_CHANGED intents.
			 */
			static EXTRA_CLASS: string;
			/**
			 * Used as an int extra field in #ACTION_BOND_STATE_CHANGED intents. Contains the bond state of the remote device.
			 */
			static EXTRA_BOND_STATE: string;
			/**
			 * Used as an int extra field in #ACTION_BOND_STATE_CHANGED intents. Contains the previous bond state of the remote device.
			 */
			static EXTRA_PREVIOUS_BOND_STATE: string;
			/**
			 * Indicates the remote device is not bonded (paired).
			 */
			static BOND_NONE: number;
			/**
			 * Indicates bonding (pairing) is in progress with the remote device.
			 */
			static BOND_BONDING: number;
			/**
			 * Indicates the remote device is bonded (paired).
			 */
			static BOND_BONDED: number;
			/**
			 * Broadcast Action: This intent is used to broadcast the UUID wrapped as a android.os.ParcelUuid of the remote device after it has been fetched. This intent is sent only when the UUIDs of the remote device are requested to be fetched using Service Discovery Protocol
			 */
			static ACTION_UUID: string;
			/**
			 * Used as an extra field in #ACTION_UUID intents, Contains the android.os.ParcelUuids of the remote device which is a parcelable version of UUID.
			 */
			static EXTRA_UUID: string;
			static CREATOR: android.os.Parcelable.ICreator<android.bluetooth.BluetoothDevice>;
			static class: java.lang.Class<android.bluetooth.BluetoothDevice>;
			public equals(o: any): boolean;
			public hashCode(): number;
			/**
			 * Returns a string representation of this BluetoothDevice.
			 */
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Returns the hardware address of this BluetoothDevice.
			 */
			public getAddress(): string;
			/**
			 * Get the friendly Bluetooth name of the remote device.
			 */
			public getName(): string;
			/**
			 * Get the bond state of the remote device.
			 */
			public getBondState(): number;
			/**
			 * Get the Bluetooth class of the remote device.
			 */
			public getBluetoothClass(): android.bluetooth.BluetoothClass;
			/**
			 * Returns the supported features (UUIDs) of the remote device.
			 */
			public getUuids(): native.Array<android.os.ParcelUuid>;
			/**
			 * Perform a service discovery on the remote device to get the UUIDs supported.
			 */
			public fetchUuidsWithSdp(): boolean;
			/**
			 * Create an RFCOMM BluetoothSocket ready to start a secure outgoing connection to this remote device using SDP lookup of uuid.
			 * @param uuid service record uuid to lookup RFCOMM channel
			 */
			public createRfcommSocketToServiceRecord(uuid: java.util.UUID): android.bluetooth.BluetoothSocket;
			/**
			 * Create an RFCOMM BluetoothSocket socket ready to start an insecure outgoing connection to this remote device using SDP lookup of uuid.
			 * @param uuid service record uuid to lookup RFCOMM channel
			 */
			public createInsecureRfcommSocketToServiceRecord(uuid: java.util.UUID): android.bluetooth.BluetoothSocket;
		}
		/**
		 * Public APIs for the Bluetooth Profiles.
		 */
		export class BluetoothProfile implements android.bluetooth.IBluetoothProfile {
			constructor(implementation: android.bluetooth.IBluetoothProfile);
			/**
			 * Extra for the connection state intents of the individual profiles.
			 */
			static EXTRA_STATE: string;
			/**
			 * Extra for the connection state intents of the individual profiles.
			 */
			static EXTRA_PREVIOUS_STATE: string;
			/**
			 * The profile is in disconnected state
			 */
			static STATE_DISCONNECTED: number;
			/**
			 * The profile is in connecting state
			 */
			static STATE_CONNECTING: number;
			/**
			 * The profile is in connected state
			 */
			static STATE_CONNECTED: number;
			/**
			 * The profile is in disconnecting state
			 */
			static STATE_DISCONNECTING: number;
			/**
			 * Headset and Handsfree profile
			 */
			static HEADSET: number;
			/**
			 * A2DP profile.
			 */
			static A2DP: number;
			/**
			 * Health Profile
			 */
			static HEALTH: number;
			/**
			 * Get connected devices for this specific profile.
			 */
			public getConnectedDevices(): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * Get a list of devices that match any of the given connection states.
			 * @param states Array of states. States can be one of
			 */
			public getDevicesMatchingConnectionStates(states: native.Array<number>): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * Get the current connection state of the profile
			 * @param device Remote bluetooth device.
			 */
			public getConnectionState(device: android.bluetooth.BluetoothDevice): number;
		}
		export module BluetoothProfile {
			/**
			 * An interface for notifying BluetoothProfile IPC clients when they have been connected or disconnected to the service.
			 */
			interface IServiceListener {
				/**
				 * Called to notify the client when the proxy object has been connected to the service.
				 * @param profile - One of {@link #HEALTH}, {@link #HEADSET} or
				 * @param proxy - One of {@link BluetoothHealth}, {@link BluetoothHeadset} or
				 */
				onServiceConnected(profile: number, proxy: android.bluetooth.IBluetoothProfile): void;
				/**
				 * Called to notify the client that this proxy object has been disconnected from the service.
				 * @param profile - One of {@link #HEALTH}, {@link #HEADSET} or
				 */
				onServiceDisconnected(profile: number): void;
			}
			/**
			 * An interface for notifying BluetoothProfile IPC clients when they have been connected or disconnected to the service.
			 */
			export class ServiceListener implements android.bluetooth.BluetoothProfile.IServiceListener {
				constructor(implementation: android.bluetooth.BluetoothProfile.IServiceListener);
				/**
				 * Called to notify the client when the proxy object has been connected to the service.
				 * @param profile - One of {@link #HEALTH}, {@link #HEADSET} or
				 * @param proxy - One of {@link BluetoothHealth}, {@link BluetoothHeadset} or
				 */
				public onServiceConnected(profile: number, proxy: android.bluetooth.IBluetoothProfile): void;
				/**
				 * Called to notify the client that this proxy object has been disconnected from the service.
				 * @param profile - One of {@link #HEALTH}, {@link #HEADSET} or
				 */
				public onServiceDisconnected(profile: number): void;
			}
		}
		/**
		 * Instrumentation test case for stress test involving rebooting the device.
		 */
		export class BluetoothRebootStressTest extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.bluetooth.BluetoothRebootStressTest>;
			protected setUp(): void;
			protected tearDown(): void;
			/**
			 * Test method used to start the test by turning bluetooth on.
			 */
			public testStart(): void;
			/**
			 * Test method used in the middle iterations of the test to check if bluetooth is on. Does not toggle bluetooth after the check. Assumes that bluetooth has been turned on by #testStart()
			 */
			public testMiddleNoToggle(): void;
			/**
			 * Test method used in the middle iterations of the test to check if bluetooth is on. Toggles bluetooth after the check. Assumes that bluetooth has been turned on by #testStart()
			 */
			public testMiddleToggle(): void;
			/**
			 * Test method used in the stop the test by turning bluetooth off. Assumes that bluetooth has been turned on by #testStart()
			 */
			public testStop(): void;
		}
		/**
		 * Stress test suite for Bluetooth related functions.
		 */
		export class BluetoothStressTest extends android.test.InstrumentationTestCase {
			constructor();
			static class: java.lang.Class<android.bluetooth.BluetoothStressTest>;
			protected setUp(): void;
			protected tearDown(): void;
			/**
			 * Stress test for enabling and disabling Bluetooth.
			 */
			public testEnable(): void;
			/**
			 * Stress test for putting the device in and taking the device out of discoverable mode.
			 */
			public testDiscoverable(): void;
			/**
			 * Stress test for starting and stopping Bluetooth scans.
			 */
			public testScan(): void;
			/**
			 * Stress test for enabling and disabling the PAN NAP profile.
			 */
			public testEnablePan(): void;
			/**
			 * Stress test for pairing and unpairing with a remote device.
			 */
			public testPair(): void;
			/**
			 * Stress test for accepting a pairing request and unpairing with a remote device.
			 */
			public testAcceptPair(): void;
			/**
			 * Stress test for connecting and disconnecting with an A2DP source.
			 */
			public testConnectA2dp(): void;
			/**
			 * Stress test for connecting and disconnecting the HFP with a hands free device.
			 */
			public testConnectHeadset(): void;
			/**
			 * Stress test for connecting and disconnecting with a HID device.
			 */
			public testConnectInput(): void;
			/**
			 * Stress test for connecting and disconnecting with a PAN NAP.
			 */
			public testConnectPan(): void;
			/**
			 * Stress test for verifying a PANU connecting and disconnecting with the device.
			 */
			public testIncomingPanConnection(): void;
			/**
			 * Stress test for verifying that AudioManager can open and close SCO connections.
			 */
			public testStartStopSco(): void;
		}
		/**
		 * Represents a Bluetooth class, which describes general characteristics and capabilities of a device. For example, a Bluetooth class will specify the general device type such as a phone, a computer, or headset, and whether it's capable of services such as audio or telephony.
		 */
		export class BluetoothClass extends java.lang.Object implements android.os.IParcelable {
			static CREATOR: android.os.Parcelable.ICreator<android.bluetooth.BluetoothClass>;
			static class: java.lang.Class<android.bluetooth.BluetoothClass>;
			public equals(o: any): boolean;
			public hashCode(): number;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Return true if the specified service class is supported by this BluetoothClass.
			 * @param service valid service class
			 */
			public hasService(service: number): boolean;
			/**
			 * Return the major device class component of this BluetoothClass.
			 */
			public getMajorDeviceClass(): number;
			/**
			 * Return the (major and minor) device class component of this BluetoothClass.
			 */
			public getDeviceClass(): number;
		}
		export module BluetoothClass {
			/**
			 * Defines all device class constants.
			 */
			export class Device extends java.lang.Object {
				constructor();
				static COMPUTER_UNCATEGORIZED: number;
				static COMPUTER_DESKTOP: number;
				static COMPUTER_SERVER: number;
				static COMPUTER_LAPTOP: number;
				static COMPUTER_HANDHELD_PC_PDA: number;
				static COMPUTER_PALM_SIZE_PC_PDA: number;
				static COMPUTER_WEARABLE: number;
				static PHONE_UNCATEGORIZED: number;
				static PHONE_CELLULAR: number;
				static PHONE_CORDLESS: number;
				static PHONE_SMART: number;
				static PHONE_MODEM_OR_GATEWAY: number;
				static PHONE_ISDN: number;
				static AUDIO_VIDEO_UNCATEGORIZED: number;
				static AUDIO_VIDEO_WEARABLE_HEADSET: number;
				static AUDIO_VIDEO_HANDSFREE: number;
				static AUDIO_VIDEO_MICROPHONE: number;
				static AUDIO_VIDEO_LOUDSPEAKER: number;
				static AUDIO_VIDEO_HEADPHONES: number;
				static AUDIO_VIDEO_PORTABLE_AUDIO: number;
				static AUDIO_VIDEO_CAR_AUDIO: number;
				static AUDIO_VIDEO_SET_TOP_BOX: number;
				static AUDIO_VIDEO_HIFI_AUDIO: number;
				static AUDIO_VIDEO_VCR: number;
				static AUDIO_VIDEO_VIDEO_CAMERA: number;
				static AUDIO_VIDEO_CAMCORDER: number;
				static AUDIO_VIDEO_VIDEO_MONITOR: number;
				static AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER: number;
				static AUDIO_VIDEO_VIDEO_CONFERENCING: number;
				static AUDIO_VIDEO_VIDEO_GAMING_TOY: number;
				static WEARABLE_UNCATEGORIZED: number;
				static WEARABLE_WRIST_WATCH: number;
				static WEARABLE_PAGER: number;
				static WEARABLE_JACKET: number;
				static WEARABLE_HELMET: number;
				static WEARABLE_GLASSES: number;
				static TOY_UNCATEGORIZED: number;
				static TOY_ROBOT: number;
				static TOY_VEHICLE: number;
				static TOY_DOLL_ACTION_FIGURE: number;
				static TOY_CONTROLLER: number;
				static TOY_GAME: number;
				static HEALTH_UNCATEGORIZED: number;
				static HEALTH_BLOOD_PRESSURE: number;
				static HEALTH_THERMOMETER: number;
				static HEALTH_WEIGHING: number;
				static HEALTH_GLUCOSE: number;
				static HEALTH_PULSE_OXIMETER: number;
				static HEALTH_PULSE_RATE: number;
				static HEALTH_DATA_DISPLAY: number;
				static class: java.lang.Class<android.bluetooth.BluetoothClass.Device>;
			}
			export module Device {
				/**
				 * Defines all major device class constants.
				 */
				export class Major extends java.lang.Object {
					constructor();
					static MISC: number;
					static COMPUTER: number;
					static PHONE: number;
					static NETWORKING: number;
					static AUDIO_VIDEO: number;
					static PERIPHERAL: number;
					static IMAGING: number;
					static WEARABLE: number;
					static TOY: number;
					static HEALTH: number;
					static UNCATEGORIZED: number;
					static class: java.lang.Class<android.bluetooth.BluetoothClass.Device.Major>;
				}
			}
			/**
			 * Defines all service class constants.
			 */
			export class Service extends java.lang.Object {
				constructor();
				static LIMITED_DISCOVERABILITY: number;
				static POSITIONING: number;
				static NETWORKING: number;
				static RENDER: number;
				static CAPTURE: number;
				static OBJECT_TRANSFER: number;
				static AUDIO: number;
				static TELEPHONY: number;
				static INFORMATION: number;
				static class: java.lang.Class<android.bluetooth.BluetoothClass.Service>;
			}
		}
		/**
		 * Instrumentation test runner for Bluetooth tests.
		 */
		export class BluetoothTestRunner extends android.test.InstrumentationTestRunner {
			constructor();
			static sEnableIterations: number;
			static sDiscoverableIterations: number;
			static sScanIterations: number;
			static sEnablePanIterations: number;
			static sPairIterations: number;
			static sConnectHeadsetIterations: number;
			static sConnectA2dpIterations: number;
			static sConnectInputIterations: number;
			static sConnectPanIterations: number;
			static sStartStopScoIterations: number;
			static sDeviceAddress: string;
			static sDevicePairPin: native.Array<number>;
			static sDevicePairPasskey: number;
			static class: java.lang.Class<android.bluetooth.BluetoothTestRunner>;
			public getLoader(): java.lang.ClassLoader;
			public onCreate(args: android.os.Bundle): void;
		}
		/**
		 * Public APIs for the Bluetooth Profiles.
		 */
		interface IBluetoothProfile {
			/**
			 * Get connected devices for this specific profile.
			 */
			getConnectedDevices(): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * Get a list of devices that match any of the given connection states.
			 * @param states Array of states. States can be one of
			 */
			getDevicesMatchingConnectionStates(states: native.Array<number>): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * Get the current connection state of the profile
			 * @param device Remote bluetooth device.
			 */
			getConnectionState(device: android.bluetooth.BluetoothDevice): number;
		}
		export module IBluetoothProfile {
			/**
			 * Extra for the connection state intents of the individual profiles.
			 */
			var EXTRA_STATE: string;
			/**
			 * Extra for the connection state intents of the individual profiles.
			 */
			var EXTRA_PREVIOUS_STATE: string;
			/**
			 * The profile is in disconnected state
			 */
			var STATE_DISCONNECTED: number;
			/**
			 * The profile is in connecting state
			 */
			var STATE_CONNECTING: number;
			/**
			 * The profile is in connected state
			 */
			var STATE_CONNECTED: number;
			/**
			 * The profile is in disconnecting state
			 */
			var STATE_DISCONNECTING: number;
			/**
			 * Headset and Handsfree profile
			 */
			var HEADSET: number;
			/**
			 * A2DP profile.
			 */
			var A2DP: number;
			/**
			 * Health Profile
			 */
			var HEALTH: number;
		}
		export class BluetoothTestUtils {
			/**
			 * Creates a utility instance for testing Bluetooth.
			 * @param context The context of the application using the utility.
			 * @param tag The log tag of the application using the utility.
			 */
			constructor(context: android.content.Context, tag: string);
			/**
			 * Creates a utility instance for testing Bluetooth.
			 * @param context The context of the application using the utility.
			 * @param tag The log tag of the application using the utility.
			 * @param outputFile The path to an output file if the utility is to write results to a
			 */
			constructor(context: android.content.Context, tag: string, outputFile: string);
			static class: java.lang.Class<android.bluetooth.BluetoothTestUtils>;
			StartStopScoReceiver: {
	new (expectedFlags: number): android.bluetooth.BluetoothTestUtils.StartStopScoReceiver;
};
			PairReceiver: {
	new (device: android.bluetooth.BluetoothDevice, passkey: number, pin: native.Array<number>, expectedFlags: number): android.bluetooth.BluetoothTestUtils.PairReceiver;
};
			FlagReceiver: {
	new (expectedFlags: number): android.bluetooth.BluetoothTestUtils.FlagReceiver;
};
			BluetoothReceiver: {
	new (expectedFlags: number): android.bluetooth.BluetoothTestUtils.BluetoothReceiver;
};
			ConnectProfileReceiver: {
	new (device: android.bluetooth.BluetoothDevice, profile: number, expectedFlags: number): android.bluetooth.BluetoothTestUtils.ConnectProfileReceiver;
};
			ConnectPanReceiver: {
	new (device: android.bluetooth.BluetoothDevice, role: number, expectedFlags: number): android.bluetooth.BluetoothTestUtils.ConnectPanReceiver;
};
			/**
			 * Closes the utility instance and unregisters any BroadcastReceivers.
			 */
			public close(): void;
			/**
			 * Enables Bluetooth and checks to make sure that Bluetooth was turned on and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 */
			public enable(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Disables Bluetooth and checks to make sure that Bluetooth was turned off and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 */
			public disable(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Puts the local device into discoverable mode and checks to make sure that the local device is in discoverable mode and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 */
			public discoverable(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Puts the local device into connectable only mode and checks to make sure that the local device is in in connectable mode and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 */
			public undiscoverable(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Starts a scan for remote devices and checks to make sure that the local device is scanning and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 */
			public startScan(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Stops a scan for remote devices and checks to make sure that the local device is not scanning and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 */
			public stopScan(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Enables PAN tethering on the local device and checks to make sure that tethering is enabled.
			 * @param adapter The BT adapter.
			 */
			public enablePan(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Disables PAN tethering on the local device and checks to make sure that tethering is disabled.
			 * @param adapter The BT adapter.
			 */
			public disablePan(adapter: android.bluetooth.BluetoothAdapter): void;
			/**
			 * Initiates a pairing with a remote device and checks to make sure that the devices are paired and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 * @param passkey The pairing passkey if pairing requires a passkey. Any value if not.
			 * @param pin The pairing pin if pairing requires a pin. Any value if not.
			 */
			public pair(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice, passkey: number, pin: native.Array<number>): void;
			/**
			 * Accepts a pairing with a remote device and checks to make sure that the devices are paired and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 * @param passkey The pairing passkey if pairing requires a passkey. Any value if not.
			 * @param pin The pairing pin if pairing requires a pin. Any value if not.
			 */
			public acceptPair(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice, passkey: number, pin: native.Array<number>): void;
			/**
			 * Deletes a pairing with a remote device and checks to make sure that the devices are unpaired and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 */
			public unpair(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice): void;
			/**
			 * Connects a profile from the local device to a remote device and checks to make sure that the profile is connected and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 * @param profile The profile to connect. One of {@link BluetoothProfile#A2DP},
			 * @param methodName The method name to printed in the logs. If null, will be
			 */
			public connectProfile(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice, profile: number, methodName: string): void;
			/**
			 * Disconnects a profile between the local device and a remote device and checks to make sure that the profile is disconnected and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 * @param profile The profile to disconnect. One of {@link BluetoothProfile#A2DP},
			 * @param methodName The method name to printed in the logs. If null, will be
			 */
			public disconnectProfile(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice, profile: number, methodName: string): void;
			/**
			 * Connects the PANU to a remote NAP and checks to make sure that the PANU is connected and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 */
			public connectPan(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice): void;
			/**
			 * Checks that a remote PANU connects to the local NAP correctly and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 */
			public incomingPanConnection(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice): void;
			/**
			 * Disconnects the PANU from a remote NAP and checks to make sure that the PANU is disconnected and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 */
			public disconnectPan(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice): void;
			/**
			 * Checks that a remote PANU disconnects from the local NAP correctly and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 */
			public incomingPanDisconnection(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice): void;
			/**
			 * Opens a SCO channel using android.media.AudioManager#startBluetoothSco() and checks to make sure that the channel is opened and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 */
			public startSco(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice): void;
			/**
			 * Closes a SCO channel using android.media.AudioManager#stopBluetoothSco() and checks to make sure that the channel is closed and that the correct actions were broadcast.
			 * @param adapter The BT adapter.
			 * @param device The remote device.
			 */
			public stopSco(adapter: android.bluetooth.BluetoothAdapter, device: android.bluetooth.BluetoothDevice): void;
			/**
			 * Writes a string to the logcat and a file if a file has been specified in the constructor.
			 * @param s The string to be written.
			 */
			public writeOutput(s: string): void;
		}
		export module BluetoothTestUtils {
			export class StartStopScoReceiver extends android.bluetooth.BluetoothTestUtils.FlagReceiver {
				static class: java.lang.Class<android.bluetooth.BluetoothTestUtils.StartStopScoReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class PairReceiver extends android.bluetooth.BluetoothTestUtils.FlagReceiver {
				static class: java.lang.Class<android.bluetooth.BluetoothTestUtils.PairReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class FlagReceiver extends android.content.BroadcastReceiver {
				static class: java.lang.Class<android.bluetooth.BluetoothTestUtils.FlagReceiver>;
				public getFiredFlags(): number;
				public getCompletedTime(): any;
				protected setFiredFlag(flag: number): void;
			}
			export class BluetoothReceiver extends android.bluetooth.BluetoothTestUtils.FlagReceiver {
				static class: java.lang.Class<android.bluetooth.BluetoothTestUtils.BluetoothReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class ConnectProfileReceiver extends android.bluetooth.BluetoothTestUtils.FlagReceiver {
				static class: java.lang.Class<android.bluetooth.BluetoothTestUtils.ConnectProfileReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
			export class ConnectPanReceiver extends android.bluetooth.BluetoothTestUtils.ConnectProfileReceiver {
				static class: java.lang.Class<android.bluetooth.BluetoothTestUtils.ConnectPanReceiver>;
				public onReceive(context: android.content.Context, intent: android.content.Intent): void;
			}
		}
		/**
		 * This class provides the public APIs to control the Bluetooth A2DP profile.
		 */
		export class BluetoothA2dp extends java.lang.Object implements android.bluetooth.IBluetoothProfile {
			/**
			 * Intent used to broadcast the change in connection state of the A2DP profile.
			 */
			static ACTION_CONNECTION_STATE_CHANGED: string;
			/**
			 * Intent used to broadcast the change in the Playing state of the A2DP profile.
			 */
			static ACTION_PLAYING_STATE_CHANGED: string;
			/**
			 * A2DP sink device is streaming music. This state can be one of #EXTRA_STATE or #EXTRA_PREVIOUS_STATE of #ACTION_PLAYING_STATE_CHANGED intent.
			 */
			static STATE_PLAYING: number;
			/**
			 * A2DP sink device is NOT streaming music. This state can be one of #EXTRA_STATE or #EXTRA_PREVIOUS_STATE of #ACTION_PLAYING_STATE_CHANGED intent.
			 */
			static STATE_NOT_PLAYING: number;
			static class: java.lang.Class<android.bluetooth.BluetoothA2dp>;
			close(): void;
			public finalize(): void;
			/**
			 * 
			 */
			public getConnectedDevices(): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * 
			 */
			public getDevicesMatchingConnectionStates(states: native.Array<number>): java.util.IList<android.bluetooth.BluetoothDevice>;
			/**
			 * 
			 */
			public getConnectionState(device: android.bluetooth.BluetoothDevice): number;
			/**
			 * Check if A2DP profile is streaming music.
			 * @param device BluetoothDevice device
			 */
			public isA2dpPlaying(device: android.bluetooth.BluetoothDevice): boolean;
		}
		/**
		 * A listening Bluetooth socket.
		 */
		export class BluetoothServerSocket extends java.lang.Object implements java.io.ICloseable {
			static class: java.lang.Class<android.bluetooth.BluetoothServerSocket>;
			/**
			 * Block until a connection is established.
			 */
			public accept(): android.bluetooth.BluetoothSocket;
			/**
			 * Block until a connection is established, with timeout.
			 */
			public accept(timeout: number): android.bluetooth.BluetoothSocket;
			/**
			 * Immediately close this socket, and release all associated resources.
			 */
			public close(): void;
			setCloseHandler(handler: android.os.Handler, message: number): void;
			setServiceName(ServiceName: string): void;
		}
		/**
		 * This abstract class is used to implement BluetoothHealth callbacks.
		 */
		export class BluetoothHealthCallback extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.bluetooth.BluetoothHealthCallback>;
			/**
			 * Callback to inform change in registration state of the health application.
			 * @param config Bluetooth Health app configuration
			 * @param status Success or failure of the registration or unregistration
			 */
			public onHealthAppConfigurationStatusChange(config: android.bluetooth.BluetoothHealthAppConfiguration, status: number): void;
			/**
			 * Callback to inform change in channel state.
			 * @param config The Health app configutation
			 * @param device The Bluetooth Device
			 * @param prevState The previous state of the channel
			 * @param newState The new state of the channel.
			 * @param fd The Parcel File Descriptor when the channel state is connected.
			 * @param channelId The id associated with the channel. This id will be used
			 */
			public onHealthChannelStateChange(config: android.bluetooth.BluetoothHealthAppConfiguration, device: android.bluetooth.BluetoothDevice, prevState: number, newState: number, fd: android.os.ParcelFileDescriptor, channelId: number): void;
		}
		/**
		 * A connected or connecting Bluetooth socket.
		 */
		export class BluetoothSocket extends java.lang.Object implements java.io.ICloseable {
			static class: java.lang.Class<android.bluetooth.BluetoothSocket>;
			/**
			 * Get the remote device this socket is connecting, or connected, to.
			 */
			public getRemoteDevice(): android.bluetooth.BluetoothDevice;
			/**
			 * Get the input stream associated with this socket.
			 */
			public getInputStream(): java.io.InputStream;
			/**
			 * Get the output stream associated with this socket.
			 */
			public getOutputStream(): java.io.OutputStream;
			/**
			 * Get the connection status of this socket, ie, whether there is an active connection with remote device.
			 */
			public isConnected(): boolean;
			setServiceName(name: string): void;
			/**
			 * Attempt to connect to a remote device.
			 */
			public connect(): void;
			/**
			 * Currently returns unix errno instead of throwing IOException, so that BluetoothAdapter can check the error code for EADDRINUSE
			 */
			bindListen(): number;
			accept(timeout: number): android.bluetooth.BluetoothSocket;
			available(): number;
			read(b: native.Array<number>, offset: number, length: number): number;
			write(b: native.Array<number>, offset: number, length: number): number;
			public close(): void;
			removeChannel(): void;
			getPort(): number;
		}
		export module BluetoothSocket {
			export enum SocketState {
				INIT,
				CONNECTED,
				LISTENING,
				CLOSED
			}
		}
		/**
		 * Represents the local device Bluetooth adapter. The BluetoothAdapter lets you perform fundamental Bluetooth tasks, such as initiate device discovery, query a list of bonded (paired) devices, instantiate a BluetoothDevice using a known MAC address, and create a BluetoothServerSocket to listen for connection requests from other devices.
		 */
		export class BluetoothAdapter extends java.lang.Object {
			/**
			 * Sentinel error value for this class. Guaranteed to not equal any other integer constant in this class. Provided as a convenience for functions that require a sentinel error value, for example:
			 */
			static ERROR: number;
			/**
			 * Broadcast Action: The state of the local Bluetooth adapter has been changed.
			 */
			static ACTION_STATE_CHANGED: string;
			/**
			 * Used as an int extra field in #ACTION_STATE_CHANGED intents to request the current power state. Possible values are: #STATE_OFF, #STATE_TURNING_ON, #STATE_ON, #STATE_TURNING_OFF,
			 */
			static EXTRA_STATE: string;
			/**
			 * Used as an int extra field in #ACTION_STATE_CHANGED intents to request the previous power state. Possible values are: #STATE_OFF, #STATE_TURNING_ON, #STATE_ON, #STATE_TURNING_OFF,
			 */
			static EXTRA_PREVIOUS_STATE: string;
			/**
			 * Indicates the local Bluetooth adapter is off.
			 */
			static STATE_OFF: number;
			/**
			 * Indicates the local Bluetooth adapter is turning on. However local clients should wait for #STATE_ON before attempting to use the adapter.
			 */
			static STATE_TURNING_ON: number;
			/**
			 * Indicates the local Bluetooth adapter is on, and ready for use.
			 */
			static STATE_ON: number;
			/**
			 * Indicates the local Bluetooth adapter is turning off. Local clients should immediately attempt graceful disconnection of any remote links.
			 */
			static STATE_TURNING_OFF: number;
			/**
			 * Activity Action: Show a system activity that requests discoverable mode. This activity will also request the user to turn on Bluetooth if it is not currently enabled.
			 */
			static ACTION_REQUEST_DISCOVERABLE: string;
			/**
			 * Used as an optional int extra field in #ACTION_REQUEST_DISCOVERABLE intents to request a specific duration for discoverability in seconds. The current default is 120 seconds, and requests over 300 seconds will be capped. These values could change.
			 */
			static EXTRA_DISCOVERABLE_DURATION: string;
			/**
			 * Activity Action: Show a system activity that allows the user to turn on Bluetooth.
			 */
			static ACTION_REQUEST_ENABLE: string;
			/**
			 * Broadcast Action: Indicates the Bluetooth scan mode of the local Adapter has changed.
			 */
			static ACTION_SCAN_MODE_CHANGED: string;
			/**
			 * Used as an int extra field in #ACTION_SCAN_MODE_CHANGED intents to request the current scan mode. Possible values are: #SCAN_MODE_NONE, #SCAN_MODE_CONNECTABLE, #SCAN_MODE_CONNECTABLE_DISCOVERABLE,
			 */
			static EXTRA_SCAN_MODE: string;
			/**
			 * Used as an int extra field in #ACTION_SCAN_MODE_CHANGED intents to request the previous scan mode. Possible values are: #SCAN_MODE_NONE, #SCAN_MODE_CONNECTABLE, #SCAN_MODE_CONNECTABLE_DISCOVERABLE,
			 */
			static EXTRA_PREVIOUS_SCAN_MODE: string;
			/**
			 * Indicates that both inquiry scan and page scan are disabled on the local Bluetooth adapter. Therefore this device is neither discoverable nor connectable from remote Bluetooth devices.
			 */
			static SCAN_MODE_NONE: number;
			/**
			 * Indicates that inquiry scan is disabled, but page scan is enabled on the local Bluetooth adapter. Therefore this device is not discoverable from remote Bluetooth devices, but is connectable from remote devices that have previously discovered this device.
			 */
			static SCAN_MODE_CONNECTABLE: number;
			/**
			 * Indicates that both inquiry scan and page scan are enabled on the local Bluetooth adapter. Therefore this device is both discoverable and connectable from remote Bluetooth devices.
			 */
			static SCAN_MODE_CONNECTABLE_DISCOVERABLE: number;
			/**
			 * Broadcast Action: The local Bluetooth adapter has started the remote device discovery process.
			 */
			static ACTION_DISCOVERY_STARTED: string;
			/**
			 * Broadcast Action: The local Bluetooth adapter has finished the device discovery process.
			 */
			static ACTION_DISCOVERY_FINISHED: string;
			/**
			 * Broadcast Action: The local Bluetooth adapter has changed its friendly Bluetooth name.
			 */
			static ACTION_LOCAL_NAME_CHANGED: string;
			/**
			 * Used as a String extra field in #ACTION_LOCAL_NAME_CHANGED intents to request the local Bluetooth name.
			 */
			static EXTRA_LOCAL_NAME: string;
			/**
			 * Intent used to broadcast the change in connection state of the local Bluetooth adapter to a profile of the remote device. When the adapter is not connected to any profiles of any remote devices and it attempts a connection to a profile this intent will sent. Once connected, this intent will not be sent for any more connection attempts to any profiles of any remote device. When the adapter disconnects from the last profile its connected to of any remote device, this intent will be sent.
			 */
			static ACTION_CONNECTION_STATE_CHANGED: string;
			/**
			 * Extra used by #ACTION_CONNECTION_STATE_CHANGED
			 */
			static EXTRA_CONNECTION_STATE: string;
			/**
			 * Extra used by #ACTION_CONNECTION_STATE_CHANGED
			 */
			static EXTRA_PREVIOUS_CONNECTION_STATE: string;
			/**
			 * The profile is in disconnected state
			 */
			static STATE_DISCONNECTED: number;
			/**
			 * The profile is in connecting state
			 */
			static STATE_CONNECTING: number;
			/**
			 * The profile is in connected state
			 */
			static STATE_CONNECTED: number;
			/**
			 * The profile is in disconnecting state
			 */
			static STATE_DISCONNECTING: number;
			static class: java.lang.Class<android.bluetooth.BluetoothAdapter>;
			/**
			 * Get a handle to the default local Bluetooth adapter.
			 */
			public static getDefaultAdapter(): android.bluetooth.BluetoothAdapter;
			/**
			 * Get a BluetoothDevice object for the given Bluetooth hardware address.
			 * @param address valid Bluetooth MAC address
			 */
			public getRemoteDevice(address: string): android.bluetooth.BluetoothDevice;
			/**
			 * Get a BluetoothDevice object for the given Bluetooth hardware address.
			 * @param address Bluetooth MAC address (6 bytes)
			 */
			public getRemoteDevice(address: native.Array<number>): android.bluetooth.BluetoothDevice;
			/**
			 * Return true if Bluetooth is currently enabled and ready for use.
			 */
			public isEnabled(): boolean;
			/**
			 * Get the current state of the local Bluetooth adapter.
			 */
			public getState(): number;
			/**
			 * Turn on the local Bluetooth adapter&mdash;do not use without explicit user action to turn on Bluetooth.
			 */
			public enable(): boolean;
			/**
			 * Turn off the local Bluetooth adapter&mdash;do not use without explicit user action to turn off Bluetooth.
			 */
			public disable(): boolean;
			/**
			 * Returns the hardware address of the local Bluetooth adapter.
			 */
			public getAddress(): string;
			/**
			 * Get the friendly Bluetooth name of the local Bluetooth adapter.
			 */
			public getName(): string;
			/**
			 * Set the friendly Bluetooth name of the local Bluetooth adapter.
			 * @param name a valid Bluetooth name
			 */
			public setName(name: string): boolean;
			/**
			 * Get the current Bluetooth scan mode of the local Bluetooth adapter.
			 */
			public getScanMode(): number;
			/**
			 * Start the remote device discovery process.
			 */
			public startDiscovery(): boolean;
			/**
			 * Cancel the current device discovery process.
			 */
			public cancelDiscovery(): boolean;
			/**
			 * Return true if the local Bluetooth adapter is currently in the device discovery process.
			 */
			public isDiscovering(): boolean;
			/**
			 * Return the set of BluetoothDevice objects that are bonded (paired) to the local adapter.
			 */
			public getBondedDevices(): java.util.ISet<android.bluetooth.BluetoothDevice>;
			/**
			 * Get the current connection state of a profile. This function can be used to check whether the local Bluetooth adapter is connected to any remote device for a specific profile. Profile can be one of BluetoothProfile#HEALTH, BluetoothProfile#HEADSET, BluetoothProfile#A2DP.
			 */
			public getProfileConnectionState(profile: number): number;
			/**
			 * Create a listening, secure RFCOMM Bluetooth socket with Service Record.
			 * @param name service name for SDP record
			 * @param uuid uuid for SDP record
			 */
			public listenUsingRfcommWithServiceRecord(name: string, uuid: java.util.UUID): android.bluetooth.BluetoothServerSocket;
			/**
			 * Create a listening, insecure RFCOMM Bluetooth socket with Service Record.
			 * @param name service name for SDP record
			 * @param uuid uuid for SDP record
			 */
			public listenUsingInsecureRfcommWithServiceRecord(name: string, uuid: java.util.UUID): android.bluetooth.BluetoothServerSocket;
			/**
			 * Get the profile proxy object associated with the profile.
			 * @param context Context of the application
			 * @param listener The service Listener for connection callbacks.
			 * @param profile The Bluetooth profile; either {@link BluetoothProfile#HEALTH},
			 */
			public getProfileProxy(context: android.content.Context, listener: android.bluetooth.BluetoothProfile.IServiceListener, profile: number): boolean;
			/**
			 * Close the connection of the profile proxy to the Service.
			 * @param profile 
			 * @param proxy Profile proxy object
			 */
			public closeProfileProxy(profile: number, proxy: android.bluetooth.IBluetoothProfile): void;
			protected finalize(): void;
			/**
			 * Validate a String Bluetooth address, such as "00:43:A8:23:10:F0"
			 * @param address Bluetooth address as string
			 */
			public static checkBluetoothAddress(address: string): boolean;
		}
		/**
		 * The Bluetooth Health Application Configuration that is used in conjunction with the BluetoothHealth class. This class represents an application configuration that the Bluetooth Health third party application will register to communicate with the remote Bluetooth health device.
		 */
		export class BluetoothHealthAppConfiguration extends java.lang.Object implements android.os.IParcelable {
			static CREATOR: android.os.Parcelable.ICreator<android.bluetooth.BluetoothHealthAppConfiguration>;
			static class: java.lang.Class<android.bluetooth.BluetoothHealthAppConfiguration>;
			public equals(o: any): boolean;
			public hashCode(): number;
			public toString(): string;
			public describeContents(): number;
			/**
			 * Return the data type associated with this application configuration.
			 */
			public getDataType(): number;
			/**
			 * Return the name of the application configuration.
			 */
			public getName(): string;
			/**
			 * Return the role associated with this application configuration.
			 */
			public getRole(): number;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
		}
	}
	export module speech {
		/**
		 * Constants for intents related to showing speech recognition results. These constants should not be needed for normal utilization of speech recognition. They would only be called if you wanted to trigger a view of voice search results in your application, or implemented if you wanted to offer a different view for voice search results with your application. The standard behavior here for someone receiving an #ACTION_VOICE_SEARCH_RESULTS is to first retrieve the list of #EXTRA_VOICE_SEARCH_RESULT_STRINGS, and use any provided HTML for that result in #EXTRA_VOICE_SEARCH_RESULT_HTML, if available, to display the search results. If that is not available, then the corresponding url for that result in #EXTRA_VOICE_SEARCH_RESULT_URLS should be used. And if even that is not available, then a search url should be constructed from the actual recognition result string.
		 */
		export class RecognizerResultsIntent extends java.lang.Object {
			/**
			 * Intent that can be sent by implementations of voice search to display the results of a search in, for example, a web browser. This intent should always be accompanied by at least #EXTRA_VOICE_SEARCH_RESULT_STRINGS, and optionally but recommended, #EXTRA_VOICE_SEARCH_RESULT_URLS, and sometimes #EXTRA_VOICE_SEARCH_RESULT_HTML and #EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS. These are parallel arrays, where a recognition result string at index N of #EXTRA_VOICE_SEARCH_RESULT_STRINGS should be accompanied by a url to use for searching based on that string at index N of #EXTRA_VOICE_SEARCH_RESULT_URLS, and, possibly, the full html to display for that result at index N of #EXTRA_VOICE_SEARCH_RESULT_HTML. If full html is provided, a base url (or list of base urls) should be provided with #EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS.
			 */
			static ACTION_VOICE_SEARCH_RESULTS: string;
			/**
			 * The key to an extra ArrayList of Strings that contains the list of recognition alternates from voice search, in order from highest to lowest confidence.
			 */
			static EXTRA_VOICE_SEARCH_RESULT_STRINGS: string;
			/**
			 * The key to an extra ArrayList of Strings that contains the search urls to use, if available, for the recognition alternates provided in #EXTRA_VOICE_SEARCH_RESULT_STRINGS. This list should always be the same size as the one provided in #EXTRA_VOICE_SEARCH_RESULT_STRINGS - if a result cannot provide a search url, that entry in this ArrayList should be <code>null</code>, and the implementor of #ACTION_VOICE_SEARCH_RESULTS should execute a search of its own choosing, based on the recognition result string.
			 */
			static EXTRA_VOICE_SEARCH_RESULT_URLS: string;
			/**
			 * The key to an extra ArrayList of Strings that contains the html content to use, if available, for the recognition alternates provided in #EXTRA_VOICE_SEARCH_RESULT_STRINGS. This list should always be the same size as the one provided in #EXTRA_VOICE_SEARCH_RESULT_STRINGS - if a result cannot provide html, that entry in this list should be <code>null</code>, and the implementor of #ACTION_VOICE_SEARCH_RESULTS should back off to the corresponding url provided in #EXTRA_VOICE_SEARCH_RESULT_URLS, if available, or else should execute a search of its own choosing, based on the recognition result string. Currently this html content should be expected in the form of a uri with scheme #URI_SCHEME_INLINE for the Browser. In the future this may change to a "content://" uri or some other identifier. Anyone who reads this extra should confirm that a result is in fact an "inline:" uri and back off to the urls or strings gracefully if it is not, thus maintaining future backwards compatibility if this changes.
			 */
			static EXTRA_VOICE_SEARCH_RESULT_HTML: string;
			/**
			 * The key to an extra ArrayList of Strings that contains the base url to assume when interpreting html provided in #EXTRA_VOICE_SEARCH_RESULT_HTML. A list of size 1 may be provided to apply the same base url to all html results. A list of the same size as #EXTRA_VOICE_SEARCH_RESULT_STRINGS may be provided to apply different base urls to each different html result in the #EXTRA_VOICE_SEARCH_RESULT_HTML list.
			 */
			static EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS: string;
			/**
			 * The key to an extra ArrayList of Bundles that contains key/value pairs. All the values and the keys are Strings. Each key/value pair represents an extra HTTP header. The keys can't be the standard HTTP headers as they are set by the WebView.
			 */
			static EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS: string;
			/**
			 * The scheme used currently for html content in #EXTRA_VOICE_SEARCH_RESULT_HTML. Note that this should only be used in tandem with this particular extra; it should NOT be used for generic URIs such as those found in the data field of an Intent.
			 */
			static URI_SCHEME_INLINE: string;
			static class: java.lang.Class<android.speech.RecognizerResultsIntent>;
		}
		export module tts {
			/**
			 * Defines additional methods the synthesis callback must implement that are private to the TTS service implementation.
			 */
			export class AbstractSynthesisCallback extends java.lang.Object implements android.speech.tts.ISynthesisCallback {
				static class: java.lang.Class<android.speech.tts.AbstractSynthesisCallback>;
				/**
				 * Checks whether the synthesis request completed successfully.
				 */
				isDone(): boolean;
				/**
				 * Aborts the speech request.
				 */
				stop(): void;
				getMaxBufferSize(): number;
				/**
				 * The service should call this when it starts to synthesize audio for this request.
				 * @param sampleRateInHz Sample rate in HZ of the generated audio.
				 * @param audioFormat Audio format of the generated audio. Must be one of
				 * @param channelCount The number of channels. Must be {@code 1} or {@code 2}.
				 */
				start(sampleRateInHz: number, audioFormat: number, channelCount: number): number;
				/**
				 * The service should call this method when synthesized audio is ready for consumption.
				 * @param buffer The generated audio data. This method will not hold on to {@code buffer},
				 * @param offset The offset into {@code buffer} where the audio data starts.
				 * @param length The number of bytes of audio data in {@code buffer}. This must be
				 */
				audioAvailable(buffer: native.Array<number>, offset: number, length: number): number;
				/**
				 * The service should call this method when all the synthesized audio for a request has been passed to #audioAvailable.
				 */
				done(): number;
				/**
				 * The service should call this method if the speech synthesis fails.
				 */
				error(): void;
			}
			export class SilencePlaybackQueueItem extends android.speech.tts.PlaybackQueueItem {
				static class: java.lang.Class<android.speech.tts.SilencePlaybackQueueItem>;
				public run(): void;
				stop(isError: boolean): void;
			}
			/**
			 * Writes data about a given speech synthesis request to the event logs. The data that is logged includes the calling app, length of the utterance, speech rate / pitch and the latency and overall time taken.
			 */
			export class EventLogger extends java.lang.Object {
				static class: java.lang.Class<android.speech.tts.EventLogger>;
				/**
				 * Notifies the logger that this request has been selected from the processing queue for processing. Engine latency / total time is measured from this baseline.
				 */
				public onRequestProcessingStart(): void;
				/**
				 * Notifies the logger that a chunk of data has been received from the engine. Might be called multiple times.
				 */
				public onEngineDataReceived(): void;
				/**
				 * Notifies the logger that the engine has finished processing data. Will be called exactly once.
				 */
				public onEngineComplete(): void;
				/**
				 * Notifies the logger that audio playback has started for some section of the synthesis. This is normally some amount of time after the engine has synthesized data and varies depending on utterances and other audio currently in the queue.
				 */
				public onAudioDataWritten(): void;
				/**
				 * Notifies the logger that the current synthesis was stopped. Latency numbers are not reported for stopped syntheses.
				 */
				public onStopped(): void;
				/**
				 * Notifies the logger that the current synthesis resulted in an error. This is logged using EventLogTags#writeTtsSpeakFailure.
				 */
				public onError(): void;
				/**
				 * Notifies the logger that the current synthesis has completed. All available data is not logged.
				 */
				public onWriteData(): void;
			}
			/**
			 * Abstract base class for TTS engine implementations. The following methods need to be implemented.
			 */
			export class TextToSpeechService extends android.app.Service {
				constructor();
				static class: java.lang.Class<android.speech.tts.TextToSpeechService>;
				SynthesisSpeechItem: {
	new (callerIdentity: any, callerUid: number, callerPid: number, params: android.os.Bundle, text: string): android.speech.tts.TextToSpeechService.SynthesisSpeechItem;
};
				SynthesisToFileSpeechItem: {
	new (callerIdentity: any, callerUid: number, callerPid: number, params: android.os.Bundle, text: string, file: java.io.File): android.speech.tts.TextToSpeechService.SynthesisToFileSpeechItem;
};
				AudioSpeechItem: {
	new (callerIdentity: any, callerUid: number, callerPid: number, params: android.os.Bundle, uri: android.net.Uri): android.speech.tts.TextToSpeechService.AudioSpeechItem;
};
				SynthThread: {
	new (): android.speech.tts.TextToSpeechService.SynthThread;
};
				SpeechItem: {
	new (caller: any, callerUid: number, callerPid: number, params: android.os.Bundle): android.speech.tts.TextToSpeechService.SpeechItem;
};
				SilenceSpeechItem: {
	new (callerIdentity: any, callerUid: number, callerPid: number, params: android.os.Bundle, duration: number): android.speech.tts.TextToSpeechService.SilenceSpeechItem;
};
				SynthHandler: {
	new (looper: android.os.Looper): android.speech.tts.TextToSpeechService.SynthHandler;
};
				public onCreate(): void;
				public onDestroy(): void;
				/**
				 * Checks whether the engine supports a given language.
				 * @param lang ISO-3 language code.
				 * @param country ISO-3 country code. May be empty or null.
				 * @param variant Language variant. May be empty or null.
				 */
				protected onIsLanguageAvailable(lang: string, country: string, variant: string): number;
				/**
				 * Returns the language, country and variant currently being used by the TTS engine.
				 */
				protected onGetLanguage(): native.Array<string>;
				/**
				 * Notifies the engine that it should load a speech synthesis language. There is no guarantee that this method is always called before the language is used for synthesis. It is merely a hint to the engine that it will probably get some synthesis requests for this language at some point in the future.
				 * @param lang ISO-3 language code.
				 * @param country ISO-3 country code. May be empty or null.
				 * @param variant Language variant. May be empty or null.
				 */
				protected onLoadLanguage(lang: string, country: string, variant: string): number;
				/**
				 * Notifies the service that it should stop any in-progress speech synthesis. This method can be called even if no speech synthesis is currently in progress.
				 */
				protected onStop(): void;
				/**
				 * Tells the service to synthesize speech from the given text. This method should block until the synthesis is finished.
				 * @param request The synthesis request.
				 * @param callback The callback the the engine must use to make data available for
				 */
				protected onSynthesizeText(request: android.speech.tts.SynthesisRequest, callback: android.speech.tts.ISynthesisCallback): void;
				/**
				 * Queries the service for a set of features supported for a given language.
				 * @param lang ISO-3 language code.
				 * @param country ISO-3 country code. May be empty or null.
				 * @param variant Language variant. May be empty or null.
				 */
				protected onGetFeaturesForLanguage(lang: string, country: string, variant: string): java.util.ISet<string>;
				public onBind(intent: android.content.Intent): android.os.IIBinder;
			}
			export module TextToSpeechService {
				export class SynthesisSpeechItem extends android.speech.tts.TextToSpeechService.SpeechItem {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.SynthesisSpeechItem>;
					public getText(): string;
					public isValid(): boolean;
					protected playImpl(): number;
					protected createSynthesisCallback(): android.speech.tts.AbstractSynthesisCallback;
					protected stopImpl(): void;
					public getLanguage(): string;
				}
				export class SynthesisToFileSpeechItem extends android.speech.tts.TextToSpeechService.SynthesisSpeechItem {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.SynthesisToFileSpeechItem>;
					protected createSynthesisCallback(): android.speech.tts.AbstractSynthesisCallback;
					protected playImpl(): number;
				}
				interface IUtteranceProgressDispatcher {
					dispatchOnDone(): void;
					dispatchOnStart(): void;
					dispatchOnError(): void;
				}
				export class AudioSpeechItem extends android.speech.tts.TextToSpeechService.SpeechItem {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.AudioSpeechItem>;
					public isValid(): boolean;
					protected playImpl(): number;
					protected stopImpl(): void;
				}
				/**
				 * Synthesizer thread. This thread is used to run SynthHandler.
				 */
				export class SynthThread extends android.os.HandlerThread implements android.os.MessageQueue.IIdleHandler {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.SynthThread>;
					protected onLooperPrepared(): void;
					public queueIdle(): boolean;
				}
				/**
				 * An item in the synth thread queue.
				 */
				export class SpeechItem extends java.lang.Object implements android.speech.tts.TextToSpeechService.IUtteranceProgressDispatcher {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.SpeechItem>;
					public getCallerIdentity(): any;
					/**
					 * Checker whether the item is valid. If this method returns false, the item should not be played.
					 */
					public isValid(): boolean;
					/**
					 * Plays the speech item. Blocks until playback is finished. Must not be called more than once.
					 */
					public play(): number;
					/**
					 * Stops the speech item. Must not be called more than once.
					 */
					public stop(): void;
					public dispatchOnDone(): void;
					public dispatchOnStart(): void;
					public dispatchOnError(): void;
					public getCallerUid(): number;
					public getCallerPid(): number;
					protected isStopped(): boolean;
					protected playImpl(): number;
					protected stopImpl(): void;
					public getStreamType(): number;
					public getVolume(): number;
					public getPan(): number;
					public getUtteranceId(): string;
					protected getStringParam(key: string, defaultValue: string): string;
					protected getIntParam(key: string, defaultValue: number): number;
					protected getFloatParam(key: string, defaultValue: number): number;
				}
				export class SilenceSpeechItem extends android.speech.tts.TextToSpeechService.SpeechItem {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.SilenceSpeechItem>;
					public isValid(): boolean;
					protected playImpl(): number;
					protected stopImpl(): void;
				}
				export class CallbackMap extends java.lang.Object {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.CallbackMap>;
					public dispatchOnDone(callerIdentity: any, utteranceId: string): void;
					public dispatchOnStart(callerIdentity: any, utteranceId: string): void;
					public dispatchOnError(callerIdentity: any, utteranceId: string): void;
					public kill(): void;
				}
				export class SynthHandler extends android.os.Handler {
					static class: java.lang.Class<android.speech.tts.TextToSpeechService.SynthHandler>;
					public isSpeaking(): boolean;
					public quit(): void;
					/**
					 * Adds a speech item to the queue.
					 */
					public enqueueSpeechItem(queueMode: number, speechItem: android.speech.tts.TextToSpeechService.SpeechItem): number;
					/**
					 * Stops all speech output and removes any utterances still in the queue for the calling app.
					 */
					public stopForApp(callerIdentity: any): number;
					public stopAll(): number;
				}
				export class UtteranceProgressDispatcher implements android.speech.tts.TextToSpeechService.IUtteranceProgressDispatcher {
					constructor(implementation: android.speech.tts.TextToSpeechService.IUtteranceProgressDispatcher);
					public dispatchOnDone(): void;
					public dispatchOnStart(): void;
					public dispatchOnError(): void;
				}
			}
			export class TextToSpeech extends java.lang.Object {
				/**
				 * The constructor for the TextToSpeech class, using the default TTS engine. This will also initialize the associated TextToSpeech engine if it isn't already running.
				 * @param context 
				 * @param listener 
				 */
				constructor(context: android.content.Context, listener: android.speech.tts.TextToSpeech.IOnInitListener);
				/**
				 * The constructor for the TextToSpeech class, using the given TTS engine. This will also initialize the associated TextToSpeech engine if it isn't already running.
				 * @param context 
				 * @param listener 
				 * @param engine Package name of the TTS engine to use.
				 */
				constructor(context: android.content.Context, listener: android.speech.tts.TextToSpeech.IOnInitListener, engine: string);
				/**
				 * Denotes a successful operation.
				 */
				static SUCCESS: number;
				/**
				 * Denotes a generic operation failure.
				 */
				static ERROR: number;
				/**
				 * Queue mode where all entries in the playback queue (media to be played and text to be synthesized) are dropped and replaced by the new entry. Queues are flushed with respect to a given calling app. Entries in the queue from other callees are not discarded.
				 */
				static QUEUE_FLUSH: number;
				/**
				 * Queue mode where the new entry is added at the end of the playback queue.
				 */
				static QUEUE_ADD: number;
				/**
				 * Denotes the language is available exactly as specified by the locale.
				 */
				static LANG_COUNTRY_VAR_AVAILABLE: number;
				/**
				 * Denotes the language is available for the language and country specified by the locale, but not the variant.
				 */
				static LANG_COUNTRY_AVAILABLE: number;
				/**
				 * Denotes the language is available for the language by the locale, but not the country and variant.
				 */
				static LANG_AVAILABLE: number;
				/**
				 * Denotes the language data is missing.
				 */
				static LANG_MISSING_DATA: number;
				/**
				 * Denotes the language is not supported.
				 */
				static LANG_NOT_SUPPORTED: number;
				/**
				 * Broadcast Action: The TextToSpeech synthesizer has completed processing of all the text in the speech queue.
				 */
				static ACTION_TTS_QUEUE_PROCESSING_COMPLETED: string;
				static class: java.lang.Class<android.speech.tts.TextToSpeech>;
				Engine: {
	new (): android.speech.tts.TextToSpeech.Engine;
};
				/**
				 * Releases the resources used by the TextToSpeech engine. It is good practice for instance to call this method in the onDestroy() method of an Activity so the TextToSpeech engine can be cleanly stopped.
				 */
				public shutdown(): void;
				/**
				 * Adds a mapping between a string of text and a sound resource in a package. After a call to this method, subsequent calls to #speak(String, int, HashMap) will play the specified sound resource if it is available, or synthesize the text it is missing.
				 * @param text 
				 * @param packagename 
				 * @param resourceId 
				 */
				public addSpeech(text: string, packagename: string, resourceId: number): number;
				/**
				 * Adds a mapping between a string of text and a sound file. Using this, it is possible to add custom pronounciations for a string of text. After a call to this method, subsequent calls to #speak(String, int, HashMap) will play the specified sound resource if it is available, or synthesize the text it is missing.
				 * @param text 
				 * @param filename 
				 */
				public addSpeech(text: string, filename: string): number;
				/**
				 * Adds a mapping between a string of text and a sound resource in a package. Use this to add custom earcons.
				 * @param earcon The name of the earcon.
				 * @param packagename 
				 * @param resourceId 
				 */
				public addEarcon(earcon: string, packagename: string, resourceId: number): number;
				/**
				 * Adds a mapping between a string of text and a sound file. Use this to add custom earcons.
				 * @param earcon 
				 * @param filename 
				 */
				public addEarcon(earcon: string, filename: string): number;
				/**
				 * Speaks the string using the specified queuing strategy and speech parameters.
				 * @param text The string of text to be spoken.
				 * @param queueMode The queuing strategy to use, {@link #QUEUE_ADD} or {@link #QUEUE_FLUSH}.
				 * @param params Parameters for the request. Can be null.
				 */
				public speak(text: string, queueMode: number, params: java.util.HashMap<string, string>): number;
				/**
				 * Plays the earcon using the specified queueing mode and parameters. The earcon must already have been added with #addEarcon(String, String) or #addEarcon(String, String, int).
				 * @param earcon The earcon that should be played
				 * @param queueMode {@link #QUEUE_ADD} or {@link #QUEUE_FLUSH}.
				 * @param params Parameters for the request. Can be null.
				 */
				public playEarcon(earcon: string, queueMode: number, params: java.util.HashMap<string, string>): number;
				/**
				 * Plays silence for the specified amount of time using the specified queue mode.
				 * @param durationInMs The duration of the silence.
				 * @param queueMode {@link #QUEUE_ADD} or {@link #QUEUE_FLUSH}.
				 * @param params Parameters for the request. Can be null.
				 */
				public playSilence(durationInMs: number, queueMode: number, params: java.util.HashMap<string, string>): number;
				/**
				 * Queries the engine for the set of features it supports for a given locale. Features can either be framework defined, e.g. TextToSpeech.Engine#KEY_FEATURE_NETWORK_SYNTHESIS or engine specific. Engine specific keys must be prefixed by the name of the engine they are intended for. These keys can be used as parameters to TextToSpeech#speak(String, int, java.util.HashMap) and TextToSpeech#synthesizeToFile(String, java.util.HashMap, String).
				 * @param locale The locale to query features for.
				 */
				public getFeatures(locale: java.util.Locale): java.util.ISet<string>;
				/**
				 * Checks whether the TTS engine is busy speaking. Note that a speech item is considered complete once it's audio data has been sent to the audio mixer, or written to a file. There might be a finite lag between this point, and when the audio hardware completes playback.
				 */
				public isSpeaking(): boolean;
				/**
				 * Interrupts the current utterance (whether played or rendered to file) and discards other utterances in the queue.
				 */
				public stop(): number;
				/**
				 * Sets the speech rate.
				 * @param speechRate Speech rate. {@code 1.0} is the normal speech rate,
				 */
				public setSpeechRate(speechRate: number): number;
				/**
				 * Sets the speech pitch for the TextToSpeech engine.
				 * @param pitch Speech pitch. {@code 1.0} is the normal pitch,
				 */
				public setPitch(pitch: number): number;
				/**
				 * Sets the text-to-speech language. The TTS engine will try to use the closest match to the specified language as represented by the Locale, but there is no guarantee that the exact same Locale will be used. Use #isLanguageAvailable(Locale) to check the level of support before choosing the language to use for the next utterances.
				 * @param loc The locale describing the language to be used.
				 */
				public setLanguage(loc: java.util.Locale): number;
				/**
				 * Returns a Locale instance describing the language currently being used by the TextToSpeech engine.
				 */
				public getLanguage(): java.util.Locale;
				/**
				 * Checks if the specified language as represented by the Locale is available and supported.
				 * @param loc The Locale describing the language to be used.
				 */
				public isLanguageAvailable(loc: java.util.Locale): number;
				/**
				 * Synthesizes the given text to a file using the specified parameters.
				 * @param text The text that should be synthesized
				 * @param params Parameters for the request. Can be null.
				 * @param filename Absolute file filename to write the generated audio data to.It should be
				 */
				public synthesizeToFile(text: string, params: java.util.HashMap<string, string>, filename: string): number;
				/**
				 * Sets the listener that will be notified when synthesis of an utterance completes.
				 * @param listener The listener to use.
				 */
				public setOnUtteranceCompletedListener(listener: android.speech.tts.TextToSpeech.IOnUtteranceCompletedListener): number;
				/**
				 * Sets the listener that will be notified of various events related to the synthesis of a given utterance.
				 * @param listener the listener to use.
				 */
				public setOnUtteranceProgressListener(listener: android.speech.tts.UtteranceProgressListener): number;
				/**
				 * Sets the TTS engine to use.
				 * @param enginePackageName The package name for the synthesis engine (e.g. "com.svox.pico")
				 */
				public setEngineByPackageName(enginePackageName: string): number;
				/**
				 * Gets the package name of the default speech synthesis engine.
				 */
				public getDefaultEngine(): string;
				/**
				 * Checks whether the user's settings should override settings requested by the calling application. As of the Ice cream sandwich release, user settings never forcibly override the app's settings.
				 */
				public areDefaultsEnforced(): boolean;
				/**
				 * Gets a list of all installed TTS engines.
				 */
				public getEngines(): java.util.IList<android.speech.tts.TextToSpeech.EngineInfo>;
			}
			export module TextToSpeech {
				/**
				 * Interface definition of a callback to be invoked indicating the completion of the TextToSpeech engine initialization.
				 */
				export class OnInitListener implements android.speech.tts.TextToSpeech.IOnInitListener {
					constructor(implementation: android.speech.tts.TextToSpeech.IOnInitListener);
					/**
					 * Called to signal the completion of the TextToSpeech engine initialization.
					 * @param status {@link TextToSpeech#SUCCESS} or {@link TextToSpeech#ERROR}.
					 */
					public onInit(status: number): void;
				}
				/**
				 * Information about an installed text-to-speech engine.
				 */
				export class EngineInfo extends java.lang.Object {
					constructor();
					/**
					 * Engine package name..
					 */
					name: string;
					/**
					 * Localized label for the engine.
					 */
					label: string;
					/**
					 * Icon for the engine.
					 */
					icon: number;
					static class: java.lang.Class<android.speech.tts.TextToSpeech.EngineInfo>;
					public toString(): string;
				}
				export class Action<R> implements android.speech.tts.TextToSpeech.IAction<R> {
					constructor(implementation: android.speech.tts.TextToSpeech.IAction<R>);
				}
				/**
				 * Listener that will be called when the TTS service has completed synthesizing an utterance. This is only called if the utterance has an utterance ID (see TextToSpeech.Engine#KEY_PARAM_UTTERANCE_ID).
				 */
				export class OnUtteranceCompletedListener implements android.speech.tts.TextToSpeech.IOnUtteranceCompletedListener {
					constructor(implementation: android.speech.tts.TextToSpeech.IOnUtteranceCompletedListener);
					/**
					 * Called when an utterance has been synthesized.
					 * @param utteranceId the identifier of the utterance.
					 */
					public onUtteranceCompleted(utteranceId: string): void;
				}
				interface IAction<R> {
				}
				/**
				 * Listener that will be called when the TTS service has completed synthesizing an utterance. This is only called if the utterance has an utterance ID (see TextToSpeech.Engine#KEY_PARAM_UTTERANCE_ID).
				 */
				interface IOnUtteranceCompletedListener {
					/**
					 * Called when an utterance has been synthesized.
					 * @param utteranceId the identifier of the utterance.
					 */
					onUtteranceCompleted(utteranceId: string): void;
				}
				export class Connection extends java.lang.Object implements android.content.IServiceConnection {
					static class: java.lang.Class<android.speech.tts.TextToSpeech.Connection>;
					public onServiceConnected(name: android.content.ComponentName, service: android.os.IIBinder): void;
					public getCallerIdentity(): android.os.IIBinder;
					public onServiceDisconnected(name: android.content.ComponentName): void;
					public disconnect(): void;
					public runAction<R>(action: android.speech.tts.TextToSpeech.IAction<R>, errorResult: R, method: string, reconnect: boolean): R;
				}
				/**
				 * Interface definition of a callback to be invoked indicating the completion of the TextToSpeech engine initialization.
				 */
				interface IOnInitListener {
					/**
					 * Called to signal the completion of the TextToSpeech engine initialization.
					 * @param status {@link TextToSpeech#SUCCESS} or {@link TextToSpeech#ERROR}.
					 */
					onInit(status: number): void;
				}
				/**
				 * Constants and parameter names for controlling text-to-speech. These include:
				 */
				export class Engine extends java.lang.Object {
					/**
					 * Default audio stream used when playing synthesized speech.
					 */
					static DEFAULT_STREAM: number;
					/**
					 * Indicates success when checking the installation status of the resources used by the TextToSpeech engine with the #ACTION_CHECK_TTS_DATA intent.
					 */
					static CHECK_VOICE_DATA_PASS: number;
					/**
					 * Indicates failure when checking the installation status of the resources used by the TextToSpeech engine with the #ACTION_CHECK_TTS_DATA intent.
					 */
					static CHECK_VOICE_DATA_FAIL: number;
					/**
					 * Indicates erroneous data when checking the installation status of the resources used by the TextToSpeech engine with the #ACTION_CHECK_TTS_DATA intent.
					 */
					static CHECK_VOICE_DATA_BAD_DATA: number;
					/**
					 * Indicates missing resources when checking the installation status of the resources used by the TextToSpeech engine with the #ACTION_CHECK_TTS_DATA intent.
					 */
					static CHECK_VOICE_DATA_MISSING_DATA: number;
					/**
					 * Indicates missing storage volume when checking the installation status of the resources used by the TextToSpeech engine with the #ACTION_CHECK_TTS_DATA intent.
					 */
					static CHECK_VOICE_DATA_MISSING_VOLUME: number;
					/**
					 * Intent for starting a TTS service. Services that handle this intent must extend TextToSpeechService. Normal applications should not use this intent directly, instead they should talk to the TTS service using the the methods in this class.
					 */
					static INTENT_ACTION_TTS_SERVICE: string;
					/**
					 * Name under which a text to speech engine publishes information about itself. This meta-data should reference an XML resource containing a <code>&lt;android.R.styleable#TextToSpeechEngine tts-engine&gt;</code> tag.
					 */
					static SERVICE_META_DATA: string;
					/**
					 * Activity Action: Triggers the platform TextToSpeech engine to start the activity that installs the resource files on the device that are required for TTS to be operational. Since the installation of the data can be interrupted or declined by the user, the application shouldn't expect successful installation upon return from that intent, and if need be, should check installation status with #ACTION_CHECK_TTS_DATA.
					 */
					static ACTION_INSTALL_TTS_DATA: string;
					/**
					 * Broadcast Action: broadcast to signal the completion of the installation of the data files used by the synthesis engine. Success or failure is indicated in the #EXTRA_TTS_DATA_INSTALLED extra.
					 */
					static ACTION_TTS_DATA_INSTALLED: string;
					/**
					 * Activity Action: Starts the activity from the platform TextToSpeech engine to verify the proper installation and availability of the resource files on the system. Upon completion, the activity will return one of the following codes: #CHECK_VOICE_DATA_PASS, #CHECK_VOICE_DATA_FAIL, #CHECK_VOICE_DATA_BAD_DATA, #CHECK_VOICE_DATA_MISSING_DATA, or #CHECK_VOICE_DATA_MISSING_VOLUME.
					 */
					static ACTION_CHECK_TTS_DATA: string;
					/**
					 * Extra information received with the #ACTION_CHECK_TTS_DATA intent where the TextToSpeech engine specifies the path to its resources.
					 */
					static EXTRA_VOICE_DATA_ROOT_DIRECTORY: string;
					/**
					 * Extra information received with the #ACTION_CHECK_TTS_DATA intent where the TextToSpeech engine specifies the file names of its resources under the resource path.
					 */
					static EXTRA_VOICE_DATA_FILES: string;
					/**
					 * Extra information received with the #ACTION_CHECK_TTS_DATA intent where the TextToSpeech engine specifies the locale associated with each resource file.
					 */
					static EXTRA_VOICE_DATA_FILES_INFO: string;
					/**
					 * Extra information received with the #ACTION_CHECK_TTS_DATA intent where the TextToSpeech engine returns an ArrayList<String> of all the available voices. The format of each voice is: lang-COUNTRY-variant where COUNTRY and variant are optional (ie, "eng" or "eng-USA" or "eng-USA-FEMALE").
					 */
					static EXTRA_AVAILABLE_VOICES: string;
					/**
					 * Extra information received with the #ACTION_CHECK_TTS_DATA intent where the TextToSpeech engine returns an ArrayList<String> of all the unavailable voices. The format of each voice is: lang-COUNTRY-variant where COUNTRY and variant are optional (ie, "eng" or "eng-USA" or "eng-USA-FEMALE").
					 */
					static EXTRA_UNAVAILABLE_VOICES: string;
					/**
					 * Extra information sent with the #ACTION_CHECK_TTS_DATA intent where the caller indicates to the TextToSpeech engine which specific sets of voice data to check for by sending an ArrayList<String> of the voices that are of interest. The format of each voice is: lang-COUNTRY-variant where COUNTRY and variant are optional (ie, "eng" or "eng-USA" or "eng-USA-FEMALE").
					 */
					static EXTRA_CHECK_VOICE_DATA_FOR: string;
					/**
					 * Extra information received with the #ACTION_TTS_DATA_INSTALLED intent. It indicates whether the data files for the synthesis engine were successfully installed. The installation was initiated with the #ACTION_INSTALL_TTS_DATA intent. The possible values for this extra are TextToSpeech#SUCCESS and TextToSpeech#ERROR.
					 */
					static EXTRA_TTS_DATA_INSTALLED: string;
					/**
					 * Parameter key to specify the audio stream type to be used when speaking text or playing back a file. The value should be one of the STREAM_ constants defined in AudioManager.
					 */
					static KEY_PARAM_STREAM: string;
					/**
					 * Parameter key to identify an utterance in the TextToSpeech.OnUtteranceCompletedListener after text has been spoken, a file has been played back or a silence duration has elapsed.
					 */
					static KEY_PARAM_UTTERANCE_ID: string;
					/**
					 * Parameter key to specify the speech volume relative to the current stream type volume used when speaking text. Volume is specified as a float ranging from 0 to 1 where 0 is silence, and 1 is the maximum volume (the default behavior).
					 */
					static KEY_PARAM_VOLUME: string;
					/**
					 * Parameter key to specify how the speech is panned from left to right when speaking text. Pan is specified as a float ranging from -1 to +1 where -1 maps to a hard-left pan, 0 to center (the default behavior), and +1 to hard-right.
					 */
					static KEY_PARAM_PAN: string;
					/**
					 * Feature key for network synthesis. See TextToSpeech#getFeatures(Locale) for a description of how feature keys work. If set (and supported by the engine as per TextToSpeech#getFeatures(Locale), the engine must use network based synthesis.
					 */
					static KEY_FEATURE_NETWORK_SYNTHESIS: string;
					/**
					 * Feature key for embedded synthesis. See TextToSpeech#getFeatures(Locale) for a description of how feature keys work. If set and supported by the engine as per TextToSpeech#getFeatures(Locale), the engine must synthesize text on-device (without making network requests).
					 */
					static KEY_FEATURE_EMBEDDED_SYNTHESIS: string;
					static class: java.lang.Class<android.speech.tts.TextToSpeech.Engine>;
				}
			}
			export class AudioPlaybackHandler extends java.lang.Object {
				static class: java.lang.Class<android.speech.tts.AudioPlaybackHandler>;
				public start(): void;
				public enqueue(item: android.speech.tts.PlaybackQueueItem): void;
				public stopForApp(callerIdentity: any): void;
				public stop(): void;
				public isSpeaking(): boolean;
				/**
				 * Shut down the audio playback thread.
				 */
				public quit(): void;
			}
			export module AudioPlaybackHandler {
				export class MessageLoop extends java.lang.Object implements java.lang.IRunnable {
					static class: java.lang.Class<android.speech.tts.AudioPlaybackHandler.MessageLoop>;
					public run(): void;
				}
			}
			/**
			 * Speech synthesis request that writes the audio to a WAV file.
			 */
			export class FileSynthesisCallback extends android.speech.tts.AbstractSynthesisCallback {
				static class: java.lang.Class<android.speech.tts.FileSynthesisCallback>;
				stop(): void;
				public getMaxBufferSize(): number;
				isDone(): boolean;
				public start(sampleRateInHz: number, audioFormat: number, channelCount: number): number;
				public audioAvailable(buffer: native.Array<number>, offset: number, length: number): number;
				public done(): number;
				public error(): void;
			}
			/**
			 * Exposes parts of the AudioTrack API by delegating calls to an underlying AudioTrack. Additionally, provides methods like #waitAndRelease() that will block until all audiotrack data has been flushed to the mixer, and is estimated to have completed playback.
			 */
			export class BlockingAudioTrack extends java.lang.Object {
				static class: java.lang.Class<android.speech.tts.BlockingAudioTrack>;
				public init(): boolean;
				public stop(): void;
				public write(data: native.Array<number>): number;
				public waitAndRelease(): void;
				static getChannelConfig(channelCount: number): number;
				getAudioLengthMs(numBytes: number): any;
			}
			/**
			 * Speech synthesis request that plays the audio as it is received.
			 */
			export class PlaybackSynthesisCallback extends android.speech.tts.AbstractSynthesisCallback {
				static class: java.lang.Class<android.speech.tts.PlaybackSynthesisCallback>;
				stop(): void;
				stopImpl(wasError: boolean): void;
				public getMaxBufferSize(): number;
				isDone(): boolean;
				public start(sampleRateInHz: number, audioFormat: number, channelCount: number): number;
				public audioAvailable(buffer: native.Array<number>, offset: number, length: number): number;
				public done(): number;
				public error(): void;
			}
			/**
			 * Contains data required by engines to synthesize speech. This data is : <ul> <li>The text to synthesize</li> <li>The synthesis locale, represented as a language, country and a variant. The language is an ISO 639-3 letter language code, and the country is an ISO 3166 alpha 3 code. The variant is not specified.</li> <li>The synthesis speech rate, with 100 being the normal, and higher values representing higher speech rates.</li> <li>The voice pitch, with 100 being the default pitch.</li> </ul>
			 */
			export class SynthesisRequest extends java.lang.Object {
				constructor(text: string, params: android.os.Bundle);
				static class: java.lang.Class<android.speech.tts.SynthesisRequest>;
				/**
				 * Gets the text which should be synthesized.
				 */
				public getText(): string;
				/**
				 * Gets the ISO 3-letter language code for the language to use.
				 */
				public getLanguage(): string;
				/**
				 * Gets the ISO 3-letter country code for the language to use.
				 */
				public getCountry(): string;
				/**
				 * Gets the language variant to use.
				 */
				public getVariant(): string;
				/**
				 * Gets the speech rate to use. The normal rate is 100.
				 */
				public getSpeechRate(): number;
				/**
				 * Gets the pitch to use. The normal pitch is 100.
				 */
				public getPitch(): number;
				/**
				 * Gets the additional params, if any.
				 */
				public getParams(): android.os.Bundle;
				/**
				 * Sets the locale for the request.
				 */
				setLanguage(language: string, country: string, variant: string): void;
				/**
				 * Sets the speech rate.
				 */
				setSpeechRate(speechRate: number): void;
				/**
				 * Sets the pitch.
				 */
				setPitch(pitch: number): void;
			}
			/**
			 * A callback to return speech data synthesized by a text to speech engine.
			 */
			export class SynthesisCallback implements android.speech.tts.ISynthesisCallback {
				constructor(implementation: android.speech.tts.ISynthesisCallback);
				public getMaxBufferSize(): number;
				/**
				 * The service should call this when it starts to synthesize audio for this request.
				 * @param sampleRateInHz Sample rate in HZ of the generated audio.
				 * @param audioFormat Audio format of the generated audio. Must be one of
				 * @param channelCount The number of channels. Must be {@code 1} or {@code 2}.
				 */
				public start(sampleRateInHz: number, audioFormat: number, channelCount: number): number;
				/**
				 * The service should call this method when synthesized audio is ready for consumption.
				 * @param buffer The generated audio data. This method will not hold on to {@code buffer},
				 * @param offset The offset into {@code buffer} where the audio data starts.
				 * @param length The number of bytes of audio data in {@code buffer}. This must be
				 */
				public audioAvailable(buffer: native.Array<number>, offset: number, length: number): number;
				/**
				 * The service should call this method when all the synthesized audio for a request has been passed to #audioAvailable.
				 */
				public done(): number;
				/**
				 * The service should call this method if the speech synthesis fails.
				 */
				public error(): void;
			}
			/**
			 * A callback to return speech data synthesized by a text to speech engine.
			 */
			interface ISynthesisCallback {
				getMaxBufferSize(): number;
				/**
				 * The service should call this when it starts to synthesize audio for this request.
				 * @param sampleRateInHz Sample rate in HZ of the generated audio.
				 * @param audioFormat Audio format of the generated audio. Must be one of
				 * @param channelCount The number of channels. Must be {@code 1} or {@code 2}.
				 */
				start(sampleRateInHz: number, audioFormat: number, channelCount: number): number;
				/**
				 * The service should call this method when synthesized audio is ready for consumption.
				 * @param buffer The generated audio data. This method will not hold on to {@code buffer},
				 * @param offset The offset into {@code buffer} where the audio data starts.
				 * @param length The number of bytes of audio data in {@code buffer}. This must be
				 */
				audioAvailable(buffer: native.Array<number>, offset: number, length: number): number;
				/**
				 * The service should call this method when all the synthesized audio for a request has been passed to #audioAvailable.
				 */
				done(): number;
				/**
				 * The service should call this method if the speech synthesis fails.
				 */
				error(): void;
			}
			/**
			 * Listener for events relating to the progress of an utterance through the synthesis queue. Each utterance is associated with a call to TextToSpeech#speak or TextToSpeech#synthesizeToFile with an associated utterance identifier, as per TextToSpeech.Engine#KEY_PARAM_UTTERANCE_ID.
			 */
			export class UtteranceProgressListener extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.speech.tts.UtteranceProgressListener>;
				/**
				 * Called when an utterance "starts" as perceived by the caller. This will be soon before audio is played back in the case of a TextToSpeech#speak or before the first bytes of a file are written to storage in the case of TextToSpeech#synthesizeToFile.
				 * @param utteranceId the utterance ID of the utterance.
				 */
				public onStart(utteranceId: string): void;
				/**
				 * Called when an utterance has successfully completed processing. All audio will have been played back by this point for audible output, and all output will have been written to disk for file synthesis requests.
				 * @param utteranceId the utterance ID of the utterance.
				 */
				public onDone(utteranceId: string): void;
				/**
				 * Called when an error has occurred during processing. This can be called at any point in the synthesis process. Note that there might be calls to #onStart(String) for specified utteranceId but there will never be a call to both #onDone(String) and #onError(String) for the same utterance.
				 * @param utteranceId the utterance ID of the utterance.
				 */
				public onError(utteranceId: string): void;
			}
			export class PlaybackQueueItem extends java.lang.Object implements java.lang.IRunnable {
				static class: java.lang.Class<android.speech.tts.PlaybackQueueItem>;
				getCallerIdentity(): any;
				protected getDispatcher(): android.speech.tts.TextToSpeechService.IUtteranceProgressDispatcher;
				public run(): void;
				stop(isError: boolean): void;
			}
			export class AudioPlaybackQueueItem extends android.speech.tts.PlaybackQueueItem {
				static class: java.lang.Class<android.speech.tts.AudioPlaybackQueueItem>;
				public run(): void;
				stop(isError: boolean): void;
			}
			/**
			 * Manages the playback of a list of byte arrays representing audio data that are queued by the engine to an audio track.
			 */
			export class SynthesisPlaybackQueueItem extends android.speech.tts.PlaybackQueueItem {
				static class: java.lang.Class<android.speech.tts.SynthesisPlaybackQueueItem>;
				public run(): void;
				stop(isError: boolean): void;
				done(): void;
				put(buffer: native.Array<number>): void;
			}
			export module SynthesisPlaybackQueueItem {
				export class ListEntry extends java.lang.Object {
					static class: java.lang.Class<android.speech.tts.SynthesisPlaybackQueueItem.ListEntry>;
				}
			}
		}
		/**
		 * This class provides a base class for recognition service implementations. This class should be extended only in case you wish to implement a new speech recognizer. Please note that the implementation of this service is stateless.
		 */
		export class RecognitionService extends android.app.Service {
			constructor();
			/**
			 * The Intent that must be declared as handled by the service.
			 */
			static SERVICE_INTERFACE: string;
			/**
			 * Name under which a RecognitionService component publishes information about itself. This meta-data should reference an XML resource containing a <code>&lt;android.R.styleable#RecognitionService recognition-service&gt;</code> tag.
			 */
			static SERVICE_META_DATA: string;
			static class: java.lang.Class<android.speech.RecognitionService>;
			/**
			 * Notifies the service that it should start listening for speech. 
			 * @param recognizerIntent contains parameters for the recognition to be performed. The intent
			 * @param listener that will receive the service's callbacks
			 */
			protected onStartListening(recognizerIntent: android.content.Intent, listener: android.speech.RecognitionService.Callback): void;
			/**
			 * Notifies the service that it should cancel the speech recognition.
			 */
			protected onCancel(listener: android.speech.RecognitionService.Callback): void;
			/**
			 * Notifies the service that it should stop listening for speech. Speech captured so far should be recognized as if the user had stopped speaking at this point. This method is only called if the application calls it explicitly.
			 */
			protected onStopListening(listener: android.speech.RecognitionService.Callback): void;
			public onBind(intent: android.content.Intent): android.os.IIBinder;
			public onDestroy(): void;
		}
		export module RecognitionService {
			/**
			 * Binder of the recognition service
			 */
			export class RecognitionServiceBinder {
				constructor(service: android.speech.RecognitionService);
				static class: java.lang.Class<android.speech.RecognitionService.RecognitionServiceBinder>;
				public clearReference(): void;
			}
			export class StartListeningArgs extends java.lang.Object {
				mIntent: android.content.Intent;
				static class: java.lang.Class<android.speech.RecognitionService.StartListeningArgs>;
			}
			/**
			 * This class receives callbacks from the speech recognition service and forwards them to the user. An instance of this class is passed to the RecognitionService#onStartListening(Intent, Callback) method. Recognizers may call these methods on any thread.
			 */
			export class Callback extends java.lang.Object {
				static class: java.lang.Class<android.speech.RecognitionService.Callback>;
				/**
				 * The service should call this method when the user has started to speak.
				 */
				public beginningOfSpeech(): void;
				/**
				 * The service should call this method when sound has been received. The purpose of this function is to allow giving feedback to the user regarding the captured audio. 
				 * @param buffer a buffer containing a sequence of big-endian 16-bit integers representing a
				 */
				public bufferReceived(buffer: native.Array<number>): void;
				/**
				 * The service should call this method after the user stops speaking.
				 */
				public endOfSpeech(): void;
				/**
				 * The service should call this method when a network or recognition error occurred. 
				 * @param error code is defined in {@link SpeechRecognizer}
				 */
				public error(error: number): void;
				/**
				 * The service should call this method when partial recognition results are available. This method can be called at any time between #beginningOfSpeech() and #results(Bundle) when partial results are ready. This method may be called zero, one or multiple times for each call to SpeechRecognizer#startListening(Intent), depending on the speech recognition service implementation. 
				 * @param partialResults the returned results. To retrieve the results in
				 */
				public partialResults(partialResults: android.os.Bundle): void;
				/**
				 * The service should call this method when the endpointer is ready for the user to start speaking. 
				 * @param params parameters set by the recognition service. Reserved for future use.
				 */
				public readyForSpeech(params: android.os.Bundle): void;
				/**
				 * The service should call this method when recognition results are ready. 
				 * @param results the recognition results. To retrieve the results in {@code
				 */
				public results(results: android.os.Bundle): void;
				/**
				 * The service should call this method when the sound level in the audio stream has changed. There is no guarantee that this method will be called. 
				 * @param rmsdB the new RMS dB value
				 */
				public rmsChanged(rmsdB: number): void;
			}
		}
		export module srec {
			/**
			 * PCM input stream from the microphone, 16 bits per sample.
			 */
			export class MicrophoneInputStream extends java.io.InputStream {
				/**
				 * MicrophoneInputStream constructor.
				 * @param sampleRate sample rate of the microphone, typically 11025 or 8000.
				 * @param fifoDepth depth of the real time fifo, measured in sampleRate clock ticks.
				 */
				constructor(sampleRate: number, fifoDepth: number);
				static class: java.lang.Class<android.speech.srec.MicrophoneInputStream>;
				public read(): number;
				public read(b: native.Array<number>): number;
				public read(b: native.Array<number>, offset: number, length: number): number;
				/**
				 * Closes this stream.
				 */
				public close(): void;
				protected finalize(): void;
			}
			/**
			 * Simple, synchronous speech recognizer, using the Nuance SREC package. Usages proceeds as follows: <ul> <li>Create a <code>Recognizer</code>. <li>Create a <code>Recognizer.Grammar</code>. <li>Setup the <code>Recognizer.Grammar</code>. <li>Reset the <code>Recognizer.Grammar</code> slots, if needed. <li>Fill the <code>Recognizer.Grammar</code> slots, if needed. <li>Compile the <code>Recognizer.Grammar</code>, if needed. <li>Save the filled <code>Recognizer.Grammar</code>, if needed. <li>Start the <code>Recognizer</code>. <li>Loop over <code>advance</code> and <code>putAudio</code> until recognition complete. <li>Fetch and process results, or notify of failure. <li>Stop the <code>Recognizer</code>. <li>Destroy the <code>Recognizer</code>. </ul> 
			 */
			export class Recognizer extends java.lang.Object {
				/**
				 * Create an instance of a SREC speech recognizer. 
				 * @param configFile pathname of the baseline*.par configuration file,
				 */
				constructor(configFile: string);
				/**
				 * Result key corresponding to confidence score.
				 */
				static KEY_CONFIDENCE: string;
				/**
				 * Result key corresponding to literal text.
				 */
				static KEY_LITERAL: string;
				/**
				 * Result key corresponding to semantic meaning text.
				 */
				static KEY_MEANING: string;
				/**
				 * Reserved value.
				 */
				static EVENT_INVALID: number;
				/**
				 * <code>Recognizer</code> could not find a match for the utterance.
				 */
				static EVENT_NO_MATCH: number;
				/**
				 * <code>Recognizer</code> processed one frame of audio.
				 */
				static EVENT_INCOMPLETE: number;
				/**
				 * <code>Recognizer</code> has just been started.
				 */
				static EVENT_STARTED: number;
				/**
				 * <code>Recognizer</code> is stopped.
				 */
				static EVENT_STOPPED: number;
				/**
				 * Beginning of speech detected.
				 */
				static EVENT_START_OF_VOICING: number;
				/**
				 * End of speech detected.
				 */
				static EVENT_END_OF_VOICING: number;
				/**
				 * Beginning of utterance occured too soon.
				 */
				static EVENT_SPOKE_TOO_SOON: number;
				/**
				 * Recognition match detected.
				 */
				static EVENT_RECOGNITION_RESULT: number;
				/**
				 * Timeout occured before beginning of utterance.
				 */
				static EVENT_START_OF_UTTERANCE_TIMEOUT: number;
				/**
				 * Timeout occured before speech recognition could complete.
				 */
				static EVENT_RECOGNITION_TIMEOUT: number;
				/**
				 * Not enough samples to process one frame.
				 */
				static EVENT_NEED_MORE_AUDIO: number;
				/**
				 * More audio encountered than is allowed by 'swirec_max_speech_duration'.
				 */
				static EVENT_MAX_SPEECH: number;
				static class: java.lang.Class<android.speech.srec.Recognizer>;
				Grammar: {
	new (g2gFileName: string): android.speech.srec.Recognizer.Grammar;
};
				/**
				 * Get the pathname of the SREC configuration directory corresponding to the language indicated by the Locale. This directory contains dictionaries, speech models, configuration files, and other data needed by the Recognizer.
				 * @param locale <code>Locale</code> corresponding to the desired language,
				 */
				public static getConfigDir(locale: java.util.Locale): string;
				/**
				 * Start recognition
				 */
				public start(): void;
				/**
				 * Process some audio and return the current status.
				 */
				public advance(): number;
				/**
				 * Put audio samples into the <code>Recognizer</code>.
				 * @param buf holds the audio samples.
				 * @param offset offset of the first sample.
				 * @param length number of bytes containing samples.
				 * @param isLast indicates no more audio data, normally false.
				 */
				public putAudio(buf: native.Array<number>, offset: number, length: number, isLast: boolean): number;
				/**
				 * Read audio samples from an <code>InputStream</code> and put them in the <code>Recognizer</code>.
				 * @param audio <code>InputStream</code> containing PCM audio samples.
				 */
				public putAudio(audio: java.io.InputStream): void;
				/**
				 * Get the number of recognition results. Must be called after <code>EVENT_RECOGNITION_RESULT</code> is returned by <code>advance</code>, but before <code>stop</code>. 
				 */
				public getResultCount(): number;
				/**
				 * Get a set of keys for the result. Must be called after <code>EVENT_RECOGNITION_RESULT</code> is returned by <code>advance</code>, but before <code>stop</code>. 
				 * @param index index of result.
				 */
				public getResultKeys(index: number): native.Array<string>;
				/**
				 * Get a result value. Must be called after <code>EVENT_RECOGNITION_RESULT</code> is returned by <code>advance</code>, but before <code>stop</code>. 
				 * @param index index of the result.
				 * @param key key of the result. This is typically one of
				 */
				public getResult(index: number, key: string): string;
				/**
				 * Stop the <code>Recognizer</code>.
				 */
				public stop(): void;
				/**
				 * Clean up resources.
				 */
				public destroy(): void;
				/**
				 * Clean up resources.
				 */
				protected finalize(): void;
				/**
				 * Produce a displayable string from an <code>advance</code> event.
				 * @param event 
				 */
				public static eventToString(event: number): string;
			}
			export module Recognizer {
				/**
				 * Represents a grammar loaded into the Recognizer.
				 */
				export class Grammar extends java.lang.Object {
					static class: java.lang.Class<android.speech.srec.Recognizer.Grammar>;
					/**
					 * Reset all slots.
					 */
					public resetAllSlots(): void;
					/**
					 * Add a word to a slot. 
					 * @param slot slot name.
					 * @param word word to insert.
					 * @param pron pronunciation, or null to derive from word.
					 * @param weight weight to give the word. One is normal, 50 is low.
					 * @param tag semantic meaning tag string.
					 */
					public addWordToSlot(slot: string, word: string, pron: string, weight: number, tag: string): void;
					/**
					 * Compile all slots.
					 */
					public compile(): void;
					/**
					 * Setup <code>Grammar</code> with <code>Recognizer</code>.
					 */
					public setupRecognizer(): void;
					/**
					 * Save <code>Grammar</code> to g2g file. 
					 * @param g2gFileName 
					 */
					public save(g2gFileName: string): void;
					/**
					 * Release resources associated with this <code>Grammar</code>.
					 */
					public destroy(): void;
					/**
					 * Clean up resources.
					 */
					protected finalize(): void;
				}
			}
		}
		/**
		 * Constants for supporting speech recognition through starting an Intent
		 */
		export class RecognizerIntent extends java.lang.Object {
			/**
			 * The extra key used in an intent to the speech recognizer for voice search. Not generally to be used by developers. The system search dialog uses this, for example, to set a calling package for identification by a voice search API. If this extra is set by anyone but the system process, it should be overridden by the voice search implementation.
			 */
			static EXTRA_CALLING_PACKAGE: string;
			/**
			 * Starts an activity that will prompt the user for speech and send it through a speech recognizer. The results will be returned via activity results (in Activity#onActivityResult, if you start the intent using Activity#startActivityForResult(Intent, int)), or forwarded via a PendingIntent if one is provided. 
			 */
			static ACTION_RECOGNIZE_SPEECH: string;
			/**
			 * Starts an activity that will prompt the user for speech, send it through a speech recognizer, and either display a web search result or trigger another type of action based on the user's speech.
			 */
			static ACTION_WEB_SEARCH: string;
			/**
			 * Starts an activity that will prompt the user for speech without requiring the user's visual attention or touch input. It will send it through a speech recognizer, and either synthesize speech for a web search result or trigger another type of action based on the user's speech.
			 */
			static ACTION_VOICE_SEARCH_HANDS_FREE: string;
			/**
			 * Optional boolean to indicate that a "hands free" voice search was performed while the device was in a secure mode. An example of secure mode is when the device's screen lock is active, and it requires some form of authentication to be unlocked.
			 */
			static EXTRA_SECURE: string;
			/**
			 * The minimum length of an utterance. We will not stop recording before this amount of time. Note that it is extremely rare you'd want to specify this value in an intent. If you don't have a very good reason to change these, you should leave them as they are. Note also that certain values may cause undesired or unexpected results - use judiciously! Additionally, depending on the recognizer implementation, these values may have no effect.
			 */
			static EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS: string;
			/**
			 * The amount of time that it should take after we stop hearing speech to consider the input complete. Note that it is extremely rare you'd want to specify this value in an intent. If you don't have a very good reason to change these, you should leave them as they are. Note also that certain values may cause undesired or unexpected results - use judiciously! Additionally, depending on the recognizer implementation, these values may have no effect.
			 */
			static EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS: string;
			/**
			 * The amount of time that it should take after we stop hearing speech to consider the input possibly complete. This is used to prevent the endpointer cutting off during very short mid-speech pauses. Note that it is extremely rare you'd want to specify this value in an intent. If you don't have a very good reason to change these, you should leave them as they are. Note also that certain values may cause undesired or unexpected results - use judiciously! Additionally, depending on the recognizer implementation, these values may have no effect.
			 */
			static EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS: string;
			/**
			 * Informs the recognizer which speech model to prefer when performing #ACTION_RECOGNIZE_SPEECH. The recognizer uses this information to fine tune the results. This extra is required. Activities implementing #ACTION_RECOGNIZE_SPEECH may interpret the values as they see fit. #LANGUAGE_MODEL_FREE_FORM #LANGUAGE_MODEL_WEB_SEARCH
			 */
			static EXTRA_LANGUAGE_MODEL: string;
			static LANGUAGE_MODEL_FREE_FORM: string;
			static LANGUAGE_MODEL_WEB_SEARCH: string;
			/**
			 * Optional text prompt to show to the user when asking them to speak.
			 */
			static EXTRA_PROMPT: string;
			/**
			 * Optional IETF language tag (as defined by BCP 47), for example "en-US". This tag informs the recognizer to perform speech recognition in a language different than the one set in the java.util.Locale#getDefault().
			 */
			static EXTRA_LANGUAGE: string;
			/**
			 * Optional value which can be used to indicate the referer url of a page in which speech was requested. For example, a web browser may choose to provide this for uses of speech on a given page.
			 */
			static EXTRA_ORIGIN: string;
			static EXTRA_MAX_RESULTS: string;
			/**
			 * Optional boolean, to be used with #ACTION_WEB_SEARCH, to indicate whether to only fire web searches in response to a user's speech. The default is false, meaning that other types of actions can be taken based on the user's speech.
			 */
			static EXTRA_WEB_SEARCH_ONLY: string;
			/**
			 * Optional boolean to indicate whether partial results should be returned by the recognizer as the user speaks (default is false). The server may ignore a request for partial results in some or all cases.
			 */
			static EXTRA_PARTIAL_RESULTS: string;
			/**
			 * When the intent is #ACTION_RECOGNIZE_SPEECH, the speech input activity will return results to you via the activity results mechanism. Alternatively, if you use this extra to supply a PendingIntent, the results will be added to its bundle and the PendingIntent will be sent to its target.
			 */
			static EXTRA_RESULTS_PENDINGINTENT: string;
			/**
			 * If you use #EXTRA_RESULTS_PENDINGINTENT to supply a forwarding intent, you can also use this extra to supply additional extras for the final intent. The search results will be added to this bundle, and the combined bundle will be sent to the target.
			 */
			static EXTRA_RESULTS_PENDINGINTENT_BUNDLE: string;
			/**
			 * Result code returned when no matches are found for the given speech
			 */
			static RESULT_NO_MATCH: number;
			/**
			 * Result code returned when there is a generic client error
			 */
			static RESULT_CLIENT_ERROR: number;
			/**
			 * Result code returned when the recognition server returns an error
			 */
			static RESULT_SERVER_ERROR: number;
			/**
			 * Result code returned when a network error was encountered
			 */
			static RESULT_NETWORK_ERROR: number;
			/**
			 * Result code returned when an audio error was encountered
			 */
			static RESULT_AUDIO_ERROR: number;
			/**
			 * An ArrayList&lt;String&gt; of the recognition results when performing #ACTION_RECOGNIZE_SPEECH. Generally this list should be ordered in descending order of speech recognizer confidence. (See #EXTRA_CONFIDENCE_SCORES). Returned in the results; not to be specified in the recognition request. Only present when Activity#RESULT_OK is returned in an activity result. In a PendingIntent, the lack of this extra indicates failure.
			 */
			static EXTRA_RESULTS: string;
			/**
			 * A float array of confidence scores of the recognition results when performing #ACTION_RECOGNIZE_SPEECH. The array should be the same size as the ArrayList returned in #EXTRA_RESULTS, and should contain values ranging from 0.0 to 1.0, or -1 to represent an unavailable confidence score.
			 */
			static EXTRA_CONFIDENCE_SCORES: string;
			/**
			 * Meta-data name under which an Activity implementing #ACTION_WEB_SEARCH can use to expose the class name of a BroadcastReceiver which can respond to request for more information, from any of the broadcast intents specified in this class.
			 */
			static DETAILS_META_DATA: string;
			/**
			 * A broadcast intent which can be fired to the BroadcastReceiver component specified in the meta-data defined in the #DETAILS_META_DATA meta-data of an Activity satisfying #ACTION_WEB_SEARCH.
			 */
			static ACTION_GET_LANGUAGE_DETAILS: string;
			/**
			 * Specify this boolean extra in a broadcast of #ACTION_GET_LANGUAGE_DETAILS to indicate that only the current language preference is needed in the response. This avoids any additional computation if all you need is #EXTRA_LANGUAGE_PREFERENCE in the response.
			 */
			static EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE: string;
			/**
			 * The key to the extra in the Bundle returned by #ACTION_GET_LANGUAGE_DETAILS which is a String that represents the current language preference this user has specified - a locale string like "en-US".
			 */
			static EXTRA_LANGUAGE_PREFERENCE: string;
			/**
			 * The key to the extra in the Bundle returned by #ACTION_GET_LANGUAGE_DETAILS which is an ArrayList of Strings that represents the languages supported by this implementation of voice recognition - a list of strings like "en-US", "cmn-Hans-CN", etc.
			 */
			static EXTRA_SUPPORTED_LANGUAGES: string;
			static class: java.lang.Class<android.speech.RecognizerIntent>;
			/**
			 * Returns the broadcast intent to fire with Context#sendOrderedBroadcast(Intent, String, BroadcastReceiver, android.os.Handler, int, String, Bundle) to receive details from the package that implements voice search.
			 * @param context a context object
			 */
			public static getVoiceDetailsIntent(context: android.content.Context): android.content.Intent;
		}
		/**
		 * Used for receiving notifications from the SpeechRecognizer when the recognition related events occur. All the callbacks are executed on the Application main thread.
		 */
		export class RecognitionListener implements android.speech.IRecognitionListener {
			constructor(implementation: android.speech.IRecognitionListener);
			/**
			 * Called when the endpointer is ready for the user to start speaking. 
			 * @param params parameters set by the recognition service. Reserved for future use.
			 */
			public onReadyForSpeech(params: android.os.Bundle): void;
			/**
			 * The user has started to speak.
			 */
			public onBeginningOfSpeech(): void;
			/**
			 * The sound level in the audio stream has changed. There is no guarantee that this method will be called. 
			 * @param rmsdB the new RMS dB value
			 */
			public onRmsChanged(rmsdB: number): void;
			/**
			 * More sound has been received. The purpose of this function is to allow giving feedback to the user regarding the captured audio. There is no guarantee that this method will be called. 
			 * @param buffer a buffer containing a sequence of big-endian 16-bit integers representing a
			 */
			public onBufferReceived(buffer: native.Array<number>): void;
			/**
			 * Called after the user stops speaking.
			 */
			public onEndOfSpeech(): void;
			/**
			 * A network or recognition error occurred. 
			 * @param error code is defined in {@link SpeechRecognizer}
			 */
			public onError(error: number): void;
			/**
			 * Called when recognition results are ready. 
			 * @param results the recognition results. To retrieve the results in {@code
			 */
			public onResults(results: android.os.Bundle): void;
			/**
			 * Called when partial recognition results are available. The callback might be called at any time between #onBeginningOfSpeech() and #onResults(Bundle) when partial results are ready. This method may be called zero, one or multiple times for each call to SpeechRecognizer#startListening(Intent), depending on the speech recognition service implementation. To request partial results, use RecognizerIntent#EXTRA_PARTIAL_RESULTS 
			 * @param partialResults the returned results. To retrieve the results in
			 */
			public onPartialResults(partialResults: android.os.Bundle): void;
			/**
			 * Reserved for adding future events. 
			 * @param eventType the type of the occurred event
			 * @param params a Bundle containing the passed parameters
			 */
			public onEvent(eventType: number, params: android.os.Bundle): void;
		}
		/**
		 * Used for receiving notifications from the SpeechRecognizer when the recognition related events occur. All the callbacks are executed on the Application main thread.
		 */
		interface IRecognitionListener {
			/**
			 * Called when the endpointer is ready for the user to start speaking. 
			 * @param params parameters set by the recognition service. Reserved for future use.
			 */
			onReadyForSpeech(params: android.os.Bundle): void;
			/**
			 * The user has started to speak.
			 */
			onBeginningOfSpeech(): void;
			/**
			 * The sound level in the audio stream has changed. There is no guarantee that this method will be called. 
			 * @param rmsdB the new RMS dB value
			 */
			onRmsChanged(rmsdB: number): void;
			/**
			 * More sound has been received. The purpose of this function is to allow giving feedback to the user regarding the captured audio. There is no guarantee that this method will be called. 
			 * @param buffer a buffer containing a sequence of big-endian 16-bit integers representing a
			 */
			onBufferReceived(buffer: native.Array<number>): void;
			/**
			 * Called after the user stops speaking.
			 */
			onEndOfSpeech(): void;
			/**
			 * A network or recognition error occurred. 
			 * @param error code is defined in {@link SpeechRecognizer}
			 */
			onError(error: number): void;
			/**
			 * Called when recognition results are ready. 
			 * @param results the recognition results. To retrieve the results in {@code
			 */
			onResults(results: android.os.Bundle): void;
			/**
			 * Called when partial recognition results are available. The callback might be called at any time between #onBeginningOfSpeech() and #onResults(Bundle) when partial results are ready. This method may be called zero, one or multiple times for each call to SpeechRecognizer#startListening(Intent), depending on the speech recognition service implementation. To request partial results, use RecognizerIntent#EXTRA_PARTIAL_RESULTS 
			 * @param partialResults the returned results. To retrieve the results in
			 */
			onPartialResults(partialResults: android.os.Bundle): void;
			/**
			 * Reserved for adding future events. 
			 * @param eventType the type of the occurred event
			 * @param params a Bundle containing the passed parameters
			 */
			onEvent(eventType: number, params: android.os.Bundle): void;
		}
		/**
		 * This class provides access to the speech recognition service. This service allows access to the speech recognizer. Do not instantiate this class directly, instead, call SpeechRecognizer#createSpeechRecognizer(Context). This class's methods must be invoked only from the main application thread. Please note that the application must have android.Manifest.permission#RECORD_AUDIO permission to use this class.
		 */
		export class SpeechRecognizer extends java.lang.Object {
			/**
			 * Key used to retrieve an ArrayList<String> from the Bundle passed to the RecognitionListener#onResults(Bundle) and RecognitionListener#onPartialResults(Bundle) methods. These strings are the possible recognition results, where the first element is the most likely candidate.
			 */
			static RESULTS_RECOGNITION: string;
			/**
			 * Key used to retrieve a float array from the Bundle passed to the RecognitionListener#onResults(Bundle) and RecognitionListener#onPartialResults(Bundle) methods. The array should be the same size as the ArrayList provided in #RESULTS_RECOGNITION, and should contain values ranging from 0.0 to 1.0, or -1 to represent an unavailable confidence score.
			 */
			static CONFIDENCE_SCORES: string;
			/**
			 * Network operation timed out.
			 */
			static ERROR_NETWORK_TIMEOUT: number;
			/**
			 * Other network related errors.
			 */
			static ERROR_NETWORK: number;
			/**
			 * Audio recording error.
			 */
			static ERROR_AUDIO: number;
			/**
			 * Server sends error status.
			 */
			static ERROR_SERVER: number;
			/**
			 * Other client side errors.
			 */
			static ERROR_CLIENT: number;
			/**
			 * No speech input
			 */
			static ERROR_SPEECH_TIMEOUT: number;
			/**
			 * No recognition result matched.
			 */
			static ERROR_NO_MATCH: number;
			/**
			 * RecognitionService busy.
			 */
			static ERROR_RECOGNIZER_BUSY: number;
			/**
			 * Insufficient permissions
			 */
			static ERROR_INSUFFICIENT_PERMISSIONS: number;
			static class: java.lang.Class<android.speech.SpeechRecognizer>;
			/**
			 * Checks whether a speech recognition service is available on the system. If this method returns false, SpeechRecognizer#createSpeechRecognizer(Context) will fail. 
			 * @param context with which {@code SpeechRecognizer} will be created
			 */
			public static isRecognitionAvailable(context: android.content.Context): boolean;
			/**
			 * Factory method to create a new SpeechRecognizer. Please note that #setRecognitionListener(RecognitionListener) should be called before dispatching any command to the created SpeechRecognizer, otherwise no notifications will be received.
			 * @param context in which to create {@code SpeechRecognizer}
			 */
			public static createSpeechRecognizer(context: android.content.Context): android.speech.SpeechRecognizer;
			/**
			 * Factory method to create a new SpeechRecognizer. Please note that #setRecognitionListener(RecognitionListener) should be called before dispatching any command to the created SpeechRecognizer, otherwise no notifications will be received.
			 * @param context in which to create {@code SpeechRecognizer}
			 * @param serviceComponent the {@link ComponentName} of a specific service to direct this
			 */
			public static createSpeechRecognizer(context: android.content.Context, serviceComponent: android.content.ComponentName): android.speech.SpeechRecognizer;
			/**
			 * Sets the listener that will receive all the callbacks. The previous unfinished commands will be executed with the old listener, while any following command will be executed with the new listener. 
			 * @param listener listener that will receive all the callbacks from the created
			 */
			public setRecognitionListener(listener: android.speech.IRecognitionListener): void;
			/**
			 * Starts listening for speech. Please note that #setRecognitionListener(RecognitionListener) should be called beforehand, otherwise no notifications will be received.
			 * @param recognizerIntent contains parameters for the recognition to be performed. The intent
			 */
			public startListening(recognizerIntent: android.content.Intent): void;
			/**
			 * Stops listening for speech. Speech captured so far will be recognized as if the user had stopped speaking at this point. Note that in the default case, this does not need to be called, as the speech endpointer will automatically stop the recognizer listening when it determines speech has completed. However, you can manipulate endpointer parameters directly using the intent extras defined in RecognizerIntent, in which case you may sometimes want to manually call this method to stop listening sooner. Please note that #setRecognitionListener(RecognitionListener) should be called beforehand, otherwise no notifications will be received.
			 */
			public stopListening(): void;
			/**
			 * Cancels the speech recognition. Please note that #setRecognitionListener(RecognitionListener) should be called beforehand, otherwise no notifications will be received.
			 */
			public cancel(): void;
			/**
			 * Destroys the SpeechRecognizer object.
			 */
			public destroy(): void;
		}
		export module SpeechRecognizer {
			/**
			 * Basic ServiceConnection that records the mService variable. Additionally, on creation it invokes the IRecognitionService#startListening(Intent, IRecognitionListener).
			 */
			export class Connection extends java.lang.Object implements android.content.IServiceConnection {
				static class: java.lang.Class<android.speech.SpeechRecognizer.Connection>;
				public onServiceConnected(name: android.content.ComponentName, service: android.os.IIBinder): void;
				public onServiceDisconnected(name: android.content.ComponentName): void;
			}
			/**
			 * Internal wrapper of IRecognitionListener which will propagate the results to RecognitionListener
			 */
			export class InternalListener {
				static class: java.lang.Class<android.speech.SpeechRecognizer.InternalListener>;
				public onBeginningOfSpeech(): void;
				public onBufferReceived(buffer: native.Array<number>): void;
				public onEndOfSpeech(): void;
				public onError(error: number): void;
				public onReadyForSpeech(noiseParams: android.os.Bundle): void;
				public onResults(results: android.os.Bundle): void;
				public onPartialResults(results: android.os.Bundle): void;
				public onRmsChanged(rmsdB: number): void;
				public onEvent(eventType: number, params: android.os.Bundle): void;
			}
		}
	}
	export module service {
		export module textservice {
			/**
			 * SpellCheckerService provides an abstract base class for a spell checker. This class combines a service to the system with the spell checker service interface that spell checker must implement.
			 */
			export class SpellCheckerService extends android.app.Service {
				constructor();
				static SERVICE_INTERFACE: string;
				static class: java.lang.Class<android.service.textservice.SpellCheckerService>;
				/**
				 * Implement to return the implementation of the internal spell checker service interface. Subclasses should not override.
				 */
				public onBind(intent: android.content.Intent): android.os.IIBinder;
				/**
				 * Factory method to create a spell checker session impl
				 */
				public createSession(): android.service.textservice.SpellCheckerService.Session;
			}
			export module SpellCheckerService {
				export class SpellCheckerServiceBinder {
					constructor(service: android.service.textservice.SpellCheckerService);
					static class: java.lang.Class<android.service.textservice.SpellCheckerService.SpellCheckerServiceBinder>;
				}
				/**
				 * Adapter class to accommodate word level spell checking APIs to sentence level spell checking APIs used in SpellCheckerService.Session#onGetSuggestionsMultiple(TextInfo[], int, boolean)
				 */
				export class SentenceLevelAdapter extends java.lang.Object {
					constructor(locale: java.util.Locale);
					static EMPTY_SENTENCE_SUGGESTIONS_INFOS: native.Array<android.view.textservice.SentenceSuggestionsInfo>;
					static class: java.lang.Class<android.service.textservice.SpellCheckerService.SentenceLevelAdapter>;
					public static reconstructSuggestions(originalTextInfoParams: android.service.textservice.SpellCheckerService.SentenceLevelAdapter.SentenceTextInfoParams, results: native.Array<android.view.textservice.SuggestionsInfo>): android.view.textservice.SentenceSuggestionsInfo;
				}
				export module SentenceLevelAdapter {
					/**
					 * Container for originally queried TextInfo and parameters
					 */
					export class SentenceTextInfoParams extends java.lang.Object {
						constructor(ti: android.view.textservice.TextInfo, items: java.util.ArrayList<android.service.textservice.SpellCheckerService.SentenceLevelAdapter.SentenceWordItem>);
						static class: java.lang.Class<android.service.textservice.SpellCheckerService.SentenceLevelAdapter.SentenceTextInfoParams>;
					}
					/**
					 * Container for split TextInfo parameters
					 */
					export class SentenceWordItem extends java.lang.Object {
						constructor(ti: android.view.textservice.TextInfo, start: number, end: number);
						mTextInfo: android.view.textservice.TextInfo;
						mStart: number;
						mLength: number;
						static class: java.lang.Class<android.service.textservice.SpellCheckerService.SentenceLevelAdapter.SentenceWordItem>;
					}
				}
				export class InternalISpellCheckerSession {
					static class: java.lang.Class<android.service.textservice.SpellCheckerService.InternalISpellCheckerSession>;
					public onGetSuggestionsMultiple(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number, sequentialWords: boolean): void;
					public onGetSentenceSuggestionsMultiple(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number): void;
					public onCancel(): void;
					public onClose(): void;
					public getLocale(): string;
					public getBundle(): android.os.Bundle;
				}
				/**
				 * This abstract class should be overridden by a concrete implementation of a spell checker.
				 */
				export class Session extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.service.textservice.SpellCheckerService.Session>;
					/**
					 * This is called after the class is initialized, at which point it knows it can call getLocale() etc...
					 */
					public onCreate(): void;
					/**
					 * Get suggestions for specified text in TextInfo. This function will run on the incoming IPC thread. So, this is not called on the main thread, but will be called in series on another thread.
					 * @param textInfo the text metadata
					 * @param suggestionsLimit the maximum number of suggestions to be returned
					 */
					public onGetSuggestions(textInfo: android.view.textservice.TextInfo, suggestionsLimit: number): android.view.textservice.SuggestionsInfo;
					/**
					 * A batch process of onGetSuggestions. This function will run on the incoming IPC thread. So, this is not called on the main thread, but will be called in series on another thread.
					 * @param textInfos an array of the text metadata
					 * @param suggestionsLimit the maximum number of suggestions to be returned
					 * @param sequentialWords true if textInfos can be treated as sequential words.
					 */
					public onGetSuggestionsMultiple(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number, sequentialWords: boolean): native.Array<android.view.textservice.SuggestionsInfo>;
					/**
					 * Get sentence suggestions for specified texts in an array of TextInfo. The default implementation splits the input text to words and returns SentenceSuggestionsInfo which contains suggestions for each word. This function will run on the incoming IPC thread. So, this is not called on the main thread, but will be called in series on another thread. When you override this method, make sure that suggestionsLimit is applied to suggestions that share the same start position and length.
					 * @param textInfos an array of the text metadata
					 * @param suggestionsLimit the maximum number of suggestions to be returned
					 */
					public onGetSentenceSuggestionsMultiple(textInfos: native.Array<android.view.textservice.TextInfo>, suggestionsLimit: number): native.Array<android.view.textservice.SentenceSuggestionsInfo>;
					/**
					 * Request to abort all tasks executed in SpellChecker. This function will run on the incoming IPC thread. So, this is not called on the main thread, but will be called in series on another thread.
					 */
					public onCancel(): void;
					/**
					 * Request to close this session. This function will run on the incoming IPC thread. So, this is not called on the main thread, but will be called in series on another thread.
					 */
					public onClose(): void;
					public getLocale(): string;
					public getBundle(): android.os.Bundle;
				}
			}
		}
		export module wallpaper {
			/**
			 * A wallpaper service is responsible for showing a live wallpaper behind applications that would like to sit on top of it. This service object itself does very little -- its only purpose is to generate instances of Engine as needed. Implementing a wallpaper thus involves subclassing from this, subclassing an Engine implementation, and implementing #onCreateEngine() to return a new instance of your engine.
			 */
			export class WallpaperService extends android.app.Service {
				constructor();
				/**
				 * The Intent that must be declared as handled by the service. To be supported, the service must also require the android.Manifest.permission#BIND_WALLPAPER permission so that other applications can not abuse it.
				 */
				static SERVICE_INTERFACE: string;
				/**
				 * Name under which a WallpaperService component publishes information about itself. This meta-data must reference an XML resource containing a <code>&lt;android.R.styleable#Wallpaper wallpaper&gt;</code> tag.
				 */
				static SERVICE_META_DATA: string;
				static class: java.lang.Class<android.service.wallpaper.WallpaperService>;
				IWallpaperServiceWrapper: {
	new (context: android.service.wallpaper.WallpaperService): android.service.wallpaper.WallpaperService.IWallpaperServiceWrapper;
};
				Engine: {
	new (): android.service.wallpaper.WallpaperService.Engine;
};
				public onCreate(): void;
				public onDestroy(): void;
				/**
				 * Implement to return the implementation of the internal accessibility service interface. Subclasses should not override.
				 */
				public onBind(intent: android.content.Intent): android.os.IIBinder;
				/**
				 * Must be implemented to return a new instance of the wallpaper's engine. Note that multiple instances may be active at the same time, such as when the wallpaper is currently set as the active wallpaper and the user is in the wallpaper picker viewing a preview of it as well.
				 */
				public onCreateEngine(): android.service.wallpaper.WallpaperService.Engine;
				protected dump(fd: java.io.FileDescriptor, out: java.io.PrintWriter, args: native.Array<string>): void;
			}
			export module WallpaperService {
				export class WallpaperCommand extends java.lang.Object {
					static class: java.lang.Class<android.service.wallpaper.WallpaperService.WallpaperCommand>;
				}
				export class IWallpaperEngineWrapper {
					static class: java.lang.Class<android.service.wallpaper.WallpaperService.IWallpaperEngineWrapper>;
					public setDesiredSize(width: number, height: number): void;
					public setVisibility(visible: boolean): void;
					public dispatchPointer(event: android.view.MotionEvent): void;
					public dispatchWallpaperCommand(action: string, x: number, y: number, z: number, extras: android.os.Bundle): void;
					public reportShown(): void;
					public destroy(): void;
					public executeMessage(message: android.os.Message): void;
				}
				/**
				 * Implements the internal IWallpaperService interface to convert incoming calls to it back to calls on an WallpaperService.
				 */
				export class IWallpaperServiceWrapper {
					static class: java.lang.Class<android.service.wallpaper.WallpaperService.IWallpaperServiceWrapper>;
				}
				/**
				 * The actual implementation of a wallpaper. A wallpaper service may have multiple instances running (for example as a real wallpaper and as a preview), each of which is represented by its own Engine instance. You must implement WallpaperService#onCreateEngine() to return your concrete Engine implementation.
				 */
				export class Engine extends java.lang.Object {
					static class: java.lang.Class<android.service.wallpaper.WallpaperService.Engine>;
					/**
					 * Provides access to the surface in which this wallpaper is drawn.
					 */
					public getSurfaceHolder(): android.view.ISurfaceHolder;
					/**
					 * Convenience for WallpaperManager#getDesiredMinimumWidth() WallpaperManager.getDesiredMinimumWidth(), returning the width that the system would like this wallpaper to run in.
					 */
					public getDesiredMinimumWidth(): number;
					/**
					 * Convenience for WallpaperManager#getDesiredMinimumHeight() WallpaperManager.getDesiredMinimumHeight(), returning the height that the system would like this wallpaper to run in.
					 */
					public getDesiredMinimumHeight(): number;
					/**
					 * Return whether the wallpaper is currently visible to the user, this is the last value supplied to #onVisibilityChanged(boolean).
					 */
					public isVisible(): boolean;
					/**
					 * Returns true if this engine is running in preview mode -- that is, it is being shown to the user before they select it as the actual wallpaper.
					 */
					public isPreview(): boolean;
					/**
					 * Control whether this wallpaper will receive raw touch events from the window manager as the user interacts with the window that is currently displaying the wallpaper. By default they are turned off. If enabled, the events will be received in #onTouchEvent(MotionEvent).
					 */
					public setTouchEventsEnabled(enabled: boolean): void;
					/**
					 * Control whether this wallpaper will receive notifications when the wallpaper has been scrolled. By default, wallpapers will receive notifications, although the default static image wallpapers do not. It is a performance optimization to set this to false.
					 * @param enabled whether the wallpaper wants to receive offset notifications
					 */
					public setOffsetNotificationsEnabled(enabled: boolean): void;
					/**
					 * Called once to initialize the engine. After returning, the engine's surface will be created by the framework.
					 */
					public onCreate(surfaceHolder: android.view.ISurfaceHolder): void;
					/**
					 * Called right before the engine is going away. After this the surface will be destroyed and this Engine object is no longer valid.
					 */
					public onDestroy(): void;
					/**
					 * Called to inform you of the wallpaper becoming visible or hidden. <em>It is very important that a wallpaper only use CPU while it is visible.</em>.
					 */
					public onVisibilityChanged(visible: boolean): void;
					/**
					 * Called as the user performs touch-screen interaction with the window that is currently showing this wallpaper. Note that the events you receive here are driven by the actual application the user is interacting with, so if it is slow you will get fewer move events.
					 */
					public onTouchEvent(event: android.view.MotionEvent): void;
					/**
					 * Called to inform you of the wallpaper's offsets changing within its contain, corresponding to the container's call to WallpaperManager#setWallpaperOffsets(IBinder, float, float) WallpaperManager.setWallpaperOffsets().
					 */
					public onOffsetsChanged(xOffset: number, yOffset: number, xOffsetStep: number, yOffsetStep: number, xPixelOffset: number, yPixelOffset: number): void;
					/**
					 * Process a command that was sent to the wallpaper with WallpaperManager#sendWallpaperCommand. The default implementation does nothing, and always returns null as the result. 
					 * @param action The name of the command to perform. This tells you
					 * @param x Generic integer parameter.
					 * @param y Generic integer parameter.
					 * @param z Generic integer parameter.
					 * @param extras Any additional parameters.
					 * @param resultRequested If true, the caller is requesting that
					 */
					public onCommand(action: string, x: number, y: number, z: number, extras: android.os.Bundle, resultRequested: boolean): android.os.Bundle;
					/**
					 * Called when an application has changed the desired virtual size of the wallpaper.
					 */
					public onDesiredSizeChanged(desiredWidth: number, desiredHeight: number): void;
					/**
					 * Convenience for SurfaceHolder.Callback#surfaceChanged SurfaceHolder.Callback.surfaceChanged().
					 */
					public onSurfaceChanged(holder: android.view.ISurfaceHolder, format: number, width: number, height: number): void;
					/**
					 * Convenience for SurfaceHolder.Callback2#surfaceRedrawNeeded SurfaceHolder.Callback.surfaceRedrawNeeded().
					 */
					public onSurfaceRedrawNeeded(holder: android.view.ISurfaceHolder): void;
					/**
					 * Convenience for SurfaceHolder.Callback#surfaceCreated SurfaceHolder.Callback.surfaceCreated().
					 */
					public onSurfaceCreated(holder: android.view.ISurfaceHolder): void;
					/**
					 * Convenience for SurfaceHolder.Callback#surfaceDestroyed SurfaceHolder.Callback.surfaceDestroyed().
					 */
					public onSurfaceDestroyed(holder: android.view.ISurfaceHolder): void;
					protected dump(prefix: string, fd: java.io.FileDescriptor, out: java.io.PrintWriter, args: native.Array<string>): void;
					updateSurface(forceRelayout: boolean, forceReport: boolean, redrawNeeded: boolean): void;
					attach(wrapper: android.service.wallpaper.WallpaperService.IWallpaperEngineWrapper): void;
					doDesiredSizeChanged(desiredWidth: number, desiredHeight: number): void;
					doVisibilityChanged(visible: boolean): void;
					reportVisibility(): void;
					doOffsetsChanged(always: boolean): void;
					doCommand(cmd: android.service.wallpaper.WallpaperService.WallpaperCommand): void;
					reportSurfaceDestroyed(): void;
					detach(): void;
				}
				export module Engine {
					export class WallpaperInputEventReceiver extends java.lang.Object {
						static class: java.lang.Class<android.service.wallpaper.WallpaperService.Engine.WallpaperInputEventReceiver>;
						public onInputEvent(event: android.view.InputEvent): void;
					}
				}
			}
		}
		export module dreams {
			/**
			 * Extend this class to implement a custom Dream (displayed to the user as a "Sleep Mode").
			 */
			export class DreamService extends android.app.Service implements android.view.Window.ICallback {
				constructor();
				/**
				 * The Intent that must be declared as handled by the service.
				 */
				static SERVICE_INTERFACE: string;
				/**
				 * Name under which a Dream publishes information about itself. This meta-data must reference an XML resource containing a <code>&lt;android.R.styleable#Dream dream&gt;</code> tag.
				 */
				static DREAM_META_DATA: string;
				static class: java.lang.Class<android.service.dreams.DreamService>;
				/**
				 * 
				 */
				public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
				/**
				 * 
				 */
				public dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
				/**
				 * 
				 */
				public dispatchTouchEvent(event: android.view.MotionEvent): boolean;
				/**
				 * 
				 */
				public dispatchTrackballEvent(event: android.view.MotionEvent): boolean;
				/**
				 * 
				 */
				public dispatchGenericMotionEvent(event: android.view.MotionEvent): boolean;
				/**
				 * 
				 */
				public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
				/**
				 * 
				 */
				public onCreatePanelView(featureId: number): android.view.View;
				/**
				 * 
				 */
				public onCreatePanelMenu(featureId: number, menu: android.view.IMenu): boolean;
				/**
				 * 
				 */
				public onPreparePanel(featureId: number, view: android.view.View, menu: android.view.IMenu): boolean;
				/**
				 * 
				 */
				public onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
				/**
				 * 
				 */
				public onMenuItemSelected(featureId: number, item: android.view.IMenuItem): boolean;
				/**
				 * 
				 */
				public onWindowAttributesChanged(attrs: android.view.WindowManager.LayoutParams): void;
				/**
				 * 
				 */
				public onContentChanged(): void;
				/**
				 * 
				 */
				public onWindowFocusChanged(hasFocus: boolean): void;
				/**
				 * 
				 */
				public onAttachedToWindow(): void;
				/**
				 * 
				 */
				public onDetachedFromWindow(): void;
				/**
				 * 
				 */
				public onPanelClosed(featureId: number, menu: android.view.IMenu): void;
				/**
				 * 
				 */
				public onSearchRequested(): boolean;
				/**
				 * 
				 */
				public onWindowStartingActionMode(callback: android.view.ActionMode.ICallback): android.view.ActionMode;
				/**
				 * 
				 */
				public onActionModeStarted(mode: android.view.ActionMode): void;
				/**
				 * 
				 */
				public onActionModeFinished(mode: android.view.ActionMode): void;
				/**
				 * Retrieves the current android.view.WindowManager for the dream. Behaves similarly to android.app.Activity#getWindowManager().
				 */
				public getWindowManager(): android.view.IWindowManager;
				/**
				 * Retrieves the current android.view.Window for the dream. Behaves similarly to android.app.Activity#getWindow().
				 */
				public getWindow(): android.view.Window;
				/**
				 * Inflates a layout resource and set it to be the content view for this Dream. Behaves similarly to android.app.Activity#setContentView(int).
				 * @param layoutResID Resource ID to be inflated.
				 */
				public setContentView(layoutResID: number): void;
				/**
				 * Sets a view to be the content view for this Dream. Behaves similarly to android.app.Activity#setContentView(android.view.View) in an activity, including using ViewGroup.LayoutParams#MATCH_PARENT as the layout height and width of the view.
				 */
				public setContentView(view: android.view.View): void;
				/**
				 * Sets a view to be the content view for this Dream. Behaves similarly to android.app.Activity#setContentView(android.view.View, android.view.ViewGroup.LayoutParams) in an activity.
				 * @param view The desired content to display.
				 * @param params Layout parameters for the view.
				 */
				public setContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
				/**
				 * Adds a view to the Dream's window, leaving other content views in place.
				 * @param view The desired content to display.
				 * @param params Layout parameters for the view.
				 */
				public addContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
				/**
				 * Finds a view that was identified by the id attribute from the XML that was processed in #onCreate.
				 */
				public findViewById(id: number): android.view.View;
				/**
				 * Marks this dream as interactive to receive input events.
				 * @param interactive True if this dream will handle input events.
				 */
				public setInteractive(interactive: boolean): void;
				/**
				 * Returns whether or not this dream is interactive. Defaults to false.
				 */
				public isInteractive(): boolean;
				/**
				 * Controls android.view.WindowManager.LayoutParams#FLAG_FULLSCREEN on the dream's window.
				 * @param fullscreen If true, the fullscreen flag will be set; else it
				 */
				public setFullscreen(fullscreen: boolean): void;
				/**
				 * Returns whether or not this dream is in fullscreen mode. Defaults to false.
				 */
				public isFullscreen(): boolean;
				/**
				 * Marks this dream as keeping the screen bright while dreaming.
				 * @param screenBright True to keep the screen bright while dreaming.
				 */
				public setScreenBright(screenBright: boolean): void;
				/**
				 * Returns whether or not this dream keeps the screen bright while dreaming. Defaults to false, allowing the screen to dim if necessary.
				 */
				public isScreenBright(): boolean;
				/**
				 * Called when this Dream is constructed.
				 */
				public onCreate(): void;
				/**
				 * Called when the dream's window has been created and is visible and animation may now begin.
				 */
				public onDreamingStarted(): void;
				/**
				 * Called when this Dream is stopped, either by external request or by calling finish(), before the window has been removed.
				 */
				public onDreamingStopped(): void;
				/**
				 * 
				 */
				public onBind(intent: android.content.Intent): android.os.IIBinder;
				/**
				 * Stops the dream, detaches from the window, and wakes up.
				 */
				public finish(): void;
				/**
				 * 
				 */
				public onDestroy(): void;
				protected dump(fd: java.io.FileDescriptor, pw: java.io.PrintWriter, args: native.Array<string>): void;
			}
			export module DreamService {
				export class DreamServiceWrapper {
					static class: java.lang.Class<android.service.dreams.DreamService.DreamServiceWrapper>;
					public attach(windowToken: android.os.IIBinder): void;
					public detach(): void;
				}
			}
		}
	}
	export module telephony {
		export module gsm {
			/**
			 * A Short Message Service message. Replaced by android.telephony.SmsMessage that supports both GSM and CDMA.
			 */
			export class SmsMessage extends java.lang.Object {
				/**
				 *  Use android.telephony.SmsMessage.
				 */
				constructor();
				/**
				 * Unknown encoding scheme (see TS 23.038) Use android.telephony.SmsMessage.
				 */
				static ENCODING_UNKNOWN: number;
				/**
				 * 7-bit encoding scheme (see TS 23.038) Use android.telephony.SmsMessage.
				 */
				static ENCODING_7BIT: number;
				/**
				 * 8-bit encoding scheme (see TS 23.038) Use android.telephony.SmsMessage.
				 */
				static ENCODING_8BIT: number;
				/**
				 * 16-bit encoding scheme (see TS 23.038) Use android.telephony.SmsMessage.
				 */
				static ENCODING_16BIT: number;
				/**
				 * The maximum number of payload bytes per message Use android.telephony.SmsMessage.
				 */
				static MAX_USER_DATA_BYTES: number;
				/**
				 * The maximum number of payload septets per message Use android.telephony.SmsMessage.
				 */
				static MAX_USER_DATA_SEPTETS: number;
				/**
				 * The maximum number of payload septets per message if a user data header is present. This assumes the header only contains the CONCATENATED_8_BIT_REFERENCE element. Use android.telephony.SmsMessage.
				 */
				static MAX_USER_DATA_SEPTETS_WITH_HEADER: number;
				static class: java.lang.Class<android.telephony.gsm.SmsMessage>;
				/**
				 * Create an SmsMessage from a raw PDU. Use android.telephony.SmsMessage.
				 */
				public static createFromPdu(pdu: native.Array<number>): android.telephony.gsm.SmsMessage;
				/**
				 * Get the TP-Layer-Length for the given SMS-SUBMIT PDU Basically, the length in bytes (not hex chars) less the SMSC header Use android.telephony.SmsMessage.
				 */
				public static getTPLayerLengthForPDU(pdu: string): number;
				/**
				 * Calculates the number of SMS's required to encode the message body and the number of characters remaining until the next message, given the current encoding.
				 * @param messageBody the message to encode
				 * @param use7bitOnly if true, characters that are not part of the GSM
				 */
				public static calculateLength(messageBody: string, use7bitOnly: boolean): native.Array<number>;
				/**
				 * Get an SMS-SUBMIT PDU for a destination address and a message
				 * @param scAddress Service Centre address. Null means use default.
				 * @param destinationAddress 
				 * @param message 
				 * @param statusReportRequested 
				 */
				public static getSubmitPdu(scAddress: string, destinationAddress: string, message: string, statusReportRequested: boolean): android.telephony.gsm.SmsMessage.SubmitPdu;
				/**
				 * Get an SMS-SUBMIT PDU for a data message to a destination address &amp; port
				 * @param scAddress Service Centre address. null == use default
				 * @param destinationAddress the address of the destination for the message
				 * @param destinationPort the port to deliver the message to at the
				 * @param data the dat for the message
				 * @param statusReportRequested 
				 */
				public static getSubmitPdu(scAddress: string, destinationAddress: string, destinationPort: number, data: native.Array<number>, statusReportRequested: boolean): android.telephony.gsm.SmsMessage.SubmitPdu;
				/**
				 * Returns the address of the SMS service center that relayed this message or null if there is none. Use android.telephony.SmsMessage.
				 */
				public getServiceCenterAddress(): string;
				/**
				 * Returns the originating address (sender) of this SMS message in String form or null if unavailable Use android.telephony.SmsMessage.
				 */
				public getOriginatingAddress(): string;
				/**
				 * Returns the originating address, or email from address if this message was from an email gateway. Returns null if originating address unavailable. Use android.telephony.SmsMessage.
				 */
				public getDisplayOriginatingAddress(): string;
				/**
				 * Returns the message body as a String, if it exists and is text based.
				 */
				public getMessageBody(): string;
				/**
				 * Returns the class of this message. Use android.telephony.SmsMessage.
				 */
				public getMessageClass(): android.telephony.gsm.SmsMessage.MessageClass;
				/**
				 * Returns the message body, or email message body if this message was from an email gateway. Returns null if message body unavailable. Use android.telephony.SmsMessage.
				 */
				public getDisplayMessageBody(): string;
				/**
				 * Unofficial convention of a subject line enclosed in parens empty string if not present Use android.telephony.SmsMessage.
				 */
				public getPseudoSubject(): string;
				/**
				 * Returns the service centre timestamp in currentTimeMillis() format Use android.telephony.SmsMessage.
				 */
				public getTimestampMillis(): any;
				/**
				 * Returns true if message is an email.
				 */
				public isEmail(): boolean;
				public getEmailBody(): string;
				public getEmailFrom(): string;
				/**
				 * Get protocol identifier. Use android.telephony.SmsMessage.
				 */
				public getProtocolIdentifier(): number;
				/**
				 * See TS 23.040 9.2.3.9 returns true if this is a "replace short message" SMS Use android.telephony.SmsMessage.
				 */
				public isReplace(): boolean;
				/**
				 * Returns true for CPHS MWI toggle message.
				 */
				public isCphsMwiMessage(): boolean;
				/**
				 * returns true if this message is a CPHS voicemail / message waiting indicator (MWI) clear message Use android.telephony.SmsMessage.
				 */
				public isMWIClearMessage(): boolean;
				/**
				 * returns true if this message is a CPHS voicemail / message waiting indicator (MWI) set message Use android.telephony.SmsMessage.
				 */
				public isMWISetMessage(): boolean;
				/**
				 * returns true if this message is a "Message Waiting Indication Group: Discard Message" notification and should not be stored. Use android.telephony.SmsMessage.
				 */
				public isMwiDontStore(): boolean;
				/**
				 * returns the user data section minus the user data header if one was present. Use android.telephony.SmsMessage.
				 */
				public getUserData(): native.Array<number>;
				/**
				 * Returns the raw PDU for the message.
				 */
				public getPdu(): native.Array<number>;
				/**
				 * Returns the status of the message on the SIM (read, unread, sent, unsent).
				 */
				public getStatusOnSim(): number;
				/**
				 * Returns the record index of the message on the SIM (1-based index).
				 */
				public getIndexOnSim(): number;
				/**
				 * GSM: For an SMS-STATUS-REPORT message, this returns the status field from the status report. This field indicates the status of a previously submitted SMS, if requested. See TS 23.040, 9.2.3.15 TP-Status for a description of values. CDMA: For not interfering with status codes from GSM, the value is shifted to the bits 31-16. The value is composed of an error class (bits 25-24) and a status code (bits 23-16). Possible codes are described in C.S0015-B, v2.0, 4.5.21.
				 */
				public getStatus(): number;
				/**
				 * Return true iff the message is a SMS-STATUS-REPORT message. Use android.telephony.SmsMessage.
				 */
				public isStatusReportMessage(): boolean;
				/**
				 * Returns true iff the <code>TP-Reply-Path</code> bit is set in this message. Use android.telephony.SmsMessage.
				 */
				public isReplyPathPresent(): boolean;
			}
			export module SmsMessage {
				/**
				 *  Use android.telephony.SmsMessage.
				 */
				export class SubmitPdu extends java.lang.Object {
					/**
					 *  Use android.telephony.SmsMessage.
					 */
					constructor();
					/**
					 *  Use android.telephony.SmsMessage.
					 */
					encodedScAddress: native.Array<number>;
					/**
					 *  Use android.telephony.SmsMessage.
					 */
					encodedMessage: native.Array<number>;
					static class: java.lang.Class<android.telephony.gsm.SmsMessage.SubmitPdu>;
					/**
					 *  Use android.telephony.SmsMessage.
					 */
					public toString(): string;
				}
				/**
				 * SMS Class enumeration. See TS 23.038. Use android.telephony.SmsMessage.
				 */
				export enum MessageClass {
					UNKNOWN,
					CLASS_0,
					CLASS_1,
					CLASS_2,
					CLASS_3
				}
			}
			/**
			 * Represents the cell location on a GSM phone.
			 */
			export class GsmCellLocation extends android.telephony.CellLocation {
				/**
				 * Empty constructor. Initializes the LAC and CID to -1.
				 */
				constructor();
				/**
				 * Initialize the object from a bundle.
				 */
				constructor(bundle: android.os.Bundle);
				static class: java.lang.Class<android.telephony.gsm.GsmCellLocation>;
				public getLac(): number;
				public getCid(): number;
				/**
				 * On a UMTS network, returns the primary scrambling code of the serving cell.
				 */
				public getPsc(): number;
				/**
				 * Invalidate this object. The location area code and the cell id are set to -1.
				 */
				public setStateInvalid(): void;
				/**
				 * Set the location area code and the cell id.
				 */
				public setLacAndCid(lac: number, cid: number): void;
				public hashCode(): number;
				public equals(o: any): boolean;
				public toString(): string;
				/**
				 * Set intent notifier Bundle based on service state
				 * @param m intent notifier Bundle
				 */
				public fillInNotifierBundle(m: android.os.Bundle): void;
			}
			/**
			 * Manages SMS operations such as sending data, text, and pdu SMS messages. Get this object by calling the static method SmsManager.getDefault(). Replaced by android.telephony.SmsManager that supports both GSM and CDMA.
			 */
			export class SmsManager extends java.lang.Object {
				/**
				 * Free space (TS 51.011 10.5.3). Use android.telephony.SmsManager.
				 */
				static STATUS_ON_SIM_FREE: number;
				/**
				 * Received and read (TS 51.011 10.5.3). Use android.telephony.SmsManager.
				 */
				static STATUS_ON_SIM_READ: number;
				/**
				 * Received and unread (TS 51.011 10.5.3). Use android.telephony.SmsManager.
				 */
				static STATUS_ON_SIM_UNREAD: number;
				/**
				 * Stored and sent (TS 51.011 10.5.3). Use android.telephony.SmsManager.
				 */
				static STATUS_ON_SIM_SENT: number;
				/**
				 * Stored and unsent (TS 51.011 10.5.3). Use android.telephony.SmsManager.
				 */
				static STATUS_ON_SIM_UNSENT: number;
				/**
				 * Generic failure cause Use android.telephony.SmsManager.
				 */
				static RESULT_ERROR_GENERIC_FAILURE: number;
				/**
				 * Failed because radio was explicitly turned off Use android.telephony.SmsManager.
				 */
				static RESULT_ERROR_RADIO_OFF: number;
				/**
				 * Failed because no pdu provided Use android.telephony.SmsManager.
				 */
				static RESULT_ERROR_NULL_PDU: number;
				/**
				 * Failed because service is currently unavailable Use android.telephony.SmsManager.
				 */
				static RESULT_ERROR_NO_SERVICE: number;
				static class: java.lang.Class<android.telephony.gsm.SmsManager>;
				/**
				 * Get the default instance of the SmsManager
				 */
				public static getDefault(): android.telephony.gsm.SmsManager;
				/**
				 * Send a text based SMS.
				 * @param destinationAddress the address to send the message to
				 * @param scAddress is the service center address or null to use
				 * @param text the body of the message to send
				 * @param sentIntent if not NULL this <code>PendingIntent</code> is
				 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
				 */
				public sendTextMessage(destinationAddress: string, scAddress: string, text: string, sentIntent: android.app.PendingIntent, deliveryIntent: android.app.PendingIntent): void;
				/**
				 * Divide a text message into several messages, none bigger than the maximum SMS message size.
				 * @param text the original message. Must not be null.
				 */
				public divideMessage(text: string): java.util.ArrayList<string>;
				/**
				 * Send a multi-part text based SMS. The callee should have already divided the message into correctly sized parts by calling <code>divideMessage</code>.
				 * @param destinationAddress the address to send the message to
				 * @param scAddress is the service center address or null to use
				 * @param parts an <code>ArrayList</code> of strings that, in order,
				 * @param sentIntents if not null, an <code>ArrayList</code> of
				 * @param deliveryIntents if not null, an <code>ArrayList</code> of
				 */
				public sendMultipartTextMessage(destinationAddress: string, scAddress: string, parts: java.util.ArrayList<string>, sentIntents: java.util.ArrayList<android.app.PendingIntent>, deliveryIntents: java.util.ArrayList<android.app.PendingIntent>): void;
				/**
				 * Send a data based SMS to a specific application port.
				 * @param destinationAddress the address to send the message to
				 * @param scAddress is the service center address or null to use
				 * @param destinationPort the port to deliver the message to
				 * @param data the body of the message to send
				 * @param sentIntent if not NULL this <code>PendingIntent</code> is
				 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
				 */
				public sendDataMessage(destinationAddress: string, scAddress: string, destinationPort: number, data: native.Array<number>, sentIntent: android.app.PendingIntent, deliveryIntent: android.app.PendingIntent): void;
			}
		}
		/**
		 * Contains phone state and service related information.
		 */
		export class ServiceState extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Empty constructor
			 */
			constructor();
			/**
			 * Copy constructors
			 * @param s Source service state
			 */
			constructor(s: android.telephony.ServiceState);
			/**
			 * Construct a ServiceState object from the given parcel.
			 */
			constructor(input: android.os.Parcel);
			/**
			 * Normal operation condition, the phone is registered with an operator either in home network or in roaming.
			 */
			static STATE_IN_SERVICE: number;
			/**
			 * Phone is not registered with any operator, the phone can be currently searching a new operator to register to, or not searching to registration at all, or registration is denied, or radio signal is not available.
			 */
			static STATE_OUT_OF_SERVICE: number;
			/**
			 * The phone is registered and locked. Only emergency numbers are allowed. 
			 */
			static STATE_EMERGENCY_ONLY: number;
			/**
			 * Radio of telephony is explicitly powered off.
			 */
			static STATE_POWER_OFF: number;
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.ServiceState>;
			static class: java.lang.Class<android.telephony.ServiceState>;
			protected copyFrom(s: android.telephony.ServiceState): void;
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			public describeContents(): number;
			/**
			 * Get current service state of phone
			 */
			public getState(): number;
			/**
			 * Get current roaming indicator of phone (note: not just decoding from TS 27.007 7.2)
			 */
			public getRoaming(): boolean;
			/**
			 * Get current registered operator name in long alphanumeric format.
			 */
			public getOperatorAlphaLong(): string;
			/**
			 * Get current registered operator name in short alphanumeric format.
			 */
			public getOperatorAlphaShort(): string;
			/**
			 * Get current registered operator numeric id.
			 */
			public getOperatorNumeric(): string;
			/**
			 * Get current network selection mode.
			 */
			public getIsManualSelection(): boolean;
			public hashCode(): number;
			public equals(o: any): boolean;
			public toString(): string;
			public setStateOutOfService(): void;
			public setStateOff(): void;
			public setState(state: number): void;
			public setRoaming(roaming: boolean): void;
			public setOperatorName(longName: string, shortName: string, numeric: string): void;
			public setIsManualSelection(isManual: boolean): void;
		}
		/**
		 * Immutable cell information from a point in time.
		 */
		export class CellInfoCdma extends android.telephony.CellInfo implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellInfoCdma>;
			static class: java.lang.Class<android.telephony.CellInfoCdma>;
			public getCellIdentity(): android.telephony.CellIdentityCdma;
			public getCellSignalStrength(): android.telephony.CellSignalStrengthCdma;
			public hashCode(): number;
			public equals(other: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export class JapanesePhoneNumberFormatter extends java.lang.Object {
			static class: java.lang.Class<android.telephony.JapanesePhoneNumberFormatter>;
			public static format(text: any): void;
		}
		/**
		 * Various utilities for dealing with phone number strings.
		 */
		export class PhoneNumberUtils extends java.lang.Object {
			constructor();
			static PAUSE: string;
			static WAIT: string;
			static WILD: string;
			static TOA_International: number;
			static TOA_Unknown: number;
			/**
			 * The current locale is unknown, look for a country code or don't format
			 */
			static FORMAT_UNKNOWN: number;
			/**
			 * NANP formatting
			 */
			static FORMAT_NANP: number;
			/**
			 * Japanese formatting
			 */
			static FORMAT_JAPAN: number;
			static class: java.lang.Class<android.telephony.PhoneNumberUtils>;
			/**
			 * True if c is ISO-LATIN characters 0-9
			 */
			public static isISODigit(c: string): boolean;
			/**
			 * True if c is ISO-LATIN characters 0-9, *, #
			 */
			public static is12Key(c: string): boolean;
			/**
			 * True if c is ISO-LATIN characters 0-9, *, # , +, WILD
			 */
			public static isDialable(c: string): boolean;
			/**
			 * True if c is ISO-LATIN characters 0-9, *, # , + (no WILD)
			 */
			public static isReallyDialable(c: string): boolean;
			/**
			 * True if c is ISO-LATIN characters 0-9, *, # , +, WILD, WAIT, PAUSE
			 */
			public static isNonSeparator(c: string): boolean;
			/**
			 * This any anything to the right of this char is part of the post-dial string (eg this is PAUSE or WAIT)
			 */
			public static isStartsPostDial(c: string): boolean;
			/**
			 * Extracts the phone number from an Intent.
			 * @param intent the intent to get the number of
			 * @param context a context to use for database access
			 */
			public static getNumberFromIntent(intent: android.content.Intent, context: android.content.Context): string;
			/**
			 * Extracts the network address portion and canonicalizes (filters out separators.) Network address portion is everything up to DTMF control digit separators (pause or wait), but without non-dialable characters.
			 */
			public static extractNetworkPortion(phoneNumber: string): string;
			/**
			 * Strips separators from a phone number string.
			 * @param phoneNumber phone number to strip.
			 */
			public static stripSeparators(phoneNumber: string): string;
			/**
			 * Extracts the post-dial sequence of DTMF control digits, pauses, and waits. Strips separators. This string may be empty, but will not be null unless phoneNumber == null.
			 */
			public static extractPostDialPortion(phoneNumber: string): string;
			/**
			 * Compare phone numbers a and b, return true if they're identical enough for caller ID purposes.
			 */
			public static compare(a: string, b: string): boolean;
			/**
			 * Compare phone numbers a and b, and return true if they're identical enough for caller ID purposes. Checks a resource to determine whether to use a strict or loose comparison algorithm.
			 */
			public static compare(context: android.content.Context, a: string, b: string): boolean;
			/**
			 * Returns the rightmost MIN_MATCH (5) characters in the network portion in *reversed* order
			 */
			public static toCallerIDMinMatch(phoneNumber: string): string;
			/**
			 * Returns the network portion reversed. This string is intended to go into an index column for a database lookup.
			 */
			public static getStrippedReversed(phoneNumber: string): string;
			/**
			 * Basically: makes sure there's a + in front of a TOA_International number
			 */
			public static stringFromStringAndTOA(s: string, TOA: number): string;
			/**
			 * Returns the TOA for the given dial string Basically, returns TOA_International if there's a + prefix
			 */
			public static toaFromString(s: string): number;
			/**
			 * 3GPP TS 24.008 10.5.4.7 Called Party BCD Number
			 * @param bytes the data buffer
			 * @param offset should point to the TOA (aka. TON/NPI) octet after the length byte
			 * @param length is the number of bytes including TOA byte
			 */
			public static calledPartyBCDToString(bytes: native.Array<number>, offset: number, length: number): string;
			/**
			 * Like calledPartyBCDToString, but field does not start with a TOA byte. For example: SIM ADN extension fields
			 */
			public static calledPartyBCDFragmentToString(bytes: native.Array<number>, offset: number, length: number): string;
			/**
			 * Return true iff the network portion of <code>address</code> is, as far as we can tell on the device, suitable for use as an SMS destination address.
			 */
			public static isWellFormedSmsAddress(address: string): boolean;
			public static isGlobalPhoneNumber(phoneNumber: string): boolean;
			/**
			 * Note: calls extractNetworkPortion(), so do not use for SIM EF[ADN] style records
			 */
			public static networkPortionToCalledPartyBCD(s: string): native.Array<number>;
			/**
			 * Same as #networkPortionToCalledPartyBCD, but includes a one-byte length prefix.
			 */
			public static networkPortionToCalledPartyBCDWithLength(s: string): native.Array<number>;
			/**
			 * Convert a dialing number to BCD byte array
			 * @param number dialing number string
			 */
			public static numberToCalledPartyBCD(number: string): native.Array<number>;
			/**
			 * Breaks the given number down and formats it according to the rules for the country the number is from.
			 * @param source The phone number to format
			 */
			public static formatNumber(source: string): string;
			/**
			 * Returns the phone number formatting type for the given locale.
			 * @param locale The locale of interest, usually {@link Locale#getDefault()}
			 */
			public static getFormatTypeForLocale(locale: java.util.Locale): number;
			/**
			 * Formats a phone number in-place. Currently #FORMAT_JAPAN and #FORMAT_NANP is supported as a second argument.
			 * @param text The number to be formatted, will be modified with the formatting
			 * @param defaultFormattingType The default formatting rules to apply if the number does
			 */
			public static formatNumber(text: any, defaultFormattingType: number): void;
			/**
			 * Formats a phone number in-place using the NANP formatting rules. Numbers will be formatted as:
			 * @param text the number to be formatted, will be modified with the formatting
			 */
			public static formatNanpNumber(text: any): void;
			/**
			 * Formats a phone number in-place using the Japanese formatting rules. Numbers will be formatted as:
			 * @param text the number to be formatted, will be modified with
			 */
			public static formatJapaneseNumber(text: any): void;
			/**
			 * Checks a given number against the list of emergency numbers provided by the RIL and SIM card.
			 * @param number the number to look up.
			 */
			public static isEmergencyNumber(number: string): boolean;
			/**
			 * Translates any alphabetic letters (i.e. [A-Za-z]) in the specified phone number into the equivalent numeric digits, according to the phone keypad letter mapping described in ITU E.161 and ISO/IEC 9995-8.
			 */
			public static convertKeypadLettersToDigits(input: string): string;
		}
		export module PhoneNumberUtils {
			export class CountryCallingCodeAndNewIndex extends java.lang.Object {
				constructor(countryCode: number, newIndex: number);
				countryCallingCode: number;
				newIndex: number;
				static class: java.lang.Class<android.telephony.PhoneNumberUtils.CountryCallingCodeAndNewIndex>;
			}
		}
		/**
		 * Abstract base class for cell phone signal strength related information.
		 */
		export class CellSignalStrength extends java.lang.Object {
			static class: java.lang.Class<android.telephony.CellSignalStrength>;
			/**
			 * Get signal level as an int from 0..4
			 */
			public getLevel(): number;
			/**
			 * Get the signal level as an asu value between 0..31, 99 is unknown
			 */
			public getAsuLevel(): number;
			/**
			 * Get the signal strength as dBm
			 */
			public getDbm(): number;
			public hashCode(): number;
			public equals(o: any): boolean;
		}
		/**
		 * CellIdentity to represent a unique GSM or UMTS cell
		 */
		export class CellIdentityGsm extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellIdentityGsm>;
			static class: java.lang.Class<android.telephony.CellIdentityGsm>;
			copy(): android.telephony.CellIdentityGsm;
			public getMcc(): number;
			public getMnc(): number;
			public getLac(): number;
			public getCid(): number;
			public getPsc(): number;
			public hashCode(): number;
			public equals(other: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Abstract class that represents the location of the device. 
		 */
		export class CellLocation extends java.lang.Object {
			constructor();
			static class: java.lang.Class<android.telephony.CellLocation>;
			/**
			 * Request an update of the current location. If the location has changed, a broadcast will be sent to everyone registered with PhoneStateListener#LISTEN_CELL_LOCATION.
			 */
			public static requestLocationUpdate(): void;
			/**
			 * Return a new CellLocation object representing an unknown location, or null for unknown/none phone radio types.
			 */
			public static getEmpty(): android.telephony.CellLocation;
		}
		/**
		 * Immutable cell information from a point in time.
		 */
		export class CellInfoGsm extends android.telephony.CellInfo implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellInfoGsm>;
			static class: java.lang.Class<android.telephony.CellInfoGsm>;
			public getCellIdentity(): android.telephony.CellIdentityGsm;
			public getCellSignalStrength(): android.telephony.CellSignalStrengthGsm;
			public hashCode(): number;
			public equals(other: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Manages SMS operations such as sending data, text, and pdu SMS messages. Get this object by calling the static method SmsManager.getDefault().
		 */
		export class SmsManager extends java.lang.Object {
			/**
			 * Free space (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27).
			 */
			static STATUS_ON_ICC_FREE: number;
			/**
			 * Received and read (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27).
			 */
			static STATUS_ON_ICC_READ: number;
			/**
			 * Received and unread (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27).
			 */
			static STATUS_ON_ICC_UNREAD: number;
			/**
			 * Stored and sent (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27).
			 */
			static STATUS_ON_ICC_SENT: number;
			/**
			 * Stored and unsent (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27).
			 */
			static STATUS_ON_ICC_UNSENT: number;
			/**
			 * Generic failure cause
			 */
			static RESULT_ERROR_GENERIC_FAILURE: number;
			/**
			 * Failed because radio was explicitly turned off
			 */
			static RESULT_ERROR_RADIO_OFF: number;
			/**
			 * Failed because no pdu provided
			 */
			static RESULT_ERROR_NULL_PDU: number;
			/**
			 * Failed because service is currently unavailable
			 */
			static RESULT_ERROR_NO_SERVICE: number;
			static class: java.lang.Class<android.telephony.SmsManager>;
			/**
			 * Send a text based SMS.
			 * @param destinationAddress the address to send the message to
			 * @param scAddress is the service center address or null to use
			 * @param text the body of the message to send
			 * @param sentIntent if not NULL this <code>PendingIntent</code> is
			 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
			 */
			public sendTextMessage(destinationAddress: string, scAddress: string, text: string, sentIntent: android.app.PendingIntent, deliveryIntent: android.app.PendingIntent): void;
			/**
			 * Divide a message text into several fragments, none bigger than the maximum SMS message size.
			 * @param text the original message. Must not be null.
			 */
			public divideMessage(text: string): java.util.ArrayList<string>;
			/**
			 * Send a multi-part text based SMS. The callee should have already divided the message into correctly sized parts by calling <code>divideMessage</code>.
			 * @param destinationAddress the address to send the message to
			 * @param scAddress is the service center address or null to use
			 * @param parts an <code>ArrayList</code> of strings that, in order,
			 * @param sentIntents if not null, an <code>ArrayList</code> of
			 * @param deliveryIntents if not null, an <code>ArrayList</code> of
			 */
			public sendMultipartTextMessage(destinationAddress: string, scAddress: string, parts: java.util.ArrayList<string>, sentIntents: java.util.ArrayList<android.app.PendingIntent>, deliveryIntents: java.util.ArrayList<android.app.PendingIntent>): void;
			/**
			 * Send a data based SMS to a specific application port.
			 * @param destinationAddress the address to send the message to
			 * @param scAddress is the service center address or null to use
			 * @param destinationPort the port to deliver the message to
			 * @param data the body of the message to send
			 * @param sentIntent if not NULL this <code>PendingIntent</code> is
			 * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
			 */
			public sendDataMessage(destinationAddress: string, scAddress: string, destinationPort: number, data: native.Array<number>, sentIntent: android.app.PendingIntent, deliveryIntent: android.app.PendingIntent): void;
			/**
			 * Get the default instance of the SmsManager
			 */
			public static getDefault(): android.telephony.SmsManager;
		}
		/**
		 * LTE signal strength related information.
		 */
		export class CellSignalStrengthLte extends android.telephony.CellSignalStrength implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellSignalStrengthLte>;
			static class: java.lang.Class<android.telephony.CellSignalStrengthLte>;
			/**
			 * Get signal level as an int from 0..4
			 */
			public getLevel(): number;
			/**
			 * Get signal strength as dBm
			 */
			public getDbm(): number;
			/**
			 * Get the LTE signal level as an asu value between 0..97, 99 is unknown Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69
			 */
			public getAsuLevel(): number;
			/**
			 * Get the timing advance value for LTE. See 3GPP xxxx
			 */
			public getTimingAdvance(): number;
			public hashCode(): number;
			public equals(o: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
		}
		/**
		 * Immutable cell information from a point in time.
		 */
		export class CellInfoLte extends android.telephony.CellInfo implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellInfoLte>;
			static class: java.lang.Class<android.telephony.CellInfoLte>;
			public getCellIdentity(): android.telephony.CellIdentityLte;
			public getCellSignalStrength(): android.telephony.CellSignalStrengthLte;
			public hashCode(): number;
			public equals(other: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Represents the neighboring cell information, including Received Signal Strength and Cell ID location.
		 */
		export class NeighboringCellInfo extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Empty constructor. Initializes the RSSI and CID.
			 */
			constructor();
			/**
			 * Initialize the object from rssi and cid.
			 */
			constructor(rssi: number, cid: number);
			/**
			 * Initialize the object from rssi, location string, and radioType radioType is one of following TelephonyManager#NETWORK_TYPE_GPRS TelephonyManager.NETWORK_TYPE_GPRS, TelephonyManager#NETWORK_TYPE_EDGE TelephonyManager.NETWORK_TYPE_EDGE, TelephonyManager#NETWORK_TYPE_UMTS TelephonyManager.NETWORK_TYPE_UMTS, TelephonyManager#NETWORK_TYPE_HSDPA TelephonyManager.NETWORK_TYPE_HSDPA, TelephonyManager#NETWORK_TYPE_HSUPA TelephonyManager.NETWORK_TYPE_HSUPA, and TelephonyManager#NETWORK_TYPE_HSPA TelephonyManager.NETWORK_TYPE_HSPA.
			 */
			constructor(rssi: number, location: string, radioType: number);
			/**
			 * Initialize the object from a parcel.
			 */
			constructor(input: android.os.Parcel);
			/**
			 * Signal strength is not available
			 */
			static UNKNOWN_RSSI: number;
			/**
			 * Cell location is not available
			 */
			static UNKNOWN_CID: number;
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.NeighboringCellInfo>;
			static class: java.lang.Class<android.telephony.NeighboringCellInfo>;
			public getRssi(): number;
			public getLac(): number;
			public getCid(): number;
			public getPsc(): number;
			public getNetworkType(): number;
			/**
			 * Set the cell id.
			 */
			public setCid(cid: number): void;
			/**
			 * Set the signal strength of the cell.
			 */
			public setRssi(rssi: number): void;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * A Short Message Service message.
		 */
		export class SmsMessage extends java.lang.Object {
			/**
			 * User data text encoding code unit size
			 */
			static ENCODING_UNKNOWN: number;
			static ENCODING_7BIT: number;
			static ENCODING_8BIT: number;
			static ENCODING_16BIT: number;
			/**
			 * The maximum number of payload bytes per message
			 */
			static MAX_USER_DATA_BYTES: number;
			/**
			 * The maximum number of payload bytes per message if a user data header is present. This assumes the header only contains the CONCATENATED_8_BIT_REFERENCE element.
			 */
			static MAX_USER_DATA_BYTES_WITH_HEADER: number;
			/**
			 * The maximum number of payload septets per message
			 */
			static MAX_USER_DATA_SEPTETS: number;
			/**
			 * The maximum number of payload septets per message if a user data header is present. This assumes the header only contains the CONCATENATED_8_BIT_REFERENCE element.
			 */
			static MAX_USER_DATA_SEPTETS_WITH_HEADER: number;
			static class: java.lang.Class<android.telephony.SmsMessage>;
			/**
			 * Create an SmsMessage from a raw PDU.
			 */
			public static createFromPdu(pdu: native.Array<number>): android.telephony.SmsMessage;
			/**
			 * Get the TP-Layer-Length for the given SMS-SUBMIT PDU Basically, the length in bytes (not hex chars) less the SMSC header
			 */
			public static getTPLayerLengthForPDU(pdu: string): number;
			/**
			 * Calculates the number of SMS's required to encode the message body and the number of characters remaining until the next message.
			 * @param msgBody the message to encode
			 * @param use7bitOnly if true, characters that are not part of the
			 */
			public static calculateLength(msgBody: string, use7bitOnly: boolean): native.Array<number>;
			/**
			 * Get an SMS-SUBMIT PDU for a destination address and a message. This method will not attempt to use any GSM national language 7 bit encodings.
			 * @param scAddress Service Centre address. Null means use default.
			 * @param destinationAddress 
			 * @param message 
			 * @param statusReportRequested 
			 */
			public static getSubmitPdu(scAddress: string, destinationAddress: string, message: string, statusReportRequested: boolean): android.telephony.SmsMessage.SubmitPdu;
			/**
			 * Get an SMS-SUBMIT PDU for a data message to a destination address &amp; port. This method will not attempt to use any GSM national language 7 bit encodings.
			 * @param scAddress Service Centre address. null == use default
			 * @param destinationAddress the address of the destination for the message
			 * @param destinationPort the port to deliver the message to at the
			 * @param data the data for the message
			 * @param statusReportRequested 
			 */
			public static getSubmitPdu(scAddress: string, destinationAddress: string, destinationPort: number, data: native.Array<number>, statusReportRequested: boolean): android.telephony.SmsMessage.SubmitPdu;
			/**
			 * Returns the address of the SMS service center that relayed this message or null if there is none.
			 */
			public getServiceCenterAddress(): string;
			/**
			 * Returns the originating address (sender) of this SMS message in String form or null if unavailable
			 */
			public getOriginatingAddress(): string;
			/**
			 * Returns the originating address, or email from address if this message was from an email gateway. Returns null if originating address unavailable.
			 */
			public getDisplayOriginatingAddress(): string;
			/**
			 * Returns the message body as a String, if it exists and is text based.
			 */
			public getMessageBody(): string;
			/**
			 * Returns the class of this message.
			 */
			public getMessageClass(): android.telephony.SmsMessage.MessageClass;
			/**
			 * Returns the message body, or email message body if this message was from an email gateway. Returns null if message body unavailable.
			 */
			public getDisplayMessageBody(): string;
			/**
			 * Unofficial convention of a subject line enclosed in parens empty string if not present
			 */
			public getPseudoSubject(): string;
			/**
			 * Returns the service centre timestamp in currentTimeMillis() format
			 */
			public getTimestampMillis(): any;
			/**
			 * Returns true if message is an email.
			 */
			public isEmail(): boolean;
			public getEmailBody(): string;
			public getEmailFrom(): string;
			/**
			 * Get protocol identifier.
			 */
			public getProtocolIdentifier(): number;
			/**
			 * See TS 23.040 9.2.3.9 returns true if this is a "replace short message" SMS
			 */
			public isReplace(): boolean;
			/**
			 * Returns true for CPHS MWI toggle message.
			 */
			public isCphsMwiMessage(): boolean;
			/**
			 * returns true if this message is a CPHS voicemail / message waiting indicator (MWI) clear message
			 */
			public isMWIClearMessage(): boolean;
			/**
			 * returns true if this message is a CPHS voicemail / message waiting indicator (MWI) set message
			 */
			public isMWISetMessage(): boolean;
			/**
			 * returns true if this message is a "Message Waiting Indication Group: Discard Message" notification and should not be stored.
			 */
			public isMwiDontStore(): boolean;
			/**
			 * returns the user data section minus the user data header if one was present.
			 */
			public getUserData(): native.Array<number>;
			/**
			 * Returns the raw PDU for the message.
			 */
			public getPdu(): native.Array<number>;
			/**
			 * Returns the status of the message on the SIM (read, unread, sent, unsent).
			 */
			public getStatusOnSim(): number;
			/**
			 * Returns the status of the message on the ICC (read, unread, sent, unsent).
			 */
			public getStatusOnIcc(): number;
			/**
			 * Returns the record index of the message on the SIM (1-based index).
			 */
			public getIndexOnSim(): number;
			/**
			 * Returns the record index of the message on the ICC (1-based index).
			 */
			public getIndexOnIcc(): number;
			/**
			 * GSM: For an SMS-STATUS-REPORT message, this returns the status field from the status report. This field indicates the status of a previously submitted SMS, if requested. See TS 23.040, 9.2.3.15 TP-Status for a description of values. CDMA: For not interfering with status codes from GSM, the value is shifted to the bits 31-16. The value is composed of an error class (bits 25-24) and a status code (bits 23-16). Possible codes are described in C.S0015-B, v2.0, 4.5.21.
			 */
			public getStatus(): number;
			/**
			 * Return true iff the message is a SMS-STATUS-REPORT message.
			 */
			public isStatusReportMessage(): boolean;
			/**
			 * Returns true iff the <code>TP-Reply-Path</code> bit is set in this message.
			 */
			public isReplyPathPresent(): boolean;
		}
		export module SmsMessage {
			export class SubmitPdu extends java.lang.Object {
				encodedScAddress: native.Array<number>;
				encodedMessage: native.Array<number>;
				static class: java.lang.Class<android.telephony.SmsMessage.SubmitPdu>;
				public toString(): string;
			}
			/**
			 * SMS Class enumeration. See TS 23.038.
			 */
			export enum MessageClass {
				UNKNOWN,
				CLASS_0,
				CLASS_1,
				CLASS_2,
				CLASS_3
			}
		}
		/**
		 * CellIdentity is to represent a unique CDMA cell
		 */
		export class CellIdentityCdma extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellIdentityCdma>;
			static class: java.lang.Class<android.telephony.CellIdentityCdma>;
			copy(): android.telephony.CellIdentityCdma;
			public getNetworkId(): number;
			public getSystemId(): number;
			public getBasestationId(): number;
			public getLongitude(): number;
			public getLatitude(): number;
			public hashCode(): number;
			public equals(other: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * LTE signal strength related information.
		 */
		export class CellSignalStrengthGsm extends android.telephony.CellSignalStrength implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellSignalStrengthGsm>;
			static class: java.lang.Class<android.telephony.CellSignalStrengthGsm>;
			/**
			 * Get signal level as an int from 0..4
			 */
			public getLevel(): number;
			/**
			 * Get the signal strength as dBm
			 */
			public getDbm(): number;
			/**
			 * Get the LTE signal level as an asu value between 0..97, 99 is unknown Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69
			 */
			public getAsuLevel(): number;
			public hashCode(): number;
			public equals(o: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
		}
		/**
		 * Immutable cell information from a point in time.
		 */
		export class CellInfo extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellInfo>;
			static class: java.lang.Class<android.telephony.CellInfo>;
			/**
			 * True if this cell is registered to the mobile network
			 */
			public isRegistered(): boolean;
			/**
			 * Approximate time of this cell information in nanos since boot
			 */
			public getTimeStamp(): any;
			public hashCode(): number;
			public equals(other: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * CellIdentity is to represent a unique LTE cell
		 */
		export class CellIdentityLte extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellIdentityLte>;
			static class: java.lang.Class<android.telephony.CellIdentityLte>;
			copy(): android.telephony.CellIdentityLte;
			public getMcc(): number;
			public getMnc(): number;
			public getCi(): number;
			public getPci(): number;
			public getTac(): number;
			public hashCode(): number;
			public equals(other: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * Provides access to information about the telephony services on the device. Applications can use the methods in this class to determine telephony services and states, as well as to access some types of subscriber information. Applications can also register a listener to receive notification of telephony state changes.
		 */
		export class TelephonyManager extends java.lang.Object {
			/**
			 * Broadcast intent action indicating that the call state (cellular) on the device has changed.
			 */
			static ACTION_PHONE_STATE_CHANGED: string;
			/**
			 * The lookup key used with the #ACTION_PHONE_STATE_CHANGED broadcast for a String containing the new call state.
			 */
			static EXTRA_STATE: string;
			/**
			 * Value used with #EXTRA_STATE corresponding to #CALL_STATE_IDLE.
			 */
			static EXTRA_STATE_IDLE: string;
			/**
			 * Value used with #EXTRA_STATE corresponding to #CALL_STATE_RINGING.
			 */
			static EXTRA_STATE_RINGING: string;
			/**
			 * Value used with #EXTRA_STATE corresponding to #CALL_STATE_OFFHOOK.
			 */
			static EXTRA_STATE_OFFHOOK: string;
			/**
			 * The lookup key used with the #ACTION_PHONE_STATE_CHANGED broadcast for a String containing the incoming phone number. Only valid when the new call state is RINGING.
			 */
			static EXTRA_INCOMING_NUMBER: string;
			/**
			 * No phone radio.
			 */
			static PHONE_TYPE_NONE: number;
			/**
			 * Phone radio is GSM.
			 */
			static PHONE_TYPE_GSM: number;
			/**
			 * Phone radio is CDMA.
			 */
			static PHONE_TYPE_CDMA: number;
			/**
			 * Phone is via SIP.
			 */
			static PHONE_TYPE_SIP: number;
			/**
			 * Network type is unknown
			 */
			static NETWORK_TYPE_UNKNOWN: number;
			/**
			 * Current network is GPRS
			 */
			static NETWORK_TYPE_GPRS: number;
			/**
			 * Current network is EDGE
			 */
			static NETWORK_TYPE_EDGE: number;
			/**
			 * Current network is UMTS
			 */
			static NETWORK_TYPE_UMTS: number;
			/**
			 * Current network is CDMA: Either IS95A or IS95B
			 */
			static NETWORK_TYPE_CDMA: number;
			/**
			 * Current network is EVDO revision 0
			 */
			static NETWORK_TYPE_EVDO_0: number;
			/**
			 * Current network is EVDO revision A
			 */
			static NETWORK_TYPE_EVDO_A: number;
			/**
			 * Current network is 1xRTT
			 */
			static NETWORK_TYPE_1xRTT: number;
			/**
			 * Current network is HSDPA
			 */
			static NETWORK_TYPE_HSDPA: number;
			/**
			 * Current network is HSUPA
			 */
			static NETWORK_TYPE_HSUPA: number;
			/**
			 * Current network is HSPA
			 */
			static NETWORK_TYPE_HSPA: number;
			/**
			 * Current network is iDen
			 */
			static NETWORK_TYPE_IDEN: number;
			/**
			 * Current network is EVDO revision B
			 */
			static NETWORK_TYPE_EVDO_B: number;
			/**
			 * Current network is LTE
			 */
			static NETWORK_TYPE_LTE: number;
			/**
			 * Current network is eHRPD
			 */
			static NETWORK_TYPE_EHRPD: number;
			/**
			 * Current network is HSPA+
			 */
			static NETWORK_TYPE_HSPAP: number;
			/**
			 * SIM card state: Unknown. Signifies that the SIM is in transition between states. For example, when the user inputs the SIM pin under PIN_REQUIRED state, a query for sim status returns this state before turning to SIM_STATE_READY.
			 */
			static SIM_STATE_UNKNOWN: number;
			/**
			 * SIM card state: no SIM card is available in the device
			 */
			static SIM_STATE_ABSENT: number;
			/**
			 * SIM card state: Locked: requires the user's SIM PIN to unlock
			 */
			static SIM_STATE_PIN_REQUIRED: number;
			/**
			 * SIM card state: Locked: requires the user's SIM PUK to unlock
			 */
			static SIM_STATE_PUK_REQUIRED: number;
			/**
			 * SIM card state: Locked: requries a network PIN to unlock
			 */
			static SIM_STATE_NETWORK_LOCKED: number;
			/**
			 * SIM card state: Ready
			 */
			static SIM_STATE_READY: number;
			/**
			 * Device call state: No activity.
			 */
			static CALL_STATE_IDLE: number;
			/**
			 * Device call state: Ringing. A new call arrived and is ringing or waiting. In the latter case, another call is already active.
			 */
			static CALL_STATE_RINGING: number;
			/**
			 * Device call state: Off-hook. At least one call exists that is dialing, active, or on hold, and no calls are ringing or waiting.
			 */
			static CALL_STATE_OFFHOOK: number;
			/**
			 * Data connection activity: No traffic.
			 */
			static DATA_ACTIVITY_NONE: number;
			/**
			 * Data connection activity: Currently receiving IP PPP traffic.
			 */
			static DATA_ACTIVITY_IN: number;
			/**
			 * Data connection activity: Currently sending IP PPP traffic.
			 */
			static DATA_ACTIVITY_OUT: number;
			/**
			 * Data connection activity: Currently both sending and receiving IP PPP traffic.
			 */
			static DATA_ACTIVITY_INOUT: number;
			/**
			 * Data connection is active, but physical link is down
			 */
			static DATA_ACTIVITY_DORMANT: number;
			/**
			 * Data connection state: Disconnected. IP traffic not available.
			 */
			static DATA_DISCONNECTED: number;
			/**
			 * Data connection state: Currently setting up a data connection.
			 */
			static DATA_CONNECTING: number;
			/**
			 * Data connection state: Connected. IP traffic should be available.
			 */
			static DATA_CONNECTED: number;
			/**
			 * Data connection state: Suspended. The connection is up, but IP traffic is temporarily unavailable. For example, in a 2G network, data activity may be suspended when a voice call arrives.
			 */
			static DATA_SUSPENDED: number;
			static class: java.lang.Class<android.telephony.TelephonyManager>;
			/**
			 * Returns the software version number for the device, for example, the IMEI/SV for GSM phones. Return null if the software version is not available.
			 */
			public getDeviceSoftwareVersion(): string;
			/**
			 * Returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones. Return null if device ID is not available.
			 */
			public getDeviceId(): string;
			/**
			 * Returns the current location of the device. Return null if current location is not available.
			 */
			public getCellLocation(): android.telephony.CellLocation;
			/**
			 * Returns the neighboring cell information of the device.
			 */
			public getNeighboringCellInfo(): java.util.IList<android.telephony.NeighboringCellInfo>;
			/**
			 * Returns a constant indicating the device phone type. This indicates the type of radio used to transmit voice calls.
			 */
			public getPhoneType(): number;
			/**
			 * Returns the alphabetic name of current registered operator.
			 */
			public getNetworkOperatorName(): string;
			/**
			 * Returns the numeric name (MCC+MNC) of current registered operator.
			 */
			public getNetworkOperator(): string;
			/**
			 * Returns true if the device is considered roaming on the current network, for GSM purposes.
			 */
			public isNetworkRoaming(): boolean;
			/**
			 * Returns the ISO country code equivalent of the current registered operator's MCC (Mobile Country Code).
			 */
			public getNetworkCountryIso(): string;
			/**
			 * Returns a constant indicating the radio technology (network type) currently in use on the device for data transmission.
			 */
			public getNetworkType(): number;
			public hasIccCard(): boolean;
			/**
			 * Returns a constant indicating the state of the device SIM card.
			 */
			public getSimState(): number;
			/**
			 * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.
			 */
			public getSimOperator(): string;
			/**
			 * Returns the Service Provider Name (SPN).
			 */
			public getSimOperatorName(): string;
			/**
			 * Returns the ISO country code equivalent for the SIM provider's country code.
			 */
			public getSimCountryIso(): string;
			/**
			 * Returns the serial number of the SIM, if applicable. Return null if it is unavailable.
			 */
			public getSimSerialNumber(): string;
			/**
			 * Returns the unique subscriber ID, for example, the IMSI for a GSM phone. Return null if it is unavailable.
			 */
			public getSubscriberId(): string;
			/**
			 * Returns the phone number string for line 1, for example, the MSISDN for a GSM phone. Return null if it is unavailable.
			 */
			public getLine1Number(): string;
			/**
			 * Returns the voice mail number. Return null if it is unavailable.
			 */
			public getVoiceMailNumber(): string;
			/**
			 * Retrieves the alphabetic identifier associated with the voice mail number.
			 */
			public getVoiceMailAlphaTag(): string;
			/**
			 * Returns a constant indicating the call state (cellular) on the device.
			 */
			public getCallState(): number;
			/**
			 * Returns a constant indicating the type of activity on a data connection (cellular).
			 */
			public getDataActivity(): number;
			/**
			 * Returns a constant indicating the current data connection state (cellular).
			 */
			public getDataState(): number;
			/**
			 * Registers a listener object to receive notification of changes in specified telephony states.
			 * @param listener The {@link PhoneStateListener} object to register
			 * @param events The telephony state(s) of interest to the listener,
			 */
			public listen(listener: android.telephony.PhoneStateListener, events: number): void;
			/**
			 * Returns all observed cell information of the device.
			 */
			public getAllCellInfo(): java.util.IList<android.telephony.CellInfo>;
		}
		/**
		 * A listener class for monitoring changes in specific telephony states on the device, including service state, signal strength, message waiting indicator (voicemail), and others.
		 */
		export class PhoneStateListener extends java.lang.Object {
			constructor();
			/**
			 * Stop listening for updates.
			 */
			static LISTEN_NONE: number;
			/**
			 * Listen for changes to the network service state (cellular).
			 */
			static LISTEN_SERVICE_STATE: number;
			/**
			 * Listen for changes to the network signal strength (cellular). Requires Permission: android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE
			 */
			static LISTEN_SIGNAL_STRENGTH: number;
			/**
			 * Listen for changes to the message-waiting indicator. Requires Permission: android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE
			 */
			static LISTEN_MESSAGE_WAITING_INDICATOR: number;
			/**
			 * Listen for changes to the call-forwarding indicator. Requires Permission: android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE #onCallForwardingIndicatorChanged
			 */
			static LISTEN_CALL_FORWARDING_INDICATOR: number;
			/**
			 * Listen for changes to the device's cell location. Note that this will result in frequent callbacks to the listener. Requires Permission: android.Manifest.permission#ACCESS_COARSE_LOCATION ACCESS_COARSE_LOCATION
			 */
			static LISTEN_CELL_LOCATION: number;
			/**
			 * Listen for changes to the device call state. Requires Permission: android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE #onCallStateChanged
			 */
			static LISTEN_CALL_STATE: number;
			/**
			 * Listen for changes to the data connection state (cellular).
			 */
			static LISTEN_DATA_CONNECTION_STATE: number;
			/**
			 * Listen for changes to the direction of data traffic on the data connection (cellular). Requires Permission: android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE Example: The status bar uses this to display the appropriate data-traffic icon.
			 */
			static LISTEN_DATA_ACTIVITY: number;
			/**
			 * Listen for changes to the network signal strengths (cellular).
			 */
			static LISTEN_SIGNAL_STRENGTHS: number;
			/**
			 * Listen for changes to observed cell info.
			 */
			static LISTEN_CELL_INFO: number;
			static class: java.lang.Class<android.telephony.PhoneStateListener>;
			/**
			 * Callback invoked when device service state changes.
			 */
			public onServiceStateChanged(serviceState: android.telephony.ServiceState): void;
			/**
			 * Callback invoked when network signal strength changes.
			 */
			public onSignalStrengthChanged(asu: number): void;
			/**
			 * Callback invoked when the message-waiting indicator changes.
			 */
			public onMessageWaitingIndicatorChanged(mwi: boolean): void;
			/**
			 * Callback invoked when the call-forwarding indicator changes.
			 */
			public onCallForwardingIndicatorChanged(cfi: boolean): void;
			/**
			 * Callback invoked when device cell location changes.
			 */
			public onCellLocationChanged(location: android.telephony.CellLocation): void;
			/**
			 * Callback invoked when device call state changes.
			 */
			public onCallStateChanged(state: number, incomingNumber: string): void;
			/**
			 * Callback invoked when connection state changes.
			 */
			public onDataConnectionStateChanged(state: number): void;
			/**
			 * same as above, but with the network type. Both called.
			 */
			public onDataConnectionStateChanged(state: number, networkType: number): void;
			/**
			 * Callback invoked when data activity state changes.
			 */
			public onDataActivity(direction: number): void;
			/**
			 * Callback invoked when network signal strengths changes.
			 */
			public onSignalStrengthsChanged(signalStrength: android.telephony.SignalStrength): void;
			/**
			 * Callback invoked when a observed cell info has changed, or new cells have been added or removed.
			 * @param cellInfo is the list of currently visible cells.
			 */
			public onCellInfoChanged(cellInfo: java.util.IList<android.telephony.CellInfo>): void;
		}
		export module cdma {
			/**
			 * Represents the cell location on a CDMA phone.
			 */
			export class CdmaCellLocation extends android.telephony.CellLocation {
				/**
				 * Empty constructor. Initializes the BID, SID, NID and base station latitude and longitude to invalid values.
				 */
				constructor();
				/**
				 * Initialize the object from a bundle.
				 */
				constructor(bundle: android.os.Bundle);
				static class: java.lang.Class<android.telephony.cdma.CdmaCellLocation>;
				public getBaseStationId(): number;
				/**
				 * Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. (http://www.3gpp2.org/public_html/specs/C.S0005-A_v6.0.pdf) It is represented in units of 0.25 seconds and ranges from -1296000 to 1296000, both values inclusive (corresponding to a range of -90 to +90 degrees). Integer.MAX_VALUE is considered invalid value.
				 */
				public getBaseStationLatitude(): number;
				/**
				 * Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0. (http://www.3gpp2.org/public_html/specs/C.S0005-A_v6.0.pdf) It is represented in units of 0.25 seconds and ranges from -2592000 to 2592000, both values inclusive (corresponding to a range of -180 to +180 degrees). Integer.MAX_VALUE is considered invalid value.
				 */
				public getBaseStationLongitude(): number;
				public getSystemId(): number;
				public getNetworkId(): number;
				/**
				 * Invalidate this object. The cell location data is set to invalid values.
				 */
				public setStateInvalid(): void;
				/**
				 * Set the cell location data.
				 */
				public setCellLocationData(baseStationId: number, baseStationLatitude: number, baseStationLongitude: number): void;
				/**
				 * Set the cell location data.
				 */
				public setCellLocationData(baseStationId: number, baseStationLatitude: number, baseStationLongitude: number, systemId: number, networkId: number): void;
				public hashCode(): number;
				public equals(o: any): boolean;
				public toString(): string;
				/**
				 * Fill the cell location data into the intent notifier Bundle based on service state
				 * @param bundleToFill intent notifier Bundle
				 */
				public fillInNotifierBundle(bundleToFill: android.os.Bundle): void;
				/**
				 * Converts latitude or longitude from 0.25 seconds (as defined in the 3GPP2 C.S0005-A v6.0 standard) to decimal degrees
				 * @param quartSec latitude or longitude in 0.25 seconds units
				 */
				public static convertQuartSecToDecDegrees(quartSec: number): any;
			}
		}
		/**
		 * Watches a android.widget.TextView and if a phone number is entered will format it.
		 */
		export class PhoneNumberFormattingTextWatcher extends java.lang.Object implements android.text.ITextWatcher {
			/**
			 * The formatting is based on the current system locale and future locale changes may not take effect on this instance.
			 */
			constructor();
			static class: java.lang.Class<android.telephony.PhoneNumberFormattingTextWatcher>;
			public beforeTextChanged(s: string, start: number, count: number, after: number): void;
			public onTextChanged(s: string, start: number, before: number, count: number): void;
			public afterTextChanged(s: any): void;
		}
		/**
		 * LTE signal strength related information.
		 */
		export class CellSignalStrengthCdma extends android.telephony.CellSignalStrength implements android.os.IParcelable {
			/**
			 * Implement the Parcelable interface
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.telephony.CellSignalStrengthCdma>;
			static class: java.lang.Class<android.telephony.CellSignalStrengthCdma>;
			/**
			 * Get signal level as an int from 0..4
			 */
			public getLevel(): number;
			/**
			 * Get the LTE signal level as an asu value between 0..97, 99 is unknown Asu is calculated based on 3GPP RSRP. Refer to 3GPP 27.007 (Ver 10.3.0) Sec 8.69
			 */
			public getAsuLevel(): number;
			/**
			 * Get cdma as level 0..4
			 */
			public getCdmaLevel(): number;
			/**
			 * Get Evdo as level 0..4
			 */
			public getEvdoLevel(): number;
			/**
			 * Get the signal strength as dBm
			 */
			public getDbm(): number;
			/**
			 * Get the CDMA RSSI value in dBm
			 */
			public getCdmaDbm(): number;
			/**
			 * Get the CDMA Ec/Io value in dB*10
			 */
			public getCdmaEcio(): number;
			/**
			 * Get the EVDO RSSI value in dBm
			 */
			public getEvdoDbm(): number;
			/**
			 * Get the EVDO Ec/Io value in dB*10
			 */
			public getEvdoEcio(): number;
			/**
			 * Get the signal to noise ratio. Valid values are 0-8. 8 is the highest.
			 */
			public getEvdoSnr(): number;
			public hashCode(): number;
			public equals(o: any): boolean;
			public toString(): string;
			/**
			 * Implement the Parcelable interface
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			/**
			 * Implement the Parcelable interface
			 */
			public describeContents(): number;
		}
		/**
		 * Contains phone signal strength related information.
		 */
		export class SignalStrength extends java.lang.Object implements android.os.IParcelable {
			static class: java.lang.Class<android.telephony.SignalStrength>;
			/**
			 * Parcelable#writeToParcel
			 */
			public writeToParcel(out: android.os.Parcel, flags: number): void;
			/**
			 * Parcelable#describeContents
			 */
			public describeContents(): number;
			/**
			 * Get the GSM Signal Strength, valid values are (0-31, 99) as defined in TS 27.007 8.5
			 */
			public getGsmSignalStrength(): number;
			/**
			 * Get the GSM bit error rate (0-7, 99) as defined in TS 27.007 8.5
			 */
			public getGsmBitErrorRate(): number;
			/**
			 * Get the CDMA RSSI value in dBm
			 */
			public getCdmaDbm(): number;
			/**
			 * Get the CDMA Ec/Io value in dB*10
			 */
			public getCdmaEcio(): number;
			/**
			 * Get the EVDO RSSI value in dBm
			 */
			public getEvdoDbm(): number;
			/**
			 * Get the EVDO Ec/Io value in dB*10
			 */
			public getEvdoEcio(): number;
			/**
			 * Get the signal to noise ratio. Valid values are 0-8. 8 is the highest.
			 */
			public getEvdoSnr(): number;
			public isGsm(): boolean;
			public hashCode(): number;
			public equals(o: any): boolean;
			public toString(): string;
		}
	}
	export module location {
		/**
		 * This class provides access to the system location services. These services allow applications to obtain periodic updates of the device's geographical location, or to fire an application-specified Intent when the device enters the proximity of a given geographical location.
		 */
		export class LocationManager extends java.lang.Object {
			/**
			 * Name of the network location provider.
			 */
			static NETWORK_PROVIDER: string;
			/**
			 * Name of the GPS location provider.
			 */
			static GPS_PROVIDER: string;
			/**
			 * A special location provider for receiving locations without actually initiating a location fix.
			 */
			static PASSIVE_PROVIDER: string;
			/**
			 * Key used for the Bundle extra holding a boolean indicating whether a proximity alert is entering (true) or exiting (false)..
			 */
			static KEY_PROXIMITY_ENTERING: string;
			/**
			 * Key used for a Bundle extra holding an Integer status value when a status change is broadcast using a PendingIntent.
			 */
			static KEY_STATUS_CHANGED: string;
			/**
			 * Key used for a Bundle extra holding an Boolean status value when a provider enabled/disabled event is broadcast using a PendingIntent.
			 */
			static KEY_PROVIDER_ENABLED: string;
			/**
			 * Key used for a Bundle extra holding a Location value when a location change is broadcast using a PendingIntent.
			 */
			static KEY_LOCATION_CHANGED: string;
			/**
			 * Broadcast intent action when the configured location providers change.
			 */
			static PROVIDERS_CHANGED_ACTION: string;
			static class: java.lang.Class<android.location.LocationManager>;
			/**
			 * Returns a list of the names of all known location providers.
			 */
			public getAllProviders(): java.util.IList<string>;
			/**
			 * Returns a list of the names of location providers.
			 * @param enabledOnly if true then only the providers which are currently
			 */
			public getProviders(enabledOnly: boolean): java.util.IList<string>;
			/**
			 * Returns the information associated with the location provider of the given name, or null if no provider exists by that name.
			 * @param name the provider name
			 */
			public getProvider(name: string): android.location.LocationProvider;
			/**
			 * Returns a list of the names of LocationProviders that satisfy the given criteria, or null if none do. Only providers that are permitted to be accessed by the calling activity will be returned.
			 * @param criteria the criteria that the returned providers must match
			 * @param enabledOnly if true then only the providers which are currently
			 */
			public getProviders(criteria: android.location.Criteria, enabledOnly: boolean): java.util.IList<string>;
			/**
			 * Returns the name of the provider that best meets the given criteria. Only providers that are permitted to be accessed by the calling activity will be returned. If several providers meet the criteria, the one with the best accuracy is returned. If no provider meets the criteria, the criteria are loosened in the following sequence:
			 * @param criteria the criteria that need to be matched
			 * @param enabledOnly if true then only a provider that is currently enabled is returned
			 */
			public getBestProvider(criteria: android.location.Criteria, enabledOnly: boolean): string;
			/**
			 * Register for location updates using the named provider, and a pending intent.
			 * @param provider the name of the provider with which to register
			 * @param minTime minimum time interval between location updates, in milliseconds
			 * @param minDistance minimum distance between location updates, in meters
			 * @param listener a {@link LocationListener} whose
			 */
			public requestLocationUpdates(provider: string, minTime: number, minDistance: number, listener: android.location.ILocationListener): void;
			/**
			 * Register for location updates using the named provider, and a callback on the specified looper thread.
			 * @param provider the name of the provider with which to register
			 * @param minTime minimum time interval between location updates, in milliseconds
			 * @param minDistance minimum distance between location updates, in meters
			 * @param listener a {@link LocationListener} whose
			 * @param looper a Looper object whose message queue will be used to
			 */
			public requestLocationUpdates(provider: string, minTime: number, minDistance: number, listener: android.location.ILocationListener, looper: android.os.Looper): void;
			/**
			 * Register for location updates using a Criteria, and a callback on the specified looper thread.
			 * @param minTime minimum time interval between location updates, in milliseconds
			 * @param minDistance minimum distance between location updates, in meters
			 * @param criteria contains parameters for the location manager to choose the
			 * @param listener a {@link LocationListener} whose
			 * @param looper a Looper object whose message queue will be used to
			 */
			public requestLocationUpdates(minTime: number, minDistance: number, criteria: android.location.Criteria, listener: android.location.ILocationListener, looper: android.os.Looper): void;
			/**
			 * Register for location updates using the named provider, and a pending intent.
			 * @param provider the name of the provider with which to register
			 * @param minTime minimum time interval between location updates, in milliseconds
			 * @param minDistance minimum distance between location updates, in meters
			 * @param intent a {@link PendingIntent} to be sent for each location update
			 */
			public requestLocationUpdates(provider: string, minTime: number, minDistance: number, intent: android.app.PendingIntent): void;
			/**
			 * Register for location updates using a Criteria and pending intent.
			 * @param minTime minimum time interval between location updates, in milliseconds
			 * @param minDistance minimum distance between location updates, in meters
			 * @param criteria contains parameters for the location manager to choose the
			 * @param intent a {@link PendingIntent} to be sent for each location update
			 */
			public requestLocationUpdates(minTime: number, minDistance: number, criteria: android.location.Criteria, intent: android.app.PendingIntent): void;
			/**
			 * Register for a single location update using the named provider and a callback.
			 * @param provider the name of the provider with which to register
			 * @param listener a {@link LocationListener} whose
			 * @param looper a Looper object whose message queue will be used to
			 */
			public requestSingleUpdate(provider: string, listener: android.location.ILocationListener, looper: android.os.Looper): void;
			/**
			 * Register for a single location update using a Criteria and a callback.
			 * @param criteria contains parameters for the location manager to choose the
			 * @param listener a {@link LocationListener} whose
			 * @param looper a Looper object whose message queue will be used to
			 */
			public requestSingleUpdate(criteria: android.location.Criteria, listener: android.location.ILocationListener, looper: android.os.Looper): void;
			/**
			 * Register for a single location update using a named provider and pending intent.
			 * @param provider the name of the provider with which to register
			 * @param intent a {@link PendingIntent} to be sent for the location update
			 */
			public requestSingleUpdate(provider: string, intent: android.app.PendingIntent): void;
			/**
			 * Register for a single location update using a Criteria and pending intent.
			 * @param criteria contains parameters for the location manager to choose the
			 * @param intent a {@link PendingIntent} to be sent for the location update
			 */
			public requestSingleUpdate(criteria: android.location.Criteria, intent: android.app.PendingIntent): void;
			/**
			 * Removes all location updates for the specified LocationListener.
			 * @param listener listener object that no longer needs location updates
			 */
			public removeUpdates(listener: android.location.ILocationListener): void;
			/**
			 * Removes all location updates for the specified pending intent.
			 * @param intent pending intent object that no longer needs location updates
			 */
			public removeUpdates(intent: android.app.PendingIntent): void;
			/**
			 * Set a proximity alert for the location given by the position (latitude, longitude) and the given radius.
			 * @param latitude the latitude of the central point of the
			 * @param longitude the longitude of the central point of the
			 * @param radius the radius of the central point of the
			 * @param expiration time for this proximity alert, in milliseconds,
			 * @param intent a PendingIntent that will be used to generate an Intent to
			 */
			public addProximityAlert(latitude: number, longitude: number, radius: number, expiration: number, intent: android.app.PendingIntent): void;
			/**
			 * Removes the proximity alert with the given PendingIntent.
			 * @param intent the PendingIntent that no longer needs to be notified of
			 */
			public removeProximityAlert(intent: android.app.PendingIntent): void;
			/**
			 * Returns the current enabled/disabled status of the given provider.
			 * @param provider the name of the provider
			 */
			public isProviderEnabled(provider: string): boolean;
			/**
			 * Returns a Location indicating the data from the last known location fix obtained from the given provider.
			 * @param provider the name of the provider
			 */
			public getLastKnownLocation(provider: string): android.location.Location;
			/**
			 * Creates a mock location provider and adds it to the set of active providers.
			 * @param name the provider name
			 * @param requiresNetwork 
			 * @param requiresSatellite 
			 * @param requiresCell 
			 * @param hasMonetaryCost 
			 * @param supportsAltitude 
			 * @param supportsSpeed 
			 * @param supportsBearing 
			 * @param powerRequirement 
			 * @param accuracy 
			 */
			public addTestProvider(name: string, requiresNetwork: boolean, requiresSatellite: boolean, requiresCell: boolean, hasMonetaryCost: boolean, supportsAltitude: boolean, supportsSpeed: boolean, supportsBearing: boolean, powerRequirement: number, accuracy: number): void;
			/**
			 * Removes the mock location provider with the given name.
			 * @param provider the provider name
			 */
			public removeTestProvider(provider: string): void;
			/**
			 * Sets a mock location for the given provider.
			 * @param provider the provider name
			 * @param loc the mock location
			 */
			public setTestProviderLocation(provider: string, loc: android.location.Location): void;
			/**
			 * Removes any mock location associated with the given provider.
			 * @param provider the provider name
			 */
			public clearTestProviderLocation(provider: string): void;
			/**
			 * Sets a mock enabled value for the given provider. This value will be used in place of any actual value from the provider.
			 * @param provider the provider name
			 * @param enabled the mock enabled value
			 */
			public setTestProviderEnabled(provider: string, enabled: boolean): void;
			/**
			 * Removes any mock enabled value associated with the given provider.
			 * @param provider the provider name
			 */
			public clearTestProviderEnabled(provider: string): void;
			/**
			 * Sets mock status values for the given provider. These values will be used in place of any actual values from the provider.
			 * @param provider the provider name
			 * @param status the mock status
			 * @param extras a Bundle containing mock extras
			 * @param updateTime the mock update time
			 */
			public setTestProviderStatus(provider: string, status: number, extras: android.os.Bundle, updateTime: number): void;
			/**
			 * Removes any mock status values associated with the given provider.
			 * @param provider the provider name
			 */
			public clearTestProviderStatus(provider: string): void;
			/**
			 * Adds a GPS status listener.
			 * @param listener GPS status listener object to register
			 */
			public addGpsStatusListener(listener: android.location.GpsStatus.IListener): boolean;
			/**
			 * Removes a GPS status listener.
			 * @param listener GPS status listener object to remove
			 */
			public removeGpsStatusListener(listener: android.location.GpsStatus.IListener): void;
			/**
			 * Adds an NMEA listener.
			 * @param listener a {@link GpsStatus.NmeaListener} object to register
			 */
			public addNmeaListener(listener: android.location.GpsStatus.INmeaListener): boolean;
			/**
			 * Removes an NMEA listener.
			 * @param listener a {@link GpsStatus.NmeaListener} object to remove
			 */
			public removeNmeaListener(listener: android.location.GpsStatus.INmeaListener): void;
			/**
			 * Retrieves information about the current status of the GPS engine. This should only be called from the GpsStatus.Listener#onGpsStatusChanged callback to ensure that the data is copied atomically.
			 * @param status object containing GPS status details, or null.
			 */
			public getGpsStatus(status: android.location.GpsStatus): android.location.GpsStatus;
			/**
			 * Sends additional commands to a location provider. Can be used to support provider specific extensions to the Location Manager API
			 * @param provider name of the location provider.
			 * @param command name of the command to send to the provider.
			 * @param extras optional arguments for the command (or null).
			 */
			public sendExtraCommand(provider: string, command: string, extras: android.os.Bundle): boolean;
		}
		export module LocationManager {
			export class ListenerTransport {
				static class: java.lang.Class<android.location.LocationManager.ListenerTransport>;
				public onLocationChanged(location: android.location.Location): void;
				public onStatusChanged(provider: string, status: number, extras: android.os.Bundle): void;
				public onProviderEnabled(provider: string): void;
				public onProviderDisabled(provider: string): void;
			}
			export class GpsStatusListenerTransport {
				static class: java.lang.Class<android.location.LocationManager.GpsStatusListenerTransport>;
				public onGpsStarted(): void;
				public onGpsStopped(): void;
				public onFirstFix(ttff: number): void;
				public onSvStatusChanged(svCount: number, prns: native.Array<number>, snrs: native.Array<number>, elevations: native.Array<number>, azimuths: native.Array<number>, ephemerisMask: number, almanacMask: number, usedInFixMask: number): void;
				public onNmeaReceived(timestamp: number, nmea: string): void;
			}
			export module GpsStatusListenerTransport {
				export class Nmea extends java.lang.Object {
					static class: java.lang.Class<android.location.LocationManager.GpsStatusListenerTransport.Nmea>;
				}
			}
		}
		export class GeocoderTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.location.GeocoderTest>;
			public testGeocoder(): void;
		}
		/**
		 * This class represents the current state of the GPS engine. This class is used in conjunction with the Listener interface.
		 */
		export class GpsStatus extends java.lang.Object {
			/**
			 * Event sent when the GPS system has started.
			 */
			static GPS_EVENT_STARTED: number;
			/**
			 * Event sent when the GPS system has stopped.
			 */
			static GPS_EVENT_STOPPED: number;
			/**
			 * Event sent when the GPS system has received its first fix since starting. Call #getTimeToFirstFix() to find the time from start to first fix.
			 */
			static GPS_EVENT_FIRST_FIX: number;
			/**
			 * Event sent periodically to report GPS satellite status. Call #getSatellites() to retrieve the status for each satellite.
			 */
			static GPS_EVENT_SATELLITE_STATUS: number;
			static class: java.lang.Class<android.location.GpsStatus>;
			/**
			 * Used internally within LocationManager to copy GPS status data from the Location Manager Service to its cached GpsStatus instance. Is synchronized to ensure that GPS status updates are atomic.
			 */
			setStatus(svCount: number, prns: native.Array<number>, snrs: native.Array<number>, elevations: native.Array<number>, azimuths: native.Array<number>, ephemerisMask: number, almanacMask: number, usedInFixMask: number): void;
			/**
			 * Used by LocationManager#getGpsStatus to copy LocationManager's cached GpsStatus instance to the client's copy. Since this method is only used within LocationManager#getGpsStatus, it does not need to be synchronized.
			 */
			setStatus(status: android.location.GpsStatus): void;
			setTimeToFirstFix(ttff: number): void;
			/**
			 * Returns the time required to receive the first fix since the most recent restart of the GPS engine.
			 */
			public getTimeToFirstFix(): number;
			/**
			 * Returns an array of GpsSatellite objects, which represent the current state of the GPS engine.
			 */
			public getSatellites(): java.lang.IIterable<android.location.GpsSatellite>;
			/**
			 * Returns the maximum number of satellites that can be in the satellite list that can be returned by #getSatellites().
			 */
			public getMaxSatellites(): number;
		}
		export module GpsStatus {
			/**
			 * Used for receiving NMEA sentences from the GPS. NMEA 0183 is a standard for communicating with marine electronic devices and is a common method for receiving data from a GPS, typically over a serial port. See <a href="http://en.wikipedia.org/wiki/NMEA_0183">NMEA 0183</a> for more details. You can implement this interface and call LocationManager#addNmeaListener to receive NMEA data from the GPS engine.
			 */
			export class NmeaListener implements android.location.GpsStatus.INmeaListener {
				constructor(implementation: android.location.GpsStatus.INmeaListener);
				public onNmeaReceived(timestamp: number, nmea: string): void;
			}
			export class SatelliteIterator extends java.lang.Object {
				static class: java.lang.Class<android.location.GpsStatus.SatelliteIterator>;
				public hasNext(): boolean;
				public next(): android.location.GpsSatellite;
				public remove(): void;
			}
			/**
			 * Used for receiving notifications when GPS status has changed.
			 */
			export class Listener implements android.location.GpsStatus.IListener {
				constructor(implementation: android.location.GpsStatus.IListener);
				/**
				 * Called to report changes in the GPS status. The event number is one of: <ul> <li> GpsStatus#GPS_EVENT_STARTED <li> GpsStatus#GPS_EVENT_STOPPED <li> GpsStatus#GPS_EVENT_FIRST_FIX <li> GpsStatus#GPS_EVENT_SATELLITE_STATUS </ul>
				 * @param event event number for this notification
				 */
				public onGpsStatusChanged(event: number): void;
			}
			/**
			 * Used for receiving NMEA sentences from the GPS. NMEA 0183 is a standard for communicating with marine electronic devices and is a common method for receiving data from a GPS, typically over a serial port. See <a href="http://en.wikipedia.org/wiki/NMEA_0183">NMEA 0183</a> for more details. You can implement this interface and call LocationManager#addNmeaListener to receive NMEA data from the GPS engine.
			 */
			interface INmeaListener {
				onNmeaReceived(timestamp: number, nmea: string): void;
			}
			/**
			 * Used for receiving notifications when GPS status has changed.
			 */
			interface IListener {
				/**
				 * Called to report changes in the GPS status. The event number is one of: <ul> <li> GpsStatus#GPS_EVENT_STARTED <li> GpsStatus#GPS_EVENT_STOPPED <li> GpsStatus#GPS_EVENT_FIRST_FIX <li> GpsStatus#GPS_EVENT_SATELLITE_STATUS </ul>
				 * @param event event number for this notification
				 */
				onGpsStatusChanged(event: number): void;
			}
		}
		/**
		 * An abstract superclass for location providers. A location provider provides periodic reports on the geographical location of the device.
		 */
		export class LocationProvider extends java.lang.Object {
			static OUT_OF_SERVICE: number;
			static TEMPORARILY_UNAVAILABLE: number;
			static AVAILABLE: number;
			static class: java.lang.Class<android.location.LocationProvider>;
			/**
			 * Returns the name of this provider.
			 */
			public getName(): string;
			/**
			 * Returns true if this provider meets the given criteria, false otherwise.
			 */
			public meetsCriteria(criteria: android.location.Criteria): boolean;
			/**
			 * Returns true if the provider requires access to a data network (e.g., the Internet), false otherwise.
			 */
			public requiresNetwork(): boolean;
			/**
			 * Returns true if the provider requires access to a satellite-based positioning system (e.g., GPS), false otherwise.
			 */
			public requiresSatellite(): boolean;
			/**
			 * Returns true if the provider requires access to an appropriate cellular network (e.g., to make use of cell tower IDs), false otherwise.
			 */
			public requiresCell(): boolean;
			/**
			 * Returns true if the use of this provider may result in a monetary charge to the user, false if use is free. It is up to each provider to give accurate information.
			 */
			public hasMonetaryCost(): boolean;
			/**
			 * Returns true if the provider is able to provide altitude information, false otherwise. A provider that reports altitude under most circumstances but may occassionally not report it should return true.
			 */
			public supportsAltitude(): boolean;
			/**
			 * Returns true if the provider is able to provide speed information, false otherwise. A provider that reports speed under most circumstances but may occassionally not report it should return true.
			 */
			public supportsSpeed(): boolean;
			/**
			 * Returns true if the provider is able to provide bearing information, false otherwise. A provider that reports bearing under most circumstances but may occassionally not report it should return true.
			 */
			public supportsBearing(): boolean;
			/**
			 * Returns the power requirement for this provider.
			 */
			public getPowerRequirement(): number;
			/**
			 * Returns a constant describing horizontal accuracy of this provider. If the provider returns finer grain or exact location, Criteria#ACCURACY_FINE is returned, otherwise if the location is only approximate then Criteria#ACCURACY_COARSE is returned.
			 */
			public getAccuracy(): number;
		}
		/**
		 * A class representing an Address, i.e, a set of Strings describing a location.
		 */
		export class Address extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Constructs a new Address object set to the given Locale and with all other fields initialized to null or false.
			 */
			constructor(locale: java.util.Locale);
			static CREATOR: android.os.Parcelable.ICreator<android.location.Address>;
			static class: java.lang.Class<android.location.Address>;
			/**
			 * Returns the Locale associated with this address.
			 */
			public getLocale(): java.util.Locale;
			/**
			 * Returns the largest index currently in use to specify an address line. If no address lines are specified, -1 is returned.
			 */
			public getMaxAddressLineIndex(): number;
			/**
			 * Returns a line of the address numbered by the given index (starting at 0), or null if no such line is present.
			 */
			public getAddressLine(index: number): string;
			/**
			 * Sets the line of the address numbered by index (starting at 0) to the given String, which may be null.
			 */
			public setAddressLine(index: number, line: string): void;
			/**
			 * Returns the feature name of the address, for example, "Golden Gate Bridge", or null if it is unknown
			 */
			public getFeatureName(): string;
			/**
			 * Sets the feature name of the address to the given String, which may be null
			 */
			public setFeatureName(featureName: string): void;
			/**
			 * Returns the administrative area name of the address, for example, "CA", or null if it is unknown
			 */
			public getAdminArea(): string;
			/**
			 * Sets the administrative area name of the address to the given String, which may be null
			 */
			public setAdminArea(adminArea: string): void;
			/**
			 * Returns the sub-administrative area name of the address, for example, "Santa Clara County", or null if it is unknown
			 */
			public getSubAdminArea(): string;
			/**
			 * Sets the sub-administrative area name of the address to the given String, which may be null
			 */
			public setSubAdminArea(subAdminArea: string): void;
			/**
			 * Returns the locality of the address, for example "Mountain View", or null if it is unknown.
			 */
			public getLocality(): string;
			/**
			 * Sets the locality of the address to the given String, which may be null.
			 */
			public setLocality(locality: string): void;
			/**
			 * Returns the sub-locality of the address, or null if it is unknown. For example, this may correspond to the neighborhood of the locality.
			 */
			public getSubLocality(): string;
			/**
			 * Sets the sub-locality of the address to the given String, which may be null.
			 */
			public setSubLocality(sublocality: string): void;
			/**
			 * Returns the thoroughfare name of the address, for example, "1600 Ampitheater Parkway", which may be null
			 */
			public getThoroughfare(): string;
			/**
			 * Sets the thoroughfare name of the address, which may be null.
			 */
			public setThoroughfare(thoroughfare: string): void;
			/**
			 * Returns the sub-thoroughfare name of the address, which may be null. This may correspond to the street number of the address.
			 */
			public getSubThoroughfare(): string;
			/**
			 * Sets the sub-thoroughfare name of the address, which may be null.
			 */
			public setSubThoroughfare(subthoroughfare: string): void;
			/**
			 * Returns the premises of the address, or null if it is unknown.
			 */
			public getPremises(): string;
			/**
			 * Sets the premises of the address to the given String, which may be null.
			 */
			public setPremises(premises: string): void;
			/**
			 * Returns the postal code of the address, for example "94110", or null if it is unknown.
			 */
			public getPostalCode(): string;
			/**
			 * Sets the postal code of the address to the given String, which may be null.
			 */
			public setPostalCode(postalCode: string): void;
			/**
			 * Returns the country code of the address, for example "US", or null if it is unknown.
			 */
			public getCountryCode(): string;
			/**
			 * Sets the country code of the address to the given String, which may be null.
			 */
			public setCountryCode(countryCode: string): void;
			/**
			 * Returns the localized country name of the address, for example "Iceland", or null if it is unknown.
			 */
			public getCountryName(): string;
			/**
			 * Sets the country name of the address to the given String, which may be null.
			 */
			public setCountryName(countryName: string): void;
			/**
			 * Returns true if a latitude has been assigned to this Address, false otherwise.
			 */
			public hasLatitude(): boolean;
			/**
			 * Returns the latitude of the address if known.
			 */
			public getLatitude(): any;
			/**
			 * Sets the latitude associated with this address.
			 */
			public setLatitude(latitude: number): void;
			/**
			 * Removes any latitude associated with this address.
			 */
			public clearLatitude(): void;
			/**
			 * Returns true if a longitude has been assigned to this Address, false otherwise.
			 */
			public hasLongitude(): boolean;
			/**
			 * Returns the longitude of the address if known.
			 */
			public getLongitude(): any;
			/**
			 * Sets the longitude associated with this address.
			 */
			public setLongitude(longitude: number): void;
			/**
			 * Removes any longitude associated with this address.
			 */
			public clearLongitude(): void;
			/**
			 * Returns the phone number of the address if known, or null if it is unknown.
			 */
			public getPhone(): string;
			/**
			 * Sets the phone number associated with this address.
			 */
			public setPhone(phone: string): void;
			/**
			 * Returns the public URL for the address if known, or null if it is unknown.
			 */
			public getUrl(): string;
			/**
			 * Sets the public URL associated with this address.
			 */
			public setUrl(Url: string): void;
			/**
			 * Returns additional provider-specific information about the address as a Bundle. The keys and values are determined by the provider. If no additional information is available, null is returned.
			 */
			public getExtras(): android.os.Bundle;
			/**
			 * Sets the extra information associated with this fix to the given Bundle.
			 */
			public setExtras(extras: android.os.Bundle): void;
			public toString(): string;
			public describeContents(): number;
			public writeToParcel(parcel: android.os.Parcel, flags: number): void;
		}
		export class CountryTester extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.location.CountryTester>;
			public testCountryEquals(): void;
		}
		/**
		 * A class indicating the application criteria for selecting a location provider. Providers maybe ordered according to accuracy, power usage, ability to report altitude, speed, and bearing, and monetary cost.
		 */
		export class Criteria extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Constructs a new Criteria object. The new object will have no requirements on accuracy, power, or response time; will not require altitude, speed, or bearing; and will not allow monetary cost.
			 */
			constructor();
			/**
			 * Constructs a new Criteria object that is a copy of the given criteria.
			 */
			constructor(criteria: android.location.Criteria);
			/**
			 * A constant indicating that the application does not choose to place requirement on a particular feature.
			 */
			static NO_REQUIREMENT: number;
			/**
			 * A constant indicating a low power requirement.
			 */
			static POWER_LOW: number;
			/**
			 * A constant indicating a medium power requirement.
			 */
			static POWER_MEDIUM: number;
			/**
			 * A constant indicating a high power requirement.
			 */
			static POWER_HIGH: number;
			/**
			 * A constant indicating a finer location accuracy requirement
			 */
			static ACCURACY_FINE: number;
			/**
			 * A constant indicating an approximate accuracy requirement
			 */
			static ACCURACY_COARSE: number;
			/**
			 * A constant indicating a low location accuracy requirement - may be used for horizontal, altitude, speed or bearing accuracy. For horizontal and vertical position this corresponds roughly to an accuracy of greater than 500 meters.
			 */
			static ACCURACY_LOW: number;
			/**
			 * A constant indicating a medium accuracy requirement - currently used only for horizontal accuracy. For horizontal position this corresponds roughly to to an accuracy of between 100 and 500 meters.
			 */
			static ACCURACY_MEDIUM: number;
			/**
			 * a constant indicating a high accuracy requirement - may be used for horizontal, altitude, speed or bearing accuracy. For horizontal and vertical position this corresponds roughly to an accuracy of less than 100 meters.
			 */
			static ACCURACY_HIGH: number;
			static CREATOR: android.os.Parcelable.ICreator<android.location.Criteria>;
			static class: java.lang.Class<android.location.Criteria>;
			/**
			 * Indicates the desired horizontal accuracy (latitude and longitude). Accuracy may be #ACCURACY_LOW, #ACCURACY_MEDIUM, #ACCURACY_HIGH or #NO_REQUIREMENT. More accurate location may consume more power and may take longer.
			 */
			public setHorizontalAccuracy(accuracy: number): void;
			/**
			 * Returns a constant indicating the desired horizontal accuracy (latitude and longitude). Accuracy may be #ACCURACY_LOW, #ACCURACY_MEDIUM, #ACCURACY_HIGH or #NO_REQUIREMENT.
			 */
			public getHorizontalAccuracy(): number;
			/**
			 * Indicates the desired vertical accuracy (altitude). Accuracy may be #ACCURACY_LOW, #ACCURACY_MEDIUM, #ACCURACY_HIGH or #NO_REQUIREMENT. More accurate location may consume more power and may take longer.
			 */
			public setVerticalAccuracy(accuracy: number): void;
			/**
			 * Returns a constant indicating the desired vertical accuracy (altitude). Accuracy may be #ACCURACY_LOW, #ACCURACY_HIGH, or #NO_REQUIREMENT.
			 */
			public getVerticalAccuracy(): number;
			/**
			 * Indicates the desired speed accuracy. Accuracy may be #ACCURACY_LOW, #ACCURACY_HIGH, or #NO_REQUIREMENT. More accurate location may consume more power and may take longer.
			 */
			public setSpeedAccuracy(accuracy: number): void;
			/**
			 * Returns a constant indicating the desired speed accuracy Accuracy may be #ACCURACY_LOW, #ACCURACY_HIGH, or #NO_REQUIREMENT.
			 */
			public getSpeedAccuracy(): number;
			/**
			 * Indicates the desired bearing accuracy. Accuracy may be #ACCURACY_LOW, #ACCURACY_HIGH, or #NO_REQUIREMENT. More accurate location may consume more power and may take longer.
			 */
			public setBearingAccuracy(accuracy: number): void;
			/**
			 * Returns a constant indicating the desired bearing accuracy. Accuracy may be #ACCURACY_LOW, #ACCURACY_HIGH, or #NO_REQUIREMENT.
			 */
			public getBearingAccuracy(): number;
			/**
			 * Indicates the desired accuracy for latitude and longitude. Accuracy may be #ACCURACY_FINE if desired location is fine, else it can be #ACCURACY_COARSE. More accurate location may consume more power and may take longer.
			 */
			public setAccuracy(accuracy: number): void;
			/**
			 * Returns a constant indicating desired accuracy of location Accuracy may be #ACCURACY_FINE if desired location is fine, else it can be #ACCURACY_COARSE.
			 */
			public getAccuracy(): number;
			/**
			 * Indicates the desired maximum power level. The level parameter must be one of NO_REQUIREMENT, POWER_LOW, POWER_MEDIUM, or POWER_HIGH.
			 */
			public setPowerRequirement(level: number): void;
			/**
			 * Returns a constant indicating the desired power requirement. The returned
			 */
			public getPowerRequirement(): number;
			/**
			 * Indicates whether the provider is allowed to incur monetary cost.
			 */
			public setCostAllowed(costAllowed: boolean): void;
			/**
			 * Returns whether the provider is allowed to incur monetary cost.
			 */
			public isCostAllowed(): boolean;
			/**
			 * Indicates whether the provider must provide altitude information. Not all fixes are guaranteed to contain such information.
			 */
			public setAltitudeRequired(altitudeRequired: boolean): void;
			/**
			 * Returns whether the provider must provide altitude information. Not all fixes are guaranteed to contain such information.
			 */
			public isAltitudeRequired(): boolean;
			/**
			 * Indicates whether the provider must provide speed information. Not all fixes are guaranteed to contain such information.
			 */
			public setSpeedRequired(speedRequired: boolean): void;
			/**
			 * Returns whether the provider must provide speed information. Not all fixes are guaranteed to contain such information.
			 */
			public isSpeedRequired(): boolean;
			/**
			 * Indicates whether the provider must provide bearing information. Not all fixes are guaranteed to contain such information.
			 */
			public setBearingRequired(bearingRequired: boolean): void;
			/**
			 * Returns whether the provider must provide bearing information. Not all fixes are guaranteed to contain such information.
			 */
			public isBearingRequired(): boolean;
			public describeContents(): number;
			public writeToParcel(parcel: android.os.Parcel, flags: number): void;
			public toString(): string;
		}
		/**
		 * A class for handling geocoding and reverse geocoding. Geocoding is the process of transforming a street address or other description of a location into a (latitude, longitude) coordinate. Reverse geocoding is the process of transforming a (latitude, longitude) coordinate into a (partial) address. The amount of detail in a reverse geocoded location description may vary, for example one might contain the full street address of the closest building, while another might contain only a city name and postal code.
		 */
		export class Geocoder extends java.lang.Object {
			/**
			 * Constructs a Geocoder whose responses will be localized for the given Locale.
			 * @param context the Context of the calling Activity
			 * @param locale the desired Locale for the query results
			 */
			constructor(context: android.content.Context, locale: java.util.Locale);
			/**
			 * Constructs a Geocoder whose responses will be localized for the default system Locale.
			 * @param context the Context of the calling Activity
			 */
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.location.Geocoder>;
			/**
			 * Returns true if the Geocoder methods getFromLocation and getFromLocationName are implemented. Lack of network connectivity may still cause these methods to return null or empty lists.
			 */
			public static isPresent(): boolean;
			/**
			 * Returns an array of Addresses that are known to describe the area immediately surrounding the given latitude and longitude. The returned addresses will be localized for the locale provided to this class's constructor.
			 * @param latitude the latitude a point for the search
			 * @param longitude the longitude a point for the search
			 * @param maxResults max number of addresses to return. Smaller numbers (1 to 5) are recommended
			 */
			public getFromLocation(latitude: number, longitude: number, maxResults: number): java.util.IList<android.location.Address>;
			/**
			 * Returns an array of Addresses that are known to describe the named location, which may be a place name such as "Dalvik, Iceland", an address such as "1600 Amphitheatre Parkway, Mountain View, CA", an airport code such as "SFO", etc.. The returned addresses will be localized for the locale provided to this class's constructor.
			 * @param locationName a user-supplied description of a location
			 * @param maxResults max number of results to return. Smaller numbers (1 to 5) are recommended
			 */
			public getFromLocationName(locationName: string, maxResults: number): java.util.IList<android.location.Address>;
			/**
			 * Returns an array of Addresses that are known to describe the named location, which may be a place name such as "Dalvik, Iceland", an address such as "1600 Amphitheatre Parkway, Mountain View, CA", an airport code such as "SFO", etc.. The returned addresses will be localized for the locale provided to this class's constructor.
			 * @param locationName a user-supplied description of a location
			 * @param maxResults max number of addresses to return. Smaller numbers (1 to 5) are recommended
			 * @param lowerLeftLatitude the latitude of the lower left corner of the bounding box
			 * @param lowerLeftLongitude the longitude of the lower left corner of the bounding box
			 * @param upperRightLatitude the latitude of the upper right corner of the bounding box
			 * @param upperRightLongitude the longitude of the upper right corner of the bounding box
			 */
			public getFromLocationName(locationName: string, maxResults: number, lowerLeftLatitude: number, lowerLeftLongitude: number, upperRightLatitude: number, upperRightLongitude: number): java.util.IList<android.location.Address>;
		}
		/**
		 * This class represents the current state of a GPS satellite. This class is used in conjunction with the GpsStatus class.
		 */
		export class GpsSatellite extends java.lang.Object {
			static class: java.lang.Class<android.location.GpsSatellite>;
			/**
			 * Used by LocationManager#getGpsStatus to copy LocationManager's cached GpsStatus instance to the client's copy.
			 */
			setStatus(satellite: android.location.GpsSatellite): void;
			/**
			 * Returns the PRN (pseudo-random number) for the satellite.
			 */
			public getPrn(): number;
			/**
			 * Returns the signal to noise ratio for the satellite.
			 */
			public getSnr(): number;
			/**
			 * Returns the elevation of the satellite in degrees. The elevation can vary between 0 and 90.
			 */
			public getElevation(): number;
			/**
			 * Returns the azimuth of the satellite in degrees. The azimuth can vary between 0 and 360.
			 */
			public getAzimuth(): number;
			/**
			 * Returns true if the GPS engine has ephemeris data for the satellite.
			 */
			public hasEphemeris(): boolean;
			/**
			 * Returns true if the GPS engine has almanac data for the satellite.
			 */
			public hasAlmanac(): boolean;
			/**
			 * Returns true if the satellite was used by the GPS engine when calculating the most recent GPS fix.
			 */
			public usedInFix(): boolean;
		}
		/**
		 * Unit tests for android.location.Location
		 */
		export class LocationTest {
			constructor();
			static class: java.lang.Class<android.location.LocationTest>;
			public testConvert_DegreesToDouble(): void;
			public testConvert_MinutesToDouble(): void;
			public testConvert_SecondsToDouble(): void;
			public testConvert_SecondsToDouble2(): void;
			public testConvert_CoordinateToDegrees(): void;
			public testConvert_CoordinateToDegrees2(): void;
			public testConvert_CoordinateToMinutes(): void;
			public testConvert_CoordinateToMinutes2(): void;
			public testConvert_CoordinateToSeconds(): void;
			public testBearingTo(): void;
			public testDistanceTo(): void;
			public testAltitude(): void;
			public testSpeed(): void;
			public testBearing(): void;
		}
		/**
		 * Used for receiving notifications from the LocationManager when the location has changed. These methods are called if the LocationListener has been registered with the location manager service using the LocationManager#requestLocationUpdates(String, long, float, LocationListener) method.
		 */
		export class LocationListener implements android.location.ILocationListener {
			constructor(implementation: android.location.ILocationListener);
			/**
			 * Called when the location has changed.
			 * @param location The new location, as a Location object.
			 */
			public onLocationChanged(location: android.location.Location): void;
			/**
			 * Called when the provider status changes. This method is called when a provider is unable to fetch a location or if the provider has recently become available after a period of unavailability.
			 * @param provider the name of the location provider associated with this
			 * @param status {@link LocationProvider#OUT_OF_SERVICE} if the
			 * @param extras an optional Bundle which will contain provider specific
			 */
			public onStatusChanged(provider: string, status: number, extras: android.os.Bundle): void;
			/**
			 * Called when the provider is enabled by the user.
			 * @param provider the name of the location provider associated with this
			 */
			public onProviderEnabled(provider: string): void;
			/**
			 * Called when the provider is disabled by the user. If requestLocationUpdates is called on an already disabled provider, this method is called immediately.
			 * @param provider the name of the location provider associated with this
			 */
			public onProviderDisabled(provider: string): void;
		}
		/**
		 * Used for receiving notifications from the LocationManager when the location has changed. These methods are called if the LocationListener has been registered with the location manager service using the LocationManager#requestLocationUpdates(String, long, float, LocationListener) method.
		 */
		interface ILocationListener {
			/**
			 * Called when the location has changed.
			 * @param location The new location, as a Location object.
			 */
			onLocationChanged(location: android.location.Location): void;
			/**
			 * Called when the provider status changes. This method is called when a provider is unable to fetch a location or if the provider has recently become available after a period of unavailability.
			 * @param provider the name of the location provider associated with this
			 * @param status {@link LocationProvider#OUT_OF_SERVICE} if the
			 * @param extras an optional Bundle which will contain provider specific
			 */
			onStatusChanged(provider: string, status: number, extras: android.os.Bundle): void;
			/**
			 * Called when the provider is enabled by the user.
			 * @param provider the name of the location provider associated with this
			 */
			onProviderEnabled(provider: string): void;
			/**
			 * Called when the provider is disabled by the user. If requestLocationUpdates is called on an already disabled provider, this method is called immediately.
			 * @param provider the name of the location provider associated with this
			 */
			onProviderDisabled(provider: string): void;
		}
		export class LocationManagerTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.location.LocationManagerTest>;
			public setUp(): void;
			public testGetBogusProvider(): void;
			public testGetNetworkProvider(): void;
			public testGetGpsProvider(): void;
			public testGetBestProviderEmptyCriteria(): void;
			public testGetBestProviderPowerCriteria(): void;
			public testGpsTracklog(): void;
			public testLocationConversions(): void;
		}
		/**
		 * A data class representing a geographic location.
		 */
		export class Location extends java.lang.Object implements android.os.IParcelable {
			/**
			 * Construct a new Location with a named provider.
			 * @param provider the name of the provider that generated this location
			 */
			constructor(provider: string);
			/**
			 * Construct a new Location object that is copied from an existing one.
			 */
			constructor(l: android.location.Location);
			/**
			 * Constant used to specify formatting of a latitude or longitude in the form "[+-]DDD.DDDDD where D indicates degrees.
			 */
			static FORMAT_DEGREES: number;
			/**
			 * Constant used to specify formatting of a latitude or longitude in the form "[+-]DDD:MM.MMMMM" where D indicates degrees and M indicates minutes of arc (1 minute = 1/60th of a degree).
			 */
			static FORMAT_MINUTES: number;
			/**
			 * Constant used to specify formatting of a latitude or longitude in the form "DDD:MM:SS.SSSSS" where D indicates degrees, M indicates minutes of arc, and S indicates seconds of arc (1 minute = 1/60th of a degree, 1 second = 1/3600th of a degree).
			 */
			static FORMAT_SECONDS: number;
			static CREATOR: android.os.Parcelable.ICreator<android.location.Location>;
			static class: java.lang.Class<android.location.Location>;
			/**
			 * Sets the contents of the location to the values from the given location.
			 */
			public set(l: android.location.Location): void;
			/**
			 * Clears the contents of the location.
			 */
			public reset(): void;
			/**
			 * Converts a coordinate to a String representation. The outputType may be one of FORMAT_DEGREES, FORMAT_MINUTES, or FORMAT_SECONDS. The coordinate must be a valid double between -180.0 and 180.0.
			 */
			public static convert(coordinate: number, outputType: number): string;
			/**
			 * Converts a String in one of the formats described by FORMAT_DEGREES, FORMAT_MINUTES, or FORMAT_SECONDS into a double.
			 */
			public static convert(coordinate: string): any;
			/**
			 * Computes the approximate distance in meters between two locations, and optionally the initial and final bearings of the shortest path between them. Distance and bearing are defined using the WGS84 ellipsoid.
			 * @param startLatitude the starting latitude
			 * @param startLongitude the starting longitude
			 * @param endLatitude the ending latitude
			 * @param endLongitude the ending longitude
			 * @param results an array of floats to hold the results
			 */
			public static distanceBetween(startLatitude: number, startLongitude: number, endLatitude: number, endLongitude: number, results: native.Array<number>): void;
			/**
			 * Returns the approximate distance in meters between this location and the given location. Distance is defined using the WGS84 ellipsoid.
			 * @param dest the destination location
			 */
			public distanceTo(dest: android.location.Location): number;
			/**
			 * Returns the approximate initial bearing in degrees East of true North when traveling along the shortest path between this location and the given location. The shortest path is defined using the WGS84 ellipsoid. Locations that are (nearly) antipodal may produce meaningless results.
			 * @param dest the destination location
			 */
			public bearingTo(dest: android.location.Location): number;
			/**
			 * Returns the name of the provider that generated this fix.
			 */
			public getProvider(): string;
			/**
			 * Sets the name of the provider that generated this fix.
			 */
			public setProvider(provider: string): void;
			/**
			 * Return the UTC time of this fix, in milliseconds since January 1, 1970.
			 */
			public getTime(): any;
			/**
			 * Set the UTC time of this fix, in milliseconds since January 1, 1970.
			 * @param time UTC time of this fix, in milliseconds since January 1, 1970
			 */
			public setTime(time: number): void;
			/**
			 * Return the time of this fix, in elapsed real-time since system boot.
			 */
			public getElapsedRealtimeNanos(): any;
			/**
			 * Set the time of this fix, in elapsed real-time since system boot.
			 * @param time elapsed real-time of fix, in nanoseconds since system boot.
			 */
			public setElapsedRealtimeNanos(time: number): void;
			/**
			 * Get the latitude, in degrees.
			 */
			public getLatitude(): any;
			/**
			 * Set the latitude, in degrees.
			 */
			public setLatitude(latitude: number): void;
			/**
			 * Get the longitude, in degrees.
			 */
			public getLongitude(): any;
			/**
			 * Set the longitude, in degrees.
			 */
			public setLongitude(longitude: number): void;
			/**
			 * True if this location has an altitude.
			 */
			public hasAltitude(): boolean;
			/**
			 * Get the altitude if available, in meters above sea level.
			 */
			public getAltitude(): any;
			/**
			 * Set the altitude, in meters above sea level.
			 */
			public setAltitude(altitude: number): void;
			/**
			 * Remove the altitude from this location.
			 */
			public removeAltitude(): void;
			/**
			 * True if this location has a speed.
			 */
			public hasSpeed(): boolean;
			/**
			 * Get the speed if it is available, in meters/second over ground.
			 */
			public getSpeed(): number;
			/**
			 * Set the speed, in meters/second over ground.
			 */
			public setSpeed(speed: number): void;
			/**
			 * Remove the speed from this location.
			 */
			public removeSpeed(): void;
			/**
			 * True if this location has a bearing.
			 */
			public hasBearing(): boolean;
			/**
			 * Get the bearing, in degrees.
			 */
			public getBearing(): number;
			/**
			 * Set the bearing, in degrees.
			 */
			public setBearing(bearing: number): void;
			/**
			 * Remove the bearing from this location.
			 */
			public removeBearing(): void;
			/**
			 * True if this location has an accuracy.
			 */
			public hasAccuracy(): boolean;
			/**
			 * Get the estimated accuracy of this location, in meters.
			 */
			public getAccuracy(): number;
			/**
			 * Set the estimated accuracy of this location, meters.
			 */
			public setAccuracy(accuracy: number): void;
			/**
			 * Remove the accuracy from this location.
			 */
			public removeAccuracy(): void;
			/**
			 * Returns additional provider-specific information about the location fix as a Bundle. The keys and values are determined by the provider. If no additional information is available, null is returned.
			 */
			public getExtras(): android.os.Bundle;
			/**
			 * Sets the extra information associated with this fix to the given Bundle.
			 */
			public setExtras(extras: android.os.Bundle): void;
			public toString(): string;
			public dump(pw: android.util.IPrinter, prefix: string): void;
			public describeContents(): number;
			public writeToParcel(parcel: android.os.Parcel, flags: number): void;
		}
	}
	export module accounts {
		/**
		 * Value type that represents an Account in the AccountManager. This object is Parcelable and also overrides #equals and #hashCode, making it suitable for use as the key of a java.util.Map
		 */
		export class Account extends java.lang.Object implements android.os.IParcelable {
			constructor(name: string, type: string);
			constructor(input: android.os.Parcel);
			name: string;
			type: string;
			static CREATOR: android.os.Parcelable.ICreator<android.accounts.Account>;
			static class: java.lang.Class<android.accounts.Account>;
			public equals(o: any): boolean;
			public hashCode(): number;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
			public toString(): string;
		}
		/**
		 * A <tt>AccountManagerFuture</tt> represents the result of an asynchronous AccountManager call. Methods are provided to check if the computation is complete, to wait for its completion, and to retrieve the result of the computation. The result can only be retrieved using method <tt>get</tt> when the computation has completed, blocking if necessary until it is ready. Cancellation is performed by the <tt>cancel</tt> method. Additional methods are provided to determine if the task completed normally or was cancelled. Once a computation has completed, the computation cannot be cancelled. If you would like to use a <tt>Future</tt> for the sake of cancellability but not provide a usable result, you can declare types of the form <tt>Future&lt;?&gt;</tt> and return <tt>null</tt> as a result of the underlying task.
		 */
		interface IAccountManagerFuture<V> {
			/**
			 * Attempts to cancel execution of this task. This attempt will fail if the task has already completed, has already been cancelled, or could not be cancelled for some other reason. If successful, and this task has not started when <tt>cancel</tt> is called, this task should never run. If the task has already started, then the <tt>mayInterruptIfRunning</tt> parameter determines whether the thread executing this task should be interrupted in an attempt to stop the task.
			 * @param mayInterruptIfRunning <tt>true</tt> if the thread executing this
			 */
			cancel(mayInterruptIfRunning: boolean): boolean;
			/**
			 * Returns <tt>true</tt> if this task was cancelled before it completed normally.
			 */
			isCancelled(): boolean;
			/**
			 * Returns <tt>true</tt> if this task completed.
			 */
			isDone(): boolean;
			/**
			 * Accessor for the future result the AccountManagerFuture represents. This call will block until the result is available. In order to check if the result is available without blocking, one may call #isDone() and #isCancelled(). If the request that generated this result fails or is canceled then an exception will be thrown rather than the call returning normally.
			 */
			getResult(): V;
			/**
			 * Accessor for the future result the AccountManagerFuture represents. This call will block until the result is available. In order to check if the result is available without blocking, one may call #isDone() and #isCancelled(). If the request that generated this result fails or is canceled then an exception will be thrown rather than the call returning normally. If a timeout is specified then the request will automatically be canceled if it does not complete in that amount of time.
			 * @param timeout the maximum time to wait
			 * @param unit the time unit of the timeout argument. This must not be null.
			 */
			getResult(timeout: number, unit: java.util.concurrent.TimeUnit): V;
		}
		export class AccountManagerCallback<V> implements android.accounts.IAccountManagerCallback<V> {
			constructor(implementation: android.accounts.IAccountManagerCallback<V>);
			public run(future: android.accounts.IAccountManagerFuture<V>): void;
		}
		/**
		 * Base class for implementing an Activity that is used to help implement an AbstractAccountAuthenticator. If the AbstractAccountAuthenticator needs to use an activity to handle the request then it can have the activity extend AccountAuthenticatorActivity. The AbstractAccountAuthenticator passes in the response to the intent using the following: <pre> intent.putExtra(AccountManager#KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response); </pre> The activity then sets the result that is to be handed to the response via #setAccountAuthenticatorResult(android.os.Bundle). This result will be sent as the result of the request when the activity finishes. If this is never set or if it is set to null then error AccountManager#ERROR_CODE_CANCELED will be called on the response.
		 */
		export class AccountAuthenticatorActivity extends android.app.Activity {
			constructor();
			static class: java.lang.Class<android.accounts.AccountAuthenticatorActivity>;
			/**
			 * Set the result that is to be sent as the result of the request that caused this Activity to be launched. If result is null or this method is never called then the request will be canceled.
			 * @param result this is returned as the result of the AbstractAccountAuthenticator request
			 */
			public setAccountAuthenticatorResult(result: android.os.Bundle): void;
			/**
			 * Retreives the AccountAuthenticatorResponse from either the intent of the icicle, if the icicle is non-zero.
			 * @param icicle the save instance data of this Activity, may be null
			 */
			protected onCreate(icicle: android.os.Bundle): void;
			/**
			 * Sends the result or a Constants.ERROR_CODE_CANCELED error if a result isn't present.
			 */
			public finish(): void;
		}
		interface IAccountManagerCallback<V> {
			run(future: android.accounts.IAccountManagerFuture<V>): void;
		}
		/**
		 * Abstract base class for creating AccountAuthenticators. In order to be an authenticator one must extend this class, provider implementations for the abstract methods and write a service that returns the result of #getIBinder() in the service's android.app.Service#onBind(android.content.Intent) when invoked with an intent with action AccountManager#ACTION_AUTHENTICATOR_INTENT. This service must specify the following intent filter and metadata tags in its AndroidManifest.xml file <pre> &lt;intent-filter&gt; &lt;action android:name="android.accounts.AccountAuthenticator" /&gt; &lt;/intent-filter&gt; &lt;meta-data android:name="android.accounts.AccountAuthenticator" android:resource=" /&gt; </pre> The <code>android:resource</code> attribute must point to a resource that looks like: <pre> &lt;account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="typeOfAuthenticator" android:icon=" android:smallIcon=" android:label=" android:accountPreferences=" /&gt; </pre> Replace the icons and labels with your own resources. The <code>android:accountType</code> attribute must be a string that uniquely identifies your authenticator and will be the same string that user will use when making calls on the AccountManager and it also corresponds to Account#type for your accounts. One user of the android:icon is the "Account & Sync" settings page and one user of the android:smallIcon is the Contact Application's tab panels.
		 */
		export class AbstractAccountAuthenticator extends java.lang.Object {
			constructor(context: android.content.Context);
			static class: java.lang.Class<android.accounts.AbstractAccountAuthenticator>;
			public getIBinder(): android.os.IIBinder;
			/**
			 * Returns a Bundle that contains the Intent of the activity that can be used to edit the properties. In order to indicate success the activity should call response.setResult() with a non-null Bundle.
			 * @param response used to set the result for the request. If the Constants.INTENT_KEY
			 * @param accountType the AccountType whose properties are to be edited.
			 */
			public editProperties(response: android.accounts.AccountAuthenticatorResponse, accountType: string): android.os.Bundle;
			/**
			 * Adds an account of the specified accountType.
			 * @param response to send the result back to the AccountManager, will never be null
			 * @param accountType the type of account to add, will never be null
			 * @param authTokenType the type of auth token to retrieve after adding the account, may be null
			 * @param requiredFeatures a String array of authenticator-specific features that the added
			 * @param options a Bundle of authenticator-specific options, may be null
			 */
			public addAccount(response: android.accounts.AccountAuthenticatorResponse, accountType: string, authTokenType: string, requiredFeatures: native.Array<string>, options: android.os.Bundle): android.os.Bundle;
			/**
			 * Checks that the user knows the credentials of an account.
			 * @param response to send the result back to the AccountManager, will never be null
			 * @param account the account whose credentials are to be checked, will never be null
			 * @param options a Bundle of authenticator-specific options, may be null
			 */
			public confirmCredentials(response: android.accounts.AccountAuthenticatorResponse, account: android.accounts.Account, options: android.os.Bundle): android.os.Bundle;
			/**
			 * Gets the authtoken for an account.
			 * @param response to send the result back to the AccountManager, will never be null
			 * @param account the account whose credentials are to be retrieved, will never be null
			 * @param authTokenType the type of auth token to retrieve, will never be null
			 * @param options a Bundle of authenticator-specific options, may be null
			 */
			public getAuthToken(response: android.accounts.AccountAuthenticatorResponse, account: android.accounts.Account, authTokenType: string, options: android.os.Bundle): android.os.Bundle;
			/**
			 * Ask the authenticator for a localized label for the given authTokenType.
			 * @param authTokenType the authTokenType whose label is to be returned, will never be null
			 */
			public getAuthTokenLabel(authTokenType: string): string;
			/**
			 * Update the locally stored credentials for an account.
			 * @param response to send the result back to the AccountManager, will never be null
			 * @param account the account whose credentials are to be updated, will never be null
			 * @param authTokenType the type of auth token to retrieve after updating the credentials,
			 * @param options a Bundle of authenticator-specific options, may be null
			 */
			public updateCredentials(response: android.accounts.AccountAuthenticatorResponse, account: android.accounts.Account, authTokenType: string, options: android.os.Bundle): android.os.Bundle;
			/**
			 * Checks if the account supports all the specified authenticator specific features.
			 * @param response to send the result back to the AccountManager, will never be null
			 * @param account the account to check, will never be null
			 * @param features an array of features to check, will never be null
			 */
			public hasFeatures(response: android.accounts.AccountAuthenticatorResponse, account: android.accounts.Account, features: native.Array<string>): android.os.Bundle;
			/**
			 * Checks if the removal of this account is allowed.
			 * @param response to send the result back to the AccountManager, will never be null
			 * @param account the account to check, will never be null
			 */
			public getAccountRemovalAllowed(response: android.accounts.AccountAuthenticatorResponse, account: android.accounts.Account): android.os.Bundle;
		}
		export module AbstractAccountAuthenticator {
			export class Transport {
				static class: java.lang.Class<android.accounts.AbstractAccountAuthenticator.Transport>;
			}
		}
		/**
		 * Object used to communicate responses back to the AccountManager
		 */
		export class AccountAuthenticatorResponse extends java.lang.Object implements android.os.IParcelable {
			constructor(parcel: android.os.Parcel);
			static CREATOR: android.os.Parcelable.ICreator<android.accounts.AccountAuthenticatorResponse>;
			static class: java.lang.Class<android.accounts.AccountAuthenticatorResponse>;
			public onResult(result: android.os.Bundle): void;
			public onRequestContinued(): void;
			public onError(errorCode: number, errorMessage: string): void;
			public describeContents(): number;
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		export class OperationCanceledException extends android.accounts.AccountsException {
			constructor();
			constructor(message: string);
			constructor(message: string, cause: java.lang.Throwable);
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<android.accounts.OperationCanceledException>;
		}
		export class AuthenticatorException extends android.accounts.AccountsException {
			constructor();
			constructor(message: string);
			constructor(message: string, cause: java.lang.Throwable);
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<android.accounts.AuthenticatorException>;
		}
		/**
		 * A <tt>AccountManagerFuture</tt> represents the result of an asynchronous AccountManager call. Methods are provided to check if the computation is complete, to wait for its completion, and to retrieve the result of the computation. The result can only be retrieved using method <tt>get</tt> when the computation has completed, blocking if necessary until it is ready. Cancellation is performed by the <tt>cancel</tt> method. Additional methods are provided to determine if the task completed normally or was cancelled. Once a computation has completed, the computation cannot be cancelled. If you would like to use a <tt>Future</tt> for the sake of cancellability but not provide a usable result, you can declare types of the form <tt>Future&lt;?&gt;</tt> and return <tt>null</tt> as a result of the underlying task.
		 */
		export class AccountManagerFuture<V> implements android.accounts.IAccountManagerFuture<V> {
			constructor(implementation: android.accounts.IAccountManagerFuture<V>);
			/**
			 * Attempts to cancel execution of this task. This attempt will fail if the task has already completed, has already been cancelled, or could not be cancelled for some other reason. If successful, and this task has not started when <tt>cancel</tt> is called, this task should never run. If the task has already started, then the <tt>mayInterruptIfRunning</tt> parameter determines whether the thread executing this task should be interrupted in an attempt to stop the task.
			 * @param mayInterruptIfRunning <tt>true</tt> if the thread executing this
			 */
			public cancel(mayInterruptIfRunning: boolean): boolean;
			/**
			 * Returns <tt>true</tt> if this task was cancelled before it completed normally.
			 */
			public isCancelled(): boolean;
			/**
			 * Returns <tt>true</tt> if this task completed.
			 */
			public isDone(): boolean;
			/**
			 * Accessor for the future result the AccountManagerFuture represents. This call will block until the result is available. In order to check if the result is available without blocking, one may call #isDone() and #isCancelled(). If the request that generated this result fails or is canceled then an exception will be thrown rather than the call returning normally.
			 */
			public getResult(): V;
			/**
			 * Accessor for the future result the AccountManagerFuture represents. This call will block until the result is available. In order to check if the result is available without blocking, one may call #isDone() and #isCancelled(). If the request that generated this result fails or is canceled then an exception will be thrown rather than the call returning normally. If a timeout is specified then the request will automatically be canceled if it does not complete in that amount of time.
			 * @param timeout the maximum time to wait
			 * @param unit the time unit of the timeout argument. This must not be null.
			 */
			public getResult(timeout: number, unit: java.util.concurrent.TimeUnit): V;
		}
		export class AccountsException extends java.lang.Exception {
			constructor();
			constructor(message: string);
			constructor(message: string, cause: java.lang.Throwable);
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<android.accounts.AccountsException>;
		}
		export class NetworkErrorException extends android.accounts.AccountsException {
			constructor();
			constructor(message: string);
			constructor(message: string, cause: java.lang.Throwable);
			constructor(cause: java.lang.Throwable);
			static class: java.lang.Class<android.accounts.NetworkErrorException>;
		}
		/**
		 * A Parcelable value type that contains information about an account authenticator.
		 */
		export class AuthenticatorDescription extends java.lang.Object implements android.os.IParcelable {
			/**
			 * A constructor for a full AuthenticatorDescription
			 */
			constructor(type: string, packageName: string, labelId: number, iconId: number, smallIconId: number, prefId: number, customTokens: boolean);
			constructor(type: string, packageName: string, labelId: number, iconId: number, smallIconId: number, prefId: number);
			/**
			 * The string that uniquely identifies an authenticator
			 */
			type: string;
			/**
			 * A resource id of a label for the authenticator that is suitable for displaying
			 */
			labelId: number;
			/**
			 * A resource id of a icon for the authenticator
			 */
			iconId: number;
			/**
			 * A resource id of a smaller icon for the authenticator
			 */
			smallIconId: number;
			/**
			 * A resource id for a hierarchy of PreferenceScreen to be added to the settings page for the account. See AbstractAccountAuthenticator for an example.
			 */
			accountPreferencesId: number;
			/**
			 * The package name that can be used to lookup the resources from above.
			 */
			packageName: string;
			/**
			 * Authenticator handles its own token caching and permission screen
			 */
			customTokens: boolean;
			/**
			 * Used to create the object from a parcel.
			 */
			static CREATOR: android.os.Parcelable.ICreator<android.accounts.AuthenticatorDescription>;
			static class: java.lang.Class<android.accounts.AuthenticatorDescription>;
			/**
			 * A factory method for creating an AuthenticatorDescription that can be used as a key to identify the authenticator by its type.
			 */
			public static newKey(type: string): android.accounts.AuthenticatorDescription;
			/**
			 * 
			 */
			public describeContents(): number;
			/**
			 * Returns the hashcode of the type only.
			 */
			public hashCode(): number;
			/**
			 * Compares the type only, suitable for key comparisons.
			 */
			public equals(o: any): boolean;
			public toString(): string;
			/**
			 * 
			 */
			public writeToParcel(dest: android.os.Parcel, flags: number): void;
		}
		/**
		 * An interface that contains the callback used by the AccountManager
		 */
		export class OnAccountsUpdateListener implements android.accounts.IOnAccountsUpdateListener {
			constructor(implementation: android.accounts.IOnAccountsUpdateListener);
			/**
			 * This invoked when the AccountManager starts up and whenever the account set changes.
			 * @param accounts the current accounts
			 */
			public onAccountsUpdated(accounts: native.Array<android.accounts.Account>): void;
		}
		export class AccountManagerServiceTest extends android.test.AndroidTestCase {
			constructor();
			static class: java.lang.Class<android.accounts.AccountManagerServiceTest>;
			AccountSorter: {
	new (): android.accounts.AccountManagerServiceTest.AccountSorter;
};
			protected setUp(): void;
			public testCheckAddAccount(): void;
			public testPasswords(): void;
			public testUserdata(): void;
			public testAuthtokens(): void;
		}
		export module AccountManagerServiceTest {
			export class MockAccountAuthenticatorCache extends java.lang.Object {
				constructor();
				static class: java.lang.Class<android.accounts.AccountManagerServiceTest.MockAccountAuthenticatorCache>;
				public dump(fd: java.io.FileDescriptor, fout: java.io.PrintWriter, args: native.Array<string>, userId: number): void;
				public invalidateCache(userId: number): void;
			}
			export class MyMockPackageManager extends android.test.mock.MockPackageManager {
				constructor();
				static class: java.lang.Class<android.accounts.AccountManagerServiceTest.MyMockPackageManager>;
				public checkSignatures(uid1: number, uid2: number): number;
				checkSignatures(pkg1: string, pkg2: string): number;
			}
			export class AccountSorter extends java.lang.Object {
				static class: java.lang.Class<android.accounts.AccountManagerServiceTest.AccountSorter>;
				public compare(object1: android.accounts.Account, object2: android.accounts.Account): number;
			}
			export class MyAccountManagerService {
				static class: java.lang.Class<android.accounts.AccountManagerServiceTest.MyAccountManagerService>;
				protected installNotification(notificationId: number, n: android.app.Notification, user: android.os.UserHandle): void;
				protected cancelNotification(id: number, user: android.os.UserHandle): void;
			}
			export class MyMockContext extends android.test.mock.MockContext {
				constructor();
				static class: java.lang.Class<android.accounts.AccountManagerServiceTest.MyMockContext>;
				public checkCallingOrSelfPermission(permission: string): number;
			}
		}
		/**
		 * This class provides access to a centralized registry of the user's online accounts. The user enters credentials (username and password) once per account, granting applications access to online resources with "one-click" approval.
		 */
		export class AccountManager extends java.lang.Object {
			static ERROR_CODE_REMOTE_EXCEPTION: number;
			static ERROR_CODE_NETWORK_ERROR: number;
			static ERROR_CODE_CANCELED: number;
			static ERROR_CODE_INVALID_RESPONSE: number;
			static ERROR_CODE_UNSUPPORTED_OPERATION: number;
			static ERROR_CODE_BAD_ARGUMENTS: number;
			static ERROR_CODE_BAD_REQUEST: number;
			/**
			 * Bundle key used for the String account name in results from methods which return information about a particular account.
			 */
			static KEY_ACCOUNT_NAME: string;
			/**
			 * Bundle key used for the String account type in results from methods which return information about a particular account.
			 */
			static KEY_ACCOUNT_TYPE: string;
			/**
			 * Bundle key used for the auth token value in results from #getAuthToken and friends.
			 */
			static KEY_AUTHTOKEN: string;
			/**
			 * Bundle key used for an Intent in results from methods that may require the caller to interact with the user. The Intent can be used to start the corresponding user interface activity.
			 */
			static KEY_INTENT: string;
			/**
			 * Bundle key used to supply the password directly in options to #confirmCredentials, rather than prompting the user with the standard password prompt.
			 */
			static KEY_PASSWORD: string;
			static KEY_ACCOUNTS: string;
			static KEY_ACCOUNT_AUTHENTICATOR_RESPONSE: string;
			static KEY_ACCOUNT_MANAGER_RESPONSE: string;
			static KEY_AUTHENTICATOR_TYPES: string;
			static KEY_AUTH_FAILED_MESSAGE: string;
			static KEY_AUTH_TOKEN_LABEL: string;
			static KEY_BOOLEAN_RESULT: string;
			static KEY_ERROR_CODE: string;
			static KEY_ERROR_MESSAGE: string;
			static KEY_USERDATA: string;
			/**
			 * Authenticators using 'customTokens' option will also get the UID of the caller
			 */
			static KEY_CALLER_UID: string;
			static KEY_CALLER_PID: string;
			/**
			 * The Android package of the caller will be set in the options bundle by the AccountManager and will be passed to the AccountManagerService and to the AccountAuthenticators. The uid of the caller will be known by the AccountManagerService as well as the AccountAuthenticators so they will be able to verify that the package is consistent with the uid (a uid might be shared by many packages).
			 */
			static KEY_ANDROID_PACKAGE_NAME: string;
			static ACTION_AUTHENTICATOR_INTENT: string;
			static AUTHENTICATOR_META_DATA_NAME: string;
			static AUTHENTICATOR_ATTRIBUTES_NAME: string;
			/**
			 * Action sent as a broadcast Intent by the AccountsService when accounts are added, accounts are removed, or an account's credentials (saved password, etc) are changed.
			 */
			static LOGIN_ACCOUNTS_CHANGED_ACTION: string;
			static class: java.lang.Class<android.accounts.AccountManager>;
			AmsTask: {
	new (activity: android.app.Activity, handler: android.os.Handler, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>): android.accounts.AccountManager.AmsTask;
};
			/**
			 * Gets an AccountManager instance associated with a Context. The Context will be used as long as the AccountManager is active, so make sure to use a Context whose lifetime is commensurate with any listeners registered to #addOnAccountsUpdatedListener or similar methods.
			 * @param context The {@link Context} to use when necessary
			 */
			public static get(context: android.content.Context): android.accounts.AccountManager;
			/**
			 * Gets the saved password associated with the account. This is intended for authenticators and related code; applications should get an auth token instead.
			 * @param account The account to query for a password
			 */
			public getPassword(account: android.accounts.Account): string;
			/**
			 * Gets the user data named by "key" associated with the account. This is intended for authenticators and related code to store arbitrary metadata along with accounts. The meaning of the keys and values is up to the authenticator for the account.
			 * @param account The account to query for user data
			 * @param key 
			 */
			public getUserData(account: android.accounts.Account, key: string): string;
			/**
			 * Lists the currently registered authenticators.
			 */
			public getAuthenticatorTypes(): native.Array<android.accounts.AuthenticatorDescription>;
			/**
			 * Lists all accounts of any type registered on the device. Equivalent to getAccountsByType(null).
			 */
			public getAccounts(): native.Array<android.accounts.Account>;
			/**
			 * Lists all accounts of a particular type. The account type is a string token corresponding to the authenticator and useful domain of the account. For example, there are types corresponding to Google and Facebook. The exact string token to use will be published somewhere associated with the authenticator in question.
			 * @param type The type of accounts to return, null to retrieve all accounts
			 */
			public getAccountsByType(type: string): native.Array<android.accounts.Account>;
			/**
			 * Finds out whether a particular account has all the specified features. Account features are authenticator-specific string tokens identifying boolean account properties. For example, features are used to tell whether Google accounts have a particular service (such as Google Calendar or Google Talk) enabled. The feature names and their meanings are published somewhere associated with the authenticator in question.
			 * @param account The {@link Account} to test
			 * @param features An array of the account features to check
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public hasFeatures(account: android.accounts.Account, features: native.Array<string>, callback: android.accounts.IAccountManagerCallback<boolean>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<boolean>;
			/**
			 * Lists all accounts of a type which have certain features. The account type identifies the authenticator (see #getAccountsByType). Account features are authenticator-specific string tokens identifying boolean account properties (see #hasFeatures).
			 * @param type The type of accounts to return, must not be null
			 * @param features An array of the account features to require,
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public getAccountsByTypeAndFeatures(type: string, features: native.Array<string>, callback: android.accounts.IAccountManagerCallback<native.Array<android.accounts.Account>>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<native.Array<android.accounts.Account>>;
			/**
			 * Adds an account directly to the AccountManager. Normally used by sign-up wizards associated with authenticators, not directly by applications.
			 * @param account The {@link Account} to add
			 * @param password The password to associate with the account, null for none
			 * @param userdata String values to use for the account's userdata, null for none
			 */
			public addAccountExplicitly(account: android.accounts.Account, password: string, userdata: android.os.Bundle): boolean;
			/**
			 * Removes an account from the AccountManager. Does nothing if the account does not exist. Does not delete the account from the server. The authenticator may have its own policies preventing account deletion, in which case the account will not be deleted.
			 * @param account The {@link Account} to remove
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public removeAccount(account: android.accounts.Account, callback: android.accounts.IAccountManagerCallback<boolean>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<boolean>;
			/**
			 * Removes an auth token from the AccountManager's cache. Does nothing if the auth token is not currently in the cache. Applications must call this method when the auth token is found to have expired or otherwise become invalid for authenticating requests. The AccountManager does not validate or expire cached auth tokens otherwise.
			 * @param accountType The account type of the auth token to invalidate, must not be null
			 * @param authToken The auth token to invalidate, may be null
			 */
			public invalidateAuthToken(accountType: string, authToken: string): void;
			/**
			 * Gets an auth token from the AccountManager's cache. If no auth token is cached for this account, null will be returned -- a new auth token will not be generated, and the server will not be contacted. Intended for use by the authenticator, not directly by applications.
			 * @param account The account to fetch an auth token for
			 * @param authTokenType The type of auth token to fetch, see {#getAuthToken}
			 */
			public peekAuthToken(account: android.accounts.Account, authTokenType: string): string;
			/**
			 * Sets or forgets a saved password. This modifies the local copy of the password used to automatically authenticate the user; it does not change the user's account password on the server. Intended for use by the authenticator, not directly by applications.
			 * @param account The account to set a password for
			 * @param password The password to set, null to clear the password
			 */
			public setPassword(account: android.accounts.Account, password: string): void;
			/**
			 * Forgets a saved password. This erases the local copy of the password; it does not change the user's account password on the server. Has the same effect as setPassword(account, null) but requires fewer permissions, and may be used by applications or management interfaces to "sign out" from an account.
			 * @param account The account whose password to clear
			 */
			public clearPassword(account: android.accounts.Account): void;
			/**
			 * Sets one userdata key for an account. Intended by use for the authenticator to stash state for itself, not directly by applications. The meaning of the keys and values is up to the authenticator.
			 * @param account The account to set the userdata for
			 * @param key The userdata key to set. Must not be null
			 * @param value The value to set, null to clear this userdata key
			 */
			public setUserData(account: android.accounts.Account, key: string, value: string): void;
			/**
			 * Adds an auth token to the AccountManager cache for an account. If the account does not exist then this call has no effect. Replaces any previous auth token for this account and auth token type. Intended for use by the authenticator, not directly by applications.
			 * @param account The account to set an auth token for
			 * @param authTokenType The type of the auth token, see {#getAuthToken}
			 * @param authToken The auth token to add to the cache
			 */
			public setAuthToken(account: android.accounts.Account, authTokenType: string, authToken: string): void;
			/**
			 * This convenience helper synchronously gets an auth token with #getAuthToken(Account, String, boolean, AccountManagerCallback, Handler).
			 * @param account The account to fetch an auth token for
			 * @param authTokenType The auth token type, see {#link getAuthToken}
			 * @param notifyAuthFailure If true, display a notification and return null
			 */
			public blockingGetAuthToken(account: android.accounts.Account, authTokenType: string, notifyAuthFailure: boolean): string;
			/**
			 * Gets an auth token of the specified type for a particular account, prompting the user for credentials if necessary. This method is intended for applications running in the foreground where it makes sense to ask the user directly for a password.
			 * @param account The account to fetch an auth token for
			 * @param authTokenType The auth token type, an authenticator-dependent
			 * @param options Authenticator-specific options for the request,
			 * @param activity The {@link Activity} context to use for launching a new
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public getAuthToken(account: android.accounts.Account, authTokenType: string, options: android.os.Bundle, activity: android.app.Activity, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * Gets an auth token of the specified type for a particular account, optionally raising a notification if the user must enter credentials. This method is intended for background tasks and services where the user should not be immediately interrupted with a password prompt.
			 * @param account The account to fetch an auth token for
			 * @param authTokenType The auth token type, an authenticator-dependent
			 * @param notifyAuthFailure True to add a notification to prompt the
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public getAuthToken(account: android.accounts.Account, authTokenType: string, notifyAuthFailure: boolean, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * Gets an auth token of the specified type for a particular account, optionally raising a notification if the user must enter credentials. This method is intended for background tasks and services where the user should not be immediately interrupted with a password prompt.
			 * @param account The account to fetch an auth token for
			 * @param authTokenType The auth token type, an authenticator-dependent
			 * @param options Authenticator-specific options for the request,
			 * @param notifyAuthFailure True to add a notification to prompt the
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public getAuthToken(account: android.accounts.Account, authTokenType: string, options: android.os.Bundle, notifyAuthFailure: boolean, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * Asks the user to add an account of a specified type. The authenticator for this account type processes this request with the appropriate user interface. If the user does elect to create a new account, the account name is returned.
			 * @param accountType The type of account to add; must not be null
			 * @param authTokenType The type of auth token (see {@link #getAuthToken})
			 * @param requiredFeatures The features (see {@link #hasFeatures}) this
			 * @param addAccountOptions Authenticator-specific options for the request,
			 * @param activity The {@link Activity} context to use for launching a new
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public addAccount(accountType: string, authTokenType: string, requiredFeatures: native.Array<string>, addAccountOptions: android.os.Bundle, activity: android.app.Activity, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * Confirms that the user knows the password for an account to make extra sure they are the owner of the account. The user-entered password can be supplied directly, otherwise the authenticator for this account type prompts the user with the appropriate interface. This method is intended for applications which want extra assurance; for example, the phone lock screen uses this to let the user unlock the phone with an account password if they forget the lock pattern.
			 * @param account The account to confirm password knowledge for
			 * @param options Authenticator-specific options for the request;
			 * @param activity The {@link Activity} context to use for launching a new
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public confirmCredentials(account: android.accounts.Account, options: android.os.Bundle, activity: android.app.Activity, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * Asks the user to enter a new password for an account, updating the saved credentials for the account. Normally this happens automatically when the server rejects credentials during an auth token fetch, but this can be invoked directly to ensure we have the correct credentials stored.
			 * @param account The account to update credentials for
			 * @param authTokenType The credentials entered must allow an auth token
			 * @param options Authenticator-specific options for the request;
			 * @param activity The {@link Activity} context to use for launching a new
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public updateCredentials(account: android.accounts.Account, authTokenType: string, options: android.os.Bundle, activity: android.app.Activity, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * Offers the user an opportunity to change an authenticator's settings. These properties are for the authenticator in general, not a particular account. Not all authenticators support this method.
			 * @param accountType The account type associated with the authenticator
			 * @param activity The {@link Activity} context to use for launching a new
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public editProperties(accountType: string, activity: android.app.Activity, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * This convenience helper combines the functionality of #getAccountsByTypeAndFeatures, #getAuthToken, and #addAccount.
			 * @param accountType The account type required
			 * @param authTokenType The desired auth token type
			 * @param features Required features for the account
			 * @param activity The {@link Activity} context to use for launching new
			 * @param addAccountOptions Authenticator-specific options to use for
			 * @param getAuthTokenOptions Authenticator-specific options to use for
			 * @param callback Callback to invoke when the request completes,
			 * @param handler {@link Handler} identifying the callback thread,
			 */
			public getAuthTokenByFeatures(accountType: string, authTokenType: string, features: native.Array<string>, activity: android.app.Activity, addAccountOptions: android.os.Bundle, getAuthTokenOptions: android.os.Bundle, callback: android.accounts.IAccountManagerCallback<android.os.Bundle>, handler: android.os.Handler): android.accounts.IAccountManagerFuture<android.os.Bundle>;
			/**
			 * Returns an intent to an Activity that prompts the user to choose from a list of accounts. The caller will then typically start the activity by calling <code>startActivityWithResult(intent, ...);</code>.
			 * @param selectedAccount if specified, indicates that the {@link Account} is the currently
			 * @param allowableAccounts an optional {@link ArrayList} of accounts that are allowed to be
			 * @param allowableAccountTypes an optional string array of account types. These are used
			 * @param alwaysPromptForAccount if set the account chooser screen is always shown, otherwise
			 * @param descriptionOverrideText if non-null this string is used as the description in the
			 * @param addAccountAuthTokenType this string is passed as the {@link #addAccount}
			 * @param addAccountRequiredFeatures this string array is passed as the {@link #addAccount}
			 * @param addAccountOptions This {@link Bundle} is passed as the {@link #addAccount} options
			 */
			public static newChooseAccountIntent(selectedAccount: android.accounts.Account, allowableAccounts: java.util.ArrayList<android.accounts.Account>, allowableAccountTypes: native.Array<string>, alwaysPromptForAccount: boolean, descriptionOverrideText: string, addAccountAuthTokenType: string, addAccountRequiredFeatures: native.Array<string>, addAccountOptions: android.os.Bundle): android.content.Intent;
			/**
			 * Adds an OnAccountsUpdateListener to this instance of the AccountManager. This listener will be notified whenever the list of accounts on the device changes.
			 * @param listener The listener to send notifications to
			 * @param handler {@link Handler} identifying the thread to use
			 * @param updateImmediately If true, the listener will be invoked
			 */
			public addOnAccountsUpdatedListener(listener: android.accounts.IOnAccountsUpdateListener, handler: android.os.Handler, updateImmediately: boolean): void;
			/**
			 * Removes an OnAccountsUpdateListener previously registered with #addOnAccountsUpdatedListener. The listener will no longer receive notifications of account changes.
			 * @param listener The previously added listener to remove
			 */
			public removeOnAccountsUpdatedListener(listener: android.accounts.IOnAccountsUpdateListener): void;
		}
		export module AccountManager {
			export class GetAuthTokenByTypeAndFeaturesTask extends android.accounts.AccountManager.AmsTask {
				static class: java.lang.Class<android.accounts.AccountManager.GetAuthTokenByTypeAndFeaturesTask>;
				public doWork(): void;
				public run(future: android.accounts.IAccountManagerFuture<android.os.Bundle>): void;
				run(): void;
			}
			export class Future2Task<T> extends android.accounts.AccountManager.BaseFutureTask<T> {
				static class: java.lang.Class<android.accounts.AccountManager.Future2Task<any>>;
				protected done(): void;
				public start(): android.accounts.AccountManager.Future2Task<T>;
				public getResult(): T;
				public getResult(timeout: number, unit: java.util.concurrent.TimeUnit): T;
			}
			export class AmsTask extends java.util.concurrent.FutureTask<android.os.Bundle> {
				static class: java.lang.Class<android.accounts.AccountManager.AmsTask>;
				public start(): android.accounts.IAccountManagerFuture<android.os.Bundle>;
				protected set(bundle: android.os.Bundle): void;
				public doWork(): void;
				public getResult(): android.os.Bundle;
				public getResult(timeout: number, unit: java.util.concurrent.TimeUnit): android.os.Bundle;
				protected done(): void;
			}
			export module AmsTask {
				/**
				 * Handles the responses from the AccountManager
				 */
				export class Response {
					static class: java.lang.Class<android.accounts.AccountManager.AmsTask.Response>;
					public onResult(bundle: android.os.Bundle): void;
					public onError(code: number, message: string): void;
				}
			}
			export class BaseFutureTask<T> extends java.util.concurrent.FutureTask<T> {
				static class: java.lang.Class<android.accounts.AccountManager.BaseFutureTask<any>>;
				public doWork(): void;
				public bundleToResult(bundle: android.os.Bundle): T;
				protected postRunnableToHandler(runnable: java.lang.IRunnable): void;
				protected startTask(): void;
			}
			export module BaseFutureTask {
				export class Response {
					static class: java.lang.Class<android.accounts.AccountManager.BaseFutureTask.Response>;
					public onResult(bundle: android.os.Bundle): void;
					public onError(code: number, message: string): void;
				}
			}
		}
		/**
		 * An interface that contains the callback used by the AccountManager
		 */
		interface IOnAccountsUpdateListener {
			/**
			 * This invoked when the AccountManager starts up and whenever the account set changes.
			 * @param accounts the current accounts
			 */
			onAccountsUpdated(accounts: native.Array<android.accounts.Account>): void;
		}
	}
	export module support {
		export module v7 {
			export module app {
				/**
				 * Implemented this in order for AppCompat to be able to callback in certain situations.
				 */
				export class AppCompatCallback implements android.support.v7.app.IAppCompatCallback {
					constructor(implementation: android.support.v7.app.IAppCompatCallback);
					/**
					 * Called when a support action mode has been started.
					 * @param mode The new action mode.
					 */
					public onSupportActionModeStarted(mode: android.support.v7.view.ActionMode): void;
					/**
					 * Called when a support action mode has finished.
					 * @param mode The action mode that just finished.
					 */
					public onSupportActionModeFinished(mode: android.support.v7.view.ActionMode): void;
				}
				export class AppCompatDelegateImplBase extends android.support.v7.app.AppCompatDelegate {
					static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplBase>;
					createSupportActionBar(): android.support.v7.app.ActionBar;
					public getSupportActionBar(): android.support.v7.app.ActionBar;
					peekSupportActionBar(): android.support.v7.app.ActionBar;
					setSupportActionBar(actionBar: android.support.v7.app.ActionBar): void;
					public getMenuInflater(): android.view.MenuInflater;
					public onCreate(savedInstanceState: android.os.Bundle): void;
					onPanelClosed(featureId: number, menu: android.view.IMenu): boolean;
					onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
					dispatchKeyEvent(event: android.view.KeyEvent): boolean;
					onKeyShortcut(keyCode: number, event: android.view.KeyEvent): boolean;
					public getDrawerToggleDelegate(): android.support.v7.app.ActionBarDrawerToggle.IDelegate;
					getActionBarThemedContext(): android.content.Context;
					startSupportActionModeFromWindow(callback: android.support.v7.view.ActionMode.ICallback): android.support.v7.view.ActionMode;
					public onDestroy(): void;
					isDestroyed(): boolean;
					getWindowCallback(): android.view.Window.ICallback;
					public setTitle(title: string): void;
					onTitleChanged(title: string): void;
					getTitle(): string;
					/**
					 * Set a Toolbar to act as the ActionBar for this delegate.
					 * @param toolbar Toolbar to set as the Activity's action bar
					 */
					setSupportActionBar(toolbar: android.support.v7.widget.Toolbar): void;
				}
				export module AppCompatDelegateImplBase {
					export class ActionBarDrawableToggleImpl extends java.lang.Object implements android.support.v7.app.ActionBarDrawerToggle.IDelegate {
						static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplBase.ActionBarDrawableToggleImpl>;
						public getThemeUpIndicator(): android.graphics.drawable.Drawable;
						public getActionBarThemedContext(): android.content.Context;
						public isNavigationVisible(): boolean;
						public setActionBarUpIndicator(upDrawable: android.graphics.drawable.Drawable, contentDescRes: number): void;
						public setActionBarDescription(contentDescRes: number): void;
					}
					export class AppCompatWindowCallback extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplBase.AppCompatWindowCallback>;
						public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
						public onCreatePanelMenu(featureId: number, menu: android.view.IMenu): boolean;
						public onPreparePanel(featureId: number, view: android.view.View, menu: android.view.IMenu): boolean;
						public onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
						public dispatchKeyShortcutEvent(event: android.view.KeyEvent): boolean;
						public onContentChanged(): void;
						public onPanelClosed(featureId: number, menu: android.view.IMenu): void;
					}
				}
				/**
				 * This class provides a handy way to tie together the functionality of android.support.v4.widget.DrawerLayout and the framework <code>ActionBar</code> to implement the recommended design for navigation drawers.
				 */
				export class ActionBarDrawerToggle extends java.lang.Object {
					static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggle>;
					/**
					 * Synchronize the state of the drawer indicator/affordance with the linked DrawerLayout.
					 */
					public syncState(): void;
					/**
					 * This method should always be called by your <code>Activity</code>'s Activity#onConfigurationChanged(android.content.res.Configuration) onConfigurationChanged method.
					 * @param newConfig The new configuration
					 */
					public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
					/**
					 * This method should be called by your <code>Activity</code>'s Activity#onOptionsItemSelected(android.view.MenuItem) onOptionsItemSelected method. If it returns true, your <code>onOptionsItemSelected</code> method should return true and skip further processing.
					 * @param item the MenuItem instance representing the selected menu item
					 */
					public onOptionsItemSelected(item: android.view.IMenuItem): boolean;
					/**
					 * Set the up indicator to display when the drawer indicator is not enabled.
					 * @param indicator A drawable to use for the up indicator, or null to use
					 */
					public setHomeAsUpIndicator(indicator: android.graphics.drawable.Drawable): void;
					/**
					 * Set the up indicator to display when the drawer indicator is not enabled.
					 * @param resId Resource ID of a drawable to use for the up indicator, or 0
					 */
					public setHomeAsUpIndicator(resId: number): void;
					public isDrawerIndicatorEnabled(): boolean;
					/**
					 * Enable or disable the drawer indicator. The indicator defaults to enabled.
					 * @param enable true to enable, false to disable
					 */
					public setDrawerIndicatorEnabled(enable: boolean): void;
					/**
					 * DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.
					 * @param drawerView The child view that was moved
					 * @param slideOffset The new offset of this drawer within its range, from 0-1
					 */
					public onDrawerSlide(drawerView: android.view.View, slideOffset: number): void;
					/**
					 * DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.
					 * @param drawerView Drawer view that is now open
					 */
					public onDrawerOpened(drawerView: android.view.View): void;
					/**
					 * DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.
					 * @param drawerView Drawer view that is now closed
					 */
					public onDrawerClosed(drawerView: android.view.View): void;
					/**
					 * DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.
					 * @param newState The new drawer motion state
					 */
					public onDrawerStateChanged(newState: number): void;
					/**
					 * Returns the fallback listener for Navigation icon click events.
					 */
					public getToolbarNavigationClickListener(): android.view.View.IOnClickListener;
					/**
					 * When DrawerToggle is constructed with a Toolbar, it sets the click listener on the Navigation icon. If you want to listen for clicks on the Navigation icon when DrawerToggle is disabled (#setDrawerIndicatorEnabled(boolean), you should call this method with your listener and DrawerToggle will forward click events to that listener when drawer indicator is disabled.
					 */
					public setToolbarNavigationClickListener(onToolbarNavigationClickListener: android.view.View.IOnClickListener): void;
					setActionBarUpIndicator(upDrawable: android.graphics.drawable.Drawable, contentDescRes: number): void;
					setActionBarDescription(contentDescRes: number): void;
					getThemeUpIndicator(): android.graphics.drawable.Drawable;
				}
				export module ActionBarDrawerToggle {
					/**
					 * Delegate if SDK version is between honeycomb and JBMR2
					 */
					export class HoneycombDelegate extends java.lang.Object implements android.support.v7.app.ActionBarDrawerToggle.IDelegate {
						static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggle.HoneycombDelegate>;
						public getThemeUpIndicator(): android.graphics.drawable.Drawable;
						public getActionBarThemedContext(): android.content.Context;
						public isNavigationVisible(): boolean;
						public setActionBarUpIndicator(themeImage: android.graphics.drawable.Drawable, contentDescRes: number): void;
						public setActionBarDescription(contentDescRes: number): void;
					}
					/**
					 * Fallback delegate
					 */
					export class DummyDelegate extends java.lang.Object implements android.support.v7.app.ActionBarDrawerToggle.IDelegate {
						static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggle.DummyDelegate>;
						public setActionBarUpIndicator(upDrawable: android.graphics.drawable.Drawable, contentDescRes: number): void;
						public setActionBarDescription(contentDescRes: number): void;
						public getThemeUpIndicator(): android.graphics.drawable.Drawable;
						public getActionBarThemedContext(): android.content.Context;
						public isNavigationVisible(): boolean;
					}
					export class Delegate implements android.support.v7.app.ActionBarDrawerToggle.IDelegate {
						constructor(implementation: android.support.v7.app.ActionBarDrawerToggle.IDelegate);
						/**
						 * Set the Action Bar's up indicator drawable and content description.
						 * @param upDrawable - Drawable to set as up indicator
						 * @param contentDescRes - Content description to set
						 */
						public setActionBarUpIndicator(upDrawable: android.graphics.drawable.Drawable, contentDescRes: number): void;
						/**
						 * Set the Action Bar's up indicator content description.
						 * @param contentDescRes - Content description to set
						 */
						public setActionBarDescription(contentDescRes: number): void;
						/**
						 * Returns the drawable to be set as up button when DrawerToggle is disabled
						 */
						public getThemeUpIndicator(): android.graphics.drawable.Drawable;
						/**
						 * Returns the context of ActionBar
						 */
						public getActionBarThemedContext(): android.content.Context;
						/**
						 * Returns whether navigation icon is visible or not. Used to print warning messages in case developer forgets to set displayHomeAsUp to true
						 */
						public isNavigationVisible(): boolean;
					}
					/**
					 * Allows an implementing Activity to return an ActionBarDrawerToggle.Delegate to use with ActionBarDrawerToggle.
					 */
					interface IDelegateProvider {
						getDrawerToggleDelegate(): android.support.v7.app.ActionBarDrawerToggle.IDelegate;
					}
					/**
					 * Interface for toggle drawables. Can be public in the future
					 */
					interface IDrawerToggle {
						setPosition(position: number): void;
						getPosition(): number;
					}
					/**
					 * Delegate if SDK version is JB MR2 or newer
					 */
					export class JellybeanMr2Delegate extends java.lang.Object implements android.support.v7.app.ActionBarDrawerToggle.IDelegate {
						static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggle.JellybeanMr2Delegate>;
						public getThemeUpIndicator(): android.graphics.drawable.Drawable;
						public getActionBarThemedContext(): android.content.Context;
						public isNavigationVisible(): boolean;
						public setActionBarUpIndicator(drawable: android.graphics.drawable.Drawable, contentDescRes: number): void;
						public setActionBarDescription(contentDescRes: number): void;
					}
					export class DrawerArrowDrawableToggle extends android.support.v7.app.DrawerArrowDrawable implements android.support.v7.app.ActionBarDrawerToggle.IDrawerToggle {
						constructor(activity: android.app.Activity, themedContext: android.content.Context);
						static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggle.DrawerArrowDrawableToggle>;
						public setPosition(position: number): void;
						isLayoutRtl(): boolean;
						public getPosition(): number;
					}
					interface IDelegate {
						/**
						 * Set the Action Bar's up indicator drawable and content description.
						 * @param upDrawable - Drawable to set as up indicator
						 * @param contentDescRes - Content description to set
						 */
						setActionBarUpIndicator(upDrawable: android.graphics.drawable.Drawable, contentDescRes: number): void;
						/**
						 * Set the Action Bar's up indicator content description.
						 * @param contentDescRes - Content description to set
						 */
						setActionBarDescription(contentDescRes: number): void;
						/**
						 * Returns the drawable to be set as up button when DrawerToggle is disabled
						 */
						getThemeUpIndicator(): android.graphics.drawable.Drawable;
						/**
						 * Returns the context of ActionBar
						 */
						getActionBarThemedContext(): android.content.Context;
						/**
						 * Returns whether navigation icon is visible or not. Used to print warning messages in case developer forgets to set displayHomeAsUp to true
						 */
						isNavigationVisible(): boolean;
					}
					/**
					 * Interface for toggle drawables. Can be public in the future
					 */
					export class DrawerToggle implements android.support.v7.app.ActionBarDrawerToggle.IDrawerToggle {
						constructor(implementation: android.support.v7.app.ActionBarDrawerToggle.IDrawerToggle);
						public setPosition(position: number): void;
						public getPosition(): number;
					}
					/**
					 * Allows an implementing Activity to return an ActionBarDrawerToggle.Delegate to use with ActionBarDrawerToggle.
					 */
					export class DelegateProvider implements android.support.v7.app.ActionBarDrawerToggle.IDelegateProvider {
						constructor(implementation: android.support.v7.app.ActionBarDrawerToggle.IDelegateProvider);
						public getDrawerToggleDelegate(): android.support.v7.app.ActionBarDrawerToggle.IDelegate;
					}
					/**
					 * Used when DrawerToggle is initialized with a Toolbar
					 */
					export class ToolbarCompatDelegate extends java.lang.Object implements android.support.v7.app.ActionBarDrawerToggle.IDelegate {
						static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggle.ToolbarCompatDelegate>;
						public setActionBarUpIndicator(upDrawable: android.graphics.drawable.Drawable, contentDescRes: number): void;
						public setActionBarDescription(contentDescRes: number): void;
						public getThemeUpIndicator(): android.graphics.drawable.Drawable;
						public getActionBarThemedContext(): android.content.Context;
						public isNavigationVisible(): boolean;
					}
				}
				/**
				 * Base class for activities that use the <a href="tools/extras/support-library.html">support library</a> action bar features.
				 */
				export class AppCompatActivity extends android.support.v4.app.FragmentActivity implements android.support.v7.app.IAppCompatCallback, android.support.v7.app.ActionBarDrawerToggle.IDelegateProvider {
					constructor();
					protected onCreate(savedInstanceState: android.os.Bundle): void;
					protected onPostCreate(savedInstanceState: android.os.Bundle): void;
					/**
					 * Support library version of android.app.Activity#getActionBar.
					 */
					public getSupportActionBar(): android.support.v7.app.ActionBar;
					/**
					 * Set a android.widget.Toolbar Toolbar to act as the android.support.v7.app.ActionBar for this Activity window.
					 * @param toolbar Toolbar to set as the Activity's action bar
					 */
					public setSupportActionBar(toolbar: android.support.v7.widget.Toolbar): void;
					public getMenuInflater(): android.view.MenuInflater;
					public setContentView(layoutResID: number): void;
					public setContentView(view: android.view.View): void;
					public setContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
					public addContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
					public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
					protected onStop(): void;
					protected onPostResume(): void;
					public onMenuItemSelected(featureId: number, item: android.view.IMenuItem): boolean;
					protected onDestroy(): void;
					protected onTitleChanged(title: string, color: number): void;
					/**
					 * Enable extended support library window features.
					 * @param featureId The desired feature as defined in
					 */
					public supportRequestWindowFeature(featureId: number): boolean;
					public supportInvalidateOptionsMenu(): void;
					/**
					 * Notifies the Activity that a support action mode has been started. Activity subclasses overriding this method should call the superclass implementation.
					 * @param mode The new action mode.
					 */
					public onSupportActionModeStarted(mode: android.support.v7.view.ActionMode): void;
					/**
					 * Notifies the activity that a support action mode has finished. Activity subclasses overriding this method should call the superclass implementation.
					 * @param mode The action mode that just finished.
					 */
					public onSupportActionModeFinished(mode: android.support.v7.view.ActionMode): void;
					public startSupportActionMode(callback: android.support.v7.view.ActionMode.ICallback): android.support.v7.view.ActionMode;
					/**
					 *  Progress bars are no longer provided in AppCompat.
					 */
					public setSupportProgressBarVisibility(visible: boolean): void;
					/**
					 *  Progress bars are no longer provided in AppCompat.
					 */
					public setSupportProgressBarIndeterminateVisibility(visible: boolean): void;
					/**
					 *  Progress bars are no longer provided in AppCompat.
					 */
					public setSupportProgressBarIndeterminate(indeterminate: boolean): void;
					/**
					 *  Progress bars are no longer provided in AppCompat.
					 */
					public setSupportProgress(progress: number): void;
					/**
					 * Support version of #onCreateNavigateUpTaskStack(android.app.TaskStackBuilder). This method will be called on all platform versions.
					 * @param builder An empty TaskStackBuilder - the application should add intents representing
					 */
					public onCreateSupportNavigateUpTaskStack(builder: android.support.v4.app.TaskStackBuilder): void;
					/**
					 * Support version of #onPrepareNavigateUpTaskStack(android.app.TaskStackBuilder). This method will be called on all platform versions.
					 * @param builder A TaskStackBuilder that has been populated with Intents by
					 */
					public onPrepareSupportNavigateUpTaskStack(builder: android.support.v4.app.TaskStackBuilder): void;
					/**
					 * This method is called whenever the user chooses to navigate Up within your application's activity hierarchy from the action bar.
					 */
					public onSupportNavigateUp(): boolean;
					/**
					 * Obtain an android.content.Intent that will launch an explicit target activity specified by sourceActivity's android.support.v4.app.NavUtils#PARENT_ACTIVITY &lt;meta-data&gt; element in the application's manifest. If the device is running Jellybean or newer, the android:parentActivityName attribute will be preferred if it is present.
					 */
					public getSupportParentActivityIntent(): android.content.Intent;
					/**
					 * Returns true if sourceActivity should recreate the task when navigating 'up' by using targetIntent.
					 * @param targetIntent An intent representing the target destination for up navigation
					 */
					public supportShouldUpRecreateTask(targetIntent: android.content.Intent): boolean;
					/**
					 * Navigate from sourceActivity to the activity specified by upIntent, finishing sourceActivity in the process. upIntent will have the flag android.content.Intent#FLAG_ACTIVITY_CLEAR_TOP set by this method, along with any others required for proper up navigation as outlined in the Android Design Guide.
					 * @param upIntent An intent representing the target destination for up navigation
					 */
					public supportNavigateUpTo(upIntent: android.content.Intent): void;
					public onContentChanged(): void;
					/**
					 *  Use #onContentChanged() instead.
					 */
					public onSupportContentChanged(): void;
					public getDrawerToggleDelegate(): android.support.v7.app.ActionBarDrawerToggle.IDelegate;
					public getDelegate(): android.support.v7.app.AppCompatDelegate;
				}
				/**
				 * This class represents a delegate which you can use to extend AppCompat's support to any android.app.Activity.
				 */
				export class AppCompatDelegate extends java.lang.Object {
					static class: java.lang.Class<android.support.v7.app.AppCompatDelegate>;
					/**
					 * Create a android.support.v7.app.AppCompatDelegate to use with activity.
					 * @param activity callback An optional callback for AppCompat specific events
					 * @param callback 
					 */
					public static create(activity: android.app.Activity, callback: android.support.v7.app.IAppCompatCallback): android.support.v7.app.AppCompatDelegate;
					/**
					 * Create a android.support.v7.app.AppCompatDelegate to use with dialog.
					 * @param dialog callback An optional callback for AppCompat specific events
					 * @param callback 
					 */
					public static create(dialog: android.app.Dialog, callback: android.support.v7.app.IAppCompatCallback): android.support.v7.app.AppCompatDelegate;
					/**
					 * Support library version of Activity#getActionBar.
					 */
					public getSupportActionBar(): android.support.v7.app.ActionBar;
					/**
					 * Set a Toolbar to act as the ActionBar for this delegate.
					 * @param toolbar Toolbar to set as the Activity's action bar
					 */
					public setSupportActionBar(toolbar: android.support.v7.widget.Toolbar): void;
					/**
					 * Return the value of this call from your Activity#getMenuInflater()
					 */
					public getMenuInflater(): android.view.MenuInflater;
					/**
					 * Should be called from Activity#onCreate Activity.onCreate()
					 */
					public onCreate(savedInstanceState: android.os.Bundle): void;
					/**
					 * Should be called from Activity#onPostCreate(android.os.Bundle)
					 */
					public onPostCreate(savedInstanceState: android.os.Bundle): void;
					/**
					 * Should be called from Activity#onConfigurationChanged
					 */
					public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
					/**
					 * Should be called from Activity#onStop Activity.onStop()
					 */
					public onStop(): void;
					/**
					 * Should be called from Activity#onPostResume()
					 */
					public onPostResume(): void;
					/**
					 * Should be called instead of Activity#setContentView(android.view.View)}
					 */
					public setContentView(v: android.view.View): void;
					/**
					 * Should be called instead of Activity#setContentView(int)}
					 */
					public setContentView(resId: number): void;
					/**
					 * Should be called instead of Activity#setContentView(android.view.View, android.view.ViewGroup.LayoutParams)}
					 */
					public setContentView(v: android.view.View, lp: android.view.ViewGroup.LayoutParams): void;
					/**
					 * Should be called instead of Activity#addContentView(android.view.View, android.view.ViewGroup.LayoutParams)}
					 */
					public addContentView(v: android.view.View, lp: android.view.ViewGroup.LayoutParams): void;
					/**
					 * Should be called from Activity#onTitleChanged(CharSequence, int)}
					 */
					public setTitle(title: string): void;
					/**
					 * Should be called from Activity#invalidateOptionsMenu()} or FragmentActivity#supportInvalidateOptionsMenu().
					 */
					public invalidateOptionsMenu(): void;
					/**
					 * Should be called from Activity#onDestroy()
					 */
					public onDestroy(): void;
					/**
					 * Returns an ActionBarDrawerToggle.Delegate which can be returned from your Activity if it implements ActionBarDrawerToggle.DelegateProvider.
					 */
					public getDrawerToggleDelegate(): android.support.v7.app.ActionBarDrawerToggle.IDelegate;
					/**
					 * Enable extended window features. This should be called instead of android.app.Activity#requestWindowFeature(int) or android.view.Window#requestFeature getWindow().requestFeature().
					 * @param featureId The desired feature as defined in {@link android.view.Window}.
					 */
					public requestWindowFeature(featureId: number): boolean;
					/**
					 * Start an action mode.
					 * @param callback Callback that will manage lifecycle events for this context mode
					 */
					public startSupportActionMode(callback: android.support.v7.view.ActionMode.ICallback): android.support.v7.view.ActionMode;
					/**
					 * Installs AppCompat's android.view.LayoutInflater Factory so that it can replace the framework widgets with compatible tinted versions. This should be called before super.onCreate() as so: <pre class="prettyprint"> protected void onCreate(Bundle savedInstanceState) { getDelegate().installViewFactory(); super.onCreate(savedInstanceState); getDelegate().onCreate(savedInstanceState);
					 */
					public installViewFactory(): void;
					/**
					 * This should be called from a android.support.v4.view.LayoutInflaterFactory LayoutInflaterFactory in order to return tint-aware widgets.
					 */
					public createView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
				}
				export class AppCompatDelegateImplV7 extends android.support.v7.app.AppCompatDelegateImplBase {
					static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7>;
					ListMenuDecorView: {
	new (context: android.content.Context): android.support.v7.app.AppCompatDelegateImplV7.ListMenuDecorView;
};
					ActionModeCallbackWrapper: {
	new (wrapped: android.support.v7.view.ActionMode.ICallback): android.support.v7.app.AppCompatDelegateImplV7.ActionModeCallbackWrapper;
};
					public onCreate(savedInstanceState: android.os.Bundle): void;
					public onPostCreate(savedInstanceState: android.os.Bundle): void;
					public createSupportActionBar(): android.support.v7.app.ActionBar;
					public setSupportActionBar(toolbar: android.support.v7.widget.Toolbar): void;
					public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
					public onStop(): void;
					public onPostResume(): void;
					public setContentView(v: android.view.View): void;
					public setContentView(resId: number): void;
					public setContentView(v: android.view.View, lp: android.view.ViewGroup.LayoutParams): void;
					public addContentView(v: android.view.View, lp: android.view.ViewGroup.LayoutParams): void;
					onSubDecorInstalled(subDecor: android.view.ViewGroup): void;
					public requestWindowFeature(featureId: number): boolean;
					onTitleChanged(title: string): void;
					onPanelClosed(featureId: number, menu: android.view.IMenu): boolean;
					onMenuOpened(featureId: number, menu: android.view.IMenu): boolean;
					public startSupportActionMode(callback: android.support.v7.view.ActionMode.ICallback): android.support.v7.view.ActionMode;
					public invalidateOptionsMenu(): void;
					startSupportActionModeFromWindow(callback: android.support.v7.view.ActionMode.ICallback): android.support.v7.view.ActionMode;
					onBackPressed(): boolean;
					onKeyShortcut(keyCode: number, ev: android.view.KeyEvent): boolean;
					dispatchKeyEvent(event: android.view.KeyEvent): boolean;
					onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
					onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
					public createView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
					public installViewFactory(): void;
					/**
					 * From android.support.v4.view.LayoutInflaterFactory
					 */
					public onCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
					callActivityOnCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
					getSubDecor(): android.view.ViewGroup;
					setSupportActionBar(actionBar: android.support.v7.app.ActionBar): void;
				}
				export module AppCompatDelegateImplV7 {
					export class PanelMenuPresenterCallback extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7.PanelMenuPresenterCallback>;
					}
					export class PanelFeatureState extends java.lang.Object {
						qwertyMode: boolean;
						static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7.PanelFeatureState>;
						public hasPanelItems(): boolean;
						/**
						 * Unregister and free attached MenuPresenters. They will be recreated as needed.
						 */
						public clearMenuPresenters(): void;
						setStyle(context: android.content.Context): void;
						onSaveInstanceState(): android.os.IParcelable;
						onRestoreInstanceState(state: android.os.IParcelable): void;
						applyFrozenState(): void;
					}
					export module PanelFeatureState {
						export class SavedState extends java.lang.Object implements android.os.IParcelable {
							static CREATOR: android.os.Parcelable.ICreator<android.support.v7.app.AppCompatDelegateImplV7.PanelFeatureState.SavedState>;
							static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7.PanelFeatureState.SavedState>;
							public describeContents(): number;
							public writeToParcel(dest: android.os.Parcel, flags: number): void;
						}
					}
					export class ListMenuDecorView extends android.widget.FrameLayout {
						static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7.ListMenuDecorView>;
						public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
						public onInterceptTouchEvent(event: android.view.MotionEvent): boolean;
						public setBackgroundResource(resid: number): void;
					}
					export class ActionMenuPresenterCallback extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7.ActionMenuPresenterCallback>;
					}
					/**
					 * Clears out internal reference when the action mode is destroyed.
					 */
					export class ActionModeCallbackWrapper extends java.lang.Object implements android.support.v7.view.ActionMode.ICallback {
						static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV7.ActionModeCallbackWrapper>;
						public onCreateActionMode(mode: android.support.v7.view.ActionMode, menu: android.view.IMenu): boolean;
						public onPrepareActionMode(mode: android.support.v7.view.ActionMode, menu: android.view.IMenu): boolean;
						public onActionItemClicked(mode: android.support.v7.view.ActionMode, item: android.view.IMenuItem): boolean;
						public onDestroyActionMode(mode: android.support.v7.view.ActionMode): void;
					}
				}
				/**
				 * This class encapsulates some awful hacks.
				 */
				export class ActionBarDrawerToggleHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggleHoneycomb>;
					public static setActionBarUpIndicator(info: android.support.v7.app.ActionBarDrawerToggleHoneycomb.SetIndicatorInfo, activity: android.app.Activity, drawable: android.graphics.drawable.Drawable, contentDescRes: number): android.support.v7.app.ActionBarDrawerToggleHoneycomb.SetIndicatorInfo;
					public static setActionBarDescription(info: android.support.v7.app.ActionBarDrawerToggleHoneycomb.SetIndicatorInfo, activity: android.app.Activity, contentDescRes: number): android.support.v7.app.ActionBarDrawerToggleHoneycomb.SetIndicatorInfo;
					public static getThemeUpIndicator(activity: android.app.Activity): android.graphics.drawable.Drawable;
				}
				export module ActionBarDrawerToggleHoneycomb {
					export class SetIndicatorInfo extends java.lang.Object {
						setHomeAsUpIndicator: java.lang.reflect.Method;
						setHomeActionContentDescription: java.lang.reflect.Method;
						upIndicatorView: android.widget.ImageView;
						static class: java.lang.Class<android.support.v7.app.ActionBarDrawerToggleHoneycomb.SetIndicatorInfo>;
					}
				}
				/**
				 *  Use android.support.v7.app.AppCompatActivity instead.
				 */
				export class ActionBarActivity extends android.support.v7.app.AppCompatActivity {
					constructor();
				}
				export class AppCompatDelegateImplV11 extends android.support.v7.app.AppCompatDelegateImplV7 {
					static class: java.lang.Class<android.support.v7.app.AppCompatDelegateImplV11>;
					onSubDecorInstalled(subDecor: android.view.ViewGroup): void;
					public startActionModeForChild(originalView: android.view.View, callback: android.view.ActionMode.ICallback): android.view.ActionMode;
					callActivityOnCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
				}
				/**
				 * Base class for AppCompat themed android.app.Dialogs.
				 */
				export class AppCompatDialog extends android.app.Dialog implements android.support.v7.app.IAppCompatCallback {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, theme: number);
					static class: java.lang.Class<android.support.v7.app.AppCompatDialog>;
					protected onCreate(savedInstanceState: android.os.Bundle): void;
					/**
					 * Support library version of android.app.Dialog#getActionBar.
					 */
					public getSupportActionBar(): android.support.v7.app.ActionBar;
					public setContentView(layoutResID: number): void;
					public setContentView(view: android.view.View): void;
					public setContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
					public setTitle(title: string): void;
					public setTitle(titleId: number): void;
					public addContentView(view: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
					protected onStop(): void;
					/**
					 * Enable extended support library window features.
					 * @param featureId The desired feature as defined in {@link android.view.Window} or
					 */
					public supportRequestWindowFeature(featureId: number): boolean;
					public getDelegate(): android.support.v7.app.AppCompatDelegate;
					public onSupportActionModeStarted(mode: android.support.v7.view.ActionMode): void;
					public onSupportActionModeFinished(mode: android.support.v7.view.ActionMode): void;
				}
				/**
				 * A drawable that can draw a "Drawer hamburger" menu or an Arrow and animate between them.
				 */
				export class DrawerArrowDrawable extends android.graphics.drawable.Drawable {
					static class: java.lang.Class<android.support.v7.app.DrawerArrowDrawable>;
					isLayoutRtl(): boolean;
					/**
					 * If set, canvas is flipped when progress reached to end and going back to start.
					 */
					protected setVerticalMirror(verticalMirror: boolean): void;
					public draw(canvas: android.graphics.Canvas): void;
					public setAlpha(i: number): void;
					public isAutoMirrored(): boolean;
					public setColorFilter(colorFilter: android.graphics.ColorFilter): void;
					public getIntrinsicHeight(): number;
					public getIntrinsicWidth(): number;
					public getOpacity(): number;
					public getProgress(): number;
					public setProgress(progress: number): void;
					/**
					 * Specify a color and porterduff mode to be the colorfilter for this drawable.
					 */
					setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
				}
				/**
				 * Implemented this in order for AppCompat to be able to callback in certain situations.
				 */
				interface IAppCompatCallback {
					/**
					 * Called when a support action mode has been started.
					 * @param mode The new action mode.
					 */
					onSupportActionModeStarted(mode: android.support.v7.view.ActionMode): void;
					/**
					 * Called when a support action mode has finished.
					 * @param mode The action mode that just finished.
					 */
					onSupportActionModeFinished(mode: android.support.v7.view.ActionMode): void;
				}
				/**
				 * A primary toolbar within the activity that may display the activity title, application-level navigation affordances, and other interactive items.
				 */
				export class ActionBar extends java.lang.Object {
					constructor();
					/**
					 * Standard navigation mode. Consists of either a logo or icon and title text with an optional subtitle. Clicking any of these elements will dispatch onOptionsItemSelected to the host Activity with a MenuItem with item ID android.R.id.home.
					 */
					static NAVIGATION_MODE_STANDARD: number;
					/**
					 * List navigation mode. Instead of static title text this mode presents a list menu for navigation within the activity. e.g. this might be presented to the user as a dropdown list.
					 */
					static NAVIGATION_MODE_LIST: number;
					/**
					 * Tab navigation mode. Instead of static title text this mode presents a series of tabs for navigation within the activity.
					 */
					static NAVIGATION_MODE_TABS: number;
					/**
					 * Use logo instead of icon if available. This flag will cause appropriate navigation modes to use a wider logo in place of the standard icon.
					 */
					static DISPLAY_USE_LOGO: number;
					/**
					 * Show 'home' elements in this action bar, leaving more space for other navigation elements. This includes logo and icon.
					 */
					static DISPLAY_SHOW_HOME: number;
					/**
					 * Display the 'home' element such that it appears as an 'up' affordance. e.g. show an arrow to the left indicating the action that will be taken.
					 */
					static DISPLAY_HOME_AS_UP: number;
					/**
					 * Show the activity title and subtitle, if present.
					 */
					static DISPLAY_SHOW_TITLE: number;
					/**
					 * Show the custom view if one has been set.
					 */
					static DISPLAY_SHOW_CUSTOM: number;
					static class: java.lang.Class<android.support.v7.app.ActionBar>;
					/**
					 * Set the action bar into custom navigation mode, supplying a view for custom navigation.
					 * @param view Custom navigation view to place in the ActionBar.
					 */
					public setCustomView(view: android.view.View): void;
					/**
					 * Set the action bar into custom navigation mode, supplying a view for custom navigation.
					 * @param view Custom navigation view to place in the ActionBar.
					 * @param layoutParams How this custom view should layout in the bar.
					 */
					public setCustomView(view: android.view.View, layoutParams: android.support.v7.app.ActionBar.LayoutParams): void;
					/**
					 * Set the action bar into custom navigation mode, supplying a view for custom navigation.
					 * @param resId Resource ID of a layout to inflate into the ActionBar.
					 */
					public setCustomView(resId: number): void;
					/**
					 * Set the icon to display in the 'home' section of the action bar. The action bar will use an icon specified by its style or the activity icon by default.
					 * @param resId Resource ID of a drawable to show as an icon.
					 */
					public setIcon(resId: number): void;
					/**
					 * Set the icon to display in the 'home' section of the action bar. The action bar will use an icon specified by its style or the activity icon by default.
					 * @param icon Drawable to show as an icon.
					 */
					public setIcon(icon: android.graphics.drawable.Drawable): void;
					/**
					 * Set the logo to display in the 'home' section of the action bar. The action bar will use a logo specified by its style or the activity logo by default.
					 * @param resId Resource ID of a drawable to show as a logo.
					 */
					public setLogo(resId: number): void;
					/**
					 * Set the logo to display in the 'home' section of the action bar. The action bar will use a logo specified by its style or the activity logo by default.
					 * @param logo Drawable to show as a logo.
					 */
					public setLogo(logo: android.graphics.drawable.Drawable): void;
					/**
					 * Set the adapter and navigation callback for list navigation mode.
					 * @param adapter An adapter that will provide views both to display
					 * @param callback An OnNavigationListener that will receive events when the user
					 */
					public setListNavigationCallbacks(adapter: android.widget.ISpinnerAdapter, callback: android.support.v7.app.ActionBar.IOnNavigationListener): void;
					/**
					 * Set the selected navigation item in list or tabbed navigation modes.
					 * @param position Position of the item to select.
					 */
					public setSelectedNavigationItem(position: number): void;
					/**
					 * Get the position of the selected navigation item in list or tabbed navigation modes.
					 */
					public getSelectedNavigationIndex(): number;
					/**
					 * Get the number of navigation items present in the current navigation mode.
					 */
					public getNavigationItemCount(): number;
					/**
					 * Set the action bar's title. This will only be displayed if #DISPLAY_SHOW_TITLE is set.
					 * @param title Title to set
					 */
					public setTitle(title: string): void;
					/**
					 * Set the action bar's title. This will only be displayed if #DISPLAY_SHOW_TITLE is set.
					 * @param resId Resource ID of title string to set
					 */
					public setTitle(resId: number): void;
					/**
					 * Set the action bar's subtitle. This will only be displayed if #DISPLAY_SHOW_TITLE is set. Set to null to disable the subtitle entirely.
					 * @param subtitle Subtitle to set
					 */
					public setSubtitle(subtitle: string): void;
					/**
					 * Set the action bar's subtitle. This will only be displayed if #DISPLAY_SHOW_TITLE is set.
					 * @param resId Resource ID of subtitle string to set
					 */
					public setSubtitle(resId: number): void;
					/**
					 * Set display options. This changes all display option bits at once. To change a limited subset of display options, see #setDisplayOptions(int, int).
					 * @param options A combination of the bits defined by the DISPLAY_ constants
					 */
					public setDisplayOptions(options: number): void;
					/**
					 * Set selected display options. Only the options specified by mask will be changed. To change all display option bits at once, see #setDisplayOptions(int).
					 * @param options A combination of the bits defined by the DISPLAY_ constants
					 * @param mask A bit mask declaring which display options should be changed.
					 */
					public setDisplayOptions(options: number, mask: number): void;
					/**
					 * Set whether to display the activity logo rather than the activity icon. A logo is often a wider, more detailed image.
					 * @param useLogo true to use the activity logo, false to use the activity icon.
					 */
					public setDisplayUseLogoEnabled(useLogo: boolean): void;
					/**
					 * Set whether to include the application home affordance in the action bar. Home is presented as either an activity icon or logo.
					 * @param showHome true to show home, false otherwise.
					 */
					public setDisplayShowHomeEnabled(showHome: boolean): void;
					/**
					 * Set whether home should be displayed as an "up" affordance. Set this to true if selecting "home" returns up by a single level in your UI rather than back to the top level or front page.
					 * @param showHomeAsUp true to show the user that selecting home will return one
					 */
					public setDisplayHomeAsUpEnabled(showHomeAsUp: boolean): void;
					/**
					 * Set whether an activity title/subtitle should be displayed.
					 * @param showTitle true to display a title/subtitle if present.
					 */
					public setDisplayShowTitleEnabled(showTitle: boolean): void;
					/**
					 * Set whether a custom view should be displayed, if set.
					 * @param showCustom true if the currently set custom view should be displayed, false otherwise.
					 */
					public setDisplayShowCustomEnabled(showCustom: boolean): void;
					/**
					 * Set the ActionBar's background. This will be used for the primary action bar.
					 * @param d Background drawable
					 */
					public setBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
					/**
					 * Set the ActionBar's stacked background. This will appear in the second row/stacked bar on some devices and configurations.
					 * @param d Background drawable for the stacked row
					 */
					public setStackedBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
					/**
					 * Set the ActionBar's split background. This will appear in the split action bar containing menu-provided action buttons on some devices and configurations.
					 * @param d Background drawable for the split bar
					 */
					public setSplitBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
					public getCustomView(): android.view.View;
					/**
					 * Returns the current ActionBar title in standard mode. Returns null if #getNavigationMode() would not return #NAVIGATION_MODE_STANDARD.
					 */
					public getTitle(): string;
					/**
					 * Returns the current ActionBar subtitle in standard mode. Returns null if #getNavigationMode() would not return #NAVIGATION_MODE_STANDARD.
					 */
					public getSubtitle(): string;
					/**
					 * Returns the current navigation mode. The result will be one of: <ul> <li>#NAVIGATION_MODE_STANDARD</li> <li>#NAVIGATION_MODE_LIST</li> <li>#NAVIGATION_MODE_TABS</li> </ul>
					 */
					public getNavigationMode(): number;
					/**
					 * Set the current navigation mode.
					 * @param mode The new mode to set.
					 */
					public setNavigationMode(mode: number): void;
					public getDisplayOptions(): number;
					/**
					 * Create and return a new Tab. This tab will not be included in the action bar until it is added.
					 */
					public newTab(): android.support.v7.app.ActionBar.Tab;
					/**
					 * Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list. If this is the first tab to be added it will become the selected tab.
					 * @param tab Tab to add
					 */
					public addTab(tab: android.support.v7.app.ActionBar.Tab): void;
					/**
					 * Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list.
					 * @param tab Tab to add
					 * @param setSelected True if the added tab should become the selected tab.
					 */
					public addTab(tab: android.support.v7.app.ActionBar.Tab, setSelected: boolean): void;
					/**
					 * Add a tab for use in tabbed navigation mode. The tab will be inserted at <code>position</code>. If this is the first tab to be added it will become the selected tab.
					 * @param tab The tab to add
					 * @param position The new position of the tab
					 */
					public addTab(tab: android.support.v7.app.ActionBar.Tab, position: number): void;
					/**
					 * Add a tab for use in tabbed navigation mode. The tab will be insterted at <code>position</code>.
					 * @param tab The tab to add
					 * @param position The new position of the tab
					 * @param setSelected True if the added tab should become the selected tab.
					 */
					public addTab(tab: android.support.v7.app.ActionBar.Tab, position: number, setSelected: boolean): void;
					/**
					 * Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.
					 * @param tab The tab to remove
					 */
					public removeTab(tab: android.support.v7.app.ActionBar.Tab): void;
					/**
					 * Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.
					 * @param position Position of the tab to remove
					 */
					public removeTabAt(position: number): void;
					/**
					 * Remove all tabs from the action bar and deselect the current tab.
					 */
					public removeAllTabs(): void;
					/**
					 * Select the specified tab. If it is not a child of this action bar it will be added.
					 * @param tab Tab to select
					 */
					public selectTab(tab: android.support.v7.app.ActionBar.Tab): void;
					/**
					 * Returns the currently selected tab if in tabbed navigation mode and there is at least one tab present.
					 */
					public getSelectedTab(): android.support.v7.app.ActionBar.Tab;
					/**
					 * Returns the tab at the specified index.
					 * @param index Index value in the range 0-get
					 */
					public getTabAt(index: number): android.support.v7.app.ActionBar.Tab;
					/**
					 * Returns the number of tabs currently registered with the action bar.
					 */
					public getTabCount(): number;
					/**
					 * Retrieve the current height of the ActionBar.
					 */
					public getHeight(): number;
					/**
					 * Show the ActionBar if it is not currently showing. If the window hosting the ActionBar does not have the feature Window#FEATURE_ACTION_BAR_OVERLAY it will resize application content to fit the new space available.
					 */
					public show(): void;
					/**
					 * Hide the ActionBar if it is currently showing. If the window hosting the ActionBar does not have the feature Window#FEATURE_ACTION_BAR_OVERLAY it will resize application content to fit the new space available.
					 */
					public hide(): void;
					public isShowing(): boolean;
					/**
					 * Add a listener that will respond to menu visibility change events.
					 * @param listener The new listener to add
					 */
					public addOnMenuVisibilityListener(listener: android.support.v7.app.ActionBar.IOnMenuVisibilityListener): void;
					/**
					 * Remove a menu visibility listener. This listener will no longer receive menu visibility change events.
					 * @param listener A listener to remove that was previously added
					 */
					public removeOnMenuVisibilityListener(listener: android.support.v7.app.ActionBar.IOnMenuVisibilityListener): void;
					/**
					 * Enable or disable the "home" button in the corner of the action bar. (Note that this is the application home/up affordance on the action bar, not the systemwide home button.)
					 * @param enabled true to enable the home button, false to disable the home button.
					 */
					public setHomeButtonEnabled(enabled: boolean): void;
					/**
					 * Returns a Context with an appropriate theme for creating views that will appear in the action bar. If you are inflating or instantiating custom views that will appear in an action bar, you should use the Context returned by this method. (This includes adapters used for list navigation mode.) This will ensure that views contrast properly against the action bar.
					 */
					public getThemedContext(): android.content.Context;
					/**
					 * Set an alternate drawable to display next to the icon/logo/title when #DISPLAY_HOME_AS_UP is enabled. This can be useful if you are using this mode to display an alternate selection for up navigation, such as a sliding drawer.
					 * @param indicator A drawable to use for the up indicator, or null to use the theme's default
					 */
					public setHomeAsUpIndicator(indicator: android.graphics.drawable.Drawable): void;
					/**
					 * Set an alternate drawable to display next to the icon/logo/title when #DISPLAY_HOME_AS_UP is enabled. This can be useful if you are using this mode to display an alternate selection for up navigation, such as a sliding drawer.
					 * @param resId Resource ID of a drawable to use for the up indicator, or 0
					 */
					public setHomeAsUpIndicator(resId: number): void;
					/**
					 * Set an alternate description for the Home/Up action, when enabled.
					 * @param description New description for the Home action when enabled
					 */
					public setHomeActionContentDescription(description: string): void;
					/**
					 * Set an alternate description for the Home/Up action, when enabled.
					 * @param resId Resource ID of a string to use as the new description
					 */
					public setHomeActionContentDescription(resId: number): void;
					/**
					 * Enable hiding the action bar on content scroll.
					 * @param hideOnContentScroll true to enable hiding on content scroll.
					 */
					public setHideOnContentScrollEnabled(hideOnContentScroll: boolean): void;
					/**
					 * Return whether the action bar is configured to scroll out of sight along with a View#setNestedScrollingEnabled(boolean) nested scrolling child.
					 */
					public isHideOnContentScrollEnabled(): boolean;
					/**
					 * Return the current vertical offset of the action bar.
					 */
					public getHideOffset(): number;
					/**
					 * Set the current hide offset of the action bar.
					 * @param offset The action bar's offset toward its fully hidden state in pixels.
					 */
					public setHideOffset(offset: number): void;
					/**
					 * Set the Z-axis elevation of the action bar in pixels.
					 * @param elevation Elevation value in pixels
					 */
					public setElevation(elevation: number): void;
					/**
					 * Get the Z-axis elevation of the action bar in pixels.
					 */
					public getElevation(): number;
				}
				export module ActionBar {
					/**
					 * Callback interface invoked when a tab is focused, unfocused, added, or removed.
					 */
					interface ITabListener {
						/**
						 * Called when a tab enters the selected state.
						 * @param tab The tab that was selected
						 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
						 */
						onTabSelected(tab: android.support.v7.app.ActionBar.Tab, ft: android.support.v4.app.FragmentTransaction): void;
						/**
						 * Called when a tab exits the selected state.
						 * @param tab The tab that was unselected
						 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
						 */
						onTabUnselected(tab: android.support.v7.app.ActionBar.Tab, ft: android.support.v4.app.FragmentTransaction): void;
						/**
						 * Called when a tab that is already selected is chosen again by the user. Some applications may use this action to return to the top level of a category.
						 * @param tab The tab that was reselected.
						 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
						 */
						onTabReselected(tab: android.support.v7.app.ActionBar.Tab, ft: android.support.v4.app.FragmentTransaction): void;
					}
					/**
					 * Listener interface for ActionBar navigation events.
					 */
					export class OnNavigationListener implements android.support.v7.app.ActionBar.IOnNavigationListener {
						constructor(implementation: android.support.v7.app.ActionBar.IOnNavigationListener);
						/**
						 * This method is called whenever a navigation item in your action bar is selected.
						 * @param itemPosition Position of the item clicked.
						 * @param itemId ID of the item clicked.
						 */
						public onNavigationItemSelected(itemPosition: number, itemId: number): boolean;
					}
					/**
					 * Callback interface invoked when a tab is focused, unfocused, added, or removed.
					 */
					export class TabListener implements android.support.v7.app.ActionBar.ITabListener {
						constructor(implementation: android.support.v7.app.ActionBar.ITabListener);
						/**
						 * Called when a tab enters the selected state.
						 * @param tab The tab that was selected
						 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
						 */
						public onTabSelected(tab: android.support.v7.app.ActionBar.Tab, ft: android.support.v4.app.FragmentTransaction): void;
						/**
						 * Called when a tab exits the selected state.
						 * @param tab The tab that was unselected
						 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
						 */
						public onTabUnselected(tab: android.support.v7.app.ActionBar.Tab, ft: android.support.v4.app.FragmentTransaction): void;
						/**
						 * Called when a tab that is already selected is chosen again by the user. Some applications may use this action to return to the top level of a category.
						 * @param tab The tab that was reselected.
						 * @param ft A {@link FragmentTransaction} for queuing fragment operations to execute
						 */
						public onTabReselected(tab: android.support.v7.app.ActionBar.Tab, ft: android.support.v4.app.FragmentTransaction): void;
					}
					/**
					 * Per-child layout information associated with action bar custom views.
					 */
					export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
						constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(width: number, height: number);
						constructor(width: number, height: number, gravity: number);
						constructor(gravity: number);
						constructor(source: android.support.v7.app.ActionBar.LayoutParams);
						constructor(source: android.view.ViewGroup.LayoutParams);
						/**
						 * Gravity for the view associated with these LayoutParams.
						 */
						gravity: number;
						static class: java.lang.Class<android.support.v7.app.ActionBar.LayoutParams>;
					}
					/**
					 * Listener interface for ActionBar navigation events.
					 */
					interface IOnNavigationListener {
						/**
						 * This method is called whenever a navigation item in your action bar is selected.
						 * @param itemPosition Position of the item clicked.
						 * @param itemId ID of the item clicked.
						 */
						onNavigationItemSelected(itemPosition: number, itemId: number): boolean;
					}
					/**
					 * Listener for receiving events when action bar menus are shown or hidden.
					 */
					interface IOnMenuVisibilityListener {
						/**
						 * Called when an action bar menu is shown or hidden. Applications may want to use this to tune auto-hiding behavior for the action bar or pause/resume video playback, gameplay, or other activity within the main content area.
						 * @param isVisible True if an action bar menu is now visible, false if no action bar
						 */
						onMenuVisibilityChanged(isVisible: boolean): void;
					}
					/**
					 * A tab in the action bar.
					 */
					export class Tab extends java.lang.Object {
						constructor();
						/**
						 * An invalid position for a tab.
						 */
						static INVALID_POSITION: number;
						static class: java.lang.Class<android.support.v7.app.ActionBar.Tab>;
						/**
						 * Return the current position of this tab in the action bar.
						 */
						public getPosition(): number;
						/**
						 * Return the icon associated with this tab.
						 */
						public getIcon(): android.graphics.drawable.Drawable;
						/**
						 * Return the text of this tab.
						 */
						public getText(): string;
						/**
						 * Set the icon displayed on this tab.
						 * @param icon The drawable to use as an icon
						 */
						public setIcon(icon: android.graphics.drawable.Drawable): android.support.v7.app.ActionBar.Tab;
						/**
						 * Set the icon displayed on this tab.
						 * @param resId Resource ID referring to the drawable to use as an icon
						 */
						public setIcon(resId: number): android.support.v7.app.ActionBar.Tab;
						/**
						 * Set the text displayed on this tab. Text may be truncated if there is not room to display the entire string.
						 * @param text The text to display
						 */
						public setText(text: string): android.support.v7.app.ActionBar.Tab;
						/**
						 * Set the text displayed on this tab. Text may be truncated if there is not room to display the entire string.
						 * @param resId A resource ID referring to the text that should be displayed
						 */
						public setText(resId: number): android.support.v7.app.ActionBar.Tab;
						/**
						 * Set a custom view to be used for this tab. This overrides values set by #setText(CharSequence) and #setIcon(Drawable).
						 * @param view Custom view to be used as a tab.
						 */
						public setCustomView(view: android.view.View): android.support.v7.app.ActionBar.Tab;
						/**
						 * Set a custom view to be used for this tab. This overrides values set by #setText(CharSequence) and #setIcon(Drawable).
						 * @param layoutResId A layout resource to inflate and use as a custom tab view
						 */
						public setCustomView(layoutResId: number): android.support.v7.app.ActionBar.Tab;
						/**
						 * Retrieve a previously set custom view for this tab.
						 */
						public getCustomView(): android.view.View;
						/**
						 * Give this Tab an arbitrary object to hold for later use.
						 * @param obj Object to store
						 */
						public setTag(obj: any): android.support.v7.app.ActionBar.Tab;
						public getTag(): any;
						/**
						 * Set the TabListener that will handle switching to and from this tab. All tabs must have a TabListener set before being added to the ActionBar.
						 * @param listener Listener to handle tab selection events
						 */
						public setTabListener(listener: android.support.v7.app.ActionBar.ITabListener): android.support.v7.app.ActionBar.Tab;
						/**
						 * Select this tab. Only valid if the tab has been added to the action bar.
						 */
						public select(): void;
						/**
						 * Set a description of this tab's content for use in accessibility support. If no content description is provided the title will be used.
						 * @param resId A resource ID referring to the description text
						 */
						public setContentDescription(resId: number): android.support.v7.app.ActionBar.Tab;
						/**
						 * Set a description of this tab's content for use in accessibility support. If no content description is provided the title will be used.
						 * @param contentDesc Description of this tab's content
						 */
						public setContentDescription(contentDesc: string): android.support.v7.app.ActionBar.Tab;
						/**
						 * Gets a brief description of this tab's content for use in accessibility support.
						 */
						public getContentDescription(): string;
					}
					/**
					 * Listener for receiving events when action bar menus are shown or hidden.
					 */
					export class OnMenuVisibilityListener implements android.support.v7.app.ActionBar.IOnMenuVisibilityListener {
						constructor(implementation: android.support.v7.app.ActionBar.IOnMenuVisibilityListener);
						/**
						 * Called when an action bar menu is shown or hidden. Applications may want to use this to tune auto-hiding behavior for the action bar or pause/resume video playback, gameplay, or other activity within the main content area.
						 * @param isVisible True if an action bar menu is now visible, false if no action bar
						 */
						public onMenuVisibilityChanged(isVisible: boolean): void;
					}
				}
			}
			export module internal {
				export module view {
					export module menu {
						export class BaseMenuWrapper<T> extends android.support.v7.internal.view.menu.BaseWrapper<T> {
							static class: java.lang.Class<android.support.v7.internal.view.menu.BaseMenuWrapper<any>>;
							getMenuItemWrapper(menuItem: android.view.IMenuItem): android.view.IMenuItem;
							getSubMenuWrapper(subMenu: android.view.ISubMenu): android.view.ISubMenu;
							internalClear(): void;
							internalRemoveGroup(groupId: number): void;
							internalRemoveItem(id: number): void;
						}
						export class BaseWrapper<T> extends java.lang.Object {
							static class: java.lang.Class<android.support.v7.internal.view.menu.BaseWrapper<any>>;
							public getWrappedObject(): T;
						}
					}
				}
				export module widget {
					export class TintInfo extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.internal.widget.TintInfo>;
					}
					/**
					 * A view that displays one child at a time and lets the user pick among them. The items in the Spinner come from the android.widget.Adapter associated with this view.
					 */
					export class SpinnerCompat extends android.support.v7.internal.widget.AbsSpinnerCompat implements android.content.DialogInterface.IOnClickListener {
						/**
						 * Use a dialog window for selecting spinner options.
						 */
						static MODE_DIALOG: number;
						/**
						 * Use a dropdown anchored to the Spinner for selecting spinner options.
						 */
						static MODE_DROPDOWN: number;
						static class: java.lang.Class<android.support.v7.internal.widget.SpinnerCompat>;
						DropdownPopup: {
	new (context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number): android.support.v7.internal.widget.SpinnerCompat.DropdownPopup;
};
						/**
						 * Set the background drawable for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
						 * @param background Background drawable
						 */
						public setPopupBackgroundDrawable(background: android.graphics.drawable.Drawable): void;
						/**
						 * Set the background drawable for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
						 * @param resId Resource ID of a background drawable
						 */
						public setPopupBackgroundResource(resId: number): void;
						/**
						 * Get the background drawable for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; other modes will return null.
						 */
						public getPopupBackground(): android.graphics.drawable.Drawable;
						/**
						 * Set a vertical offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
						 * @param pixels Vertical offset in pixels
						 */
						public setDropDownVerticalOffset(pixels: number): void;
						/**
						 * Get the configured vertical offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; other modes will return 0.
						 */
						public getDropDownVerticalOffset(): number;
						/**
						 * Set a horizontal offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; this method is a no-op in other modes.
						 * @param pixels Horizontal offset in pixels
						 */
						public setDropDownHorizontalOffset(pixels: number): void;
						/**
						 * Get the configured horizontal offset in pixels for the spinner's popup window of choices. Only valid in #MODE_DROPDOWN; other modes will return 0.
						 */
						public getDropDownHorizontalOffset(): number;
						/**
						 * Set the width of the spinner's popup window of choices in pixels. This value may also be set to android.view.ViewGroup.LayoutParams#MATCH_PARENT to match the width of the Spinner itself, or android.view.ViewGroup.LayoutParams#WRAP_CONTENT to wrap to the measured size of contained dropdown list items.
						 * @param pixels Width in pixels, WRAP_CONTENT, or MATCH_PARENT
						 */
						public setDropDownWidth(pixels: number): void;
						/**
						 * Get the configured width of the spinner's popup window of choices in pixels. The returned value may also be android.view.ViewGroup.LayoutParams#MATCH_PARENT meaning the popup window will match the width of the Spinner itself, or android.view.ViewGroup.LayoutParams#WRAP_CONTENT to wrap to the measured size of contained dropdown list items.
						 */
						public getDropDownWidth(): number;
						public setEnabled(enabled: boolean): void;
						/**
						 * Describes how the selected item view is positioned. Currently only the horizontal component is used. The default is determined by the current theme.
						 * @param gravity See {@link android.view.Gravity}
						 */
						public setGravity(gravity: number): void;
						public setAdapter(adapter: android.widget.ISpinnerAdapter): void;
						public getBaseline(): number;
						protected onDetachedFromWindow(): void;
						public onTouchEvent(event: android.view.MotionEvent): boolean;
						protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
						/**
						 *  android.view.View#onLayout(boolean, int, int, int, int)
						 */
						protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
						/**
						 * Creates and positions all views for this Spinner.
						 * @param delta Change in the selected position. +1 means selection is moving to the right, so
						 * @param animate 
						 */
						layout(delta: number, animate: boolean): void;
						public performClick(): boolean;
						public onClick(dialog: android.content.IDialogInterface, which: number): void;
						/**
						 * Sets the prompt to display when the dialog is shown.
						 * @param prompt the prompt to set
						 */
						public setPrompt(prompt: string): void;
						/**
						 * Sets the prompt to display when the dialog is shown.
						 * @param promptId the resource ID of the prompt to display when the dialog is shown
						 */
						public setPromptId(promptId: number): void;
						public getPrompt(): string;
						measureContentWidth(adapter: android.widget.ISpinnerAdapter, background: android.graphics.drawable.Drawable): number;
						public onSaveInstanceState(): android.os.IParcelable;
						public onRestoreInstanceState(state: android.os.IParcelable): void;
						/**
						 * 
						 */
						layout(l: number, t: number, r: number, b: number): void;
					}
					export module SpinnerCompat {
						export class SavedState extends android.support.v7.internal.widget.AbsSpinnerCompat.SavedState {
							static CREATOR: android.os.Parcelable.ICreator<android.support.v7.internal.widget.SpinnerCompat.SavedState>;
							static class: java.lang.Class<android.support.v7.internal.widget.SpinnerCompat.SavedState>;
							public writeToParcel(out: android.os.Parcel, flags: number): void;
						}
						export class DropdownPopup extends android.support.v7.widget.ListPopupWindow implements android.support.v7.internal.widget.SpinnerCompat.ISpinnerPopup {
							static class: java.lang.Class<android.support.v7.internal.widget.SpinnerCompat.DropdownPopup>;
							public setAdapter(adapter: android.widget.IListAdapter): void;
							public getHintText(): string;
							public setPromptText(hintText: string): void;
							computeContentWidth(): void;
							public show(textDirection: number, textAlignment: number): void;
							/**
							 * Show the popup
							 */
							show(): void;
							/**
							 * Dismiss the popup
							 */
							dismiss(): void;
							isShowing(): boolean;
							setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
							setVerticalOffset(px: number): void;
							setHorizontalOffset(px: number): void;
							getBackground(): android.graphics.drawable.Drawable;
							getVerticalOffset(): number;
							getHorizontalOffset(): number;
						}
						/**
						 * Implements some sort of popup selection interface for selecting a spinner option. Allows for different spinner modes.
						 */
						interface ISpinnerPopup {
							setAdapter(adapter: android.widget.IListAdapter): void;
							/**
							 * Show the popup
							 */
							show(): void;
							/**
							 * Dismiss the popup
							 */
							dismiss(): void;
							isShowing(): boolean;
							/**
							 * Set hint text to be displayed to the user. This should provide a description of the choice being made.
							 * @param hintText Hint text to set.
							 */
							setPromptText(hintText: string): void;
							getHintText(): string;
							setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
							setVerticalOffset(px: number): void;
							setHorizontalOffset(px: number): void;
							getBackground(): android.graphics.drawable.Drawable;
							getVerticalOffset(): number;
							getHorizontalOffset(): number;
						}
						export class DialogPopup extends java.lang.Object implements android.support.v7.internal.widget.SpinnerCompat.ISpinnerPopup, android.content.DialogInterface.IOnClickListener {
							static class: java.lang.Class<android.support.v7.internal.widget.SpinnerCompat.DialogPopup>;
							public dismiss(): void;
							public isShowing(): boolean;
							public setAdapter(adapter: android.widget.IListAdapter): void;
							public setPromptText(hintText: string): void;
							public getHintText(): string;
							public show(): void;
							public onClick(dialog: android.content.IDialogInterface, which: number): void;
							public setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
							public setVerticalOffset(px: number): void;
							public setHorizontalOffset(px: number): void;
							public getBackground(): android.graphics.drawable.Drawable;
							public getVerticalOffset(): number;
							public getHorizontalOffset(): number;
						}
						/**
						 * Implements some sort of popup selection interface for selecting a spinner option. Allows for different spinner modes.
						 */
						export class SpinnerPopup implements android.support.v7.internal.widget.SpinnerCompat.ISpinnerPopup {
							constructor(implementation: android.support.v7.internal.widget.SpinnerCompat.ISpinnerPopup);
							public setAdapter(adapter: android.widget.IListAdapter): void;
							/**
							 * Show the popup
							 */
							public show(): void;
							/**
							 * Dismiss the popup
							 */
							public dismiss(): void;
							public isShowing(): boolean;
							/**
							 * Set hint text to be displayed to the user. This should provide a description of the choice being made.
							 * @param hintText Hint text to set.
							 */
							public setPromptText(hintText: string): void;
							public getHintText(): string;
							public setBackgroundDrawable(bg: android.graphics.drawable.Drawable): void;
							public setVerticalOffset(px: number): void;
							public setHorizontalOffset(px: number): void;
							public getBackground(): android.graphics.drawable.Drawable;
							public getVerticalOffset(): number;
							public getHorizontalOffset(): number;
						}
						export class DropDownAdapter extends java.lang.Object implements android.widget.IListAdapter, android.widget.ISpinnerAdapter {
							/**
							 * @param adapter the Adapter to transform into a ListAdapter
							 */
							constructor(adapter: android.widget.ISpinnerAdapter);
							static class: java.lang.Class<android.support.v7.internal.widget.SpinnerCompat.DropDownAdapter>;
							public getCount(): number;
							public getItem(position: number): any;
							public getItemId(position: number): any;
							public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
							public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
							public hasStableIds(): boolean;
							public registerDataSetObserver(observer: android.database.DataSetObserver): void;
							public unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
							/**
							 * If the wrapped SpinnerAdapter is also a ListAdapter, delegate this call. Otherwise, return true.
							 */
							public areAllItemsEnabled(): boolean;
							/**
							 * If the wrapped SpinnerAdapter is also a ListAdapter, delegate this call. Otherwise, return true.
							 */
							public isEnabled(position: number): boolean;
							public getItemViewType(position: number): number;
							public getViewTypeCount(): number;
							public isEmpty(): boolean;
						}
					}
					/**
					 * An tint aware android.widget.CheckBox.
					 */
					export class TintCheckBox extends android.widget.CheckBox {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintCheckBox>;
						public setButtonDrawable(resid: number): void;
						/**
						 * Set the background to a given Drawable
						 * @param d The Drawable to use as the background
						 */
						setButtonDrawable(d: android.graphics.drawable.Drawable): void;
					}
					/**
					 * An tint aware android.widget.Spinner.
					 */
					export class TintSpinner extends android.widget.Spinner {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintSpinner>;
						protected drawableStateChanged(): void;
					}
					/**
					 * An tint aware android.widget.Button.
					 */
					export class TintButton extends android.widget.Button {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintButton>;
						protected drawableStateChanged(): void;
					}
					/**
					 * An abstract base class for spinner widgets. SDK users will probably not need to use this class.
					 */
					export class AbsSpinnerCompat extends android.view.ViewGroup {
						static class: java.lang.Class<android.support.v7.internal.widget.AbsSpinnerCompat>;
						/**
						 * The Adapter is used to provide the data which backs this Spinner. It also provides methods to transform spinner items based on their position relative to the selected item.
						 * @param adapter The SpinnerAdapter to use for this Spinner
						 */
						public setAdapter(adapter: android.widget.ISpinnerAdapter): void;
						/**
						 * Clear out all children from the list
						 */
						resetList(): void;
						/**
						 *  android.view.View#measure(int, int)
						 */
						protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
						getChildHeight(child: android.view.View): number;
						getChildWidth(child: android.view.View): number;
						protected generateDefaultLayoutParams(): android.view.ViewGroup.LayoutParams;
						recycleAllViews(): void;
						/**
						 * Jump directly to a specific item in the adapter data.
						 */
						public setSelection(position: number, animate: boolean): void;
						public setSelection(position: number): void;
						/**
						 * Makes the item at the supplied position selected.
						 * @param position Position to select
						 * @param animate Should the transition be animated
						 */
						setSelectionInt(position: number, animate: boolean): void;
						layout(delta: number, animate: boolean): void;
						public getSelectedView(): android.view.View;
						/**
						 * Override to prevent spamming ourselves with layout requests as we place views
						 */
						public requestLayout(): void;
						public getAdapter(): android.widget.ISpinnerAdapter;
						public getCount(): number;
						/**
						 * Maps a point to a position in the list.
						 * @param x X in local coordinate
						 * @param y Y in local coordinate
						 */
						public pointToPosition(x: number, y: number): number;
						public onSaveInstanceState(): android.os.IParcelable;
						public onRestoreInstanceState(state: android.os.IParcelable): void;
						/**
						 * 
						 */
						layout(l: number, t: number, r: number, b: number): void;
					}
					export module AbsSpinnerCompat {
						export class SavedState extends android.view.View.BaseSavedState {
							static CREATOR: android.os.Parcelable.ICreator<android.support.v7.internal.widget.AbsSpinnerCompat.SavedState>;
							static class: java.lang.Class<android.support.v7.internal.widget.AbsSpinnerCompat.SavedState>;
							public writeToParcel(out: android.os.Parcel, flags: number): void;
							public toString(): string;
						}
						export class RecycleBin extends java.lang.Object {
							static class: java.lang.Class<android.support.v7.internal.widget.AbsSpinnerCompat.RecycleBin>;
							public put(position: number, v: android.view.View): void;
							get(position: number): android.view.View;
							clear(): void;
						}
					}
					export class ThemeUtils extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.internal.widget.ThemeUtils>;
						static createDisabledStateList(textColor: number, disabledTextColor: number): android.content.res.ColorStateList;
						static getThemeAttrColor(context: android.content.Context, attr: number): number;
						static getThemeAttrColorStateList(context: android.content.Context, attr: number): android.content.res.ColorStateList;
						static getDisabledThemeAttrColor(context: android.content.Context, attr: number): number;
						static getThemeAttrColor(context: android.content.Context, attr: number, alpha: number): number;
					}
					/**
					 * An tint aware android.widget.EditText.
					 */
					export class TintEditText extends android.widget.EditText {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintEditText>;
						protected drawableStateChanged(): void;
					}
					/**
					 * This extends Resources but delegates the calls to another Resources object. This enables any customization done by some subclass of Resources to be also picked up.
					 */
					export class ResourcesWrapper extends android.content.res.Resources {
						constructor(resources: android.content.res.Resources);
						static class: java.lang.Class<android.support.v7.internal.widget.ResourcesWrapper>;
						public getText(id: number): string;
						public getQuantityText(id: number, quantity: number): string;
						public getString(id: number): string;
						public getString(id: number, formatArgs: native.Array<any>): string;
						public getQuantityString(id: number, quantity: number, formatArgs: native.Array<any>): string;
						public getQuantityString(id: number, quantity: number): string;
						public getText(id: number, def: string): string;
						public getTextArray(id: number): native.Array<string>;
						public getStringArray(id: number): native.Array<string>;
						public getIntArray(id: number): native.Array<number>;
						public obtainTypedArray(id: number): android.content.res.TypedArray;
						public getDimension(id: number): number;
						public getDimensionPixelOffset(id: number): number;
						public getDimensionPixelSize(id: number): number;
						public getFraction(id: number, base: number, pbase: number): number;
						public getDrawable(id: number): android.graphics.drawable.Drawable;
						public getDrawable(id: number, theme: android.content.res.Resources.Theme): android.graphics.drawable.Drawable;
						public getDrawableForDensity(id: number, density: number): android.graphics.drawable.Drawable;
						public getDrawableForDensity(id: number, density: number, theme: android.content.res.Resources.Theme): android.graphics.drawable.Drawable;
						public getMovie(id: number): android.graphics.Movie;
						public getColor(id: number): number;
						public getColorStateList(id: number): android.content.res.ColorStateList;
						public getBoolean(id: number): boolean;
						public getInteger(id: number): number;
						public getLayout(id: number): android.content.res.IXmlResourceParser;
						public getAnimation(id: number): android.content.res.IXmlResourceParser;
						public getXml(id: number): android.content.res.IXmlResourceParser;
						public openRawResource(id: number): java.io.InputStream;
						public openRawResource(id: number, value: android.util.TypedValue): java.io.InputStream;
						public openRawResourceFd(id: number): android.content.res.AssetFileDescriptor;
						public getValue(id: number, outValue: android.util.TypedValue, resolveRefs: boolean): void;
						public getValueForDensity(id: number, density: number, outValue: android.util.TypedValue, resolveRefs: boolean): void;
						public getValue(name: string, outValue: android.util.TypedValue, resolveRefs: boolean): void;
						public obtainAttributes(set: android.util.IAttributeSet, attrs: native.Array<number>): android.content.res.TypedArray;
						public updateConfiguration(config: android.content.res.Configuration, metrics: android.util.DisplayMetrics): void;
						public getDisplayMetrics(): android.util.DisplayMetrics;
						public getConfiguration(): android.content.res.Configuration;
						public getIdentifier(name: string, defType: string, defPackage: string): number;
						public getResourceName(resid: number): string;
						public getResourcePackageName(resid: number): string;
						public getResourceTypeName(resid: number): string;
						public getResourceEntryName(resid: number): string;
						public parseBundleExtras(parser: android.content.res.IXmlResourceParser, outBundle: android.os.Bundle): void;
						public parseBundleExtra(tagName: string, attrs: android.util.IAttributeSet, outBundle: android.os.Bundle): void;
					}
					/**
					 * An tint aware android.widget.CheckedTextView.
					 */
					export class TintCheckedTextView extends android.widget.CheckedTextView {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintCheckedTextView>;
						public setCheckMarkDrawable(resid: number): void;
						/**
						 * Set the checkmark to a given Drawable. This will be drawn when #isChecked() is true.
						 * @param d The Drawable to use for the checkmark.
						 */
						setCheckMarkDrawable(d: android.graphics.drawable.Drawable): void;
					}
					export class AbsActionBarView extends android.view.ViewGroup {
						static class: java.lang.Class<android.support.v7.internal.widget.AbsActionBarView>;
						protected onConfigurationChanged(newConfig: android.content.res.Configuration): void;
						/**
						 * Sets whether the bar should be split right now, no questions asked.
						 * @param split true if the bar should split
						 */
						public setSplitToolbar(split: boolean): void;
						/**
						 * Sets whether the bar should split if we enter a narrow screen configuration.
						 * @param splitWhenNarrow true if the bar should check to split after a config change
						 */
						public setSplitWhenNarrow(splitWhenNarrow: boolean): void;
						public setContentHeight(height: number): void;
						public getContentHeight(): number;
						public setSplitView(splitView: android.view.ViewGroup): void;
						public getAnimatedVisibility(): number;
						public animateToVisibility(visibility: number): void;
						public showOverflowMenu(): boolean;
						public postShowOverflowMenu(): void;
						public hideOverflowMenu(): boolean;
						public isOverflowMenuShowing(): boolean;
						public isOverflowMenuShowPending(): boolean;
						public isOverflowReserved(): boolean;
						public canShowOverflowMenu(): boolean;
						public dismissPopupMenus(): void;
						protected measureChildView(child: android.view.View, availableWidth: number, childSpecHeight: number, spacing: number): number;
						protected static next(x: number, val: number, isRtl: boolean): number;
						protected positionChild(child: android.view.View, x: number, y: number, contentHeight: number, reverse: boolean): number;
					}
					export module AbsActionBarView {
						export class VisibilityAnimListener extends java.lang.Object {
							static class: java.lang.Class<android.support.v7.internal.widget.AbsActionBarView.VisibilityAnimListener>;
							public onAnimationStart(view: android.view.View): void;
							public onAnimationEnd(view: android.view.View): void;
							public onAnimationCancel(view: android.view.View): void;
						}
					}
					export class ActionBarBackgroundDrawable extends android.graphics.drawable.Drawable {
						static class: java.lang.Class<android.support.v7.internal.widget.ActionBarBackgroundDrawable>;
						public draw(canvas: android.graphics.Canvas): void;
						public setAlpha(alpha: number): void;
						public setColorFilter(cf: android.graphics.ColorFilter): void;
						public getOpacity(): number;
						/**
						 * Specify a color and porterduff mode to be the colorfilter for this drawable.
						 */
						setColorFilter(color: number, mode: android.graphics.PorterDuff.Mode): void;
					}
					/**
					 * An tint aware android.widget.AutoCompleteTextView.
					 */
					export class TintAutoCompleteTextView extends android.widget.AutoCompleteTextView {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintAutoCompleteTextView>;
						public setDropDownBackgroundResource(id: number): void;
						protected drawableStateChanged(): void;
					}
					/**
					 * An tint aware android.widget.RatingBar.
					 */
					export class TintRatingBar extends android.widget.RatingBar {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintRatingBar>;
						protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					}
					/**
					 * An tint aware android.widget.RadioButton.
					 */
					export class TintRadioButton extends android.widget.RadioButton {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintRadioButton>;
						public setButtonDrawable(resid: number): void;
						/**
						 * Set the background to a given Drawable
						 * @param d The Drawable to use as the background
						 */
						setButtonDrawable(d: android.graphics.drawable.Drawable): void;
					}
					/**
					 * An tint aware android.widget.MultiAutoCompleteTextView.
					 */
					export class TintMultiAutoCompleteTextView extends android.widget.MultiAutoCompleteTextView {
						constructor(context: android.content.Context);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
						static class: java.lang.Class<android.support.v7.internal.widget.TintMultiAutoCompleteTextView>;
						public setDropDownBackgroundResource(id: number): void;
						protected drawableStateChanged(): void;
					}
					export class ActionBarBackgroundDrawableV21 extends android.support.v7.internal.widget.ActionBarBackgroundDrawable {
						static class: java.lang.Class<android.support.v7.internal.widget.ActionBarBackgroundDrawableV21>;
					}
				}
			}
			export module view {
				/**
				 * When a android.view.View implements this interface it will receive callbacks when expanded or collapsed as an action view alongside the optional, app-specified callbacks to OnActionExpandListener.
				 */
				export class CollapsibleActionView implements android.support.v7.view.ICollapsibleActionView {
					constructor(implementation: android.support.v7.view.ICollapsibleActionView);
					/**
					 * Called when this view is expanded as an action view. See android.support.v4.view.MenuItemCompat#expandActionView(android.view.MenuItem).
					 */
					public onActionViewExpanded(): void;
					/**
					 * Called when this view is collapsed as an action view. See android.support.v4.view.MenuItemCompat#collapseActionView(android.view.MenuItem).
					 */
					public onActionViewCollapsed(): void;
				}
				/**
				 * Represents a contextual mode of the user interface. Action modes can be used to provide alternative interaction modes and replace parts of the normal UI until finished. Examples of good action modes include text selection and contextual actions. <div class="special reference">
				 */
				export class ActionMode extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v7.view.ActionMode>;
					/**
					 * Set a tag object associated with this ActionMode.
					 * @param tag Tag to associate with this ActionMode
					 */
					public setTag(tag: any): void;
					/**
					 * Retrieve the tag object associated with this ActionMode.
					 */
					public getTag(): any;
					/**
					 * Set the title of the action mode. This method will have no visible effect if a custom view has been set.
					 * @param title Title string to set
					 */
					public setTitle(title: string): void;
					/**
					 * Set the title of the action mode. This method will have no visible effect if a custom view has been set.
					 * @param resId Resource ID of a string to set as the title
					 */
					public setTitle(resId: number): void;
					/**
					 * Set the subtitle of the action mode. This method will have no visible effect if a custom view has been set.
					 * @param subtitle Subtitle string to set
					 */
					public setSubtitle(subtitle: string): void;
					/**
					 * Set the subtitle of the action mode. This method will have no visible effect if a custom view has been set.
					 * @param resId Resource ID of a string to set as the subtitle
					 */
					public setSubtitle(resId: number): void;
					/**
					 * Set whether or not the title/subtitle display for this action mode is optional.
					 * @param titleOptional true if the title only presents optional information.
					 */
					public setTitleOptionalHint(titleOptional: boolean): void;
					public getTitleOptionalHint(): boolean;
					public isTitleOptional(): boolean;
					/**
					 * Set a custom view for this action mode. The custom view will take the place of the title and subtitle. Useful for things like search boxes.
					 * @param view Custom view to use in place of the title/subtitle.
					 */
					public setCustomView(view: android.view.View): void;
					/**
					 * Invalidate the action mode and refresh menu content. The mode's ActionMode.Callback will have its Callback#onPrepareActionMode(ActionMode, Menu) method called. If it returns true the menu will be scanned for updated content and any relevant changes will be reflected to the user.
					 */
					public invalidate(): void;
					/**
					 * Finish and close this action mode. The action mode's ActionMode.Callback will have its Callback#onDestroyActionMode(ActionMode) method called.
					 */
					public finish(): void;
					/**
					 * Returns the menu of actions that this action mode presents.
					 */
					public getMenu(): android.view.IMenu;
					/**
					 * Returns the current title of this action mode.
					 */
					public getTitle(): string;
					/**
					 * Returns the current subtitle of this action mode.
					 */
					public getSubtitle(): string;
					/**
					 * Returns the current custom view for this action mode.
					 */
					public getCustomView(): android.view.View;
					/**
					 * Returns a MenuInflater with the ActionMode's context.
					 */
					public getMenuInflater(): android.view.MenuInflater;
				}
				export module ActionMode {
					/**
					 * Callback interface for action modes. Supplied to android.support.v7.app.AppCompatDelegate#startSupportActionMode(Callback) (Callback)}, a Callback configures and handles events raised by a user's interaction with an action mode.
					 */
					export class Callback implements android.support.v7.view.ActionMode.ICallback {
						constructor(implementation: android.support.v7.view.ActionMode.ICallback);
						/**
						 * Called when action mode is first created. The menu supplied will be used to generate action buttons for the action mode.
						 * @param mode ActionMode being created
						 * @param menu Menu used to populate action buttons
						 */
						public onCreateActionMode(mode: android.support.v7.view.ActionMode, menu: android.view.IMenu): boolean;
						/**
						 * Called to refresh an action mode's action menu whenever it is invalidated.
						 * @param mode ActionMode being prepared
						 * @param menu Menu used to populate action buttons
						 */
						public onPrepareActionMode(mode: android.support.v7.view.ActionMode, menu: android.view.IMenu): boolean;
						/**
						 * Called to report a user click on an action button.
						 * @param mode The current ActionMode
						 * @param item The item that was clicked
						 */
						public onActionItemClicked(mode: android.support.v7.view.ActionMode, item: android.view.IMenuItem): boolean;
						/**
						 * Called when an action mode is about to be exited and destroyed.
						 * @param mode The current ActionMode being destroyed
						 */
						public onDestroyActionMode(mode: android.support.v7.view.ActionMode): void;
					}
					/**
					 * Callback interface for action modes. Supplied to android.support.v7.app.AppCompatDelegate#startSupportActionMode(Callback) (Callback)}, a Callback configures and handles events raised by a user's interaction with an action mode.
					 */
					interface ICallback {
						/**
						 * Called when action mode is first created. The menu supplied will be used to generate action buttons for the action mode.
						 * @param mode ActionMode being created
						 * @param menu Menu used to populate action buttons
						 */
						onCreateActionMode(mode: android.support.v7.view.ActionMode, menu: android.view.IMenu): boolean;
						/**
						 * Called to refresh an action mode's action menu whenever it is invalidated.
						 * @param mode ActionMode being prepared
						 * @param menu Menu used to populate action buttons
						 */
						onPrepareActionMode(mode: android.support.v7.view.ActionMode, menu: android.view.IMenu): boolean;
						/**
						 * Called to report a user click on an action button.
						 * @param mode The current ActionMode
						 * @param item The item that was clicked
						 */
						onActionItemClicked(mode: android.support.v7.view.ActionMode, item: android.view.IMenuItem): boolean;
						/**
						 * Called when an action mode is about to be exited and destroyed.
						 * @param mode The current ActionMode being destroyed
						 */
						onDestroyActionMode(mode: android.support.v7.view.ActionMode): void;
					}
				}
				/**
				 * When a android.view.View implements this interface it will receive callbacks when expanded or collapsed as an action view alongside the optional, app-specified callbacks to OnActionExpandListener.
				 */
				interface ICollapsibleActionView {
					/**
					 * Called when this view is expanded as an action view. See android.support.v4.view.MenuItemCompat#expandActionView(android.view.MenuItem).
					 */
					onActionViewExpanded(): void;
					/**
					 * Called when this view is collapsed as an action view. See android.support.v4.view.MenuItemCompat#collapseActionView(android.view.MenuItem).
					 */
					onActionViewCollapsed(): void;
				}
			}
			export module widget {
				/**
				 * Space is a lightweight View subclass that may be used to create gaps between components in general purpose layouts.
				 */
				export class Space extends android.view.View {
					/**
					 * 
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
					/**
					 * 
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					/**
					 * 
					 */
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.support.v7.widget.Space>;
					/**
					 * Draw nothing.
					 * @param canvas an unused parameter.
					 */
					public draw(canvas: android.graphics.Canvas): void;
					protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					/**
					 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
					 */
					draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
				}
				/**
				 * A Layout that arranges its children in a single column or a single row. The direction of the row can be set by calling #setOrientation(int) setOrientation(). You can also specify gravity, which specifies the alignment of all the child elements by calling #setGravity(int) setGravity() or specify that specific children grow to fill up any remaining space in the layout by setting the <em>weight</em> member of LinearLayoutCompat.LayoutParams LinearLayoutCompat.LayoutParams. The default orientation is horizontal.
				 */
				export class LinearLayoutCompat extends android.view.ViewGroup {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
					static HORIZONTAL: number;
					static VERTICAL: number;
					/**
					 * Don't show any dividers.
					 */
					static SHOW_DIVIDER_NONE: number;
					/**
					 * Show a divider at the beginning of the group.
					 */
					static SHOW_DIVIDER_BEGINNING: number;
					/**
					 * Show dividers between each item in the group.
					 */
					static SHOW_DIVIDER_MIDDLE: number;
					/**
					 * Show a divider at the end of the group.
					 */
					static SHOW_DIVIDER_END: number;
					static class: java.lang.Class<android.support.v7.widget.LinearLayoutCompat>;
					/**
					 * Set how dividers should be shown between items in this layout
					 * @param showDividers One or more of {@link #SHOW_DIVIDER_BEGINNING},
					 */
					public setShowDividers(showDividers: number): void;
					public shouldDelayChildPressedState(): boolean;
					public getShowDividers(): number;
					public getDividerDrawable(): android.graphics.drawable.Drawable;
					/**
					 * Set a drawable to be used as a divider between items.
					 * @param divider Drawable that will divide each item.
					 */
					public setDividerDrawable(divider: android.graphics.drawable.Drawable): void;
					/**
					 * Set padding displayed on both ends of dividers.
					 * @param padding Padding value in pixels that will be applied to each end
					 */
					public setDividerPadding(padding: number): void;
					/**
					 * Get the padding size used to inset dividers in pixels
					 */
					public getDividerPadding(): number;
					protected onDraw(canvas: android.graphics.Canvas): void;
					drawDividersVertical(canvas: android.graphics.Canvas): void;
					drawDividersHorizontal(canvas: android.graphics.Canvas): void;
					drawHorizontalDivider(canvas: android.graphics.Canvas, top: number): void;
					drawVerticalDivider(canvas: android.graphics.Canvas, left: number): void;
					public isBaselineAligned(): boolean;
					/**
					 * @param baselineAligned true to align widgets on their baseline,
					 */
					public setBaselineAligned(baselineAligned: boolean): void;
					/**
					 * When true, all children with a weight will be considered having the minimum size of the largest child. If false, all children are measured normally.
					 */
					public isMeasureWithLargestChildEnabled(): boolean;
					/**
					 * When set to true, all children with a weight will be considered having the minimum size of the largest child. If false, all children are measured normally.
					 * @param enabled True to measure children with a weight using the
					 */
					public setMeasureWithLargestChildEnabled(enabled: boolean): void;
					public getBaseline(): number;
					public getBaselineAlignedChildIndex(): number;
					/**
					 * @param i The index of the child that will be used if this layout is
					 */
					public setBaselineAlignedChildIndex(i: number): void;
					/**
					 * @param index the child's index
					 */
					getVirtualChildAt(index: number): android.view.View;
					getVirtualChildCount(): number;
					/**
					 * Returns the desired weights sum.
					 */
					public getWeightSum(): number;
					/**
					 * Defines the desired weights sum. If unspecified the weights sum is computed at layout time by adding the layout_weight of each child.
					 * @param weightSum a number greater than 0.0f, or a number lower than or equals
					 */
					public setWeightSum(weightSum: number): void;
					protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					/**
					 * Measures the children when the orientation of this LinearLayout is set to #VERTICAL.
					 * @param widthMeasureSpec Horizontal space requirements as imposed by the parent.
					 * @param heightMeasureSpec Vertical space requirements as imposed by the parent.
					 */
					measureVertical(widthMeasureSpec: number, heightMeasureSpec: number): void;
					/**
					 * Measures the children when the orientation of this LinearLayout is set to #HORIZONTAL.
					 * @param widthMeasureSpec Horizontal space requirements as imposed by the parent.
					 * @param heightMeasureSpec Vertical space requirements as imposed by the parent.
					 */
					measureHorizontal(widthMeasureSpec: number, heightMeasureSpec: number): void;
					/**
					 * @param child the child after which we want to skip children
					 * @param index the index of the child after which we want to skip children
					 */
					getChildrenSkipCount(child: android.view.View, index: number): number;
					/**
					 * @param childIndex the index of the null child
					 */
					measureNullChild(childIndex: number): number;
					/**
					 * @param child the child to measure
					 * @param childIndex the index of the child in this view
					 * @param widthMeasureSpec horizontal space requirements as imposed by the parent
					 * @param totalWidth extra space that has been used up by the parent horizontally
					 * @param heightMeasureSpec vertical space requirements as imposed by the parent
					 * @param totalHeight extra space that has been used up by the parent vertically
					 */
					measureChildBeforeLayout(child: android.view.View, childIndex: number, widthMeasureSpec: number, totalWidth: number, heightMeasureSpec: number, totalHeight: number): void;
					/**
					 * @param child the child for which to obtain the location offset
					 */
					getLocationOffset(child: android.view.View): number;
					/**
					 * @param child the child whose next sibling will be moved
					 */
					getNextLocationOffset(child: android.view.View): number;
					protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
					/**
					 * Position the children during a layout pass if the orientation of this LinearLayout is set to #VERTICAL.
					 * @param left 
					 * @param top 
					 * @param right 
					 * @param bottom 
					 */
					layoutVertical(left: number, top: number, right: number, bottom: number): void;
					/**
					 * Position the children during a layout pass if the orientation of this LinearLayout is set to #HORIZONTAL.
					 * @param left 
					 * @param top 
					 * @param right 
					 * @param bottom 
					 */
					layoutHorizontal(left: number, top: number, right: number, bottom: number): void;
					/**
					 * Should the layout be a column or a row.
					 * @param orientation Pass {@link #HORIZONTAL} or {@link #VERTICAL}. Default
					 */
					public setOrientation(orientation: number): void;
					/**
					 * Returns the current orientation.
					 */
					public getOrientation(): number;
					/**
					 * Describes how the child views are positioned. Defaults to GRAVITY_TOP. If this layout has a VERTICAL orientation, this controls where all the child views are placed if there is extra vertical space. If this layout has a HORIZONTAL orientation, this controls the alignment of the children.
					 * @param gravity See {@link android.view.Gravity}
					 */
					public setGravity(gravity: number): void;
					public setHorizontalGravity(horizontalGravity: number): void;
					public setVerticalGravity(verticalGravity: number): void;
					public generateLayoutParams(attrs: android.util.IAttributeSet): android.support.v7.widget.LinearLayoutCompat.LayoutParams;
					/**
					 * Returns a set of layout parameters with a width of android.view.ViewGroup.LayoutParams#MATCH_PARENT and a height of android.view.ViewGroup.LayoutParams#WRAP_CONTENT when the layout's orientation is #VERTICAL. When the orientation is #HORIZONTAL, the width is set to LayoutParams#WRAP_CONTENT and the height to LayoutParams#WRAP_CONTENT.
					 */
					protected generateDefaultLayoutParams(): android.support.v7.widget.LinearLayoutCompat.LayoutParams;
					public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.support.v7.widget.LinearLayoutCompat.LayoutParams;
					protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
					public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
					public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
				}
				export module LinearLayoutCompat {
					/**
					 * Per-child layout information associated with ViewLinearLayout.
					 */
					export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
						/**
						 * 
						 */
						constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
						/**
						 * 
						 */
						constructor(width: number, height: number);
						/**
						 * Creates a new set of layout parameters with the specified width, height and weight.
						 * @param width the width, either {@link #MATCH_PARENT},
						 * @param height the height, either {@link #MATCH_PARENT},
						 * @param weight the weight
						 */
						constructor(width: number, height: number, weight: number);
						/**
						 * 
						 */
						constructor(p: android.view.ViewGroup.LayoutParams);
						/**
						 * 
						 */
						constructor(source: android.view.ViewGroup.MarginLayoutParams);
						/**
						 * Copy constructor. Clones the width, height, margin values, weight, and gravity of the source.
						 * @param source The layout params to copy from.
						 */
						constructor(source: android.support.v7.widget.LinearLayoutCompat.LayoutParams);
						/**
						 * Indicates how much of the extra space in the LinearLayout will be allocated to the view associated with these LayoutParams. Specify 0 if the view should not be stretched. Otherwise the extra pixels will be pro-rated among all views whose weight is greater than 0.
						 */
						weight: number;
						/**
						 * Gravity for the view associated with these LayoutParams.
						 */
						gravity: number;
						static class: java.lang.Class<android.support.v7.widget.LinearLayoutCompat.LayoutParams>;
					}
				}
				/**
				 * A layout that places its children in a rectangular <em>grid</em>.
				 */
				export class GridLayout extends android.support.v7.widget.ViewGroup {
					/**
					 * 
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
					/**
					 * 
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					/**
					 * 
					 */
					constructor(context: android.content.Context);
					/**
					 * The horizontal orientation.
					 */
					static HORIZONTAL: number;
					/**
					 * The vertical orientation.
					 */
					static VERTICAL: number;
					/**
					 * The constant used to indicate that a value is undefined. Fields can use this value to indicate that their values have not yet been set. Similarly, methods can return this value to indicate that there is no suitable value that the implementation can return. The value used for the constant (currently Integer#MIN_VALUE) is intended to avoid confusion between valid values whose sign may not be known.
					 */
					static UNDEFINED: number;
					/**
					 * This constant is an #setAlignmentMode(int) alignmentMode. When the alignmentMode is set to #ALIGN_BOUNDS, alignment is made between the edges of each component's raw view boundary: i.e. the area delimited by the component's: android.view.View#getTop() top, android.view.View#getLeft() left, android.view.View#getBottom() bottom and android.view.View#getRight() right properties.
					 */
					static ALIGN_BOUNDS: number;
					/**
					 * This constant is an #setAlignmentMode(int) alignmentMode. When the alignmentMode is set to #ALIGN_MARGINS, the bounds of each view are extended outwards, according to their margins, before the edges of the resulting rectangle are aligned.
					 */
					static ALIGN_MARGINS: number;
					/**
					 * Indicates that a view should be aligned with the <em>top</em> edges of the other views in its cell group.
					 */
					static TOP: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should be aligned with the <em>bottom</em> edges of the other views in its cell group.
					 */
					static BOTTOM: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should be aligned with the <em>start</em> edges of the other views in its cell group.
					 */
					static START: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should be aligned with the <em>end</em> edges of the other views in its cell group.
					 */
					static END: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should be aligned with the <em>left</em> edges of the other views in its cell group.
					 */
					static LEFT: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should be aligned with the <em>right</em> edges of the other views in its cell group.
					 */
					static RIGHT: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should be <em>centered</em> with the other views in its cell group. This constant may be used in both LayoutParams#rowSpec rowSpecs and LayoutParams#columnSpec columnSpecs.
					 */
					static CENTER: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should be aligned with the <em>baselines</em> of the other views in its cell group. This constant may only be used as an alignment in LayoutParams#rowSpec rowSpecs.
					 */
					static BASELINE: android.support.v7.widget.GridLayout.Alignment;
					/**
					 * Indicates that a view should expanded to fit the boundaries of its cell group. This constant may be used in both LayoutParams#rowSpec rowSpecs and LayoutParams#columnSpec columnSpecs.
					 */
					static FILL: android.support.v7.widget.GridLayout.Alignment;
					static class: java.lang.Class<android.support.v7.widget.GridLayout>;
					/**
					 * Returns the current orientation.
					 */
					public getOrientation(): number;
					/**
					 * Orientation is used only to generate default row/column indices when they are not specified by a component's layout parameters.
					 * @param orientation either {@link #HORIZONTAL} or {@link #VERTICAL}
					 */
					public setOrientation(orientation: number): void;
					/**
					 * Returns the current number of rows. This is either the last value that was set with #setRowCount(int) or, if no such value was set, the maximum value of each the upper bounds defined in LayoutParams#rowSpec.
					 */
					public getRowCount(): number;
					/**
					 * RowCount is used only to generate default row/column indices when they are not specified by a component's layout parameters.
					 * @param rowCount the number of rows
					 */
					public setRowCount(rowCount: number): void;
					/**
					 * Returns the current number of columns. This is either the last value that was set with #setColumnCount(int) or, if no such value was set, the maximum value of each the upper bounds defined in LayoutParams#columnSpec.
					 */
					public getColumnCount(): number;
					/**
					 * ColumnCount is used only to generate default column/column indices when they are not specified by a component's layout parameters.
					 * @param columnCount the number of columns.
					 */
					public setColumnCount(columnCount: number): void;
					/**
					 * Returns whether or not this GridLayout will allocate default margins when no corresponding layout parameters are defined.
					 */
					public getUseDefaultMargins(): boolean;
					/**
					 * When true, GridLayout allocates default margins around children based on the child's visual characteristics. Each of the margins so defined may be independently overridden by an assignment to the appropriate layout parameter.
					 * @param useDefaultMargins use {@code true} to make GridLayout allocate default margins
					 */
					public setUseDefaultMargins(useDefaultMargins: boolean): void;
					/**
					 * Returns the alignment mode.
					 */
					public getAlignmentMode(): number;
					/**
					 * Sets the alignment mode to be used for all of the alignments between the children of this container.
					 * @param alignmentMode either {@link #ALIGN_BOUNDS} or {@link #ALIGN_MARGINS}
					 */
					public setAlignmentMode(alignmentMode: number): void;
					/**
					 * Returns whether or not row boundaries are ordered by their grid indices.
					 */
					public isRowOrderPreserved(): boolean;
					/**
					 * When this property is true, GridLayout is forced to place the row boundaries so that their associated grid indices are in ascending order in the view.
					 * @param rowOrderPreserved {@code true} to force GridLayout to respect the order
					 */
					public setRowOrderPreserved(rowOrderPreserved: boolean): void;
					/**
					 * Returns whether or not column boundaries are ordered by their grid indices.
					 */
					public isColumnOrderPreserved(): boolean;
					/**
					 * When this property is true, GridLayout is forced to place the column boundaries so that their associated grid indices are in ascending order in the view.
					 * @param columnOrderPreserved use {@code true} to force GridLayout to respect the order
					 */
					public setColumnOrderPreserved(columnOrderPreserved: boolean): void;
					static max2(a: native.Array<number>, valueIfEmpty: number): number;
					static append<T>(a: native.Array<T>, b: native.Array<T>): native.Array<T>;
					static getAlignment(gravity: number, horizontal: boolean): android.support.v7.widget.GridLayout.Alignment;
					getMargin1(view: android.view.View, horizontal: boolean, leading: boolean): number;
					getLayoutParams(c: android.view.View): android.support.v7.widget.GridLayout.LayoutParams;
					protected generateDefaultLayoutParams(): android.support.v7.widget.GridLayout.LayoutParams;
					public generateLayoutParams(attrs: android.util.IAttributeSet): android.support.v7.widget.GridLayout.LayoutParams;
					public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.support.v7.widget.GridLayout.LayoutParams;
					protected onDraw(canvas: android.graphics.Canvas): void;
					protected onMeasure(widthSpec: number, heightSpec: number): void;
					getMeasurementIncludingMargin(c: android.view.View, horizontal: boolean): number;
					public requestLayout(): void;
					getAlignment(alignment: android.support.v7.widget.GridLayout.Alignment, horizontal: boolean): android.support.v7.widget.GridLayout.Alignment;
					/**
					 * 
					 */
					protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
					public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
					public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
					/**
					 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + size] </li> <li> spec.alignment = alignment </li> </ul>
					 * @param start the start
					 * @param size the size
					 * @param alignment the alignment
					 */
					public static spec(start: number, size: number, alignment: android.support.v7.widget.GridLayout.Alignment): android.support.v7.widget.GridLayout.Spec;
					/**
					 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + 1] </li> <li> spec.alignment = alignment </li> </ul>
					 * @param start the start index
					 * @param alignment the alignment
					 */
					public static spec(start: number, alignment: android.support.v7.widget.GridLayout.Alignment): android.support.v7.widget.GridLayout.Spec;
					/**
					 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + size] </li> </ul>
					 * @param start the start
					 * @param size the size
					 */
					public static spec(start: number, size: number): android.support.v7.widget.GridLayout.Spec;
					/**
					 * Return a Spec, spec, where: <ul> <li> spec.span = [start, start + 1] </li> </ul>
					 * @param start the start index
					 */
					public static spec(start: number): android.support.v7.widget.GridLayout.Spec;
					static canStretch(flexibility: number): boolean;
					/**
					 * Get the LayoutParams associated with this view. All views should have layout parameters. These supply parameters to the <i>parent</i> of this view specifying how it should be arranged. There are many subclasses of ViewGroup.LayoutParams, and these correspond to the different subclasses of ViewGroup that are responsible for arranging their children.
					 */
					getLayoutParams(): android.view.ViewGroup.LayoutParams;
				}
				export module GridLayout {
					/**
					 * Alignments specify where a view should be placed within a cell group and what size it should be.
					 */
					export class Alignment extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.widget.GridLayout.Alignment>;
						getGravityOffset(view: android.view.View, cellDelta: number): number;
						/**
						 * Returns an alignment value. In the case of vertical alignments the value returned should indicate the distance from the top of the view to the alignment location. For horizontal alignments measurement is made from the left edge of the component.
						 * @param view the view to which this alignment should be applied
						 * @param viewSize the measured size of the view
						 */
						getAlignmentValue(view: android.view.View, viewSize: number): number;
						/**
						 * Returns the size of the view specified by this alignment. In the case of vertical alignments this method should return a height; for horizontal alignments this method should return the width.
						 * @param view the view to which this alignment should be applied
						 * @param viewSize the measured size of the view
						 * @param cellSize the size of the cell into which this view will be placed
						 */
						getSizeInCell(view: android.view.View, viewSize: number, cellSize: number): number;
						getBounds(): android.support.v7.widget.GridLayout.Bounds;
					}
					/**
					 * Layout information associated with each of the children of a GridLayout.
					 */
					export class LayoutParams extends android.view.ViewGroup.MarginLayoutParams {
						/**
						 * Constructs a new LayoutParams instance for this <code>rowSpec</code> and <code>columnSpec</code>. All other fields are initialized with default values as defined in LayoutParams.
						 * @param rowSpec the rowSpec
						 * @param columnSpec the columnSpec
						 */
						constructor(rowSpec: android.support.v7.widget.GridLayout.Spec, columnSpec: android.support.v7.widget.GridLayout.Spec);
						/**
						 * Constructs a new LayoutParams with default values as defined in LayoutParams.
						 */
						constructor();
						/**
						 * 
						 */
						constructor(params: android.view.ViewGroup.LayoutParams);
						/**
						 * 
						 */
						constructor(params: android.view.ViewGroup.MarginLayoutParams);
						/**
						 * 
						 */
						constructor(that: android.support.v7.widget.GridLayout.LayoutParams);
						/**
						 * 
						 */
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						/**
						 * The spec that defines the vertical characteristics of the cell group described by these layout parameters. If an assignment is made to this field after a measurement or layout operation has already taken place, a call to ViewGroup#setLayoutParams(ViewGroup.LayoutParams) must be made to notify GridLayout of the change. GridLayout is normally able to detect when code fails to observe this rule, issue a warning and take steps to compensate for the omission. This facility is implemented on a best effort basis and should not be relied upon in production code - so it is best to include the above calls to remove the warnings as soon as it is practical.
						 */
						rowSpec: android.support.v7.widget.GridLayout.Spec;
						/**
						 * The spec that defines the horizontal characteristics of the cell group described by these layout parameters. If an assignment is made to this field after a measurement or layout operation has already taken place, a call to ViewGroup#setLayoutParams(ViewGroup.LayoutParams) must be made to notify GridLayout of the change. GridLayout is normally able to detect when code fails to observe this rule, issue a warning and take steps to compensate for the omission. This facility is implemented on a best effort basis and should not be relied upon in production code - so it is best to include the above calls to remove the warnings as soon as it is practical.
						 */
						columnSpec: android.support.v7.widget.GridLayout.Spec;
						static class: java.lang.Class<android.support.v7.widget.GridLayout.LayoutParams>;
						/**
						 * Describes how the child views are positioned. Default is LEFT | BASELINE. See Gravity.
						 * @param gravity the new gravity value
						 */
						public setGravity(gravity: number): void;
						protected setBaseAttributes(attributes: android.content.res.TypedArray, widthAttr: number, heightAttr: number): void;
						setRowSpecSpan(span: android.support.v7.widget.GridLayout.Interval): void;
						setColumnSpecSpan(span: android.support.v7.widget.GridLayout.Interval): void;
						public equals(o: any): boolean;
						public hashCode(): number;
					}
					export class Arc extends java.lang.Object {
						constructor(span: android.support.v7.widget.GridLayout.Interval, value: android.support.v7.widget.GridLayout.MutableInt);
						span: android.support.v7.widget.GridLayout.Interval;
						value: android.support.v7.widget.GridLayout.MutableInt;
						valid: boolean;
						static class: java.lang.Class<android.support.v7.widget.GridLayout.Arc>;
						public toString(): string;
					}
					export class PackedMap<K, V> extends java.lang.Object {
						index: native.Array<number>;
						keys: native.Array<K>;
						values: native.Array<V>;
						static class: java.lang.Class<android.support.v7.widget.GridLayout.PackedMap<any, any>>;
						public getValue(i: number): V;
					}
					export class MutableInt extends java.lang.Object {
						constructor();
						constructor(value: number);
						value: number;
						static class: java.lang.Class<android.support.v7.widget.GridLayout.MutableInt>;
						public reset(): void;
						public toString(): string;
					}
					export class Bounds extends java.lang.Object {
						before: number;
						after: number;
						flexibility: number;
						static class: java.lang.Class<android.support.v7.widget.GridLayout.Bounds>;
						protected reset(): void;
						protected include(before: number, after: number): void;
						protected size(min: boolean): number;
						protected getOffset(c: android.view.View, alignment: android.support.v7.widget.GridLayout.Alignment, size: number): number;
						protected include(c: android.view.View, spec: android.support.v7.widget.GridLayout.Spec, gridLayout: android.support.v7.widget.GridLayout, axis: android.support.v7.widget.GridLayout.Axis): void;
						public toString(): string;
					}
					export class Assoc<K, V> extends java.util.ArrayList<android.util.Pair<K, V>> {
						static class: java.lang.Class<android.support.v7.widget.GridLayout.Assoc<any, any>>;
						public static of<K, V>(keyType: java.lang.Class<K>, valueType: java.lang.Class<V>): android.support.v7.widget.GridLayout.Assoc<K, V>;
						public put(key: K, value: V): void;
						public pack(): android.support.v7.widget.GridLayout.PackedMap<K, V>;
					}
					/**
					 * A Spec defines the horizontal or vertical characteristics of a group of cells. Each spec. defines the <em>grid indices</em> and <em>alignment</em> along the appropriate axis.
					 */
					export class Spec extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.widget.GridLayout.Spec>;
						copyWriteSpan(span: android.support.v7.widget.GridLayout.Interval): android.support.v7.widget.GridLayout.Spec;
						copyWriteAlignment(alignment: android.support.v7.widget.GridLayout.Alignment): android.support.v7.widget.GridLayout.Spec;
						getFlexibility(): number;
						/**
						 * Returns true if the class, alignment and span properties of this Spec and the supplied parameter are pairwise equal, false otherwise.
						 * @param that the object to compare this spec with
						 */
						public equals(that: any): boolean;
						public hashCode(): number;
					}
					export class Axis extends java.lang.Object {
						horizontal: boolean;
						definedCount: number;
						groupBoundsValid: boolean;
						forwardLinksValid: boolean;
						backwardLinksValid: boolean;
						leadingMargins: native.Array<number>;
						leadingMarginsValid: boolean;
						trailingMargins: native.Array<number>;
						trailingMarginsValid: boolean;
						arcs: native.Array<android.support.v7.widget.GridLayout.Arc>;
						arcsValid: boolean;
						locations: native.Array<number>;
						locationsValid: boolean;
						static class: java.lang.Class<android.support.v7.widget.GridLayout.Axis>;
						public getCount(): number;
						public setCount(count: number): void;
						public isOrderPreserved(): boolean;
						public setOrderPreserved(orderPreserved: boolean): void;
						public getGroupBounds(): android.support.v7.widget.GridLayout.PackedMap<android.support.v7.widget.GridLayout.Spec, android.support.v7.widget.GridLayout.Bounds>;
						groupArcsByFirstVertex(arcs: native.Array<android.support.v7.widget.GridLayout.Arc>): native.Array<native.Array<android.support.v7.widget.GridLayout.Arc>>;
						public getArcs(): native.Array<android.support.v7.widget.GridLayout.Arc>;
						public getLeadingMargins(): native.Array<number>;
						public getTrailingMargins(): native.Array<number>;
						public getLocations(): native.Array<number>;
						public getMeasure(measureSpec: number): number;
						public layout(size: number): void;
						public invalidateStructure(): void;
						public invalidateValues(): void;
					}
					/**
					 * An Interval represents a contiguous range of values that lie between the interval's #min and #max values.
					 */
					export class Interval extends java.lang.Object {
						/**
						 * Construct a new Interval, interval, where: <ul> <li> interval.min = min </li> <li> interval.max = max </li> </ul>
						 * @param min the minimum value.
						 * @param max the maximum value.
						 */
						constructor(min: number, max: number);
						/**
						 * The minimum value.
						 */
						min: number;
						/**
						 * The maximum value.
						 */
						max: number;
						static class: java.lang.Class<android.support.v7.widget.GridLayout.Interval>;
						size(): number;
						inverse(): android.support.v7.widget.GridLayout.Interval;
						/**
						 * Returns true if the #getClass class, #min and #max properties of this Interval and the supplied parameter are pairwise equal; false otherwise.
						 * @param that the object to compare this interval with
						 */
						public equals(that: any): boolean;
						public hashCode(): number;
						public toString(): string;
					}
				}
				/**
				 * A widget that provides a user interface for the user to enter a search query and submit a request to a search provider. Shows a list of query suggestions or results, if available, and allows the user to pick a suggestion or result to launch into.
				 */
				export class SearchView extends android.support.v7.widget.LinearLayoutCompat implements android.support.v7.view.ICollapsibleActionView {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
					static class: java.lang.Class<android.support.v7.widget.SearchView>;
					getSuggestionRowLayout(): number;
					getSuggestionCommitIconResId(): number;
					/**
					 * Sets the SearchableInfo for this SearchView. Properties in the SearchableInfo are used to display labels, hints, suggestions, create intents for launching search results screens and controlling other affordances such as a voice button.
					 * @param searchable a SearchableInfo can be retrieved from the SearchManager, for a specific
					 */
					public setSearchableInfo(searchable: android.app.SearchableInfo): void;
					/**
					 * Sets the IME options on the query text field.
					 * @param imeOptions the options to set on the query text field
					 */
					public setImeOptions(imeOptions: number): void;
					/**
					 * Returns the IME options set on the query text field.
					 */
					public getImeOptions(): number;
					/**
					 * Sets the input type on the query text field.
					 * @param inputType the input type to set on the query text field
					 */
					public setInputType(inputType: number): void;
					/**
					 * Returns the input type set on the query text field.
					 */
					public getInputType(): number;
					/**
					 * Sets a listener for user actions within the SearchView.
					 * @param listener the listener object that receives callbacks when the user performs
					 */
					public setOnQueryTextListener(listener: android.support.v7.widget.SearchView.IOnQueryTextListener): void;
					/**
					 * Sets a listener to inform when the user closes the SearchView.
					 * @param listener the listener to call when the user closes the SearchView.
					 */
					public setOnCloseListener(listener: android.support.v7.widget.SearchView.IOnCloseListener): void;
					/**
					 * Sets a listener to inform when the focus of the query text field changes.
					 * @param listener the listener to inform of focus changes.
					 */
					public setOnQueryTextFocusChangeListener(listener: android.view.View.IOnFocusChangeListener): void;
					/**
					 * Sets a listener to inform when a suggestion is focused or clicked.
					 * @param listener the listener to inform of suggestion selection events.
					 */
					public setOnSuggestionListener(listener: android.support.v7.widget.SearchView.IOnSuggestionListener): void;
					/**
					 * Sets a listener to inform when the search button is pressed. This is only relevant when the text field is not visible by default. Calling #setIconified setIconified(false) can also cause this listener to be informed.
					 * @param listener the listener to inform when the search button is clicked or
					 */
					public setOnSearchClickListener(listener: android.view.View.IOnClickListener): void;
					/**
					 * Returns the query string currently in the text field.
					 */
					public getQuery(): string;
					/**
					 * Sets a query string in the text field and optionally submits the query as well.
					 * @param query the query string. This replaces any query text already present in the
					 * @param submit whether to submit the query right now or only update the contents of
					 */
					public setQuery(query: string, submit: boolean): void;
					/**
					 * Sets the hint text to display in the query text field. This overrides any hint specified in the SearchableInfo.
					 * @param hint the hint text to display
					 */
					public setQueryHint(hint: string): void;
					/**
					 * Gets the hint text to display in the query text field.
					 */
					public getQueryHint(): string;
					/**
					 * Sets the default or resting state of the search field. If true, a single search icon is shown by default and expands to show the text field and other buttons when pressed. Also, if the default state is iconified, then it collapses to that state when the close button is pressed. Changes to this property will take effect immediately.
					 * @param iconified whether the search field should be iconified by default
					 */
					public setIconifiedByDefault(iconified: boolean): void;
					/**
					 * Returns the default iconified state of the search field.
					 */
					public isIconfiedByDefault(): boolean;
					/**
					 * Iconifies or expands the SearchView. Any query text is cleared when iconified. This is a temporary state and does not override the default iconified state set by #setIconifiedByDefault(boolean). If the default state is iconified, then a false here will only be valid until the user closes the field. And if the default state is expanded, then a true here will only clear the text field and not close it.
					 * @param iconify a true value will collapse the SearchView to an icon, while a false will
					 */
					public setIconified(iconify: boolean): void;
					/**
					 * Returns the current iconified state of the SearchView.
					 */
					public isIconified(): boolean;
					/**
					 * Enables showing a submit button when the query is non-empty. In cases where the SearchView is being used to filter the contents of the current activity and doesn't launch a separate results activity, then the submit button should be disabled.
					 * @param enabled true to show a submit button for submitting queries, false if a submit
					 */
					public setSubmitButtonEnabled(enabled: boolean): void;
					/**
					 * Returns whether the submit button is enabled when necessary or never displayed.
					 */
					public isSubmitButtonEnabled(): boolean;
					/**
					 * Specifies if a query refinement button should be displayed alongside each suggestion or if it should depend on the flags set in the individual items retrieved from the suggestions provider. Clicking on the query refinement button will replace the text in the query text field with the text from the suggestion. This flag only takes effect if a SearchableInfo has been specified with #setSearchableInfo(SearchableInfo) and not when using a custom adapter.
					 * @param enable true if all items should have a query refinement button, false if only
					 */
					public setQueryRefinementEnabled(enable: boolean): void;
					/**
					 * Returns whether query refinement is enabled for all items or only specific ones.
					 */
					public isQueryRefinementEnabled(): boolean;
					/**
					 * You can set a custom adapter if you wish. Otherwise the default adapter is used to display the suggestions from the suggestions provider associated with the SearchableInfo.
					 */
					public setSuggestionsAdapter(adapter: android.support.v4.widget.CursorAdapter): void;
					/**
					 * Returns the adapter used for suggestions, if any.
					 */
					public getSuggestionsAdapter(): android.support.v4.widget.CursorAdapter;
					/**
					 * Makes the view at most this many pixels wide
					 */
					public setMaxWidth(maxpixels: number): void;
					/**
					 * Gets the specified maximum width in pixels, if set. Returns zero if no maximum width was specified.
					 */
					public getMaxWidth(): number;
					protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					protected onDetachedFromWindow(): void;
					onTextFocusChanged(): void;
					public onWindowFocusChanged(hasWindowFocus: boolean): void;
					/**
					 * 
					 */
					public onActionViewCollapsed(): void;
					/**
					 * 
					 */
					public onActionViewExpanded(): void;
					static isLandscapeMode(context: android.content.Context): boolean;
				}
				export module SearchView {
					/**
					 * Callbacks for changes to the query text.
					 */
					interface IOnQueryTextListener {
						/**
						 * Called when the user submits the query. This could be due to a key press on the keyboard or due to pressing a submit button. The listener can override the standard behavior by returning true to indicate that it has handled the submit request. Otherwise return false to let the SearchView handle the submission by launching any associated intent.
						 * @param query the query text that is to be submitted
						 */
						onQueryTextSubmit(query: string): boolean;
						/**
						 * Called when the query text is changed by the user.
						 * @param newText the new content of the query text field.
						 */
						onQueryTextChange(newText: string): boolean;
					}
					export class OnCloseListener implements android.support.v7.widget.SearchView.IOnCloseListener {
						constructor(implementation: android.support.v7.widget.SearchView.IOnCloseListener);
						/**
						 * The user is attempting to close the SearchView.
						 */
						public onClose(): boolean;
					}
					/**
					 * Callbacks for changes to the query text.
					 */
					export class OnQueryTextListener implements android.support.v7.widget.SearchView.IOnQueryTextListener {
						constructor(implementation: android.support.v7.widget.SearchView.IOnQueryTextListener);
						/**
						 * Called when the user submits the query. This could be due to a key press on the keyboard or due to pressing a submit button. The listener can override the standard behavior by returning true to indicate that it has handled the submit request. Otherwise return false to let the SearchView handle the submission by launching any associated intent.
						 * @param query the query text that is to be submitted
						 */
						public onQueryTextSubmit(query: string): boolean;
						/**
						 * Called when the query text is changed by the user.
						 * @param newText the new content of the query text field.
						 */
						public onQueryTextChange(newText: string): boolean;
					}
					interface IOnCloseListener {
						/**
						 * The user is attempting to close the SearchView.
						 */
						onClose(): boolean;
					}
					export class AutoCompleteTextViewReflector extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.widget.SearchView.AutoCompleteTextViewReflector>;
						doBeforeTextChanged(view: android.widget.AutoCompleteTextView): void;
						doAfterTextChanged(view: android.widget.AutoCompleteTextView): void;
						ensureImeVisible(view: android.widget.AutoCompleteTextView, visible: boolean): void;
						showSoftInputUnchecked(imm: android.view.inputmethod.InputMethodManager, view: android.view.View, flags: number): void;
					}
					/**
					 * Callback interface for selection events on suggestions. These callbacks are only relevant when a SearchableInfo has been specified by #setSearchableInfo.
					 */
					export class OnSuggestionListener implements android.support.v7.widget.SearchView.IOnSuggestionListener {
						constructor(implementation: android.support.v7.widget.SearchView.IOnSuggestionListener);
						/**
						 * Called when a suggestion was selected by navigating to it.
						 * @param position the absolute position in the list of suggestions.
						 */
						public onSuggestionSelect(position: number): boolean;
						/**
						 * Called when a suggestion was clicked.
						 * @param position the absolute position of the clicked item in the list of suggestions.
						 */
						public onSuggestionClick(position: number): boolean;
					}
					/**
					 * Callback interface for selection events on suggestions. These callbacks are only relevant when a SearchableInfo has been specified by #setSearchableInfo.
					 */
					interface IOnSuggestionListener {
						/**
						 * Called when a suggestion was selected by navigating to it.
						 * @param position the absolute position in the list of suggestions.
						 */
						onSuggestionSelect(position: number): boolean;
						/**
						 * Called when a suggestion was clicked.
						 * @param position the absolute position of the clicked item in the list of suggestions.
						 */
						onSuggestionClick(position: number): boolean;
					}
				}
				/**
				 * Static library support version of the framework's android.widget.ListPopupWindow. Used to write apps that run on platforms prior to Android L. When running on Android L or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class ListPopupWindow extends java.lang.Object {
					/**
					 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable).
					 * @param context Context used for contained views.
					 */
					constructor(context: android.content.Context);
					/**
					 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable).
					 * @param context Context used for contained views.
					 * @param attrs Attributes from inflating parent views used to style the popup.
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					/**
					 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable).
					 * @param context Context used for contained views.
					 * @param attrs Attributes from inflating parent views used to style the popup.
					 * @param defStyleAttr Default style attribute to use for popup content.
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
					/**
					 * Create a new, empty popup window capable of displaying items from a ListAdapter. Backgrounds should be set using #setBackgroundDrawable(Drawable).
					 * @param context Context used for contained views.
					 * @param attrs Attributes from inflating parent views used to style the popup.
					 * @param defStyleAttr Style attribute to read for default styling of popup content.
					 * @param defStyleRes Style resource ID to use for default styling of popup content.
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number, defStyleRes: number);
					/**
					 * The provided prompt view should appear above list content.
					 */
					static POSITION_PROMPT_ABOVE: number;
					/**
					 * The provided prompt view should appear below list content.
					 */
					static POSITION_PROMPT_BELOW: number;
					/**
					 * Alias for ViewGroup.LayoutParams#MATCH_PARENT. If used to specify a popup width, the popup will match the width of the anchor view. If used to specify a popup height, the popup will fill available space.
					 */
					static MATCH_PARENT: number;
					/**
					 * Alias for ViewGroup.LayoutParams#WRAP_CONTENT. If used to specify a popup width, the popup will use the width of its content.
					 */
					static WRAP_CONTENT: number;
					/**
					 * Mode for #setInputMethodMode(int): the requirements for the input method should be based on the focusability of the popup. That is if it is focusable than it needs to work with the input method, else it doesn't.
					 */
					static INPUT_METHOD_FROM_FOCUSABLE: number;
					/**
					 * Mode for #setInputMethodMode(int): this popup always needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed so that the user can also operate the input method while it is shown.
					 */
					static INPUT_METHOD_NEEDED: number;
					/**
					 * Mode for #setInputMethodMode(int): this popup never needs to work with an input method, regardless of whether it is focusable. This means that it will always be displayed to use as much space on the screen as needed, regardless of whether this covers the input method.
					 */
					static INPUT_METHOD_NOT_NEEDED: number;
					static class: java.lang.Class<android.support.v7.widget.ListPopupWindow>;
					/**
					 * Sets the adapter that provides the data and the views to represent the data in this popup window.
					 * @param adapter The adapter to use to create this window's content.
					 */
					public setAdapter(adapter: android.widget.IListAdapter): void;
					/**
					 * Set where the optional prompt view should appear. The default is #POSITION_PROMPT_ABOVE.
					 * @param position A position constant declaring where the prompt should be displayed.
					 */
					public setPromptPosition(position: number): void;
					public getPromptPosition(): number;
					/**
					 * Set whether this window should be modal when shown.
					 * @param modal {@code true} if the popup window should be modal, {@code false} otherwise.
					 */
					public setModal(modal: boolean): void;
					/**
					 * Returns whether the popup window will be modal when shown.
					 */
					public isModal(): boolean;
					/**
					 * Sets the operating mode for the soft input area.
					 * @param mode The desired mode, see
					 */
					public setSoftInputMode(mode: number): void;
					/**
					 * Returns the current value in #setSoftInputMode(int).
					 */
					public getSoftInputMode(): number;
					/**
					 * Sets a drawable to use as the list item selector.
					 * @param selector List selector drawable to use in the popup.
					 */
					public setListSelector(selector: android.graphics.drawable.Drawable): void;
					public getBackground(): android.graphics.drawable.Drawable;
					/**
					 * Sets a drawable to be the background for the popup window.
					 * @param d A drawable to set as the background.
					 */
					public setBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
					/**
					 * Set an animation style to use when the popup window is shown or dismissed.
					 * @param animationStyle Animation style to use.
					 */
					public setAnimationStyle(animationStyle: number): void;
					/**
					 * Returns the animation style that will be used when the popup window is shown or dismissed.
					 */
					public getAnimationStyle(): number;
					/**
					 * Returns the view that will be used to anchor this popup.
					 */
					public getAnchorView(): android.view.View;
					/**
					 * Sets the popup's anchor view. This popup will always be positioned relative to the anchor view when shown.
					 * @param anchor The view to use as an anchor.
					 */
					public setAnchorView(anchor: android.view.View): void;
					public getHorizontalOffset(): number;
					/**
					 * Set the horizontal offset of this popup from its anchor view in pixels.
					 * @param offset The horizontal offset of the popup from its anchor.
					 */
					public setHorizontalOffset(offset: number): void;
					public getVerticalOffset(): number;
					/**
					 * Set the vertical offset of this popup from its anchor view in pixels.
					 * @param offset The vertical offset of the popup from its anchor.
					 */
					public setVerticalOffset(offset: number): void;
					/**
					 * Set the gravity of the dropdown list. This is commonly used to set gravity to START or END for alignment with the anchor.
					 * @param gravity Gravity value to use
					 */
					public setDropDownGravity(gravity: number): void;
					public getWidth(): number;
					/**
					 * Sets the width of the popup window in pixels. Can also be #MATCH_PARENT or #WRAP_CONTENT.
					 * @param width Width of the popup window.
					 */
					public setWidth(width: number): void;
					/**
					 * Sets the width of the popup window by the size of its content. The final width may be larger to accommodate styled window dressing.
					 * @param width Desired width of content in pixels.
					 */
					public setContentWidth(width: number): void;
					public getHeight(): number;
					/**
					 * Sets the height of the popup window in pixels. Can also be #MATCH_PARENT.
					 * @param height Height of the popup window.
					 */
					public setHeight(height: number): void;
					/**
					 * Sets a listener to receive events when a list item is clicked.
					 * @param clickListener Listener to register
					 */
					public setOnItemClickListener(clickListener: android.widget.AdapterView.IOnItemClickListener): void;
					/**
					 * Sets a listener to receive events when a list item is selected.
					 * @param selectedListener Listener to register.
					 */
					public setOnItemSelectedListener(selectedListener: android.widget.AdapterView.IOnItemSelectedListener): void;
					/**
					 * Set a view to act as a user prompt for this popup window. Where the prompt view will appear is controlled by #setPromptPosition(int).
					 * @param prompt View to use as an informational prompt.
					 */
					public setPromptView(prompt: android.view.View): void;
					/**
					 * Post a #show() call to the UI thread.
					 */
					public postShow(): void;
					/**
					 * Show the popup list. If the list is already showing, this method will recalculate the popup's size and position.
					 */
					public show(): void;
					/**
					 * Dismiss the popup window.
					 */
					public dismiss(): void;
					/**
					 * Set a listener to receive a callback when the popup is dismissed.
					 * @param listener Listener that will be notified when the popup is dismissed.
					 */
					public setOnDismissListener(listener: android.widget.PopupWindow.IOnDismissListener): void;
					/**
					 * Control how the popup operates with an input method: one of #INPUT_METHOD_FROM_FOCUSABLE, #INPUT_METHOD_NEEDED, or #INPUT_METHOD_NOT_NEEDED.
					 */
					public setInputMethodMode(mode: number): void;
					/**
					 * Return the current value in #setInputMethodMode(int).
					 */
					public getInputMethodMode(): number;
					/**
					 * Set the selected position of the list. Only valid when #isShowing() == true.
					 * @param position List position to set as selected.
					 */
					public setSelection(position: number): void;
					/**
					 * Clear any current list selection. Only valid when #isShowing() == true.
					 */
					public clearListSelection(): void;
					public isShowing(): boolean;
					public isInputMethodNotNeeded(): boolean;
					/**
					 * Perform an item click operation on the specified list adapter position.
					 * @param position Adapter position for performing the click
					 */
					public performItemClick(position: number): boolean;
					public getSelectedItem(): any;
					public getSelectedItemPosition(): number;
					public getSelectedItemId(): any;
					public getSelectedView(): android.view.View;
					public getListView(): android.widget.ListView;
					/**
					 * The maximum number of list items that can be visible and still have the list expand when touched.
					 * @param max Max number of items that can be visible and still allow the list to expand.
					 */
					setListItemExpandMax(max: number): void;
					/**
					 * Filter key down events. By forwarding key down events to this function, views using non-modal ListPopupWindow can have it handle key selection of items.
					 * @param keyCode keyCode param passed to the host view's onKeyDown
					 * @param event event param passed to the host view's onKeyDown
					 */
					public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
					/**
					 * Filter key down events. By forwarding key up events to this function, views using non-modal ListPopupWindow can have it handle key selection of items.
					 * @param keyCode keyCode param passed to the host view's onKeyUp
					 * @param event event param passed to the host view's onKeyUp
					 */
					public onKeyUp(keyCode: number, event: android.view.KeyEvent): boolean;
					/**
					 * Filter pre-IME key events. By forwarding View#onKeyPreIme(int, KeyEvent) events to this function, views using ListPopupWindow can have it dismiss the popup when the back key is pressed.
					 * @param keyCode keyCode param passed to the host view's onKeyPreIme
					 * @param event event param passed to the host view's onKeyPreIme
					 */
					public onKeyPreIme(keyCode: number, event: android.view.KeyEvent): boolean;
					/**
					 * Returns an OnTouchListener that can be added to the source view to implement drag-to-open behavior. Generally, the source view should be the same view that was passed to #setAnchorView.
					 * @param src the view on which the resulting listener will be set
					 */
					public createDragToOpenListener(src: android.view.View): android.view.View.IOnTouchListener;
				}
				export module ListPopupWindow {
					export class DropDownListView extends android.widget.ListView {
						/**
						 * @param context this view's context
						 * @param hijackFocus 
						 */
						constructor(context: android.content.Context, hijackFocus: boolean);
						static class: java.lang.Class<android.support.v7.widget.ListPopupWindow.DropDownListView>;
						/**
						 * Handles forwarded events.
						 * @param event activePointerId id of the pointer that activated forwarding
						 * @param activePointerId 
						 */
						public onForwardedEvent(event: android.view.MotionEvent, activePointerId: number): boolean;
						protected touchModeDrawsInPressedStateCompat(): boolean;
						public isInTouchMode(): boolean;
						public hasWindowFocus(): boolean;
						public isFocused(): boolean;
						public hasFocus(): boolean;
					}
					export class ResizePopupRunnable extends java.lang.Object implements java.lang.IRunnable {
						static class: java.lang.Class<android.support.v7.widget.ListPopupWindow.ResizePopupRunnable>;
						public run(): void;
					}
					export class ListSelectorHider extends java.lang.Object implements java.lang.IRunnable {
						static class: java.lang.Class<android.support.v7.widget.ListPopupWindow.ListSelectorHider>;
						public run(): void;
					}
					export class PopupScrollListener extends java.lang.Object implements android.widget.AbsListView.IOnScrollListener {
						static class: java.lang.Class<android.support.v7.widget.ListPopupWindow.PopupScrollListener>;
						public onScroll(view: android.widget.AbsListView, firstVisibleItem: number, visibleItemCount: number, totalItemCount: number): void;
						public onScrollStateChanged(view: android.widget.AbsListView, scrollState: number): void;
					}
					export class PopupDataSetObserver extends android.database.DataSetObserver {
						static class: java.lang.Class<android.support.v7.widget.ListPopupWindow.PopupDataSetObserver>;
						public onChanged(): void;
						public onInvalidated(): void;
					}
					export class PopupTouchInterceptor extends java.lang.Object implements android.view.View.IOnTouchListener {
						static class: java.lang.Class<android.support.v7.widget.ListPopupWindow.PopupTouchInterceptor>;
						public onTouch(v: android.view.View, event: android.view.MotionEvent): boolean;
					}
				}
				/**
				 * Custom ViewGroup providing some services to the support implementation of GridLayout.
				 */
				export class ViewGroup extends android.view.ViewGroup {
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyle: number);
					static class: java.lang.Class<android.support.v7.widget.ViewGroup>;
					/**
					 * Utility to reconcile a desired size and state, with constraints imposed by a MeasureSpec. Will take the desired size, unless a different size is imposed by the constraints. The returned value is a compound integer, with the resolved size in the #MEASURED_SIZE_MASK bits and optionally the bit #MEASURED_STATE_TOO_SMALL set if the resulting size is smaller than the size the view wants to be.
					 * @param size How big the view wants to be
					 * @param measureSpec Constraints imposed by the parent
					 * @param childMeasuredState 
					 */
					public static resolveSizeAndState(size: number, measureSpec: number, childMeasuredState: number): number;
					protected static isLayoutRtl(view: android.view.View): boolean;
				}
				/**
				 * ActionMenuView is a presentation of a series of menu options as a View. It provides several top level options as action buttons while spilling remaining options over as items in an overflow menu. This allows applications to present packs of actions inline with specific or repeating content.
				 */
				export class ActionMenuView extends android.support.v7.widget.LinearLayoutCompat {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					static class: java.lang.Class<android.support.v7.widget.ActionMenuView>;
					/**
					 * Specifies the theme to use when inflating popup menus. By default, uses the same theme as the action menu view itself.
					 * @param resId theme used to inflate popup menus
					 */
					public setPopupTheme(resId: number): void;
					public getPopupTheme(): number;
					public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
					public setOnMenuItemClickListener(listener: android.support.v7.widget.ActionMenuView.IOnMenuItemClickListener): void;
					protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					/**
					 * Measure a child view to fit within cell-based formatting. The child's width will be measured to a whole multiple of cellSize.
					 * @param child Child to measure
					 * @param cellSize Size of one cell
					 * @param cellsRemaining Number of cells remaining that this view can expand to fill
					 * @param parentHeightMeasureSpec MeasureSpec used by the parent view
					 * @param parentHeightPadding Padding present in the parent view
					 */
					static measureChildForCells(child: android.view.View, cellSize: number, cellsRemaining: number, parentHeightMeasureSpec: number, parentHeightPadding: number): number;
					protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
					public onDetachedFromWindow(): void;
					protected generateDefaultLayoutParams(): android.support.v7.widget.ActionMenuView.LayoutParams;
					public generateLayoutParams(attrs: android.util.IAttributeSet): android.support.v7.widget.ActionMenuView.LayoutParams;
					public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.support.v7.widget.ActionMenuView.LayoutParams;
					protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
					/**
					 * Returns the Menu object that this ActionMenuView is currently presenting.
					 */
					public getMenu(): android.view.IMenu;
					/**
					 * Show the overflow items from the associated menu.
					 */
					public showOverflowMenu(): boolean;
					/**
					 * Hide the overflow items from the associated menu.
					 */
					public hideOverflowMenu(): boolean;
					/**
					 * Check whether the overflow menu is currently showing. This may not reflect a pending show operation in progress.
					 */
					public isOverflowMenuShowing(): boolean;
					/**
					 * Dismiss any popups associated with this menu view.
					 */
					public dismissPopupMenus(): void;
					public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
				}
				export module ActionMenuView {
					export class ActionMenuPresenterCallback extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.widget.ActionMenuView.ActionMenuPresenterCallback>;
					}
					export class MenuBuilderCallback extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.widget.ActionMenuView.MenuBuilderCallback>;
					}
					export class LayoutParams extends android.support.v7.widget.LinearLayoutCompat.LayoutParams {
						constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(other: android.view.ViewGroup.LayoutParams);
						constructor(other: android.support.v7.widget.ActionMenuView.LayoutParams);
						constructor(width: number, height: number);
						isOverflowButton: boolean;
						cellsUsed: number;
						extraPixels: number;
						expandable: boolean;
						preventEdgeOffset: boolean;
						static class: java.lang.Class<android.support.v7.widget.ActionMenuView.LayoutParams>;
					}
					/**
					 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
					 */
					export class OnMenuItemClickListener implements android.support.v7.widget.ActionMenuView.IOnMenuItemClickListener {
						constructor(implementation: android.support.v7.widget.ActionMenuView.IOnMenuItemClickListener);
						/**
						 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
						 * @param item {@link MenuItem} that was clicked
						 */
						public onMenuItemClick(item: android.view.IMenuItem): boolean;
					}
					/**
					 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
					 */
					interface IOnMenuItemClickListener {
						/**
						 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
						 * @param item {@link MenuItem} that was clicked
						 */
						onMenuItemClick(item: android.view.IMenuItem): boolean;
					}
				}
				/**
				 * This is a provider for a share action. It is responsible for creating views that enable data sharing and also to show a sub menu with sharing activities if the hosting item is placed on the overflow menu.
				 */
				export class ShareActionProvider {
					/**
					 * Creates a new instance.
					 * @param context Context for accessing resources.
					 */
					constructor(context: android.content.Context);
					/**
					 * The default name for storing share history.
					 */
					static DEFAULT_SHARE_HISTORY_FILE_NAME: string;
					static class: java.lang.Class<android.support.v7.widget.ShareActionProvider>;
					/**
					 * Sets a listener to be notified when a share target has been selected. The listener can optionally decide to handle the selection and not rely on the default behavior which is to launch the activity.
					 * @param listener The listener.
					 */
					public setOnShareTargetSelectedListener(listener: android.support.v7.widget.ShareActionProvider.IOnShareTargetSelectedListener): void;
					/**
					 * 
					 */
					public onCreateActionView(): android.view.View;
					/**
					 * 
					 */
					public hasSubMenu(): boolean;
					/**
					 * 
					 */
					public onPrepareSubMenu(subMenu: android.view.ISubMenu): void;
					/**
					 * Sets the file name of a file for persisting the share history which history will be used for ordering share targets. This file will be used for all view created by #onCreateActionView(). Defaults to #DEFAULT_SHARE_HISTORY_FILE_NAME. Set to <code>null</code> if share history should not be persisted between sessions.
					 * @param shareHistoryFile The share history file name.
					 */
					public setShareHistoryFileName(shareHistoryFile: string): void;
					/**
					 * Sets an intent with information about the share action. Here is a sample for constructing a share intent:
					 * @param shareIntent The share intent.
					 */
					public setShareIntent(shareIntent: android.content.Intent): void;
				}
				export module ShareActionProvider {
					/**
					 * Reusable listener for handling share item clicks.
					 */
					export class ShareMenuItemOnMenuItemClickListener extends java.lang.Object implements android.view.MenuItem.IOnMenuItemClickListener {
						static class: java.lang.Class<android.support.v7.widget.ShareActionProvider.ShareMenuItemOnMenuItemClickListener>;
						public onMenuItemClick(item: android.view.IMenuItem): boolean;
					}
					/**
					 * Listener for the event of selecting a share target.
					 */
					interface IOnShareTargetSelectedListener {
						/**
						 * Called when a share target has been selected. The client can decide whether to perform some action before the sharing is actually performed.
						 * @param source The source of the notification.
						 * @param intent The intent for launching the chosen share target.
						 */
						onShareTargetSelected(source: android.support.v7.widget.ShareActionProvider, intent: android.content.Intent): boolean;
					}
					/**
					 * Listener for the event of selecting a share target.
					 */
					export class OnShareTargetSelectedListener implements android.support.v7.widget.ShareActionProvider.IOnShareTargetSelectedListener {
						constructor(implementation: android.support.v7.widget.ShareActionProvider.IOnShareTargetSelectedListener);
						/**
						 * Called when a share target has been selected. The client can decide whether to perform some action before the sharing is actually performed.
						 * @param source The source of the notification.
						 * @param intent The intent for launching the chosen share target.
						 */
						public onShareTargetSelected(source: android.support.v7.widget.ShareActionProvider, intent: android.content.Intent): boolean;
					}
					/**
					 * Policy that delegates to the OnShareTargetSelectedListener, if such.
					 */
					export class ShareActivityChooserModelPolicy extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.widget.ShareActionProvider.ShareActivityChooserModelPolicy>;
					}
				}
				/**
				 * A standard toolbar for use within application content.
				 */
				export class Toolbar extends android.view.ViewGroup {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
					static class: java.lang.Class<android.support.v7.widget.Toolbar>;
					/**
					 * Specifies the theme to use when inflating popup menus. By default, uses the same theme as the toolbar itself.
					 * @param resId theme used to inflate popup menus
					 */
					public setPopupTheme(resId: number): void;
					public getPopupTheme(): number;
					public onRtlPropertiesChanged(layoutDirection: number): void;
					/**
					 * Set a logo drawable from a resource id.
					 * @param resId ID of a drawable resource
					 */
					public setLogo(resId: number): void;
					/**
					 * Check whether the overflow menu is currently showing. This may not reflect a pending show operation in progress.
					 */
					public isOverflowMenuShowing(): boolean;
					/**
					 * Show the overflow items from the associated menu.
					 */
					public showOverflowMenu(): boolean;
					/**
					 * Hide the overflow items from the associated menu.
					 */
					public hideOverflowMenu(): boolean;
					/**
					 * Dismiss all currently showing popup menus, including overflow or submenus.
					 */
					public dismissPopupMenus(): void;
					/**
					 * Set a logo drawable.
					 * @param drawable Drawable to use as a logo
					 */
					public setLogo(drawable: android.graphics.drawable.Drawable): void;
					/**
					 * Return the current logo drawable.
					 */
					public getLogo(): android.graphics.drawable.Drawable;
					/**
					 * Set a description of the toolbar's logo.
					 * @param resId String resource id
					 */
					public setLogoDescription(resId: number): void;
					/**
					 * Set a description of the toolbar's logo.
					 * @param description Description to set
					 */
					public setLogoDescription(description: string): void;
					/**
					 * Return the description of the toolbar's logo.
					 */
					public getLogoDescription(): string;
					/**
					 * Check whether this Toolbar is currently hosting an expanded action view.
					 */
					public hasExpandedActionView(): boolean;
					/**
					 * Collapse a currently expanded action view. If this Toolbar does not have an expanded action view this method has no effect.
					 */
					public collapseActionView(): void;
					/**
					 * Returns the title of this toolbar.
					 */
					public getTitle(): string;
					/**
					 * Set the title of this toolbar.
					 * @param resId Resource ID of a string to set as the title
					 */
					public setTitle(resId: number): void;
					/**
					 * Set the title of this toolbar.
					 * @param title Title to set
					 */
					public setTitle(title: string): void;
					/**
					 * Return the subtitle of this toolbar.
					 */
					public getSubtitle(): string;
					/**
					 * Set the subtitle of this toolbar.
					 * @param resId String resource ID
					 */
					public setSubtitle(resId: number): void;
					/**
					 * Set the subtitle of this toolbar.
					 * @param subtitle Subtitle to set
					 */
					public setSubtitle(subtitle: string): void;
					/**
					 * Sets the text color, size, style, hint color, and highlight color from the specified TextAppearance resource.
					 */
					public setTitleTextAppearance(context: android.content.Context, resId: number): void;
					/**
					 * Sets the text color, size, style, hint color, and highlight color from the specified TextAppearance resource.
					 */
					public setSubtitleTextAppearance(context: android.content.Context, resId: number): void;
					/**
					 * Sets the text color of the title, if present.
					 * @param color The new text color in 0xAARRGGBB format
					 */
					public setTitleTextColor(color: number): void;
					/**
					 * Sets the text color of the subtitle, if present.
					 * @param color The new text color in 0xAARRGGBB format
					 */
					public setSubtitleTextColor(color: number): void;
					/**
					 * Retrieve the currently configured content description for the navigation button view. This will be used to describe the navigation action to users through mechanisms such as screen readers or tooltips.
					 */
					public getNavigationContentDescription(): string;
					/**
					 * Set a content description for the navigation button if one is present. The content description will be read via screen readers or other accessibility systems to explain the action of the navigation button.
					 * @param resId Resource ID of a content description string to set, or 0 to
					 */
					public setNavigationContentDescription(resId: number): void;
					/**
					 * Set a content description for the navigation button if one is present. The content description will be read via screen readers or other accessibility systems to explain the action of the navigation button.
					 * @param description Content description to set, or <code>null</code> to
					 */
					public setNavigationContentDescription(description: string): void;
					/**
					 * Set the icon to use for the toolbar's navigation button.
					 * @param resId Resource ID of a drawable to set
					 */
					public setNavigationIcon(resId: number): void;
					/**
					 * Set the icon to use for the toolbar's navigation button.
					 * @param icon Drawable to set, may be null to clear the icon
					 */
					public setNavigationIcon(icon: android.graphics.drawable.Drawable): void;
					/**
					 * Return the current drawable used as the navigation icon.
					 */
					public getNavigationIcon(): android.graphics.drawable.Drawable;
					/**
					 * Set a listener to respond to navigation events.
					 * @param listener Listener to set
					 */
					public setNavigationOnClickListener(listener: android.view.View.IOnClickListener): void;
					/**
					 * Return the Menu shown in the toolbar.
					 */
					public getMenu(): android.view.IMenu;
					/**
					 * Inflate a menu resource into this toolbar.
					 * @param resId ID of a menu resource to inflate
					 */
					public inflateMenu(resId: number): void;
					/**
					 * Set a listener to respond to menu item click events.
					 * @param listener Listener to set
					 */
					public setOnMenuItemClickListener(listener: android.support.v7.widget.Toolbar.IOnMenuItemClickListener): void;
					/**
					 * Set the content insets for this toolbar relative to layout direction.
					 * @param contentInsetStart Content inset for the toolbar starting edge
					 * @param contentInsetEnd Content inset for the toolbar ending edge
					 */
					public setContentInsetsRelative(contentInsetStart: number, contentInsetEnd: number): void;
					/**
					 * Get the starting content inset for this toolbar.
					 */
					public getContentInsetStart(): number;
					/**
					 * Get the ending content inset for this toolbar.
					 */
					public getContentInsetEnd(): number;
					/**
					 * Set the content insets for this toolbar.
					 * @param contentInsetLeft Content inset for the toolbar's left edge
					 * @param contentInsetRight Content inset for the toolbar's right edge
					 */
					public setContentInsetsAbsolute(contentInsetLeft: number, contentInsetRight: number): void;
					/**
					 * Get the left content inset for this toolbar.
					 */
					public getContentInsetLeft(): number;
					/**
					 * Get the right content inset for this toolbar.
					 */
					public getContentInsetRight(): number;
					protected onSaveInstanceState(): android.os.IParcelable;
					protected onRestoreInstanceState(state: android.os.IParcelable): void;
					protected onDetachedFromWindow(): void;
					public onTouchEvent(ev: android.view.MotionEvent): boolean;
					public onHoverEvent(ev: android.view.MotionEvent): boolean;
					protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
					public generateLayoutParams(attrs: android.util.IAttributeSet): android.support.v7.widget.Toolbar.LayoutParams;
					public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.support.v7.widget.Toolbar.LayoutParams;
					protected generateDefaultLayoutParams(): android.support.v7.widget.Toolbar.LayoutParams;
					protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
					public setMinimumHeight(minHeight: number): void;
				}
				export module Toolbar {
					export class SavedState extends android.view.View.BaseSavedState {
						constructor(source: android.os.Parcel);
						constructor(superState: android.os.IParcelable);
						expandedMenuItemId: number;
						isOverflowOpen: boolean;
						static CREATOR: android.os.Parcelable.ICreator<android.support.v7.widget.Toolbar.SavedState>;
						static class: java.lang.Class<android.support.v7.widget.Toolbar.SavedState>;
						public writeToParcel(out: android.os.Parcel, flags: number): void;
					}
					/**
					 * Layout information for child views of Toolbars.
					 */
					export class LayoutParams extends android.support.v7.app.ActionBar.LayoutParams {
						constructor(c: android.content.Context, attrs: android.util.IAttributeSet);
						constructor(width: number, height: number);
						constructor(width: number, height: number, gravity: number);
						constructor(gravity: number);
						constructor(source: android.support.v7.widget.Toolbar.LayoutParams);
						constructor(source: android.support.v7.app.ActionBar.LayoutParams);
						constructor(source: android.view.ViewGroup.MarginLayoutParams);
						constructor(source: android.view.ViewGroup.LayoutParams);
						static class: java.lang.Class<android.support.v7.widget.Toolbar.LayoutParams>;
						copyMarginsFromCompat(source: android.view.ViewGroup.MarginLayoutParams): void;
					}
					/**
					 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
					 */
					export class OnMenuItemClickListener implements android.support.v7.widget.Toolbar.IOnMenuItemClickListener {
						constructor(implementation: android.support.v7.widget.Toolbar.IOnMenuItemClickListener);
						/**
						 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
						 * @param item {@link MenuItem} that was clicked
						 */
						public onMenuItemClick(item: android.view.IMenuItem): boolean;
					}
					/**
					 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
					 */
					interface IOnMenuItemClickListener {
						/**
						 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
						 * @param item {@link MenuItem} that was clicked
						 */
						onMenuItemClick(item: android.view.IMenuItem): boolean;
					}
					export class ExpandedActionViewMenuPresenter extends java.lang.Object {
						static class: java.lang.Class<android.support.v7.widget.Toolbar.ExpandedActionViewMenuPresenter>;
						public updateMenuView(cleared: boolean): void;
						public flagActionItems(): boolean;
						public getId(): number;
						public onSaveInstanceState(): android.os.IParcelable;
						public onRestoreInstanceState(state: android.os.IParcelable): void;
					}
				}
				/**
				 * SwitchCompat is a version of the Switch widget which on devices back to API v7. It does not make any attempt to use the platform provided widget on those devices which it is available normally.
				 */
				export class SwitchCompat extends android.widget.CompoundButton {
					/**
					 * Construct a new Switch with default styling.
					 * @param context The Context that will determine this widget's theming.
					 */
					constructor(context: android.content.Context);
					/**
					 * Construct a new Switch with default styling, overriding specific style attributes as requested.
					 * @param context The Context that will determine this widget's theming.
					 * @param attrs Specification of attributes that should deviate from default styling.
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					/**
					 * Construct a new Switch with a default style determined by the given theme attribute, overriding specific style attributes as requested.
					 * @param context The Context that will determine this widget's theming.
					 * @param attrs Specification of attributes that should deviate from the default styling.
					 * @param defStyleAttr An attribute in the current theme that contains a
					 */
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet, defStyleAttr: number);
					static class: java.lang.Class<android.support.v7.widget.SwitchCompat>;
					/**
					 * Sets the switch text color, size, style, hint color, and highlight color from the specified TextAppearance resource.
					 */
					public setSwitchTextAppearance(context: android.content.Context, resid: number): void;
					/**
					 * Sets the typeface and style in which the text should be displayed on the switch, and turns on the fake bold and italic bits in the Paint if the Typeface that you provided does not have all the bits in the style that you specified.
					 */
					public setSwitchTypeface(tf: android.graphics.Typeface, style: number): void;
					/**
					 * Sets the typeface in which the text should be displayed on the switch. Note that not all Typeface families actually have bold and italic variants, so you may need to use #setSwitchTypeface(Typeface, int) to get the appearance that you actually want.
					 */
					public setSwitchTypeface(tf: android.graphics.Typeface): void;
					/**
					 * Set the amount of horizontal padding between the switch and the associated text.
					 * @param pixels Amount of padding in pixels
					 */
					public setSwitchPadding(pixels: number): void;
					/**
					 * Get the amount of horizontal padding between the switch and the associated text.
					 */
					public getSwitchPadding(): number;
					/**
					 * Set the minimum width of the switch in pixels. The switch's width will be the maximum of this value and its measured width as determined by the switch drawables and text used.
					 * @param pixels Minimum width of the switch in pixels
					 */
					public setSwitchMinWidth(pixels: number): void;
					/**
					 * Get the minimum width of the switch in pixels. The switch's width will be the maximum of this value and its measured width as determined by the switch drawables and text used.
					 */
					public getSwitchMinWidth(): number;
					/**
					 * Set the horizontal padding around the text drawn on the switch itself.
					 * @param pixels Horizontal padding for switch thumb text in pixels
					 */
					public setThumbTextPadding(pixels: number): void;
					/**
					 * Get the horizontal padding around the text drawn on the switch itself.
					 */
					public getThumbTextPadding(): number;
					/**
					 * Set the drawable used for the track that the switch slides within.
					 * @param track Track drawable
					 */
					public setTrackDrawable(track: android.graphics.drawable.Drawable): void;
					/**
					 * Set the drawable used for the track that the switch slides within.
					 * @param resId Resource ID of a track drawable
					 */
					public setTrackResource(resId: number): void;
					/**
					 * Get the drawable used for the track that the switch slides within.
					 */
					public getTrackDrawable(): android.graphics.drawable.Drawable;
					/**
					 * Set the drawable used for the switch "thumb" - the piece that the user can physically touch and drag along the track.
					 * @param thumb Thumb drawable
					 */
					public setThumbDrawable(thumb: android.graphics.drawable.Drawable): void;
					/**
					 * Set the drawable used for the switch "thumb" - the piece that the user can physically touch and drag along the track.
					 * @param resId Resource ID of a thumb drawable
					 */
					public setThumbResource(resId: number): void;
					/**
					 * Get the drawable used for the switch "thumb" - the piece that the user can physically touch and drag along the track.
					 */
					public getThumbDrawable(): android.graphics.drawable.Drawable;
					/**
					 * Specifies whether the track should be split by the thumb. When true, the thumb's optical bounds will be clipped out of the track drawable, then the thumb will be drawn into the resulting gap.
					 * @param splitTrack Whether the track should be split by the thumb
					 */
					public setSplitTrack(splitTrack: boolean): void;
					/**
					 * Returns whether the track should be split by the thumb.
					 */
					public getSplitTrack(): boolean;
					/**
					 * Returns the text displayed when the button is in the checked state.
					 */
					public getTextOn(): string;
					/**
					 * Sets the text displayed when the button is in the checked state.
					 */
					public setTextOn(textOn: string): void;
					/**
					 * Returns the text displayed when the button is not in the checked state.
					 */
					public getTextOff(): string;
					/**
					 * Sets the text displayed when the button is not in the checked state.
					 */
					public setTextOff(textOff: string): void;
					/**
					 * Sets whether the on/off text should be displayed.
					 * @param showText {@code true} to display on/off text
					 */
					public setShowText(showText: boolean): void;
					public getShowText(): boolean;
					public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					public onPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
					public onTouchEvent(ev: android.view.MotionEvent): boolean;
					public toggle(): void;
					public setChecked(checked: boolean): void;
					protected onLayout(changed: boolean, left: number, top: number, right: number, bottom: number): void;
					public draw(c: android.graphics.Canvas): void;
					protected onDraw(canvas: android.graphics.Canvas): void;
					public getCompoundPaddingLeft(): number;
					public getCompoundPaddingRight(): number;
					protected onCreateDrawableState(extraSpace: number): native.Array<number>;
					protected drawableStateChanged(): void;
					public drawableHotspotChanged(x: number, y: number): void;
					protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
					public jumpDrawablesToCurrentState(): void;
					public onInitializeAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): void;
					public onInitializeAccessibilityNodeInfo(info: android.view.accessibility.AccessibilityNodeInfo): void;
					/**
					 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
					 */
					draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
				}
				/**
				 * Static library support version of the framework's android.widget.PopupMenu. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class PopupMenu extends java.lang.Object {
					/**
					 * Construct a new PopupMenu.
					 * @param context Context for the PopupMenu.
					 * @param anchor Anchor view for this popup. The popup will appear below the anchor if there
					 */
					constructor(context: android.content.Context, anchor: android.view.View);
					/**
					 * Constructor to create a new popup menu with an anchor view and alignment gravity.
					 * @param context Context the popup menu is running in, through which it
					 * @param anchor Anchor view for this popup. The popup will appear below
					 * @param gravity The {@link Gravity} value for aligning the popup with its
					 */
					constructor(context: android.content.Context, anchor: android.view.View, gravity: number);
					/**
					 * Constructor a create a new popup menu with a specific style.
					 * @param context Context the popup menu is running in, through which it
					 * @param anchor Anchor view for this popup. The popup will appear below
					 * @param gravity The {@link Gravity} value for aligning the popup with its
					 * @param popupStyleAttr An attribute in the current theme that contains a
					 * @param popupStyleRes A resource identifier of a style resource that
					 */
					constructor(context: android.content.Context, anchor: android.view.View, gravity: number, popupStyleAttr: number, popupStyleRes: number);
					static class: java.lang.Class<android.support.v7.widget.PopupMenu>;
					/**
					 * Returns an android.view.View.OnTouchListener that can be added to the anchor view to implement drag-to-open behavior.
					 */
					public getDragToOpenListener(): android.view.View.IOnTouchListener;
					public getMenu(): android.view.IMenu;
					public getMenuInflater(): android.view.MenuInflater;
					/**
					 * Inflate a menu resource into this PopupMenu. This is equivalent to calling popupMenu.getMenuInflater().inflate(menuRes, popupMenu.getMenu()).
					 * @param menuRes Menu resource to inflate
					 */
					public inflate(menuRes: number): void;
					/**
					 * Show the menu popup anchored to the view specified during construction. #dismiss()
					 */
					public show(): void;
					/**
					 * Dismiss the menu popup. #show()
					 */
					public dismiss(): void;
					/**
					 * Set a listener that will be notified when the user selects an item from the menu.
					 * @param listener Listener to notify
					 */
					public setOnMenuItemClickListener(listener: android.support.v7.widget.PopupMenu.IOnMenuItemClickListener): void;
					/**
					 * Set a listener that will be notified when this menu is dismissed.
					 * @param listener Listener to notify
					 */
					public setOnDismissListener(listener: android.support.v7.widget.PopupMenu.IOnDismissListener): void;
				}
				export module PopupMenu {
					/**
					 * Callback interface used to notify the application that the menu has closed.
					 */
					interface IOnDismissListener {
						/**
						 * Called when the associated menu has been dismissed.
						 * @param menu The PopupMenu that was dismissed.
						 */
						onDismiss(menu: android.support.v7.widget.PopupMenu): void;
					}
					/**
					 * Callback interface used to notify the application that the menu has closed.
					 */
					export class OnDismissListener implements android.support.v7.widget.PopupMenu.IOnDismissListener {
						constructor(implementation: android.support.v7.widget.PopupMenu.IOnDismissListener);
						/**
						 * Called when the associated menu has been dismissed.
						 * @param menu The PopupMenu that was dismissed.
						 */
						public onDismiss(menu: android.support.v7.widget.PopupMenu): void;
					}
					/**
					 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
					 */
					export class OnMenuItemClickListener implements android.support.v7.widget.PopupMenu.IOnMenuItemClickListener {
						constructor(implementation: android.support.v7.widget.PopupMenu.IOnMenuItemClickListener);
						/**
						 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
						 * @param item {@link MenuItem} that was clicked
						 */
						public onMenuItemClick(item: android.view.IMenuItem): boolean;
					}
					/**
					 * Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners.
					 */
					interface IOnMenuItemClickListener {
						/**
						 * This method will be invoked when a menu item is clicked if the item itself did not already handle the event.
						 * @param item {@link MenuItem} that was clicked
						 */
						onMenuItemClick(item: android.view.IMenuItem): boolean;
					}
				}
			}
			export module gridlayout {
				export class R extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v7.gridlayout.R>;
				}
				export module R {
					export class dimen extends java.lang.Object {
						constructor();
						/**
						 * The default gap between components in a layout.
						 */
						static default_gap: number;
						static class: java.lang.Class<android.support.v7.gridlayout.R.dimen>;
					}
					export class id extends java.lang.Object {
						constructor();
						static alignBounds: number;
						static alignMargins: number;
						static bottom: number;
						static center: number;
						static center_horizontal: number;
						static center_vertical: number;
						static clip_horizontal: number;
						static clip_vertical: number;
						static end: number;
						static fill: number;
						static fill_horizontal: number;
						static fill_vertical: number;
						static horizontal: number;
						static left: number;
						static right: number;
						static start: number;
						static top: number;
						static vertical: number;
						static class: java.lang.Class<android.support.v7.gridlayout.R.id>;
					}
					export class styleable extends java.lang.Object {
						constructor();
						/**
						 * Attributes that can be used with a GridLayout.
						 */
						static GridLayout: native.Array<number>;
						static GridLayout_alignmentMode: number;
						static GridLayout_columnCount: number;
						static GridLayout_columnOrderPreserved: number;
						static GridLayout_orientation: number;
						static GridLayout_rowCount: number;
						static GridLayout_rowOrderPreserved: number;
						static GridLayout_useDefaultMargins: number;
						/**
						 * Attributes that can be used with a GridLayout_Layout.
						 */
						static GridLayout_Layout: native.Array<number>;
						static GridLayout_Layout_android_layout_height: number;
						static GridLayout_Layout_android_layout_margin: number;
						static GridLayout_Layout_android_layout_marginBottom: number;
						static GridLayout_Layout_android_layout_marginLeft: number;
						static GridLayout_Layout_android_layout_marginRight: number;
						static GridLayout_Layout_android_layout_marginTop: number;
						static GridLayout_Layout_android_layout_width: number;
						static GridLayout_Layout_layout_column: number;
						static GridLayout_Layout_layout_columnSpan: number;
						static GridLayout_Layout_layout_gravity: number;
						static GridLayout_Layout_layout_row: number;
						static GridLayout_Layout_layout_rowSpan: number;
						static class: java.lang.Class<android.support.v7.gridlayout.R.styleable>;
					}
					export class attr extends java.lang.Object {
						constructor();
						static alignmentMode: number;
						/**
						 * The maximum number of columns to create when automatically positioning children.
						 */
						static columnCount: number;
						static columnOrderPreserved: number;
						static layout_column: number;
						static layout_columnSpan: number;
						static layout_gravity: number;
						/**
						 * END MarginLayout layoutparams
						 */
						static layout_row: number;
						static layout_rowSpan: number;
						static orientation: number;
						/**
						 * The maximum number of rows to create when automatically positioning children.
						 */
						static rowCount: number;
						static rowOrderPreserved: number;
						static useDefaultMargins: number;
						static class: java.lang.Class<android.support.v7.gridlayout.R.attr>;
					}
				}
				export class BuildConfig extends java.lang.Object {
					constructor();
					static DEBUG: boolean;
					static class: java.lang.Class<android.support.v7.gridlayout.BuildConfig>;
				}
			}
		}
		export module v8 {
			export module renderscript {
				/**
				 * Intrinsic for applying a 5x5 convolve to an allocation.
				 */
				export class ScriptIntrinsicConvolve5x5 extends android.support.v8.renderscript.ScriptIntrinsic {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsicConvolve5x5>;
					/**
					 * Supported elements types are Element#U8_4
					 * @param rs The Renderscript context
					 * @param e Element type for intputs and outputs
					 */
					public static create(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.ScriptIntrinsicConvolve5x5;
					/**
					 * Set the input of the blur. Must match the element type supplied during create.
					 * @param ain The input allocation.
					 */
					public setInput(ain: android.support.v8.renderscript.Allocation): void;
					/**
					 * Set the coefficients for the convolve.
					 * @param v The array of coefficients to set
					 */
					public setCoefficients(v: native.Array<number>): void;
					/**
					 * Apply the filter to the input and save to the specified allocation.
					 * @param aout Output allocation. Must match creation element
					 */
					public forEach(aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for this intrinsic kernel.
					 */
					public getKernelID(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * Get a FieldID for the input field of this intrinsic.
					 */
					public getFieldID_Input(): android.support.v8.renderscript.Script.FieldID;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param ain 
					 * @param aout 
					 * @param v 
					 */
					public forEach(slot: number, ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation, v: android.support.v8.renderscript.FieldPacker): void;
				}
				/**
				 * Intrinsic for converting an Android YUV buffer to RGB.
				 */
				export class ScriptIntrinsicYuvToRGB extends android.support.v8.renderscript.ScriptIntrinsic {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsicYuvToRGB>;
					/**
					 * Create an intrinsic for converting YUV to RGB.
					 * @param rs The Renderscript context
					 * @param e Element type for output
					 */
					public static create(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.ScriptIntrinsicYuvToRGB;
					/**
					 * Set the input yuv allocation, must be Element#U8.
					 * @param ain The input allocation.
					 */
					public setInput(ain: android.support.v8.renderscript.Allocation): void;
					/**
					 * Convert the image to RGB.
					 * @param aout Output allocation. Must match creation element
					 */
					public forEach(aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for this intrinsic kernel.
					 */
					public getKernelID(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * Get a FieldID for the input field of this intrinsic.
					 */
					public getFieldID_Input(): android.support.v8.renderscript.Script.FieldID;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param ain 
					 * @param aout 
					 * @param v 
					 */
					public forEach(slot: number, ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation, v: android.support.v8.renderscript.FieldPacker): void;
				}
				/**
				 * Intrinsic Gausian blur filter. Applies a gaussian blur of the specified radius to all elements of an allocation.
				 */
				export class ScriptIntrinsicBlur extends android.support.v8.renderscript.ScriptIntrinsic {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsicBlur>;
					/**
					 * Create an intrinsic for applying a blur to an allocation. The default radius is 5.0.
					 * @param rs The Renderscript context
					 * @param e Element type for inputs and outputs
					 */
					public static create(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.ScriptIntrinsicBlur;
					/**
					 * Set the input of the blur. Must match the element type supplied during create.
					 * @param ain The input allocation
					 */
					public setInput(ain: android.support.v8.renderscript.Allocation): void;
					/**
					 * Set the radius of the Blur.
					 * @param radius The radius of the blur
					 */
					public setRadius(radius: number): void;
					/**
					 * Apply the filter to the input and save to the specified allocation.
					 * @param aout Output allocation. Must match creation element
					 */
					public forEach(aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for this intrinsic kernel.
					 */
					public getKernelID(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * Get a FieldID for the input field of this intrinsic.
					 */
					public getFieldID_Input(): android.support.v8.renderscript.Script.FieldID;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param ain 
					 * @param aout 
					 * @param v 
					 */
					public forEach(slot: number, ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation, v: android.support.v8.renderscript.FieldPacker): void;
				}
				export class Element extends android.support.v8.renderscript.BaseObj {
					static class: java.lang.Class<android.support.v8.renderscript.Element>;
					public getBytesSize(): number;
					/**
					 * Returns the number of vector components. 2 for float2, 4 for float4, etc.
					 */
					public getVectorSize(): number;
					/**
					 * Return if a element is too complex for use as a data source for a Mesh or a Program.
					 */
					public isComplex(): boolean;
					/**
					 * Elements could be simple, such as an int or a float, or a structure with multiple sub elements, such as a collection of floats, float2, float4. This function returns zero for simple elements or the number of sub-elements otherwise.
					 */
					public getSubElementCount(): number;
					/**
					 * For complex elements, this function will return the sub-element at index
					 * @param index index of the sub-element to return
					 */
					public getSubElement(index: number): android.support.v8.renderscript.Element;
					/**
					 * For complex elements, this function will return the sub-element name at index
					 * @param index index of the sub-element
					 */
					public getSubElementName(index: number): string;
					/**
					 * For complex elements, some sub-elements could be statically sized arrays. This function will return the array size for sub-element at index
					 * @param index index of the sub-element
					 */
					public getSubElementArraySize(index: number): number;
					/**
					 * This function specifies the location of a sub-element within the element
					 * @param index index of the sub-element
					 */
					public getSubElementOffsetBytes(index: number): number;
					public getDataType(): android.support.v8.renderscript.Element.DataType;
					public getDataKind(): android.support.v8.renderscript.Element.DataKind;
					/**
					 * Utility function for returning an Element containing a single Boolean.
					 * @param rs Context to which the element will belong.
					 */
					public static BOOLEAN(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					/**
					 * Utility function for returning an Element containing a single UNSIGNED_8.
					 * @param rs Context to which the element will belong.
					 */
					public static U8(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					/**
					 * Utility function for returning an Element containing a single SIGNED_8.
					 * @param rs Context to which the element will belong.
					 */
					public static I8(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U16(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I16(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U32(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I32(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U64(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I64(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F32(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F64(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static ELEMENT(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static TYPE(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static ALLOCATION(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static SAMPLER(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static SCRIPT(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static A_8(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static RGB_565(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static RGB_888(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static RGBA_5551(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static RGBA_4444(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static RGBA_8888(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F32_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F32_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F32_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F64_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F64_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static F64_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U8_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U8_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U8_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I8_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I8_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I8_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U16_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U16_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U16_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I16_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I16_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I16_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U32_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U32_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U32_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I32_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I32_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I32_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U64_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U64_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static U64_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I64_2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I64_3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static I64_4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static MATRIX_4X4(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static MATRIX_3X3(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					public static MATRIX_2X2(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Element;
					/**
					 * Create a custom Element of the specified DataType. The DataKind will be set to USER and the vector size to 1 indicating non-vector.
					 * @param rs The context associated with the new Element.
					 * @param dt The DataType for the new element.
					 */
					static createUser(rs: android.support.v8.renderscript.RenderScript, dt: android.support.v8.renderscript.Element.DataType): android.support.v8.renderscript.Element;
					/**
					 * Create a custom vector element of the specified DataType and vector size. DataKind will be set to USER. Only primitive types (FLOAT_32, FLOAT_64, SIGNED_8, SIGNED_16, SIGNED_32, SIGNED_64, UNSIGNED_8, UNSIGNED_16, UNSIGNED_32, UNSIGNED_64, BOOLEAN) are supported.
					 * @param rs The context associated with the new Element.
					 * @param dt The DataType for the new Element.
					 * @param size Vector size for the new Element. Range 2-4 inclusive
					 */
					public static createVector(rs: android.support.v8.renderscript.RenderScript, dt: android.support.v8.renderscript.Element.DataType, size: number): android.support.v8.renderscript.Element;
					/**
					 * Create a new pixel Element type. A matching DataType and DataKind must be provided. The DataType and DataKind must contain the same number of components. Vector size will be set to 1.
					 * @param rs The context associated with the new Element.
					 * @param dt The DataType for the new element.
					 * @param dk The DataKind to specify the mapping of each component in the
					 */
					public static createPixel(rs: android.support.v8.renderscript.RenderScript, dt: android.support.v8.renderscript.Element.DataType, dk: android.support.v8.renderscript.Element.DataKind): android.support.v8.renderscript.Element;
					/**
					 * Check if the current Element is compatible with another Element. Primitive Elements are compatible if they share the same underlying size and type (i.e. U8 is compatible with A_8). User-defined Elements must be equal in order to be compatible. This requires strict name equivalence for all sub-Elements (in addition to structural equivalence).
					 * @param e The Element to check compatibility with.
					 */
					public isCompatible(e: android.support.v8.renderscript.Element): boolean;
				}
				export module Element {
					export class NBuilder extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.Element.NBuilder>;
						add(element: android.support.v8.renderscript.Element, name: string, arraySize: number): void;
						create(): android.support.v8.renderscript.Element.NElement;
					}
					/**
					 * The special interpretation of the data if required. This is primarly useful for graphical data. USER indicates no special interpretation is expected. PIXEL is used in conjunction with the standard data types for representing texture formats.
					 */
					export enum DataKind {
						USER,
						PIXEL_L,
						PIXEL_A,
						PIXEL_LA,
						PIXEL_RGB,
						PIXEL_RGBA
					}
					/**
					 * Builder class for producing complex elements with matching field and name pairs. The builder starts empty. The order in which elements are added is retained for the layout in memory.
					 */
					export class Builder extends java.lang.Object {
						/**
						 * Create a builder object.
						 * @param rs 
						 */
						constructor(rs: android.support.v8.renderscript.RenderScript);
						static class: java.lang.Class<android.support.v8.renderscript.Element.Builder>;
						/**
						 * Add an array of elements to this element.
						 * @param element 
						 * @param name 
						 * @param arraySize 
						 */
						public add(element: android.support.v8.renderscript.Element, name: string, arraySize: number): android.support.v8.renderscript.Element.Builder;
						/**
						 * Add a single element to this Element.
						 * @param element 
						 * @param name 
						 */
						public add(element: android.support.v8.renderscript.Element, name: string): android.support.v8.renderscript.Element.Builder;
						/**
						 * Create the element from this builder.
						 */
						public create(): android.support.v8.renderscript.Element;
					}
					export class NElement extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.Element.NElement>;
					}
					/**
					 * DataType represents the basic type information for a basic element. The naming convention follows. For numeric types it is FLOAT, SIGNED, or UNSIGNED followed by the _BITS where BITS is the size of the data. BOOLEAN is a true / false (1,0) represented in an 8 bit container. The UNSIGNED variants with multiple bit definitions are for packed graphical data formats and represent vectors with per vector member sizes which are treated as a single unit for packing and alignment purposes.
					 */
					export enum DataType {
						NONE,
						FLOAT_32,
						FLOAT_64,
						SIGNED_8,
						SIGNED_16,
						SIGNED_32,
						SIGNED_64,
						UNSIGNED_8,
						UNSIGNED_16,
						UNSIGNED_32,
						UNSIGNED_64,
						BOOLEAN,
						UNSIGNED_5_6_5,
						UNSIGNED_5_5_5_1,
						UNSIGNED_4_4_4_4,
						MATRIX_4X4,
						MATRIX_3X3,
						MATRIX_2X2,
						RS_ELEMENT,
						RS_TYPE,
						RS_ALLOCATION,
						RS_SAMPLER,
						RS_SCRIPT
					}
				}
				/**
				 * Base class for all exceptions thrown by the Android Renderscript
				 */
				export class RSInvalidStateException extends android.support.v8.renderscript.RSRuntimeException {
					constructor(string: string);
					static class: java.lang.Class<android.support.v8.renderscript.RSInvalidStateException>;
				}
				/**
				 * Base class for all exceptions thrown by the Android Renderscript
				 */
				export class RSRuntimeException extends java.lang.RuntimeException {
					constructor(string: string);
					static class: java.lang.Class<android.support.v8.renderscript.RSRuntimeException>;
				}
				/**
				 * Intrinsic for applying a 3x3 convolve to an allocation.
				 */
				export class ScriptIntrinsicConvolve3x3 extends android.support.v8.renderscript.ScriptIntrinsic {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsicConvolve3x3>;
					/**
					 * Supported elements types are Element#U8_4
					 * @param rs The Renderscript context
					 * @param e Element type for intputs and outputs
					 */
					public static create(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.ScriptIntrinsicConvolve3x3;
					/**
					 * Set the input of the blur. Must match the element type supplied during create.
					 * @param ain The input allocation.
					 */
					public setInput(ain: android.support.v8.renderscript.Allocation): void;
					/**
					 * Set the coefficients for the convolve.
					 * @param v The array of coefficients to set
					 */
					public setCoefficients(v: native.Array<number>): void;
					/**
					 * Apply the filter to the input and save to the specified allocation.
					 * @param aout Output allocation. Must match creation element
					 */
					public forEach(aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for this intrinsic kernel.
					 */
					public getKernelID(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * Get a FieldID for the input field of this intrinsic.
					 */
					public getFieldID_Input(): android.support.v8.renderscript.Script.FieldID;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param ain 
					 * @param aout 
					 * @param v 
					 */
					public forEach(slot: number, ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation, v: android.support.v8.renderscript.FieldPacker): void;
				}
				/**
				 * Class for exposing the native Renderscript byte2 type back to the Android system.
				 */
				export class Byte2 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number);
					x: number;
					y: number;
					static class: java.lang.Class<android.support.v8.renderscript.Byte2>;
				}
				/**
				 * Intrinsic for applying a per-channel lookup table. Each channel of the input has an independant lookup table. The tables are 256 entries in size and can cover the full value range of Element#U8_4.
				 */
				export class ScriptIntrinsicLUT extends android.support.v8.renderscript.ScriptIntrinsic {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsicLUT>;
					/**
					 * Supported elements types are Element#U8_4
					 * @param rs The Renderscript context
					 * @param e Element type for intputs and outputs
					 */
					public static create(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.ScriptIntrinsicLUT;
					/**
					 * Set an entry in the red channel lookup table
					 * @param index Must be 0-255
					 * @param value Must be 0-255
					 */
					public setRed(index: number, value: number): void;
					/**
					 * Set an entry in the green channel lookup table
					 * @param index Must be 0-255
					 * @param value Must be 0-255
					 */
					public setGreen(index: number, value: number): void;
					/**
					 * Set an entry in the blue channel lookup table
					 * @param index Must be 0-255
					 * @param value Must be 0-255
					 */
					public setBlue(index: number, value: number): void;
					/**
					 * Set an entry in the alpha channel lookup table
					 * @param index Must be 0-255
					 * @param value Must be 0-255
					 */
					public setAlpha(index: number, value: number): void;
					/**
					 * Invoke the kernel and apply the lookup to each cell of ain and copy to aout.
					 * @param ain Input allocation
					 * @param aout Output allocation
					 */
					public forEach(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for this intrinsic kernel.
					 */
					public getKernelID(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param ain 
					 * @param aout 
					 * @param v 
					 */
					public forEach(slot: number, ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation, v: android.support.v8.renderscript.FieldPacker): void;
				}
				/**
				 * Class for exposing the native Renderscript double2 type back to the Android system.
				 */
				export class Double2 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number);
					x: number;
					y: number;
					static class: java.lang.Class<android.support.v8.renderscript.Double2>;
				}
				/**
				 * Class for exposing the native Renderscript byte3 type back to the Android system.
				 */
				export class Byte3 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number);
					x: number;
					y: number;
					z: number;
					static class: java.lang.Class<android.support.v8.renderscript.Byte3>;
				}
				/**
				 * Class for exposing the native Renderscript double3 type back to the Android system.
				 */
				export class Double3 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number);
					x: number;
					y: number;
					z: number;
					static class: java.lang.Class<android.support.v8.renderscript.Double3>;
				}
				/**
				 * Class for exposing the native Renderscript double4 type back to the Android system.
				 */
				export class Double4 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number, initW: number);
					x: number;
					y: number;
					z: number;
					w: number;
					static class: java.lang.Class<android.support.v8.renderscript.Double4>;
				}
				export class Allocation extends android.support.v8.renderscript.BaseObj {
					/**
					 * The usage of the allocation. These signal to renderscript where to place the allocation in memory.
					 */
					static USAGE_SCRIPT: number;
					/**
					 * GRAPHICS_TEXTURE The allocation will be used as a texture source by one or more graphics programs.
					 */
					static USAGE_GRAPHICS_TEXTURE: number;
					static class: java.lang.Class<android.support.v8.renderscript.Allocation>;
					/**
					 * Get the element of the type of the Allocation.
					 */
					public getElement(): android.support.v8.renderscript.Element;
					/**
					 * Get the usage flags of the Allocation.
					 */
					public getUsage(): number;
					/**
					 * Get the size of the Allocation in bytes.
					 */
					public getBytesSize(): number;
					/**
					 * Get the type of the Allocation.
					 */
					public getType(): android.support.v8.renderscript.Type;
					/**
					 * Propagate changes from one usage of the allocation to the remaining usages of the allocation.
					 */
					public syncAll(srcLocation: number): void;
					/**
					 * Copy an array of RS objects to the allocation.
					 * @param d Source array.
					 */
					public copyFrom(d: native.Array<android.support.v8.renderscript.BaseObj>): void;
					/**
					 * Copy an allocation from an array. This variant is not type checked which allows an application to fill in structured data from an array.
					 * @param d the source data array
					 */
					public copyFromUnchecked(d: native.Array<number>): void;
					/**
					 * Copy an allocation from a bitmap. The height, width, and format of the bitmap must match the existing allocation.
					 * @param b the source bitmap
					 */
					public copyFrom(b: android.graphics.Bitmap): void;
					/**
					 * This is only intended to be used by auto-generate code reflected from the renderscript script files.
					 * @param xoff 
					 * @param fp 
					 */
					public setFromFieldPacker(xoff: number, fp: android.support.v8.renderscript.FieldPacker): void;
					/**
					 * This is only intended to be used by auto-generate code reflected from the renderscript script files.
					 * @param xoff 
					 * @param component_number 
					 * @param fp 
					 */
					public setFromFieldPacker(xoff: number, component_number: number, fp: android.support.v8.renderscript.FieldPacker): void;
					/**
					 * Generate a mipmap chain. Requires the type of the allocation include mipmaps.
					 */
					public generateMipmaps(): void;
					/**
					 * Copy part of an allocation from an array. This variant is not type checked which allows an application to fill in structured data from an array.
					 * @param off The offset of the first element to be copied.
					 * @param count The number of elements to be copied.
					 * @param d the source data array
					 */
					public copy1DRangeFromUnchecked(off: number, count: number, d: native.Array<number>): void;
					/**
					 * Copy part of an allocation from an array. This variant is type checked and will generate exceptions if the Allocation type is not a 32 bit integer type.
					 * @param off The offset of the first element to be copied.
					 * @param count The number of elements to be copied.
					 * @param d the source data array
					 */
					public copy1DRangeFrom(off: number, count: number, d: native.Array<number>): void;
					/**
					 * Copy part of an allocation from another allocation.
					 * @param off The offset of the first element to be copied.
					 * @param count The number of elements to be copied.
					 * @param data the source data allocation.
					 * @param dataOff off The offset of the first element in data to
					 */
					public copy1DRangeFrom(off: number, count: number, data: android.support.v8.renderscript.Allocation, dataOff: number): void;
					/**
					 * Copy a rectangular region from the array into the allocation. The incoming array is assumed to be tightly packed.
					 * @param xoff X offset of the region to update
					 * @param yoff Y offset of the region to update
					 * @param w Width of the incoming region to update
					 * @param h Height of the incoming region to update
					 * @param data to be placed into the allocation
					 */
					public copy2DRangeFrom(xoff: number, yoff: number, w: number, h: number, data: native.Array<number>): void;
					/**
					 * Copy a rectangular region into the allocation from another allocation.
					 * @param xoff X offset of the region to update.
					 * @param yoff Y offset of the region to update.
					 * @param w Width of the incoming region to update.
					 * @param h Height of the incoming region to update.
					 * @param data source allocation.
					 * @param dataXoff X offset in data of the region to update.
					 * @param dataYoff Y offset in data of the region to update.
					 */
					public copy2DRangeFrom(xoff: number, yoff: number, w: number, h: number, data: android.support.v8.renderscript.Allocation, dataXoff: number, dataYoff: number): void;
					/**
					 * Copy a bitmap into an allocation. The height and width of the update will use the height and width of the incoming bitmap.
					 * @param xoff X offset of the region to update
					 * @param yoff Y offset of the region to update
					 * @param data the bitmap to be copied
					 */
					public copy2DRangeFrom(xoff: number, yoff: number, data: android.graphics.Bitmap): void;
					/**
					 * Copy from the Allocation into a Bitmap. The bitmap must match the dimensions of the Allocation.
					 * @param b The bitmap to be set from the Allocation.
					 */
					public copyTo(b: android.graphics.Bitmap): void;
					/**
					 * Copy from the Allocation into a byte array. The array must be at least as large as the Allocation. The allocation must be of an 8 bit elemental type.
					 * @param d The array to be set from the Allocation.
					 */
					public copyTo(d: native.Array<number>): void;
					/**
					 * @param rs type renderscript type describing data layout
					 * @param type mips specifies desired mipmap behaviour for the
					 * @param mips usage bit field specifying how the allocation is
					 * @param usage 
					 */
					public static createTyped(rs: android.support.v8.renderscript.RenderScript, type: android.support.v8.renderscript.Type, mips: android.support.v8.renderscript.Allocation.MipmapControl, usage: number): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a renderscript allocation with the size specified by the type and no mipmaps generated by default
					 * @param rs Context to which the allocation will belong.
					 * @param type renderscript type describing data layout
					 * @param usage bit field specifying how the allocation is
					 */
					public static createTyped(rs: android.support.v8.renderscript.RenderScript, type: android.support.v8.renderscript.Type, usage: number): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a renderscript allocation for use by the script with the size specified by the type and no mipmaps generated by default
					 * @param rs Context to which the allocation will belong.
					 * @param type renderscript type describing data layout
					 */
					public static createTyped(rs: android.support.v8.renderscript.RenderScript, type: android.support.v8.renderscript.Type): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a renderscript allocation with a specified number of given elements
					 * @param rs Context to which the allocation will belong.
					 * @param e describes what each element of an allocation is
					 * @param count specifies the number of element in the allocation
					 * @param usage bit field specifying how the allocation is
					 */
					public static createSized(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element, count: number, usage: number): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a renderscript allocation with a specified number of given elements
					 * @param rs Context to which the allocation will belong.
					 * @param e describes what each element of an allocation is
					 * @param count specifies the number of element in the allocation
					 */
					public static createSized(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element, count: number): android.support.v8.renderscript.Allocation;
					static elementFromBitmap(rs: android.support.v8.renderscript.RenderScript, b: android.graphics.Bitmap): android.support.v8.renderscript.Element;
					static typeFromBitmap(rs: android.support.v8.renderscript.RenderScript, b: android.graphics.Bitmap, mip: android.support.v8.renderscript.Allocation.MipmapControl): android.support.v8.renderscript.Type;
					/**
					 * Creates a renderscript allocation from a bitmap
					 * @param rs Context to which the allocation will belong.
					 * @param b bitmap source for the allocation data
					 * @param mips specifies desired mipmap behaviour for the
					 * @param usage bit field specifying how the allocation is
					 */
					public static createFromBitmap(rs: android.support.v8.renderscript.RenderScript, b: android.graphics.Bitmap, mips: android.support.v8.renderscript.Allocation.MipmapControl, usage: number): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a non-mipmapped renderscript allocation to use as a graphics texture
					 * @param rs Context to which the allocation will belong.
					 * @param b bitmap source for the allocation data
					 */
					public static createFromBitmap(rs: android.support.v8.renderscript.RenderScript, b: android.graphics.Bitmap): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a cubemap allocation from a bitmap containing the horizontal list of cube faces. Each individual face must be the same size and power of 2
					 * @param rs Context to which the allocation will belong.
					 * @param b bitmap with cubemap faces layed out in the following
					 * @param mips specifies desired mipmap behaviour for the cubemap
					 * @param usage bit field specifying how the cubemap is utilized
					 */
					public static createCubemapFromBitmap(rs: android.support.v8.renderscript.RenderScript, b: android.graphics.Bitmap, mips: android.support.v8.renderscript.Allocation.MipmapControl, usage: number): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a non-mipmapped cubemap allocation for use as a graphics texture from a bitmap containing the horizontal list of cube faces. Each individual face must be the same size and power of 2
					 * @param rs Context to which the allocation will belong.
					 * @param b bitmap with cubemap faces layed out in the following
					 */
					public static createCubemapFromBitmap(rs: android.support.v8.renderscript.RenderScript, b: android.graphics.Bitmap): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a cubemap allocation from 6 bitmaps containing the cube faces. All the faces must be the same size and power of 2
					 * @param rs Context to which the allocation will belong.
					 * @param xpos cubemap face in the positive x direction
					 * @param xneg cubemap face in the negative x direction
					 * @param ypos cubemap face in the positive y direction
					 * @param yneg cubemap face in the negative y direction
					 * @param zpos cubemap face in the positive z direction
					 * @param zneg cubemap face in the negative z direction
					 * @param mips specifies desired mipmap behaviour for the cubemap
					 * @param usage bit field specifying how the cubemap is utilized
					 */
					public static createCubemapFromCubeFaces(rs: android.support.v8.renderscript.RenderScript, xpos: android.graphics.Bitmap, xneg: android.graphics.Bitmap, ypos: android.graphics.Bitmap, yneg: android.graphics.Bitmap, zpos: android.graphics.Bitmap, zneg: android.graphics.Bitmap, mips: android.support.v8.renderscript.Allocation.MipmapControl, usage: number): android.support.v8.renderscript.Allocation;
					/**
					 * Creates a non-mipmapped cubemap allocation for use as a graphics texture from 6 bitmaps containing the cube faces. All the faces must be the same size and power of 2
					 * @param rs Context to which the allocation will belong.
					 * @param xpos cubemap face in the positive x direction
					 * @param xneg cubemap face in the negative x direction
					 * @param ypos cubemap face in the positive y direction
					 * @param yneg cubemap face in the negative y direction
					 * @param zpos cubemap face in the positive z direction
					 * @param zneg cubemap face in the negative z direction
					 */
					public static createCubemapFromCubeFaces(rs: android.support.v8.renderscript.RenderScript, xpos: android.graphics.Bitmap, xneg: android.graphics.Bitmap, ypos: android.graphics.Bitmap, yneg: android.graphics.Bitmap, zpos: android.graphics.Bitmap, zneg: android.graphics.Bitmap): android.support.v8.renderscript.Allocation;
				}
				export module Allocation {
					/**
					 * Controls mipmap behavior when using the bitmap creation and update functions.
					 */
					export enum MipmapControl {
						MIPMAP_NONE,
						MIPMAP_FULL,
						MIPMAP_ON_SYNC_TO_TEXTURE
					}
				}
				/**
				 * Base class for all Intrinsic scripts. An intrinsic a script which implements a pre-defined function. Intrinsics are provided to provide effecient implemtations of common operations.
				 */
				export class ScriptIntrinsic extends android.support.v8.renderscript.Script {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsic>;
				}
				/**
				 * Class for exposing the native Renderscript rs_matrix3x3 type back to the Android system.
				 */
				export class Matrix3f extends java.lang.Object {
					/**
					 * Creates a new identity 3x3 matrix
					 */
					constructor();
					/**
					 * Creates a new matrix and sets its values from the given parameter
					 * @param dataArray values to set the matrix to, must be 9
					 */
					constructor(dataArray: native.Array<number>);
					static class: java.lang.Class<android.support.v8.renderscript.Matrix3f>;
					/**
					 * Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix
					 */
					public getArray(): native.Array<number>;
					/**
					 * Returns the value for a given row and column
					 * @param x column of the value to return
					 * @param y row of the value to return
					 */
					public get(x: number, y: number): number;
					/**
					 * Sets the value for a given row and column
					 * @param x column of the value to set
					 * @param y row of the value to set
					 * @param v 
					 */
					public set(x: number, y: number, v: number): void;
					/**
					 * Sets the matrix values to identity
					 */
					public loadIdentity(): void;
					/**
					 * Sets the values of the matrix to those of the parameter
					 * @param src matrix to load the values from
					 */
					public load(src: android.support.v8.renderscript.Matrix3f): void;
					/**
					 * Sets current values to be a rotation matrix of certain angle about a given axis
					 * @param rot angle of rotation
					 * @param x rotation axis x
					 * @param y rotation axis y
					 * @param z rotation axis z
					 */
					public loadRotate(rot: number, x: number, y: number, z: number): void;
					/**
					 * Makes the upper 2x2 a rotation matrix of the given angle
					 * @param rot rotation angle
					 */
					public loadRotate(rot: number): void;
					/**
					 * Makes the upper 2x2 a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 */
					public loadScale(x: number, y: number): void;
					/**
					 * Sets current values to be a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 * @param z scale component z
					 */
					public loadScale(x: number, y: number, z: number): void;
					/**
					 * Sets current values to be a translation matrix of given dimensions
					 * @param x translation component x
					 * @param y translation component y
					 */
					public loadTranslate(x: number, y: number): void;
					/**
					 * Sets current values to be the result of multiplying two given matrices
					 * @param lhs left hand side matrix
					 * @param rhs right hand side matrix
					 */
					public loadMultiply(lhs: android.support.v8.renderscript.Matrix3f, rhs: android.support.v8.renderscript.Matrix3f): void;
					/**
					 * Post-multiplies the current matrix by a given parameter
					 * @param rhs right hand side to multiply by
					 */
					public multiply(rhs: android.support.v8.renderscript.Matrix3f): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a rotation matrix of certain angle about a given axis
					 * @param rot angle of rotation
					 * @param x rotation axis x
					 * @param y rotation axis y
					 * @param z rotation axis z
					 */
					public rotate(rot: number, x: number, y: number, z: number): void;
					/**
					 * Modifies the upper 2x2 of the current matrix by post-multiplying it with a rotation matrix of given angle
					 * @param rot angle of rotation
					 */
					public rotate(rot: number): void;
					/**
					 * Modifies the upper 2x2 of the current matrix by post-multiplying it with a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 */
					public scale(x: number, y: number): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 * @param z scale component z
					 */
					public scale(x: number, y: number, z: number): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a translation matrix of given dimensions
					 * @param x translation component x
					 * @param y translation component y
					 */
					public translate(x: number, y: number): void;
					/**
					 * Sets the current matrix to its transpose
					 */
					public transpose(): void;
				}
				/**
				 * Base class for all exceptions thrown by the Android Renderscript
				 */
				export class RSIllegalArgumentException extends android.support.v8.renderscript.RSRuntimeException {
					constructor(string: string);
					static class: java.lang.Class<android.support.v8.renderscript.RSIllegalArgumentException>;
				}
				/**
				 * Class for exposing the native Renderscript byte4 type back to the Android system.
				 */
				export class Byte4 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number, initW: number);
					x: number;
					y: number;
					z: number;
					w: number;
					static class: java.lang.Class<android.support.v8.renderscript.Byte4>;
				}
				/**
				 * Base class for all exceptions thrown by the Android Renderscript
				 */
				export class RSDriverException extends android.support.v8.renderscript.RSRuntimeException {
					constructor(string: string);
					static class: java.lang.Class<android.support.v8.renderscript.RSDriverException>;
				}
				/**
				 * Class for exposing the native Renderscript short4 type back to the Android system.
				 */
				export class Short4 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number, initW: number);
					x: number;
					y: number;
					z: number;
					w: number;
					static class: java.lang.Class<android.support.v8.renderscript.Short4>;
				}
				/**
				 * Class for exposing the native Renderscript short3 type back to the Android system.
				 */
				export class Short3 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number);
					x: number;
					y: number;
					z: number;
					static class: java.lang.Class<android.support.v8.renderscript.Short3>;
				}
				/**
				 * Class for exposing the native Renderscript Short2 type back to the Android system.
				 */
				export class Short2 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number);
					x: number;
					y: number;
					static class: java.lang.Class<android.support.v8.renderscript.Short2>;
				}
				export class AllocationAdapter extends android.support.v8.renderscript.Allocation {
					static class: java.lang.Class<android.support.v8.renderscript.AllocationAdapter>;
					getID(rs: android.support.v8.renderscript.RenderScript): number;
					initLOD(lod: number): void;
					/**
					 * Set the active LOD. The LOD must be within the range for the type being adapted. The base allocation must have mipmaps.
					 * @param lod The LOD to make active.
					 */
					public setLOD(lod: number): void;
					/**
					 * Set the active Face. The base allocation must be of a type that includes faces.
					 * @param cf The face to make active.
					 */
					public setFace(cf: android.support.v8.renderscript.Type.CubemapFace): void;
					/**
					 * Set the active Y. The y value must be within the range for the allocation being adapted. The base allocation must contain the Y dimension.
					 * @param y The y to make active.
					 */
					public setY(y: number): void;
					/**
					 * Set the active Z. The z value must be within the range for the allocation being adapted. The base allocation must contain the Z dimension.
					 * @param z The z to make active.
					 */
					public setZ(z: number): void;
					public static create1D(rs: android.support.v8.renderscript.RenderScript, a: android.support.v8.renderscript.Allocation): android.support.v8.renderscript.AllocationAdapter;
					public static create2D(rs: android.support.v8.renderscript.RenderScript, a: android.support.v8.renderscript.Allocation): android.support.v8.renderscript.AllocationAdapter;
					/**
					 * Override the Allocation resize. Resizing adapters is not allowed and will throw a RSInvalidStateException.
					 * @param dimX ignored.
					 */
					public resize(dimX: number): void;
				}
				/**
				 * Utility class for packing arguments and structures from Android system objects to Renderscript objects.
				 */
				export class FieldPacker extends java.lang.Object {
					constructor(len: number);
					static class: java.lang.Class<android.support.v8.renderscript.FieldPacker>;
					public align(v: number): void;
					public reset(): void;
					public reset(i: number): void;
					public skip(i: number): void;
					public addI8(v: number): void;
					public addI16(v: number): void;
					public addI32(v: number): void;
					public addI64(v: number): void;
					public addU8(v: number): void;
					public addU16(v: number): void;
					public addU32(v: number): void;
					public addU64(v: number): void;
					public addF32(v: number): void;
					public addF64(v: number): void;
					public addObj(obj: android.support.v8.renderscript.BaseObj): void;
					public addF32(v: android.support.v8.renderscript.Float2): void;
					public addF32(v: android.support.v8.renderscript.Float3): void;
					public addF32(v: android.support.v8.renderscript.Float4): void;
					public addF64(v: android.support.v8.renderscript.Double2): void;
					public addF64(v: android.support.v8.renderscript.Double3): void;
					public addF64(v: android.support.v8.renderscript.Double4): void;
					public addI8(v: android.support.v8.renderscript.Byte2): void;
					public addI8(v: android.support.v8.renderscript.Byte3): void;
					public addI8(v: android.support.v8.renderscript.Byte4): void;
					public addU8(v: android.support.v8.renderscript.Short2): void;
					public addU8(v: android.support.v8.renderscript.Short3): void;
					public addU8(v: android.support.v8.renderscript.Short4): void;
					public addI16(v: android.support.v8.renderscript.Short2): void;
					public addI16(v: android.support.v8.renderscript.Short3): void;
					public addI16(v: android.support.v8.renderscript.Short4): void;
					public addU16(v: android.support.v8.renderscript.Int2): void;
					public addU16(v: android.support.v8.renderscript.Int3): void;
					public addU16(v: android.support.v8.renderscript.Int4): void;
					public addI32(v: android.support.v8.renderscript.Int2): void;
					public addI32(v: android.support.v8.renderscript.Int3): void;
					public addI32(v: android.support.v8.renderscript.Int4): void;
					public addU32(v: android.support.v8.renderscript.Long2): void;
					public addU32(v: android.support.v8.renderscript.Long3): void;
					public addU32(v: android.support.v8.renderscript.Long4): void;
					public addI64(v: android.support.v8.renderscript.Long2): void;
					public addI64(v: android.support.v8.renderscript.Long3): void;
					public addI64(v: android.support.v8.renderscript.Long4): void;
					public addU64(v: android.support.v8.renderscript.Long2): void;
					public addU64(v: android.support.v8.renderscript.Long3): void;
					public addU64(v: android.support.v8.renderscript.Long4): void;
					public addMatrix(v: android.support.v8.renderscript.Matrix4f): void;
					public addMatrix(v: android.support.v8.renderscript.Matrix3f): void;
					public addMatrix(v: android.support.v8.renderscript.Matrix2f): void;
					public addBoolean(v: boolean): void;
					public getData(): native.Array<number>;
				}
				/**
				 * Class for exposing the native Renderscript int2 type back to the Android system.
				 */
				export class Int2 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number);
					x: number;
					y: number;
					static class: java.lang.Class<android.support.v8.renderscript.Int2>;
				}
				/**
				 * Class for exposing the native Renderscript float2 type back to the Android system.
				 */
				export class Float4 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number, initW: number);
					x: number;
					y: number;
					z: number;
					w: number;
					static class: java.lang.Class<android.support.v8.renderscript.Float4>;
				}
				export class Script extends android.support.v8.renderscript.BaseObj {
					static class: java.lang.Class<android.support.v8.renderscript.Script>;
					/**
					 * Only to be used by generated reflected classes.
					 * @param slot 
					 * @param sig 
					 * @param ein 
					 * @param eout 
					 */
					protected createKernelID(slot: number, sig: number, ein: android.support.v8.renderscript.Element, eout: android.support.v8.renderscript.Element): android.support.v8.renderscript.Script.KernelID;
					/**
					 * Only to be used by generated reflected classes.
					 * @param slot 
					 * @param e 
					 */
					protected createFieldID(slot: number, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.Script.FieldID;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 */
					protected invoke(slot: number): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param v 
					 */
					protected invoke(slot: number, v: android.support.v8.renderscript.FieldPacker): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param ain 
					 * @param aout 
					 * @param v 
					 */
					protected forEach(slot: number, ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation, v: android.support.v8.renderscript.FieldPacker): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param va 
					 * @param slot 
					 */
					public bindAllocation(va: android.support.v8.renderscript.Allocation, slot: number): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param index 
					 * @param v 
					 */
					public setVar(index: number, v: number): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param index 
					 * @param v 
					 */
					public setVar(index: number, v: boolean): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param index 
					 * @param o 
					 */
					public setVar(index: number, o: android.support.v8.renderscript.BaseObj): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param index 
					 * @param v 
					 */
					public setVar(index: number, v: android.support.v8.renderscript.FieldPacker): void;
					/**
					 * Only intended for use by generated reflected code.
					 * @param index 
					 * @param v 
					 * @param e 
					 * @param dims 
					 */
					public setVar(index: number, v: android.support.v8.renderscript.FieldPacker, e: android.support.v8.renderscript.Element, dims: native.Array<number>): void;
					public setTimeZone(timeZone: string): void;
				}
				export module Script {
					/**
					 * FieldID is an identifier for a Script + exported field pair. It is used as an identifier for ScriptGroup creation.
					 */
					export class FieldID extends android.support.v8.renderscript.BaseObj {
						static class: java.lang.Class<android.support.v8.renderscript.Script.FieldID>;
						private __android_support_v8_renderscript_Script_FieldID: any;
					}
					export class Builder extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.Script.Builder>;
					}
					export class FieldBase extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.Script.FieldBase>;
						protected init(rs: android.support.v8.renderscript.RenderScript, dimx: number): void;
						protected init(rs: android.support.v8.renderscript.RenderScript, dimx: number, usages: number): void;
						public getElement(): android.support.v8.renderscript.Element;
						public getType(): android.support.v8.renderscript.Type;
						public getAllocation(): android.support.v8.renderscript.Allocation;
						public updateAllocation(): void;
					}
					/**
					 * KernelID is an identifier for a Script + root function pair. It is used as an identifier for ScriptGroup creation.
					 */
					export class KernelID extends android.support.v8.renderscript.BaseObj {
						static class: java.lang.Class<android.support.v8.renderscript.Script.KernelID>;
						private __android_support_v8_renderscript_Script_KernelID: any;
					}
				}
				/**
				 * BaseObj is the base class for interfacing with native renderscript objects. It primarly contains code for tracking the native object ID and forcably disconecting the object from the native allocation for early cleanup.
				 */
				export class BaseObj extends java.lang.Object {
					static class: java.lang.Class<android.support.v8.renderscript.BaseObj>;
					setID(id: number): void;
					/**
					 * Lookup the native object ID for this object. Primarily used by the generated reflected code.
					 * @param rs Context to verify against internal context for
					 */
					getID(rs: android.support.v8.renderscript.RenderScript): number;
					checkValid(): void;
					protected finalize(): void;
					/**
					 * destroy disconnects the object from the native object effectively rendering this java object dead. The primary use is to force immediate cleanup of resources when it is believed the GC will not respond quickly enough.
					 */
					public destroy(): void;
					/**
					 * Calculates the hash code value for a BaseObj.
					 */
					public hashCode(): number;
					/**
					 * Compare the current BaseObj with another BaseObj for equality.
					 * @param obj The object to check equality with.
					 */
					public equals(obj: any): boolean;
				}
				/**
				 * Class for exposing the native Renderscript int3 type back to the Android system.
				 */
				export class Int3 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number);
					x: number;
					y: number;
					z: number;
					static class: java.lang.Class<android.support.v8.renderscript.Int3>;
				}
				/**
				 * Class for exposing the native Renderscript int4 type back to the Android system.
				 */
				export class Int4 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number, initW: number);
					x: number;
					y: number;
					z: number;
					w: number;
					static class: java.lang.Class<android.support.v8.renderscript.Int4>;
				}
				/**
				 * Intrinsic kernels for blending two buffers. Each blend function is a separate kernel to make it easy to change between blend modes.
				 */
				export class ScriptIntrinsicBlend extends android.support.v8.renderscript.ScriptIntrinsic {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsicBlend>;
					/**
					 * Supported elements types are uchar4
					 * @param rs 
					 * @param e 
					 */
					public static create(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.ScriptIntrinsicBlend;
					/**
					 * dst = {0, 0, 0, 0}
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachClear(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the Clear kernel.
					 */
					public getKernelIDClear(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = src
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachSrc(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the Src kernel.
					 */
					public getKernelIDSrc(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = dst This is a NOP
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachDst(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the Dst kernel.
					 */
					public getKernelIDDst(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = src + dst * (1.0 - src.a)
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachSrcOver(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the SrcOver kernel.
					 */
					public getKernelIDSrcOver(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = dst + src * (1.0 - dst.a)
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachDstOver(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the DstOver kernel.
					 */
					public getKernelIDDstOver(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = src * dst.a
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachSrcIn(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the SrcIn kernel.
					 */
					public getKernelIDSrcIn(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = dst * src.a
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachDstIn(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the DstIn kernel.
					 */
					public getKernelIDDstIn(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = src * (1.0 - dst.a)
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachSrcOut(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the SrcOut kernel.
					 */
					public getKernelIDSrcOut(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = dst * (1.0 - src.a)
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachDstOut(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the DstOut kernel.
					 */
					public getKernelIDDstOut(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst.rgb = src.rgb * dst.a + (1.0 - src.a) * dst.rgb dst.a = dst.a
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachSrcAtop(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the SrcAtop kernel.
					 */
					public getKernelIDSrcAtop(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = dst.rgb * src.a + (1.0 - dst.a) * src.rgb dst.a = src.a
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachDstAtop(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the DstAtop kernel.
					 */
					public getKernelIDDstAtop(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = {src.r ^ dst.r, src.g ^ dst.g, src.b ^ dst.b, src.a ^ dst.a}
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachXor(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the Xor kernel.
					 */
					public getKernelIDXor(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = src * dst
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachMultiply(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the Multiply kernel.
					 */
					public getKernelIDMultiply(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = min(src + dst, 1.0)
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachAdd(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the Add kernel.
					 */
					public getKernelIDAdd(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * dst = max(dst - src, 0.0)
					 * @param ain The source buffer
					 * @param aout The destination buffer
					 */
					public forEachSubtract(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for the Subtract kernel.
					 */
					public getKernelIDSubtract(): android.support.v8.renderscript.Script.KernelID;
				}
				/**
				 * Class for exposing the native Renderscript float2 type back to the Android system.
				 */
				export class Float3 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number);
					x: number;
					y: number;
					z: number;
					static class: java.lang.Class<android.support.v8.renderscript.Float3>;
				}
				/**
				 * Class for exposing the native Renderscript float2 type back to the Android system.
				 */
				export class Float2 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number);
					x: number;
					y: number;
					static class: java.lang.Class<android.support.v8.renderscript.Float2>;
				}
				/**
				 * Renderscript base master class. An instance of this class creates native worker threads for processing commands from this object. This base class does not provide any extended capabilities beyond simple data processing. For extended capabilities use derived classes such as RenderScriptGL.
				 */
				export class RenderScript extends java.lang.Object {
					static class: java.lang.Class<android.support.v8.renderscript.RenderScript>;
					static _nInit(): void;
					nDeviceCreate(): number;
					nDeviceDestroy(dev: number): void;
					nDeviceSetConfig(dev: number, param: number, value: number): void;
					nContextGetUserMessage(con: number, data: native.Array<number>): number;
					nContextGetErrorMessage(con: number): string;
					nContextPeekMessage(con: number, subID: native.Array<number>): number;
					nContextInitToClient(con: number): void;
					nContextDeinitToClient(con: number): void;
					rsnContextCreate(dev: number, ver: number, sdkVer: number): number;
					nContextCreate(dev: number, ver: number, sdkVer: number): number;
					rsnContextDestroy(con: number): void;
					nContextDestroy(): void;
					rsnContextSetPriority(con: number, p: number): void;
					nContextSetPriority(p: number): void;
					rsnContextDump(con: number, bits: number): void;
					nContextDump(bits: number): void;
					rsnContextFinish(con: number): void;
					nContextFinish(): void;
					rsnObjDestroy(con: number, id: number): void;
					nObjDestroy(id: number): void;
					rsnElementCreate(con: number, type: number, kind: number, norm: boolean, vecSize: number): number;
					nElementCreate(type: number, kind: number, norm: boolean, vecSize: number): number;
					rsnElementCreate2(con: number, elements: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): number;
					nElementCreate2(elements: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): number;
					rsnElementGetNativeData(con: number, id: number, elementData: native.Array<number>): void;
					nElementGetNativeData(id: number, elementData: native.Array<number>): void;
					rsnElementGetSubElements(con: number, id: number, IDs: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): void;
					nElementGetSubElements(id: number, IDs: native.Array<number>, names: native.Array<string>, arraySizes: native.Array<number>): void;
					rsnTypeCreate(con: number, eid: number, x: number, y: number, z: number, mips: boolean, faces: boolean): number;
					nTypeCreate(eid: number, x: number, y: number, z: number, mips: boolean, faces: boolean): number;
					rsnTypeGetNativeData(con: number, id: number, typeData: native.Array<number>): void;
					nTypeGetNativeData(id: number, typeData: native.Array<number>): void;
					rsnAllocationCreateTyped(con: number, type: number, mip: number, usage: number, pointer: number): number;
					nAllocationCreateTyped(type: number, mip: number, usage: number, pointer: number): number;
					rsnAllocationCreateFromBitmap(con: number, type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
					nAllocationCreateFromBitmap(type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
					rsnAllocationCubeCreateFromBitmap(con: number, type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
					nAllocationCubeCreateFromBitmap(type: number, mip: number, bmp: android.graphics.Bitmap, usage: number): number;
					rsnAllocationCreateBitmapRef(con: number, type: number, bmp: android.graphics.Bitmap): number;
					nAllocationCreateBitmapRef(type: number, bmp: android.graphics.Bitmap): number;
					rsnAllocationCreateFromAssetStream(con: number, mips: number, assetStream: number, usage: number): number;
					nAllocationCreateFromAssetStream(mips: number, assetStream: number, usage: number): number;
					rsnAllocationCopyToBitmap(con: number, alloc: number, bmp: android.graphics.Bitmap): void;
					nAllocationCopyToBitmap(alloc: number, bmp: android.graphics.Bitmap): void;
					rsnAllocationSyncAll(con: number, alloc: number, src: number): void;
					nAllocationSyncAll(alloc: number, src: number): void;
					rsnAllocationGenerateMipmaps(con: number, alloc: number): void;
					nAllocationGenerateMipmaps(alloc: number): void;
					rsnAllocationCopyFromBitmap(con: number, alloc: number, bmp: android.graphics.Bitmap): void;
					nAllocationCopyFromBitmap(alloc: number, bmp: android.graphics.Bitmap): void;
					rsnAllocationData1D(con: number, id: number, off: number, mip: number, count: number, d: native.Array<number>, sizeBytes: number): void;
					nAllocationData1D(id: number, off: number, mip: number, count: number, d: native.Array<number>, sizeBytes: number): void;
					rsnAllocationElementData1D(con: number, id: number, xoff: number, mip: number, compIdx: number, d: native.Array<number>, sizeBytes: number): void;
					nAllocationElementData1D(id: number, xoff: number, mip: number, compIdx: number, d: native.Array<number>, sizeBytes: number): void;
					rsnAllocationData2D(con: number, dstAlloc: number, dstXoff: number, dstYoff: number, dstMip: number, dstFace: number, width: number, height: number, srcAlloc: number, srcXoff: number, srcYoff: number, srcMip: number, srcFace: number): void;
					nAllocationData2D(dstAlloc: number, dstXoff: number, dstYoff: number, dstMip: number, dstFace: number, width: number, height: number, srcAlloc: number, srcXoff: number, srcYoff: number, srcMip: number, srcFace: number): void;
					rsnAllocationData2D(con: number, id: number, xoff: number, yoff: number, mip: number, face: number, w: number, h: number, d: native.Array<number>, sizeBytes: number): void;
					nAllocationData2D(id: number, xoff: number, yoff: number, mip: number, face: number, w: number, h: number, d: native.Array<number>, sizeBytes: number): void;
					rsnAllocationData2D(con: number, id: number, xoff: number, yoff: number, mip: number, face: number, b: android.graphics.Bitmap): void;
					nAllocationData2D(id: number, xoff: number, yoff: number, mip: number, face: number, b: android.graphics.Bitmap): void;
					rsnAllocationRead(con: number, id: number, d: native.Array<number>): void;
					nAllocationRead(id: number, d: native.Array<number>): void;
					rsnAllocationGetType(con: number, id: number): number;
					nAllocationGetType(id: number): number;
					rsnAllocationResize1D(con: number, id: number, dimX: number): void;
					nAllocationResize1D(id: number, dimX: number): void;
					rsnAllocationResize2D(con: number, id: number, dimX: number, dimY: number): void;
					nAllocationResize2D(id: number, dimX: number, dimY: number): void;
					rsnScriptBindAllocation(con: number, script: number, alloc: number, slot: number): void;
					nScriptBindAllocation(script: number, alloc: number, slot: number): void;
					rsnScriptSetTimeZone(con: number, script: number, timeZone: native.Array<number>): void;
					nScriptSetTimeZone(script: number, timeZone: native.Array<number>): void;
					rsnScriptInvoke(con: number, id: number, slot: number): void;
					nScriptInvoke(id: number, slot: number): void;
					rsnScriptForEach(con: number, id: number, slot: number, ain: number, aout: number, params: native.Array<number>): void;
					rsnScriptForEach(con: number, id: number, slot: number, ain: number, aout: number): void;
					nScriptForEach(id: number, slot: number, ain: number, aout: number, params: native.Array<number>): void;
					rsnScriptInvokeV(con: number, id: number, slot: number, params: native.Array<number>): void;
					nScriptInvokeV(id: number, slot: number, params: native.Array<number>): void;
					rsnScriptSetVarI(con: number, id: number, slot: number, val: number): void;
					nScriptSetVarI(id: number, slot: number, val: number): void;
					rsnScriptSetVarJ(con: number, id: number, slot: number, val: number): void;
					nScriptSetVarJ(id: number, slot: number, val: number): void;
					rsnScriptSetVarF(con: number, id: number, slot: number, val: number): void;
					nScriptSetVarF(id: number, slot: number, val: number): void;
					rsnScriptSetVarD(con: number, id: number, slot: number, val: number): void;
					nScriptSetVarD(id: number, slot: number, val: number): void;
					rsnScriptSetVarV(con: number, id: number, slot: number, val: native.Array<number>): void;
					nScriptSetVarV(id: number, slot: number, val: native.Array<number>): void;
					rsnScriptSetVarVE(con: number, id: number, slot: number, val: native.Array<number>, e: number, dims: native.Array<number>): void;
					nScriptSetVarVE(id: number, slot: number, val: native.Array<number>, e: number, dims: native.Array<number>): void;
					rsnScriptSetVarObj(con: number, id: number, slot: number, val: number): void;
					nScriptSetVarObj(id: number, slot: number, val: number): void;
					rsnScriptCCreate(con: number, resName: string, cacheDir: string, script: native.Array<number>, length: number): number;
					nScriptCCreate(resName: string, cacheDir: string, script: native.Array<number>, length: number): number;
					rsnScriptIntrinsicCreate(con: number, id: number, eid: number): number;
					nScriptIntrinsicCreate(id: number, eid: number): number;
					rsnScriptKernelIDCreate(con: number, sid: number, slot: number, sig: number): number;
					nScriptKernelIDCreate(sid: number, slot: number, sig: number): number;
					rsnScriptFieldIDCreate(con: number, sid: number, slot: number): number;
					nScriptFieldIDCreate(sid: number, slot: number): number;
					rsnScriptGroupCreate(con: number, kernels: native.Array<number>, src: native.Array<number>, dstk: native.Array<number>, dstf: native.Array<number>, types: native.Array<number>): number;
					nScriptGroupCreate(kernels: native.Array<number>, src: native.Array<number>, dstk: native.Array<number>, dstf: native.Array<number>, types: native.Array<number>): number;
					rsnScriptGroupSetInput(con: number, group: number, kernel: number, alloc: number): void;
					nScriptGroupSetInput(group: number, kernel: number, alloc: number): void;
					rsnScriptGroupSetOutput(con: number, group: number, kernel: number, alloc: number): void;
					nScriptGroupSetOutput(group: number, kernel: number, alloc: number): void;
					rsnScriptGroupExecute(con: number, group: number): void;
					nScriptGroupExecute(group: number): void;
					rsnSamplerCreate(con: number, magFilter: number, minFilter: number, wrapS: number, wrapT: number, wrapR: number, aniso: number): number;
					nSamplerCreate(magFilter: number, minFilter: number, wrapS: number, wrapT: number, wrapR: number, aniso: number): number;
					public setMessageHandler(msg: android.support.v8.renderscript.RenderScript.RSMessageHandler): void;
					public getMessageHandler(): android.support.v8.renderscript.RenderScript.RSMessageHandler;
					public setErrorHandler(msg: android.support.v8.renderscript.RenderScript.RSErrorHandler): void;
					public getErrorHandler(): android.support.v8.renderscript.RenderScript.RSErrorHandler;
					validate(): void;
					/**
					 * Change the priority of the worker threads for this context.
					 * @param p New priority to be set.
					 */
					public setPriority(p: android.support.v8.renderscript.RenderScript.Priority): void;
					/**
					 * Gets the application context associated with the RenderScript context.
					 */
					public getApplicationContext(): android.content.Context;
					/**
					 * Create a basic RenderScript context.
					 * @param ctx The context.
					 */
					public static create(ctx: android.content.Context): android.support.v8.renderscript.RenderScript;
					/**
					 * Print the currently available debugging information about the state of the RS context to the log.
					 */
					public contextDump(): void;
					/**
					 * Wait for any commands in the fifo between the java bindings and native to be processed.
					 */
					public finish(): void;
					/**
					 * Destroy this renderscript context. Once this function is called its no longer legal to use this or any objects created by this context.
					 */
					public destroy(): void;
					isAlive(): boolean;
					safeID(o: android.support.v8.renderscript.BaseObj): number;
				}
				export module RenderScript {
					/**
					 * Base class application should derive from for handling RS messages coming from their scripts. When a script calls sendToClient the data fields will be filled in and then the run method called by a message handling thread. This will occur some time after sendToClient completes in the script.
					 */
					export class RSMessageHandler extends java.lang.Object implements java.lang.IRunnable {
						constructor();
						static class: java.lang.Class<android.support.v8.renderscript.RenderScript.RSMessageHandler>;
						public run(): void;
					}
					/**
					 * RenderScript worker threads priority enumeration. The default value is NORMAL. Applications wishing to do background processing such as wallpapers should set their priority to LOW to avoid starving forground processes.
					 */
					export enum Priority {
						LOW,
						NORMAL
					}
					/**
					 * Runtime error base class. An application should derive from this class if it wishes to install an error handler. When errors occur at runtime the fields in this class will be filled and the run method called.
					 */
					export class RSErrorHandler extends java.lang.Object implements java.lang.IRunnable {
						constructor();
						static class: java.lang.Class<android.support.v8.renderscript.RenderScript.RSErrorHandler>;
						public run(): void;
					}
					export class MessageThread extends java.lang.Thread {
						static class: java.lang.Class<android.support.v8.renderscript.RenderScript.MessageThread>;
						public run(): void;
					}
					export class NRS extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.RenderScript.NRS>;
						getRS(): android.renderscript.RenderScript;
					}
				}
				/**
				 * Class for exposing the native Renderscript rs_matrix4x4 type back to the Android system.
				 */
				export class Matrix4f extends java.lang.Object {
					/**
					 * Creates a new identity 4x4 matrix
					 */
					constructor();
					/**
					 * Creates a new matrix and sets its values from the given parameter
					 * @param dataArray values to set the matrix to, must be 16
					 */
					constructor(dataArray: native.Array<number>);
					static class: java.lang.Class<android.support.v8.renderscript.Matrix4f>;
					/**
					 * Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix
					 */
					public getArray(): native.Array<number>;
					/**
					 * Returns the value for a given row and column
					 * @param x column of the value to return
					 * @param y row of the value to return
					 */
					public get(x: number, y: number): number;
					/**
					 * Sets the value for a given row and column
					 * @param x column of the value to set
					 * @param y row of the value to set
					 * @param v 
					 */
					public set(x: number, y: number, v: number): void;
					/**
					 * Sets the matrix values to identity
					 */
					public loadIdentity(): void;
					/**
					 * Sets the values of the matrix to those of the parameter
					 * @param src matrix to load the values from
					 */
					public load(src: android.support.v8.renderscript.Matrix4f): void;
					/**
					 * Sets current values to be a rotation matrix of certain angle about a given axis
					 * @param rot angle of rotation
					 * @param x rotation axis x
					 * @param y rotation axis y
					 * @param z rotation axis z
					 */
					public loadRotate(rot: number, x: number, y: number, z: number): void;
					/**
					 * Sets current values to be a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 * @param z scale component z
					 */
					public loadScale(x: number, y: number, z: number): void;
					/**
					 * Sets current values to be a translation matrix of given dimensions
					 * @param x translation component x
					 * @param y translation component y
					 * @param z translation component z
					 */
					public loadTranslate(x: number, y: number, z: number): void;
					/**
					 * Sets current values to be the result of multiplying two given matrices
					 * @param lhs left hand side matrix
					 * @param rhs right hand side matrix
					 */
					public loadMultiply(lhs: android.support.v8.renderscript.Matrix4f, rhs: android.support.v8.renderscript.Matrix4f): void;
					/**
					 * Set current values to be an orthographic projection matrix
					 * @param l location of the left vertical clipping plane
					 * @param r location of the right vertical clipping plane
					 * @param b location of the bottom horizontal clipping plane
					 * @param t location of the top horizontal clipping plane
					 * @param n location of the near clipping plane
					 * @param f location of the far clipping plane
					 */
					public loadOrtho(l: number, r: number, b: number, t: number, n: number, f: number): void;
					/**
					 * Set current values to be an orthographic projection matrix with the right and bottom clipping planes set to the given values. Left and top clipping planes are set to 0. Near and far are set to -1, 1 respectively
					 * @param w location of the right vertical clipping plane
					 * @param h location of the bottom horizontal clipping plane
					 */
					public loadOrthoWindow(w: number, h: number): void;
					/**
					 * Sets current values to be a perspective projection matrix
					 * @param l location of the left vertical clipping plane
					 * @param r location of the right vertical clipping plane
					 * @param b location of the bottom horizontal clipping plane
					 * @param t location of the top horizontal clipping plane
					 * @param n location of the near clipping plane, must be positive
					 * @param f location of the far clipping plane, must be positive
					 */
					public loadFrustum(l: number, r: number, b: number, t: number, n: number, f: number): void;
					/**
					 * Sets current values to be a perspective projection matrix
					 * @param fovy vertical field of view angle in degrees
					 * @param aspect aspect ratio of the screen
					 * @param near near cliping plane, must be positive
					 * @param far far clipping plane, must be positive
					 */
					public loadPerspective(fovy: number, aspect: number, near: number, far: number): void;
					/**
					 * Helper function to set the current values to a perspective projection matrix with aspect ratio defined by the parameters and (near, far), (bottom, top) mapping to (-1, 1) at z = 0
					 * @param w screen width
					 * @param h screen height
					 */
					public loadProjectionNormalized(w: number, h: number): void;
					/**
					 * Post-multiplies the current matrix by a given parameter
					 * @param rhs right hand side to multiply by
					 */
					public multiply(rhs: android.support.v8.renderscript.Matrix4f): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a rotation matrix of certain angle about a given axis
					 * @param rot angle of rotation
					 * @param x rotation axis x
					 * @param y rotation axis y
					 * @param z rotation axis z
					 */
					public rotate(rot: number, x: number, y: number, z: number): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 * @param z scale component z
					 */
					public scale(x: number, y: number, z: number): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a translation matrix of given dimensions
					 * @param x translation component x
					 * @param y translation component y
					 * @param z translation component z
					 */
					public translate(x: number, y: number, z: number): void;
					/**
					 * Sets the current matrix to its inverse
					 */
					public inverse(): boolean;
					/**
					 * Sets the current matrix to its inverse transpose
					 */
					public inverseTranspose(): boolean;
					/**
					 * Sets the current matrix to its transpose
					 */
					public transpose(): void;
				}
				export class Type extends android.support.v8.renderscript.BaseObj {
					static class: java.lang.Class<android.support.v8.renderscript.Type>;
					/**
					 * Return the element associated with this Type.
					 */
					public getElement(): android.support.v8.renderscript.Element;
					/**
					 * Return the value of the X dimension.
					 */
					public getX(): number;
					/**
					 * Return the value of the Y dimension or 0 for a 1D allocation.
					 */
					public getY(): number;
					/**
					 * Return the value of the Z dimension or 0 for a 1D or 2D allocation.
					 */
					public getZ(): number;
					/**
					 * Return if the Type has a mipmap chain.
					 */
					public hasMipmaps(): boolean;
					/**
					 * Return if the Type is a cube map.
					 */
					public hasFaces(): boolean;
					/**
					 * Return the total number of accessable cells in the Type.
					 */
					public getCount(): number;
					calcElementCount(): void;
				}
				export module Type {
					/**
					 * Builder class for Type.
					 */
					export class Builder extends java.lang.Object {
						/**
						 * Create a new builder object.
						 * @param rs 
						 * @param e The element for the type to be created.
						 */
						constructor(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element);
						static class: java.lang.Class<android.support.v8.renderscript.Type.Builder>;
						/**
						 * Add a dimension to the Type.
						 * @param value 
						 */
						public setX(value: number): android.support.v8.renderscript.Type.Builder;
						public setY(value: number): android.support.v8.renderscript.Type.Builder;
						public setMipmaps(value: boolean): android.support.v8.renderscript.Type.Builder;
						public setFaces(value: boolean): android.support.v8.renderscript.Type.Builder;
						/**
						 * Validate structure and create a new type.
						 */
						public create(): android.support.v8.renderscript.Type;
					}
					export enum CubemapFace {
						POSITIVE_X,
						NEGATIVE_X,
						POSITIVE_Y,
						NEGATIVE_Y,
						POSITIVE_Z,
						NEGATIVE_Z
					}
				}
				/**
				 * Class for exposing the native Renderscript rs_matrix2x2 type back to the Android system.
				 */
				export class Matrix2f extends java.lang.Object {
					/**
					 * Creates a new identity 2x2 matrix
					 */
					constructor();
					/**
					 * Creates a new matrix and sets its values from the given parameter
					 * @param dataArray values to set the matrix to, must be 4
					 */
					constructor(dataArray: native.Array<number>);
					static class: java.lang.Class<android.support.v8.renderscript.Matrix2f>;
					/**
					 * Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix
					 */
					public getArray(): native.Array<number>;
					/**
					 * Returns the value for a given row and column
					 * @param x column of the value to return
					 * @param y row of the value to return
					 */
					public get(x: number, y: number): number;
					/**
					 * Sets the value for a given row and column
					 * @param x column of the value to set
					 * @param y row of the value to set
					 * @param v 
					 */
					public set(x: number, y: number, v: number): void;
					/**
					 * Sets the matrix values to identity
					 */
					public loadIdentity(): void;
					/**
					 * Sets the values of the matrix to those of the parameter
					 * @param src matrix to load the values from
					 */
					public load(src: android.support.v8.renderscript.Matrix2f): void;
					/**
					 * Sets current values to be a rotation matrix of given angle
					 * @param rot rotation angle
					 */
					public loadRotate(rot: number): void;
					/**
					 * Sets current values to be a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 */
					public loadScale(x: number, y: number): void;
					/**
					 * Sets current values to be the result of multiplying two given matrices
					 * @param lhs left hand side matrix
					 * @param rhs right hand side matrix
					 */
					public loadMultiply(lhs: android.support.v8.renderscript.Matrix2f, rhs: android.support.v8.renderscript.Matrix2f): void;
					/**
					 * Post-multiplies the current matrix by a given parameter
					 * @param rhs right hand side to multiply by
					 */
					public multiply(rhs: android.support.v8.renderscript.Matrix2f): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a rotation matrix of given angle
					 * @param rot angle of rotation
					 */
					public rotate(rot: number): void;
					/**
					 * Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions
					 * @param x scale component x
					 * @param y scale component y
					 */
					public scale(x: number, y: number): void;
					/**
					 * Sets the current matrix to its transpose
					 */
					public transpose(): void;
				}
				/**
				 * Class for exposing the native Renderscript long3 type back to the Android system.
				 */
				export class Long3 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number);
					x: number;
					y: number;
					z: number;
					static class: java.lang.Class<android.support.v8.renderscript.Long3>;
				}
				export class ScriptC extends android.support.v8.renderscript.Script {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptC>;
				}
				/**
				 * Class for exposing the native Renderscript long2 type back to the Android system.
				 */
				export class Long2 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number);
					x: number;
					y: number;
					static class: java.lang.Class<android.support.v8.renderscript.Long2>;
				}
				/**
				 * Sampler object which defines how data is extracted from textures. Samplers are attached to Program objects (currently only ProgramFragment) when those objects need to access texture data.
				 */
				export class Sampler extends android.support.v8.renderscript.BaseObj {
					static class: java.lang.Class<android.support.v8.renderscript.Sampler>;
					public getMinification(): android.support.v8.renderscript.Sampler.Value;
					public getMagnification(): android.support.v8.renderscript.Sampler.Value;
					public getWrapS(): android.support.v8.renderscript.Sampler.Value;
					public getWrapT(): android.support.v8.renderscript.Sampler.Value;
					public getAnisotropy(): number;
					/**
					 * Retrieve a sampler with min and mag set to nearest and wrap modes set to clamp.
					 * @param rs Context to which the sampler will belong.
					 */
					public static CLAMP_NEAREST(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Sampler;
					/**
					 * Retrieve a sampler with min and mag set to linear and wrap modes set to clamp.
					 * @param rs Context to which the sampler will belong.
					 */
					public static CLAMP_LINEAR(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Sampler;
					/**
					 * Retrieve a sampler with ag set to linear, min linear mipmap linear, and to and wrap modes set to clamp.
					 * @param rs Context to which the sampler will belong.
					 */
					public static CLAMP_LINEAR_MIP_LINEAR(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Sampler;
					/**
					 * Retrieve a sampler with min and mag set to nearest and wrap modes set to wrap.
					 * @param rs Context to which the sampler will belong.
					 */
					public static WRAP_NEAREST(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Sampler;
					/**
					 * Retrieve a sampler with min and mag set to nearest and wrap modes set to wrap.
					 * @param rs Context to which the sampler will belong.
					 */
					public static WRAP_LINEAR(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Sampler;
					/**
					 * Retrieve a sampler with ag set to linear, min linear mipmap linear, and to and wrap modes set to wrap.
					 * @param rs Context to which the sampler will belong.
					 */
					public static WRAP_LINEAR_MIP_LINEAR(rs: android.support.v8.renderscript.RenderScript): android.support.v8.renderscript.Sampler;
				}
				export module Sampler {
					/**
					 * Builder for creating non-standard samplers. Usefull if mix and match of wrap modes is necesary or if anisotropic filtering is desired.
					 */
					export class Builder extends java.lang.Object {
						constructor(rs: android.support.v8.renderscript.RenderScript);
						static class: java.lang.Class<android.support.v8.renderscript.Sampler.Builder>;
						public setMinification(v: android.support.v8.renderscript.Sampler.Value): void;
						public setMagnification(v: android.support.v8.renderscript.Sampler.Value): void;
						public setWrapS(v: android.support.v8.renderscript.Sampler.Value): void;
						public setWrapT(v: android.support.v8.renderscript.Sampler.Value): void;
						public setAnisotropy(v: number): void;
						public create(): android.support.v8.renderscript.Sampler;
					}
					export enum Value {
						NEAREST,
						LINEAR,
						LINEAR_MIP_LINEAR,
						LINEAR_MIP_NEAREST,
						WRAP,
						CLAMP
					}
				}
				/**
				 * Class for exposing the native Renderscript long4 type back to the Android system.
				 */
				export class Long4 extends java.lang.Object {
					constructor();
					constructor(initX: number, initY: number, initZ: number, initW: number);
					x: number;
					y: number;
					z: number;
					w: number;
					static class: java.lang.Class<android.support.v8.renderscript.Long4>;
				}
				/**
				 * Intrinsic for applying a color matrix to allocations.
				 */
				export class ScriptIntrinsicColorMatrix extends android.support.v8.renderscript.ScriptIntrinsic {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptIntrinsicColorMatrix>;
					/**
					 * Create an intrinsic for applying a color matrix to an allocation.
					 * @param rs The Renderscript context
					 * @param e Element type for intputs and outputs
					 */
					public static create(rs: android.support.v8.renderscript.RenderScript, e: android.support.v8.renderscript.Element): android.support.v8.renderscript.ScriptIntrinsicColorMatrix;
					/**
					 * Set the color matrix which will be applied to each cell of the image.
					 * @param m The 4x4 matrix to set.
					 */
					public setColorMatrix(m: android.support.v8.renderscript.Matrix4f): void;
					/**
					 * Set the color matrix which will be applied to each cell of the image. This will set the alpha channel to be a copy.
					 * @param m The 3x3 matrix to set.
					 */
					public setColorMatrix(m: android.support.v8.renderscript.Matrix3f): void;
					/**
					 * Set a color matrix to convert from RGB to luminance. The alpha channel will be a copy.
					 */
					public setGreyscale(): void;
					/**
					 * Set the matrix to convert from YUV to RGB with a direct copy of the 4th channel.
					 */
					public setYUVtoRGB(): void;
					/**
					 * Set the matrix to convert from RGB to YUV with a direct copy of the 4th channel.
					 */
					public setRGBtoYUV(): void;
					/**
					 * Invoke the kernel and apply the matrix to each cell of ain and copy to aout.
					 * @param ain Input allocation
					 * @param aout Output allocation
					 */
					public forEach(ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation): void;
					/**
					 * Get a KernelID for this intrinsic kernel.
					 */
					public getKernelID(): android.support.v8.renderscript.Script.KernelID;
					/**
					 * Only intended for use by generated reflected code.
					 * @param slot 
					 * @param ain 
					 * @param aout 
					 * @param v 
					 */
					public forEach(slot: number, ain: android.support.v8.renderscript.Allocation, aout: android.support.v8.renderscript.Allocation, v: android.support.v8.renderscript.FieldPacker): void;
				}
				/**
				 * ScriptGroup creates a groups of scripts which are executed together based upon upon one execution call as if they were all part of a single script. The scripts may be connected internally or to an external allocation. For the internal connections the intermediate results are not observable after the execution of the script.
				 */
				export class ScriptGroup extends android.support.v8.renderscript.BaseObj {
					static class: java.lang.Class<android.support.v8.renderscript.ScriptGroup>;
					/**
					 * Sets an input of the ScriptGroup. This specifies an Allocation to be used for the kernels which require a kernel input and that input is provided external to the group.
					 * @param s The ID of the kernel where the allocation should be
					 * @param a The allocation to connect.
					 */
					public setInput(s: android.support.v8.renderscript.Script.KernelID, a: android.support.v8.renderscript.Allocation): void;
					/**
					 * Sets an output of the ScriptGroup. This specifies an Allocation to be used for the kernels which require a kernel output and that output is provided external to the group.
					 * @param s The ID of the kernel where the allocation should be
					 * @param a The allocation to connect.
					 */
					public setOutput(s: android.support.v8.renderscript.Script.KernelID, a: android.support.v8.renderscript.Allocation): void;
					/**
					 * Execute the ScriptGroup. This will run all the kernels in the script. The state of the connecting lines will not be observable after this operation.
					 */
					public execute(): void;
				}
				export module ScriptGroup {
					export class IO extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.ScriptGroup.IO>;
					}
					export class Node extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.ScriptGroup.Node>;
					}
					/**
					 * Create a ScriptGroup. There are two steps to creating a ScriptGoup.
					 */
					export class Builder extends java.lang.Object {
						/**
						 * Create a builder for generating a ScriptGroup.
						 * @param rs The Renderscript context.
						 */
						constructor(rs: android.support.v8.renderscript.RenderScript);
						static class: java.lang.Class<android.support.v8.renderscript.ScriptGroup.Builder>;
						/**
						 * Adds a Kernel to the group.
						 * @param k The kernel to add.
						 */
						public addKernel(k: android.support.v8.renderscript.Script.KernelID): android.support.v8.renderscript.ScriptGroup.Builder;
						/**
						 * Adds a connection to the group.
						 * @param t The type of the connection. This is used to
						 * @param from The source for the connection.
						 * @param to The destination of the connection.
						 */
						public addConnection(t: android.support.v8.renderscript.Type, from: android.support.v8.renderscript.Script.KernelID, to: android.support.v8.renderscript.Script.FieldID): android.support.v8.renderscript.ScriptGroup.Builder;
						/**
						 * Adds a connection to the group.
						 * @param t The type of the connection. This is used to
						 * @param from The source for the connection.
						 * @param to The destination of the connection.
						 */
						public addConnection(t: android.support.v8.renderscript.Type, from: android.support.v8.renderscript.Script.KernelID, to: android.support.v8.renderscript.Script.KernelID): android.support.v8.renderscript.ScriptGroup.Builder;
						/**
						 * Creates the Script group.
						 */
						public create(): android.support.v8.renderscript.ScriptGroup;
					}
					export class ConnectLine extends java.lang.Object {
						static class: java.lang.Class<android.support.v8.renderscript.ScriptGroup.ConnectLine>;
					}
				}
			}
		}
		export module v13 {
			export module app {
				/**
				 * Implementation of android.support.v4.view.PagerAdapter that uses a Fragment to manage each page. This class also handles saving and restoring of fragment's state.
				 */
				export class FragmentStatePagerAdapter extends android.support.v4.view.PagerAdapter {
					constructor(fm: android.app.FragmentManager);
					static class: java.lang.Class<android.support.v13.app.FragmentStatePagerAdapter>;
					/**
					 * Return the Fragment associated with a specified position.
					 */
					public getItem(position: number): android.app.Fragment;
					public startUpdate(container: android.view.ViewGroup): void;
					public instantiateItem(container: android.view.ViewGroup, position: number): any;
					public destroyItem(container: android.view.ViewGroup, position: number, object: any): void;
					public setPrimaryItem(container: android.view.ViewGroup, position: number, object: any): void;
					public finishUpdate(container: android.view.ViewGroup): void;
					public isViewFromObject(view: android.view.View, object: any): boolean;
					public saveState(): android.os.IParcelable;
					public restoreState(state: android.os.IParcelable, loader: java.lang.ClassLoader): void;
					/**
					 * Called when a change in the shown pages is going to start being made.
					 * @param container The containing View which is displaying this adapter's
					 */
					startUpdate(container: android.view.View): void;
					/**
					 * Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns from #finishUpdate(ViewGroup).
					 * @param container The containing View in which the page will be shown.
					 * @param position The page position to be instantiated.
					 */
					instantiateItem(container: android.view.View, position: number): any;
					/**
					 * Remove a page for the given position. The adapter is responsible for removing the view from its container, although it only must ensure this is done by the time it returns from #finishUpdate(View).
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position to be removed.
					 * @param object The same object that was returned by
					 */
					destroyItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position that is now the primary.
					 * @param object The same object that was returned by
					 */
					setPrimaryItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called when the a change in the shown pages has been completed. At this point you must ensure that all of the pages have actually been added or removed from the container as appropriate.
					 * @param container The containing View which is displaying this adapter's
					 */
					finishUpdate(container: android.view.View): void;
				}
				/**
				 * Implementation of android.support.v4.view.PagerAdapter that represents each page as a android.app.Fragment that is persistently kept in the fragment manager as long as the user can return to the page.
				 */
				export class FragmentPagerAdapter extends android.support.v4.view.PagerAdapter {
					constructor(fm: android.app.FragmentManager);
					static class: java.lang.Class<android.support.v13.app.FragmentPagerAdapter>;
					/**
					 * Return the Fragment associated with a specified position.
					 */
					public getItem(position: number): android.app.Fragment;
					public startUpdate(container: android.view.ViewGroup): void;
					public instantiateItem(container: android.view.ViewGroup, position: number): any;
					public destroyItem(container: android.view.ViewGroup, position: number, object: any): void;
					public setPrimaryItem(container: android.view.ViewGroup, position: number, object: any): void;
					public finishUpdate(container: android.view.ViewGroup): void;
					public isViewFromObject(view: android.view.View, object: any): boolean;
					public saveState(): android.os.IParcelable;
					public restoreState(state: android.os.IParcelable, loader: java.lang.ClassLoader): void;
					/**
					 * Return a unique identifier for the item at the given position.
					 * @param position Position within this adapter
					 */
					public getItemId(position: number): any;
					/**
					 * Called when a change in the shown pages is going to start being made.
					 * @param container The containing View which is displaying this adapter's
					 */
					startUpdate(container: android.view.View): void;
					/**
					 * Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns from #finishUpdate(ViewGroup).
					 * @param container The containing View in which the page will be shown.
					 * @param position The page position to be instantiated.
					 */
					instantiateItem(container: android.view.View, position: number): any;
					/**
					 * Remove a page for the given position. The adapter is responsible for removing the view from its container, although it only must ensure this is done by the time it returns from #finishUpdate(View).
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position to be removed.
					 * @param object The same object that was returned by
					 */
					destroyItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position that is now the primary.
					 * @param object The same object that was returned by
					 */
					setPrimaryItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called when the a change in the shown pages has been completed. At this point you must ensure that all of the pages have actually been added or removed from the container as appropriate.
					 * @param container The containing View which is displaying this adapter's
					 */
					finishUpdate(container: android.view.View): void;
				}
				export class FragmentCompatICS extends java.lang.Object {
					static class: java.lang.Class<android.support.v13.app.FragmentCompatICS>;
					public static setMenuVisibility(f: android.app.Fragment, visible: boolean): void;
				}
				export class FragmentCompatICSMR1 extends java.lang.Object {
					static class: java.lang.Class<android.support.v13.app.FragmentCompatICSMR1>;
					public static setUserVisibleHint(f: android.app.Fragment, isVisible: boolean): void;
				}
				/**
				 * Version of android.support.v4.app.FragmentTabHost that can be used with the platform android.app.Fragment APIs. You will not normally use this, instead using action bar tabs.
				 */
				export class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.IOnTabChangeListener {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					static class: java.lang.Class<android.support.v13.app.FragmentTabHost>;
					/**
					 *  Don't call the original TabHost setup, you must instead call #setup(Context, FragmentManager) or #setup(Context, FragmentManager, int).
					 */
					public setup(): void;
					public setup(context: android.content.Context, manager: android.app.FragmentManager): void;
					public setup(context: android.content.Context, manager: android.app.FragmentManager, containerId: number): void;
					public setOnTabChangedListener(l: android.widget.TabHost.IOnTabChangeListener): void;
					public addTab(tabSpec: android.widget.TabHost.TabSpec, clss: java.lang.Class<any>, args: android.os.Bundle): void;
					protected onAttachedToWindow(): void;
					protected onDetachedFromWindow(): void;
					protected onSaveInstanceState(): android.os.IParcelable;
					protected onRestoreInstanceState(state: android.os.IParcelable): void;
					public onTabChanged(tabId: string): void;
					/**
					 * If you are using TabSpec#setContent(android.content.Intent), this must be called since the activityGroup is needed to launch the local activity.
					 * @param activityGroup Used to launch activities for tab content.
					 */
					setup(activityGroup: android.app.LocalActivityManager): void;
					/**
					 * Add a tab.
					 * @param tabSpec Specifies how to create the indicator and content.
					 */
					addTab(tabSpec: android.widget.TabHost.TabSpec): void;
				}
				export module FragmentTabHost {
					export class SavedState extends android.view.View.BaseSavedState {
						static CREATOR: android.os.Parcelable.ICreator<android.support.v13.app.FragmentTabHost.SavedState>;
						static class: java.lang.Class<android.support.v13.app.FragmentTabHost.SavedState>;
						public writeToParcel(out: android.os.Parcel, flags: number): void;
						public toString(): string;
					}
					export class DummyTabFactory extends java.lang.Object implements android.widget.TabHost.ITabContentFactory {
						constructor(context: android.content.Context);
						static class: java.lang.Class<android.support.v13.app.FragmentTabHost.DummyTabFactory>;
						public createTabContent(tag: string): android.view.View;
					}
					export class TabInfo extends java.lang.Object {
						static class: java.lang.Class<android.support.v13.app.FragmentTabHost.TabInfo>;
					}
				}
				/**
				 * Helper for accessing features in Fragment introduced after API level 13 in a backwards compatible fashion.
				 */
				export class FragmentCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v13.app.FragmentCompat>;
					/**
					 * Call Fragment#setMenuVisibility(boolean) Fragment.setMenuVisibility(boolean) if running on an appropriate version of the platform.
					 */
					public static setMenuVisibility(f: android.app.Fragment, visible: boolean): void;
					/**
					 * Call Fragment#setUserVisibleHint(boolean) setUserVisibleHint(boolean) if running on an appropriate version of the platform.
					 */
					public static setUserVisibleHint(f: android.app.Fragment, deferStart: boolean): void;
				}
				export module FragmentCompat {
					export class BaseFragmentCompatImpl extends java.lang.Object implements android.support.v13.app.FragmentCompat.IFragmentCompatImpl {
						static class: java.lang.Class<android.support.v13.app.FragmentCompat.BaseFragmentCompatImpl>;
						public setMenuVisibility(f: android.app.Fragment, visible: boolean): void;
						public setUserVisibleHint(f: android.app.Fragment, deferStart: boolean): void;
					}
					export class FragmentCompatImpl implements android.support.v13.app.FragmentCompat.IFragmentCompatImpl {
						constructor(implementation: android.support.v13.app.FragmentCompat.IFragmentCompatImpl);
						public setMenuVisibility(f: android.app.Fragment, visible: boolean): void;
						public setUserVisibleHint(f: android.app.Fragment, deferStart: boolean): void;
					}
					export class ICSFragmentCompatImpl extends android.support.v13.app.FragmentCompat.BaseFragmentCompatImpl {
						static class: java.lang.Class<android.support.v13.app.FragmentCompat.ICSFragmentCompatImpl>;
						public setMenuVisibility(f: android.app.Fragment, visible: boolean): void;
					}
					export class ICSMR1FragmentCompatImpl extends android.support.v13.app.FragmentCompat.ICSFragmentCompatImpl {
						static class: java.lang.Class<android.support.v13.app.FragmentCompat.ICSMR1FragmentCompatImpl>;
						public setUserVisibleHint(f: android.app.Fragment, deferStart: boolean): void;
					}
					interface IFragmentCompatImpl {
						setMenuVisibility(f: android.app.Fragment, visible: boolean): void;
						setUserVisibleHint(f: android.app.Fragment, deferStart: boolean): void;
					}
				}
			}
		}
		export module v4 {
			export module app {
				/**
				 * Implementation of android.support.v4.view.PagerAdapter that uses a Fragment to manage each page. This class also handles saving and restoring of fragment's state.
				 */
				export class FragmentStatePagerAdapter extends android.support.v4.view.PagerAdapter {
					constructor(fm: android.support.v4.app.FragmentManager);
					static class: java.lang.Class<android.support.v4.app.FragmentStatePagerAdapter>;
					/**
					 * Return the Fragment associated with a specified position.
					 */
					public getItem(position: number): android.support.v4.app.Fragment;
					public startUpdate(container: android.view.ViewGroup): void;
					public instantiateItem(container: android.view.ViewGroup, position: number): any;
					public destroyItem(container: android.view.ViewGroup, position: number, object: any): void;
					public setPrimaryItem(container: android.view.ViewGroup, position: number, object: any): void;
					public finishUpdate(container: android.view.ViewGroup): void;
					public isViewFromObject(view: android.view.View, object: any): boolean;
					public saveState(): android.os.IParcelable;
					public restoreState(state: android.os.IParcelable, loader: java.lang.ClassLoader): void;
					/**
					 * Called when a change in the shown pages is going to start being made.
					 * @param container The containing View which is displaying this adapter's
					 */
					startUpdate(container: android.view.View): void;
					/**
					 * Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns from #finishUpdate(ViewGroup).
					 * @param container The containing View in which the page will be shown.
					 * @param position The page position to be instantiated.
					 */
					instantiateItem(container: android.view.View, position: number): any;
					/**
					 * Remove a page for the given position. The adapter is responsible for removing the view from its container, although it only must ensure this is done by the time it returns from #finishUpdate(View).
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position to be removed.
					 * @param object The same object that was returned by
					 */
					destroyItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position that is now the primary.
					 * @param object The same object that was returned by
					 */
					setPrimaryItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called when the a change in the shown pages has been completed. At this point you must ensure that all of the pages have actually been added or removed from the container as appropriate.
					 * @param container The containing View which is displaying this adapter's
					 */
					finishUpdate(container: android.view.View): void;
				}
				export class FragmentState extends java.lang.Object implements android.os.IParcelable {
					constructor(frag: android.support.v4.app.Fragment);
					constructor(input: android.os.Parcel);
					static CREATOR: android.os.Parcelable.ICreator<android.support.v4.app.FragmentState>;
					static class: java.lang.Class<android.support.v4.app.FragmentState>;
					public instantiate(activity: android.support.v4.app.FragmentActivity, parent: android.support.v4.app.Fragment): android.support.v4.app.Fragment;
					public describeContents(): number;
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
				export class ShareCompatJB extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.ShareCompatJB>;
					public static escapeHtml(html: string): string;
				}
				export class LoaderManagerImpl extends android.support.v4.app.LoaderManager {
					static class: java.lang.Class<android.support.v4.app.LoaderManagerImpl>;
					LoaderInfo: {
	new (id: number, args: android.os.Bundle, callbacks: android.support.v4.app.LoaderManager.ILoaderCallbacks<any>): android.support.v4.app.LoaderManagerImpl.LoaderInfo;
};
					updateActivity(activity: android.support.v4.app.FragmentActivity): void;
					installLoader(info: android.support.v4.app.LoaderManagerImpl.LoaderInfo): void;
					/**
					 * Call to initialize a particular ID with a Loader. If this ID already has a Loader associated with it, it is left unchanged and any previous callbacks replaced with the newly provided ones. If there is not currently a Loader for the ID, a new one is created and started. 
					 * @param id A unique (to this LoaderManager instance) identifier under
					 * @param args Optional arguments that will be propagated to
					 * @param callback Interface implementing management of this Loader. Required.
					 */
					public initLoader<D>(id: number, args: android.os.Bundle, callback: android.support.v4.app.LoaderManager.ILoaderCallbacks<D>): android.support.v4.content.Loader<D>;
					/**
					 * Call to re-create the Loader associated with a particular ID. If there is currently a Loader associated with this ID, it will be canceled/stopped/destroyed as appropriate. A new Loader with the given arguments will be created and its data delivered to you once available. 
					 * @param id A unique (to this LoaderManager instance) identifier under
					 * @param args Optional arguments that will be propagated to
					 * @param callback Interface implementing management of this Loader. Required.
					 */
					public restartLoader<D>(id: number, args: android.os.Bundle, callback: android.support.v4.app.LoaderManager.ILoaderCallbacks<D>): android.support.v4.content.Loader<D>;
					/**
					 * Rip down, tear apart, shred to pieces a current Loader ID. After returning from this function, any Loader objects associated with this ID are destroyed. Any data associated with them is destroyed. You better not be using it when you do this.
					 * @param id Identifier of the Loader to be destroyed.
					 */
					public destroyLoader(id: number): void;
					/**
					 * Return the most recent Loader object associated with the given ID.
					 */
					public getLoader<D>(id: number): android.support.v4.content.Loader<D>;
					doStart(): void;
					doStop(): void;
					doRetain(): void;
					finishRetain(): void;
					doReportNextStart(): void;
					doReportStart(): void;
					doDestroy(): void;
					public toString(): string;
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
					public hasRunningLoaders(): boolean;
				}
				export module LoaderManagerImpl {
					export class LoaderInfo extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.app.LoaderManagerImpl.LoaderInfo>;
						start(): void;
						retain(): void;
						finishRetain(): void;
						reportStart(): void;
						stop(): void;
						destroy(): void;
						public onLoadComplete(loader: android.support.v4.content.Loader<any>, data: any): void;
						callOnLoadFinished(loader: android.support.v4.content.Loader<any>, data: any): void;
						public toString(): string;
						public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
					}
				}
				/**
				 * Extra helper functionality for sharing data between activities.
				 */
				export class ShareCompat extends java.lang.Object {
					constructor();
					/**
					 * Intent extra that stores the name of the calling package for an ACTION_SEND intent. When an activity is started using startActivityForResult this is redundant info. (It is also provided by Activity#getCallingPackage().)
					 */
					static EXTRA_CALLING_PACKAGE: string;
					/**
					 * Intent extra that stores the ComponentName of the calling activity for an ACTION_SEND intent.
					 */
					static EXTRA_CALLING_ACTIVITY: string;
					static class: java.lang.Class<android.support.v4.app.ShareCompat>;
					/**
					 * Retrieve the name of the package that launched calledActivity from a share intent. Apps that provide social sharing functionality can use this to provide attribution for the app that shared the content.
					 * @param calledActivity Current activity that was launched to share content
					 */
					public static getCallingPackage(calledActivity: android.app.Activity): string;
					/**
					 * Retrieve the ComponentName of the activity that launched calledActivity from a share intent. Apps that provide social sharing functionality can use this to provide attribution for the app that shared the content.
					 * @param calledActivity Current activity that was launched to share content
					 */
					public static getCallingActivity(calledActivity: android.app.Activity): android.content.ComponentName;
					/**
					 * Configure a MenuItem to act as a sharing action.
					 * @param item MenuItem to configure for sharing
					 * @param shareIntent IntentBuilder with data about the content to share
					 */
					public static configureMenuItem(item: android.view.IMenuItem, shareIntent: android.support.v4.app.ShareCompat.IntentBuilder): void;
					/**
					 * Configure a menu item to act as a sharing action.
					 * @param menu Menu containing the item to use for sharing
					 * @param menuItemId ID of the share item within menu
					 * @param shareIntent IntentBuilder with data about the content to share
					 */
					public static configureMenuItem(menu: android.view.IMenu, menuItemId: number, shareIntent: android.support.v4.app.ShareCompat.IntentBuilder): void;
				}
				export module ShareCompat {
					/**
					 * Compatibility shims for sharing operations
					 */
					export class ShareCompatImpl implements android.support.v4.app.ShareCompat.IShareCompatImpl {
						constructor(implementation: android.support.v4.app.ShareCompat.IShareCompatImpl);
						public configureMenuItem(item: android.view.IMenuItem, shareIntent: android.support.v4.app.ShareCompat.IntentBuilder): void;
						public escapeHtml(text: string): string;
					}
					/**
					 * Compatibility shims for sharing operations
					 */
					interface IShareCompatImpl {
						configureMenuItem(item: android.view.IMenuItem, shareIntent: android.support.v4.app.ShareCompat.IntentBuilder): void;
						escapeHtml(text: string): string;
					}
					export class ShareCompatImplBase extends java.lang.Object implements android.support.v4.app.ShareCompat.IShareCompatImpl {
						static class: java.lang.Class<android.support.v4.app.ShareCompat.ShareCompatImplBase>;
						public configureMenuItem(item: android.view.IMenuItem, shareIntent: android.support.v4.app.ShareCompat.IntentBuilder): void;
						public escapeHtml(text: string): string;
					}
					/**
					 * IntentBuilder is a helper for constructing Intent#ACTION_SEND and Intent#ACTION_SEND_MULTIPLE sharing intents and starting activities to share content. The ComponentName and package name of the calling activity will be included.
					 */
					export class IntentBuilder extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.app.ShareCompat.IntentBuilder>;
						/**
						 * Create a new IntentBuilder for launching a sharing action from launchingActivity.
						 * @param launchingActivity Activity that the share will be launched from
						 */
						public static from(launchingActivity: android.app.Activity): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Retrieve the Intent as configured so far by the IntentBuilder. This Intent is suitable for use in a ShareActionProvider or chooser dialog.
						 */
						public getIntent(): android.content.Intent;
						getActivity(): android.app.Activity;
						/**
						 * Create an Intent that will launch the standard Android activity chooser, allowing the user to pick what activity/app on the system should handle the share.
						 */
						public createChooserIntent(): android.content.Intent;
						/**
						 * Start a chooser activity for the current share intent.
						 */
						public startChooser(): void;
						/**
						 * Set the title that will be used for the activity chooser for this share.
						 * @param title Title string
						 */
						public setChooserTitle(title: string): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set the title that will be used for the activity chooser for this share.
						 * @param resId Resource ID of the title string to use
						 */
						public setChooserTitle(resId: number): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set the type of data being shared
						 * @param mimeType mimetype of the shared data
						 */
						public setType(mimeType: string): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set the literal text data to be sent as part of the share. This may be a styled CharSequence.
						 * @param text Text to share
						 */
						public setText(text: string): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set an HTML string to be sent as part of the share. If Intent#EXTRA_TEXT EXTRA_TEXT has not already been supplied, a styled version of the supplied HTML text will be added as EXTRA_TEXT as parsed by android.text.Html#fromHtml(String) Html.fromHtml.
						 * @param htmlText A string containing HTML markup as a richer version of the text
						 */
						public setHtmlText(htmlText: string): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set a stream URI to the data that should be shared.
						 * @param streamUri URI of the stream to share
						 */
						public setStream(streamUri: android.net.Uri): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Add a stream URI to the data that should be shared. If this is not the first stream URI added the final intent constructed will become an ACTION_SEND_MULTIPLE intent. Not all apps will handle both ACTION_SEND and ACTION_SEND_MULTIPLE.
						 * @param streamUri URI of the stream to share
						 */
						public addStream(streamUri: android.net.Uri): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set an array of email addresses as recipients of this share. This replaces all current "to" recipients that have been set so far.
						 * @param addresses Email addresses to send to
						 */
						public setEmailTo(addresses: native.Array<string>): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Add an email address to be used in the "to" field of the final Intent.
						 * @param address Email address to send to
						 */
						public addEmailTo(address: string): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Add an array of email addresses to be used in the "to" field of the final Intent.
						 * @param addresses Email addresses to send to
						 */
						public addEmailTo(addresses: native.Array<string>): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set an array of email addresses to CC on this share. This replaces all current "CC" recipients that have been set so far.
						 * @param addresses Email addresses to CC on the share
						 */
						public setEmailCc(addresses: native.Array<string>): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Add an email address to be used in the "cc" field of the final Intent.
						 * @param address Email address to CC
						 */
						public addEmailCc(address: string): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Add an array of email addresses to be used in the "cc" field of the final Intent.
						 * @param addresses Email addresses to CC
						 */
						public addEmailCc(addresses: native.Array<string>): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set an array of email addresses to BCC on this share. This replaces all current "BCC" recipients that have been set so far.
						 * @param addresses Email addresses to BCC on the share
						 */
						public setEmailBcc(addresses: native.Array<string>): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Add an email address to be used in the "bcc" field of the final Intent.
						 * @param address Email address to BCC
						 */
						public addEmailBcc(address: string): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Add an array of email addresses to be used in the "bcc" field of the final Intent.
						 * @param addresses Email addresses to BCC
						 */
						public addEmailBcc(addresses: native.Array<string>): android.support.v4.app.ShareCompat.IntentBuilder;
						/**
						 * Set a subject heading for this share; useful for sharing via email.
						 * @param subject Subject heading for this share
						 */
						public setSubject(subject: string): android.support.v4.app.ShareCompat.IntentBuilder;
					}
					/**
					 * IntentReader is a helper for reading the data contained within a sharing (ACTION_SEND) Intent. It provides methods to parse standard elements included with a share in addition to extra metadata about the app that shared the content.
					 */
					export class IntentReader extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.app.ShareCompat.IntentReader>;
						/**
						 * Get an IntentReader for parsing and interpreting the sharing intent used to start the given activity.
						 * @param activity Activity that was started to share content
						 */
						public static from(activity: android.app.Activity): android.support.v4.app.ShareCompat.IntentReader;
						/**
						 * Returns true if the activity this reader was obtained for was started with an Intent#ACTION_SEND or Intent#ACTION_SEND_MULTIPLE sharing Intent.
						 */
						public isShareIntent(): boolean;
						/**
						 * Returns true if the activity this reader was obtained for was started with an Intent#ACTION_SEND intent and contains a single shared item. The shared content should be obtained using either the #getText() or #getStream() methods depending on the type of content shared.
						 */
						public isSingleShare(): boolean;
						/**
						 * Returns true if the activity this reader was obtained for was started with an Intent#ACTION_SEND_MULTIPLE intent. The Intent may contain more than one stream item.
						 */
						public isMultipleShare(): boolean;
						/**
						 * Get the mimetype of the data shared to this activity.
						 */
						public getType(): string;
						/**
						 * Get the literal text shared with the target activity.
						 */
						public getText(): string;
						/**
						 * Get the styled HTML text shared with the target activity. If no HTML text was supplied but Intent#EXTRA_TEXT contained styled text, it will be converted to HTML if possible and returned. If the text provided by Intent#EXTRA_TEXT was not styled text, it will be escaped by android.text.Html#escapeHtml(CharSequence) and returned. If no text was provided at all, this method will return null.
						 */
						public getHtmlText(): string;
						/**
						 * Get a URI referring to a data stream shared with the target activity.
						 */
						public getStream(): android.net.Uri;
						/**
						 * Get the URI of a stream item shared with the target activity. Index should be in the range [0-getStreamCount()).
						 * @param index Index of text item to retrieve
						 */
						public getStream(index: number): android.net.Uri;
						/**
						 * Return the number of stream items shared. The return value will be 0 or 1 if this was an Intent#ACTION_SEND intent, or 0 or more if it was an Intent#ACTION_SEND_MULTIPLE intent.
						 */
						public getStreamCount(): number;
						/**
						 * Get an array of Strings, each an email address to share to.
						 */
						public getEmailTo(): native.Array<string>;
						/**
						 * Get an array of Strings, each an email address to CC on this share.
						 */
						public getEmailCc(): native.Array<string>;
						/**
						 * Get an array of Strings, each an email address to BCC on this share.
						 */
						public getEmailBcc(): native.Array<string>;
						/**
						 * Get a subject heading for this share; useful when sharing via email.
						 */
						public getSubject(): string;
						/**
						 * Get the name of the package that invoked this sharing intent. If the activity was not started for a result, IntentBuilder will read this from extra metadata placed in the Intent by ShareBuilder.
						 */
						public getCallingPackage(): string;
						/**
						 * Get the ComponentName of the Activity that invoked this sharing intent. If the target sharing activity was not started for a result, IntentBuilder will read this from extra metadata placed in the intent by ShareBuilder.
						 */
						public getCallingActivity(): android.content.ComponentName;
						/**
						 * Get the icon of the calling activity as a Drawable if data about the calling activity is available.
						 */
						public getCallingActivityIcon(): android.graphics.drawable.Drawable;
						/**
						 * Get the icon of the calling application as a Drawable if data about the calling package is available.
						 */
						public getCallingApplicationIcon(): android.graphics.drawable.Drawable;
						/**
						 * Get the human-readable label (title) of the calling application if data about the calling package is available.
						 */
						public getCallingApplicationLabel(): string;
					}
					export class ShareCompatImplICS extends android.support.v4.app.ShareCompat.ShareCompatImplBase {
						static class: java.lang.Class<android.support.v4.app.ShareCompat.ShareCompatImplICS>;
						public configureMenuItem(item: android.view.IMenuItem, shareIntent: android.support.v4.app.ShareCompat.IntentBuilder): void;
						shouldAddChooserIntent(item: android.view.IMenuItem): boolean;
					}
					export class ShareCompatImplJB extends android.support.v4.app.ShareCompat.ShareCompatImplICS {
						static class: java.lang.Class<android.support.v4.app.ShareCompat.ShareCompatImplJB>;
						public escapeHtml(html: string): string;
						shouldAddChooserIntent(item: android.view.IMenuItem): boolean;
					}
				}
				/**
				 * Static library support version of the framework's android.app.DialogFragment. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class DialogFragment extends android.support.v4.app.Fragment implements android.content.DialogInterface.IOnCancelListener, android.content.DialogInterface.IOnDismissListener {
					constructor();
					/**
					 * Style for #setStyle(int, int): a basic, normal dialog.
					 */
					static STYLE_NORMAL: number;
					/**
					 * Style for #setStyle(int, int): don't include a title area.
					 */
					static STYLE_NO_TITLE: number;
					/**
					 * Style for #setStyle(int, int): don't draw any frame at all; the view hierarchy returned by #onCreateView is entirely responsible for drawing the dialog.
					 */
					static STYLE_NO_FRAME: number;
					/**
					 * Style for #setStyle(int, int): like #STYLE_NO_FRAME, but also disables all input to the dialog. The user can not touch it, and its window will not receive input focus.
					 */
					static STYLE_NO_INPUT: number;
					static class: java.lang.Class<android.support.v4.app.DialogFragment>;
					/**
					 * Call to customize the basic appearance and behavior of the fragment's dialog. This can be used for some common dialog behaviors, taking care of selecting flags, theme, and other options for you. The same effect can be achieve by manually setting Dialog and Window attributes yourself. Calling this after the fragment's Dialog is created will have no effect.
					 * @param style Selects a standard style: may be {@link #STYLE_NORMAL},
					 * @param theme Optional custom theme. If 0, an appropriate theme (based
					 */
					public setStyle(style: number, theme: number): void;
					/**
					 * Display the dialog, adding the fragment to the given FragmentManager. This is a convenience for explicitly creating a transaction, adding the fragment to it with the given tag, and committing it. This does <em>not</em> add the transaction to the back stack. When the fragment is dismissed, a new transaction will be executed to remove it from the activity.
					 * @param manager The FragmentManager this fragment will be added to.
					 * @param tag The tag for this fragment, as per
					 */
					public show(manager: android.support.v4.app.FragmentManager, tag: string): void;
					/**
					 * Display the dialog, adding the fragment using an existing transaction and then committing the transaction.
					 * @param transaction An existing transaction in which to add the fragment.
					 * @param tag The tag for this fragment, as per
					 */
					public show(transaction: android.support.v4.app.FragmentTransaction, tag: string): number;
					/**
					 * Dismiss the fragment and its dialog. If the fragment was added to the back stack, all back stack state up to and including this entry will be popped. Otherwise, a new transaction will be committed to remove the fragment.
					 */
					public dismiss(): void;
					/**
					 * Version of #dismiss() that uses FragmentTransaction#commitAllowingStateLoss() FragmentTransaction.commitAllowingStateLoss(). See linked documentation for further details.
					 */
					public dismissAllowingStateLoss(): void;
					dismissInternal(allowStateLoss: boolean): void;
					public getDialog(): android.app.Dialog;
					public getTheme(): number;
					/**
					 * Control whether the shown Dialog is cancelable. Use this instead of directly calling Dialog#setCancelable(boolean) Dialog.setCancelable(boolean), because DialogFragment needs to change its behavior based on this.
					 * @param cancelable If true, the dialog is cancelable. The default
					 */
					public setCancelable(cancelable: boolean): void;
					/**
					 * Return the current value of #setCancelable(boolean).
					 */
					public isCancelable(): boolean;
					/**
					 * Controls whether this fragment should be shown in a dialog. If not set, no Dialog will be created in #onActivityCreated(Bundle), and the fragment's view hierarchy will thus not be added to it. This allows you to instead use it as a normal fragment (embedded inside of its activity).
					 * @param showsDialog If true, the fragment will be displayed in a Dialog.
					 */
					public setShowsDialog(showsDialog: boolean): void;
					/**
					 * Return the current value of #setShowsDialog(boolean).
					 */
					public getShowsDialog(): boolean;
					public onAttach(activity: android.app.Activity): void;
					public onDetach(): void;
					public onCreate(savedInstanceState: android.os.Bundle): void;
					/**
					 * Override to build your own custom Dialog container. This is typically used to show an AlertDialog instead of a generic Dialog; when doing so, #onCreateView(LayoutInflater, ViewGroup, Bundle) does not need to be implemented since the AlertDialog takes care of its own content. 
					 * @param savedInstanceState The last saved instance state of the Fragment,
					 */
					public onCreateDialog(savedInstanceState: android.os.Bundle): android.app.Dialog;
					public onCancel(dialog: android.content.IDialogInterface): void;
					public onDismiss(dialog: android.content.IDialogInterface): void;
					public onActivityCreated(savedInstanceState: android.os.Bundle): void;
					public onStart(): void;
					public onSaveInstanceState(outState: android.os.Bundle): void;
					public onStop(): void;
					/**
					 * Remove dialog.
					 */
					public onDestroyView(): void;
				}
				/**
				 * Special TabHost that allows the use of Fragment objects for its tab content. When placing this in a view hierarchy, after inflating the hierarchy you must call #setup(Context, FragmentManager, int) to complete the initialization of the tab host.
				 */
				export class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.IOnTabChangeListener {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					static class: java.lang.Class<android.support.v4.app.FragmentTabHost>;
					/**
					 *  Don't call the original TabHost setup, you must instead call #setup(Context, FragmentManager) or #setup(Context, FragmentManager, int).
					 */
					public setup(): void;
					public setup(context: android.content.Context, manager: android.support.v4.app.FragmentManager): void;
					public setup(context: android.content.Context, manager: android.support.v4.app.FragmentManager, containerId: number): void;
					public setOnTabChangedListener(l: android.widget.TabHost.IOnTabChangeListener): void;
					public addTab(tabSpec: android.widget.TabHost.TabSpec, clss: java.lang.Class<any>, args: android.os.Bundle): void;
					protected onAttachedToWindow(): void;
					protected onDetachedFromWindow(): void;
					protected onSaveInstanceState(): android.os.IParcelable;
					protected onRestoreInstanceState(state: android.os.IParcelable): void;
					public onTabChanged(tabId: string): void;
					/**
					 * If you are using TabSpec#setContent(android.content.Intent), this must be called since the activityGroup is needed to launch the local activity.
					 * @param activityGroup Used to launch activities for tab content.
					 */
					setup(activityGroup: android.app.LocalActivityManager): void;
					/**
					 * Add a tab.
					 * @param tabSpec Specifies how to create the indicator and content.
					 */
					addTab(tabSpec: android.widget.TabHost.TabSpec): void;
				}
				export module FragmentTabHost {
					export class SavedState extends android.view.View.BaseSavedState {
						static CREATOR: android.os.Parcelable.ICreator<android.support.v4.app.FragmentTabHost.SavedState>;
						static class: java.lang.Class<android.support.v4.app.FragmentTabHost.SavedState>;
						public writeToParcel(out: android.os.Parcel, flags: number): void;
						public toString(): string;
					}
					export class DummyTabFactory extends java.lang.Object implements android.widget.TabHost.ITabContentFactory {
						constructor(context: android.content.Context);
						static class: java.lang.Class<android.support.v4.app.FragmentTabHost.DummyTabFactory>;
						public createTabContent(tag: string): android.view.View;
					}
					export class TabInfo extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.app.FragmentTabHost.TabInfo>;
					}
				}
				/**
				 * Static library support version of the framework's android.app.Fragment. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class Fragment extends java.lang.Object implements android.content.IComponentCallbacks, android.view.View.IOnCreateContextMenuListener {
					/**
					 * Default constructor. <strong>Every</strong> fragment must have an empty constructor, so it can be instantiated when restoring its activity's state. It is strongly recommended that subclasses do not have other constructors with parameters, since these constructors will not be called when the fragment is re-instantiated; instead, arguments can be supplied by the caller with #setArguments and later retrieved by the Fragment with #getArguments. 
					 */
					constructor();
					static class: java.lang.Class<android.support.v4.app.Fragment>;
					/**
					 * Like #instantiate(Context, String, Bundle) but with a null argument Bundle.
					 */
					public static instantiate(context: android.content.Context, fname: string): android.support.v4.app.Fragment;
					/**
					 * Create a new instance of a Fragment with the given class name. This is the same as calling its empty constructor.
					 * @param context The calling context being used to instantiate the fragment.
					 * @param fname The class name of the fragment to instantiate.
					 * @param args Bundle of arguments to supply to the fragment, which it
					 */
					public static instantiate(context: android.content.Context, fname: string, args: android.os.Bundle): android.support.v4.app.Fragment;
					restoreViewState(savedInstanceState: android.os.Bundle): void;
					setIndex(index: number, parent: android.support.v4.app.Fragment): void;
					isInBackStack(): boolean;
					/**
					 * Subclasses can not override equals().
					 */
					public equals(o: any): boolean;
					/**
					 * Subclasses can not override hashCode().
					 */
					public hashCode(): number;
					public toString(): string;
					/**
					 * Return the identifier this fragment is known by. This is either the android:id value supplied in a layout or the container view ID supplied when adding the fragment.
					 */
					public getId(): number;
					/**
					 * Get the tag name of the fragment, if specified.
					 */
					public getTag(): string;
					/**
					 * Supply the construction arguments for this fragment. This can only be called before the fragment has been attached to its activity; that is, you should call it immediately after constructing the fragment. The arguments supplied here will be retained across fragment destroy and creation.
					 */
					public setArguments(args: android.os.Bundle): void;
					/**
					 * Return the arguments supplied when the fragment was instantiated, if any.
					 */
					public getArguments(): android.os.Bundle;
					/**
					 * Set the initial saved state that this Fragment should restore itself from when first being constructed, as returned by FragmentManager#saveFragmentInstanceState(Fragment) FragmentManager.saveFragmentInstanceState.
					 * @param state The state the fragment should be restored from.
					 */
					public setInitialSavedState(state: android.support.v4.app.Fragment.SavedState): void;
					/**
					 * Optional target for this fragment. This may be used, for example, if this fragment is being started by another, and when done wants to give a result back to the first. The target set here is retained across instances via FragmentManager#putFragment FragmentManager.putFragment().
					 * @param fragment The fragment that is the target of this one.
					 * @param requestCode Optional request code, for convenience if you
					 */
					public setTargetFragment(fragment: android.support.v4.app.Fragment, requestCode: number): void;
					/**
					 * Return the target fragment set by #setTargetFragment.
					 */
					public getTargetFragment(): android.support.v4.app.Fragment;
					/**
					 * Return the target request code set by #setTargetFragment.
					 */
					public getTargetRequestCode(): number;
					/**
					 * Return the Activity this fragment is currently associated with.
					 */
					public getActivity(): android.support.v4.app.FragmentActivity;
					/**
					 * Return <code>getActivity().getResources()</code>.
					 */
					public getResources(): android.content.res.Resources;
					/**
					 * Return a localized, styled CharSequence from the application's package's default string table.
					 * @param resId Resource id for the CharSequence text
					 */
					public getText(resId: number): string;
					/**
					 * Return a localized string from the application's package's default string table.
					 * @param resId Resource id for the string
					 */
					public getString(resId: number): string;
					/**
					 * Return a localized formatted string from the application's package's default string table, substituting the format arguments as defined in java.util.Formatter and java.lang.String#format.
					 * @param resId Resource id for the format string
					 * @param formatArgs The format arguments that will be used for substitution.
					 */
					public getString(resId: number, formatArgs: native.Array<any>): string;
					/**
					 * Return the FragmentManager for interacting with fragments associated with this fragment's activity. Note that this will be non-null slightly before #getActivity(), during the time from when the fragment is placed in a FragmentTransaction until it is committed and attached to its activity.
					 */
					public getFragmentManager(): android.support.v4.app.FragmentManager;
					/**
					 * Return a private FragmentManager for placing and managing Fragments inside of this Fragment.
					 */
					public getChildFragmentManager(): android.support.v4.app.FragmentManager;
					/**
					 * Returns the parent Fragment containing this Fragment. If this Fragment is attached directly to an Activity, returns null.
					 */
					public getParentFragment(): android.support.v4.app.Fragment;
					/**
					 * Return true if the fragment is currently added to its activity.
					 */
					public isAdded(): boolean;
					/**
					 * Return true if the fragment has been explicitly detached from the UI. That is, FragmentTransaction#detach(Fragment) FragmentTransaction.detach(Fragment) has been used on it.
					 */
					public isDetached(): boolean;
					/**
					 * Return true if this fragment is currently being removed from its activity. This is <em>not</em> whether its activity is finishing, but rather whether it is in the process of being removed from its activity.
					 */
					public isRemoving(): boolean;
					/**
					 * Return true if the layout is included as part of an activity view hierarchy via the &lt;fragment&gt; tag. This will always be true when fragments are created through the &lt;fragment&gt; tag, <em>except</em> in the case where an old fragment is restored from a previous state and it does not appear in the layout of the current state.
					 */
					public isInLayout(): boolean;
					/**
					 * Return true if the fragment is in the resumed state. This is true for the duration of #onResume() and #onPause() as well.
					 */
					public isResumed(): boolean;
					/**
					 * Return true if the fragment is currently visible to the user. This means it: (1) has been added, (2) has its view attached to the window, and (3) is not hidden.
					 */
					public isVisible(): boolean;
					/**
					 * Return true if the fragment has been hidden. By default fragments are shown. You can find out about changes to this state with #onHiddenChanged. Note that the hidden state is orthogonal to other states -- that is, to be visible to the user, a fragment must be both started and not hidden.
					 */
					public isHidden(): boolean;
					/**
					 * Called when the hidden state (as returned by #isHidden() of the fragment has changed. Fragments start out not hidden; this will be called whenever the fragment changes state from that.
					 * @param hidden True if the fragment is now hidden, false if it is not
					 */
					public onHiddenChanged(hidden: boolean): void;
					/**
					 * Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be used with fragments not in the back stack. If set, the fragment lifecycle will be slightly different when an activity is recreated: <ul> <li> #onDestroy() will not be called (but #onDetach() still will be, because the fragment is being detached from its current activity). <li> #onCreate(Bundle) will not be called since the fragment is not being re-created. <li> #onAttach(Activity) and #onActivityCreated(Bundle) <b>will</b> still be called. </ul>
					 */
					public setRetainInstance(retain: boolean): void;
					public getRetainInstance(): boolean;
					/**
					 * Report that this fragment would like to participate in populating the options menu by receiving a call to #onCreateOptionsMenu and related methods. 
					 * @param hasMenu If true, the fragment has menu items to contribute.
					 */
					public setHasOptionsMenu(hasMenu: boolean): void;
					/**
					 * Set a hint for whether this fragment's menu should be visible. This is useful if you know that a fragment has been placed in your view hierarchy so that the user can not currently seen it, so any menu items it has should also not be shown.
					 * @param menuVisible The default is true, meaning the fragment's menu will
					 */
					public setMenuVisibility(menuVisible: boolean): void;
					/**
					 * Set a hint to the system about whether this fragment's UI is currently visible to the user. This hint defaults to true and is persistent across fragment instance state save and restore.
					 * @param isVisibleToUser true if this fragment's UI is currently visible to the user (default),
					 */
					public setUserVisibleHint(isVisibleToUser: boolean): void;
					public getUserVisibleHint(): boolean;
					/**
					 * Return the LoaderManager for this fragment, creating it if needed.
					 */
					public getLoaderManager(): android.support.v4.app.LoaderManager;
					/**
					 * Call Activity#startActivity(Intent) on the fragment's containing Activity.
					 */
					public startActivity(intent: android.content.Intent): void;
					/**
					 * Call Activity#startActivityForResult(Intent, int) on the fragment's containing Activity.
					 */
					public startActivityForResult(intent: android.content.Intent, requestCode: number): void;
					/**
					 * Receive the result from a previous call to #startActivityForResult(Intent, int). This follows the related Activity API as described there in Activity#onActivityResult(int, int, Intent). 
					 * @param requestCode The integer request code originally supplied to
					 * @param resultCode The integer result code returned by the child activity
					 * @param data An Intent, which can return result data to the caller
					 */
					public onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
					/**
					 * Called when a fragment is being created as part of a view layout inflation, typically from setting the content view of an activity. This may be called immediately after the fragment is created from a <fragment> tag in a layout file. Note this is <em>before</em> the fragment's #onAttach(Activity) has been called; all you should do here is parse the attributes and save them away. 
					 * @param activity The Activity that is inflating this fragment.
					 * @param attrs The attributes at the tag where the fragment is
					 * @param savedInstanceState If the fragment is being re-created from
					 */
					public onInflate(activity: android.app.Activity, attrs: android.util.IAttributeSet, savedInstanceState: android.os.Bundle): void;
					/**
					 * Called when a fragment is first attached to its activity. #onCreate(Bundle) will be called after this.
					 */
					public onAttach(activity: android.app.Activity): void;
					/**
					 * Called when a fragment loads an animation.
					 */
					public onCreateAnimation(transit: number, enter: boolean, nextAnim: number): android.view.animation.Animation;
					/**
					 * Called to do initial creation of a fragment. This is called after #onAttach(Activity) and before #onCreateView(LayoutInflater, ViewGroup, Bundle). 
					 * @param savedInstanceState If the fragment is being re-created from
					 */
					public onCreate(savedInstanceState: android.os.Bundle): void;
					/**
					 * Called to have the fragment instantiate its user interface view. This is optional, and non-graphical fragments can return null (which is the default implementation). This will be called between #onCreate(Bundle) and #onActivityCreated(Bundle). 
					 * @param inflater The LayoutInflater object that can be used to inflate
					 * @param container If non-null, this is the parent view that the fragment's
					 * @param savedInstanceState If non-null, this fragment is being re-constructed
					 */
					public onCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
					/**
					 * Called immediately after #onCreateView(LayoutInflater, ViewGroup, Bundle) has returned, but before any saved state has been restored in to the view. This gives subclasses a chance to initialize themselves once they know their view hierarchy has been completely created. The fragment's view hierarchy is not however attached to its parent at this point.
					 * @param view The View returned by {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)}.
					 * @param savedInstanceState If non-null, this fragment is being re-constructed
					 */
					public onViewCreated(view: android.view.View, savedInstanceState: android.os.Bundle): void;
					/**
					 * Get the root view for the fragment's layout (the one returned by #onCreateView), if provided. 
					 */
					public getView(): android.view.View;
					/**
					 * Called when the fragment's activity has been created and this fragment's view hierarchy instantiated. It can be used to do final initialization once these pieces are in place, such as retrieving views or restoring state. It is also useful for fragments that use #setRetainInstance(boolean) to retain their instance, as this callback tells the fragment when it is fully associated with the new activity instance. This is called after #onCreateView and before #onViewStateRestored(Bundle).
					 * @param savedInstanceState If the fragment is being re-created from
					 */
					public onActivityCreated(savedInstanceState: android.os.Bundle): void;
					/**
					 * Called when all saved state has been restored into the view hierarchy of the fragment. This can be used to do initialization based on saved state that you are letting the view hierarchy track itself, such as whether check box widgets are currently checked. This is called after #onActivityCreated(Bundle) and before #onStart().
					 * @param savedInstanceState If the fragment is being re-created from
					 */
					public onViewStateRestored(savedInstanceState: android.os.Bundle): void;
					/**
					 * Called when the Fragment is visible to the user. This is generally tied to Activity#onStart() Activity.onStart of the containing Activity's lifecycle.
					 */
					public onStart(): void;
					/**
					 * Called when the fragment is visible to the user and actively running. This is generally tied to Activity#onResume() Activity.onResume of the containing Activity's lifecycle.
					 */
					public onResume(): void;
					/**
					 * Called to ask the fragment to save its current dynamic state, so it can later be reconstructed in a new instance of its process is restarted. If a new instance of the fragment later needs to be created, the data you place in the Bundle here will be available in the Bundle given to #onCreate(Bundle), #onCreateView(LayoutInflater, ViewGroup, Bundle), and #onActivityCreated(Bundle).
					 * @param outState Bundle in which to place your saved state.
					 */
					public onSaveInstanceState(outState: android.os.Bundle): void;
					public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
					/**
					 * Called when the Fragment is no longer resumed. This is generally tied to Activity#onPause() Activity.onPause of the containing Activity's lifecycle.
					 */
					public onPause(): void;
					/**
					 * Called when the Fragment is no longer started. This is generally tied to Activity#onStop() Activity.onStop of the containing Activity's lifecycle.
					 */
					public onStop(): void;
					public onLowMemory(): void;
					/**
					 * Called when the view previously created by #onCreateView has been detached from the fragment. The next time the fragment needs to be displayed, a new view will be created. This is called after #onStop() and before #onDestroy(). It is called <em>regardless</em> of whether #onCreateView returned a non-null view. Internally it is called after the view's state has been saved but before it has been removed from its parent.
					 */
					public onDestroyView(): void;
					/**
					 * Called when the fragment is no longer in use. This is called after #onStop() and before #onDetach().
					 */
					public onDestroy(): void;
					/**
					 * Called by the fragment manager once this fragment has been removed, so that we don't have any left-over state if the application decides to re-use the instance. This only clears state that the framework internally manages, not things the application sets.
					 */
					initState(): void;
					/**
					 * Called when the fragment is no longer attached to its activity. This is called after #onDestroy().
					 */
					public onDetach(): void;
					/**
					 * Initialize the contents of the Activity's standard options menu. You should place your menu items in to <var>menu</var>. For this method to be called, you must have first called #setHasOptionsMenu. See Activity#onCreateOptionsMenu(Menu) Activity.onCreateOptionsMenu for more information. 
					 * @param menu The options menu in which you place your items.
					 * @param inflater 
					 */
					public onCreateOptionsMenu(menu: android.view.IMenu, inflater: android.view.MenuInflater): void;
					/**
					 * Prepare the Screen's standard options menu to be displayed. This is called right before the menu is shown, every time it is shown. You can use this method to efficiently enable/disable items or otherwise dynamically modify the contents. See Activity#onPrepareOptionsMenu(Menu) Activity.onPrepareOptionsMenu for more information. 
					 * @param menu The options menu as last shown or first initialized by
					 */
					public onPrepareOptionsMenu(menu: android.view.IMenu): void;
					/**
					 * Called when this fragment's option menu items are no longer being included in the overall options menu. Receiving this call means that the menu needed to be rebuilt, but this fragment's items were not included in the newly built menu (its #onCreateOptionsMenu(Menu, MenuInflater) was not called).
					 */
					public onDestroyOptionsMenu(): void;
					/**
					 * This hook is called whenever an item in your options menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities. 
					 * @param item The menu item that was selected.
					 */
					public onOptionsItemSelected(item: android.view.IMenuItem): boolean;
					/**
					 * This hook is called whenever the options menu is being closed (either by the user canceling the menu with the back/menu button, or when an item is selected). 
					 * @param menu The options menu as last shown or first initialized by
					 */
					public onOptionsMenuClosed(menu: android.view.IMenu): void;
					/**
					 * Called when a context menu for the view is about to be shown. Unlike #onCreateOptionsMenu, this will be called every time the context menu is about to be shown and should be populated for the view (or item inside the view for AdapterView subclasses, this can be found in the menuInfo)).
					 */
					public onCreateContextMenu(menu: android.view.IContextMenu, v: android.view.View, menuInfo: android.view.ContextMenu.IContextMenuInfo): void;
					/**
					 * Registers a context menu to be shown for the given view (multiple views can show the context menu). This method will set the OnCreateContextMenuListener on the view to this fragment, so #onCreateContextMenu(ContextMenu, View, ContextMenuInfo) will be called when it is time to show the context menu. #unregisterForContextMenu(View)
					 * @param view The view that should show a context menu.
					 */
					public registerForContextMenu(view: android.view.View): void;
					/**
					 * Prevents a context menu to be shown for the given view. This method will remove the OnCreateContextMenuListener on the view. #registerForContextMenu(View)
					 * @param view The view that should stop showing a context menu.
					 */
					public unregisterForContextMenu(view: android.view.View): void;
					/**
					 * This hook is called whenever an item in a context menu is selected. The default implementation simply returns false to have the normal processing happen (calling the item's Runnable or sending a message to its Handler as appropriate). You can use this method for any items for which you would like to do processing without those other facilities.
					 * @param item The context menu item that was selected.
					 */
					public onContextItemSelected(item: android.view.IMenuItem): boolean;
					/**
					 * Print the Fragments's state into the given stream.
					 * @param prefix Text to print at the front of each line.
					 * @param fd The raw file descriptor that the dump is being sent to.
					 * @param writer The PrintWriter to which you should dump your state. This will be
					 * @param args additional arguments to the dump request.
					 */
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
					findFragmentByWho(who: string): android.support.v4.app.Fragment;
					instantiateChildFragmentManager(): void;
					performCreate(savedInstanceState: android.os.Bundle): void;
					performCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
					performActivityCreated(savedInstanceState: android.os.Bundle): void;
					performStart(): void;
					performResume(): void;
					performConfigurationChanged(newConfig: android.content.res.Configuration): void;
					performLowMemory(): void;
					performCreateOptionsMenu(menu: android.view.IMenu, inflater: android.view.MenuInflater): boolean;
					performPrepareOptionsMenu(menu: android.view.IMenu): boolean;
					performOptionsItemSelected(item: android.view.IMenuItem): boolean;
					performContextItemSelected(item: android.view.IMenuItem): boolean;
					performOptionsMenuClosed(menu: android.view.IMenu): void;
					performSaveInstanceState(outState: android.os.Bundle): void;
					performPause(): void;
					performStop(): void;
					performReallyStop(): void;
					performDestroyView(): void;
					performDestroy(): void;
				}
				export module Fragment {
					/**
					 * State information that has been retrieved from a fragment instance through FragmentManager#saveFragmentInstanceState(Fragment) FragmentManager.saveFragmentInstanceState.
					 */
					export class SavedState extends java.lang.Object implements android.os.IParcelable {
						static CREATOR: android.os.Parcelable.ICreator<android.support.v4.app.Fragment.SavedState>;
						static class: java.lang.Class<android.support.v4.app.Fragment.SavedState>;
						public describeContents(): number;
						public writeToParcel(dest: android.os.Parcel, flags: number): void;
					}
					/**
					 * Thrown by Fragment#instantiate(Context, String, Bundle) when there is an instantiation failure.
					 */
					export class InstantiationException extends java.lang.RuntimeException {
						constructor(msg: string, cause: java.lang.Exception);
						static class: java.lang.Class<android.support.v4.app.Fragment.InstantiationException>;
					}
				}
				export class NavUtilsJB extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.NavUtilsJB>;
					public static getParentActivityIntent(activity: android.app.Activity): android.content.Intent;
					public static shouldUpRecreateTask(activity: android.app.Activity, targetIntent: android.content.Intent): boolean;
					public static navigateUpTo(activity: android.app.Activity, upIntent: android.content.Intent): void;
					public static getParentActivityName(info: android.content.pm.ActivityInfo): string;
				}
				/**
				 * Container for fragments associated with an activity.
				 */
				export class FragmentManagerImpl extends android.support.v4.app.FragmentManager {
					static ANIM_STYLE_OPEN_ENTER: number;
					static ANIM_STYLE_OPEN_EXIT: number;
					static ANIM_STYLE_CLOSE_ENTER: number;
					static ANIM_STYLE_CLOSE_EXIT: number;
					static ANIM_STYLE_FADE_ENTER: number;
					static ANIM_STYLE_FADE_EXIT: number;
					static class: java.lang.Class<android.support.v4.app.FragmentManagerImpl>;
					public beginTransaction(): android.support.v4.app.FragmentTransaction;
					public executePendingTransactions(): boolean;
					public popBackStack(): void;
					public popBackStackImmediate(): boolean;
					public popBackStack(name: string, flags: number): void;
					public popBackStackImmediate(name: string, flags: number): boolean;
					public popBackStack(id: number, flags: number): void;
					public popBackStackImmediate(id: number, flags: number): boolean;
					public getBackStackEntryCount(): number;
					public getBackStackEntryAt(index: number): android.support.v4.app.FragmentManager.IBackStackEntry;
					public addOnBackStackChangedListener(listener: android.support.v4.app.FragmentManager.IOnBackStackChangedListener): void;
					public removeOnBackStackChangedListener(listener: android.support.v4.app.FragmentManager.IOnBackStackChangedListener): void;
					public putFragment(bundle: android.os.Bundle, key: string, fragment: android.support.v4.app.Fragment): void;
					public getFragment(bundle: android.os.Bundle, key: string): android.support.v4.app.Fragment;
					public saveFragmentInstanceState(fragment: android.support.v4.app.Fragment): android.support.v4.app.Fragment.SavedState;
					public toString(): string;
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
					static makeOpenCloseAnimation(context: android.content.Context, startScale: number, endScale: number, startAlpha: number, endAlpha: number): android.view.animation.Animation;
					static makeFadeAnimation(context: android.content.Context, start: number, end: number): android.view.animation.Animation;
					loadAnimation(fragment: android.support.v4.app.Fragment, transit: number, enter: boolean, transitionStyle: number): android.view.animation.Animation;
					public performPendingDeferredStart(f: android.support.v4.app.Fragment): void;
					moveToState(f: android.support.v4.app.Fragment, newState: number, transit: number, transitionStyle: number, keepActive: boolean): void;
					moveToState(f: android.support.v4.app.Fragment): void;
					moveToState(newState: number, always: boolean): void;
					moveToState(newState: number, transit: number, transitStyle: number, always: boolean): void;
					startPendingDeferredFragments(): void;
					makeActive(f: android.support.v4.app.Fragment): void;
					makeInactive(f: android.support.v4.app.Fragment): void;
					public addFragment(fragment: android.support.v4.app.Fragment, moveToStateNow: boolean): void;
					public removeFragment(fragment: android.support.v4.app.Fragment, transition: number, transitionStyle: number): void;
					public hideFragment(fragment: android.support.v4.app.Fragment, transition: number, transitionStyle: number): void;
					public showFragment(fragment: android.support.v4.app.Fragment, transition: number, transitionStyle: number): void;
					public detachFragment(fragment: android.support.v4.app.Fragment, transition: number, transitionStyle: number): void;
					public attachFragment(fragment: android.support.v4.app.Fragment, transition: number, transitionStyle: number): void;
					public findFragmentById(id: number): android.support.v4.app.Fragment;
					public findFragmentByTag(tag: string): android.support.v4.app.Fragment;
					public findFragmentByWho(who: string): android.support.v4.app.Fragment;
					public enqueueAction(action: java.lang.IRunnable, allowStateLoss: boolean): void;
					public freeBackStackIndex(index: number): void;
					/**
					 * Only call from main thread!
					 */
					public execPendingActions(): boolean;
					reportBackStackChanged(): void;
					popBackStackState(handler: android.os.Handler, name: string, id: number, flags: number): boolean;
					retainNonConfig(): java.util.ArrayList<android.support.v4.app.Fragment>;
					saveFragmentViewState(f: android.support.v4.app.Fragment): void;
					saveFragmentBasicState(f: android.support.v4.app.Fragment): android.os.Bundle;
					saveAllState(): android.os.IParcelable;
					restoreAllState(state: android.os.IParcelable, nonConfig: java.util.ArrayList<android.support.v4.app.Fragment>): void;
					public attachActivity(activity: android.support.v4.app.FragmentActivity, container: android.support.v4.app.IFragmentContainer, parent: android.support.v4.app.Fragment): void;
					public noteStateNotSaved(): void;
					public dispatchCreate(): void;
					public dispatchActivityCreated(): void;
					public dispatchStart(): void;
					public dispatchResume(): void;
					public dispatchPause(): void;
					public dispatchStop(): void;
					public dispatchReallyStop(): void;
					public dispatchDestroyView(): void;
					public dispatchDestroy(): void;
					public dispatchConfigurationChanged(newConfig: android.content.res.Configuration): void;
					public dispatchLowMemory(): void;
					public dispatchCreateOptionsMenu(menu: android.view.IMenu, inflater: android.view.MenuInflater): boolean;
					public dispatchPrepareOptionsMenu(menu: android.view.IMenu): boolean;
					public dispatchOptionsItemSelected(item: android.view.IMenuItem): boolean;
					public dispatchContextItemSelected(item: android.view.IMenuItem): boolean;
					public dispatchOptionsMenuClosed(menu: android.view.IMenu): void;
					public static reverseTransit(transit: number): number;
					public static transitToStyleIndex(transit: number, enter: boolean): number;
				}
				/**
				 * Static library support version of the framework's android.app.FragmentTransaction. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class FragmentTransaction extends java.lang.Object {
					constructor();
					/**
					 * Bit mask that is set for all enter transitions.
					 */
					static TRANSIT_ENTER_MASK: number;
					/**
					 * Bit mask that is set for all exit transitions.
					 */
					static TRANSIT_EXIT_MASK: number;
					/**
					 * Not set up for a transition.
					 */
					static TRANSIT_UNSET: number;
					/**
					 * No animation for transition.
					 */
					static TRANSIT_NONE: number;
					/**
					 * Fragment is being added onto the stack
					 */
					static TRANSIT_FRAGMENT_OPEN: number;
					/**
					 * Fragment is being removed from the stack
					 */
					static TRANSIT_FRAGMENT_CLOSE: number;
					/**
					 * Fragment should simply fade in or out; that is, no strong navigation associated with it except that it is appearing or disappearing for some reason.
					 */
					static TRANSIT_FRAGMENT_FADE: number;
					static class: java.lang.Class<android.support.v4.app.FragmentTransaction>;
					/**
					 * Calls #add(int, Fragment, String) with a 0 containerViewId.
					 */
					public add(fragment: android.support.v4.app.Fragment, tag: string): android.support.v4.app.FragmentTransaction;
					/**
					 * Calls #add(int, Fragment, String) with a null tag.
					 */
					public add(containerViewId: number, fragment: android.support.v4.app.Fragment): android.support.v4.app.FragmentTransaction;
					/**
					 * Add a fragment to the activity state. This fragment may optionally also have its view (if Fragment#onCreateView Fragment.onCreateView returns non-null) into a container view of the activity. 
					 * @param containerViewId Optional identifier of the container this fragment is
					 * @param fragment The fragment to be added. This fragment must not already
					 * @param tag Optional tag name for the fragment, to later retrieve the
					 */
					public add(containerViewId: number, fragment: android.support.v4.app.Fragment, tag: string): android.support.v4.app.FragmentTransaction;
					/**
					 * Calls #replace(int, Fragment, String) with a null tag.
					 */
					public replace(containerViewId: number, fragment: android.support.v4.app.Fragment): android.support.v4.app.FragmentTransaction;
					/**
					 * Replace an existing fragment that was added to a container. This is essentially the same as calling #remove(Fragment) for all currently added fragments that were added with the same containerViewId and then #add(int, Fragment, String) with the same arguments given here. 
					 * @param containerViewId Identifier of the container whose fragment(s) are
					 * @param fragment The new fragment to place in the container.
					 * @param tag Optional tag name for the fragment, to later retrieve the
					 */
					public replace(containerViewId: number, fragment: android.support.v4.app.Fragment, tag: string): android.support.v4.app.FragmentTransaction;
					/**
					 * Remove an existing fragment. If it was added to a container, its view is also removed from that container. 
					 * @param fragment The fragment to be removed.
					 */
					public remove(fragment: android.support.v4.app.Fragment): android.support.v4.app.FragmentTransaction;
					/**
					 * Hides an existing fragment. This is only relevant for fragments whose views have been added to a container, as this will cause the view to be hidden. 
					 * @param fragment The fragment to be hidden.
					 */
					public hide(fragment: android.support.v4.app.Fragment): android.support.v4.app.FragmentTransaction;
					/**
					 * Shows a previously hidden fragment. This is only relevant for fragments whose views have been added to a container, as this will cause the view to be shown. 
					 * @param fragment The fragment to be shown.
					 */
					public show(fragment: android.support.v4.app.Fragment): android.support.v4.app.FragmentTransaction;
					/**
					 * Detach the given fragment from the UI. This is the same state as when it is put on the back stack: the fragment is removed from the UI, however its state is still being actively managed by the fragment manager. When going into this state its view hierarchy is destroyed.
					 * @param fragment The fragment to be detached.
					 */
					public detach(fragment: android.support.v4.app.Fragment): android.support.v4.app.FragmentTransaction;
					/**
					 * Re-attach a fragment after it had previously been deatched from the UI with #detach(Fragment). This causes its view hierarchy to be re-created, attached to the UI, and displayed.
					 * @param fragment The fragment to be attached.
					 */
					public attach(fragment: android.support.v4.app.Fragment): android.support.v4.app.FragmentTransaction;
					public isEmpty(): boolean;
					/**
					 * Set specific animation resources to run for the fragments that are entering and exiting in this transaction. These animations will not be played when popping the back stack.
					 */
					public setCustomAnimations(enter: number, exit: number): android.support.v4.app.FragmentTransaction;
					/**
					 * Set specific animation resources to run for the fragments that are entering and exiting in this transaction. The <code>popEnter</code> and <code>popExit</code> animations will be played for enter/exit operations specifically when popping the back stack.
					 */
					public setCustomAnimations(enter: number, exit: number, popEnter: number, popExit: number): android.support.v4.app.FragmentTransaction;
					/**
					 * Select a standard transition animation for this transaction. May be one of #TRANSIT_NONE, #TRANSIT_FRAGMENT_OPEN, or #TRANSIT_FRAGMENT_CLOSE
					 */
					public setTransition(transit: number): android.support.v4.app.FragmentTransaction;
					/**
					 * Set a custom style resource that will be used for resolving transit animations.
					 */
					public setTransitionStyle(styleRes: number): android.support.v4.app.FragmentTransaction;
					/**
					 * Add this transaction to the back stack. This means that the transaction will be remembered after it is committed, and will reverse its operation when later popped off the stack.
					 * @param name An optional name for this back stack state, or null.
					 */
					public addToBackStack(name: string): android.support.v4.app.FragmentTransaction;
					/**
					 * Returns true if this FragmentTransaction is allowed to be added to the back stack. If this method would return false, #addToBackStack(String) will throw IllegalStateException.
					 */
					public isAddToBackStackAllowed(): boolean;
					/**
					 * Disallow calls to #addToBackStack(String). Any future calls to addToBackStack will throw IllegalStateException. If addToBackStack has already been called, this method will throw IllegalStateException.
					 */
					public disallowAddToBackStack(): android.support.v4.app.FragmentTransaction;
					/**
					 * Set the full title to show as a bread crumb when this transaction is on the back stack.
					 * @param res A string resource containing the title.
					 */
					public setBreadCrumbTitle(res: number): android.support.v4.app.FragmentTransaction;
					/**
					 * Like #setBreadCrumbTitle(int) but taking a raw string; this method is <em>not</em> recommended, as the string can not be changed later if the locale changes.
					 */
					public setBreadCrumbTitle(text: string): android.support.v4.app.FragmentTransaction;
					/**
					 * Set the short title to show as a bread crumb when this transaction is on the back stack.
					 * @param res A string resource containing the title.
					 */
					public setBreadCrumbShortTitle(res: number): android.support.v4.app.FragmentTransaction;
					/**
					 * Like #setBreadCrumbShortTitle(int) but taking a raw string; this method is <em>not</em> recommended, as the string can not be changed later if the locale changes.
					 */
					public setBreadCrumbShortTitle(text: string): android.support.v4.app.FragmentTransaction;
					/**
					 * Schedules a commit of this transaction. The commit does not happen immediately; it will be scheduled as work on the main thread to be done the next time that thread is ready.
					 */
					public commit(): number;
					/**
					 * Like #commit but allows the commit to be executed after an activity's state is saved. This is dangerous because the commit can be lost if the activity needs to later be restored from its state, so this should only be used for cases where it is okay for the UI state to change unexpectedly on the user.
					 */
					public commitAllowingStateLoss(): number;
				}
				/**
				 * Helper for accessing features in android.app.Service introduced after API level 4 in a backwards compatible fashion.
				 */
				export class ServiceCompat extends java.lang.Object {
					/**
					 * Constant to return from android.app.Service#onStartCommand: if this service's process is killed while it is started (after returning from android.app.Service#onStartCommand), then leave it in the started state but don't retain this delivered intent. Later the system will try to re-create the service. Because it is in the started state, it will guarantee to call android.app.Service#onStartCommand after creating the new service instance; if there are not any pending start commands to be delivered to the service, it will be called with a null intent object, so you must take care to check for this.
					 */
					static START_STICKY: number;
					static class: java.lang.Class<android.support.v4.app.ServiceCompat>;
				}
				/**
				 * Callbacks from FragmentManagerImpl to its container.
				 */
				export class FragmentContainer implements android.support.v4.app.IFragmentContainer {
					constructor(implementation: android.support.v4.app.IFragmentContainer);
					public findViewById(id: number): android.view.View;
				}
				/**
				 * Helper for accessing features in android.app.Notification introduced after API level 4 in a backwards compatible fashion.
				 */
				export class NotificationCompat extends java.lang.Object {
					constructor();
					/**
					 * Obsolete flag indicating high-priority notifications; use the priority field instead. Use NotificationCompat.Builder#setPriority(int) with a positive value.
					 */
					static FLAG_HIGH_PRIORITY: number;
					/**
					 * Default notification priority for NotificationCompat.Builder#setPriority(int). If your application does not prioritize its own notifications, use this value for all notifications.
					 */
					static PRIORITY_DEFAULT: number;
					/**
					 * Lower notification priority for NotificationCompat.Builder#setPriority(int), for items that are less important. The UI may choose to show these items smaller, or at a different position in the list, compared with your app's #PRIORITY_DEFAULT items.
					 */
					static PRIORITY_LOW: number;
					/**
					 * Lowest notification priority for NotificationCompat.Builder#setPriority(int); these items might not be shown to the user except under special circumstances, such as detailed notification logs.
					 */
					static PRIORITY_MIN: number;
					/**
					 * Higher notification priority for NotificationCompat.Builder#setPriority(int), for more important notifications or alerts. The UI may choose to show these items larger, or at a different position in notification lists, compared with your app's #PRIORITY_DEFAULT items.
					 */
					static PRIORITY_HIGH: number;
					/**
					 * Highest notification priority for NotificationCompat.Builder#setPriority(int), for your application's most important items that require the user's prompt attention or input.
					 */
					static PRIORITY_MAX: number;
					static class: java.lang.Class<android.support.v4.app.NotificationCompat>;
				}
				export module NotificationCompat {
					export class Action extends java.lang.Object {
						constructor(icon_: number, title_: string, intent_: android.app.PendingIntent);
						icon: number;
						title: string;
						actionIntent: android.app.PendingIntent;
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.Action>;
					}
					export class NotificationCompatImplBase extends java.lang.Object implements android.support.v4.app.NotificationCompat.INotificationCompatImpl {
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.NotificationCompatImplBase>;
						public build(b: android.support.v4.app.NotificationCompat.Builder): android.app.Notification;
					}
					/**
					 * Helper class for generating large-format notifications that include a lot of text. This class is a "rebuilder": It attaches to a Builder object and modifies its behavior, like so: <pre class="prettyprint"> Notification noti = new Notification.Builder() .setContentTitle(&quot;New mail from &quot; + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_mail) .setLargeIcon(aBitmap) .setStyle(new Notification.BigTextStyle() .bigText(aVeryLongString)) .build(); </pre> Notification#bigContentView
					 */
					export class BigTextStyle extends android.support.v4.app.NotificationCompat.Style {
						constructor();
						constructor(builder: android.support.v4.app.NotificationCompat.Builder);
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.BigTextStyle>;
						/**
						 * Overrides ContentTitle in the big form of the template. This defaults to the value passed to setContentTitle().
						 */
						public setBigContentTitle(title: string): android.support.v4.app.NotificationCompat.BigTextStyle;
						/**
						 * Set the first line of text after the detail section in the big form of the template.
						 */
						public setSummaryText(cs: string): android.support.v4.app.NotificationCompat.BigTextStyle;
						/**
						 * Provide the longer text to be displayed in the big form of the template in place of the content text.
						 */
						public bigText(cs: string): android.support.v4.app.NotificationCompat.BigTextStyle;
					}
					export class NotificationCompatImplHoneycomb extends java.lang.Object implements android.support.v4.app.NotificationCompat.INotificationCompatImpl {
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.NotificationCompatImplHoneycomb>;
						public build(b: android.support.v4.app.NotificationCompat.Builder): android.app.Notification;
					}
					/**
					 * Helper class for generating large-format notifications that include a list of (up to 5) strings. This class is a "rebuilder": It attaches to a Builder object and modifies its behavior, like so: <pre class="prettyprint"> Notification noti = new Notification.Builder() .setContentTitle(&quot;5 New mails from &quot; + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_mail) .setLargeIcon(aBitmap) .setStyle(new Notification.InboxStyle() .addLine(str1) .addLine(str2) .setContentTitle(&quot;&quot;) .setSummaryText(&quot;+3 more&quot;)) .build(); </pre> Notification#bigContentView
					 */
					export class InboxStyle extends android.support.v4.app.NotificationCompat.Style {
						constructor();
						constructor(builder: android.support.v4.app.NotificationCompat.Builder);
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.InboxStyle>;
						/**
						 * Overrides ContentTitle in the big form of the template. This defaults to the value passed to setContentTitle().
						 */
						public setBigContentTitle(title: string): android.support.v4.app.NotificationCompat.InboxStyle;
						/**
						 * Set the first line of text after the detail section in the big form of the template.
						 */
						public setSummaryText(cs: string): android.support.v4.app.NotificationCompat.InboxStyle;
						/**
						 * Append a line to the digest section of the Inbox notification.
						 */
						public addLine(cs: string): android.support.v4.app.NotificationCompat.InboxStyle;
					}
					/**
					 * Builder class for Notification objects. Allows easier control over all the flags, as well as help constructing the typical notification layouts.
					 */
					export class Builder extends java.lang.Object {
						/**
						 * Constructor.
						 * @param context A {@link Context} that will be used to construct the
						 */
						constructor(context: android.content.Context);
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.Builder>;
						/**
						 * Set the time that the event occurred. Notifications in the panel are sorted by this time.
						 */
						public setWhen(when: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Show the Notification#when field as a stopwatch. Instead of presenting <code>when</code> as a timestamp, the notification will show an automatically updating display of the minutes and seconds since <code>when</code>.
						 */
						public setUsesChronometer(b: boolean): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the small icon to use in the notification layouts. Different classes of devices may return different sizes. See the UX guidelines for more information on how to design these icons.
						 * @param icon A resource ID in the application's package of the drawble to use.
						 */
						public setSmallIcon(icon: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * A variant of #setSmallIcon(int) setSmallIcon(int) that takes an additional level parameter for when the icon is a android.graphics.drawable.LevelListDrawable LevelListDrawable.
						 * @param icon A resource ID in the application's package of the drawble to use.
						 * @param level The level to use for the icon.
						 */
						public setSmallIcon(icon: number, level: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the title (first row) of the notification, in a standard notification.
						 */
						public setContentTitle(title: string): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the text (second row) of the notification, in a standard notification.
						 */
						public setContentText(text: string): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the third line of text in the platform notification template. Don't use if you're also using #setProgress(int, int, boolean); they occupy the same location in the standard template.
						 */
						public setSubText(text: string): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the large number at the right-hand side of the notification. This is equivalent to setContentInfo, although it might show the number in a different font size for readability.
						 */
						public setNumber(number: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the large text at the right-hand side of the notification.
						 */
						public setContentInfo(info: string): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the progress this notification represents, which may be represented as a android.widget.ProgressBar.
						 */
						public setProgress(max: number, progress: number, indeterminate: boolean): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Supply a custom RemoteViews to use instead of the standard one.
						 */
						public setContent(views: android.widget.RemoteViews): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Supply a PendingIntent to send when the notification is clicked. If you do not supply an intent, you can now add PendingIntents to individual views to be launched when clicked by calling RemoteViews#setOnClickPendingIntent RemoteViews.setOnClickPendingIntent(int,PendingIntent). Be sure to read Notification#contentIntent Notification.contentIntent for how to correctly use this.
						 */
						public setContentIntent(intent: android.app.PendingIntent): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Supply a PendingIntent to send when the notification is cleared by the user directly from the notification panel. For example, this intent is sent when the user clicks the "Clear all" button, or the individual "X" buttons on notifications. This intent is not sent when the application calls NotificationManager#cancel NotificationManager.cancel(int).
						 */
						public setDeleteIntent(intent: android.app.PendingIntent): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * An intent to launch instead of posting the notification to the status bar. Only for use with extremely high-priority notifications demanding the user's <strong>immediate</strong> attention, such as an incoming phone call or alarm clock that the user has explicitly set to a particular time. If this facility is used for something else, please give the user an option to turn it off and use a normal notification, as this can be extremely disruptive.
						 * @param intent The pending intent to launch.
						 * @param highPriority Passing true will cause this notification to be sent
						 */
						public setFullScreenIntent(intent: android.app.PendingIntent, highPriority: boolean): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the text that is displayed in the status bar when the notification first arrives.
						 */
						public setTicker(tickerText: string): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the text that is displayed in the status bar when the notification first arrives, and also a RemoteViews object that may be displayed instead on some devices.
						 */
						public setTicker(tickerText: string, views: android.widget.RemoteViews): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the large icon that is shown in the ticker and notification.
						 */
						public setLargeIcon(icon: android.graphics.Bitmap): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the sound to play. It will play on the default stream.
						 */
						public setSound(sound: android.net.Uri): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the sound to play. It will play on the stream you supply.
						 */
						public setSound(sound: android.net.Uri, streamType: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the vibration pattern to use.
						 */
						public setVibrate(pattern: native.Array<number>): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the argb value that you would like the LED on the device to blnk, as well as the rate. The rate is specified in terms of the number of milliseconds to be on and then the number of milliseconds to be off.
						 */
						public setLights(argb: number, onMs: number, offMs: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set whether this is an ongoing notification.
						 */
						public setOngoing(ongoing: boolean): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set this flag if you would only like the sound, vibrate and ticker to be played if the notification is not already showing.
						 */
						public setOnlyAlertOnce(onlyAlertOnce: boolean): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Setting this flag will make it so the notification is automatically canceled when the user clicks it in the panel. The PendingIntent set with #setDeleteIntent will be broadcast when the notification is canceled.
						 */
						public setAutoCancel(autoCancel: boolean): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the default notification options that will be used.
						 */
						public setDefaults(defaults: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Set the relative priority for this notification. Priority is an indication of how much of the user's valuable attention should be consumed by this notification. Low-priority notifications may be hidden from the user in certain situations, while the user might be interrupted for a higher-priority notification. The system will make a determination about how to interpret notification priority as described in MUMBLE MUMBLE.
						 */
						public setPriority(pri: number): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Add an action to this notification. Actions are typically displayed by the system as a button adjacent to the notification content.
						 * @param icon Resource ID of a drawable that represents the action.
						 * @param title Text describing the action.
						 * @param intent PendingIntent to be fired when the action is invoked.
						 */
						public addAction(icon: number, title: string, intent: android.app.PendingIntent): android.support.v4.app.NotificationCompat.Builder;
						/**
						 * Add a rich notification style to be applied at build time.
						 * @param style Object responsible for modifying the notification style.
						 */
						public setStyle(style: android.support.v4.app.NotificationCompat.Style): android.support.v4.app.NotificationCompat.Builder;
						/**
						 *  Use #build() instead.
						 */
						public getNotification(): android.app.Notification;
						/**
						 * Combine all of the options that have been set and return a new Notification object.
						 */
						public build(): android.app.Notification;
					}
					export class NotificationCompatImplIceCreamSandwich extends java.lang.Object implements android.support.v4.app.NotificationCompat.INotificationCompatImpl {
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.NotificationCompatImplIceCreamSandwich>;
						public build(b: android.support.v4.app.NotificationCompat.Builder): android.app.Notification;
					}
					/**
					 * An object that can apply a rich notification style to a Notification.Builder object.
					 */
					export class Style extends java.lang.Object {
						constructor();
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.Style>;
						public setBuilder(builder: android.support.v4.app.NotificationCompat.Builder): void;
						public build(): android.app.Notification;
					}
					export class NotificationCompatImplJellybean extends java.lang.Object implements android.support.v4.app.NotificationCompat.INotificationCompatImpl {
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.NotificationCompatImplJellybean>;
						public build(b: android.support.v4.app.NotificationCompat.Builder): android.app.Notification;
					}
					interface INotificationCompatImpl {
						build(b: android.support.v4.app.NotificationCompat.Builder): android.app.Notification;
					}
					export class NotificationCompatImpl implements android.support.v4.app.NotificationCompat.INotificationCompatImpl {
						constructor(implementation: android.support.v4.app.NotificationCompat.INotificationCompatImpl);
						public build(b: android.support.v4.app.NotificationCompat.Builder): android.app.Notification;
					}
					/**
					 * Helper class for generating large-format notifications that include a large image attachment. This class is a "rebuilder": It attaches to a Builder object and modifies its behavior, like so: <pre class="prettyprint"> Notification noti = new Notification.Builder() .setContentTitle(&quot;New photo from &quot; + sender.toString()) .setContentText(subject) .setSmallIcon(R.drawable.new_post) .setLargeIcon(aBitmap) .setStyle(new Notification.BigPictureStyle() .bigPicture(aBigBitmap)) .build(); </pre> Notification#bigContentView
					 */
					export class BigPictureStyle extends android.support.v4.app.NotificationCompat.Style {
						constructor();
						constructor(builder: android.support.v4.app.NotificationCompat.Builder);
						static class: java.lang.Class<android.support.v4.app.NotificationCompat.BigPictureStyle>;
						/**
						 * Overrides ContentTitle in the big form of the template. This defaults to the value passed to setContentTitle().
						 */
						public setBigContentTitle(title: string): android.support.v4.app.NotificationCompat.BigPictureStyle;
						/**
						 * Set the first line of text after the detail section in the big form of the template.
						 */
						public setSummaryText(cs: string): android.support.v4.app.NotificationCompat.BigPictureStyle;
						/**
						 * Provide the bitmap to be used as the payload for the BigPicture notification.
						 */
						public bigPicture(b: android.graphics.Bitmap): android.support.v4.app.NotificationCompat.BigPictureStyle;
					}
				}
				export class FragmentManagerState extends java.lang.Object implements android.os.IParcelable {
					constructor();
					constructor(input: android.os.Parcel);
					static CREATOR: android.os.Parcelable.ICreator<android.support.v4.app.FragmentManagerState>;
					static class: java.lang.Class<android.support.v4.app.FragmentManagerState>;
					public describeContents(): number;
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
				/**
				 * Implementation of TaskStackBuilder that can call Honeycomb APIs.
				 */
				export class TaskStackBuilderHoneycomb extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.app.TaskStackBuilderHoneycomb>;
					public static getActivitiesPendingIntent(context: android.content.Context, requestCode: number, intents: native.Array<android.content.Intent>, flags: number): android.app.PendingIntent;
				}
				export class SuperNotCalledException extends android.util.AndroidRuntimeException {
					constructor(msg: string);
					static class: java.lang.Class<android.support.v4.app.SuperNotCalledException>;
				}
				/**
				 * Helper for accessing features in android.app.Activity introduced after API level 4 in a backwards compatible fashion.
				 */
				export class ActivityCompat extends android.support.v4.content.ContextCompat {
					constructor();
					static class: java.lang.Class<android.support.v4.app.ActivityCompat>;
					/**
					 * Invalidate the activity's options menu, if able.
					 * @param activity Invalidate the options menu of this activity
					 */
					public static invalidateOptionsMenu(activity: android.app.Activity): boolean;
				}
				/**
				 * Implementation of android.support.v4.view.PagerAdapter that represents each page as a Fragment that is persistently kept in the fragment manager as long as the user can return to the page.
				 */
				export class FragmentPagerAdapter extends android.support.v4.view.PagerAdapter {
					constructor(fm: android.support.v4.app.FragmentManager);
					static class: java.lang.Class<android.support.v4.app.FragmentPagerAdapter>;
					/**
					 * Return the Fragment associated with a specified position.
					 */
					public getItem(position: number): android.support.v4.app.Fragment;
					public startUpdate(container: android.view.ViewGroup): void;
					public instantiateItem(container: android.view.ViewGroup, position: number): any;
					public destroyItem(container: android.view.ViewGroup, position: number, object: any): void;
					public setPrimaryItem(container: android.view.ViewGroup, position: number, object: any): void;
					public finishUpdate(container: android.view.ViewGroup): void;
					public isViewFromObject(view: android.view.View, object: any): boolean;
					public saveState(): android.os.IParcelable;
					public restoreState(state: android.os.IParcelable, loader: java.lang.ClassLoader): void;
					/**
					 * Return a unique identifier for the item at the given position.
					 * @param position Position within this adapter
					 */
					public getItemId(position: number): any;
					/**
					 * Called when a change in the shown pages is going to start being made.
					 * @param container The containing View which is displaying this adapter's
					 */
					startUpdate(container: android.view.View): void;
					/**
					 * Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns from #finishUpdate(ViewGroup).
					 * @param container The containing View in which the page will be shown.
					 * @param position The page position to be instantiated.
					 */
					instantiateItem(container: android.view.View, position: number): any;
					/**
					 * Remove a page for the given position. The adapter is responsible for removing the view from its container, although it only must ensure this is done by the time it returns from #finishUpdate(View).
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position to be removed.
					 * @param object The same object that was returned by
					 */
					destroyItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position that is now the primary.
					 * @param object The same object that was returned by
					 */
					setPrimaryItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called when the a change in the shown pages has been completed. At this point you must ensure that all of the pages have actually been added or removed from the container as appropriate.
					 * @param container The containing View which is displaying this adapter's
					 */
					finishUpdate(container: android.view.View): void;
				}
				/**
				 * Static library support version of the framework's android.app.ListFragment. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class ListFragment extends android.support.v4.app.Fragment {
					constructor();
					static class: java.lang.Class<android.support.v4.app.ListFragment>;
					/**
					 * Provide default implementation to return a simple list view. Subclasses can override to replace with their own layout. If doing so, the returned view hierarchy <em>must</em> have a ListView whose id is android.R.id#list android.R.id.list and can optionally have a sibling view id android.R.id#empty android.R.id.empty that is to be shown when the list is empty. 
					 */
					public onCreateView(inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle): android.view.View;
					/**
					 * Attach to list view once the view hierarchy has been created.
					 */
					public onViewCreated(view: android.view.View, savedInstanceState: android.os.Bundle): void;
					/**
					 * Detach from list view.
					 */
					public onDestroyView(): void;
					/**
					 * This method will be called when an item in the list is selected. Subclasses should override. Subclasses can call getListView().getItemAtPosition(position) if they need to access the data associated with the selected item.
					 * @param l The ListView where the click happened
					 * @param v The view that was clicked within the ListView
					 * @param position The position of the view in the list
					 * @param id The row id of the item that was clicked
					 */
					public onListItemClick(l: android.widget.ListView, v: android.view.View, position: number, id: number): void;
					/**
					 * Provide the cursor for the list view.
					 */
					public setListAdapter(adapter: android.widget.IListAdapter): void;
					/**
					 * Set the currently selected list item to the specified position with the adapter's data
					 * @param position 
					 */
					public setSelection(position: number): void;
					/**
					 * Get the position of the currently selected list item.
					 */
					public getSelectedItemPosition(): number;
					/**
					 * Get the cursor row ID of the currently selected list item.
					 */
					public getSelectedItemId(): any;
					/**
					 * Get the activity's list view widget.
					 */
					public getListView(): android.widget.ListView;
					/**
					 * The default content for a ListFragment has a TextView that can be shown when the list is empty. If you would like to have it shown, call this method to supply the text it should use.
					 */
					public setEmptyText(text: string): void;
					/**
					 * Control whether the list is being displayed. You can make it not displayed if you are waiting for the initial data to show in it. During this time an indeterminant progress indicator will be shown instead. 
					 * @param shown If true, the list view is shown; if false, the progress
					 */
					public setListShown(shown: boolean): void;
					/**
					 * Like #setListShown(boolean), but no animation is used when transitioning from the previous state.
					 */
					public setListShownNoAnimation(shown: boolean): void;
					/**
					 * Get the ListAdapter associated with this activity's ListView.
					 */
					public getListAdapter(): android.widget.IListAdapter;
				}
				export class TaskStackBuilderJellybean extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.TaskStackBuilderJellybean>;
					public static getActivitiesPendingIntent(context: android.content.Context, requestCode: number, intents: native.Array<android.content.Intent>, flags: number, options: android.os.Bundle): android.app.PendingIntent;
				}
				/**
				 * Static library support version of the framework's android.app.FragmentManager. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview. 
				 */
				export class FragmentManager extends java.lang.Object {
					constructor();
					/**
					 * Flag for #popBackStack(String, int) and #popBackStack(int, int): If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn't match is found or the bottom of the stack is reached. Otherwise, all entries up to but not including that entry will be removed.
					 */
					static POP_BACK_STACK_INCLUSIVE: number;
					static class: java.lang.Class<android.support.v4.app.FragmentManager>;
					/**
					 * Start a series of edit operations on the Fragments associated with this FragmentManager. 
					 */
					public beginTransaction(): android.support.v4.app.FragmentTransaction;
					/**
					 * After a FragmentTransaction is committed with FragmentTransaction#commit FragmentTransaction.commit(), it is scheduled to be executed asynchronously on the process's main thread. If you want to immediately executing any such pending operations, you can call this function (only from the main thread) to do so. Note that all callbacks and other related behavior will be done from within this call, so be careful about where this is called from.
					 */
					public executePendingTransactions(): boolean;
					/**
					 * Finds a fragment that was identified by the given id either when inflated from XML or as the container ID when added in a transaction. This first searches through fragments that are currently added to the manager's activity; if no such fragment is found, then all fragments currently on the back stack associated with this ID are searched.
					 */
					public findFragmentById(id: number): android.support.v4.app.Fragment;
					/**
					 * Finds a fragment that was identified by the given tag either when inflated from XML or as supplied when added in a transaction. This first searches through fragments that are currently added to the manager's activity; if no such fragment is found, then all fragments currently on the back stack are searched.
					 */
					public findFragmentByTag(tag: string): android.support.v4.app.Fragment;
					/**
					 * Pop the top state off the back stack. Returns true if there was one to pop, else false. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop.
					 */
					public popBackStack(): void;
					/**
					 * Like #popBackStack(), but performs the operation immediately inside of the call. This is like calling #executePendingTransactions() afterwards.
					 */
					public popBackStackImmediate(): boolean;
					/**
					 * Pop the last fragment transition from the manager's fragment back stack. If there is nothing to pop, false is returned. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop. 
					 * @param name If non-null, this is the name of a previous back state
					 * @param flags Either 0 or {@link #POP_BACK_STACK_INCLUSIVE}.
					 */
					public popBackStack(name: string, flags: number): void;
					/**
					 * Like #popBackStack(String, int), but performs the operation immediately inside of the call. This is like calling #executePendingTransactions() afterwards.
					 */
					public popBackStackImmediate(name: string, flags: number): boolean;
					/**
					 * Pop all back stack states up to the one with the given identifier. This function is asynchronous -- it enqueues the request to pop, but the action will not be performed until the application returns to its event loop. 
					 * @param id Identifier of the stated to be popped. If no identifier exists,
					 * @param flags Either 0 or {@link #POP_BACK_STACK_INCLUSIVE}.
					 */
					public popBackStack(id: number, flags: number): void;
					/**
					 * Like #popBackStack(int, int), but performs the operation immediately inside of the call. This is like calling #executePendingTransactions() afterwards.
					 */
					public popBackStackImmediate(id: number, flags: number): boolean;
					/**
					 * Return the number of entries currently in the back stack.
					 */
					public getBackStackEntryCount(): number;
					/**
					 * Return the BackStackEntry at index <var>index</var> in the back stack; entries start index 0 being the bottom of the stack.
					 */
					public getBackStackEntryAt(index: number): android.support.v4.app.FragmentManager.IBackStackEntry;
					/**
					 * Add a new listener for changes to the fragment back stack.
					 */
					public addOnBackStackChangedListener(listener: android.support.v4.app.FragmentManager.IOnBackStackChangedListener): void;
					/**
					 * Remove a listener that was previously added with #addOnBackStackChangedListener(OnBackStackChangedListener).
					 */
					public removeOnBackStackChangedListener(listener: android.support.v4.app.FragmentManager.IOnBackStackChangedListener): void;
					/**
					 * Put a reference to a fragment in a Bundle. This Bundle can be persisted as saved state, and when later restoring #getFragment(Bundle, String) will return the current instance of the same fragment.
					 * @param bundle The bundle in which to put the fragment reference.
					 * @param key The name of the entry in the bundle.
					 * @param fragment The Fragment whose reference is to be stored.
					 */
					public putFragment(bundle: android.os.Bundle, key: string, fragment: android.support.v4.app.Fragment): void;
					/**
					 * Retrieve the current Fragment instance for a reference previously placed with #putFragment(Bundle, String, Fragment).
					 * @param bundle The bundle from which to retrieve the fragment reference.
					 * @param key The name of the entry in the bundle.
					 */
					public getFragment(bundle: android.os.Bundle, key: string): android.support.v4.app.Fragment;
					/**
					 * Save the current instance state of the given Fragment. This can be used later when creating a new instance of the Fragment and adding it to the fragment manager, to have it create itself to match the current state returned here. Note that there are limits on how this can be used:
					 * @param f The Fragment whose state is to be saved.
					 */
					public saveFragmentInstanceState(f: android.support.v4.app.Fragment): android.support.v4.app.Fragment.SavedState;
					/**
					 * Print the FragmentManager's state into the given stream.
					 * @param prefix Text to print at the front of each line.
					 * @param fd The raw file descriptor that the dump is being sent to.
					 * @param writer A PrintWriter to which the dump is to be set.
					 * @param args Additional arguments to the dump request.
					 */
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
					/**
					 * Control whether the framework's internal fragment manager debugging logs are turned on. If enabled, you will see output in logcat as the framework performs fragment operations.
					 */
					public static enableDebugLogging(enabled: boolean): void;
				}
				export module FragmentManager {
					/**
					 * Interface to watch for changes to the back stack.
					 */
					export class OnBackStackChangedListener implements android.support.v4.app.FragmentManager.IOnBackStackChangedListener {
						constructor(implementation: android.support.v4.app.FragmentManager.IOnBackStackChangedListener);
						/**
						 * Called whenever the contents of the back stack change.
						 */
						public onBackStackChanged(): void;
					}
					/**
					 * Representation of an entry on the fragment back stack, as created with FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(). Entries can later be retrieved with FragmentManager#getBackStackEntryAt(int) FragmentManager.getBackStackEntry().
					 */
					export class BackStackEntry implements android.support.v4.app.FragmentManager.IBackStackEntry {
						constructor(implementation: android.support.v4.app.FragmentManager.IBackStackEntry);
						/**
						 * Return the unique identifier for the entry. This is the only representation of the entry that will persist across activity instances.
						 */
						public getId(): number;
						/**
						 * Get the name that was supplied to FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(String) when creating this entry.
						 */
						public getName(): string;
						/**
						 * Return the full bread crumb title resource identifier for the entry, or 0 if it does not have one.
						 */
						public getBreadCrumbTitleRes(): number;
						/**
						 * Return the short bread crumb title resource identifier for the entry, or 0 if it does not have one.
						 */
						public getBreadCrumbShortTitleRes(): number;
						/**
						 * Return the full bread crumb title for the entry, or null if it does not have one.
						 */
						public getBreadCrumbTitle(): string;
						/**
						 * Return the short bread crumb title for the entry, or null if it does not have one.
						 */
						public getBreadCrumbShortTitle(): string;
					}
					/**
					 * Representation of an entry on the fragment back stack, as created with FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(). Entries can later be retrieved with FragmentManager#getBackStackEntryAt(int) FragmentManager.getBackStackEntry().
					 */
					interface IBackStackEntry {
						/**
						 * Return the unique identifier for the entry. This is the only representation of the entry that will persist across activity instances.
						 */
						getId(): number;
						/**
						 * Get the name that was supplied to FragmentTransaction#addToBackStack(String) FragmentTransaction.addToBackStack(String) when creating this entry.
						 */
						getName(): string;
						/**
						 * Return the full bread crumb title resource identifier for the entry, or 0 if it does not have one.
						 */
						getBreadCrumbTitleRes(): number;
						/**
						 * Return the short bread crumb title resource identifier for the entry, or 0 if it does not have one.
						 */
						getBreadCrumbShortTitleRes(): number;
						/**
						 * Return the full bread crumb title for the entry, or null if it does not have one.
						 */
						getBreadCrumbTitle(): string;
						/**
						 * Return the short bread crumb title for the entry, or null if it does not have one.
						 */
						getBreadCrumbShortTitle(): string;
					}
					/**
					 * Interface to watch for changes to the back stack.
					 */
					interface IOnBackStackChangedListener {
						/**
						 * Called whenever the contents of the back stack change.
						 */
						onBackStackChanged(): void;
					}
				}
				export class NotificationCompatIceCreamSandwich extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.NotificationCompatIceCreamSandwich>;
					static add(context: android.content.Context, n: android.app.Notification, contentTitle: string, contentText: string, contentInfo: string, tickerView: android.widget.RemoteViews, number: number, contentIntent: android.app.PendingIntent, fullScreenIntent: android.app.PendingIntent, largeIcon: android.graphics.Bitmap, mProgressMax: number, mProgress: number, mProgressIndeterminate: boolean): android.app.Notification;
				}
				/**
				 * Static library support version of the framework's android.app.LoaderManager. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview. 
				 */
				export class LoaderManager extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.app.LoaderManager>;
					/**
					 * Ensures a loader is initialized and active. If the loader doesn't already exist, one is created and (if the activity/fragment is currently started) starts the loader. Otherwise the last created loader is re-used.
					 * @param id A unique identifier for this loader. Can be whatever you want.
					 * @param args Optional arguments to supply to the loader at construction.
					 * @param callback Interface the LoaderManager will call to report about
					 */
					public initLoader<D>(id: number, args: android.os.Bundle, callback: android.support.v4.app.LoaderManager.ILoaderCallbacks<D>): android.support.v4.content.Loader<D>;
					/**
					 * Starts a new or restarts an existing android.content.Loader in this manager, registers the callbacks to it, and (if the activity/fragment is currently started) starts loading it. If a loader with the same id has previously been started it will automatically be destroyed when the new loader completes its work. The callback will be delivered before the old loader is destroyed.
					 * @param id A unique identifier for this loader. Can be whatever you want.
					 * @param args Optional arguments to supply to the loader at construction.
					 * @param callback Interface the LoaderManager will call to report about
					 */
					public restartLoader<D>(id: number, args: android.os.Bundle, callback: android.support.v4.app.LoaderManager.ILoaderCallbacks<D>): android.support.v4.content.Loader<D>;
					/**
					 * Stops and removes the loader with the given ID. If this loader had previously reported data to the client through LoaderCallbacks#onLoadFinished(Loader, Object), a call will be made to LoaderCallbacks#onLoaderReset(Loader).
					 */
					public destroyLoader(id: number): void;
					/**
					 * Return the Loader with the given id or null if no matching Loader is found.
					 */
					public getLoader<D>(id: number): android.support.v4.content.Loader<D>;
					/**
					 * Print the LoaderManager's state into the given stream.
					 * @param prefix Text to print at the front of each line.
					 * @param fd The raw file descriptor that the dump is being sent to.
					 * @param writer A PrintWriter to which the dump is to be set.
					 * @param args Additional arguments to the dump request.
					 */
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
					/**
					 * Control whether the framework's internal loader manager debugging logs are turned on. If enabled, you will see output in logcat as the framework performs loader operations.
					 */
					public static enableDebugLogging(enabled: boolean): void;
					/**
					 * Returns true if any loaders managed are currently running and have not returned data to the application yet.
					 */
					public hasRunningLoaders(): boolean;
				}
				export module LoaderManager {
					/**
					 * Callback interface for a client to interact with the manager.
					 */
					interface ILoaderCallbacks<D> {
						/**
						 * Instantiate and return a new Loader for the given ID.
						 * @param id The ID whose loader is to be created.
						 * @param args Any arguments supplied by the caller.
						 */
						onCreateLoader(id: number, args: android.os.Bundle): android.support.v4.content.Loader<D>;
						/**
						 * Called when a previously created loader has finished its load. Note that normally an application is <em>not</em> allowed to commit fragment transactions while in this call, since it can happen after an activity's state is saved. See FragmentManager#beginTransaction() FragmentManager.openTransaction() for further discussion on this. 
						 * @param loader The Loader that has finished.
						 * @param data The data generated by the Loader.
						 */
						onLoadFinished(loader: android.support.v4.content.Loader<D>, data: D): void;
						/**
						 * Called when a previously created loader is being reset, and thus making its data unavailable. The application should at this point remove any references it has to the Loader's data.
						 * @param loader The Loader that is being reset.
						 */
						onLoaderReset(loader: android.support.v4.content.Loader<D>): void;
					}
					/**
					 * Callback interface for a client to interact with the manager.
					 */
					export class LoaderCallbacks<D> implements android.support.v4.app.LoaderManager.ILoaderCallbacks<D> {
						constructor(implementation: android.support.v4.app.LoaderManager.ILoaderCallbacks<D>);
						/**
						 * Instantiate and return a new Loader for the given ID.
						 * @param id The ID whose loader is to be created.
						 * @param args Any arguments supplied by the caller.
						 */
						public onCreateLoader(id: number, args: android.os.Bundle): android.support.v4.content.Loader<D>;
						/**
						 * Called when a previously created loader has finished its load. Note that normally an application is <em>not</em> allowed to commit fragment transactions while in this call, since it can happen after an activity's state is saved. See FragmentManager#beginTransaction() FragmentManager.openTransaction() for further discussion on this. 
						 * @param loader The Loader that has finished.
						 * @param data The data generated by the Loader.
						 */
						public onLoadFinished(loader: android.support.v4.content.Loader<D>, data: D): void;
						/**
						 * Called when a previously created loader is being reset, and thus making its data unavailable. The application should at this point remove any references it has to the Loader's data.
						 * @param loader The Loader that is being reset.
						 */
						public onLoaderReset(loader: android.support.v4.content.Loader<D>): void;
					}
				}
				/**
				 * Base class for activities that want to use the support-based android.support.v4.app.Fragment and android.support.v4.content.Loader APIs.
				 */
				export class FragmentActivity extends android.app.Activity {
					constructor();
					/**
					 * Dispatch incoming result to the correct fragment.
					 */
					protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void;
					/**
					 * Take care of popping the fragment back stack or finishing the activity as appropriate.
					 */
					public onBackPressed(): void;
					/**
					 * Dispatch configuration change to all fragments.
					 */
					public onConfigurationChanged(newConfig: android.content.res.Configuration): void;
					/**
					 * Perform initialization of all fragments and loaders.
					 */
					protected onCreate(savedInstanceState: android.os.Bundle): void;
					/**
					 * Dispatch to Fragment.onCreateOptionsMenu().
					 */
					public onCreatePanelMenu(featureId: number, menu: android.view.IMenu): boolean;
					/**
					 * Add support for inflating the &lt;fragment> tag.
					 */
					public onCreateView(name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
					/**
					 * Destroy all fragments and loaders.
					 */
					protected onDestroy(): void;
					/**
					 * Take care of calling onBackPressed() for pre-Eclair platforms.
					 */
					public onKeyDown(keyCode: number, event: android.view.KeyEvent): boolean;
					/**
					 * Dispatch onLowMemory() to all fragments.
					 */
					public onLowMemory(): void;
					/**
					 * Dispatch context and options menu to fragments.
					 */
					public onMenuItemSelected(featureId: number, item: android.view.IMenuItem): boolean;
					/**
					 * Call onOptionsMenuClosed() on fragments.
					 */
					public onPanelClosed(featureId: number, menu: android.view.IMenu): void;
					/**
					 * Dispatch onPause() to fragments.
					 */
					protected onPause(): void;
					/**
					 * Handle onNewIntent() to inform the fragment manager that the state is not saved. If you are handling new intents and may be making changes to the fragment state, you want to be sure to call through to the super-class here first. Otherwise, if your state is saved but the activity is not stopped, you could get an onNewIntent() call which happens before onResume() and trying to perform fragment operations at that point will throw IllegalStateException because the fragment manager thinks the state is still saved.
					 */
					protected onNewIntent(intent: android.content.Intent): void;
					/**
					 * Dispatch onResume() to fragments. Note that for better inter-operation with older versions of the platform, at the point of this call the fragments attached to the activity are <em>not</em> resumed. This means that in some cases the previous state may still be saved, not allowing fragment transactions that modify the state. To correctly interact with fragments in their proper state, you should instead override #onResumeFragments().
					 */
					protected onResume(): void;
					/**
					 * Dispatch onResume() to fragments.
					 */
					protected onPostResume(): void;
					/**
					 * This is the fragment-orientated version of #onResume() that you can override to perform operations in the Activity at the same point where its fragments are resumed. Be sure to always call through to the super-class.
					 */
					protected onResumeFragments(): void;
					/**
					 * Dispatch onPrepareOptionsMenu() to fragments.
					 */
					public onPreparePanel(featureId: number, view: android.view.View, menu: android.view.IMenu): boolean;
					/**
					 * Retain all appropriate fragment and loader state. You can NOT override this yourself! Use #onRetainCustomNonConfigurationInstance() if you want to retain your own state.
					 */
					public onRetainNonConfigurationInstance(): any;
					/**
					 * Save all appropriate fragment state.
					 */
					protected onSaveInstanceState(outState: android.os.Bundle): void;
					/**
					 * Dispatch onStart() to all fragments. Ensure any created loaders are now started.
					 */
					protected onStart(): void;
					/**
					 * Dispatch onStop() to all fragments. Ensure all loaders are stopped.
					 */
					protected onStop(): void;
					/**
					 * Use this instead of #onRetainNonConfigurationInstance(). Retrieve later with #getLastCustomNonConfigurationInstance().
					 */
					public onRetainCustomNonConfigurationInstance(): any;
					/**
					 * Return the value previously returned from #onRetainCustomNonConfigurationInstance().
					 */
					public getLastCustomNonConfigurationInstance(): any;
					/**
					 * Invalidate the activity's options menu. This will cause relevant presentations of the menu to fully update via calls to onCreateOptionsMenu and onPrepareOptionsMenu the next time the menu is requested.
					 */
					public supportInvalidateOptionsMenu(): void;
					/**
					 * Print the Activity's state into the given stream. This gets invoked if you run "adb shell dumpsys activity <activity_component_name>".
					 * @param prefix Desired prefix to prepend at each line of output.
					 * @param fd The raw file descriptor that the dump is being sent to.
					 * @param writer The PrintWriter to which you should dump your state. This will be
					 * @param args additional arguments to the dump request.
					 */
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
					doReallyStop(retaining: boolean): void;
					/**
					 * Pre-HC, we didn't have a way to determine whether an activity was being stopped for a config change or not until we saw onRetainNonConfigurationInstance() called after onStop(). However we need to know this, to know whether to retain fragments. This will tell us what we need to know.
					 */
					onReallyStop(): void;
					/**
					 * Called when a fragment is attached to the activity.
					 */
					public onAttachFragment(fragment: android.support.v4.app.Fragment): void;
					/**
					 * Return the FragmentManager for interacting with fragments associated with this activity.
					 */
					public getSupportFragmentManager(): android.support.v4.app.FragmentManager;
					/**
					 * Modifies the standard behavior to allow results to be delivered to fragments. This imposes a restriction that requestCode be <= 0xffff.
					 */
					public startActivityForResult(intent: android.content.Intent, requestCode: number): void;
					/**
					 * Called by Fragment.startActivityForResult() to implement its behavior.
					 */
					public startActivityFromFragment(fragment: android.support.v4.app.Fragment, intent: android.content.Intent, requestCode: number): void;
					invalidateSupportFragment(who: string): void;
					/**
					 * Return the LoaderManager for this fragment, creating it if needed.
					 */
					public getSupportLoaderManager(): android.support.v4.app.LoaderManager;
					/**
					 * Called when a Fragment is being attached to this activity, immediately after the call to its Fragment#onAttach Fragment.onAttach() method and before Fragment#onCreate Fragment.onCreate().
					 */
					onAttachFragment(fragment: android.app.Fragment): void;
					/**
					 * Launch an activity for which you would like a result when it finished. When this activity exits, your onActivityResult() method will be called with the given requestCode. Using a negative requestCode is the same as calling #startActivity (the activity is not launched as a sub-activity).
					 * @param intent The intent to start.
					 * @param requestCode If >= 0, this code will be returned in
					 * @param options Additional options for how the Activity should be started.
					 */
					startActivityForResult(intent: android.content.Intent, requestCode: number, options: android.os.Bundle): void;
					/**
					 * Same as calling #startActivityFromFragment(Fragment, Intent, int, Bundle) with no options.
					 * @param fragment The fragment making the call.
					 * @param intent The intent to start.
					 * @param requestCode Reply request code. < 0 if reply is not requested.
					 */
					startActivityFromFragment(fragment: android.app.Fragment, intent: android.content.Intent, requestCode: number): void;
					/**
					 * This is called when a Fragment in this activity calls its Fragment#startActivity or Fragment#startActivityForResult method. 
					 * @param fragment The fragment making the call.
					 * @param intent The intent to start.
					 * @param requestCode Reply request code. < 0 if reply is not requested.
					 * @param options Additional options for how the Activity should be started.
					 */
					startActivityFromFragment(fragment: android.app.Fragment, intent: android.content.Intent, requestCode: number, options: android.os.Bundle): void;
					/**
					 * Standard implementation of android.view.LayoutInflater.Factory2#onCreateView(View, String, Context, AttributeSet) used when inflating with the LayoutInflater returned by #getSystemService. This implementation handles <fragment> tags to embed fragments inside of the activity.
					 */
					onCreateView(parent: android.view.View, name: string, context: android.content.Context, attrs: android.util.IAttributeSet): android.view.View;
				}
				export module FragmentActivity {
					export class FragmentTag extends java.lang.Object {
						static Fragment: native.Array<number>;
						static Fragment_id: number;
						static Fragment_name: number;
						static Fragment_tag: number;
						static class: java.lang.Class<android.support.v4.app.FragmentActivity.FragmentTag>;
					}
					export class NonConfigurationInstances extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.app.FragmentActivity.NonConfigurationInstances>;
					}
				}
				export class NotificationCompatJellybean extends java.lang.Object {
					constructor(context: android.content.Context, n: android.app.Notification, contentTitle: string, contentText: string, contentInfo: string, tickerView: android.widget.RemoteViews, number: number, contentIntent: android.app.PendingIntent, fullScreenIntent: android.app.PendingIntent, largeIcon: android.graphics.Bitmap, mProgressMax: number, mProgress: number, mProgressIndeterminate: boolean, useChronometer: boolean, priority: number, subText: string);
					static class: java.lang.Class<android.support.v4.app.NotificationCompatJellybean>;
					public addAction(icon: number, title: string, intent: android.app.PendingIntent): void;
					public addBigTextStyle(bigContentTitle: string, useSummary: boolean, summaryText: string, bigText: string): void;
					public addBigPictureStyle(bigContentTitle: string, useSummary: boolean, summaryText: string, bigPicture: android.graphics.Bitmap): void;
					public addInboxStyle(bigContentTitle: string, useSummary: boolean, summaryText: string, texts: java.util.ArrayList<string>): void;
					public build(): android.app.Notification;
				}
				/**
				 * Pre-Honeycomb versions of the platform don't have View#setSaveFromParentEnabled(boolean), so instead we insert this between the view and its parent.
				 */
				export class NoSaveStateFrameLayout extends android.widget.FrameLayout {
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.support.v4.app.NoSaveStateFrameLayout>;
					static wrap(child: android.view.View): android.view.ViewGroup;
					/**
					 * Override to prevent freezing of any child views.
					 */
					protected dispatchSaveInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
					/**
					 * Override to prevent thawing of any child views.
					 */
					protected dispatchRestoreInstanceState(container: android.util.SparseArray<android.os.IParcelable>): void;
				}
				/**
				 * NavUtils provides helper functionality for applications implementing recommended Android UI navigation patterns. For information about recommended navigation patterns see <a href="guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back Stack</a> from the developer guide and <a href="design/patterns/navigation.html">Navigation</a> from the design guide.
				 */
				export class NavUtils extends java.lang.Object {
					static PARENT_ACTIVITY: string;
					static class: java.lang.Class<android.support.v4.app.NavUtils>;
					/**
					 * Returns true if sourceActivity should recreate the task when navigating 'up' by using targetIntent.
					 * @param sourceActivity The current activity from which the user is attempting to navigate up
					 * @param targetIntent An intent representing the target destination for up navigation
					 */
					public static shouldUpRecreateTask(sourceActivity: android.app.Activity, targetIntent: android.content.Intent): boolean;
					/**
					 * Convenience method that is equivalent to calling <code>#navigateUpTo(Activity, Intent) navigateUpTo(sourceActivity, #getParentActivityIntent(Activity) getParentActivityIntent (sourceActivity))</code>. sourceActivity will be finished by this call.
					 * @param sourceActivity The current activity from which the user is attempting to navigate up
					 */
					public static navigateUpFromSameTask(sourceActivity: android.app.Activity): void;
					/**
					 * Navigate from sourceActivity to the activity specified by upIntent, finishing sourceActivity in the process. upIntent will have the flag Intent#FLAG_ACTIVITY_CLEAR_TOP set by this method, along with any others required for proper up navigation as outlined in the Android Design Guide.
					 * @param sourceActivity The current activity from which the user is attempting to navigate up
					 * @param upIntent An intent representing the target destination for up navigation
					 */
					public static navigateUpTo(sourceActivity: android.app.Activity, upIntent: android.content.Intent): void;
					/**
					 * Obtain an Intent that will launch an explicit target activity specified by sourceActivity's #PARENT_ACTIVITY &lt;meta-data&gt; element in the application's manifest. If the device is running Jellybean or newer, the android:parentActivityName attribute will be preferred if it is present.
					 * @param sourceActivity Activity to fetch a parent intent for
					 */
					public static getParentActivityIntent(sourceActivity: android.app.Activity): android.content.Intent;
					/**
					 * Obtain an Intent that will launch an explicit target activity specified by sourceActivityClass's #PARENT_ACTIVITY &lt;meta-data&gt; element in the application's manifest.
					 * @param context Context for looking up the activity component for sourceActivityClass
					 * @param sourceActivityClass {@link java.lang.Class} object for an Activity class
					 */
					public static getParentActivityIntent(context: android.content.Context, sourceActivityClass: java.lang.Class<any>): android.content.Intent;
					/**
					 * Obtain an Intent that will launch an explicit target activity specified by sourceActivityClass's #PARENT_ACTIVITY &lt;meta-data&gt; element in the application's manifest.
					 * @param context Context for looking up the activity component for the source activity
					 * @param componentName ComponentName for the source Activity
					 */
					public static getParentActivityIntent(context: android.content.Context, componentName: android.content.ComponentName): android.content.Intent;
					/**
					 * Return the fully qualified class name of sourceActivity's parent activity as specified by a #PARENT_ACTIVITY &lt;meta-data&gt; element within the activity element in the application's manifest.
					 * @param sourceActivity Activity to fetch a parent class name for
					 */
					public static getParentActivityName(sourceActivity: android.app.Activity): string;
					/**
					 * Return the fully qualified class name of a source activity's parent activity as specified by a #PARENT_ACTIVITY &lt;meta-data&gt; element within the activity element in the application's manifest. The source activity is provided by componentName.
					 * @param context Context for looking up the activity component for the source activity
					 * @param componentName ComponentName for the source Activity
					 */
					public static getParentActivityName(context: android.content.Context, componentName: android.content.ComponentName): string;
				}
				export module NavUtils {
					export class NavUtilsImplJB extends android.support.v4.app.NavUtils.NavUtilsImplBase {
						static class: java.lang.Class<android.support.v4.app.NavUtils.NavUtilsImplJB>;
						public getParentActivityIntent(activity: android.app.Activity): android.content.Intent;
						superGetParentActivityIntent(activity: android.app.Activity): android.content.Intent;
						public shouldUpRecreateTask(activity: android.app.Activity, targetIntent: android.content.Intent): boolean;
						public navigateUpTo(activity: android.app.Activity, upIntent: android.content.Intent): void;
						public getParentActivityName(context: android.content.Context, info: android.content.pm.ActivityInfo): string;
					}
					interface INavUtilsImpl {
						getParentActivityIntent(activity: android.app.Activity): android.content.Intent;
						shouldUpRecreateTask(activity: android.app.Activity, targetIntent: android.content.Intent): boolean;
						navigateUpTo(activity: android.app.Activity, upIntent: android.content.Intent): void;
						getParentActivityName(context: android.content.Context, info: android.content.pm.ActivityInfo): string;
					}
					export class NavUtilsImpl implements android.support.v4.app.NavUtils.INavUtilsImpl {
						constructor(implementation: android.support.v4.app.NavUtils.INavUtilsImpl);
						public getParentActivityIntent(activity: android.app.Activity): android.content.Intent;
						public shouldUpRecreateTask(activity: android.app.Activity, targetIntent: android.content.Intent): boolean;
						public navigateUpTo(activity: android.app.Activity, upIntent: android.content.Intent): void;
						public getParentActivityName(context: android.content.Context, info: android.content.pm.ActivityInfo): string;
					}
					export class NavUtilsImplBase extends java.lang.Object implements android.support.v4.app.NavUtils.INavUtilsImpl {
						static class: java.lang.Class<android.support.v4.app.NavUtils.NavUtilsImplBase>;
						public getParentActivityIntent(activity: android.app.Activity): android.content.Intent;
						public shouldUpRecreateTask(activity: android.app.Activity, targetIntent: android.content.Intent): boolean;
						public navigateUpTo(activity: android.app.Activity, upIntent: android.content.Intent): void;
						public getParentActivityName(context: android.content.Context, info: android.content.pm.ActivityInfo): string;
					}
				}
				/**
				 * Callbacks from FragmentManagerImpl to its container.
				 */
				interface IFragmentContainer {
					findViewById(id: number): android.view.View;
				}
				export class BackStackState extends java.lang.Object implements android.os.IParcelable {
					constructor(input: android.os.Parcel);
					static CREATOR: android.os.Parcelable.ICreator<android.support.v4.app.BackStackState>;
					static class: java.lang.Class<android.support.v4.app.BackStackState>;
					public describeContents(): number;
					public writeToParcel(dest: android.os.Parcel, flags: number): void;
				}
				export class ShareCompatICS extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.ShareCompatICS>;
					public static configureMenuItem(item: android.view.IMenuItem, callingActivity: android.app.Activity, intent: android.content.Intent): void;
				}
				/**
				 * Implementation of activity compatibility that can call Honeycomb APIs.
				 */
				export class ActivityCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.ActivityCompatHoneycomb>;
					static invalidateOptionsMenu(activity: android.app.Activity): void;
					static dump(activity: android.app.Activity, prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
				}
				/**
				 * Utility class for constructing synthetic back stacks for cross-task navigation on Android 3.0 and newer.
				 */
				export class TaskStackBuilder extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.TaskStackBuilder>;
					/**
					 * Return a new TaskStackBuilder for launching a fresh task stack consisting of a series of activities.
					 * @param context The context that will launch the new task stack or generate a PendingIntent
					 */
					public static create(context: android.content.Context): android.support.v4.app.TaskStackBuilder;
					/**
					 * Return a new TaskStackBuilder for launching a fresh task stack consisting of a series of activities.
					 * @param context The context that will launch the new task stack or generate a PendingIntent
					 */
					public static from(context: android.content.Context): android.support.v4.app.TaskStackBuilder;
					/**
					 * Add a new Intent to the task stack. The most recently added Intent will invoke the Activity at the top of the final task stack.
					 * @param nextIntent Intent for the next Activity in the synthesized task stack
					 */
					public addNextIntent(nextIntent: android.content.Intent): android.support.v4.app.TaskStackBuilder;
					/**
					 * Add a new Intent with the resolved chain of parents for the target activity to the task stack.
					 * @param nextIntent Intent for the topmost Activity in the synthesized task stack.
					 */
					public addNextIntentWithParentStack(nextIntent: android.content.Intent): android.support.v4.app.TaskStackBuilder;
					/**
					 * Add the activity parent chain as specified by manifest &lt;meta-data&gt; elements to the task stack builder.
					 * @param sourceActivity All parents of this activity will be added
					 */
					public addParentStack(sourceActivity: android.app.Activity): android.support.v4.app.TaskStackBuilder;
					/**
					 * Add the activity parent chain as specified by manifest &lt;meta-data&gt; elements to the task stack builder.
					 * @param sourceActivityClass All parents of this activity will be added
					 */
					public addParentStack(sourceActivityClass: java.lang.Class<any>): android.support.v4.app.TaskStackBuilder;
					/**
					 * Add the activity parent chain as specified by manifest &lt;meta-data&gt; elements to the task stack builder.
					 * @param sourceActivityName Must specify an Activity component. All parents of
					 */
					public addParentStack(sourceActivityName: android.content.ComponentName): android.support.v4.app.TaskStackBuilder;
					public getIntentCount(): number;
					/**
					 * Get the intent at the specified index. Useful if you need to modify the flags or extras of an intent that was previously added, for example with #addParentStack(Activity).
					 * @param index Index from 0-getIntentCount()
					 */
					public getIntent(index: number): android.content.Intent;
					/**
					 * Return the intent at the specified index for modification. Useful if you need to modify the flags or extras of an intent that was previously added, for example with #addParentStack(Activity).
					 * @param index Index from 0-getIntentCount()
					 */
					public editIntentAt(index: number): android.content.Intent;
					/**
					 *  Use editIntentAt instead
					 */
					public iterator(): java.util.IIterator<android.content.Intent>;
					/**
					 * Start the task stack constructed by this builder. The Context used to obtain this builder must be an Activity.
					 */
					public startActivities(): void;
					/**
					 * Start the task stack constructed by this builder. The Context used to obtain this builder must be an Activity.
					 * @param options Additional options for how the Activity should be started.
					 */
					public startActivities(options: android.os.Bundle): void;
					/**
					 * Obtain a PendingIntent for launching the task constructed by this builder so far.
					 * @param requestCode Private request code for the sender
					 * @param flags May be {@link PendingIntent#FLAG_ONE_SHOT},
					 */
					public getPendingIntent(requestCode: number, flags: number): android.app.PendingIntent;
					/**
					 * Obtain a PendingIntent for launching the task constructed by this builder so far.
					 * @param requestCode Private request code for the sender
					 * @param flags May be {@link PendingIntent#FLAG_ONE_SHOT},
					 * @param options Additional options for how the Activity should be started.
					 */
					public getPendingIntent(requestCode: number, flags: number, options: android.os.Bundle): android.app.PendingIntent;
					/**
					 * Return an array containing the intents added to this builder. The intent at the root of the task stack will appear as the first item in the array and the intent at the top of the stack will appear as the last item.
					 */
					public getIntents(): native.Array<android.content.Intent>;
				}
				export module TaskStackBuilder {
					interface ITaskStackBuilderImpl {
						getPendingIntent(context: android.content.Context, intents: native.Array<android.content.Intent>, requestCode: number, flags: number, options: android.os.Bundle): android.app.PendingIntent;
					}
					export class TaskStackBuilderImplBase extends java.lang.Object implements android.support.v4.app.TaskStackBuilder.ITaskStackBuilderImpl {
						static class: java.lang.Class<android.support.v4.app.TaskStackBuilder.TaskStackBuilderImplBase>;
						public getPendingIntent(context: android.content.Context, intents: native.Array<android.content.Intent>, requestCode: number, flags: number, options: android.os.Bundle): android.app.PendingIntent;
					}
					export class TaskStackBuilderImplJellybean extends java.lang.Object implements android.support.v4.app.TaskStackBuilder.ITaskStackBuilderImpl {
						static class: java.lang.Class<android.support.v4.app.TaskStackBuilder.TaskStackBuilderImplJellybean>;
						public getPendingIntent(context: android.content.Context, intents: native.Array<android.content.Intent>, requestCode: number, flags: number, options: android.os.Bundle): android.app.PendingIntent;
					}
					export class TaskStackBuilderImplHoneycomb extends java.lang.Object implements android.support.v4.app.TaskStackBuilder.ITaskStackBuilderImpl {
						static class: java.lang.Class<android.support.v4.app.TaskStackBuilder.TaskStackBuilderImplHoneycomb>;
						public getPendingIntent(context: android.content.Context, intents: native.Array<android.content.Intent>, requestCode: number, flags: number, options: android.os.Bundle): android.app.PendingIntent;
					}
					export class TaskStackBuilderImpl implements android.support.v4.app.TaskStackBuilder.ITaskStackBuilderImpl {
						constructor(implementation: android.support.v4.app.TaskStackBuilder.ITaskStackBuilderImpl);
						public getPendingIntent(context: android.content.Context, intents: native.Array<android.content.Intent>, requestCode: number, flags: number, options: android.os.Bundle): android.app.PendingIntent;
					}
				}
				export class NotificationCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.app.NotificationCompatHoneycomb>;
					static add(context: android.content.Context, n: android.app.Notification, contentTitle: string, contentText: string, contentInfo: string, tickerView: android.widget.RemoteViews, number: number, contentIntent: android.app.PendingIntent, fullScreenIntent: android.app.PendingIntent, largeIcon: android.graphics.Bitmap): android.app.Notification;
				}
			}
			export module view {
				/**
				 * Jellybean-specific View API access
				 */
				export class ViewCompatJB extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.view.ViewCompatJB>;
					public static hasTransientState(view: android.view.View): boolean;
					public static setHasTransientState(view: android.view.View, hasTransientState: boolean): void;
					public static postInvalidateOnAnimation(view: android.view.View): void;
					public static postInvalidateOnAnimation(view: android.view.View, left: number, top: number, right: number, bottom: number): void;
					public static postOnAnimation(view: android.view.View, action: java.lang.IRunnable): void;
					public static postOnAnimationDelayed(view: android.view.View, action: java.lang.IRunnable, delayMillis: number): void;
					public static getImportantForAccessibility(view: android.view.View): number;
					public static setImportantForAccessibility(view: android.view.View, mode: number): void;
					public static performAccessibilityAction(view: android.view.View, action: number, args: android.os.Bundle): boolean;
					public static getAccessibilityNodeProvider(view: android.view.View): any;
				}
				export module accessibility {
					/**
					 * JellyBean specific AccessibilityNodeProvider API implementation.
					 */
					export class AccessibilityNodeProviderCompatJellyBean extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeProviderCompatJellyBean>;
						public static newAccessibilityNodeProviderBridge(bridge: android.support.v4.view.accessibility.AccessibilityNodeProviderCompatJellyBean.IAccessibilityNodeInfoBridge): any;
					}
					export module AccessibilityNodeProviderCompatJellyBean {
						interface IAccessibilityNodeInfoBridge {
							createAccessibilityNodeInfo(virtualViewId: number): any;
							performAction(virtualViewId: number, action: number, args: android.os.Bundle): boolean;
							findAccessibilityNodeInfosByText(text: string, virtualViewId: number): java.util.IList<any>;
						}
						export class AccessibilityNodeInfoBridge implements android.support.v4.view.accessibility.AccessibilityNodeProviderCompatJellyBean.IAccessibilityNodeInfoBridge {
							constructor(implementation: android.support.v4.view.accessibility.AccessibilityNodeProviderCompatJellyBean.IAccessibilityNodeInfoBridge);
							public createAccessibilityNodeInfo(virtualViewId: number): any;
							public performAction(virtualViewId: number, action: number, args: android.os.Bundle): boolean;
							public findAccessibilityNodeInfosByText(text: string, virtualViewId: number): java.util.IList<any>;
						}
					}
					/**
					 * ICS specific AccessibilityEvent API implementation.
					 */
					export class AccessibilityEventCompatIcs extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityEventCompatIcs>;
						public static getRecordCount(event: android.view.accessibility.AccessibilityEvent): number;
						public static appendRecord(event: android.view.accessibility.AccessibilityEvent, record: any): void;
						public static getRecord(event: android.view.accessibility.AccessibilityEvent, index: number): any;
					}
					/**
					 * Helper for accessing android.view.accessibility.AccessibilityRecord introduced after API level 4 in a backwards compatible fashion.
					 */
					export class AccessibilityRecordCompat extends java.lang.Object {
						constructor(record: any);
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompat>;
						public getImpl(): any;
						/**
						 * Returns a cached instance if such is available or a new one is instantiated. The instance is initialized with data from the given record.
						 */
						public static obtain(record: android.support.v4.view.accessibility.AccessibilityRecordCompat): android.support.v4.view.accessibility.AccessibilityRecordCompat;
						/**
						 * Returns a cached instance if such is available or a new one is instantiated.
						 */
						public static obtain(): android.support.v4.view.accessibility.AccessibilityRecordCompat;
						/**
						 * Sets the event source.
						 * @param source The source.
						 */
						public setSource(source: android.view.View): void;
						/**
						 * Sets the source to be a virtual descendant of the given <code>root</code>. If <code>virtualDescendantId</code> equals to View#NO_ID the root is set as the source.
						 * @param root The root of the virtual subtree.
						 * @param virtualDescendantId The id of the virtual descendant.
						 */
						public setSource(root: android.view.View, virtualDescendantId: number): void;
						/**
						 * Gets the android.view.accessibility.AccessibilityNodeInfo of the event source.
						 */
						public getSource(): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Gets the id of the window from which the event comes from.
						 */
						public getWindowId(): number;
						/**
						 * Gets if the source is checked.
						 */
						public isChecked(): boolean;
						/**
						 * Sets if the source is checked.
						 * @param isChecked True if the view is checked, false otherwise.
						 */
						public setChecked(isChecked: boolean): void;
						/**
						 * Gets if the source is enabled.
						 */
						public isEnabled(): boolean;
						/**
						 * Sets if the source is enabled.
						 * @param isEnabled True if the view is enabled, false otherwise.
						 */
						public setEnabled(isEnabled: boolean): void;
						/**
						 * Gets if the source is a password field.
						 */
						public isPassword(): boolean;
						/**
						 * Sets if the source is a password field.
						 * @param isPassword True if the view is a password field, false otherwise.
						 */
						public setPassword(isPassword: boolean): void;
						/**
						 * Gets if the source is taking the entire screen.
						 */
						public isFullScreen(): boolean;
						/**
						 * Sets if the source is taking the entire screen.
						 * @param isFullScreen True if the source is full screen, false otherwise.
						 */
						public setFullScreen(isFullScreen: boolean): void;
						/**
						 * Gets if the source is scrollable.
						 */
						public isScrollable(): boolean;
						/**
						 * Sets if the source is scrollable.
						 * @param scrollable True if the source is scrollable, false otherwise.
						 */
						public setScrollable(scrollable: boolean): void;
						/**
						 * Gets the number of items that can be visited.
						 */
						public getItemCount(): number;
						/**
						 * Sets the number of items that can be visited.
						 * @param itemCount The number of items.
						 */
						public setItemCount(itemCount: number): void;
						/**
						 * Gets the index of the source in the list of items the can be visited.
						 */
						public getCurrentItemIndex(): number;
						/**
						 * Sets the index of the source in the list of items that can be visited.
						 * @param currentItemIndex The current item index.
						 */
						public setCurrentItemIndex(currentItemIndex: number): void;
						/**
						 * Gets the index of the first character of the changed sequence, or the beginning of a text selection or the index of the first visible item when scrolling.
						 */
						public getFromIndex(): number;
						/**
						 * Sets the index of the first character of the changed sequence or the beginning of a text selection or the index of the first visible item when scrolling.
						 * @param fromIndex The index of the first character or selection
						 */
						public setFromIndex(fromIndex: number): void;
						/**
						 * Gets the index of text selection end or the index of the last visible item when scrolling.
						 */
						public getToIndex(): number;
						/**
						 * Sets the index of text selection end or the index of the last visible item when scrolling.
						 * @param toIndex The index of selection end or last item index.
						 */
						public setToIndex(toIndex: number): void;
						/**
						 * Gets the scroll offset of the source left edge in pixels.
						 */
						public getScrollX(): number;
						/**
						 * Sets the scroll offset of the source left edge in pixels.
						 * @param scrollX The scroll.
						 */
						public setScrollX(scrollX: number): void;
						/**
						 * Gets the scroll offset of the source top edge in pixels.
						 */
						public getScrollY(): number;
						/**
						 * Sets the scroll offset of the source top edge in pixels.
						 * @param scrollY The scroll.
						 */
						public setScrollY(scrollY: number): void;
						/**
						 * Gets the max scroll offset of the source left edge in pixels.
						 */
						public getMaxScrollX(): number;
						/**
						 * Sets the max scroll offset of the source left edge in pixels.
						 * @param maxScrollX The max scroll.
						 */
						public setMaxScrollX(maxScrollX: number): void;
						/**
						 * Gets the max scroll offset of the source top edge in pixels.
						 */
						public getMaxScrollY(): number;
						/**
						 * Sets the max scroll offset of the source top edge in pixels.
						 * @param maxScrollY The max scroll.
						 */
						public setMaxScrollY(maxScrollY: number): void;
						/**
						 * Gets the number of added characters.
						 */
						public getAddedCount(): number;
						/**
						 * Sets the number of added characters.
						 * @param addedCount The number of added characters.
						 */
						public setAddedCount(addedCount: number): void;
						/**
						 * Gets the number of removed characters.
						 */
						public getRemovedCount(): number;
						/**
						 * Sets the number of removed characters.
						 * @param removedCount The number of removed characters.
						 */
						public setRemovedCount(removedCount: number): void;
						/**
						 * Gets the class name of the source.
						 */
						public getClassName(): string;
						/**
						 * Sets the class name of the source.
						 * @param className The lass name.
						 */
						public setClassName(className: string): void;
						/**
						 * Gets the text of the event. The index in the list represents the priority of the text. Specifically, the lower the index the higher the priority.
						 */
						public getText(): java.util.IList<string>;
						/**
						 * Sets the text before a change.
						 */
						public getBeforeText(): string;
						/**
						 * Sets the text before a change.
						 * @param beforeText The text before the change.
						 */
						public setBeforeText(beforeText: string): void;
						/**
						 * Gets the description of the source.
						 */
						public getContentDescription(): string;
						/**
						 * Sets the description of the source.
						 * @param contentDescription The description.
						 */
						public setContentDescription(contentDescription: string): void;
						/**
						 * Gets the Parcelable data.
						 */
						public getParcelableData(): android.os.IParcelable;
						/**
						 * Sets the Parcelable data of the event.
						 * @param parcelableData The parcelable data.
						 */
						public setParcelableData(parcelableData: android.os.IParcelable): void;
						/**
						 * Return an instance back to be reused.
						 */
						public recycle(): void;
						public hashCode(): number;
						public equals(obj: any): boolean;
					}
					export module AccessibilityRecordCompat {
						interface IAccessibilityRecordImpl {
							obtain(): any;
							obtain(record: any): any;
							setSource(record: any, source: android.view.View): void;
							setSource(record: any, root: android.view.View, virtualDescendantId: number): void;
							getSource(record: any): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
							getWindowId(record: any): number;
							isChecked(record: any): boolean;
							setChecked(record: any, isChecked: boolean): void;
							isEnabled(record: any): boolean;
							setEnabled(record: any, isEnabled: boolean): void;
							isPassword(record: any): boolean;
							setPassword(record: any, isPassword: boolean): void;
							isFullScreen(record: any): boolean;
							setFullScreen(record: any, isFullScreen: boolean): void;
							isScrollable(record: any): boolean;
							setScrollable(record: any, scrollable: boolean): void;
							getItemCount(record: any): number;
							setItemCount(record: any, itemCount: number): void;
							getCurrentItemIndex(record: any): number;
							setCurrentItemIndex(record: any, currentItemIndex: number): void;
							getFromIndex(record: any): number;
							setFromIndex(record: any, fromIndex: number): void;
							getToIndex(record: any): number;
							setToIndex(record: any, toIndex: number): void;
							getScrollX(record: any): number;
							setScrollX(record: any, scrollX: number): void;
							getScrollY(record: any): number;
							setScrollY(record: any, scrollY: number): void;
							getMaxScrollX(record: any): number;
							setMaxScrollX(record: any, maxScrollX: number): void;
							getMaxScrollY(record: any): number;
							setMaxScrollY(record: any, maxScrollY: number): void;
							getAddedCount(record: any): number;
							setAddedCount(record: any, addedCount: number): void;
							getRemovedCount(record: any): number;
							setRemovedCount(record: any, removedCount: number): void;
							getClassName(record: any): string;
							setClassName(record: any, className: string): void;
							getText(record: any): java.util.IList<string>;
							getBeforeText(record: any): string;
							setBeforeText(record: any, beforeText: string): void;
							getContentDescription(record: any): string;
							setContentDescription(record: any, contentDescription: string): void;
							getParcelableData(record: any): android.os.IParcelable;
							setParcelableData(record: any, parcelableData: android.os.IParcelable): void;
							recycle(record: any): void;
						}
						export class AccessibilityRecordStubImpl extends java.lang.Object implements android.support.v4.view.accessibility.AccessibilityRecordCompat.IAccessibilityRecordImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompat.AccessibilityRecordStubImpl>;
							public obtain(): any;
							public obtain(record: any): any;
							public getAddedCount(record: any): number;
							public getBeforeText(record: any): string;
							public getClassName(record: any): string;
							public getContentDescription(record: any): string;
							public getCurrentItemIndex(record: any): number;
							public getFromIndex(record: any): number;
							public getItemCount(record: any): number;
							public getMaxScrollX(record: any): number;
							public getMaxScrollY(record: any): number;
							public getParcelableData(record: any): android.os.IParcelable;
							public getRemovedCount(record: any): number;
							public getScrollX(record: any): number;
							public getScrollY(record: any): number;
							public getSource(record: any): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
							public getText(record: any): java.util.IList<string>;
							public getToIndex(record: any): number;
							public getWindowId(record: any): number;
							public isChecked(record: any): boolean;
							public isEnabled(record: any): boolean;
							public isFullScreen(record: any): boolean;
							public isPassword(record: any): boolean;
							public isScrollable(record: any): boolean;
							public recycle(record: any): void;
							public setAddedCount(record: any, addedCount: number): void;
							public setBeforeText(record: any, beforeText: string): void;
							public setChecked(record: any, isChecked: boolean): void;
							public setClassName(record: any, className: string): void;
							public setContentDescription(record: any, contentDescription: string): void;
							public setCurrentItemIndex(record: any, currentItemIndex: number): void;
							public setEnabled(record: any, isEnabled: boolean): void;
							public setFromIndex(record: any, fromIndex: number): void;
							public setFullScreen(record: any, isFullScreen: boolean): void;
							public setItemCount(record: any, itemCount: number): void;
							public setMaxScrollX(record: any, maxScrollX: number): void;
							public setMaxScrollY(record: any, maxScrollY: number): void;
							public setParcelableData(record: any, parcelableData: android.os.IParcelable): void;
							public setPassword(record: any, isPassword: boolean): void;
							public setRemovedCount(record: any, removedCount: number): void;
							public setScrollX(record: any, scrollX: number): void;
							public setScrollY(record: any, scrollY: number): void;
							public setScrollable(record: any, scrollable: boolean): void;
							public setSource(record: any, source: android.view.View): void;
							public setSource(record: any, root: android.view.View, virtualDescendantId: number): void;
							public setToIndex(record: any, toIndex: number): void;
						}
						export class AccessibilityRecordIcsImpl extends android.support.v4.view.accessibility.AccessibilityRecordCompat.AccessibilityRecordStubImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompat.AccessibilityRecordIcsImpl>;
							public obtain(): any;
							public obtain(record: any): any;
							public getAddedCount(record: any): number;
							public getBeforeText(record: any): string;
							public getClassName(record: any): string;
							public getContentDescription(record: any): string;
							public getCurrentItemIndex(record: any): number;
							public getFromIndex(record: any): number;
							public getItemCount(record: any): number;
							public getParcelableData(record: any): android.os.IParcelable;
							public getRemovedCount(record: any): number;
							public getScrollX(record: any): number;
							public getScrollY(record: any): number;
							public getSource(record: any): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
							public getText(record: any): java.util.IList<string>;
							public getToIndex(record: any): number;
							public getWindowId(record: any): number;
							public isChecked(record: any): boolean;
							public isEnabled(record: any): boolean;
							public isFullScreen(record: any): boolean;
							public isPassword(record: any): boolean;
							public isScrollable(record: any): boolean;
							public recycle(record: any): void;
							public setAddedCount(record: any, addedCount: number): void;
							public setBeforeText(record: any, beforeText: string): void;
							public setChecked(record: any, isChecked: boolean): void;
							public setClassName(record: any, className: string): void;
							public setContentDescription(record: any, contentDescription: string): void;
							public setCurrentItemIndex(record: any, currentItemIndex: number): void;
							public setEnabled(record: any, isEnabled: boolean): void;
							public setFromIndex(record: any, fromIndex: number): void;
							public setFullScreen(record: any, isFullScreen: boolean): void;
							public setItemCount(record: any, itemCount: number): void;
							public setParcelableData(record: any, parcelableData: android.os.IParcelable): void;
							public setPassword(record: any, isPassword: boolean): void;
							public setRemovedCount(record: any, removedCount: number): void;
							public setScrollX(record: any, scrollX: number): void;
							public setScrollY(record: any, scrollY: number): void;
							public setScrollable(record: any, scrollable: boolean): void;
							public setSource(record: any, source: android.view.View): void;
							public setToIndex(record: any, toIndex: number): void;
							setSource(record: any, root: android.view.View, virtualDescendantId: number): void;
						}
						export class AccessibilityRecordImpl implements android.support.v4.view.accessibility.AccessibilityRecordCompat.IAccessibilityRecordImpl {
							constructor(implementation: android.support.v4.view.accessibility.AccessibilityRecordCompat.IAccessibilityRecordImpl);
							public obtain(): any;
							public obtain(record: any): any;
							public setSource(record: any, source: android.view.View): void;
							public setSource(record: any, root: android.view.View, virtualDescendantId: number): void;
							public getSource(record: any): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
							public getWindowId(record: any): number;
							public isChecked(record: any): boolean;
							public setChecked(record: any, isChecked: boolean): void;
							public isEnabled(record: any): boolean;
							public setEnabled(record: any, isEnabled: boolean): void;
							public isPassword(record: any): boolean;
							public setPassword(record: any, isPassword: boolean): void;
							public isFullScreen(record: any): boolean;
							public setFullScreen(record: any, isFullScreen: boolean): void;
							public isScrollable(record: any): boolean;
							public setScrollable(record: any, scrollable: boolean): void;
							public getItemCount(record: any): number;
							public setItemCount(record: any, itemCount: number): void;
							public getCurrentItemIndex(record: any): number;
							public setCurrentItemIndex(record: any, currentItemIndex: number): void;
							public getFromIndex(record: any): number;
							public setFromIndex(record: any, fromIndex: number): void;
							public getToIndex(record: any): number;
							public setToIndex(record: any, toIndex: number): void;
							public getScrollX(record: any): number;
							public setScrollX(record: any, scrollX: number): void;
							public getScrollY(record: any): number;
							public setScrollY(record: any, scrollY: number): void;
							public getMaxScrollX(record: any): number;
							public setMaxScrollX(record: any, maxScrollX: number): void;
							public getMaxScrollY(record: any): number;
							public setMaxScrollY(record: any, maxScrollY: number): void;
							public getAddedCount(record: any): number;
							public setAddedCount(record: any, addedCount: number): void;
							public getRemovedCount(record: any): number;
							public setRemovedCount(record: any, removedCount: number): void;
							public getClassName(record: any): string;
							public setClassName(record: any, className: string): void;
							public getText(record: any): java.util.IList<string>;
							public getBeforeText(record: any): string;
							public setBeforeText(record: any, beforeText: string): void;
							public getContentDescription(record: any): string;
							public setContentDescription(record: any, contentDescription: string): void;
							public getParcelableData(record: any): android.os.IParcelable;
							public setParcelableData(record: any, parcelableData: android.os.IParcelable): void;
							public recycle(record: any): void;
						}
						export class AccessibilityRecordJellyBeanImpl extends android.support.v4.view.accessibility.AccessibilityRecordCompat.AccessibilityRecordIcsMr1Impl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompat.AccessibilityRecordJellyBeanImpl>;
							public setSource(record: any, root: android.view.View, virtualDescendantId: number): void;
							setSource(record: any, source: android.view.View): void;
						}
						export class AccessibilityRecordIcsMr1Impl extends android.support.v4.view.accessibility.AccessibilityRecordCompat.AccessibilityRecordIcsImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompat.AccessibilityRecordIcsMr1Impl>;
							public getMaxScrollX(record: any): number;
							public getMaxScrollY(record: any): number;
							public setMaxScrollX(record: any, maxScrollX: number): void;
							public setMaxScrollY(record: any, maxScrollY: number): void;
						}
					}
					/**
					 * JellyBean specific AccessibilityRecord API implementation.
					 */
					export class AccessibilityRecordCompatJellyBean extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompatJellyBean>;
						public static setSource(record: any, root: android.view.View, virtualDescendantId: number): void;
					}
					/**
					 * Helper for accessing features in AccessibilityEvent introduced after API level 4 in a backwards compatible fashion.
					 */
					export class AccessibilityEventCompat extends java.lang.Object {
						/**
						 * Represents the event of a hover enter over a android.view.View.
						 */
						static TYPE_VIEW_HOVER_ENTER: number;
						/**
						 * Represents the event of a hover exit over a android.view.View.
						 */
						static TYPE_VIEW_HOVER_EXIT: number;
						/**
						 * Represents the event of starting a touch exploration gesture.
						 */
						static TYPE_TOUCH_EXPLORATION_GESTURE_START: number;
						/**
						 * Represents the event of ending a touch exploration gesture.
						 */
						static TYPE_TOUCH_EXPLORATION_GESTURE_END: number;
						/**
						 * Represents the event of changing the content of a window.
						 */
						static TYPE_WINDOW_CONTENT_CHANGED: number;
						/**
						 * Represents the event of scrolling a view.
						 */
						static TYPE_VIEW_SCROLLED: number;
						/**
						 * Represents the event of changing the selection in an android.widget.EditText.
						 */
						static TYPE_VIEW_TEXT_SELECTION_CHANGED: number;
						/**
						 * Represents the event of an application making an announcement.
						 */
						static TYPE_ANNOUNCEMENT: number;
						/**
						 * Represents the event of gaining accessibility focus.
						 */
						static TYPE_VIEW_ACCESSIBILITY_FOCUSED: number;
						/**
						 * Represents the event of clearing accessibility focus.
						 */
						static TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED: number;
						/**
						 * Represents the event of traversing the text of a view at a given movement granularity.
						 */
						static TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY: number;
						/**
						 * Represents the event of beginning gesture detection.
						 */
						static TYPE_GESTURE_DETECTION_START: number;
						/**
						 * Represents the event of ending gesture detection.
						 */
						static TYPE_GESTURE_DETECTION_END: number;
						/**
						 * Represents the event of the user starting to touch the screen.
						 */
						static TYPE_TOUCH_INTERACTION_START: number;
						/**
						 * Represents the event of the user ending to touch the screen.
						 */
						static TYPE_TOUCH_INTERACTION_END: number;
						/**
						 * Mask for AccessibilityEvent all types.
						 */
						static TYPES_ALL_MASK: number;
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityEventCompat>;
						/**
						 * Gets the number of records contained in the event.
						 */
						public static getRecordCount(event: android.view.accessibility.AccessibilityEvent): number;
						/**
						 * Appends an android.view.accessibility.AccessibilityRecord to the end of event records.
						 * @param event record The record to append.
						 * @param record 
						 */
						public static appendRecord(event: android.view.accessibility.AccessibilityEvent, record: android.support.v4.view.accessibility.AccessibilityRecordCompat): void;
						/**
						 * Gets the record at a given index.
						 * @param event index The index.
						 * @param index 
						 */
						public static getRecord(event: android.view.accessibility.AccessibilityEvent, index: number): android.support.v4.view.accessibility.AccessibilityRecordCompat;
					}
					export module AccessibilityEventCompat {
						interface IAccessibilityEventVersionImpl {
							getRecordCount(event: android.view.accessibility.AccessibilityEvent): number;
							appendRecord(event: android.view.accessibility.AccessibilityEvent, record: any): void;
							getRecord(event: android.view.accessibility.AccessibilityEvent, index: number): any;
						}
						export class AccessibilityEventIcsImpl extends android.support.v4.view.accessibility.AccessibilityEventCompat.AccessibilityEventStubImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityEventCompat.AccessibilityEventIcsImpl>;
							public appendRecord(event: android.view.accessibility.AccessibilityEvent, record: any): void;
							public getRecord(event: android.view.accessibility.AccessibilityEvent, index: number): any;
							public getRecordCount(event: android.view.accessibility.AccessibilityEvent): number;
						}
						export class AccessibilityEventVersionImpl implements android.support.v4.view.accessibility.AccessibilityEventCompat.IAccessibilityEventVersionImpl {
							constructor(implementation: android.support.v4.view.accessibility.AccessibilityEventCompat.IAccessibilityEventVersionImpl);
							public getRecordCount(event: android.view.accessibility.AccessibilityEvent): number;
							public appendRecord(event: android.view.accessibility.AccessibilityEvent, record: any): void;
							public getRecord(event: android.view.accessibility.AccessibilityEvent, index: number): any;
						}
						export class AccessibilityEventStubImpl extends java.lang.Object implements android.support.v4.view.accessibility.AccessibilityEventCompat.IAccessibilityEventVersionImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityEventCompat.AccessibilityEventStubImpl>;
							public appendRecord(event: android.view.accessibility.AccessibilityEvent, record: any): void;
							public getRecord(event: android.view.accessibility.AccessibilityEvent, index: number): any;
							public getRecordCount(event: android.view.accessibility.AccessibilityEvent): number;
						}
					}
					/**
					 * Helper for accessing android.view.accessibility.AccessibilityNodeInfo introduced after API level 4 in a backwards compatible fashion.
					 */
					export class AccessibilityNodeInfoCompat extends java.lang.Object {
						/**
						 * Creates a new instance wrapping an android.view.accessibility.AccessibilityNodeInfo.
						 * @param info The info.
						 */
						constructor(info: any);
						/**
						 * Action that focuses the node.
						 */
						static ACTION_FOCUS: number;
						/**
						 * Action that unfocuses the node.
						 */
						static ACTION_CLEAR_FOCUS: number;
						/**
						 * Action that selects the node.
						 */
						static ACTION_SELECT: number;
						/**
						 * Action that unselects the node.
						 */
						static ACTION_CLEAR_SELECTION: number;
						/**
						 * Action that clicks on the node info.
						 */
						static ACTION_CLICK: number;
						/**
						 * Action that long clicks on the node.
						 */
						static ACTION_LONG_CLICK: number;
						/**
						 * Action that gives accessibility focus to the node.
						 */
						static ACTION_ACCESSIBILITY_FOCUS: number;
						/**
						 * Action that clears accessibility focus of the node.
						 */
						static ACTION_CLEAR_ACCESSIBILITY_FOCUS: number;
						/**
						 * Action that requests to go to the next entity in this node's text at a given movement granularity. For example, move to the next character, word, etc.
						 */
						static ACTION_NEXT_AT_MOVEMENT_GRANULARITY: number;
						/**
						 * Action that requests to go to the previous entity in this node's text at a given movement granularity. For example, move to the next character, word, etc.
						 */
						static ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: number;
						/**
						 * Action to move to the next HTML element of a given type. For example, move to the BUTTON, INPUT, TABLE, etc.
						 */
						static ACTION_NEXT_HTML_ELEMENT: number;
						/**
						 * Action to move to the previous HTML element of a given type. For example, move to the BUTTON, INPUT, TABLE, etc.
						 */
						static ACTION_PREVIOUS_HTML_ELEMENT: number;
						/**
						 * Action to scroll the node content forward.
						 */
						static ACTION_SCROLL_FORWARD: number;
						/**
						 * Action to scroll the node content backward.
						 */
						static ACTION_SCROLL_BACKWARD: number;
						/**
						 * Argument for which movement granularity to be used when traversing the node text.
						 */
						static ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT: string;
						/**
						 * Argument for which HTML element to get moving to the next/previous HTML element.
						 */
						static ACTION_ARGUMENT_HTML_ELEMENT_STRING: string;
						/**
						 * The input focus.
						 */
						static FOCUS_INPUT: number;
						/**
						 * The accessibility focus.
						 */
						static FOCUS_ACCESSIBILITY: number;
						/**
						 * Movement granularity bit for traversing the text of a node by character.
						 */
						static MOVEMENT_GRANULARITY_CHARACTER: number;
						/**
						 * Movement granularity bit for traversing the text of a node by word.
						 */
						static MOVEMENT_GRANULARITY_WORD: number;
						/**
						 * Movement granularity bit for traversing the text of a node by line.
						 */
						static MOVEMENT_GRANULARITY_LINE: number;
						/**
						 * Movement granularity bit for traversing the text of a node by paragraph.
						 */
						static MOVEMENT_GRANULARITY_PARAGRAPH: number;
						/**
						 * Movement granularity bit for traversing the text of a node by page.
						 */
						static MOVEMENT_GRANULARITY_PAGE: number;
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat>;
						/**
						 * Creates a wrapper for info implementation.
						 * @param object The info to wrap.
						 */
						static wrapNonNullInstance(object: any): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						public getInfo(): any;
						/**
						 * Returns a cached instance if such is available otherwise a new one and sets the source.
						 */
						public static obtain(source: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Returns a cached instance if such is available otherwise a new one and sets the source.
						 * @param root The root of the virtual subtree.
						 * @param virtualDescendantId The id of the virtual descendant.
						 */
						public static obtain(root: android.view.View, virtualDescendantId: number): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Returns a cached instance if such is available otherwise a new one.
						 */
						public static obtain(): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Returns a cached instance if such is available or a new one is create. The returned instance is initialized from the given <code>info</code>.
						 * @param info The other info.
						 */
						public static obtain(info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Sets the source.
						 * @param source The info source.
						 */
						public setSource(source: android.view.View): void;
						/**
						 * Sets the source to be a virtual descendant of the given <code>root</code>. If <code>virtualDescendantId</code> is View#NO_ID the root is set as the source.
						 * @param root The root of the virtual subtree.
						 * @param virtualDescendantId The id of the virtual descendant.
						 */
						public setSource(root: android.view.View, virtualDescendantId: number): void;
						/**
						 * Find the view that has the specified focus type. The search starts from the view represented by this node info.
						 * @param focus The focus to find. One of {@link #FOCUS_INPUT} or
						 */
						public findFocus(focus: number): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Searches for the nearest view in the specified direction that can take input focus.
						 * @param direction The direction. Can be one of:
						 */
						public focusSearch(direction: number): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Gets the id of the window from which the info comes from.
						 */
						public getWindowId(): number;
						/**
						 * Gets the number of children.
						 */
						public getChildCount(): number;
						/**
						 * Get the child at given index.
						 * @param index The child index.
						 */
						public getChild(index: number): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Adds a child.
						 * @param child The child.
						 */
						public addChild(child: android.view.View): void;
						/**
						 * Adds a virtual child which is a descendant of the given <code>root</code>. If <code>virtualDescendantId</code> is View#NO_ID the root is added as a child.
						 * @param root The root of the virtual subtree.
						 * @param virtualDescendantId The id of the virtual child.
						 */
						public addChild(root: android.view.View, virtualDescendantId: number): void;
						/**
						 * Gets the actions that can be performed on the node.
						 */
						public getActions(): number;
						/**
						 * Adds an action that can be performed on the node.
						 * @param action The action.
						 */
						public addAction(action: number): void;
						/**
						 * Performs an action on the node.
						 * @param action The action to perform.
						 */
						public performAction(action: number): boolean;
						/**
						 * Performs an action on the node.
						 * @param action The action to perform.
						 * @param arguments A bundle with additional arguments.
						 */
						public performAction(action: number, args: android.os.Bundle): boolean;
						/**
						 * Sets the movement granularities for traversing the text of this node.
						 * @param granularities The bit mask with granularities.
						 */
						public setMovementGranularities(granularities: number): void;
						/**
						 * Gets the movement granularities for traversing the text of this node.
						 */
						public getMovementGranularities(): number;
						/**
						 * Finds android.view.accessibility.AccessibilityNodeInfos by text. The match is case insensitive containment. The search is relative to this info i.e. this info is the root of the traversed tree.
						 * @param text The searched text.
						 */
						public findAccessibilityNodeInfosByText(text: string): java.util.IList<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat>;
						/**
						 * Gets the parent.
						 */
						public getParent(): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Sets the parent.
						 * @param parent The parent.
						 */
						public setParent(parent: android.view.View): void;
						/**
						 * Sets the parent to be a virtual descendant of the given <code>root</code>. If <code>virtualDescendantId</code> equals to View#NO_ID the root is set as the parent.
						 * @param root The root of the virtual subtree.
						 * @param virtualDescendantId The id of the virtual descendant.
						 */
						public setParent(root: android.view.View, virtualDescendantId: number): void;
						/**
						 * Gets the node bounds in parent coordinates.
						 * @param outBounds The output node bounds.
						 */
						public getBoundsInParent(outBounds: android.graphics.Rect): void;
						/**
						 * Sets the node bounds in parent coordinates.
						 * @param bounds The node bounds.
						 */
						public setBoundsInParent(bounds: android.graphics.Rect): void;
						/**
						 * Gets the node bounds in screen coordinates.
						 * @param outBounds The output node bounds.
						 */
						public getBoundsInScreen(outBounds: android.graphics.Rect): void;
						/**
						 * Sets the node bounds in screen coordinates.
						 * @param bounds The node bounds.
						 */
						public setBoundsInScreen(bounds: android.graphics.Rect): void;
						/**
						 * Gets whether this node is checkable.
						 */
						public isCheckable(): boolean;
						/**
						 * Sets whether this node is checkable.
						 * @param checkable True if the node is checkable.
						 */
						public setCheckable(checkable: boolean): void;
						/**
						 * Gets whether this node is checked.
						 */
						public isChecked(): boolean;
						/**
						 * Sets whether this node is checked.
						 * @param checked True if the node is checked.
						 */
						public setChecked(checked: boolean): void;
						/**
						 * Gets whether this node is focusable.
						 */
						public isFocusable(): boolean;
						/**
						 * Sets whether this node is focusable.
						 * @param focusable True if the node is focusable.
						 */
						public setFocusable(focusable: boolean): void;
						/**
						 * Gets whether this node is focused.
						 */
						public isFocused(): boolean;
						/**
						 * Sets whether this node is focused.
						 * @param focused True if the node is focused.
						 */
						public setFocused(focused: boolean): void;
						/**
						 * Sets whether this node is visible to the user.
						 */
						public isVisibleToUser(): boolean;
						/**
						 * Sets whether this node is visible to the user.
						 * @param visibleToUser Whether the node is visible to the user.
						 */
						public setVisibleToUser(visibleToUser: boolean): void;
						/**
						 * Gets whether this node is accessibility focused.
						 */
						public isAccessibilityFocused(): boolean;
						/**
						 * Sets whether this node is accessibility focused.
						 * @param focused True if the node is accessibility focused.
						 */
						public setAccessibilityFocused(focused: boolean): void;
						/**
						 * Gets whether this node is selected.
						 */
						public isSelected(): boolean;
						/**
						 * Sets whether this node is selected.
						 * @param selected True if the node is selected.
						 */
						public setSelected(selected: boolean): void;
						/**
						 * Gets whether this node is clickable.
						 */
						public isClickable(): boolean;
						/**
						 * Sets whether this node is clickable.
						 * @param clickable True if the node is clickable.
						 */
						public setClickable(clickable: boolean): void;
						/**
						 * Gets whether this node is long clickable.
						 */
						public isLongClickable(): boolean;
						/**
						 * Sets whether this node is long clickable.
						 * @param longClickable True if the node is long clickable.
						 */
						public setLongClickable(longClickable: boolean): void;
						/**
						 * Gets whether this node is enabled.
						 */
						public isEnabled(): boolean;
						/**
						 * Sets whether this node is enabled.
						 * @param enabled True if the node is enabled.
						 */
						public setEnabled(enabled: boolean): void;
						/**
						 * Gets whether this node is a password.
						 */
						public isPassword(): boolean;
						/**
						 * Sets whether this node is a password.
						 * @param password True if the node is a password.
						 */
						public setPassword(password: boolean): void;
						/**
						 * Gets if the node is scrollable.
						 */
						public isScrollable(): boolean;
						/**
						 * Sets if the node is scrollable.
						 * @param scrollable True if the node is scrollable, false otherwise.
						 */
						public setScrollable(scrollable: boolean): void;
						/**
						 * Gets the package this node comes from.
						 */
						public getPackageName(): string;
						/**
						 * Sets the package this node comes from.
						 * @param packageName The package name.
						 */
						public setPackageName(packageName: string): void;
						/**
						 * Gets the class this node comes from.
						 */
						public getClassName(): string;
						/**
						 * Sets the class this node comes from.
						 * @param className The class name.
						 */
						public setClassName(className: string): void;
						/**
						 * Gets the text of this node.
						 */
						public getText(): string;
						/**
						 * Sets the text of this node.
						 * @param text The text.
						 */
						public setText(text: string): void;
						/**
						 * Gets the content description of this node.
						 */
						public getContentDescription(): string;
						/**
						 * Sets the content description of this node.
						 * @param contentDescription The content description.
						 */
						public setContentDescription(contentDescription: string): void;
						/**
						 * Return an instance back to be reused.
						 */
						public recycle(): void;
						public hashCode(): number;
						public equals(obj: any): boolean;
					}
					export module AccessibilityNodeInfoCompat {
						export class AccessibilityNodeInfoImpl implements android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.IAccessibilityNodeInfoImpl {
							constructor(implementation: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.IAccessibilityNodeInfoImpl);
							public obtain(): any;
							public obtain(source: android.view.View): any;
							public obtain(info: any): any;
							public obtain(root: android.view.View, virtualDescendantId: number): any;
							public setSource(info: any, source: android.view.View): void;
							public setSource(info: any, root: android.view.View, virtualDescendantId: number): void;
							public findFocus(info: any, focus: number): any;
							public focusSearch(info: any, direction: number): any;
							public getWindowId(info: any): number;
							public getChildCount(info: any): number;
							public getChild(info: any, index: number): any;
							public addChild(info: any, child: android.view.View): void;
							public addChild(info: any, child: android.view.View, virtualDescendantId: number): void;
							public getActions(info: any): number;
							public addAction(info: any, action: number): void;
							public performAction(info: any, action: number): boolean;
							public performAction(info: any, action: number, args: android.os.Bundle): boolean;
							public setMovementGranularities(info: any, granularities: number): void;
							public getMovementGranularities(info: any): number;
							public findAccessibilityNodeInfosByText(info: any, text: string): java.util.IList<any>;
							public getParent(info: any): any;
							public setParent(info: any, root: android.view.View, virtualDescendantId: number): void;
							public setParent(info: any, parent: android.view.View): void;
							public getBoundsInParent(info: any, outBounds: android.graphics.Rect): void;
							public setBoundsInParent(info: any, bounds: android.graphics.Rect): void;
							public getBoundsInScreen(info: any, outBounds: android.graphics.Rect): void;
							public setBoundsInScreen(info: any, bounds: android.graphics.Rect): void;
							public isCheckable(info: any): boolean;
							public setCheckable(info: any, checkable: boolean): void;
							public isChecked(info: any): boolean;
							public setChecked(info: any, checked: boolean): void;
							public isFocusable(info: any): boolean;
							public setFocusable(info: any, focusable: boolean): void;
							public isFocused(info: any): boolean;
							public setFocused(info: any, focused: boolean): void;
							public isVisibleToUser(info: any): boolean;
							public setVisibleToUser(info: any, visibleToUser: boolean): void;
							public isAccessibilityFocused(info: any): boolean;
							public setAccessibilityFocused(info: any, focused: boolean): void;
							public isSelected(info: any): boolean;
							public setSelected(info: any, selected: boolean): void;
							public isClickable(info: any): boolean;
							public setClickable(info: any, clickable: boolean): void;
							public isLongClickable(info: any): boolean;
							public setLongClickable(info: any, longClickable: boolean): void;
							public isEnabled(info: any): boolean;
							public setEnabled(info: any, enabled: boolean): void;
							public isPassword(info: any): boolean;
							public setPassword(info: any, password: boolean): void;
							public isScrollable(info: any): boolean;
							public setScrollable(info: any, scrollable: boolean): void;
							public getPackageName(info: any): string;
							public setPackageName(info: any, packageName: string): void;
							public getClassName(info: any): string;
							public setClassName(info: any, className: string): void;
							public getText(info: any): string;
							public setText(info: any, text: string): void;
							public getContentDescription(info: any): string;
							public setContentDescription(info: any, contentDescription: string): void;
							public recycle(info: any): void;
						}
						interface IAccessibilityNodeInfoImpl {
							obtain(): any;
							obtain(source: android.view.View): any;
							obtain(info: any): any;
							obtain(root: android.view.View, virtualDescendantId: number): any;
							setSource(info: any, source: android.view.View): void;
							setSource(info: any, root: android.view.View, virtualDescendantId: number): void;
							findFocus(info: any, focus: number): any;
							focusSearch(info: any, direction: number): any;
							getWindowId(info: any): number;
							getChildCount(info: any): number;
							getChild(info: any, index: number): any;
							addChild(info: any, child: android.view.View): void;
							addChild(info: any, child: android.view.View, virtualDescendantId: number): void;
							getActions(info: any): number;
							addAction(info: any, action: number): void;
							performAction(info: any, action: number): boolean;
							performAction(info: any, action: number, args: android.os.Bundle): boolean;
							setMovementGranularities(info: any, granularities: number): void;
							getMovementGranularities(info: any): number;
							findAccessibilityNodeInfosByText(info: any, text: string): java.util.IList<any>;
							getParent(info: any): any;
							setParent(info: any, root: android.view.View, virtualDescendantId: number): void;
							setParent(info: any, parent: android.view.View): void;
							getBoundsInParent(info: any, outBounds: android.graphics.Rect): void;
							setBoundsInParent(info: any, bounds: android.graphics.Rect): void;
							getBoundsInScreen(info: any, outBounds: android.graphics.Rect): void;
							setBoundsInScreen(info: any, bounds: android.graphics.Rect): void;
							isCheckable(info: any): boolean;
							setCheckable(info: any, checkable: boolean): void;
							isChecked(info: any): boolean;
							setChecked(info: any, checked: boolean): void;
							isFocusable(info: any): boolean;
							setFocusable(info: any, focusable: boolean): void;
							isFocused(info: any): boolean;
							setFocused(info: any, focused: boolean): void;
							isVisibleToUser(info: any): boolean;
							setVisibleToUser(info: any, visibleToUser: boolean): void;
							isAccessibilityFocused(info: any): boolean;
							setAccessibilityFocused(info: any, focused: boolean): void;
							isSelected(info: any): boolean;
							setSelected(info: any, selected: boolean): void;
							isClickable(info: any): boolean;
							setClickable(info: any, clickable: boolean): void;
							isLongClickable(info: any): boolean;
							setLongClickable(info: any, longClickable: boolean): void;
							isEnabled(info: any): boolean;
							setEnabled(info: any, enabled: boolean): void;
							isPassword(info: any): boolean;
							setPassword(info: any, password: boolean): void;
							isScrollable(info: any): boolean;
							setScrollable(info: any, scrollable: boolean): void;
							getPackageName(info: any): string;
							setPackageName(info: any, packageName: string): void;
							getClassName(info: any): string;
							setClassName(info: any, className: string): void;
							getText(info: any): string;
							setText(info: any, text: string): void;
							getContentDescription(info: any): string;
							setContentDescription(info: any, contentDescription: string): void;
							recycle(info: any): void;
						}
						export class AccessibilityNodeInfoIcsImpl extends android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityNodeInfoStubImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityNodeInfoIcsImpl>;
							public obtain(): any;
							public obtain(source: android.view.View): any;
							public obtain(info: any): any;
							public addAction(info: any, action: number): void;
							public addChild(info: any, child: android.view.View): void;
							public findAccessibilityNodeInfosByText(info: any, text: string): java.util.IList<any>;
							public getActions(info: any): number;
							public getBoundsInParent(info: any, outBounds: android.graphics.Rect): void;
							public getBoundsInScreen(info: any, outBounds: android.graphics.Rect): void;
							public getChild(info: any, index: number): any;
							public getChildCount(info: any): number;
							public getClassName(info: any): string;
							public getContentDescription(info: any): string;
							public getPackageName(info: any): string;
							public getParent(info: any): any;
							public getText(info: any): string;
							public getWindowId(info: any): number;
							public isCheckable(info: any): boolean;
							public isChecked(info: any): boolean;
							public isClickable(info: any): boolean;
							public isEnabled(info: any): boolean;
							public isFocusable(info: any): boolean;
							public isFocused(info: any): boolean;
							public isLongClickable(info: any): boolean;
							public isPassword(info: any): boolean;
							public isScrollable(info: any): boolean;
							public isSelected(info: any): boolean;
							public performAction(info: any, action: number): boolean;
							public setBoundsInParent(info: any, bounds: android.graphics.Rect): void;
							public setBoundsInScreen(info: any, bounds: android.graphics.Rect): void;
							public setCheckable(info: any, checkable: boolean): void;
							public setChecked(info: any, checked: boolean): void;
							public setClassName(info: any, className: string): void;
							public setClickable(info: any, clickable: boolean): void;
							public setContentDescription(info: any, contentDescription: string): void;
							public setEnabled(info: any, enabled: boolean): void;
							public setFocusable(info: any, focusable: boolean): void;
							public setFocused(info: any, focused: boolean): void;
							public setLongClickable(info: any, longClickable: boolean): void;
							public setPackageName(info: any, packageName: string): void;
							public setParent(info: any, parent: android.view.View): void;
							public setPassword(info: any, password: boolean): void;
							public setScrollable(info: any, scrollable: boolean): void;
							public setSelected(info: any, selected: boolean): void;
							public setSource(info: any, source: android.view.View): void;
							public setText(info: any, text: string): void;
							public recycle(info: any): void;
							obtain(root: android.view.View, virtualDescendantId: number): any;
							addChild(info: any, child: android.view.View, virtualDescendantId: number): void;
							performAction(info: any, action: number, args: android.os.Bundle): boolean;
							setSource(info: any, root: android.view.View, virtualDescendantId: number): void;
							setParent(info: any, root: android.view.View, virtualDescendantId: number): void;
						}
						export class AccessibilityNodeInfoJellybeanImpl extends android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityNodeInfoIcsImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityNodeInfoJellybeanImpl>;
							public obtain(root: android.view.View, virtualDescendantId: number): any;
							public findFocus(info: any, focus: number): any;
							public focusSearch(info: any, direction: number): any;
							public addChild(info: any, child: android.view.View, virtualDescendantId: number): void;
							public setSource(info: any, root: android.view.View, virtualDescendantId: number): void;
							public isVisibleToUser(info: any): boolean;
							public setVisibleToUser(info: any, visibleToUser: boolean): void;
							public isAccessibilityFocused(info: any): boolean;
							public setAccessibilityFocused(info: any, focused: boolean): void;
							public performAction(info: any, action: number, args: android.os.Bundle): boolean;
							public setMovementGranularities(info: any, granularities: number): void;
							public getMovementGranularities(info: any): number;
							public setParent(info: any, root: android.view.View, virtualDescendantId: number): void;
							obtain(): any;
							obtain(source: android.view.View): any;
							obtain(info: any): any;
							addChild(info: any, child: android.view.View): void;
							performAction(info: any, action: number): boolean;
							setParent(info: any, parent: android.view.View): void;
							setSource(info: any, source: android.view.View): void;
						}
						export class AccessibilityNodeInfoStubImpl extends java.lang.Object implements android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.IAccessibilityNodeInfoImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityNodeInfoStubImpl>;
							public obtain(): any;
							public obtain(source: android.view.View): any;
							public obtain(root: android.view.View, virtualDescendantId: number): any;
							public obtain(info: any): any;
							public addAction(info: any, action: number): void;
							public addChild(info: any, child: android.view.View): void;
							public addChild(info: any, child: android.view.View, virtualDescendantId: number): void;
							public findAccessibilityNodeInfosByText(info: any, text: string): java.util.IList<any>;
							public getActions(info: any): number;
							public getBoundsInParent(info: any, outBounds: android.graphics.Rect): void;
							public getBoundsInScreen(info: any, outBounds: android.graphics.Rect): void;
							public getChild(info: any, index: number): any;
							public getChildCount(info: any): number;
							public getClassName(info: any): string;
							public getContentDescription(info: any): string;
							public getPackageName(info: any): string;
							public getParent(info: any): any;
							public getText(info: any): string;
							public getWindowId(info: any): number;
							public isCheckable(info: any): boolean;
							public isChecked(info: any): boolean;
							public isClickable(info: any): boolean;
							public isEnabled(info: any): boolean;
							public isFocusable(info: any): boolean;
							public isFocused(info: any): boolean;
							public isVisibleToUser(info: any): boolean;
							public isAccessibilityFocused(info: any): boolean;
							public isLongClickable(info: any): boolean;
							public isPassword(info: any): boolean;
							public isScrollable(info: any): boolean;
							public isSelected(info: any): boolean;
							public performAction(info: any, action: number): boolean;
							public performAction(info: any, action: number, args: android.os.Bundle): boolean;
							public setMovementGranularities(info: any, granularities: number): void;
							public getMovementGranularities(info: any): number;
							public setBoundsInParent(info: any, bounds: android.graphics.Rect): void;
							public setBoundsInScreen(info: any, bounds: android.graphics.Rect): void;
							public setCheckable(info: any, checkable: boolean): void;
							public setChecked(info: any, checked: boolean): void;
							public setClassName(info: any, className: string): void;
							public setClickable(info: any, clickable: boolean): void;
							public setContentDescription(info: any, contentDescription: string): void;
							public setEnabled(info: any, enabled: boolean): void;
							public setFocusable(info: any, focusable: boolean): void;
							public setFocused(info: any, focused: boolean): void;
							public setVisibleToUser(info: any, visibleToUser: boolean): void;
							public setAccessibilityFocused(info: any, focused: boolean): void;
							public setLongClickable(info: any, longClickable: boolean): void;
							public setPackageName(info: any, packageName: string): void;
							public setParent(info: any, parent: android.view.View): void;
							public setPassword(info: any, password: boolean): void;
							public setScrollable(info: any, scrollable: boolean): void;
							public setSelected(info: any, selected: boolean): void;
							public setSource(info: any, source: android.view.View): void;
							public setSource(info: any, root: android.view.View, virtualDescendantId: number): void;
							public findFocus(info: any, focus: number): any;
							public focusSearch(info: any, direction: number): any;
							public setText(info: any, text: string): void;
							public recycle(info: any): void;
							public setParent(info: any, root: android.view.View, virtualDescendantId: number): void;
						}
					}
					/**
					 * Helper for accessing android.view.accessibility.AccessibilityNodeProvider introduced after API level 4 in a backwards compatible fashion.
					 */
					export class AccessibilityNodeProviderCompat extends java.lang.Object {
						/**
						 * Creates a new instance.
						 */
						constructor();
						/**
						 * Creates a new instance wrapping an android.view.accessibility.AccessibilityNodeProvider.
						 * @param provider The provider.
						 */
						constructor(provider: any);
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeProviderCompat>;
						public getProvider(): any;
						/**
						 * Returns an AccessibilityNodeInfoCompat representing a virtual view, i.e. a descendant of the host View, with the given <code>virtualViewId</code> or the host View itself if <code>virtualViewId</code> equals to View#NO_ID.
						 * @param virtualViewId A client defined virtual view id.
						 */
						public createAccessibilityNodeInfo(virtualViewId: number): android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
						/**
						 * Performs an accessibility action on a virtual view, i.e. a descendant of the host View, with the given <code>virtualViewId</code> or the host View itself if <code>virtualViewId</code> equals to View#NO_ID.
						 * @param virtualViewId A client defined virtual view id.
						 * @param action The action to perform.
						 * @param arguments Optional arguments.
						 */
						public performAction(virtualViewId: number, action: number, args: android.os.Bundle): boolean;
						/**
						 * Finds AccessibilityNodeInfoCompats by text. The match is case insensitive containment. The search is relative to the virtual view, i.e. a descendant of the host View, with the given <code>virtualViewId</code> or the host View itself <code>virtualViewId</code> equals to View#NO_ID.
						 * @param text virtualViewId A client defined virtual view id which defined
						 * @param virtualViewId text The searched text.
						 */
						public findAccessibilityNodeInfosByText(text: string, virtualViewId: number): java.util.IList<android.support.v4.view.accessibility.AccessibilityNodeInfoCompat>;
					}
					export module AccessibilityNodeProviderCompat {
						export class AccessibilityNodeProviderImpl implements android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.IAccessibilityNodeProviderImpl {
							constructor(implementation: android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.IAccessibilityNodeProviderImpl);
							public newAccessibilityNodeProviderBridge(compat: android.support.v4.view.accessibility.AccessibilityNodeProviderCompat): any;
						}
						export class AccessibilityNodeProviderStubImpl extends java.lang.Object implements android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.IAccessibilityNodeProviderImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.AccessibilityNodeProviderStubImpl>;
							public newAccessibilityNodeProviderBridge(compat: android.support.v4.view.accessibility.AccessibilityNodeProviderCompat): any;
						}
						interface IAccessibilityNodeProviderImpl {
							newAccessibilityNodeProviderBridge(compat: android.support.v4.view.accessibility.AccessibilityNodeProviderCompat): any;
						}
						export class AccessibilityNodeProviderJellyBeanImpl extends android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.AccessibilityNodeProviderStubImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.AccessibilityNodeProviderJellyBeanImpl>;
							public newAccessibilityNodeProviderBridge(compat: android.support.v4.view.accessibility.AccessibilityNodeProviderCompat): any;
						}
					}
					/**
					 * JellyBean specific AccessibilityNodeInfo API implementation.
					 */
					export class AccessibilityNodeInfoCompatJellyBean extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeInfoCompatJellyBean>;
						public static addChild(info: any, child: android.view.View, virtualDescendantId: number): void;
						public static setSource(info: any, root: android.view.View, virtualDescendantId: number): void;
						public static isVisibleToUser(info: any): boolean;
						public static setVisibleToUser(info: any, visibleToUser: boolean): void;
						public static performAction(info: any, action: number, args: android.os.Bundle): boolean;
						public static setMovementGranularities(info: any, granularities: number): void;
						public static getMovementGranularities(info: any): number;
						public static obtain(root: android.view.View, virtualDescendantId: number): any;
						public static findFocus(info: any, focus: number): any;
						public static focusSearch(info: any, direction: number): any;
						public static setParent(info: any, root: android.view.View, virtualDescendantId: number): void;
						public static isAccessibilityFocused(info: any): boolean;
						public static setAccesibilityFocused(info: any, focused: boolean): void;
					}
					/**
					 * ICS specific AccessibilityManager API implementation.
					 */
					export class AccessibilityManagerCompatIcs extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityManagerCompatIcs>;
						public static newAccessibilityStateChangeListener(bridge: android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.IAccessibilityStateChangeListenerBridge): any;
						public static addAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: any): boolean;
						public static removeAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: any): boolean;
						public static getEnabledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager, feedbackTypeFlags: number): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
						public static getInstalledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
						public static isTouchExplorationEnabled(manager: android.view.accessibility.AccessibilityManager): boolean;
					}
					export module AccessibilityManagerCompatIcs {
						interface IAccessibilityStateChangeListenerBridge {
							onAccessibilityStateChanged(enabled: boolean): void;
						}
						export class AccessibilityStateChangeListenerBridge implements android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.IAccessibilityStateChangeListenerBridge {
							constructor(implementation: android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.IAccessibilityStateChangeListenerBridge);
							public onAccessibilityStateChanged(enabled: boolean): void;
						}
					}
					/**
					 * ICS specific AccessibilityNodeInfo API implementation.
					 */
					export class AccessibilityNodeInfoCompatIcs extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityNodeInfoCompatIcs>;
						public static obtain(): any;
						public static obtain(source: android.view.View): any;
						public static obtain(info: any): any;
						public static addAction(info: any, action: number): void;
						public static addChild(info: any, child: android.view.View): void;
						public static findAccessibilityNodeInfosByText(info: any, text: string): java.util.IList<any>;
						public static getActions(info: any): number;
						public static getBoundsInParent(info: any, outBounds: android.graphics.Rect): void;
						public static getBoundsInScreen(info: any, outBounds: android.graphics.Rect): void;
						public static getChild(info: any, index: number): any;
						public static getChildCount(info: any): number;
						public static getClassName(info: any): string;
						public static getContentDescription(info: any): string;
						public static getPackageName(info: any): string;
						public static getParent(info: any): any;
						public static getText(info: any): string;
						public static getWindowId(info: any): number;
						public static isCheckable(info: any): boolean;
						public static isChecked(info: any): boolean;
						public static isClickable(info: any): boolean;
						public static isEnabled(info: any): boolean;
						public static isFocusable(info: any): boolean;
						public static isFocused(info: any): boolean;
						public static isLongClickable(info: any): boolean;
						public static isPassword(info: any): boolean;
						public static isScrollable(info: any): boolean;
						public static isSelected(info: any): boolean;
						public static performAction(info: any, action: number): boolean;
						public static setBoundsInParent(info: any, bounds: android.graphics.Rect): void;
						public static setBoundsInScreen(info: any, bounds: android.graphics.Rect): void;
						public static setCheckable(info: any, checkable: boolean): void;
						public static setChecked(info: any, checked: boolean): void;
						public static setClassName(info: any, className: string): void;
						public static setClickable(info: any, clickable: boolean): void;
						public static setContentDescription(info: any, contentDescription: string): void;
						public static setEnabled(info: any, enabled: boolean): void;
						public static setFocusable(info: any, focusable: boolean): void;
						public static setFocused(info: any, focused: boolean): void;
						public static setLongClickable(info: any, longClickable: boolean): void;
						public static setPackageName(info: any, packageName: string): void;
						public static setParent(info: any, parent: android.view.View): void;
						public static setPassword(info: any, password: boolean): void;
						public static setScrollable(info: any, scrollable: boolean): void;
						public static setSelected(info: any, selected: boolean): void;
						public static setSource(info: any, source: android.view.View): void;
						public static setText(info: any, text: string): void;
						public static recycle(info: any): void;
					}
					/**
					 * ICS specific AccessibilityRecord API implementation.
					 */
					export class AccessibilityRecordCompatIcs extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompatIcs>;
						public static obtain(): any;
						public static obtain(record: any): any;
						public static getAddedCount(record: any): number;
						public static getBeforeText(record: any): string;
						public static getClassName(record: any): string;
						public static getContentDescription(record: any): string;
						public static getCurrentItemIndex(record: any): number;
						public static getFromIndex(record: any): number;
						public static getItemCount(record: any): number;
						public static getParcelableData(record: any): android.os.IParcelable;
						public static getRemovedCount(record: any): number;
						public static getScrollX(record: any): number;
						public static getScrollY(record: any): number;
						public static getSource(record: any): any;
						public static getText(record: any): java.util.IList<string>;
						public static getToIndex(record: any): number;
						public static getWindowId(record: any): number;
						public static isChecked(record: any): boolean;
						public static isEnabled(record: any): boolean;
						public static isFullScreen(record: any): boolean;
						public static isPassword(record: any): boolean;
						public static isScrollable(record: any): boolean;
						public static recycle(record: any): void;
						public static setAddedCount(record: any, addedCount: number): void;
						public static setBeforeText(record: any, beforeText: string): void;
						public static setChecked(record: any, isChecked: boolean): void;
						public static setClassName(record: any, className: string): void;
						public static setContentDescription(record: any, contentDescription: string): void;
						public static setCurrentItemIndex(record: any, currentItemIndex: number): void;
						public static setEnabled(record: any, isEnabled: boolean): void;
						public static setFromIndex(record: any, fromIndex: number): void;
						public static setFullScreen(record: any, isFullScreen: boolean): void;
						public static setItemCount(record: any, itemCount: number): void;
						public static setParcelableData(record: any, parcelableData: android.os.IParcelable): void;
						public static setPassword(record: any, isPassword: boolean): void;
						public static setRemovedCount(record: any, removedCount: number): void;
						public static setScrollX(record: any, scrollX: number): void;
						public static setScrollY(record: any, scrollY: number): void;
						public static setScrollable(record: any, scrollable: boolean): void;
						public static setSource(record: any, source: android.view.View): void;
						public static setToIndex(record: any, toIndex: number): void;
					}
					/**
					 * Helper for accessing features in AccessibilityManager introduced after API level 4 in a backwards compatible fashion.
					 */
					export class AccessibilityManagerCompat extends java.lang.Object {
						constructor();
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityManagerCompat>;
						/**
						 * Registers an AccessibilityManager.AccessibilityStateChangeListener for changes in the global accessibility state of the system.
						 * @param manager The accessibility manager.
						 * @param listener The listener.
						 */
						public static addAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
						/**
						 * Unregisters an AccessibilityManager.AccessibilityStateChangeListener.
						 * @param manager The accessibility manager.
						 * @param listener The listener.
						 */
						public static removeAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
						/**
						 * Returns the AccessibilityServiceInfos of the installed accessibility services.
						 * @param manager The accessibility manager.
						 */
						public static getInstalledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
						/**
						 * Returns the AccessibilityServiceInfos of the enabled accessibility services for a given feedback type.
						 * @param manager The accessibility manager.
						 * @param feedbackTypeFlags The feedback type flags.
						 */
						public static getEnabledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager, feedbackTypeFlags: number): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
						/**
						 * Returns if the touch exploration in the system is enabled.
						 * @param manager The accessibility manager.
						 */
						public static isTouchExplorationEnabled(manager: android.view.accessibility.AccessibilityManager): boolean;
					}
					export module AccessibilityManagerCompat {
						/**
						 * Listener for the accessibility state.
						 */
						export class AccessibilityStateChangeListenerCompat extends java.lang.Object {
							constructor();
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat>;
							/**
							 * Called back on change in the accessibility state.
							 * @param enabled Whether accessibility is enabled.
							 */
							public onAccessibilityStateChanged(enabled: boolean): void;
						}
						export class AccessibilityManagerVersionImpl implements android.support.v4.view.accessibility.AccessibilityManagerCompat.IAccessibilityManagerVersionImpl {
							constructor(implementation: android.support.v4.view.accessibility.AccessibilityManagerCompat.IAccessibilityManagerVersionImpl);
							public newAccessiblityStateChangeListener(listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): any;
							public addAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							public removeAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							public getEnabledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager, feedbackTypeFlags: number): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							public getInstalledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							public isTouchExplorationEnabled(manager: android.view.accessibility.AccessibilityManager): boolean;
						}
						export class AccessibilityManagerStubImpl extends java.lang.Object implements android.support.v4.view.accessibility.AccessibilityManagerCompat.IAccessibilityManagerVersionImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityManagerStubImpl>;
							public newAccessiblityStateChangeListener(listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): any;
							public addAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							public removeAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							public getEnabledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager, feedbackTypeFlags: number): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							public getInstalledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							public isTouchExplorationEnabled(manager: android.view.accessibility.AccessibilityManager): boolean;
						}
						export class AccessibilityManagerIcsImpl extends android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityManagerStubImpl {
							static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityManagerIcsImpl>;
							public newAccessiblityStateChangeListener(listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): any;
							public addAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							public removeAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							public getEnabledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager, feedbackTypeFlags: number): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							public getInstalledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							public isTouchExplorationEnabled(manager: android.view.accessibility.AccessibilityManager): boolean;
						}
						interface IAccessibilityManagerVersionImpl {
							newAccessiblityStateChangeListener(listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): any;
							addAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							removeAccessibilityStateChangeListener(manager: android.view.accessibility.AccessibilityManager, listener: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat): boolean;
							getEnabledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager, feedbackTypeFlags: number): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							getInstalledAccessibilityServiceList(manager: android.view.accessibility.AccessibilityManager): java.util.IList<android.accessibilityservice.AccessibilityServiceInfo>;
							isTouchExplorationEnabled(manager: android.view.accessibility.AccessibilityManager): boolean;
						}
					}
					/**
					 * ICS MR1 specific AccessibilityRecord API implementation.
					 */
					export class AccessibilityRecordCompatIcsMr1 extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.accessibility.AccessibilityRecordCompatIcsMr1>;
						public static getMaxScrollX(record: any): number;
						public static getMaxScrollY(record: any): number;
						public static setMaxScrollX(record: any, maxScrollX: number): void;
						public static setMaxScrollY(record: any, maxScrollY: number): void;
					}
				}
				/**
				 * Implementation of menu compatibility that can call Honeycomb APIs.
				 */
				export class ViewConfigurationCompatFroyo extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.ViewConfigurationCompatFroyo>;
					public static getScaledPagingTouchSlop(config: android.view.ViewConfiguration): number;
				}
				/**
				 * Base class providing the adapter to populate pages inside of a ViewPager. You will most likely want to use a more specific implementation of this, such as android.support.v4.app.FragmentPagerAdapter or android.support.v4.app.FragmentStatePagerAdapter.
				 */
				export class PagerAdapter extends java.lang.Object {
					constructor();
					static POSITION_UNCHANGED: number;
					static POSITION_NONE: number;
					static class: java.lang.Class<android.support.v4.view.PagerAdapter>;
					/**
					 * Return the number of views available.
					 */
					public getCount(): number;
					/**
					 * Called when a change in the shown pages is going to start being made.
					 * @param container The containing View which is displaying this adapter's
					 */
					public startUpdate(container: android.view.ViewGroup): void;
					/**
					 * Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns from #finishUpdate(ViewGroup).
					 * @param container The containing View in which the page will be shown.
					 * @param position The page position to be instantiated.
					 */
					public instantiateItem(container: android.view.ViewGroup, position: number): any;
					/**
					 * Remove a page for the given position. The adapter is responsible for removing the view from its container, although it only must ensure this is done by the time it returns from #finishUpdate(ViewGroup).
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position to be removed.
					 * @param object The same object that was returned by
					 */
					public destroyItem(container: android.view.ViewGroup, position: number, object: any): void;
					/**
					 * Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position that is now the primary.
					 * @param object The same object that was returned by
					 */
					public setPrimaryItem(container: android.view.ViewGroup, position: number, object: any): void;
					/**
					 * Called when the a change in the shown pages has been completed. At this point you must ensure that all of the pages have actually been added or removed from the container as appropriate.
					 * @param container The containing View which is displaying this adapter's
					 */
					public finishUpdate(container: android.view.ViewGroup): void;
					/**
					 * Called when a change in the shown pages is going to start being made.
					 * @param container The containing View which is displaying this adapter's
					 */
					public startUpdate(container: android.view.View): void;
					/**
					 * Create the page for the given position. The adapter is responsible for adding the view to the container given here, although it only must ensure this is done by the time it returns from #finishUpdate(ViewGroup).
					 * @param container The containing View in which the page will be shown.
					 * @param position The page position to be instantiated.
					 */
					public instantiateItem(container: android.view.View, position: number): any;
					/**
					 * Remove a page for the given position. The adapter is responsible for removing the view from its container, although it only must ensure this is done by the time it returns from #finishUpdate(View).
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position to be removed.
					 * @param object The same object that was returned by
					 */
					public destroyItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.
					 * @param container The containing View from which the page will be removed.
					 * @param position The page position that is now the primary.
					 * @param object The same object that was returned by
					 */
					public setPrimaryItem(container: android.view.View, position: number, object: any): void;
					/**
					 * Called when the a change in the shown pages has been completed. At this point you must ensure that all of the pages have actually been added or removed from the container as appropriate.
					 * @param container The containing View which is displaying this adapter's
					 */
					public finishUpdate(container: android.view.View): void;
					/**
					 * Determines whether a page View is associated with a specific key object as returned by #instantiateItem(ViewGroup, int). This method is required for a PagerAdapter to function properly.
					 * @param view Page View to check for association with <code>object</code>
					 * @param object Object to check for association with <code>view</code>
					 */
					public isViewFromObject(view: android.view.View, object: any): boolean;
					/**
					 * Save any instance state associated with this adapter and its pages that should be restored if the current UI state needs to be reconstructed.
					 */
					public saveState(): android.os.IParcelable;
					/**
					 * Restore any instance state associated with this adapter and its pages that was previously saved by #saveState().
					 * @param state State previously saved by a call to {@link #saveState()}
					 * @param loader A ClassLoader that should be used to instantiate any restored objects
					 */
					public restoreState(state: android.os.IParcelable, loader: java.lang.ClassLoader): void;
					/**
					 * Called when the host view is attempting to determine if an item's position has changed. Returns #POSITION_UNCHANGED if the position of the given item has not changed or #POSITION_NONE if the item is no longer present in the adapter.
					 * @param object Object representing an item, previously returned by a call to
					 */
					public getItemPosition(object: any): number;
					/**
					 * This method should be called by the application if the data backing this adapter has changed and associated views should update.
					 */
					public notifyDataSetChanged(): void;
					registerDataSetObserver(observer: android.database.DataSetObserver): void;
					unregisterDataSetObserver(observer: android.database.DataSetObserver): void;
					/**
					 * This method may be called by the ViewPager to obtain a title string to describe the specified page. This method may return null indicating no title for this page. The default implementation returns null.
					 * @param position The position of the title requested
					 */
					public getPageTitle(position: number): string;
					/**
					 * Returns the proportional width of a given page as a percentage of the ViewPager's measured width from (0.f-1.f]
					 * @param position The position of the page requested
					 */
					public getPageWidth(position: number): number;
				}
				/**
				 * Helper for accessing newer features in View introduced in ICS.
				 */
				export class ViewCompatICS extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.ViewCompatICS>;
					public static canScrollHorizontally(v: android.view.View, direction: number): boolean;
					public static canScrollVertically(v: android.view.View, direction: number): boolean;
					public static setAccessibilityDelegate(v: android.view.View, delegate: any): void;
					public static onPopulateAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					public static onInitializeAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					public static onInitializeAccessibilityNodeInfo(v: android.view.View, info: any): void;
				}
				/**
				 * Helper for accessing features in MotionEvent introduced after API level 4 in a backwards compatible fashion.
				 */
				export class MotionEventCompat extends java.lang.Object {
					constructor();
					/**
					 * Synonym for MotionEvent#ACTION_MASK.
					 */
					static ACTION_MASK: number;
					/**
					 * Synonym for MotionEvent#ACTION_POINTER_DOWN.
					 */
					static ACTION_POINTER_DOWN: number;
					/**
					 * Synonym for MotionEvent#ACTION_POINTER_UP.
					 */
					static ACTION_POINTER_UP: number;
					/**
					 * Synonym for MotionEvent#ACTION_HOVER_MOVE.
					 */
					static ACTION_HOVER_MOVE: number;
					/**
					 * Synonym for MotionEvent#ACTION_SCROLL.
					 */
					static ACTION_SCROLL: number;
					/**
					 * Synonym for MotionEvent#ACTION_POINTER_INDEX_MASK.
					 */
					static ACTION_POINTER_INDEX_MASK: number;
					/**
					 * Synonym for MotionEvent#ACTION_POINTER_INDEX_SHIFT.
					 */
					static ACTION_POINTER_INDEX_SHIFT: number;
					/**
					 * Constant for #getActionMasked: The pointer is not down but has entered the boundaries of a window or view.
					 */
					static ACTION_HOVER_ENTER: number;
					/**
					 * Constant for #getActionMasked: The pointer is not down but has exited the boundaries of a window or view.
					 */
					static ACTION_HOVER_EXIT: number;
					static class: java.lang.Class<android.support.v4.view.MotionEventCompat>;
					/**
					 * Call MotionEvent#getAction, returning only the #ACTION_MASK portion.
					 */
					public static getActionMasked(event: android.view.MotionEvent): number;
					/**
					 * Call MotionEvent#getAction, returning only the pointer index portion
					 */
					public static getActionIndex(event: android.view.MotionEvent): number;
					/**
					 * Call MotionEvent#findPointerIndex(int). If running on a pre-android.os.Build.VERSION_CODES#ECLAIR device, does nothing and returns -1.
					 */
					public static findPointerIndex(event: android.view.MotionEvent, pointerId: number): number;
					/**
					 * Call MotionEvent#getPointerId(int). If running on a pre-android.os.Build.VERSION_CODES#ECLAIR device, IndexOutOfBoundsException is thrown.
					 */
					public static getPointerId(event: android.view.MotionEvent, pointerIndex: number): number;
					/**
					 * Call MotionEvent#getX(int). If running on a pre-android.os.Build.VERSION_CODES#ECLAIR device, IndexOutOfBoundsException is thrown.
					 */
					public static getX(event: android.view.MotionEvent, pointerIndex: number): number;
					/**
					 * Call MotionEvent#getY(int). If running on a pre-android.os.Build.VERSION_CODES#ECLAIR device, IndexOutOfBoundsException is thrown.
					 */
					public static getY(event: android.view.MotionEvent, pointerIndex: number): number;
					/**
					 * The number of pointers of data contained in this event. Always >= 1.
					 */
					public static getPointerCount(event: android.view.MotionEvent): number;
				}
				export module MotionEventCompat {
					/**
					 * Interface for the full API.
					 */
					interface IMotionEventVersionImpl {
						findPointerIndex(event: android.view.MotionEvent, pointerId: number): number;
						getPointerId(event: android.view.MotionEvent, pointerIndex: number): number;
						getX(event: android.view.MotionEvent, pointerIndex: number): number;
						getY(event: android.view.MotionEvent, pointerIndex: number): number;
						getPointerCount(event: android.view.MotionEvent): number;
					}
					/**
					 * Interface implementation that doesn't use anything about v4 APIs.
					 */
					export class BaseMotionEventVersionImpl extends java.lang.Object implements android.support.v4.view.MotionEventCompat.IMotionEventVersionImpl {
						static class: java.lang.Class<android.support.v4.view.MotionEventCompat.BaseMotionEventVersionImpl>;
						public findPointerIndex(event: android.view.MotionEvent, pointerId: number): number;
						public getPointerId(event: android.view.MotionEvent, pointerIndex: number): number;
						public getX(event: android.view.MotionEvent, pointerIndex: number): number;
						public getY(event: android.view.MotionEvent, pointerIndex: number): number;
						public getPointerCount(event: android.view.MotionEvent): number;
					}
					/**
					 * Interface for the full API.
					 */
					export class MotionEventVersionImpl implements android.support.v4.view.MotionEventCompat.IMotionEventVersionImpl {
						constructor(implementation: android.support.v4.view.MotionEventCompat.IMotionEventVersionImpl);
						public findPointerIndex(event: android.view.MotionEvent, pointerId: number): number;
						public getPointerId(event: android.view.MotionEvent, pointerIndex: number): number;
						public getX(event: android.view.MotionEvent, pointerIndex: number): number;
						public getY(event: android.view.MotionEvent, pointerIndex: number): number;
						public getPointerCount(event: android.view.MotionEvent): number;
					}
					/**
					 * Interface implementation for devices with at least v11 APIs.
					 */
					export class EclairMotionEventVersionImpl extends java.lang.Object implements android.support.v4.view.MotionEventCompat.IMotionEventVersionImpl {
						static class: java.lang.Class<android.support.v4.view.MotionEventCompat.EclairMotionEventVersionImpl>;
						public findPointerIndex(event: android.view.MotionEvent, pointerId: number): number;
						public getPointerId(event: android.view.MotionEvent, pointerIndex: number): number;
						public getX(event: android.view.MotionEvent, pointerIndex: number): number;
						public getY(event: android.view.MotionEvent, pointerIndex: number): number;
						public getPointerCount(event: android.view.MotionEvent): number;
					}
				}
				/**
				 * Implementation of velocity tracker compatibility that can call Honeycomb APIs.
				 */
				export class VelocityTrackerCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.VelocityTrackerCompatHoneycomb>;
					public static getXVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
					public static getYVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
				}
				/**
				 * Helper for accessing features in android.view.Menu introduced after API level 4 in a backwards compatible fashion.
				 */
				export class MenuCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.view.MenuCompat>;
					/**
					 * Call MenuItem#setShowAsAction(int) MenuItem.setShowAsAction(). If running on a pre-android.os.Build.VERSION_CODES#HONEYCOMB device, does nothing and returns false. Otherwise returns true.
					 */
					public static setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
				}
				export module MenuCompat {
					/**
					 * Interface implementation that doesn't use anything about v4 APIs.
					 */
					export class BaseMenuVersionImpl extends java.lang.Object implements android.support.v4.view.MenuCompat.IMenuVersionImpl {
						static class: java.lang.Class<android.support.v4.view.MenuCompat.BaseMenuVersionImpl>;
						public setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
					}
					/**
					 * Interface for the full API.
					 */
					interface IMenuVersionImpl {
						setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
					}
					/**
					 * Interface for the full API.
					 */
					export class MenuVersionImpl implements android.support.v4.view.MenuCompat.IMenuVersionImpl {
						constructor(implementation: android.support.v4.view.MenuCompat.IMenuVersionImpl);
						public setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
					}
					/**
					 * Interface implementation for devices with at least v11 APIs.
					 */
					export class HoneycombMenuVersionImpl extends java.lang.Object implements android.support.v4.view.MenuCompat.IMenuVersionImpl {
						static class: java.lang.Class<android.support.v4.view.MenuCompat.HoneycombMenuVersionImpl>;
						public setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
					}
				}
				/**
				 * Helper for accessing features in ViewGroup introduced after API level 4 in a backwards compatible fashion.
				 */
				export class ViewGroupCompat extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.ViewGroupCompat>;
					/**
					 * Called when a child has requested sending an AccessibilityEvent and gives an opportunity to its parent to augment the event.
					 * @param group The group whose method to invoke.
					 * @param child The child which requests sending the event.
					 * @param event The event to be sent.
					 */
					public static onRequestSendAccessibilityEvent(group: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
				}
				export module ViewGroupCompat {
					export class ViewGroupCompatImpl implements android.support.v4.view.ViewGroupCompat.IViewGroupCompatImpl {
						constructor(implementation: android.support.v4.view.ViewGroupCompat.IViewGroupCompatImpl);
						public onRequestSendAccessibilityEvent(group: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					}
					interface IViewGroupCompatImpl {
						onRequestSendAccessibilityEvent(group: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					}
					export class ViewGroupCompatIcsImpl extends android.support.v4.view.ViewGroupCompat.ViewGroupCompatStubImpl {
						static class: java.lang.Class<android.support.v4.view.ViewGroupCompat.ViewGroupCompatIcsImpl>;
						public onRequestSendAccessibilityEvent(group: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					}
					export class ViewGroupCompatStubImpl extends java.lang.Object implements android.support.v4.view.ViewGroupCompat.IViewGroupCompatImpl {
						static class: java.lang.Class<android.support.v4.view.ViewGroupCompat.ViewGroupCompatStubImpl>;
						public onRequestSendAccessibilityEvent(group: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					}
				}
				/**
				 * Implementation of key event compatibility that can call Honeycomb APIs.
				 */
				export class KeyEventCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.KeyEventCompatHoneycomb>;
					public static normalizeMetaState(metaState: number): number;
					public static metaStateHasModifiers(metaState: number, modifiers: number): boolean;
					public static metaStateHasNoModifiers(metaState: number): boolean;
				}
				export class ViewCompatGingerbread extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.ViewCompatGingerbread>;
					public static getOverScrollMode(v: android.view.View): number;
					public static setOverScrollMode(v: android.view.View, mode: number): void;
				}
				/**
				 * PagerTitleStrip is a non-interactive indicator of the current, next, and previous pages of a ViewPager. It is intended to be used as a child view of a ViewPager widget in your XML layout. Add it as a child of a ViewPager in your layout file and set its android:layout_gravity to TOP or BOTTOM to pin it to the top or bottom of the ViewPager. The title from each page is supplied by the method PagerAdapter#getPageTitle(int) in the adapter supplied to the ViewPager.
				 */
				export class PagerTitleStrip extends android.view.ViewGroup implements android.support.v4.view.ViewPager.IDecor {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					static class: java.lang.Class<android.support.v4.view.PagerTitleStrip>;
					/**
					 * Set the required spacing between title segments.
					 * @param spacingPixels Spacing between each title displayed in pixels
					 */
					public setTextSpacing(spacingPixels: number): void;
					public getTextSpacing(): number;
					/**
					 * Set the alpha value used for non-primary page titles.
					 * @param alpha Opacity value in the range 0-1f
					 */
					public setNonPrimaryAlpha(alpha: number): void;
					/**
					 * Set the color value used as the base color for all displayed page titles. Alpha will be ignored for non-primary page titles. See #setNonPrimaryAlpha(float).
					 * @param color Color hex code in 0xAARRGGBB format
					 */
					public setTextColor(color: number): void;
					/**
					 * Set the default text size to a given unit and value. See TypedValue for the possible dimension units.
					 * @param unit The desired dimension unit
					 * @param size The desired size in the given units
					 */
					public setTextSize(unit: number, size: number): void;
					/**
					 * Set the Gravity used to position text within the title strip. Only the vertical gravity component is used.
					 * @param gravity {@link Gravity} constant for positioning title text
					 */
					public setGravity(gravity: number): void;
					protected onAttachedToWindow(): void;
					protected onDetachedFromWindow(): void;
					updateText(currentItem: number, adapter: android.support.v4.view.PagerAdapter): void;
					public requestLayout(): void;
					updateAdapter(oldAdapter: android.support.v4.view.PagerAdapter, newAdapter: android.support.v4.view.PagerAdapter): void;
					updateTextPositions(position: number, positionOffset: number, force: boolean): void;
					protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
					getMinHeight(): number;
				}
				export module PagerTitleStrip {
					export class PagerTitleStripImplIcs extends java.lang.Object implements android.support.v4.view.PagerTitleStrip.IPagerTitleStripImpl {
						static class: java.lang.Class<android.support.v4.view.PagerTitleStrip.PagerTitleStripImplIcs>;
						public setSingleLineAllCaps(text: android.widget.TextView): void;
					}
					export class PagerTitleStripImplBase extends java.lang.Object implements android.support.v4.view.PagerTitleStrip.IPagerTitleStripImpl {
						static class: java.lang.Class<android.support.v4.view.PagerTitleStrip.PagerTitleStripImplBase>;
						public setSingleLineAllCaps(text: android.widget.TextView): void;
					}
					interface IPagerTitleStripImpl {
						setSingleLineAllCaps(text: android.widget.TextView): void;
					}
					export class PagerTitleStripImpl implements android.support.v4.view.PagerTitleStrip.IPagerTitleStripImpl {
						constructor(implementation: android.support.v4.view.PagerTitleStrip.IPagerTitleStripImpl);
						public setSingleLineAllCaps(text: android.widget.TextView): void;
					}
					export class PageListener extends android.database.DataSetObserver implements android.support.v4.view.ViewPager.IOnPageChangeListener, android.support.v4.view.ViewPager.IOnAdapterChangeListener {
						static class: java.lang.Class<android.support.v4.view.PagerTitleStrip.PageListener>;
						public onPageScrolled(position: number, positionOffset: number, positionOffsetPixels: number): void;
						public onPageSelected(position: number): void;
						public onPageScrollStateChanged(state: number): void;
						public onAdapterChanged(oldAdapter: android.support.v4.view.PagerAdapter, newAdapter: android.support.v4.view.PagerAdapter): void;
						public onChanged(): void;
					}
				}
				/**
				 * Helper for accessing View.AccessibilityDelegate introduced after API level 4 in a backwards compatible fashion.
				 */
				export class AccessibilityDelegateCompat extends java.lang.Object {
					/**
					 * Creates a new instance.
					 */
					constructor();
					static class: java.lang.Class<android.support.v4.view.AccessibilityDelegateCompat>;
					getBridge(): any;
					/**
					 * Sends an accessibility event of the given type. If accessibility is not enabled this method has no effect.
					 * @param host The View hosting the delegate.
					 * @param eventType The type of the event to send.
					 */
					public sendAccessibilityEvent(host: android.view.View, eventType: number): void;
					/**
					 * Sends an accessibility event. This method behaves exactly as #sendAccessibilityEvent(View, int) but takes as an argument an empty AccessibilityEvent and does not perform a check whether accessibility is enabled.
					 * @param host The View hosting the delegate.
					 * @param event The event to send.
					 */
					public sendAccessibilityEventUnchecked(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					/**
					 * Dispatches an AccessibilityEvent to the host View first and then to its children for adding their text content to the event.
					 * @param host The View hosting the delegate.
					 * @param event The event.
					 */
					public dispatchPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					/**
					 * Gives a chance to the host View to populate the accessibility event with its text content.
					 * @param host The View hosting the delegate.
					 * @param event The accessibility event which to populate.
					 */
					public onPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					/**
					 * Initializes an AccessibilityEvent with information about the the host View which is the event source.
					 * @param host The View hosting the delegate.
					 * @param event The event to initialize.
					 */
					public onInitializeAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					/**
					 * Initializes an AccessibilityNodeInfoCompat with information about the host view.
					 * @param host The View hosting the delegate.
					 * @param info The instance to initialize.
					 */
					public onInitializeAccessibilityNodeInfo(host: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
					/**
					 * Called when a child of the host View has requested sending an AccessibilityEvent and gives an opportunity to the parent (the host) to augment the event.
					 * @param host The View hosting the delegate.
					 * @param child The child which requests sending the event.
					 * @param event The event to be sent.
					 */
					public onRequestSendAccessibilityEvent(host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					/**
					 * Gets the provider for managing a virtual view hierarchy rooted at this View and reported to android.accessibilityservice.AccessibilityServices that explore the window content.
					 */
					public getAccessibilityNodeProvider(host: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
					/**
					 * Performs the specified accessibility action on the view. For possible accessibility actions look at AccessibilityNodeInfoCompat.
					 * @param host action The action to perform.
					 * @param action 
					 * @param args 
					 */
					public performAccessibilityAction(host: android.view.View, action: number, args: android.os.Bundle): boolean;
				}
				export module AccessibilityDelegateCompat {
					interface IAccessibilityDelegateImpl {
						newAccessiblityDelegateDefaultImpl(): any;
						newAccessiblityDelegateBridge(listener: android.support.v4.view.AccessibilityDelegateCompat): any;
						dispatchPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						onInitializeAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onInitializeAccessibilityNodeInfo(delegate: any, host: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						onPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onRequestSendAccessibilityEvent(delegate: any, host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						sendAccessibilityEvent(delegate: any, host: android.view.View, eventType: number): void;
						sendAccessibilityEventUnchecked(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						getAccessibilityNodeProvider(delegate: any, host: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
						performAccessibilityAction(delegate: any, host: android.view.View, action: number, args: android.os.Bundle): boolean;
					}
					export class AccessibilityDelegateImpl implements android.support.v4.view.AccessibilityDelegateCompat.IAccessibilityDelegateImpl {
						constructor(implementation: android.support.v4.view.AccessibilityDelegateCompat.IAccessibilityDelegateImpl);
						public newAccessiblityDelegateDefaultImpl(): any;
						public newAccessiblityDelegateBridge(listener: android.support.v4.view.AccessibilityDelegateCompat): any;
						public dispatchPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public onInitializeAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(delegate: any, host: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						public onPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onRequestSendAccessibilityEvent(delegate: any, host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public sendAccessibilityEvent(delegate: any, host: android.view.View, eventType: number): void;
						public sendAccessibilityEventUnchecked(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public getAccessibilityNodeProvider(delegate: any, host: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
						public performAccessibilityAction(delegate: any, host: android.view.View, action: number, args: android.os.Bundle): boolean;
					}
					export class AccessibilityDelegateIcsImpl extends android.support.v4.view.AccessibilityDelegateCompat.AccessibilityDelegateStubImpl {
						static class: java.lang.Class<android.support.v4.view.AccessibilityDelegateCompat.AccessibilityDelegateIcsImpl>;
						public newAccessiblityDelegateDefaultImpl(): any;
						public newAccessiblityDelegateBridge(compat: android.support.v4.view.AccessibilityDelegateCompat): any;
						public dispatchPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public onInitializeAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(delegate: any, host: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						public onPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onRequestSendAccessibilityEvent(delegate: any, host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public sendAccessibilityEvent(delegate: any, host: android.view.View, eventType: number): void;
						public sendAccessibilityEventUnchecked(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					}
					export class AccessibilityDelegateJellyBeanImpl extends android.support.v4.view.AccessibilityDelegateCompat.AccessibilityDelegateIcsImpl {
						static class: java.lang.Class<android.support.v4.view.AccessibilityDelegateCompat.AccessibilityDelegateJellyBeanImpl>;
						public newAccessiblityDelegateBridge(compat: android.support.v4.view.AccessibilityDelegateCompat): any;
						public getAccessibilityNodeProvider(delegate: any, host: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
						public performAccessibilityAction(delegate: any, host: android.view.View, action: number, args: android.os.Bundle): boolean;
					}
					export class AccessibilityDelegateStubImpl extends java.lang.Object implements android.support.v4.view.AccessibilityDelegateCompat.IAccessibilityDelegateImpl {
						static class: java.lang.Class<android.support.v4.view.AccessibilityDelegateCompat.AccessibilityDelegateStubImpl>;
						public newAccessiblityDelegateDefaultImpl(): any;
						public newAccessiblityDelegateBridge(listener: android.support.v4.view.AccessibilityDelegateCompat): any;
						public dispatchPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public onInitializeAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(delegate: any, host: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						public onPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onRequestSendAccessibilityEvent(delegate: any, host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public sendAccessibilityEvent(delegate: any, host: android.view.View, eventType: number): void;
						public sendAccessibilityEventUnchecked(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public getAccessibilityNodeProvider(delegate: any, host: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
						public performAccessibilityAction(delegate: any, host: android.view.View, action: number, args: android.os.Bundle): boolean;
					}
				}
				/**
				 * Helper for accessing features in View introduced after API level 4 in a backwards compatible fashion.
				 */
				export class ViewCompat extends java.lang.Object {
					constructor();
					/**
					 * Always allow a user to over-scroll this view, provided it is a view that can scroll.
					 */
					static OVER_SCROLL_ALWAYS: number;
					/**
					 * Allow a user to over-scroll this view only if the content is large enough to meaningfully scroll, provided it is a view that can scroll.
					 */
					static OVER_SCROLL_IF_CONTENT_SCROLLS: number;
					/**
					 * Never allow a user to over-scroll this view.
					 */
					static OVER_SCROLL_NEVER: number;
					/**
					 * Automatically determine whether a view is important for accessibility.
					 */
					static IMPORTANT_FOR_ACCESSIBILITY_AUTO: number;
					/**
					 * The view is important for accessibility.
					 */
					static IMPORTANT_FOR_ACCESSIBILITY_YES: number;
					/**
					 * The view is not important for accessibility.
					 */
					static IMPORTANT_FOR_ACCESSIBILITY_NO: number;
					/**
					 * Indicates that the view does not have a layer.
					 */
					static LAYER_TYPE_NONE: number;
					static LAYER_TYPE_SOFTWARE: number;
					static LAYER_TYPE_HARDWARE: number;
					static class: java.lang.Class<android.support.v4.view.ViewCompat>;
					/**
					 * Check if this view can be scrolled horizontally in a certain direction.
					 * @param v The View against which to invoke the method.
					 * @param direction Negative to check scrolling left, positive to check scrolling right.
					 */
					public static canScrollHorizontally(v: android.view.View, direction: number): boolean;
					/**
					 * Check if this view can be scrolled vertically in a certain direction.
					 * @param v The View against which to invoke the method.
					 * @param direction Negative to check scrolling up, positive to check scrolling down.
					 */
					public static canScrollVertically(v: android.view.View, direction: number): boolean;
					/**
					 * Returns the over-scroll mode for this view. The result will be one of #OVER_SCROLL_ALWAYS (default), #OVER_SCROLL_IF_CONTENT_SCROLLS (allow over-scrolling only if the view content is larger than the container), or #OVER_SCROLL_NEVER.
					 * @param v The View against which to invoke the method.
					 */
					public static getOverScrollMode(v: android.view.View): number;
					/**
					 * Set the over-scroll mode for this view. Valid over-scroll modes are #OVER_SCROLL_ALWAYS (default), #OVER_SCROLL_IF_CONTENT_SCROLLS (allow over-scrolling only if the view content is larger than the container), or #OVER_SCROLL_NEVER.
					 * @param v The View against which to invoke the method.
					 * @param overScrollMode The new over-scroll mode for this view.
					 */
					public static setOverScrollMode(v: android.view.View, overScrollMode: number): void;
					/**
					 * Called from View#dispatchPopulateAccessibilityEvent(AccessibilityEvent) giving a chance to this View to populate the accessibility event with its text content. While this method is free to modify event attributes other than text content, doing so should normally be performed in View#onInitializeAccessibilityEvent(AccessibilityEvent).
					 * @param v The View against which to invoke the method.
					 * @param event The accessibility event which to populate.
					 */
					public static onPopulateAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					/**
					 * Initializes an AccessibilityEvent with information about this View which is the event source. In other words, the source of an accessibility event is the view whose state change triggered firing the event.
					 * @param v The View against which to invoke the method.
					 * @param event The event to initialize.
					 */
					public static onInitializeAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					/**
					 * Initializes an android.view.accessibility.AccessibilityNodeInfo with information about this view. The base implementation sets: <ul> <li>android.view.accessibility.AccessibilityNodeInfo#setParent(View),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setBoundsInParent(Rect),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setBoundsInScreen(Rect),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setPackageName(CharSequence),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setClassName(CharSequence),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setContentDescription(CharSequence),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setEnabled(boolean),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setClickable(boolean),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setFocusable(boolean),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setFocused(boolean),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setLongClickable(boolean),</li> <li>android.view.accessibility.AccessibilityNodeInfo#setSelected(boolean),</li> </ul>
					 * @param v The View against which to invoke the method.
					 * @param info The instance to initialize.
					 */
					public static onInitializeAccessibilityNodeInfo(v: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
					/**
					 * Sets a delegate for implementing accessibility support via compositon as opposed to inheritance. The delegate's primary use is for implementing backwards compatible widgets. For more details see android.view.View.AccessibilityDelegate.
					 * @param v The View against which to invoke the method.
					 * @param delegate The delegate instance.
					 */
					public static setAccessibilityDelegate(v: android.view.View, delegate: android.support.v4.view.AccessibilityDelegateCompat): void;
					/**
					 * Indicates whether the view is currently tracking transient state that the app should not need to concern itself with saving and restoring, but that the framework should take special note to preserve when possible.
					 * @param view View to check for transient state
					 */
					public static hasTransientState(view: android.view.View): boolean;
					/**
					 * Set whether this view is currently tracking transient state that the framework should attempt to preserve when possible.
					 * @param view View tracking transient state
					 * @param hasTransientState true if this view has transient state
					 */
					public static setHasTransientState(view: android.view.View, hasTransientState: boolean): void;
					/**
					 * @param view View to invalidate
					 */
					public static postInvalidateOnAnimation(view: android.view.View): void;
					/**
					 * @param view View to invalidate
					 * @param left The left coordinate of the rectangle to invalidate.
					 * @param top The top coordinate of the rectangle to invalidate.
					 * @param right The right coordinate of the rectangle to invalidate.
					 * @param bottom The bottom coordinate of the rectangle to invalidate.
					 */
					public static postInvalidateOnAnimation(view: android.view.View, left: number, top: number, right: number, bottom: number): void;
					/**
					 * @param view View to post this Runnable to
					 * @param action The Runnable that will be executed.
					 */
					public static postOnAnimation(view: android.view.View, action: java.lang.IRunnable): void;
					/**
					 * @param view The view to post this Runnable to
					 * @param action The Runnable that will be executed.
					 * @param delayMillis The delay (in milliseconds) until the Runnable
					 */
					public static postOnAnimationDelayed(view: android.view.View, action: java.lang.IRunnable, delayMillis: number): void;
					/**
					 * Gets the mode for determining whether this View is important for accessibility which is if it fires accessibility events and if it is reported to accessibility services that query the screen.
					 * @param view The view whose property to get.
					 */
					public static getImportantForAccessibility(view: android.view.View): number;
					/**
					 * Sets how to determine whether this view is important for accessibility which is if it fires accessibility events and if it is reported to accessibility services that query the screen.
					 * @param view The view whose property to set.
					 * @param mode How to determine whether this view is important for accessibility.
					 */
					public static setImportantForAccessibility(view: android.view.View, mode: number): void;
					/**
					 * Performs the specified accessibility action on the view. For possible accessibility actions look at AccessibilityNodeInfoCompat.
					 * @param view action The action to perform.
					 * @param action arguments Optional action arguments.
					 * @param arguments 
					 */
					public static performAccessibilityAction(view: android.view.View, action: number, args: android.os.Bundle): boolean;
					/**
					 * Gets the provider for managing a virtual view hierarchy rooted at this View and reported to android.accessibilityservice.AccessibilityServices that explore the window content.
					 * @param view The view whose property to get.
					 */
					public static getAccessibilityNodeProvider(view: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
					/**
					 * @param view layerType The ype of layer to use with this view, must be one of
					 * @param layerType paint The paint used to compose the layer. This argument is optional
					 * @param paint view View to set the layer type for
					 */
					public static setLayerType(view: android.view.View, layerType: number, paint: android.graphics.Paint): void;
					/**
					 * Indicates what type of layer is currently associated with this view. By default a view does not have a layer, and the layer type is #LAYER_TYPE_NONE. Refer to the documentation of #setLayerType(android.view.View, int, android.graphics.Paint) for more information on the different types of layers.
					 * @param view The view to fetch the layer type from
					 */
					public static getLayerType(view: android.view.View): number;
					/**
					 * Gets the id of a view for which a given view serves as a label for accessibility purposes.
					 * @param view The view on which to invoke the corresponding method.
					 */
					public static getLabelFor(view: android.view.View): number;
					/**
					 * Sets the id of a view for which a given view serves as a label for accessibility purposes.
					 * @param view The view on which to invoke the corresponding method.
					 * @param labeledId The labeled view id.
					 */
					public static setLabelFor(view: android.view.View, labeledId: number): void;
				}
				export module ViewCompat {
					interface IViewCompatImpl {
						canScrollHorizontally(v: android.view.View, direction: number): boolean;
						canScrollVertically(v: android.view.View, direction: number): boolean;
						getOverScrollMode(v: android.view.View): number;
						setOverScrollMode(v: android.view.View, mode: number): void;
						onInitializeAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onPopulateAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onInitializeAccessibilityNodeInfo(v: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						setAccessibilityDelegate(v: android.view.View, delegate: android.support.v4.view.AccessibilityDelegateCompat): void;
						hasTransientState(view: android.view.View): boolean;
						setHasTransientState(view: android.view.View, hasTransientState: boolean): void;
						postInvalidateOnAnimation(view: android.view.View): void;
						postInvalidateOnAnimation(view: android.view.View, left: number, top: number, right: number, bottom: number): void;
						postOnAnimation(view: android.view.View, action: java.lang.IRunnable): void;
						postOnAnimationDelayed(view: android.view.View, action: java.lang.IRunnable, delayMillis: number): void;
						getImportantForAccessibility(view: android.view.View): number;
						setImportantForAccessibility(view: android.view.View, mode: number): void;
						performAccessibilityAction(view: android.view.View, action: number, args: android.os.Bundle): boolean;
						getAccessibilityNodeProvider(view: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
						setLayerType(view: android.view.View, layerType: number, paint: android.graphics.Paint): void;
						getLayerType(view: android.view.View): number;
						getLabelFor(view: android.view.View): number;
						setLabelFor(view: android.view.View, id: number): void;
					}
					export class HCViewCompatImpl extends android.support.v4.view.ViewCompat.GBViewCompatImpl {
						static class: java.lang.Class<android.support.v4.view.ViewCompat.HCViewCompatImpl>;
						getFrameTime(): any;
						public setLayerType(view: android.view.View, layerType: number, paint: android.graphics.Paint): void;
						public getLayerType(view: android.view.View): number;
					}
					export class JBViewCompatImpl extends android.support.v4.view.ViewCompat.ICSViewCompatImpl {
						static class: java.lang.Class<android.support.v4.view.ViewCompat.JBViewCompatImpl>;
						public hasTransientState(view: android.view.View): boolean;
						public setHasTransientState(view: android.view.View, hasTransientState: boolean): void;
						public postInvalidateOnAnimation(view: android.view.View): void;
						public postInvalidateOnAnimation(view: android.view.View, left: number, top: number, right: number, bottom: number): void;
						public postOnAnimation(view: android.view.View, action: java.lang.IRunnable): void;
						public postOnAnimationDelayed(view: android.view.View, action: java.lang.IRunnable, delayMillis: number): void;
						public getImportantForAccessibility(view: android.view.View): number;
						public setImportantForAccessibility(view: android.view.View, mode: number): void;
						public performAccessibilityAction(view: android.view.View, action: number, args: android.os.Bundle): boolean;
						public getAccessibilityNodeProvider(view: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
					}
					export class GBViewCompatImpl extends android.support.v4.view.ViewCompat.BaseViewCompatImpl {
						static class: java.lang.Class<android.support.v4.view.ViewCompat.GBViewCompatImpl>;
						public getOverScrollMode(v: android.view.View): number;
						public setOverScrollMode(v: android.view.View, mode: number): void;
					}
					export class ViewCompatImpl implements android.support.v4.view.ViewCompat.IViewCompatImpl {
						constructor(implementation: android.support.v4.view.ViewCompat.IViewCompatImpl);
						public canScrollHorizontally(v: android.view.View, direction: number): boolean;
						public canScrollVertically(v: android.view.View, direction: number): boolean;
						public getOverScrollMode(v: android.view.View): number;
						public setOverScrollMode(v: android.view.View, mode: number): void;
						public onInitializeAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onPopulateAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(v: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						public setAccessibilityDelegate(v: android.view.View, delegate: android.support.v4.view.AccessibilityDelegateCompat): void;
						public hasTransientState(view: android.view.View): boolean;
						public setHasTransientState(view: android.view.View, hasTransientState: boolean): void;
						public postInvalidateOnAnimation(view: android.view.View): void;
						public postInvalidateOnAnimation(view: android.view.View, left: number, top: number, right: number, bottom: number): void;
						public postOnAnimation(view: android.view.View, action: java.lang.IRunnable): void;
						public postOnAnimationDelayed(view: android.view.View, action: java.lang.IRunnable, delayMillis: number): void;
						public getImportantForAccessibility(view: android.view.View): number;
						public setImportantForAccessibility(view: android.view.View, mode: number): void;
						public performAccessibilityAction(view: android.view.View, action: number, args: android.os.Bundle): boolean;
						public getAccessibilityNodeProvider(view: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
						public setLayerType(view: android.view.View, layerType: number, paint: android.graphics.Paint): void;
						public getLayerType(view: android.view.View): number;
						public getLabelFor(view: android.view.View): number;
						public setLabelFor(view: android.view.View, id: number): void;
					}
					export class BaseViewCompatImpl extends java.lang.Object implements android.support.v4.view.ViewCompat.IViewCompatImpl {
						static class: java.lang.Class<android.support.v4.view.ViewCompat.BaseViewCompatImpl>;
						public canScrollHorizontally(v: android.view.View, direction: number): boolean;
						public canScrollVertically(v: android.view.View, direction: number): boolean;
						public getOverScrollMode(v: android.view.View): number;
						public setOverScrollMode(v: android.view.View, mode: number): void;
						public setAccessibilityDelegate(v: android.view.View, delegate: android.support.v4.view.AccessibilityDelegateCompat): void;
						public onPopulateAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(v: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						public hasTransientState(view: android.view.View): boolean;
						public setHasTransientState(view: android.view.View, hasTransientState: boolean): void;
						public postInvalidateOnAnimation(view: android.view.View): void;
						public postInvalidateOnAnimation(view: android.view.View, left: number, top: number, right: number, bottom: number): void;
						public postOnAnimation(view: android.view.View, action: java.lang.IRunnable): void;
						public postOnAnimationDelayed(view: android.view.View, action: java.lang.IRunnable, delayMillis: number): void;
						getFrameTime(): any;
						public getImportantForAccessibility(view: android.view.View): number;
						public setImportantForAccessibility(view: android.view.View, mode: number): void;
						public performAccessibilityAction(view: android.view.View, action: number, args: android.os.Bundle): boolean;
						public getAccessibilityNodeProvider(view: android.view.View): android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
						public setLayerType(view: android.view.View, layerType: number, paint: android.graphics.Paint): void;
						public getLayerType(view: android.view.View): number;
						public getLabelFor(view: android.view.View): number;
						public setLabelFor(view: android.view.View, id: number): void;
					}
					export class JbMr1ViewCompatImpl extends android.support.v4.view.ViewCompat.JBViewCompatImpl {
						static class: java.lang.Class<android.support.v4.view.ViewCompat.JbMr1ViewCompatImpl>;
						public getLabelFor(view: android.view.View): number;
						public setLabelFor(view: android.view.View, id: number): void;
					}
					export class ICSViewCompatImpl extends android.support.v4.view.ViewCompat.HCViewCompatImpl {
						static class: java.lang.Class<android.support.v4.view.ViewCompat.ICSViewCompatImpl>;
						public canScrollHorizontally(v: android.view.View, direction: number): boolean;
						public canScrollVertically(v: android.view.View, direction: number): boolean;
						public onPopulateAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityEvent(v: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(v: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						public setAccessibilityDelegate(v: android.view.View, delegate: android.support.v4.view.AccessibilityDelegateCompat): void;
					}
				}
				/**
				 * JellyBean specific AccessibilityDelegate API implementation.
				 */
				export class AccessibilityDelegateCompatJellyBean extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.AccessibilityDelegateCompatJellyBean>;
					public static newAccessibilityDelegateBridge(bridge: android.support.v4.view.AccessibilityDelegateCompatJellyBean.IAccessibilityDelegateBridgeJellyBean): any;
					public static getAccessibilityNodeProvider(delegate: any, host: android.view.View): any;
					public static performAccessibilityAction(delegate: any, host: android.view.View, action: number, args: android.os.Bundle): boolean;
				}
				export module AccessibilityDelegateCompatJellyBean {
					interface IAccessibilityDelegateBridgeJellyBean {
						dispatchPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						onInitializeAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onInitializeAccessibilityNodeInfo(host: android.view.View, info: any): void;
						onPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onRequestSendAccessibilityEvent(host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						sendAccessibilityEvent(host: android.view.View, eventType: number): void;
						sendAccessibilityEventUnchecked(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						getAccessibilityNodeProvider(host: android.view.View): any;
						performAccessibilityAction(host: android.view.View, action: number, args: android.os.Bundle): boolean;
					}
					export class AccessibilityDelegateBridgeJellyBean implements android.support.v4.view.AccessibilityDelegateCompatJellyBean.IAccessibilityDelegateBridgeJellyBean {
						constructor(implementation: android.support.v4.view.AccessibilityDelegateCompatJellyBean.IAccessibilityDelegateBridgeJellyBean);
						public dispatchPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public onInitializeAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(host: android.view.View, info: any): void;
						public onPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onRequestSendAccessibilityEvent(host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public sendAccessibilityEvent(host: android.view.View, eventType: number): void;
						public sendAccessibilityEventUnchecked(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public getAccessibilityNodeProvider(host: android.view.View): any;
						public performAccessibilityAction(host: android.view.View, action: number, args: android.os.Bundle): boolean;
					}
				}
				/**
				 * PagerTabStrip is an interactive indicator of the current, next, and previous pages of a ViewPager. It is intended to be used as a child view of a ViewPager widget in your XML layout. Add it as a child of a ViewPager in your layout file and set its android:layout_gravity to TOP or BOTTOM to pin it to the top or bottom of the ViewPager. The title from each page is supplied by the method PagerAdapter#getPageTitle(int) in the adapter supplied to the ViewPager.
				 */
				export class PagerTabStrip extends android.support.v4.view.PagerTitleStrip {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					static class: java.lang.Class<android.support.v4.view.PagerTabStrip>;
					/**
					 * Set the color of the tab indicator bar.
					 * @param color Color to set as an 0xRRGGBB value. The high byte (alpha) is ignored.
					 */
					public setTabIndicatorColor(color: number): void;
					/**
					 * Set the color of the tab indicator bar from a color resource.
					 * @param resId Resource ID of a color resource to load
					 */
					public setTabIndicatorColorResource(resId: number): void;
					public getTabIndicatorColor(): number;
					public setPadding(left: number, top: number, right: number, bottom: number): void;
					public setTextSpacing(textSpacing: number): void;
					public setBackgroundDrawable(d: android.graphics.drawable.Drawable): void;
					public setBackgroundColor(color: number): void;
					public setBackgroundResource(resId: number): void;
					/**
					 * Set whether this tab strip should draw a full-width underline in the current tab indicator color.
					 * @param drawFull true to draw a full-width underline, false otherwise
					 */
					public setDrawFullUnderline(drawFull: boolean): void;
					/**
					 * Return whether or not this tab strip will draw a full-width underline. This defaults to true if no background is set.
					 */
					public getDrawFullUnderline(): boolean;
					getMinHeight(): number;
					public onTouchEvent(ev: android.view.MotionEvent): boolean;
					protected onDraw(canvas: android.graphics.Canvas): void;
					updateTextPositions(position: number, positionOffset: number, force: boolean): void;
				}
				/**
				 * ICS specific ViewGroup API implementation.
				 */
				export class ViewGroupCompatIcs extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.ViewGroupCompatIcs>;
					public static onRequestSendAccessibilityEvent(group: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
				}
				/**
				 * Helper for accessing features in android.view.MenuItem introduced after API level 4 in a backwards compatible fashion.
				 */
				export class MenuItemCompat extends java.lang.Object {
					constructor();
					/**
					 * Never show this item as a button in an Action Bar.
					 */
					static SHOW_AS_ACTION_NEVER: number;
					/**
					 * Show this item as a button in an Action Bar if the system decides there is room for it.
					 */
					static SHOW_AS_ACTION_IF_ROOM: number;
					/**
					 * Always show this item as a button in an Action Bar. Use sparingly! If too many items are set to always show in the Action Bar it can crowd the Action Bar and degrade the user experience on devices with smaller screens. A good rule of thumb is to have no more than 2 items set to always show at a time.
					 */
					static SHOW_AS_ACTION_ALWAYS: number;
					/**
					 * When this item is in the action bar, always show it with a text label even if it also has an icon specified.
					 */
					static SHOW_AS_ACTION_WITH_TEXT: number;
					/**
					 * This item's action view collapses to a normal menu item. When expanded, the action view temporarily takes over a larger segment of its container.
					 */
					static SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW: number;
					static class: java.lang.Class<android.support.v4.view.MenuItemCompat>;
					/**
					 * Call MenuItem#setShowAsAction(int) MenuItem.setShowAsAction(). If running on a pre-android.os.Build.VERSION_CODES#HONEYCOMB device, does nothing and returns false. Otherwise returns true.
					 */
					public static setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
					/**
					 * Set an action view for this menu item. An action view will be displayed in place of an automatically generated menu item element in the UI when this item is shown as an action within a parent.
					 * @param item view View to use for presenting this item to the user.
					 * @param view 
					 */
					public static setActionView(item: android.view.IMenuItem, view: android.view.View): android.view.IMenuItem;
				}
				export module MenuItemCompat {
					/**
					 * Interface implementation that doesn't use anything about v4 APIs.
					 */
					export class BaseMenuVersionImpl extends java.lang.Object implements android.support.v4.view.MenuItemCompat.IMenuVersionImpl {
						static class: java.lang.Class<android.support.v4.view.MenuItemCompat.BaseMenuVersionImpl>;
						public setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
						public setActionView(item: android.view.IMenuItem, view: android.view.View): android.view.IMenuItem;
					}
					/**
					 * Interface for the full API.
					 */
					interface IMenuVersionImpl {
						setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
						setActionView(item: android.view.IMenuItem, view: android.view.View): android.view.IMenuItem;
					}
					/**
					 * Interface for the full API.
					 */
					export class MenuVersionImpl implements android.support.v4.view.MenuItemCompat.IMenuVersionImpl {
						constructor(implementation: android.support.v4.view.MenuItemCompat.IMenuVersionImpl);
						public setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
						public setActionView(item: android.view.IMenuItem, view: android.view.View): android.view.IMenuItem;
					}
					/**
					 * Interface implementation for devices with at least v11 APIs.
					 */
					export class HoneycombMenuVersionImpl extends java.lang.Object implements android.support.v4.view.MenuItemCompat.IMenuVersionImpl {
						static class: java.lang.Class<android.support.v4.view.MenuItemCompat.HoneycombMenuVersionImpl>;
						public setShowAsAction(item: android.view.IMenuItem, actionEnum: number): boolean;
						public setActionView(item: android.view.IMenuItem, view: android.view.View): android.view.IMenuItem;
					}
				}
				/**
				 * Helper for accessing features in KeyEvent introduced after API level 4 in a backwards compatible fashion.
				 */
				export class KeyEventCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.view.KeyEventCompat>;
					public static normalizeMetaState(metaState: number): number;
					public static metaStateHasModifiers(metaState: number, modifiers: number): boolean;
					public static metaStateHasNoModifiers(metaState: number): boolean;
					public static hasModifiers(event: android.view.KeyEvent, modifiers: number): boolean;
					public static hasNoModifiers(event: android.view.KeyEvent): boolean;
				}
				export module KeyEventCompat {
					/**
					 * Interface implementation that doesn't use anything about v4 APIs.
					 */
					export class BaseKeyEventVersionImpl extends java.lang.Object implements android.support.v4.view.KeyEventCompat.IKeyEventVersionImpl {
						static class: java.lang.Class<android.support.v4.view.KeyEventCompat.BaseKeyEventVersionImpl>;
						public normalizeMetaState(metaState: number): number;
						public metaStateHasModifiers(metaState: number, modifiers: number): boolean;
						public metaStateHasNoModifiers(metaState: number): boolean;
					}
					/**
					 * Interface for the full API.
					 */
					interface IKeyEventVersionImpl {
						normalizeMetaState(metaState: number): number;
						metaStateHasModifiers(metaState: number, modifiers: number): boolean;
						metaStateHasNoModifiers(metaState: number): boolean;
					}
					/**
					 * Interface for the full API.
					 */
					export class KeyEventVersionImpl implements android.support.v4.view.KeyEventCompat.IKeyEventVersionImpl {
						constructor(implementation: android.support.v4.view.KeyEventCompat.IKeyEventVersionImpl);
						public normalizeMetaState(metaState: number): number;
						public metaStateHasModifiers(metaState: number, modifiers: number): boolean;
						public metaStateHasNoModifiers(metaState: number): boolean;
					}
					/**
					 * Interface implementation for devices with at least v11 APIs.
					 */
					export class HoneycombKeyEventVersionImpl extends java.lang.Object implements android.support.v4.view.KeyEventCompat.IKeyEventVersionImpl {
						static class: java.lang.Class<android.support.v4.view.KeyEventCompat.HoneycombKeyEventVersionImpl>;
						public normalizeMetaState(metaState: number): number;
						public metaStateHasModifiers(metaState: number, modifiers: number): boolean;
						public metaStateHasNoModifiers(metaState: number): boolean;
					}
				}
				/**
				 * Helper for accessing features in ViewConfiguration introduced after API level 4 in a backwards compatible fashion.
				 */
				export class ViewConfigurationCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.view.ViewConfigurationCompat>;
					/**
					 * Call ViewConfiguration#getScaledPagingTouchSlop(). If running on a pre-android.os.Build.VERSION_CODES#FROYO device, returns ViewConfiguration#getScaledTouchSlop().
					 */
					public static getScaledPagingTouchSlop(config: android.view.ViewConfiguration): number;
				}
				export module ViewConfigurationCompat {
					/**
					 * Interface implementation that doesn't use anything about v4 APIs.
					 */
					export class BaseViewConfigurationVersionImpl extends java.lang.Object implements android.support.v4.view.ViewConfigurationCompat.IViewConfigurationVersionImpl {
						static class: java.lang.Class<android.support.v4.view.ViewConfigurationCompat.BaseViewConfigurationVersionImpl>;
						public getScaledPagingTouchSlop(config: android.view.ViewConfiguration): number;
					}
					/**
					 * Interface for the full API.
					 */
					export class ViewConfigurationVersionImpl implements android.support.v4.view.ViewConfigurationCompat.IViewConfigurationVersionImpl {
						constructor(implementation: android.support.v4.view.ViewConfigurationCompat.IViewConfigurationVersionImpl);
						public getScaledPagingTouchSlop(config: android.view.ViewConfiguration): number;
					}
					/**
					 * Interface for the full API.
					 */
					interface IViewConfigurationVersionImpl {
						getScaledPagingTouchSlop(config: android.view.ViewConfiguration): number;
					}
					/**
					 * Interface implementation for devices with at least v11 APIs.
					 */
					export class FroyoViewConfigurationVersionImpl extends java.lang.Object implements android.support.v4.view.ViewConfigurationCompat.IViewConfigurationVersionImpl {
						static class: java.lang.Class<android.support.v4.view.ViewConfigurationCompat.FroyoViewConfigurationVersionImpl>;
						public getScaledPagingTouchSlop(config: android.view.ViewConfiguration): number;
					}
				}
				/**
				 * Implementation of motion event compatibility that can call Eclair APIs.
				 */
				export class MotionEventCompatEclair extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.MotionEventCompatEclair>;
					public static findPointerIndex(event: android.view.MotionEvent, pointerId: number): number;
					public static getPointerId(event: android.view.MotionEvent, pointerIndex: number): number;
					public static getX(event: android.view.MotionEvent, pointerIndex: number): number;
					public static getY(event: android.view.MotionEvent, pointerIndex: number): number;
					public static getPointerCount(event: android.view.MotionEvent): number;
				}
				/**
				 * ICS specific AccessibilityDelegate API implementation.
				 */
				export class AccessibilityDelegateCompatIcs extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.AccessibilityDelegateCompatIcs>;
					public static newAccessibilityDelegateDefaultImpl(): any;
					public static newAccessibilityDelegateBridge(bridge: android.support.v4.view.AccessibilityDelegateCompatIcs.IAccessibilityDelegateBridge): any;
					public static dispatchPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					public static onInitializeAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					public static onInitializeAccessibilityNodeInfo(delegate: any, host: android.view.View, info: any): void;
					public static onPopulateAccessibilityEvent(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					public static onRequestSendAccessibilityEvent(delegate: any, host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
					public static sendAccessibilityEvent(delegate: any, host: android.view.View, eventType: number): void;
					public static sendAccessibilityEventUnchecked(delegate: any, host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
				}
				export module AccessibilityDelegateCompatIcs {
					interface IAccessibilityDelegateBridge {
						dispatchPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						onInitializeAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onInitializeAccessibilityNodeInfo(host: android.view.View, info: any): void;
						onPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						onRequestSendAccessibilityEvent(host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						sendAccessibilityEvent(host: android.view.View, eventType: number): void;
						sendAccessibilityEventUnchecked(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					}
					export class AccessibilityDelegateBridge implements android.support.v4.view.AccessibilityDelegateCompatIcs.IAccessibilityDelegateBridge {
						constructor(implementation: android.support.v4.view.AccessibilityDelegateCompatIcs.IAccessibilityDelegateBridge);
						public dispatchPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public onInitializeAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(host: android.view.View, info: any): void;
						public onPopulateAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onRequestSendAccessibilityEvent(host: android.view.ViewGroup, child: android.view.View, event: android.view.accessibility.AccessibilityEvent): boolean;
						public sendAccessibilityEvent(host: android.view.View, eventType: number): void;
						public sendAccessibilityEventUnchecked(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
					}
				}
				/**
				 * Detects various gestures and events using the supplied MotionEvents. The OnGestureListener callback will notify users when a particular motion event has occurred. This class should only be used with MotionEvents reported via touch (don't use for trackball events).
				 */
				export class GestureDetectorCompat extends java.lang.Object {
					/**
					 * Creates a GestureDetectorCompat with the supplied listener. As usual, you may only use this constructor from a UI thread. android.os.Handler#Handler()
					 * @param context the application's context
					 * @param listener the listener invoked for all the callbacks, this must
					 */
					constructor(context: android.content.Context, listener: android.view.GestureDetector.IOnGestureListener);
					/**
					 * Creates a GestureDetectorCompat with the supplied listener. As usual, you may only use this constructor from a UI thread. android.os.Handler#Handler()
					 * @param context the application's context
					 * @param listener the listener invoked for all the callbacks, this must
					 * @param handler the handler that will be used for posting deferred messages
					 */
					constructor(context: android.content.Context, listener: android.view.GestureDetector.IOnGestureListener, handler: android.os.Handler);
					static class: java.lang.Class<android.support.v4.view.GestureDetectorCompat>;
					public isLongpressEnabled(): boolean;
					/**
					 * Analyzes the given motion event and if applicable triggers the appropriate callbacks on the OnGestureListener supplied.
					 * @param event The current motion event.
					 */
					public onTouchEvent(event: android.view.MotionEvent): boolean;
					/**
					 * Set whether longpress is enabled, if this is enabled when a user presses and holds down you get a longpress event and nothing further. If it's disabled the user can press and hold down and then later moved their finger and you will get scroll events. By default longpress is enabled.
					 * @param enabled whether longpress should be enabled.
					 */
					public setIsLongpressEnabled(enabled: boolean): void;
					/**
					 * Sets the listener which will be called for double-tap and related gestures.
					 * @param listener the listener invoked for all the callbacks, or
					 */
					public setOnDoubleTapListener(listener: android.view.GestureDetector.IOnDoubleTapListener): void;
				}
				export module GestureDetectorCompat {
					interface IGestureDetectorCompatImpl {
						isLongpressEnabled(): boolean;
						onTouchEvent(ev: android.view.MotionEvent): boolean;
						setIsLongpressEnabled(enabled: boolean): void;
						setOnDoubleTapListener(listener: android.view.GestureDetector.IOnDoubleTapListener): void;
					}
					export class GestureDetectorCompatImpl implements android.support.v4.view.GestureDetectorCompat.IGestureDetectorCompatImpl {
						constructor(implementation: android.support.v4.view.GestureDetectorCompat.IGestureDetectorCompatImpl);
						public isLongpressEnabled(): boolean;
						public onTouchEvent(ev: android.view.MotionEvent): boolean;
						public setIsLongpressEnabled(enabled: boolean): void;
						public setOnDoubleTapListener(listener: android.view.GestureDetector.IOnDoubleTapListener): void;
					}
					export class GestureDetectorCompatImplJellybeanMr1 extends java.lang.Object implements android.support.v4.view.GestureDetectorCompat.IGestureDetectorCompatImpl {
						constructor(context: android.content.Context, listener: android.view.GestureDetector.IOnGestureListener, handler: android.os.Handler);
						static class: java.lang.Class<android.support.v4.view.GestureDetectorCompat.GestureDetectorCompatImplJellybeanMr1>;
						public isLongpressEnabled(): boolean;
						public onTouchEvent(ev: android.view.MotionEvent): boolean;
						public setIsLongpressEnabled(enabled: boolean): void;
						public setOnDoubleTapListener(listener: android.view.GestureDetector.IOnDoubleTapListener): void;
					}
					export class GestureDetectorCompatImplBase extends java.lang.Object implements android.support.v4.view.GestureDetectorCompat.IGestureDetectorCompatImpl {
						/**
						 * Creates a GestureDetector with the supplied listener. You may only use this constructor from a UI thread (this is the usual situation). android.os.Handler#Handler()
						 * @param context the application's context
						 * @param listener the listener invoked for all the callbacks, this must
						 * @param handler the handler to use
						 */
						constructor(context: android.content.Context, listener: android.view.GestureDetector.IOnGestureListener, handler: android.os.Handler);
						static class: java.lang.Class<android.support.v4.view.GestureDetectorCompat.GestureDetectorCompatImplBase>;
						/**
						 * Sets the listener which will be called for double-tap and related gestures.
						 * @param onDoubleTapListener the listener invoked for all the callbacks, or
						 */
						public setOnDoubleTapListener(onDoubleTapListener: android.view.GestureDetector.IOnDoubleTapListener): void;
						/**
						 * Set whether longpress is enabled, if this is enabled when a user presses and holds down you get a longpress event and nothing further. If it's disabled the user can press and hold down and then later moved their finger and you will get scroll events. By default longpress is enabled.
						 * @param isLongpressEnabled whether longpress should be enabled.
						 */
						public setIsLongpressEnabled(isLongpressEnabled: boolean): void;
						public isLongpressEnabled(): boolean;
						/**
						 * Analyzes the given motion event and if applicable triggers the appropriate callbacks on the OnGestureListener supplied.
						 * @param ev The current motion event.
						 */
						public onTouchEvent(ev: android.view.MotionEvent): boolean;
					}
					export module GestureDetectorCompatImplBase {
						export class GestureHandler extends android.os.Handler {
							static class: java.lang.Class<android.support.v4.view.GestureDetectorCompat.GestureDetectorCompatImplBase.GestureHandler>;
							public handleMessage(msg: android.os.Message): void;
						}
					}
				}
				/**
				 * Layout manager that allows the user to flip left and right through pages of data. You supply an implementation of a PagerAdapter to generate the pages that the view shows.
				 */
				export class ViewPager extends android.view.ViewGroup {
					constructor(context: android.content.Context);
					constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
					/**
					 * Indicates that the pager is in an idle, settled state. The current page is fully in view and no animation is in progress.
					 */
					static SCROLL_STATE_IDLE: number;
					/**
					 * Indicates that the pager is currently being dragged by the user.
					 */
					static SCROLL_STATE_DRAGGING: number;
					/**
					 * Indicates that the pager is in the process of settling to a final position.
					 */
					static SCROLL_STATE_SETTLING: number;
					static class: java.lang.Class<android.support.v4.view.ViewPager>;
					initViewPager(): void;
					protected onDetachedFromWindow(): void;
					/**
					 * Set a PagerAdapter that will supply views for this pager as needed.
					 * @param adapter Adapter to use
					 */
					public setAdapter(adapter: android.support.v4.view.PagerAdapter): void;
					/**
					 * Retrieve the current adapter supplying pages.
					 */
					public getAdapter(): android.support.v4.view.PagerAdapter;
					setOnAdapterChangeListener(listener: android.support.v4.view.ViewPager.IOnAdapterChangeListener): void;
					/**
					 * Set the currently selected page. If the ViewPager has already been through its first layout with its current adapter there will be a smooth animated transition between the current item and the specified item.
					 * @param item Item index to select
					 */
					public setCurrentItem(item: number): void;
					/**
					 * Set the currently selected page.
					 * @param item Item index to select
					 * @param smoothScroll True to smoothly scroll to the new item, false to transition immediately
					 */
					public setCurrentItem(item: number, smoothScroll: boolean): void;
					public getCurrentItem(): number;
					setCurrentItemInternal(item: number, smoothScroll: boolean, always: boolean): void;
					setCurrentItemInternal(item: number, smoothScroll: boolean, always: boolean, velocity: number): void;
					/**
					 * Set a listener that will be invoked whenever the page changes or is incrementally scrolled. See OnPageChangeListener.
					 * @param listener Listener to set
					 */
					public setOnPageChangeListener(listener: android.support.v4.view.ViewPager.IOnPageChangeListener): void;
					/**
					 * Set a PageTransformer that will be called for each attached page whenever the scroll position is changed. This allows the application to apply custom property transformations to each page, overriding the default sliding look and feel.
					 * @param reverseDrawingOrder true if the supplied PageTransformer requires page views
					 * @param transformer PageTransformer that will modify each page's animation properties
					 */
					public setPageTransformer(reverseDrawingOrder: boolean, transformer: android.support.v4.view.ViewPager.IPageTransformer): void;
					setChildrenDrawingOrderEnabledCompat(enable: boolean): void;
					protected getChildDrawingOrder(childCount: number, i: number): number;
					/**
					 * Set a separate OnPageChangeListener for internal use by the support library.
					 * @param listener Listener to set
					 */
					setInternalPageChangeListener(listener: android.support.v4.view.ViewPager.IOnPageChangeListener): android.support.v4.view.ViewPager.IOnPageChangeListener;
					/**
					 * Returns the number of pages that will be retained to either side of the current page in the view hierarchy in an idle state. Defaults to 1.
					 */
					public getOffscreenPageLimit(): number;
					/**
					 * Set the number of pages that should be retained to either side of the current page in the view hierarchy in an idle state. Pages beyond this limit will be recreated from the adapter when needed.
					 * @param limit How many pages will be kept offscreen in an idle state.
					 */
					public setOffscreenPageLimit(limit: number): void;
					/**
					 * Set the margin between pages.
					 * @param marginPixels Distance between adjacent pages in pixels
					 */
					public setPageMargin(marginPixels: number): void;
					/**
					 * Return the margin between pages.
					 */
					public getPageMargin(): number;
					/**
					 * Set a drawable that will be used to fill the margin between pages.
					 * @param d Drawable to display between pages
					 */
					public setPageMarginDrawable(d: android.graphics.drawable.Drawable): void;
					/**
					 * Set a drawable that will be used to fill the margin between pages.
					 * @param resId Resource ID of a drawable to display between pages
					 */
					public setPageMarginDrawable(resId: number): void;
					protected verifyDrawable(who: android.graphics.drawable.Drawable): boolean;
					protected drawableStateChanged(): void;
					distanceInfluenceForSnapDuration(f: number): number;
					/**
					 * Like View#scrollBy, but scroll smoothly instead of immediately.
					 * @param x the number of pixels to scroll by on the X axis
					 * @param y the number of pixels to scroll by on the Y axis
					 */
					smoothScrollTo(x: number, y: number): void;
					/**
					 * Like View#scrollBy, but scroll smoothly instead of immediately.
					 * @param x the number of pixels to scroll by on the X axis
					 * @param y the number of pixels to scroll by on the Y axis
					 * @param velocity the velocity associated with a fling, if applicable. (0 otherwise)
					 */
					smoothScrollTo(x: number, y: number, velocity: number): void;
					addNewItem(position: number, index: number): android.support.v4.view.ViewPager.ItemInfo;
					dataSetChanged(): void;
					populate(): void;
					populate(newCurrentItem: number): void;
					public onSaveInstanceState(): android.os.IParcelable;
					public onRestoreInstanceState(state: android.os.IParcelable): void;
					public addView(child: android.view.View, index: number, params: android.view.ViewGroup.LayoutParams): void;
					infoForChild(child: android.view.View): android.support.v4.view.ViewPager.ItemInfo;
					infoForAnyChild(child: android.view.View): android.support.v4.view.ViewPager.ItemInfo;
					infoForPosition(position: number): android.support.v4.view.ViewPager.ItemInfo;
					protected onAttachedToWindow(): void;
					protected onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
					protected onSizeChanged(w: number, h: number, oldw: number, oldh: number): void;
					protected onLayout(changed: boolean, l: number, t: number, r: number, b: number): void;
					public computeScroll(): void;
					/**
					 * This method will be invoked when the current page is scrolled, either as part of a programmatically initiated smooth scroll or a user initiated touch scroll. If you override this method you must call through to the superclass implementation (e.g. super.onPageScrolled(position, offset, offsetPixels)) before onPageScrolled returns.
					 * @param position Position index of the first page currently being displayed.
					 * @param offset Value from [0, 1) indicating the offset from the page at position.
					 * @param offsetPixels Value in pixels indicating the offset from position.
					 */
					protected onPageScrolled(position: number, offset: number, offsetPixels: number): void;
					public onInterceptTouchEvent(ev: android.view.MotionEvent): boolean;
					public onTouchEvent(ev: android.view.MotionEvent): boolean;
					public draw(canvas: android.graphics.Canvas): void;
					protected onDraw(canvas: android.graphics.Canvas): void;
					/**
					 * Start a fake drag of the pager.
					 */
					public beginFakeDrag(): boolean;
					/**
					 * End a fake drag of the pager.
					 */
					public endFakeDrag(): void;
					/**
					 * Fake drag by an offset in pixels. You must have called #beginFakeDrag() first.
					 * @param xOffset Offset in pixels to drag by.
					 */
					public fakeDragBy(xOffset: number): void;
					/**
					 * Returns true if a fake drag is in progress.
					 */
					public isFakeDragging(): boolean;
					/**
					 * Tests scrollability within child views of v given a delta of dx.
					 * @param v View to test for horizontal scrollability
					 * @param checkV Whether the view v passed should itself be checked for scrollability (true),
					 * @param dx Delta scrolled in pixels
					 * @param x X coordinate of the active touch point
					 * @param y Y coordinate of the active touch point
					 */
					protected canScroll(v: android.view.View, checkV: boolean, dx: number, x: number, y: number): boolean;
					public dispatchKeyEvent(event: android.view.KeyEvent): boolean;
					/**
					 * You can call this function yourself to have the scroll view perform scrolling from a key event, just as if the event had been dispatched to it by the view hierarchy.
					 * @param event The key event to execute.
					 */
					public executeKeyEvent(event: android.view.KeyEvent): boolean;
					public arrowScroll(direction: number): boolean;
					pageLeft(): boolean;
					pageRight(): boolean;
					/**
					 * We only want the current page that is being shown to be focusable.
					 */
					public addFocusables(views: java.util.ArrayList<android.view.View>, direction: number, focusableMode: number): void;
					/**
					 * We only want the current page that is being shown to be touchable.
					 */
					public addTouchables(views: java.util.ArrayList<android.view.View>): void;
					/**
					 * We only want the current page that is being shown to be focusable.
					 */
					protected onRequestFocusInDescendants(direction: number, previouslyFocusedRect: android.graphics.Rect): boolean;
					public dispatchPopulateAccessibilityEvent(event: android.view.accessibility.AccessibilityEvent): boolean;
					protected generateDefaultLayoutParams(): android.view.ViewGroup.LayoutParams;
					public generateLayoutParams(p: android.view.ViewGroup.LayoutParams): android.view.ViewGroup.LayoutParams;
					protected checkLayoutParams(p: android.view.ViewGroup.LayoutParams): boolean;
					public generateLayoutParams(attrs: android.util.IAttributeSet): android.view.ViewGroup.LayoutParams;
					/**
					 * @param child the child view to add
					 */
					addView(child: android.view.View): void;
					/**
					 * Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child. 
					 * @param child the child view to add
					 * @param index the position at which to add the child
					 */
					addView(child: android.view.View, index: number): void;
					/**
					 * Adds a child view with this ViewGroup's default layout parameters and the specified width and height.
					 * @param child the child view to add
					 * @param width 
					 * @param height 
					 */
					addView(child: android.view.View, width: number, height: number): void;
					/**
					 * Adds a child view with the specified layout parameters.
					 * @param child the child view to add
					 * @param params the layout parameters to set on the child
					 */
					addView(child: android.view.View, params: android.view.ViewGroup.LayoutParams): void;
					/**
					 * Add any focusable views that are descendants of this view (possibly including this view if it is focusable itself) to views. If we are in touch mode, only add views that are also focusable in touch mode.
					 * @param views Focusable views found so far
					 * @param direction The direction of the focus
					 */
					addFocusables(views: java.util.ArrayList<android.view.View>, direction: number): void;
					/**
					 * This method is called by ViewGroup.drawChild() to have each child view draw itself. This draw() method is an implementation detail and is not intended to be overridden or to be called from anywhere else other than ViewGroup.drawChild().
					 */
					draw(canvas: android.graphics.Canvas, parent: android.view.ViewGroup, drawingTime: number): boolean;
				}
				export module ViewPager {
					/**
					 * This is the persistent state that is saved by ViewPager. Only needed if you are creating a sublass of ViewPager that must save its own state, in which case it should implement a subclass of this which contains that state.
					 */
					export class SavedState extends android.view.View.BaseSavedState {
						constructor(superState: android.os.IParcelable);
						static CREATOR: android.os.Parcelable.ICreator<android.support.v4.view.ViewPager.SavedState>;
						static class: java.lang.Class<android.support.v4.view.ViewPager.SavedState>;
						public writeToParcel(out: android.os.Parcel, flags: number): void;
						public toString(): string;
					}
					export class MyAccessibilityDelegate extends android.support.v4.view.AccessibilityDelegateCompat {
						static class: java.lang.Class<android.support.v4.view.ViewPager.MyAccessibilityDelegate>;
						public onInitializeAccessibilityEvent(host: android.view.View, event: android.view.accessibility.AccessibilityEvent): void;
						public onInitializeAccessibilityNodeInfo(host: android.view.View, info: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat): void;
						public performAccessibilityAction(host: android.view.View, action: number, args: android.os.Bundle): boolean;
					}
					/**
					 * Callback interface for responding to changing state of the selected page.
					 */
					interface IOnPageChangeListener {
						/**
						 * This method will be invoked when the current page is scrolled, either as part of a programmatically initiated smooth scroll or a user initiated touch scroll.
						 * @param position Position index of the first page currently being displayed.
						 * @param positionOffset Value from [0, 1) indicating the offset from the page at position.
						 * @param positionOffsetPixels Value in pixels indicating the offset from position.
						 */
						onPageScrolled(position: number, positionOffset: number, positionOffsetPixels: number): void;
						/**
						 * This method will be invoked when a new page becomes selected. Animation is not necessarily complete.
						 * @param position Position index of the new selected page.
						 */
						onPageSelected(position: number): void;
						/**
						 * Called when the scroll state changes. Useful for discovering when the user begins dragging, when the pager is automatically settling to the current page, or when it is fully stopped/idle.
						 * @param state The new scroll state.
						 */
						onPageScrollStateChanged(state: number): void;
					}
					/**
					 * Used internally to tag special types of child views that should be added as pager decorations by default.
					 */
					interface IDecor {
					}
					export class PagerObserver extends android.database.DataSetObserver {
						static class: java.lang.Class<android.support.v4.view.ViewPager.PagerObserver>;
						public onChanged(): void;
						public onInvalidated(): void;
					}
					/**
					 * Layout parameters that should be supplied for views added to a ViewPager.
					 */
					export class LayoutParams extends android.view.ViewGroup.LayoutParams {
						constructor();
						constructor(context: android.content.Context, attrs: android.util.IAttributeSet);
						/**
						 * true if this view is a decoration on the pager itself and not a view supplied by the adapter.
						 */
						isDecor: boolean;
						/**
						 * Gravity setting for use on decor views only: Where to position the view page within the overall ViewPager container; constants are defined in android.view.Gravity.
						 */
						gravity: number;
						static class: java.lang.Class<android.support.v4.view.ViewPager.LayoutParams>;
					}
					/**
					 * Simple implementation of the OnPageChangeListener interface with stub implementations of each method. Extend this if you do not intend to override every method of OnPageChangeListener.
					 */
					export class SimpleOnPageChangeListener extends java.lang.Object implements android.support.v4.view.ViewPager.IOnPageChangeListener {
						constructor();
						static class: java.lang.Class<android.support.v4.view.ViewPager.SimpleOnPageChangeListener>;
						public onPageScrolled(position: number, positionOffset: number, positionOffsetPixels: number): void;
						public onPageSelected(position: number): void;
						public onPageScrollStateChanged(state: number): void;
					}
					export class ItemInfo extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.ViewPager.ItemInfo>;
					}
					/**
					 * Callback interface for responding to changing state of the selected page.
					 */
					export class OnPageChangeListener implements android.support.v4.view.ViewPager.IOnPageChangeListener {
						constructor(implementation: android.support.v4.view.ViewPager.IOnPageChangeListener);
						/**
						 * This method will be invoked when the current page is scrolled, either as part of a programmatically initiated smooth scroll or a user initiated touch scroll.
						 * @param position Position index of the first page currently being displayed.
						 * @param positionOffset Value from [0, 1) indicating the offset from the page at position.
						 * @param positionOffsetPixels Value in pixels indicating the offset from position.
						 */
						public onPageScrolled(position: number, positionOffset: number, positionOffsetPixels: number): void;
						/**
						 * This method will be invoked when a new page becomes selected. Animation is not necessarily complete.
						 * @param position Position index of the new selected page.
						 */
						public onPageSelected(position: number): void;
						/**
						 * Called when the scroll state changes. Useful for discovering when the user begins dragging, when the pager is automatically settling to the current page, or when it is fully stopped/idle.
						 * @param state The new scroll state.
						 */
						public onPageScrollStateChanged(state: number): void;
					}
					/**
					 * Used internally to tag special types of child views that should be added as pager decorations by default.
					 */
					export class Decor implements android.support.v4.view.ViewPager.IDecor {
						constructor(implementation: android.support.v4.view.ViewPager.IDecor);
					}
					/**
					 * A PageTransformer is invoked whenever a visible/attached page is scrolled. This offers an opportunity for the application to apply a custom transformation to the page views using animation properties.
					 */
					export class PageTransformer implements android.support.v4.view.ViewPager.IPageTransformer {
						constructor(implementation: android.support.v4.view.ViewPager.IPageTransformer);
						/**
						 * Apply a property transformation to the given page.
						 * @param page Apply the transformation to this page
						 * @param position Position of page relative to the current front-and-center
						 */
						public transformPage(page: android.view.View, position: number): void;
					}
					/**
					 * Used internally to monitor when adapters are switched.
					 */
					interface IOnAdapterChangeListener {
						onAdapterChanged(oldAdapter: android.support.v4.view.PagerAdapter, newAdapter: android.support.v4.view.PagerAdapter): void;
					}
					/**
					 * Used internally to monitor when adapters are switched.
					 */
					export class OnAdapterChangeListener implements android.support.v4.view.ViewPager.IOnAdapterChangeListener {
						constructor(implementation: android.support.v4.view.ViewPager.IOnAdapterChangeListener);
						public onAdapterChanged(oldAdapter: android.support.v4.view.PagerAdapter, newAdapter: android.support.v4.view.PagerAdapter): void;
					}
					/**
					 * A PageTransformer is invoked whenever a visible/attached page is scrolled. This offers an opportunity for the application to apply a custom transformation to the page views using animation properties.
					 */
					interface IPageTransformer {
						/**
						 * Apply a property transformation to the given page.
						 * @param page Apply the transformation to this page
						 * @param position Position of page relative to the current front-and-center
						 */
						transformPage(page: android.view.View, position: number): void;
					}
					export class ViewPositionComparator extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.view.ViewPager.ViewPositionComparator>;
						public compare(lhs: android.view.View, rhs: android.view.View): number;
					}
				}
				/**
				 * Jellybean MR1 - specific View API access.
				 */
				export class ViewCompatJellybeanMr1 extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.view.ViewCompatJellybeanMr1>;
					public static getLabelFor(view: android.view.View): number;
					public static setLabelFor(view: android.view.View, id: number): void;
				}
				/**
				 * Helper for accessing features in VelocityTracker introduced after API level 4 in a backwards compatible fashion.
				 */
				export class VelocityTrackerCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.view.VelocityTrackerCompat>;
					/**
					 * Call VelocityTracker#getXVelocity(int). If running on a pre-android.os.Build.VERSION_CODES#HONEYCOMB device, returns VelocityTracker#getXVelocity().
					 */
					public static getXVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
					/**
					 * Call VelocityTracker#getYVelocity(int). If running on a pre-android.os.Build.VERSION_CODES#HONEYCOMB device, returns VelocityTracker#getYVelocity().
					 */
					public static getYVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
				}
				export module VelocityTrackerCompat {
					/**
					 * Interface for the full API.
					 */
					interface IVelocityTrackerVersionImpl {
						getXVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
						getYVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
					}
					/**
					 * Interface for the full API.
					 */
					export class VelocityTrackerVersionImpl implements android.support.v4.view.VelocityTrackerCompat.IVelocityTrackerVersionImpl {
						constructor(implementation: android.support.v4.view.VelocityTrackerCompat.IVelocityTrackerVersionImpl);
						public getXVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
						public getYVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
					}
					/**
					 * Interface implementation that doesn't use anything about v4 APIs.
					 */
					export class BaseVelocityTrackerVersionImpl extends java.lang.Object implements android.support.v4.view.VelocityTrackerCompat.IVelocityTrackerVersionImpl {
						static class: java.lang.Class<android.support.v4.view.VelocityTrackerCompat.BaseVelocityTrackerVersionImpl>;
						public getXVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
						public getYVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
					}
					/**
					 * Interface implementation for devices with at least v11 APIs.
					 */
					export class HoneycombVelocityTrackerVersionImpl extends java.lang.Object implements android.support.v4.view.VelocityTrackerCompat.IVelocityTrackerVersionImpl {
						static class: java.lang.Class<android.support.v4.view.VelocityTrackerCompat.HoneycombVelocityTrackerVersionImpl>;
						public getXVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
						public getYVelocity(tracker: android.view.VelocityTracker, pointerId: number): number;
					}
				}
				export class ViewCompatHC extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.ViewCompatHC>;
					static getFrameTime(): any;
					public static setLayerType(view: android.view.View, layerType: number, paint: android.graphics.Paint): void;
					public static getLayerType(view: android.view.View): number;
				}
				export class PagerTitleStripIcs extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.PagerTitleStripIcs>;
					public static setSingleLineAllCaps(text: android.widget.TextView): void;
				}
				export module PagerTitleStripIcs {
					export class SingleLineAllCapsTransform extends android.text.method.SingleLineTransformationMethod {
						constructor(context: android.content.Context);
						static class: java.lang.Class<android.support.v4.view.PagerTitleStripIcs.SingleLineAllCapsTransform>;
						public getTransformation(source: string, view: android.view.View): string;
					}
				}
				/**
				 * Implementation of menu compatibility that can call Honeycomb APIs.
				 */
				export class MenuItemCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.view.MenuItemCompatHoneycomb>;
					public static setShowAsAction(item: android.view.IMenuItem, actionEnum: number): void;
					public static setActionView(item: android.view.IMenuItem, view: android.view.View): android.view.IMenuItem;
				}
			}
			export module database {
				/**
				 * Helper for accessing features in android.database.DatabaseUtils introduced after API level 4 in a backwards compatible fashion.
				 */
				export class DatabaseUtilsCompat extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.database.DatabaseUtilsCompat>;
					/**
					 * Concatenates two SQL WHERE clauses, handling empty or null values.
					 */
					public static concatenateWhere(a: string, b: string): string;
					/**
					 * Appends one set of selection args to another. This is useful when adding a selection argument to a user provided set.
					 */
					public static appendSelectionArgs(originalValues: native.Array<string>, newValues: native.Array<string>): native.Array<string>;
				}
			}
			export module widget {
				/**
				 * Static library support version of the framework's android.widget.CursorAdapter. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class CursorAdapter extends android.widget.BaseAdapter implements android.widget.IFilterable, android.support.v4.widget.CursorFilter.ICursorFilterClient {
					/**
					 * Constructor that always enables auto-requery.
					 * @param context c The cursor from which to get the data.
					 * @param c ontext The context
					 */
					constructor(context: android.content.Context, c: android.database.ICursor);
					/**
					 * Constructor that allows control over auto-requery. It is recommended you not use this, but instead #CursorAdapter(Context, Cursor, int). When using this constructor, #FLAG_REGISTER_CONTENT_OBSERVER will always be set.
					 * @param context c The cursor from which to get the data.
					 * @param c ontext The context
					 * @param autoRequery If true the adapter will call requery() on the
					 */
					constructor(context: android.content.Context, c: android.database.ICursor, autoRequery: boolean);
					/**
					 * Recommended constructor.
					 * @param context c The cursor from which to get the data.
					 * @param c ontext The context
					 * @param flags Flags used to determine the behavior of the adapter; may
					 */
					constructor(context: android.content.Context, c: android.database.ICursor, flags: number);
					/**
					 * If set the adapter will call requery() on the cursor whenever a content change notification is delivered. Implies #FLAG_REGISTER_CONTENT_OBSERVER.
					 */
					static FLAG_AUTO_REQUERY: number;
					/**
					 * If set the adapter will register a content observer on the cursor and will call #onContentChanged() when a notification comes in. Be careful when using this flag: you will need to unset the current Cursor from the adapter to avoid leaks due to its registered observers. This flag is not needed when using a CursorAdapter with a android.content.CursorLoader.
					 */
					static FLAG_REGISTER_CONTENT_OBSERVER: number;
					static class: java.lang.Class<android.support.v4.widget.CursorAdapter>;
					ChangeObserver: {
	new (): android.support.v4.widget.CursorAdapter.ChangeObserver;
};
					/**
					 *  Don't use this, use the normal constructor. This will be removed in the future.
					 */
					public init(context: android.content.Context, c: android.database.ICursor, autoRequery: boolean): void;
					public init(context: android.content.Context, c: android.database.ICursor, flags: number): void;
					/**
					 * Returns the cursor.
					 */
					public getCursor(): android.database.ICursor;
					/**
					 *  android.widget.ListAdapter#getCount()
					 */
					public getCount(): number;
					/**
					 *  android.widget.ListAdapter#getItem(int)
					 */
					public getItem(position: number): any;
					/**
					 *  android.widget.ListAdapter#getItemId(int)
					 */
					public getItemId(position: number): any;
					public hasStableIds(): boolean;
					/**
					 *  android.widget.ListAdapter#getView(int, View, ViewGroup)
					 */
					public getView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
					public getDropDownView(position: number, convertView: android.view.View, parent: android.view.ViewGroup): android.view.View;
					/**
					 * Makes a new view to hold the data pointed to by cursor.
					 * @param context Interface to application's global information
					 * @param cursor The cursor from which to get the data. The cursor is already
					 * @param parent The parent to which the new view is attached to
					 */
					public newView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
					/**
					 * Makes a new drop down view to hold the data pointed to by cursor.
					 * @param context Interface to application's global information
					 * @param cursor The cursor from which to get the data. The cursor is already
					 * @param parent The parent to which the new view is attached to
					 */
					public newDropDownView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
					/**
					 * Bind an existing view to the data pointed to by cursor
					 * @param view Existing view, returned earlier by newView
					 * @param context Interface to application's global information
					 * @param cursor The cursor from which to get the data. The cursor is already
					 */
					public bindView(view: android.view.View, context: android.content.Context, cursor: android.database.ICursor): void;
					/**
					 * Change the underlying cursor to a new cursor. If there is an existing cursor it will be closed. 
					 * @param cursor The new cursor to be used
					 */
					public changeCursor(cursor: android.database.ICursor): void;
					/**
					 * Swap in a new Cursor, returning the old Cursor. Unlike #changeCursor(Cursor), the returned old Cursor is <em>not</em> closed.
					 * @param newCursor The new cursor to be used.
					 */
					public swapCursor(newCursor: android.database.ICursor): android.database.ICursor;
					/**
					 * @param cursor the cursor to convert to a CharSequence
					 */
					public convertToString(cursor: android.database.ICursor): string;
					/**
					 * Runs a query with the specified constraint. This query is requested by the filter attached to this adapter.
					 * @param constraint the constraint with which the query must be filtered
					 */
					public runQueryOnBackgroundThread(constraint: string): android.database.ICursor;
					public getFilter(): android.widget.Filter;
					/**
					 * Returns the query filter provider used for filtering. When the provider is null, no filtering occurs.
					 */
					public getFilterQueryProvider(): android.widget.IFilterQueryProvider;
					/**
					 * Sets the query filter provider used to filter the current Cursor. The provider's android.widget.FilterQueryProvider#runQuery(CharSequence) method is invoked when filtering is requested by a client of this adapter.
					 * @param filterQueryProvider the filter query provider or null to remove it
					 */
					public setFilterQueryProvider(filterQueryProvider: android.widget.IFilterQueryProvider): void;
					/**
					 * Called when the ContentObserver on the cursor receives a change notification. The default implementation provides the auto-requery logic, but may be overridden by sub classes. ContentObserver#onChange(boolean)
					 */
					protected onContentChanged(): void;
				}
				export module CursorAdapter {
					export class ChangeObserver extends android.database.ContentObserver {
						static class: java.lang.Class<android.support.v4.widget.CursorAdapter.ChangeObserver>;
						public deliverSelfNotifications(): boolean;
						public onChange(selfChange: boolean): void;
						/**
						 * This method is called when a content change occurs. Includes the changed content Uri when available.
						 * @param selfChange True if this is a self-change notification.
						 * @param uri The Uri of the changed content, or null if unknown.
						 */
						onChange(selfChange: boolean, uri: android.net.Uri): void;
					}
					export class MyDataSetObserver extends android.database.DataSetObserver {
						static class: java.lang.Class<android.support.v4.widget.CursorAdapter.MyDataSetObserver>;
						public onChanged(): void;
						public onInvalidated(): void;
					}
				}
				/**
				 * Helper for accessing android.widget.EdgeEffect introduced after API level 4 in a backwards compatible fashion.
				 */
				export class EdgeEffectCompat extends java.lang.Object {
					/**
					 * Construct a new EdgeEffect themed using the given context.
					 * @param context Context to use for theming the effect
					 */
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.support.v4.widget.EdgeEffectCompat>;
					/**
					 * Set the size of this edge effect in pixels.
					 * @param width Effect width in pixels
					 * @param height Effect height in pixels
					 */
					public setSize(width: number, height: number): void;
					/**
					 * Reports if this EdgeEffectCompat's animation is finished. If this method returns false after a call to #draw(Canvas) the host widget should schedule another drawing pass to continue the animation.
					 */
					public isFinished(): boolean;
					/**
					 * Immediately finish the current animation. After this call #isFinished() will return true.
					 */
					public finish(): void;
					/**
					 * A view should call this when content is pulled away from an edge by the user. This will update the state of the current visual effect and its associated animation. The host view should always android.view.View#invalidate() if this method returns true and draw the results accordingly.
					 * @param deltaDistance Change in distance since the last call. Values may be 0 (no change) to
					 */
					public onPull(deltaDistance: number): boolean;
					/**
					 * Call when the object is released after being pulled. This will begin the "decay" phase of the effect. After calling this method the host view should android.view.View#invalidate() if this method returns true and thereby draw the results accordingly.
					 */
					public onRelease(): boolean;
					/**
					 * Call when the effect absorbs an impact at the given velocity. Used when a fling reaches the scroll boundary.
					 * @param velocity Velocity at impact in pixels per second.
					 */
					public onAbsorb(velocity: number): boolean;
					/**
					 * Draw into the provided canvas. Assumes that the canvas has been rotated accordingly and the size has been set. The effect will be drawn the full width of X=0 to X=width, beginning from Y=0 and extending to some factor < 1.f of height.
					 * @param canvas Canvas to draw into
					 */
					public draw(canvas: android.graphics.Canvas): boolean;
				}
				export module EdgeEffectCompat {
					export class EdgeEffectIcsImpl extends java.lang.Object implements android.support.v4.widget.EdgeEffectCompat.IEdgeEffectImpl {
						static class: java.lang.Class<android.support.v4.widget.EdgeEffectCompat.EdgeEffectIcsImpl>;
						public newEdgeEffect(context: android.content.Context): any;
						public setSize(edgeEffect: any, width: number, height: number): void;
						public isFinished(edgeEffect: any): boolean;
						public finish(edgeEffect: any): void;
						public onPull(edgeEffect: any, deltaDistance: number): boolean;
						public onRelease(edgeEffect: any): boolean;
						public onAbsorb(edgeEffect: any, velocity: number): boolean;
						public draw(edgeEffect: any, canvas: android.graphics.Canvas): boolean;
					}
					export class EdgeEffectImpl implements android.support.v4.widget.EdgeEffectCompat.IEdgeEffectImpl {
						constructor(implementation: android.support.v4.widget.EdgeEffectCompat.IEdgeEffectImpl);
						public newEdgeEffect(context: android.content.Context): any;
						public setSize(edgeEffect: any, width: number, height: number): void;
						public isFinished(edgeEffect: any): boolean;
						public finish(edgeEffect: any): void;
						public onPull(edgeEffect: any, deltaDistance: number): boolean;
						public onRelease(edgeEffect: any): boolean;
						public onAbsorb(edgeEffect: any, velocity: number): boolean;
						public draw(edgeEffect: any, canvas: android.graphics.Canvas): boolean;
					}
					/**
					 * Null implementation to use pre-ICS
					 */
					export class BaseEdgeEffectImpl extends java.lang.Object implements android.support.v4.widget.EdgeEffectCompat.IEdgeEffectImpl {
						static class: java.lang.Class<android.support.v4.widget.EdgeEffectCompat.BaseEdgeEffectImpl>;
						public newEdgeEffect(context: android.content.Context): any;
						public setSize(edgeEffect: any, width: number, height: number): void;
						public isFinished(edgeEffect: any): boolean;
						public finish(edgeEffect: any): void;
						public onPull(edgeEffect: any, deltaDistance: number): boolean;
						public onRelease(edgeEffect: any): boolean;
						public onAbsorb(edgeEffect: any, velocity: number): boolean;
						public draw(edgeEffect: any, canvas: android.graphics.Canvas): boolean;
					}
					interface IEdgeEffectImpl {
						newEdgeEffect(context: android.content.Context): any;
						setSize(edgeEffect: any, width: number, height: number): void;
						isFinished(edgeEffect: any): boolean;
						finish(edgeEffect: any): void;
						onPull(edgeEffect: any, deltaDistance: number): boolean;
						onRelease(edgeEffect: any): boolean;
						onAbsorb(edgeEffect: any, velocity: number): boolean;
						draw(edgeEffect: any, canvas: android.graphics.Canvas): boolean;
					}
				}
				/**
				 * The CursorFilter delegates most of the work to the android.widget.CursorAdapter. Subclasses should override these delegate methods to run the queries and convert the results into String that can be used by auto-completion widgets.
				 */
				export class CursorFilter extends android.widget.Filter {
					static class: java.lang.Class<android.support.v4.widget.CursorFilter>;
					public convertResultToString(resultValue: any): string;
					protected performFiltering(constraint: string): android.widget.Filter.FilterResults;
					protected publishResults(constraint: string, results: android.widget.Filter.FilterResults): void;
				}
				export module CursorFilter {
					interface ICursorFilterClient {
						convertToString(cursor: android.database.ICursor): string;
						runQueryOnBackgroundThread(constraint: string): android.database.ICursor;
						getCursor(): android.database.ICursor;
						changeCursor(cursor: android.database.ICursor): void;
					}
					export class CursorFilterClient implements android.support.v4.widget.CursorFilter.ICursorFilterClient {
						constructor(implementation: android.support.v4.widget.CursorFilter.ICursorFilterClient);
						public convertToString(cursor: android.database.ICursor): string;
						public runQueryOnBackgroundThread(constraint: string): android.database.ICursor;
						public getCursor(): android.database.ICursor;
						public changeCursor(cursor: android.database.ICursor): void;
					}
				}
				/**
				 * Static library support version of the framework's android.widget.ResourceCursorAdapter. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class ResourceCursorAdapter extends android.support.v4.widget.CursorAdapter {
					/**
					 * Constructor the enables auto-requery.
					 * @param context The context where the ListView associated with this adapter is running
					 * @param layout resource identifier of a layout file that defines the views
					 * @param c 
					 */
					constructor(context: android.content.Context, layout: number, c: android.database.ICursor);
					/**
					 * Constructor with default behavior as per CursorAdapter#CursorAdapter(Context, Cursor, boolean); it is recommended you not use this, but instead #ResourceCursorAdapter(Context, int, Cursor, int). When using this constructor, #FLAG_REGISTER_CONTENT_OBSERVER will always be set.
					 * @param context The context where the ListView associated with this adapter is running
					 * @param layout resource identifier of a layout file that defines the views
					 * @param c The cursor from which to get the data.
					 * @param autoRequery If true the adapter will call requery() on the
					 */
					constructor(context: android.content.Context, layout: number, c: android.database.ICursor, autoRequery: boolean);
					/**
					 * Standard constructor.
					 * @param context The context where the ListView associated with this adapter is running
					 * @param layout Resource identifier of a layout file that defines the views
					 * @param c The cursor from which to get the data.
					 * @param flags Flags used to determine the behavior of the adapter,
					 */
					constructor(context: android.content.Context, layout: number, c: android.database.ICursor, flags: number);
					static class: java.lang.Class<android.support.v4.widget.ResourceCursorAdapter>;
					/**
					 * Inflates view(s) from the specified XML file. android.widget.CursorAdapter#newView(android.content.Context, android.database.Cursor, ViewGroup)
					 */
					public newView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
					public newDropDownView(context: android.content.Context, cursor: android.database.ICursor, parent: android.view.ViewGroup): android.view.View;
					/**
					 * @param layout the layout resources used to create item views
					 */
					public setViewResource(layout: number): void;
					/**
					 * @param dropDownLayout the layout resources used to create drop down views
					 */
					public setDropDownViewResource(dropDownLayout: number): void;
				}
				/**
				 * Static library support version of the framework's android.widget.SimpleCursorAdapter. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class SimpleCursorAdapter extends android.support.v4.widget.ResourceCursorAdapter {
					/**
					 * Constructor the enables auto-requery.
					 */
					constructor(context: android.content.Context, layout: number, c: android.database.ICursor, from: native.Array<string>, to: native.Array<number>);
					/**
					 * Standard constructor. 
					 * @param context The context where the ListView associated with this
					 * @param layout resource identifier of a layout file that defines the views
					 * @param c The database cursor. Can be null if the cursor is not available yet.
					 * @param from A list of column names representing the data to bind to the UI. Can be null
					 * @param to The views that should display column in the "from" parameter.
					 * @param flags Flags used to determine the behavior of the adapter,
					 */
					constructor(context: android.content.Context, layout: number, c: android.database.ICursor, from: native.Array<string>, to: native.Array<number>, flags: number);
					static class: java.lang.Class<android.support.v4.widget.SimpleCursorAdapter>;
					/**
					 * Binds all of the field names passed into the "to" parameter of the constructor with their corresponding cursor columns as specified in the "from" parameter.
					 */
					public bindView(view: android.view.View, context: android.content.Context, cursor: android.database.ICursor): void;
					/**
					 * Returns the ViewBinder used to bind data to views.
					 */
					public getViewBinder(): android.support.v4.widget.SimpleCursorAdapter.IViewBinder;
					/**
					 * Sets the binder used to bind data to views.
					 * @param viewBinder the binder used to bind data to views, can be null to
					 */
					public setViewBinder(viewBinder: android.support.v4.widget.SimpleCursorAdapter.IViewBinder): void;
					/**
					 * Called by bindView() to set the image for an ImageView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to an ImageView.
					 * @param v ImageView to receive an image
					 * @param value the value retrieved from the cursor
					 */
					public setViewImage(v: android.widget.ImageView, value: string): void;
					/**
					 * Called by bindView() to set the text for a TextView but only if there is no existing ViewBinder or if the existing ViewBinder cannot handle binding to an TextView.
					 * @param v TextView to receive text
					 * @param text the text to be set for the TextView
					 */
					public setViewText(v: android.widget.TextView, text: string): void;
					/**
					 * Return the index of the column used to get a String representation of the Cursor.
					 */
					public getStringConversionColumn(): number;
					/**
					 * Defines the index of the column in the Cursor used to get a String representation of that Cursor. The column is used to convert the Cursor to a String only when the current CursorToStringConverter is null.
					 * @param stringConversionColumn a valid index in the current Cursor or -1 to use the default
					 */
					public setStringConversionColumn(stringConversionColumn: number): void;
					/**
					 * Returns the converter used to convert the filtering Cursor into a String.
					 */
					public getCursorToStringConverter(): android.support.v4.widget.SimpleCursorAdapter.ICursorToStringConverter;
					/**
					 * Sets the converter used to convert the filtering Cursor into a String.
					 * @param cursorToStringConverter the Cursor to String converter, or
					 */
					public setCursorToStringConverter(cursorToStringConverter: android.support.v4.widget.SimpleCursorAdapter.ICursorToStringConverter): void;
					/**
					 * Returns a CharSequence representation of the specified Cursor as defined by the current CursorToStringConverter. If no CursorToStringConverter has been set, the String conversion column is used instead. If the conversion column is -1, the returned String is empty if the cursor is null or Cursor.toString().
					 * @param cursor the Cursor to convert to a CharSequence
					 */
					public convertToString(cursor: android.database.ICursor): string;
					public swapCursor(c: android.database.ICursor): android.database.ICursor;
					/**
					 * Change the cursor and change the column-to-view mappings at the same time. 
					 * @param c The database cursor. Can be null if the cursor is not available yet.
					 * @param from A list of column names representing the data to bind to the UI. Can be null
					 * @param to The views that should display column in the "from" parameter.
					 */
					public changeCursorAndColumns(c: android.database.ICursor, from: native.Array<string>, to: native.Array<number>): void;
				}
				export module SimpleCursorAdapter {
					/**
					 * This class can be used by external clients of SimpleCursorAdapter to bind values fom the Cursor to views.
					 */
					interface IViewBinder {
						/**
						 * Binds the Cursor column defined by the specified index to the specified view.
						 * @param view the view to bind the data to
						 * @param cursor the cursor to get the data from
						 * @param columnIndex the column at which the data can be found in the cursor
						 */
						setViewValue(view: android.view.View, cursor: android.database.ICursor, columnIndex: number): boolean;
					}
					/**
					 * This class can be used by external clients of SimpleCursorAdapter to define how the Cursor should be converted to a String.
					 */
					interface ICursorToStringConverter {
						/**
						 * Returns a CharSequence representing the specified Cursor.
						 * @param cursor the cursor for which a CharSequence representation
						 */
						convertToString(cursor: android.database.ICursor): string;
					}
					/**
					 * This class can be used by external clients of SimpleCursorAdapter to bind values fom the Cursor to views.
					 */
					export class ViewBinder implements android.support.v4.widget.SimpleCursorAdapter.IViewBinder {
						constructor(implementation: android.support.v4.widget.SimpleCursorAdapter.IViewBinder);
						/**
						 * Binds the Cursor column defined by the specified index to the specified view.
						 * @param view the view to bind the data to
						 * @param cursor the cursor to get the data from
						 * @param columnIndex the column at which the data can be found in the cursor
						 */
						public setViewValue(view: android.view.View, cursor: android.database.ICursor, columnIndex: number): boolean;
					}
					/**
					 * This class can be used by external clients of SimpleCursorAdapter to define how the Cursor should be converted to a String.
					 */
					export class CursorToStringConverter implements android.support.v4.widget.SimpleCursorAdapter.ICursorToStringConverter {
						constructor(implementation: android.support.v4.widget.SimpleCursorAdapter.ICursorToStringConverter);
						/**
						 * Returns a CharSequence representing the specified Cursor.
						 * @param cursor the cursor for which a CharSequence representation
						 */
						public convertToString(cursor: android.database.ICursor): string;
					}
				}
				/**
				 * Provides access to new android.widget.Scroller Scroller APIs when available.
				 */
				export class ScrollerCompat extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.widget.ScrollerCompat>;
					public static from(context: android.content.Context): android.support.v4.widget.ScrollerCompat;
					/**
					 * Returns whether the scroller has finished scrolling.
					 */
					public isFinished(): boolean;
					/**
					 * Returns how long the scroll event will take, in milliseconds.
					 */
					public getDuration(): number;
					/**
					 * Returns the current X offset in the scroll.
					 */
					public getCurrX(): number;
					/**
					 * Returns the current Y offset in the scroll.
					 */
					public getCurrY(): number;
					/**
					 * Returns the current velocity.
					 */
					public getCurrVelocity(): number;
					/**
					 * Call this when you want to know the new location. If it returns true, the animation is not yet finished. loc will be altered to provide the new location.
					 */
					public computeScrollOffset(): boolean;
					/**
					 * Start scrolling by providing a starting point and the distance to travel. The scroll will use the default value of 250 milliseconds for the duration.
					 * @param startX Starting horizontal scroll offset in pixels. Positive
					 * @param startY Starting vertical scroll offset in pixels. Positive numbers
					 * @param dx Horizontal distance to travel. Positive numbers will scroll the
					 * @param dy Vertical distance to travel. Positive numbers will scroll the
					 */
					public startScroll(startX: number, startY: number, dx: number, dy: number): void;
					/**
					 * Start scrolling by providing a starting point and the distance to travel.
					 * @param startX Starting horizontal scroll offset in pixels. Positive
					 * @param startY Starting vertical scroll offset in pixels. Positive numbers
					 * @param dx Horizontal distance to travel. Positive numbers will scroll the
					 * @param dy Vertical distance to travel. Positive numbers will scroll the
					 * @param duration Duration of the scroll in milliseconds.
					 */
					public startScroll(startX: number, startY: number, dx: number, dy: number, duration: number): void;
					/**
					 * Start scrolling based on a fling gesture. The distance travelled will depend on the initial velocity of the fling.
					 * @param startX Starting point of the scroll (X)
					 * @param startY Starting point of the scroll (Y)
					 * @param velocityX Initial velocity of the fling (X) measured in pixels per
					 * @param velocityY Initial velocity of the fling (Y) measured in pixels per
					 * @param minX Minimum X value. The scroller will not scroll past this
					 * @param maxX Maximum X value. The scroller will not scroll past this
					 * @param minY Minimum Y value. The scroller will not scroll past this
					 * @param maxY Maximum Y value. The scroller will not scroll past this
					 */
					public fling(startX: number, startY: number, velocityX: number, velocityY: number, minX: number, maxX: number, minY: number, maxY: number): void;
					/**
					 * Stops the animation. Contrary to #forceFinished(boolean), aborting the animating cause the scroller to move to the final x and y position
					 */
					public abortAnimation(): void;
				}
				export module ScrollerCompat {
					export class ScrollerCompatImplIcs extends android.support.v4.widget.ScrollerCompat {
						constructor(context: android.content.Context);
						static class: java.lang.Class<android.support.v4.widget.ScrollerCompat.ScrollerCompatImplIcs>;
						public getCurrVelocity(): number;
					}
				}
				/**
				 * Helper for accessing features in android.widget.SearchView introduced after API level 4 in a backwards compatible fashion.
				 */
				export class SearchViewCompat extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.widget.SearchViewCompat>;
					/**
					 * Creates a new SearchView.
					 * @param context The Context the view is running in.
					 */
					public static newSearchView(context: android.content.Context): android.view.View;
					/**
					 * Sets a listener for user actions within the SearchView.
					 * @param searchView The SearchView in which to register the listener.
					 * @param listener the listener object that receives callbacks when the user performs
					 */
					public static setOnQueryTextListener(searchView: android.view.View, listener: android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat): void;
				}
				export module SearchViewCompat {
					export class SearchViewCompatStubImpl extends java.lang.Object implements android.support.v4.widget.SearchViewCompat.ISearchViewCompatImpl {
						static class: java.lang.Class<android.support.v4.widget.SearchViewCompat.SearchViewCompatStubImpl>;
						public newSearchView(context: android.content.Context): android.view.View;
						public newOnQueryTextListener(listener: android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat): any;
						public setOnQueryTextListener(searchView: any, listener: any): void;
					}
					export class SearchViewCompatHoneycombImpl extends android.support.v4.widget.SearchViewCompat.SearchViewCompatStubImpl {
						static class: java.lang.Class<android.support.v4.widget.SearchViewCompat.SearchViewCompatHoneycombImpl>;
						public newSearchView(context: android.content.Context): android.view.View;
						public newOnQueryTextListener(listener: android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat): any;
						public setOnQueryTextListener(searchView: any, listener: any): void;
					}
					/**
					 * Callbacks for changes to the query text.
					 */
					export class OnQueryTextListenerCompat extends java.lang.Object {
						constructor();
						static class: java.lang.Class<android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat>;
						/**
						 * Called when the user submits the query. This could be due to a key press on the keyboard or due to pressing a submit button. The listener can override the standard behavior by returning true to indicate that it has handled the submit request. Otherwise return false to let the SearchView handle the submission by launching any associated intent.
						 * @param query the query text that is to be submitted
						 */
						public onQueryTextSubmit(query: string): boolean;
						/**
						 * Called when the query text is changed by the user.
						 * @param newText the new content of the query text field.
						 */
						public onQueryTextChange(newText: string): boolean;
					}
					export class SearchViewCompatImpl implements android.support.v4.widget.SearchViewCompat.ISearchViewCompatImpl {
						constructor(implementation: android.support.v4.widget.SearchViewCompat.ISearchViewCompatImpl);
						public newSearchView(context: android.content.Context): android.view.View;
						public newOnQueryTextListener(listener: android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat): any;
						public setOnQueryTextListener(searchView: any, listener: any): void;
					}
					interface ISearchViewCompatImpl {
						newSearchView(context: android.content.Context): android.view.View;
						newOnQueryTextListener(listener: android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat): any;
						setOnQueryTextListener(searchView: any, listener: any): void;
					}
				}
				/**
				 * Stub implementation that contains a real EdgeEffect on ICS.
				 */
				export class EdgeEffectCompatIcs extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.widget.EdgeEffectCompatIcs>;
					public static newEdgeEffect(context: android.content.Context): any;
					public static setSize(edgeEffect: any, width: number, height: number): void;
					public static isFinished(edgeEffect: any): boolean;
					public static finish(edgeEffect: any): void;
					public static onPull(edgeEffect: any, deltaDistance: number): boolean;
					public static onRelease(edgeEffect: any): boolean;
					public static onAbsorb(edgeEffect: any, velocity: number): boolean;
					public static draw(edgeEffect: any, canvas: android.graphics.Canvas): boolean;
				}
				/**
				 * ICS API access for Scroller
				 */
				export class ScrollerCompatIcs extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.widget.ScrollerCompatIcs>;
					public static getCurrVelocity(scroller: android.widget.Scroller): number;
				}
				/**
				 * Implementation of SearchView compatibility that can call Honeycomb APIs.
				 */
				export class SearchViewCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.widget.SearchViewCompatHoneycomb>;
					public static newSearchView(context: android.content.Context): android.view.View;
					public static newOnQueryTextListener(listener: android.support.v4.widget.SearchViewCompatHoneycomb.IOnQueryTextListenerCompatBridge): any;
					public static setOnQueryTextListener(searchView: any, listener: any): void;
				}
				export module SearchViewCompatHoneycomb {
					export class OnQueryTextListenerCompatBridge implements android.support.v4.widget.SearchViewCompatHoneycomb.IOnQueryTextListenerCompatBridge {
						constructor(implementation: android.support.v4.widget.SearchViewCompatHoneycomb.IOnQueryTextListenerCompatBridge);
						public onQueryTextSubmit(query: string): boolean;
						public onQueryTextChange(newText: string): boolean;
					}
					interface IOnQueryTextListenerCompatBridge {
						onQueryTextSubmit(query: string): boolean;
						onQueryTextChange(newText: string): boolean;
					}
				}
			}
			export module os {
				export class ParcelableCompatCreatorHoneycombMR2<T> extends java.lang.Object {
					constructor(callbacks: android.support.v4.os.IParcelableCompatCreatorCallbacks<T>);
					static class: java.lang.Class<android.support.v4.os.ParcelableCompatCreatorHoneycombMR2<any>>;
					public createFromParcel(input: android.os.Parcel): T;
					public createFromParcel(input: android.os.Parcel, loader: java.lang.ClassLoader): T;
					public newArray(size: number): native.Array<T>;
				}
				export class ParcelableCompatCreatorHoneycombMR2Stub extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.os.ParcelableCompatCreatorHoneycombMR2Stub>;
					static instantiate<T>(callbacks: android.support.v4.os.IParcelableCompatCreatorCallbacks<T>): android.os.Parcelable.ICreator<T>;
				}
				/**
				 * Callbacks a Parcelable creator should implement.
				 */
				interface IParcelableCompatCreatorCallbacks<T> {
					/**
					 * Create a new instance of the Parcelable class, instantiating it from the given Parcel whose data had previously been written by Parcelable#writeToParcel Parcelable.writeToParcel() and using the given ClassLoader.
					 * @param input in The Parcel to read the object's data from.
					 * @param loader The ClassLoader that this object is being created in.
					 */
					createFromParcel(input: android.os.Parcel, loader: java.lang.ClassLoader): T;
					/**
					 * Create a new array of the Parcelable class.
					 * @param size Size of the array.
					 */
					newArray(size: number): native.Array<T>;
				}
				/**
				 * Callbacks a Parcelable creator should implement.
				 */
				export class ParcelableCompatCreatorCallbacks<T> implements android.support.v4.os.IParcelableCompatCreatorCallbacks<T> {
					constructor(implementation: android.support.v4.os.IParcelableCompatCreatorCallbacks<T>);
					/**
					 * Create a new instance of the Parcelable class, instantiating it from the given Parcel whose data had previously been written by Parcelable#writeToParcel Parcelable.writeToParcel() and using the given ClassLoader.
					 * @param input in The Parcel to read the object's data from.
					 * @param loader The ClassLoader that this object is being created in.
					 */
					public createFromParcel(input: android.os.Parcel, loader: java.lang.ClassLoader): T;
					/**
					 * Create a new array of the Parcelable class.
					 * @param size Size of the array.
					 */
					public newArray(size: number): native.Array<T>;
				}
				/**
				 * Helper for accessing features in android.os.Parcelable introduced after API level 4 in a backwards compatible fashion.
				 */
				export class ParcelableCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.os.ParcelableCompat>;
					/**
					 * Factory method for Parcelable.Creator.
					 * @param callbacks Creator callbacks implementation.
					 */
					public static newCreator<T>(callbacks: android.support.v4.os.IParcelableCompatCreatorCallbacks<T>): android.os.Parcelable.ICreator<T>;
				}
				export module ParcelableCompat {
					export class CompatCreator<T> extends java.lang.Object {
						constructor(callbacks: android.support.v4.os.IParcelableCompatCreatorCallbacks<T>);
						static class: java.lang.Class<android.support.v4.os.ParcelableCompat.CompatCreator<any>>;
						public createFromParcel(source: android.os.Parcel): T;
						public newArray(size: number): native.Array<T>;
					}
				}
			}
			export module util {
				/**
				 * SparseArray mapping longs to Objects. Unlike a normal array of Objects, there can be gaps in the indices. It is intended to be more efficient than using a HashMap to map Longs to Objects.
				 */
				export class LongSparseArray<E> extends java.lang.Object implements java.lang.ICloneable {
					/**
					 * Creates a new LongSparseArray containing no mappings.
					 */
					constructor();
					/**
					 * Creates a new LongSparseArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
					 */
					constructor(initialCapacity: number);
					static class: java.lang.Class<android.support.v4.util.LongSparseArray<any>>;
					public clone(): android.support.v4.util.LongSparseArray<E>;
					/**
					 * Gets the Object mapped from the specified key, or <code>null</code> if no such mapping has been made.
					 */
					public get(key: number): E;
					/**
					 * Gets the Object mapped from the specified key, or the specified Object if no such mapping has been made.
					 */
					public get(key: number, valueIfKeyNotFound: E): E;
					/**
					 * Removes the mapping from the specified key, if there was any.
					 */
					public delete(key: number): void;
					/**
					 * Alias for #delete(long).
					 */
					public remove(key: number): void;
					/**
					 * Removes the mapping at the specified index.
					 */
					public removeAt(index: number): void;
					/**
					 * Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
					 */
					public put(key: number, value: E): void;
					/**
					 * Returns the number of key-value mappings that this LongSparseArray currently stores.
					 */
					public size(): number;
					/**
					 * Given an index in the range <code>0...size()-1</code>, returns the key from the <code>index</code>th key-value mapping that this LongSparseArray stores.
					 */
					public keyAt(index: number): any;
					/**
					 * Given an index in the range <code>0...size()-1</code>, returns the value from the <code>index</code>th key-value mapping that this LongSparseArray stores.
					 */
					public valueAt(index: number): E;
					/**
					 * Given an index in the range <code>0...size()-1</code>, sets a new value for the <code>index</code>th key-value mapping that this LongSparseArray stores.
					 */
					public setValueAt(index: number, value: E): void;
					/**
					 * Returns the index for which #keyAt would return the specified key, or a negative number if the specified key is not mapped.
					 */
					public indexOfKey(key: number): number;
					/**
					 * Returns an index for which #valueAt would return the specified key, or a negative number if no keys map to the specified value. Beware that this is a linear search, unlike lookups by key, and that multiple keys can map to the same value and this will find only one of them.
					 */
					public indexOfValue(value: E): number;
					/**
					 * Removes all key-value mappings from this LongSparseArray.
					 */
					public clear(): void;
					/**
					 * Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.
					 */
					public append(key: number, value: E): void;
					public static idealByteArraySize(need: number): number;
					public static idealLongArraySize(need: number): number;
				}
				/**
				 * Static library support version of the framework's android.util.AtomicFile, a helper class for performing atomic operations on a file by creating a backup file until a write has successfully completed.
				 */
				export class AtomicFile extends java.lang.Object {
					/**
					 * Create a new AtomicFile for a file located at the given File path. The secondary backup file will be the same file path with ".bak" appended.
					 */
					constructor(baseName: java.io.File);
					static class: java.lang.Class<android.support.v4.util.AtomicFile>;
					/**
					 * Return the path to the base file. You should not generally use this, as the data at that path may not be valid.
					 */
					public getBaseFile(): java.io.File;
					/**
					 * Delete the atomic file. This deletes both the base and backup files.
					 */
					public delete(): void;
					/**
					 * Start a new write operation on the file. This returns a FileOutputStream to which you can write the new file data. The existing file is replaced with the new data. You <em>must not</em> directly close the given FileOutputStream; instead call either #finishWrite(FileOutputStream) or #failWrite(FileOutputStream).
					 */
					public startWrite(): java.io.FileOutputStream;
					/**
					 * Call when you have successfully finished writing to the stream returned by #startWrite(). This will close, sync, and commit the new data. The next attempt to read the atomic file will return the new file stream.
					 */
					public finishWrite(str: java.io.FileOutputStream): void;
					/**
					 * Call when you have failed for some reason at writing to the stream returned by #startWrite(). This will close the current write stream, and roll back to the previous state of the file.
					 */
					public failWrite(str: java.io.FileOutputStream): void;
					/**
					 * Open the atomic file for reading. If there previously was an incomplete write, this will roll back to the last good data before opening for read. You should call close() on the FileInputStream when you are done reading from it.
					 */
					public openRead(): java.io.FileInputStream;
					/**
					 * A convenience for #openRead() that also reads all of the file contents into a byte array which is returned.
					 */
					public readFully(): native.Array<number>;
					static sync(stream: java.io.FileOutputStream): boolean;
				}
				/**
				 * Static library version of android.util.LruCache. Used to write apps that run on API levels prior to 12. When running on API level 12 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class LruCache<K, V> extends java.lang.Object {
					/**
					 * @param maxSize for caches that do not override {@link #sizeOf}, this is
					 */
					constructor(maxSize: number);
					static class: java.lang.Class<android.support.v4.util.LruCache<any, any>>;
					/**
					 * Returns the value for key if it exists in the cache or can be created by #create. If a value was returned, it is moved to the head of the queue. This returns null if a value is not cached and cannot be created.
					 */
					public get(key: K): V;
					/**
					 * Caches value for key. The value is moved to the head of the queue.
					 */
					public put(key: K, value: V): V;
					/**
					 * Remove the eldest entries until the total of remaining entries is at or below the requested size.
					 * @param maxSize the maximum size of the cache before returning. May be -1
					 */
					public trimToSize(maxSize: number): void;
					/**
					 * Removes the entry for key if it exists.
					 */
					public remove(key: K): V;
					/**
					 * Called for entries that have been evicted or removed. This method is invoked when a value is evicted to make space, removed by a call to #remove, or replaced by a call to #put. The default implementation does nothing.
					 * @param evicted true if the entry is being removed to make space, false
					 * @param key newValue the new value for {@code key}, if it exists. If non-null,
					 * @param oldValue 
					 * @param newValue 
					 */
					protected entryRemoved(evicted: boolean, key: K, oldValue: V, newValue: V): void;
					/**
					 * Called after a cache miss to compute a value for the corresponding key. Returns the computed value or null if no value can be computed. The default implementation returns null.
					 */
					protected create(key: K): V;
					/**
					 * Returns the size of the entry for key and value in user-defined units. The default implementation returns 1 so that size is the number of entries and max size is the maximum number of entries.
					 */
					protected sizeOf(key: K, value: V): number;
					/**
					 * Clear the cache, calling #entryRemoved on each removed entry.
					 */
					public evictAll(): void;
					/**
					 * For caches that do not override #sizeOf, this returns the number of entries in the cache. For all other caches, this returns the sum of the sizes of the entries in this cache.
					 */
					public size(): number;
					/**
					 * For caches that do not override #sizeOf, this returns the maximum number of entries in the cache. For all other caches, this returns the maximum sum of the sizes of the entries in this cache.
					 */
					public maxSize(): number;
					/**
					 * Returns the number of times #get returned a value.
					 */
					public hitCount(): number;
					/**
					 * Returns the number of times #get returned null or required a new value to be created.
					 */
					public missCount(): number;
					/**
					 * Returns the number of times #create(Object) returned a value.
					 */
					public createCount(): number;
					/**
					 * Returns the number of times #put was called.
					 */
					public putCount(): number;
					/**
					 * Returns the number of values that have been evicted.
					 */
					public evictionCount(): number;
					/**
					 * Returns a copy of the current contents of the cache, ordered from least recently accessed to most recently accessed.
					 */
					public snapshot(): java.util.IMap<K, V>;
					public toString(): string;
				}
				/**
				 * A copy of Honeycomb's android.util.SparseArray, that provides a removeAt() method.
				 */
				export class SparseArrayCompat<E> extends java.lang.Object {
					/**
					 * Creates a new SparseArray containing no mappings.
					 */
					constructor();
					/**
					 * Creates a new SparseArray containing no mappings that will not require any additional memory allocation to store the specified number of mappings.
					 */
					constructor(initialCapacity: number);
					static class: java.lang.Class<android.support.v4.util.SparseArrayCompat<any>>;
					/**
					 * Gets the Object mapped from the specified key, or <code>null</code> if no such mapping has been made.
					 */
					public get(key: number): E;
					/**
					 * Gets the Object mapped from the specified key, or the specified Object if no such mapping has been made.
					 */
					public get(key: number, valueIfKeyNotFound: E): E;
					/**
					 * Removes the mapping from the specified key, if there was any.
					 */
					public delete(key: number): void;
					/**
					 * Alias for #delete(int).
					 */
					public remove(key: number): void;
					/**
					 * Removes the mapping at the specified index.
					 */
					public removeAt(index: number): void;
					/**
					 * Remove a range of mappings as a batch.
					 * @param index Index to begin at
					 * @param size Number of mappings to remove
					 */
					public removeAtRange(index: number, size: number): void;
					/**
					 * Adds a mapping from the specified key to the specified value, replacing the previous mapping from the specified key if there was one.
					 */
					public put(key: number, value: E): void;
					/**
					 * Returns the number of key-value mappings that this SparseArray currently stores.
					 */
					public size(): number;
					/**
					 * Given an index in the range <code>0...size()-1</code>, returns the key from the <code>index</code>th key-value mapping that this SparseArray stores.
					 */
					public keyAt(index: number): number;
					/**
					 * Given an index in the range <code>0...size()-1</code>, returns the value from the <code>index</code>th key-value mapping that this SparseArray stores.
					 */
					public valueAt(index: number): E;
					/**
					 * Given an index in the range <code>0...size()-1</code>, sets a new value for the <code>index</code>th key-value mapping that this SparseArray stores.
					 */
					public setValueAt(index: number, value: E): void;
					/**
					 * Returns the index for which #keyAt would return the specified key, or a negative number if the specified key is not mapped.
					 */
					public indexOfKey(key: number): number;
					/**
					 * Returns an index for which #valueAt would return the specified key, or a negative number if no keys map to the specified value. Beware that this is a linear search, unlike lookups by key, and that multiple keys can map to the same value and this will find only one of them.
					 */
					public indexOfValue(value: E): number;
					/**
					 * Removes all key-value mappings from this SparseArray.
					 */
					public clear(): void;
					/**
					 * Puts a key/value pair into the array, optimizing for the case where the key is greater than all existing keys in the array.
					 */
					public append(key: number, value: E): void;
					static idealByteArraySize(need: number): number;
					static idealIntArraySize(need: number): number;
				}
			}
			export module net {
				/**
				 * Helper for accessing features in ConnectivityManager introduced after API level 16 in a backwards compatible fashion.
				 */
				export class ConnectivityManagerCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompat>;
					/**
					 * Returns if the currently active data network is metered. A network is classified as metered when the user is sensitive to heavy data usage on that connection. You should check this before doing large data transfers, and warn the user or delay the operation until another network is available.
					 */
					public static isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
					/**
					 * Return the NetworkInfo that caused the given ConnectivityManager#CONNECTIVITY_ACTION broadcast. This obtains the current state from ConnectivityManager instead of using the potentially-stale value from ConnectivityManager#EXTRA_NETWORK_INFO.
					 */
					public static getNetworkInfoFromBroadcast(cm: android.net.ConnectivityManager, intent: android.content.Intent): android.net.NetworkInfo;
				}
				export module ConnectivityManagerCompat {
					export class JellyBeanConnectivityManagerCompatImpl extends java.lang.Object implements android.support.v4.net.ConnectivityManagerCompat.IConnectivityManagerCompatImpl {
						static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompat.JellyBeanConnectivityManagerCompatImpl>;
						public isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
					}
					export class GingerbreadConnectivityManagerCompatImpl extends java.lang.Object implements android.support.v4.net.ConnectivityManagerCompat.IConnectivityManagerCompatImpl {
						static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompat.GingerbreadConnectivityManagerCompatImpl>;
						public isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
					}
					export class BaseConnectivityManagerCompatImpl extends java.lang.Object implements android.support.v4.net.ConnectivityManagerCompat.IConnectivityManagerCompatImpl {
						static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompat.BaseConnectivityManagerCompatImpl>;
						public isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
					}
					interface IConnectivityManagerCompatImpl {
						isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
					}
					export class ConnectivityManagerCompatImpl implements android.support.v4.net.ConnectivityManagerCompat.IConnectivityManagerCompatImpl {
						constructor(implementation: android.support.v4.net.ConnectivityManagerCompat.IConnectivityManagerCompatImpl);
						public isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
					}
					export class HoneycombMR2ConnectivityManagerCompatImpl extends java.lang.Object implements android.support.v4.net.ConnectivityManagerCompat.IConnectivityManagerCompatImpl {
						static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompat.HoneycombMR2ConnectivityManagerCompatImpl>;
						public isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
					}
				}
				/**
				 * Helper for accessing features in TrafficStats introduced after API level 14 in a backwards compatible fashion.
				 */
				export class TrafficStatsCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.net.TrafficStatsCompat>;
					/**
					 * Clear active tag used when accounting Socket traffic originating from the current thread.
					 */
					public static clearThreadStatsTag(): void;
					/**
					 * Get the active tag used when accounting Socket traffic originating from the current thread. Only one active tag per thread is supported. #tagSocket(Socket).
					 */
					public static getThreadStatsTag(): number;
					/**
					 * Increment count of network operations performed under the accounting tag currently active on the calling thread. This can be used to derive bytes-per-operation.
					 * @param operationCount Number of operations to increment count by.
					 */
					public static incrementOperationCount(operationCount: number): void;
					/**
					 * Increment count of network operations performed under the given accounting tag. This can be used to derive bytes-per-operation.
					 * @param tag Accounting tag used in {@link #setThreadStatsTag(int)}.
					 * @param operationCount Number of operations to increment count by.
					 */
					public static incrementOperationCount(tag: number, operationCount: number): void;
					/**
					 * Set active tag to use when accounting Socket traffic originating from the current thread. Only one active tag per thread is supported.
					 */
					public static setThreadStatsTag(tag: number): void;
					/**
					 * Tag the given Socket with any statistics parameters active for the current thread. Subsequent calls always replace any existing parameters. When finished, call #untagSocket(Socket) to remove statistics parameters.
					 */
					public static tagSocket(socket: java.net.Socket): void;
					/**
					 * Remove any statistics parameters from the given Socket.
					 */
					public static untagSocket(socket: java.net.Socket): void;
				}
				export module TrafficStatsCompat {
					export class TrafficStatsCompatImpl implements android.support.v4.net.TrafficStatsCompat.ITrafficStatsCompatImpl {
						constructor(implementation: android.support.v4.net.TrafficStatsCompat.ITrafficStatsCompatImpl);
						public clearThreadStatsTag(): void;
						public getThreadStatsTag(): number;
						public incrementOperationCount(operationCount: number): void;
						public incrementOperationCount(tag: number, operationCount: number): void;
						public setThreadStatsTag(tag: number): void;
						public tagSocket(socket: java.net.Socket): void;
						public untagSocket(socket: java.net.Socket): void;
					}
					export class IcsTrafficStatsCompatImpl extends java.lang.Object implements android.support.v4.net.TrafficStatsCompat.ITrafficStatsCompatImpl {
						static class: java.lang.Class<android.support.v4.net.TrafficStatsCompat.IcsTrafficStatsCompatImpl>;
						public clearThreadStatsTag(): void;
						public getThreadStatsTag(): number;
						public incrementOperationCount(operationCount: number): void;
						public incrementOperationCount(tag: number, operationCount: number): void;
						public setThreadStatsTag(tag: number): void;
						public tagSocket(socket: java.net.Socket): void;
						public untagSocket(socket: java.net.Socket): void;
					}
					interface ITrafficStatsCompatImpl {
						clearThreadStatsTag(): void;
						getThreadStatsTag(): number;
						incrementOperationCount(operationCount: number): void;
						incrementOperationCount(tag: number, operationCount: number): void;
						setThreadStatsTag(tag: number): void;
						tagSocket(socket: java.net.Socket): void;
						untagSocket(socket: java.net.Socket): void;
					}
					export class BaseTrafficStatsCompatImpl extends java.lang.Object implements android.support.v4.net.TrafficStatsCompat.ITrafficStatsCompatImpl {
						static class: java.lang.Class<android.support.v4.net.TrafficStatsCompat.BaseTrafficStatsCompatImpl>;
						public clearThreadStatsTag(): void;
						public getThreadStatsTag(): number;
						public incrementOperationCount(operationCount: number): void;
						public incrementOperationCount(tag: number, operationCount: number): void;
						public setThreadStatsTag(tag: number): void;
						public tagSocket(socket: java.net.Socket): void;
						public untagSocket(socket: java.net.Socket): void;
					}
					export module BaseTrafficStatsCompatImpl {
						export class SocketTags extends java.lang.Object {
							statsTag: number;
							static class: java.lang.Class<android.support.v4.net.TrafficStatsCompat.BaseTrafficStatsCompatImpl.SocketTags>;
						}
					}
				}
				/**
				 * Implementation of TrafficStatsCompat that can call ICS APIs.
				 */
				export class TrafficStatsCompatIcs extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.net.TrafficStatsCompatIcs>;
					public static clearThreadStatsTag(): void;
					public static getThreadStatsTag(): number;
					public static incrementOperationCount(operationCount: number): void;
					public static incrementOperationCount(tag: number, operationCount: number): void;
					public static setThreadStatsTag(tag: number): void;
					public static tagSocket(socket: java.net.Socket): void;
					public static untagSocket(socket: java.net.Socket): void;
				}
				/**
				 * Implementation of ConnectivityManagerCompat that can use Gingerbread APIs.
				 */
				export class ConnectivityManagerCompatGingerbread extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompatGingerbread>;
					public static isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
				}
				/**
				 * Implementation of ConnectivityManagerCompat that can use Honeycomb MR2 APIs.
				 */
				export class ConnectivityManagerCompatHoneycombMR2 extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompatHoneycombMR2>;
					public static isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
				}
				/**
				 * Implementation of ConnectivityManagerCompat that can use Jellybean APIs.
				 */
				export class ConnectivityManagerCompatJellyBean extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.net.ConnectivityManagerCompatJellyBean>;
					public static isActiveNetworkMetered(cm: android.net.ConnectivityManager): boolean;
				}
			}
			export module content {
				/**
				 * Helper for accessing features in android.content.Context introduced after API level 4 in a backwards compatible fashion.
				 */
				export class ContextCompat extends java.lang.Object {
					constructor();
					static class: java.lang.Class<android.support.v4.content.ContextCompat>;
					/**
					 * Start a set of activities as a synthesized task stack, if able.
					 * @param context Start activities using this activity as the starting context
					 * @param intents Array of intents defining the activities that will be started. The element
					 */
					public static startActivities(context: android.content.Context, intents: native.Array<android.content.Intent>): boolean;
					/**
					 * Start a set of activities as a synthesized task stack, if able.
					 * @param context Start activities using this activity as the starting context
					 * @param intents Array of intents defining the activities that will be started. The element
					 * @param options Additional options for how the Activity should be started.
					 */
					public static startActivities(context: android.content.Context, intents: native.Array<android.content.Intent>, options: android.os.Bundle): boolean;
				}
				/**
				 * Static library support version of the framework's android.content.CursorLoader. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class CursorLoader extends android.support.v4.content.AsyncTaskLoader<android.database.ICursor> {
					/**
					 * Creates an empty unspecified CursorLoader. You must follow this with calls to #setUri(Uri), #setSelection(String), etc to specify the query to perform.
					 */
					constructor(context: android.content.Context);
					/**
					 * Creates a fully-specified CursorLoader. See android.content.ContentResolver#query(Uri, String[], String, String[], String) ContentResolver.query() for documentation on the meaning of the parameters. These will be passed as-is to that call.
					 */
					constructor(context: android.content.Context, uri: android.net.Uri, projection: native.Array<string>, selection: string, selectionArgs: native.Array<string>, sortOrder: string);
					static class: java.lang.Class<android.support.v4.content.CursorLoader>;
					public loadInBackground(): android.database.ICursor;
					/**
					 * Registers an observer to get notifications from the content provider when the cursor needs to be refreshed.
					 */
					registerContentObserver(cursor: android.database.ICursor, observer: android.database.ContentObserver): void;
					public deliverResult(cursor: android.database.ICursor): void;
					/**
					 * Starts an asynchronous load of the contacts list data. When the result is ready the callbacks will be called on the UI thread. If a previous load has been completed and is still valid the result may be passed to the callbacks immediately.
					 */
					protected onStartLoading(): void;
					/**
					 * Must be called from the UI thread
					 */
					protected onStopLoading(): void;
					public onCanceled(cursor: android.database.ICursor): void;
					protected onReset(): void;
					public getUri(): android.net.Uri;
					public setUri(uri: android.net.Uri): void;
					public getProjection(): native.Array<string>;
					public setProjection(projection: native.Array<string>): void;
					public getSelection(): string;
					public setSelection(selection: string): void;
					public getSelectionArgs(): native.Array<string>;
					public setSelectionArgs(selectionArgs: native.Array<string>): void;
					public getSortOrder(): string;
					public setSortOrder(sortOrder: string): void;
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
				}
				/**
				 * Helper for accessing features in android.content.Intent introduced after API level 4 in a backwards compatible fashion.
				 */
				export class IntentCompat extends java.lang.Object {
					/**
					 * Broadcast Action: Resources for a set of packages (which were previously unavailable) are currently available since the media on which they exist is available. The extra data #EXTRA_CHANGED_PACKAGE_LIST contains a list of packages whose availability changed. The extra data #EXTRA_CHANGED_UID_LIST contains a list of uids of packages whose availability changed. Note that the packages in this list do <em>not</em> receive this broadcast. The specified set of packages are now available on the system.
					 */
					static ACTION_EXTERNAL_APPLICATIONS_AVAILABLE: string;
					/**
					 * Broadcast Action: Resources for a set of packages are currently unavailable since the media on which they exist is unavailable. The extra data #EXTRA_CHANGED_PACKAGE_LIST contains a list of packages whose availability changed. The extra data #EXTRA_CHANGED_UID_LIST contains a list of uids of packages whose availability changed. The specified set of packages can no longer be launched and are practically unavailable on the system.
					 */
					static ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE: string;
					/**
					 * This field is part of android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_AVAILABLE, android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE and contains a string array of all of the components that have changed.
					 */
					static EXTRA_CHANGED_PACKAGE_LIST: string;
					/**
					 * This field is part of android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_AVAILABLE, android.content.Intent#ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE and contains an integer array of uids of all of the components that have changed.
					 */
					static EXTRA_CHANGED_UID_LIST: string;
					/**
					 * A constant String that is associated with the Intent, used with android.content.Intent#ACTION_SEND to supply an alternative to android.content.Intent#EXTRA_TEXT as HTML formatted text. Note that you <em>must</em> also supply android.content.Intent#EXTRA_TEXT.
					 */
					static EXTRA_HTML_TEXT: string;
					/**
					 * If set in an Intent passed to Context#startActivity Context.startActivity(), this flag will cause a newly launching task to be placed on top of the current home activity task (if there is one). That is, pressing back from the task will always return the user to home even if that was not the last activity they saw. This can only be used in conjunction with android.content.Intent#FLAG_ACTIVITY_NEW_TASK.
					 */
					static FLAG_ACTIVITY_TASK_ON_HOME: number;
					/**
					 * If set in an Intent passed to Context#startActivity Context.startActivity(), this flag will cause any existing task that would be associated with the activity to be cleared before the activity is started. That is, the activity becomes the new root of an otherwise empty task, and any old activities are finished. This can only be used in conjunction with android.content.Intent#FLAG_ACTIVITY_NEW_TASK.
					 */
					static FLAG_ACTIVITY_CLEAR_TASK: number;
					static class: java.lang.Class<android.support.v4.content.IntentCompat>;
					/**
					 * Create an intent to launch the main (root) activity of a task. This is the Intent that is started when the application's is launched from Home. For anything else that wants to launch an application in the same way, it is important that they use an Intent structured the same way, and can use this function to ensure this is the case.
					 * @param mainActivity The main activity component that this Intent will
					 */
					public static makeMainActivity(mainActivity: android.content.ComponentName): android.content.Intent;
					/**
					 * Make an Intent for the main activity of an application, without specifying a specific activity to run but giving a selector to find the activity. This results in a final Intent that is structured the same as when the application is launched from Home. For anything else that wants to launch an application in the same way, it is important that they use an Intent structured the same way, and can use this function to ensure this is the case.
					 * @param selectorAction The action name of the Intent's selector.
					 * @param selectorCategory The name of a category to add to the Intent's
					 */
					public static makeMainSelectorActivity(selectorAction: string, selectorCategory: string): android.content.Intent;
					/**
					 * Make an Intent that can be used to re-launch an application's task in its base state. This is like #makeMainActivity(ComponentName), but also sets the flags Intent#FLAG_ACTIVITY_NEW_TASK and IntentCompat#FLAG_ACTIVITY_CLEAR_TASK.
					 * @param mainActivity The activity component that is the root of the
					 */
					public static makeRestartActivityTask(mainActivity: android.content.ComponentName): android.content.Intent;
				}
				export module IntentCompat {
					interface IIntentCompatImpl {
						makeMainActivity(componentName: android.content.ComponentName): android.content.Intent;
						makeMainSelectorActivity(selectorAction: string, selectorCategory: string): android.content.Intent;
						makeRestartActivityTask(mainActivity: android.content.ComponentName): android.content.Intent;
					}
					export class IntentCompatImplIcsMr1 extends android.support.v4.content.IntentCompat.IntentCompatImplHC {
						static class: java.lang.Class<android.support.v4.content.IntentCompat.IntentCompatImplIcsMr1>;
						public makeMainSelectorActivity(selectorAction: string, selectorCategory: string): android.content.Intent;
					}
					export class IntentCompatImplBase extends java.lang.Object implements android.support.v4.content.IntentCompat.IIntentCompatImpl {
						static class: java.lang.Class<android.support.v4.content.IntentCompat.IntentCompatImplBase>;
						public makeMainActivity(componentName: android.content.ComponentName): android.content.Intent;
						public makeMainSelectorActivity(selectorAction: string, selectorCategory: string): android.content.Intent;
						public makeRestartActivityTask(mainActivity: android.content.ComponentName): android.content.Intent;
					}
					export class IntentCompatImplHC extends android.support.v4.content.IntentCompat.IntentCompatImplBase {
						static class: java.lang.Class<android.support.v4.content.IntentCompat.IntentCompatImplHC>;
						public makeMainActivity(componentName: android.content.ComponentName): android.content.Intent;
						public makeRestartActivityTask(componentName: android.content.ComponentName): android.content.Intent;
					}
					export class IntentCompatImpl implements android.support.v4.content.IntentCompat.IIntentCompatImpl {
						constructor(implementation: android.support.v4.content.IntentCompat.IIntentCompatImpl);
						public makeMainActivity(componentName: android.content.ComponentName): android.content.Intent;
						public makeMainSelectorActivity(selectorAction: string, selectorCategory: string): android.content.Intent;
						public makeRestartActivityTask(mainActivity: android.content.ComponentName): android.content.Intent;
					}
				}
				export class IntentCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.content.IntentCompatHoneycomb>;
					public static makeMainActivity(mainActivity: android.content.ComponentName): android.content.Intent;
					public static makeRestartActivityTask(mainActivity: android.content.ComponentName): android.content.Intent;
				}
				export class IntentCompatIcsMr1 extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.content.IntentCompatIcsMr1>;
					public static makeMainSelectorActivity(selectorAction: string, selectorCategory: string): android.content.Intent;
				}
				/**
				 * Static library support version of the framework's android.content.Loader. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class Loader<D> extends java.lang.Object {
					/**
					 * Stores away the application context associated with context. Since Loaders can be used across multiple activities it's dangerous to store the context directly.
					 * @param context used to retrieve the application context.
					 */
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.support.v4.content.Loader<any>>;
					ForceLoadContentObserver: {
	new (): android.support.v4.content.Loader.ForceLoadContentObserver;
};
					/**
					 * Sends the result of the load to the registered listener. Should only be called by subclasses.
					 * @param data the result of the load
					 */
					public deliverResult(data: D): void;
					public getContext(): android.content.Context;
					public getId(): number;
					/**
					 * Registers a class that will receive callbacks when a load is complete. The callback will be called on the process's main thread so it's safe to pass the results to widgets.
					 */
					public registerListener(id: number, listener: android.support.v4.content.Loader.IOnLoadCompleteListener<D>): void;
					/**
					 * Remove a listener that was previously added with #registerListener.
					 */
					public unregisterListener(listener: android.support.v4.content.Loader.IOnLoadCompleteListener<D>): void;
					/**
					 * Return whether this load has been started. That is, its #startLoading() has been called and no calls to #stopLoading() or #reset() have yet been made.
					 */
					public isStarted(): boolean;
					/**
					 * Return whether this loader has been abandoned. In this state, the loader <em>must not</em> report any new data, and <em>must</em> keep its last reported data valid until it is finally reset.
					 */
					public isAbandoned(): boolean;
					/**
					 * Return whether this load has been reset. That is, either the loader has not yet been started for the first time, or its #reset() has been called.
					 */
					public isReset(): boolean;
					/**
					 * Starts an asynchronous load of the Loader's data. When the result is ready the callbacks will be called on the process's main thread. If a previous load has been completed and is still valid the result may be passed to the callbacks immediately. The loader will monitor the source of the data set and may deliver future callbacks if the source changes. Calling #stopLoading will stop the delivery of callbacks.
					 */
					public startLoading(): void;
					/**
					 * Subclasses must implement this to take care of loading their data, as per #startLoading(). This is not called by clients directly, but as a result of a call to #startLoading().
					 */
					protected onStartLoading(): void;
					/**
					 * Force an asynchronous load. Unlike #startLoading() this will ignore a previously loaded data set and load a new one. This simply calls through to the implementation's #onForceLoad(). You generally should only call this when the loader is started -- that is, #isStarted() returns true.
					 */
					public forceLoad(): void;
					/**
					 * Subclasses must implement this to take care of requests to #forceLoad(). This will always be called from the process's main thread.
					 */
					protected onForceLoad(): void;
					/**
					 * Stops delivery of updates until the next time #startLoading() is called. Implementations should <em>not</em> invalidate their data at this point -- clients are still free to use the last data the loader reported. They will, however, typically stop reporting new data if the data changes; they can still monitor for changes, but must not report them to the client until and if #startLoading() is later called.
					 */
					public stopLoading(): void;
					/**
					 * Subclasses must implement this to take care of stopping their loader, as per #stopLoading(). This is not called by clients directly, but as a result of a call to #stopLoading(). This will always be called from the process's main thread.
					 */
					protected onStopLoading(): void;
					/**
					 * Tell the Loader that it is being abandoned. This is called prior to #reset to have it retain its current data but not report any new data.
					 */
					public abandon(): void;
					/**
					 * Subclasses implement this to take care of being abandoned. This is an optional intermediate state prior to #onReset() -- it means that the client is no longer interested in any new data from the loader, so the loader must not report any further updates. However, the loader <em>must</em> keep its last reported data valid until the final #onReset() happens. You can retrieve the current abandoned state with #isAbandoned.
					 */
					protected onAbandon(): void;
					/**
					 * Resets the state of the Loader. The Loader should at this point free all of its resources, since it may never be called again; however, its #startLoading() may later be called at which point it must be able to start running again.
					 */
					public reset(): void;
					/**
					 * Subclasses must implement this to take care of resetting their loader, as per #reset(). This is not called by clients directly, but as a result of a call to #reset(). This will always be called from the process's main thread.
					 */
					protected onReset(): void;
					/**
					 * Take the current flag indicating whether the loader's content had changed while it was stopped. If it had, true is returned and the flag is cleared.
					 */
					public takeContentChanged(): boolean;
					/**
					 * Called when ForceLoadContentObserver detects a change. The default implementation checks to see if the loader is currently started; if so, it simply calls #forceLoad(); otherwise, it sets a flag so that #takeContentChanged() returns true.
					 */
					public onContentChanged(): void;
					/**
					 * For debugging, converts an instance of the Loader's data class to a string that can be printed. Must handle a null data.
					 */
					public dataToString(data: D): string;
					public toString(): string;
					/**
					 * Print the Loader's state into the given stream.
					 * @param prefix Text to print at the front of each line.
					 * @param fd The raw file descriptor that the dump is being sent to.
					 * @param writer A PrintWriter to which the dump is to be set.
					 * @param args Additional arguments to the dump request.
					 */
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
				}
				export module Loader {
					/**
					 * An implementation of a ContentObserver that takes care of connecting it to the Loader to have the loader re-load its data when the observer is told it has changed. You do not normally need to use this yourself; it is used for you by android.support.v4.content.CursorLoader to take care of executing an update when the cursor's backing data changes.
					 */
					export class ForceLoadContentObserver extends android.database.ContentObserver {
						static class: java.lang.Class<android.support.v4.content.Loader.ForceLoadContentObserver>;
						public deliverSelfNotifications(): boolean;
						public onChange(selfChange: boolean): void;
						/**
						 * This method is called when a content change occurs. Includes the changed content Uri when available.
						 * @param selfChange True if this is a self-change notification.
						 * @param uri The Uri of the changed content, or null if unknown.
						 */
						onChange(selfChange: boolean, uri: android.net.Uri): void;
					}
					/**
					 * Interface that is implemented to discover when a Loader has finished loading its data. You do not normally need to implement this yourself; it is used in the implementation of android.support.v4.app.LoaderManager to find out when a Loader it is managing has completed so that this can be reported to its client. This interface should only be used if a Loader is not being used in conjunction with LoaderManager.
					 */
					export class OnLoadCompleteListener<D> implements android.support.v4.content.Loader.IOnLoadCompleteListener<D> {
						constructor(implementation: android.support.v4.content.Loader.IOnLoadCompleteListener<D>);
						/**
						 * Called on the thread that created the Loader when the load is complete.
						 * @param loader the loader that completed the load
						 * @param data the result of the load
						 */
						public onLoadComplete(loader: android.support.v4.content.Loader<D>, data: D): void;
					}
					/**
					 * Interface that is implemented to discover when a Loader has finished loading its data. You do not normally need to implement this yourself; it is used in the implementation of android.support.v4.app.LoaderManager to find out when a Loader it is managing has completed so that this can be reported to its client. This interface should only be used if a Loader is not being used in conjunction with LoaderManager.
					 */
					interface IOnLoadCompleteListener<D> {
						/**
						 * Called on the thread that created the Loader when the load is complete.
						 * @param loader the loader that completed the load
						 * @param data the result of the load
						 */
						onLoadComplete(loader: android.support.v4.content.Loader<D>, data: D): void;
					}
				}
				/**
				 * Implementation of context compatibility that can call Honeycomb APIs.
				 */
				export class ContextCompatHoneycomb extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.content.ContextCompatHoneycomb>;
					static startActivities(context: android.content.Context, intents: native.Array<android.content.Intent>): void;
				}
				/**
				 * Static library support version of the framework's android.content.AsyncTaskLoader. Used to write apps that run on platforms prior to Android 3.0. When running on Android 3.0 or above, this implementation is still used; it does not try to switch to the framework's implementation. See the framework SDK documentation for a class overview.
				 */
				export class AsyncTaskLoader<D> extends android.support.v4.content.Loader<D> {
					constructor(context: android.content.Context);
					static class: java.lang.Class<android.support.v4.content.AsyncTaskLoader<any>>;
					/**
					 * Set amount to throttle updates by. This is the minimum time from when the last #onLoadInBackground() call has completed until a new load is scheduled.
					 * @param delayMS Amount of delay, in milliseconds.
					 */
					public setUpdateThrottle(delayMS: number): void;
					protected onForceLoad(): void;
					/**
					 * Attempt to cancel the current load task. See android.os.AsyncTask#cancel(boolean) for more info. Must be called on the main thread of the process.
					 */
					public cancelLoad(): boolean;
					/**
					 * Called if the task was canceled before it was completed. Gives the class a chance to properly dispose of the result.
					 */
					public onCanceled(data: D): void;
					executePendingTask(): void;
					dispatchOnCancelled(task: android.support.v4.content.AsyncTaskLoader.LoadTask, data: D): void;
					dispatchOnLoadComplete(task: android.support.v4.content.AsyncTaskLoader.LoadTask, data: D): void;
					public loadInBackground(): D;
					/**
					 * Called on a worker thread to perform the actual load. Implementations should not deliver the result directly, but should return them from this method, which will eventually end up calling #deliverResult on the UI thread. If implementations need to process the results on the UI thread they may override #deliverResult and do so there.
					 */
					protected onLoadInBackground(): D;
					public dump(prefix: string, fd: java.io.FileDescriptor, writer: java.io.PrintWriter, args: native.Array<string>): void;
				}
				export module AsyncTaskLoader {
					export class LoadTask extends android.support.v4.content.ModernAsyncTask<java.lang.Void, java.lang.Void, any> implements java.lang.IRunnable {
						static class: java.lang.Class<android.support.v4.content.AsyncTaskLoader.LoadTask>;
						protected doInBackground(params: native.Array<java.lang.Void>): any;
						protected onPostExecute(data: any): void;
						protected onCancelled(): void;
						public run(): void;
						/**
						 * @param result The result, if any, computed in
						 */
						protected onCancelled(result: any): void;
					}
				}
				export module pm {
					/**
					 * Helper for accessing features in android.content.pm.ActivityInfo introduced after API level 4 in a backwards compatible fashion.
					 */
					export class ActivityInfoCompat extends java.lang.Object {
						/**
						 * Bit in ActivityInfo#configChanges that indicates that the activity can itself handle the ui mode. Set from the android.R.attr#configChanges attribute.
						 */
						static CONFIG_UI_MODE: number;
						static class: java.lang.Class<android.support.v4.content.pm.ActivityInfoCompat>;
					}
				}
				/**
				 * Helper to register for and send broadcasts of Intents to local objects within your process. This is has a number of advantages over sending global broadcasts with android.content.Context#sendBroadcast: <ul> <li> You know that the data you are broadcasting won't leave your app, so don't need to worry about leaking private data. <li> It is not possible for other applications to send these broadcasts to your app, so you don't need to worry about having security holes they can exploit. <li> It is more efficient than sending a global broadcast through the system. </ul>
				 */
				export class LocalBroadcastManager extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.content.LocalBroadcastManager>;
					public static getInstance(context: android.content.Context): android.support.v4.content.LocalBroadcastManager;
					/**
					 * Register a receive for any local broadcasts that match the given IntentFilter.
					 * @param receiver The BroadcastReceiver to handle the broadcast.
					 * @param filter Selects the Intent broadcasts to be received.
					 */
					public registerReceiver(receiver: android.content.BroadcastReceiver, filter: android.content.IntentFilter): void;
					/**
					 * Unregister a previously registered BroadcastReceiver. <em>All</em> filters that have been registered for this BroadcastReceiver will be removed.
					 * @param receiver The BroadcastReceiver to unregister.
					 */
					public unregisterReceiver(receiver: android.content.BroadcastReceiver): void;
					/**
					 * Broadcast the given intent to all interested BroadcastReceivers. This call is asynchronous; it returns immediately, and you will continue executing while the receivers are run.
					 * @param intent The Intent to broadcast; all receivers matching this
					 */
					public sendBroadcast(intent: android.content.Intent): boolean;
					/**
					 * Like #sendBroadcast(Intent), but if there are any receivers for the Intent this function will block and immediately dispatch them before returning.
					 */
					public sendBroadcastSync(intent: android.content.Intent): void;
				}
				export module LocalBroadcastManager {
					export class BroadcastRecord extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.content.LocalBroadcastManager.BroadcastRecord>;
					}
					export class ReceiverRecord extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.content.LocalBroadcastManager.ReceiverRecord>;
						public toString(): string;
					}
				}
				/**
				 * Copy of the required parts of android.os.AsyncTask from Android 3.0 that is needed to support AsyncTaskLoader. We use this rather than the one from the platform because we rely on some subtle behavior of AsyncTask that is not reliable on older platforms.
				 */
				export class ModernAsyncTask<Params, Progress, Result> extends java.lang.Object {
					/**
					 * Creates a new asynchronous task. This constructor must be invoked on the UI thread.
					 */
					constructor();
					/**
					 * An Executor that can be used to execute tasks in parallel.
					 */
					static THREAD_POOL_EXECUTOR: java.util.concurrent.IExecutor;
					static class: java.lang.Class<android.support.v4.content.ModernAsyncTask<any, any, any>>;
					/**
					 * Returns the current status of this task.
					 */
					public getStatus(): android.support.v4.content.ModernAsyncTask.Status;
					/**
					 * Override this method to perform a computation on a background thread. The specified parameters are the parameters passed to #execute by the caller of this task.
					 * @param params The parameters of the task.
					 */
					protected doInBackground(params: native.Array<Params>): Result;
					/**
					 * Runs on the UI thread before #doInBackground.
					 */
					protected onPreExecute(): void;
					/**
					 * @param result The result of the operation computed by {@link #doInBackground}.
					 */
					protected onPostExecute(result: Result): void;
					/**
					 * Runs on the UI thread after #publishProgress is invoked. The specified values are the values passed to #publishProgress.
					 * @param values The values indicating progress.
					 */
					protected onProgressUpdate(values: native.Array<Progress>): void;
					/**
					 * @param result The result, if any, computed in
					 */
					protected onCancelled(result: Result): void;
					protected onCancelled(): void;
					/**
					 * Returns <tt>true</tt> if this task was cancelled before it completed normally. If you are calling #cancel(boolean) on the task, the value returned by this method should be checked periodically from #doInBackground(Object[]) to end the task as soon as possible.
					 */
					public isCancelled(): boolean;
					/**
					 * @param mayInterruptIfRunning <tt>true</tt> if the thread executing this
					 */
					public cancel(mayInterruptIfRunning: boolean): boolean;
					/**
					 * Waits if necessary for the computation to complete, and then retrieves its result.
					 */
					public get(): Result;
					/**
					 * Waits if necessary for at most the given time for the computation to complete, and then retrieves its result.
					 * @param timeout Time to wait before cancelling the operation.
					 * @param unit The time unit for the timeout.
					 */
					public get(timeout: number, unit: java.util.concurrent.TimeUnit): Result;
					/**
					 * Executes the task with the specified parameters. The task returns itself (this) so that the caller can keep a reference to it.
					 * @param params The parameters of the task.
					 */
					public execute(params: native.Array<Params>): android.support.v4.content.ModernAsyncTask<Params, Progress, Result>;
					/**
					 * Executes the task with the specified parameters. The task returns itself (this) so that the caller can keep a reference to it.
					 * @param exec The executor to use. {@link #THREAD_POOL_EXECUTOR} is available as a
					 * @param params The parameters of the task.
					 */
					public executeOnExecutor(exec: java.util.concurrent.IExecutor, params: native.Array<Params>): android.support.v4.content.ModernAsyncTask<Params, Progress, Result>;
					/**
					 * Convenience version of #execute(Object...) for use with a simple Runnable object.
					 */
					public static execute(runnable: java.lang.IRunnable): void;
					/**
					 * This method can be invoked from #doInBackground to publish updates on the UI thread while the background computation is still running. Each call to this method will trigger the execution of #onProgressUpdate on the UI thread.
					 * @param values The progress values to update the UI with.
					 */
					protected publishProgress(values: native.Array<Progress>): void;
				}
				export module ModernAsyncTask {
					/**
					 * Indicates the current status of the task. Each status will be set only once during the lifetime of a task.
					 */
					export enum Status {
						PENDING,
						RUNNING,
						FINISHED
					}
					export class WorkerRunnable<Params, Result> extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.content.ModernAsyncTask.WorkerRunnable<any, any>>;
					}
					export class InternalHandler extends android.os.Handler {
						static class: java.lang.Class<android.support.v4.content.ModernAsyncTask.InternalHandler>;
						public handleMessage(msg: android.os.Message): void;
					}
					export class AsyncTaskResult<Data> extends java.lang.Object {
						static class: java.lang.Class<android.support.v4.content.ModernAsyncTask.AsyncTaskResult<any>>;
					}
				}
				export class ContextCompatJellybean extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.content.ContextCompatJellybean>;
					public static startActivities(context: android.content.Context, intents: native.Array<android.content.Intent>, options: android.os.Bundle): void;
				}
			}
			export module accessibilityservice {
				/**
				 * Helper for accessing features in android.accessibilityservice.AccessibilityService introduced after API level 4 in a backwards compatible fashion.
				 */
				export class AccessibilityServiceInfoCompat extends java.lang.Object {
					/**
					 * Mask for all feedback types.
					 */
					static FEEDBACK_ALL_MASK: number;
					static class: java.lang.Class<android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat>;
					/**
					 * The accessibility service id.
					 */
					public static getId(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					/**
					 * The service ResolveInfo.
					 */
					public static getResolveInfo(info: android.accessibilityservice.AccessibilityServiceInfo): android.content.pm.ResolveInfo;
					/**
					 * The settings activity name.
					 */
					public static getSettingsActivityName(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					/**
					 * Whether this service can retrieve the current window's content.
					 */
					public static getCanRetrieveWindowContent(info: android.accessibilityservice.AccessibilityServiceInfo): boolean;
					/**
					 * Description of the accessibility service.
					 */
					public static getDescription(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					/**
					 * Returns the string representation of a feedback type. For example, AccessibilityServiceInfo#FEEDBACK_SPOKEN is represented by the string FEEDBACK_SPOKEN.
					 * @param feedbackType The feedback type.
					 */
					public static feedbackTypeToString(feedbackType: number): string;
					/**
					 * Returns the string representation of a flag. For example, AccessibilityServiceInfo#DEFAULT is represented by the string DEFAULT.
					 * @param flag The flag.
					 */
					public static flagToString(flag: number): string;
				}
				export module AccessibilityServiceInfoCompat {
					export class AccessibilityServiceInfoStubImpl extends java.lang.Object implements android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.IAccessibilityServiceInfoVersionImpl {
						static class: java.lang.Class<android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoStubImpl>;
						public getCanRetrieveWindowContent(info: android.accessibilityservice.AccessibilityServiceInfo): boolean;
						public getDescription(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						public getId(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						public getResolveInfo(info: android.accessibilityservice.AccessibilityServiceInfo): android.content.pm.ResolveInfo;
						public getSettingsActivityName(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					}
					interface IAccessibilityServiceInfoVersionImpl {
						getId(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						getResolveInfo(info: android.accessibilityservice.AccessibilityServiceInfo): android.content.pm.ResolveInfo;
						getCanRetrieveWindowContent(info: android.accessibilityservice.AccessibilityServiceInfo): boolean;
						getDescription(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						getSettingsActivityName(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					}
					export class AccessibilityServiceInfoIcsImpl extends android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoStubImpl {
						static class: java.lang.Class<android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.AccessibilityServiceInfoIcsImpl>;
						public getCanRetrieveWindowContent(info: android.accessibilityservice.AccessibilityServiceInfo): boolean;
						public getDescription(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						public getId(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						public getResolveInfo(info: android.accessibilityservice.AccessibilityServiceInfo): android.content.pm.ResolveInfo;
						public getSettingsActivityName(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					}
					export class AccessibilityServiceInfoVersionImpl implements android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.IAccessibilityServiceInfoVersionImpl {
						constructor(implementation: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.IAccessibilityServiceInfoVersionImpl);
						public getId(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						public getResolveInfo(info: android.accessibilityservice.AccessibilityServiceInfo): android.content.pm.ResolveInfo;
						public getCanRetrieveWindowContent(info: android.accessibilityservice.AccessibilityServiceInfo): boolean;
						public getDescription(info: android.accessibilityservice.AccessibilityServiceInfo): string;
						public getSettingsActivityName(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					}
				}
				/**
				 * ICS implementation of the new APIs in AccessibilityServiceInfo.
				 */
				export class AccessibilityServiceInfoCompatIcs extends java.lang.Object {
					static class: java.lang.Class<android.support.v4.accessibilityservice.AccessibilityServiceInfoCompatIcs>;
					public static getCanRetrieveWindowContent(info: android.accessibilityservice.AccessibilityServiceInfo): boolean;
					public static getDescription(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					public static getId(info: android.accessibilityservice.AccessibilityServiceInfo): string;
					public static getResolveInfo(info: android.accessibilityservice.AccessibilityServiceInfo): android.content.pm.ResolveInfo;
					public static getSettingsActivityName(info: android.accessibilityservice.AccessibilityServiceInfo): string;
				}
			}
		}
	}
}
